-
-
-
-
-
-
-
-
-
-
-
diff --git a/development/charts/flamegraph/lib/d3-flamegraph-tooltip.js b/development/charts/flamegraph/lib/d3-flamegraph-tooltip.js
deleted file mode 100644
index cc042a0f281b..000000000000
--- a/development/charts/flamegraph/lib/d3-flamegraph-tooltip.js
+++ /dev/null
@@ -1,3117 +0,0 @@
-(function webpackUniversalModuleDefinition(root, factory) {
- if(typeof exports === 'object' && typeof module === 'object')
- module.exports = factory();
- else if(typeof define === 'function' && define.amd)
- define([], factory);
- else if(typeof exports === 'object')
- exports["flamegraph"] = factory();
- else
- root["flamegraph"] = root["flamegraph"] || {}, root["flamegraph"]["tooltip"] = factory();
-})(self, function() {
-return /******/ (() => { // webpackBootstrap
-/******/ "use strict";
-/******/ // The require scope
-/******/ var __webpack_require__ = {};
-/******/
-/************************************************************************/
-/******/ /* webpack/runtime/define property getters */
-/******/ (() => {
-/******/ // define getter functions for harmony exports
-/******/ __webpack_require__.d = (exports, definition) => {
-/******/ for(var key in definition) {
-/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
-/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
-/******/ }
-/******/ }
-/******/ };
-/******/ })();
-/******/
-/******/ /* webpack/runtime/hasOwnProperty shorthand */
-/******/ (() => {
-/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
-/******/ })();
-/******/
-/******/ /* webpack/runtime/make namespace object */
-/******/ (() => {
-/******/ // define __esModule on exports
-/******/ __webpack_require__.r = (exports) => {
-/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
-/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
-/******/ }
-/******/ Object.defineProperty(exports, '__esModule', { value: true });
-/******/ };
-/******/ })();
-/******/
-/************************************************************************/
-var __webpack_exports__ = {};
-// ESM COMPAT FLAG
-__webpack_require__.r(__webpack_exports__);
-
-// EXPORTS
-__webpack_require__.d(__webpack_exports__, {
- "defaultFlamegraphTooltip": () => (/* binding */ defaultFlamegraphTooltip)
-});
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selector.js
-function none() {}
-
-/* harmony default export */ function selector(selector) {
- return selector == null ? none : function() {
- return this.querySelector(selector);
- };
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/select.js
-
-
-
-/* harmony default export */ function selection_select(select) {
- if (typeof select !== "function") select = selector(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);
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/array.js
-// Given something array like (or null), returns something that is strictly an
-// array. This is used to ensure that array-like objects passed to d3.selectAll
-// or selection.selectAll are converted into proper arrays when creating a
-// selection; we don’t ever want to create a selection backed by a live
-// HTMLCollection or NodeList. However, note that selection.selectAll will use a
-// static NodeList as a group, since it safely derived from querySelectorAll.
-function array(x) {
- return x == null ? [] : Array.isArray(x) ? x : Array.from(x);
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selectorAll.js
-function empty() {
- return [];
-}
-
-/* harmony default export */ function selectorAll(selector) {
- return selector == null ? empty : function() {
- return this.querySelectorAll(selector);
- };
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/selectAll.js
-
-
-
-
-function arrayAll(select) {
- return function() {
- return array(select.apply(this, arguments));
- };
-}
-
-/* harmony default export */ function selectAll(select) {
- if (typeof select === "function") select = arrayAll(select);
- else select = selectorAll(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);
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/matcher.js
-/* harmony default export */ function matcher(selector) {
- return function() {
- return this.matches(selector);
- };
-}
-
-function childMatcher(selector) {
- return function(node) {
- return node.matches(selector);
- };
-}
-
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/selectChild.js
-
-
-var find = Array.prototype.find;
-
-function childFind(match) {
- return function() {
- return find.call(this.children, match);
- };
-}
-
-function childFirst() {
- return this.firstElementChild;
-}
-
-/* harmony default export */ function selectChild(match) {
- return this.select(match == null ? childFirst
- : childFind(typeof match === "function" ? match : childMatcher(match)));
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/selectChildren.js
-
-
-var filter = Array.prototype.filter;
-
-function children() {
- return Array.from(this.children);
-}
-
-function childrenFilter(match) {
- return function() {
- return filter.call(this.children, match);
- };
-}
-
-/* harmony default export */ function selectChildren(match) {
- return this.selectAll(match == null ? children
- : childrenFilter(typeof match === "function" ? match : childMatcher(match)));
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/filter.js
-
-
-
-/* harmony default export */ function selection_filter(match) {
- if (typeof match !== "function") match = matcher(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);
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/sparse.js
-/* harmony default export */ function sparse(update) {
- return new Array(update.length);
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/enter.js
-
-
-
-/* harmony default export */ function enter() {
- return new Selection(this._enter || this._groups.map(sparse), this._parents);
-}
-
-function EnterNode(parent, datum) {
- this.ownerDocument = parent.ownerDocument;
- this.namespaceURI = parent.namespaceURI;
- this._next = null;
- this._parent = parent;
- this.__data__ = datum;
-}
-
-EnterNode.prototype = {
- constructor: EnterNode,
- appendChild: function(child) { return this._parent.insertBefore(child, this._next); },
- insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },
- querySelector: function(selector) { return this._parent.querySelector(selector); },
- querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }
-};
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/constant.js
-/* harmony default export */ function src_constant(x) {
- return function() {
- return x;
- };
-}
-
-;// CONCATENATED MODULE: ../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;
-
- // Put any non-null nodes that fit into update.
- // Put any null nodes into enter.
- // Put any remaining data into enter.
- for (; i < dataLength; ++i) {
- if (node = group[i]) {
- node.__data__ = data[i];
- update[i] = node;
- } else {
- enter[i] = new EnterNode(parent, data[i]);
- }
- }
-
- // Put any non-null nodes that don’t fit into exit.
- for (; i < groupLength; ++i) {
- if (node = group[i]) {
- exit[i] = node;
- }
- }
-}
-
-function bindKey(parent, group, enter, update, exit, data, key) {
- var i,
- node,
- nodeByKeyValue = new Map,
- groupLength = group.length,
- dataLength = data.length,
- keyValues = new Array(groupLength),
- keyValue;
-
- // Compute the key for each node.
- // If multiple nodes have the same key, the duplicates are added to exit.
- 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);
- }
- }
- }
-
- // Compute the key for each datum.
- // If there a node associated with this key, join and add it to update.
- // If there is not (or the key is a duplicate), add it to enter.
- 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]);
- }
- }
-
- // Add any remaining nodes that were not bound to data to exit.
- for (i = 0; i < groupLength; ++i) {
- if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {
- exit[i] = node;
- }
- }
-}
-
-function datum(node) {
- return node.__data__;
-}
-
-/* harmony default export */ function data(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 = src_constant(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);
-
- // Now connect the enter nodes to their following update node, such that
- // appendChild can insert the materialized enter node before this node,
- // rather than at the end of the parent node.
- 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;
-}
-
-// Given some data, this returns an array-like view of it: an object that
-// exposes a length property and allows numeric indexing. Note that unlike
-// selectAll, this isn’t worried about “live” collections because the resulting
-// array will only be used briefly while data is being bound. (It is possible to
-// cause the data to change while iterating by using a key function, but please
-// don’t; we’d rather avoid a gratuitous copy.)
-function arraylike(data) {
- return typeof data === "object" && "length" in data
- ? data // Array, TypedArray, NodeList, array-like
- : Array.from(data); // Map, Set, iterable, string, or anything else
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/exit.js
-
-
-
-/* harmony default export */ function exit() {
- return new Selection(this._exit || this._groups.map(sparse), this._parents);
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/join.js
-/* harmony default export */ function join(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;
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/merge.js
-
-
-/* harmony default export */ function merge(context) {
- var selection = context.selection ? context.selection() : context;
-
- for (var groups0 = this._groups, groups1 = selection._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);
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/order.js
-/* harmony default export */ function order() {
-
- 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;
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/sort.js
-
-
-/* harmony default export */ function sort(compare) {
- if (!compare) compare = ascending;
-
- function compareNode(a, b) {
- return a && b ? compare(a.__data__, b.__data__) : !a - !b;
- }
-
- 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();
-}
-
-function ascending(a, b) {
- return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/call.js
-/* harmony default export */ function call() {
- var callback = arguments[0];
- arguments[0] = this;
- callback.apply(null, arguments);
- return this;
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/nodes.js
-/* harmony default export */ function nodes() {
- return Array.from(this);
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/node.js
-/* harmony default export */ function node() {
-
- 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;
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/size.js
-/* harmony default export */ function size() {
- let size = 0;
- for (const node of this) ++size; // eslint-disable-line no-unused-vars
- return size;
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/empty.js
-/* harmony default export */ function selection_empty() {
- return !this.node();
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/each.js
-/* harmony default export */ function each(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;
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/namespaces.js
-var xhtml = "http://www.w3.org/1999/xhtml";
-
-/* harmony default export */ const namespaces = ({
- svg: "http://www.w3.org/2000/svg",
- xhtml: xhtml,
- xlink: "http://www.w3.org/1999/xlink",
- xml: "http://www.w3.org/XML/1998/namespace",
- xmlns: "http://www.w3.org/2000/xmlns/"
-});
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/namespace.js
-
-
-/* harmony default export */ function namespace(name) {
- var prefix = name += "", i = prefix.indexOf(":");
- if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1);
- return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/attr.js
-
-
-function attrRemove(name) {
- return function() {
- this.removeAttribute(name);
- };
-}
-
-function attrRemoveNS(fullname) {
- return function() {
- this.removeAttributeNS(fullname.space, fullname.local);
- };
-}
-
-function attrConstant(name, value) {
- return function() {
- this.setAttribute(name, value);
- };
-}
-
-function attrConstantNS(fullname, value) {
- return function() {
- this.setAttributeNS(fullname.space, fullname.local, value);
- };
-}
-
-function attrFunction(name, value) {
- return function() {
- var v = value.apply(this, arguments);
- if (v == null) this.removeAttribute(name);
- else this.setAttribute(name, v);
- };
-}
-
-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);
- };
-}
-
-/* harmony default export */ function attr(name, value) {
- var fullname = namespace(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));
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/window.js
-/* harmony default export */ function src_window(node) {
- return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node
- || (node.document && node) // node is a Window
- || node.defaultView; // node is a Document
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/style.js
-
-
-function styleRemove(name) {
- return function() {
- this.style.removeProperty(name);
- };
-}
-
-function styleConstant(name, value, priority) {
- return function() {
- this.style.setProperty(name, value, priority);
- };
-}
-
-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);
- };
-}
-
-/* harmony default export */ function style(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);
-}
-
-function styleValue(node, name) {
- return node.style.getPropertyValue(name)
- || src_window(node).getComputedStyle(node, null).getPropertyValue(name);
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/property.js
-function propertyRemove(name) {
- return function() {
- delete this[name];
- };
-}
-
-function propertyConstant(name, value) {
- return function() {
- this[name] = value;
- };
-}
-
-function propertyFunction(name, value) {
- return function() {
- var v = value.apply(this, arguments);
- if (v == null) delete this[name];
- else this[name] = v;
- };
-}
-
-/* harmony default export */ function property(name, value) {
- return arguments.length > 1
- ? this.each((value == null
- ? propertyRemove : typeof value === "function"
- ? propertyFunction
- : propertyConstant)(name, value))
- : this.node()[name];
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/classed.js
-function classArray(string) {
- return string.trim().split(/^|\s+/);
-}
-
-function classList(node) {
- return node.classList || new ClassList(node);
-}
-
-function ClassList(node) {
- this._node = node;
- this._names = classArray(node.getAttribute("class") || "");
-}
-
-ClassList.prototype = {
- add: function(name) {
- var i = this._names.indexOf(name);
- if (i < 0) {
- this._names.push(name);
- this._node.setAttribute("class", this._names.join(" "));
- }
- },
- remove: function(name) {
- var i = this._names.indexOf(name);
- if (i >= 0) {
- this._names.splice(i, 1);
- this._node.setAttribute("class", this._names.join(" "));
- }
- },
- contains: function(name) {
- return this._names.indexOf(name) >= 0;
- }
-};
-
-function classedAdd(node, names) {
- var list = classList(node), i = -1, n = names.length;
- while (++i < n) list.add(names[i]);
-}
-
-function classedRemove(node, names) {
- var list = classList(node), i = -1, n = names.length;
- while (++i < n) list.remove(names[i]);
-}
-
-function classedTrue(names) {
- return function() {
- classedAdd(this, names);
- };
-}
-
-function classedFalse(names) {
- return function() {
- classedRemove(this, names);
- };
-}
-
-function classedFunction(names, value) {
- return function() {
- (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);
- };
-}
-
-/* harmony default export */ function classed(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));
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/text.js
-function textRemove() {
- this.textContent = "";
-}
-
-function textConstant(value) {
- return function() {
- this.textContent = value;
- };
-}
-
-function textFunction(value) {
- return function() {
- var v = value.apply(this, arguments);
- this.textContent = v == null ? "" : v;
- };
-}
-
-/* harmony default export */ function selection_text(value) {
- return arguments.length
- ? this.each(value == null
- ? textRemove : (typeof value === "function"
- ? textFunction
- : textConstant)(value))
- : this.node().textContent;
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/html.js
-function htmlRemove() {
- this.innerHTML = "";
-}
-
-function htmlConstant(value) {
- return function() {
- this.innerHTML = value;
- };
-}
-
-function htmlFunction(value) {
- return function() {
- var v = value.apply(this, arguments);
- this.innerHTML = v == null ? "" : v;
- };
-}
-
-/* harmony default export */ function html(value) {
- return arguments.length
- ? this.each(value == null
- ? htmlRemove : (typeof value === "function"
- ? htmlFunction
- : htmlConstant)(value))
- : this.node().innerHTML;
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/raise.js
-function raise() {
- if (this.nextSibling) this.parentNode.appendChild(this);
-}
-
-/* harmony default export */ function selection_raise() {
- return this.each(raise);
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/lower.js
-function lower() {
- if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);
-}
-
-/* harmony default export */ function selection_lower() {
- return this.each(lower);
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/creator.js
-
-
-
-function creatorInherit(name) {
- return function() {
- var document = this.ownerDocument,
- uri = this.namespaceURI;
- return uri === xhtml && document.documentElement.namespaceURI === xhtml
- ? document.createElement(name)
- : document.createElementNS(uri, name);
- };
-}
-
-function creatorFixed(fullname) {
- return function() {
- return this.ownerDocument.createElementNS(fullname.space, fullname.local);
- };
-}
-
-/* harmony default export */ function creator(name) {
- var fullname = namespace(name);
- return (fullname.local
- ? creatorFixed
- : creatorInherit)(fullname);
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/append.js
-
-
-/* harmony default export */ function append(name) {
- var create = typeof name === "function" ? name : creator(name);
- return this.select(function() {
- return this.appendChild(create.apply(this, arguments));
- });
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/insert.js
-
-
-
-function constantNull() {
- return null;
-}
-
-/* harmony default export */ function insert(name, before) {
- var create = typeof name === "function" ? name : creator(name),
- select = before == null ? constantNull : typeof before === "function" ? before : selector(before);
- return this.select(function() {
- return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);
- });
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/remove.js
-function remove() {
- var parent = this.parentNode;
- if (parent) parent.removeChild(this);
-}
-
-/* harmony default export */ function selection_remove() {
- return this.each(remove);
-}
-
-;// CONCATENATED MODULE: ../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;
-}
-
-function selection_cloneDeep() {
- var clone = this.cloneNode(true), parent = this.parentNode;
- return parent ? parent.insertBefore(clone, this.nextSibling) : clone;
-}
-
-/* harmony default export */ function clone(deep) {
- return this.select(deep ? selection_cloneDeep : selection_cloneShallow);
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/datum.js
-/* harmony default export */ function selection_datum(value) {
- return arguments.length
- ? this.property("__data__", value)
- : this.node().__data__;
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/on.js
-function contextListener(listener) {
- return function(event) {
- listener.call(this, event, this.__data__);
- };
-}
-
-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};
- });
-}
-
-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;
- };
-}
-
-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: value, listener: listener, options: options};
- if (!on) this.__on = [o];
- else on.push(o);
- };
-}
-
-/* harmony default export */ function on(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;
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/dispatch.js
-
-
-function dispatchEvent(node, type, params) {
- var window = src_window(node),
- event = window.CustomEvent;
-
- if (typeof event === "function") {
- event = new event(type, params);
- } else {
- event = window.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);
-}
-
-function dispatchConstant(type, params) {
- return function() {
- return dispatchEvent(this, type, params);
- };
-}
-
-function dispatchFunction(type, params) {
- return function() {
- return dispatchEvent(this, type, params.apply(this, arguments));
- };
-}
-
-/* harmony default export */ function dispatch(type, params) {
- return this.each((typeof params === "function"
- ? dispatchFunction
- : dispatchConstant)(type, params));
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/iterator.js
-/* harmony default export */ function* iterator() {
- 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;
- }
- }
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/index.js
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-var root = [null];
-
-function Selection(groups, parents) {
- this._groups = groups;
- this._parents = parents;
-}
-
-function selection() {
- return new Selection([[document.documentElement]], root);
-}
-
-function selection_selection() {
- return this;
-}
-
-Selection.prototype = selection.prototype = {
- constructor: Selection,
- select: selection_select,
- selectAll: selectAll,
- selectChild: selectChild,
- selectChildren: selectChildren,
- filter: selection_filter,
- data: data,
- enter: enter,
- exit: exit,
- join: join,
- merge: merge,
- selection: selection_selection,
- order: order,
- sort: sort,
- call: call,
- nodes: nodes,
- node: node,
- size: size,
- empty: selection_empty,
- each: each,
- attr: attr,
- style: style,
- property: property,
- classed: classed,
- text: selection_text,
- html: html,
- raise: selection_raise,
- lower: selection_lower,
- append: append,
- insert: insert,
- remove: selection_remove,
- clone: clone,
- datum: selection_datum,
- on: on,
- dispatch: dispatch,
- [Symbol.iterator]: iterator
-};
-
-/* harmony default export */ const src_selection = (selection);
-
-;// CONCATENATED MODULE: ../node_modules/d3-selection/src/select.js
-
-
-/* harmony default export */ function src_select(selector) {
- return typeof selector === "string"
- ? new Selection([[document.querySelector(selector)]], [document.documentElement])
- : new Selection([[selector]], root);
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-dispatch/src/dispatch.js
-var noop = {value: () => {}};
-
-function dispatch_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(_);
-}
-
-function Dispatch(_) {
- this._ = _;
-}
-
-function dispatch_parseTypenames(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};
- });
-}
-
-Dispatch.prototype = dispatch_dispatch.prototype = {
- constructor: Dispatch,
- on: function(typename, callback) {
- var _ = this._,
- T = dispatch_parseTypenames(typename + "", _),
- t,
- i = -1,
- n = T.length;
-
- // If no callback was specified, return the callback of the given type and name.
- if (arguments.length < 2) {
- while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;
- return;
- }
-
- // If a type was specified, set the callback for the given type and name.
- // Otherwise, if a null callback was specified, remove callbacks of the given name.
- 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;
- },
- copy: function() {
- var copy = {}, _ = this._;
- for (var t in _) copy[t] = _[t].slice();
- return new Dispatch(copy);
- },
- call: 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);
- },
- apply: 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);
- }
-};
-
-function get(type, name) {
- for (var i = 0, n = type.length, c; i < n; ++i) {
- if ((c = type[i]).name === name) {
- return c.value;
- }
- }
-}
-
-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: name, value: callback});
- return type;
-}
-
-/* harmony default export */ const src_dispatch = (dispatch_dispatch);
-
-;// CONCATENATED MODULE: ../node_modules/d3-timer/src/timer.js
-var timer_frame = 0, // is an animation frame pending?
- timeout = 0, // is a timeout pending?
- interval = 0, // are any timers active?
- pokeDelay = 1000, // how frequently we check for clock skew
- taskHead,
- taskTail,
- clockLast = 0,
- clockNow = 0,
- clockSkew = 0,
- clock = typeof performance === "object" && performance.now ? performance : Date,
- 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);
-}
-
-function clearNow() {
- clockNow = 0;
-}
-
-function Timer() {
- this._call =
- this._time =
- this._next = null;
-}
-
-Timer.prototype = timer.prototype = {
- constructor: Timer,
- restart: 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();
- },
- stop: function() {
- if (this._call) {
- this._call = null;
- this._time = Infinity;
- sleep();
- }
- }
-};
-
-function timer(callback, delay, time) {
- var t = new Timer;
- t.restart(callback, delay, time);
- return t;
-}
-
-function timerFlush() {
- now(); // Get the current time, if not already set.
- ++timer_frame; // Pretend we’ve set an alarm, if we haven’t already.
- var t = taskHead, e;
- while (t) {
- if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);
- t = t._next;
- }
- --timer_frame;
-}
-
-function wake() {
- clockNow = (clockLast = clock.now()) + clockSkew;
- timer_frame = timeout = 0;
- try {
- timerFlush();
- } finally {
- timer_frame = 0;
- nap();
- clockNow = 0;
- }
-}
-
-function poke() {
- var now = clock.now(), delay = now - clockLast;
- if (delay > pokeDelay) clockSkew -= delay, clockLast = now;
-}
-
-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);
-}
-
-function sleep(time) {
- if (timer_frame) return; // Soonest alarm already set, or will be.
- if (timeout) timeout = clearTimeout(timeout);
- var delay = time - clockNow; // Strictly less than if we recomputed 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);
- timer_frame = 1, setFrame(wake);
- }
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-timer/src/timeout.js
-
-
-/* harmony default export */ function src_timeout(callback, delay, time) {
- var t = new Timer;
- delay = delay == null ? 0 : +delay;
- t.restart(elapsed => {
- t.stop();
- callback(elapsed + delay);
- }, delay, time);
- return t;
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/schedule.js
-
-
-
-var emptyOn = src_dispatch("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;
-
-/* harmony default export */ function schedule(node, name, id, index, group, timing) {
- var schedules = node.__transition;
- if (!schedules) node.__transition = {};
- else if (id in schedules) return;
- create(node, id, {
- name: name,
- index: index, // For context during callback.
- group: 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
- });
-}
-
-function init(node, id) {
- var schedule = schedule_get(node, id);
- if (schedule.state > CREATED) throw new Error("too late; already scheduled");
- return schedule;
-}
-
-function schedule_set(node, id) {
- var schedule = schedule_get(node, id);
- if (schedule.state > STARTED) throw new Error("too late; already running");
- return schedule;
-}
-
-function schedule_get(node, id) {
- var schedule = node.__transition;
- if (!schedule || !(schedule = schedule[id])) throw new Error("transition not found");
- return schedule;
-}
-
-function create(node, id, self) {
- var schedules = node.__transition,
- tween;
-
- // Initialize the self timer when the transition is created.
- // Note the actual delay is not known until the first callback!
- schedules[id] = self;
- self.timer = timer(schedule, 0, self.time);
-
- function schedule(elapsed) {
- self.state = SCHEDULED;
- self.timer.restart(start, self.delay, self.time);
-
- // If the elapsed delay is less than our first sleep, start immediately.
- if (self.delay <= elapsed) start(elapsed - self.delay);
- }
-
- function start(elapsed) {
- var i, j, n, o;
-
- // If the state is not SCHEDULED, then we previously errored on start.
- if (self.state !== SCHEDULED) return stop();
-
- for (i in schedules) {
- o = schedules[i];
- if (o.name !== self.name) continue;
-
- // While this element already has a starting transition during this frame,
- // defer starting an interrupting transition until that transition has a
- // chance to tick (and possibly end); see d3/d3-transition#54!
- if (o.state === STARTED) return src_timeout(start);
-
- // Interrupt the active transition, if any.
- if (o.state === RUNNING) {
- o.state = ENDED;
- o.timer.stop();
- o.on.call("interrupt", node, node.__data__, o.index, o.group);
- delete schedules[i];
- }
-
- // Cancel any pre-empted transitions.
- else if (+i < id) {
- o.state = ENDED;
- o.timer.stop();
- o.on.call("cancel", node, node.__data__, o.index, o.group);
- delete schedules[i];
- }
- }
-
- // Defer the first tick to end of the current frame; see d3/d3#1576.
- // Note the transition may be canceled after start and before the first tick!
- // Note this must be scheduled before the start event; see d3/d3-transition#16!
- // Assuming this is successful, subsequent callbacks go straight to tick.
- src_timeout(function() {
- if (self.state === STARTED) {
- self.state = RUNNING;
- self.timer.restart(tick, self.delay, self.time);
- tick(elapsed);
- }
- });
-
- // Dispatch the start event.
- // Note this must be done before the tween are initialized.
- self.state = STARTING;
- self.on.call("start", node, node.__data__, self.index, self.group);
- if (self.state !== STARTING) return; // interrupted
- self.state = STARTED;
-
- // Initialize the tween, deleting null tween.
- 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;
- }
-
- 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);
- }
-
- // Dispatch the end event.
- if (self.state === ENDING) {
- self.on.call("end", node, node.__data__, self.index, self.group);
- stop();
- }
- }
-
- function stop() {
- self.state = ENDED;
- self.timer.stop();
- delete schedules[id];
- for (var i in schedules) return; // eslint-disable-line no-unused-vars
- delete node.__transition;
- }
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/interrupt.js
-
-
-/* harmony default export */ function interrupt(node, name) {
- var schedules = node.__transition,
- schedule,
- active,
- empty = true,
- i;
-
- if (!schedules) return;
-
- name = name == null ? null : name + "";
-
- for (i in schedules) {
- if ((schedule = schedules[i]).name !== name) { empty = 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 (empty) delete node.__transition;
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/selection/interrupt.js
-
-
-/* harmony default export */ function selection_interrupt(name) {
- return this.each(function() {
- interrupt(this, name);
- });
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/number.js
-/* harmony default export */ function number(a, b) {
- return a = +a, b = +b, function(t) {
- return a * (1 - t) + b * t;
- };
-}
-
-;// CONCATENATED MODULE: ../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
-};
-
-/* harmony default export */ function decompose(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: scaleX,
- scaleY: scaleY
- };
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/transform/parse.js
-
-
-var svgNode;
-
-/* eslint-disable no-undef */
-function parseCss(value) {
- const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + "");
- return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);
-}
-
-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(value.a, value.b, value.c, value.d, value.e, value.f);
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/transform/index.js
-
-
-
-function interpolateTransform(parse, pxComma, pxParen, degParen) {
-
- function pop(s) {
- return s.length ? s.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(xa, xb)}, {i: i - 2, x: number(ya, yb)});
- } else if (xb || yb) {
- s.push("translate(" + xb + pxComma + yb + pxParen);
- }
- }
-
- function rotate(a, b, s, q) {
- if (a !== b) {
- if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path
- q.push({i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: number(a, b)});
- } else if (b) {
- s.push(pop(s) + "rotate(" + b + degParen);
- }
- }
-
- function skewX(a, b, s, q) {
- if (a !== b) {
- q.push({i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: number(a, b)});
- } else if (b) {
- s.push(pop(s) + "skewX(" + b + degParen);
- }
- }
-
- 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(xa, xb)}, {i: i - 2, x: number(ya, yb)});
- } else if (xb !== 1 || yb !== 1) {
- s.push(pop(s) + "scale(" + xb + "," + yb + ")");
- }
- }
-
- return function(a, b) {
- var s = [], // string constants and placeholders
- q = []; // number interpolators
- 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; // gc
- return function(t) {
- var i = -1, n = q.length, o;
- while (++i < n) s[(o = q[i]).i] = o.x(t);
- return s.join("");
- };
- };
-}
-
-var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)");
-var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")");
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/tween.js
-
-
-function tweenRemove(id, name) {
- var tween0, tween1;
- return function() {
- var schedule = schedule_set(this, id),
- tween = schedule.tween;
-
- // If this node shared tween with the previous node,
- // just assign the updated shared tween and we’re done!
- // Otherwise, copy-on-write.
- 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;
- };
-}
-
-function tweenFunction(id, name, value) {
- var tween0, tween1;
- if (typeof value !== "function") throw new Error;
- return function() {
- var schedule = schedule_set(this, id),
- tween = schedule.tween;
-
- // If this node shared tween with the previous node,
- // just assign the updated shared tween and we’re done!
- // Otherwise, copy-on-write.
- if (tween !== tween0) {
- tween1 = (tween0 = tween).slice();
- for (var t = {name: name, value: 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;
- };
-}
-
-/* harmony default export */ function tween(name, value) {
- var id = this._id;
-
- name += "";
-
- if (arguments.length < 2) {
- var tween = schedule_get(this.node(), id).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)(id, name, value));
-}
-
-function tweenValue(transition, name, value) {
- var id = transition._id;
-
- transition.each(function() {
- var schedule = schedule_set(this, id);
- (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);
- });
-
- return function(node) {
- return schedule_get(node, id).value[name];
- };
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-color/src/define.js
-/* harmony default export */ function src_define(constructor, factory, prototype) {
- constructor.prototype = factory.prototype = prototype;
- prototype.constructor = constructor;
-}
-
-function extend(parent, definition) {
- var prototype = Object.create(parent.prototype);
- for (var key in definition) prototype[key] = definition[key];
- return prototype;
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-color/src/color.js
-
-
-function Color() {}
-
-var darker = 0.7;
-var brighter = 1 / darker;
-
-var reI = "\\s*([+-]?\\d+)\\s*",
- reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",
- reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",
- reHex = /^#([0-9a-f]{3,8})$/,
- reRgbInteger = new RegExp("^rgb\\(" + [reI, reI, reI] + "\\)$"),
- reRgbPercent = new RegExp("^rgb\\(" + [reP, reP, reP] + "\\)$"),
- reRgbaInteger = new RegExp("^rgba\\(" + [reI, reI, reI, reN] + "\\)$"),
- reRgbaPercent = new RegExp("^rgba\\(" + [reP, reP, reP, reN] + "\\)$"),
- reHslPercent = new RegExp("^hsl\\(" + [reN, reP, reP] + "\\)$"),
- reHslaPercent = new RegExp("^hsla\\(" + [reN, reP, reP, reN] + "\\)$");
-
-var named = {
- aliceblue: 0xf0f8ff,
- antiquewhite: 0xfaebd7,
- aqua: 0x00ffff,
- aquamarine: 0x7fffd4,
- azure: 0xf0ffff,
- beige: 0xf5f5dc,
- bisque: 0xffe4c4,
- black: 0x000000,
- blanchedalmond: 0xffebcd,
- blue: 0x0000ff,
- blueviolet: 0x8a2be2,
- brown: 0xa52a2a,
- burlywood: 0xdeb887,
- cadetblue: 0x5f9ea0,
- chartreuse: 0x7fff00,
- chocolate: 0xd2691e,
- coral: 0xff7f50,
- cornflowerblue: 0x6495ed,
- cornsilk: 0xfff8dc,
- crimson: 0xdc143c,
- cyan: 0x00ffff,
- darkblue: 0x00008b,
- darkcyan: 0x008b8b,
- darkgoldenrod: 0xb8860b,
- darkgray: 0xa9a9a9,
- darkgreen: 0x006400,
- darkgrey: 0xa9a9a9,
- darkkhaki: 0xbdb76b,
- darkmagenta: 0x8b008b,
- darkolivegreen: 0x556b2f,
- darkorange: 0xff8c00,
- darkorchid: 0x9932cc,
- darkred: 0x8b0000,
- darksalmon: 0xe9967a,
- darkseagreen: 0x8fbc8f,
- darkslateblue: 0x483d8b,
- darkslategray: 0x2f4f4f,
- darkslategrey: 0x2f4f4f,
- darkturquoise: 0x00ced1,
- darkviolet: 0x9400d3,
- deeppink: 0xff1493,
- deepskyblue: 0x00bfff,
- dimgray: 0x696969,
- dimgrey: 0x696969,
- dodgerblue: 0x1e90ff,
- firebrick: 0xb22222,
- floralwhite: 0xfffaf0,
- forestgreen: 0x228b22,
- fuchsia: 0xff00ff,
- gainsboro: 0xdcdcdc,
- ghostwhite: 0xf8f8ff,
- gold: 0xffd700,
- goldenrod: 0xdaa520,
- gray: 0x808080,
- green: 0x008000,
- greenyellow: 0xadff2f,
- grey: 0x808080,
- honeydew: 0xf0fff0,
- hotpink: 0xff69b4,
- indianred: 0xcd5c5c,
- indigo: 0x4b0082,
- ivory: 0xfffff0,
- khaki: 0xf0e68c,
- lavender: 0xe6e6fa,
- lavenderblush: 0xfff0f5,
- lawngreen: 0x7cfc00,
- lemonchiffon: 0xfffacd,
- lightblue: 0xadd8e6,
- lightcoral: 0xf08080,
- lightcyan: 0xe0ffff,
- lightgoldenrodyellow: 0xfafad2,
- lightgray: 0xd3d3d3,
- lightgreen: 0x90ee90,
- lightgrey: 0xd3d3d3,
- lightpink: 0xffb6c1,
- lightsalmon: 0xffa07a,
- lightseagreen: 0x20b2aa,
- lightskyblue: 0x87cefa,
- lightslategray: 0x778899,
- lightslategrey: 0x778899,
- lightsteelblue: 0xb0c4de,
- lightyellow: 0xffffe0,
- lime: 0x00ff00,
- limegreen: 0x32cd32,
- linen: 0xfaf0e6,
- magenta: 0xff00ff,
- maroon: 0x800000,
- mediumaquamarine: 0x66cdaa,
- mediumblue: 0x0000cd,
- mediumorchid: 0xba55d3,
- mediumpurple: 0x9370db,
- mediumseagreen: 0x3cb371,
- mediumslateblue: 0x7b68ee,
- mediumspringgreen: 0x00fa9a,
- mediumturquoise: 0x48d1cc,
- mediumvioletred: 0xc71585,
- midnightblue: 0x191970,
- mintcream: 0xf5fffa,
- mistyrose: 0xffe4e1,
- moccasin: 0xffe4b5,
- navajowhite: 0xffdead,
- navy: 0x000080,
- oldlace: 0xfdf5e6,
- olive: 0x808000,
- olivedrab: 0x6b8e23,
- orange: 0xffa500,
- orangered: 0xff4500,
- orchid: 0xda70d6,
- palegoldenrod: 0xeee8aa,
- palegreen: 0x98fb98,
- paleturquoise: 0xafeeee,
- palevioletred: 0xdb7093,
- papayawhip: 0xffefd5,
- peachpuff: 0xffdab9,
- peru: 0xcd853f,
- pink: 0xffc0cb,
- plum: 0xdda0dd,
- powderblue: 0xb0e0e6,
- purple: 0x800080,
- rebeccapurple: 0x663399,
- red: 0xff0000,
- rosybrown: 0xbc8f8f,
- royalblue: 0x4169e1,
- saddlebrown: 0x8b4513,
- salmon: 0xfa8072,
- sandybrown: 0xf4a460,
- seagreen: 0x2e8b57,
- seashell: 0xfff5ee,
- sienna: 0xa0522d,
- silver: 0xc0c0c0,
- skyblue: 0x87ceeb,
- slateblue: 0x6a5acd,
- slategray: 0x708090,
- slategrey: 0x708090,
- snow: 0xfffafa,
- springgreen: 0x00ff7f,
- steelblue: 0x4682b4,
- tan: 0xd2b48c,
- teal: 0x008080,
- thistle: 0xd8bfd8,
- tomato: 0xff6347,
- turquoise: 0x40e0d0,
- violet: 0xee82ee,
- wheat: 0xf5deb3,
- white: 0xffffff,
- whitesmoke: 0xf5f5f5,
- yellow: 0xffff00,
- yellowgreen: 0x9acd32
-};
-
-src_define(Color, color, {
- copy: function(channels) {
- return Object.assign(new this.constructor, this, channels);
- },
- displayable: function() {
- return this.rgb().displayable();
- },
- hex: color_formatHex, // Deprecated! Use color.formatHex.
- formatHex: color_formatHex,
- formatHsl: color_formatHsl,
- formatRgb: color_formatRgb,
- toString: color_formatRgb
-});
-
-function color_formatHex() {
- return this.rgb().formatHex();
-}
-
-function color_formatHsl() {
- return hslConvert(this).formatHsl();
-}
-
-function color_formatRgb() {
- return this.rgb().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) // #ff0000
- : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00
- : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000
- : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000
- : null) // invalid hex
- : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)
- : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)
- : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)
- : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)
- : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)
- : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)
- : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins
- : format === "transparent" ? new Rgb(NaN, NaN, NaN, 0)
- : null;
-}
-
-function rgbn(n) {
- return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);
-}
-
-function rgba(r, g, b, a) {
- if (a <= 0) r = g = b = NaN;
- return new Rgb(r, g, b, a);
-}
-
-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);
-}
-
-function color_rgb(r, g, b, opacity) {
- return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);
-}
-
-function Rgb(r, g, b, opacity) {
- this.r = +r;
- this.g = +g;
- this.b = +b;
- this.opacity = +opacity;
-}
-
-src_define(Rgb, color_rgb, extend(Color, {
- brighter: function(k) {
- k = k == null ? brighter : Math.pow(brighter, k);
- return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
- },
- darker: function(k) {
- k = k == null ? darker : Math.pow(darker, k);
- return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
- },
- rgb: function() {
- return this;
- },
- displayable: function() {
- 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,
- formatRgb: rgb_formatRgb,
- toString: rgb_formatRgb
-}));
-
-function rgb_formatHex() {
- return "#" + hex(this.r) + hex(this.g) + hex(this.b);
-}
-
-function rgb_formatRgb() {
- var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));
- return (a === 1 ? "rgb(" : "rgba(")
- + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", "
- + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", "
- + Math.max(0, Math.min(255, Math.round(this.b) || 0))
- + (a === 1 ? ")" : ", " + a + ")");
-}
-
-function hex(value) {
- value = Math.max(0, Math.min(255, Math.round(value) || 0));
- return (value < 16 ? "0" : "") + value.toString(16);
-}
-
-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);
-}
-
-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);
-}
-
-function hsl(h, s, l, opacity) {
- return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);
-}
-
-function Hsl(h, s, l, opacity) {
- this.h = +h;
- this.s = +s;
- this.l = +l;
- this.opacity = +opacity;
-}
-
-src_define(Hsl, hsl, extend(Color, {
- brighter: function(k) {
- k = k == null ? brighter : Math.pow(brighter, k);
- return new Hsl(this.h, this.s, this.l * k, this.opacity);
- },
- darker: function(k) {
- k = k == null ? darker : Math.pow(darker, k);
- return new Hsl(this.h, this.s, this.l * k, this.opacity);
- },
- rgb: function() {
- 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
- );
- },
- displayable: function() {
- return (0 <= this.s && this.s <= 1 || isNaN(this.s))
- && (0 <= this.l && this.l <= 1)
- && (0 <= this.opacity && this.opacity <= 1);
- },
- formatHsl: function() {
- var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));
- return (a === 1 ? "hsl(" : "hsla(")
- + (this.h || 0) + ", "
- + (this.s || 0) * 100 + "%, "
- + (this.l || 0) * 100 + "%"
- + (a === 1 ? ")" : ", " + a + ")");
- }
-}));
-
-/* From FvD 13.37, CSS Color Module Level 3 */
-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;
-}
-
-;// CONCATENATED MODULE: ../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;
-}
-
-/* harmony default export */ function src_basis(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);
- };
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/basisClosed.js
-
-
-/* harmony default export */ function basisClosed(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);
- };
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/constant.js
-/* harmony default export */ const d3_interpolate_src_constant = (x => () => x);
-
-;// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/color.js
-
-
-function linear(a, d) {
- return function(t) {
- return a + t * d;
- };
-}
-
-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);
- };
-}
-
-function hue(a, b) {
- var d = b - a;
- return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);
-}
-
-function gamma(y) {
- return (y = +y) === 1 ? nogamma : function(a, b) {
- return b - a ? exponential(a, b, y) : d3_interpolate_src_constant(isNaN(a) ? b : a);
- };
-}
-
-function nogamma(a, b) {
- var d = b - a;
- return d ? linear(a, d) : d3_interpolate_src_constant(isNaN(a) ? b : a);
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/rgb.js
-
-
-
-
-
-/* harmony default export */ const rgb = ((function rgbGamma(y) {
- var color = gamma(y);
-
- function rgb(start, end) {
- var r = color((start = color_rgb(start)).r, (end = color_rgb(end)).r),
- g = color(start.g, end.g),
- b = color(start.b, end.b),
- opacity = nogamma(start.opacity, end.opacity);
- return function(t) {
- start.r = r(t);
- start.g = g(t);
- start.b = b(t);
- start.opacity = opacity(t);
- return start + "";
- };
- }
-
- rgb.gamma = rgbGamma;
-
- return rgb;
-})(1));
-
-function rgbSpline(spline) {
- return function(colors) {
- var n = colors.length,
- r = new Array(n),
- g = new Array(n),
- b = new Array(n),
- i, color;
- for (i = 0; i < n; ++i) {
- color = color_rgb(colors[i]);
- r[i] = color.r || 0;
- g[i] = color.g || 0;
- b[i] = color.b || 0;
- }
- r = spline(r);
- g = spline(g);
- b = spline(b);
- color.opacity = 1;
- return function(t) {
- color.r = r(t);
- color.g = g(t);
- color.b = b(t);
- return color + "";
- };
- };
-}
-
-var rgbBasis = rgbSpline(src_basis);
-var rgbBasisClosed = rgbSpline(basisClosed);
-
-;// CONCATENATED MODULE: ../node_modules/d3-interpolate/src/string.js
-
-
-var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,
- reB = new RegExp(reA.source, "g");
-
-function zero(b) {
- return function() {
- return b;
- };
-}
-
-function one(b) {
- return function(t) {
- return b(t) + "";
- };
-}
-
-/* harmony default export */ function string(a, b) {
- var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b
- am, // current match in a
- bm, // current match in b
- bs, // string preceding current number in b, if any
- i = -1, // index in s
- s = [], // string constants and placeholders
- q = []; // number interpolators
-
- // Coerce inputs to strings.
- a = a + "", b = b + "";
-
- // Interpolate pairs of numbers in a & b.
- while ((am = reA.exec(a))
- && (bm = reB.exec(b))) {
- if ((bs = bm.index) > bi) { // a string precedes the next number in b
- bs = b.slice(bi, bs);
- if (s[i]) s[i] += bs; // coalesce with previous string
- else s[++i] = bs;
- }
- if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match
- if (s[i]) s[i] += bm; // coalesce with previous string
- else s[++i] = bm;
- } else { // interpolate non-matching numbers
- s[++i] = null;
- q.push({i: i, x: number(am, bm)});
- }
- bi = reB.lastIndex;
- }
-
- // Add remains of b.
- if (bi < b.length) {
- bs = b.slice(bi);
- if (s[i]) s[i] += bs; // coalesce with previous string
- else s[++i] = bs;
- }
-
- // Special optimization for only a single match.
- // Otherwise, interpolate each of the numbers and rejoin the string.
- return s.length < 2 ? (q[0]
- ? one(q[0].x)
- : zero(b))
- : (b = q.length, function(t) {
- for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);
- return s.join("");
- });
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/interpolate.js
-
-
-
-/* harmony default export */ function interpolate(a, b) {
- var c;
- return (typeof b === "number" ? number
- : b instanceof color ? rgb
- : (c = color(b)) ? (b = c, rgb)
- : string)(a, b);
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/attr.js
-
-
-
-
-
-function attr_attrRemove(name) {
- return function() {
- this.removeAttribute(name);
- };
-}
-
-function attr_attrRemoveNS(fullname) {
- return function() {
- this.removeAttributeNS(fullname.space, fullname.local);
- };
-}
-
-function attr_attrConstant(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);
- };
-}
-
-function attr_attrConstantNS(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);
- };
-}
-
-function attr_attrFunction(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));
- };
-}
-
-function attr_attrFunctionNS(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));
- };
-}
-
-/* harmony default export */ function transition_attr(name, value) {
- var fullname = namespace(name), i = fullname === "transform" ? interpolateTransformSvg : interpolate;
- return this.attrTween(name, typeof value === "function"
- ? (fullname.local ? attr_attrFunctionNS : attr_attrFunction)(fullname, i, tweenValue(this, "attr." + name, value))
- : value == null ? (fullname.local ? attr_attrRemoveNS : attr_attrRemove)(fullname)
- : (fullname.local ? attr_attrConstantNS : attr_attrConstant)(fullname, i, value));
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/attrTween.js
-
-
-function attrInterpolate(name, i) {
- return function(t) {
- this.setAttribute(name, i.call(this, t));
- };
-}
-
-function attrInterpolateNS(fullname, i) {
- return function(t) {
- this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));
- };
-}
-
-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;
- }
- tween._value = value;
- return tween;
-}
-
-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;
- }
- tween._value = value;
- return tween;
-}
-
-/* harmony default export */ function transition_attrTween(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(name);
- return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/delay.js
-
-
-function delayFunction(id, value) {
- return function() {
- init(this, id).delay = +value.apply(this, arguments);
- };
-}
-
-function delayConstant(id, value) {
- return value = +value, function() {
- init(this, id).delay = value;
- };
-}
-
-/* harmony default export */ function delay(value) {
- var id = this._id;
-
- return arguments.length
- ? this.each((typeof value === "function"
- ? delayFunction
- : delayConstant)(id, value))
- : schedule_get(this.node(), id).delay;
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/duration.js
-
-
-function durationFunction(id, value) {
- return function() {
- schedule_set(this, id).duration = +value.apply(this, arguments);
- };
-}
-
-function durationConstant(id, value) {
- return value = +value, function() {
- schedule_set(this, id).duration = value;
- };
-}
-
-/* harmony default export */ function duration(value) {
- var id = this._id;
-
- return arguments.length
- ? this.each((typeof value === "function"
- ? durationFunction
- : durationConstant)(id, value))
- : schedule_get(this.node(), id).duration;
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/ease.js
-
-
-function easeConstant(id, value) {
- if (typeof value !== "function") throw new Error;
- return function() {
- schedule_set(this, id).ease = value;
- };
-}
-
-/* harmony default export */ function ease(value) {
- var id = this._id;
-
- return arguments.length
- ? this.each(easeConstant(id, value))
- : schedule_get(this.node(), id).ease;
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/easeVarying.js
-
-
-function easeVarying(id, value) {
- return function() {
- var v = value.apply(this, arguments);
- if (typeof v !== "function") throw new Error;
- schedule_set(this, id).ease = v;
- };
-}
-
-/* harmony default export */ function transition_easeVarying(value) {
- if (typeof value !== "function") throw new Error;
- return this.each(easeVarying(this._id, value));
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/filter.js
-
-
-
-/* harmony default export */ function transition_filter(match) {
- if (typeof match !== "function") match = matcher(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);
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/merge.js
-
-
-/* harmony default export */ function transition_merge(transition) {
- if (transition._id !== this._id) throw new Error;
-
- for (var groups0 = this._groups, groups1 = transition._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);
-}
-
-;// CONCATENATED MODULE: ../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";
- });
-}
-
-function onFunction(id, name, listener) {
- var on0, on1, sit = start(name) ? init : schedule_set;
- return function() {
- var schedule = sit(this, id),
- on = schedule.on;
-
- // If this node shared a dispatch with the previous node,
- // just assign the updated shared dispatch and we’re done!
- // Otherwise, copy-on-write.
- if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);
-
- schedule.on = on1;
- };
-}
-
-/* harmony default export */ function transition_on(name, listener) {
- var id = this._id;
-
- return arguments.length < 2
- ? schedule_get(this.node(), id).on.on(name)
- : this.each(onFunction(id, name, listener));
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/remove.js
-function removeFunction(id) {
- return function() {
- var parent = this.parentNode;
- for (var i in this.__transition) if (+i !== id) return;
- if (parent) parent.removeChild(this);
- };
-}
-
-/* harmony default export */ function transition_remove() {
- return this.on("end.remove", removeFunction(this._id));
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/select.js
-
-
-
-
-/* harmony default export */ function transition_select(select) {
- var name = this._name,
- id = this._id;
-
- if (typeof select !== "function") select = selector(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(subgroup[i], name, id, i, subgroup, schedule_get(node, id));
- }
- }
- }
-
- return new Transition(subgroups, this._parents, name, id);
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/selectAll.js
-
-
-
-
-/* harmony default export */ function transition_selectAll(select) {
- var name = this._name,
- id = this._id;
-
- if (typeof select !== "function") select = selectorAll(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 children = select.call(node, node.__data__, i, group), child, inherit = schedule_get(node, id), k = 0, l = children.length; k < l; ++k) {
- if (child = children[k]) {
- schedule(child, name, id, k, children, inherit);
- }
- }
- subgroups.push(children);
- parents.push(node);
- }
- }
- }
-
- return new Transition(subgroups, parents, name, id);
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/selection.js
-
-
-var selection_Selection = src_selection.prototype.constructor;
-
-/* harmony default export */ function transition_selection() {
- return new selection_Selection(this._groups, this._parents);
-}
-
-;// CONCATENATED MODULE: ../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);
- };
-}
-
-function style_styleRemove(name) {
- return function() {
- this.style.removeProperty(name);
- };
-}
-
-function style_styleConstant(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);
- };
-}
-
-function style_styleFunction(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));
- };
-}
-
-function styleMaybeRemove(id, name) {
- var on0, on1, listener0, key = "style." + name, event = "end." + key, remove;
- return function() {
- var schedule = schedule_set(this, id),
- on = schedule.on,
- listener = schedule.value[key] == null ? remove || (remove = style_styleRemove(name)) : undefined;
-
- // If this node shared a dispatch with the previous node,
- // just assign the updated shared dispatch and we’re done!
- // Otherwise, copy-on-write.
- if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);
-
- schedule.on = on1;
- };
-}
-
-/* harmony default export */ function transition_style(name, value, priority) {
- var i = (name += "") === "transform" ? interpolateTransformCss : interpolate;
- return value == null ? this
- .styleTween(name, styleNull(name, i))
- .on("end.style." + name, style_styleRemove(name))
- : typeof value === "function" ? this
- .styleTween(name, style_styleFunction(name, i, tweenValue(this, "style." + name, value)))
- .each(styleMaybeRemove(this._id, name))
- : this
- .styleTween(name, style_styleConstant(name, i, value), priority)
- .on("end.style." + name, null);
-}
-
-;// CONCATENATED MODULE: ../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);
- };
-}
-
-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;
- }
- tween._value = value;
- return tween;
-}
-
-/* harmony default export */ function transition_styleTween(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));
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/text.js
-
-
-function text_textConstant(value) {
- return function() {
- this.textContent = value;
- };
-}
-
-function text_textFunction(value) {
- return function() {
- var value1 = value(this);
- this.textContent = value1 == null ? "" : value1;
- };
-}
-
-/* harmony default export */ function transition_text(value) {
- return this.tween("text", typeof value === "function"
- ? text_textFunction(tweenValue(this, "text", value))
- : text_textConstant(value == null ? "" : value + ""));
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/textTween.js
-function textInterpolate(i) {
- return function(t) {
- this.textContent = i.call(this, t);
- };
-}
-
-function textTween(value) {
- var t0, i0;
- function tween() {
- var i = value.apply(this, arguments);
- if (i !== i0) t0 = (i0 = i) && textInterpolate(i);
- return t0;
- }
- tween._value = value;
- return tween;
-}
-
-/* harmony default export */ function transition_textTween(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));
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/transition.js
-
-
-
-/* harmony default export */ function transition() {
- 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 inherit = schedule_get(node, id0);
- schedule(node, name, id1, i, group, {
- time: inherit.time + inherit.delay + inherit.duration,
- delay: 0,
- duration: inherit.duration,
- ease: inherit.ease
- });
- }
- }
- }
-
- return new Transition(groups, this._parents, name, id1);
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/end.js
-
-
-/* harmony default export */ function end() {
- var on0, on1, that = this, id = that._id, size = that.size();
- return new Promise(function(resolve, reject) {
- var cancel = {value: reject},
- end = {value: function() { if (--size === 0) resolve(); }};
-
- that.each(function() {
- var schedule = schedule_set(this, id),
- on = schedule.on;
-
- // If this node shared a dispatch with the previous node,
- // just assign the updated shared dispatch and we’re done!
- // Otherwise, copy-on-write.
- if (on !== on0) {
- on1 = (on0 = on).copy();
- on1._.cancel.push(cancel);
- on1._.interrupt.push(cancel);
- on1._.end.push(end);
- }
-
- schedule.on = on1;
- });
-
- // The selection was empty, resolve end immediately
- if (size === 0) resolve();
- });
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/index.js
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-var id = 0;
-
-function Transition(groups, parents, name, id) {
- this._groups = groups;
- this._parents = parents;
- this._name = name;
- this._id = id;
-}
-
-function transition_transition(name) {
- return src_selection().transition(name);
-}
-
-function newId() {
- return ++id;
-}
-
-var selection_prototype = src_selection.prototype;
-
-Transition.prototype = transition_transition.prototype = {
- constructor: Transition,
- select: transition_select,
- selectAll: transition_selectAll,
- selectChild: selection_prototype.selectChild,
- selectChildren: selection_prototype.selectChildren,
- filter: transition_filter,
- merge: transition_merge,
- selection: transition_selection,
- transition: transition,
- 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: transition_on,
- attr: transition_attr,
- attrTween: transition_attrTween,
- style: transition_style,
- styleTween: transition_styleTween,
- text: transition_text,
- textTween: transition_textTween,
- remove: transition_remove,
- tween: tween,
- delay: delay,
- duration: duration,
- ease: ease,
- easeVarying: transition_easeVarying,
- end: end,
- [Symbol.iterator]: selection_prototype[Symbol.iterator]
-};
-
-;// CONCATENATED MODULE: ../node_modules/d3-ease/src/cubic.js
-function cubicIn(t) {
- return t * t * t;
-}
-
-function cubicOut(t) {
- return --t * t * t + 1;
-}
-
-function cubicInOut(t) {
- return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/selection/transition.js
-
-
-
-
-
-var defaultTiming = {
- time: null, // Set on use.
- delay: 0,
- duration: 250,
- ease: cubicInOut
-};
-
-function inherit(node, id) {
- var timing;
- while (!(timing = node.__transition) || !(timing = timing[id])) {
- if (!(node = node.parentNode)) {
- throw new Error(`transition ${id} not found`);
- }
- }
- return timing;
-}
-
-/* harmony default export */ function selection_transition(name) {
- var id,
- timing;
-
- if (name instanceof Transition) {
- id = name._id, name = name._name;
- } else {
- id = 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(node, name, id, i, group, timing || inherit(node, id));
- }
- }
- }
-
- return new Transition(groups, this._parents, name, id);
-}
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/selection/index.js
-
-
-
-
-src_selection.prototype.interrupt = selection_interrupt;
-src_selection.prototype.transition = selection_transition;
-
-;// CONCATENATED MODULE: ../node_modules/d3-transition/src/index.js
-
-
-
-
-
-;// CONCATENATED MODULE: ./tooltip.js
-/* global event */
-
-
-
-
-
-
-function defaultLabel (d) {
- return d.data.name
-}
-
-function defaultFlamegraphTooltip () {
- var rootElement = src_select('body')
- var tooltip = null
- // Function to get HTML content from data.
- var html = defaultLabel
- // Function to get text content from data.
- var text = defaultLabel
- // Whether to use d3's .html() to set content, otherwise use .text().
- var contentIsHTML = false
-
- function tip () {
- tooltip = rootElement
- .append('div')
- .style('display', 'none')
- .style('position', 'absolute')
- .style('opacity', 0)
- .style('pointer-events', 'none')
- .attr('class', 'd3-flame-graph-tip')
- }
-
- tip.show = function (d) {
- tooltip
- .style('display', 'block')
- .style('left', event.pageX + 5 + 'px')
- .style('top', event.pageY + 5 + 'px')
- .transition()
- .duration(200)
- .style('opacity', 1)
- .style('pointer-events', 'all')
-
- if (contentIsHTML) {
- tooltip.html(html(d))
- } else {
- tooltip.text(text(d))
- }
-
- return tip
- }
-
- tip.hide = function () {
- tooltip
- .style('display', 'none')
- .transition()
- .duration(200)
- .style('opacity', 0)
- .style('pointer-events', 'none')
-
- return tip
- }
-
- /**
- * Gets/sets a function converting the d3 data into the tooltip's textContent.
- *
- * Cannot be combined with tip.html().
- */
- tip.text = function (_) {
- if (!arguments.length) return text
- text = _
- contentIsHTML = false
- return tip
- }
-
- /**
- * Gets/sets a function converting the d3 data into the tooltip's innerHTML.
- *
- * Cannot be combined with tip.text().
- *
- * @deprecated prefer tip.text().
- */
- tip.html = function (_) {
- if (!arguments.length) return html
- html = _
- contentIsHTML = true
- return tip
- }
-
- tip.destroy = function () {
- tooltip.remove()
- }
-
- return tip
-}
-
-/******/ return __webpack_exports__;
-/******/ })()
-;
-});
\ No newline at end of file
diff --git a/development/charts/flamegraph/lib/d3-flamegraph.css b/development/charts/flamegraph/lib/d3-flamegraph.css
deleted file mode 100644
index fa6f345ff7a9..000000000000
--- a/development/charts/flamegraph/lib/d3-flamegraph.css
+++ /dev/null
@@ -1,46 +0,0 @@
-.d3-flame-graph rect {
- stroke: #EEEEEE;
- fill-opacity: .8;
-}
-
-.d3-flame-graph rect:hover {
- stroke: #474747;
- stroke-width: 0.5;
- cursor: pointer;
-}
-
-.d3-flame-graph-label {
- pointer-events: none;
- white-space: nowrap;
- text-overflow: ellipsis;
- overflow: hidden;
- font-size: 12px;
- font-family: Verdana;
- margin-left: 4px;
- margin-right: 4px;
- line-height: 1.5;
- padding: 0 0 0;
- font-weight: 400;
- color: black;
- text-align: left;
-}
-
-.d3-flame-graph .fade {
- opacity: 0.6 !important;
-}
-
-.d3-flame-graph .title {
- font-size: 20px;
- font-family: Verdana;
-}
-
-.d3-flame-graph-tip {
- background-color: black;
- border: none;
- border-radius: 3px;
- padding: 5px 10px 5px 10px;
- min-width: 250px;
- text-align: left;
- color: white;
- z-index: 10;
-}
\ No newline at end of file
diff --git a/development/charts/flamegraph/lib/d3-flamegraph.js b/development/charts/flamegraph/lib/d3-flamegraph.js
deleted file mode 100644
index eabb2c44972c..000000000000
--- a/development/charts/flamegraph/lib/d3-flamegraph.js
+++ /dev/null
@@ -1,5719 +0,0 @@
-(function webpackUniversalModuleDefinition(root, factory) {
- if (typeof exports === 'object' && typeof module === 'object')
- module.exports = factory();
- else if (typeof define === 'function' && define.amd) define([], factory);
- else if (typeof exports === 'object') exports['flamegraph'] = factory();
- else root['flamegraph'] = factory();
-})(self, function () {
- return /******/ (() => {
- // webpackBootstrap
- /******/ 'use strict'; // The require scope
- /******/ /******/ var __webpack_require__ = {}; /* webpack/runtime/define property getters */
- /******/
- /************************************************************************/
- /******/ /******/ (() => {
- /******/ // define getter functions for harmony exports
- /******/ __webpack_require__.d = (exports, definition) => {
- /******/ for (var key in definition) {
- /******/ if (
- __webpack_require__.o(definition, key) &&
- !__webpack_require__.o(exports, key)
- ) {
- /******/ Object.defineProperty(exports, key, {
- enumerable: true,
- get: definition[key],
- });
- /******/
- }
- /******/
- }
- /******/
- };
- /******/
- })(); /* webpack/runtime/hasOwnProperty shorthand */
- /******/
- /******/ /******/ (() => {
- /******/ __webpack_require__.o = (obj, prop) =>
- Object.prototype.hasOwnProperty.call(obj, prop);
- /******/
- })();
- /******/
- /************************************************************************/
- var __webpack_exports__ = {};
-
- // EXPORTS
- __webpack_require__.d(__webpack_exports__, {
- default: () => /* binding */ flamegraph,
- }); // CONCATENATED MODULE: ../node_modules/d3-selection/src/selector.js
-
- function none() {}
-
- /* harmony default export */ function selector(selector) {
- return selector == null
- ? none
- : function () {
- return this.querySelector(selector);
- };
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/select.js
-
- /* harmony default export */ function selection_select(select) {
- if (typeof select !== 'function') select = selector(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);
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/array.js
-
- // Given something array like (or null), returns something that is strictly an
- // array. This is used to ensure that array-like objects passed to d3.selectAll
- // or selection.selectAll are converted into proper arrays when creating a
- // selection; we don’t ever want to create a selection backed by a live
- // HTMLCollection or NodeList. However, note that selection.selectAll will use a
- // static NodeList as a group, since it safely derived from querySelectorAll.
- function array(x) {
- return x == null ? [] : Array.isArray(x) ? x : Array.from(x);
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selectorAll.js
-
- function empty() {
- return [];
- }
-
- /* harmony default export */ function selectorAll(selector) {
- return selector == null
- ? empty
- : function () {
- return this.querySelectorAll(selector);
- };
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/selectAll.js
-
- function arrayAll(select) {
- return function () {
- return array(select.apply(this, arguments));
- };
- }
-
- /* harmony default export */ function selectAll(select) {
- if (typeof select === 'function') select = arrayAll(select);
- else select = selectorAll(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);
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/matcher.js
-
- /* harmony default export */ function matcher(selector) {
- return function () {
- return this.matches(selector);
- };
- }
-
- function childMatcher(selector) {
- return function (node) {
- return node.matches(selector);
- };
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/selectChild.js
-
- var find = Array.prototype.find;
-
- function childFind(match) {
- return function () {
- return find.call(this.children, match);
- };
- }
-
- function childFirst() {
- return this.firstElementChild;
- }
-
- /* harmony default export */ function selectChild(match) {
- return this.select(
- match == null
- ? childFirst
- : childFind(
- typeof match === 'function' ? match : childMatcher(match),
- ),
- );
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/selectChildren.js
-
- var filter = Array.prototype.filter;
-
- function children() {
- return Array.from(this.children);
- }
-
- function childrenFilter(match) {
- return function () {
- return filter.call(this.children, match);
- };
- }
-
- /* harmony default export */ function selectChildren(match) {
- return this.selectAll(
- match == null
- ? children
- : childrenFilter(
- typeof match === 'function' ? match : childMatcher(match),
- ),
- );
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/filter.js
-
- /* harmony default export */ function selection_filter(match) {
- if (typeof match !== 'function') match = matcher(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);
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/sparse.js
-
- /* harmony default export */ function sparse(update) {
- return new Array(update.length);
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/enter.js
-
- /* harmony default export */ function enter() {
- return new Selection(
- this._enter || this._groups.map(sparse),
- this._parents,
- );
- }
-
- function EnterNode(parent, datum) {
- this.ownerDocument = parent.ownerDocument;
- this.namespaceURI = parent.namespaceURI;
- this._next = null;
- this._parent = parent;
- this.__data__ = datum;
- }
-
- EnterNode.prototype = {
- constructor: EnterNode,
- appendChild: function (child) {
- return this._parent.insertBefore(child, this._next);
- },
- insertBefore: function (child, next) {
- return this._parent.insertBefore(child, next);
- },
- querySelector: function (selector) {
- return this._parent.querySelector(selector);
- },
- querySelectorAll: function (selector) {
- return this._parent.querySelectorAll(selector);
- },
- }; // CONCATENATED MODULE: ../node_modules/d3-selection/src/constant.js
-
- /* harmony default export */ function src_constant(x) {
- return function () {
- return x;
- };
- } // CONCATENATED MODULE: ../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;
-
- // Put any non-null nodes that fit into update.
- // Put any null nodes into enter.
- // Put any remaining data into enter.
- for (; i < dataLength; ++i) {
- if ((node = group[i])) {
- node.__data__ = data[i];
- update[i] = node;
- } else {
- enter[i] = new EnterNode(parent, data[i]);
- }
- }
-
- // Put any non-null nodes that don’t fit into exit.
- for (; i < groupLength; ++i) {
- if ((node = group[i])) {
- exit[i] = node;
- }
- }
- }
-
- function bindKey(parent, group, enter, update, exit, data, key) {
- var i,
- node,
- nodeByKeyValue = new Map(),
- groupLength = group.length,
- dataLength = data.length,
- keyValues = new Array(groupLength),
- keyValue;
-
- // Compute the key for each node.
- // If multiple nodes have the same key, the duplicates are added to exit.
- 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);
- }
- }
- }
-
- // Compute the key for each datum.
- // If there a node associated with this key, join and add it to update.
- // If there is not (or the key is a duplicate), add it to enter.
- 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]);
- }
- }
-
- // Add any remaining nodes that were not bound to data to exit.
- for (i = 0; i < groupLength; ++i) {
- if ((node = group[i]) && nodeByKeyValue.get(keyValues[i]) === node) {
- exit[i] = node;
- }
- }
- }
-
- function datum(node) {
- return node.__data__;
- }
-
- /* harmony default export */ function data(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 = src_constant(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);
-
- // Now connect the enter nodes to their following update node, such that
- // appendChild can insert the materialized enter node before this node,
- // rather than at the end of the parent node.
- 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;
- }
-
- // Given some data, this returns an array-like view of it: an object that
- // exposes a length property and allows numeric indexing. Note that unlike
- // selectAll, this isn’t worried about “live” collections because the resulting
- // array will only be used briefly while data is being bound. (It is possible to
- // cause the data to change while iterating by using a key function, but please
- // don’t; we’d rather avoid a gratuitous copy.)
- function arraylike(data) {
- return typeof data === 'object' && 'length' in data
- ? data // Array, TypedArray, NodeList, array-like
- : Array.from(data); // Map, Set, iterable, string, or anything else
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/exit.js
-
- /* harmony default export */ function exit() {
- return new Selection(
- this._exit || this._groups.map(sparse),
- this._parents,
- );
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/join.js
-
- /* harmony default export */ function join(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;
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/merge.js
-
- /* harmony default export */ function merge(context) {
- var selection = context.selection ? context.selection() : context;
-
- for (
- var groups0 = this._groups,
- groups1 = selection._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);
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/order.js
-
- /* harmony default export */ function order() {
- 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;
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/sort.js
-
- /* harmony default export */ function sort(compare) {
- if (!compare) compare = ascending;
-
- function compareNode(a, b) {
- return a && b ? compare(a.__data__, b.__data__) : !a - !b;
- }
-
- 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();
- }
-
- function ascending(a, b) {
- return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/call.js
-
- /* harmony default export */ function call() {
- var callback = arguments[0];
- arguments[0] = this;
- callback.apply(null, arguments);
- return this;
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/nodes.js
-
- /* harmony default export */ function nodes() {
- return Array.from(this);
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/node.js
-
- /* harmony default export */ function node() {
- 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;
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/size.js
-
- /* harmony default export */ function size() {
- let size = 0;
- for (const node of this) ++size; // eslint-disable-line no-unused-vars
- return size;
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/empty.js
-
- /* harmony default export */ function selection_empty() {
- return !this.node();
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/each.js
-
- /* harmony default export */ function each(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;
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/namespaces.js
-
- var xhtml = 'http://www.w3.org/1999/xhtml';
-
- /* harmony default export */ const namespaces = {
- svg: 'http://www.w3.org/2000/svg',
- xhtml: xhtml,
- xlink: 'http://www.w3.org/1999/xlink',
- xml: 'http://www.w3.org/XML/1998/namespace',
- xmlns: 'http://www.w3.org/2000/xmlns/',
- }; // CONCATENATED MODULE: ../node_modules/d3-selection/src/namespace.js
-
- /* harmony default export */ function namespace(name) {
- var prefix = (name += ''),
- i = prefix.indexOf(':');
- if (i >= 0 && (prefix = name.slice(0, i)) !== 'xmlns')
- name = name.slice(i + 1);
- return namespaces.hasOwnProperty(prefix)
- ? { space: namespaces[prefix], local: name }
- : name; // eslint-disable-line no-prototype-builtins
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/attr.js
-
- function attrRemove(name) {
- return function () {
- this.removeAttribute(name);
- };
- }
-
- function attrRemoveNS(fullname) {
- return function () {
- this.removeAttributeNS(fullname.space, fullname.local);
- };
- }
-
- function attrConstant(name, value) {
- return function () {
- this.setAttribute(name, value);
- };
- }
-
- function attrConstantNS(fullname, value) {
- return function () {
- this.setAttributeNS(fullname.space, fullname.local, value);
- };
- }
-
- function attrFunction(name, value) {
- return function () {
- var v = value.apply(this, arguments);
- if (v == null) this.removeAttribute(name);
- else this.setAttribute(name, v);
- };
- }
-
- 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);
- };
- }
-
- /* harmony default export */ function attr(name, value) {
- var fullname = namespace(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),
- );
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/window.js
-
- /* harmony default export */ function src_window(node) {
- return (
- (node.ownerDocument && node.ownerDocument.defaultView) || // node is a Node
- (node.document && node) || // node is a Window
- node.defaultView
- ); // node is a Document
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/style.js
-
- function styleRemove(name) {
- return function () {
- this.style.removeProperty(name);
- };
- }
-
- function styleConstant(name, value, priority) {
- return function () {
- this.style.setProperty(name, value, priority);
- };
- }
-
- 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);
- };
- }
-
- /* harmony default export */ function style(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);
- }
-
- function styleValue(node, name) {
- return (
- node.style.getPropertyValue(name) ||
- src_window(node).getComputedStyle(node, null).getPropertyValue(name)
- );
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/property.js
-
- function propertyRemove(name) {
- return function () {
- delete this[name];
- };
- }
-
- function propertyConstant(name, value) {
- return function () {
- this[name] = value;
- };
- }
-
- function propertyFunction(name, value) {
- return function () {
- var v = value.apply(this, arguments);
- if (v == null) delete this[name];
- else this[name] = v;
- };
- }
-
- /* harmony default export */ function property(name, value) {
- return arguments.length > 1
- ? this.each(
- (value == null
- ? propertyRemove
- : typeof value === 'function'
- ? propertyFunction
- : propertyConstant)(name, value),
- )
- : this.node()[name];
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/classed.js
-
- function classArray(string) {
- return string.trim().split(/^|\s+/);
- }
-
- function classList(node) {
- return node.classList || new ClassList(node);
- }
-
- function ClassList(node) {
- this._node = node;
- this._names = classArray(node.getAttribute('class') || '');
- }
-
- ClassList.prototype = {
- add: function (name) {
- var i = this._names.indexOf(name);
- if (i < 0) {
- this._names.push(name);
- this._node.setAttribute('class', this._names.join(' '));
- }
- },
- remove: function (name) {
- var i = this._names.indexOf(name);
- if (i >= 0) {
- this._names.splice(i, 1);
- this._node.setAttribute('class', this._names.join(' '));
- }
- },
- contains: function (name) {
- return this._names.indexOf(name) >= 0;
- },
- };
-
- function classedAdd(node, names) {
- var list = classList(node),
- i = -1,
- n = names.length;
- while (++i < n) list.add(names[i]);
- }
-
- function classedRemove(node, names) {
- var list = classList(node),
- i = -1,
- n = names.length;
- while (++i < n) list.remove(names[i]);
- }
-
- function classedTrue(names) {
- return function () {
- classedAdd(this, names);
- };
- }
-
- function classedFalse(names) {
- return function () {
- classedRemove(this, names);
- };
- }
-
- function classedFunction(names, value) {
- return function () {
- (value.apply(this, arguments) ? classedAdd : classedRemove)(
- this,
- names,
- );
- };
- }
-
- /* harmony default export */ function classed(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),
- );
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/text.js
-
- function textRemove() {
- this.textContent = '';
- }
-
- function textConstant(value) {
- return function () {
- this.textContent = value;
- };
- }
-
- function textFunction(value) {
- return function () {
- var v = value.apply(this, arguments);
- this.textContent = v == null ? '' : v;
- };
- }
-
- /* harmony default export */ function selection_text(value) {
- return arguments.length
- ? this.each(
- value == null
- ? textRemove
- : (typeof value === 'function' ? textFunction : textConstant)(
- value,
- ),
- )
- : this.node().textContent;
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/html.js
-
- function htmlRemove() {
- this.innerHTML = '';
- }
-
- function htmlConstant(value) {
- return function () {
- this.innerHTML = value;
- };
- }
-
- function htmlFunction(value) {
- return function () {
- var v = value.apply(this, arguments);
- this.innerHTML = v == null ? '' : v;
- };
- }
-
- /* harmony default export */ function html(value) {
- return arguments.length
- ? this.each(
- value == null
- ? htmlRemove
- : (typeof value === 'function' ? htmlFunction : htmlConstant)(
- value,
- ),
- )
- : this.node().innerHTML;
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/raise.js
-
- function raise() {
- if (this.nextSibling) this.parentNode.appendChild(this);
- }
-
- /* harmony default export */ function selection_raise() {
- return this.each(raise);
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/lower.js
-
- function lower() {
- if (this.previousSibling)
- this.parentNode.insertBefore(this, this.parentNode.firstChild);
- }
-
- /* harmony default export */ function selection_lower() {
- return this.each(lower);
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/creator.js
-
- function creatorInherit(name) {
- return function () {
- var document = this.ownerDocument,
- uri = this.namespaceURI;
- return uri === xhtml && document.documentElement.namespaceURI === xhtml
- ? document.createElement(name)
- : document.createElementNS(uri, name);
- };
- }
-
- function creatorFixed(fullname) {
- return function () {
- return this.ownerDocument.createElementNS(
- fullname.space,
- fullname.local,
- );
- };
- }
-
- /* harmony default export */ function creator(name) {
- var fullname = namespace(name);
- return (fullname.local ? creatorFixed : creatorInherit)(fullname);
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/append.js
-
- /* harmony default export */ function append(name) {
- var create = typeof name === 'function' ? name : creator(name);
- return this.select(function () {
- return this.appendChild(create.apply(this, arguments));
- });
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/insert.js
-
- function constantNull() {
- return null;
- }
-
- /* harmony default export */ function insert(name, before) {
- var create = typeof name === 'function' ? name : creator(name),
- select =
- before == null
- ? constantNull
- : typeof before === 'function'
- ? before
- : selector(before);
- return this.select(function () {
- return this.insertBefore(
- create.apply(this, arguments),
- select.apply(this, arguments) || null,
- );
- });
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/remove.js
-
- function remove() {
- var parent = this.parentNode;
- if (parent) parent.removeChild(this);
- }
-
- /* harmony default export */ function selection_remove() {
- return this.each(remove);
- } // CONCATENATED MODULE: ../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;
- }
-
- function selection_cloneDeep() {
- var clone = this.cloneNode(true),
- parent = this.parentNode;
- return parent ? parent.insertBefore(clone, this.nextSibling) : clone;
- }
-
- /* harmony default export */ function clone(deep) {
- return this.select(deep ? selection_cloneDeep : selection_cloneShallow);
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/datum.js
-
- /* harmony default export */ function selection_datum(value) {
- return arguments.length
- ? this.property('__data__', value)
- : this.node().__data__;
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/on.js
-
- function contextListener(listener) {
- return function (event) {
- listener.call(this, event, this.__data__);
- };
- }
-
- 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 };
- });
- }
-
- 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;
- };
- }
-
- 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: value,
- listener: listener,
- options: options,
- };
- if (!on) this.__on = [o];
- else on.push(o);
- };
- }
-
- /* harmony default export */ function on(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;
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/dispatch.js
-
- function dispatchEvent(node, type, params) {
- var window = src_window(node),
- event = window.CustomEvent;
-
- if (typeof event === 'function') {
- event = new event(type, params);
- } else {
- event = window.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);
- }
-
- function dispatchConstant(type, params) {
- return function () {
- return dispatchEvent(this, type, params);
- };
- }
-
- function dispatchFunction(type, params) {
- return function () {
- return dispatchEvent(this, type, params.apply(this, arguments));
- };
- }
-
- /* harmony default export */ function dispatch(type, params) {
- return this.each(
- (typeof params === 'function' ? dispatchFunction : dispatchConstant)(
- type,
- params,
- ),
- );
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/iterator.js
-
- /* harmony default export */ function* iterator() {
- 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;
- }
- }
- } // CONCATENATED MODULE: ../node_modules/d3-selection/src/selection/index.js
-
- var root = [null];
-
- function Selection(groups, parents) {
- this._groups = groups;
- this._parents = parents;
- }
-
- function selection() {
- return new Selection([[document.documentElement]], root);
- }
-
- function selection_selection() {
- return this;
- }
-
- Selection.prototype = selection.prototype = {
- constructor: Selection,
- select: selection_select,
- selectAll: selectAll,
- selectChild: selectChild,
- selectChildren: selectChildren,
- filter: selection_filter,
- data: data,
- enter: enter,
- exit: exit,
- join: join,
- merge: merge,
- selection: selection_selection,
- order: order,
- sort: sort,
- call: call,
- nodes: nodes,
- node: node,
- size: size,
- empty: selection_empty,
- each: each,
- attr: attr,
- style: style,
- property: property,
- classed: classed,
- text: selection_text,
- html: html,
- raise: selection_raise,
- lower: selection_lower,
- append: append,
- insert: insert,
- remove: selection_remove,
- clone: clone,
- datum: selection_datum,
- on: on,
- dispatch: dispatch,
- [Symbol.iterator]: iterator,
- };
-
- /* harmony default export */ const src_selection = selection; // CONCATENATED MODULE: ../node_modules/d3-selection/src/select.js
-
- /* harmony default export */ function src_select(selector) {
- return typeof selector === 'string'
- ? new Selection(
- [[document.querySelector(selector)]],
- [document.documentElement],
- )
- : new Selection([[selector]], root);
- } // CONCATENATED MODULE: ../node_modules/d3-format/src/formatDecimal.js
-
- /* harmony default export */ function formatDecimal(x) {
- return Math.abs((x = Math.round(x))) >= 1e21
- ? x.toLocaleString('en').replace(/,/g, '')
- : x.toString(10);
- }
-
- // Computes the decimal coefficient and exponent of the specified number x with
- // significant digits p, where x is positive and p is in [1, 21] or undefined.
- // For example, formatDecimalParts(1.23) returns ["123", 0].
- function formatDecimalParts(x, p) {
- if (
- (i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(
- 'e',
- )) < 0
- )
- return null; // NaN, ±Infinity
- var i,
- coefficient = x.slice(0, i);
-
- // The string returned by toExponential either has the form \d\.\d+e[-+]\d+
- // (e.g., 1.2e+3) or the form \de[-+]\d+ (e.g., 1e+3).
- return [
- coefficient.length > 1
- ? coefficient[0] + coefficient.slice(2)
- : coefficient,
- +x.slice(i + 1),
- ];
- } // CONCATENATED MODULE: ../node_modules/d3-format/src/exponent.js
-
- /* harmony default export */ function exponent(x) {
- return (x = formatDecimalParts(Math.abs(x))), x ? x[1] : NaN;
- } // CONCATENATED MODULE: ../node_modules/d3-format/src/formatGroup.js
-
- /* harmony default export */ function formatGroup(grouping, thousands) {
- return function (value, width) {
- var i = value.length,
- t = [],
- j = 0,
- g = grouping[0],
- length = 0;
-
- while (i > 0 && g > 0) {
- if (length + g + 1 > width) g = Math.max(1, width - length);
- t.push(value.substring((i -= g), i + g));
- if ((length += g + 1) > width) break;
- g = grouping[(j = (j + 1) % grouping.length)];
- }
-
- return t.reverse().join(thousands);
- };
- } // CONCATENATED MODULE: ../node_modules/d3-format/src/formatNumerals.js
-
- /* harmony default export */ function formatNumerals(numerals) {
- return function (value) {
- return value.replace(/[0-9]/g, function (i) {
- return numerals[+i];
- });
- };
- } // CONCATENATED MODULE: ../node_modules/d3-format/src/formatSpecifier.js
-
- // [[fill]align][sign][symbol][0][width][,][.precision][~][type]
- var re = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
-
- function formatSpecifier(specifier) {
- if (!(match = re.exec(specifier)))
- throw new Error('invalid format: ' + specifier);
- var match;
- return new FormatSpecifier({
- fill: match[1],
- align: match[2],
- sign: match[3],
- symbol: match[4],
- zero: match[5],
- width: match[6],
- comma: match[7],
- precision: match[8] && match[8].slice(1),
- trim: match[9],
- type: match[10],
- });
- }
-
- formatSpecifier.prototype = FormatSpecifier.prototype; // instanceof
-
- function FormatSpecifier(specifier) {
- this.fill = specifier.fill === undefined ? ' ' : specifier.fill + '';
- this.align = specifier.align === undefined ? '>' : specifier.align + '';
- this.sign = specifier.sign === undefined ? '-' : specifier.sign + '';
- this.symbol = specifier.symbol === undefined ? '' : specifier.symbol + '';
- this.zero = !!specifier.zero;
- this.width = specifier.width === undefined ? undefined : +specifier.width;
- this.comma = !!specifier.comma;
- this.precision =
- specifier.precision === undefined ? undefined : +specifier.precision;
- this.trim = !!specifier.trim;
- this.type = specifier.type === undefined ? '' : specifier.type + '';
- }
-
- FormatSpecifier.prototype.toString = function () {
- return (
- this.fill +
- this.align +
- this.sign +
- this.symbol +
- (this.zero ? '0' : '') +
- (this.width === undefined ? '' : Math.max(1, this.width | 0)) +
- (this.comma ? ',' : '') +
- (this.precision === undefined
- ? ''
- : '.' + Math.max(0, this.precision | 0)) +
- (this.trim ? '~' : '') +
- this.type
- );
- }; // CONCATENATED MODULE: ../node_modules/d3-format/src/formatTrim.js
-
- // Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.
- /* harmony default export */ function formatTrim(s) {
- out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {
- switch (s[i]) {
- case '.':
- i0 = i1 = i;
- break;
- case '0':
- if (i0 === 0) i0 = i;
- i1 = i;
- break;
- default:
- if (!+s[i]) break out;
- if (i0 > 0) i0 = 0;
- break;
- }
- }
- return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;
- } // CONCATENATED MODULE: ../node_modules/d3-format/src/formatPrefixAuto.js
-
- var prefixExponent;
-
- /* harmony default export */ function formatPrefixAuto(x, p) {
- var d = formatDecimalParts(x, p);
- if (!d) return x + '';
- var coefficient = d[0],
- exponent = d[1],
- i =
- exponent -
- (prefixExponent =
- Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) +
- 1,
- n = coefficient.length;
- return i === n
- ? coefficient
- : i > n
- ? coefficient + new Array(i - n + 1).join('0')
- : i > 0
- ? coefficient.slice(0, i) + '.' + coefficient.slice(i)
- : '0.' +
- new Array(1 - i).join('0') +
- formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!
- } // CONCATENATED MODULE: ../node_modules/d3-format/src/formatRounded.js
-
- /* harmony default export */ function formatRounded(x, p) {
- var d = formatDecimalParts(x, p);
- if (!d) return x + '';
- var coefficient = d[0],
- exponent = d[1];
- return exponent < 0
- ? '0.' + new Array(-exponent).join('0') + coefficient
- : coefficient.length > exponent + 1
- ? coefficient.slice(0, exponent + 1) +
- '.' +
- coefficient.slice(exponent + 1)
- : coefficient + new Array(exponent - coefficient.length + 2).join('0');
- } // CONCATENATED MODULE: ../node_modules/d3-format/src/formatTypes.js
-
- /* harmony default export */ const formatTypes = {
- '%': (x, p) => (x * 100).toFixed(p),
- b: (x) => Math.round(x).toString(2),
- c: (x) => x + '',
- d: formatDecimal,
- e: (x, p) => x.toExponential(p),
- f: (x, p) => x.toFixed(p),
- g: (x, p) => x.toPrecision(p),
- o: (x) => Math.round(x).toString(8),
- p: (x, p) => formatRounded(x * 100, p),
- r: formatRounded,
- s: formatPrefixAuto,
- X: (x) => Math.round(x).toString(16).toUpperCase(),
- x: (x) => Math.round(x).toString(16),
- }; // CONCATENATED MODULE: ../node_modules/d3-format/src/identity.js
-
- /* harmony default export */ function identity(x) {
- return x;
- } // CONCATENATED MODULE: ../node_modules/d3-format/src/locale.js
-
- var map = Array.prototype.map,
- prefixes = [
- 'y',
- 'z',
- 'a',
- 'f',
- 'p',
- 'n',
- 'µ',
- 'm',
- '',
- 'k',
- 'M',
- 'G',
- 'T',
- 'P',
- 'E',
- 'Z',
- 'Y',
- ];
-
- /* harmony default export */ function locale(locale) {
- var group =
- locale.grouping === undefined || locale.thousands === undefined
- ? identity
- : formatGroup(
- map.call(locale.grouping, Number),
- locale.thousands + '',
- ),
- currencyPrefix =
- locale.currency === undefined ? '' : locale.currency[0] + '',
- currencySuffix =
- locale.currency === undefined ? '' : locale.currency[1] + '',
- decimal = locale.decimal === undefined ? '.' : locale.decimal + '',
- numerals =
- locale.numerals === undefined
- ? identity
- : formatNumerals(map.call(locale.numerals, String)),
- percent = locale.percent === undefined ? '%' : locale.percent + '',
- minus = locale.minus === undefined ? '−' : locale.minus + '',
- nan = locale.nan === undefined ? 'NaN' : locale.nan + '';
-
- function newFormat(specifier) {
- specifier = formatSpecifier(specifier);
-
- var fill = specifier.fill,
- align = specifier.align,
- sign = specifier.sign,
- symbol = specifier.symbol,
- zero = specifier.zero,
- width = specifier.width,
- comma = specifier.comma,
- precision = specifier.precision,
- trim = specifier.trim,
- type = specifier.type;
-
- // The "n" type is an alias for ",g".
- if (type === 'n') (comma = true), (type = 'g');
- // The "" type, and any invalid type, is an alias for ".12~g".
- else if (!formatTypes[type])
- precision === undefined && (precision = 12),
- (trim = true),
- (type = 'g');
-
- // If zero fill is specified, padding goes after sign and before digits.
- if (zero || (fill === '0' && align === '='))
- (zero = true), (fill = '0'), (align = '=');
-
- // Compute the prefix and suffix.
- // For SI-prefix, the suffix is lazily computed.
- var prefix =
- symbol === '$'
- ? currencyPrefix
- : symbol === '#' && /[boxX]/.test(type)
- ? '0' + type.toLowerCase()
- : '',
- suffix =
- symbol === '$' ? currencySuffix : /[%p]/.test(type) ? percent : '';
-
- // What format function should we use?
- // Is this an integer type?
- // Can this type generate exponential notation?
- var formatType = formatTypes[type],
- maybeSuffix = /[defgprs%]/.test(type);
-
- // Set the default precision if not specified,
- // or clamp the specified precision to the supported range.
- // For significant precision, it must be in [1, 21].
- // For fixed precision, it must be in [0, 20].
- precision =
- precision === undefined
- ? 6
- : /[gprs]/.test(type)
- ? Math.max(1, Math.min(21, precision))
- : Math.max(0, Math.min(20, precision));
-
- function format(value) {
- var valuePrefix = prefix,
- valueSuffix = suffix,
- i,
- n,
- c;
-
- if (type === 'c') {
- valueSuffix = formatType(value) + valueSuffix;
- value = '';
- } else {
- value = +value;
-
- // Determine the sign. -0 is not less than 0, but 1 / -0 is!
- var valueNegative = value < 0 || 1 / value < 0;
-
- // Perform the initial formatting.
- value = isNaN(value) ? nan : formatType(Math.abs(value), precision);
-
- // Trim insignificant zeros.
- if (trim) value = formatTrim(value);
-
- // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.
- if (valueNegative && +value === 0 && sign !== '+')
- valueNegative = false;
-
- // Compute the prefix and suffix.
- valuePrefix =
- (valueNegative
- ? sign === '('
- ? sign
- : minus
- : sign === '-' || sign === '('
- ? ''
- : sign) + valuePrefix;
- valueSuffix =
- (type === 's' ? prefixes[8 + prefixExponent / 3] : '') +
- valueSuffix +
- (valueNegative && sign === '(' ? ')' : '');
-
- // Break the formatted value into the integer “value” part that can be
- // grouped, and fractional or exponential “suffix” part that is not.
- if (maybeSuffix) {
- (i = -1), (n = value.length);
- while (++i < n) {
- if (((c = value.charCodeAt(i)), 48 > c || c > 57)) {
- valueSuffix =
- (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) +
- valueSuffix;
- value = value.slice(0, i);
- break;
- }
- }
- }
- }
-
- // If the fill character is not "0", grouping is applied before padding.
- if (comma && !zero) value = group(value, Infinity);
-
- // Compute the padding.
- var length = valuePrefix.length + value.length + valueSuffix.length,
- padding =
- length < width ? new Array(width - length + 1).join(fill) : '';
-
- // If the fill character is "0", grouping is applied after padding.
- if (comma && zero)
- (value = group(
- padding + value,
- padding.length ? width - valueSuffix.length : Infinity,
- )),
- (padding = '');
-
- // Reconstruct the final output based on the desired alignment.
- switch (align) {
- case '<':
- value = valuePrefix + value + valueSuffix + padding;
- break;
- case '=':
- value = valuePrefix + padding + value + valueSuffix;
- break;
- case '^':
- value =
- padding.slice(0, (length = padding.length >> 1)) +
- valuePrefix +
- value +
- valueSuffix +
- padding.slice(length);
- break;
- default:
- value = padding + valuePrefix + value + valueSuffix;
- break;
- }
-
- return numerals(value);
- }
-
- format.toString = function () {
- return specifier + '';
- };
-
- return format;
- }
-
- function formatPrefix(specifier, value) {
- var f = newFormat(
- ((specifier = formatSpecifier(specifier)),
- (specifier.type = 'f'),
- specifier),
- ),
- e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,
- k = Math.pow(10, -e),
- prefix = prefixes[8 + e / 3];
- return function (value) {
- return f(k * value) + prefix;
- };
- }
-
- return {
- format: newFormat,
- formatPrefix: formatPrefix,
- };
- } // CONCATENATED MODULE: ../node_modules/d3-format/src/defaultLocale.js
-
- var defaultLocale_locale;
- var format;
- var formatPrefix;
-
- defaultLocale({
- thousands: ',',
- grouping: [3],
- currency: ['$', ''],
- });
-
- function defaultLocale(definition) {
- defaultLocale_locale = locale(definition);
- format = defaultLocale_locale.format;
- formatPrefix = defaultLocale_locale.formatPrefix;
- return defaultLocale_locale;
- } // CONCATENATED MODULE: ../node_modules/d3-array/src/ascending.js
-
- function ascending_ascending(a, b) {
- return a == null || b == null
- ? NaN
- : a < b
- ? -1
- : a > b
- ? 1
- : a >= b
- ? 0
- : NaN;
- } // CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/treemap/round.js
-
- /* harmony default export */ function treemap_round(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);
- } // CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/treemap/dice.js
-
- /* harmony default export */ function dice(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);
- }
- } // CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/partition.js
-
- /* harmony default export */ function partition() {
- var dx = 1,
- dy = 1,
- padding = 0,
- round = false;
-
- function partition(root) {
- var n = root.height + 1;
- root.x0 = root.y0 = padding;
- root.x1 = dx;
- root.y1 = dy / n;
- root.eachBefore(positionNode(dy, n));
- if (round) root.eachBefore(treemap_round);
- return root;
- }
-
- function positionNode(dy, n) {
- return function (node) {
- if (node.children) {
- dice(
- node,
- node.x0,
- (dy * (node.depth + 1)) / n,
- node.x1,
- (dy * (node.depth + 2)) / n,
- );
- }
- var x0 = node.x0,
- y0 = node.y0,
- x1 = node.x1 - padding,
- y1 = node.y1 - padding;
- 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;
- };
- }
-
- partition.round = function (x) {
- return arguments.length ? ((round = !!x), partition) : round;
- };
-
- partition.size = function (x) {
- return arguments.length
- ? ((dx = +x[0]), (dy = +x[1]), partition)
- : [dx, dy];
- };
-
- partition.padding = function (x) {
- return arguments.length ? ((padding = +x), partition) : padding;
- };
-
- return partition;
- } // CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/count.js
-
- function count(node) {
- var sum = 0,
- children = node.children,
- i = children && children.length;
- if (!i) sum = 1;
- else while (--i >= 0) sum += children[i].value;
- node.value = sum;
- }
-
- /* harmony default export */ function hierarchy_count() {
- return this.eachAfter(count);
- } // CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/each.js
-
- /* harmony default export */ function hierarchy_each(callback, that) {
- let index = -1;
- for (const node of this) {
- callback.call(that, node, ++index, this);
- }
- return this;
- } // CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js
-
- /* harmony default export */ function eachBefore(callback, that) {
- var node = this,
- nodes = [node],
- children,
- i,
- index = -1;
- while ((node = nodes.pop())) {
- callback.call(that, node, ++index, this);
- if ((children = node.children)) {
- for (i = children.length - 1; i >= 0; --i) {
- nodes.push(children[i]);
- }
- }
- }
- return this;
- } // CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js
-
- /* harmony default export */ function eachAfter(callback, that) {
- var node = this,
- nodes = [node],
- next = [],
- children,
- i,
- n,
- index = -1;
- while ((node = nodes.pop())) {
- next.push(node);
- if ((children = node.children)) {
- for (i = 0, n = children.length; i < n; ++i) {
- nodes.push(children[i]);
- }
- }
- }
- while ((node = next.pop())) {
- callback.call(that, node, ++index, this);
- }
- return this;
- } // CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/find.js
-
- /* harmony default export */ function hierarchy_find(callback, that) {
- let index = -1;
- for (const node of this) {
- if (callback.call(that, node, ++index, this)) {
- return node;
- }
- }
- } // CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/sum.js
-
- /* harmony default export */ function sum(value) {
- return this.eachAfter(function (node) {
- var sum = +value(node.data) || 0,
- children = node.children,
- i = children && children.length;
- while (--i >= 0) sum += children[i].value;
- node.value = sum;
- });
- } // CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/sort.js
-
- /* harmony default export */ function hierarchy_sort(compare) {
- return this.eachBefore(function (node) {
- if (node.children) {
- node.children.sort(compare);
- }
- });
- } // CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/path.js
-
- /* harmony default export */ function path(end) {
- var start = this,
- ancestor = leastCommonAncestor(start, end),
- nodes = [start];
- while (start !== ancestor) {
- start = start.parent;
- nodes.push(start);
- }
- var k = nodes.length;
- while (end !== ancestor) {
- nodes.splice(k, 0, end);
- end = end.parent;
- }
- return nodes;
- }
-
- 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;
- } // CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/ancestors.js
-
- /* harmony default export */ function ancestors() {
- var node = this,
- nodes = [node];
- while ((node = node.parent)) {
- nodes.push(node);
- }
- return nodes;
- } // CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/descendants.js
-
- /* harmony default export */ function descendants() {
- return Array.from(this);
- } // CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/leaves.js
-
- /* harmony default export */ function leaves() {
- var leaves = [];
- this.eachBefore(function (node) {
- if (!node.children) {
- leaves.push(node);
- }
- });
- return leaves;
- } // CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/links.js
-
- /* harmony default export */ function links() {
- var root = this,
- links = [];
- root.each(function (node) {
- if (node !== root) {
- // Don’t include the root’s parent, if any.
- links.push({ source: node.parent, target: node });
- }
- });
- return links;
- } // CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/iterator.js
-
- /* harmony default export */ function* hierarchy_iterator() {
- var node = this,
- current,
- next = [node],
- children,
- i,
- n;
- do {
- (current = next.reverse()), (next = []);
- while ((node = current.pop())) {
- yield node;
- if ((children = node.children)) {
- for (i = 0, n = children.length; i < n; ++i) {
- next.push(children[i]);
- }
- }
- }
- } while (next.length);
- } // CONCATENATED MODULE: ../node_modules/d3-hierarchy/src/hierarchy/index.js
-
- function hierarchy(data, children) {
- if (data instanceof Map) {
- data = [undefined, data];
- if (children === undefined) children = mapChildren;
- } else if (children === undefined) {
- children = objectChildren;
- }
-
- var root = new Node(data),
- node,
- nodes = [root],
- child,
- childs,
- i,
- n;
-
- while ((node = nodes.pop())) {
- if (
- (childs = children(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 root.eachBefore(computeHeight);
- }
-
- function node_copy() {
- return hierarchy(this).eachBefore(copyData);
- }
-
- function objectChildren(d) {
- return d.children;
- }
-
- function mapChildren(d) {
- return Array.isArray(d) ? d[1] : null;
- }
-
- function copyData(node) {
- if (node.data.value !== undefined) node.value = node.data.value;
- node.data = node.data.data;
- }
-
- function computeHeight(node) {
- var height = 0;
- do node.height = height;
- while ((node = node.parent) && node.height < ++height);
- }
-
- function Node(data) {
- this.data = data;
- this.depth = this.height = 0;
- this.parent = null;
- }
-
- Node.prototype = hierarchy.prototype = {
- constructor: Node,
- count: hierarchy_count,
- each: hierarchy_each,
- eachAfter: eachAfter,
- eachBefore: eachBefore,
- find: hierarchy_find,
- sum: sum,
- sort: hierarchy_sort,
- path: path,
- ancestors: ancestors,
- descendants: descendants,
- leaves: leaves,
- links: links,
- copy: node_copy,
- [Symbol.iterator]: hierarchy_iterator,
- }; // CONCATENATED MODULE: ../node_modules/d3-array/src/ticks.js
-
- var e10 = Math.sqrt(50),
- e5 = Math.sqrt(10),
- e2 = Math.sqrt(2);
-
- function ticks(start, stop, count) {
- var reverse,
- i = -1,
- n,
- ticks,
- step;
-
- (stop = +stop), (start = +start), (count = +count);
- if (start === stop && count > 0) return [start];
- if ((reverse = stop < start)) (n = start), (start = stop), (stop = n);
- if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step))
- return [];
-
- if (step > 0) {
- let r0 = Math.round(start / step),
- r1 = Math.round(stop / step);
- if (r0 * step < start) ++r0;
- if (r1 * step > stop) --r1;
- ticks = new Array((n = r1 - r0 + 1));
- while (++i < n) ticks[i] = (r0 + i) * step;
- } else {
- step = -step;
- let r0 = Math.round(start * step),
- r1 = Math.round(stop * step);
- if (r0 / step < start) ++r0;
- if (r1 / step > stop) --r1;
- ticks = new Array((n = r1 - r0 + 1));
- while (++i < n) ticks[i] = (r0 + i) / step;
- }
-
- if (reverse) ticks.reverse();
-
- return ticks;
- }
-
- function tickIncrement(start, stop, count) {
- var step = (stop - start) / Math.max(0, count),
- power = Math.floor(Math.log(step) / Math.LN10),
- error = step / Math.pow(10, power);
- return power >= 0
- ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) *
- Math.pow(10, power)
- : -Math.pow(10, -power) /
- (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);
- }
-
- function tickStep(start, stop, count) {
- var step0 = Math.abs(stop - start) / Math.max(0, count),
- step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),
- error = step0 / step1;
- if (error >= e10) step1 *= 10;
- else if (error >= e5) step1 *= 5;
- else if (error >= e2) step1 *= 2;
- return stop < start ? -step1 : step1;
- } // CONCATENATED MODULE: ../node_modules/d3-array/src/bisector.js
-
- function bisector(f) {
- let delta = f;
- let compare1 = f;
- let compare2 = f;
-
- if (f.length !== 2) {
- delta = (d, x) => f(d) - x;
- compare1 = ascending_ascending;
- compare2 = (d, x) => ascending_ascending(f(d), x);
- }
-
- function left(a, x, lo = 0, hi = a.length) {
- if (lo < hi) {
- if (compare1(x, x) !== 0) return hi;
- do {
- const mid = (lo + hi) >>> 1;
- if (compare2(a[mid], x) < 0) lo = mid + 1;
- else hi = mid;
- } while (lo < hi);
- }
- return lo;
- }
-
- function right(a, x, lo = 0, hi = a.length) {
- if (lo < hi) {
- if (compare1(x, x) !== 0) return hi;
- do {
- const mid = (lo + hi) >>> 1;
- if (compare2(a[mid], x) <= 0) lo = mid + 1;
- else hi = mid;
- } while (lo < hi);
- }
- return lo;
- }
-
- function center(a, x, lo = 0, hi = a.length) {
- const i = left(a, x, lo, hi - 1);
- return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;
- }
-
- return { left, center, right };
- } // CONCATENATED MODULE: ../node_modules/d3-array/src/number.js
-
- function number(x) {
- return x === null ? NaN : +x;
- }
-
- function* numbers(values, valueof) {
- if (valueof === undefined) {
- for (let value of values) {
- if (value != null && (value = +value) >= value) {
- yield value;
- }
- }
- } else {
- let index = -1;
- for (let value of values) {
- if (
- (value = valueof(value, ++index, values)) != null &&
- (value = +value) >= value
- ) {
- yield value;
- }
- }
- }
- } // CONCATENATED MODULE: ../node_modules/d3-array/src/bisect.js
-
- const ascendingBisect = bisector(ascending_ascending);
- const bisectRight = ascendingBisect.right;
- const bisectLeft = ascendingBisect.left;
- const bisectCenter = bisector(number).center;
- /* harmony default export */ const bisect = bisectRight; // CONCATENATED MODULE: ../node_modules/d3-color/src/define.js
-
- /* harmony default export */ function src_define(
- constructor,
- factory,
- prototype,
- ) {
- constructor.prototype = factory.prototype = prototype;
- prototype.constructor = constructor;
- }
-
- function extend(parent, definition) {
- var prototype = Object.create(parent.prototype);
- for (var key in definition) prototype[key] = definition[key];
- return prototype;
- } // CONCATENATED MODULE: ../node_modules/d3-color/src/color.js
-
- function Color() {}
-
- var darker = 0.7;
- var brighter = 1 / darker;
-
- var reI = '\\s*([+-]?\\d+)\\s*',
- reN = '\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*',
- reP = '\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*',
- reHex = /^#([0-9a-f]{3,8})$/,
- reRgbInteger = new RegExp('^rgb\\(' + [reI, reI, reI] + '\\)$'),
- reRgbPercent = new RegExp('^rgb\\(' + [reP, reP, reP] + '\\)$'),
- reRgbaInteger = new RegExp('^rgba\\(' + [reI, reI, reI, reN] + '\\)$'),
- reRgbaPercent = new RegExp('^rgba\\(' + [reP, reP, reP, reN] + '\\)$'),
- reHslPercent = new RegExp('^hsl\\(' + [reN, reP, reP] + '\\)$'),
- reHslaPercent = new RegExp('^hsla\\(' + [reN, reP, reP, reN] + '\\)$');
-
- var named = {
- aliceblue: 0xf0f8ff,
- antiquewhite: 0xfaebd7,
- aqua: 0x00ffff,
- aquamarine: 0x7fffd4,
- azure: 0xf0ffff,
- beige: 0xf5f5dc,
- bisque: 0xffe4c4,
- black: 0x000000,
- blanchedalmond: 0xffebcd,
- blue: 0x0000ff,
- blueviolet: 0x8a2be2,
- brown: 0xa52a2a,
- burlywood: 0xdeb887,
- cadetblue: 0x5f9ea0,
- chartreuse: 0x7fff00,
- chocolate: 0xd2691e,
- coral: 0xff7f50,
- cornflowerblue: 0x6495ed,
- cornsilk: 0xfff8dc,
- crimson: 0xdc143c,
- cyan: 0x00ffff,
- darkblue: 0x00008b,
- darkcyan: 0x008b8b,
- darkgoldenrod: 0xb8860b,
- darkgray: 0xa9a9a9,
- darkgreen: 0x006400,
- darkgrey: 0xa9a9a9,
- darkkhaki: 0xbdb76b,
- darkmagenta: 0x8b008b,
- darkolivegreen: 0x556b2f,
- darkorange: 0xff8c00,
- darkorchid: 0x9932cc,
- darkred: 0x8b0000,
- darksalmon: 0xe9967a,
- darkseagreen: 0x8fbc8f,
- darkslateblue: 0x483d8b,
- darkslategray: 0x2f4f4f,
- darkslategrey: 0x2f4f4f,
- darkturquoise: 0x00ced1,
- darkviolet: 0x9400d3,
- deeppink: 0xff1493,
- deepskyblue: 0x00bfff,
- dimgray: 0x696969,
- dimgrey: 0x696969,
- dodgerblue: 0x1e90ff,
- firebrick: 0xb22222,
- floralwhite: 0xfffaf0,
- forestgreen: 0x228b22,
- fuchsia: 0xff00ff,
- gainsboro: 0xdcdcdc,
- ghostwhite: 0xf8f8ff,
- gold: 0xffd700,
- goldenrod: 0xdaa520,
- gray: 0x808080,
- green: 0x008000,
- greenyellow: 0xadff2f,
- grey: 0x808080,
- honeydew: 0xf0fff0,
- hotpink: 0xff69b4,
- indianred: 0xcd5c5c,
- indigo: 0x4b0082,
- ivory: 0xfffff0,
- khaki: 0xf0e68c,
- lavender: 0xe6e6fa,
- lavenderblush: 0xfff0f5,
- lawngreen: 0x7cfc00,
- lemonchiffon: 0xfffacd,
- lightblue: 0xadd8e6,
- lightcoral: 0xf08080,
- lightcyan: 0xe0ffff,
- lightgoldenrodyellow: 0xfafad2,
- lightgray: 0xd3d3d3,
- lightgreen: 0x90ee90,
- lightgrey: 0xd3d3d3,
- lightpink: 0xffb6c1,
- lightsalmon: 0xffa07a,
- lightseagreen: 0x20b2aa,
- lightskyblue: 0x87cefa,
- lightslategray: 0x778899,
- lightslategrey: 0x778899,
- lightsteelblue: 0xb0c4de,
- lightyellow: 0xffffe0,
- lime: 0x00ff00,
- limegreen: 0x32cd32,
- linen: 0xfaf0e6,
- magenta: 0xff00ff,
- maroon: 0x800000,
- mediumaquamarine: 0x66cdaa,
- mediumblue: 0x0000cd,
- mediumorchid: 0xba55d3,
- mediumpurple: 0x9370db,
- mediumseagreen: 0x3cb371,
- mediumslateblue: 0x7b68ee,
- mediumspringgreen: 0x00fa9a,
- mediumturquoise: 0x48d1cc,
- mediumvioletred: 0xc71585,
- midnightblue: 0x191970,
- mintcream: 0xf5fffa,
- mistyrose: 0xffe4e1,
- moccasin: 0xffe4b5,
- navajowhite: 0xffdead,
- navy: 0x000080,
- oldlace: 0xfdf5e6,
- olive: 0x808000,
- olivedrab: 0x6b8e23,
- orange: 0xffa500,
- orangered: 0xff4500,
- orchid: 0xda70d6,
- palegoldenrod: 0xeee8aa,
- palegreen: 0x98fb98,
- paleturquoise: 0xafeeee,
- palevioletred: 0xdb7093,
- papayawhip: 0xffefd5,
- peachpuff: 0xffdab9,
- peru: 0xcd853f,
- pink: 0xffc0cb,
- plum: 0xdda0dd,
- powderblue: 0xb0e0e6,
- purple: 0x800080,
- rebeccapurple: 0x663399,
- red: 0xff0000,
- rosybrown: 0xbc8f8f,
- royalblue: 0x4169e1,
- saddlebrown: 0x8b4513,
- salmon: 0xfa8072,
- sandybrown: 0xf4a460,
- seagreen: 0x2e8b57,
- seashell: 0xfff5ee,
- sienna: 0xa0522d,
- silver: 0xc0c0c0,
- skyblue: 0x87ceeb,
- slateblue: 0x6a5acd,
- slategray: 0x708090,
- slategrey: 0x708090,
- snow: 0xfffafa,
- springgreen: 0x00ff7f,
- steelblue: 0x4682b4,
- tan: 0xd2b48c,
- teal: 0x008080,
- thistle: 0xd8bfd8,
- tomato: 0xff6347,
- turquoise: 0x40e0d0,
- violet: 0xee82ee,
- wheat: 0xf5deb3,
- white: 0xffffff,
- whitesmoke: 0xf5f5f5,
- yellow: 0xffff00,
- yellowgreen: 0x9acd32,
- };
-
- src_define(Color, color, {
- copy: function (channels) {
- return Object.assign(new this.constructor(), this, channels);
- },
- displayable: function () {
- return this.rgb().displayable();
- },
- hex: color_formatHex, // Deprecated! Use color.formatHex.
- formatHex: color_formatHex,
- formatHsl: color_formatHsl,
- formatRgb: color_formatRgb,
- toString: color_formatRgb,
- });
-
- function color_formatHex() {
- return this.rgb().formatHex();
- }
-
- function color_formatHsl() {
- return hslConvert(this).formatHsl();
- }
-
- function color_formatRgb() {
- return this.rgb().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) // #ff0000
- : l === 3
- ? new Rgb(
- ((m >> 8) & 0xf) | ((m >> 4) & 0xf0),
- ((m >> 4) & 0xf) | (m & 0xf0),
- ((m & 0xf) << 4) | (m & 0xf),
- 1,
- ) // #f00
- : l === 8
- ? rgba(
- (m >> 24) & 0xff,
- (m >> 16) & 0xff,
- (m >> 8) & 0xff,
- (m & 0xff) / 0xff,
- ) // #ff000000
- : l === 4
- ? rgba(
- ((m >> 12) & 0xf) | ((m >> 8) & 0xf0),
- ((m >> 8) & 0xf) | ((m >> 4) & 0xf0),
- ((m >> 4) & 0xf) | (m & 0xf0),
- (((m & 0xf) << 4) | (m & 0xf)) / 0xff,
- ) // #f000
- : null) // invalid hex
- : (m = reRgbInteger.exec(format))
- ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)
- : (m = reRgbPercent.exec(format))
- ? new Rgb((m[1] * 255) / 100, (m[2] * 255) / 100, (m[3] * 255) / 100, 1) // rgb(100%, 0%, 0%)
- : (m = reRgbaInteger.exec(format))
- ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)
- : (m = reRgbaPercent.exec(format))
- ? rgba((m[1] * 255) / 100, (m[2] * 255) / 100, (m[3] * 255) / 100, m[4]) // rgb(100%, 0%, 0%, 1)
- : (m = reHslPercent.exec(format))
- ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)
- : (m = reHslaPercent.exec(format))
- ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)
- : named.hasOwnProperty(format)
- ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins
- : format === 'transparent'
- ? new Rgb(NaN, NaN, NaN, 0)
- : null;
- }
-
- function rgbn(n) {
- return new Rgb((n >> 16) & 0xff, (n >> 8) & 0xff, n & 0xff, 1);
- }
-
- function rgba(r, g, b, a) {
- if (a <= 0) r = g = b = NaN;
- return new Rgb(r, g, b, a);
- }
-
- 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);
- }
-
- function color_rgb(r, g, b, opacity) {
- return arguments.length === 1
- ? rgbConvert(r)
- : new Rgb(r, g, b, opacity == null ? 1 : opacity);
- }
-
- function Rgb(r, g, b, opacity) {
- this.r = +r;
- this.g = +g;
- this.b = +b;
- this.opacity = +opacity;
- }
-
- src_define(
- Rgb,
- color_rgb,
- extend(Color, {
- brighter: function (k) {
- k = k == null ? brighter : Math.pow(brighter, k);
- return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
- },
- darker: function (k) {
- k = k == null ? darker : Math.pow(darker, k);
- return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
- },
- rgb: function () {
- return this;
- },
- displayable: function () {
- 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,
- formatRgb: rgb_formatRgb,
- toString: rgb_formatRgb,
- }),
- );
-
- function rgb_formatHex() {
- return '#' + hex(this.r) + hex(this.g) + hex(this.b);
- }
-
- function rgb_formatRgb() {
- var a = this.opacity;
- a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));
- return (
- (a === 1 ? 'rgb(' : 'rgba(') +
- Math.max(0, Math.min(255, Math.round(this.r) || 0)) +
- ', ' +
- Math.max(0, Math.min(255, Math.round(this.g) || 0)) +
- ', ' +
- Math.max(0, Math.min(255, Math.round(this.b) || 0)) +
- (a === 1 ? ')' : ', ' + a + ')')
- );
- }
-
- function hex(value) {
- value = Math.max(0, Math.min(255, Math.round(value) || 0));
- return (value < 16 ? '0' : '') + value.toString(16);
- }
-
- 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);
- }
-
- 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);
- }
-
- function hsl(h, s, l, opacity) {
- return arguments.length === 1
- ? hslConvert(h)
- : new Hsl(h, s, l, opacity == null ? 1 : opacity);
- }
-
- function Hsl(h, s, l, opacity) {
- this.h = +h;
- this.s = +s;
- this.l = +l;
- this.opacity = +opacity;
- }
-
- src_define(
- Hsl,
- hsl,
- extend(Color, {
- brighter: function (k) {
- k = k == null ? brighter : Math.pow(brighter, k);
- return new Hsl(this.h, this.s, this.l * k, this.opacity);
- },
- darker: function (k) {
- k = k == null ? darker : Math.pow(darker, k);
- return new Hsl(this.h, this.s, this.l * k, this.opacity);
- },
- rgb: function () {
- 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,
- );
- },
- displayable: function () {
- return (
- ((0 <= this.s && this.s <= 1) || isNaN(this.s)) &&
- 0 <= this.l &&
- this.l <= 1 &&
- 0 <= this.opacity &&
- this.opacity <= 1
- );
- },
- formatHsl: function () {
- var a = this.opacity;
- a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));
- return (
- (a === 1 ? 'hsl(' : 'hsla(') +
- (this.h || 0) +
- ', ' +
- (this.s || 0) * 100 +
- '%, ' +
- (this.l || 0) * 100 +
- '%' +
- (a === 1 ? ')' : ', ' + a + ')')
- );
- },
- }),
- );
-
- /* From FvD 13.37, CSS Color Module Level 3 */
- 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
- );
- } // CONCATENATED MODULE: ../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
- );
- }
-
- /* harmony default export */ function src_basis(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);
- };
- } // CONCATENATED MODULE: ../node_modules/d3-interpolate/src/basisClosed.js
-
- /* harmony default export */ function basisClosed(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);
- };
- } // CONCATENATED MODULE: ../node_modules/d3-interpolate/src/constant.js
-
- /* harmony default export */ const d3_interpolate_src_constant = (
- x,
- ) => () => x; // CONCATENATED MODULE: ../node_modules/d3-interpolate/src/color.js
-
- function linear(a, d) {
- return function (t) {
- return a + t * d;
- };
- }
-
- 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);
- }
- );
- }
-
- function hue(a, b) {
- var d = b - a;
- return d
- ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d)
- : constant(isNaN(a) ? b : a);
- }
-
- function gamma(y) {
- return (y = +y) === 1
- ? nogamma
- : function (a, b) {
- return b - a
- ? exponential(a, b, y)
- : d3_interpolate_src_constant(isNaN(a) ? b : a);
- };
- }
-
- function nogamma(a, b) {
- var d = b - a;
- return d ? linear(a, d) : d3_interpolate_src_constant(isNaN(a) ? b : a);
- } // CONCATENATED MODULE: ../node_modules/d3-interpolate/src/rgb.js
-
- /* harmony default export */ const rgb = (function rgbGamma(y) {
- var color = gamma(y);
-
- function rgb(start, end) {
- var r = color((start = color_rgb(start)).r, (end = color_rgb(end)).r),
- g = color(start.g, end.g),
- b = color(start.b, end.b),
- opacity = nogamma(start.opacity, end.opacity);
- return function (t) {
- start.r = r(t);
- start.g = g(t);
- start.b = b(t);
- start.opacity = opacity(t);
- return start + '';
- };
- }
-
- rgb.gamma = rgbGamma;
-
- return rgb;
- })(1);
-
- function rgbSpline(spline) {
- return function (colors) {
- var n = colors.length,
- r = new Array(n),
- g = new Array(n),
- b = new Array(n),
- i,
- color;
- for (i = 0; i < n; ++i) {
- color = color_rgb(colors[i]);
- r[i] = color.r || 0;
- g[i] = color.g || 0;
- b[i] = color.b || 0;
- }
- r = spline(r);
- g = spline(g);
- b = spline(b);
- color.opacity = 1;
- return function (t) {
- color.r = r(t);
- color.g = g(t);
- color.b = b(t);
- return color + '';
- };
- };
- }
-
- var rgbBasis = rgbSpline(src_basis);
- var rgbBasisClosed = rgbSpline(basisClosed); // CONCATENATED MODULE: ../node_modules/d3-interpolate/src/array.js
-
- /* harmony default export */ function src_array(a, b) {
- return (isNumberArray(b) ? numberArray : genericArray)(a, b);
- }
-
- function genericArray(a, b) {
- var nb = b ? b.length : 0,
- na = a ? Math.min(nb, a.length) : 0,
- x = new Array(na),
- c = new Array(nb),
- i;
-
- for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);
- for (; i < nb; ++i) c[i] = b[i];
-
- return function (t) {
- for (i = 0; i < na; ++i) c[i] = x[i](t);
- return c;
- };
- } // CONCATENATED MODULE: ../node_modules/d3-interpolate/src/date.js
-
- /* harmony default export */ function date(a, b) {
- var d = new Date();
- return (
- (a = +a),
- (b = +b),
- function (t) {
- return d.setTime(a * (1 - t) + b * t), d;
- }
- );
- } // CONCATENATED MODULE: ../node_modules/d3-interpolate/src/number.js
-
- /* harmony default export */ function src_number(a, b) {
- return (
- (a = +a),
- (b = +b),
- function (t) {
- return a * (1 - t) + b * t;
- }
- );
- } // CONCATENATED MODULE: ../node_modules/d3-interpolate/src/object.js
-
- /* harmony default export */ function object(a, b) {
- var i = {},
- c = {},
- k;
-
- if (a === null || typeof a !== 'object') a = {};
- if (b === null || typeof b !== 'object') b = {};
-
- for (k in b) {
- if (k in a) {
- i[k] = value(a[k], b[k]);
- } else {
- c[k] = b[k];
- }
- }
-
- return function (t) {
- for (k in i) c[k] = i[k](t);
- return c;
- };
- } // CONCATENATED MODULE: ../node_modules/d3-interpolate/src/string.js
-
- var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,
- reB = new RegExp(reA.source, 'g');
-
- function zero(b) {
- return function () {
- return b;
- };
- }
-
- function one(b) {
- return function (t) {
- return b(t) + '';
- };
- }
-
- /* harmony default export */ function string(a, b) {
- var bi = (reA.lastIndex = reB.lastIndex = 0), // scan index for next number in b
- am, // current match in a
- bm, // current match in b
- bs, // string preceding current number in b, if any
- i = -1, // index in s
- s = [], // string constants and placeholders
- q = []; // number interpolators
-
- // Coerce inputs to strings.
- (a = a + ''), (b = b + '');
-
- // Interpolate pairs of numbers in a & b.
- while ((am = reA.exec(a)) && (bm = reB.exec(b))) {
- if ((bs = bm.index) > bi) {
- // a string precedes the next number in b
- bs = b.slice(bi, bs);
- if (s[i]) s[i] += bs;
- // coalesce with previous string
- else s[++i] = bs;
- }
- if ((am = am[0]) === (bm = bm[0])) {
- // numbers in a & b match
- if (s[i]) s[i] += bm;
- // coalesce with previous string
- else s[++i] = bm;
- } else {
- // interpolate non-matching numbers
- s[++i] = null;
- q.push({ i: i, x: src_number(am, bm) });
- }
- bi = reB.lastIndex;
- }
-
- // Add remains of b.
- if (bi < b.length) {
- bs = b.slice(bi);
- if (s[i]) s[i] += bs;
- // coalesce with previous string
- else s[++i] = bs;
- }
-
- // Special optimization for only a single match.
- // Otherwise, interpolate each of the numbers and rejoin the string.
- return s.length < 2
- ? q[0]
- ? one(q[0].x)
- : zero(b)
- : ((b = q.length),
- function (t) {
- for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);
- return s.join('');
- });
- } // CONCATENATED MODULE: ../node_modules/d3-interpolate/src/numberArray.js
-
- /* harmony default export */ function src_numberArray(a, b) {
- if (!b) b = [];
- var n = a ? Math.min(b.length, a.length) : 0,
- c = b.slice(),
- i;
- return function (t) {
- for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;
- return c;
- };
- }
-
- function numberArray_isNumberArray(x) {
- return ArrayBuffer.isView(x) && !(x instanceof DataView);
- } // CONCATENATED MODULE: ../node_modules/d3-interpolate/src/value.js
-
- /* harmony default export */ function value(a, b) {
- var t = typeof b,
- c;
- return b == null || t === 'boolean'
- ? d3_interpolate_src_constant(b)
- : (t === 'number'
- ? src_number
- : t === 'string'
- ? (c = color(b))
- ? ((b = c), rgb)
- : string
- : b instanceof color
- ? rgb
- : b instanceof Date
- ? date
- : numberArray_isNumberArray(b)
- ? src_numberArray
- : Array.isArray(b)
- ? genericArray
- : (typeof b.valueOf !== 'function' &&
- typeof b.toString !== 'function') ||
- isNaN(b)
- ? object
- : src_number)(a, b);
- } // CONCATENATED MODULE: ../node_modules/d3-interpolate/src/round.js
-
- /* harmony default export */ function round(a, b) {
- return (
- (a = +a),
- (b = +b),
- function (t) {
- return Math.round(a * (1 - t) + b * t);
- }
- );
- } // CONCATENATED MODULE: ../node_modules/d3-scale/src/constant.js
-
- function constants(x) {
- return function () {
- return x;
- };
- } // CONCATENATED MODULE: ../node_modules/d3-scale/src/number.js
-
- function number_number(x) {
- return +x;
- } // CONCATENATED MODULE: ../node_modules/d3-scale/src/continuous.js
-
- var unit = [0, 1];
-
- function continuous_identity(x) {
- return x;
- }
-
- function normalize(a, b) {
- return (b -= a = +a)
- ? function (x) {
- return (x - a) / b;
- }
- : constants(isNaN(b) ? NaN : 0.5);
- }
-
- function clamper(a, b) {
- var t;
- if (a > b) (t = a), (a = b), (b = t);
- return function (x) {
- return Math.max(a, Math.min(b, x));
- };
- }
-
- // normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].
- // interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].
- function bimap(domain, range, interpolate) {
- var d0 = domain[0],
- d1 = domain[1],
- r0 = range[0],
- r1 = range[1];
- if (d1 < d0) (d0 = normalize(d1, d0)), (r0 = interpolate(r1, r0));
- else (d0 = normalize(d0, d1)), (r0 = interpolate(r0, r1));
- return function (x) {
- return r0(d0(x));
- };
- }
-
- function polymap(domain, range, interpolate) {
- var j = Math.min(domain.length, range.length) - 1,
- d = new Array(j),
- r = new Array(j),
- i = -1;
-
- // Reverse descending domains.
- if (domain[j] < domain[0]) {
- domain = domain.slice().reverse();
- range = range.slice().reverse();
- }
-
- while (++i < j) {
- d[i] = normalize(domain[i], domain[i + 1]);
- r[i] = interpolate(range[i], range[i + 1]);
- }
-
- return function (x) {
- var i = bisect(domain, x, 1, j) - 1;
- return r[i](d[i](x));
- };
- }
-
- function copy(source, target) {
- return target
- .domain(source.domain())
- .range(source.range())
- .interpolate(source.interpolate())
- .clamp(source.clamp())
- .unknown(source.unknown());
- }
-
- function transformer() {
- var domain = unit,
- range = unit,
- interpolate = value,
- transform,
- untransform,
- unknown,
- clamp = continuous_identity,
- piecewise,
- output,
- input;
-
- function rescale() {
- var n = Math.min(domain.length, range.length);
- if (clamp !== continuous_identity)
- clamp = clamper(domain[0], domain[n - 1]);
- piecewise = n > 2 ? polymap : bimap;
- output = input = null;
- return scale;
- }
-
- function scale(x) {
- return x == null || isNaN((x = +x))
- ? unknown
- : (
- output ||
- (output = piecewise(domain.map(transform), range, interpolate))
- )(transform(clamp(x)));
- }
-
- scale.invert = function (y) {
- return clamp(
- untransform(
- (
- input ||
- (input = piecewise(range, domain.map(transform), src_number))
- )(y),
- ),
- );
- };
-
- scale.domain = function (_) {
- return arguments.length
- ? ((domain = Array.from(_, number_number)), rescale())
- : domain.slice();
- };
-
- scale.range = function (_) {
- return arguments.length
- ? ((range = Array.from(_)), rescale())
- : range.slice();
- };
-
- scale.rangeRound = function (_) {
- return (range = Array.from(_)), (interpolate = round), rescale();
- };
-
- scale.clamp = function (_) {
- return arguments.length
- ? ((clamp = _ ? true : continuous_identity), rescale())
- : clamp !== continuous_identity;
- };
-
- scale.interpolate = function (_) {
- return arguments.length ? ((interpolate = _), rescale()) : interpolate;
- };
-
- scale.unknown = function (_) {
- return arguments.length ? ((unknown = _), scale) : unknown;
- };
-
- return function (t, u) {
- (transform = t), (untransform = u);
- return rescale();
- };
- }
-
- function continuous() {
- return transformer()(continuous_identity, continuous_identity);
- } // CONCATENATED MODULE: ../node_modules/d3-scale/src/init.js
-
- function initRange(domain, range) {
- switch (arguments.length) {
- case 0:
- break;
- case 1:
- this.range(domain);
- break;
- default:
- this.range(range).domain(domain);
- break;
- }
- return this;
- }
-
- function initInterpolator(domain, interpolator) {
- switch (arguments.length) {
- case 0:
- break;
- case 1: {
- if (typeof domain === 'function') this.interpolator(domain);
- else this.range(domain);
- break;
- }
- default: {
- this.domain(domain);
- if (typeof interpolator === 'function')
- this.interpolator(interpolator);
- else this.range(interpolator);
- break;
- }
- }
- return this;
- } // CONCATENATED MODULE: ../node_modules/d3-format/src/precisionPrefix.js
-
- /* harmony default export */ function precisionPrefix(step, value) {
- return Math.max(
- 0,
- Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 -
- exponent(Math.abs(step)),
- );
- } // CONCATENATED MODULE: ../node_modules/d3-format/src/precisionRound.js
-
- /* harmony default export */ function precisionRound(step, max) {
- (step = Math.abs(step)), (max = Math.abs(max) - step);
- return Math.max(0, exponent(max) - exponent(step)) + 1;
- } // CONCATENATED MODULE: ../node_modules/d3-format/src/precisionFixed.js
-
- /* harmony default export */ function precisionFixed(step) {
- return Math.max(0, -exponent(Math.abs(step)));
- } // CONCATENATED MODULE: ../node_modules/d3-scale/src/tickFormat.js
-
- function tickFormat(start, stop, count, specifier) {
- var step = tickStep(start, stop, count),
- precision;
- specifier = formatSpecifier(specifier == null ? ',f' : specifier);
- switch (specifier.type) {
- case 's': {
- var value = Math.max(Math.abs(start), Math.abs(stop));
- if (
- specifier.precision == null &&
- !isNaN((precision = precisionPrefix(step, value)))
- )
- specifier.precision = precision;
- return formatPrefix(specifier, value);
- }
- case '':
- case 'e':
- case 'g':
- case 'p':
- case 'r': {
- if (
- specifier.precision == null &&
- !isNaN(
- (precision = precisionRound(
- step,
- Math.max(Math.abs(start), Math.abs(stop)),
- )),
- )
- )
- specifier.precision = precision - (specifier.type === 'e');
- break;
- }
- case 'f':
- case '%': {
- if (
- specifier.precision == null &&
- !isNaN((precision = precisionFixed(step)))
- )
- specifier.precision = precision - (specifier.type === '%') * 2;
- break;
- }
- }
- return format(specifier);
- } // CONCATENATED MODULE: ../node_modules/d3-scale/src/linear.js
-
- function linearish(scale) {
- var domain = scale.domain;
-
- scale.ticks = function (count) {
- var d = domain();
- return ticks(d[0], d[d.length - 1], count == null ? 10 : count);
- };
-
- scale.tickFormat = function (count, specifier) {
- var d = domain();
- return tickFormat(
- d[0],
- d[d.length - 1],
- count == null ? 10 : count,
- specifier,
- );
- };
-
- scale.nice = function (count) {
- if (count == null) count = 10;
-
- var d = domain();
- var i0 = 0;
- var i1 = d.length - 1;
- var start = d[i0];
- var stop = d[i1];
- var prestep;
- var step;
- var maxIter = 10;
-
- if (stop < start) {
- (step = start), (start = stop), (stop = step);
- (step = i0), (i0 = i1), (i1 = step);
- }
-
- while (maxIter-- > 0) {
- step = tickIncrement(start, stop, count);
- if (step === prestep) {
- d[i0] = start;
- d[i1] = stop;
- return domain(d);
- } else if (step > 0) {
- start = Math.floor(start / step) * step;
- stop = Math.ceil(stop / step) * step;
- } else if (step < 0) {
- start = Math.ceil(start * step) / step;
- stop = Math.floor(stop * step) / step;
- } else {
- break;
- }
- prestep = step;
- }
-
- return scale;
- };
-
- return scale;
- }
-
- function linear_linear() {
- var scale = continuous();
-
- scale.copy = function () {
- return copy(scale, linear_linear());
- };
-
- initRange.apply(scale, arguments);
-
- return linearish(scale);
- } // CONCATENATED MODULE: ../node_modules/d3-ease/src/cubic.js
-
- function cubicIn(t) {
- return t * t * t;
- }
-
- function cubicOut(t) {
- return --t * t * t + 1;
- }
-
- function cubicInOut(t) {
- return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;
- } // CONCATENATED MODULE: ../node_modules/d3-dispatch/src/dispatch.js
-
- var noop = { value: () => {} };
-
- function dispatch_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(_);
- }
-
- function Dispatch(_) {
- this._ = _;
- }
-
- function dispatch_parseTypenames(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 };
- });
- }
-
- Dispatch.prototype = dispatch_dispatch.prototype = {
- constructor: Dispatch,
- on: function (typename, callback) {
- var _ = this._,
- T = dispatch_parseTypenames(typename + '', _),
- t,
- i = -1,
- n = T.length;
-
- // If no callback was specified, return the callback of the given type and name.
- if (arguments.length < 2) {
- while (++i < n)
- if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name)))
- return t;
- return;
- }
-
- // If a type was specified, set the callback for the given type and name.
- // Otherwise, if a null callback was specified, remove callbacks of the given name.
- 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;
- },
- copy: function () {
- var copy = {},
- _ = this._;
- for (var t in _) copy[t] = _[t].slice();
- return new Dispatch(copy);
- },
- call: 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);
- },
- apply: 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);
- },
- };
-
- function get(type, name) {
- for (var i = 0, n = type.length, c; i < n; ++i) {
- if ((c = type[i]).name === name) {
- return c.value;
- }
- }
- }
-
- 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: name, value: callback });
- return type;
- }
-
- /* harmony default export */ const src_dispatch = dispatch_dispatch; // CONCATENATED MODULE: ../node_modules/d3-timer/src/timer.js
-
- var timer_frame = 0, // is an animation frame pending?
- timeout = 0, // is a timeout pending?
- interval = 0, // are any timers active?
- pokeDelay = 1000, // how frequently we check for clock skew
- taskHead,
- taskTail,
- clockLast = 0,
- clockNow = 0,
- clockSkew = 0,
- clock =
- typeof performance === 'object' && performance.now ? performance : Date,
- 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))
- );
- }
-
- function clearNow() {
- clockNow = 0;
- }
-
- function Timer() {
- this._call = this._time = this._next = null;
- }
-
- Timer.prototype = timer.prototype = {
- constructor: Timer,
- restart: 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();
- },
- stop: function () {
- if (this._call) {
- this._call = null;
- this._time = Infinity;
- sleep();
- }
- },
- };
-
- function timer(callback, delay, time) {
- var t = new Timer();
- t.restart(callback, delay, time);
- return t;
- }
-
- function timerFlush() {
- now(); // Get the current time, if not already set.
- ++timer_frame; // Pretend we’ve set an alarm, if we haven’t already.
- var t = taskHead,
- e;
- while (t) {
- if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);
- t = t._next;
- }
- --timer_frame;
- }
-
- function wake() {
- clockNow = (clockLast = clock.now()) + clockSkew;
- timer_frame = timeout = 0;
- try {
- timerFlush();
- } finally {
- timer_frame = 0;
- nap();
- clockNow = 0;
- }
- }
-
- function poke() {
- var now = clock.now(),
- delay = now - clockLast;
- if (delay > pokeDelay) (clockSkew -= delay), (clockLast = now);
- }
-
- 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);
- }
-
- function sleep(time) {
- if (timer_frame) return; // Soonest alarm already set, or will be.
- if (timeout) timeout = clearTimeout(timeout);
- var delay = time - clockNow; // Strictly less than if we recomputed 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));
- (timer_frame = 1), setFrame(wake);
- }
- } // CONCATENATED MODULE: ../node_modules/d3-timer/src/timeout.js
-
- /* harmony default export */ function src_timeout(callback, delay, time) {
- var t = new Timer();
- delay = delay == null ? 0 : +delay;
- t.restart(
- (elapsed) => {
- t.stop();
- callback(elapsed + delay);
- },
- delay,
- time,
- );
- return t;
- } // CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/schedule.js
-
- var emptyOn = src_dispatch('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;
-
- /* harmony default export */ function schedule(
- node,
- name,
- id,
- index,
- group,
- timing,
- ) {
- var schedules = node.__transition;
- if (!schedules) node.__transition = {};
- else if (id in schedules) return;
- create(node, id, {
- name: name,
- index: index, // For context during callback.
- group: 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,
- });
- }
-
- function init(node, id) {
- var schedule = schedule_get(node, id);
- if (schedule.state > CREATED)
- throw new Error('too late; already scheduled');
- return schedule;
- }
-
- function schedule_set(node, id) {
- var schedule = schedule_get(node, id);
- if (schedule.state > STARTED)
- throw new Error('too late; already running');
- return schedule;
- }
-
- function schedule_get(node, id) {
- var schedule = node.__transition;
- if (!schedule || !(schedule = schedule[id]))
- throw new Error('transition not found');
- return schedule;
- }
-
- function create(node, id, self) {
- var schedules = node.__transition,
- tween;
-
- // Initialize the self timer when the transition is created.
- // Note the actual delay is not known until the first callback!
- schedules[id] = self;
- self.timer = timer(schedule, 0, self.time);
-
- function schedule(elapsed) {
- self.state = SCHEDULED;
- self.timer.restart(start, self.delay, self.time);
-
- // If the elapsed delay is less than our first sleep, start immediately.
- if (self.delay <= elapsed) start(elapsed - self.delay);
- }
-
- function start(elapsed) {
- var i, j, n, o;
-
- // If the state is not SCHEDULED, then we previously errored on start.
- if (self.state !== SCHEDULED) return stop();
-
- for (i in schedules) {
- o = schedules[i];
- if (o.name !== self.name) continue;
-
- // While this element already has a starting transition during this frame,
- // defer starting an interrupting transition until that transition has a
- // chance to tick (and possibly end); see d3/d3-transition#54!
- if (o.state === STARTED) return src_timeout(start);
-
- // Interrupt the active transition, if any.
- if (o.state === RUNNING) {
- o.state = ENDED;
- o.timer.stop();
- o.on.call('interrupt', node, node.__data__, o.index, o.group);
- delete schedules[i];
- }
-
- // Cancel any pre-empted transitions.
- else if (+i < id) {
- o.state = ENDED;
- o.timer.stop();
- o.on.call('cancel', node, node.__data__, o.index, o.group);
- delete schedules[i];
- }
- }
-
- // Defer the first tick to end of the current frame; see d3/d3#1576.
- // Note the transition may be canceled after start and before the first tick!
- // Note this must be scheduled before the start event; see d3/d3-transition#16!
- // Assuming this is successful, subsequent callbacks go straight to tick.
- src_timeout(function () {
- if (self.state === STARTED) {
- self.state = RUNNING;
- self.timer.restart(tick, self.delay, self.time);
- tick(elapsed);
- }
- });
-
- // Dispatch the start event.
- // Note this must be done before the tween are initialized.
- self.state = STARTING;
- self.on.call('start', node, node.__data__, self.index, self.group);
- if (self.state !== STARTING) return; // interrupted
- self.state = STARTED;
-
- // Initialize the tween, deleting null tween.
- 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;
- }
-
- 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);
- }
-
- // Dispatch the end event.
- if (self.state === ENDING) {
- self.on.call('end', node, node.__data__, self.index, self.group);
- stop();
- }
- }
-
- function stop() {
- self.state = ENDED;
- self.timer.stop();
- delete schedules[id];
- for (var i in schedules) return; // eslint-disable-line no-unused-vars
- delete node.__transition;
- }
- } // CONCATENATED MODULE: ../node_modules/d3-transition/src/interrupt.js
-
- /* harmony default export */ function interrupt(node, name) {
- var schedules = node.__transition,
- schedule,
- active,
- empty = true,
- i;
-
- if (!schedules) return;
-
- name = name == null ? null : name + '';
-
- for (i in schedules) {
- if ((schedule = schedules[i]).name !== name) {
- empty = 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 (empty) delete node.__transition;
- } // CONCATENATED MODULE: ../node_modules/d3-transition/src/selection/interrupt.js
-
- /* harmony default export */ function selection_interrupt(name) {
- return this.each(function () {
- interrupt(this, name);
- });
- } // CONCATENATED MODULE: ../node_modules/d3-interpolate/src/transform/decompose.js
-
- var degrees = 180 / Math.PI;
-
- var decompose_identity = {
- translateX: 0,
- translateY: 0,
- rotate: 0,
- skewX: 0,
- scaleX: 1,
- scaleY: 1,
- };
-
- /* harmony default export */ function decompose(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: scaleX,
- scaleY: scaleY,
- };
- } // CONCATENATED MODULE: ../node_modules/d3-interpolate/src/transform/parse.js
-
- var svgNode;
-
- /* eslint-disable no-undef */
- function parseCss(value) {
- const m = new (typeof DOMMatrix === 'function'
- ? DOMMatrix
- : WebKitCSSMatrix)(value + '');
- return m.isIdentity
- ? decompose_identity
- : decompose(m.a, m.b, m.c, m.d, m.e, m.f);
- }
-
- function parseSvg(value) {
- if (value == null) return decompose_identity;
- if (!svgNode)
- svgNode = document.createElementNS('http://www.w3.org/2000/svg', 'g');
- svgNode.setAttribute('transform', value);
- if (!(value = svgNode.transform.baseVal.consolidate()))
- return decompose_identity;
- value = value.matrix;
- return decompose(value.a, value.b, value.c, value.d, value.e, value.f);
- } // CONCATENATED MODULE: ../node_modules/d3-interpolate/src/transform/index.js
-
- function interpolateTransform(parse, pxComma, pxParen, degParen) {
- function pop(s) {
- return s.length ? s.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: src_number(xa, xb) },
- { i: i - 2, x: src_number(ya, yb) },
- );
- } else if (xb || yb) {
- s.push('translate(' + xb + pxComma + yb + pxParen);
- }
- }
-
- function rotate(a, b, s, q) {
- if (a !== b) {
- if (a - b > 180) b += 360;
- else if (b - a > 180) a += 360; // shortest path
- q.push({
- i: s.push(pop(s) + 'rotate(', null, degParen) - 2,
- x: src_number(a, b),
- });
- } else if (b) {
- s.push(pop(s) + 'rotate(' + b + degParen);
- }
- }
-
- function skewX(a, b, s, q) {
- if (a !== b) {
- q.push({
- i: s.push(pop(s) + 'skewX(', null, degParen) - 2,
- x: src_number(a, b),
- });
- } else if (b) {
- s.push(pop(s) + 'skewX(' + b + degParen);
- }
- }
-
- 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: src_number(xa, xb) },
- { i: i - 2, x: src_number(ya, yb) },
- );
- } else if (xb !== 1 || yb !== 1) {
- s.push(pop(s) + 'scale(' + xb + ',' + yb + ')');
- }
- }
-
- return function (a, b) {
- var s = [], // string constants and placeholders
- q = []; // number interpolators
- (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; // gc
- return function (t) {
- var i = -1,
- n = q.length,
- o;
- while (++i < n) s[(o = q[i]).i] = o.x(t);
- return s.join('');
- };
- };
- }
-
- var interpolateTransformCss = interpolateTransform(
- parseCss,
- 'px, ',
- 'px)',
- 'deg)',
- );
- var interpolateTransformSvg = interpolateTransform(
- parseSvg,
- ', ',
- ')',
- ')',
- ); // CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/tween.js
-
- function tweenRemove(id, name) {
- var tween0, tween1;
- return function () {
- var schedule = schedule_set(this, id),
- tween = schedule.tween;
-
- // If this node shared tween with the previous node,
- // just assign the updated shared tween and we’re done!
- // Otherwise, copy-on-write.
- 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;
- };
- }
-
- function tweenFunction(id, name, value) {
- var tween0, tween1;
- if (typeof value !== 'function') throw new Error();
- return function () {
- var schedule = schedule_set(this, id),
- tween = schedule.tween;
-
- // If this node shared tween with the previous node,
- // just assign the updated shared tween and we’re done!
- // Otherwise, copy-on-write.
- if (tween !== tween0) {
- tween1 = (tween0 = tween).slice();
- for (
- var t = { name: name, value: 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;
- };
- }
-
- /* harmony default export */ function tween(name, value) {
- var id = this._id;
-
- name += '';
-
- if (arguments.length < 2) {
- var tween = schedule_get(this.node(), id).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)(id, name, value),
- );
- }
-
- function tweenValue(transition, name, value) {
- var id = transition._id;
-
- transition.each(function () {
- var schedule = schedule_set(this, id);
- (schedule.value || (schedule.value = {}))[name] = value.apply(
- this,
- arguments,
- );
- });
-
- return function (node) {
- return schedule_get(node, id).value[name];
- };
- } // CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/interpolate.js
-
- /* harmony default export */ function interpolate(a, b) {
- var c;
- return (typeof b === 'number'
- ? src_number
- : b instanceof color
- ? rgb
- : (c = color(b))
- ? ((b = c), rgb)
- : string)(a, b);
- } // CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/attr.js
-
- function attr_attrRemove(name) {
- return function () {
- this.removeAttribute(name);
- };
- }
-
- function attr_attrRemoveNS(fullname) {
- return function () {
- this.removeAttributeNS(fullname.space, fullname.local);
- };
- }
-
- function attr_attrConstant(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));
- };
- }
-
- function attr_attrConstantNS(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));
- };
- }
-
- function attr_attrFunction(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)));
- };
- }
-
- function attr_attrFunctionNS(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)));
- };
- }
-
- /* harmony default export */ function transition_attr(name, value) {
- var fullname = namespace(name),
- i = fullname === 'transform' ? interpolateTransformSvg : interpolate;
- return this.attrTween(
- name,
- typeof value === 'function'
- ? (fullname.local ? attr_attrFunctionNS : attr_attrFunction)(
- fullname,
- i,
- tweenValue(this, 'attr.' + name, value),
- )
- : value == null
- ? (fullname.local ? attr_attrRemoveNS : attr_attrRemove)(fullname)
- : (fullname.local ? attr_attrConstantNS : attr_attrConstant)(
- fullname,
- i,
- value,
- ),
- );
- } // CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/attrTween.js
-
- function attrInterpolate(name, i) {
- return function (t) {
- this.setAttribute(name, i.call(this, t));
- };
- }
-
- function attrInterpolateNS(fullname, i) {
- return function (t) {
- this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));
- };
- }
-
- 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;
- }
- tween._value = value;
- return tween;
- }
-
- 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;
- }
- tween._value = value;
- return tween;
- }
-
- /* harmony default export */ function transition_attrTween(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(name);
- return this.tween(
- key,
- (fullname.local ? attrTweenNS : attrTween)(fullname, value),
- );
- } // CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/delay.js
-
- function delayFunction(id, value) {
- return function () {
- init(this, id).delay = +value.apply(this, arguments);
- };
- }
-
- function delayConstant(id, value) {
- return (
- (value = +value),
- function () {
- init(this, id).delay = value;
- }
- );
- }
-
- /* harmony default export */ function delay(value) {
- var id = this._id;
-
- return arguments.length
- ? this.each(
- (typeof value === 'function' ? delayFunction : delayConstant)(
- id,
- value,
- ),
- )
- : schedule_get(this.node(), id).delay;
- } // CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/duration.js
-
- function durationFunction(id, value) {
- return function () {
- schedule_set(this, id).duration = +value.apply(this, arguments);
- };
- }
-
- function durationConstant(id, value) {
- return (
- (value = +value),
- function () {
- schedule_set(this, id).duration = value;
- }
- );
- }
-
- /* harmony default export */ function duration(value) {
- var id = this._id;
-
- return arguments.length
- ? this.each(
- (typeof value === 'function' ? durationFunction : durationConstant)(
- id,
- value,
- ),
- )
- : schedule_get(this.node(), id).duration;
- } // CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/ease.js
-
- function easeConstant(id, value) {
- if (typeof value !== 'function') throw new Error();
- return function () {
- schedule_set(this, id).ease = value;
- };
- }
-
- /* harmony default export */ function ease(value) {
- var id = this._id;
-
- return arguments.length
- ? this.each(easeConstant(id, value))
- : schedule_get(this.node(), id).ease;
- } // CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/easeVarying.js
-
- function easeVarying(id, value) {
- return function () {
- var v = value.apply(this, arguments);
- if (typeof v !== 'function') throw new Error();
- schedule_set(this, id).ease = v;
- };
- }
-
- /* harmony default export */ function transition_easeVarying(value) {
- if (typeof value !== 'function') throw new Error();
- return this.each(easeVarying(this._id, value));
- } // CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/filter.js
-
- /* harmony default export */ function transition_filter(match) {
- if (typeof match !== 'function') match = matcher(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);
- } // CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/merge.js
-
- /* harmony default export */ function transition_merge(transition) {
- if (transition._id !== this._id) throw new Error();
-
- for (
- var groups0 = this._groups,
- groups1 = transition._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);
- } // CONCATENATED MODULE: ../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';
- });
- }
-
- function onFunction(id, name, listener) {
- var on0,
- on1,
- sit = start(name) ? init : schedule_set;
- return function () {
- var schedule = sit(this, id),
- on = schedule.on;
-
- // If this node shared a dispatch with the previous node,
- // just assign the updated shared dispatch and we’re done!
- // Otherwise, copy-on-write.
- if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);
-
- schedule.on = on1;
- };
- }
-
- /* harmony default export */ function transition_on(name, listener) {
- var id = this._id;
-
- return arguments.length < 2
- ? schedule_get(this.node(), id).on.on(name)
- : this.each(onFunction(id, name, listener));
- } // CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/remove.js
-
- function removeFunction(id) {
- return function () {
- var parent = this.parentNode;
- for (var i in this.__transition) if (+i !== id) return;
- if (parent) parent.removeChild(this);
- };
- }
-
- /* harmony default export */ function transition_remove() {
- return this.on('end.remove', removeFunction(this._id));
- } // CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/select.js
-
- /* harmony default export */ function transition_select(select) {
- var name = this._name,
- id = this._id;
-
- if (typeof select !== 'function') select = selector(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(
- subgroup[i],
- name,
- id,
- i,
- subgroup,
- schedule_get(node, id),
- );
- }
- }
- }
-
- return new Transition(subgroups, this._parents, name, id);
- } // CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/selectAll.js
-
- /* harmony default export */ function transition_selectAll(select) {
- var name = this._name,
- id = this._id;
-
- if (typeof select !== 'function') select = selectorAll(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 children = select.call(node, node.__data__, i, group),
- child,
- inherit = schedule_get(node, id),
- k = 0,
- l = children.length;
- k < l;
- ++k
- ) {
- if ((child = children[k])) {
- schedule(child, name, id, k, children, inherit);
- }
- }
- subgroups.push(children);
- parents.push(node);
- }
- }
- }
-
- return new Transition(subgroups, parents, name, id);
- } // CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/selection.js
-
- var selection_Selection = src_selection.prototype.constructor;
-
- /* harmony default export */ function transition_selection() {
- return new selection_Selection(this._groups, this._parents);
- } // CONCATENATED MODULE: ../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),
- ));
- };
- }
-
- function style_styleRemove(name) {
- return function () {
- this.style.removeProperty(name);
- };
- }
-
- function style_styleConstant(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));
- };
- }
-
- function style_styleFunction(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)));
- };
- }
-
- function styleMaybeRemove(id, name) {
- var on0,
- on1,
- listener0,
- key = 'style.' + name,
- event = 'end.' + key,
- remove;
- return function () {
- var schedule = schedule_set(this, id),
- on = schedule.on,
- listener =
- schedule.value[key] == null
- ? remove || (remove = style_styleRemove(name))
- : undefined;
-
- // If this node shared a dispatch with the previous node,
- // just assign the updated shared dispatch and we’re done!
- // Otherwise, copy-on-write.
- if (on !== on0 || listener0 !== listener)
- (on1 = (on0 = on).copy()).on(event, (listener0 = listener));
-
- schedule.on = on1;
- };
- }
-
- /* harmony default export */ function transition_style(
- name,
- value,
- priority,
- ) {
- var i =
- (name += '') === 'transform' ? interpolateTransformCss : interpolate;
- return value == null
- ? this.styleTween(name, styleNull(name, i)).on(
- 'end.style.' + name,
- style_styleRemove(name),
- )
- : typeof value === 'function'
- ? this.styleTween(
- name,
- style_styleFunction(
- name,
- i,
- tweenValue(this, 'style.' + name, value),
- ),
- ).each(styleMaybeRemove(this._id, name))
- : this.styleTween(
- name,
- style_styleConstant(name, i, value),
- priority,
- ).on('end.style.' + name, null);
- } // CONCATENATED MODULE: ../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);
- };
- }
-
- 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;
- }
- tween._value = value;
- return tween;
- }
-
- /* harmony default export */ function transition_styleTween(
- 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),
- );
- } // CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/text.js
-
- function text_textConstant(value) {
- return function () {
- this.textContent = value;
- };
- }
-
- function text_textFunction(value) {
- return function () {
- var value1 = value(this);
- this.textContent = value1 == null ? '' : value1;
- };
- }
-
- /* harmony default export */ function transition_text(value) {
- return this.tween(
- 'text',
- typeof value === 'function'
- ? text_textFunction(tweenValue(this, 'text', value))
- : text_textConstant(value == null ? '' : value + ''),
- );
- } // CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/textTween.js
-
- function textInterpolate(i) {
- return function (t) {
- this.textContent = i.call(this, t);
- };
- }
-
- function textTween(value) {
- var t0, i0;
- function tween() {
- var i = value.apply(this, arguments);
- if (i !== i0) t0 = (i0 = i) && textInterpolate(i);
- return t0;
- }
- tween._value = value;
- return tween;
- }
-
- /* harmony default export */ function transition_textTween(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));
- } // CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/transition.js
-
- /* harmony default export */ function transition() {
- 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 inherit = schedule_get(node, id0);
- schedule(node, name, id1, i, group, {
- time: inherit.time + inherit.delay + inherit.duration,
- delay: 0,
- duration: inherit.duration,
- ease: inherit.ease,
- });
- }
- }
- }
-
- return new Transition(groups, this._parents, name, id1);
- } // CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/end.js
-
- /* harmony default export */ function end() {
- var on0,
- on1,
- that = this,
- id = that._id,
- size = that.size();
- return new Promise(function (resolve, reject) {
- var cancel = { value: reject },
- end = {
- value: function () {
- if (--size === 0) resolve();
- },
- };
-
- that.each(function () {
- var schedule = schedule_set(this, id),
- on = schedule.on;
-
- // If this node shared a dispatch with the previous node,
- // just assign the updated shared dispatch and we’re done!
- // Otherwise, copy-on-write.
- if (on !== on0) {
- on1 = (on0 = on).copy();
- on1._.cancel.push(cancel);
- on1._.interrupt.push(cancel);
- on1._.end.push(end);
- }
-
- schedule.on = on1;
- });
-
- // The selection was empty, resolve end immediately
- if (size === 0) resolve();
- });
- } // CONCATENATED MODULE: ../node_modules/d3-transition/src/transition/index.js
-
- var id = 0;
-
- function Transition(groups, parents, name, id) {
- this._groups = groups;
- this._parents = parents;
- this._name = name;
- this._id = id;
- }
-
- function transition_transition(name) {
- return src_selection().transition(name);
- }
-
- function newId() {
- return ++id;
- }
-
- var selection_prototype = src_selection.prototype;
-
- Transition.prototype = transition_transition.prototype = {
- constructor: Transition,
- select: transition_select,
- selectAll: transition_selectAll,
- selectChild: selection_prototype.selectChild,
- selectChildren: selection_prototype.selectChildren,
- filter: transition_filter,
- merge: transition_merge,
- selection: transition_selection,
- transition: transition,
- 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: transition_on,
- attr: transition_attr,
- attrTween: transition_attrTween,
- style: transition_style,
- styleTween: transition_styleTween,
- text: transition_text,
- textTween: transition_textTween,
- remove: transition_remove,
- tween: tween,
- delay: delay,
- duration: duration,
- ease: ease,
- easeVarying: transition_easeVarying,
- end: end,
- [Symbol.iterator]: selection_prototype[Symbol.iterator],
- }; // CONCATENATED MODULE: ../node_modules/d3-transition/src/selection/transition.js
-
- var defaultTiming = {
- time: null, // Set on use.
- delay: 0,
- duration: 250,
- ease: cubicInOut,
- };
-
- function inherit(node, id) {
- var timing;
- while (!(timing = node.__transition) || !(timing = timing[id])) {
- if (!(node = node.parentNode)) {
- throw new Error(`transition ${id} not found`);
- }
- }
- return timing;
- }
-
- /* harmony default export */ function selection_transition(name) {
- var id, timing;
-
- if (name instanceof Transition) {
- (id = name._id), (name = name._name);
- } else {
- (id = 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(node, name, id, i, group, timing || inherit(node, id));
- }
- }
- }
-
- return new Transition(groups, this._parents, name, id);
- } // CONCATENATED MODULE: ../node_modules/d3-transition/src/selection/index.js
-
- src_selection.prototype.interrupt = selection_interrupt;
- src_selection.prototype.transition = selection_transition; // CONCATENATED MODULE: ../node_modules/d3-transition/src/index.js // CONCATENATED MODULE: ./colorUtils.js
-
- function generateHash(name) {
- // Return a vector (0.0->1.0) that is a hash of the input string.
- // The hash is computed to favor early characters over later ones, so
- // that strings with similar starts have similar vectors. Only the first
- // 6 characters are considered.
- const MAX_CHAR = 6;
-
- let hash = 0;
- let maxHash = 0;
- let weight = 1;
- const mod = 10;
-
- if (name) {
- for (let i = 0; i < name.length; i++) {
- if (i > MAX_CHAR) {
- break;
- }
- hash += weight * (name.charCodeAt(i) % mod);
- maxHash += weight * (mod - 1);
- weight *= 0.7;
- }
- if (maxHash > 0) {
- hash = hash / maxHash;
- }
- }
- return hash;
- }
-
- function generateColorVector(name) {
- let vector = 0;
- if (name) {
- const nameArr = name.split('`');
- if (nameArr.length > 1) {
- name = nameArr[nameArr.length - 1]; // drop module name if present
- }
- name = name.split('(')[0]; // drop extra info
- vector = generateHash(name);
- }
- return vector;
- } // CONCATENATED MODULE: ./colorScheme.js
-
- function calculateColor(hue, vector) {
- let r;
- let g;
- let b;
-
- if (hue === 'red') {
- r = 200 + Math.round(55 * vector);
- g = 50 + Math.round(80 * vector);
- b = g;
- } else if (hue === 'orange') {
- r = 190 + Math.round(65 * vector);
- g = 90 + Math.round(65 * vector);
- b = 0;
- } else if (hue === 'yellow') {
- r = 175 + Math.round(55 * vector);
- g = r;
- b = 50 + Math.round(20 * vector);
- } else if (hue === 'green') {
- r = 50 + Math.round(60 * vector);
- g = 200 + Math.round(55 * vector);
- b = r;
- } else if (hue === 'pastelgreen') {
- // rgb(163,195,72) - rgb(238,244,221)
- r = 163 + Math.round(75 * vector);
- g = 195 + Math.round(49 * vector);
- b = 72 + Math.round(149 * vector);
- } else if (hue === 'blue') {
- // rgb(91,156,221) - rgb(217,232,247)
- r = 91 + Math.round(126 * vector);
- g = 156 + Math.round(76 * vector);
- b = 221 + Math.round(26 * vector);
- } else if (hue === 'aqua') {
- r = 50 + Math.round(60 * vector);
- g = 165 + Math.round(55 * vector);
- b = g;
- } else if (hue === 'cold') {
- r = 0 + Math.round(55 * (1 - vector));
- g = 0 + Math.round(230 * (1 - vector));
- b = 200 + Math.round(55 * vector);
- } else {
- // original warm palette
- r = 200 + Math.round(55 * vector);
- g = 0 + Math.round(230 * (1 - vector));
- b = 0 + Math.round(55 * (1 - vector));
- }
-
- return 'rgb(' + r + ',' + g + ',' + b + ')';
- } // CONCATENATED MODULE: ./flamegraph.js
-
- /* harmony default export */ function flamegraph() {
- let w = 960; // graph width
- let h = null; // graph height
- let c = 18; // cell height
- let selection = null; // selection
- let tooltip = null; // tooltip
- let title = ''; // graph title
- let transitionDuration = 750;
- let transitionEase = cubicInOut; // tooltip offset
- let sort = false;
- let inverted = false; // invert the graph direction
- let clickHandler = null;
- let hoverHandler = null;
- let minFrameSize = 0;
- let detailsElement = null;
- let searchDetails = null;
- let selfValue = false;
- let resetHeightOnZoom = false;
- let scrollOnZoom = false;
- let minHeight = null;
- let computeDelta = false;
- let colorHue = null;
-
- let getName = function (d) {
- return d.data.n || d.data.name;
- };
-
- let getValue = function (d) {
- if ('v' in d) {
- return d.v;
- } else {
- return d.value;
- }
- };
-
- let getChildren = function (d) {
- return d.c || d.children;
- };
-
- let getLibtype = function (d) {
- return d.data.l || d.data.libtype;
- };
-
- let getDelta = function (d) {
- if ('d' in d.data) {
- return d.data.d;
- } else {
- return d.data.delta;
- }
- };
-
- let searchHandler = function (searchResults, searchSum, totalValue) {
- searchDetails = () => {
- if (detailsElement) {
- detailsElement.textContent =
- 'search: ' +
- searchSum +
- ' of ' +
- totalValue +
- ' total time ( ' +
- format('.3f')(100 * (searchSum / totalValue), 3) +
- '%)';
- }
- };
- searchDetails();
- };
- const originalSearchHandler = searchHandler;
-
- let searchMatch = (d, term, ignoreCase = false) => {
- if (!term) {
- return false;
- }
- let label = getName(d);
- if (ignoreCase) {
- term = term.toLowerCase();
- label = label.toLowerCase();
- }
- const re = new RegExp(term);
- return typeof label !== 'undefined' && label && label.match(re);
- };
- const originalSearchMatch = searchMatch;
-
- let detailsHandler = function (d) {
- if (detailsElement) {
- if (d) {
- detailsElement.textContent = d;
- } else {
- if (typeof searchDetails === 'function') {
- searchDetails();
- } else {
- detailsElement.textContent = '';
- }
- }
- }
- };
- const originalDetailsHandler = detailsHandler;
-
- let labelHandler = function (d) {
- return (
- getName(d) +
- ' (' +
- format('.3f')(100 * (d.x1 - d.x0), 3) +
- '%, ' +
- getValue(d) +
- ' ms)'
- );
- };
-
- let colorMapper = function (d) {
- return d.highlight ? '#E600E6' : colorHash(getName(d), getLibtype(d));
- };
- const originalColorMapper = colorMapper;
-
- function colorHash(name, libtype) {
- // Return a color for the given name and library type. The library type
- // selects the hue, and the name is hashed to a color in that hue.
-
- // default when libtype is not in use
- let hue = colorHue || 'warm';
-
- if (!colorHue && !(typeof libtype === 'undefined' || libtype === '')) {
- // Select hue. Order is important.
- hue = 'red';
- if (typeof name !== 'undefined' && name && name.match(/::/)) {
- hue = 'yellow';
- }
- if (libtype === 'kernel') {
- hue = 'orange';
- } else if (libtype === 'jit') {
- hue = 'green';
- } else if (libtype === 'inlined') {
- hue = 'aqua';
- }
- }
-
- const vector = generateColorVector(name);
- return calculateColor(hue, vector);
- }
-
- function show(d) {
- d.data.fade = false;
- d.data.hide = false;
- if (d.children) {
- d.children.forEach(show);
- }
- }
-
- function hideSiblings(node) {
- let child = node;
- let parent = child.parent;
- let children, i, sibling;
- while (parent) {
- children = parent.children;
- i = children.length;
- while (i--) {
- sibling = children[i];
- if (sibling !== child) {
- sibling.data.hide = true;
- }
- }
- child = parent;
- parent = child.parent;
- }
- }
-
- function fadeAncestors(d) {
- if (d.parent) {
- d.parent.data.fade = true;
- fadeAncestors(d.parent);
- }
- }
-
- function zoom(d) {
- if (tooltip) tooltip.hide();
- hideSiblings(d);
- show(d);
- fadeAncestors(d);
- update();
- if (scrollOnZoom) {
- const chartOffset = src_select(this).select('svg')._groups[0][0]
- .parentNode.offsetTop;
- const maxFrames = (window.innerHeight - chartOffset) / c;
- const frameOffset = (d.height - maxFrames + 10) * c;
- window.scrollTo({
- top: chartOffset + frameOffset,
- left: 0,
- behavior: 'smooth',
- });
- }
- if (typeof clickHandler === 'function') {
- clickHandler(d);
- }
- }
-
- function searchTree(d, term) {
- const results = [];
- let sum = 0;
-
- function searchInner(d, foundParent) {
- let found = false;
-
- if (searchMatch(d, term)) {
- d.highlight = true;
- found = true;
- if (!foundParent) {
- sum += getValue(d);
- }
- results.push(d);
- } else {
- d.highlight = false;
- }
-
- if (getChildren(d)) {
- getChildren(d).forEach(function (child) {
- searchInner(child, foundParent || found);
- });
- }
- }
- searchInner(d, false);
-
- return [results, sum];
- }
-
- function findTree(d, id) {
- if (d.id === id) {
- return d;
- } else {
- const children = getChildren(d);
- if (children) {
- for (let i = 0; i < children.length; i++) {
- const found = findTree(children[i], id);
- if (found) {
- return found;
- }
- }
- }
- }
- }
-
- function clear(d) {
- d.highlight = false;
- if (getChildren(d)) {
- getChildren(d).forEach(function (child) {
- clear(child);
- });
- }
- }
-
- function doSort(a, b) {
- if (typeof sort === 'function') {
- return sort(a, b);
- } else if (sort) {
- return ascending_ascending(getName(a), getName(b));
- }
- }
-
- const p = partition();
-
- function filterNodes(root) {
- let nodeList = root.descendants();
- if (minFrameSize > 0) {
- const kx = w / (root.x1 - root.x0);
- nodeList = nodeList.filter(function (el) {
- return (el.x1 - el.x0) * kx > minFrameSize;
- });
- }
- return nodeList;
- }
-
- function update() {
- selection.each(function (root) {
- const x = linear_linear().range([0, w]);
- const y = linear_linear().range([0, c]);
-
- reappraiseNode(root);
-
- if (sort) root.sort(doSort);
-
- p(root);
-
- const kx = w / (root.x1 - root.x0);
- function width(d) {
- return (d.x1 - d.x0) * kx;
- }
-
- const descendants = filterNodes(root);
- const svg = src_select(this).select('svg');
- svg.attr('width', w);
-
- let g = svg.selectAll('g').data(descendants, function (d) {
- return d.id;
- });
-
- // if height is not set: set height on first update, after nodes were filtered by minFrameSize
- if (!h || resetHeightOnZoom) {
- const maxDepth = Math.max.apply(
- null,
- descendants.map(function (n) {
- return n.depth;
- }),
- );
-
- h = (maxDepth + 3) * c;
- if (h < minHeight) h = minHeight;
-
- svg.attr('height', h);
- }
-
- g.transition()
- .duration(transitionDuration)
- .ease(transitionEase)
- .attr('transform', function (d) {
- return (
- 'translate(' +
- x(d.x0) +
- ',' +
- (inverted ? y(d.depth) : h - y(d.depth) - c) +
- ')'
- );
- });
-
- g.select('rect')
- .transition()
- .duration(transitionDuration)
- .ease(transitionEase)
- .attr('width', width);
-
- const node = g
- .enter()
- .append('svg:g')
- .attr('transform', function (d) {
- return (
- 'translate(' +
- x(d.x0) +
- ',' +
- (inverted ? y(d.depth) : h - y(d.depth) - c) +
- ')'
- );
- });
-
- node
- .append('svg:rect')
- .transition()
- .delay(transitionDuration / 2)
- .attr('width', width);
-
- if (!tooltip) {
- node.append('svg:title');
- }
-
- node.append('foreignObject').append('xhtml:div');
-
- // Now we have to re-select to see the new elements (why?).
- g = svg.selectAll('g').data(descendants, function (d) {
- return d.id;
- });
-
- g.attr('width', width)
- .attr('height', function (d) {
- return c;
- })
- .attr('name', function (d) {
- return getName(d);
- })
- .attr('class', function (d) {
- return d.data.fade ? 'frame fade' : 'frame';
- });
-
- g.select('rect')
- .attr('height', function (d) {
- return c;
- })
- .attr('fill', function (d) {
- return colorMapper(d);
- });
-
- if (!tooltip) {
- g.select('title').text(labelHandler);
- }
-
- g.select('foreignObject')
- .attr('width', width)
- .attr('height', function (d) {
- return c;
- })
- .select('div')
- .attr('class', 'd3-flame-graph-label')
- .style('display', function (d) {
- return width(d) < 35 ? 'none' : 'block';
- })
- .transition()
- .delay(transitionDuration)
- .text(getName);
-
- g.on('click', (_, d) => {
- zoom(d);
- });
-
- g.exit().remove();
-
- g.on('mouseover', function (_, d) {
- if (tooltip) tooltip.show(d, this);
- detailsHandler(labelHandler(d));
- if (typeof hoverHandler === 'function') {
- hoverHandler(d);
- }
- }).on('mouseout', function () {
- if (tooltip) tooltip.hide();
- detailsHandler(null);
- });
- });
- }
-
- function merge(data, samples) {
- samples.forEach(function (sample) {
- const node = data.find(function (element) {
- return element.name === sample.name;
- });
-
- if (node) {
- node.value += sample.value;
- if (sample.children) {
- if (!node.children) {
- node.children = [];
- }
- merge(node.children, sample.children);
- }
- } else {
- data.push(sample);
- }
- });
- }
-
- function forEachNode(node, f) {
- f(node);
- let children = node.children;
- if (children) {
- const stack = [children];
- let count, child, grandChildren;
- while (stack.length) {
- children = stack.pop();
- count = children.length;
- while (count--) {
- child = children[count];
- f(child);
- grandChildren = child.children;
- if (grandChildren) {
- stack.push(grandChildren);
- }
- }
- }
- }
- }
-
- function adoptNode(node) {
- let id = 0;
- forEachNode(node, function (n) {
- n.id = id++;
- });
- }
-
- function reappraiseNode(root) {
- let node,
- children,
- grandChildren,
- childrenValue,
- i,
- j,
- child,
- childValue;
- const stack = [];
- const included = [];
- const excluded = [];
- const compoundValue = !selfValue;
- let item = root.data;
- if (item.hide) {
- root.value = 0;
- children = root.children;
- if (children) {
- excluded.push(children);
- }
- } else {
- root.value = item.fade ? 0 : getValue(item);
- stack.push(root);
- }
- // First DFS pass:
- // 1. Update node.value with node's self value
- // 2. Populate excluded list with children under hidden nodes
- // 3. Populate included list with children under visible nodes
- while ((node = stack.pop())) {
- children = node.children;
- if (children && (i = children.length)) {
- childrenValue = 0;
- while (i--) {
- child = children[i];
- item = child.data;
- if (item.hide) {
- child.value = 0;
- grandChildren = child.children;
- if (grandChildren) {
- excluded.push(grandChildren);
- }
- continue;
- }
- if (item.fade) {
- child.value = 0;
- } else {
- childValue = getValue(item);
- child.value = childValue;
- childrenValue += childValue;
- }
- stack.push(child);
- }
- // Here second part of `&&` is actually checking for `node.data.fade`. However,
- // checking for node.value is faster and presents more oportunities for JS optimizer.
- if (compoundValue && node.value) {
- node.value -= childrenValue;
- }
- included.push(children);
- }
- }
- // Postorder traversal to compute compound value of each visible node.
- i = included.length;
- while (i--) {
- children = included[i];
- childrenValue = 0;
- j = children.length;
- while (j--) {
- childrenValue += children[j].value;
- }
- children[0].parent.value += childrenValue;
- }
- // Continue DFS to set value of all hidden nodes to 0.
- while (excluded.length) {
- children = excluded.pop();
- j = children.length;
- while (j--) {
- child = children[j];
- child.value = 0;
- grandChildren = child.children;
- if (grandChildren) {
- excluded.push(grandChildren);
- }
- }
- }
- }
-
- function processData() {
- selection.datum((data) => {
- if (data.constructor.name !== 'Node') {
- // creating a root hierarchical structure
- const root = hierarchy(data, getChildren);
-
- // augumenting nodes with ids
- adoptNode(root);
-
- // calculate actual value
- reappraiseNode(root);
-
- // store value for later use
- root.originalValue = root.value;
-
- // computing deltas for differentials
- if (computeDelta) {
- root.eachAfter((node) => {
- let sum = getDelta(node);
- const children = node.children;
- let i = children && children.length;
- while (--i >= 0) sum += children[i].delta;
- node.delta = sum;
- });
- }
-
- // setting the bound data for the selection
- return root;
- }
- });
- }
-
- function chart(s) {
- if (!arguments.length) {
- return chart;
- }
-
- // saving the selection on `.call`
- selection = s;
-
- // processing raw data to be used in the chart
- processData();
-
- // create chart svg
- selection.each(function (data) {
- if (src_select(this).select('svg').size() === 0) {
- const svg = src_select(this)
- .append('svg:svg')
- .attr('width', w)
- .attr('class', 'partition d3-flame-graph');
-
- if (h) {
- if (h < minHeight) h = minHeight;
- svg.attr('height', h);
- }
-
- svg
- .append('svg:text')
- .attr('class', 'title')
- .attr('text-anchor', 'middle')
- .attr('y', '25')
- .attr('x', w / 2)
- .attr('fill', '#808080')
- .text(title);
-
- if (tooltip) svg.call(tooltip);
- }
- });
-
- // first draw
- update();
- }
-
- chart.height = function (_) {
- if (!arguments.length) {
- return h;
- }
- h = _;
- return chart;
- };
-
- chart.minHeight = function (_) {
- if (!arguments.length) {
- return minHeight;
- }
- minHeight = _;
- return chart;
- };
-
- chart.width = function (_) {
- if (!arguments.length) {
- return w;
- }
- w = _;
- return chart;
- };
-
- chart.cellHeight = function (_) {
- if (!arguments.length) {
- return c;
- }
- c = _;
- return chart;
- };
-
- chart.tooltip = function (_) {
- if (!arguments.length) {
- return tooltip;
- }
- if (typeof _ === 'function') {
- tooltip = _;
- }
- return chart;
- };
-
- chart.title = function (_) {
- if (!arguments.length) {
- return title;
- }
- title = _;
- return chart;
- };
-
- chart.transitionDuration = function (_) {
- if (!arguments.length) {
- return transitionDuration;
- }
- transitionDuration = _;
- return chart;
- };
-
- chart.transitionEase = function (_) {
- if (!arguments.length) {
- return transitionEase;
- }
- transitionEase = _;
- return chart;
- };
-
- chart.sort = function (_) {
- if (!arguments.length) {
- return sort;
- }
- sort = _;
- return chart;
- };
-
- chart.inverted = function (_) {
- if (!arguments.length) {
- return inverted;
- }
- inverted = _;
- return chart;
- };
-
- chart.computeDelta = function (_) {
- if (!arguments.length) {
- return computeDelta;
- }
- computeDelta = _;
- return chart;
- };
-
- chart.setLabelHandler = function (_) {
- if (!arguments.length) {
- return labelHandler;
- }
- labelHandler = _;
- return chart;
- };
- // Kept for backwards compatibility.
- chart.label = chart.setLabelHandler;
-
- chart.search = function (term) {
- const searchResults = [];
- let searchSum = 0;
- let totalValue = 0;
- selection.each(function (data) {
- const res = searchTree(data, term);
- searchResults.push(...res[0]);
- searchSum += res[1];
- totalValue += data.originalValue;
- });
- searchHandler(searchResults, searchSum, totalValue);
- update();
- };
-
- chart.findById = function (id) {
- if (typeof id === 'undefined' || id === null) {
- return null;
- }
- let found = null;
- selection.each(function (data) {
- if (found === null) {
- found = findTree(data, id);
- }
- });
- return found;
- };
-
- chart.clear = function () {
- detailsHandler(null);
- selection.each(function (root) {
- clear(root);
- update();
- });
- };
-
- chart.zoomTo = function (d) {
- zoom(d);
- };
-
- chart.resetZoom = function () {
- selection.each(function (root) {
- zoom(root); // zoom to root
- });
- };
-
- chart.onClick = function (_) {
- if (!arguments.length) {
- return clickHandler;
- }
- clickHandler = _;
- return chart;
- };
-
- chart.onHover = function (_) {
- if (!arguments.length) {
- return hoverHandler;
- }
- hoverHandler = _;
- return chart;
- };
-
- chart.merge = function (data) {
- if (!selection) {
- return chart;
- }
-
- // TODO: Fix merge with zoom
- // Merging a zoomed chart doesn't work properly, so
- // clearing zoom before merge.
- // To apply zoom on merge, we would need to set hide
- // and fade on new data according to current data.
- // New ids are generated for the whole data structure,
- // so previous ids might not be the same. For merge to
- // work with zoom, previous ids should be maintained.
- this.resetZoom();
-
- // Clear search details
- // Merge requires a new search, updating data and
- // the details handler with search results.
- // Since we don't store the search term, can't
- // perform search again.
- searchDetails = null;
- detailsHandler(null);
-
- selection.datum((root) => {
- merge([root.data], [data]);
- return root.data;
- });
- processData();
- update();
- return chart;
- };
-
- chart.update = function (data) {
- if (!selection) {
- return chart;
- }
- if (data) {
- selection.datum(data);
- processData();
- }
- update();
- return chart;
- };
-
- chart.destroy = function () {
- if (!selection) {
- return chart;
- }
- if (tooltip) {
- tooltip.hide();
- if (typeof tooltip.destroy === 'function') {
- tooltip.destroy();
- }
- }
- selection.selectAll('svg').remove();
- return chart;
- };
-
- chart.setColorMapper = function (_) {
- if (!arguments.length) {
- colorMapper = originalColorMapper;
- return chart;
- }
- colorMapper = (d) => {
- const originalColor = originalColorMapper(d);
- return _(d, originalColor);
- };
- return chart;
- };
- // Kept for backwards compatibility.
- chart.color = chart.setColorMapper;
-
- chart.setColorHue = function (_) {
- if (!arguments.length) {
- colorHue = null;
- return chart;
- }
- colorHue = _;
- return chart;
- };
-
- chart.minFrameSize = function (_) {
- if (!arguments.length) {
- return minFrameSize;
- }
- minFrameSize = _;
- return chart;
- };
-
- chart.setDetailsElement = function (_) {
- if (!arguments.length) {
- return detailsElement;
- }
- detailsElement = _;
- return chart;
- };
- // Kept for backwards compatibility.
- chart.details = chart.setDetailsElement;
-
- chart.selfValue = function (_) {
- if (!arguments.length) {
- return selfValue;
- }
- selfValue = _;
- return chart;
- };
-
- chart.resetHeightOnZoom = function (_) {
- if (!arguments.length) {
- return resetHeightOnZoom;
- }
- resetHeightOnZoom = _;
- return chart;
- };
-
- chart.scrollOnZoom = function (_) {
- if (!arguments.length) {
- return scrollOnZoom;
- }
- scrollOnZoom = _;
- return chart;
- };
-
- chart.getName = function (_) {
- if (!arguments.length) {
- return getName;
- }
- getName = _;
- return chart;
- };
-
- chart.getValue = function (_) {
- if (!arguments.length) {
- return getValue;
- }
- getValue = _;
- return chart;
- };
-
- chart.getChildren = function (_) {
- if (!arguments.length) {
- return getChildren;
- }
- getChildren = _;
- return chart;
- };
-
- chart.getLibtype = function (_) {
- if (!arguments.length) {
- return getLibtype;
- }
- getLibtype = _;
- return chart;
- };
-
- chart.getDelta = function (_) {
- if (!arguments.length) {
- return getDelta;
- }
- getDelta = _;
- return chart;
- };
-
- chart.setSearchHandler = function (_) {
- if (!arguments.length) {
- searchHandler = originalSearchHandler;
- return chart;
- }
- searchHandler = _;
- return chart;
- };
-
- chart.setDetailsHandler = function (_) {
- if (!arguments.length) {
- detailsHandler = originalDetailsHandler;
- return chart;
- }
- detailsHandler = _;
- return chart;
- };
-
- chart.setSearchMatch = function (_) {
- if (!arguments.length) {
- searchMatch = originalSearchMatch;
- return chart;
- }
- searchMatch = _;
- return chart;
- };
-
- return chart;
- }
-
- __webpack_exports__ = __webpack_exports__['default'];
- /******/ return __webpack_exports__;
- /******/
- })();
-});
diff --git a/development/charts/table/index.html b/development/charts/table/index.html
deleted file mode 100644
index 8fa7c604f91b..000000000000
--- a/development/charts/table/index.html
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
S.No
-
Name
-
TotalTime
-
-
-
-
-
-
-
diff --git a/development/charts/table/jquery.min.js b/development/charts/table/jquery.min.js
deleted file mode 100644
index 8cdc80eb85d8..000000000000
--- a/development/charts/table/jquery.min.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/*!
- * jQuery JavaScript Library v1.6.2
- * http://jquery.com/
- *
- * Copyright 2011, John Resig
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- * Copyright 2011, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
- *
- * Date: Thu Jun 30 14:16:56 2011 -0400
- */
-(function(a,b){function cv(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cs(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"":"")+""),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cr(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cq(){cn=b}function cp(){setTimeout(cq,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bx(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bm(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(be,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bl(a){f.nodeName(a,"input")?bk(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bk)}function bk(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bj(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bi(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bh(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i=0===c})}function V(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function N(a,b){return(a&&a!=="*"?a+".":"")+b.replace(z,"`").replace(A,"&")}function M(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;ic)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function K(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function E(){return!0}function D(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z])/ig,x=function(a,b){return b.toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!A){A=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||D.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c
a",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0},m&&f.extend(p,{position:"absolute",left:-1e3,top:-1e3});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="