diff --git a/README.md b/README.md index e15651d..b701d65 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,27 @@ Or download this zip repository in the Github Release section and link the dist/ ## Usage +#### Vanilla JavaScript NEW + +To build .js budle + +```bash +npx esbuild src/index.ts --bundle --outfile=dist/bundle.js --platform=browser --format=iife --global-name=Treeviz --keep-names +``` + +1. Download: + +`/dist/bundle.js` +`/dist/bundle.js.map` + +2. Link in your HTML + +```html + + +``` + + #### Vanilla JavaScript ```HTML diff --git a/dist/bundle.js b/dist/bundle.js new file mode 100644 index 0000000..16ad037 --- /dev/null +++ b/dist/bundle.js @@ -0,0 +1,4164 @@ +"use strict"; +var Treeviz = (() => { + var __defProp = Object.defineProperty; + var __getOwnPropDesc = Object.getOwnPropertyDescriptor; + var __getOwnPropNames = Object.getOwnPropertyNames; + var __hasOwnProp = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + + // src/index.ts + var index_exports = {}; + __export(index_exports, { + Treeviz: () => Treeviz, + create: () => create2 + }); + + // node_modules/d3-hierarchy/src/hierarchy/count.js + function count(node) { + var sum = 0, children2 = node.children, i = children2 && children2.length; + if (!i) sum = 1; + else while (--i >= 0) sum += children2[i].value; + node.value = sum; + } + __name(count, "count"); + function count_default() { + return this.eachAfter(count); + } + __name(count_default, "default"); + + // node_modules/d3-hierarchy/src/hierarchy/each.js + function each_default(callback, that) { + let index = -1; + for (const node of this) { + callback.call(that, node, ++index, this); + } + return this; + } + __name(each_default, "default"); + + // node_modules/d3-hierarchy/src/hierarchy/eachBefore.js + function eachBefore_default(callback, that) { + var node = this, nodes = [node], children2, i, index = -1; + while (node = nodes.pop()) { + callback.call(that, node, ++index, this); + if (children2 = node.children) { + for (i = children2.length - 1; i >= 0; --i) { + nodes.push(children2[i]); + } + } + } + return this; + } + __name(eachBefore_default, "default"); + + // node_modules/d3-hierarchy/src/hierarchy/eachAfter.js + function eachAfter_default(callback, that) { + var node = this, nodes = [node], next = [], children2, i, n, index = -1; + while (node = nodes.pop()) { + next.push(node); + if (children2 = node.children) { + for (i = 0, n = children2.length; i < n; ++i) { + nodes.push(children2[i]); + } + } + } + while (node = next.pop()) { + callback.call(that, node, ++index, this); + } + return this; + } + __name(eachAfter_default, "default"); + + // node_modules/d3-hierarchy/src/hierarchy/find.js + function find_default(callback, that) { + let index = -1; + for (const node of this) { + if (callback.call(that, node, ++index, this)) { + return node; + } + } + } + __name(find_default, "default"); + + // node_modules/d3-hierarchy/src/hierarchy/sum.js + function sum_default(value) { + return this.eachAfter(function(node) { + var sum = +value(node.data) || 0, children2 = node.children, i = children2 && children2.length; + while (--i >= 0) sum += children2[i].value; + node.value = sum; + }); + } + __name(sum_default, "default"); + + // node_modules/d3-hierarchy/src/hierarchy/sort.js + function sort_default(compare) { + return this.eachBefore(function(node) { + if (node.children) { + node.children.sort(compare); + } + }); + } + __name(sort_default, "default"); + + // node_modules/d3-hierarchy/src/hierarchy/path.js + function path_default(end) { + var start2 = this, ancestor = leastCommonAncestor(start2, end), nodes = [start2]; + while (start2 !== ancestor) { + start2 = start2.parent; + nodes.push(start2); + } + var k = nodes.length; + while (end !== ancestor) { + nodes.splice(k, 0, end); + end = end.parent; + } + return nodes; + } + __name(path_default, "default"); + function leastCommonAncestor(a, b) { + if (a === b) return a; + var aNodes = a.ancestors(), bNodes = b.ancestors(), c = null; + a = aNodes.pop(); + b = bNodes.pop(); + while (a === b) { + c = a; + a = aNodes.pop(); + b = bNodes.pop(); + } + return c; + } + __name(leastCommonAncestor, "leastCommonAncestor"); + + // node_modules/d3-hierarchy/src/hierarchy/ancestors.js + function ancestors_default() { + var node = this, nodes = [node]; + while (node = node.parent) { + nodes.push(node); + } + return nodes; + } + __name(ancestors_default, "default"); + + // node_modules/d3-hierarchy/src/hierarchy/descendants.js + function descendants_default() { + return Array.from(this); + } + __name(descendants_default, "default"); + + // node_modules/d3-hierarchy/src/hierarchy/leaves.js + function leaves_default() { + var leaves = []; + this.eachBefore(function(node) { + if (!node.children) { + leaves.push(node); + } + }); + return leaves; + } + __name(leaves_default, "default"); + + // node_modules/d3-hierarchy/src/hierarchy/links.js + function links_default() { + var root2 = this, links = []; + root2.each(function(node) { + if (node !== root2) { + links.push({ source: node.parent, target: node }); + } + }); + return links; + } + __name(links_default, "default"); + + // node_modules/d3-hierarchy/src/hierarchy/iterator.js + function* iterator_default() { + var node = this, current, next = [node], children2, i, n; + do { + current = next.reverse(), next = []; + while (node = current.pop()) { + yield node; + if (children2 = node.children) { + for (i = 0, n = children2.length; i < n; ++i) { + next.push(children2[i]); + } + } + } + } while (next.length); + } + __name(iterator_default, "default"); + + // node_modules/d3-hierarchy/src/hierarchy/index.js + function hierarchy(data, children2) { + if (data instanceof Map) { + data = [void 0, data]; + if (children2 === void 0) children2 = mapChildren; + } else if (children2 === void 0) { + children2 = objectChildren; + } + var root2 = new Node(data), node, nodes = [root2], child, childs, i, n; + while (node = nodes.pop()) { + if ((childs = children2(node.data)) && (n = (childs = Array.from(childs)).length)) { + node.children = childs; + for (i = n - 1; i >= 0; --i) { + nodes.push(child = childs[i] = new Node(childs[i])); + child.parent = node; + child.depth = node.depth + 1; + } + } + } + return root2.eachBefore(computeHeight); + } + __name(hierarchy, "hierarchy"); + function node_copy() { + return hierarchy(this).eachBefore(copyData); + } + __name(node_copy, "node_copy"); + function objectChildren(d) { + return d.children; + } + __name(objectChildren, "objectChildren"); + function mapChildren(d) { + return Array.isArray(d) ? d[1] : null; + } + __name(mapChildren, "mapChildren"); + function copyData(node) { + if (node.data.value !== void 0) node.value = node.data.value; + node.data = node.data.data; + } + __name(copyData, "copyData"); + function computeHeight(node) { + var height = 0; + do + node.height = height; + while ((node = node.parent) && node.height < ++height); + } + __name(computeHeight, "computeHeight"); + function Node(data) { + this.data = data; + this.depth = this.height = 0; + this.parent = null; + } + __name(Node, "Node"); + Node.prototype = hierarchy.prototype = { + constructor: Node, + count: count_default, + each: each_default, + eachAfter: eachAfter_default, + eachBefore: eachBefore_default, + find: find_default, + sum: sum_default, + sort: sort_default, + path: path_default, + ancestors: ancestors_default, + descendants: descendants_default, + leaves: leaves_default, + links: links_default, + copy: node_copy, + [Symbol.iterator]: iterator_default + }; + + // node_modules/d3-hierarchy/src/accessors.js + function optional(f) { + return f == null ? null : required(f); + } + __name(optional, "optional"); + function required(f) { + if (typeof f !== "function") throw new Error(); + return f; + } + __name(required, "required"); + + // node_modules/d3-hierarchy/src/constant.js + function constantZero() { + return 0; + } + __name(constantZero, "constantZero"); + function constant_default(x) { + return function() { + return x; + }; + } + __name(constant_default, "default"); + + // node_modules/d3-hierarchy/src/treemap/round.js + function round_default(node) { + node.x0 = Math.round(node.x0); + node.y0 = Math.round(node.y0); + node.x1 = Math.round(node.x1); + node.y1 = Math.round(node.y1); + } + __name(round_default, "default"); + + // node_modules/d3-hierarchy/src/treemap/dice.js + function dice_default(parent, x0, y0, x1, y1) { + var nodes = parent.children, node, i = -1, n = nodes.length, k = parent.value && (x1 - x0) / parent.value; + while (++i < n) { + node = nodes[i], node.y0 = y0, node.y1 = y1; + node.x0 = x0, node.x1 = x0 += node.value * k; + } + } + __name(dice_default, "default"); + + // node_modules/d3-hierarchy/src/stratify.js + var preroot = { depth: -1 }; + var ambiguous = {}; + var imputed = {}; + function defaultId(d) { + return d.id; + } + __name(defaultId, "defaultId"); + function defaultParentId(d) { + return d.parentId; + } + __name(defaultParentId, "defaultParentId"); + function stratify_default() { + var id2 = defaultId, parentId = defaultParentId, path; + function stratify(data) { + var nodes = Array.from(data), currentId = id2, currentParentId = parentId, n, d, i, root2, parent, node, nodeId, nodeKey, nodeByKey = /* @__PURE__ */ new Map(); + if (path != null) { + const I = nodes.map((d2, i2) => normalize(path(d2, i2, data))); + const P = I.map(parentof); + const S = new Set(I).add(""); + for (const i2 of P) { + if (!S.has(i2)) { + S.add(i2); + I.push(i2); + P.push(parentof(i2)); + nodes.push(imputed); + } + } + currentId = /* @__PURE__ */ __name((_, i2) => I[i2], "currentId"); + currentParentId = /* @__PURE__ */ __name((_, i2) => P[i2], "currentParentId"); + } + for (i = 0, n = nodes.length; i < n; ++i) { + d = nodes[i], node = nodes[i] = new Node(d); + if ((nodeId = currentId(d, i, data)) != null && (nodeId += "")) { + nodeKey = node.id = nodeId; + nodeByKey.set(nodeKey, nodeByKey.has(nodeKey) ? ambiguous : node); + } + if ((nodeId = currentParentId(d, i, data)) != null && (nodeId += "")) { + node.parent = nodeId; + } + } + for (i = 0; i < n; ++i) { + node = nodes[i]; + if (nodeId = node.parent) { + parent = nodeByKey.get(nodeId); + if (!parent) throw new Error("missing: " + nodeId); + if (parent === ambiguous) throw new Error("ambiguous: " + nodeId); + if (parent.children) parent.children.push(node); + else parent.children = [node]; + node.parent = parent; + } else { + if (root2) throw new Error("multiple roots"); + root2 = node; + } + } + if (!root2) throw new Error("no root"); + if (path != null) { + while (root2.data === imputed && root2.children.length === 1) { + root2 = root2.children[0], --n; + } + for (let i2 = nodes.length - 1; i2 >= 0; --i2) { + node = nodes[i2]; + if (node.data !== imputed) break; + node.data = null; + } + } + root2.parent = preroot; + root2.eachBefore(function(node2) { + node2.depth = node2.parent.depth + 1; + --n; + }).eachBefore(computeHeight); + root2.parent = null; + if (n > 0) throw new Error("cycle"); + return root2; + } + __name(stratify, "stratify"); + stratify.id = function(x) { + return arguments.length ? (id2 = optional(x), stratify) : id2; + }; + stratify.parentId = function(x) { + return arguments.length ? (parentId = optional(x), stratify) : parentId; + }; + stratify.path = function(x) { + return arguments.length ? (path = optional(x), stratify) : path; + }; + return stratify; + } + __name(stratify_default, "default"); + function normalize(path) { + path = `${path}`; + let i = path.length; + if (slash(path, i - 1) && !slash(path, i - 2)) path = path.slice(0, -1); + return path[0] === "/" ? path : `/${path}`; + } + __name(normalize, "normalize"); + function parentof(path) { + let i = path.length; + if (i < 2) return ""; + while (--i > 1) if (slash(path, i)) break; + return path.slice(0, i); + } + __name(parentof, "parentof"); + function slash(path, i) { + if (path[i] === "/") { + let k = 0; + while (i > 0 && path[--i] === "\\") ++k; + if ((k & 1) === 0) return true; + } + return false; + } + __name(slash, "slash"); + + // node_modules/d3-hierarchy/src/tree.js + function defaultSeparation(a, b) { + return a.parent === b.parent ? 1 : 2; + } + __name(defaultSeparation, "defaultSeparation"); + function nextLeft(v) { + var children2 = v.children; + return children2 ? children2[0] : v.t; + } + __name(nextLeft, "nextLeft"); + function nextRight(v) { + var children2 = v.children; + return children2 ? children2[children2.length - 1] : v.t; + } + __name(nextRight, "nextRight"); + function moveSubtree(wm, wp, shift) { + var change = shift / (wp.i - wm.i); + wp.c -= change; + wp.s += shift; + wm.c += change; + wp.z += shift; + wp.m += shift; + } + __name(moveSubtree, "moveSubtree"); + function executeShifts(v) { + var shift = 0, change = 0, children2 = v.children, i = children2.length, w; + while (--i >= 0) { + w = children2[i]; + w.z += shift; + w.m += shift; + shift += w.s + (change += w.c); + } + } + __name(executeShifts, "executeShifts"); + function nextAncestor(vim, v, ancestor) { + return vim.a.parent === v.parent ? vim.a : ancestor; + } + __name(nextAncestor, "nextAncestor"); + function TreeNode(node, i) { + this._ = node; + 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 = i; + } + __name(TreeNode, "TreeNode"); + TreeNode.prototype = Object.create(Node.prototype); + function treeRoot(root2) { + var tree = new TreeNode(root2, 0), node, nodes = [tree], child, children2, i, n; + while (node = nodes.pop()) { + if (children2 = node._.children) { + node.children = new Array(n = children2.length); + for (i = n - 1; i >= 0; --i) { + nodes.push(child = node.children[i] = new TreeNode(children2[i], i)); + child.parent = node; + } + } + } + (tree.parent = new TreeNode(null, 0)).children = [tree]; + return tree; + } + __name(treeRoot, "treeRoot"); + function tree_default() { + var separation = defaultSeparation, dx = 1, dy = 1, nodeSize = null; + function tree(root2) { + var t = treeRoot(root2); + t.eachAfter(firstWalk), t.parent.m = -t.z; + t.eachBefore(secondWalk); + if (nodeSize) root2.eachBefore(sizeNode); + else { + var left = root2, right = root2, bottom = root2; + root2.eachBefore(function(node) { + if (node.x < left.x) left = node; + if (node.x > right.x) right = node; + if (node.depth > bottom.depth) bottom = node; + }); + var s = left === right ? 1 : separation(left, right) / 2, tx = s - left.x, kx = dx / (right.x + s + tx), ky = dy / (bottom.depth || 1); + root2.eachBefore(function(node) { + node.x = (node.x + tx) * kx; + node.y = node.depth * ky; + }); + } + return root2; + } + __name(tree, "tree"); + function firstWalk(v) { + var children2 = v.children, siblings = v.parent.children, w = v.i ? siblings[v.i - 1] : null; + if (children2) { + executeShifts(v); + var midpoint = (children2[0].z + children2[children2.length - 1].z) / 2; + if (w) { + v.z = w.z + separation(v._, w._); + v.m = v.z - midpoint; + } else { + v.z = midpoint; + } + } else if (w) { + v.z = w.z + separation(v._, w._); + } + v.parent.A = apportion(v, w, v.parent.A || siblings[0]); + } + __name(firstWalk, "firstWalk"); + function secondWalk(v) { + v._.x = v.z + v.parent.m; + v.m += v.parent.m; + } + __name(secondWalk, "secondWalk"); + function apportion(v, w, ancestor) { + if (w) { + var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift; + while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) { + vom = nextLeft(vom); + vop = nextRight(vop); + vop.a = v; + shift = vim.z + sim - vip.z - sip + separation(vim._, vip._); + if (shift > 0) { + moveSubtree(nextAncestor(vim, v, ancestor), v, shift); + sip += shift; + sop += shift; + } + sim += vim.m; + sip += vip.m; + som += vom.m; + sop += vop.m; + } + if (vim && !nextRight(vop)) { + vop.t = vim; + vop.m += sim - sop; + } + if (vip && !nextLeft(vom)) { + vom.t = vip; + vom.m += sip - som; + ancestor = v; + } + } + return ancestor; + } + __name(apportion, "apportion"); + function sizeNode(node) { + node.x *= dx; + node.y = node.depth * dy; + } + __name(sizeNode, "sizeNode"); + tree.separation = function(x) { + return arguments.length ? (separation = x, tree) : separation; + }; + tree.size = function(x) { + return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : nodeSize ? null : [dx, dy]; + }; + tree.nodeSize = function(x) { + return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : nodeSize ? [dx, dy] : null; + }; + return tree; + } + __name(tree_default, "default"); + + // node_modules/d3-hierarchy/src/treemap/slice.js + function slice_default(parent, x0, y0, x1, y1) { + var nodes = parent.children, node, i = -1, n = nodes.length, k = parent.value && (y1 - y0) / parent.value; + while (++i < n) { + node = nodes[i], node.x0 = x0, node.x1 = x1; + node.y0 = y0, node.y1 = y0 += node.value * k; + } + } + __name(slice_default, "default"); + + // node_modules/d3-hierarchy/src/treemap/squarify.js + var phi = (1 + Math.sqrt(5)) / 2; + function squarifyRatio(ratio, parent, x0, y0, x1, y1) { + var rows = [], nodes = parent.children, row, nodeValue, i0 = 0, i1 = 0, n = nodes.length, dx, dy, value = parent.value, sumValue, minValue, maxValue, newRatio, minRatio, alpha, beta; + while (i0 < n) { + dx = x1 - x0, dy = y1 - y0; + do + sumValue = nodes[i1++].value; + while (!sumValue && i1 < n); + minValue = maxValue = sumValue; + alpha = Math.max(dy / dx, dx / dy) / (value * ratio); + beta = sumValue * sumValue * alpha; + minRatio = Math.max(maxValue / beta, beta / minValue); + for (; i1 < n; ++i1) { + sumValue += nodeValue = nodes[i1].value; + if (nodeValue < minValue) minValue = nodeValue; + if (nodeValue > maxValue) maxValue = nodeValue; + beta = sumValue * sumValue * alpha; + newRatio = Math.max(maxValue / beta, beta / minValue); + if (newRatio > minRatio) { + sumValue -= nodeValue; + break; + } + minRatio = newRatio; + } + rows.push(row = { value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1) }); + if (row.dice) dice_default(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1); + else slice_default(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1); + value -= sumValue, i0 = i1; + } + return rows; + } + __name(squarifyRatio, "squarifyRatio"); + var squarify_default = (/* @__PURE__ */ __name(function custom(ratio) { + function squarify(parent, x0, y0, x1, y1) { + squarifyRatio(ratio, parent, x0, y0, x1, y1); + } + __name(squarify, "squarify"); + squarify.ratio = function(x) { + return custom((x = +x) > 1 ? x : 1); + }; + return squarify; + }, "custom"))(phi); + + // node_modules/d3-hierarchy/src/treemap/index.js + function treemap_default() { + var tile = squarify_default, round = false, dx = 1, dy = 1, paddingStack = [0], paddingInner = constantZero, paddingTop = constantZero, paddingRight = constantZero, paddingBottom = constantZero, paddingLeft = constantZero; + function treemap(root2) { + root2.x0 = root2.y0 = 0; + root2.x1 = dx; + root2.y1 = dy; + root2.eachBefore(positionNode); + paddingStack = [0]; + if (round) root2.eachBefore(round_default); + return root2; + } + __name(treemap, "treemap"); + function positionNode(node) { + var p = paddingStack[node.depth], x0 = node.x0 + p, y0 = node.y0 + p, x1 = node.x1 - p, y1 = node.y1 - p; + if (x1 < x0) x0 = x1 = (x0 + x1) / 2; + if (y1 < y0) y0 = y1 = (y0 + y1) / 2; + node.x0 = x0; + node.y0 = y0; + node.x1 = x1; + node.y1 = y1; + if (node.children) { + p = paddingStack[node.depth + 1] = paddingInner(node) / 2; + x0 += paddingLeft(node) - p; + y0 += paddingTop(node) - p; + x1 -= paddingRight(node) - p; + y1 -= paddingBottom(node) - p; + if (x1 < x0) x0 = x1 = (x0 + x1) / 2; + if (y1 < y0) y0 = y1 = (y0 + y1) / 2; + tile(node, x0, y0, x1, y1); + } + } + __name(positionNode, "positionNode"); + treemap.round = function(x) { + return arguments.length ? (round = !!x, treemap) : round; + }; + treemap.size = function(x) { + return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy]; + }; + treemap.tile = function(x) { + return arguments.length ? (tile = required(x), treemap) : tile; + }; + treemap.padding = function(x) { + return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner(); + }; + treemap.paddingInner = function(x) { + return arguments.length ? (paddingInner = typeof x === "function" ? x : constant_default(+x), treemap) : paddingInner; + }; + treemap.paddingOuter = function(x) { + return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop(); + }; + treemap.paddingTop = function(x) { + return arguments.length ? (paddingTop = typeof x === "function" ? x : constant_default(+x), treemap) : paddingTop; + }; + treemap.paddingRight = function(x) { + return arguments.length ? (paddingRight = typeof x === "function" ? x : constant_default(+x), treemap) : paddingRight; + }; + treemap.paddingBottom = function(x) { + return arguments.length ? (paddingBottom = typeof x === "function" ? x : constant_default(+x), treemap) : paddingBottom; + }; + treemap.paddingLeft = function(x) { + return arguments.length ? (paddingLeft = typeof x === "function" ? x : constant_default(+x), treemap) : paddingLeft; + }; + return treemap; + } + __name(treemap_default, "default"); + + // node_modules/d3-selection/src/namespaces.js + var xhtml = "http://www.w3.org/1999/xhtml"; + var namespaces_default = { + svg: "http://www.w3.org/2000/svg", + xhtml, + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" + }; + + // node_modules/d3-selection/src/namespace.js + function namespace_default(name) { + var prefix = name += "", i = prefix.indexOf(":"); + if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1); + return namespaces_default.hasOwnProperty(prefix) ? { space: namespaces_default[prefix], local: name } : name; + } + __name(namespace_default, "default"); + + // node_modules/d3-selection/src/creator.js + function creatorInherit(name) { + return function() { + var document2 = this.ownerDocument, uri = this.namespaceURI; + return uri === xhtml && document2.documentElement.namespaceURI === xhtml ? document2.createElement(name) : document2.createElementNS(uri, name); + }; + } + __name(creatorInherit, "creatorInherit"); + function creatorFixed(fullname) { + return function() { + return this.ownerDocument.createElementNS(fullname.space, fullname.local); + }; + } + __name(creatorFixed, "creatorFixed"); + function creator_default(name) { + var fullname = namespace_default(name); + return (fullname.local ? creatorFixed : creatorInherit)(fullname); + } + __name(creator_default, "default"); + + // node_modules/d3-selection/src/selector.js + function none() { + } + __name(none, "none"); + function selector_default(selector) { + return selector == null ? none : function() { + return this.querySelector(selector); + }; + } + __name(selector_default, "default"); + + // node_modules/d3-selection/src/selection/select.js + function select_default(select) { + if (typeof select !== "function") select = selector_default(select); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { + if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { + if ("__data__" in node) subnode.__data__ = node.__data__; + subgroup[i] = subnode; + } + } + } + return new Selection(subgroups, this._parents); + } + __name(select_default, "default"); + + // node_modules/d3-selection/src/array.js + function array(x) { + return x == null ? [] : Array.isArray(x) ? x : Array.from(x); + } + __name(array, "array"); + + // node_modules/d3-selection/src/selectorAll.js + function empty() { + return []; + } + __name(empty, "empty"); + function selectorAll_default(selector) { + return selector == null ? empty : function() { + return this.querySelectorAll(selector); + }; + } + __name(selectorAll_default, "default"); + + // node_modules/d3-selection/src/selection/selectAll.js + function arrayAll(select) { + return function() { + return array(select.apply(this, arguments)); + }; + } + __name(arrayAll, "arrayAll"); + function selectAll_default(select) { + if (typeof select === "function") select = arrayAll(select); + else select = selectorAll_default(select); + for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + subgroups.push(select.call(node, node.__data__, i, group)); + parents.push(node); + } + } + } + return new Selection(subgroups, parents); + } + __name(selectAll_default, "default"); + + // node_modules/d3-selection/src/matcher.js + function matcher_default(selector) { + return function() { + return this.matches(selector); + }; + } + __name(matcher_default, "default"); + function childMatcher(selector) { + return function(node) { + return node.matches(selector); + }; + } + __name(childMatcher, "childMatcher"); + + // node_modules/d3-selection/src/selection/selectChild.js + var find = Array.prototype.find; + function childFind(match) { + return function() { + return find.call(this.children, match); + }; + } + __name(childFind, "childFind"); + function childFirst() { + return this.firstElementChild; + } + __name(childFirst, "childFirst"); + function selectChild_default(match) { + return this.select(match == null ? childFirst : childFind(typeof match === "function" ? match : childMatcher(match))); + } + __name(selectChild_default, "default"); + + // node_modules/d3-selection/src/selection/selectChildren.js + var filter = Array.prototype.filter; + function children() { + return Array.from(this.children); + } + __name(children, "children"); + function childrenFilter(match) { + return function() { + return filter.call(this.children, match); + }; + } + __name(childrenFilter, "childrenFilter"); + function selectChildren_default(match) { + return this.selectAll(match == null ? children : childrenFilter(typeof match === "function" ? match : childMatcher(match))); + } + __name(selectChildren_default, "default"); + + // node_modules/d3-selection/src/selection/filter.js + function filter_default(match) { + if (typeof match !== "function") match = matcher_default(match); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { + if ((node = group[i]) && match.call(node, node.__data__, i, group)) { + subgroup.push(node); + } + } + } + return new Selection(subgroups, this._parents); + } + __name(filter_default, "default"); + + // node_modules/d3-selection/src/selection/sparse.js + function sparse_default(update) { + return new Array(update.length); + } + __name(sparse_default, "default"); + + // node_modules/d3-selection/src/selection/enter.js + function enter_default() { + return new Selection(this._enter || this._groups.map(sparse_default), this._parents); + } + __name(enter_default, "default"); + function EnterNode(parent, datum2) { + this.ownerDocument = parent.ownerDocument; + this.namespaceURI = parent.namespaceURI; + this._next = null; + this._parent = parent; + this.__data__ = datum2; + } + __name(EnterNode, "EnterNode"); + EnterNode.prototype = { + constructor: EnterNode, + appendChild: /* @__PURE__ */ __name(function(child) { + return this._parent.insertBefore(child, this._next); + }, "appendChild"), + insertBefore: /* @__PURE__ */ __name(function(child, next) { + return this._parent.insertBefore(child, next); + }, "insertBefore"), + querySelector: /* @__PURE__ */ __name(function(selector) { + return this._parent.querySelector(selector); + }, "querySelector"), + querySelectorAll: /* @__PURE__ */ __name(function(selector) { + return this._parent.querySelectorAll(selector); + }, "querySelectorAll") + }; + + // node_modules/d3-selection/src/constant.js + function constant_default2(x) { + return function() { + return x; + }; + } + __name(constant_default2, "default"); + + // node_modules/d3-selection/src/selection/data.js + function bindIndex(parent, group, enter, update, exit, data) { + var i = 0, node, groupLength = group.length, dataLength = data.length; + for (; i < dataLength; ++i) { + if (node = group[i]) { + node.__data__ = data[i]; + update[i] = node; + } else { + enter[i] = new EnterNode(parent, data[i]); + } + } + for (; i < groupLength; ++i) { + if (node = group[i]) { + exit[i] = node; + } + } + } + __name(bindIndex, "bindIndex"); + function bindKey(parent, group, enter, update, exit, data, key) { + var i, node, nodeByKeyValue = /* @__PURE__ */ new Map(), groupLength = group.length, dataLength = data.length, keyValues = new Array(groupLength), keyValue; + for (i = 0; i < groupLength; ++i) { + if (node = group[i]) { + keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + ""; + if (nodeByKeyValue.has(keyValue)) { + exit[i] = node; + } else { + nodeByKeyValue.set(keyValue, node); + } + } + } + for (i = 0; i < dataLength; ++i) { + keyValue = key.call(parent, data[i], i, data) + ""; + if (node = nodeByKeyValue.get(keyValue)) { + update[i] = node; + node.__data__ = data[i]; + nodeByKeyValue.delete(keyValue); + } else { + enter[i] = new EnterNode(parent, data[i]); + } + } + for (i = 0; i < groupLength; ++i) { + if ((node = group[i]) && nodeByKeyValue.get(keyValues[i]) === node) { + exit[i] = node; + } + } + } + __name(bindKey, "bindKey"); + function datum(node) { + return node.__data__; + } + __name(datum, "datum"); + function data_default(value, key) { + if (!arguments.length) return Array.from(this, datum); + var bind = key ? bindKey : bindIndex, parents = this._parents, groups = this._groups; + if (typeof value !== "function") value = constant_default2(value); + for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) { + var parent = parents[j], group = groups[j], groupLength = group.length, data = arraylike(value.call(parent, parent && parent.__data__, j, parents)), dataLength = data.length, enterGroup = enter[j] = new Array(dataLength), updateGroup = update[j] = new Array(dataLength), exitGroup = exit[j] = new Array(groupLength); + bind(parent, group, enterGroup, updateGroup, exitGroup, data, key); + for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) { + if (previous = enterGroup[i0]) { + if (i0 >= i1) i1 = i0 + 1; + while (!(next = updateGroup[i1]) && ++i1 < dataLength) ; + previous._next = next || null; + } + } + } + update = new Selection(update, parents); + update._enter = enter; + update._exit = exit; + return update; + } + __name(data_default, "default"); + function arraylike(data) { + return typeof data === "object" && "length" in data ? data : Array.from(data); + } + __name(arraylike, "arraylike"); + + // node_modules/d3-selection/src/selection/exit.js + function exit_default() { + return new Selection(this._exit || this._groups.map(sparse_default), this._parents); + } + __name(exit_default, "default"); + + // node_modules/d3-selection/src/selection/join.js + function join_default(onenter, onupdate, onexit) { + var enter = this.enter(), update = this, exit = this.exit(); + if (typeof onenter === "function") { + enter = onenter(enter); + if (enter) enter = enter.selection(); + } else { + enter = enter.append(onenter + ""); + } + if (onupdate != null) { + update = onupdate(update); + if (update) update = update.selection(); + } + if (onexit == null) exit.remove(); + else onexit(exit); + return enter && update ? enter.merge(update).order() : update; + } + __name(join_default, "default"); + + // node_modules/d3-selection/src/selection/merge.js + function merge_default(context) { + var selection2 = context.selection ? context.selection() : context; + for (var groups0 = this._groups, groups1 = selection2._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { + for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group0[i] || group1[i]) { + merge[i] = node; + } + } + } + for (; j < m0; ++j) { + merges[j] = groups0[j]; + } + return new Selection(merges, this._parents); + } + __name(merge_default, "default"); + + // node_modules/d3-selection/src/selection/order.js + function order_default() { + for (var groups = this._groups, j = -1, m = groups.length; ++j < m; ) { + for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0; ) { + if (node = group[i]) { + if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next); + next = node; + } + } + } + return this; + } + __name(order_default, "default"); + + // node_modules/d3-selection/src/selection/sort.js + function sort_default2(compare) { + if (!compare) compare = ascending; + function compareNode(a, b) { + return a && b ? compare(a.__data__, b.__data__) : !a - !b; + } + __name(compareNode, "compareNode"); + for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group[i]) { + sortgroup[i] = node; + } + } + sortgroup.sort(compareNode); + } + return new Selection(sortgroups, this._parents).order(); + } + __name(sort_default2, "default"); + function ascending(a, b) { + return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; + } + __name(ascending, "ascending"); + + // node_modules/d3-selection/src/selection/call.js + function call_default() { + var callback = arguments[0]; + arguments[0] = this; + callback.apply(null, arguments); + return this; + } + __name(call_default, "default"); + + // node_modules/d3-selection/src/selection/nodes.js + function nodes_default() { + return Array.from(this); + } + __name(nodes_default, "default"); + + // node_modules/d3-selection/src/selection/node.js + function node_default() { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length; i < n; ++i) { + var node = group[i]; + if (node) return node; + } + } + return null; + } + __name(node_default, "default"); + + // node_modules/d3-selection/src/selection/size.js + function size_default() { + let size = 0; + for (const node of this) ++size; + return size; + } + __name(size_default, "default"); + + // node_modules/d3-selection/src/selection/empty.js + function empty_default() { + return !this.node(); + } + __name(empty_default, "default"); + + // node_modules/d3-selection/src/selection/each.js + function each_default2(callback) { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { + if (node = group[i]) callback.call(node, node.__data__, i, group); + } + } + return this; + } + __name(each_default2, "default"); + + // node_modules/d3-selection/src/selection/attr.js + function attrRemove(name) { + return function() { + this.removeAttribute(name); + }; + } + __name(attrRemove, "attrRemove"); + function attrRemoveNS(fullname) { + return function() { + this.removeAttributeNS(fullname.space, fullname.local); + }; + } + __name(attrRemoveNS, "attrRemoveNS"); + function attrConstant(name, value) { + return function() { + this.setAttribute(name, value); + }; + } + __name(attrConstant, "attrConstant"); + function attrConstantNS(fullname, value) { + return function() { + this.setAttributeNS(fullname.space, fullname.local, value); + }; + } + __name(attrConstantNS, "attrConstantNS"); + function attrFunction(name, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) this.removeAttribute(name); + else this.setAttribute(name, v); + }; + } + __name(attrFunction, "attrFunction"); + function attrFunctionNS(fullname, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) this.removeAttributeNS(fullname.space, fullname.local); + else this.setAttributeNS(fullname.space, fullname.local, v); + }; + } + __name(attrFunctionNS, "attrFunctionNS"); + function attr_default(name, value) { + var fullname = namespace_default(name); + if (arguments.length < 2) { + var node = this.node(); + return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname); + } + return this.each((value == null ? fullname.local ? attrRemoveNS : attrRemove : typeof value === "function" ? fullname.local ? attrFunctionNS : attrFunction : fullname.local ? attrConstantNS : attrConstant)(fullname, value)); + } + __name(attr_default, "default"); + + // node_modules/d3-selection/src/window.js + function window_default(node) { + return node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView; + } + __name(window_default, "default"); + + // node_modules/d3-selection/src/selection/style.js + function styleRemove(name) { + return function() { + this.style.removeProperty(name); + }; + } + __name(styleRemove, "styleRemove"); + function styleConstant(name, value, priority) { + return function() { + this.style.setProperty(name, value, priority); + }; + } + __name(styleConstant, "styleConstant"); + function styleFunction(name, value, priority) { + return function() { + var v = value.apply(this, arguments); + if (v == null) this.style.removeProperty(name); + else this.style.setProperty(name, v, priority); + }; + } + __name(styleFunction, "styleFunction"); + function style_default(name, value, priority) { + return arguments.length > 1 ? this.each((value == null ? styleRemove : typeof value === "function" ? styleFunction : styleConstant)(name, value, priority == null ? "" : priority)) : styleValue(this.node(), name); + } + __name(style_default, "default"); + function styleValue(node, name) { + return node.style.getPropertyValue(name) || window_default(node).getComputedStyle(node, null).getPropertyValue(name); + } + __name(styleValue, "styleValue"); + + // node_modules/d3-selection/src/selection/property.js + function propertyRemove(name) { + return function() { + delete this[name]; + }; + } + __name(propertyRemove, "propertyRemove"); + function propertyConstant(name, value) { + return function() { + this[name] = value; + }; + } + __name(propertyConstant, "propertyConstant"); + function propertyFunction(name, value) { + return function() { + var v = value.apply(this, arguments); + if (v == null) delete this[name]; + else this[name] = v; + }; + } + __name(propertyFunction, "propertyFunction"); + function property_default(name, value) { + return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === "function" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name]; + } + __name(property_default, "default"); + + // node_modules/d3-selection/src/selection/classed.js + function classArray(string) { + return string.trim().split(/^|\s+/); + } + __name(classArray, "classArray"); + function classList(node) { + return node.classList || new ClassList(node); + } + __name(classList, "classList"); + function ClassList(node) { + this._node = node; + this._names = classArray(node.getAttribute("class") || ""); + } + __name(ClassList, "ClassList"); + ClassList.prototype = { + add: /* @__PURE__ */ __name(function(name) { + var i = this._names.indexOf(name); + if (i < 0) { + this._names.push(name); + this._node.setAttribute("class", this._names.join(" ")); + } + }, "add"), + remove: /* @__PURE__ */ __name(function(name) { + var i = this._names.indexOf(name); + if (i >= 0) { + this._names.splice(i, 1); + this._node.setAttribute("class", this._names.join(" ")); + } + }, "remove"), + contains: /* @__PURE__ */ __name(function(name) { + return this._names.indexOf(name) >= 0; + }, "contains") + }; + function classedAdd(node, names) { + var list = classList(node), i = -1, n = names.length; + while (++i < n) list.add(names[i]); + } + __name(classedAdd, "classedAdd"); + function classedRemove(node, names) { + var list = classList(node), i = -1, n = names.length; + while (++i < n) list.remove(names[i]); + } + __name(classedRemove, "classedRemove"); + function classedTrue(names) { + return function() { + classedAdd(this, names); + }; + } + __name(classedTrue, "classedTrue"); + function classedFalse(names) { + return function() { + classedRemove(this, names); + }; + } + __name(classedFalse, "classedFalse"); + function classedFunction(names, value) { + return function() { + (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names); + }; + } + __name(classedFunction, "classedFunction"); + function classed_default(name, value) { + var names = classArray(name + ""); + if (arguments.length < 2) { + var list = classList(this.node()), i = -1, n = names.length; + while (++i < n) if (!list.contains(names[i])) return false; + return true; + } + return this.each((typeof value === "function" ? classedFunction : value ? classedTrue : classedFalse)(names, value)); + } + __name(classed_default, "default"); + + // node_modules/d3-selection/src/selection/text.js + function textRemove() { + this.textContent = ""; + } + __name(textRemove, "textRemove"); + function textConstant(value) { + return function() { + this.textContent = value; + }; + } + __name(textConstant, "textConstant"); + function textFunction(value) { + return function() { + var v = value.apply(this, arguments); + this.textContent = v == null ? "" : v; + }; + } + __name(textFunction, "textFunction"); + function text_default(value) { + return arguments.length ? this.each(value == null ? textRemove : (typeof value === "function" ? textFunction : textConstant)(value)) : this.node().textContent; + } + __name(text_default, "default"); + + // node_modules/d3-selection/src/selection/html.js + function htmlRemove() { + this.innerHTML = ""; + } + __name(htmlRemove, "htmlRemove"); + function htmlConstant(value) { + return function() { + this.innerHTML = value; + }; + } + __name(htmlConstant, "htmlConstant"); + function htmlFunction(value) { + return function() { + var v = value.apply(this, arguments); + this.innerHTML = v == null ? "" : v; + }; + } + __name(htmlFunction, "htmlFunction"); + function html_default(value) { + return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === "function" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML; + } + __name(html_default, "default"); + + // node_modules/d3-selection/src/selection/raise.js + function raise() { + if (this.nextSibling) this.parentNode.appendChild(this); + } + __name(raise, "raise"); + function raise_default() { + return this.each(raise); + } + __name(raise_default, "default"); + + // node_modules/d3-selection/src/selection/lower.js + function lower() { + if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild); + } + __name(lower, "lower"); + function lower_default() { + return this.each(lower); + } + __name(lower_default, "default"); + + // node_modules/d3-selection/src/selection/append.js + function append_default(name) { + var create3 = typeof name === "function" ? name : creator_default(name); + return this.select(function() { + return this.appendChild(create3.apply(this, arguments)); + }); + } + __name(append_default, "default"); + + // node_modules/d3-selection/src/selection/insert.js + function constantNull() { + return null; + } + __name(constantNull, "constantNull"); + function insert_default(name, before) { + var create3 = typeof name === "function" ? name : creator_default(name), select = before == null ? constantNull : typeof before === "function" ? before : selector_default(before); + return this.select(function() { + return this.insertBefore(create3.apply(this, arguments), select.apply(this, arguments) || null); + }); + } + __name(insert_default, "default"); + + // node_modules/d3-selection/src/selection/remove.js + function remove() { + var parent = this.parentNode; + if (parent) parent.removeChild(this); + } + __name(remove, "remove"); + function remove_default() { + return this.each(remove); + } + __name(remove_default, "default"); + + // node_modules/d3-selection/src/selection/clone.js + function selection_cloneShallow() { + var clone = this.cloneNode(false), parent = this.parentNode; + return parent ? parent.insertBefore(clone, this.nextSibling) : clone; + } + __name(selection_cloneShallow, "selection_cloneShallow"); + function selection_cloneDeep() { + var clone = this.cloneNode(true), parent = this.parentNode; + return parent ? parent.insertBefore(clone, this.nextSibling) : clone; + } + __name(selection_cloneDeep, "selection_cloneDeep"); + function clone_default(deep) { + return this.select(deep ? selection_cloneDeep : selection_cloneShallow); + } + __name(clone_default, "default"); + + // node_modules/d3-selection/src/selection/datum.js + function datum_default(value) { + return arguments.length ? this.property("__data__", value) : this.node().__data__; + } + __name(datum_default, "default"); + + // node_modules/d3-selection/src/selection/on.js + function contextListener(listener) { + return function(event) { + listener.call(this, event, this.__data__); + }; + } + __name(contextListener, "contextListener"); + function parseTypenames(typenames) { + return typenames.trim().split(/^|\s+/).map(function(t) { + var name = "", i = t.indexOf("."); + if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i); + return { type: t, name }; + }); + } + __name(parseTypenames, "parseTypenames"); + function onRemove(typename) { + return function() { + var on = this.__on; + if (!on) return; + for (var j = 0, i = -1, m = on.length, o; j < m; ++j) { + if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) { + this.removeEventListener(o.type, o.listener, o.options); + } else { + on[++i] = o; + } + } + if (++i) on.length = i; + else delete this.__on; + }; + } + __name(onRemove, "onRemove"); + function onAdd(typename, value, options) { + return function() { + var on = this.__on, o, listener = contextListener(value); + if (on) for (var j = 0, m = on.length; j < m; ++j) { + if ((o = on[j]).type === typename.type && o.name === typename.name) { + this.removeEventListener(o.type, o.listener, o.options); + this.addEventListener(o.type, o.listener = listener, o.options = options); + o.value = value; + return; + } + } + this.addEventListener(typename.type, listener, options); + o = { type: typename.type, name: typename.name, value, listener, options }; + if (!on) this.__on = [o]; + else on.push(o); + }; + } + __name(onAdd, "onAdd"); + function on_default(typename, value, options) { + var typenames = parseTypenames(typename + ""), i, n = typenames.length, t; + if (arguments.length < 2) { + var on = this.node().__on; + if (on) for (var j = 0, m = on.length, o; j < m; ++j) { + for (i = 0, o = on[j]; i < n; ++i) { + if ((t = typenames[i]).type === o.type && t.name === o.name) { + return o.value; + } + } + } + return; + } + on = value ? onAdd : onRemove; + for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options)); + return this; + } + __name(on_default, "default"); + + // node_modules/d3-selection/src/selection/dispatch.js + function dispatchEvent(node, type, params) { + var window2 = window_default(node), event = window2.CustomEvent; + if (typeof event === "function") { + event = new event(type, params); + } else { + event = window2.document.createEvent("Event"); + if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail; + else event.initEvent(type, false, false); + } + node.dispatchEvent(event); + } + __name(dispatchEvent, "dispatchEvent"); + function dispatchConstant(type, params) { + return function() { + return dispatchEvent(this, type, params); + }; + } + __name(dispatchConstant, "dispatchConstant"); + function dispatchFunction(type, params) { + return function() { + return dispatchEvent(this, type, params.apply(this, arguments)); + }; + } + __name(dispatchFunction, "dispatchFunction"); + function dispatch_default(type, params) { + return this.each((typeof params === "function" ? dispatchFunction : dispatchConstant)(type, params)); + } + __name(dispatch_default, "default"); + + // node_modules/d3-selection/src/selection/iterator.js + function* iterator_default2() { + for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) { + for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) { + if (node = group[i]) yield node; + } + } + } + __name(iterator_default2, "default"); + + // node_modules/d3-selection/src/selection/index.js + var root = [null]; + function Selection(groups, parents) { + this._groups = groups; + this._parents = parents; + } + __name(Selection, "Selection"); + function selection() { + return new Selection([[document.documentElement]], root); + } + __name(selection, "selection"); + function selection_selection() { + return this; + } + __name(selection_selection, "selection_selection"); + Selection.prototype = selection.prototype = { + constructor: Selection, + select: select_default, + selectAll: selectAll_default, + selectChild: selectChild_default, + selectChildren: selectChildren_default, + filter: filter_default, + data: data_default, + enter: enter_default, + exit: exit_default, + join: join_default, + merge: merge_default, + selection: selection_selection, + order: order_default, + sort: sort_default2, + call: call_default, + nodes: nodes_default, + node: node_default, + size: size_default, + empty: empty_default, + each: each_default2, + attr: attr_default, + style: style_default, + property: property_default, + classed: classed_default, + text: text_default, + html: html_default, + raise: raise_default, + lower: lower_default, + append: append_default, + insert: insert_default, + remove: remove_default, + clone: clone_default, + datum: datum_default, + on: on_default, + dispatch: dispatch_default, + [Symbol.iterator]: iterator_default2 + }; + var selection_default = selection; + + // node_modules/d3-selection/src/select.js + function select_default2(selector) { + return typeof selector === "string" ? new Selection([[document.querySelector(selector)]], [document.documentElement]) : new Selection([[selector]], root); + } + __name(select_default2, "default"); + + // node_modules/d3-selection/src/sourceEvent.js + function sourceEvent_default(event) { + let sourceEvent; + while (sourceEvent = event.sourceEvent) event = sourceEvent; + return event; + } + __name(sourceEvent_default, "default"); + + // node_modules/d3-selection/src/pointer.js + function pointer_default(event, node) { + event = sourceEvent_default(event); + if (node === void 0) node = event.currentTarget; + if (node) { + var svg = node.ownerSVGElement || node; + if (svg.createSVGPoint) { + var point = svg.createSVGPoint(); + point.x = event.clientX, point.y = event.clientY; + point = point.matrixTransform(node.getScreenCTM().inverse()); + return [point.x, point.y]; + } + if (node.getBoundingClientRect) { + var rect = node.getBoundingClientRect(); + return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop]; + } + } + return [event.pageX, event.pageY]; + } + __name(pointer_default, "default"); + + // node_modules/d3-selection/src/selectAll.js + function selectAll_default2(selector) { + return typeof selector === "string" ? new Selection([document.querySelectorAll(selector)], [document.documentElement]) : new Selection([array(selector)], root); + } + __name(selectAll_default2, "default"); + + // node_modules/d3-dispatch/src/dispatch.js + var noop = { value: /* @__PURE__ */ __name(() => { + }, "value") }; + function dispatch() { + for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) { + if (!(t = arguments[i] + "") || t in _ || /[\s.]/.test(t)) throw new Error("illegal type: " + t); + _[t] = []; + } + return new Dispatch(_); + } + __name(dispatch, "dispatch"); + function Dispatch(_) { + this._ = _; + } + __name(Dispatch, "Dispatch"); + function parseTypenames2(typenames, types) { + return typenames.trim().split(/^|\s+/).map(function(t) { + var name = "", i = t.indexOf("."); + if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i); + if (t && !types.hasOwnProperty(t)) throw new Error("unknown type: " + t); + return { type: t, name }; + }); + } + __name(parseTypenames2, "parseTypenames"); + Dispatch.prototype = dispatch.prototype = { + constructor: Dispatch, + on: /* @__PURE__ */ __name(function(typename, callback) { + var _ = this._, T = parseTypenames2(typename + "", _), t, i = -1, n = T.length; + if (arguments.length < 2) { + while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t; + return; + } + if (callback != null && typeof callback !== "function") throw new Error("invalid callback: " + callback); + while (++i < n) { + if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback); + else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null); + } + return this; + }, "on"), + copy: /* @__PURE__ */ __name(function() { + var copy = {}, _ = this._; + for (var t in _) copy[t] = _[t].slice(); + return new Dispatch(copy); + }, "copy"), + call: /* @__PURE__ */ __name(function(type, that) { + if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2]; + if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type); + for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args); + }, "call"), + apply: /* @__PURE__ */ __name(function(type, that, args) { + if (!this._.hasOwnProperty(type)) throw new Error("unknown type: " + type); + for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args); + }, "apply") + }; + function get(type, name) { + for (var i = 0, n = type.length, c; i < n; ++i) { + if ((c = type[i]).name === name) { + return c.value; + } + } + } + __name(get, "get"); + function set(type, name, callback) { + for (var i = 0, n = type.length; i < n; ++i) { + if (type[i].name === name) { + type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1)); + break; + } + } + if (callback != null) type.push({ name, value: callback }); + return type; + } + __name(set, "set"); + var dispatch_default2 = dispatch; + + // node_modules/d3-drag/src/noevent.js + var nonpassivecapture = { capture: true, passive: false }; + function noevent_default(event) { + event.preventDefault(); + event.stopImmediatePropagation(); + } + __name(noevent_default, "default"); + + // node_modules/d3-drag/src/nodrag.js + function nodrag_default(view) { + var root2 = view.document.documentElement, selection2 = select_default2(view).on("dragstart.drag", noevent_default, nonpassivecapture); + if ("onselectstart" in root2) { + selection2.on("selectstart.drag", noevent_default, nonpassivecapture); + } else { + root2.__noselect = root2.style.MozUserSelect; + root2.style.MozUserSelect = "none"; + } + } + __name(nodrag_default, "default"); + function yesdrag(view, noclick) { + var root2 = view.document.documentElement, selection2 = select_default2(view).on("dragstart.drag", null); + if (noclick) { + selection2.on("click.drag", noevent_default, nonpassivecapture); + setTimeout(function() { + selection2.on("click.drag", null); + }, 0); + } + if ("onselectstart" in root2) { + selection2.on("selectstart.drag", null); + } else { + root2.style.MozUserSelect = root2.__noselect; + delete root2.__noselect; + } + } + __name(yesdrag, "yesdrag"); + + // node_modules/d3-color/src/define.js + function define_default(constructor, factory, prototype) { + constructor.prototype = factory.prototype = prototype; + prototype.constructor = constructor; + } + __name(define_default, "default"); + function extend(parent, definition) { + var prototype = Object.create(parent.prototype); + for (var key in definition) prototype[key] = definition[key]; + return prototype; + } + __name(extend, "extend"); + + // node_modules/d3-color/src/color.js + function Color() { + } + __name(Color, "Color"); + var darker = 0.7; + var brighter = 1 / darker; + var reI = "\\s*([+-]?\\d+)\\s*"; + var reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*"; + var reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*"; + var reHex = /^#([0-9a-f]{3,8})$/; + var reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`); + var reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`); + var reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`); + var reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`); + var reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`); + var reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`); + var named = { + 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 + }; + define_default(Color, color, { + copy(channels) { + return Object.assign(new this.constructor(), this, channels); + }, + displayable() { + return this.rgb().displayable(); + }, + hex: color_formatHex, + // Deprecated! Use color.formatHex. + formatHex: color_formatHex, + formatHex8: color_formatHex8, + formatHsl: color_formatHsl, + formatRgb: color_formatRgb, + toString: color_formatRgb + }); + function color_formatHex() { + return this.rgb().formatHex(); + } + __name(color_formatHex, "color_formatHex"); + function color_formatHex8() { + return this.rgb().formatHex8(); + } + __name(color_formatHex8, "color_formatHex8"); + function color_formatHsl() { + return hslConvert(this).formatHsl(); + } + __name(color_formatHsl, "color_formatHsl"); + function color_formatRgb() { + return this.rgb().formatRgb(); + } + __name(color_formatRgb, "color_formatRgb"); + function color(format) { + var m, l; + format = (format + "").trim().toLowerCase(); + return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) : l === 3 ? new Rgb(m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, (m & 15) << 4 | m & 15, 1) : l === 8 ? rgba(m >> 24 & 255, m >> 16 & 255, m >> 8 & 255, (m & 255) / 255) : l === 4 ? rgba(m >> 12 & 15 | m >> 8 & 240, m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, ((m & 15) << 4 | m & 15) / 255) : null) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) : named.hasOwnProperty(format) ? rgbn(named[format]) : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0) : null; + } + __name(color, "color"); + function rgbn(n) { + return new Rgb(n >> 16 & 255, n >> 8 & 255, n & 255, 1); + } + __name(rgbn, "rgbn"); + function rgba(r, g, b, a) { + if (a <= 0) r = g = b = NaN; + return new Rgb(r, g, b, a); + } + __name(rgba, "rgba"); + function rgbConvert(o) { + if (!(o instanceof Color)) o = color(o); + if (!o) return new Rgb(); + o = o.rgb(); + return new Rgb(o.r, o.g, o.b, o.opacity); + } + __name(rgbConvert, "rgbConvert"); + function rgb(r, g, b, opacity) { + return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity); + } + __name(rgb, "rgb"); + function Rgb(r, g, b, opacity) { + this.r = +r; + this.g = +g; + this.b = +b; + this.opacity = +opacity; + } + __name(Rgb, "Rgb"); + define_default(Rgb, rgb, extend(Color, { + brighter(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); + }, + darker(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); + }, + rgb() { + return this; + }, + clamp() { + return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(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: rgb_formatHex, + // Deprecated! Use color.formatHex. + formatHex: rgb_formatHex, + formatHex8: rgb_formatHex8, + formatRgb: rgb_formatRgb, + toString: rgb_formatRgb + })); + function rgb_formatHex() { + return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`; + } + __name(rgb_formatHex, "rgb_formatHex"); + function rgb_formatHex8() { + return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`; + } + __name(rgb_formatHex8, "rgb_formatHex8"); + function rgb_formatRgb() { + const a = clampa(this.opacity); + return `${a === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? ")" : `, ${a})`}`; + } + __name(rgb_formatRgb, "rgb_formatRgb"); + function clampa(opacity) { + return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity)); + } + __name(clampa, "clampa"); + function clampi(value) { + return Math.max(0, Math.min(255, Math.round(value) || 0)); + } + __name(clampi, "clampi"); + function hex(value) { + value = clampi(value); + return (value < 16 ? "0" : "") + value.toString(16); + } + __name(hex, "hex"); + function hsla(h, s, l, a) { + if (a <= 0) h = s = l = NaN; + else if (l <= 0 || l >= 1) h = s = NaN; + else if (s <= 0) h = NaN; + return new Hsl(h, s, l, a); + } + __name(hsla, "hsla"); + function hslConvert(o) { + if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity); + if (!(o instanceof Color)) o = color(o); + if (!o) return new Hsl(); + if (o instanceof Hsl) return o; + o = o.rgb(); + var r = o.r / 255, g = o.g / 255, b = o.b / 255, min = Math.min(r, g, b), max = Math.max(r, g, b), h = NaN, s = max - min, l = (max + min) / 2; + if (s) { + if (r === max) h = (g - b) / s + (g < b) * 6; + else if (g === max) h = (b - r) / s + 2; + else h = (r - g) / s + 4; + s /= l < 0.5 ? max + min : 2 - max - min; + h *= 60; + } else { + s = l > 0 && l < 1 ? 0 : h; + } + return new Hsl(h, s, l, o.opacity); + } + __name(hslConvert, "hslConvert"); + function hsl(h, s, l, opacity) { + return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity); + } + __name(hsl, "hsl"); + function Hsl(h, s, l, opacity) { + this.h = +h; + this.s = +s; + this.l = +l; + this.opacity = +opacity; + } + __name(Hsl, "Hsl"); + define_default(Hsl, hsl, extend(Color, { + brighter(k) { + k = k == null ? brighter : Math.pow(brighter, k); + return new Hsl(this.h, this.s, this.l * k, this.opacity); + }, + darker(k) { + k = k == null ? darker : Math.pow(darker, k); + return new Hsl(this.h, this.s, this.l * k, this.opacity); + }, + rgb() { + var h = this.h % 360 + (this.h < 0) * 360, s = isNaN(h) || isNaN(this.s) ? 0 : this.s, l = this.l, m2 = l + (l < 0.5 ? l : 1 - l) * s, m1 = 2 * l - m2; + return new Rgb( + hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), + hsl2rgb(h, m1, m2), + hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), + this.opacity + ); + }, + clamp() { + return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(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 a = clampa(this.opacity); + return `${a === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? ")" : `, ${a})`}`; + } + })); + function clamph(value) { + value = (value || 0) % 360; + return value < 0 ? value + 360 : value; + } + __name(clamph, "clamph"); + function clampt(value) { + return Math.max(0, Math.min(1, value || 0)); + } + __name(clampt, "clampt"); + function hsl2rgb(h, m1, m2) { + return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255; + } + __name(hsl2rgb, "hsl2rgb"); + + // node_modules/d3-interpolate/src/basis.js + function basis(t1, v0, v1, v2, v3) { + var t2 = t1 * t1, t3 = t2 * t1; + return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v1 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v3) / 6; + } + __name(basis, "basis"); + function basis_default(values) { + var n = values.length - 1; + return function(t) { + var i = t <= 0 ? t = 0 : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n), v1 = values[i], v2 = values[i + 1], v0 = i > 0 ? values[i - 1] : 2 * v1 - v2, v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1; + return basis((t - i / n) * n, v0, v1, v2, v3); + }; + } + __name(basis_default, "default"); + + // node_modules/d3-interpolate/src/basisClosed.js + function basisClosed_default(values) { + var n = values.length; + return function(t) { + var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n), v0 = values[(i + n - 1) % n], v1 = values[i % n], v2 = values[(i + 1) % n], v3 = values[(i + 2) % n]; + return basis((t - i / n) * n, v0, v1, v2, v3); + }; + } + __name(basisClosed_default, "default"); + + // node_modules/d3-interpolate/src/constant.js + var constant_default3 = /* @__PURE__ */ __name((x) => () => x, "default"); + + // node_modules/d3-interpolate/src/color.js + function linear(a, d) { + return function(t) { + return a + t * d; + }; + } + __name(linear, "linear"); + function exponential(a, b, y) { + return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) { + return Math.pow(a + t * b, y); + }; + } + __name(exponential, "exponential"); + function gamma(y) { + return (y = +y) === 1 ? nogamma : function(a, b) { + return b - a ? exponential(a, b, y) : constant_default3(isNaN(a) ? b : a); + }; + } + __name(gamma, "gamma"); + function nogamma(a, b) { + var d = b - a; + return d ? linear(a, d) : constant_default3(isNaN(a) ? b : a); + } + __name(nogamma, "nogamma"); + + // node_modules/d3-interpolate/src/rgb.js + var rgb_default = (/* @__PURE__ */ __name(function rgbGamma(y) { + var color2 = gamma(y); + function rgb2(start2, end) { + var r = color2((start2 = rgb(start2)).r, (end = rgb(end)).r), g = color2(start2.g, end.g), b = color2(start2.b, end.b), opacity = nogamma(start2.opacity, end.opacity); + return function(t) { + start2.r = r(t); + start2.g = g(t); + start2.b = b(t); + start2.opacity = opacity(t); + return start2 + ""; + }; + } + __name(rgb2, "rgb"); + rgb2.gamma = rgbGamma; + return rgb2; + }, "rgbGamma"))(1); + function rgbSpline(spline) { + return function(colors) { + var n = colors.length, r = new Array(n), g = new Array(n), b = new Array(n), i, color2; + for (i = 0; i < n; ++i) { + color2 = rgb(colors[i]); + r[i] = color2.r || 0; + g[i] = color2.g || 0; + b[i] = color2.b || 0; + } + r = spline(r); + g = spline(g); + b = spline(b); + color2.opacity = 1; + return function(t) { + color2.r = r(t); + color2.g = g(t); + color2.b = b(t); + return color2 + ""; + }; + }; + } + __name(rgbSpline, "rgbSpline"); + var rgbBasis = rgbSpline(basis_default); + var rgbBasisClosed = rgbSpline(basisClosed_default); + + // node_modules/d3-interpolate/src/number.js + function number_default(a, b) { + return a = +a, b = +b, function(t) { + return a * (1 - t) + b * t; + }; + } + __name(number_default, "default"); + + // node_modules/d3-interpolate/src/string.js + var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g; + var reB = new RegExp(reA.source, "g"); + function zero(b) { + return function() { + return b; + }; + } + __name(zero, "zero"); + function one(b) { + return function(t) { + return b(t) + ""; + }; + } + __name(one, "one"); + function string_default(a, b) { + var bi = reA.lastIndex = reB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = []; + a = a + "", b = b + ""; + while ((am = reA.exec(a)) && (bm = reB.exec(b))) { + if ((bs = bm.index) > bi) { + bs = b.slice(bi, bs); + if (s[i]) s[i] += bs; + else s[++i] = bs; + } + if ((am = am[0]) === (bm = bm[0])) { + if (s[i]) s[i] += bm; + else s[++i] = bm; + } else { + s[++i] = null; + q.push({ i, x: number_default(am, bm) }); + } + bi = reB.lastIndex; + } + if (bi < b.length) { + bs = b.slice(bi); + if (s[i]) s[i] += bs; + else s[++i] = bs; + } + return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function(t) { + for (var i2 = 0, o; i2 < b; ++i2) s[(o = q[i2]).i] = o.x(t); + return s.join(""); + }); + } + __name(string_default, "default"); + + // node_modules/d3-interpolate/src/transform/decompose.js + var degrees = 180 / Math.PI; + var identity = { + translateX: 0, + translateY: 0, + rotate: 0, + skewX: 0, + scaleX: 1, + scaleY: 1 + }; + function decompose_default(a, b, c, d, e, f) { + var scaleX, scaleY, skewX; + if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX; + if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX; + if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY; + if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX; + return { + translateX: e, + translateY: f, + rotate: Math.atan2(b, a) * degrees, + skewX: Math.atan(skewX) * degrees, + scaleX, + scaleY + }; + } + __name(decompose_default, "default"); + + // node_modules/d3-interpolate/src/transform/parse.js + var svgNode; + function parseCss(value) { + const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + ""); + return m.isIdentity ? identity : decompose_default(m.a, m.b, m.c, m.d, m.e, m.f); + } + __name(parseCss, "parseCss"); + function parseSvg(value) { + if (value == null) return identity; + if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g"); + svgNode.setAttribute("transform", value); + if (!(value = svgNode.transform.baseVal.consolidate())) return identity; + value = value.matrix; + return decompose_default(value.a, value.b, value.c, value.d, value.e, value.f); + } + __name(parseSvg, "parseSvg"); + + // node_modules/d3-interpolate/src/transform/index.js + function interpolateTransform(parse, pxComma, pxParen, degParen) { + function pop(s) { + return s.length ? s.pop() + " " : ""; + } + __name(pop, "pop"); + function translate(xa, ya, xb, yb, s, q) { + if (xa !== xb || ya !== yb) { + var i = s.push("translate(", null, pxComma, null, pxParen); + q.push({ i: i - 4, x: number_default(xa, xb) }, { i: i - 2, x: number_default(ya, yb) }); + } else if (xb || yb) { + s.push("translate(" + xb + pxComma + yb + pxParen); + } + } + __name(translate, "translate"); + function rotate(a, b, s, q) { + if (a !== b) { + if (a - b > 180) b += 360; + else if (b - a > 180) a += 360; + q.push({ i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: number_default(a, b) }); + } else if (b) { + s.push(pop(s) + "rotate(" + b + degParen); + } + } + __name(rotate, "rotate"); + function skewX(a, b, s, q) { + if (a !== b) { + q.push({ i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: number_default(a, b) }); + } else if (b) { + s.push(pop(s) + "skewX(" + b + degParen); + } + } + __name(skewX, "skewX"); + function scale(xa, ya, xb, yb, s, q) { + if (xa !== xb || ya !== yb) { + var i = s.push(pop(s) + "scale(", null, ",", null, ")"); + q.push({ i: i - 4, x: number_default(xa, xb) }, { i: i - 2, x: number_default(ya, yb) }); + } else if (xb !== 1 || yb !== 1) { + s.push(pop(s) + "scale(" + xb + "," + yb + ")"); + } + } + __name(scale, "scale"); + return function(a, b) { + var s = [], q = []; + a = parse(a), b = parse(b); + translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q); + rotate(a.rotate, b.rotate, s, q); + skewX(a.skewX, b.skewX, s, q); + scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q); + a = b = null; + return function(t) { + var i = -1, n = q.length, o; + while (++i < n) s[(o = q[i]).i] = o.x(t); + return s.join(""); + }; + }; + } + __name(interpolateTransform, "interpolateTransform"); + var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)"); + var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")"); + + // node_modules/d3-interpolate/src/zoom.js + var epsilon2 = 1e-12; + function cosh(x) { + return ((x = Math.exp(x)) + 1 / x) / 2; + } + __name(cosh, "cosh"); + function sinh(x) { + return ((x = Math.exp(x)) - 1 / x) / 2; + } + __name(sinh, "sinh"); + function tanh(x) { + return ((x = Math.exp(2 * x)) - 1) / (x + 1); + } + __name(tanh, "tanh"); + var zoom_default = (/* @__PURE__ */ __name(function zoomRho(rho, rho2, rho4) { + function zoom(p0, p1) { + var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S; + if (d2 < epsilon2) { + S = Math.log(w1 / w0) / rho; + i = /* @__PURE__ */ __name(function(t) { + return [ + ux0 + t * dx, + uy0 + t * dy, + w0 * Math.exp(rho * t * S) + ]; + }, "i"); + } else { + var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1), b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1); + S = (r1 - r0) / rho; + i = /* @__PURE__ */ __name(function(t) { + var s = t * S, coshr0 = cosh(r0), u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0)); + return [ + ux0 + u * dx, + uy0 + u * dy, + w0 * coshr0 / cosh(rho * s + r0) + ]; + }, "i"); + } + i.duration = S * 1e3 * rho / Math.SQRT2; + return i; + } + __name(zoom, "zoom"); + zoom.rho = function(_) { + var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2; + return zoomRho(_1, _2, _4); + }; + return zoom; + }, "zoomRho"))(Math.SQRT2, 2, 4); + + // node_modules/d3-timer/src/timer.js + var frame = 0; + var timeout = 0; + var interval = 0; + var pokeDelay = 1e3; + var taskHead; + var taskTail; + var clockLast = 0; + var clockNow = 0; + var clockSkew = 0; + var clock = typeof performance === "object" && performance.now ? performance : Date; + var setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { + setTimeout(f, 17); + }; + function now() { + return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew); + } + __name(now, "now"); + function clearNow() { + clockNow = 0; + } + __name(clearNow, "clearNow"); + function Timer() { + this._call = this._time = this._next = null; + } + __name(Timer, "Timer"); + Timer.prototype = timer.prototype = { + constructor: Timer, + restart: /* @__PURE__ */ __name(function(callback, delay, time) { + if (typeof callback !== "function") throw new TypeError("callback is not a function"); + time = (time == null ? now() : +time) + (delay == null ? 0 : +delay); + if (!this._next && taskTail !== this) { + if (taskTail) taskTail._next = this; + else taskHead = this; + taskTail = this; + } + this._call = callback; + this._time = time; + sleep(); + }, "restart"), + stop: /* @__PURE__ */ __name(function() { + if (this._call) { + this._call = null; + this._time = Infinity; + sleep(); + } + }, "stop") + }; + function timer(callback, delay, time) { + var t = new Timer(); + t.restart(callback, delay, time); + return t; + } + __name(timer, "timer"); + function timerFlush() { + now(); + ++frame; + var t = taskHead, e; + while (t) { + if ((e = clockNow - t._time) >= 0) t._call.call(void 0, e); + t = t._next; + } + --frame; + } + __name(timerFlush, "timerFlush"); + function wake() { + clockNow = (clockLast = clock.now()) + clockSkew; + frame = timeout = 0; + try { + timerFlush(); + } finally { + frame = 0; + nap(); + clockNow = 0; + } + } + __name(wake, "wake"); + function poke() { + var now2 = clock.now(), delay = now2 - clockLast; + if (delay > pokeDelay) clockSkew -= delay, clockLast = now2; + } + __name(poke, "poke"); + function nap() { + var t0, t1 = taskHead, t2, time = Infinity; + while (t1) { + if (t1._call) { + if (time > t1._time) time = t1._time; + t0 = t1, t1 = t1._next; + } else { + t2 = t1._next, t1._next = null; + t1 = t0 ? t0._next = t2 : taskHead = t2; + } + } + taskTail = t0; + sleep(time); + } + __name(nap, "nap"); + function sleep(time) { + if (frame) return; + if (timeout) timeout = clearTimeout(timeout); + var delay = time - clockNow; + if (delay > 24) { + if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew); + if (interval) interval = clearInterval(interval); + } else { + if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay); + frame = 1, setFrame(wake); + } + } + __name(sleep, "sleep"); + + // node_modules/d3-timer/src/timeout.js + function timeout_default(callback, delay, time) { + var t = new Timer(); + delay = delay == null ? 0 : +delay; + t.restart((elapsed) => { + t.stop(); + callback(elapsed + delay); + }, delay, time); + return t; + } + __name(timeout_default, "default"); + + // node_modules/d3-transition/src/transition/schedule.js + var emptyOn = dispatch_default2("start", "end", "cancel", "interrupt"); + var emptyTween = []; + var CREATED = 0; + var SCHEDULED = 1; + var STARTING = 2; + var STARTED = 3; + var RUNNING = 4; + var ENDING = 5; + var ENDED = 6; + function schedule_default(node, name, id2, index, group, timing) { + var schedules = node.__transition; + if (!schedules) node.__transition = {}; + else if (id2 in schedules) return; + create(node, id2, { + name, + index, + // For context during callback. + group, + // For context during callback. + on: emptyOn, + tween: emptyTween, + time: timing.time, + delay: timing.delay, + duration: timing.duration, + ease: timing.ease, + timer: null, + state: CREATED + }); + } + __name(schedule_default, "default"); + function init(node, id2) { + var schedule = get2(node, id2); + if (schedule.state > CREATED) throw new Error("too late; already scheduled"); + return schedule; + } + __name(init, "init"); + function set2(node, id2) { + var schedule = get2(node, id2); + if (schedule.state > STARTED) throw new Error("too late; already running"); + return schedule; + } + __name(set2, "set"); + function get2(node, id2) { + var schedule = node.__transition; + if (!schedule || !(schedule = schedule[id2])) throw new Error("transition not found"); + return schedule; + } + __name(get2, "get"); + function create(node, id2, self) { + var schedules = node.__transition, tween; + schedules[id2] = self; + self.timer = timer(schedule, 0, self.time); + function schedule(elapsed) { + self.state = SCHEDULED; + self.timer.restart(start2, self.delay, self.time); + if (self.delay <= elapsed) start2(elapsed - self.delay); + } + __name(schedule, "schedule"); + function start2(elapsed) { + var i, j, n, o; + if (self.state !== SCHEDULED) return stop(); + for (i in schedules) { + o = schedules[i]; + if (o.name !== self.name) continue; + if (o.state === STARTED) return timeout_default(start2); + if (o.state === RUNNING) { + o.state = ENDED; + o.timer.stop(); + o.on.call("interrupt", node, node.__data__, o.index, o.group); + delete schedules[i]; + } else if (+i < id2) { + o.state = ENDED; + o.timer.stop(); + o.on.call("cancel", node, node.__data__, o.index, o.group); + delete schedules[i]; + } + } + timeout_default(function() { + if (self.state === STARTED) { + self.state = RUNNING; + self.timer.restart(tick, self.delay, self.time); + tick(elapsed); + } + }); + self.state = STARTING; + self.on.call("start", node, node.__data__, self.index, self.group); + if (self.state !== STARTING) return; + self.state = STARTED; + tween = new Array(n = self.tween.length); + for (i = 0, j = -1; i < n; ++i) { + if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) { + tween[++j] = o; + } + } + tween.length = j + 1; + } + __name(start2, "start"); + function tick(elapsed) { + var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1), i = -1, n = tween.length; + while (++i < n) { + tween[i].call(node, t); + } + if (self.state === ENDING) { + self.on.call("end", node, node.__data__, self.index, self.group); + stop(); + } + } + __name(tick, "tick"); + function stop() { + self.state = ENDED; + self.timer.stop(); + delete schedules[id2]; + for (var i in schedules) return; + delete node.__transition; + } + __name(stop, "stop"); + } + __name(create, "create"); + + // node_modules/d3-transition/src/interrupt.js + function interrupt_default(node, name) { + var schedules = node.__transition, schedule, active, empty2 = true, i; + if (!schedules) return; + name = name == null ? null : name + ""; + for (i in schedules) { + if ((schedule = schedules[i]).name !== name) { + empty2 = false; + continue; + } + active = schedule.state > STARTING && schedule.state < ENDING; + schedule.state = ENDED; + schedule.timer.stop(); + schedule.on.call(active ? "interrupt" : "cancel", node, node.__data__, schedule.index, schedule.group); + delete schedules[i]; + } + if (empty2) delete node.__transition; + } + __name(interrupt_default, "default"); + + // node_modules/d3-transition/src/selection/interrupt.js + function interrupt_default2(name) { + return this.each(function() { + interrupt_default(this, name); + }); + } + __name(interrupt_default2, "default"); + + // node_modules/d3-transition/src/transition/tween.js + function tweenRemove(id2, name) { + var tween0, tween1; + return function() { + var schedule = set2(this, id2), tween = schedule.tween; + if (tween !== tween0) { + tween1 = tween0 = tween; + for (var i = 0, n = tween1.length; i < n; ++i) { + if (tween1[i].name === name) { + tween1 = tween1.slice(); + tween1.splice(i, 1); + break; + } + } + } + schedule.tween = tween1; + }; + } + __name(tweenRemove, "tweenRemove"); + function tweenFunction(id2, name, value) { + var tween0, tween1; + if (typeof value !== "function") throw new Error(); + return function() { + var schedule = set2(this, id2), tween = schedule.tween; + if (tween !== tween0) { + tween1 = (tween0 = tween).slice(); + for (var t = { name, value }, i = 0, n = tween1.length; i < n; ++i) { + if (tween1[i].name === name) { + tween1[i] = t; + break; + } + } + if (i === n) tween1.push(t); + } + schedule.tween = tween1; + }; + } + __name(tweenFunction, "tweenFunction"); + function tween_default(name, value) { + var id2 = this._id; + name += ""; + if (arguments.length < 2) { + var tween = get2(this.node(), id2).tween; + for (var i = 0, n = tween.length, t; i < n; ++i) { + if ((t = tween[i]).name === name) { + return t.value; + } + } + return null; + } + return this.each((value == null ? tweenRemove : tweenFunction)(id2, name, value)); + } + __name(tween_default, "default"); + function tweenValue(transition2, name, value) { + var id2 = transition2._id; + transition2.each(function() { + var schedule = set2(this, id2); + (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments); + }); + return function(node) { + return get2(node, id2).value[name]; + }; + } + __name(tweenValue, "tweenValue"); + + // node_modules/d3-transition/src/transition/interpolate.js + function interpolate_default(a, b) { + var c; + return (typeof b === "number" ? number_default : b instanceof color ? rgb_default : (c = color(b)) ? (b = c, rgb_default) : string_default)(a, b); + } + __name(interpolate_default, "default"); + + // node_modules/d3-transition/src/transition/attr.js + function attrRemove2(name) { + return function() { + this.removeAttribute(name); + }; + } + __name(attrRemove2, "attrRemove"); + function attrRemoveNS2(fullname) { + return function() { + this.removeAttributeNS(fullname.space, fullname.local); + }; + } + __name(attrRemoveNS2, "attrRemoveNS"); + function attrConstant2(name, interpolate, value1) { + var string00, string1 = value1 + "", interpolate0; + return function() { + var string0 = this.getAttribute(name); + return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1); + }; + } + __name(attrConstant2, "attrConstant"); + function attrConstantNS2(fullname, interpolate, value1) { + var string00, string1 = value1 + "", interpolate0; + return function() { + var string0 = this.getAttributeNS(fullname.space, fullname.local); + return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1); + }; + } + __name(attrConstantNS2, "attrConstantNS"); + function attrFunction2(name, interpolate, value) { + var string00, string10, interpolate0; + return function() { + var string0, value1 = value(this), string1; + if (value1 == null) return void this.removeAttribute(name); + string0 = this.getAttribute(name); + string1 = value1 + ""; + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1)); + }; + } + __name(attrFunction2, "attrFunction"); + function attrFunctionNS2(fullname, interpolate, value) { + var string00, string10, interpolate0; + return function() { + var string0, value1 = value(this), string1; + if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local); + string0 = this.getAttributeNS(fullname.space, fullname.local); + string1 = value1 + ""; + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1)); + }; + } + __name(attrFunctionNS2, "attrFunctionNS"); + function attr_default2(name, value) { + var fullname = namespace_default(name), i = fullname === "transform" ? interpolateTransformSvg : interpolate_default; + return this.attrTween(name, typeof value === "function" ? (fullname.local ? attrFunctionNS2 : attrFunction2)(fullname, i, tweenValue(this, "attr." + name, value)) : value == null ? (fullname.local ? attrRemoveNS2 : attrRemove2)(fullname) : (fullname.local ? attrConstantNS2 : attrConstant2)(fullname, i, value)); + } + __name(attr_default2, "default"); + + // node_modules/d3-transition/src/transition/attrTween.js + function attrInterpolate(name, i) { + return function(t) { + this.setAttribute(name, i.call(this, t)); + }; + } + __name(attrInterpolate, "attrInterpolate"); + function attrInterpolateNS(fullname, i) { + return function(t) { + this.setAttributeNS(fullname.space, fullname.local, i.call(this, t)); + }; + } + __name(attrInterpolateNS, "attrInterpolateNS"); + function attrTweenNS(fullname, value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i); + return t0; + } + __name(tween, "tween"); + tween._value = value; + return tween; + } + __name(attrTweenNS, "attrTweenNS"); + function attrTween(name, value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i); + return t0; + } + __name(tween, "tween"); + tween._value = value; + return tween; + } + __name(attrTween, "attrTween"); + function attrTween_default(name, value) { + var key = "attr." + name; + if (arguments.length < 2) return (key = this.tween(key)) && key._value; + if (value == null) return this.tween(key, null); + if (typeof value !== "function") throw new Error(); + var fullname = namespace_default(name); + return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value)); + } + __name(attrTween_default, "default"); + + // node_modules/d3-transition/src/transition/delay.js + function delayFunction(id2, value) { + return function() { + init(this, id2).delay = +value.apply(this, arguments); + }; + } + __name(delayFunction, "delayFunction"); + function delayConstant(id2, value) { + return value = +value, function() { + init(this, id2).delay = value; + }; + } + __name(delayConstant, "delayConstant"); + function delay_default(value) { + var id2 = this._id; + return arguments.length ? this.each((typeof value === "function" ? delayFunction : delayConstant)(id2, value)) : get2(this.node(), id2).delay; + } + __name(delay_default, "default"); + + // node_modules/d3-transition/src/transition/duration.js + function durationFunction(id2, value) { + return function() { + set2(this, id2).duration = +value.apply(this, arguments); + }; + } + __name(durationFunction, "durationFunction"); + function durationConstant(id2, value) { + return value = +value, function() { + set2(this, id2).duration = value; + }; + } + __name(durationConstant, "durationConstant"); + function duration_default(value) { + var id2 = this._id; + return arguments.length ? this.each((typeof value === "function" ? durationFunction : durationConstant)(id2, value)) : get2(this.node(), id2).duration; + } + __name(duration_default, "default"); + + // node_modules/d3-transition/src/transition/ease.js + function easeConstant(id2, value) { + if (typeof value !== "function") throw new Error(); + return function() { + set2(this, id2).ease = value; + }; + } + __name(easeConstant, "easeConstant"); + function ease_default(value) { + var id2 = this._id; + return arguments.length ? this.each(easeConstant(id2, value)) : get2(this.node(), id2).ease; + } + __name(ease_default, "default"); + + // node_modules/d3-transition/src/transition/easeVarying.js + function easeVarying(id2, value) { + return function() { + var v = value.apply(this, arguments); + if (typeof v !== "function") throw new Error(); + set2(this, id2).ease = v; + }; + } + __name(easeVarying, "easeVarying"); + function easeVarying_default(value) { + if (typeof value !== "function") throw new Error(); + return this.each(easeVarying(this._id, value)); + } + __name(easeVarying_default, "default"); + + // node_modules/d3-transition/src/transition/filter.js + function filter_default2(match) { + if (typeof match !== "function") match = matcher_default(match); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) { + if ((node = group[i]) && match.call(node, node.__data__, i, group)) { + subgroup.push(node); + } + } + } + return new Transition(subgroups, this._parents, this._name, this._id); + } + __name(filter_default2, "default"); + + // node_modules/d3-transition/src/transition/merge.js + function merge_default2(transition2) { + if (transition2._id !== this._id) throw new Error(); + for (var groups0 = this._groups, groups1 = transition2._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) { + for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) { + if (node = group0[i] || group1[i]) { + merge[i] = node; + } + } + } + for (; j < m0; ++j) { + merges[j] = groups0[j]; + } + return new Transition(merges, this._parents, this._name, this._id); + } + __name(merge_default2, "default"); + + // node_modules/d3-transition/src/transition/on.js + function start(name) { + return (name + "").trim().split(/^|\s+/).every(function(t) { + var i = t.indexOf("."); + if (i >= 0) t = t.slice(0, i); + return !t || t === "start"; + }); + } + __name(start, "start"); + function onFunction(id2, name, listener) { + var on0, on1, sit = start(name) ? init : set2; + return function() { + var schedule = sit(this, id2), on = schedule.on; + if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener); + schedule.on = on1; + }; + } + __name(onFunction, "onFunction"); + function on_default2(name, listener) { + var id2 = this._id; + return arguments.length < 2 ? get2(this.node(), id2).on.on(name) : this.each(onFunction(id2, name, listener)); + } + __name(on_default2, "default"); + + // node_modules/d3-transition/src/transition/remove.js + function removeFunction(id2) { + return function() { + var parent = this.parentNode; + for (var i in this.__transition) if (+i !== id2) return; + if (parent) parent.removeChild(this); + }; + } + __name(removeFunction, "removeFunction"); + function remove_default2() { + return this.on("end.remove", removeFunction(this._id)); + } + __name(remove_default2, "default"); + + // node_modules/d3-transition/src/transition/select.js + function select_default3(select) { + var name = this._name, id2 = this._id; + if (typeof select !== "function") select = selector_default(select); + for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) { + if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) { + if ("__data__" in node) subnode.__data__ = node.__data__; + subgroup[i] = subnode; + schedule_default(subgroup[i], name, id2, i, subgroup, get2(node, id2)); + } + } + } + return new Transition(subgroups, this._parents, name, id2); + } + __name(select_default3, "default"); + + // node_modules/d3-transition/src/transition/selectAll.js + function selectAll_default3(select) { + var name = this._name, id2 = this._id; + if (typeof select !== "function") select = selectorAll_default(select); + for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + for (var children2 = select.call(node, node.__data__, i, group), child, inherit2 = get2(node, id2), k = 0, l = children2.length; k < l; ++k) { + if (child = children2[k]) { + schedule_default(child, name, id2, k, children2, inherit2); + } + } + subgroups.push(children2); + parents.push(node); + } + } + } + return new Transition(subgroups, parents, name, id2); + } + __name(selectAll_default3, "default"); + + // node_modules/d3-transition/src/transition/selection.js + var Selection2 = selection_default.prototype.constructor; + function selection_default2() { + return new Selection2(this._groups, this._parents); + } + __name(selection_default2, "default"); + + // node_modules/d3-transition/src/transition/style.js + function styleNull(name, interpolate) { + var string00, string10, interpolate0; + return function() { + var string0 = styleValue(this, name), string1 = (this.style.removeProperty(name), styleValue(this, name)); + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : interpolate0 = interpolate(string00 = string0, string10 = string1); + }; + } + __name(styleNull, "styleNull"); + function styleRemove2(name) { + return function() { + this.style.removeProperty(name); + }; + } + __name(styleRemove2, "styleRemove"); + function styleConstant2(name, interpolate, value1) { + var string00, string1 = value1 + "", interpolate0; + return function() { + var string0 = styleValue(this, name); + return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate(string00 = string0, value1); + }; + } + __name(styleConstant2, "styleConstant"); + function styleFunction2(name, interpolate, value) { + var string00, string10, interpolate0; + return function() { + var string0 = styleValue(this, name), value1 = value(this), string1 = value1 + ""; + if (value1 == null) string1 = value1 = (this.style.removeProperty(name), styleValue(this, name)); + return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1)); + }; + } + __name(styleFunction2, "styleFunction"); + function styleMaybeRemove(id2, name) { + var on0, on1, listener0, key = "style." + name, event = "end." + key, remove2; + return function() { + var schedule = set2(this, id2), on = schedule.on, listener = schedule.value[key] == null ? remove2 || (remove2 = styleRemove2(name)) : void 0; + if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener); + schedule.on = on1; + }; + } + __name(styleMaybeRemove, "styleMaybeRemove"); + function style_default2(name, value, priority) { + var i = (name += "") === "transform" ? interpolateTransformCss : interpolate_default; + return value == null ? this.styleTween(name, styleNull(name, i)).on("end.style." + name, styleRemove2(name)) : typeof value === "function" ? this.styleTween(name, styleFunction2(name, i, tweenValue(this, "style." + name, value))).each(styleMaybeRemove(this._id, name)) : this.styleTween(name, styleConstant2(name, i, value), priority).on("end.style." + name, null); + } + __name(style_default2, "default"); + + // node_modules/d3-transition/src/transition/styleTween.js + function styleInterpolate(name, i, priority) { + return function(t) { + this.style.setProperty(name, i.call(this, t), priority); + }; + } + __name(styleInterpolate, "styleInterpolate"); + function styleTween(name, value, priority) { + var t, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority); + return t; + } + __name(tween, "tween"); + tween._value = value; + return tween; + } + __name(styleTween, "styleTween"); + function styleTween_default(name, value, priority) { + var key = "style." + (name += ""); + if (arguments.length < 2) return (key = this.tween(key)) && key._value; + if (value == null) return this.tween(key, null); + if (typeof value !== "function") throw new Error(); + return this.tween(key, styleTween(name, value, priority == null ? "" : priority)); + } + __name(styleTween_default, "default"); + + // node_modules/d3-transition/src/transition/text.js + function textConstant2(value) { + return function() { + this.textContent = value; + }; + } + __name(textConstant2, "textConstant"); + function textFunction2(value) { + return function() { + var value1 = value(this); + this.textContent = value1 == null ? "" : value1; + }; + } + __name(textFunction2, "textFunction"); + function text_default2(value) { + return this.tween("text", typeof value === "function" ? textFunction2(tweenValue(this, "text", value)) : textConstant2(value == null ? "" : value + "")); + } + __name(text_default2, "default"); + + // node_modules/d3-transition/src/transition/textTween.js + function textInterpolate(i) { + return function(t) { + this.textContent = i.call(this, t); + }; + } + __name(textInterpolate, "textInterpolate"); + function textTween(value) { + var t0, i0; + function tween() { + var i = value.apply(this, arguments); + if (i !== i0) t0 = (i0 = i) && textInterpolate(i); + return t0; + } + __name(tween, "tween"); + tween._value = value; + return tween; + } + __name(textTween, "textTween"); + function textTween_default(value) { + var key = "text"; + if (arguments.length < 1) return (key = this.tween(key)) && key._value; + if (value == null) return this.tween(key, null); + if (typeof value !== "function") throw new Error(); + return this.tween(key, textTween(value)); + } + __name(textTween_default, "default"); + + // node_modules/d3-transition/src/transition/transition.js + function transition_default() { + var name = this._name, id0 = this._id, id1 = newId(); + for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + var inherit2 = get2(node, id0); + schedule_default(node, name, id1, i, group, { + time: inherit2.time + inherit2.delay + inherit2.duration, + delay: 0, + duration: inherit2.duration, + ease: inherit2.ease + }); + } + } + } + return new Transition(groups, this._parents, name, id1); + } + __name(transition_default, "default"); + + // node_modules/d3-transition/src/transition/end.js + function end_default() { + var on0, on1, that = this, id2 = that._id, size = that.size(); + return new Promise(function(resolve, reject) { + var cancel = { value: reject }, end = { value: /* @__PURE__ */ __name(function() { + if (--size === 0) resolve(); + }, "value") }; + that.each(function() { + var schedule = set2(this, id2), on = schedule.on; + if (on !== on0) { + on1 = (on0 = on).copy(); + on1._.cancel.push(cancel); + on1._.interrupt.push(cancel); + on1._.end.push(end); + } + schedule.on = on1; + }); + if (size === 0) resolve(); + }); + } + __name(end_default, "default"); + + // node_modules/d3-transition/src/transition/index.js + var id = 0; + function Transition(groups, parents, name, id2) { + this._groups = groups; + this._parents = parents; + this._name = name; + this._id = id2; + } + __name(Transition, "Transition"); + function transition(name) { + return selection_default().transition(name); + } + __name(transition, "transition"); + function newId() { + return ++id; + } + __name(newId, "newId"); + var selection_prototype = selection_default.prototype; + Transition.prototype = transition.prototype = { + constructor: Transition, + select: select_default3, + selectAll: selectAll_default3, + selectChild: selection_prototype.selectChild, + selectChildren: selection_prototype.selectChildren, + filter: filter_default2, + merge: merge_default2, + selection: selection_default2, + transition: transition_default, + call: selection_prototype.call, + nodes: selection_prototype.nodes, + node: selection_prototype.node, + size: selection_prototype.size, + empty: selection_prototype.empty, + each: selection_prototype.each, + on: on_default2, + attr: attr_default2, + attrTween: attrTween_default, + style: style_default2, + styleTween: styleTween_default, + text: text_default2, + textTween: textTween_default, + remove: remove_default2, + tween: tween_default, + delay: delay_default, + duration: duration_default, + ease: ease_default, + easeVarying: easeVarying_default, + end: end_default, + [Symbol.iterator]: selection_prototype[Symbol.iterator] + }; + + // node_modules/d3-ease/src/cubic.js + function cubicInOut(t) { + return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2; + } + __name(cubicInOut, "cubicInOut"); + + // node_modules/d3-transition/src/selection/transition.js + var defaultTiming = { + time: null, + // Set on use. + delay: 0, + duration: 250, + ease: cubicInOut + }; + function inherit(node, id2) { + var timing; + while (!(timing = node.__transition) || !(timing = timing[id2])) { + if (!(node = node.parentNode)) { + throw new Error(`transition ${id2} not found`); + } + } + return timing; + } + __name(inherit, "inherit"); + function transition_default2(name) { + var id2, timing; + if (name instanceof Transition) { + id2 = name._id, name = name._name; + } else { + id2 = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + ""; + } + for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) { + for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) { + if (node = group[i]) { + schedule_default(node, name, id2, i, group, timing || inherit(node, id2)); + } + } + } + return new Transition(groups, this._parents, name, id2); + } + __name(transition_default2, "default"); + + // node_modules/d3-transition/src/selection/index.js + selection_default.prototype.interrupt = interrupt_default2; + selection_default.prototype.transition = transition_default2; + + // node_modules/d3-zoom/src/constant.js + var constant_default4 = /* @__PURE__ */ __name((x) => () => x, "default"); + + // node_modules/d3-zoom/src/event.js + function ZoomEvent(type, { + sourceEvent, + target, + transform: transform2, + dispatch: dispatch2 + }) { + Object.defineProperties(this, { + type: { value: type, enumerable: true, configurable: true }, + sourceEvent: { value: sourceEvent, enumerable: true, configurable: true }, + target: { value: target, enumerable: true, configurable: true }, + transform: { value: transform2, enumerable: true, configurable: true }, + _: { value: dispatch2 } + }); + } + __name(ZoomEvent, "ZoomEvent"); + + // node_modules/d3-zoom/src/transform.js + function Transform(k, x, y) { + this.k = k; + this.x = x; + this.y = y; + } + __name(Transform, "Transform"); + Transform.prototype = { + constructor: Transform, + scale: /* @__PURE__ */ __name(function(k) { + return k === 1 ? this : new Transform(this.k * k, this.x, this.y); + }, "scale"), + translate: /* @__PURE__ */ __name(function(x, y) { + return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y); + }, "translate"), + apply: /* @__PURE__ */ __name(function(point) { + return [point[0] * this.k + this.x, point[1] * this.k + this.y]; + }, "apply"), + applyX: /* @__PURE__ */ __name(function(x) { + return x * this.k + this.x; + }, "applyX"), + applyY: /* @__PURE__ */ __name(function(y) { + return y * this.k + this.y; + }, "applyY"), + invert: /* @__PURE__ */ __name(function(location) { + return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k]; + }, "invert"), + invertX: /* @__PURE__ */ __name(function(x) { + return (x - this.x) / this.k; + }, "invertX"), + invertY: /* @__PURE__ */ __name(function(y) { + return (y - this.y) / this.k; + }, "invertY"), + rescaleX: /* @__PURE__ */ __name(function(x) { + return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x)); + }, "rescaleX"), + rescaleY: /* @__PURE__ */ __name(function(y) { + return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y)); + }, "rescaleY"), + toString: /* @__PURE__ */ __name(function() { + return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")"; + }, "toString") + }; + var identity2 = new Transform(1, 0, 0); + transform.prototype = Transform.prototype; + function transform(node) { + while (!node.__zoom) if (!(node = node.parentNode)) return identity2; + return node.__zoom; + } + __name(transform, "transform"); + + // node_modules/d3-zoom/src/noevent.js + function nopropagation(event) { + event.stopImmediatePropagation(); + } + __name(nopropagation, "nopropagation"); + function noevent_default2(event) { + event.preventDefault(); + event.stopImmediatePropagation(); + } + __name(noevent_default2, "default"); + + // node_modules/d3-zoom/src/zoom.js + function defaultFilter(event) { + return (!event.ctrlKey || event.type === "wheel") && !event.button; + } + __name(defaultFilter, "defaultFilter"); + function defaultExtent() { + var e = this; + if (e instanceof SVGElement) { + e = e.ownerSVGElement || e; + if (e.hasAttribute("viewBox")) { + e = e.viewBox.baseVal; + return [[e.x, e.y], [e.x + e.width, e.y + e.height]]; + } + return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]]; + } + return [[0, 0], [e.clientWidth, e.clientHeight]]; + } + __name(defaultExtent, "defaultExtent"); + function defaultTransform() { + return this.__zoom || identity2; + } + __name(defaultTransform, "defaultTransform"); + function defaultWheelDelta(event) { + return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 2e-3) * (event.ctrlKey ? 10 : 1); + } + __name(defaultWheelDelta, "defaultWheelDelta"); + function defaultTouchable() { + return navigator.maxTouchPoints || "ontouchstart" in this; + } + __name(defaultTouchable, "defaultTouchable"); + function defaultConstrain(transform2, extent, translateExtent) { + var dx0 = transform2.invertX(extent[0][0]) - translateExtent[0][0], dx1 = transform2.invertX(extent[1][0]) - translateExtent[1][0], dy0 = transform2.invertY(extent[0][1]) - translateExtent[0][1], dy1 = transform2.invertY(extent[1][1]) - translateExtent[1][1]; + return transform2.translate( + dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1), + dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1) + ); + } + __name(defaultConstrain, "defaultConstrain"); + function zoom_default2() { + var filter2 = defaultFilter, extent = defaultExtent, constrain = defaultConstrain, wheelDelta = defaultWheelDelta, touchable = defaultTouchable, scaleExtent = [0, Infinity], translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]], duration = 250, interpolate = zoom_default, listeners = dispatch_default2("start", "zoom", "end"), touchstarting, touchfirst, touchending, touchDelay = 500, wheelDelay = 150, clickDistance2 = 0, tapDistance = 10; + function zoom(selection2) { + selection2.property("__zoom", defaultTransform).on("wheel.zoom", wheeled, { passive: false }).on("mousedown.zoom", mousedowned).on("dblclick.zoom", dblclicked).filter(touchable).on("touchstart.zoom", touchstarted).on("touchmove.zoom", touchmoved).on("touchend.zoom touchcancel.zoom", touchended).style("-webkit-tap-highlight-color", "rgba(0,0,0,0)"); + } + __name(zoom, "zoom"); + zoom.transform = function(collection, transform2, point, event) { + var selection2 = collection.selection ? collection.selection() : collection; + selection2.property("__zoom", defaultTransform); + if (collection !== selection2) { + schedule(collection, transform2, point, event); + } else { + selection2.interrupt().each(function() { + gesture(this, arguments).event(event).start().zoom(null, typeof transform2 === "function" ? transform2.apply(this, arguments) : transform2).end(); + }); + } + }; + zoom.scaleBy = function(selection2, k, p, event) { + zoom.scaleTo(selection2, function() { + var k0 = this.__zoom.k, k1 = typeof k === "function" ? k.apply(this, arguments) : k; + return k0 * k1; + }, p, event); + }; + zoom.scaleTo = function(selection2, k, p, event) { + zoom.transform(selection2, function() { + var e = extent.apply(this, arguments), t0 = this.__zoom, p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p, p1 = t0.invert(p0), k1 = typeof k === "function" ? k.apply(this, arguments) : k; + return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent); + }, p, event); + }; + zoom.translateBy = function(selection2, x, y, event) { + zoom.transform(selection2, function() { + return constrain(this.__zoom.translate( + typeof x === "function" ? x.apply(this, arguments) : x, + typeof y === "function" ? y.apply(this, arguments) : y + ), extent.apply(this, arguments), translateExtent); + }, null, event); + }; + zoom.translateTo = function(selection2, x, y, p, event) { + zoom.transform(selection2, function() { + var e = extent.apply(this, arguments), t = this.__zoom, p0 = p == null ? centroid(e) : typeof p === "function" ? p.apply(this, arguments) : p; + return constrain(identity2.translate(p0[0], p0[1]).scale(t.k).translate( + typeof x === "function" ? -x.apply(this, arguments) : -x, + typeof y === "function" ? -y.apply(this, arguments) : -y + ), e, translateExtent); + }, p, event); + }; + function scale(transform2, k) { + k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k)); + return k === transform2.k ? transform2 : new Transform(k, transform2.x, transform2.y); + } + __name(scale, "scale"); + function translate(transform2, p0, p1) { + var x = p0[0] - p1[0] * transform2.k, y = p0[1] - p1[1] * transform2.k; + return x === transform2.x && y === transform2.y ? transform2 : new Transform(transform2.k, x, y); + } + __name(translate, "translate"); + function centroid(extent2) { + return [(+extent2[0][0] + +extent2[1][0]) / 2, (+extent2[0][1] + +extent2[1][1]) / 2]; + } + __name(centroid, "centroid"); + function schedule(transition2, transform2, point, event) { + transition2.on("start.zoom", function() { + gesture(this, arguments).event(event).start(); + }).on("interrupt.zoom end.zoom", function() { + gesture(this, arguments).event(event).end(); + }).tween("zoom", function() { + var that = this, args = arguments, g = gesture(that, args).event(event), e = extent.apply(that, args), p = point == null ? centroid(e) : typeof point === "function" ? point.apply(that, args) : point, w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]), a = that.__zoom, b = typeof transform2 === "function" ? transform2.apply(that, args) : transform2, i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k)); + return function(t) { + if (t === 1) t = b; + else { + var l = i(t), k = w / l[2]; + t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); + } + g.zoom(null, t); + }; + }); + } + __name(schedule, "schedule"); + function gesture(that, args, clean) { + return !clean && that.__zooming || new Gesture(that, args); + } + __name(gesture, "gesture"); + function Gesture(that, args) { + this.that = that; + this.args = args; + this.active = 0; + this.sourceEvent = null; + this.extent = extent.apply(that, args); + this.taps = 0; + } + __name(Gesture, "Gesture"); + Gesture.prototype = { + event: /* @__PURE__ */ __name(function(event) { + if (event) this.sourceEvent = event; + return this; + }, "event"), + start: /* @__PURE__ */ __name(function() { + if (++this.active === 1) { + this.that.__zooming = this; + this.emit("start"); + } + return this; + }, "start"), + zoom: /* @__PURE__ */ __name(function(key, transform2) { + if (this.mouse && key !== "mouse") this.mouse[1] = transform2.invert(this.mouse[0]); + if (this.touch0 && key !== "touch") this.touch0[1] = transform2.invert(this.touch0[0]); + if (this.touch1 && key !== "touch") this.touch1[1] = transform2.invert(this.touch1[0]); + this.that.__zoom = transform2; + this.emit("zoom"); + return this; + }, "zoom"), + end: /* @__PURE__ */ __name(function() { + if (--this.active === 0) { + delete this.that.__zooming; + this.emit("end"); + } + return this; + }, "end"), + emit: /* @__PURE__ */ __name(function(type) { + var d = select_default2(this.that).datum(); + listeners.call( + type, + this.that, + new ZoomEvent(type, { + sourceEvent: this.sourceEvent, + target: zoom, + type, + transform: this.that.__zoom, + dispatch: listeners + }), + d + ); + }, "emit") + }; + function wheeled(event, ...args) { + if (!filter2.apply(this, arguments)) return; + var g = gesture(this, args).event(event), t = this.__zoom, k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))), p = pointer_default(event); + if (g.wheel) { + if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) { + g.mouse[1] = t.invert(g.mouse[0] = p); + } + clearTimeout(g.wheel); + } else if (t.k === k) return; + else { + g.mouse = [p, t.invert(p)]; + interrupt_default(this); + g.start(); + } + noevent_default2(event); + g.wheel = setTimeout(wheelidled, wheelDelay); + g.zoom("mouse", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent)); + function wheelidled() { + g.wheel = null; + g.end(); + } + __name(wheelidled, "wheelidled"); + } + __name(wheeled, "wheeled"); + function mousedowned(event, ...args) { + if (touchending || !filter2.apply(this, arguments)) return; + var currentTarget = event.currentTarget, g = gesture(this, args, true).event(event), v = select_default2(event.view).on("mousemove.zoom", mousemoved, true).on("mouseup.zoom", mouseupped, true), p = pointer_default(event, currentTarget), x0 = event.clientX, y0 = event.clientY; + nodrag_default(event.view); + nopropagation(event); + g.mouse = [p, this.__zoom.invert(p)]; + interrupt_default(this); + g.start(); + function mousemoved(event2) { + noevent_default2(event2); + if (!g.moved) { + var dx = event2.clientX - x0, dy = event2.clientY - y0; + g.moved = dx * dx + dy * dy > clickDistance2; + } + g.event(event2).zoom("mouse", constrain(translate(g.that.__zoom, g.mouse[0] = pointer_default(event2, currentTarget), g.mouse[1]), g.extent, translateExtent)); + } + __name(mousemoved, "mousemoved"); + function mouseupped(event2) { + v.on("mousemove.zoom mouseup.zoom", null); + yesdrag(event2.view, g.moved); + noevent_default2(event2); + g.event(event2).end(); + } + __name(mouseupped, "mouseupped"); + } + __name(mousedowned, "mousedowned"); + function dblclicked(event, ...args) { + if (!filter2.apply(this, arguments)) return; + var t0 = this.__zoom, p0 = pointer_default(event.changedTouches ? event.changedTouches[0] : event, this), p1 = t0.invert(p0), k1 = t0.k * (event.shiftKey ? 0.5 : 2), t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent); + noevent_default2(event); + if (duration > 0) select_default2(this).transition().duration(duration).call(schedule, t1, p0, event); + else select_default2(this).call(zoom.transform, t1, p0, event); + } + __name(dblclicked, "dblclicked"); + function touchstarted(event, ...args) { + if (!filter2.apply(this, arguments)) return; + var touches = event.touches, n = touches.length, g = gesture(this, args, event.changedTouches.length === n).event(event), started, i, t, p; + nopropagation(event); + for (i = 0; i < n; ++i) { + t = touches[i], p = pointer_default(t, this); + p = [p, this.__zoom.invert(p), t.identifier]; + if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting; + else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0; + } + if (touchstarting) touchstarting = clearTimeout(touchstarting); + if (started) { + if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { + touchstarting = null; + }, touchDelay); + interrupt_default(this); + g.start(); + } + } + __name(touchstarted, "touchstarted"); + function touchmoved(event, ...args) { + if (!this.__zooming) return; + var g = gesture(this, args).event(event), touches = event.changedTouches, n = touches.length, i, t, p, l; + noevent_default2(event); + for (i = 0; i < n; ++i) { + t = touches[i], p = pointer_default(t, this); + if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p; + else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p; + } + t = g.that.__zoom; + if (g.touch1) { + var p0 = g.touch0[0], l0 = g.touch0[1], p1 = g.touch1[0], l1 = g.touch1[1], dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp, dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl; + t = scale(t, Math.sqrt(dp / dl)); + p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2]; + l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2]; + } else if (g.touch0) p = g.touch0[0], l = g.touch0[1]; + else return; + g.zoom("touch", constrain(translate(t, p, l), g.extent, translateExtent)); + } + __name(touchmoved, "touchmoved"); + function touchended(event, ...args) { + if (!this.__zooming) return; + var g = gesture(this, args).event(event), touches = event.changedTouches, n = touches.length, i, t; + nopropagation(event); + if (touchending) clearTimeout(touchending); + touchending = setTimeout(function() { + touchending = null; + }, touchDelay); + for (i = 0; i < n; ++i) { + t = touches[i]; + if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0; + else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1; + } + if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1; + if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]); + else { + g.end(); + if (g.taps === 2) { + t = pointer_default(t, this); + if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) { + var p = select_default2(this).on("dblclick.zoom"); + if (p) p.apply(this, arguments); + } + } + } + } + __name(touchended, "touchended"); + zoom.wheelDelta = function(_) { + return arguments.length ? (wheelDelta = typeof _ === "function" ? _ : constant_default4(+_), zoom) : wheelDelta; + }; + zoom.filter = function(_) { + return arguments.length ? (filter2 = typeof _ === "function" ? _ : constant_default4(!!_), zoom) : filter2; + }; + zoom.touchable = function(_) { + return arguments.length ? (touchable = typeof _ === "function" ? _ : constant_default4(!!_), zoom) : touchable; + }; + zoom.extent = function(_) { + return arguments.length ? (extent = typeof _ === "function" ? _ : constant_default4([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent; + }; + zoom.scaleExtent = function(_) { + return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]]; + }; + zoom.translateExtent = function(_) { + return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]]; + }; + zoom.constrain = function(_) { + return arguments.length ? (constrain = _, zoom) : constrain; + }; + zoom.duration = function(_) { + return arguments.length ? (duration = +_, zoom) : duration; + }; + zoom.interpolate = function(_) { + return arguments.length ? (interpolate = _, zoom) : interpolate; + }; + zoom.on = function() { + var value = listeners.on.apply(listeners, arguments); + return value === listeners ? zoom : value; + }; + zoom.clickDistance = function(_) { + return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2); + }; + zoom.tapDistance = function(_) { + return arguments.length ? (tapDistance = +_, zoom) : tapDistance; + }; + return zoom; + } + __name(zoom_default2, "default"); + + // src/d3.ts + var d3_default = { + hierarchy, + stratify: stratify_default, + tree: tree_default, + treemap: treemap_default, + select: select_default2, + selectAll: selectAll_default2, + zoom: zoom_default2 + }; + + // src/utils.ts + var getAreaSize = /* @__PURE__ */ __name((htmlId) => { + const SVGContainer = document.querySelector(`#${htmlId}`); + if (SVGContainer === null) { + throw new Error(`Cannot find dom element with id:${htmlId}`); + } + const areaWidth = SVGContainer.clientWidth; + const areaHeight = SVGContainer.clientHeight; + if (areaHeight === 0 || areaWidth === 0) { + throw new Error( + "The tree can't be display because the svg height or width of the container is null" + ); + } + return { areaWidth, areaHeight }; + }, "getAreaSize"); + var getFirstDisplayedAncestor = /* @__PURE__ */ __name((ghostNodes, viewableNodes, id2) => { + try { + const parentNode = ghostNodes.find((node) => node.id === id2); + const parentNodeId = parentNode.ancestors()[1].id; + const isPresentInOldNodes = viewableNodes.some( + (oldNode) => oldNode.id === parentNodeId + ); + if (isPresentInOldNodes) { + return parentNode.ancestors()[1]; + } else { + return getFirstDisplayedAncestor(ghostNodes, viewableNodes, parentNodeId); + } + } catch (e) { + return ghostNodes.find((node) => node.id === id2); + } + }, "getFirstDisplayedAncestor"); + var setNodeLocation = /* @__PURE__ */ __name((xPosition, yPosition, settings) => { + if (settings.isHorizontal) { + return "translate(" + yPosition + "," + xPosition + ")"; + } else { + return "translate(" + xPosition + "," + yPosition + ")"; + } + }, "setNodeLocation"); + var RefreshQueue = class { + static { + __name(this, "RefreshQueue"); + } + // 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. + // } + static queue = []; + // Contains setInterval ID + static runner; + // Milliseconds of each iteration + static 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) + static 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! + static showQueueLog = false; + // Adds one refresh action to the queue. When safe callback will be + // triggered + static add(duration, callback) { + this.queue.push({ + delayNextCallback: duration + this.extraDelayBetweenCallbacks, + callback + }); + this.log( + this.queue.map((_) => _.delayNextCallback), + "<-- New task !!!" + ); + if (!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((_) => _.delayNextCallback)); + if (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(...msg) { + if (this.showQueueLog) console.log(...msg); + } + }; + + // src/initializeSVG.ts + var initiliazeSVG = /* @__PURE__ */ __name((treeConfig) => { + const { + htmlId, + isHorizontal, + hasPan, + hasZoom, + mainAxisNodeSpacing, + nodeHeight, + nodeWidth, + marginBottom, + marginLeft, + marginRight, + marginTop + } = treeConfig; + const margin = { + top: marginTop, + right: marginRight, + bottom: marginBottom, + left: marginLeft + }; + const { areaHeight, areaWidth } = getAreaSize(treeConfig.htmlId); + const width = areaWidth - margin.left - margin.right; + const height = areaHeight - margin.top - margin.bottom; + const svg = d3_default.select("#" + htmlId).append("svg").attr("width", areaWidth).attr("height", areaHeight); + const ZoomContainer = svg.append("g"); + const zoom = d3_default.zoom().on("zoom", (e) => { + ZoomContainer.attr("transform", () => e.transform); + }); + svg.call(zoom); + if (!hasPan) { + svg.on("mousedown.zoom", null).on("touchstart.zoom", null).on("touchmove.zoom", null).on("touchend.zoom", null); + } + if (!hasZoom) { + svg.on("wheel.zoom", null).on("mousewheel.zoom", null).on("mousemove.zoom", null).on("DOMMouseScroll.zoom", null).on("dblclick.zoom", null); + } + const MainG = ZoomContainer.append("g").attr( + "transform", + mainAxisNodeSpacing === "auto" ? "translate(0,0)" : isHorizontal ? "translate(" + margin.left + "," + (margin.top + height / 2 - nodeHeight / 2) + ")" : "translate(" + (margin.left + width / 2 - nodeWidth / 2) + "," + margin.top + ")" + ); + return MainG; + }, "initiliazeSVG"); + + // src/links/draw-links.ts + var generateLinkLayout = /* @__PURE__ */ __name((s, d, treeConfig) => { + const { isHorizontal, nodeHeight, nodeWidth, linkShape } = treeConfig; + if (linkShape === "orthogonal") { + if (isHorizontal) { + return `M ${s.y} ${s.x + nodeHeight / 2} + L ${(s.y + d.y + nodeWidth) / 2} ${s.x + nodeHeight / 2} + L ${(s.y + d.y + nodeWidth) / 2} ${d.x + nodeHeight / 2} + ${d.y + nodeWidth} ${d.x + nodeHeight / 2}`; + } else { + return `M ${s.x + nodeWidth / 2} ${s.y} + L ${s.x + nodeWidth / 2} ${(s.y + d.y + nodeHeight) / 2} + L ${d.x + nodeWidth / 2} ${(s.y + d.y + nodeHeight) / 2} + ${d.x + nodeWidth / 2} ${d.y + nodeHeight} `; + } + } else if (linkShape === "curve") { + if (isHorizontal) { + return `M ${s.y} ${s.x + nodeHeight / 2} + L ${s.y - (s.y - d.y - nodeWidth) / 2 + 15} ${s.x + nodeHeight / 2} + Q${s.y - (s.y - d.y - nodeWidth) / 2} ${s.x + nodeHeight / 2} + ${s.y - (s.y - d.y - nodeWidth) / 2} ${s.x + nodeHeight / 2 - offsetPosOrNeg(s.x, d.x, 15)} + L ${s.y - (s.y - d.y - nodeWidth) / 2} ${d.x + nodeHeight / 2} + L ${d.y + nodeWidth} ${d.x + nodeHeight / 2}`; + } else { + return `M ${s.x + nodeWidth / 2} ${s.y} + L ${s.x + nodeWidth / 2} ${s.y - (s.y - d.y - nodeHeight) / 2 + 15} + Q${s.x + nodeWidth / 2} ${s.y - (s.y - d.y - nodeHeight) / 2} + ${s.x + nodeWidth / 2 - offsetPosOrNeg(s.x, d.x, 15)} ${s.y - (s.y - d.y - nodeHeight) / 2} + L ${d.x + nodeWidth / 2} ${s.y - (s.y - d.y - nodeHeight) / 2} + L ${d.x + nodeWidth / 2} ${d.y + nodeHeight} `; + } + } else { + if (isHorizontal) { + return `M ${s.y} ${s.x + nodeHeight / 2} + C ${(s.y + d.y + nodeWidth) / 2} ${s.x + nodeHeight / 2} + ${(s.y + d.y + nodeWidth) / 2} ${d.x + nodeHeight / 2} + ${d.y + nodeWidth} ${d.x + nodeHeight / 2}`; + } else { + return `M ${s.x + nodeWidth / 2} ${s.y} + C ${s.x + nodeWidth / 2} ${(s.y + d.y + nodeHeight) / 2} + ${d.x + nodeWidth / 2} ${(s.y + d.y + nodeHeight) / 2} + ${d.x + nodeWidth / 2} ${d.y + nodeHeight} `; + } + } + }, "generateLinkLayout"); + var offsetPosOrNeg = /* @__PURE__ */ __name((val1, val2, offset) => val1 > val2 ? offset : val1 < val2 ? -offset : 0, "offsetPosOrNeg"); + + // src/links/link-enter.ts + var drawLinkEnter = /* @__PURE__ */ __name((link, settings, nodes, oldNodes) => link.enter().insert("path", "g").attr("class", "link").attr("d", (d) => { + const firstDisplayedParentNode = getFirstDisplayedAncestor( + nodes, + oldNodes, + d.id + ); + const o = { + x: firstDisplayedParentNode.x0, + y: firstDisplayedParentNode.y0 + }; + return generateLinkLayout(o, o, settings); + }).attr("fill", "none").attr( + "stroke-width", + (d) => settings.linkWidth(d) + // Pass the correct `d` object to linkWidth + ).attr( + "stroke", + (d) => settings.linkColor(d) + // Pass the correct `d` object to linkColor + ), "drawLinkEnter"); + + // src/links/link-exit.ts + var drawLinkExit = /* @__PURE__ */ __name((link, settings, nodes, oldNodes) => { + link.exit().transition().duration(settings.duration).style("opacity", 0).attr("d", (d) => { + const firstDisplayedParentNode = getFirstDisplayedAncestor( + oldNodes, + nodes, + d.id + ); + const o = { + x: firstDisplayedParentNode.x0, + y: firstDisplayedParentNode.y0 + }; + return generateLinkLayout(o, o, settings); + }).remove(); + }, "drawLinkExit"); + + // src/links/link-update.ts + var drawLinkUpdate = /* @__PURE__ */ __name((linkEnter, link, settings) => { + const linkUpdate = linkEnter.merge(link); + linkUpdate.transition().duration(settings.duration).attr("d", (d) => { + return generateLinkLayout(d, d.parent, settings); + }).attr("fill", "none").attr("stroke-width", (d) => { + return settings.linkWidth(d); + }).attr("stroke", (d) => { + return settings.linkColor(d); + }); + }, "drawLinkUpdate"); + + // src/nodes/node-enter.ts + var drawNodeEnter = /* @__PURE__ */ __name((node, settings, nodes, oldNodes) => { + const nodeEnter = node.enter().append("g").attr("class", "node").attr("id", (d) => d?.id).attr("transform", (d) => { + const firstDisplayedParentNode = getFirstDisplayedAncestor( + nodes, + oldNodes, + d.id + ); + return setNodeLocation( + firstDisplayedParentNode.x0, + firstDisplayedParentNode.y0, + settings + ); + }); + nodeEnter.append("foreignObject").attr("width", settings.nodeWidth).attr("height", settings.nodeHeight); + return nodeEnter; + }, "drawNodeEnter"); + + // src/nodes/node-exit.ts + var drawNodeExit = /* @__PURE__ */ __name((node, settings, nodes, oldNodes) => { + const nodeExit = node.exit().transition().duration(settings.duration).style("opacity", 0).attr("transform", (d) => { + const firstDisplayedParentNode = getFirstDisplayedAncestor( + oldNodes, + nodes, + d.id + ); + return setNodeLocation( + firstDisplayedParentNode.x0, + firstDisplayedParentNode.y0, + settings + ); + }).remove(); + nodeExit.select("rect").style("fill-opacity", 1e-6); + nodeExit.select("circle").attr("r", 1e-6); + nodeExit.select("text").style("fill-opacity", 1e-6); + }, "drawNodeExit"); + + // src/nodes/node-update.ts + var drawNodeUpdate = /* @__PURE__ */ __name((nodeEnter, node, settings) => { + const nodeUpdate = nodeEnter.merge(node); + nodeUpdate.transition().duration(settings.duration).attr("transform", (d) => { + return settings.isHorizontal ? "translate(" + d.y + "," + d.x + ")" : "translate(" + d.x + "," + d.y + ")"; + }); + nodeUpdate.select("foreignObject").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 })); + }, "drawNodeUpdate"); + + // src/prepare-data.ts + var generateNestedData = /* @__PURE__ */ __name((data, treeConfig) => { + const { idKey, relationnalField, hasFlatData } = treeConfig; + return hasFlatData ? d3_default.stratify().id((d) => d[idKey]).parentId((d) => d[relationnalField])(data) : d3_default.hierarchy(data, (d) => d[relationnalField]); + }, "generateNestedData"); + var generateBasicTreemap = /* @__PURE__ */ __name((treeConfig) => { + const { areaHeight, areaWidth } = getAreaSize(treeConfig.htmlId); + return treeConfig.mainAxisNodeSpacing === "auto" && treeConfig.isHorizontal ? d3_default.tree().size([ + areaHeight - treeConfig.nodeHeight, + areaWidth - treeConfig.nodeWidth + ]) : treeConfig.mainAxisNodeSpacing === "auto" && !treeConfig.isHorizontal ? d3_default.tree().size([ + areaWidth - treeConfig.nodeWidth, + areaHeight - treeConfig.nodeHeight + ]) : treeConfig.isHorizontal === true ? d3_default.tree().nodeSize([ + treeConfig.nodeHeight * treeConfig.secondaryAxisNodeSpacing, + treeConfig.nodeWidth + ]) : d3_default.tree().nodeSize([ + treeConfig.nodeWidth * treeConfig.secondaryAxisNodeSpacing, + treeConfig.nodeHeight + ]); + }, "generateBasicTreemap"); + + // src/index.ts + var Treeviz = { + create: create2 + }; + if (typeof window !== "undefined") { + window.Treeviz = Treeviz; + } + function create2(userSettings) { + const defaultSettings = { + data: [], + htmlId: "", + idKey: "id", + relationnalField: "father", + hasFlatData: true, + nodeWidth: 160, + nodeHeight: 100, + mainAxisNodeSpacing: 300, + renderNode: /* @__PURE__ */ __name(() => "Node", "renderNode"), + linkColor: /* @__PURE__ */ __name(() => "#ffcc80", "linkColor"), + linkWidth: /* @__PURE__ */ __name(() => 10, "linkWidth"), + linkShape: "quadraticBeziers", + isHorizontal: true, + hasPan: false, + hasZoom: false, + duration: 600, + onNodeClick: /* @__PURE__ */ __name(() => void 0, "onNodeClick"), + onNodeMouseEnter: /* @__PURE__ */ __name(() => void 0, "onNodeMouseEnter"), + onNodeMouseLeave: /* @__PURE__ */ __name(() => void 0, "onNodeMouseLeave"), + marginBottom: 0, + marginLeft: 0, + marginRight: 0, + marginTop: 0, + secondaryAxisNodeSpacing: 1.25 + }; + let settings = { + ...defaultSettings, + ...userSettings + }; + let oldNodes = []; + function draw(svg2, computedTree) { + const nodes = computedTree.descendants(); + const links = computedTree.descendants().slice(1); + const { mainAxisNodeSpacing } = settings; + if (mainAxisNodeSpacing !== "auto") { + nodes.forEach((d) => { + d.y = d.depth * settings.nodeWidth * mainAxisNodeSpacing; + }); + } + nodes.forEach((currentNode) => { + const currentNodeOldPosition = oldNodes.find( + (node2) => node2.id === currentNode.id + ); + currentNode.x0 = currentNodeOldPosition ? currentNodeOldPosition.x0 : currentNode.x; + currentNode.y0 = currentNodeOldPosition ? currentNodeOldPosition.y0 : currentNode.y; + }); + const node = svg2.selectAll("g.node").data(nodes, (d) => { + return d[settings.idKey]; + }); + const nodeEnter = drawNodeEnter(node, settings, nodes, oldNodes); + drawNodeUpdate(nodeEnter, node, settings); + drawNodeExit(node, settings, nodes, oldNodes); + const link = svg2.selectAll("path.link").data(links, (d) => { + return d.id; + }); + const linkEnter = drawLinkEnter(link, settings, nodes, oldNodes); + drawLinkUpdate(linkEnter, link, settings); + drawLinkExit(link, settings, nodes, oldNodes); + oldNodes = [...nodes]; + } + __name(draw, "draw"); + function refresh(data, newSettings) { + RefreshQueue.add(settings.duration, () => { + if (newSettings) { + settings = { ...settings, ...newSettings }; + } + const nestedData = generateNestedData(data, settings); + const treemap = generateBasicTreemap(settings); + const computedTree = treemap(nestedData); + draw(svg, computedTree); + }); + } + __name(refresh, "refresh"); + function clean(keepConfig) { + const myNode = keepConfig ? document.querySelector(`#${settings.htmlId} svg g`) : document.querySelector(`#${settings.htmlId}`); + if (myNode) { + while (myNode.firstChild) { + myNode.removeChild(myNode.firstChild); + } + } + oldNodes = []; + } + __name(clean, "clean"); + const treeObject = { refresh, clean }; + const svg = initiliazeSVG(settings); + return treeObject; + } + __name(create2, "create"); + return __toCommonJS(index_exports); +})(); diff --git a/dist/bundle.js.map b/dist/bundle.js.map new file mode 100644 index 0000000..804245e --- /dev/null +++ b/dist/bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bundle.js","sources":["../../src/d3.ts","../../src/utils.ts","../../src/initializeSVG.ts","../../src/links/draw-links.ts","../../src/links/link-enter.ts","../../src/links/link-exit.ts","../../src/links/link-update.ts","../../src/nodes/node-enter.ts","../../src/nodes/node-exit.ts","../../src/nodes/node-update.ts","../../src/prepare-data.ts","../../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null],"names":["hierarchy","stratify","tree","treemap","select","selectAll","zoom"],"mappings":";;;AAIA,aAAe;mBACbA,qBAAS;kBACTC,oBAAQ;cACRC,gBAAI;iBACJC,mBAAO;gBACPC,kBAAM;mBACNC,qBAAS;cACTC,WAAI;KACL;;ICVM,MAAM,WAAW,GAAG,CAAC,MAAc,KAAI;QAC5C,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAI,CAAA,EAAA,MAAM,CAAE,CAAA,CAAC;IACzD,IAAA,IAAI,YAAY,KAAK,IAAI,EAAE;IACzB,QAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,MAAM,CAAA,CAAE,CAAC;;IAE9D,IAAA,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW;IAC1C,IAAA,MAAM,UAAU,GAAG,YAAY,CAAC,YAAY;QAC5C,IAAI,UAAU,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE;IACvC,QAAA,MAAM,IAAI,KAAK,CACb,oFAAoF,CACrF;;IAEH,IAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE;IAClC,CAAC;IAIM,MAAM,yBAAyB,GAAG,CACvC,UAAwC,EACxC,aAA2C,EAC3C,EAAU,KACA;IACV,IAAA,IAAI;;IAEF,QAAA,MAAM,UAAU,GAAW,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;;YAGpE,MAAM,YAAY,GAAW,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;IACzD,QAAA,MAAM,mBAAmB,GAAG,aAAa,CAAC,IAAI,CAC5C,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,KAAK,YAAY,CACzC;YAED,IAAI,mBAAmB,EAAE;IACvB,YAAA,OAAO,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;;iBAC3B;gBACL,OAAO,yBAAyB,CAAC,UAAU,EAAE,aAAa,EAAE,YAAY,CAAC;;;QAE3E,OAAO,CAAC,EAAE;;IAEV,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;;IAEpD,CAAC;IAEM,MAAM,eAAe,GAAG,CAC7B,SAAiB,EACjB,SAAiB,EACjB,QAAwB,KACtB;IACF,IAAA,IAAI,QAAQ,CAAC,YAAY,EAAE;YACzB,OAAO,YAAY,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG;;aAClD;YACL,OAAO,YAAY,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG;;IAE3D,CAAC;IAED;IACA;UACa,YAAY,CAAA;;;IAsChB,IAAA,OAAO,GAAG,CAAC,QAAgB,EAAE,QAAmB,EAAA;IACrD,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACd,YAAA,iBAAiB,EAAE,QAAQ,GAAG,IAAI,CAAC,0BAA0B;IAC7D,YAAA,QAAQ,EAAE,QAAQ;IACnB,SAAA,CAAC;YACF,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,EAC1C,kBAAkB,CACnB;IACD,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,IAAI,CAAC,cAAc,EAAE;;IAErB,YAAA,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC;;;;IAKpE,IAAA,OAAO,cAAc,GAAA;IAC3B,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;;gBAEjB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1B,gBAAA,IAAI,CAAC,GAAG,CAAC,uCAAuC,CAAC;IACjD,gBAAA,IAAI;wBACF,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;;oBACxB,OAAO,CAAC,EAAE;IACV,oBAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;;4BACR;;wBAER,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI;;;;gBAIjC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,IAAI,IAAI,CAAC,WAAW;IACnD,YAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC;gBACpD,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,EAAE;IACxC,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;;;iBAEf;IACL,YAAA,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;IACzB,YAAA,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC;;;;IAKX,IAAA,OAAO,GAAG,CAAC,GAAG,GAAQ,EAAA;YAC5B,IAAI,IAAI,CAAC,YAAY;IAAE,YAAA,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;;;IAnF5C;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACe,MAAA,CAAA,cAAA,CAAA,YAAA,EAAA,OAAA,EAAA;;;;eAGV;IAAG,CAAA,CAAA;IAKR;IACe,MAAA,CAAA,cAAA,CAAA,YAAA,EAAA,aAAA,EAAA;;;;eAAsB;IAAI,CAAA,CAAA;IAEzC;IACA;IACA;IACA;IACA;IACwB,MAAA,CAAA,cAAA,CAAA,YAAA,EAAA,4BAAA,EAAA;;;;eAAqC;IAAI,CAAA,CAAA;IAEjE;IACA;IACA;IACe,MAAA,CAAA,cAAA,CAAA,YAAA,EAAA,cAAA,EAAA;;;;eAAwB;IAAM,CAAA,CAAA;;ICzFxC,MAAM,aAAa,GAAG,CAAI,UAA0B,KAAI;QAC7D,MAAM,EACJ,MAAM,EACN,YAAY,EACZ,MAAM,EACN,OAAO,EACP,mBAAmB,EACnB,UAAU,EACV,SAAS,EACT,YAAY,EACZ,UAAU,EACV,WAAW,EACX,SAAS,GACV,GAAG,UAAU;IAEd,IAAA,MAAM,MAAM,GAAG;IACb,QAAA,GAAG,EAAE,SAAS;IACd,QAAA,KAAK,EAAE,WAAW;IAClB,QAAA,MAAM,EAAE,YAAY;IACpB,QAAA,IAAI,EAAE,UAAU;SACjB;IACD,IAAA,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC;QAChE,MAAM,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK;QACpD,MAAM,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM;QAEtD,MAAM,GAAG,GAAG;IACT,SAAA,MAAM,CAAC,GAAG,GAAG,MAAM;aACnB,MAAM,CAAC,KAAK;IACZ,SAAA,IAAI,CAAC,OAAO,EAAE,SAAS;IACvB,SAAA,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;;QAG7B,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;IACrC,IAAA,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,KAAI;IACtC,QAAA,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC;IACpD,KAAC,CAAC;;IAEF,IAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAEd,IAAI,CAAC,MAAM,EAAE;YACX;IACG,aAAA,EAAE,CAAC,gBAAgB,EAAE,IAAI;IACzB,aAAA,EAAE,CAAC,iBAAiB,EAAE,IAAI;IAC1B,aAAA,EAAE,CAAC,gBAAgB,EAAE,IAAI;IACzB,aAAA,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC;;QAG9B,IAAI,CAAC,OAAO,EAAE;YACZ;IACG,aAAA,EAAE,CAAC,YAAY,EAAE,IAAI;IACrB,aAAA,EAAE,CAAC,iBAAiB,EAAE,IAAI;IAC1B,aAAA,EAAE,CAAC,gBAAgB,EAAE,IAAI;IACzB,aAAA,EAAE,CAAC,qBAAqB,EAAE,IAAI;IAC9B,aAAA,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC;;IAG9B,IAAA,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAC1C,WAAW,EACX,mBAAmB,KAAK;IACtB,UAAE;IACF,UAAE;IACF,cAAE,YAAY;IACZ,gBAAA,MAAM,CAAC,IAAI;oBACX,GAAG;qBACF,MAAM,CAAC,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;oBAC1C;IACF,cAAE,YAAY;qBACX,MAAM,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;oBACzC,GAAG;IACH,gBAAA,MAAM,CAAC,GAAG;IACV,gBAAA,GAAG,CACR;IACD,IAAA,OAAO,KAAK;IACd,CAAC;;ICtEM,MAAM,kBAAkB,GAAG,CAChC,CAAe;IACf,CAAe;IACf,UAA0B;SAChB;QACV,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,UAAU;IACrE,IAAA,IAAI,SAAS,KAAK,YAAY,EAAE;YAC9B,IAAI,YAAY,EAAE;gBAChB,OAAO,CAAA,EAAA,EAAK,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC;AACjC,UAAA,EAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC;AAClD,WAAA,EAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC;AACpD,UAAA,EAAA,CAAC,CAAC,CAAC,GAAG,SAAS,CAAI,CAAA,EAAA,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE;;iBAC1C;gBACL,OAAO,CAAA,EAAA,EAAK,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAA,CAAA,EAAI,CAAC,CAAC,CAAC;AAChC,UAAA,EAAA,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC;AAClD,WAAA,EAAA,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC;AACpD,UAAA,EAAA,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAI,CAAA,EAAA,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG;;;IAE7C,SAAA,IAAI,SAAS,KAAK,OAAO,EAAE;YAChC,IAAI,YAAY,EAAE;gBAChB,OAAO,CAAA,EAAA,EAAK,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC;UACnC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,CAAC,GAAG,EAAE,CAAA,CAAA,EAAI,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC;SAC/D,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,CAAC,CAAI,CAAA,EAAA,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC;AACzD,OAAA,EAAA,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,CAAC,CAAI,CAAA,EAAA,CAAC,CAAC,CAAC;AACzC,gBAAA,UAAU,GAAG,CAAC;gBACd,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;UAC1B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,CAAC,CAAI,CAAA,EAAA,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC;AACzD,QAAA,EAAA,CAAC,CAAC,CAAC,GAAG,SAAS,CAAI,CAAA,EAAA,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE;;iBACxC;gBACL,OAAO,CAAA,EAAA,EAAK,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAA,CAAA,EAAI,CAAC,CAAC,CAAC;UAClC,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAI,CAAA,EAAA,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC,GAAG,EAAE;SAC/D,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAA,CAAA,EAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC;QAC1D,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA,CAAA,EAAI,CAAC,CAAC,CAAC;gBACzD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC;UAC1B,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAA,CAAA,EAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC,CAAA;AACzD,QAAA,EAAA,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAI,CAAA,EAAA,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG;;;aAE3C;YACL,IAAI,YAAY,EAAE;gBAChB,OAAO,CAAA,EAAA,EAAK,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC;AACjC,UAAA,EAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC;AACnD,UAAA,EAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC;AACnD,UAAA,EAAA,CAAC,CAAC,CAAC,GAAG,SAAS,CAAI,CAAA,EAAA,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE;;iBAC1C;gBACL,OAAO,CAAA,EAAA,EAAK,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAA,CAAA,EAAI,CAAC,CAAC,CAAC;AAChC,UAAA,EAAA,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC;AACnD,UAAA,EAAA,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC;AACnD,UAAA,EAAA,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAI,CAAA,EAAA,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG;;;IAGtD,CAAC;IAED,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,MAAc,KAChE,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,GAAO,GAAG,CAAC;;ICtD3C,MAAM,aAAa,GAAG,CAC3B,IAAkE,EAClE,QAAwB,EACxB,KAAmC,EACnC,QAAsC,KAEtC;IACG,KAAA,KAAK;IACL,KAAA,MAAM,CAAC,MAAM,EAAE,GAAG;IAClB,KAAA,IAAI,CAAC,OAAO,EAAE,MAAM;IACpB,KAAA,IAAI,CAAC,GAAG,EAAE,CAAC,CAAM,KAAI;IACpB,IAAA,MAAM,wBAAwB,GAAG,yBAAyB,CACxD,KAAK,EACL,QAAQ,EACR,CAAC,CAAC,EAAE,CACL;IACD,IAAA,MAAM,CAAC,GAAG;YACR,CAAC,EAAE,wBAAwB,CAAC,EAAE;YAC9B,CAAC,EAAE,wBAAwB,CAAC,EAAE;SAC/B;QACD,OAAO,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC;IAC3C,CAAC;IACA,KAAA,IAAI,CAAC,MAAM,EAAE,MAAM;IACnB,KAAA,IAAI,CAAC,cAAc,EAAE,CAAC,CAAM,KAC3B,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACtB;IACA,KAAA,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAM,KACrB,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;KACtB;;IC5BE,MAAM,YAAY,GAAG,CAC1B,IAAkE,EAClE,QAAwB;IACxB,KAAmC,EACnC,QAAsC,KACpC;QACF;IACG,SAAA,IAAI;;IAEJ,SAAA,UAAU;IACV,SAAA,QAAQ,CAAC,QAAQ,CAAC,QAAQ;IAC1B,SAAA,KAAK,CAAC,SAAS,EAAE,CAAC;IAClB,SAAA,IAAI,CAAC,GAAG,EAAE,CAAC,CAAM,KAAI;IACpB,QAAA,MAAM,wBAAwB,GAAG,yBAAyB,CACxD,QAAQ,EACR,KAAK,EACL,CAAC,CAAC,EAAE,CACL;IACD,QAAA,MAAM,CAAC,GAAG;gBACR,CAAC,EAAE,wBAAwB,CAAC,EAAE;gBAC9B,CAAC,EAAE,wBAAwB,CAAC,EAAE;aAC/B;YACD,OAAO,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC;IAC3C,KAAC;IACA,SAAA,MAAM,EAAE;IACb,CAAC;;IC1BM,MAAM,cAAc,GAAG,CAC5B,SAA6E,EAC7E,IAAwE,EACxE,QAAwB,KACtB;QACF,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;QAExC;;IAEG,SAAA,UAAU;IACV,SAAA,QAAQ,CAAC,QAAQ,CAAC,QAAQ;IAC1B,SAAA,IAAI,CAAC,GAAG,EAAE,CAAC,CAAM,KAAI;YACpB,OAAO,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC;IAClD,KAAC;IACA,SAAA,IAAI,CAAC,MAAM,EAAE,MAAM;IACnB,SAAA,IAAI,CAAC,cAAc,EAAE,CAAC,CAAM,KAAI;;IAE/B,QAAA,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9B,KAAC;IACA,SAAA,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAM,KAAI;;IAEzB,QAAA,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9B,KAAC,CAAC;IACN,CAAC;;ICxBM,MAAM,aAAa,GAAG,CAC3B,IAAsE,EACtE,QAAwB;IACxB,KAAmC,EACnC,QAAsC,KACpC;QACF,MAAM,SAAS,GAAG;IACf,SAAA,KAAK;aACL,MAAM,CAAC,GAAG;IACV,SAAA,IAAI,CAAC,OAAO,EAAE,MAAM;;aAEpB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;IACvB,SAAA,IAAI,CAAC,WAAW,EAAE,CAAC,CAAM,KAAI;IAC5B,QAAA,MAAM,wBAAwB,GAAG,yBAAyB,CACxD,KAAK,EACL,QAAQ,EACR,CAAC,CAAC,EAAE,CACL;IACD,QAAA,OAAO,eAAe,CACpB,wBAAwB,CAAC,EAAE,EAC3B,wBAAwB,CAAC,EAAE,EAC3B,QAAQ,CACT;IACH,KAAC,CAAC;QAEJ;aACG,MAAM,CAAC,eAAe;IACtB,SAAA,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS;IAChC,SAAA,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC;IAEtC,IAAA,OAAO,SAAS;IAClB,CAAC;;IC/BM,MAAM,YAAY,GAAG,CAC1B,IAAsE,EACtE,QAAwB;IACxB,KAAmC,EACnC,QAAsC,KACpC;QACF,MAAM,QAAQ,GAAG;IACd,SAAA,IAAI;;IAEJ,SAAA,UAAU;IACV,SAAA,QAAQ,CAAC,QAAQ,CAAC,QAAQ;IAC1B,SAAA,KAAK,CAAC,SAAS,EAAE,CAAC;IAClB,SAAA,IAAI,CAAC,WAAW,EAAE,CAAC,CAAM,KAAI;IAC5B,QAAA,MAAM,wBAAwB,GAAG,yBAAyB,CACxD,QAAQ,EACR,KAAK,EACL,CAAC,CAAC,EAAE,CACL;IACD,QAAA,OAAO,eAAe,CACpB,wBAAwB,CAAC,EAAE,EAC3B,wBAAwB,CAAC,EAAE,EAC3B,QAAQ,CACT;IACH,KAAC;IACA,SAAA,MAAM,EAAE;IAEX,IAAA,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC;IACnD,IAAA,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;IACzC,IAAA,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC;IACrD,CAAC;;IC9BM,MAAM,cAAc,GAAG,CAC5B,SAKC,EACD,IAAyE,EACzE,QAAyB,KACvB;QACF,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;QACxC;;IAEG,SAAA,UAAU;IACV,SAAA,QAAQ,CAAC,QAAQ,CAAC,QAAQ;;IAE1B,SAAA,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,KAAI;YACvB,OAAO,QAAQ,CAAC;IACd,cAAE,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG;IACnC,cAAE,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG;IAC1C,KAAC,CAAC;QAEJ;aACG,MAAM,CAAC,eAAe;IACtB,SAAA,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS;IAChC,SAAA,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU;IAClC,SAAA,KAAK,CAAC,UAAU,EAAE,SAAS;aAC3B,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAiB,CAAC;aAC7E,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAiB,CAAC;aACvF,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAiB,CAAC;IACvF,SAAA,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAiB,CAAC,CAAC;IACxE,CAAC;;IC7BM,MAAM,kBAAkB,GAAG,CAChC,IAAS,EACT,UAA0B,KACJ;QACtB,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,GAAG,UAAU;IAC3D,IAAA,OAAO;IACL,UAAE;IACG,aAAA,QAAQ;iBACR,EAAE,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,KAAK,CAAC;IACvB,aAAA,QAAQ,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI;IACnD,UAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAClD,CAAC;IAEM,MAAM,oBAAoB,GAAG,CAAI,UAA0B,KAAI;IACpE,IAAA,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC;QAChE,OAAO,UAAU,CAAC,mBAAmB,KAAK,MAAM,IAAI,UAAU,CAAC;IAC7D,UAAE;IACG,aAAA,IAAI;IACJ,aAAA,IAAI,CAAC;gBACJ,UAAU,GAAG,UAAU,CAAC,UAAU;gBAClC,SAAS,GAAG,UAAU,CAAC,SAAS;aACjC;cACH,UAAU,CAAC,mBAAmB,KAAK,MAAM,IAAI,CAAC,UAAU,CAAC;IAC3D,cAAE;IACG,iBAAA,IAAI;IACJ,iBAAA,IAAI,CAAC;oBACJ,SAAS,GAAG,UAAU,CAAC,SAAS;oBAChC,UAAU,GAAG,UAAU,CAAC,UAAU;iBACnC;IACL,cAAE,UAAU,CAAC,YAAY,KAAK;IAC9B,kBAAE;IACG,qBAAA,IAAI;IACJ,qBAAA,QAAQ,CAAC;IACR,oBAAA,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,wBAAwB;IAC3D,oBAAA,UAAU,CAAC,SAAS;qBACrB;IACL,kBAAE;IACG,qBAAA,IAAI;IACJ,qBAAA,QAAQ,CAAC;IACR,oBAAA,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,wBAAwB;IAC1D,oBAAA,UAAU,CAAC,UAAU;IACtB,iBAAA,CAAC;IACV,CAAC;;AClCY,UAAA,OAAO,GAAG;QACrB,MAAM;;IAGR,SAAS,MAAM,CAAI,YAAqC,EAAA;IACtD,IAAA,MAAM,eAAe,GAAuB;IAC1C,QAAA,IAAI,EAAE,EAAE;IACR,QAAA,MAAM,EAAE,EAAE;IACV,QAAA,KAAK,EAAE,IAAI;IACX,QAAA,gBAAgB,EAAE,QAAQ;IAC1B,QAAA,WAAW,EAAE,IAAI;IACjB,QAAA,SAAS,EAAE,GAAG;IACd,QAAA,UAAU,EAAE,GAAG;IACf,QAAA,mBAAmB,EAAE,GAAG;IACxB,QAAA,UAAU,EAAE,MAAM,MAAM;IACxB,QAAA,SAAS,EAAE,MAAM,SAAS;IAC1B,QAAA,SAAS,EAAE,MAAM,EAAE;IACnB,QAAA,SAAS,EAAE,kBAAkB;IAC7B,QAAA,YAAY,EAAE,IAAI;IAClB,QAAA,MAAM,EAAE,KAAK;IACb,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,QAAQ,EAAE,GAAG;IACb,QAAA,WAAW,EAAE,MAAM,SAAS;IAC5B,QAAA,gBAAgB,EAAE,MAAM,SAAS;IACjC,QAAA,gBAAgB,EAAE,MAAM,SAAS;IACjC,QAAA,YAAY,EAAE,CAAC;IACf,QAAA,UAAU,EAAE,CAAC;IACb,QAAA,WAAW,EAAE,CAAC;IACd,QAAA,SAAS,EAAE,CAAC;IACZ,QAAA,wBAAwB,EAAE,IAAI;SAC/B;;IAGD,IAAA,IAAI,QAAQ,GAAmB;IAC7B,QAAA,GAAG,eAAe;IAClB,QAAA,GAAG,YAAY;SAChB;QAED,IAAI,QAAQ,GAAiC,EAAE;IAE/C,IAAA,SAAS,IAAI,CACX,GAAiD,EACjD,YAAoC,EAAA;IAEpC,QAAA,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,EAAkC;YAExE,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEjD,QAAA,MAAM,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,GAAG,QAAQ;IAC7D,QAAA,IAAI,mBAAmB,KAAK,MAAM,EAAE;;IAElC,YAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;IAClB,gBAAA,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,SAAS,GAAG,mBAAmB;IAC1D,aAAC,CAAC;;IAGJ,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,WAAuC,KAAI;IACxD,YAAA,MAAM,sBAAsB,GAAG,QAAQ,CAAC,IAAI,CAC1C,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,CACrC;gBACD,WAAW,CAAC,EAAE,GAAG;sBACb,sBAAsB,CAAC;IACzB,kBAAE,WAAW,CAAC,CAAC;gBACjB,WAAW,CAAC,EAAE,GAAG;sBACb,sBAAsB,CAAC;IACzB,kBAAE,WAAW,CAAC,CAAC;IACnB,SAAC,CAAC;;IAGF,QAAA,MAAM,IAAI,GAKN,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAM,KAAI;IACjD,YAAA,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC1B,SAAC,CAAC;IAEF,QAAA,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;;IAEhE,QAAA,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC;YACzC,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;;IAI7C,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAM,KAAI;gBAC7D,OAAO,CAAC,CAAC,EAAE;IACb,SAAC,CAAC;IAEF,QAAA,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;;IAEhE,QAAA,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC;YACzC,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;IAE7C,QAAA,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC;;IAGvB,IAAA,SAAS,OAAO,CAAC,IAAS,EAAE,WAAqC,EAAA;YAC/D,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAK;gBACvC,IAAI,WAAW,EAAE;oBACf,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,WAAW,EAAE;;gBAE5C,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC;IACrD,YAAA,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC;gBAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;;IAGzC,YAAA,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC;IACzB,SAAC,CAAC;;QAGJ,SAAS,KAAK,CAAC,UAAmB,EAAA;YAChC,MAAM,MAAM,GAAG;kBACX,QAAQ,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAA,MAAA,CAAQ;kBAClD,QAAQ,CAAC,aAAa,CAAC,CAAI,CAAA,EAAA,QAAQ,CAAC,MAAM,CAAE,CAAA,CAAC;YACjD,IAAI,MAAM,EAAE;IACV,YAAA,OAAO,MAAM,CAAC,UAAU,EAAE;IACxB,gBAAA,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC;;;YAGzC,QAAQ,GAAG,EAAE;;IAGf,IAAA,MAAM,UAAU,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;IAErC,IAAA,MAAM,GAAG,GAAG,aAAa,CAAC,QAAQ,CAAC;IACnC,IAAA,OAAO,UAAU;IACnB;;;;;;;;;;"} \ No newline at end of file diff --git a/dist/example/index.html b/dist/example/index.html index 06c2684..25c80b6 100644 --- a/dist/example/index.html +++ b/dist/example/index.html @@ -1,26 +1,34 @@ - - - - - - - - - - - - -
- - - - - \ 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"