From e8611ecede14f710980275ac1090d6a9605c8c5b Mon Sep 17 00:00:00 2001 From: jokob-sk Date: Sun, 2 Feb 2025 14:27:23 +1100 Subject: [PATCH 1/2] fixes, static js --- README.md | 6 + dist/bundle.js | 4164 +++++++++++++++++++++++++++++++++++ dist/bundle.js.map | 1 + dist/example/index.html | 56 +- dist/example/treeviz.js | 2927 ++++++++++++++++++++++++ dist/index.d.ts | 4 +- dist/initializeSVG.d.ts | 2 +- dist/links/draw-links.d.ts | 2 +- dist/links/link-enter.d.ts | 2 +- dist/links/link-exit.d.ts | 2 +- dist/links/link-update.d.ts | 2 +- dist/nodes/node-enter.d.ts | 2 +- dist/nodes/node-exit.d.ts | 2 +- dist/nodes/node-update.d.ts | 2 +- dist/prepare-data.d.ts | 4 +- dist/treeviz.js | 3023 +++++++++++++++++++++++-- dist/typings.d.ts | 19 +- dist/utils.d.ts | 2 +- example/example.ts | 6 +- package-lock.json | 3667 ++++++++++++++++++++++++++++++ package.json | 13 +- rollup.config.js | 12 + src/index.ts | 9 +- src/initializeSVG.ts | 4 +- src/links/draw-links.ts | 4 +- src/links/link-enter.ts | 12 +- src/links/link-exit.ts | 4 +- src/links/link-update.ts | 18 +- src/nodes/node-enter.ts | 4 +- src/nodes/node-exit.ts | 4 +- src/nodes/node-update.ts | 14 +- src/prepare-data.ts | 6 +- src/typings.ts | 2 +- src/utils.ts | 4 +- tsconfig.json | 9 +- webpack.config.cjs | 21 + yarn.lock | 1403 +++++++++--- 37 files changed, 14848 insertions(+), 590 deletions(-) create mode 100644 dist/bundle.js create mode 100644 dist/bundle.js.map create mode 100644 dist/example/treeviz.js create mode 100644 package-lock.json create mode 100644 rollup.config.js create mode 100644 webpack.config.cjs diff --git a/README.md b/README.md index e15651d..84411d9 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,12 @@ import {Treeviz} from 'treeviz'; Or download this zip repository in the Github Release section and link the dist/treeviz.js file in your page directly : ` - - - - - - - - -
- - - - - \ No newline at end of file + + + + + + + + +
+ + + diff --git a/dist/example/treeviz.js b/dist/example/treeviz.js new file mode 100644 index 0000000..3c7a035 --- /dev/null +++ b/dist/example/treeviz.js @@ -0,0 +1,2927 @@ +var bn = Object.defineProperty; +var kn = (t, e, n) => e in t ? bn(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n; +var rt = (t, e, n) => (kn(t, typeof e != "symbol" ? e + "" : e, n), n); +(function() { + const e = document.createElement("link").relList; + if (e && e.supports && e.supports("modulepreload")) + return; + for (const i of document.querySelectorAll('link[rel="modulepreload"]')) + r(i); + new MutationObserver((i) => { + for (const o of i) + if (o.type === "childList") + for (const a of o.addedNodes) + a.tagName === "LINK" && a.rel === "modulepreload" && r(a); + }).observe(document, { childList: !0, subtree: !0 }); + function n(i) { + const o = {}; + return i.integrity && (o.integrity = i.integrity), i.referrerPolicy && (o.referrerPolicy = i.referrerPolicy), i.crossOrigin === "use-credentials" ? o.credentials = "include" : i.crossOrigin === "anonymous" ? o.credentials = "omit" : o.credentials = "same-origin", o; + } + function r(i) { + if (i.ep) + return; + i.ep = !0; + const o = n(i); + fetch(i.href, o); + } +})(); +function $n(t) { + var e = 0, n = t.children, r = n && n.length; + if (!r) + e = 1; + else + for (; --r >= 0; ) + e += n[r].value; + t.value = e; +} +function Nn() { + return this.eachAfter($n); +} +function An(t, e) { + let n = -1; + for (const r of this) + t.call(e, r, ++n, this); + return this; +} +function zn(t, e) { + for (var n = this, r = [n], i, o, a = -1; n = r.pop(); ) + if (t.call(e, n, ++a, this), i = n.children) + for (o = i.length - 1; o >= 0; --o) + r.push(i[o]); + return this; +} +function Sn(t, e) { + for (var n = this, r = [n], i = [], o, a, s, f = -1; n = r.pop(); ) + if (i.push(n), o = n.children) + for (a = 0, s = o.length; a < s; ++a) + r.push(o[a]); + for (; n = i.pop(); ) + t.call(e, n, ++f, this); + return this; +} +function En(t, e) { + let n = -1; + for (const r of this) + if (t.call(e, r, ++n, this)) + return r; +} +function Mn(t) { + return this.eachAfter(function(e) { + for (var n = +t(e.data) || 0, r = e.children, i = r && r.length; --i >= 0; ) + n += r[i].value; + e.value = n; + }); +} +function Tn(t) { + return this.eachBefore(function(e) { + e.children && e.children.sort(t); + }); +} +function Cn(t) { + for (var e = this, n = In(e, t), r = [e]; e !== n; ) + e = e.parent, r.push(e); + for (var i = r.length; t !== n; ) + r.splice(i, 0, t), t = t.parent; + return r; +} +function In(t, e) { + if (t === e) + return t; + var n = t.ancestors(), r = e.ancestors(), i = null; + for (t = n.pop(), e = r.pop(); t === e; ) + i = t, t = n.pop(), e = r.pop(); + return i; +} +function Ln() { + for (var t = this, e = [t]; t = t.parent; ) + e.push(t); + return e; +} +function Fn() { + return Array.from(this); +} +function qn() { + var t = []; + return this.eachBefore(function(e) { + e.children || t.push(e); + }), t; +} +function Hn() { + var t = this, e = []; + return t.each(function(n) { + n !== t && e.push({ source: n.parent, target: n }); + }), e; +} +function* Dn() { + var t = this, e, n = [t], r, i, o; + do + for (e = n.reverse(), n = []; t = e.pop(); ) + if (yield t, r = t.children) + for (i = 0, o = r.length; i < o; ++i) + n.push(r[i]); + while (n.length); +} +function ce(t, e) { + t instanceof Map ? (t = [void 0, t], e === void 0 && (e = On)) : e === void 0 && (e = Pn); + for (var n = new at(t), r, i = [n], o, a, s, f; r = i.pop(); ) + if ((a = e(r.data)) && (f = (a = Array.from(a)).length)) + for (r.children = a, s = f - 1; s >= 0; --s) + i.push(o = a[s] = new at(a[s])), o.parent = r, o.depth = r.depth + 1; + return n.eachBefore(Ve); +} +function Rn() { + return ce(this).eachBefore(Vn); +} +function Pn(t) { + return t.children; +} +function On(t) { + return Array.isArray(t) ? t[1] : null; +} +function Vn(t) { + t.data.value !== void 0 && (t.value = t.data.value), t.data = t.data.data; +} +function Ve(t) { + var e = 0; + do + t.height = e; + while ((t = t.parent) && t.height < ++e); +} +function at(t) { + this.data = t, this.depth = this.height = 0, this.parent = null; +} +at.prototype = ce.prototype = { + constructor: at, + count: Nn, + each: An, + eachAfter: Sn, + eachBefore: zn, + find: En, + sum: Mn, + sort: Tn, + path: Cn, + ancestors: Ln, + descendants: Fn, + leaves: qn, + links: Hn, + copy: Rn, + [Symbol.iterator]: Dn +}; +function Bt(t) { + return t == null ? null : Xe(t); +} +function Xe(t) { + if (typeof t != "function") + throw new Error(); + return t; +} +function ct() { + return 0; +} +function lt(t) { + return function() { + return t; + }; +} +function Xn(t) { + t.x0 = Math.round(t.x0), t.y0 = Math.round(t.y0), t.x1 = Math.round(t.x1), t.y1 = Math.round(t.y1); +} +function Wn(t, e, n, r, i) { + for (var o = t.children, a, s = -1, f = o.length, u = t.value && (r - e) / t.value; ++s < f; ) + a = o[s], a.y0 = n, a.y1 = i, a.x0 = e, a.x1 = e += a.value * u; +} +var Bn = { depth: -1 }, we = {}, Yt = {}; +function Yn(t) { + return t.id; +} +function Un(t) { + return t.parentId; +} +function Gn() { + var t = Yn, e = Un, n; + function r(i) { + var o = Array.from(i), a = t, s = e, f, u, c, d, l, p, m, _, x = /* @__PURE__ */ new Map(); + if (n != null) { + const y = o.map((A, E) => Kn(n(A, E, i))), w = y.map(ve), z = new Set(y).add(""); + for (const A of w) + z.has(A) || (z.add(A), y.push(A), w.push(ve(A)), o.push(Yt)); + a = (A, E) => y[E], s = (A, E) => w[E]; + } + for (c = 0, f = o.length; c < f; ++c) + u = o[c], p = o[c] = new at(u), (m = a(u, c, i)) != null && (m += "") && (_ = p.id = m, x.set(_, x.has(_) ? we : p)), (m = s(u, c, i)) != null && (m += "") && (p.parent = m); + for (c = 0; c < f; ++c) + if (p = o[c], m = p.parent) { + if (l = x.get(m), !l) + throw new Error("missing: " + m); + if (l === we) + throw new Error("ambiguous: " + m); + l.children ? l.children.push(p) : l.children = [p], p.parent = l; + } else { + if (d) + throw new Error("multiple roots"); + d = p; + } + if (!d) + throw new Error("no root"); + if (n != null) { + for (; d.data === Yt && d.children.length === 1; ) + d = d.children[0], --f; + for (let y = o.length - 1; y >= 0 && (p = o[y], p.data === Yt); --y) + p.data = null; + } + if (d.parent = Bn, d.eachBefore(function(y) { + y.depth = y.parent.depth + 1, --f; + }).eachBefore(Ve), d.parent = null, f > 0) + throw new Error("cycle"); + return d; + } + return r.id = function(i) { + return arguments.length ? (t = Bt(i), r) : t; + }, r.parentId = function(i) { + return arguments.length ? (e = Bt(i), r) : e; + }, r.path = function(i) { + return arguments.length ? (n = Bt(i), r) : n; + }, r; +} +function Kn(t) { + t = `${t}`; + let e = t.length; + return jt(t, e - 1) && !jt(t, e - 2) && (t = t.slice(0, -1)), t[0] === "/" ? t : `/${t}`; +} +function ve(t) { + let e = t.length; + if (e < 2) + return ""; + for (; --e > 1 && !jt(t, e); ) + ; + return t.slice(0, e); +} +function jt(t, e) { + if (t[e] === "/") { + let n = 0; + for (; e > 0 && t[--e] === "\\"; ) + ++n; + if (!(n & 1)) + return !0; + } + return !1; +} +function Zn(t, e) { + return t.parent === e.parent ? 1 : 2; +} +function Ut(t) { + var e = t.children; + return e ? e[0] : t.t; +} +function Gt(t) { + var e = t.children; + return e ? e[e.length - 1] : t.t; +} +function Qn(t, e, n) { + var r = n / (e.i - t.i); + e.c -= r, e.s += n, t.c += r, e.z += n, e.m += n; +} +function Jn(t) { + for (var e = 0, n = 0, r = t.children, i = r.length, o; --i >= 0; ) + o = r[i], o.z += e, o.m += e, e += o.s + (n += o.c); +} +function jn(t, e, n) { + return t.a.parent === e.parent ? t.a : n; +} +function Et(t, e) { + this._ = t, this.parent = null, this.children = null, this.A = null, this.a = this, this.z = 0, this.m = 0, this.c = 0, this.s = 0, this.t = null, this.i = e; +} +Et.prototype = Object.create(at.prototype); +function tr(t) { + for (var e = new Et(t, 0), n, r = [e], i, o, a, s; n = r.pop(); ) + if (o = n._.children) + for (n.children = new Array(s = o.length), a = s - 1; a >= 0; --a) + r.push(i = n.children[a] = new Et(o[a], a)), i.parent = n; + return (e.parent = new Et(null, 0)).children = [e], e; +} +function er() { + var t = Zn, e = 1, n = 1, r = null; + function i(u) { + var c = tr(u); + if (c.eachAfter(o), c.parent.m = -c.z, c.eachBefore(a), r) + u.eachBefore(f); + else { + var d = u, l = u, p = u; + u.eachBefore(function(w) { + w.x < d.x && (d = w), w.x > l.x && (l = w), w.depth > p.depth && (p = w); + }); + var m = d === l ? 1 : t(d, l) / 2, _ = m - d.x, x = e / (l.x + m + _), y = n / (p.depth || 1); + u.eachBefore(function(w) { + w.x = (w.x + _) * x, w.y = w.depth * y; + }); + } + return u; + } + function o(u) { + var c = u.children, d = u.parent.children, l = u.i ? d[u.i - 1] : null; + if (c) { + Jn(u); + var p = (c[0].z + c[c.length - 1].z) / 2; + l ? (u.z = l.z + t(u._, l._), u.m = u.z - p) : u.z = p; + } else + l && (u.z = l.z + t(u._, l._)); + u.parent.A = s(u, l, u.parent.A || d[0]); + } + function a(u) { + u._.x = u.z + u.parent.m, u.m += u.parent.m; + } + function s(u, c, d) { + if (c) { + for (var l = u, p = u, m = c, _ = l.parent.children[0], x = l.m, y = p.m, w = m.m, z = _.m, A; m = Gt(m), l = Ut(l), m && l; ) + _ = Ut(_), p = Gt(p), p.a = u, A = m.z + w - l.z - x + t(m._, l._), A > 0 && (Qn(jn(m, u, d), u, A), x += A, y += A), w += m.m, x += l.m, z += _.m, y += p.m; + m && !Gt(p) && (p.t = m, p.m += w - y), l && !Ut(_) && (_.t = l, _.m += x - z, d = u); + } + return d; + } + function f(u) { + u.x *= e, u.y = u.depth * n; + } + return i.separation = function(u) { + return arguments.length ? (t = u, i) : t; + }, i.size = function(u) { + return arguments.length ? (r = !1, e = +u[0], n = +u[1], i) : r ? null : [e, n]; + }, i.nodeSize = function(u) { + return arguments.length ? (r = !0, e = +u[0], n = +u[1], i) : r ? [e, n] : null; + }, i; +} +function nr(t, e, n, r, i) { + for (var o = t.children, a, s = -1, f = o.length, u = t.value && (i - n) / t.value; ++s < f; ) + a = o[s], a.x0 = e, a.x1 = r, a.y0 = n, a.y1 = n += a.value * u; +} +var rr = (1 + Math.sqrt(5)) / 2; +function ir(t, e, n, r, i, o) { + for (var a = [], s = e.children, f, u, c = 0, d = 0, l = s.length, p, m, _ = e.value, x, y, w, z, A, E, C; c < l; ) { + p = i - n, m = o - r; + do + x = s[d++].value; + while (!x && d < l); + for (y = w = x, E = Math.max(m / p, p / m) / (_ * t), C = x * x * E, A = Math.max(w / C, C / y); d < l; ++d) { + if (x += u = s[d].value, u < y && (y = u), u > w && (w = u), C = x * x * E, z = Math.max(w / C, C / y), z > A) { + x -= u; + break; + } + A = z; + } + a.push(f = { value: x, dice: p < m, children: s.slice(c, d) }), f.dice ? Wn(f, n, r, i, _ ? r += m * x / _ : o) : nr(f, n, r, _ ? n += p * x / _ : i, o), _ -= x, c = d; + } + return a; +} +const or = function t(e) { + function n(r, i, o, a, s) { + ir(e, r, i, o, a, s); + } + return n.ratio = function(r) { + return t((r = +r) > 1 ? r : 1); + }, n; +}(rr); +function ar() { + var t = or, e = !1, n = 1, r = 1, i = [0], o = ct, a = ct, s = ct, f = ct, u = ct; + function c(l) { + return l.x0 = l.y0 = 0, l.x1 = n, l.y1 = r, l.eachBefore(d), i = [0], e && l.eachBefore(Xn), l; + } + function d(l) { + var p = i[l.depth], m = l.x0 + p, _ = l.y0 + p, x = l.x1 - p, y = l.y1 - p; + x < m && (m = x = (m + x) / 2), y < _ && (_ = y = (_ + y) / 2), l.x0 = m, l.y0 = _, l.x1 = x, l.y1 = y, l.children && (p = i[l.depth + 1] = o(l) / 2, m += u(l) - p, _ += a(l) - p, x -= s(l) - p, y -= f(l) - p, x < m && (m = x = (m + x) / 2), y < _ && (_ = y = (_ + y) / 2), t(l, m, _, x, y)); + } + return c.round = function(l) { + return arguments.length ? (e = !!l, c) : e; + }, c.size = function(l) { + return arguments.length ? (n = +l[0], r = +l[1], c) : [n, r]; + }, c.tile = function(l) { + return arguments.length ? (t = Xe(l), c) : t; + }, c.padding = function(l) { + return arguments.length ? c.paddingInner(l).paddingOuter(l) : c.paddingInner(); + }, c.paddingInner = function(l) { + return arguments.length ? (o = typeof l == "function" ? l : lt(+l), c) : o; + }, c.paddingOuter = function(l) { + return arguments.length ? c.paddingTop(l).paddingRight(l).paddingBottom(l).paddingLeft(l) : c.paddingTop(); + }, c.paddingTop = function(l) { + return arguments.length ? (a = typeof l == "function" ? l : lt(+l), c) : a; + }, c.paddingRight = function(l) { + return arguments.length ? (s = typeof l == "function" ? l : lt(+l), c) : s; + }, c.paddingBottom = function(l) { + return arguments.length ? (f = typeof l == "function" ? l : lt(+l), c) : f; + }, c.paddingLeft = function(l) { + return arguments.length ? (u = typeof l == "function" ? l : lt(+l), c) : u; + }, c; +} +var te = "http://www.w3.org/1999/xhtml"; +const be = { + svg: "http://www.w3.org/2000/svg", + xhtml: te, + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" +}; +function Ot(t) { + var e = t += "", n = e.indexOf(":"); + return n >= 0 && (e = t.slice(0, n)) !== "xmlns" && (t = t.slice(n + 1)), be.hasOwnProperty(e) ? { space: be[e], local: t } : t; +} +function ur(t) { + return function() { + var e = this.ownerDocument, n = this.namespaceURI; + return n === te && e.documentElement.namespaceURI === te ? e.createElement(t) : e.createElementNS(n, t); + }; +} +function sr(t) { + return function() { + return this.ownerDocument.createElementNS(t.space, t.local); + }; +} +function We(t) { + var e = Ot(t); + return (e.local ? sr : ur)(e); +} +function cr() { +} +function le(t) { + return t == null ? cr : function() { + return this.querySelector(t); + }; +} +function lr(t) { + typeof t != "function" && (t = le(t)); + for (var e = this._groups, n = e.length, r = new Array(n), i = 0; i < n; ++i) + for (var o = e[i], a = o.length, s = r[i] = new Array(a), f, u, c = 0; c < a; ++c) + (f = o[c]) && (u = t.call(f, f.__data__, c, o)) && ("__data__" in f && (u.__data__ = f.__data__), s[c] = u); + return new F(r, this._parents); +} +function Be(t) { + return t == null ? [] : Array.isArray(t) ? t : Array.from(t); +} +function fr() { + return []; +} +function Ye(t) { + return t == null ? fr : function() { + return this.querySelectorAll(t); + }; +} +function hr(t) { + return function() { + return Be(t.apply(this, arguments)); + }; +} +function dr(t) { + typeof t == "function" ? t = hr(t) : t = Ye(t); + for (var e = this._groups, n = e.length, r = [], i = [], o = 0; o < n; ++o) + for (var a = e[o], s = a.length, f, u = 0; u < s; ++u) + (f = a[u]) && (r.push(t.call(f, f.__data__, u, a)), i.push(f)); + return new F(r, i); +} +function Ue(t) { + return function() { + return this.matches(t); + }; +} +function Ge(t) { + return function(e) { + return e.matches(t); + }; +} +var pr = Array.prototype.find; +function gr(t) { + return function() { + return pr.call(this.children, t); + }; +} +function yr() { + return this.firstElementChild; +} +function mr(t) { + return this.select(t == null ? yr : gr(typeof t == "function" ? t : Ge(t))); +} +var _r = Array.prototype.filter; +function xr() { + return Array.from(this.children); +} +function wr(t) { + return function() { + return _r.call(this.children, t); + }; +} +function vr(t) { + return this.selectAll(t == null ? xr : wr(typeof t == "function" ? t : Ge(t))); +} +function br(t) { + typeof t != "function" && (t = Ue(t)); + for (var e = this._groups, n = e.length, r = new Array(n), i = 0; i < n; ++i) + for (var o = e[i], a = o.length, s = r[i] = [], f, u = 0; u < a; ++u) + (f = o[u]) && t.call(f, f.__data__, u, o) && s.push(f); + return new F(r, this._parents); +} +function Ke(t) { + return new Array(t.length); +} +function kr() { + return new F(this._enter || this._groups.map(Ke), this._parents); +} +function Lt(t, e) { + this.ownerDocument = t.ownerDocument, this.namespaceURI = t.namespaceURI, this._next = null, this._parent = t, this.__data__ = e; +} +Lt.prototype = { + constructor: Lt, + appendChild: function(t) { + return this._parent.insertBefore(t, this._next); + }, + insertBefore: function(t, e) { + return this._parent.insertBefore(t, e); + }, + querySelector: function(t) { + return this._parent.querySelector(t); + }, + querySelectorAll: function(t) { + return this._parent.querySelectorAll(t); + } +}; +function $r(t) { + return function() { + return t; + }; +} +function Nr(t, e, n, r, i, o) { + for (var a = 0, s, f = e.length, u = o.length; a < u; ++a) + (s = e[a]) ? (s.__data__ = o[a], r[a] = s) : n[a] = new Lt(t, o[a]); + for (; a < f; ++a) + (s = e[a]) && (i[a] = s); +} +function Ar(t, e, n, r, i, o, a) { + var s, f, u = /* @__PURE__ */ new Map(), c = e.length, d = o.length, l = new Array(c), p; + for (s = 0; s < c; ++s) + (f = e[s]) && (l[s] = p = a.call(f, f.__data__, s, e) + "", u.has(p) ? i[s] = f : u.set(p, f)); + for (s = 0; s < d; ++s) + p = a.call(t, o[s], s, o) + "", (f = u.get(p)) ? (r[s] = f, f.__data__ = o[s], u.delete(p)) : n[s] = new Lt(t, o[s]); + for (s = 0; s < c; ++s) + (f = e[s]) && u.get(l[s]) === f && (i[s] = f); +} +function zr(t) { + return t.__data__; +} +function Sr(t, e) { + if (!arguments.length) + return Array.from(this, zr); + var n = e ? Ar : Nr, r = this._parents, i = this._groups; + typeof t != "function" && (t = $r(t)); + for (var o = i.length, a = new Array(o), s = new Array(o), f = new Array(o), u = 0; u < o; ++u) { + var c = r[u], d = i[u], l = d.length, p = Er(t.call(c, c && c.__data__, u, r)), m = p.length, _ = s[u] = new Array(m), x = a[u] = new Array(m), y = f[u] = new Array(l); + n(c, d, _, x, y, p, e); + for (var w = 0, z = 0, A, E; w < m; ++w) + if (A = _[w]) { + for (w >= z && (z = w + 1); !(E = x[z]) && ++z < m; ) + ; + A._next = E || null; + } + } + return a = new F(a, r), a._enter = s, a._exit = f, a; +} +function Er(t) { + return typeof t == "object" && "length" in t ? t : Array.from(t); +} +function Mr() { + return new F(this._exit || this._groups.map(Ke), this._parents); +} +function Tr(t, e, n) { + var r = this.enter(), i = this, o = this.exit(); + return typeof t == "function" ? (r = t(r), r && (r = r.selection())) : r = r.append(t + ""), e != null && (i = e(i), i && (i = i.selection())), n == null ? o.remove() : n(o), r && i ? r.merge(i).order() : i; +} +function Cr(t) { + for (var e = t.selection ? t.selection() : t, n = this._groups, r = e._groups, i = n.length, o = r.length, a = Math.min(i, o), s = new Array(i), f = 0; f < a; ++f) + for (var u = n[f], c = r[f], d = u.length, l = s[f] = new Array(d), p, m = 0; m < d; ++m) + (p = u[m] || c[m]) && (l[m] = p); + for (; f < i; ++f) + s[f] = n[f]; + return new F(s, this._parents); +} +function Ir() { + for (var t = this._groups, e = -1, n = t.length; ++e < n; ) + for (var r = t[e], i = r.length - 1, o = r[i], a; --i >= 0; ) + (a = r[i]) && (o && a.compareDocumentPosition(o) ^ 4 && o.parentNode.insertBefore(a, o), o = a); + return this; +} +function Lr(t) { + t || (t = Fr); + function e(d, l) { + return d && l ? t(d.__data__, l.__data__) : !d - !l; + } + for (var n = this._groups, r = n.length, i = new Array(r), o = 0; o < r; ++o) { + for (var a = n[o], s = a.length, f = i[o] = new Array(s), u, c = 0; c < s; ++c) + (u = a[c]) && (f[c] = u); + f.sort(e); + } + return new F(i, this._parents).order(); +} +function Fr(t, e) { + return t < e ? -1 : t > e ? 1 : t >= e ? 0 : NaN; +} +function qr() { + var t = arguments[0]; + return arguments[0] = this, t.apply(null, arguments), this; +} +function Hr() { + return Array.from(this); +} +function Dr() { + for (var t = this._groups, e = 0, n = t.length; e < n; ++e) + for (var r = t[e], i = 0, o = r.length; i < o; ++i) { + var a = r[i]; + if (a) + return a; + } + return null; +} +function Rr() { + let t = 0; + for (const e of this) + ++t; + return t; +} +function Pr() { + return !this.node(); +} +function Or(t) { + for (var e = this._groups, n = 0, r = e.length; n < r; ++n) + for (var i = e[n], o = 0, a = i.length, s; o < a; ++o) + (s = i[o]) && t.call(s, s.__data__, o, i); + return this; +} +function Vr(t) { + return function() { + this.removeAttribute(t); + }; +} +function Xr(t) { + return function() { + this.removeAttributeNS(t.space, t.local); + }; +} +function Wr(t, e) { + return function() { + this.setAttribute(t, e); + }; +} +function Br(t, e) { + return function() { + this.setAttributeNS(t.space, t.local, e); + }; +} +function Yr(t, e) { + return function() { + var n = e.apply(this, arguments); + n == null ? this.removeAttribute(t) : this.setAttribute(t, n); + }; +} +function Ur(t, e) { + return function() { + var n = e.apply(this, arguments); + n == null ? this.removeAttributeNS(t.space, t.local) : this.setAttributeNS(t.space, t.local, n); + }; +} +function Gr(t, e) { + var n = Ot(t); + if (arguments.length < 2) { + var r = this.node(); + return n.local ? r.getAttributeNS(n.space, n.local) : r.getAttribute(n); + } + return this.each((e == null ? n.local ? Xr : Vr : typeof e == "function" ? n.local ? Ur : Yr : n.local ? Br : Wr)(n, e)); +} +function Ze(t) { + return t.ownerDocument && t.ownerDocument.defaultView || t.document && t || t.defaultView; +} +function Kr(t) { + return function() { + this.style.removeProperty(t); + }; +} +function Zr(t, e, n) { + return function() { + this.style.setProperty(t, e, n); + }; +} +function Qr(t, e, n) { + return function() { + var r = e.apply(this, arguments); + r == null ? this.style.removeProperty(t) : this.style.setProperty(t, r, n); + }; +} +function Jr(t, e, n) { + return arguments.length > 1 ? this.each((e == null ? Kr : typeof e == "function" ? Qr : Zr)(t, e, n ?? "")) : ut(this.node(), t); +} +function ut(t, e) { + return t.style.getPropertyValue(e) || Ze(t).getComputedStyle(t, null).getPropertyValue(e); +} +function jr(t) { + return function() { + delete this[t]; + }; +} +function ti(t, e) { + return function() { + this[t] = e; + }; +} +function ei(t, e) { + return function() { + var n = e.apply(this, arguments); + n == null ? delete this[t] : this[t] = n; + }; +} +function ni(t, e) { + return arguments.length > 1 ? this.each((e == null ? jr : typeof e == "function" ? ei : ti)(t, e)) : this.node()[t]; +} +function Qe(t) { + return t.trim().split(/^|\s+/); +} +function fe(t) { + return t.classList || new Je(t); +} +function Je(t) { + this._node = t, this._names = Qe(t.getAttribute("class") || ""); +} +Je.prototype = { + add: function(t) { + var e = this._names.indexOf(t); + e < 0 && (this._names.push(t), this._node.setAttribute("class", this._names.join(" "))); + }, + remove: function(t) { + var e = this._names.indexOf(t); + e >= 0 && (this._names.splice(e, 1), this._node.setAttribute("class", this._names.join(" "))); + }, + contains: function(t) { + return this._names.indexOf(t) >= 0; + } +}; +function je(t, e) { + for (var n = fe(t), r = -1, i = e.length; ++r < i; ) + n.add(e[r]); +} +function tn(t, e) { + for (var n = fe(t), r = -1, i = e.length; ++r < i; ) + n.remove(e[r]); +} +function ri(t) { + return function() { + je(this, t); + }; +} +function ii(t) { + return function() { + tn(this, t); + }; +} +function oi(t, e) { + return function() { + (e.apply(this, arguments) ? je : tn)(this, t); + }; +} +function ai(t, e) { + var n = Qe(t + ""); + if (arguments.length < 2) { + for (var r = fe(this.node()), i = -1, o = n.length; ++i < o; ) + if (!r.contains(n[i])) + return !1; + return !0; + } + return this.each((typeof e == "function" ? oi : e ? ri : ii)(n, e)); +} +function ui() { + this.textContent = ""; +} +function si(t) { + return function() { + this.textContent = t; + }; +} +function ci(t) { + return function() { + var e = t.apply(this, arguments); + this.textContent = e ?? ""; + }; +} +function li(t) { + return arguments.length ? this.each(t == null ? ui : (typeof t == "function" ? ci : si)(t)) : this.node().textContent; +} +function fi() { + this.innerHTML = ""; +} +function hi(t) { + return function() { + this.innerHTML = t; + }; +} +function di(t) { + return function() { + var e = t.apply(this, arguments); + this.innerHTML = e ?? ""; + }; +} +function pi(t) { + return arguments.length ? this.each(t == null ? fi : (typeof t == "function" ? di : hi)(t)) : this.node().innerHTML; +} +function gi() { + this.nextSibling && this.parentNode.appendChild(this); +} +function yi() { + return this.each(gi); +} +function mi() { + this.previousSibling && this.parentNode.insertBefore(this, this.parentNode.firstChild); +} +function _i() { + return this.each(mi); +} +function xi(t) { + var e = typeof t == "function" ? t : We(t); + return this.select(function() { + return this.appendChild(e.apply(this, arguments)); + }); +} +function wi() { + return null; +} +function vi(t, e) { + var n = typeof t == "function" ? t : We(t), r = e == null ? wi : typeof e == "function" ? e : le(e); + return this.select(function() { + return this.insertBefore(n.apply(this, arguments), r.apply(this, arguments) || null); + }); +} +function bi() { + var t = this.parentNode; + t && t.removeChild(this); +} +function ki() { + return this.each(bi); +} +function $i() { + var t = this.cloneNode(!1), e = this.parentNode; + return e ? e.insertBefore(t, this.nextSibling) : t; +} +function Ni() { + var t = this.cloneNode(!0), e = this.parentNode; + return e ? e.insertBefore(t, this.nextSibling) : t; +} +function Ai(t) { + return this.select(t ? Ni : $i); +} +function zi(t) { + return arguments.length ? this.property("__data__", t) : this.node().__data__; +} +function Si(t) { + return function(e) { + t.call(this, e, this.__data__); + }; +} +function Ei(t) { + return t.trim().split(/^|\s+/).map(function(e) { + var n = "", r = e.indexOf("."); + return r >= 0 && (n = e.slice(r + 1), e = e.slice(0, r)), { type: e, name: n }; + }); +} +function Mi(t) { + return function() { + var e = this.__on; + if (e) { + for (var n = 0, r = -1, i = e.length, o; n < i; ++n) + o = e[n], (!t.type || o.type === t.type) && o.name === t.name ? this.removeEventListener(o.type, o.listener, o.options) : e[++r] = o; + ++r ? e.length = r : delete this.__on; + } + }; +} +function Ti(t, e, n) { + return function() { + var r = this.__on, i, o = Si(e); + if (r) { + for (var a = 0, s = r.length; a < s; ++a) + if ((i = r[a]).type === t.type && i.name === t.name) { + this.removeEventListener(i.type, i.listener, i.options), this.addEventListener(i.type, i.listener = o, i.options = n), i.value = e; + return; + } + } + this.addEventListener(t.type, o, n), i = { type: t.type, name: t.name, value: e, listener: o, options: n }, r ? r.push(i) : this.__on = [i]; + }; +} +function Ci(t, e, n) { + var r = Ei(t + ""), i, o = r.length, a; + if (arguments.length < 2) { + var s = this.node().__on; + if (s) { + for (var f = 0, u = s.length, c; f < u; ++f) + for (i = 0, c = s[f]; i < o; ++i) + if ((a = r[i]).type === c.type && a.name === c.name) + return c.value; + } + return; + } + for (s = e ? Ti : Mi, i = 0; i < o; ++i) + this.each(s(r[i], e, n)); + return this; +} +function en(t, e, n) { + var r = Ze(t), i = r.CustomEvent; + typeof i == "function" ? i = new i(e, n) : (i = r.document.createEvent("Event"), n ? (i.initEvent(e, n.bubbles, n.cancelable), i.detail = n.detail) : i.initEvent(e, !1, !1)), t.dispatchEvent(i); +} +function Ii(t, e) { + return function() { + return en(this, t, e); + }; +} +function Li(t, e) { + return function() { + return en(this, t, e.apply(this, arguments)); + }; +} +function Fi(t, e) { + return this.each((typeof e == "function" ? Li : Ii)(t, e)); +} +function* qi() { + for (var t = this._groups, e = 0, n = t.length; e < n; ++e) + for (var r = t[e], i = 0, o = r.length, a; i < o; ++i) + (a = r[i]) && (yield a); +} +var he = [null]; +function F(t, e) { + this._groups = t, this._parents = e; +} +function xt() { + return new F([[document.documentElement]], he); +} +function Hi() { + return this; +} +F.prototype = xt.prototype = { + constructor: F, + select: lr, + selectAll: dr, + selectChild: mr, + selectChildren: vr, + filter: br, + data: Sr, + enter: kr, + exit: Mr, + join: Tr, + merge: Cr, + selection: Hi, + order: Ir, + sort: Lr, + call: qr, + nodes: Hr, + node: Dr, + size: Rr, + empty: Pr, + each: Or, + attr: Gr, + style: Jr, + property: ni, + classed: ai, + text: li, + html: pi, + raise: yi, + lower: _i, + append: xi, + insert: vi, + remove: ki, + clone: Ai, + datum: zi, + on: Ci, + dispatch: Fi, + [Symbol.iterator]: qi +}; +function Q(t) { + return typeof t == "string" ? new F([[document.querySelector(t)]], [document.documentElement]) : new F([[t]], he); +} +function Di(t) { + let e; + for (; e = t.sourceEvent; ) + t = e; + return t; +} +function j(t, e) { + if (t = Di(t), e === void 0 && (e = t.currentTarget), e) { + var n = e.ownerSVGElement || e; + if (n.createSVGPoint) { + var r = n.createSVGPoint(); + return r.x = t.clientX, r.y = t.clientY, r = r.matrixTransform(e.getScreenCTM().inverse()), [r.x, r.y]; + } + if (e.getBoundingClientRect) { + var i = e.getBoundingClientRect(); + return [t.clientX - i.left - e.clientLeft, t.clientY - i.top - e.clientTop]; + } + } + return [t.pageX, t.pageY]; +} +function Ri(t) { + return typeof t == "string" ? new F([document.querySelectorAll(t)], [document.documentElement]) : new F([Be(t)], he); +} +var Pi = { value: () => { +} }; +function de() { + for (var t = 0, e = arguments.length, n = {}, r; t < e; ++t) { + if (!(r = arguments[t] + "") || r in n || /[\s.]/.test(r)) + throw new Error("illegal type: " + r); + n[r] = []; + } + return new Mt(n); +} +function Mt(t) { + this._ = t; +} +function Oi(t, e) { + return t.trim().split(/^|\s+/).map(function(n) { + var r = "", i = n.indexOf("."); + if (i >= 0 && (r = n.slice(i + 1), n = n.slice(0, i)), n && !e.hasOwnProperty(n)) + throw new Error("unknown type: " + n); + return { type: n, name: r }; + }); +} +Mt.prototype = de.prototype = { + constructor: Mt, + on: function(t, e) { + var n = this._, r = Oi(t + "", n), i, o = -1, a = r.length; + if (arguments.length < 2) { + for (; ++o < a; ) + if ((i = (t = r[o]).type) && (i = Vi(n[i], t.name))) + return i; + return; + } + if (e != null && typeof e != "function") + throw new Error("invalid callback: " + e); + for (; ++o < a; ) + if (i = (t = r[o]).type) + n[i] = ke(n[i], t.name, e); + else if (e == null) + for (i in n) + n[i] = ke(n[i], t.name, null); + return this; + }, + copy: function() { + var t = {}, e = this._; + for (var n in e) + t[n] = e[n].slice(); + return new Mt(t); + }, + call: function(t, e) { + if ((i = arguments.length - 2) > 0) + for (var n = new Array(i), r = 0, i, o; r < i; ++r) + n[r] = arguments[r + 2]; + if (!this._.hasOwnProperty(t)) + throw new Error("unknown type: " + t); + for (o = this._[t], r = 0, i = o.length; r < i; ++r) + o[r].value.apply(e, n); + }, + apply: function(t, e, n) { + if (!this._.hasOwnProperty(t)) + throw new Error("unknown type: " + t); + for (var r = this._[t], i = 0, o = r.length; i < o; ++i) + r[i].value.apply(e, n); + } +}; +function Vi(t, e) { + for (var n = 0, r = t.length, i; n < r; ++n) + if ((i = t[n]).name === e) + return i.value; +} +function ke(t, e, n) { + for (var r = 0, i = t.length; r < i; ++r) + if (t[r].name === e) { + t[r] = Pi, t = t.slice(0, r).concat(t.slice(r + 1)); + break; + } + return n != null && t.push({ name: e, value: n }), t; +} +const ee = { capture: !0, passive: !1 }; +function ne(t) { + t.preventDefault(), t.stopImmediatePropagation(); +} +function Xi(t) { + var e = t.document.documentElement, n = Q(t).on("dragstart.drag", ne, ee); + "onselectstart" in e ? n.on("selectstart.drag", ne, ee) : (e.__noselect = e.style.MozUserSelect, e.style.MozUserSelect = "none"); +} +function Wi(t, e) { + var n = t.document.documentElement, r = Q(t).on("dragstart.drag", null); + e && (r.on("click.drag", ne, ee), setTimeout(function() { + r.on("click.drag", null); + }, 0)), "onselectstart" in n ? r.on("selectstart.drag", null) : (n.style.MozUserSelect = n.__noselect, delete n.__noselect); +} +function pe(t, e, n) { + t.prototype = e.prototype = n, n.constructor = t; +} +function nn(t, e) { + var n = Object.create(t.prototype); + for (var r in e) + n[r] = e[r]; + return n; +} +function wt() { +} +var gt = 0.7, Ft = 1 / gt, ot = "\\s*([+-]?\\d+)\\s*", yt = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", V = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", Bi = /^#([0-9a-f]{3,8})$/, Yi = new RegExp(`^rgb\\(${ot},${ot},${ot}\\)$`), Ui = new RegExp(`^rgb\\(${V},${V},${V}\\)$`), Gi = new RegExp(`^rgba\\(${ot},${ot},${ot},${yt}\\)$`), Ki = new RegExp(`^rgba\\(${V},${V},${V},${yt}\\)$`), Zi = new RegExp(`^hsl\\(${yt},${V},${V}\\)$`), Qi = new RegExp(`^hsla\\(${yt},${V},${V},${yt}\\)$`), $e = { + 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 +}; +pe(wt, mt, { + copy(t) { + return Object.assign(new this.constructor(), this, t); + }, + displayable() { + return this.rgb().displayable(); + }, + hex: Ne, + // Deprecated! Use color.formatHex. + formatHex: Ne, + formatHex8: Ji, + formatHsl: ji, + formatRgb: Ae, + toString: Ae +}); +function Ne() { + return this.rgb().formatHex(); +} +function Ji() { + return this.rgb().formatHex8(); +} +function ji() { + return rn(this).formatHsl(); +} +function Ae() { + return this.rgb().formatRgb(); +} +function mt(t) { + var e, n; + return t = (t + "").trim().toLowerCase(), (e = Bi.exec(t)) ? (n = e[1].length, e = parseInt(e[1], 16), n === 6 ? ze(e) : n === 3 ? new q(e >> 8 & 15 | e >> 4 & 240, e >> 4 & 15 | e & 240, (e & 15) << 4 | e & 15, 1) : n === 8 ? Nt(e >> 24 & 255, e >> 16 & 255, e >> 8 & 255, (e & 255) / 255) : n === 4 ? Nt(e >> 12 & 15 | e >> 8 & 240, e >> 8 & 15 | e >> 4 & 240, e >> 4 & 15 | e & 240, ((e & 15) << 4 | e & 15) / 255) : null) : (e = Yi.exec(t)) ? new q(e[1], e[2], e[3], 1) : (e = Ui.exec(t)) ? new q(e[1] * 255 / 100, e[2] * 255 / 100, e[3] * 255 / 100, 1) : (e = Gi.exec(t)) ? Nt(e[1], e[2], e[3], e[4]) : (e = Ki.exec(t)) ? Nt(e[1] * 255 / 100, e[2] * 255 / 100, e[3] * 255 / 100, e[4]) : (e = Zi.exec(t)) ? Me(e[1], e[2] / 100, e[3] / 100, 1) : (e = Qi.exec(t)) ? Me(e[1], e[2] / 100, e[3] / 100, e[4]) : $e.hasOwnProperty(t) ? ze($e[t]) : t === "transparent" ? new q(NaN, NaN, NaN, 0) : null; +} +function ze(t) { + return new q(t >> 16 & 255, t >> 8 & 255, t & 255, 1); +} +function Nt(t, e, n, r) { + return r <= 0 && (t = e = n = NaN), new q(t, e, n, r); +} +function to(t) { + return t instanceof wt || (t = mt(t)), t ? (t = t.rgb(), new q(t.r, t.g, t.b, t.opacity)) : new q(); +} +function re(t, e, n, r) { + return arguments.length === 1 ? to(t) : new q(t, e, n, r ?? 1); +} +function q(t, e, n, r) { + this.r = +t, this.g = +e, this.b = +n, this.opacity = +r; +} +pe(q, re, nn(wt, { + brighter(t) { + return t = t == null ? Ft : Math.pow(Ft, t), new q(this.r * t, this.g * t, this.b * t, this.opacity); + }, + darker(t) { + return t = t == null ? gt : Math.pow(gt, t), new q(this.r * t, this.g * t, this.b * t, this.opacity); + }, + rgb() { + return this; + }, + clamp() { + return new q(et(this.r), et(this.g), et(this.b), qt(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: Se, + // Deprecated! Use color.formatHex. + formatHex: Se, + formatHex8: eo, + formatRgb: Ee, + toString: Ee +})); +function Se() { + return `#${tt(this.r)}${tt(this.g)}${tt(this.b)}`; +} +function eo() { + return `#${tt(this.r)}${tt(this.g)}${tt(this.b)}${tt((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`; +} +function Ee() { + const t = qt(this.opacity); + return `${t === 1 ? "rgb(" : "rgba("}${et(this.r)}, ${et(this.g)}, ${et(this.b)}${t === 1 ? ")" : `, ${t})`}`; +} +function qt(t) { + return isNaN(t) ? 1 : Math.max(0, Math.min(1, t)); +} +function et(t) { + return Math.max(0, Math.min(255, Math.round(t) || 0)); +} +function tt(t) { + return t = et(t), (t < 16 ? "0" : "") + t.toString(16); +} +function Me(t, e, n, r) { + return r <= 0 ? t = e = n = NaN : n <= 0 || n >= 1 ? t = e = NaN : e <= 0 && (t = NaN), new R(t, e, n, r); +} +function rn(t) { + if (t instanceof R) + return new R(t.h, t.s, t.l, t.opacity); + if (t instanceof wt || (t = mt(t)), !t) + return new R(); + if (t instanceof R) + return t; + t = t.rgb(); + var e = t.r / 255, n = t.g / 255, r = t.b / 255, i = Math.min(e, n, r), o = Math.max(e, n, r), a = NaN, s = o - i, f = (o + i) / 2; + return s ? (e === o ? a = (n - r) / s + (n < r) * 6 : n === o ? a = (r - e) / s + 2 : a = (e - n) / s + 4, s /= f < 0.5 ? o + i : 2 - o - i, a *= 60) : s = f > 0 && f < 1 ? 0 : a, new R(a, s, f, t.opacity); +} +function no(t, e, n, r) { + return arguments.length === 1 ? rn(t) : new R(t, e, n, r ?? 1); +} +function R(t, e, n, r) { + this.h = +t, this.s = +e, this.l = +n, this.opacity = +r; +} +pe(R, no, nn(wt, { + brighter(t) { + return t = t == null ? Ft : Math.pow(Ft, t), new R(this.h, this.s, this.l * t, this.opacity); + }, + darker(t) { + return t = t == null ? gt : Math.pow(gt, t), new R(this.h, this.s, this.l * t, this.opacity); + }, + rgb() { + var t = this.h % 360 + (this.h < 0) * 360, e = isNaN(t) || isNaN(this.s) ? 0 : this.s, n = this.l, r = n + (n < 0.5 ? n : 1 - n) * e, i = 2 * n - r; + return new q( + Kt(t >= 240 ? t - 240 : t + 120, i, r), + Kt(t, i, r), + Kt(t < 120 ? t + 240 : t - 120, i, r), + this.opacity + ); + }, + clamp() { + return new R(Te(this.h), At(this.s), At(this.l), qt(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 = qt(this.opacity); + return `${t === 1 ? "hsl(" : "hsla("}${Te(this.h)}, ${At(this.s) * 100}%, ${At(this.l) * 100}%${t === 1 ? ")" : `, ${t})`}`; + } +})); +function Te(t) { + return t = (t || 0) % 360, t < 0 ? t + 360 : t; +} +function At(t) { + return Math.max(0, Math.min(1, t || 0)); +} +function Kt(t, e, n) { + return (t < 60 ? e + (n - e) * t / 60 : t < 180 ? n : t < 240 ? e + (n - e) * (240 - t) / 60 : e) * 255; +} +const on = (t) => () => t; +function ro(t, e) { + return function(n) { + return t + n * e; + }; +} +function io(t, e, n) { + return t = Math.pow(t, n), e = Math.pow(e, n) - t, n = 1 / n, function(r) { + return Math.pow(t + r * e, n); + }; +} +function oo(t) { + return (t = +t) == 1 ? an : function(e, n) { + return n - e ? io(e, n, t) : on(isNaN(e) ? n : e); + }; +} +function an(t, e) { + var n = e - t; + return n ? ro(t, n) : on(isNaN(t) ? e : t); +} +const Ce = function t(e) { + var n = oo(e); + function r(i, o) { + var a = n((i = re(i)).r, (o = re(o)).r), s = n(i.g, o.g), f = n(i.b, o.b), u = an(i.opacity, o.opacity); + return function(c) { + return i.r = a(c), i.g = s(c), i.b = f(c), i.opacity = u(c), i + ""; + }; + } + return r.gamma = t, r; +}(1); +function Z(t, e) { + return t = +t, e = +e, function(n) { + return t * (1 - n) + e * n; + }; +} +var ie = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, Zt = new RegExp(ie.source, "g"); +function ao(t) { + return function() { + return t; + }; +} +function uo(t) { + return function(e) { + return t(e) + ""; + }; +} +function so(t, e) { + var n = ie.lastIndex = Zt.lastIndex = 0, r, i, o, a = -1, s = [], f = []; + for (t = t + "", e = e + ""; (r = ie.exec(t)) && (i = Zt.exec(e)); ) + (o = i.index) > n && (o = e.slice(n, o), s[a] ? s[a] += o : s[++a] = o), (r = r[0]) === (i = i[0]) ? s[a] ? s[a] += i : s[++a] = i : (s[++a] = null, f.push({ i: a, x: Z(r, i) })), n = Zt.lastIndex; + return n < e.length && (o = e.slice(n), s[a] ? s[a] += o : s[++a] = o), s.length < 2 ? f[0] ? uo(f[0].x) : ao(e) : (e = f.length, function(u) { + for (var c = 0, d; c < e; ++c) + s[(d = f[c]).i] = d.x(u); + return s.join(""); + }); +} +var Ie = 180 / Math.PI, oe = { + translateX: 0, + translateY: 0, + rotate: 0, + skewX: 0, + scaleX: 1, + scaleY: 1 +}; +function un(t, e, n, r, i, o) { + var a, s, f; + return (a = Math.sqrt(t * t + e * e)) && (t /= a, e /= a), (f = t * n + e * r) && (n -= t * f, r -= e * f), (s = Math.sqrt(n * n + r * r)) && (n /= s, r /= s, f /= s), t * r < e * n && (t = -t, e = -e, f = -f, a = -a), { + translateX: i, + translateY: o, + rotate: Math.atan2(e, t) * Ie, + skewX: Math.atan(f) * Ie, + scaleX: a, + scaleY: s + }; +} +var zt; +function co(t) { + const e = new (typeof DOMMatrix == "function" ? DOMMatrix : WebKitCSSMatrix)(t + ""); + return e.isIdentity ? oe : un(e.a, e.b, e.c, e.d, e.e, e.f); +} +function lo(t) { + return t == null || (zt || (zt = document.createElementNS("http://www.w3.org/2000/svg", "g")), zt.setAttribute("transform", t), !(t = zt.transform.baseVal.consolidate())) ? oe : (t = t.matrix, un(t.a, t.b, t.c, t.d, t.e, t.f)); +} +function sn(t, e, n, r) { + function i(u) { + return u.length ? u.pop() + " " : ""; + } + function o(u, c, d, l, p, m) { + if (u !== d || c !== l) { + var _ = p.push("translate(", null, e, null, n); + m.push({ i: _ - 4, x: Z(u, d) }, { i: _ - 2, x: Z(c, l) }); + } else + (d || l) && p.push("translate(" + d + e + l + n); + } + function a(u, c, d, l) { + u !== c ? (u - c > 180 ? c += 360 : c - u > 180 && (u += 360), l.push({ i: d.push(i(d) + "rotate(", null, r) - 2, x: Z(u, c) })) : c && d.push(i(d) + "rotate(" + c + r); + } + function s(u, c, d, l) { + u !== c ? l.push({ i: d.push(i(d) + "skewX(", null, r) - 2, x: Z(u, c) }) : c && d.push(i(d) + "skewX(" + c + r); + } + function f(u, c, d, l, p, m) { + if (u !== d || c !== l) { + var _ = p.push(i(p) + "scale(", null, ",", null, ")"); + m.push({ i: _ - 4, x: Z(u, d) }, { i: _ - 2, x: Z(c, l) }); + } else + (d !== 1 || l !== 1) && p.push(i(p) + "scale(" + d + "," + l + ")"); + } + return function(u, c) { + var d = [], l = []; + return u = t(u), c = t(c), o(u.translateX, u.translateY, c.translateX, c.translateY, d, l), a(u.rotate, c.rotate, d, l), s(u.skewX, c.skewX, d, l), f(u.scaleX, u.scaleY, c.scaleX, c.scaleY, d, l), u = c = null, function(p) { + for (var m = -1, _ = l.length, x; ++m < _; ) + d[(x = l[m]).i] = x.x(p); + return d.join(""); + }; + }; +} +var fo = sn(co, "px, ", "px)", "deg)"), ho = sn(lo, ", ", ")", ")"), po = 1e-12; +function Le(t) { + return ((t = Math.exp(t)) + 1 / t) / 2; +} +function go(t) { + return ((t = Math.exp(t)) - 1 / t) / 2; +} +function yo(t) { + return ((t = Math.exp(2 * t)) - 1) / (t + 1); +} +const mo = function t(e, n, r) { + function i(o, a) { + var s = o[0], f = o[1], u = o[2], c = a[0], d = a[1], l = a[2], p = c - s, m = d - f, _ = p * p + m * m, x, y; + if (_ < po) + y = Math.log(l / u) / e, x = function(K) { + return [ + s + K * p, + f + K * m, + u * Math.exp(e * K * y) + ]; + }; + else { + var w = Math.sqrt(_), z = (l * l - u * u + r * _) / (2 * u * n * w), A = (l * l - u * u - r * _) / (2 * l * n * w), E = Math.log(Math.sqrt(z * z + 1) - z), C = Math.log(Math.sqrt(A * A + 1) - A); + y = (C - E) / e, x = function(K) { + var bt = K * y, kt = Le(E), $t = u / (n * w) * (kt * yo(e * bt + E) - go(E)); + return [ + s + $t * p, + f + $t * m, + u * kt / Le(e * bt + E) + ]; + }; + } + return x.duration = y * 1e3 * e / Math.SQRT2, x; + } + return i.rho = function(o) { + var a = Math.max(1e-3, +o), s = a * a, f = s * s; + return t(a, s, f); + }, i; +}(Math.SQRT2, 2, 4); +var st = 0, dt = 0, ft = 0, cn = 1e3, Ht, pt, Dt = 0, nt = 0, Vt = 0, _t = typeof performance == "object" && performance.now ? performance : Date, ln = typeof window == "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(t) { + setTimeout(t, 17); +}; +function ge() { + return nt || (ln(_o), nt = _t.now() + Vt); +} +function _o() { + nt = 0; +} +function Rt() { + this._call = this._time = this._next = null; +} +Rt.prototype = fn.prototype = { + constructor: Rt, + restart: function(t, e, n) { + if (typeof t != "function") + throw new TypeError("callback is not a function"); + n = (n == null ? ge() : +n) + (e == null ? 0 : +e), !this._next && pt !== this && (pt ? pt._next = this : Ht = this, pt = this), this._call = t, this._time = n, ae(); + }, + stop: function() { + this._call && (this._call = null, this._time = 1 / 0, ae()); + } +}; +function fn(t, e, n) { + var r = new Rt(); + return r.restart(t, e, n), r; +} +function xo() { + ge(), ++st; + for (var t = Ht, e; t; ) + (e = nt - t._time) >= 0 && t._call.call(void 0, e), t = t._next; + --st; +} +function Fe() { + nt = (Dt = _t.now()) + Vt, st = dt = 0; + try { + xo(); + } finally { + st = 0, vo(), nt = 0; + } +} +function wo() { + var t = _t.now(), e = t - Dt; + e > cn && (Vt -= e, Dt = t); +} +function vo() { + for (var t, e = Ht, n, r = 1 / 0; e; ) + e._call ? (r > e._time && (r = e._time), t = e, e = e._next) : (n = e._next, e._next = null, e = t ? t._next = n : Ht = n); + pt = t, ae(r); +} +function ae(t) { + if (!st) { + dt && (dt = clearTimeout(dt)); + var e = t - nt; + e > 24 ? (t < 1 / 0 && (dt = setTimeout(Fe, t - _t.now() - Vt)), ft && (ft = clearInterval(ft))) : (ft || (Dt = _t.now(), ft = setInterval(wo, cn)), st = 1, ln(Fe)); + } +} +function qe(t, e, n) { + var r = new Rt(); + return e = e == null ? 0 : +e, r.restart((i) => { + r.stop(), t(i + e); + }, e, n), r; +} +var bo = de("start", "end", "cancel", "interrupt"), ko = [], hn = 0, He = 1, ue = 2, Tt = 3, De = 4, se = 5, Ct = 6; +function Xt(t, e, n, r, i, o) { + var a = t.__transition; + if (!a) + t.__transition = {}; + else if (n in a) + return; + $o(t, n, { + name: e, + index: r, + // For context during callback. + group: i, + // For context during callback. + on: bo, + tween: ko, + time: o.time, + delay: o.delay, + duration: o.duration, + ease: o.ease, + timer: null, + state: hn + }); +} +function ye(t, e) { + var n = P(t, e); + if (n.state > hn) + throw new Error("too late; already scheduled"); + return n; +} +function X(t, e) { + var n = P(t, e); + if (n.state > Tt) + throw new Error("too late; already running"); + return n; +} +function P(t, e) { + var n = t.__transition; + if (!n || !(n = n[e])) + throw new Error("transition not found"); + return n; +} +function $o(t, e, n) { + var r = t.__transition, i; + r[e] = n, n.timer = fn(o, 0, n.time); + function o(u) { + n.state = He, n.timer.restart(a, n.delay, n.time), n.delay <= u && a(u - n.delay); + } + function a(u) { + var c, d, l, p; + if (n.state !== He) + return f(); + for (c in r) + if (p = r[c], p.name === n.name) { + if (p.state === Tt) + return qe(a); + p.state === De ? (p.state = Ct, p.timer.stop(), p.on.call("interrupt", t, t.__data__, p.index, p.group), delete r[c]) : +c < e && (p.state = Ct, p.timer.stop(), p.on.call("cancel", t, t.__data__, p.index, p.group), delete r[c]); + } + if (qe(function() { + n.state === Tt && (n.state = De, n.timer.restart(s, n.delay, n.time), s(u)); + }), n.state = ue, n.on.call("start", t, t.__data__, n.index, n.group), n.state === ue) { + for (n.state = Tt, i = new Array(l = n.tween.length), c = 0, d = -1; c < l; ++c) + (p = n.tween[c].value.call(t, t.__data__, n.index, n.group)) && (i[++d] = p); + i.length = d + 1; + } + } + function s(u) { + for (var c = u < n.duration ? n.ease.call(null, u / n.duration) : (n.timer.restart(f), n.state = se, 1), d = -1, l = i.length; ++d < l; ) + i[d].call(t, c); + n.state === se && (n.on.call("end", t, t.__data__, n.index, n.group), f()); + } + function f() { + n.state = Ct, n.timer.stop(), delete r[e]; + for (var u in r) + return; + delete t.__transition; + } +} +function It(t, e) { + var n = t.__transition, r, i, o = !0, a; + if (n) { + e = e == null ? null : e + ""; + for (a in n) { + if ((r = n[a]).name !== e) { + o = !1; + continue; + } + i = r.state > ue && r.state < se, r.state = Ct, r.timer.stop(), r.on.call(i ? "interrupt" : "cancel", t, t.__data__, r.index, r.group), delete n[a]; + } + o && delete t.__transition; + } +} +function No(t) { + return this.each(function() { + It(this, t); + }); +} +function Ao(t, e) { + var n, r; + return function() { + var i = X(this, t), o = i.tween; + if (o !== n) { + r = n = o; + for (var a = 0, s = r.length; a < s; ++a) + if (r[a].name === e) { + r = r.slice(), r.splice(a, 1); + break; + } + } + i.tween = r; + }; +} +function zo(t, e, n) { + var r, i; + if (typeof n != "function") + throw new Error(); + return function() { + var o = X(this, t), a = o.tween; + if (a !== r) { + i = (r = a).slice(); + for (var s = { name: e, value: n }, f = 0, u = i.length; f < u; ++f) + if (i[f].name === e) { + i[f] = s; + break; + } + f === u && i.push(s); + } + o.tween = i; + }; +} +function So(t, e) { + var n = this._id; + if (t += "", arguments.length < 2) { + for (var r = P(this.node(), n).tween, i = 0, o = r.length, a; i < o; ++i) + if ((a = r[i]).name === t) + return a.value; + return null; + } + return this.each((e == null ? Ao : zo)(n, t, e)); +} +function me(t, e, n) { + var r = t._id; + return t.each(function() { + var i = X(this, r); + (i.value || (i.value = {}))[e] = n.apply(this, arguments); + }), function(i) { + return P(i, r).value[e]; + }; +} +function dn(t, e) { + var n; + return (typeof e == "number" ? Z : e instanceof mt ? Ce : (n = mt(e)) ? (e = n, Ce) : so)(t, e); +} +function Eo(t) { + return function() { + this.removeAttribute(t); + }; +} +function Mo(t) { + return function() { + this.removeAttributeNS(t.space, t.local); + }; +} +function To(t, e, n) { + var r, i = n + "", o; + return function() { + var a = this.getAttribute(t); + return a === i ? null : a === r ? o : o = e(r = a, n); + }; +} +function Co(t, e, n) { + var r, i = n + "", o; + return function() { + var a = this.getAttributeNS(t.space, t.local); + return a === i ? null : a === r ? o : o = e(r = a, n); + }; +} +function Io(t, e, n) { + var r, i, o; + return function() { + var a, s = n(this), f; + return s == null ? void this.removeAttribute(t) : (a = this.getAttribute(t), f = s + "", a === f ? null : a === r && f === i ? o : (i = f, o = e(r = a, s))); + }; +} +function Lo(t, e, n) { + var r, i, o; + return function() { + var a, s = n(this), f; + return s == null ? void this.removeAttributeNS(t.space, t.local) : (a = this.getAttributeNS(t.space, t.local), f = s + "", a === f ? null : a === r && f === i ? o : (i = f, o = e(r = a, s))); + }; +} +function Fo(t, e) { + var n = Ot(t), r = n === "transform" ? ho : dn; + return this.attrTween(t, typeof e == "function" ? (n.local ? Lo : Io)(n, r, me(this, "attr." + t, e)) : e == null ? (n.local ? Mo : Eo)(n) : (n.local ? Co : To)(n, r, e)); +} +function qo(t, e) { + return function(n) { + this.setAttribute(t, e.call(this, n)); + }; +} +function Ho(t, e) { + return function(n) { + this.setAttributeNS(t.space, t.local, e.call(this, n)); + }; +} +function Do(t, e) { + var n, r; + function i() { + var o = e.apply(this, arguments); + return o !== r && (n = (r = o) && Ho(t, o)), n; + } + return i._value = e, i; +} +function Ro(t, e) { + var n, r; + function i() { + var o = e.apply(this, arguments); + return o !== r && (n = (r = o) && qo(t, o)), n; + } + return i._value = e, i; +} +function Po(t, e) { + var n = "attr." + t; + if (arguments.length < 2) + return (n = this.tween(n)) && n._value; + if (e == null) + return this.tween(n, null); + if (typeof e != "function") + throw new Error(); + var r = Ot(t); + return this.tween(n, (r.local ? Do : Ro)(r, e)); +} +function Oo(t, e) { + return function() { + ye(this, t).delay = +e.apply(this, arguments); + }; +} +function Vo(t, e) { + return e = +e, function() { + ye(this, t).delay = e; + }; +} +function Xo(t) { + var e = this._id; + return arguments.length ? this.each((typeof t == "function" ? Oo : Vo)(e, t)) : P(this.node(), e).delay; +} +function Wo(t, e) { + return function() { + X(this, t).duration = +e.apply(this, arguments); + }; +} +function Bo(t, e) { + return e = +e, function() { + X(this, t).duration = e; + }; +} +function Yo(t) { + var e = this._id; + return arguments.length ? this.each((typeof t == "function" ? Wo : Bo)(e, t)) : P(this.node(), e).duration; +} +function Uo(t, e) { + if (typeof e != "function") + throw new Error(); + return function() { + X(this, t).ease = e; + }; +} +function Go(t) { + var e = this._id; + return arguments.length ? this.each(Uo(e, t)) : P(this.node(), e).ease; +} +function Ko(t, e) { + return function() { + var n = e.apply(this, arguments); + if (typeof n != "function") + throw new Error(); + X(this, t).ease = n; + }; +} +function Zo(t) { + if (typeof t != "function") + throw new Error(); + return this.each(Ko(this._id, t)); +} +function Qo(t) { + typeof t != "function" && (t = Ue(t)); + for (var e = this._groups, n = e.length, r = new Array(n), i = 0; i < n; ++i) + for (var o = e[i], a = o.length, s = r[i] = [], f, u = 0; u < a; ++u) + (f = o[u]) && t.call(f, f.__data__, u, o) && s.push(f); + return new G(r, this._parents, this._name, this._id); +} +function Jo(t) { + if (t._id !== this._id) + throw new Error(); + for (var e = this._groups, n = t._groups, r = e.length, i = n.length, o = Math.min(r, i), a = new Array(r), s = 0; s < o; ++s) + for (var f = e[s], u = n[s], c = f.length, d = a[s] = new Array(c), l, p = 0; p < c; ++p) + (l = f[p] || u[p]) && (d[p] = l); + for (; s < r; ++s) + a[s] = e[s]; + return new G(a, this._parents, this._name, this._id); +} +function jo(t) { + return (t + "").trim().split(/^|\s+/).every(function(e) { + var n = e.indexOf("."); + return n >= 0 && (e = e.slice(0, n)), !e || e === "start"; + }); +} +function ta(t, e, n) { + var r, i, o = jo(e) ? ye : X; + return function() { + var a = o(this, t), s = a.on; + s !== r && (i = (r = s).copy()).on(e, n), a.on = i; + }; +} +function ea(t, e) { + var n = this._id; + return arguments.length < 2 ? P(this.node(), n).on.on(t) : this.each(ta(n, t, e)); +} +function na(t) { + return function() { + var e = this.parentNode; + for (var n in this.__transition) + if (+n !== t) + return; + e && e.removeChild(this); + }; +} +function ra() { + return this.on("end.remove", na(this._id)); +} +function ia(t) { + var e = this._name, n = this._id; + typeof t != "function" && (t = le(t)); + for (var r = this._groups, i = r.length, o = new Array(i), a = 0; a < i; ++a) + for (var s = r[a], f = s.length, u = o[a] = new Array(f), c, d, l = 0; l < f; ++l) + (c = s[l]) && (d = t.call(c, c.__data__, l, s)) && ("__data__" in c && (d.__data__ = c.__data__), u[l] = d, Xt(u[l], e, n, l, u, P(c, n))); + return new G(o, this._parents, e, n); +} +function oa(t) { + var e = this._name, n = this._id; + typeof t != "function" && (t = Ye(t)); + for (var r = this._groups, i = r.length, o = [], a = [], s = 0; s < i; ++s) + for (var f = r[s], u = f.length, c, d = 0; d < u; ++d) + if (c = f[d]) { + for (var l = t.call(c, c.__data__, d, f), p, m = P(c, n), _ = 0, x = l.length; _ < x; ++_) + (p = l[_]) && Xt(p, e, n, _, l, m); + o.push(l), a.push(c); + } + return new G(o, a, e, n); +} +var aa = xt.prototype.constructor; +function ua() { + return new aa(this._groups, this._parents); +} +function sa(t, e) { + var n, r, i; + return function() { + var o = ut(this, t), a = (this.style.removeProperty(t), ut(this, t)); + return o === a ? null : o === n && a === r ? i : i = e(n = o, r = a); + }; +} +function pn(t) { + return function() { + this.style.removeProperty(t); + }; +} +function ca(t, e, n) { + var r, i = n + "", o; + return function() { + var a = ut(this, t); + return a === i ? null : a === r ? o : o = e(r = a, n); + }; +} +function la(t, e, n) { + var r, i, o; + return function() { + var a = ut(this, t), s = n(this), f = s + ""; + return s == null && (f = s = (this.style.removeProperty(t), ut(this, t))), a === f ? null : a === r && f === i ? o : (i = f, o = e(r = a, s)); + }; +} +function fa(t, e) { + var n, r, i, o = "style." + e, a = "end." + o, s; + return function() { + var f = X(this, t), u = f.on, c = f.value[o] == null ? s || (s = pn(e)) : void 0; + (u !== n || i !== c) && (r = (n = u).copy()).on(a, i = c), f.on = r; + }; +} +function ha(t, e, n) { + var r = (t += "") == "transform" ? fo : dn; + return e == null ? this.styleTween(t, sa(t, r)).on("end.style." + t, pn(t)) : typeof e == "function" ? this.styleTween(t, la(t, r, me(this, "style." + t, e))).each(fa(this._id, t)) : this.styleTween(t, ca(t, r, e), n).on("end.style." + t, null); +} +function da(t, e, n) { + return function(r) { + this.style.setProperty(t, e.call(this, r), n); + }; +} +function pa(t, e, n) { + var r, i; + function o() { + var a = e.apply(this, arguments); + return a !== i && (r = (i = a) && da(t, a, n)), r; + } + return o._value = e, o; +} +function ga(t, e, n) { + var r = "style." + (t += ""); + if (arguments.length < 2) + return (r = this.tween(r)) && r._value; + if (e == null) + return this.tween(r, null); + if (typeof e != "function") + throw new Error(); + return this.tween(r, pa(t, e, n ?? "")); +} +function ya(t) { + return function() { + this.textContent = t; + }; +} +function ma(t) { + return function() { + var e = t(this); + this.textContent = e ?? ""; + }; +} +function _a(t) { + return this.tween("text", typeof t == "function" ? ma(me(this, "text", t)) : ya(t == null ? "" : t + "")); +} +function xa(t) { + return function(e) { + this.textContent = t.call(this, e); + }; +} +function wa(t) { + var e, n; + function r() { + var i = t.apply(this, arguments); + return i !== n && (e = (n = i) && xa(i)), e; + } + return r._value = t, r; +} +function va(t) { + var e = "text"; + if (arguments.length < 1) + return (e = this.tween(e)) && e._value; + if (t == null) + return this.tween(e, null); + if (typeof t != "function") + throw new Error(); + return this.tween(e, wa(t)); +} +function ba() { + for (var t = this._name, e = this._id, n = gn(), r = this._groups, i = r.length, o = 0; o < i; ++o) + for (var a = r[o], s = a.length, f, u = 0; u < s; ++u) + if (f = a[u]) { + var c = P(f, e); + Xt(f, t, n, u, a, { + time: c.time + c.delay + c.duration, + delay: 0, + duration: c.duration, + ease: c.ease + }); + } + return new G(r, this._parents, t, n); +} +function ka() { + var t, e, n = this, r = n._id, i = n.size(); + return new Promise(function(o, a) { + var s = { value: a }, f = { value: function() { + --i === 0 && o(); + } }; + n.each(function() { + var u = X(this, r), c = u.on; + c !== t && (e = (t = c).copy(), e._.cancel.push(s), e._.interrupt.push(s), e._.end.push(f)), u.on = e; + }), i === 0 && o(); + }); +} +var $a = 0; +function G(t, e, n, r) { + this._groups = t, this._parents = e, this._name = n, this._id = r; +} +function gn() { + return ++$a; +} +var Y = xt.prototype; +G.prototype = { + constructor: G, + select: ia, + selectAll: oa, + selectChild: Y.selectChild, + selectChildren: Y.selectChildren, + filter: Qo, + merge: Jo, + selection: ua, + transition: ba, + call: Y.call, + nodes: Y.nodes, + node: Y.node, + size: Y.size, + empty: Y.empty, + each: Y.each, + on: ea, + attr: Fo, + attrTween: Po, + style: ha, + styleTween: ga, + text: _a, + textTween: va, + remove: ra, + tween: So, + delay: Xo, + duration: Yo, + ease: Go, + easeVarying: Zo, + end: ka, + [Symbol.iterator]: Y[Symbol.iterator] +}; +function Na(t) { + return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2; +} +var Aa = { + time: null, + // Set on use. + delay: 0, + duration: 250, + ease: Na +}; +function za(t, e) { + for (var n; !(n = t.__transition) || !(n = n[e]); ) + if (!(t = t.parentNode)) + throw new Error(`transition ${e} not found`); + return n; +} +function Sa(t) { + var e, n; + t instanceof G ? (e = t._id, t = t._name) : (e = gn(), (n = Aa).time = ge(), t = t == null ? null : t + ""); + for (var r = this._groups, i = r.length, o = 0; o < i; ++o) + for (var a = r[o], s = a.length, f, u = 0; u < s; ++u) + (f = a[u]) && Xt(f, t, e, u, a, n || za(f, e)); + return new G(r, this._parents, t, e); +} +xt.prototype.interrupt = No; +xt.prototype.transition = Sa; +const St = (t) => () => t; +function Ea(t, { + sourceEvent: e, + target: n, + transform: r, + dispatch: i +}) { + Object.defineProperties(this, { + type: { value: t, enumerable: !0, configurable: !0 }, + sourceEvent: { value: e, enumerable: !0, configurable: !0 }, + target: { value: n, enumerable: !0, configurable: !0 }, + transform: { value: r, enumerable: !0, configurable: !0 }, + _: { value: i } + }); +} +function U(t, e, n) { + this.k = t, this.x = e, this.y = n; +} +U.prototype = { + constructor: U, + scale: function(t) { + return t === 1 ? this : new U(this.k * t, this.x, this.y); + }, + translate: function(t, e) { + return t === 0 & e === 0 ? this : new U(this.k, this.x + this.k * t, this.y + this.k * e); + }, + apply: function(t) { + return [t[0] * this.k + this.x, t[1] * this.k + this.y]; + }, + applyX: function(t) { + return t * this.k + this.x; + }, + applyY: function(t) { + return t * this.k + this.y; + }, + invert: function(t) { + return [(t[0] - this.x) / this.k, (t[1] - this.y) / this.k]; + }, + invertX: function(t) { + return (t - this.x) / this.k; + }, + invertY: function(t) { + return (t - this.y) / this.k; + }, + rescaleX: function(t) { + return t.copy().domain(t.range().map(this.invertX, this).map(t.invert, t)); + }, + rescaleY: function(t) { + return t.copy().domain(t.range().map(this.invertY, this).map(t.invert, t)); + }, + toString: function() { + return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")"; + } +}; +var yn = new U(1, 0, 0); +U.prototype; +function Qt(t) { + t.stopImmediatePropagation(); +} +function ht(t) { + t.preventDefault(), t.stopImmediatePropagation(); +} +function Ma(t) { + return (!t.ctrlKey || t.type === "wheel") && !t.button; +} +function Ta() { + var t = this; + return t instanceof SVGElement ? (t = t.ownerSVGElement || t, t.hasAttribute("viewBox") ? (t = t.viewBox.baseVal, [[t.x, t.y], [t.x + t.width, t.y + t.height]]) : [[0, 0], [t.width.baseVal.value, t.height.baseVal.value]]) : [[0, 0], [t.clientWidth, t.clientHeight]]; +} +function Re() { + return this.__zoom || yn; +} +function Ca(t) { + return -t.deltaY * (t.deltaMode === 1 ? 0.05 : t.deltaMode ? 1 : 2e-3) * (t.ctrlKey ? 10 : 1); +} +function Ia() { + return navigator.maxTouchPoints || "ontouchstart" in this; +} +function La(t, e, n) { + var r = t.invertX(e[0][0]) - n[0][0], i = t.invertX(e[1][0]) - n[1][0], o = t.invertY(e[0][1]) - n[0][1], a = t.invertY(e[1][1]) - n[1][1]; + return t.translate( + i > r ? (r + i) / 2 : Math.min(0, r) || Math.max(0, i), + a > o ? (o + a) / 2 : Math.min(0, o) || Math.max(0, a) + ); +} +function Fa() { + var t = Ma, e = Ta, n = La, r = Ca, i = Ia, o = [0, 1 / 0], a = [[-1 / 0, -1 / 0], [1 / 0, 1 / 0]], s = 250, f = mo, u = de("start", "zoom", "end"), c, d, l, p = 500, m = 150, _ = 0, x = 10; + function y(h) { + h.property("__zoom", Re).on("wheel.zoom", bt, { passive: !1 }).on("mousedown.zoom", kt).on("dblclick.zoom", $t).filter(i).on("touchstart.zoom", xn).on("touchmove.zoom", wn).on("touchend.zoom touchcancel.zoom", vn).style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); + } + y.transform = function(h, v, g, b) { + var k = h.selection ? h.selection() : h; + k.property("__zoom", Re), h !== k ? E(h, v, g, b) : k.interrupt().each(function() { + C(this, arguments).event(b).start().zoom(null, typeof v == "function" ? v.apply(this, arguments) : v).end(); + }); + }, y.scaleBy = function(h, v, g, b) { + y.scaleTo(h, function() { + var k = this.__zoom.k, $ = typeof v == "function" ? v.apply(this, arguments) : v; + return k * $; + }, g, b); + }, y.scaleTo = function(h, v, g, b) { + y.transform(h, function() { + var k = e.apply(this, arguments), $ = this.__zoom, N = g == null ? A(k) : typeof g == "function" ? g.apply(this, arguments) : g, S = $.invert(N), M = typeof v == "function" ? v.apply(this, arguments) : v; + return n(z(w($, M), N, S), k, a); + }, g, b); + }, y.translateBy = function(h, v, g, b) { + y.transform(h, function() { + return n(this.__zoom.translate( + typeof v == "function" ? v.apply(this, arguments) : v, + typeof g == "function" ? g.apply(this, arguments) : g + ), e.apply(this, arguments), a); + }, null, b); + }, y.translateTo = function(h, v, g, b, k) { + y.transform(h, function() { + var $ = e.apply(this, arguments), N = this.__zoom, S = b == null ? A($) : typeof b == "function" ? b.apply(this, arguments) : b; + return n(yn.translate(S[0], S[1]).scale(N.k).translate( + typeof v == "function" ? -v.apply(this, arguments) : -v, + typeof g == "function" ? -g.apply(this, arguments) : -g + ), $, a); + }, b, k); + }; + function w(h, v) { + return v = Math.max(o[0], Math.min(o[1], v)), v === h.k ? h : new U(v, h.x, h.y); + } + function z(h, v, g) { + var b = v[0] - g[0] * h.k, k = v[1] - g[1] * h.k; + return b === h.x && k === h.y ? h : new U(h.k, b, k); + } + function A(h) { + return [(+h[0][0] + +h[1][0]) / 2, (+h[0][1] + +h[1][1]) / 2]; + } + function E(h, v, g, b) { + h.on("start.zoom", function() { + C(this, arguments).event(b).start(); + }).on("interrupt.zoom end.zoom", function() { + C(this, arguments).event(b).end(); + }).tween("zoom", function() { + var k = this, $ = arguments, N = C(k, $).event(b), S = e.apply(k, $), M = g == null ? A(S) : typeof g == "function" ? g.apply(k, $) : g, O = Math.max(S[1][0] - S[0][0], S[1][1] - S[0][1]), L = k.__zoom, H = typeof v == "function" ? v.apply(k, $) : v, W = f(L.invert(M).concat(O / L.k), H.invert(M).concat(O / H.k)); + return function(D) { + if (D === 1) + D = H; + else { + var B = W(D), Wt = O / B[2]; + D = new U(Wt, M[0] - B[0] * Wt, M[1] - B[1] * Wt); + } + N.zoom(null, D); + }; + }); + } + function C(h, v, g) { + return !g && h.__zooming || new K(h, v); + } + function K(h, v) { + this.that = h, this.args = v, this.active = 0, this.sourceEvent = null, this.extent = e.apply(h, v), this.taps = 0; + } + K.prototype = { + event: function(h) { + return h && (this.sourceEvent = h), this; + }, + start: function() { + return ++this.active === 1 && (this.that.__zooming = this, this.emit("start")), this; + }, + zoom: function(h, v) { + return this.mouse && h !== "mouse" && (this.mouse[1] = v.invert(this.mouse[0])), this.touch0 && h !== "touch" && (this.touch0[1] = v.invert(this.touch0[0])), this.touch1 && h !== "touch" && (this.touch1[1] = v.invert(this.touch1[0])), this.that.__zoom = v, this.emit("zoom"), this; + }, + end: function() { + return --this.active === 0 && (delete this.that.__zooming, this.emit("end")), this; + }, + emit: function(h) { + var v = Q(this.that).datum(); + u.call( + h, + this.that, + new Ea(h, { + sourceEvent: this.sourceEvent, + target: y, + type: h, + transform: this.that.__zoom, + dispatch: u + }), + v + ); + } + }; + function bt(h, ...v) { + if (!t.apply(this, arguments)) + return; + var g = C(this, v).event(h), b = this.__zoom, k = Math.max(o[0], Math.min(o[1], b.k * Math.pow(2, r.apply(this, arguments)))), $ = j(h); + if (g.wheel) + (g.mouse[0][0] !== $[0] || g.mouse[0][1] !== $[1]) && (g.mouse[1] = b.invert(g.mouse[0] = $)), clearTimeout(g.wheel); + else { + if (b.k === k) + return; + g.mouse = [$, b.invert($)], It(this), g.start(); + } + ht(h), g.wheel = setTimeout(N, m), g.zoom("mouse", n(z(w(b, k), g.mouse[0], g.mouse[1]), g.extent, a)); + function N() { + g.wheel = null, g.end(); + } + } + function kt(h, ...v) { + if (l || !t.apply(this, arguments)) + return; + var g = h.currentTarget, b = C(this, v, !0).event(h), k = Q(h.view).on("mousemove.zoom", M, !0).on("mouseup.zoom", O, !0), $ = j(h, g), N = h.clientX, S = h.clientY; + Xi(h.view), Qt(h), b.mouse = [$, this.__zoom.invert($)], It(this), b.start(); + function M(L) { + if (ht(L), !b.moved) { + var H = L.clientX - N, W = L.clientY - S; + b.moved = H * H + W * W > _; + } + b.event(L).zoom("mouse", n(z(b.that.__zoom, b.mouse[0] = j(L, g), b.mouse[1]), b.extent, a)); + } + function O(L) { + k.on("mousemove.zoom mouseup.zoom", null), Wi(L.view, b.moved), ht(L), b.event(L).end(); + } + } + function $t(h, ...v) { + if (t.apply(this, arguments)) { + var g = this.__zoom, b = j(h.changedTouches ? h.changedTouches[0] : h, this), k = g.invert(b), $ = g.k * (h.shiftKey ? 0.5 : 2), N = n(z(w(g, $), b, k), e.apply(this, v), a); + ht(h), s > 0 ? Q(this).transition().duration(s).call(E, N, b, h) : Q(this).call(y.transform, N, b, h); + } + } + function xn(h, ...v) { + if (t.apply(this, arguments)) { + var g = h.touches, b = g.length, k = C(this, v, h.changedTouches.length === b).event(h), $, N, S, M; + for (Qt(h), N = 0; N < b; ++N) + S = g[N], M = j(S, this), M = [M, this.__zoom.invert(M), S.identifier], k.touch0 ? !k.touch1 && k.touch0[2] !== M[2] && (k.touch1 = M, k.taps = 0) : (k.touch0 = M, $ = !0, k.taps = 1 + !!c); + c && (c = clearTimeout(c)), $ && (k.taps < 2 && (d = M[0], c = setTimeout(function() { + c = null; + }, p)), It(this), k.start()); + } + } + function wn(h, ...v) { + if (this.__zooming) { + var g = C(this, v).event(h), b = h.changedTouches, k = b.length, $, N, S, M; + for (ht(h), $ = 0; $ < k; ++$) + N = b[$], S = j(N, this), g.touch0 && g.touch0[2] === N.identifier ? g.touch0[0] = S : g.touch1 && g.touch1[2] === N.identifier && (g.touch1[0] = S); + if (N = g.that.__zoom, g.touch1) { + var O = g.touch0[0], L = g.touch0[1], H = g.touch1[0], W = g.touch1[1], D = (D = H[0] - O[0]) * D + (D = H[1] - O[1]) * D, B = (B = W[0] - L[0]) * B + (B = W[1] - L[1]) * B; + N = w(N, Math.sqrt(D / B)), S = [(O[0] + H[0]) / 2, (O[1] + H[1]) / 2], M = [(L[0] + W[0]) / 2, (L[1] + W[1]) / 2]; + } else if (g.touch0) + S = g.touch0[0], M = g.touch0[1]; + else + return; + g.zoom("touch", n(z(N, S, M), g.extent, a)); + } + } + function vn(h, ...v) { + if (this.__zooming) { + var g = C(this, v).event(h), b = h.changedTouches, k = b.length, $, N; + for (Qt(h), l && clearTimeout(l), l = setTimeout(function() { + l = null; + }, p), $ = 0; $ < k; ++$) + N = b[$], g.touch0 && g.touch0[2] === N.identifier ? delete g.touch0 : g.touch1 && g.touch1[2] === N.identifier && delete g.touch1; + if (g.touch1 && !g.touch0 && (g.touch0 = g.touch1, delete g.touch1), g.touch0) + g.touch0[1] = this.__zoom.invert(g.touch0[0]); + else if (g.end(), g.taps === 2 && (N = j(N, this), Math.hypot(d[0] - N[0], d[1] - N[1]) < x)) { + var S = Q(this).on("dblclick.zoom"); + S && S.apply(this, arguments); + } + } + } + return y.wheelDelta = function(h) { + return arguments.length ? (r = typeof h == "function" ? h : St(+h), y) : r; + }, y.filter = function(h) { + return arguments.length ? (t = typeof h == "function" ? h : St(!!h), y) : t; + }, y.touchable = function(h) { + return arguments.length ? (i = typeof h == "function" ? h : St(!!h), y) : i; + }, y.extent = function(h) { + return arguments.length ? (e = typeof h == "function" ? h : St([[+h[0][0], +h[0][1]], [+h[1][0], +h[1][1]]]), y) : e; + }, y.scaleExtent = function(h) { + return arguments.length ? (o[0] = +h[0], o[1] = +h[1], y) : [o[0], o[1]]; + }, y.translateExtent = function(h) { + return arguments.length ? (a[0][0] = +h[0][0], a[1][0] = +h[1][0], a[0][1] = +h[0][1], a[1][1] = +h[1][1], y) : [[a[0][0], a[0][1]], [a[1][0], a[1][1]]]; + }, y.constrain = function(h) { + return arguments.length ? (n = h, y) : n; + }, y.duration = function(h) { + return arguments.length ? (s = +h, y) : s; + }, y.interpolate = function(h) { + return arguments.length ? (f = h, y) : f; + }, y.on = function() { + var h = u.on.apply(u, arguments); + return h === u ? y : h; + }, y.clickDistance = function(h) { + return arguments.length ? (_ = (h = +h) * h, y) : Math.sqrt(_); + }, y.tapDistance = function(h) { + return arguments.length ? (x = +h, y) : x; + }, y; +} +const J = { + hierarchy: ce, + stratify: Gn, + tree: er, + treemap: ar, + select: Q, + selectAll: Ri, + zoom: Fa +}, mn = (t) => { + const e = document.querySelector(`#${t}`); + if (e === null) + throw new Error(`Cannot find dom element with id:${t}`); + const n = e.clientWidth, r = e.clientHeight; + if (r === 0 || n === 0) + throw new Error( + "The tree can't be display because the svg height or width of the container is null" + ); + return { areaWidth: n, areaHeight: r }; +}, vt = (t, e, n) => { + try { + const r = t.find((a) => a.id === n), i = r.ancestors()[1].id; + return e.some( + (a) => a.id === i + ) ? r.ancestors()[1] : vt(t, e, i); + } catch { + return t.find((i) => i.id === n); + } +}, _n = (t, e, n) => n.isHorizontal ? "translate(" + e + "," + t + ")" : "translate(" + t + "," + e + ")"; +class it { + // Adds one refresh action to the queue. When safe callback will be + // triggered + static add(e, n) { + this.queue.push({ + delayNextCallback: e + this.extraDelayBetweenCallbacks, + callback: n + }), this.log( + this.queue.map((r) => r.delayNextCallback), + "<-- New task !!!" + ), this.runner || (this.runnerFunction(), this.runner = setInterval(() => this.runnerFunction(), this.runnerSpeed)); + } + // Each this.runnerSpeed milliseconds it's executed. It stops when finish. + static runnerFunction() { + if (this.queue[0]) { + if (this.queue[0].callback) { + this.log("Executing task, delaying next task..."); + try { + this.queue[0].callback(); + } catch (e) { + console.error(e); + } finally { + this.queue[0].callback = null; + } + } + this.queue[0].delayNextCallback -= this.runnerSpeed, this.log(this.queue.map((e) => e.delayNextCallback)), this.queue[0].delayNextCallback <= 0 && this.queue.shift(); + } else + this.log("No task found"), clearInterval(this.runner), this.runner = 0; + } + // Print to console debug data if this.showQueueLog = true + static log(...e) { + this.showQueueLog && console.log(...e); + } +} +// The queue is an array that contains objects. Each object represents an +// refresh action and only they have 2 properties: +// { +// callback: triggers when it's the first of queue and then it +// becomes null to prevent that callback executes more +// than once. +// delayNextCallback: when callback is executed, queue will subtracts +// milliseconds from it. When it becomes 0, the entire +// object is destroyed (shifted) from the array and then +// the next item (if exists) will be executed similary +// to this. +// } +rt(it, "queue", []), // Contains setInterval ID +rt(it, "runner"), // Milliseconds of each iteration +rt(it, "runnerSpeed", 100), // Developer internal magic number. Time added at end of refresh transition to +// let DOM and d3 rest before another refresh. +// 0 creates console and visual errors because getFirstDisplayedAncestor never +// found the needed id and setNodeLocation receives undefined parameters. +// Between 50 and 100 milliseconds seems enough for 10 nodes (demo example) +rt(it, "extraDelayBetweenCallbacks", 100), // Developer internal for debugging RefreshQueue class. Set true to see +// console "real time" queue of tasks. +// If there is a cleaner method, remove it! +rt(it, "showQueueLog", !1); +const qa = (t) => { + const { + htmlId: e, + isHorizontal: n, + hasPan: r, + hasZoom: i, + mainAxisNodeSpacing: o, + nodeHeight: a, + nodeWidth: s, + marginBottom: f, + marginLeft: u, + marginRight: c, + marginTop: d + } = t, l = { + top: d, + right: c, + bottom: f, + left: u + }, { areaHeight: p, areaWidth: m } = mn(t.htmlId), _ = m - l.left - l.right, x = p - l.top - l.bottom, y = J.select("#" + e).append("svg").attr("width", m).attr("height", p), w = y.append("g"), z = J.zoom().on("zoom", (E) => { + w.attr("transform", () => E.transform); + }); + return y.call(z), r || y.on("mousedown.zoom", null).on("touchstart.zoom", null).on("touchmove.zoom", null).on("touchend.zoom", null), i || y.on("wheel.zoom", null).on("mousewheel.zoom", null).on("mousemove.zoom", null).on("DOMMouseScroll.zoom", null).on("dblclick.zoom", null), w.append("g").attr( + "transform", + o === "auto" ? "translate(0,0)" : n ? "translate(" + l.left + "," + (l.top + x / 2 - a / 2) + ")" : "translate(" + (l.left + _ / 2 - s / 2) + "," + l.top + ")" + ); +}, _e = (t, e, n) => { + const { isHorizontal: r, nodeHeight: i, nodeWidth: o, linkShape: a } = n; + return a === "orthogonal" ? r ? `M ${t.y} ${t.x + i / 2} + L ${(t.y + e.y + o) / 2} ${t.x + i / 2} + L ${(t.y + e.y + o) / 2} ${e.x + i / 2} + ${e.y + o} ${e.x + i / 2}` : `M ${t.x + o / 2} ${t.y} + L ${t.x + o / 2} ${(t.y + e.y + i) / 2} + L ${e.x + o / 2} ${(t.y + e.y + i) / 2} + ${e.x + o / 2} ${e.y + i} ` : a === "curve" ? r ? `M ${t.y} ${t.x + i / 2} + L ${t.y - (t.y - e.y - o) / 2 + 15} ${t.x + i / 2} + Q${t.y - (t.y - e.y - o) / 2} ${t.x + i / 2} + ${t.y - (t.y - e.y - o) / 2} ${t.x + i / 2 - Pe(t.x, e.x, 15)} + L ${t.y - (t.y - e.y - o) / 2} ${e.x + i / 2} + L ${e.y + o} ${e.x + i / 2}` : `M ${t.x + o / 2} ${t.y} + L ${t.x + o / 2} ${t.y - (t.y - e.y - i) / 2 + 15} + Q${t.x + o / 2} ${t.y - (t.y - e.y - i) / 2} + ${t.x + o / 2 - Pe(t.x, e.x, 15)} ${t.y - (t.y - e.y - i) / 2} + L ${e.x + o / 2} ${t.y - (t.y - e.y - i) / 2} + L ${e.x + o / 2} ${e.y + i} ` : r ? `M ${t.y} ${t.x + i / 2} + C ${(t.y + e.y + o) / 2} ${t.x + i / 2} + ${(t.y + e.y + o) / 2} ${e.x + i / 2} + ${e.y + o} ${e.x + i / 2}` : `M ${t.x + o / 2} ${t.y} + C ${t.x + o / 2} ${(t.y + e.y + i) / 2} + ${e.x + o / 2} ${(t.y + e.y + i) / 2} + ${e.x + o / 2} ${e.y + i} `; +}, Pe = (t, e, n) => t > e ? n : t < e ? -n : 0, Ha = (t, e, n, r) => t.enter().insert("path", "g").attr("class", "link").attr("d", (i) => { + const o = vt( + n, + r, + i.id + ), a = { + x: o.x0, + y: o.y0 + }; + return _e(a, a, e); +}).attr("fill", "none").attr( + "stroke-width", + (i) => e.linkWidth(i) + // Pass the correct `d` object to linkWidth +).attr( + "stroke", + (i) => e.linkColor(i) + // Pass the correct `d` object to linkColor +), Da = (t, e, n, r) => { + t.exit().transition().duration(e.duration).style("opacity", 0).attr("d", (i) => { + const o = vt( + r, + n, + i.id + ), a = { + x: o.x0, + y: o.y0 + }; + return _e(a, a, e); + }).remove(); +}, Ra = (t, e, n) => { + t.merge(e).transition().duration(n.duration).attr("d", (i) => _e(i, i.parent, n)).attr("fill", "none").attr("stroke-width", (i) => n.linkWidth(i)).attr("stroke", (i) => n.linkColor(i)); +}, Pa = (t, e, n, r) => { + const i = t.enter().append("g").attr("class", "node").attr("id", (o) => o == null ? void 0 : o.id).attr("transform", (o) => { + const a = vt( + n, + r, + o.id + ); + return _n( + a.x0, + a.y0, + e + ); + }); + return i.append("foreignObject").attr("width", e.nodeWidth).attr("height", e.nodeHeight), i; +}, Oa = (t, e, n, r) => { + const i = t.exit().transition().duration(e.duration).style("opacity", 0).attr("transform", (o) => { + const a = vt( + r, + n, + o.id + ); + return _n( + a.x0, + a.y0, + e + ); + }).remove(); + i.select("rect").style("fill-opacity", 1e-6), i.select("circle").attr("r", 1e-6), i.select("text").style("fill-opacity", 1e-6); +}, Va = (t, e, n) => { + const r = t.merge(e); + r.transition().duration(n.duration).attr("transform", (i) => n.isHorizontal ? "translate(" + i.y + "," + i.x + ")" : "translate(" + i.x + "," + i.y + ")"), r.select("foreignObject").attr("width", n.nodeWidth).attr("height", n.nodeHeight).style("overflow", "visible").on("click", (i, o) => n.onNodeClick({ ...o, settings: n })).on("mouseenter", (i, o) => n.onNodeMouseEnter({ ...o, settings: n })).on("mouseleave", (i, o) => n.onNodeMouseLeave({ ...o, settings: n })).html((i) => n.renderNode({ ...i, settings: n })); +}, Xa = (t, e) => { + const { idKey: n, relationnalField: r, hasFlatData: i } = e; + return i ? J.stratify().id((o) => o[n]).parentId((o) => o[r])(t) : J.hierarchy(t, (o) => o[r]); +}, Wa = (t) => { + const { areaHeight: e, areaWidth: n } = mn(t.htmlId); + return t.mainAxisNodeSpacing === "auto" && t.isHorizontal ? J.tree().size([ + e - t.nodeHeight, + n - t.nodeWidth + ]) : t.mainAxisNodeSpacing === "auto" && !t.isHorizontal ? J.tree().size([ + n - t.nodeWidth, + e - t.nodeHeight + ]) : t.isHorizontal === !0 ? J.tree().nodeSize([ + t.nodeHeight * t.secondaryAxisNodeSpacing, + t.nodeWidth + ]) : J.tree().nodeSize([ + t.nodeWidth * t.secondaryAxisNodeSpacing, + t.nodeHeight + ]); +}, Ba = { + create: Ya +}; +function Ya(t) { + let n = { + ...{ + data: [], + htmlId: "", + idKey: "id", + relationnalField: "father", + hasFlatData: !0, + nodeWidth: 160, + nodeHeight: 100, + mainAxisNodeSpacing: 300, + renderNode: () => "Node", + linkColor: () => "#ffcc80", + linkWidth: () => 10, + linkShape: "quadraticBeziers", + isHorizontal: !0, + hasPan: !1, + hasZoom: !1, + duration: 600, + onNodeClick: () => { + }, + onNodeMouseEnter: () => { + }, + onNodeMouseLeave: () => { + }, + marginBottom: 0, + marginLeft: 0, + marginRight: 0, + marginTop: 0, + secondaryAxisNodeSpacing: 1.25 + }, + ...t + }, r = []; + function i(u, c) { + const d = c.descendants(), l = c.descendants().slice(1), { mainAxisNodeSpacing: p } = n; + p !== "auto" && d.forEach((w) => { + w.y = w.depth * n.nodeWidth * p; + }), d.forEach((w) => { + const z = r.find( + (A) => A.id === w.id + ); + w.x0 = z ? z.x0 : w.x, w.y0 = z ? z.y0 : w.y; + }); + const m = u.selectAll("g.node").data(d, (w) => w[n.idKey]), _ = Pa(m, n, d, r); + Va(_, m, n), Oa(m, n, d, r); + const x = u.selectAll("path.link").data(l, (w) => w.id), y = Ha(x, n, d, r); + Ra(y, x, n), Da(x, n, d, r), r = [...d]; + } + function o(u, c) { + it.add(n.duration, () => { + c && (n = { ...n, ...c }); + const d = Xa(u, n), p = Wa(n)(d); + i(f, p); + }); + } + function a(u) { + const c = u ? document.querySelector(`#${n.htmlId} svg g`) : document.querySelector(`#${n.htmlId}`); + if (c) + for (; c.firstChild; ) + c.removeChild(c.firstChild); + r = []; + } + const s = { refresh: o, clean: a }, f = qa(n); + return s; +} +var xe = [ + { + id: 1, + text_1: "Chaos", + text_2: "Void", + father: null, + color: "#FF5722" + }, + { + id: 2, + text_1: "Tartarus", + text_2: "Abyss", + father: 1, + color: "#FFC107" + }, + { + id: 3, + text_1: "Gaia", + text_2: "Earth", + father: 1, + color: "#8BC34A" + }, + { + id: 4, + text_1: "Eros", + text_2: "Desire", + father: 1, + color: "#00BCD4" + } +], Ua = [ + { + id: 1, + text_1: "Chaos", + text_2: " Void", + father: null, + color: "#2196F3" + }, + { + id: 2, + text_1: "Tartarus", + text_2: "Abyss", + father: 1, + color: "#F44336" + }, + { + id: 3, + text_1: "Gaia", + text_2: "Earth", + father: 1, + color: "#673AB7" + }, + { + id: 4, + text_1: "Eros", + text_2: "Desire", + father: 1, + color: "#009688" + }, + { + id: 5, + text_1: "Uranus", + text_2: "Sky", + father: 3, + color: "#4CAF50" + }, + { + id: 6, + text_1: "Ourea", + text_2: "Mountains", + father: 3, + color: "#FF9800" + } +], Ga = [ + { + id: 1, + text_1: "Chaos", + text_2: "Void", + father: null, + color: "#2196F3" + }, + { + id: 2, + text_1: "Tartarus", + text_2: "Abyss", + father: 1, + color: "#F44336" + }, + { + id: 3, + text_1: "Gaia", + text_2: "Earth", + father: 1, + color: "#673AB7" + }, + { + id: 4, + text_1: "Eros", + text_2: "Desire", + father: 1, + color: "#009688" + }, + { + id: 5, + text_1: "Uranus", + text_2: "Sky", + father: 3, + color: "#4CAF50" + }, + { + id: 6, + text_1: "Ourea", + text_2: "Mountains", + father: 3, + color: "#FF9800" + }, + { + id: 7, + text_1: "Hermes", + text_2: " Sky", + father: 4, + color: "#2196F3" + }, + { + id: 8, + text_1: "Aphrodite", + text_2: "Love", + father: 4, + color: "#8BC34A" + }, + { + id: 3.3, + text_1: "Love", + text_2: "Peace", + father: 8, + color: "#c72e99" + }, + { + id: 4.1, + text_1: "Hope", + text_2: "Life", + father: 8, + color: "#2eecc7" + } +], Pt = Ba.create({ + data: xe, + // for Typescript projects only. + htmlId: "tree", + idKey: "id", + hasFlatData: !0, + relationnalField: "father", + nodeWidth: 120, + hasPan: !0, + hasZoom: !0, + nodeHeight: 80, + mainAxisNodeSpacing: 2, + isHorizontal: !1, + renderNode: function(e) { + return "
" + e.data.text_1 + "
is
" + e.data.text_2 + "
"; + }, + linkWidth: (t) => t.data.id * 2, + linkShape: "curve", + linkColor: () => "#B0BEC5", + onNodeClick: (t) => { + console.log(t.data); + }, + onNodeMouseEnter: (t) => { + console.log(t.data); + } +}); +Pt.refresh(xe); +var Oe = !0; +const I = document.querySelector("#add"), T = document.querySelector("#remove"), Jt = document.querySelector("#doTasks"); +I == null || I.addEventListener("click", function() { + console.log("addButton clicked"), Oe ? Pt.refresh(Ua) : Pt.refresh(Ga), Oe = !1; +}); +T == null || T.addEventListener("click", function() { + console.log("removeButton clicked"), Pt.refresh(xe); +}); +Jt == null || Jt.addEventListener("click", function() { + I == null || I.click(), T == null || T.click(), I == null || I.click(), T == null || T.click(), T == null || T.click(), I == null || I.click(), T == null || T.click(), I == null || I.click(), I == null || I.click(), T == null || T.click(), T == null || T.click(); +}); diff --git a/dist/index.d.ts b/dist/index.d.ts index 1f80689..b02e2f3 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -2,8 +2,8 @@ import { ITreeConfig } from "./typings"; export declare const Treeviz: { create: typeof create; }; -declare function create(userSettings: Partial): { - refresh: (data: any, newSettings?: Partial) => void; +declare function create(userSettings: Partial>): { + refresh: (data: any, newSettings?: Partial>) => void; clean: (keepConfig: boolean) => void; }; export {}; diff --git a/dist/initializeSVG.d.ts b/dist/initializeSVG.d.ts index 920fe4e..fe66324 100644 --- a/dist/initializeSVG.d.ts +++ b/dist/initializeSVG.d.ts @@ -1,2 +1,2 @@ import { ITreeConfig } from "./typings"; -export declare const initiliazeSVG: (treeConfig: ITreeConfig) => import("d3-selection").Selection; +export declare const initiliazeSVG: (treeConfig: ITreeConfig) => import("d3-selection").Selection; diff --git a/dist/links/draw-links.d.ts b/dist/links/draw-links.d.ts index b615eec..3cfd074 100644 --- a/dist/links/draw-links.d.ts +++ b/dist/links/draw-links.d.ts @@ -3,5 +3,5 @@ interface ICoordinates { x: number; y: number; } -export declare const generateLinkLayout: (s: ICoordinates, d: ICoordinates, treeConfig: ITreeConfig) => string; +export declare const generateLinkLayout: (s: ICoordinates, d: ICoordinates, treeConfig: ITreeConfig) => string; export {}; diff --git a/dist/links/link-enter.d.ts b/dist/links/link-enter.d.ts index 7262480..c931cd5 100644 --- a/dist/links/link-enter.d.ts +++ b/dist/links/link-enter.d.ts @@ -1,4 +1,4 @@ import { HierarchyPointNode } from "d3-hierarchy"; import { BaseType, Selection } from "d3-selection"; import { ExtendedHierarchyPointNode, ITreeConfig } from "../typings"; -export declare const drawLinkEnter: (link: Selection, SVGGElement, {}>, settings: ITreeConfig, nodes: ExtendedHierarchyPointNode[], oldNodes: ExtendedHierarchyPointNode[]) => Selection, SVGGElement, {}>; +export declare const drawLinkEnter: (link: Selection, SVGGElement, {}>, settings: ITreeConfig, nodes: ExtendedHierarchyPointNode[], oldNodes: ExtendedHierarchyPointNode[]) => Selection, SVGGElement, {}>; diff --git a/dist/links/link-exit.d.ts b/dist/links/link-exit.d.ts index 6a3f72c..7cbfd1e 100644 --- a/dist/links/link-exit.d.ts +++ b/dist/links/link-exit.d.ts @@ -1,4 +1,4 @@ import { HierarchyPointNode } from "d3-hierarchy"; import { BaseType, Selection } from "d3-selection"; import { ExtendedHierarchyPointNode, ITreeConfig } from "../typings"; -export declare const drawLinkExit: (link: Selection, SVGGElement, {}>, settings: ITreeConfig, nodes: ExtendedHierarchyPointNode[], oldNodes: ExtendedHierarchyPointNode[]) => void; +export declare const drawLinkExit: (link: Selection, SVGGElement, {}>, settings: ITreeConfig, nodes: ExtendedHierarchyPointNode[], oldNodes: ExtendedHierarchyPointNode[]) => void; diff --git a/dist/links/link-update.d.ts b/dist/links/link-update.d.ts index 0bf051f..e3be822 100644 --- a/dist/links/link-update.d.ts +++ b/dist/links/link-update.d.ts @@ -1,4 +1,4 @@ import { HierarchyPointNode } from "d3-hierarchy"; import { Selection } from "d3-selection"; import { ITreeConfig } from "../typings"; -export declare const drawLinkUpdate: (linkEnter: Selection, SVGGElement, {}>, link: Selection, SVGGElement, {}>, settings: ITreeConfig) => void; +export declare const drawLinkUpdate: (linkEnter: Selection, SVGGElement, {}>, link: Selection, SVGGElement, {}>, settings: ITreeConfig) => void; diff --git a/dist/nodes/node-enter.d.ts b/dist/nodes/node-enter.d.ts index 7f48503..51ece22 100644 --- a/dist/nodes/node-enter.d.ts +++ b/dist/nodes/node-enter.d.ts @@ -1,3 +1,3 @@ import { BaseType, Selection } from "d3-selection"; import { ExtendedHierarchyPointNode, ITreeConfig } from "../typings"; -export declare const drawNodeEnter: (node: Selection, settings: ITreeConfig, nodes: ExtendedHierarchyPointNode[], oldNodes: ExtendedHierarchyPointNode[]) => string & Selection; +export declare const drawNodeEnter: (node: Selection, settings: ITreeConfig, nodes: ExtendedHierarchyPointNode[], oldNodes: ExtendedHierarchyPointNode[]) => string & Selection; diff --git a/dist/nodes/node-exit.d.ts b/dist/nodes/node-exit.d.ts index 9609cd2..9aab2fc 100644 --- a/dist/nodes/node-exit.d.ts +++ b/dist/nodes/node-exit.d.ts @@ -1,3 +1,3 @@ import { BaseType, Selection } from "d3-selection"; import { ExtendedHierarchyPointNode, ITreeConfig } from "../typings"; -export declare const drawNodeExit: (node: Selection, settings: ITreeConfig, nodes: ExtendedHierarchyPointNode[], oldNodes: ExtendedHierarchyPointNode[]) => void; +export declare const drawNodeExit: (node: Selection, settings: ITreeConfig, nodes: ExtendedHierarchyPointNode[], oldNodes: ExtendedHierarchyPointNode[]) => void; diff --git a/dist/nodes/node-update.d.ts b/dist/nodes/node-update.d.ts index bfa861b..dcade3d 100644 --- a/dist/nodes/node-update.d.ts +++ b/dist/nodes/node-update.d.ts @@ -1,3 +1,3 @@ import { Selection } from "d3-selection"; import { ExtendedHierarchyPointNode, ITreeConfig } from "../typings"; -export declare const drawNodeUpdate: (nodeEnter: Selection, node: Selection, settings: ITreeConfig) => void; +export declare const drawNodeUpdate: (nodeEnter: Selection, node: Selection, settings: ITreeConfig) => void; diff --git a/dist/prepare-data.d.ts b/dist/prepare-data.d.ts index eda1863..00131a3 100644 --- a/dist/prepare-data.d.ts +++ b/dist/prepare-data.d.ts @@ -1,4 +1,4 @@ import { HierarchyNode } from "d3-hierarchy"; import { ITreeConfig } from "./typings"; -export declare const generateNestedData: (data: any, treeConfig: ITreeConfig) => HierarchyNode; -export declare const generateBasicTreemap: (treeConfig: ITreeConfig) => import("d3-hierarchy").TreeLayout; +export declare const generateNestedData: (data: any, treeConfig: ITreeConfig) => HierarchyNode; +export declare const generateBasicTreemap: (treeConfig: ITreeConfig) => import("d3-hierarchy").TreeLayout; diff --git a/dist/treeviz.js b/dist/treeviz.js index c9fcd7a..3c7a035 100644 --- a/dist/treeviz.js +++ b/dist/treeviz.js @@ -1,37 +1,2201 @@ +var bn = Object.defineProperty; +var kn = (t, e, n) => e in t ? bn(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n; +var rt = (t, e, n) => (kn(t, typeof e != "symbol" ? e + "" : e, n), n); (function() { const e = document.createElement("link").relList; if (e && e.supports && e.supports("modulepreload")) return; - for (const r of document.querySelectorAll('link[rel="modulepreload"]')) - d(r); - new MutationObserver((r) => { - for (const i of r) - if (i.type === "childList") - for (const l of i.addedNodes) - l.tagName === "LINK" && l.rel === "modulepreload" && d(l); + for (const i of document.querySelectorAll('link[rel="modulepreload"]')) + r(i); + new MutationObserver((i) => { + for (const o of i) + if (o.type === "childList") + for (const a of o.addedNodes) + a.tagName === "LINK" && a.rel === "modulepreload" && r(a); }).observe(document, { childList: !0, subtree: !0 }); - function a(r) { - const i = {}; - return r.integrity && (i.integrity = r.integrity), r.referrerPolicy && (i.referrerPolicy = r.referrerPolicy), r.crossOrigin === "use-credentials" ? i.credentials = "include" : r.crossOrigin === "anonymous" ? i.credentials = "omit" : i.credentials = "same-origin", i; + function n(i) { + const o = {}; + return i.integrity && (o.integrity = i.integrity), i.referrerPolicy && (o.referrerPolicy = i.referrerPolicy), i.crossOrigin === "use-credentials" ? o.credentials = "include" : i.crossOrigin === "anonymous" ? o.credentials = "omit" : o.credentials = "same-origin", o; } - function d(r) { - if (r.ep) + function r(i) { + if (i.ep) return; - r.ep = !0; - const i = a(r); - fetch(r.href, i); + i.ep = !0; + const o = n(i); + fetch(i.href, o); } })(); -function s(t, e, a) { - this.k = t, this.x = e, this.y = a; +function $n(t) { + var e = 0, n = t.children, r = n && n.length; + if (!r) + e = 1; + else + for (; --r >= 0; ) + e += n[r].value; + t.value = e; } -s.prototype = { - constructor: s, +function Nn() { + return this.eachAfter($n); +} +function An(t, e) { + let n = -1; + for (const r of this) + t.call(e, r, ++n, this); + return this; +} +function zn(t, e) { + for (var n = this, r = [n], i, o, a = -1; n = r.pop(); ) + if (t.call(e, n, ++a, this), i = n.children) + for (o = i.length - 1; o >= 0; --o) + r.push(i[o]); + return this; +} +function Sn(t, e) { + for (var n = this, r = [n], i = [], o, a, s, f = -1; n = r.pop(); ) + if (i.push(n), o = n.children) + for (a = 0, s = o.length; a < s; ++a) + r.push(o[a]); + for (; n = i.pop(); ) + t.call(e, n, ++f, this); + return this; +} +function En(t, e) { + let n = -1; + for (const r of this) + if (t.call(e, r, ++n, this)) + return r; +} +function Mn(t) { + return this.eachAfter(function(e) { + for (var n = +t(e.data) || 0, r = e.children, i = r && r.length; --i >= 0; ) + n += r[i].value; + e.value = n; + }); +} +function Tn(t) { + return this.eachBefore(function(e) { + e.children && e.children.sort(t); + }); +} +function Cn(t) { + for (var e = this, n = In(e, t), r = [e]; e !== n; ) + e = e.parent, r.push(e); + for (var i = r.length; t !== n; ) + r.splice(i, 0, t), t = t.parent; + return r; +} +function In(t, e) { + if (t === e) + return t; + var n = t.ancestors(), r = e.ancestors(), i = null; + for (t = n.pop(), e = r.pop(); t === e; ) + i = t, t = n.pop(), e = r.pop(); + return i; +} +function Ln() { + for (var t = this, e = [t]; t = t.parent; ) + e.push(t); + return e; +} +function Fn() { + return Array.from(this); +} +function qn() { + var t = []; + return this.eachBefore(function(e) { + e.children || t.push(e); + }), t; +} +function Hn() { + var t = this, e = []; + return t.each(function(n) { + n !== t && e.push({ source: n.parent, target: n }); + }), e; +} +function* Dn() { + var t = this, e, n = [t], r, i, o; + do + for (e = n.reverse(), n = []; t = e.pop(); ) + if (yield t, r = t.children) + for (i = 0, o = r.length; i < o; ++i) + n.push(r[i]); + while (n.length); +} +function ce(t, e) { + t instanceof Map ? (t = [void 0, t], e === void 0 && (e = On)) : e === void 0 && (e = Pn); + for (var n = new at(t), r, i = [n], o, a, s, f; r = i.pop(); ) + if ((a = e(r.data)) && (f = (a = Array.from(a)).length)) + for (r.children = a, s = f - 1; s >= 0; --s) + i.push(o = a[s] = new at(a[s])), o.parent = r, o.depth = r.depth + 1; + return n.eachBefore(Ve); +} +function Rn() { + return ce(this).eachBefore(Vn); +} +function Pn(t) { + return t.children; +} +function On(t) { + return Array.isArray(t) ? t[1] : null; +} +function Vn(t) { + t.data.value !== void 0 && (t.value = t.data.value), t.data = t.data.data; +} +function Ve(t) { + var e = 0; + do + t.height = e; + while ((t = t.parent) && t.height < ++e); +} +function at(t) { + this.data = t, this.depth = this.height = 0, this.parent = null; +} +at.prototype = ce.prototype = { + constructor: at, + count: Nn, + each: An, + eachAfter: Sn, + eachBefore: zn, + find: En, + sum: Mn, + sort: Tn, + path: Cn, + ancestors: Ln, + descendants: Fn, + leaves: qn, + links: Hn, + copy: Rn, + [Symbol.iterator]: Dn +}; +function Bt(t) { + return t == null ? null : Xe(t); +} +function Xe(t) { + if (typeof t != "function") + throw new Error(); + return t; +} +function ct() { + return 0; +} +function lt(t) { + return function() { + return t; + }; +} +function Xn(t) { + t.x0 = Math.round(t.x0), t.y0 = Math.round(t.y0), t.x1 = Math.round(t.x1), t.y1 = Math.round(t.y1); +} +function Wn(t, e, n, r, i) { + for (var o = t.children, a, s = -1, f = o.length, u = t.value && (r - e) / t.value; ++s < f; ) + a = o[s], a.y0 = n, a.y1 = i, a.x0 = e, a.x1 = e += a.value * u; +} +var Bn = { depth: -1 }, we = {}, Yt = {}; +function Yn(t) { + return t.id; +} +function Un(t) { + return t.parentId; +} +function Gn() { + var t = Yn, e = Un, n; + function r(i) { + var o = Array.from(i), a = t, s = e, f, u, c, d, l, p, m, _, x = /* @__PURE__ */ new Map(); + if (n != null) { + const y = o.map((A, E) => Kn(n(A, E, i))), w = y.map(ve), z = new Set(y).add(""); + for (const A of w) + z.has(A) || (z.add(A), y.push(A), w.push(ve(A)), o.push(Yt)); + a = (A, E) => y[E], s = (A, E) => w[E]; + } + for (c = 0, f = o.length; c < f; ++c) + u = o[c], p = o[c] = new at(u), (m = a(u, c, i)) != null && (m += "") && (_ = p.id = m, x.set(_, x.has(_) ? we : p)), (m = s(u, c, i)) != null && (m += "") && (p.parent = m); + for (c = 0; c < f; ++c) + if (p = o[c], m = p.parent) { + if (l = x.get(m), !l) + throw new Error("missing: " + m); + if (l === we) + throw new Error("ambiguous: " + m); + l.children ? l.children.push(p) : l.children = [p], p.parent = l; + } else { + if (d) + throw new Error("multiple roots"); + d = p; + } + if (!d) + throw new Error("no root"); + if (n != null) { + for (; d.data === Yt && d.children.length === 1; ) + d = d.children[0], --f; + for (let y = o.length - 1; y >= 0 && (p = o[y], p.data === Yt); --y) + p.data = null; + } + if (d.parent = Bn, d.eachBefore(function(y) { + y.depth = y.parent.depth + 1, --f; + }).eachBefore(Ve), d.parent = null, f > 0) + throw new Error("cycle"); + return d; + } + return r.id = function(i) { + return arguments.length ? (t = Bt(i), r) : t; + }, r.parentId = function(i) { + return arguments.length ? (e = Bt(i), r) : e; + }, r.path = function(i) { + return arguments.length ? (n = Bt(i), r) : n; + }, r; +} +function Kn(t) { + t = `${t}`; + let e = t.length; + return jt(t, e - 1) && !jt(t, e - 2) && (t = t.slice(0, -1)), t[0] === "/" ? t : `/${t}`; +} +function ve(t) { + let e = t.length; + if (e < 2) + return ""; + for (; --e > 1 && !jt(t, e); ) + ; + return t.slice(0, e); +} +function jt(t, e) { + if (t[e] === "/") { + let n = 0; + for (; e > 0 && t[--e] === "\\"; ) + ++n; + if (!(n & 1)) + return !0; + } + return !1; +} +function Zn(t, e) { + return t.parent === e.parent ? 1 : 2; +} +function Ut(t) { + var e = t.children; + return e ? e[0] : t.t; +} +function Gt(t) { + var e = t.children; + return e ? e[e.length - 1] : t.t; +} +function Qn(t, e, n) { + var r = n / (e.i - t.i); + e.c -= r, e.s += n, t.c += r, e.z += n, e.m += n; +} +function Jn(t) { + for (var e = 0, n = 0, r = t.children, i = r.length, o; --i >= 0; ) + o = r[i], o.z += e, o.m += e, e += o.s + (n += o.c); +} +function jn(t, e, n) { + return t.a.parent === e.parent ? t.a : n; +} +function Et(t, e) { + this._ = t, this.parent = null, this.children = null, this.A = null, this.a = this, this.z = 0, this.m = 0, this.c = 0, this.s = 0, this.t = null, this.i = e; +} +Et.prototype = Object.create(at.prototype); +function tr(t) { + for (var e = new Et(t, 0), n, r = [e], i, o, a, s; n = r.pop(); ) + if (o = n._.children) + for (n.children = new Array(s = o.length), a = s - 1; a >= 0; --a) + r.push(i = n.children[a] = new Et(o[a], a)), i.parent = n; + return (e.parent = new Et(null, 0)).children = [e], e; +} +function er() { + var t = Zn, e = 1, n = 1, r = null; + function i(u) { + var c = tr(u); + if (c.eachAfter(o), c.parent.m = -c.z, c.eachBefore(a), r) + u.eachBefore(f); + else { + var d = u, l = u, p = u; + u.eachBefore(function(w) { + w.x < d.x && (d = w), w.x > l.x && (l = w), w.depth > p.depth && (p = w); + }); + var m = d === l ? 1 : t(d, l) / 2, _ = m - d.x, x = e / (l.x + m + _), y = n / (p.depth || 1); + u.eachBefore(function(w) { + w.x = (w.x + _) * x, w.y = w.depth * y; + }); + } + return u; + } + function o(u) { + var c = u.children, d = u.parent.children, l = u.i ? d[u.i - 1] : null; + if (c) { + Jn(u); + var p = (c[0].z + c[c.length - 1].z) / 2; + l ? (u.z = l.z + t(u._, l._), u.m = u.z - p) : u.z = p; + } else + l && (u.z = l.z + t(u._, l._)); + u.parent.A = s(u, l, u.parent.A || d[0]); + } + function a(u) { + u._.x = u.z + u.parent.m, u.m += u.parent.m; + } + function s(u, c, d) { + if (c) { + for (var l = u, p = u, m = c, _ = l.parent.children[0], x = l.m, y = p.m, w = m.m, z = _.m, A; m = Gt(m), l = Ut(l), m && l; ) + _ = Ut(_), p = Gt(p), p.a = u, A = m.z + w - l.z - x + t(m._, l._), A > 0 && (Qn(jn(m, u, d), u, A), x += A, y += A), w += m.m, x += l.m, z += _.m, y += p.m; + m && !Gt(p) && (p.t = m, p.m += w - y), l && !Ut(_) && (_.t = l, _.m += x - z, d = u); + } + return d; + } + function f(u) { + u.x *= e, u.y = u.depth * n; + } + return i.separation = function(u) { + return arguments.length ? (t = u, i) : t; + }, i.size = function(u) { + return arguments.length ? (r = !1, e = +u[0], n = +u[1], i) : r ? null : [e, n]; + }, i.nodeSize = function(u) { + return arguments.length ? (r = !0, e = +u[0], n = +u[1], i) : r ? [e, n] : null; + }, i; +} +function nr(t, e, n, r, i) { + for (var o = t.children, a, s = -1, f = o.length, u = t.value && (i - n) / t.value; ++s < f; ) + a = o[s], a.x0 = e, a.x1 = r, a.y0 = n, a.y1 = n += a.value * u; +} +var rr = (1 + Math.sqrt(5)) / 2; +function ir(t, e, n, r, i, o) { + for (var a = [], s = e.children, f, u, c = 0, d = 0, l = s.length, p, m, _ = e.value, x, y, w, z, A, E, C; c < l; ) { + p = i - n, m = o - r; + do + x = s[d++].value; + while (!x && d < l); + for (y = w = x, E = Math.max(m / p, p / m) / (_ * t), C = x * x * E, A = Math.max(w / C, C / y); d < l; ++d) { + if (x += u = s[d].value, u < y && (y = u), u > w && (w = u), C = x * x * E, z = Math.max(w / C, C / y), z > A) { + x -= u; + break; + } + A = z; + } + a.push(f = { value: x, dice: p < m, children: s.slice(c, d) }), f.dice ? Wn(f, n, r, i, _ ? r += m * x / _ : o) : nr(f, n, r, _ ? n += p * x / _ : i, o), _ -= x, c = d; + } + return a; +} +const or = function t(e) { + function n(r, i, o, a, s) { + ir(e, r, i, o, a, s); + } + return n.ratio = function(r) { + return t((r = +r) > 1 ? r : 1); + }, n; +}(rr); +function ar() { + var t = or, e = !1, n = 1, r = 1, i = [0], o = ct, a = ct, s = ct, f = ct, u = ct; + function c(l) { + return l.x0 = l.y0 = 0, l.x1 = n, l.y1 = r, l.eachBefore(d), i = [0], e && l.eachBefore(Xn), l; + } + function d(l) { + var p = i[l.depth], m = l.x0 + p, _ = l.y0 + p, x = l.x1 - p, y = l.y1 - p; + x < m && (m = x = (m + x) / 2), y < _ && (_ = y = (_ + y) / 2), l.x0 = m, l.y0 = _, l.x1 = x, l.y1 = y, l.children && (p = i[l.depth + 1] = o(l) / 2, m += u(l) - p, _ += a(l) - p, x -= s(l) - p, y -= f(l) - p, x < m && (m = x = (m + x) / 2), y < _ && (_ = y = (_ + y) / 2), t(l, m, _, x, y)); + } + return c.round = function(l) { + return arguments.length ? (e = !!l, c) : e; + }, c.size = function(l) { + return arguments.length ? (n = +l[0], r = +l[1], c) : [n, r]; + }, c.tile = function(l) { + return arguments.length ? (t = Xe(l), c) : t; + }, c.padding = function(l) { + return arguments.length ? c.paddingInner(l).paddingOuter(l) : c.paddingInner(); + }, c.paddingInner = function(l) { + return arguments.length ? (o = typeof l == "function" ? l : lt(+l), c) : o; + }, c.paddingOuter = function(l) { + return arguments.length ? c.paddingTop(l).paddingRight(l).paddingBottom(l).paddingLeft(l) : c.paddingTop(); + }, c.paddingTop = function(l) { + return arguments.length ? (a = typeof l == "function" ? l : lt(+l), c) : a; + }, c.paddingRight = function(l) { + return arguments.length ? (s = typeof l == "function" ? l : lt(+l), c) : s; + }, c.paddingBottom = function(l) { + return arguments.length ? (f = typeof l == "function" ? l : lt(+l), c) : f; + }, c.paddingLeft = function(l) { + return arguments.length ? (u = typeof l == "function" ? l : lt(+l), c) : u; + }, c; +} +var te = "http://www.w3.org/1999/xhtml"; +const be = { + svg: "http://www.w3.org/2000/svg", + xhtml: te, + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" +}; +function Ot(t) { + var e = t += "", n = e.indexOf(":"); + return n >= 0 && (e = t.slice(0, n)) !== "xmlns" && (t = t.slice(n + 1)), be.hasOwnProperty(e) ? { space: be[e], local: t } : t; +} +function ur(t) { + return function() { + var e = this.ownerDocument, n = this.namespaceURI; + return n === te && e.documentElement.namespaceURI === te ? e.createElement(t) : e.createElementNS(n, t); + }; +} +function sr(t) { + return function() { + return this.ownerDocument.createElementNS(t.space, t.local); + }; +} +function We(t) { + var e = Ot(t); + return (e.local ? sr : ur)(e); +} +function cr() { +} +function le(t) { + return t == null ? cr : function() { + return this.querySelector(t); + }; +} +function lr(t) { + typeof t != "function" && (t = le(t)); + for (var e = this._groups, n = e.length, r = new Array(n), i = 0; i < n; ++i) + for (var o = e[i], a = o.length, s = r[i] = new Array(a), f, u, c = 0; c < a; ++c) + (f = o[c]) && (u = t.call(f, f.__data__, c, o)) && ("__data__" in f && (u.__data__ = f.__data__), s[c] = u); + return new F(r, this._parents); +} +function Be(t) { + return t == null ? [] : Array.isArray(t) ? t : Array.from(t); +} +function fr() { + return []; +} +function Ye(t) { + return t == null ? fr : function() { + return this.querySelectorAll(t); + }; +} +function hr(t) { + return function() { + return Be(t.apply(this, arguments)); + }; +} +function dr(t) { + typeof t == "function" ? t = hr(t) : t = Ye(t); + for (var e = this._groups, n = e.length, r = [], i = [], o = 0; o < n; ++o) + for (var a = e[o], s = a.length, f, u = 0; u < s; ++u) + (f = a[u]) && (r.push(t.call(f, f.__data__, u, a)), i.push(f)); + return new F(r, i); +} +function Ue(t) { + return function() { + return this.matches(t); + }; +} +function Ge(t) { + return function(e) { + return e.matches(t); + }; +} +var pr = Array.prototype.find; +function gr(t) { + return function() { + return pr.call(this.children, t); + }; +} +function yr() { + return this.firstElementChild; +} +function mr(t) { + return this.select(t == null ? yr : gr(typeof t == "function" ? t : Ge(t))); +} +var _r = Array.prototype.filter; +function xr() { + return Array.from(this.children); +} +function wr(t) { + return function() { + return _r.call(this.children, t); + }; +} +function vr(t) { + return this.selectAll(t == null ? xr : wr(typeof t == "function" ? t : Ge(t))); +} +function br(t) { + typeof t != "function" && (t = Ue(t)); + for (var e = this._groups, n = e.length, r = new Array(n), i = 0; i < n; ++i) + for (var o = e[i], a = o.length, s = r[i] = [], f, u = 0; u < a; ++u) + (f = o[u]) && t.call(f, f.__data__, u, o) && s.push(f); + return new F(r, this._parents); +} +function Ke(t) { + return new Array(t.length); +} +function kr() { + return new F(this._enter || this._groups.map(Ke), this._parents); +} +function Lt(t, e) { + this.ownerDocument = t.ownerDocument, this.namespaceURI = t.namespaceURI, this._next = null, this._parent = t, this.__data__ = e; +} +Lt.prototype = { + constructor: Lt, + appendChild: function(t) { + return this._parent.insertBefore(t, this._next); + }, + insertBefore: function(t, e) { + return this._parent.insertBefore(t, e); + }, + querySelector: function(t) { + return this._parent.querySelector(t); + }, + querySelectorAll: function(t) { + return this._parent.querySelectorAll(t); + } +}; +function $r(t) { + return function() { + return t; + }; +} +function Nr(t, e, n, r, i, o) { + for (var a = 0, s, f = e.length, u = o.length; a < u; ++a) + (s = e[a]) ? (s.__data__ = o[a], r[a] = s) : n[a] = new Lt(t, o[a]); + for (; a < f; ++a) + (s = e[a]) && (i[a] = s); +} +function Ar(t, e, n, r, i, o, a) { + var s, f, u = /* @__PURE__ */ new Map(), c = e.length, d = o.length, l = new Array(c), p; + for (s = 0; s < c; ++s) + (f = e[s]) && (l[s] = p = a.call(f, f.__data__, s, e) + "", u.has(p) ? i[s] = f : u.set(p, f)); + for (s = 0; s < d; ++s) + p = a.call(t, o[s], s, o) + "", (f = u.get(p)) ? (r[s] = f, f.__data__ = o[s], u.delete(p)) : n[s] = new Lt(t, o[s]); + for (s = 0; s < c; ++s) + (f = e[s]) && u.get(l[s]) === f && (i[s] = f); +} +function zr(t) { + return t.__data__; +} +function Sr(t, e) { + if (!arguments.length) + return Array.from(this, zr); + var n = e ? Ar : Nr, r = this._parents, i = this._groups; + typeof t != "function" && (t = $r(t)); + for (var o = i.length, a = new Array(o), s = new Array(o), f = new Array(o), u = 0; u < o; ++u) { + var c = r[u], d = i[u], l = d.length, p = Er(t.call(c, c && c.__data__, u, r)), m = p.length, _ = s[u] = new Array(m), x = a[u] = new Array(m), y = f[u] = new Array(l); + n(c, d, _, x, y, p, e); + for (var w = 0, z = 0, A, E; w < m; ++w) + if (A = _[w]) { + for (w >= z && (z = w + 1); !(E = x[z]) && ++z < m; ) + ; + A._next = E || null; + } + } + return a = new F(a, r), a._enter = s, a._exit = f, a; +} +function Er(t) { + return typeof t == "object" && "length" in t ? t : Array.from(t); +} +function Mr() { + return new F(this._exit || this._groups.map(Ke), this._parents); +} +function Tr(t, e, n) { + var r = this.enter(), i = this, o = this.exit(); + return typeof t == "function" ? (r = t(r), r && (r = r.selection())) : r = r.append(t + ""), e != null && (i = e(i), i && (i = i.selection())), n == null ? o.remove() : n(o), r && i ? r.merge(i).order() : i; +} +function Cr(t) { + for (var e = t.selection ? t.selection() : t, n = this._groups, r = e._groups, i = n.length, o = r.length, a = Math.min(i, o), s = new Array(i), f = 0; f < a; ++f) + for (var u = n[f], c = r[f], d = u.length, l = s[f] = new Array(d), p, m = 0; m < d; ++m) + (p = u[m] || c[m]) && (l[m] = p); + for (; f < i; ++f) + s[f] = n[f]; + return new F(s, this._parents); +} +function Ir() { + for (var t = this._groups, e = -1, n = t.length; ++e < n; ) + for (var r = t[e], i = r.length - 1, o = r[i], a; --i >= 0; ) + (a = r[i]) && (o && a.compareDocumentPosition(o) ^ 4 && o.parentNode.insertBefore(a, o), o = a); + return this; +} +function Lr(t) { + t || (t = Fr); + function e(d, l) { + return d && l ? t(d.__data__, l.__data__) : !d - !l; + } + for (var n = this._groups, r = n.length, i = new Array(r), o = 0; o < r; ++o) { + for (var a = n[o], s = a.length, f = i[o] = new Array(s), u, c = 0; c < s; ++c) + (u = a[c]) && (f[c] = u); + f.sort(e); + } + return new F(i, this._parents).order(); +} +function Fr(t, e) { + return t < e ? -1 : t > e ? 1 : t >= e ? 0 : NaN; +} +function qr() { + var t = arguments[0]; + return arguments[0] = this, t.apply(null, arguments), this; +} +function Hr() { + return Array.from(this); +} +function Dr() { + for (var t = this._groups, e = 0, n = t.length; e < n; ++e) + for (var r = t[e], i = 0, o = r.length; i < o; ++i) { + var a = r[i]; + if (a) + return a; + } + return null; +} +function Rr() { + let t = 0; + for (const e of this) + ++t; + return t; +} +function Pr() { + return !this.node(); +} +function Or(t) { + for (var e = this._groups, n = 0, r = e.length; n < r; ++n) + for (var i = e[n], o = 0, a = i.length, s; o < a; ++o) + (s = i[o]) && t.call(s, s.__data__, o, i); + return this; +} +function Vr(t) { + return function() { + this.removeAttribute(t); + }; +} +function Xr(t) { + return function() { + this.removeAttributeNS(t.space, t.local); + }; +} +function Wr(t, e) { + return function() { + this.setAttribute(t, e); + }; +} +function Br(t, e) { + return function() { + this.setAttributeNS(t.space, t.local, e); + }; +} +function Yr(t, e) { + return function() { + var n = e.apply(this, arguments); + n == null ? this.removeAttribute(t) : this.setAttribute(t, n); + }; +} +function Ur(t, e) { + return function() { + var n = e.apply(this, arguments); + n == null ? this.removeAttributeNS(t.space, t.local) : this.setAttributeNS(t.space, t.local, n); + }; +} +function Gr(t, e) { + var n = Ot(t); + if (arguments.length < 2) { + var r = this.node(); + return n.local ? r.getAttributeNS(n.space, n.local) : r.getAttribute(n); + } + return this.each((e == null ? n.local ? Xr : Vr : typeof e == "function" ? n.local ? Ur : Yr : n.local ? Br : Wr)(n, e)); +} +function Ze(t) { + return t.ownerDocument && t.ownerDocument.defaultView || t.document && t || t.defaultView; +} +function Kr(t) { + return function() { + this.style.removeProperty(t); + }; +} +function Zr(t, e, n) { + return function() { + this.style.setProperty(t, e, n); + }; +} +function Qr(t, e, n) { + return function() { + var r = e.apply(this, arguments); + r == null ? this.style.removeProperty(t) : this.style.setProperty(t, r, n); + }; +} +function Jr(t, e, n) { + return arguments.length > 1 ? this.each((e == null ? Kr : typeof e == "function" ? Qr : Zr)(t, e, n ?? "")) : ut(this.node(), t); +} +function ut(t, e) { + return t.style.getPropertyValue(e) || Ze(t).getComputedStyle(t, null).getPropertyValue(e); +} +function jr(t) { + return function() { + delete this[t]; + }; +} +function ti(t, e) { + return function() { + this[t] = e; + }; +} +function ei(t, e) { + return function() { + var n = e.apply(this, arguments); + n == null ? delete this[t] : this[t] = n; + }; +} +function ni(t, e) { + return arguments.length > 1 ? this.each((e == null ? jr : typeof e == "function" ? ei : ti)(t, e)) : this.node()[t]; +} +function Qe(t) { + return t.trim().split(/^|\s+/); +} +function fe(t) { + return t.classList || new Je(t); +} +function Je(t) { + this._node = t, this._names = Qe(t.getAttribute("class") || ""); +} +Je.prototype = { + add: function(t) { + var e = this._names.indexOf(t); + e < 0 && (this._names.push(t), this._node.setAttribute("class", this._names.join(" "))); + }, + remove: function(t) { + var e = this._names.indexOf(t); + e >= 0 && (this._names.splice(e, 1), this._node.setAttribute("class", this._names.join(" "))); + }, + contains: function(t) { + return this._names.indexOf(t) >= 0; + } +}; +function je(t, e) { + for (var n = fe(t), r = -1, i = e.length; ++r < i; ) + n.add(e[r]); +} +function tn(t, e) { + for (var n = fe(t), r = -1, i = e.length; ++r < i; ) + n.remove(e[r]); +} +function ri(t) { + return function() { + je(this, t); + }; +} +function ii(t) { + return function() { + tn(this, t); + }; +} +function oi(t, e) { + return function() { + (e.apply(this, arguments) ? je : tn)(this, t); + }; +} +function ai(t, e) { + var n = Qe(t + ""); + if (arguments.length < 2) { + for (var r = fe(this.node()), i = -1, o = n.length; ++i < o; ) + if (!r.contains(n[i])) + return !1; + return !0; + } + return this.each((typeof e == "function" ? oi : e ? ri : ii)(n, e)); +} +function ui() { + this.textContent = ""; +} +function si(t) { + return function() { + this.textContent = t; + }; +} +function ci(t) { + return function() { + var e = t.apply(this, arguments); + this.textContent = e ?? ""; + }; +} +function li(t) { + return arguments.length ? this.each(t == null ? ui : (typeof t == "function" ? ci : si)(t)) : this.node().textContent; +} +function fi() { + this.innerHTML = ""; +} +function hi(t) { + return function() { + this.innerHTML = t; + }; +} +function di(t) { + return function() { + var e = t.apply(this, arguments); + this.innerHTML = e ?? ""; + }; +} +function pi(t) { + return arguments.length ? this.each(t == null ? fi : (typeof t == "function" ? di : hi)(t)) : this.node().innerHTML; +} +function gi() { + this.nextSibling && this.parentNode.appendChild(this); +} +function yi() { + return this.each(gi); +} +function mi() { + this.previousSibling && this.parentNode.insertBefore(this, this.parentNode.firstChild); +} +function _i() { + return this.each(mi); +} +function xi(t) { + var e = typeof t == "function" ? t : We(t); + return this.select(function() { + return this.appendChild(e.apply(this, arguments)); + }); +} +function wi() { + return null; +} +function vi(t, e) { + var n = typeof t == "function" ? t : We(t), r = e == null ? wi : typeof e == "function" ? e : le(e); + return this.select(function() { + return this.insertBefore(n.apply(this, arguments), r.apply(this, arguments) || null); + }); +} +function bi() { + var t = this.parentNode; + t && t.removeChild(this); +} +function ki() { + return this.each(bi); +} +function $i() { + var t = this.cloneNode(!1), e = this.parentNode; + return e ? e.insertBefore(t, this.nextSibling) : t; +} +function Ni() { + var t = this.cloneNode(!0), e = this.parentNode; + return e ? e.insertBefore(t, this.nextSibling) : t; +} +function Ai(t) { + return this.select(t ? Ni : $i); +} +function zi(t) { + return arguments.length ? this.property("__data__", t) : this.node().__data__; +} +function Si(t) { + return function(e) { + t.call(this, e, this.__data__); + }; +} +function Ei(t) { + return t.trim().split(/^|\s+/).map(function(e) { + var n = "", r = e.indexOf("."); + return r >= 0 && (n = e.slice(r + 1), e = e.slice(0, r)), { type: e, name: n }; + }); +} +function Mi(t) { + return function() { + var e = this.__on; + if (e) { + for (var n = 0, r = -1, i = e.length, o; n < i; ++n) + o = e[n], (!t.type || o.type === t.type) && o.name === t.name ? this.removeEventListener(o.type, o.listener, o.options) : e[++r] = o; + ++r ? e.length = r : delete this.__on; + } + }; +} +function Ti(t, e, n) { + return function() { + var r = this.__on, i, o = Si(e); + if (r) { + for (var a = 0, s = r.length; a < s; ++a) + if ((i = r[a]).type === t.type && i.name === t.name) { + this.removeEventListener(i.type, i.listener, i.options), this.addEventListener(i.type, i.listener = o, i.options = n), i.value = e; + return; + } + } + this.addEventListener(t.type, o, n), i = { type: t.type, name: t.name, value: e, listener: o, options: n }, r ? r.push(i) : this.__on = [i]; + }; +} +function Ci(t, e, n) { + var r = Ei(t + ""), i, o = r.length, a; + if (arguments.length < 2) { + var s = this.node().__on; + if (s) { + for (var f = 0, u = s.length, c; f < u; ++f) + for (i = 0, c = s[f]; i < o; ++i) + if ((a = r[i]).type === c.type && a.name === c.name) + return c.value; + } + return; + } + for (s = e ? Ti : Mi, i = 0; i < o; ++i) + this.each(s(r[i], e, n)); + return this; +} +function en(t, e, n) { + var r = Ze(t), i = r.CustomEvent; + typeof i == "function" ? i = new i(e, n) : (i = r.document.createEvent("Event"), n ? (i.initEvent(e, n.bubbles, n.cancelable), i.detail = n.detail) : i.initEvent(e, !1, !1)), t.dispatchEvent(i); +} +function Ii(t, e) { + return function() { + return en(this, t, e); + }; +} +function Li(t, e) { + return function() { + return en(this, t, e.apply(this, arguments)); + }; +} +function Fi(t, e) { + return this.each((typeof e == "function" ? Li : Ii)(t, e)); +} +function* qi() { + for (var t = this._groups, e = 0, n = t.length; e < n; ++e) + for (var r = t[e], i = 0, o = r.length, a; i < o; ++i) + (a = r[i]) && (yield a); +} +var he = [null]; +function F(t, e) { + this._groups = t, this._parents = e; +} +function xt() { + return new F([[document.documentElement]], he); +} +function Hi() { + return this; +} +F.prototype = xt.prototype = { + constructor: F, + select: lr, + selectAll: dr, + selectChild: mr, + selectChildren: vr, + filter: br, + data: Sr, + enter: kr, + exit: Mr, + join: Tr, + merge: Cr, + selection: Hi, + order: Ir, + sort: Lr, + call: qr, + nodes: Hr, + node: Dr, + size: Rr, + empty: Pr, + each: Or, + attr: Gr, + style: Jr, + property: ni, + classed: ai, + text: li, + html: pi, + raise: yi, + lower: _i, + append: xi, + insert: vi, + remove: ki, + clone: Ai, + datum: zi, + on: Ci, + dispatch: Fi, + [Symbol.iterator]: qi +}; +function Q(t) { + return typeof t == "string" ? new F([[document.querySelector(t)]], [document.documentElement]) : new F([[t]], he); +} +function Di(t) { + let e; + for (; e = t.sourceEvent; ) + t = e; + return t; +} +function j(t, e) { + if (t = Di(t), e === void 0 && (e = t.currentTarget), e) { + var n = e.ownerSVGElement || e; + if (n.createSVGPoint) { + var r = n.createSVGPoint(); + return r.x = t.clientX, r.y = t.clientY, r = r.matrixTransform(e.getScreenCTM().inverse()), [r.x, r.y]; + } + if (e.getBoundingClientRect) { + var i = e.getBoundingClientRect(); + return [t.clientX - i.left - e.clientLeft, t.clientY - i.top - e.clientTop]; + } + } + return [t.pageX, t.pageY]; +} +function Ri(t) { + return typeof t == "string" ? new F([document.querySelectorAll(t)], [document.documentElement]) : new F([Be(t)], he); +} +var Pi = { value: () => { +} }; +function de() { + for (var t = 0, e = arguments.length, n = {}, r; t < e; ++t) { + if (!(r = arguments[t] + "") || r in n || /[\s.]/.test(r)) + throw new Error("illegal type: " + r); + n[r] = []; + } + return new Mt(n); +} +function Mt(t) { + this._ = t; +} +function Oi(t, e) { + return t.trim().split(/^|\s+/).map(function(n) { + var r = "", i = n.indexOf("."); + if (i >= 0 && (r = n.slice(i + 1), n = n.slice(0, i)), n && !e.hasOwnProperty(n)) + throw new Error("unknown type: " + n); + return { type: n, name: r }; + }); +} +Mt.prototype = de.prototype = { + constructor: Mt, + on: function(t, e) { + var n = this._, r = Oi(t + "", n), i, o = -1, a = r.length; + if (arguments.length < 2) { + for (; ++o < a; ) + if ((i = (t = r[o]).type) && (i = Vi(n[i], t.name))) + return i; + return; + } + if (e != null && typeof e != "function") + throw new Error("invalid callback: " + e); + for (; ++o < a; ) + if (i = (t = r[o]).type) + n[i] = ke(n[i], t.name, e); + else if (e == null) + for (i in n) + n[i] = ke(n[i], t.name, null); + return this; + }, + copy: function() { + var t = {}, e = this._; + for (var n in e) + t[n] = e[n].slice(); + return new Mt(t); + }, + call: function(t, e) { + if ((i = arguments.length - 2) > 0) + for (var n = new Array(i), r = 0, i, o; r < i; ++r) + n[r] = arguments[r + 2]; + if (!this._.hasOwnProperty(t)) + throw new Error("unknown type: " + t); + for (o = this._[t], r = 0, i = o.length; r < i; ++r) + o[r].value.apply(e, n); + }, + apply: function(t, e, n) { + if (!this._.hasOwnProperty(t)) + throw new Error("unknown type: " + t); + for (var r = this._[t], i = 0, o = r.length; i < o; ++i) + r[i].value.apply(e, n); + } +}; +function Vi(t, e) { + for (var n = 0, r = t.length, i; n < r; ++n) + if ((i = t[n]).name === e) + return i.value; +} +function ke(t, e, n) { + for (var r = 0, i = t.length; r < i; ++r) + if (t[r].name === e) { + t[r] = Pi, t = t.slice(0, r).concat(t.slice(r + 1)); + break; + } + return n != null && t.push({ name: e, value: n }), t; +} +const ee = { capture: !0, passive: !1 }; +function ne(t) { + t.preventDefault(), t.stopImmediatePropagation(); +} +function Xi(t) { + var e = t.document.documentElement, n = Q(t).on("dragstart.drag", ne, ee); + "onselectstart" in e ? n.on("selectstart.drag", ne, ee) : (e.__noselect = e.style.MozUserSelect, e.style.MozUserSelect = "none"); +} +function Wi(t, e) { + var n = t.document.documentElement, r = Q(t).on("dragstart.drag", null); + e && (r.on("click.drag", ne, ee), setTimeout(function() { + r.on("click.drag", null); + }, 0)), "onselectstart" in n ? r.on("selectstart.drag", null) : (n.style.MozUserSelect = n.__noselect, delete n.__noselect); +} +function pe(t, e, n) { + t.prototype = e.prototype = n, n.constructor = t; +} +function nn(t, e) { + var n = Object.create(t.prototype); + for (var r in e) + n[r] = e[r]; + return n; +} +function wt() { +} +var gt = 0.7, Ft = 1 / gt, ot = "\\s*([+-]?\\d+)\\s*", yt = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", V = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", Bi = /^#([0-9a-f]{3,8})$/, Yi = new RegExp(`^rgb\\(${ot},${ot},${ot}\\)$`), Ui = new RegExp(`^rgb\\(${V},${V},${V}\\)$`), Gi = new RegExp(`^rgba\\(${ot},${ot},${ot},${yt}\\)$`), Ki = new RegExp(`^rgba\\(${V},${V},${V},${yt}\\)$`), Zi = new RegExp(`^hsl\\(${yt},${V},${V}\\)$`), Qi = new RegExp(`^hsla\\(${yt},${V},${V},${yt}\\)$`), $e = { + 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 +}; +pe(wt, mt, { + copy(t) { + return Object.assign(new this.constructor(), this, t); + }, + displayable() { + return this.rgb().displayable(); + }, + hex: Ne, + // Deprecated! Use color.formatHex. + formatHex: Ne, + formatHex8: Ji, + formatHsl: ji, + formatRgb: Ae, + toString: Ae +}); +function Ne() { + return this.rgb().formatHex(); +} +function Ji() { + return this.rgb().formatHex8(); +} +function ji() { + return rn(this).formatHsl(); +} +function Ae() { + return this.rgb().formatRgb(); +} +function mt(t) { + var e, n; + return t = (t + "").trim().toLowerCase(), (e = Bi.exec(t)) ? (n = e[1].length, e = parseInt(e[1], 16), n === 6 ? ze(e) : n === 3 ? new q(e >> 8 & 15 | e >> 4 & 240, e >> 4 & 15 | e & 240, (e & 15) << 4 | e & 15, 1) : n === 8 ? Nt(e >> 24 & 255, e >> 16 & 255, e >> 8 & 255, (e & 255) / 255) : n === 4 ? Nt(e >> 12 & 15 | e >> 8 & 240, e >> 8 & 15 | e >> 4 & 240, e >> 4 & 15 | e & 240, ((e & 15) << 4 | e & 15) / 255) : null) : (e = Yi.exec(t)) ? new q(e[1], e[2], e[3], 1) : (e = Ui.exec(t)) ? new q(e[1] * 255 / 100, e[2] * 255 / 100, e[3] * 255 / 100, 1) : (e = Gi.exec(t)) ? Nt(e[1], e[2], e[3], e[4]) : (e = Ki.exec(t)) ? Nt(e[1] * 255 / 100, e[2] * 255 / 100, e[3] * 255 / 100, e[4]) : (e = Zi.exec(t)) ? Me(e[1], e[2] / 100, e[3] / 100, 1) : (e = Qi.exec(t)) ? Me(e[1], e[2] / 100, e[3] / 100, e[4]) : $e.hasOwnProperty(t) ? ze($e[t]) : t === "transparent" ? new q(NaN, NaN, NaN, 0) : null; +} +function ze(t) { + return new q(t >> 16 & 255, t >> 8 & 255, t & 255, 1); +} +function Nt(t, e, n, r) { + return r <= 0 && (t = e = n = NaN), new q(t, e, n, r); +} +function to(t) { + return t instanceof wt || (t = mt(t)), t ? (t = t.rgb(), new q(t.r, t.g, t.b, t.opacity)) : new q(); +} +function re(t, e, n, r) { + return arguments.length === 1 ? to(t) : new q(t, e, n, r ?? 1); +} +function q(t, e, n, r) { + this.r = +t, this.g = +e, this.b = +n, this.opacity = +r; +} +pe(q, re, nn(wt, { + brighter(t) { + return t = t == null ? Ft : Math.pow(Ft, t), new q(this.r * t, this.g * t, this.b * t, this.opacity); + }, + darker(t) { + return t = t == null ? gt : Math.pow(gt, t), new q(this.r * t, this.g * t, this.b * t, this.opacity); + }, + rgb() { + return this; + }, + clamp() { + return new q(et(this.r), et(this.g), et(this.b), qt(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: Se, + // Deprecated! Use color.formatHex. + formatHex: Se, + formatHex8: eo, + formatRgb: Ee, + toString: Ee +})); +function Se() { + return `#${tt(this.r)}${tt(this.g)}${tt(this.b)}`; +} +function eo() { + return `#${tt(this.r)}${tt(this.g)}${tt(this.b)}${tt((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`; +} +function Ee() { + const t = qt(this.opacity); + return `${t === 1 ? "rgb(" : "rgba("}${et(this.r)}, ${et(this.g)}, ${et(this.b)}${t === 1 ? ")" : `, ${t})`}`; +} +function qt(t) { + return isNaN(t) ? 1 : Math.max(0, Math.min(1, t)); +} +function et(t) { + return Math.max(0, Math.min(255, Math.round(t) || 0)); +} +function tt(t) { + return t = et(t), (t < 16 ? "0" : "") + t.toString(16); +} +function Me(t, e, n, r) { + return r <= 0 ? t = e = n = NaN : n <= 0 || n >= 1 ? t = e = NaN : e <= 0 && (t = NaN), new R(t, e, n, r); +} +function rn(t) { + if (t instanceof R) + return new R(t.h, t.s, t.l, t.opacity); + if (t instanceof wt || (t = mt(t)), !t) + return new R(); + if (t instanceof R) + return t; + t = t.rgb(); + var e = t.r / 255, n = t.g / 255, r = t.b / 255, i = Math.min(e, n, r), o = Math.max(e, n, r), a = NaN, s = o - i, f = (o + i) / 2; + return s ? (e === o ? a = (n - r) / s + (n < r) * 6 : n === o ? a = (r - e) / s + 2 : a = (e - n) / s + 4, s /= f < 0.5 ? o + i : 2 - o - i, a *= 60) : s = f > 0 && f < 1 ? 0 : a, new R(a, s, f, t.opacity); +} +function no(t, e, n, r) { + return arguments.length === 1 ? rn(t) : new R(t, e, n, r ?? 1); +} +function R(t, e, n, r) { + this.h = +t, this.s = +e, this.l = +n, this.opacity = +r; +} +pe(R, no, nn(wt, { + brighter(t) { + return t = t == null ? Ft : Math.pow(Ft, t), new R(this.h, this.s, this.l * t, this.opacity); + }, + darker(t) { + return t = t == null ? gt : Math.pow(gt, t), new R(this.h, this.s, this.l * t, this.opacity); + }, + rgb() { + var t = this.h % 360 + (this.h < 0) * 360, e = isNaN(t) || isNaN(this.s) ? 0 : this.s, n = this.l, r = n + (n < 0.5 ? n : 1 - n) * e, i = 2 * n - r; + return new q( + Kt(t >= 240 ? t - 240 : t + 120, i, r), + Kt(t, i, r), + Kt(t < 120 ? t + 240 : t - 120, i, r), + this.opacity + ); + }, + clamp() { + return new R(Te(this.h), At(this.s), At(this.l), qt(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 = qt(this.opacity); + return `${t === 1 ? "hsl(" : "hsla("}${Te(this.h)}, ${At(this.s) * 100}%, ${At(this.l) * 100}%${t === 1 ? ")" : `, ${t})`}`; + } +})); +function Te(t) { + return t = (t || 0) % 360, t < 0 ? t + 360 : t; +} +function At(t) { + return Math.max(0, Math.min(1, t || 0)); +} +function Kt(t, e, n) { + return (t < 60 ? e + (n - e) * t / 60 : t < 180 ? n : t < 240 ? e + (n - e) * (240 - t) / 60 : e) * 255; +} +const on = (t) => () => t; +function ro(t, e) { + return function(n) { + return t + n * e; + }; +} +function io(t, e, n) { + return t = Math.pow(t, n), e = Math.pow(e, n) - t, n = 1 / n, function(r) { + return Math.pow(t + r * e, n); + }; +} +function oo(t) { + return (t = +t) == 1 ? an : function(e, n) { + return n - e ? io(e, n, t) : on(isNaN(e) ? n : e); + }; +} +function an(t, e) { + var n = e - t; + return n ? ro(t, n) : on(isNaN(t) ? e : t); +} +const Ce = function t(e) { + var n = oo(e); + function r(i, o) { + var a = n((i = re(i)).r, (o = re(o)).r), s = n(i.g, o.g), f = n(i.b, o.b), u = an(i.opacity, o.opacity); + return function(c) { + return i.r = a(c), i.g = s(c), i.b = f(c), i.opacity = u(c), i + ""; + }; + } + return r.gamma = t, r; +}(1); +function Z(t, e) { + return t = +t, e = +e, function(n) { + return t * (1 - n) + e * n; + }; +} +var ie = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, Zt = new RegExp(ie.source, "g"); +function ao(t) { + return function() { + return t; + }; +} +function uo(t) { + return function(e) { + return t(e) + ""; + }; +} +function so(t, e) { + var n = ie.lastIndex = Zt.lastIndex = 0, r, i, o, a = -1, s = [], f = []; + for (t = t + "", e = e + ""; (r = ie.exec(t)) && (i = Zt.exec(e)); ) + (o = i.index) > n && (o = e.slice(n, o), s[a] ? s[a] += o : s[++a] = o), (r = r[0]) === (i = i[0]) ? s[a] ? s[a] += i : s[++a] = i : (s[++a] = null, f.push({ i: a, x: Z(r, i) })), n = Zt.lastIndex; + return n < e.length && (o = e.slice(n), s[a] ? s[a] += o : s[++a] = o), s.length < 2 ? f[0] ? uo(f[0].x) : ao(e) : (e = f.length, function(u) { + for (var c = 0, d; c < e; ++c) + s[(d = f[c]).i] = d.x(u); + return s.join(""); + }); +} +var Ie = 180 / Math.PI, oe = { + translateX: 0, + translateY: 0, + rotate: 0, + skewX: 0, + scaleX: 1, + scaleY: 1 +}; +function un(t, e, n, r, i, o) { + var a, s, f; + return (a = Math.sqrt(t * t + e * e)) && (t /= a, e /= a), (f = t * n + e * r) && (n -= t * f, r -= e * f), (s = Math.sqrt(n * n + r * r)) && (n /= s, r /= s, f /= s), t * r < e * n && (t = -t, e = -e, f = -f, a = -a), { + translateX: i, + translateY: o, + rotate: Math.atan2(e, t) * Ie, + skewX: Math.atan(f) * Ie, + scaleX: a, + scaleY: s + }; +} +var zt; +function co(t) { + const e = new (typeof DOMMatrix == "function" ? DOMMatrix : WebKitCSSMatrix)(t + ""); + return e.isIdentity ? oe : un(e.a, e.b, e.c, e.d, e.e, e.f); +} +function lo(t) { + return t == null || (zt || (zt = document.createElementNS("http://www.w3.org/2000/svg", "g")), zt.setAttribute("transform", t), !(t = zt.transform.baseVal.consolidate())) ? oe : (t = t.matrix, un(t.a, t.b, t.c, t.d, t.e, t.f)); +} +function sn(t, e, n, r) { + function i(u) { + return u.length ? u.pop() + " " : ""; + } + function o(u, c, d, l, p, m) { + if (u !== d || c !== l) { + var _ = p.push("translate(", null, e, null, n); + m.push({ i: _ - 4, x: Z(u, d) }, { i: _ - 2, x: Z(c, l) }); + } else + (d || l) && p.push("translate(" + d + e + l + n); + } + function a(u, c, d, l) { + u !== c ? (u - c > 180 ? c += 360 : c - u > 180 && (u += 360), l.push({ i: d.push(i(d) + "rotate(", null, r) - 2, x: Z(u, c) })) : c && d.push(i(d) + "rotate(" + c + r); + } + function s(u, c, d, l) { + u !== c ? l.push({ i: d.push(i(d) + "skewX(", null, r) - 2, x: Z(u, c) }) : c && d.push(i(d) + "skewX(" + c + r); + } + function f(u, c, d, l, p, m) { + if (u !== d || c !== l) { + var _ = p.push(i(p) + "scale(", null, ",", null, ")"); + m.push({ i: _ - 4, x: Z(u, d) }, { i: _ - 2, x: Z(c, l) }); + } else + (d !== 1 || l !== 1) && p.push(i(p) + "scale(" + d + "," + l + ")"); + } + return function(u, c) { + var d = [], l = []; + return u = t(u), c = t(c), o(u.translateX, u.translateY, c.translateX, c.translateY, d, l), a(u.rotate, c.rotate, d, l), s(u.skewX, c.skewX, d, l), f(u.scaleX, u.scaleY, c.scaleX, c.scaleY, d, l), u = c = null, function(p) { + for (var m = -1, _ = l.length, x; ++m < _; ) + d[(x = l[m]).i] = x.x(p); + return d.join(""); + }; + }; +} +var fo = sn(co, "px, ", "px)", "deg)"), ho = sn(lo, ", ", ")", ")"), po = 1e-12; +function Le(t) { + return ((t = Math.exp(t)) + 1 / t) / 2; +} +function go(t) { + return ((t = Math.exp(t)) - 1 / t) / 2; +} +function yo(t) { + return ((t = Math.exp(2 * t)) - 1) / (t + 1); +} +const mo = function t(e, n, r) { + function i(o, a) { + var s = o[0], f = o[1], u = o[2], c = a[0], d = a[1], l = a[2], p = c - s, m = d - f, _ = p * p + m * m, x, y; + if (_ < po) + y = Math.log(l / u) / e, x = function(K) { + return [ + s + K * p, + f + K * m, + u * Math.exp(e * K * y) + ]; + }; + else { + var w = Math.sqrt(_), z = (l * l - u * u + r * _) / (2 * u * n * w), A = (l * l - u * u - r * _) / (2 * l * n * w), E = Math.log(Math.sqrt(z * z + 1) - z), C = Math.log(Math.sqrt(A * A + 1) - A); + y = (C - E) / e, x = function(K) { + var bt = K * y, kt = Le(E), $t = u / (n * w) * (kt * yo(e * bt + E) - go(E)); + return [ + s + $t * p, + f + $t * m, + u * kt / Le(e * bt + E) + ]; + }; + } + return x.duration = y * 1e3 * e / Math.SQRT2, x; + } + return i.rho = function(o) { + var a = Math.max(1e-3, +o), s = a * a, f = s * s; + return t(a, s, f); + }, i; +}(Math.SQRT2, 2, 4); +var st = 0, dt = 0, ft = 0, cn = 1e3, Ht, pt, Dt = 0, nt = 0, Vt = 0, _t = typeof performance == "object" && performance.now ? performance : Date, ln = typeof window == "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(t) { + setTimeout(t, 17); +}; +function ge() { + return nt || (ln(_o), nt = _t.now() + Vt); +} +function _o() { + nt = 0; +} +function Rt() { + this._call = this._time = this._next = null; +} +Rt.prototype = fn.prototype = { + constructor: Rt, + restart: function(t, e, n) { + if (typeof t != "function") + throw new TypeError("callback is not a function"); + n = (n == null ? ge() : +n) + (e == null ? 0 : +e), !this._next && pt !== this && (pt ? pt._next = this : Ht = this, pt = this), this._call = t, this._time = n, ae(); + }, + stop: function() { + this._call && (this._call = null, this._time = 1 / 0, ae()); + } +}; +function fn(t, e, n) { + var r = new Rt(); + return r.restart(t, e, n), r; +} +function xo() { + ge(), ++st; + for (var t = Ht, e; t; ) + (e = nt - t._time) >= 0 && t._call.call(void 0, e), t = t._next; + --st; +} +function Fe() { + nt = (Dt = _t.now()) + Vt, st = dt = 0; + try { + xo(); + } finally { + st = 0, vo(), nt = 0; + } +} +function wo() { + var t = _t.now(), e = t - Dt; + e > cn && (Vt -= e, Dt = t); +} +function vo() { + for (var t, e = Ht, n, r = 1 / 0; e; ) + e._call ? (r > e._time && (r = e._time), t = e, e = e._next) : (n = e._next, e._next = null, e = t ? t._next = n : Ht = n); + pt = t, ae(r); +} +function ae(t) { + if (!st) { + dt && (dt = clearTimeout(dt)); + var e = t - nt; + e > 24 ? (t < 1 / 0 && (dt = setTimeout(Fe, t - _t.now() - Vt)), ft && (ft = clearInterval(ft))) : (ft || (Dt = _t.now(), ft = setInterval(wo, cn)), st = 1, ln(Fe)); + } +} +function qe(t, e, n) { + var r = new Rt(); + return e = e == null ? 0 : +e, r.restart((i) => { + r.stop(), t(i + e); + }, e, n), r; +} +var bo = de("start", "end", "cancel", "interrupt"), ko = [], hn = 0, He = 1, ue = 2, Tt = 3, De = 4, se = 5, Ct = 6; +function Xt(t, e, n, r, i, o) { + var a = t.__transition; + if (!a) + t.__transition = {}; + else if (n in a) + return; + $o(t, n, { + name: e, + index: r, + // For context during callback. + group: i, + // For context during callback. + on: bo, + tween: ko, + time: o.time, + delay: o.delay, + duration: o.duration, + ease: o.ease, + timer: null, + state: hn + }); +} +function ye(t, e) { + var n = P(t, e); + if (n.state > hn) + throw new Error("too late; already scheduled"); + return n; +} +function X(t, e) { + var n = P(t, e); + if (n.state > Tt) + throw new Error("too late; already running"); + return n; +} +function P(t, e) { + var n = t.__transition; + if (!n || !(n = n[e])) + throw new Error("transition not found"); + return n; +} +function $o(t, e, n) { + var r = t.__transition, i; + r[e] = n, n.timer = fn(o, 0, n.time); + function o(u) { + n.state = He, n.timer.restart(a, n.delay, n.time), n.delay <= u && a(u - n.delay); + } + function a(u) { + var c, d, l, p; + if (n.state !== He) + return f(); + for (c in r) + if (p = r[c], p.name === n.name) { + if (p.state === Tt) + return qe(a); + p.state === De ? (p.state = Ct, p.timer.stop(), p.on.call("interrupt", t, t.__data__, p.index, p.group), delete r[c]) : +c < e && (p.state = Ct, p.timer.stop(), p.on.call("cancel", t, t.__data__, p.index, p.group), delete r[c]); + } + if (qe(function() { + n.state === Tt && (n.state = De, n.timer.restart(s, n.delay, n.time), s(u)); + }), n.state = ue, n.on.call("start", t, t.__data__, n.index, n.group), n.state === ue) { + for (n.state = Tt, i = new Array(l = n.tween.length), c = 0, d = -1; c < l; ++c) + (p = n.tween[c].value.call(t, t.__data__, n.index, n.group)) && (i[++d] = p); + i.length = d + 1; + } + } + function s(u) { + for (var c = u < n.duration ? n.ease.call(null, u / n.duration) : (n.timer.restart(f), n.state = se, 1), d = -1, l = i.length; ++d < l; ) + i[d].call(t, c); + n.state === se && (n.on.call("end", t, t.__data__, n.index, n.group), f()); + } + function f() { + n.state = Ct, n.timer.stop(), delete r[e]; + for (var u in r) + return; + delete t.__transition; + } +} +function It(t, e) { + var n = t.__transition, r, i, o = !0, a; + if (n) { + e = e == null ? null : e + ""; + for (a in n) { + if ((r = n[a]).name !== e) { + o = !1; + continue; + } + i = r.state > ue && r.state < se, r.state = Ct, r.timer.stop(), r.on.call(i ? "interrupt" : "cancel", t, t.__data__, r.index, r.group), delete n[a]; + } + o && delete t.__transition; + } +} +function No(t) { + return this.each(function() { + It(this, t); + }); +} +function Ao(t, e) { + var n, r; + return function() { + var i = X(this, t), o = i.tween; + if (o !== n) { + r = n = o; + for (var a = 0, s = r.length; a < s; ++a) + if (r[a].name === e) { + r = r.slice(), r.splice(a, 1); + break; + } + } + i.tween = r; + }; +} +function zo(t, e, n) { + var r, i; + if (typeof n != "function") + throw new Error(); + return function() { + var o = X(this, t), a = o.tween; + if (a !== r) { + i = (r = a).slice(); + for (var s = { name: e, value: n }, f = 0, u = i.length; f < u; ++f) + if (i[f].name === e) { + i[f] = s; + break; + } + f === u && i.push(s); + } + o.tween = i; + }; +} +function So(t, e) { + var n = this._id; + if (t += "", arguments.length < 2) { + for (var r = P(this.node(), n).tween, i = 0, o = r.length, a; i < o; ++i) + if ((a = r[i]).name === t) + return a.value; + return null; + } + return this.each((e == null ? Ao : zo)(n, t, e)); +} +function me(t, e, n) { + var r = t._id; + return t.each(function() { + var i = X(this, r); + (i.value || (i.value = {}))[e] = n.apply(this, arguments); + }), function(i) { + return P(i, r).value[e]; + }; +} +function dn(t, e) { + var n; + return (typeof e == "number" ? Z : e instanceof mt ? Ce : (n = mt(e)) ? (e = n, Ce) : so)(t, e); +} +function Eo(t) { + return function() { + this.removeAttribute(t); + }; +} +function Mo(t) { + return function() { + this.removeAttributeNS(t.space, t.local); + }; +} +function To(t, e, n) { + var r, i = n + "", o; + return function() { + var a = this.getAttribute(t); + return a === i ? null : a === r ? o : o = e(r = a, n); + }; +} +function Co(t, e, n) { + var r, i = n + "", o; + return function() { + var a = this.getAttributeNS(t.space, t.local); + return a === i ? null : a === r ? o : o = e(r = a, n); + }; +} +function Io(t, e, n) { + var r, i, o; + return function() { + var a, s = n(this), f; + return s == null ? void this.removeAttribute(t) : (a = this.getAttribute(t), f = s + "", a === f ? null : a === r && f === i ? o : (i = f, o = e(r = a, s))); + }; +} +function Lo(t, e, n) { + var r, i, o; + return function() { + var a, s = n(this), f; + return s == null ? void this.removeAttributeNS(t.space, t.local) : (a = this.getAttributeNS(t.space, t.local), f = s + "", a === f ? null : a === r && f === i ? o : (i = f, o = e(r = a, s))); + }; +} +function Fo(t, e) { + var n = Ot(t), r = n === "transform" ? ho : dn; + return this.attrTween(t, typeof e == "function" ? (n.local ? Lo : Io)(n, r, me(this, "attr." + t, e)) : e == null ? (n.local ? Mo : Eo)(n) : (n.local ? Co : To)(n, r, e)); +} +function qo(t, e) { + return function(n) { + this.setAttribute(t, e.call(this, n)); + }; +} +function Ho(t, e) { + return function(n) { + this.setAttributeNS(t.space, t.local, e.call(this, n)); + }; +} +function Do(t, e) { + var n, r; + function i() { + var o = e.apply(this, arguments); + return o !== r && (n = (r = o) && Ho(t, o)), n; + } + return i._value = e, i; +} +function Ro(t, e) { + var n, r; + function i() { + var o = e.apply(this, arguments); + return o !== r && (n = (r = o) && qo(t, o)), n; + } + return i._value = e, i; +} +function Po(t, e) { + var n = "attr." + t; + if (arguments.length < 2) + return (n = this.tween(n)) && n._value; + if (e == null) + return this.tween(n, null); + if (typeof e != "function") + throw new Error(); + var r = Ot(t); + return this.tween(n, (r.local ? Do : Ro)(r, e)); +} +function Oo(t, e) { + return function() { + ye(this, t).delay = +e.apply(this, arguments); + }; +} +function Vo(t, e) { + return e = +e, function() { + ye(this, t).delay = e; + }; +} +function Xo(t) { + var e = this._id; + return arguments.length ? this.each((typeof t == "function" ? Oo : Vo)(e, t)) : P(this.node(), e).delay; +} +function Wo(t, e) { + return function() { + X(this, t).duration = +e.apply(this, arguments); + }; +} +function Bo(t, e) { + return e = +e, function() { + X(this, t).duration = e; + }; +} +function Yo(t) { + var e = this._id; + return arguments.length ? this.each((typeof t == "function" ? Wo : Bo)(e, t)) : P(this.node(), e).duration; +} +function Uo(t, e) { + if (typeof e != "function") + throw new Error(); + return function() { + X(this, t).ease = e; + }; +} +function Go(t) { + var e = this._id; + return arguments.length ? this.each(Uo(e, t)) : P(this.node(), e).ease; +} +function Ko(t, e) { + return function() { + var n = e.apply(this, arguments); + if (typeof n != "function") + throw new Error(); + X(this, t).ease = n; + }; +} +function Zo(t) { + if (typeof t != "function") + throw new Error(); + return this.each(Ko(this._id, t)); +} +function Qo(t) { + typeof t != "function" && (t = Ue(t)); + for (var e = this._groups, n = e.length, r = new Array(n), i = 0; i < n; ++i) + for (var o = e[i], a = o.length, s = r[i] = [], f, u = 0; u < a; ++u) + (f = o[u]) && t.call(f, f.__data__, u, o) && s.push(f); + return new G(r, this._parents, this._name, this._id); +} +function Jo(t) { + if (t._id !== this._id) + throw new Error(); + for (var e = this._groups, n = t._groups, r = e.length, i = n.length, o = Math.min(r, i), a = new Array(r), s = 0; s < o; ++s) + for (var f = e[s], u = n[s], c = f.length, d = a[s] = new Array(c), l, p = 0; p < c; ++p) + (l = f[p] || u[p]) && (d[p] = l); + for (; s < r; ++s) + a[s] = e[s]; + return new G(a, this._parents, this._name, this._id); +} +function jo(t) { + return (t + "").trim().split(/^|\s+/).every(function(e) { + var n = e.indexOf("."); + return n >= 0 && (e = e.slice(0, n)), !e || e === "start"; + }); +} +function ta(t, e, n) { + var r, i, o = jo(e) ? ye : X; + return function() { + var a = o(this, t), s = a.on; + s !== r && (i = (r = s).copy()).on(e, n), a.on = i; + }; +} +function ea(t, e) { + var n = this._id; + return arguments.length < 2 ? P(this.node(), n).on.on(t) : this.each(ta(n, t, e)); +} +function na(t) { + return function() { + var e = this.parentNode; + for (var n in this.__transition) + if (+n !== t) + return; + e && e.removeChild(this); + }; +} +function ra() { + return this.on("end.remove", na(this._id)); +} +function ia(t) { + var e = this._name, n = this._id; + typeof t != "function" && (t = le(t)); + for (var r = this._groups, i = r.length, o = new Array(i), a = 0; a < i; ++a) + for (var s = r[a], f = s.length, u = o[a] = new Array(f), c, d, l = 0; l < f; ++l) + (c = s[l]) && (d = t.call(c, c.__data__, l, s)) && ("__data__" in c && (d.__data__ = c.__data__), u[l] = d, Xt(u[l], e, n, l, u, P(c, n))); + return new G(o, this._parents, e, n); +} +function oa(t) { + var e = this._name, n = this._id; + typeof t != "function" && (t = Ye(t)); + for (var r = this._groups, i = r.length, o = [], a = [], s = 0; s < i; ++s) + for (var f = r[s], u = f.length, c, d = 0; d < u; ++d) + if (c = f[d]) { + for (var l = t.call(c, c.__data__, d, f), p, m = P(c, n), _ = 0, x = l.length; _ < x; ++_) + (p = l[_]) && Xt(p, e, n, _, l, m); + o.push(l), a.push(c); + } + return new G(o, a, e, n); +} +var aa = xt.prototype.constructor; +function ua() { + return new aa(this._groups, this._parents); +} +function sa(t, e) { + var n, r, i; + return function() { + var o = ut(this, t), a = (this.style.removeProperty(t), ut(this, t)); + return o === a ? null : o === n && a === r ? i : i = e(n = o, r = a); + }; +} +function pn(t) { + return function() { + this.style.removeProperty(t); + }; +} +function ca(t, e, n) { + var r, i = n + "", o; + return function() { + var a = ut(this, t); + return a === i ? null : a === r ? o : o = e(r = a, n); + }; +} +function la(t, e, n) { + var r, i, o; + return function() { + var a = ut(this, t), s = n(this), f = s + ""; + return s == null && (f = s = (this.style.removeProperty(t), ut(this, t))), a === f ? null : a === r && f === i ? o : (i = f, o = e(r = a, s)); + }; +} +function fa(t, e) { + var n, r, i, o = "style." + e, a = "end." + o, s; + return function() { + var f = X(this, t), u = f.on, c = f.value[o] == null ? s || (s = pn(e)) : void 0; + (u !== n || i !== c) && (r = (n = u).copy()).on(a, i = c), f.on = r; + }; +} +function ha(t, e, n) { + var r = (t += "") == "transform" ? fo : dn; + return e == null ? this.styleTween(t, sa(t, r)).on("end.style." + t, pn(t)) : typeof e == "function" ? this.styleTween(t, la(t, r, me(this, "style." + t, e))).each(fa(this._id, t)) : this.styleTween(t, ca(t, r, e), n).on("end.style." + t, null); +} +function da(t, e, n) { + return function(r) { + this.style.setProperty(t, e.call(this, r), n); + }; +} +function pa(t, e, n) { + var r, i; + function o() { + var a = e.apply(this, arguments); + return a !== i && (r = (i = a) && da(t, a, n)), r; + } + return o._value = e, o; +} +function ga(t, e, n) { + var r = "style." + (t += ""); + if (arguments.length < 2) + return (r = this.tween(r)) && r._value; + if (e == null) + return this.tween(r, null); + if (typeof e != "function") + throw new Error(); + return this.tween(r, pa(t, e, n ?? "")); +} +function ya(t) { + return function() { + this.textContent = t; + }; +} +function ma(t) { + return function() { + var e = t(this); + this.textContent = e ?? ""; + }; +} +function _a(t) { + return this.tween("text", typeof t == "function" ? ma(me(this, "text", t)) : ya(t == null ? "" : t + "")); +} +function xa(t) { + return function(e) { + this.textContent = t.call(this, e); + }; +} +function wa(t) { + var e, n; + function r() { + var i = t.apply(this, arguments); + return i !== n && (e = (n = i) && xa(i)), e; + } + return r._value = t, r; +} +function va(t) { + var e = "text"; + if (arguments.length < 1) + return (e = this.tween(e)) && e._value; + if (t == null) + return this.tween(e, null); + if (typeof t != "function") + throw new Error(); + return this.tween(e, wa(t)); +} +function ba() { + for (var t = this._name, e = this._id, n = gn(), r = this._groups, i = r.length, o = 0; o < i; ++o) + for (var a = r[o], s = a.length, f, u = 0; u < s; ++u) + if (f = a[u]) { + var c = P(f, e); + Xt(f, t, n, u, a, { + time: c.time + c.delay + c.duration, + delay: 0, + duration: c.duration, + ease: c.ease + }); + } + return new G(r, this._parents, t, n); +} +function ka() { + var t, e, n = this, r = n._id, i = n.size(); + return new Promise(function(o, a) { + var s = { value: a }, f = { value: function() { + --i === 0 && o(); + } }; + n.each(function() { + var u = X(this, r), c = u.on; + c !== t && (e = (t = c).copy(), e._.cancel.push(s), e._.interrupt.push(s), e._.end.push(f)), u.on = e; + }), i === 0 && o(); + }); +} +var $a = 0; +function G(t, e, n, r) { + this._groups = t, this._parents = e, this._name = n, this._id = r; +} +function gn() { + return ++$a; +} +var Y = xt.prototype; +G.prototype = { + constructor: G, + select: ia, + selectAll: oa, + selectChild: Y.selectChild, + selectChildren: Y.selectChildren, + filter: Qo, + merge: Jo, + selection: ua, + transition: ba, + call: Y.call, + nodes: Y.nodes, + node: Y.node, + size: Y.size, + empty: Y.empty, + each: Y.each, + on: ea, + attr: Fo, + attrTween: Po, + style: ha, + styleTween: ga, + text: _a, + textTween: va, + remove: ra, + tween: So, + delay: Xo, + duration: Yo, + ease: Go, + easeVarying: Zo, + end: ka, + [Symbol.iterator]: Y[Symbol.iterator] +}; +function Na(t) { + return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2; +} +var Aa = { + time: null, + // Set on use. + delay: 0, + duration: 250, + ease: Na +}; +function za(t, e) { + for (var n; !(n = t.__transition) || !(n = n[e]); ) + if (!(t = t.parentNode)) + throw new Error(`transition ${e} not found`); + return n; +} +function Sa(t) { + var e, n; + t instanceof G ? (e = t._id, t = t._name) : (e = gn(), (n = Aa).time = ge(), t = t == null ? null : t + ""); + for (var r = this._groups, i = r.length, o = 0; o < i; ++o) + for (var a = r[o], s = a.length, f, u = 0; u < s; ++u) + (f = a[u]) && Xt(f, t, e, u, a, n || za(f, e)); + return new G(r, this._parents, t, e); +} +xt.prototype.interrupt = No; +xt.prototype.transition = Sa; +const St = (t) => () => t; +function Ea(t, { + sourceEvent: e, + target: n, + transform: r, + dispatch: i +}) { + Object.defineProperties(this, { + type: { value: t, enumerable: !0, configurable: !0 }, + sourceEvent: { value: e, enumerable: !0, configurable: !0 }, + target: { value: n, enumerable: !0, configurable: !0 }, + transform: { value: r, enumerable: !0, configurable: !0 }, + _: { value: i } + }); +} +function U(t, e, n) { + this.k = t, this.x = e, this.y = n; +} +U.prototype = { + constructor: U, scale: function(t) { - return t === 1 ? this : new s(this.k * t, this.x, this.y); + return t === 1 ? this : new U(this.k * t, this.x, this.y); }, translate: function(t, e) { - return t === 0 & e === 0 ? this : new s(this.k, this.x + this.k * t, this.y + this.k * e); + return t === 0 & e === 0 ? this : new U(this.k, this.x + this.k * t, this.y + this.k * e); }, apply: function(t) { return [t[0] * this.k + this.x, t[1] * this.k + this.y]; @@ -61,128 +2225,671 @@ s.prototype = { return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")"; } }; -s.prototype; -var h = [{ - id: 1, - text_1: "Chaos", - text_2: "Void", - father: null, - color: "#FF5722" -}, { - id: 2, - text_1: "Tartarus", - text_2: "Abyss", - father: 1, - color: "#FFC107" -}, { - id: 3, - text_1: "Gaia", - text_2: "Earth", - father: 1, - color: "#8BC34A" -}, { - id: 4, - text_1: "Eros", - text_2: "Desire", - father: 1, - color: "#00BCD4" -}], f = [{ - id: 1, - text_1: "Chaos", - text_2: " Void", - father: null, - color: "#2196F3" -}, { - id: 2, - text_1: "Tartarus", - text_2: "Abyss", - father: 1, - color: "#F44336" -}, { - id: 3, - text_1: "Gaia", - text_2: "Earth", - father: 1, - color: "#673AB7" -}, { - id: 4, - text_1: "Eros", - text_2: "Desire", - father: 1, - color: "#009688" -}, { - id: 5, - text_1: "Uranus", - text_2: "Sky", - father: 3, - color: "#4CAF50" -}, { - id: 6, - text_1: "Ourea", - text_2: "Mountains", - father: 3, - color: "#FF9800" -}], x = [{ - id: 1, - text_1: "Chaos", - text_2: "Void", - father: null, - color: "#2196F3" -}, { - id: 2, - text_1: "Tartarus", - text_2: "Abyss", - father: 1, - color: "#F44336" -}, { - id: 3, - text_1: "Gaia", - text_2: "Earth", - father: 1, - color: "#673AB7" -}, { - id: 4, - text_1: "Eros", - text_2: "Desire", - father: 1, - color: "#009688" -}, { - id: 5, - text_1: "Uranus", - text_2: "Sky", - father: 3, - color: "#4CAF50" -}, { - id: 6, - text_1: "Ourea", - text_2: "Mountains", - father: 3, - color: "#FF9800" -}, { - id: 7, - text_1: "Hermes", - text_2: " Sky", - father: 4, - color: "#2196F3" -}, { - id: 8, - text_1: "Aphrodite", - text_2: "Love", - father: 4, - color: "#8BC34A" -}, { - id: 3.3, - text_1: "Love", - text_2: "Peace", - father: 8, - color: "#c72e99" -}, { - id: 4.1, - text_1: "Hope", - text_2: "Life", - father: 8, - color: "#2eecc7" -}], c = (void 0)({ +var yn = new U(1, 0, 0); +U.prototype; +function Qt(t) { + t.stopImmediatePropagation(); +} +function ht(t) { + t.preventDefault(), t.stopImmediatePropagation(); +} +function Ma(t) { + return (!t.ctrlKey || t.type === "wheel") && !t.button; +} +function Ta() { + var t = this; + return t instanceof SVGElement ? (t = t.ownerSVGElement || t, t.hasAttribute("viewBox") ? (t = t.viewBox.baseVal, [[t.x, t.y], [t.x + t.width, t.y + t.height]]) : [[0, 0], [t.width.baseVal.value, t.height.baseVal.value]]) : [[0, 0], [t.clientWidth, t.clientHeight]]; +} +function Re() { + return this.__zoom || yn; +} +function Ca(t) { + return -t.deltaY * (t.deltaMode === 1 ? 0.05 : t.deltaMode ? 1 : 2e-3) * (t.ctrlKey ? 10 : 1); +} +function Ia() { + return navigator.maxTouchPoints || "ontouchstart" in this; +} +function La(t, e, n) { + var r = t.invertX(e[0][0]) - n[0][0], i = t.invertX(e[1][0]) - n[1][0], o = t.invertY(e[0][1]) - n[0][1], a = t.invertY(e[1][1]) - n[1][1]; + return t.translate( + i > r ? (r + i) / 2 : Math.min(0, r) || Math.max(0, i), + a > o ? (o + a) / 2 : Math.min(0, o) || Math.max(0, a) + ); +} +function Fa() { + var t = Ma, e = Ta, n = La, r = Ca, i = Ia, o = [0, 1 / 0], a = [[-1 / 0, -1 / 0], [1 / 0, 1 / 0]], s = 250, f = mo, u = de("start", "zoom", "end"), c, d, l, p = 500, m = 150, _ = 0, x = 10; + function y(h) { + h.property("__zoom", Re).on("wheel.zoom", bt, { passive: !1 }).on("mousedown.zoom", kt).on("dblclick.zoom", $t).filter(i).on("touchstart.zoom", xn).on("touchmove.zoom", wn).on("touchend.zoom touchcancel.zoom", vn).style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); + } + y.transform = function(h, v, g, b) { + var k = h.selection ? h.selection() : h; + k.property("__zoom", Re), h !== k ? E(h, v, g, b) : k.interrupt().each(function() { + C(this, arguments).event(b).start().zoom(null, typeof v == "function" ? v.apply(this, arguments) : v).end(); + }); + }, y.scaleBy = function(h, v, g, b) { + y.scaleTo(h, function() { + var k = this.__zoom.k, $ = typeof v == "function" ? v.apply(this, arguments) : v; + return k * $; + }, g, b); + }, y.scaleTo = function(h, v, g, b) { + y.transform(h, function() { + var k = e.apply(this, arguments), $ = this.__zoom, N = g == null ? A(k) : typeof g == "function" ? g.apply(this, arguments) : g, S = $.invert(N), M = typeof v == "function" ? v.apply(this, arguments) : v; + return n(z(w($, M), N, S), k, a); + }, g, b); + }, y.translateBy = function(h, v, g, b) { + y.transform(h, function() { + return n(this.__zoom.translate( + typeof v == "function" ? v.apply(this, arguments) : v, + typeof g == "function" ? g.apply(this, arguments) : g + ), e.apply(this, arguments), a); + }, null, b); + }, y.translateTo = function(h, v, g, b, k) { + y.transform(h, function() { + var $ = e.apply(this, arguments), N = this.__zoom, S = b == null ? A($) : typeof b == "function" ? b.apply(this, arguments) : b; + return n(yn.translate(S[0], S[1]).scale(N.k).translate( + typeof v == "function" ? -v.apply(this, arguments) : -v, + typeof g == "function" ? -g.apply(this, arguments) : -g + ), $, a); + }, b, k); + }; + function w(h, v) { + return v = Math.max(o[0], Math.min(o[1], v)), v === h.k ? h : new U(v, h.x, h.y); + } + function z(h, v, g) { + var b = v[0] - g[0] * h.k, k = v[1] - g[1] * h.k; + return b === h.x && k === h.y ? h : new U(h.k, b, k); + } + function A(h) { + return [(+h[0][0] + +h[1][0]) / 2, (+h[0][1] + +h[1][1]) / 2]; + } + function E(h, v, g, b) { + h.on("start.zoom", function() { + C(this, arguments).event(b).start(); + }).on("interrupt.zoom end.zoom", function() { + C(this, arguments).event(b).end(); + }).tween("zoom", function() { + var k = this, $ = arguments, N = C(k, $).event(b), S = e.apply(k, $), M = g == null ? A(S) : typeof g == "function" ? g.apply(k, $) : g, O = Math.max(S[1][0] - S[0][0], S[1][1] - S[0][1]), L = k.__zoom, H = typeof v == "function" ? v.apply(k, $) : v, W = f(L.invert(M).concat(O / L.k), H.invert(M).concat(O / H.k)); + return function(D) { + if (D === 1) + D = H; + else { + var B = W(D), Wt = O / B[2]; + D = new U(Wt, M[0] - B[0] * Wt, M[1] - B[1] * Wt); + } + N.zoom(null, D); + }; + }); + } + function C(h, v, g) { + return !g && h.__zooming || new K(h, v); + } + function K(h, v) { + this.that = h, this.args = v, this.active = 0, this.sourceEvent = null, this.extent = e.apply(h, v), this.taps = 0; + } + K.prototype = { + event: function(h) { + return h && (this.sourceEvent = h), this; + }, + start: function() { + return ++this.active === 1 && (this.that.__zooming = this, this.emit("start")), this; + }, + zoom: function(h, v) { + return this.mouse && h !== "mouse" && (this.mouse[1] = v.invert(this.mouse[0])), this.touch0 && h !== "touch" && (this.touch0[1] = v.invert(this.touch0[0])), this.touch1 && h !== "touch" && (this.touch1[1] = v.invert(this.touch1[0])), this.that.__zoom = v, this.emit("zoom"), this; + }, + end: function() { + return --this.active === 0 && (delete this.that.__zooming, this.emit("end")), this; + }, + emit: function(h) { + var v = Q(this.that).datum(); + u.call( + h, + this.that, + new Ea(h, { + sourceEvent: this.sourceEvent, + target: y, + type: h, + transform: this.that.__zoom, + dispatch: u + }), + v + ); + } + }; + function bt(h, ...v) { + if (!t.apply(this, arguments)) + return; + var g = C(this, v).event(h), b = this.__zoom, k = Math.max(o[0], Math.min(o[1], b.k * Math.pow(2, r.apply(this, arguments)))), $ = j(h); + if (g.wheel) + (g.mouse[0][0] !== $[0] || g.mouse[0][1] !== $[1]) && (g.mouse[1] = b.invert(g.mouse[0] = $)), clearTimeout(g.wheel); + else { + if (b.k === k) + return; + g.mouse = [$, b.invert($)], It(this), g.start(); + } + ht(h), g.wheel = setTimeout(N, m), g.zoom("mouse", n(z(w(b, k), g.mouse[0], g.mouse[1]), g.extent, a)); + function N() { + g.wheel = null, g.end(); + } + } + function kt(h, ...v) { + if (l || !t.apply(this, arguments)) + return; + var g = h.currentTarget, b = C(this, v, !0).event(h), k = Q(h.view).on("mousemove.zoom", M, !0).on("mouseup.zoom", O, !0), $ = j(h, g), N = h.clientX, S = h.clientY; + Xi(h.view), Qt(h), b.mouse = [$, this.__zoom.invert($)], It(this), b.start(); + function M(L) { + if (ht(L), !b.moved) { + var H = L.clientX - N, W = L.clientY - S; + b.moved = H * H + W * W > _; + } + b.event(L).zoom("mouse", n(z(b.that.__zoom, b.mouse[0] = j(L, g), b.mouse[1]), b.extent, a)); + } + function O(L) { + k.on("mousemove.zoom mouseup.zoom", null), Wi(L.view, b.moved), ht(L), b.event(L).end(); + } + } + function $t(h, ...v) { + if (t.apply(this, arguments)) { + var g = this.__zoom, b = j(h.changedTouches ? h.changedTouches[0] : h, this), k = g.invert(b), $ = g.k * (h.shiftKey ? 0.5 : 2), N = n(z(w(g, $), b, k), e.apply(this, v), a); + ht(h), s > 0 ? Q(this).transition().duration(s).call(E, N, b, h) : Q(this).call(y.transform, N, b, h); + } + } + function xn(h, ...v) { + if (t.apply(this, arguments)) { + var g = h.touches, b = g.length, k = C(this, v, h.changedTouches.length === b).event(h), $, N, S, M; + for (Qt(h), N = 0; N < b; ++N) + S = g[N], M = j(S, this), M = [M, this.__zoom.invert(M), S.identifier], k.touch0 ? !k.touch1 && k.touch0[2] !== M[2] && (k.touch1 = M, k.taps = 0) : (k.touch0 = M, $ = !0, k.taps = 1 + !!c); + c && (c = clearTimeout(c)), $ && (k.taps < 2 && (d = M[0], c = setTimeout(function() { + c = null; + }, p)), It(this), k.start()); + } + } + function wn(h, ...v) { + if (this.__zooming) { + var g = C(this, v).event(h), b = h.changedTouches, k = b.length, $, N, S, M; + for (ht(h), $ = 0; $ < k; ++$) + N = b[$], S = j(N, this), g.touch0 && g.touch0[2] === N.identifier ? g.touch0[0] = S : g.touch1 && g.touch1[2] === N.identifier && (g.touch1[0] = S); + if (N = g.that.__zoom, g.touch1) { + var O = g.touch0[0], L = g.touch0[1], H = g.touch1[0], W = g.touch1[1], D = (D = H[0] - O[0]) * D + (D = H[1] - O[1]) * D, B = (B = W[0] - L[0]) * B + (B = W[1] - L[1]) * B; + N = w(N, Math.sqrt(D / B)), S = [(O[0] + H[0]) / 2, (O[1] + H[1]) / 2], M = [(L[0] + W[0]) / 2, (L[1] + W[1]) / 2]; + } else if (g.touch0) + S = g.touch0[0], M = g.touch0[1]; + else + return; + g.zoom("touch", n(z(N, S, M), g.extent, a)); + } + } + function vn(h, ...v) { + if (this.__zooming) { + var g = C(this, v).event(h), b = h.changedTouches, k = b.length, $, N; + for (Qt(h), l && clearTimeout(l), l = setTimeout(function() { + l = null; + }, p), $ = 0; $ < k; ++$) + N = b[$], g.touch0 && g.touch0[2] === N.identifier ? delete g.touch0 : g.touch1 && g.touch1[2] === N.identifier && delete g.touch1; + if (g.touch1 && !g.touch0 && (g.touch0 = g.touch1, delete g.touch1), g.touch0) + g.touch0[1] = this.__zoom.invert(g.touch0[0]); + else if (g.end(), g.taps === 2 && (N = j(N, this), Math.hypot(d[0] - N[0], d[1] - N[1]) < x)) { + var S = Q(this).on("dblclick.zoom"); + S && S.apply(this, arguments); + } + } + } + return y.wheelDelta = function(h) { + return arguments.length ? (r = typeof h == "function" ? h : St(+h), y) : r; + }, y.filter = function(h) { + return arguments.length ? (t = typeof h == "function" ? h : St(!!h), y) : t; + }, y.touchable = function(h) { + return arguments.length ? (i = typeof h == "function" ? h : St(!!h), y) : i; + }, y.extent = function(h) { + return arguments.length ? (e = typeof h == "function" ? h : St([[+h[0][0], +h[0][1]], [+h[1][0], +h[1][1]]]), y) : e; + }, y.scaleExtent = function(h) { + return arguments.length ? (o[0] = +h[0], o[1] = +h[1], y) : [o[0], o[1]]; + }, y.translateExtent = function(h) { + return arguments.length ? (a[0][0] = +h[0][0], a[1][0] = +h[1][0], a[0][1] = +h[0][1], a[1][1] = +h[1][1], y) : [[a[0][0], a[0][1]], [a[1][0], a[1][1]]]; + }, y.constrain = function(h) { + return arguments.length ? (n = h, y) : n; + }, y.duration = function(h) { + return arguments.length ? (s = +h, y) : s; + }, y.interpolate = function(h) { + return arguments.length ? (f = h, y) : f; + }, y.on = function() { + var h = u.on.apply(u, arguments); + return h === u ? y : h; + }, y.clickDistance = function(h) { + return arguments.length ? (_ = (h = +h) * h, y) : Math.sqrt(_); + }, y.tapDistance = function(h) { + return arguments.length ? (x = +h, y) : x; + }, y; +} +const J = { + hierarchy: ce, + stratify: Gn, + tree: er, + treemap: ar, + select: Q, + selectAll: Ri, + zoom: Fa +}, mn = (t) => { + const e = document.querySelector(`#${t}`); + if (e === null) + throw new Error(`Cannot find dom element with id:${t}`); + const n = e.clientWidth, r = e.clientHeight; + if (r === 0 || n === 0) + throw new Error( + "The tree can't be display because the svg height or width of the container is null" + ); + return { areaWidth: n, areaHeight: r }; +}, vt = (t, e, n) => { + try { + const r = t.find((a) => a.id === n), i = r.ancestors()[1].id; + return e.some( + (a) => a.id === i + ) ? r.ancestors()[1] : vt(t, e, i); + } catch { + return t.find((i) => i.id === n); + } +}, _n = (t, e, n) => n.isHorizontal ? "translate(" + e + "," + t + ")" : "translate(" + t + "," + e + ")"; +class it { + // Adds one refresh action to the queue. When safe callback will be + // triggered + static add(e, n) { + this.queue.push({ + delayNextCallback: e + this.extraDelayBetweenCallbacks, + callback: n + }), this.log( + this.queue.map((r) => r.delayNextCallback), + "<-- New task !!!" + ), this.runner || (this.runnerFunction(), this.runner = setInterval(() => this.runnerFunction(), this.runnerSpeed)); + } + // Each this.runnerSpeed milliseconds it's executed. It stops when finish. + static runnerFunction() { + if (this.queue[0]) { + if (this.queue[0].callback) { + this.log("Executing task, delaying next task..."); + try { + this.queue[0].callback(); + } catch (e) { + console.error(e); + } finally { + this.queue[0].callback = null; + } + } + this.queue[0].delayNextCallback -= this.runnerSpeed, this.log(this.queue.map((e) => e.delayNextCallback)), this.queue[0].delayNextCallback <= 0 && this.queue.shift(); + } else + this.log("No task found"), clearInterval(this.runner), this.runner = 0; + } + // Print to console debug data if this.showQueueLog = true + static log(...e) { + this.showQueueLog && console.log(...e); + } +} +// The queue is an array that contains objects. Each object represents an +// refresh action and only they have 2 properties: +// { +// callback: triggers when it's the first of queue and then it +// becomes null to prevent that callback executes more +// than once. +// delayNextCallback: when callback is executed, queue will subtracts +// milliseconds from it. When it becomes 0, the entire +// object is destroyed (shifted) from the array and then +// the next item (if exists) will be executed similary +// to this. +// } +rt(it, "queue", []), // Contains setInterval ID +rt(it, "runner"), // Milliseconds of each iteration +rt(it, "runnerSpeed", 100), // Developer internal magic number. Time added at end of refresh transition to +// let DOM and d3 rest before another refresh. +// 0 creates console and visual errors because getFirstDisplayedAncestor never +// found the needed id and setNodeLocation receives undefined parameters. +// Between 50 and 100 milliseconds seems enough for 10 nodes (demo example) +rt(it, "extraDelayBetweenCallbacks", 100), // Developer internal for debugging RefreshQueue class. Set true to see +// console "real time" queue of tasks. +// If there is a cleaner method, remove it! +rt(it, "showQueueLog", !1); +const qa = (t) => { + const { + htmlId: e, + isHorizontal: n, + hasPan: r, + hasZoom: i, + mainAxisNodeSpacing: o, + nodeHeight: a, + nodeWidth: s, + marginBottom: f, + marginLeft: u, + marginRight: c, + marginTop: d + } = t, l = { + top: d, + right: c, + bottom: f, + left: u + }, { areaHeight: p, areaWidth: m } = mn(t.htmlId), _ = m - l.left - l.right, x = p - l.top - l.bottom, y = J.select("#" + e).append("svg").attr("width", m).attr("height", p), w = y.append("g"), z = J.zoom().on("zoom", (E) => { + w.attr("transform", () => E.transform); + }); + return y.call(z), r || y.on("mousedown.zoom", null).on("touchstart.zoom", null).on("touchmove.zoom", null).on("touchend.zoom", null), i || y.on("wheel.zoom", null).on("mousewheel.zoom", null).on("mousemove.zoom", null).on("DOMMouseScroll.zoom", null).on("dblclick.zoom", null), w.append("g").attr( + "transform", + o === "auto" ? "translate(0,0)" : n ? "translate(" + l.left + "," + (l.top + x / 2 - a / 2) + ")" : "translate(" + (l.left + _ / 2 - s / 2) + "," + l.top + ")" + ); +}, _e = (t, e, n) => { + const { isHorizontal: r, nodeHeight: i, nodeWidth: o, linkShape: a } = n; + return a === "orthogonal" ? r ? `M ${t.y} ${t.x + i / 2} + L ${(t.y + e.y + o) / 2} ${t.x + i / 2} + L ${(t.y + e.y + o) / 2} ${e.x + i / 2} + ${e.y + o} ${e.x + i / 2}` : `M ${t.x + o / 2} ${t.y} + L ${t.x + o / 2} ${(t.y + e.y + i) / 2} + L ${e.x + o / 2} ${(t.y + e.y + i) / 2} + ${e.x + o / 2} ${e.y + i} ` : a === "curve" ? r ? `M ${t.y} ${t.x + i / 2} + L ${t.y - (t.y - e.y - o) / 2 + 15} ${t.x + i / 2} + Q${t.y - (t.y - e.y - o) / 2} ${t.x + i / 2} + ${t.y - (t.y - e.y - o) / 2} ${t.x + i / 2 - Pe(t.x, e.x, 15)} + L ${t.y - (t.y - e.y - o) / 2} ${e.x + i / 2} + L ${e.y + o} ${e.x + i / 2}` : `M ${t.x + o / 2} ${t.y} + L ${t.x + o / 2} ${t.y - (t.y - e.y - i) / 2 + 15} + Q${t.x + o / 2} ${t.y - (t.y - e.y - i) / 2} + ${t.x + o / 2 - Pe(t.x, e.x, 15)} ${t.y - (t.y - e.y - i) / 2} + L ${e.x + o / 2} ${t.y - (t.y - e.y - i) / 2} + L ${e.x + o / 2} ${e.y + i} ` : r ? `M ${t.y} ${t.x + i / 2} + C ${(t.y + e.y + o) / 2} ${t.x + i / 2} + ${(t.y + e.y + o) / 2} ${e.x + i / 2} + ${e.y + o} ${e.x + i / 2}` : `M ${t.x + o / 2} ${t.y} + C ${t.x + o / 2} ${(t.y + e.y + i) / 2} + ${e.x + o / 2} ${(t.y + e.y + i) / 2} + ${e.x + o / 2} ${e.y + i} `; +}, Pe = (t, e, n) => t > e ? n : t < e ? -n : 0, Ha = (t, e, n, r) => t.enter().insert("path", "g").attr("class", "link").attr("d", (i) => { + const o = vt( + n, + r, + i.id + ), a = { + x: o.x0, + y: o.y0 + }; + return _e(a, a, e); +}).attr("fill", "none").attr( + "stroke-width", + (i) => e.linkWidth(i) + // Pass the correct `d` object to linkWidth +).attr( + "stroke", + (i) => e.linkColor(i) + // Pass the correct `d` object to linkColor +), Da = (t, e, n, r) => { + t.exit().transition().duration(e.duration).style("opacity", 0).attr("d", (i) => { + const o = vt( + r, + n, + i.id + ), a = { + x: o.x0, + y: o.y0 + }; + return _e(a, a, e); + }).remove(); +}, Ra = (t, e, n) => { + t.merge(e).transition().duration(n.duration).attr("d", (i) => _e(i, i.parent, n)).attr("fill", "none").attr("stroke-width", (i) => n.linkWidth(i)).attr("stroke", (i) => n.linkColor(i)); +}, Pa = (t, e, n, r) => { + const i = t.enter().append("g").attr("class", "node").attr("id", (o) => o == null ? void 0 : o.id).attr("transform", (o) => { + const a = vt( + n, + r, + o.id + ); + return _n( + a.x0, + a.y0, + e + ); + }); + return i.append("foreignObject").attr("width", e.nodeWidth).attr("height", e.nodeHeight), i; +}, Oa = (t, e, n, r) => { + const i = t.exit().transition().duration(e.duration).style("opacity", 0).attr("transform", (o) => { + const a = vt( + r, + n, + o.id + ); + return _n( + a.x0, + a.y0, + e + ); + }).remove(); + i.select("rect").style("fill-opacity", 1e-6), i.select("circle").attr("r", 1e-6), i.select("text").style("fill-opacity", 1e-6); +}, Va = (t, e, n) => { + const r = t.merge(e); + r.transition().duration(n.duration).attr("transform", (i) => n.isHorizontal ? "translate(" + i.y + "," + i.x + ")" : "translate(" + i.x + "," + i.y + ")"), r.select("foreignObject").attr("width", n.nodeWidth).attr("height", n.nodeHeight).style("overflow", "visible").on("click", (i, o) => n.onNodeClick({ ...o, settings: n })).on("mouseenter", (i, o) => n.onNodeMouseEnter({ ...o, settings: n })).on("mouseleave", (i, o) => n.onNodeMouseLeave({ ...o, settings: n })).html((i) => n.renderNode({ ...i, settings: n })); +}, Xa = (t, e) => { + const { idKey: n, relationnalField: r, hasFlatData: i } = e; + return i ? J.stratify().id((o) => o[n]).parentId((o) => o[r])(t) : J.hierarchy(t, (o) => o[r]); +}, Wa = (t) => { + const { areaHeight: e, areaWidth: n } = mn(t.htmlId); + return t.mainAxisNodeSpacing === "auto" && t.isHorizontal ? J.tree().size([ + e - t.nodeHeight, + n - t.nodeWidth + ]) : t.mainAxisNodeSpacing === "auto" && !t.isHorizontal ? J.tree().size([ + n - t.nodeWidth, + e - t.nodeHeight + ]) : t.isHorizontal === !0 ? J.tree().nodeSize([ + t.nodeHeight * t.secondaryAxisNodeSpacing, + t.nodeWidth + ]) : J.tree().nodeSize([ + t.nodeWidth * t.secondaryAxisNodeSpacing, + t.nodeHeight + ]); +}, Ba = { + create: Ya +}; +function Ya(t) { + let n = { + ...{ + data: [], + htmlId: "", + idKey: "id", + relationnalField: "father", + hasFlatData: !0, + nodeWidth: 160, + nodeHeight: 100, + mainAxisNodeSpacing: 300, + renderNode: () => "Node", + linkColor: () => "#ffcc80", + linkWidth: () => 10, + linkShape: "quadraticBeziers", + isHorizontal: !0, + hasPan: !1, + hasZoom: !1, + duration: 600, + onNodeClick: () => { + }, + onNodeMouseEnter: () => { + }, + onNodeMouseLeave: () => { + }, + marginBottom: 0, + marginLeft: 0, + marginRight: 0, + marginTop: 0, + secondaryAxisNodeSpacing: 1.25 + }, + ...t + }, r = []; + function i(u, c) { + const d = c.descendants(), l = c.descendants().slice(1), { mainAxisNodeSpacing: p } = n; + p !== "auto" && d.forEach((w) => { + w.y = w.depth * n.nodeWidth * p; + }), d.forEach((w) => { + const z = r.find( + (A) => A.id === w.id + ); + w.x0 = z ? z.x0 : w.x, w.y0 = z ? z.y0 : w.y; + }); + const m = u.selectAll("g.node").data(d, (w) => w[n.idKey]), _ = Pa(m, n, d, r); + Va(_, m, n), Oa(m, n, d, r); + const x = u.selectAll("path.link").data(l, (w) => w.id), y = Ha(x, n, d, r); + Ra(y, x, n), Da(x, n, d, r), r = [...d]; + } + function o(u, c) { + it.add(n.duration, () => { + c && (n = { ...n, ...c }); + const d = Xa(u, n), p = Wa(n)(d); + i(f, p); + }); + } + function a(u) { + const c = u ? document.querySelector(`#${n.htmlId} svg g`) : document.querySelector(`#${n.htmlId}`); + if (c) + for (; c.firstChild; ) + c.removeChild(c.firstChild); + r = []; + } + const s = { refresh: o, clean: a }, f = qa(n); + return s; +} +var xe = [ + { + id: 1, + text_1: "Chaos", + text_2: "Void", + father: null, + color: "#FF5722" + }, + { + id: 2, + text_1: "Tartarus", + text_2: "Abyss", + father: 1, + color: "#FFC107" + }, + { + id: 3, + text_1: "Gaia", + text_2: "Earth", + father: 1, + color: "#8BC34A" + }, + { + id: 4, + text_1: "Eros", + text_2: "Desire", + father: 1, + color: "#00BCD4" + } +], Ua = [ + { + id: 1, + text_1: "Chaos", + text_2: " Void", + father: null, + color: "#2196F3" + }, + { + id: 2, + text_1: "Tartarus", + text_2: "Abyss", + father: 1, + color: "#F44336" + }, + { + id: 3, + text_1: "Gaia", + text_2: "Earth", + father: 1, + color: "#673AB7" + }, + { + id: 4, + text_1: "Eros", + text_2: "Desire", + father: 1, + color: "#009688" + }, + { + id: 5, + text_1: "Uranus", + text_2: "Sky", + father: 3, + color: "#4CAF50" + }, + { + id: 6, + text_1: "Ourea", + text_2: "Mountains", + father: 3, + color: "#FF9800" + } +], Ga = [ + { + id: 1, + text_1: "Chaos", + text_2: "Void", + father: null, + color: "#2196F3" + }, + { + id: 2, + text_1: "Tartarus", + text_2: "Abyss", + father: 1, + color: "#F44336" + }, + { + id: 3, + text_1: "Gaia", + text_2: "Earth", + father: 1, + color: "#673AB7" + }, + { + id: 4, + text_1: "Eros", + text_2: "Desire", + father: 1, + color: "#009688" + }, + { + id: 5, + text_1: "Uranus", + text_2: "Sky", + father: 3, + color: "#4CAF50" + }, + { + id: 6, + text_1: "Ourea", + text_2: "Mountains", + father: 3, + color: "#FF9800" + }, + { + id: 7, + text_1: "Hermes", + text_2: " Sky", + father: 4, + color: "#2196F3" + }, + { + id: 8, + text_1: "Aphrodite", + text_2: "Love", + father: 4, + color: "#8BC34A" + }, + { + id: 3.3, + text_1: "Love", + text_2: "Peace", + father: 8, + color: "#c72e99" + }, + { + id: 4.1, + text_1: "Hope", + text_2: "Life", + father: 8, + color: "#2eecc7" + } +], Pt = Ba.create({ + data: xe, + // for Typescript projects only. htmlId: "tree", idKey: "id", hasFlatData: !0, @@ -196,25 +2903,25 @@ var h = [{ renderNode: function(e) { return "
" + e.data.text_1 + "
is
" + e.data.text_2 + "
"; }, - linkWidth: function(e) { - return 5; - }, + linkWidth: (t) => t.data.id * 2, linkShape: "curve", - linkColor: function(e) { - return e.linkColor || "#B0BEC5"; + linkColor: () => "#B0BEC5", + onNodeClick: (t) => { + console.log(t.data); }, - onNodeClick: function(e) { - return console.log(e); + onNodeMouseEnter: (t) => { + console.log(t.data); } }); -c.refresh(h); -var u = !0, n = document.querySelector("#add"), o = document.querySelector("#remove"), _ = document.querySelector("#doTasks"); -n.addEventListener("click", function() { - console.log("addButton clicked"), u ? c.refresh(f) : c.refresh(x), u = !1; +Pt.refresh(xe); +var Oe = !0; +const I = document.querySelector("#add"), T = document.querySelector("#remove"), Jt = document.querySelector("#doTasks"); +I == null || I.addEventListener("click", function() { + console.log("addButton clicked"), Oe ? Pt.refresh(Ua) : Pt.refresh(Ga), Oe = !1; }); -o.addEventListener("click", function() { - console.log("removeButton clicked"), c.refresh(h); +T == null || T.addEventListener("click", function() { + console.log("removeButton clicked"), Pt.refresh(xe); }); -_.addEventListener("click", function() { - n.click(), o.click(), n.click(), o.click(), o.click(), n.click(), o.click(), n.click(), n.click(), o.click(), o.click(); +Jt == null || Jt.addEventListener("click", function() { + I == null || I.click(), T == null || T.click(), I == null || I.click(), T == null || T.click(), T == null || T.click(), I == null || I.click(), T == null || T.click(), I == null || I.click(), I == null || I.click(), T == null || T.click(), T == null || T.click(); }); diff --git a/dist/typings.d.ts b/dist/typings.d.ts index af2a2fe..c653cba 100644 --- a/dist/typings.d.ts +++ b/dist/typings.d.ts @@ -1,5 +1,10 @@ import { HierarchyPointNode } from "d3-hierarchy"; -export interface ITreeConfig { +export type NodeData = { + data: T; + settings: ITreeConfig; +} & ExtendedHierarchyPointNode; +export interface ITreeConfig { + data: T[]; htmlId: string; idKey: string; relationnalField: string; @@ -7,13 +12,13 @@ export interface ITreeConfig { nodeWidth: number; nodeHeight: number; mainAxisNodeSpacing: number | "auto"; - renderNode: (node: any) => string | null; linkShape?: "quadraticBeziers" | "curve" | "orthogonal" | ""; - linkColor: (node: any) => string; - linkWidth: (node: any) => number; - onNodeClick: (node: any) => void; - onNodeMouseEnter: (node: any) => void; - onNodeMouseLeave: (node: any) => void; + renderNode: (node: NodeData) => string | null; + linkColor: (node: NodeData) => string; + linkWidth: (node: NodeData) => number; + onNodeClick: (node: NodeData) => void; + onNodeMouseEnter: (node: NodeData) => void; + onNodeMouseLeave: (node: NodeData) => void; isHorizontal: boolean; hasPan: boolean; hasZoom: boolean; diff --git a/dist/utils.d.ts b/dist/utils.d.ts index 0e1dbb6..7841bdd 100644 --- a/dist/utils.d.ts +++ b/dist/utils.d.ts @@ -8,7 +8,7 @@ type Result = ExtendedHierarchyPointNode & { y0: number; }; export declare const getFirstDisplayedAncestor: (ghostNodes: ExtendedHierarchyPointNode[], viewableNodes: ExtendedHierarchyPointNode[], id: string) => Result; -export declare const setNodeLocation: (xPosition: number, yPosition: number, settings: ITreeConfig) => string; +export declare const setNodeLocation: (xPosition: number, yPosition: number, settings: ITreeConfig) => string; export declare class RefreshQueue { private static queue; private static runner; diff --git a/example/example.ts b/example/example.ts index 32375cb..8d5d1e2 100644 --- a/example/example.ts +++ b/example/example.ts @@ -189,9 +189,9 @@ var myTree = Treeviz.create({ myTree.refresh(data_1); var toggle = true; -var addButton = document.querySelector("#add"); -var removeButton = document.querySelector("#remove"); -var doTasksButton = document.querySelector("#doTasks"); +const addButton = document.querySelector("#add") as HTMLButtonElement | null; +const removeButton = document.querySelector("#remove") as HTMLButtonElement | null; +const doTasksButton = document.querySelector("#doTasks") as HTMLButtonElement | null; addButton?.addEventListener("click", function () { console.log("addButton clicked"); toggle ? myTree.refresh(data_2) : myTree.refresh(data_3); diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..e034833 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3667 @@ +{ + "name": "treeviz", + "version": "3.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "treeviz", + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "@types/d3-hierarchy": "^3.1.6", + "@types/d3-selection": "^3.0.10", + "@types/d3-transition": "^3.0.8", + "@types/d3-zoom": "^3.0.8", + "d3-hierarchy": "^3.1.2", + "d3-selection": "^3.0.0", + "d3-transition": "^3.0.1", + "d3-zoom": "^3.0.0", + "tslib": "^2.8.1" + }, + "devDependencies": { + "@rollup/plugin-typescript": "^12.1.2", + "@types/node": "^20.10.3", + "esbuild": "^0.24.2", + "rollup": "^4.34.0", + "ts-loader": "^9.5.2", + "typescript": "^5.7.3", + "vite": "^5.0.6", + "vite-plugin-dts": "^3.6.4", + "webpack": "^5.97.1", + "webpack-cli": "^6.0.1" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz", + "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz", + "integrity": "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==", + "dev": true, + "engines": { + "node": ">=14.17.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@microsoft/api-extractor": { + "version": "7.38.4", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.38.4.tgz", + "integrity": "sha512-0SW3Of6os4bAYlHdiD1hJx/ygXr7vRZi92E1pREufNERH87aZ0B9Vhku/4Mj2Oxp58gyV5d18t7uZold6HCSEw==", + "dev": true, + "dependencies": { + "@microsoft/api-extractor-model": "7.28.2", + "@microsoft/tsdoc": "0.14.2", + "@microsoft/tsdoc-config": "~0.16.1", + "@rushstack/node-core-library": "3.61.0", + "@rushstack/rig-package": "0.5.1", + "@rushstack/ts-command-line": "4.17.1", + "colors": "~1.2.1", + "lodash": "~4.17.15", + "resolve": "~1.22.1", + "semver": "~7.5.4", + "source-map": "~0.6.1", + "typescript": "~5.0.4" + }, + "bin": { + "api-extractor": "bin/api-extractor" + } + }, + "node_modules/@microsoft/api-extractor-model": { + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.28.2.tgz", + "integrity": "sha512-vkojrM2fo3q4n4oPh4uUZdjJ2DxQ2+RnDQL/xhTWSRUNPF6P4QyrvY357HBxbnltKcYu+nNNolVqc6TIGQ73Ig==", + "dev": true, + "dependencies": { + "@microsoft/tsdoc": "0.14.2", + "@microsoft/tsdoc-config": "~0.16.1", + "@rushstack/node-core-library": "3.61.0" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/typescript": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/@microsoft/tsdoc": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz", + "integrity": "sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==", + "dev": true + }, + "node_modules/@microsoft/tsdoc-config": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.16.2.tgz", + "integrity": "sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==", + "dev": true, + "dependencies": { + "@microsoft/tsdoc": "0.14.2", + "ajv": "~6.12.6", + "jju": "~1.4.0", + "resolve": "~1.19.0" + } + }, + "node_modules/@microsoft/tsdoc-config/node_modules/resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, + "dependencies": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@rollup/plugin-typescript": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.1.2.tgz", + "integrity": "sha512-cdtSp154H5sv637uMr1a8OTWB0L1SWDSm1rDGiyfcGcvQ6cuTs4MDk2BVEBGysUWago4OJN4EQZqOTl/QY3Jgg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.1.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.14.0||^3.0.0||^4.0.0", + "tslib": "*", + "typescript": ">=3.7.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + }, + "tslib": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.0.tgz", + "integrity": "sha512-Eeao7ewDq79jVEsrtWIj5RNqB8p2knlm9fhR6uJ2gqP7UfbLrTrxevudVrEPDM7Wkpn/HpRC2QfazH7MXLz3vQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.0.tgz", + "integrity": "sha512-yVh0Kf1f0Fq4tWNf6mWcbQBCLDpDrDEl88lzPgKhrgTcDrTtlmun92ywEF9dCjmYO3EFiSuJeeo9cYRxl2FswA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.0.tgz", + "integrity": "sha512-gCs0ErAZ9s0Osejpc3qahTsqIPUDjSKIyxK/0BGKvL+Tn0n3Kwvj8BrCv7Y5sR1Ypz1K2qz9Ny0VvkVyoXBVUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.0.tgz", + "integrity": "sha512-aIB5Anc8hngk15t3GUkiO4pv42ykXHfmpXGS+CzM9CTyiWyT8HIS5ygRAy7KcFb/wiw4Br+vh1byqcHRTfq2tQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.0.tgz", + "integrity": "sha512-kpdsUdMlVJMRMaOf/tIvxk8TQdzHhY47imwmASOuMajg/GXpw8GKNd8LNwIHE5Yd1onehNpcUB9jHY6wgw9nHQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.0.tgz", + "integrity": "sha512-D0RDyHygOBCQiqookcPevrvgEarN0CttBecG4chOeIYCNtlKHmf5oi5kAVpXV7qs0Xh/WO2RnxeicZPtT50V0g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.0.tgz", + "integrity": "sha512-mCIw8j5LPDXmCOW8mfMZwT6F/Kza03EnSr4wGYEswrEfjTfVsFOxvgYfuRMxTuUF/XmRb9WSMD5GhCWDe2iNrg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.0.tgz", + "integrity": "sha512-AwwldAu4aCJPob7zmjuDUMvvuatgs8B/QiVB0KwkUarAcPB3W+ToOT+18TQwY4z09Al7G0BvCcmLRop5zBLTag==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.0.tgz", + "integrity": "sha512-e7kDUGVP+xw05pV65ZKb0zulRploU3gTu6qH1qL58PrULDGxULIS0OSDQJLH7WiFnpd3ZKUU4VM3u/Z7Zw+e7Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.0.tgz", + "integrity": "sha512-SXYJw3zpwHgaBqTXeAZ31qfW/v50wq4HhNVvKFhRr5MnptRX2Af4KebLWR1wpxGJtLgfS2hEPuALRIY3LPAAcA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.0.tgz", + "integrity": "sha512-e5XiCinINCI4RdyU3sFyBH4zzz7LiQRvHqDtRe9Dt8o/8hTBaYpdPimayF00eY2qy5j4PaaWK0azRgUench6WQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.0.tgz", + "integrity": "sha512-3SWN3e0bAsm9ToprLFBSro8nJe6YN+5xmB11N4FfNf92wvLye/+Rh5JGQtKOpwLKt6e61R1RBc9g+luLJsc23A==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.0.tgz", + "integrity": "sha512-B1Oqt3GLh7qmhvfnc2WQla4NuHlcxAD5LyueUi5WtMc76ZWY+6qDtQYqnxARx9r+7mDGfamD+8kTJO0pKUJeJA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.0.tgz", + "integrity": "sha512-UfUCo0h/uj48Jq2lnhX0AOhZPSTAq3Eostas+XZ+GGk22pI+Op1Y6cxQ1JkUuKYu2iU+mXj1QjPrZm9nNWV9rg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.0.tgz", + "integrity": "sha512-chZLTUIPbgcpm+Z7ALmomXW8Zh+wE2icrG+K6nt/HenPLmtwCajhQC5flNSk1Xy5EDMt/QAOz2MhzfOfJOLSiA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.0.tgz", + "integrity": "sha512-jo0UolK70O28BifvEsFD/8r25shFezl0aUk2t0VJzREWHkq19e+pcLu4kX5HiVXNz5qqkD+aAq04Ct8rkxgbyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.0.tgz", + "integrity": "sha512-Vmg0NhAap2S54JojJchiu5An54qa6t/oKT7LmDaWggpIcaiL8WcWHEN6OQrfTdL6mQ2GFyH7j2T5/3YPEDOOGA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.0.tgz", + "integrity": "sha512-CV2aqhDDOsABKHKhNcs1SZFryffQf8vK2XrxP6lxC99ELZAdvsDgPklIBfd65R8R+qvOm1SmLaZ/Fdq961+m7A==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.0.tgz", + "integrity": "sha512-g2ASy1QwHP88y5KWvblUolJz9rN+i4ZOsYzkEwcNfaNooxNUXG+ON6F5xFo0NIItpHqxcdAyls05VXpBnludGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rushstack/node-core-library": { + "version": "3.61.0", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.61.0.tgz", + "integrity": "sha512-tdOjdErme+/YOu4gPed3sFS72GhtWCgNV9oDsHDnoLY5oDfwjKUc9Z+JOZZ37uAxcm/OCahDHfuu2ugqrfWAVQ==", + "dev": true, + "dependencies": { + "colors": "~1.2.1", + "fs-extra": "~7.0.1", + "import-lazy": "~4.0.0", + "jju": "~1.4.0", + "resolve": "~1.22.1", + "semver": "~7.5.4", + "z-schema": "~5.0.2" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/rig-package": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.5.1.tgz", + "integrity": "sha512-pXRYSe29TjRw7rqxD4WS3HN/sRSbfr+tJs4a9uuaSIBAITbUggygdhuG0VrO0EO+QqH91GhYMN4S6KRtOEmGVA==", + "dev": true, + "dependencies": { + "resolve": "~1.22.1", + "strip-json-comments": "~3.1.1" + } + }, + "node_modules/@rushstack/ts-command-line": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.17.1.tgz", + "integrity": "sha512-2jweO1O57BYP5qdBGl6apJLB+aRIn5ccIRTPDyULh0KMwVzFqWtw6IZWt1qtUoZD/pD2RNkIOosH6Cq45rIYeg==", + "dev": true, + "dependencies": { + "@types/argparse": "1.0.38", + "argparse": "~1.0.9", + "colors": "~1.2.1", + "string-argv": "~0.3.1" + } + }, + "node_modules/@types/argparse": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz", + "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==", + "dev": true + }, + "node_modules/@types/d3-color": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.2.tgz", + "integrity": "sha512-At+Ski7dL8Bs58E8g8vPcFJc8tGcaC12Z4m07+p41+DRqnZQcAlp3NfYjLrhNYv+zEyQitU1CUxXNjqUyf+c0g==" + }, + "node_modules/@types/d3-hierarchy": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.6.tgz", + "integrity": "sha512-qlmD/8aMk5xGorUvTUWHCiumvgaUXYldYjNVOWtYoTYY/L+WwIEAmJxUmTgr9LoGNG0PPAOmqMDJVDPc7DOpPw==" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.3.tgz", + "integrity": "sha512-6OZ2EIB4lLj+8cUY7I/Cgn9Q+hLdA4DjJHYOQDiHL0SzqS1K9DL5xIOVBSIHgF+tiuO9MU1D36qvdIvRDRPh+Q==", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-selection": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.10.tgz", + "integrity": "sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg==" + }, + "node_modules/@types/d3-transition": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.8.tgz", + "integrity": "sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ==", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-zoom": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", + "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", + "dependencies": { + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" + } + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.3.tgz", + "integrity": "sha512-XJavIpZqiXID5Yxnxv3RUDKTN5b81ddNC3ecsA0SoFXz/QU8OGBwZGMomiq0zw+uuqbL/krztv/DINAQ/EV4gg==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@volar/language-core": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.11.1.tgz", + "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==", + "dev": true, + "dependencies": { + "@volar/source-map": "1.11.1" + } + }, + "node_modules/@volar/source-map": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.11.1.tgz", + "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==", + "dev": true, + "dependencies": { + "muggle-string": "^0.3.1" + } + }, + "node_modules/@volar/typescript": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.11.1.tgz", + "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==", + "dev": true, + "dependencies": { + "@volar/language-core": "1.11.1", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.10.tgz", + "integrity": "sha512-doe0hODR1+i1menPkRzJ5MNR6G+9uiZHIknK3Zn5OcIztu6GGw7u0XUzf3AgB8h/dfsZC9eouzoLo3c3+N/cVA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.23.5", + "@vue/shared": "3.3.10", + "estree-walker": "^2.0.2", + "source-map-js": "^1.0.2" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.10.tgz", + "integrity": "sha512-NCrqF5fm10GXZIK0GrEAauBqdy+F2LZRt3yNHzrYjpYBuRssQbuPLtSnSNjyR9luHKkWSH8we5LMB3g+4z2HvA==", + "dev": true, + "dependencies": { + "@vue/compiler-core": "3.3.10", + "@vue/shared": "3.3.10" + } + }, + "node_modules/@vue/language-core": { + "version": "1.8.25", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.25.tgz", + "integrity": "sha512-NJk/5DnAZlpvXX8BdWmHI45bWGLViUaS3R/RMrmFSvFMSbJKuEODpM4kR0F0Ofv5SFzCWuNiMhxameWpVdQsnA==", + "dev": true, + "dependencies": { + "@volar/language-core": "~1.11.1", + "@volar/source-map": "~1.11.1", + "@vue/compiler-dom": "^3.3.0", + "@vue/shared": "^3.3.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.3.1", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/shared": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.10.tgz", + "integrity": "sha512-2y3Y2J1a3RhFa0WisHvACJR2ncvWiVHcP8t0Inxo+NKz+8RKO4ZV8eZgCxRgQoA6ITfV12L4E6POOL9HOU5nqw==", + "dev": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-3.0.1.tgz", + "integrity": "sha512-u8d0pJ5YFgneF/GuvEiDA61Tf1VDomHHYMjv/wc9XzYj7nopltpG96nXN5dJRstxZhcNpV1g+nT6CydO7pHbjA==", + "dev": true, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-3.0.1.tgz", + "integrity": "sha512-coEmDzc2u/ffMvuW9aCjoRzNSPDl/XLuhPdlFRpT9tZHmJ/039az33CE7uH+8s0uL1j5ZNtfdv0HkfaKRBGJsQ==", + "dev": true, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-3.0.1.tgz", + "integrity": "sha512-sbgw03xQaCLiT6gcY/6u3qBDn01CWw/nbaXl3gTdTFuJJ75Gffv3E3DBpgvY2fkkrdS1fpjaXNOmJlnbtKauKg==", + "dev": true, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "webpack": "^5.82.0", + "webpack-cli": "6.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001696", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001696.tgz", + "integrity": "sha512-pDCPkvzfa39ehJtJ+OwGT/2yvT2SbjfHhiIW2LWOAcMQ7BzwxT/XuyUp4OTOd0XFWA6BKw0JalnBHgSi5DGJBQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/colors": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.2.5.tgz", + "integrity": "sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.90", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.90.tgz", + "integrity": "sha512-C3PN4aydfW91Natdyd449Kw+BzhLmof6tzy5W1pFC5SpQxVXT+oyiyOG9AgYYSN9OdA/ik3YkCrpwqI8ug5Tug==", + "dev": true + }, + "node_modules/enhanced-resolve": { + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", + "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/envinfo": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz", + "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ] + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.", + "dev": true + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", + "dev": true + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/muggle-string": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz", + "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss": { + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/rollup": { + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.0.tgz", + "integrity": "sha512-+4C/cgJ9w6sudisA0nZz0+O7lTP9a3CzNLsoDwaRumM8QHwghUsu6tqHXiTmNUp/rqNiM14++7dkzHDyCRs0Jg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.34.0", + "@rollup/rollup-android-arm64": "4.34.0", + "@rollup/rollup-darwin-arm64": "4.34.0", + "@rollup/rollup-darwin-x64": "4.34.0", + "@rollup/rollup-freebsd-arm64": "4.34.0", + "@rollup/rollup-freebsd-x64": "4.34.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.34.0", + "@rollup/rollup-linux-arm-musleabihf": "4.34.0", + "@rollup/rollup-linux-arm64-gnu": "4.34.0", + "@rollup/rollup-linux-arm64-musl": "4.34.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.34.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.34.0", + "@rollup/rollup-linux-riscv64-gnu": "4.34.0", + "@rollup/rollup-linux-s390x-gnu": "4.34.0", + "@rollup/rollup-linux-x64-gnu": "4.34.0", + "@rollup/rollup-linux-x64-musl": "4.34.0", + "@rollup/rollup-win32-arm64-msvc": "4.34.0", + "@rollup/rollup-win32-ia32-msvc": "4.34.0", + "@rollup/rollup-win32-x64-msvc": "4.34.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.37.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz", + "integrity": "sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.11", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", + "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-loader": { + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.2.tgz", + "integrity": "sha512-Qo4piXvOTWcMGIgRiuFa6nHNm+54HbYaZCKqc9eeZCLRy3XqafQgwX2F7mofrbJG3g7EEb+lkiR+z2Lic2s3Zw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4", + "source-map": "^0.7.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-loader/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/typescript": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/validator": { + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz", + "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vite": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.6.tgz", + "integrity": "sha512-MD3joyAEBtV7QZPl2JVVUai6zHms3YOmLR+BpMzLlX2Yzjfcc4gTgNi09d/Rua3F4EtC8zdwPU8eQYyib4vVMQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.19.3", + "postcss": "^8.4.32", + "rollup": "^4.2.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-dts": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-3.6.4.tgz", + "integrity": "sha512-yOVhUI/kQhtS6lCXRYYLv2UUf9bftcwQK9ROxCX2ul17poLQs02ctWX7+vXB8GPRzH8VCK3jebEFtPqqijXx6w==", + "dev": true, + "dependencies": { + "@microsoft/api-extractor": "^7.38.0", + "@rollup/pluginutils": "^5.0.5", + "@vue/language-core": "^1.8.20", + "debug": "^4.3.4", + "kolorist": "^1.8.0", + "vue-tsc": "^1.8.20" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "typescript": "*", + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.15", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.15.tgz", + "integrity": "sha512-yQxjxMptBL7UAog00O8sANud99C6wJF+7kgbcwqkvA38vCGF7HWE66w0ZFnS/kX5gSoJr/PQ4/oS3Ne2pW37Og==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "1.8.25", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.25.tgz", + "integrity": "sha512-lHsRhDc/Y7LINvYhZ3pv4elflFADoEOo67vfClAfF2heVHpHmVquLSjojgCSIwzA4F0Pc4vowT/psXCYcfk+iQ==", + "dev": true, + "dependencies": { + "@volar/typescript": "~1.11.1", + "@vue/language-core": "1.8.25", + "semver": "^7.5.4" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack": { + "version": "5.97.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz", + "integrity": "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-6.0.1.tgz", + "integrity": "sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.6.1", + "@webpack-cli/configtest": "^3.0.1", + "@webpack-cli/info": "^3.0.1", + "@webpack-cli/serve": "^3.0.1", + "colorette": "^2.0.14", + "commander": "^12.1.0", + "cross-spawn": "^7.0.3", + "envinfo": "^7.14.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^6.0.1" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.82.0" + }, + "peerDependenciesMeta": { + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/webpack-merge": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/z-schema": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-5.0.6.tgz", + "integrity": "sha512-+XR1GhnWklYdfr8YaZv/iu+vY+ux7V5DS5zH1DQf6bO5ufrt/5cgNhVO5qyhsjFXvsqQb/f08DWE9b6uPscyAg==", + "deprecated": "has issues with node 14", + "dev": true, + "dependencies": { + "lodash.get": "^4.4.2", + "lodash.isequal": "^4.5.0", + "validator": "^13.7.0" + }, + "bin": { + "z-schema": "bin/z-schema" + }, + "engines": { + "node": ">=8.0.0" + }, + "optionalDependencies": { + "commander": "^10.0.0" + } + } + } +} diff --git a/package.json b/package.json index e8f3518..58e38a1 100644 --- a/package.json +++ b/package.json @@ -25,10 +25,16 @@ "preview": "vite preview" }, "devDependencies": { + "@rollup/plugin-typescript": "^12.1.2", "@types/node": "^20.10.3", - "typescript": "^5.3.2", + "esbuild": "^0.24.2", + "rollup": "^4.34.0", + "ts-loader": "^9.5.2", + "typescript": "^5.7.3", "vite": "^5.0.6", - "vite-plugin-dts": "^3.6.4" + "vite-plugin-dts": "^3.6.4", + "webpack": "^5.97.1", + "webpack-cli": "^6.0.1" }, "dependencies": { "@types/d3-hierarchy": "^3.1.6", @@ -38,6 +44,7 @@ "d3-hierarchy": "^3.1.2", "d3-selection": "^3.0.0", "d3-transition": "^3.0.1", - "d3-zoom": "^3.0.0" + "d3-zoom": "^3.0.0", + "tslib": "^2.8.1" } } diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 0000000..334160e --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,12 @@ +import typescript from "@rollup/plugin-typescript"; + +export default { + input: "src/index.ts", + output: { + file: "dist/bundle.js", + format: "iife", + name: "Treeviz", // Defines `Treeviz` as a global namespace + sourcemap: true + }, + plugins: [typescript()] +}; diff --git a/src/index.ts b/src/index.ts index d26258a..001fdcd 100755 --- a/src/index.ts +++ b/src/index.ts @@ -15,7 +15,12 @@ export const Treeviz = { create, }; -function create(userSettings: Partial>) { +// Make sure Treeviz is available in vanilla JS +if (typeof window !== "undefined") { + (window as any).Treeviz = Treeviz; +} + +export function create(userSettings: Partial>) { const defaultSettings: ITreeConfig = { data: [], htmlId: "", @@ -108,7 +113,7 @@ function create(userSettings: Partial>) { oldNodes = [...nodes]; } - function refresh(data: any, newSettings?: Partial) { + function refresh(data: any, newSettings?: Partial>) { RefreshQueue.add(settings.duration, () => { if (newSettings) { settings = { ...settings, ...newSettings }; diff --git a/src/initializeSVG.ts b/src/initializeSVG.ts index d3c1945..dab0e3f 100644 --- a/src/initializeSVG.ts +++ b/src/initializeSVG.ts @@ -2,7 +2,7 @@ import d3 from "./d3"; import { ITreeConfig } from "./typings"; import { getAreaSize } from "./utils"; -export const initiliazeSVG = (treeConfig: ITreeConfig) => { +export const initiliazeSVG = (treeConfig: ITreeConfig) => { const { htmlId, isHorizontal, @@ -16,6 +16,7 @@ export const initiliazeSVG = (treeConfig: ITreeConfig) => { marginRight, marginTop, } = treeConfig; + const margin = { top: marginTop, right: marginRight, @@ -75,3 +76,4 @@ export const initiliazeSVG = (treeConfig: ITreeConfig) => { ); return MainG; }; + diff --git a/src/links/draw-links.ts b/src/links/draw-links.ts index e11515f..4421a5f 100644 --- a/src/links/draw-links.ts +++ b/src/links/draw-links.ts @@ -5,10 +5,10 @@ interface ICoordinates { y: number; } -export const generateLinkLayout = ( +export const generateLinkLayout = ( s: ICoordinates, // source d: ICoordinates, // destination - treeConfig: ITreeConfig + treeConfig: ITreeConfig // Add generic type T ): string => { const { isHorizontal, nodeHeight, nodeWidth, linkShape } = treeConfig; if (linkShape === "orthogonal") { diff --git a/src/links/link-enter.ts b/src/links/link-enter.ts index 874c85f..55b3f9c 100644 --- a/src/links/link-enter.ts +++ b/src/links/link-enter.ts @@ -4,9 +4,9 @@ import { ExtendedHierarchyPointNode, ITreeConfig } from "../typings"; import { getFirstDisplayedAncestor } from "../utils"; import { generateLinkLayout } from "./draw-links"; -export const drawLinkEnter = ( +export const drawLinkEnter = ( link: Selection, SVGGElement, {}>, - settings: ITreeConfig, + settings: ITreeConfig, nodes: ExtendedHierarchyPointNode[], oldNodes: ExtendedHierarchyPointNode[] ) => @@ -27,9 +27,9 @@ export const drawLinkEnter = ( return generateLinkLayout(o, o, settings); }) .attr("fill", "none") - .attr("stroke-width", ({ data }: { data: any }) => - settings.linkWidth({ data, settings }) + .attr("stroke-width", (d: any) => + settings.linkWidth(d) // Pass the correct `d` object to linkWidth ) - .attr("stroke", ({ data }: { data: any }) => - settings.linkColor({ data, settings }) + .attr("stroke", (d: any) => + settings.linkColor(d) // Pass the correct `d` object to linkColor ); diff --git a/src/links/link-exit.ts b/src/links/link-exit.ts index fee0808..569778b 100644 --- a/src/links/link-exit.ts +++ b/src/links/link-exit.ts @@ -4,9 +4,9 @@ import { ExtendedHierarchyPointNode, ITreeConfig } from "../typings"; import { getFirstDisplayedAncestor } from "../utils"; import { generateLinkLayout } from "./draw-links"; -export const drawLinkExit = ( +export const drawLinkExit = ( link: Selection, SVGGElement, {}>, - settings: ITreeConfig, + settings: ITreeConfig, // Specify the generic argument nodes: ExtendedHierarchyPointNode[], oldNodes: ExtendedHierarchyPointNode[] ) => { diff --git a/src/links/link-update.ts b/src/links/link-update.ts index ead5497..cb8ec0d 100644 --- a/src/links/link-update.ts +++ b/src/links/link-update.ts @@ -3,10 +3,10 @@ import { Selection } from "d3-selection"; import { ITreeConfig } from "../typings"; import { generateLinkLayout } from "./draw-links"; -export const drawLinkUpdate = ( +export const drawLinkUpdate = ( linkEnter: Selection, SVGGElement, {}>, link: Selection, SVGGElement, {}>, - settings: ITreeConfig + settings: ITreeConfig ) => { const linkUpdate = linkEnter.merge(link); @@ -18,10 +18,12 @@ export const drawLinkUpdate = ( return generateLinkLayout(d, d.parent, settings); }) .attr("fill", "none") - .attr("stroke-width", ({ data }: { data: any }) => - settings.linkWidth({ data, settings }) - ) - .attr("stroke", ({ data }: { data: any }) => - settings.linkColor({ data, settings }) - ); + .attr("stroke-width", (d: any) => { + // Pass the actual node data (d) which is of type ExtendedHierarchyPointNode + return settings.linkWidth(d); + }) + .attr("stroke", (d: any) => { + // Pass the actual node data (d) which is of type ExtendedHierarchyPointNode + return settings.linkColor(d); + }); }; diff --git a/src/nodes/node-enter.ts b/src/nodes/node-enter.ts index 379ac16..52249ef 100644 --- a/src/nodes/node-enter.ts +++ b/src/nodes/node-enter.ts @@ -2,9 +2,9 @@ import { BaseType, Selection } from "d3-selection"; import { ExtendedHierarchyPointNode, ITreeConfig } from "../typings"; import { getFirstDisplayedAncestor, setNodeLocation } from "../utils"; -export const drawNodeEnter = ( +export const drawNodeEnter = ( node: Selection, - settings: ITreeConfig, + settings: ITreeConfig, // Add the generic argument nodes: ExtendedHierarchyPointNode[], oldNodes: ExtendedHierarchyPointNode[] ) => { diff --git a/src/nodes/node-exit.ts b/src/nodes/node-exit.ts index ca75c34..5b2d487 100644 --- a/src/nodes/node-exit.ts +++ b/src/nodes/node-exit.ts @@ -2,9 +2,9 @@ import { BaseType, Selection } from "d3-selection"; import { ExtendedHierarchyPointNode, ITreeConfig } from "../typings"; import { getFirstDisplayedAncestor, setNodeLocation } from "../utils"; -export const drawNodeExit = ( +export const drawNodeExit = ( node: Selection, - settings: ITreeConfig, + settings: ITreeConfig, // Add the generic argument nodes: ExtendedHierarchyPointNode[], oldNodes: ExtendedHierarchyPointNode[] ) => { diff --git a/src/nodes/node-update.ts b/src/nodes/node-update.ts index ed1c554..b20d5fa 100644 --- a/src/nodes/node-update.ts +++ b/src/nodes/node-update.ts @@ -1,7 +1,7 @@ import { Selection } from "d3-selection"; -import { ExtendedHierarchyPointNode, ITreeConfig } from "../typings"; +import { ExtendedHierarchyPointNode, ITreeConfig, NodeData } from "../typings"; -export const drawNodeUpdate = ( +export const drawNodeUpdate = ( nodeEnter: Selection< SVGGElement, ExtendedHierarchyPointNode, @@ -9,7 +9,7 @@ export const drawNodeUpdate = ( {} >, node: Selection, - settings: ITreeConfig + settings: ITreeConfig ) => { const nodeUpdate = nodeEnter.merge(node); nodeUpdate @@ -28,8 +28,8 @@ export const drawNodeUpdate = ( .attr("width", settings.nodeWidth) .attr("height", settings.nodeHeight) .style("overflow", "visible") - .on("click", (_, d) => settings.onNodeClick({ ...d, settings })) - .on("mouseenter", (_, d) => settings.onNodeMouseEnter({ ...d, settings })) - .on("mouseleave", (_, d) => settings.onNodeMouseLeave({ ...d, settings })) - .html((d) => settings.renderNode({ ...d, settings })); + .on("click", (_, d) => settings.onNodeClick({ ...d, settings } as NodeData)) + .on("mouseenter", (_, d) => settings.onNodeMouseEnter({ ...d, settings } as NodeData)) + .on("mouseleave", (_, d) => settings.onNodeMouseLeave({ ...d, settings } as NodeData)) + .html((d) => settings.renderNode({ ...d, settings } as NodeData)); }; diff --git a/src/prepare-data.ts b/src/prepare-data.ts index 8a14b25..d9ac0e1 100644 --- a/src/prepare-data.ts +++ b/src/prepare-data.ts @@ -3,9 +3,9 @@ import d3 from "./d3"; import { ITreeConfig } from "./typings"; import { getAreaSize } from "./utils"; -export const generateNestedData = ( +export const generateNestedData = ( data: any, - treeConfig: ITreeConfig + treeConfig: ITreeConfig ): HierarchyNode => { const { idKey, relationnalField, hasFlatData } = treeConfig; return hasFlatData @@ -16,7 +16,7 @@ export const generateNestedData = ( : d3.hierarchy(data, d => d[relationnalField]); }; -export const generateBasicTreemap = (treeConfig: ITreeConfig) => { +export const generateBasicTreemap = (treeConfig: ITreeConfig) => { const { areaHeight, areaWidth } = getAreaSize(treeConfig.htmlId); return treeConfig.mainAxisNodeSpacing === "auto" && treeConfig.isHorizontal ? d3 diff --git a/src/typings.ts b/src/typings.ts index bb7700c..d812024 100644 --- a/src/typings.ts +++ b/src/typings.ts @@ -1,6 +1,6 @@ import { HierarchyPointNode } from "d3-hierarchy"; -type NodeData = { +export type NodeData = { data: T; settings: ITreeConfig; } & ExtendedHierarchyPointNode; diff --git a/src/utils.ts b/src/utils.ts index 3c3ef59..cf43062 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -43,10 +43,10 @@ export const getFirstDisplayedAncestor = ( } }; -export const setNodeLocation = ( +export const setNodeLocation = ( xPosition: number, yPosition: number, - settings: ITreeConfig + settings: ITreeConfig ) => { if (settings.isHorizontal) { return "translate(" + yPosition + "," + xPosition + ")"; diff --git a/tsconfig.json b/tsconfig.json index 6b49f98..d1090e0 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,10 +8,10 @@ /* Bundler mode */ "moduleResolution": "bundler", - "allowImportingTsExtensions": true, + "allowImportingTsExtensions": false, "resolveJsonModule": true, "isolatedModules": true, - "noEmit": true, + "noEmit": false, /* Linting */ "strict": true, @@ -19,6 +19,11 @@ "noUnusedParameters": true, "noFallthroughCasesInSwitch": true, "sourceMap": true, + + "outDir": "./dist", + + + "esModuleInterop": true }, "include": ["src", "example/example.ts"] } diff --git a/webpack.config.cjs b/webpack.config.cjs new file mode 100644 index 0000000..8e572a6 --- /dev/null +++ b/webpack.config.cjs @@ -0,0 +1,21 @@ +const path = require('path'); + +module.exports = { + entry: './src/index.ts', + output: { + filename: 'bundle.js', + path: path.resolve(__dirname, 'dist'), + }, + resolve: { + extensions: ['.ts', '.js'], + }, + module: { + rules: [ + { + test: /\.ts$/, + use: 'ts-loader', + exclude: /node_modules/, + }, + ], + }, +}; diff --git a/yarn.lock b/yarn.lock index e8ac7c8..ad3bb1c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4,122 +4,67 @@ "@babel/parser@^7.23.5": version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.5.tgz#37dee97c4752af148e1d38c34b856b2507660563" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz" integrity sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ== -"@esbuild/android-arm64@0.19.8": - version "0.19.8" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.8.tgz#fb7130103835b6d43ea499c3f30cfb2b2ed58456" - integrity sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA== - -"@esbuild/android-arm@0.19.8": - version "0.19.8" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.8.tgz#b46e4d9e984e6d6db6c4224d72c86b7757e35bcb" - integrity sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA== - -"@esbuild/android-x64@0.19.8": - version "0.19.8" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.8.tgz#a13db9441b5a4f4e4fec4a6f8ffacfea07888db7" - integrity sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A== - -"@esbuild/darwin-arm64@0.19.8": - version "0.19.8" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.8.tgz#49f5718d36541f40dd62bfdf84da9c65168a0fc2" - integrity sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw== - -"@esbuild/darwin-x64@0.19.8": - version "0.19.8" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.8.tgz#75c5c88371eea4bfc1f9ecfd0e75104c74a481ac" - integrity sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q== - -"@esbuild/freebsd-arm64@0.19.8": - version "0.19.8" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.8.tgz#9d7259fea4fd2b5f7437b52b542816e89d7c8575" - integrity sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw== - -"@esbuild/freebsd-x64@0.19.8": - version "0.19.8" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.8.tgz#abac03e1c4c7c75ee8add6d76ec592f46dbb39e3" - integrity sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg== - -"@esbuild/linux-arm64@0.19.8": - version "0.19.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.8.tgz#c577932cf4feeaa43cb9cec27b89cbe0df7d9098" - integrity sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ== - -"@esbuild/linux-arm@0.19.8": - version "0.19.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.8.tgz#d6014d8b98b5cbc96b95dad3d14d75bb364fdc0f" - integrity sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ== - -"@esbuild/linux-ia32@0.19.8": - version "0.19.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.8.tgz#2379a0554307d19ac4a6cdc15b08f0ea28e7a40d" - integrity sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ== - -"@esbuild/linux-loong64@0.19.8": - version "0.19.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.8.tgz#e2a5bbffe15748b49356a6cd7b2d5bf60c5a7123" - integrity sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ== - -"@esbuild/linux-mips64el@0.19.8": - version "0.19.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.8.tgz#1359331e6f6214f26f4b08db9b9df661c57cfa24" - integrity sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q== - -"@esbuild/linux-ppc64@0.19.8": - version "0.19.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.8.tgz#9ba436addc1646dc89dae48c62d3e951ffe70951" - integrity sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg== - -"@esbuild/linux-riscv64@0.19.8": - version "0.19.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.8.tgz#fbcf0c3a0b20f40b5fc31c3b7695f0769f9de66b" - integrity sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg== - -"@esbuild/linux-s390x@0.19.8": - version "0.19.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.8.tgz#989e8a05f7792d139d5564ffa7ff898ac6f20a4a" - integrity sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg== - -"@esbuild/linux-x64@0.19.8": - version "0.19.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.8.tgz#b187295393a59323397fe5ff51e769ec4e72212b" - integrity sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg== - -"@esbuild/netbsd-x64@0.19.8": - version "0.19.8" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.8.tgz#c1ec0e24ea82313cb1c7bae176bd5acd5bde7137" - integrity sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw== - -"@esbuild/openbsd-x64@0.19.8": - version "0.19.8" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.8.tgz#0c5b696ac66c6d70cf9ee17073a581a28af9e18d" - integrity sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ== - -"@esbuild/sunos-x64@0.19.8": - version "0.19.8" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.8.tgz#2a697e1f77926ff09fcc457d8f29916d6cd48fb1" - integrity sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w== - -"@esbuild/win32-arm64@0.19.8": - version "0.19.8" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.8.tgz#ec029e62a2fca8c071842ecb1bc5c2dd20b066f1" - integrity sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg== - -"@esbuild/win32-ia32@0.19.8": - version "0.19.8" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.8.tgz#cbb9a3146bde64dc15543e48afe418c7a3214851" - integrity sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw== - -"@esbuild/win32-x64@0.19.8": - version "0.19.8" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.8.tgz#c8285183dbdb17008578dbacb6e22748709b4822" - integrity sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA== +"@discoveryjs/json-ext@^0.6.1": + version "0.6.3" + resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz" + integrity sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ== + +"@esbuild/win32-x64@0.19.12": + version "0.19.12" + resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz" + integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== + +"@esbuild/win32-x64@0.24.2": + version "0.24.2" + resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz" + integrity sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg== + +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.8" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz" + integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/source-map@^0.3.3": + version "0.3.6" + resolved "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.5.0" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" "@microsoft/api-extractor-model@7.28.2": version "7.28.2" - resolved "https://registry.yarnpkg.com/@microsoft/api-extractor-model/-/api-extractor-model-7.28.2.tgz#91c66dd820ccc70e0c163e06b392d8363f1b9269" + resolved "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.28.2.tgz" integrity sha512-vkojrM2fo3q4n4oPh4uUZdjJ2DxQ2+RnDQL/xhTWSRUNPF6P4QyrvY357HBxbnltKcYu+nNNolVqc6TIGQ73Ig== dependencies: "@microsoft/tsdoc" "0.14.2" @@ -128,7 +73,7 @@ "@microsoft/api-extractor@^7.38.0": version "7.38.4" - resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.38.4.tgz#bb7847cbec6af4f762762a0897c312d434e12ae5" + resolved "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.38.4.tgz" integrity sha512-0SW3Of6os4bAYlHdiD1hJx/ygXr7vRZi92E1pREufNERH87aZ0B9Vhku/4Mj2Oxp58gyV5d18t7uZold6HCSEw== dependencies: "@microsoft/api-extractor-model" "7.28.2" @@ -146,7 +91,7 @@ "@microsoft/tsdoc-config@~0.16.1": version "0.16.2" - resolved "https://registry.yarnpkg.com/@microsoft/tsdoc-config/-/tsdoc-config-0.16.2.tgz#b786bb4ead00d54f53839a458ce626c8548d3adf" + resolved "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.16.2.tgz" integrity sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw== dependencies: "@microsoft/tsdoc" "0.14.2" @@ -156,81 +101,34 @@ "@microsoft/tsdoc@0.14.2": version "0.14.2" - resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz#c3ec604a0b54b9a9b87e9735dfc59e1a5da6a5fb" + resolved "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz" integrity sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug== -"@rollup/pluginutils@^5.0.5": +"@rollup/plugin-typescript@^12.1.2": + version "12.1.2" + resolved "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.1.2.tgz" + integrity sha512-cdtSp154H5sv637uMr1a8OTWB0L1SWDSm1rDGiyfcGcvQ6cuTs4MDk2BVEBGysUWago4OJN4EQZqOTl/QY3Jgg== + dependencies: + "@rollup/pluginutils" "^5.1.0" + resolve "^1.22.1" + +"@rollup/pluginutils@^5.0.5", "@rollup/pluginutils@^5.1.0": version "5.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0" + resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz" integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== dependencies: "@types/estree" "^1.0.0" estree-walker "^2.0.2" picomatch "^2.3.1" -"@rollup/rollup-android-arm-eabi@4.6.1": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.6.1.tgz#0ea289f68ff248b50fea5716ca9f65f7d4dba3ae" - integrity sha512-0WQ0ouLejaUCRsL93GD4uft3rOmB8qoQMU05Kb8CmMtMBe7XUDLAltxVZI1q6byNqEtU7N1ZX1Vw5lIpgulLQA== - -"@rollup/rollup-android-arm64@4.6.1": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.6.1.tgz#27c8c67fc5de574874085a1b480ac65b3e18378e" - integrity sha512-1TKm25Rn20vr5aTGGZqo6E4mzPicCUD79k17EgTLAsXc1zysyi4xXKACfUbwyANEPAEIxkzwue6JZ+stYzWUTA== - -"@rollup/rollup-darwin-arm64@4.6.1": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.6.1.tgz#c5735c042980c85495411af7183dd20294763bd8" - integrity sha512-cEXJQY/ZqMACb+nxzDeX9IPLAg7S94xouJJCNVE5BJM8JUEP4HeTF+ti3cmxWeSJo+5D+o8Tc0UAWUkfENdeyw== - -"@rollup/rollup-darwin-x64@4.6.1": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.6.1.tgz#af844bd54abb73ca3c9cf89a31eec17861d1375d" - integrity sha512-LoSU9Xu56isrkV2jLldcKspJ7sSXmZWkAxg7sW/RfF7GS4F5/v4EiqKSMCFbZtDu2Nc1gxxFdQdKwkKS4rwxNg== - -"@rollup/rollup-linux-arm-gnueabihf@4.6.1": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.6.1.tgz#5e972f63c441eaf859551039b3f18db9b035977d" - integrity sha512-EfI3hzYAy5vFNDqpXsNxXcgRDcFHUWSx5nnRSCKwXuQlI5J9dD84g2Usw81n3FLBNsGCegKGwwTVsSKK9cooSQ== - -"@rollup/rollup-linux-arm64-gnu@4.6.1": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.6.1.tgz#f4cfbc71e3b6fdb395b28b1472414e181515c72d" - integrity sha512-9lhc4UZstsegbNLhH0Zu6TqvDfmhGzuCWtcTFXY10VjLLUe4Mr0Ye2L3rrtHaDd/J5+tFMEuo5LTCSCMXWfUKw== - -"@rollup/rollup-linux-arm64-musl@4.6.1": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.6.1.tgz#6a94c691830dc29bf708de7c640f494996130893" - integrity sha512-FfoOK1yP5ksX3wwZ4Zk1NgyGHZyuRhf99j64I5oEmirV8EFT7+OhUZEnP+x17lcP/QHJNWGsoJwrz4PJ9fBEXw== - -"@rollup/rollup-linux-x64-gnu@4.6.1": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.6.1.tgz#f07bae3f7dc532d9ea5ab36c9071db329f9a1efb" - integrity sha512-DNGZvZDO5YF7jN5fX8ZqmGLjZEXIJRdJEdTFMhiyXqyXubBa0WVLDWSNlQ5JR2PNgDbEV1VQowhVRUh+74D+RA== - -"@rollup/rollup-linux-x64-musl@4.6.1": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.6.1.tgz#357a34fdbf410af88ce48bd802bea6462bb9a8bc" - integrity sha512-RkJVNVRM+piYy87HrKmhbexCHg3A6Z6MU0W9GHnJwBQNBeyhCJG9KDce4SAMdicQnpURggSvtbGo9xAWOfSvIQ== - -"@rollup/rollup-win32-arm64-msvc@4.6.1": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.6.1.tgz#b6e97fd38281667e35297033393cd1101f4a31be" - integrity sha512-v2FVT6xfnnmTe3W9bJXl6r5KwJglMK/iRlkKiIFfO6ysKs0rDgz7Cwwf3tjldxQUrHL9INT/1r4VA0n9L/F1vQ== - -"@rollup/rollup-win32-ia32-msvc@4.6.1": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.6.1.tgz#a95db026c640c8128bfd38546d85342f2329beaf" - integrity sha512-YEeOjxRyEjqcWphH9dyLbzgkF8wZSKAKUkldRY6dgNR5oKs2LZazqGB41cWJ4Iqqcy9/zqYgmzBkRoVz3Q9MLw== - -"@rollup/rollup-win32-x64-msvc@4.6.1": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.6.1.tgz#45785b5caf83200a34a9867ba50d69560880c120" - integrity sha512-0zfTlFAIhgz8V2G8STq8toAjsYYA6eci1hnXuyOTUFnymrtJwnS6uGKiv3v5UrPZkBlamLvrLV2iiaeqCKzb0A== +"@rollup/rollup-win32-x64-msvc@4.34.0": + version "4.34.0" + resolved "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.0.tgz" + integrity sha512-g2ASy1QwHP88y5KWvblUolJz9rN+i4ZOsYzkEwcNfaNooxNUXG+ON6F5xFo0NIItpHqxcdAyls05VXpBnludGw== "@rushstack/node-core-library@3.61.0": version "3.61.0" - resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.61.0.tgz#7441a0d2ae5268b758a7a49588a78cd55af57e66" + resolved "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.61.0.tgz" integrity sha512-tdOjdErme+/YOu4gPed3sFS72GhtWCgNV9oDsHDnoLY5oDfwjKUc9Z+JOZZ37uAxcm/OCahDHfuu2ugqrfWAVQ== dependencies: colors "~1.2.1" @@ -243,7 +141,7 @@ "@rushstack/rig-package@0.5.1": version "0.5.1" - resolved "https://registry.yarnpkg.com/@rushstack/rig-package/-/rig-package-0.5.1.tgz#6c9c283cc96b5bb1eae9875946d974ac5429bb21" + resolved "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.5.1.tgz" integrity sha512-pXRYSe29TjRw7rqxD4WS3HN/sRSbfr+tJs4a9uuaSIBAITbUggygdhuG0VrO0EO+QqH91GhYMN4S6KRtOEmGVA== dependencies: resolve "~1.22.1" @@ -251,7 +149,7 @@ "@rushstack/ts-command-line@4.17.1": version "4.17.1" - resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.17.1.tgz#c78db928ce5b93f2e98fd9e14c24f3f3876e57f1" + resolved "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.17.1.tgz" integrity sha512-2jweO1O57BYP5qdBGl6apJLB+aRIn5ccIRTPDyULh0KMwVzFqWtw6IZWt1qtUoZD/pD2RNkIOosH6Cq45rIYeg== dependencies: "@types/argparse" "1.0.38" @@ -261,80 +159,96 @@ "@types/argparse@1.0.38": version "1.0.38" - resolved "https://registry.yarnpkg.com/@types/argparse/-/argparse-1.0.38.tgz#a81fd8606d481f873a3800c6ebae4f1d768a56a9" + resolved "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz" integrity sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA== "@types/d3-color@*": version "3.1.2" - resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-3.1.2.tgz#7939eed011a908287cd1bcfd11580c17b2ac7f8a" + resolved "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.2.tgz" integrity sha512-At+Ski7dL8Bs58E8g8vPcFJc8tGcaC12Z4m07+p41+DRqnZQcAlp3NfYjLrhNYv+zEyQitU1CUxXNjqUyf+c0g== "@types/d3-hierarchy@^3.1.6": version "3.1.6" - resolved "https://registry.yarnpkg.com/@types/d3-hierarchy/-/d3-hierarchy-3.1.6.tgz#8d3638df273ec90da34b3ac89d8784c59708cb0d" + resolved "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.6.tgz" integrity sha512-qlmD/8aMk5xGorUvTUWHCiumvgaUXYldYjNVOWtYoTYY/L+WwIEAmJxUmTgr9LoGNG0PPAOmqMDJVDPc7DOpPw== "@types/d3-interpolate@*": version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-3.0.3.tgz#e10c06c4bf11bd770ed56184a0d76cd516ff4ded" + resolved "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.3.tgz" integrity sha512-6OZ2EIB4lLj+8cUY7I/Cgn9Q+hLdA4DjJHYOQDiHL0SzqS1K9DL5xIOVBSIHgF+tiuO9MU1D36qvdIvRDRPh+Q== dependencies: "@types/d3-color" "*" -"@types/d3-selection@*": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@types/d3-selection/-/d3-selection-3.0.8.tgz#9423511db3ed00a55aad4217ac8d546db5d8e5f5" - integrity sha512-pxCZUfQyedq/DIlPXIR5wE1mIH37omOdx1yxRudL3KZ4AC+156jMjOv1z5RVlGq62f8WX2kyO0hTVgEx627QFg== - -"@types/d3-selection@^3.0.10": +"@types/d3-selection@*", "@types/d3-selection@^3.0.10": version "3.0.10" - resolved "https://registry.yarnpkg.com/@types/d3-selection/-/d3-selection-3.0.10.tgz#98cdcf986d0986de6912b5892e7c015a95ca27fe" + resolved "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.10.tgz" integrity sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg== "@types/d3-transition@^3.0.8": version "3.0.8" - resolved "https://registry.yarnpkg.com/@types/d3-transition/-/d3-transition-3.0.8.tgz#677707f5eed5b24c66a1918cde05963021351a8f" + resolved "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.8.tgz" integrity sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ== dependencies: "@types/d3-selection" "*" "@types/d3-zoom@^3.0.8": version "3.0.8" - resolved "https://registry.yarnpkg.com/@types/d3-zoom/-/d3-zoom-3.0.8.tgz#dccb32d1c56b1e1c6e0f1180d994896f038bc40b" + resolved "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz" integrity sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw== dependencies: "@types/d3-interpolate" "*" "@types/d3-selection" "*" -"@types/estree@^1.0.0": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" - integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== +"@types/eslint-scope@^3.7.7": + version "3.7.7" + resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "9.6.1" + resolved "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz" + integrity sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.6", "@types/estree@1.0.6": + version "1.0.6" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz" + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== -"@types/node@^20.10.3": +"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.15" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/node@*", "@types/node@^18.0.0 || >=20.0.0", "@types/node@^20.10.3": version "20.10.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.3.tgz#4900adcc7fc189d5af5bb41da8f543cea6962030" + resolved "https://registry.npmjs.org/@types/node/-/node-20.10.3.tgz" integrity sha512-XJavIpZqiXID5Yxnxv3RUDKTN5b81ddNC3ecsA0SoFXz/QU8OGBwZGMomiq0zw+uuqbL/krztv/DINAQ/EV4gg== dependencies: undici-types "~5.26.4" -"@volar/language-core@1.11.1", "@volar/language-core@~1.11.1": +"@volar/language-core@~1.11.1", "@volar/language-core@1.11.1": version "1.11.1" - resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-1.11.1.tgz#ecdf12ea8dc35fb8549e517991abcbf449a5ad4f" + resolved "https://registry.npmjs.org/@volar/language-core/-/language-core-1.11.1.tgz" integrity sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw== dependencies: "@volar/source-map" "1.11.1" -"@volar/source-map@1.11.1", "@volar/source-map@~1.11.1": +"@volar/source-map@~1.11.1", "@volar/source-map@1.11.1": version "1.11.1" - resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-1.11.1.tgz#535b0328d9e2b7a91dff846cab4058e191f4452f" + resolved "https://registry.npmjs.org/@volar/source-map/-/source-map-1.11.1.tgz" integrity sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg== dependencies: muggle-string "^0.3.1" "@volar/typescript@~1.11.1": version "1.11.1" - resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-1.11.1.tgz#ba86c6f326d88e249c7f5cfe4b765be3946fd627" + resolved "https://registry.npmjs.org/@volar/typescript/-/typescript-1.11.1.tgz" integrity sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ== dependencies: "@volar/language-core" "1.11.1" @@ -342,7 +256,7 @@ "@vue/compiler-core@3.3.10": version "3.3.10" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.3.10.tgz#9ca4123a1458df43db641aaa8b7d1e636aa22545" + resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.10.tgz" integrity sha512-doe0hODR1+i1menPkRzJ5MNR6G+9uiZHIknK3Zn5OcIztu6GGw7u0XUzf3AgB8h/dfsZC9eouzoLo3c3+N/cVA== dependencies: "@babel/parser" "^7.23.5" @@ -352,15 +266,15 @@ "@vue/compiler-dom@^3.3.0": version "3.3.10" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.3.10.tgz#183811252be6aff4ac923f783124bb1590301907" + resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.10.tgz" integrity sha512-NCrqF5fm10GXZIK0GrEAauBqdy+F2LZRt3yNHzrYjpYBuRssQbuPLtSnSNjyR9luHKkWSH8we5LMB3g+4z2HvA== dependencies: "@vue/compiler-core" "3.3.10" "@vue/shared" "3.3.10" -"@vue/language-core@1.8.25", "@vue/language-core@^1.8.20": +"@vue/language-core@^1.8.20", "@vue/language-core@1.8.25": version "1.8.25" - resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-1.8.25.tgz#b44b4e3c244ba9b1b79cccf9eb7b046535a4676f" + resolved "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.25.tgz" integrity sha512-NJk/5DnAZlpvXX8BdWmHI45bWGLViUaS3R/RMrmFSvFMSbJKuEODpM4kR0F0Ofv5SFzCWuNiMhxameWpVdQsnA== dependencies: "@volar/language-core" "~1.11.1" @@ -373,14 +287,184 @@ path-browserify "^1.0.1" vue-template-compiler "^2.7.14" -"@vue/shared@3.3.10", "@vue/shared@^3.3.0": +"@vue/shared@^3.3.0", "@vue/shared@3.3.10": version "3.3.10" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.10.tgz#1583a8d85a957d8b819078c465d2a11db7914b2f" + resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.3.10.tgz" integrity sha512-2y3Y2J1a3RhFa0WisHvACJR2ncvWiVHcP8t0Inxo+NKz+8RKO4ZV8eZgCxRgQoA6ITfV12L4E6POOL9HOU5nqw== -ajv@~6.12.6: +"@webassemblyjs/ast@^1.14.1", "@webassemblyjs/ast@1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz" + integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== + dependencies: + "@webassemblyjs/helper-numbers" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + +"@webassemblyjs/floating-point-hex-parser@1.13.2": + version "1.13.2" + resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz" + integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== + +"@webassemblyjs/helper-api-error@1.13.2": + version "1.13.2" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz" + integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== + +"@webassemblyjs/helper-buffer@1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz" + integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== + +"@webassemblyjs/helper-numbers@1.13.2": + version "1.13.2" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz" + integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.13.2" + "@webassemblyjs/helper-api-error" "1.13.2" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.13.2": + version "1.13.2" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz" + integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== + +"@webassemblyjs/helper-wasm-section@1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz" + integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/wasm-gen" "1.14.1" + +"@webassemblyjs/ieee754@1.13.2": + version "1.13.2" + resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz" + integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.13.2": + version "1.13.2" + resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz" + integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.13.2": + version "1.13.2" + resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz" + integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== + +"@webassemblyjs/wasm-edit@^1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz" + integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/helper-wasm-section" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-opt" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" + "@webassemblyjs/wast-printer" "1.14.1" + +"@webassemblyjs/wasm-gen@1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz" + integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" + +"@webassemblyjs/wasm-opt@1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz" + integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" + +"@webassemblyjs/wasm-parser@^1.14.1", "@webassemblyjs/wasm-parser@1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz" + integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-api-error" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" + +"@webassemblyjs/wast-printer@1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz" + integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@xtuc/long" "4.2.2" + +"@webpack-cli/configtest@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-3.0.1.tgz" + integrity sha512-u8d0pJ5YFgneF/GuvEiDA61Tf1VDomHHYMjv/wc9XzYj7nopltpG96nXN5dJRstxZhcNpV1g+nT6CydO7pHbjA== + +"@webpack-cli/info@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@webpack-cli/info/-/info-3.0.1.tgz" + integrity sha512-coEmDzc2u/ffMvuW9aCjoRzNSPDl/XLuhPdlFRpT9tZHmJ/039az33CE7uH+8s0uL1j5ZNtfdv0HkfaKRBGJsQ== + +"@webpack-cli/serve@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@webpack-cli/serve/-/serve-3.0.1.tgz" + integrity sha512-sbgw03xQaCLiT6gcY/6u3qBDn01CWw/nbaXl3gTdTFuJJ75Gffv3E3DBpgvY2fkkrdS1fpjaXNOmJlnbtKauKg== + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +acorn@^8.14.0, acorn@^8.8.2: + version "8.14.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz" + integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.12.5, ajv@^6.9.1, ajv@~6.12.6: version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -388,53 +472,165 @@ ajv@~6.12.6: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^8.0.0: + version "8.17.1" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + +ajv@^8.8.2, ajv@^8.9.0: + version "8.17.1" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + argparse@~1.0.9: version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== brace-expansion@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: balanced-match "^1.0.0" +braces@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +browserslist@^4.24.0, "browserslist@>= 4.21.0": + version "4.24.4" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz" + integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== + dependencies: + caniuse-lite "^1.0.30001688" + electron-to-chromium "^1.5.73" + node-releases "^2.0.19" + update-browserslist-db "^1.1.1" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +caniuse-lite@^1.0.30001688: + version "1.0.30001696" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001696.tgz" + integrity sha512-pDCPkvzfa39ehJtJ+OwGT/2yvT2SbjfHhiIW2LWOAcMQ7BzwxT/XuyUp4OTOd0XFWA6BKw0JalnBHgSi5DGJBQ== + +chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chrome-trace-event@^1.0.2: + version "1.0.4" + resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz" + integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colorette@^2.0.14: + version "2.0.20" + resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + colors@~1.2.1: version "1.2.5" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.2.5.tgz#89c7ad9a374bc030df8013241f68136ed8835afc" + resolved "https://registry.npmjs.org/colors/-/colors-1.2.5.tgz" integrity sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg== commander@^10.0.0: version "10.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + resolved "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== +commander@^12.1.0: + version "12.1.0" + resolved "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz" + integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + computeds@^0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/computeds/-/computeds-0.0.1.tgz#215b08a4ba3e08a11ff6eee5d6d8d7166a97ce2e" + resolved "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz" integrity sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q== +cross-spawn@^7.0.3: + version "7.0.6" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + "d3-color@1 - 3": version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" + resolved "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz" integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== "d3-dispatch@1 - 3": version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" + resolved "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz" integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== "d3-drag@2 - 3": version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" + resolved "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz" integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== dependencies: d3-dispatch "1 - 3" @@ -442,34 +638,34 @@ computeds@^0.0.1: "d3-ease@1 - 3": version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" + resolved "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz" integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== d3-hierarchy@^3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" + resolved "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz" integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== "d3-interpolate@1 - 3": version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" + resolved "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz" integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== dependencies: d3-color "1 - 3" -"d3-selection@2 - 3", d3-selection@3, d3-selection@^3.0.0: +d3-selection@^3.0.0, "d3-selection@2 - 3", d3-selection@3: version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" + resolved "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz" integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== "d3-timer@1 - 3": version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" + resolved "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz" integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== -"d3-transition@2 - 3", d3-transition@^3.0.1: +d3-transition@^3.0.1, "d3-transition@2 - 3": version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" + resolved "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz" integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== dependencies: d3-color "1 - 3" @@ -480,7 +676,7 @@ d3-hierarchy@^3.1.2: d3-zoom@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" + resolved "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz" integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== dependencies: d3-dispatch "1 - 3" @@ -491,196 +687,463 @@ d3-zoom@^3.0.0: de-indent@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" + resolved "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz" integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== debug@^4.3.4: version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" +electron-to-chromium@^1.5.73: + version "1.5.90" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.90.tgz" + integrity sha512-C3PN4aydfW91Natdyd449Kw+BzhLmof6tzy5W1pFC5SpQxVXT+oyiyOG9AgYYSN9OdA/ik3YkCrpwqI8ug5Tug== + +enhanced-resolve@^5.0.0, enhanced-resolve@^5.17.1: + version "5.18.0" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz" + integrity sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +envinfo@^7.14.0: + version "7.14.0" + resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz" + integrity sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg== + +es-module-lexer@^1.2.1: + version "1.6.0" + resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz" + integrity sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ== + esbuild@^0.19.3: - version "0.19.8" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.8.tgz#ad05b72281d84483fa6b5345bd246c27a207b8f1" - integrity sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w== + version "0.19.12" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz" + integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== + optionalDependencies: + "@esbuild/aix-ppc64" "0.19.12" + "@esbuild/android-arm" "0.19.12" + "@esbuild/android-arm64" "0.19.12" + "@esbuild/android-x64" "0.19.12" + "@esbuild/darwin-arm64" "0.19.12" + "@esbuild/darwin-x64" "0.19.12" + "@esbuild/freebsd-arm64" "0.19.12" + "@esbuild/freebsd-x64" "0.19.12" + "@esbuild/linux-arm" "0.19.12" + "@esbuild/linux-arm64" "0.19.12" + "@esbuild/linux-ia32" "0.19.12" + "@esbuild/linux-loong64" "0.19.12" + "@esbuild/linux-mips64el" "0.19.12" + "@esbuild/linux-ppc64" "0.19.12" + "@esbuild/linux-riscv64" "0.19.12" + "@esbuild/linux-s390x" "0.19.12" + "@esbuild/linux-x64" "0.19.12" + "@esbuild/netbsd-x64" "0.19.12" + "@esbuild/openbsd-x64" "0.19.12" + "@esbuild/sunos-x64" "0.19.12" + "@esbuild/win32-arm64" "0.19.12" + "@esbuild/win32-ia32" "0.19.12" + "@esbuild/win32-x64" "0.19.12" + +esbuild@^0.24.2: + version "0.24.2" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz" + integrity sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA== optionalDependencies: - "@esbuild/android-arm" "0.19.8" - "@esbuild/android-arm64" "0.19.8" - "@esbuild/android-x64" "0.19.8" - "@esbuild/darwin-arm64" "0.19.8" - "@esbuild/darwin-x64" "0.19.8" - "@esbuild/freebsd-arm64" "0.19.8" - "@esbuild/freebsd-x64" "0.19.8" - "@esbuild/linux-arm" "0.19.8" - "@esbuild/linux-arm64" "0.19.8" - "@esbuild/linux-ia32" "0.19.8" - "@esbuild/linux-loong64" "0.19.8" - "@esbuild/linux-mips64el" "0.19.8" - "@esbuild/linux-ppc64" "0.19.8" - "@esbuild/linux-riscv64" "0.19.8" - "@esbuild/linux-s390x" "0.19.8" - "@esbuild/linux-x64" "0.19.8" - "@esbuild/netbsd-x64" "0.19.8" - "@esbuild/openbsd-x64" "0.19.8" - "@esbuild/sunos-x64" "0.19.8" - "@esbuild/win32-arm64" "0.19.8" - "@esbuild/win32-ia32" "0.19.8" - "@esbuild/win32-x64" "0.19.8" + "@esbuild/aix-ppc64" "0.24.2" + "@esbuild/android-arm" "0.24.2" + "@esbuild/android-arm64" "0.24.2" + "@esbuild/android-x64" "0.24.2" + "@esbuild/darwin-arm64" "0.24.2" + "@esbuild/darwin-x64" "0.24.2" + "@esbuild/freebsd-arm64" "0.24.2" + "@esbuild/freebsd-x64" "0.24.2" + "@esbuild/linux-arm" "0.24.2" + "@esbuild/linux-arm64" "0.24.2" + "@esbuild/linux-ia32" "0.24.2" + "@esbuild/linux-loong64" "0.24.2" + "@esbuild/linux-mips64el" "0.24.2" + "@esbuild/linux-ppc64" "0.24.2" + "@esbuild/linux-riscv64" "0.24.2" + "@esbuild/linux-s390x" "0.24.2" + "@esbuild/linux-x64" "0.24.2" + "@esbuild/netbsd-arm64" "0.24.2" + "@esbuild/netbsd-x64" "0.24.2" + "@esbuild/openbsd-arm64" "0.24.2" + "@esbuild/openbsd-x64" "0.24.2" + "@esbuild/sunos-x64" "0.24.2" + "@esbuild/win32-arm64" "0.24.2" + "@esbuild/win32-ia32" "0.24.2" + "@esbuild/win32-x64" "0.24.2" + +escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + +eslint-scope@5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== estree-walker@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== -fast-deep-equal@^3.1.1: +events@^3.2.0: + version "3.3.0" + resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== +fast-uri@^3.0.1: + version "3.0.6" + resolved "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz" + integrity sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw== + +fastest-levenshtein@^1.0.12: + version "1.0.16" + resolved "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + fs-extra@~7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== dependencies: graceful-fs "^4.1.2" jsonfile "^4.0.0" universalify "^0.1.0" -fsevents@~2.3.2, fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - function-bind@^1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -graceful-fs@^4.1.2, graceful-fs@^4.1.6: +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.11, graceful-fs@^4.2.4: version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + hasown@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz" integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== dependencies: function-bind "^1.1.2" he@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== import-lazy@~4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" + resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz" integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== +import-local@^3.0.2: + version "3.2.0" + resolved "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz" + integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +interpret@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz" + integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== + is-core-module@^2.1.0, is-core-module@^2.13.0: version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz" integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: hasown "^2.0.0" +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + jju@~1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" + resolved "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz" integrity sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA== +json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + jsonfile@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== optionalDependencies: graceful-fs "^4.1.6" +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + kolorist@^1.8.0: version "1.8.0" - resolved "https://registry.yarnpkg.com/kolorist/-/kolorist-1.8.0.tgz#edddbbbc7894bc13302cdf740af6374d4a04743c" + resolved "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz" integrity sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ== +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + lodash.get@^4.4.2: version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== lodash.isequal@^4.5.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + resolved "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz" integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== lodash@~4.17.15: version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== lru-cache@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: yallist "^4.0.0" +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +micromatch@^4.0.0: + version "4.0.8" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.27: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + minimatch@^9.0.3: version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== dependencies: brace-expansion "^2.0.1" ms@2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== muggle-string@^0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/muggle-string/-/muggle-string-0.3.1.tgz#e524312eb1728c63dd0b2ac49e3282e6ed85963a" + resolved "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz" integrity sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg== nanoid@^3.3.7: version "3.3.7" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz" integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +node-releases@^2.0.19: + version "2.0.19" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz" + integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + path-browserify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +picocolors@^1.0.0, picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + postcss@^8.4.32: version "8.4.32" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz" integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw== dependencies: nanoid "^3.3.7" @@ -689,117 +1152,291 @@ postcss@^8.4.32: punycode@^2.1.0: version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -resolve@~1.19.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" - integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: - is-core-module "^2.1.0" - path-parse "^1.0.6" + safe-buffer "^5.1.0" + +rechoir@^0.8.0: + version "0.8.0" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz" + integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== + dependencies: + resolve "^1.20.0" + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve@~1.22.1: +resolve@^1.20.0, resolve@^1.22.1, resolve@~1.22.1: version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -rollup@^4.2.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.6.1.tgz#351501c86b5b4f976dde8c5837516452b59921f8" - integrity sha512-jZHaZotEHQaHLgKr8JnQiDT1rmatjgKlMekyksz+yk9jt/8z9quNjnKNRoaM0wd9DC2QKXjmWWuDYtM3jfF8pQ== +resolve@~1.19.0: + version "1.19.0" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== + dependencies: + is-core-module "^2.1.0" + path-parse "^1.0.6" + +rollup@^1.20.0||^2.0.0||^3.0.0||^4.0.0, rollup@^2.14.0||^3.0.0||^4.0.0, rollup@^4.2.0, rollup@^4.34.0: + version "4.34.0" + resolved "https://registry.npmjs.org/rollup/-/rollup-4.34.0.tgz" + integrity sha512-+4C/cgJ9w6sudisA0nZz0+O7lTP9a3CzNLsoDwaRumM8QHwghUsu6tqHXiTmNUp/rqNiM14++7dkzHDyCRs0Jg== + dependencies: + "@types/estree" "1.0.6" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.6.1" - "@rollup/rollup-android-arm64" "4.6.1" - "@rollup/rollup-darwin-arm64" "4.6.1" - "@rollup/rollup-darwin-x64" "4.6.1" - "@rollup/rollup-linux-arm-gnueabihf" "4.6.1" - "@rollup/rollup-linux-arm64-gnu" "4.6.1" - "@rollup/rollup-linux-arm64-musl" "4.6.1" - "@rollup/rollup-linux-x64-gnu" "4.6.1" - "@rollup/rollup-linux-x64-musl" "4.6.1" - "@rollup/rollup-win32-arm64-msvc" "4.6.1" - "@rollup/rollup-win32-ia32-msvc" "4.6.1" - "@rollup/rollup-win32-x64-msvc" "4.6.1" + "@rollup/rollup-android-arm-eabi" "4.34.0" + "@rollup/rollup-android-arm64" "4.34.0" + "@rollup/rollup-darwin-arm64" "4.34.0" + "@rollup/rollup-darwin-x64" "4.34.0" + "@rollup/rollup-freebsd-arm64" "4.34.0" + "@rollup/rollup-freebsd-x64" "4.34.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.34.0" + "@rollup/rollup-linux-arm-musleabihf" "4.34.0" + "@rollup/rollup-linux-arm64-gnu" "4.34.0" + "@rollup/rollup-linux-arm64-musl" "4.34.0" + "@rollup/rollup-linux-loongarch64-gnu" "4.34.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.34.0" + "@rollup/rollup-linux-riscv64-gnu" "4.34.0" + "@rollup/rollup-linux-s390x-gnu" "4.34.0" + "@rollup/rollup-linux-x64-gnu" "4.34.0" + "@rollup/rollup-linux-x64-musl" "4.34.0" + "@rollup/rollup-win32-arm64-msvc" "4.34.0" + "@rollup/rollup-win32-ia32-msvc" "4.34.0" + "@rollup/rollup-win32-x64-msvc" "4.34.0" fsevents "~2.3.2" -semver@^7.5.4, semver@~7.5.4: +safe-buffer@^5.1.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +schema-utils@^3.2.0: + version "3.3.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz" + integrity sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + +semver@^7.3.4, semver@^7.5.4, semver@~7.5.4: version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" +serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + source-map-js@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map@~0.6.1: +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@~0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +source-map@^0.7.4: + version "0.7.4" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== string-argv@~0.3.1: version "0.3.2" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" + resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz" integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== strip-json-comments@~3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -typescript@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.2.tgz#00d1c7c1c46928c5845c1ee8d0cc2791031d4c43" - integrity sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ== +tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +terser-webpack-plugin@^5.3.10: + version "5.3.11" + resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz" + integrity sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ== + dependencies: + "@jridgewell/trace-mapping" "^0.3.25" + jest-worker "^27.4.5" + schema-utils "^4.3.0" + serialize-javascript "^6.0.2" + terser "^5.31.1" + +terser@^5.31.1, terser@^5.4.0: + version "5.37.0" + resolved "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz" + integrity sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +ts-loader@^9.5.2: + version "9.5.2" + resolved "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.2.tgz" + integrity sha512-Qo4piXvOTWcMGIgRiuFa6nHNm+54HbYaZCKqc9eeZCLRy3XqafQgwX2F7mofrbJG3g7EEb+lkiR+z2Lic2s3Zw== + dependencies: + chalk "^4.1.0" + enhanced-resolve "^5.0.0" + micromatch "^4.0.0" + semver "^7.3.4" + source-map "^0.7.4" + +tslib@*, tslib@^2.8.1: + version "2.8.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + +typescript@*, typescript@^5.7.3, typescript@>=3.7.0: + version "5.7.3" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz" + integrity sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw== typescript@~5.0.4: version "5.0.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz" integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw== undici-types@~5.26.4: version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== universalify@^0.1.0: version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +update-browserslist-db@^1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz" + integrity sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.1" + uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" validator@^13.7.0: version "13.11.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-13.11.0.tgz#23ab3fd59290c61248364eabf4067f04955fbb1b" + resolved "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz" integrity sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ== vite-plugin-dts@^3.6.4: version "3.6.4" - resolved "https://registry.yarnpkg.com/vite-plugin-dts/-/vite-plugin-dts-3.6.4.tgz#4ac51f6a5ca081ed18bc331cebc967545dac31fd" + resolved "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-3.6.4.tgz" integrity sha512-yOVhUI/kQhtS6lCXRYYLv2UUf9bftcwQK9ROxCX2ul17poLQs02ctWX7+vXB8GPRzH8VCK3jebEFtPqqijXx6w== dependencies: "@microsoft/api-extractor" "^7.38.0" @@ -809,9 +1446,9 @@ vite-plugin-dts@^3.6.4: kolorist "^1.8.0" vue-tsc "^1.8.20" -vite@^5.0.6: +vite@*, vite@^5.0.6: version "5.0.6" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.6.tgz#f9e13503a4c5ccd67312c67803dec921f3bdea7c" + resolved "https://registry.npmjs.org/vite/-/vite-5.0.6.tgz" integrity sha512-MD3joyAEBtV7QZPl2JVVUai6zHms3YOmLR+BpMzLlX2Yzjfcc4gTgNi09d/Rua3F4EtC8zdwPU8eQYyib4vVMQ== dependencies: esbuild "^0.19.3" @@ -822,7 +1459,7 @@ vite@^5.0.6: vue-template-compiler@^2.7.14: version "2.7.15" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.15.tgz#ec88ba8ceafe0f17a528b89c57e01e02da92b0de" + resolved "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.15.tgz" integrity sha512-yQxjxMptBL7UAog00O8sANud99C6wJF+7kgbcwqkvA38vCGF7HWE66w0ZFnS/kX5gSoJr/PQ4/oS3Ne2pW37Og== dependencies: de-indent "^1.0.2" @@ -830,21 +1467,103 @@ vue-template-compiler@^2.7.14: vue-tsc@^1.8.20: version "1.8.25" - resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-1.8.25.tgz#90cd03e71d28c5c4a8068167b232eb97cc96b77f" + resolved "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.25.tgz" integrity sha512-lHsRhDc/Y7LINvYhZ3pv4elflFADoEOo67vfClAfF2heVHpHmVquLSjojgCSIwzA4F0Pc4vowT/psXCYcfk+iQ== dependencies: "@volar/typescript" "~1.11.1" "@vue/language-core" "1.8.25" semver "^7.5.4" +watchpack@^2.4.1: + version "2.4.2" + resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz" + integrity sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +webpack-cli@^6.0.1, webpack-cli@6.x.x: + version "6.0.1" + resolved "https://registry.npmjs.org/webpack-cli/-/webpack-cli-6.0.1.tgz" + integrity sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw== + dependencies: + "@discoveryjs/json-ext" "^0.6.1" + "@webpack-cli/configtest" "^3.0.1" + "@webpack-cli/info" "^3.0.1" + "@webpack-cli/serve" "^3.0.1" + colorette "^2.0.14" + commander "^12.1.0" + cross-spawn "^7.0.3" + envinfo "^7.14.0" + fastest-levenshtein "^1.0.12" + import-local "^3.0.2" + interpret "^3.1.1" + rechoir "^0.8.0" + webpack-merge "^6.0.1" + +webpack-merge@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz" + integrity sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg== + dependencies: + clone-deep "^4.0.1" + flat "^5.0.2" + wildcard "^2.0.1" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack@^5.0.0, webpack@^5.1.0, webpack@^5.82.0, webpack@^5.97.1: + version "5.97.1" + resolved "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz" + integrity sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg== + dependencies: + "@types/eslint-scope" "^3.7.7" + "@types/estree" "^1.0.6" + "@webassemblyjs/ast" "^1.14.1" + "@webassemblyjs/wasm-edit" "^1.14.1" + "@webassemblyjs/wasm-parser" "^1.14.1" + acorn "^8.14.0" + browserslist "^4.24.0" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.17.1" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.11" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.2.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.10" + watchpack "^2.4.1" + webpack-sources "^3.2.3" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wildcard@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz" + integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== + yallist@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== z-schema@~5.0.2: version "5.0.6" - resolved "https://registry.yarnpkg.com/z-schema/-/z-schema-5.0.6.tgz#46d6a687b15e4a4369e18d6cb1c7b8618fc256c5" + resolved "https://registry.npmjs.org/z-schema/-/z-schema-5.0.6.tgz" integrity sha512-+XR1GhnWklYdfr8YaZv/iu+vY+ux7V5DS5zH1DQf6bO5ufrt/5cgNhVO5qyhsjFXvsqQb/f08DWE9b6uPscyAg== dependencies: lodash.get "^4.4.2" From 6093eac1f05dea1c5b2e2ddc857d15b8998dfb76 Mon Sep 17 00:00:00 2001 From: jokob-sk Date: Sun, 2 Feb 2025 14:35:00 +1100 Subject: [PATCH 2/2] readme --- README.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 84411d9..b701d65 100644 --- a/README.md +++ b/README.md @@ -23,13 +23,28 @@ import {Treeviz} from 'treeviz'; Or download this zip repository in the Github Release section and link the dist/treeviz.js file in your page directly : ` + +``` + #### Vanilla JavaScript