-
Notifications
You must be signed in to change notification settings - Fork 0
/
module.js.map
1 lines (1 loc) · 242 KB
/
module.js.map
1
{"version":3,"file":"module.js","mappings":"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","sources":["webpack:///external amd \"@grafana/data\"","webpack:///external amd \"react\"","webpack:///external amd \"@grafana/ui\"","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///../node_modules/d3-array/src/descending.js","webpack:///../node_modules/d3-selection/src/selector.js","webpack:///../node_modules/d3-selection/src/array.js","webpack:///../node_modules/d3-selection/src/selectorAll.js","webpack:///../node_modules/d3-selection/src/matcher.js","webpack:///../node_modules/d3-selection/src/selection/selectChild.js","webpack:///../node_modules/d3-selection/src/selection/selectChildren.js","webpack:///../node_modules/d3-selection/src/selection/sparse.js","webpack:///../node_modules/d3-selection/src/selection/enter.js","webpack:///../node_modules/d3-selection/src/constant.js","webpack:///../node_modules/d3-selection/src/selection/data.js","webpack:///../node_modules/d3-selection/src/selection/sort.js","webpack:///../node_modules/d3-selection/src/namespaces.js","webpack:///../node_modules/d3-selection/src/namespace.js","webpack:///../node_modules/d3-selection/src/selection/attr.js","webpack:///../node_modules/d3-selection/src/window.js","webpack:///../node_modules/d3-selection/src/selection/style.js","webpack:///../node_modules/d3-selection/src/selection/property.js","webpack:///../node_modules/d3-selection/src/selection/classed.js","webpack:///../node_modules/d3-selection/src/selection/text.js","webpack:///../node_modules/d3-selection/src/selection/html.js","webpack:///../node_modules/d3-selection/src/selection/raise.js","webpack:///../node_modules/d3-selection/src/selection/lower.js","webpack:///../node_modules/d3-selection/src/creator.js","webpack:///../node_modules/d3-selection/src/selection/insert.js","webpack:///../node_modules/d3-selection/src/selection/remove.js","webpack:///../node_modules/d3-selection/src/selection/clone.js","webpack:///../node_modules/d3-selection/src/selection/on.js","webpack:///../node_modules/d3-selection/src/selection/dispatch.js","webpack:///../node_modules/d3-selection/src/selection/index.js","webpack:///../node_modules/d3-selection/src/selection/select.js","webpack:///../node_modules/d3-selection/src/selection/selectAll.js","webpack:///../node_modules/d3-selection/src/selection/filter.js","webpack:///../node_modules/d3-selection/src/selection/exit.js","webpack:///../node_modules/d3-selection/src/selection/join.js","webpack:///../node_modules/d3-selection/src/selection/merge.js","webpack:///../node_modules/d3-selection/src/selection/order.js","webpack:///../node_modules/d3-selection/src/selection/call.js","webpack:///../node_modules/d3-selection/src/selection/nodes.js","webpack:///../node_modules/d3-selection/src/selection/node.js","webpack:///../node_modules/d3-selection/src/selection/size.js","webpack:///../node_modules/d3-selection/src/selection/empty.js","webpack:///../node_modules/d3-selection/src/selection/each.js","webpack:///../node_modules/d3-selection/src/selection/append.js","webpack:///../node_modules/d3-selection/src/selection/datum.js","webpack:///../node_modules/d3-selection/src/selection/iterator.js","webpack:///../node_modules/d3-dispatch/src/dispatch.js","webpack:///../node_modules/d3-timer/src/timer.js","webpack:///../node_modules/d3-timer/src/timeout.js","webpack:///../node_modules/d3-transition/src/transition/schedule.js","webpack:///../node_modules/d3-interpolate/src/number.js","webpack:///../node_modules/d3-interpolate/src/transform/decompose.js","webpack:///../node_modules/d3-interpolate/src/transform/parse.js","webpack:///../node_modules/d3-interpolate/src/transform/index.js","webpack:///../node_modules/d3-transition/src/transition/tween.js","webpack:///../node_modules/d3-color/src/define.js","webpack:///../node_modules/d3-color/src/color.js","webpack:///../node_modules/d3-interpolate/src/basis.js","webpack:///../node_modules/d3-interpolate/src/constant.js","webpack:///../node_modules/d3-interpolate/src/color.js","webpack:///../node_modules/d3-interpolate/src/rgb.js","webpack:///../node_modules/d3-interpolate/src/basisClosed.js","webpack:///../node_modules/d3-interpolate/src/string.js","webpack:///../node_modules/d3-transition/src/transition/interpolate.js","webpack:///../node_modules/d3-transition/src/transition/attr.js","webpack:///../node_modules/d3-transition/src/transition/attrTween.js","webpack:///../node_modules/d3-transition/src/transition/delay.js","webpack:///../node_modules/d3-transition/src/transition/duration.js","webpack:///../node_modules/d3-transition/src/transition/ease.js","webpack:///../node_modules/d3-transition/src/transition/on.js","webpack:///../node_modules/d3-transition/src/transition/selection.js","webpack:///../node_modules/d3-transition/src/transition/style.js","webpack:///../node_modules/d3-transition/src/transition/styleTween.js","webpack:///../node_modules/d3-transition/src/transition/textTween.js","webpack:///../node_modules/d3-transition/src/transition/index.js","webpack:///../node_modules/d3-transition/src/transition/select.js","webpack:///../node_modules/d3-transition/src/transition/selectAll.js","webpack:///../node_modules/d3-transition/src/transition/filter.js","webpack:///../node_modules/d3-transition/src/transition/merge.js","webpack:///../node_modules/d3-transition/src/transition/transition.js","webpack:///../node_modules/d3-transition/src/transition/text.js","webpack:///../node_modules/d3-transition/src/transition/remove.js","webpack:///../node_modules/d3-transition/src/transition/easeVarying.js","webpack:///../node_modules/d3-transition/src/transition/end.js","webpack:///../node_modules/d3-transition/src/selection/transition.js","webpack:///../node_modules/d3-ease/src/cubic.js","webpack:///../node_modules/d3-transition/src/selection/index.js","webpack:///../node_modules/d3-transition/src/selection/interrupt.js","webpack:///../node_modules/d3-transition/src/interrupt.js","webpack:///../node_modules/d3-brush/src/brush.js","webpack:///../node_modules/d3-chord/src/math.js","webpack:///../node_modules/d3-chord/src/chord.js","webpack:///../node_modules/d3-path/src/path.js","webpack:///../node_modules/d3-chord/src/array.js","webpack:///../node_modules/d3-chord/src/constant.js","webpack:///../node_modules/d3-chord/src/ribbon.js","webpack:///../node_modules/internmap/src/index.js","webpack:///../node_modules/d3-scale/src/init.js","webpack:///../node_modules/d3-scale/src/ordinal.js","webpack:///../node_modules/d3-scale-chromatic/src/categorical/Set3.js","webpack:///../node_modules/d3-scale-chromatic/src/colors.js","webpack:///../node_modules/d3-selection/src/select.js","webpack:///../node_modules/d3-shape/src/constant.js","webpack:///../node_modules/d3-shape/src/math.js","webpack:///../node_modules/d3-shape/src/arc.js","webpack:///../node_modules/d3-zoom/src/transform.js","webpack:///./ChordPanel.tsx","webpack:///../node_modules/d3-selection/src/selectAll.js","webpack:///./module.ts"],"sourcesContent":["module.exports = __WEBPACK_EXTERNAL_MODULE__1__;","module.exports = __WEBPACK_EXTERNAL_MODULE__2__;","module.exports = __WEBPACK_EXTERNAL_MODULE__3__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n 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) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : 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\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n 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) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection, event) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start(event).brush(event).end(event);\n });\n }\n };\n\n brush.clear = function(group, event) {\n brush.move(group, null, event);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move(event);\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move(event);\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move(event);\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move(event);\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","export var abs = Math.abs;\nexport var cos = Math.cos;\nexport var sin = Math.sin;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = pi * 2;\nexport var max = Math.max;\nexport var epsilon = 1e-12;\n","import {max, tau} from \"./math.js\";\n\nfunction range(i, j) {\n return Array.from({length: j - i}, (_, k) => i + k);\n}\n\nfunction compareValue(compare) {\n return function(a, b) {\n return compare(\n a.source.value + a.target.value,\n b.source.value + b.target.value\n );\n };\n}\n\nexport default function() {\n return chord(false, false);\n}\n\nexport function chordTranspose() {\n return chord(false, true);\n}\n\nexport function chordDirected() {\n return chord(true, false);\n}\n\nfunction chord(directed, transpose) {\n var padAngle = 0,\n sortGroups = null,\n sortSubgroups = null,\n sortChords = null;\n\n function chord(matrix) {\n var n = matrix.length,\n groupSums = new Array(n),\n groupIndex = range(0, n),\n chords = new Array(n * n),\n groups = new Array(n),\n k = 0, dx;\n\n matrix = Float64Array.from({length: n * n}, transpose\n ? (_, i) => matrix[i % n][i / n | 0]\n : (_, i) => matrix[i / n | 0][i % n]);\n\n // Compute the scaling factor from value to angle in [0, 2pi].\n for (let i = 0; i < n; ++i) {\n let x = 0;\n for (let j = 0; j < n; ++j) x += matrix[i * n + j] + directed * matrix[j * n + i];\n k += groupSums[i] = x;\n }\n k = max(0, tau - padAngle * n) / k;\n dx = k ? padAngle : tau / n;\n\n // Compute the angles for each group and constituent chord.\n {\n let x = 0;\n if (sortGroups) groupIndex.sort((a, b) => sortGroups(groupSums[a], groupSums[b]));\n for (const i of groupIndex) {\n const x0 = x;\n if (directed) {\n const subgroupIndex = range(~n + 1, n).filter(j => j < 0 ? matrix[~j * n + i] : matrix[i * n + j]);\n if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(a < 0 ? -matrix[~a * n + i] : matrix[i * n + a], b < 0 ? -matrix[~b * n + i] : matrix[i * n + b]));\n for (const j of subgroupIndex) {\n if (j < 0) {\n const chord = chords[~j * n + i] || (chords[~j * n + i] = {source: null, target: null});\n chord.target = {index: i, startAngle: x, endAngle: x += matrix[~j * n + i] * k, value: matrix[~j * n + i]};\n } else {\n const chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null});\n chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};\n }\n }\n groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]};\n } else {\n const subgroupIndex = range(0, n).filter(j => matrix[i * n + j] || matrix[j * n + i]);\n if (sortSubgroups) subgroupIndex.sort((a, b) => sortSubgroups(matrix[i * n + a], matrix[i * n + b]));\n for (const j of subgroupIndex) {\n let chord;\n if (i < j) {\n chord = chords[i * n + j] || (chords[i * n + j] = {source: null, target: null});\n chord.source = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};\n } else {\n chord = chords[j * n + i] || (chords[j * n + i] = {source: null, target: null});\n chord.target = {index: i, startAngle: x, endAngle: x += matrix[i * n + j] * k, value: matrix[i * n + j]};\n if (i === j) chord.source = chord.target;\n }\n if (chord.source && chord.target && chord.source.value < chord.target.value) {\n const source = chord.source;\n chord.source = chord.target;\n chord.target = source;\n }\n }\n groups[i] = {index: i, startAngle: x0, endAngle: x, value: groupSums[i]};\n }\n x += dx;\n }\n }\n\n // Remove empty chords.\n chords = Object.values(chords);\n chords.groups = groups;\n return sortChords ? chords.sort(sortChords) : chords;\n }\n\n chord.padAngle = function(_) {\n return arguments.length ? (padAngle = max(0, _), chord) : padAngle;\n };\n\n chord.sortGroups = function(_) {\n return arguments.length ? (sortGroups = _, chord) : sortGroups;\n };\n\n chord.sortSubgroups = function(_) {\n return arguments.length ? (sortSubgroups = _, chord) : sortSubgroups;\n };\n\n chord.sortChords = function(_) {\n return arguments.length ? (_ == null ? sortChords = null : (sortChords = compareValue(_))._ = _, chord) : sortChords && sortChords._;\n };\n\n return chord;\n}\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export var slice = Array.prototype.slice;\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {path} from \"d3-path\";\nimport {slice} from \"./array.js\";\nimport constant from \"./constant.js\";\nimport {abs, cos, epsilon, halfPi, sin} from \"./math.js\";\n\nfunction defaultSource(d) {\n return d.source;\n}\n\nfunction defaultTarget(d) {\n return d.target;\n}\n\nfunction defaultRadius(d) {\n return d.radius;\n}\n\nfunction defaultStartAngle(d) {\n return d.startAngle;\n}\n\nfunction defaultEndAngle(d) {\n return d.endAngle;\n}\n\nfunction defaultPadAngle() {\n return 0;\n}\n\nfunction defaultArrowheadRadius() {\n return 10;\n}\n\nfunction ribbon(headRadius) {\n var source = defaultSource,\n target = defaultTarget,\n sourceRadius = defaultRadius,\n targetRadius = defaultRadius,\n startAngle = defaultStartAngle,\n endAngle = defaultEndAngle,\n padAngle = defaultPadAngle,\n context = null;\n\n function ribbon() {\n var buffer,\n s = source.apply(this, arguments),\n t = target.apply(this, arguments),\n ap = padAngle.apply(this, arguments) / 2,\n argv = slice.call(arguments),\n sr = +sourceRadius.apply(this, (argv[0] = s, argv)),\n sa0 = startAngle.apply(this, argv) - halfPi,\n sa1 = endAngle.apply(this, argv) - halfPi,\n tr = +targetRadius.apply(this, (argv[0] = t, argv)),\n ta0 = startAngle.apply(this, argv) - halfPi,\n ta1 = endAngle.apply(this, argv) - halfPi;\n\n if (!context) context = buffer = path();\n\n if (ap > epsilon) {\n if (abs(sa1 - sa0) > ap * 2 + epsilon) sa1 > sa0 ? (sa0 += ap, sa1 -= ap) : (sa0 -= ap, sa1 += ap);\n else sa0 = sa1 = (sa0 + sa1) / 2;\n if (abs(ta1 - ta0) > ap * 2 + epsilon) ta1 > ta0 ? (ta0 += ap, ta1 -= ap) : (ta0 -= ap, ta1 += ap);\n else ta0 = ta1 = (ta0 + ta1) / 2;\n }\n\n context.moveTo(sr * cos(sa0), sr * sin(sa0));\n context.arc(0, 0, sr, sa0, sa1);\n if (sa0 !== ta0 || sa1 !== ta1) {\n if (headRadius) {\n var hr = +headRadius.apply(this, arguments), tr2 = tr - hr, ta2 = (ta0 + ta1) / 2;\n context.quadraticCurveTo(0, 0, tr2 * cos(ta0), tr2 * sin(ta0));\n context.lineTo(tr * cos(ta2), tr * sin(ta2));\n context.lineTo(tr2 * cos(ta1), tr2 * sin(ta1));\n } else {\n context.quadraticCurveTo(0, 0, tr * cos(ta0), tr * sin(ta0));\n context.arc(0, 0, tr, ta0, ta1);\n }\n }\n context.quadraticCurveTo(0, 0, sr * cos(sa0), sr * sin(sa0));\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n if (headRadius) ribbon.headRadius = function(_) {\n return arguments.length ? (headRadius = typeof _ === \"function\" ? _ : constant(+_), ribbon) : headRadius;\n };\n\n ribbon.radius = function(_) {\n return arguments.length ? (sourceRadius = targetRadius = typeof _ === \"function\" ? _ : constant(+_), ribbon) : sourceRadius;\n };\n\n ribbon.sourceRadius = function(_) {\n return arguments.length ? (sourceRadius = typeof _ === \"function\" ? _ : constant(+_), ribbon) : sourceRadius;\n };\n\n ribbon.targetRadius = function(_) {\n return arguments.length ? (targetRadius = typeof _ === \"function\" ? _ : constant(+_), ribbon) : targetRadius;\n };\n\n ribbon.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), ribbon) : startAngle;\n };\n\n ribbon.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), ribbon) : endAngle;\n };\n\n ribbon.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), ribbon) : padAngle;\n };\n\n ribbon.source = function(_) {\n return arguments.length ? (source = _, ribbon) : source;\n };\n\n ribbon.target = function(_) {\n return arguments.length ? (target = _, ribbon) : target;\n };\n\n ribbon.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), ribbon) : context;\n };\n\n return ribbon;\n}\n\nexport default function() {\n return ribbon();\n}\n\nexport function ribbonArrow() {\n return ribbon(defaultArrowheadRadius);\n}\n","export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import colors from \"../colors.js\";\n\nexport default colors(\"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f\");\n","export default function(specifier) {\n var n = specifier.length / 6 | 0, colors = new Array(n), i = 0;\n while (i < n) colors[i] = \"#\" + specifier.slice(i * 6, ++i * 6);\n return colors;\n}\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","import React, { useRef, useEffect } from 'react';\nimport { DataFrame, PanelProps } from '@grafana/data';\nimport { withTheme2, Themeable2 } from '@grafana/ui';\nimport { ChordOptions } from 'types';\nimport * as d3 from 'my-d3';\n\ninterface Props extends Themeable2, PanelProps<ChordOptions> {}\n\nexport const UnthemedChordPanel: React.FC<Props> = ({ options, data, width, height, theme }) => {\n const d3Container = useRef(null);\n\n // GetFieldVal reads field's value from data series\n function GetFieldVal(fieldName: string) {\n return data.series\n .map((series: DataFrame) => series.fields.find((field: any) => field.name.toLowerCase() === fieldName.toLowerCase()))\n .map((field: any) => {\n let record = field?.values as any;\n return record?.buffer;\n })[0];\n }\n\n useEffect(() => {\n if (data && d3Container.current) {\n // Remove added 'g' and '.tooltip' elements before each draw to remove\n // have multiple rendered graphs while resizing\n d3.select('g').remove();\n d3.selectAll('.tooltip').remove();\n\n const svg = d3.select(d3Container.current);\n\n const margin = { left: 0, top: 0, right: 0, bottom: 0 };\n let onClick = false;\n const w = width + margin.left + margin.right;\n const h = height + margin.top + margin.bottom;\n const x = width / 2 + margin.left;\n const y = height / 2 + margin.top;\n\n // step-1: process data\n\n let records = [];\n let sourcePods = GetFieldVal('srcPod');\n if (sourcePods !== undefined) {\n let sourcePorts = GetFieldVal('srcPort');\n let destinationSvcs = GetFieldVal('dstSvc');\n let destinationSvcPorts = GetFieldVal('dstSvcPort');\n let destinationPods = GetFieldVal('dstPod');\n let destinationPorts = GetFieldVal('dstPort');\n let destinationIPs = GetFieldVal('dstIP');\n let bytes = GetFieldVal('bytes');\n let reverseBytes = GetFieldVal('revBytes');\n let egressNPs = GetFieldVal('egressNetworkPolicyName');\n let egressRuleActions = GetFieldVal('egressNetworkPolicyRuleAction');\n let ingressNPs = GetFieldVal('ingressNetworkPolicyName');\n let ingressRuleActions = GetFieldVal('ingressNetworkPolicyRuleAction');\n let n = sourcePods.length;\n for (let i = 0; i < n; i++) {\n let record = [];\n let source = sourcePods[i];\n let sourcePort = sourcePorts[i];\n let destination = destinationSvcs[i];\n let destinationPort = destinationSvcPorts[i];\n if (destination === '' || destination === null) {\n if (destinationPods[i] === '/' || destinationPods[i] === '' || destinationPods[i] === null) {\n destination = destinationIPs[i];\n } else {\n destination = destinationPods[i];\n destinationPort = destinationPorts[i];\n }\n }\n record.push(source);\n record.push(sourcePort);\n record.push(destination);\n record.push(destinationPort);\n record.push(bytes[i]);\n record.push(reverseBytes[i]);\n record.push(egressNPs[i]);\n record.push(egressRuleActions[i]);\n record.push(ingressNPs[i]);\n record.push(ingressRuleActions[i]);\n records.push(record);\n }\n }\n\n const names = Array.from(new Set(records.flatMap((d) => [d[0], d[2]])));\n const color = d3.scaleOrdinal(d3.schemeSet3);\n const index = new Map(names.map((name: string, i) => [name, i]));\n // Used to store byte counts of each connection\n const matrix = Array.from(index, () => new Array(names.length).fill(0));\n type Connection = {\n source: string;\n sourcePort: number;\n destination: string;\n destinationPort: number;\n egressNP: string;\n ingressNP: string;\n egressRuleAction: number;\n ingressRuleAction: number;\n bytes: number;\n reverseBytes: number;\n };\n // Used to store metadata of each connection\n const connMap: Map<string, Connection> = new Map();\n const ruleActionMap: Map<number, string> = new Map([\n [1, 'Allow'],\n [2, 'Drop'],\n [3, 'Reject'],\n ]);\n\n for (let record of records) {\n let source: string = record[0];\n let sourcePort: number = record[1];\n let destination: string = record[2];\n let destiantionPort: number = record[3];\n let byte: number = record[4];\n let reverseByte: number = record[5];\n let egressNP: string = record[6];\n let egressRuleAction: number = record[7];\n let ingressNP: string = record[8];\n let ingressRuleAction: number = record[9];\n // Enter connection entry into chord matrix\n matrix[index.get(source)!][index.get(destination)!] += byte;\n // Enter connection entry into connMap\n // Enter key\n let idxStr: string = [index.get(source)!, index.get(destination)!].join(',');\n // Enter value\n let conn: Connection = {\n source: source,\n sourcePort: sourcePort,\n destination: destination,\n destinationPort: destiantionPort,\n egressNP: egressNP,\n egressRuleAction: egressRuleAction,\n ingressNP: ingressNP,\n ingressRuleAction: ingressRuleAction,\n bytes: byte,\n reverseBytes: reverseByte,\n };\n connMap.set(idxStr, conn);\n }\n\n // step-2: draw chord diagram\n\n const denyColor = '#EE4B2B';\n const allowColor = '#228B22';\n const innerRadius = Math.min(w, h) * 0.5 - 100;\n const outerRadius = innerRadius + 10;\n const chord = d3\n .chordDirected()\n .padAngle(10 / innerRadius)\n .sortSubgroups(d3.descending)\n .sortChords(d3.descending);\n const arc = d3.arc<d3.ChordGroup>().innerRadius(innerRadius).outerRadius(outerRadius);\n const ribbon = d3\n .ribbonArrow<d3.Chord, d3.ChordSubgroup>()\n .radius(innerRadius - 1)\n .padAngle(1 / innerRadius);\n const tooltip = d3\n .select('body')\n .append('div')\n .attr('class', 'tooltip')\n .style('opacity', 0)\n .style('position', 'absolute')\n .style('z-index', '10')\n .style('background-color', theme.colors.background.secondary)\n .style('border', 'solid')\n .style('border-width', '2px')\n .style('border-radius', '5px')\n .style('padding', '5px');\n\n const diagram = svg\n .attr('width', w)\n .attr('height', h)\n .append('g')\n .attr('transform', 'translate(' + x + ',' + y + ')');\n\n // Create a transparent background rect as a click area\n diagram\n .append('rect')\n .attr('width', w)\n .attr('height', h)\n .attr('transform', 'translate(' + -x + ',' + -y + ')')\n .style('opacity', 0)\n .on('click', function () {\n if (onClick === true) {\n ribbons.transition().style('opacity', 0.8);\n onClick = false;\n }\n });\n\n // Give the data matrix to d3.chord(): it will calculates all the info we\n // need to draw arcs and ribbons\n const res = chord(matrix);\n\n // Add outer arcs\n const arcs = diagram\n .datum(res)\n .append('g')\n .selectAll('g')\n .data(function (d) {\n return d.groups;\n })\n .enter()\n .append('g');\n\n arcs\n .append('path')\n .on('mouseover', function (event, d) {\n if (onClick === true) {\n return;\n }\n let i = d.index;\n ribbons\n .filter(function (d) {\n return d.source.index !== i && d.target.index !== i;\n })\n .transition()\n .style('opacity', 0.1);\n })\n .on('mouseout', function (event, d) {\n if (onClick === true) {\n return;\n }\n let i = d.index;\n ribbons\n .filter(function (d) {\n return d.source.index !== i && d.target.index !== i;\n })\n .transition()\n .style('opacity', 0.8);\n })\n .on('click', function (event, d) {\n event.stopPropagation();\n onClick = true;\n let i = d.index;\n ribbons\n .filter(function (d) {\n return d.source.index !== i && d.target.index !== i;\n })\n .transition()\n .style('opacity', 0.1);\n })\n .style('fill', function (d) {\n return color(names[d.index]);\n })\n .style('stroke', 'black')\n .attr('id', function (d) {\n return 'group' + d.index;\n })\n .attr('d', arc);\n\n // Add text labels to arcs\n const labels = diagram\n .append('g')\n .selectAll('text')\n .data(res.groups)\n .enter()\n .append('text')\n .each(function (d: any) {\n d.angle = (d.startAngle + d.endAngle) / 2;\n })\n .attr('dy', '.35em')\n .attr('text-anchor', function (d: any) {\n return d.angle > Math.PI ? 'end' : null;\n })\n .attr('transform', function (d: any) {\n return (\n 'rotate(' +\n ((d.angle * 180) / Math.PI - 90) +\n ')' +\n 'translate(' +\n (innerRadius + 15) +\n ')' +\n (d.angle > Math.PI ? 'rotate(180)' : '')\n );\n })\n .attr('opacity', 0.9);\n\n // Add namespace to label\n labels\n .append('tspan')\n .style('fill', theme.colors.text.primary)\n .attr('x', 0)\n .attr('dy', 0)\n .text(function (chords, i) {\n let s = names[i].split('/');\n if (s[0] !== undefined) {\n return s[0];\n } else {\n return '';\n }\n });\n\n // Add Pod/Service name to label\n labels\n .append('tspan')\n .style('fill', theme.colors.text.primary)\n .attr('x', 0)\n .attr('dy', 15)\n .text(function (chords, i) {\n let s = names[i].split('/');\n if (s[1] !== undefined) {\n return s[1];\n } else {\n return '';\n }\n });\n\n // Add inner ribbons\n const ribbons = diagram\n .datum(res)\n .append('g')\n .selectAll('path')\n .data(function (d) {\n return d;\n })\n .enter()\n .append('path');\n\n ribbons\n .attr('class', 'ribbons')\n .attr('d', ribbon)\n .attr('stroke', 'black')\n .style('opacity', 0.8)\n // Set ribbon color, deny -> red, allow -> green, others -> source group color\n .style('fill', function (d) {\n const idxStr = [d.source.index, d.target.index].join(',');\n const egressRuleAction = connMap.get(idxStr)?.egressRuleAction;\n const ingressRuleAction = connMap.get(idxStr)?.ingressRuleAction;\n if (egressRuleAction === 2 || egressRuleAction === 3 || ingressRuleAction === 2 || ingressRuleAction === 3) {\n return denyColor;\n }\n if (egressRuleAction === 1 || ingressRuleAction === 1) {\n return allowColor;\n }\n return color(names[d.source.index]);\n })\n // Add tooltips to ribbons on mouseover event\n .on('mouseover', function (event, d) {\n const idxStr = [d.source.index, d.target.index].join(',');\n const conn = connMap.get(idxStr)!;\n let source = conn.source;\n if (conn.sourcePort !== 0) {\n source += `:` + conn.sourcePort;\n }\n let destination = conn.destination;\n if (conn.destinationPort !== 0) {\n destination += `:` + conn.destinationPort;\n }\n let texts =\n `\n <table style=\"margin-top: 2.5px;\">\n <tr><td>From: </td><td style=\"text-align: right\">` +\n source +\n `</td></tr><tr><td>To: </td><td style=\"text-align: right\">` +\n destination;\n // Add egressNetworkPolicy metadata\n if (conn.egressNP !== '') {\n texts +=\n `</td></tr>\n <tr><td>Egress NetworkPolicy name: </td><td style=\"text-align: right\">` +\n conn.egressNP +\n `</td></tr>\n <tr><td>Egress NetworkPolicy Rule Action: </td><td style=\"text-align: right\">` +\n ruleActionMap.get(conn.egressRuleAction);\n }\n // Add ingressNetworkPolicy metadata\n if (conn.ingressNP !== '') {\n texts +=\n `</td></tr>\n <tr><td>Ingress NetworkPolicy name: </td><td style=\"text-align: right\">` +\n conn.ingressNP +\n `</td></tr>\n <tr><td>Ingress NetworkPolicy Rule Action: </td><td style=\"text-align: right\">` +\n ruleActionMap.get(conn.ingressRuleAction);\n }\n // Add bytes and reverseBytes\n texts +=\n `</td></tr>\n <tr><td>Bytes: </td><td style=\"text-align: right\">` +\n conn.bytes +\n `</td></tr>\n <tr><td>Reverse Bytes: </td><td style=\"text-align: right\">` +\n conn.reverseBytes +\n `</td></tr>\n </table>\n `;\n return tooltip\n .style('opacity', 1)\n .html(texts)\n .style('left', event.pageX + 10 + 'px')\n .style('top', event.pageY - 10 + 'px');\n })\n .on('mousemove', function (event, d) {\n return tooltip.style('top', event.pageY - 10 + 'px').style('left', event.pageX + 10 + 'px');\n })\n .on('mouseout', function () {\n return tooltip.style('opacity', 0);\n });\n }\n });\n\n return <svg className=\"d3-component\" width={width} height={height} ref={d3Container} />;\n};\n\nexport const ChordPanel = withTheme2(UnthemedChordPanel);\n","import array from \"./array.js\";\nimport {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([array(selector)], root);\n}\n","import { PanelPlugin } from '@grafana/data';\nimport { ChordOptions } from './types';\nimport { ChordPanel } from './ChordPanel';\n\nexport const plugin = new PanelPlugin<ChordOptions>(ChordPanel).setPanelOptions((builder) => builder);\n"],"names":["module","exports","__WEBPACK_EXTERNAL_MODULE__1__","__WEBPACK_EXTERNAL_MODULE__2__","__WEBPACK_EXTERNAL_MODULE__3__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","descending","b","NaN","none","selector","this","querySelector","array","x","Array","isArray","from","empty","querySelectorAll","matches","childMatcher","node","find","childFirst","firstElementChild","filter","children","update","length","EnterNode","parent","datum","ownerDocument","namespaceURI","_next","_parent","__data__","bindIndex","group","enter","exit","data","i","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","Map","keyValues","has","set","delete","arraylike","ascending","constructor","appendChild","child","insertBefore","next","xhtml","svg","xlink","xml","xmlns","name","prefix","indexOf","slice","namespaces","space","local","attrRemove","removeAttribute","attrRemoveNS","fullname","removeAttributeNS","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","v","apply","arguments","attrFunctionNS","defaultView","document","styleRemove","style","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","string","trim","split","classList","ClassList","_node","_names","getAttribute","classedAdd","names","list","add","classedRemove","remove","classedTrue","classedFalse","classedFunction","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","parentNode","lower","previousSibling","firstChild","creatorInherit","uri","documentElement","createElement","createElementNS","creatorFixed","namespace","constantNull","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","parseTypenames","typenames","map","t","type","onRemove","typename","on","__on","j","m","removeEventListener","listener","options","onAdd","event","contextListener","addEventListener","push","dispatchEvent","params","window","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","join","splice","contains","root","Selection","groups","parents","_groups","_parents","selection","select","subgroups","subnode","subgroup","selectAll","arrayAll","selectorAll","selectChild","match","childFind","selectChildren","childrenFilter","matcher","bind","enterGroup","updateGroup","exitGroup","previous","i0","i1","_enter","_exit","sparse","onenter","onupdate","onexit","append","merge","order","context","groups0","groups1","m0","m1","Math","min","merges","group0","group1","compareDocumentPosition","sort","compare","compareNode","sortgroups","sortgroup","callback","nodes","size","each","attr","getAttributeNS","property","classed","text","html","create","creator","insert","before","deep","dispatch","iterator","noop","_","test","Error","Dispatch","types","c","concat","T","copy","that","args","taskHead","taskTail","timeout","interval","clockLast","clockNow","clockSkew","clock","performance","now","Date","setFrame","requestAnimationFrame","f","setTimeout","clearNow","Timer","_call","_time","timer","delay","time","restart","wake","e","timerFlush","t0","t2","t1","Infinity","sleep","nap","poke","clearTimeout","clearInterval","setInterval","elapsed","stop","TypeError","emptyOn","emptyTween","id","index","timing","schedules","__transition","self","tween","schedule","state","start","tick","duration","ease","init","svgNode","degrees","PI","translateX","translateY","rotate","skewX","scaleX","scaleY","sqrt","atan2","atan","interpolateTransform","parse","pxComma","pxParen","degParen","pop","s","q","xa","ya","xb","yb","number","translate","scale","interpolateTransformCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","interpolateTransformSvg","transform","baseVal","consolidate","matrix","tweenRemove","tween0","tween1","tweenFunction","tweenValue","transition","_id","factory","extend","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","color","format","l","toLowerCase","exec","parseInt","rgbn","Rgb","rgba","hsla","g","rgbConvert","opacity","rgb_formatHex","hex","rgb_formatRgb","clampa","clampi","isNaN","max","round","toString","h","Hsl","hslConvert","clamph","clampt","hsl2rgb","m2","basis","v0","v1","v2","v3","t3","channels","assign","displayable","formatHex8","formatHsl","k","pow","clamp","linear","gamma","y","nogamma","exponential","rgbGamma","end","rgbSpline","spline","colors","values","floor","reA","reB","source","am","bm","bs","bi","lastIndex","one","zero","interpolate","value1","string00","interpolate0","string1","string0","string10","attrInterpolate","attrInterpolateNS","attrTweenNS","_value","attrTween","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","onFunction","on0","on1","sit","every","styleInterpolate","styleTween","textInterpolate","textTween","Transition","_name","newId","selection_prototype","inherit","id0","id1","styleNull","listener0","styleMaybeRemove","removeFunction","easeVarying","Promise","resolve","reject","cancel","interrupt","defaultTiming","active","abs","number1","number2","cos","sin","pi","halfPi","tau","epsilon","range","compareValue","target","directed","transpose","padAngle","sortGroups","sortSubgroups","sortChords","chord","dx","groupSums","groupIndex","chords","Float64Array","x0","subgroupIndex","startAngle","endAngle","tauEpsilon","Path","_x0","_y0","_x1","_y1","path","moveTo","closePath","lineTo","quadraticCurveTo","x1","y1","bezierCurveTo","x2","y2","arcTo","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","acos","t01","t21","arc","a0","a1","ccw","dy","cw","da","rect","w","defaultSource","defaultTarget","defaultRadius","radius","defaultStartAngle","defaultEndAngle","defaultPadAngle","defaultArrowheadRadius","ribbon","headRadius","sourceRadius","targetRadius","buffer","ap","argv","sr","sa0","sa1","tr","ta0","ta1","hr","tr2","ta2","ribbonArrow","InternMap","entries","keyof","super","defineProperties","_intern","_key","intern_get","intern_set","intern_delete","Set","valueOf","initRange","domain","implicit","ordinal","unknown","specifier","asin","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","arcEndAngle","arcPadAngle","intersect","x3","y3","x10","y10","x32","y32","cornerTangents","r1","rc","lo","ox","oy","x11","y11","x00","y00","d2","D","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","point","applyX","applyY","invert","location","invertX","invertY","rescaleX","rescaleY","ChordPanel","withTheme2","width","height","theme","d3Container","useRef","GetFieldVal","fieldName","series","fields","field","record","useEffect","current","d3","margin","left","top","right","bottom","onClick","records","sourcePods","sourcePorts","destinationSvcs","destinationSvcPorts","destinationPods","destinationPorts","destinationIPs","bytes","reverseBytes","egressNPs","egressRuleActions","ingressNPs","ingressRuleActions","sourcePort","destination","destinationPort","flatMap","fill","connMap","ruleActionMap","destiantionPort","byte","reverseByte","egressNP","egressRuleAction","ingressNP","ingressRuleAction","idxStr","conn","cornerRadius","padRadius","r0","a01","a11","a00","a10","da0","da1","rp","rc0","rc1","p0","p1","oc","ax","ay","bx","by","kc","lc","centroid","tooltip","background","secondary","diagram","ribbons","res","stopPropagation","labels","angle","primary","texts","pageX","pageY","className","ref","plugin","PanelPlugin","setPanelOptions","builder"],"sourceRoot":""}