force-graph 1.48.0 → 1.49.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/force-graph.js +98 -25
- package/dist/force-graph.js.map +1 -1
- package/dist/force-graph.min.js +3 -3
- package/package.json +3 -3
package/dist/force-graph.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"force-graph.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../node_modules/d3-selection/src/namespaces.js","../node_modules/d3-selection/src/namespace.js","../node_modules/d3-selection/src/creator.js","../node_modules/d3-selection/src/selector.js","../node_modules/d3-selection/src/selection/select.js","../node_modules/d3-selection/src/array.js","../node_modules/d3-selection/src/selectorAll.js","../node_modules/d3-selection/src/selection/selectAll.js","../node_modules/d3-selection/src/matcher.js","../node_modules/d3-selection/src/selection/selectChild.js","../node_modules/d3-selection/src/selection/selectChildren.js","../node_modules/d3-selection/src/selection/filter.js","../node_modules/d3-selection/src/selection/sparse.js","../node_modules/d3-selection/src/selection/enter.js","../node_modules/d3-selection/src/constant.js","../node_modules/d3-selection/src/selection/data.js","../node_modules/d3-selection/src/selection/exit.js","../node_modules/d3-selection/src/selection/join.js","../node_modules/d3-selection/src/selection/merge.js","../node_modules/d3-selection/src/selection/order.js","../node_modules/d3-selection/src/selection/sort.js","../node_modules/d3-selection/src/selection/call.js","../node_modules/d3-selection/src/selection/nodes.js","../node_modules/d3-selection/src/selection/node.js","../node_modules/d3-selection/src/selection/size.js","../node_modules/d3-selection/src/selection/empty.js","../node_modules/d3-selection/src/selection/each.js","../node_modules/d3-selection/src/selection/attr.js","../node_modules/d3-selection/src/window.js","../node_modules/d3-selection/src/selection/style.js","../node_modules/d3-selection/src/selection/property.js","../node_modules/d3-selection/src/selection/classed.js","../node_modules/d3-selection/src/selection/text.js","../node_modules/d3-selection/src/selection/html.js","../node_modules/d3-selection/src/selection/raise.js","../node_modules/d3-selection/src/selection/lower.js","../node_modules/d3-selection/src/selection/append.js","../node_modules/d3-selection/src/selection/insert.js","../node_modules/d3-selection/src/selection/remove.js","../node_modules/d3-selection/src/selection/clone.js","../node_modules/d3-selection/src/selection/datum.js","../node_modules/d3-selection/src/selection/on.js","../node_modules/d3-selection/src/selection/dispatch.js","../node_modules/d3-selection/src/selection/iterator.js","../node_modules/d3-selection/src/selection/index.js","../node_modules/d3-selection/src/select.js","../node_modules/d3-selection/src/sourceEvent.js","../node_modules/d3-selection/src/pointer.js","../node_modules/d3-dispatch/src/dispatch.js","../node_modules/d3-drag/src/noevent.js","../node_modules/d3-drag/src/nodrag.js","../node_modules/d3-drag/src/constant.js","../node_modules/d3-drag/src/event.js","../node_modules/d3-drag/src/drag.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-interpolate/src/transform/decompose.js","../node_modules/d3-interpolate/src/transform/parse.js","../node_modules/d3-interpolate/src/transform/index.js","../node_modules/d3-interpolate/src/zoom.js","../node_modules/d3-timer/src/timer.js","../node_modules/d3-timer/src/timeout.js","../node_modules/d3-transition/src/transition/schedule.js","../node_modules/d3-transition/src/interrupt.js","../node_modules/d3-transition/src/selection/interrupt.js","../node_modules/d3-transition/src/transition/tween.js","../node_modules/d3-transition/src/transition/interpolate.js","../node_modules/d3-transition/src/transition/attr.js","../node_modules/d3-transition/src/transition/attrTween.js","../node_modules/d3-transition/src/transition/delay.js","../node_modules/d3-transition/src/transition/duration.js","../node_modules/d3-transition/src/transition/ease.js","../node_modules/d3-transition/src/transition/easeVarying.js","../node_modules/d3-transition/src/transition/filter.js","../node_modules/d3-transition/src/transition/merge.js","../node_modules/d3-transition/src/transition/on.js","../node_modules/d3-transition/src/transition/remove.js","../node_modules/d3-transition/src/transition/select.js","../node_modules/d3-transition/src/transition/selectAll.js","../node_modules/d3-transition/src/transition/selection.js","../node_modules/d3-transition/src/transition/style.js","../node_modules/d3-transition/src/transition/styleTween.js","../node_modules/d3-transition/src/transition/text.js","../node_modules/d3-transition/src/transition/textTween.js","../node_modules/d3-transition/src/transition/transition.js","../node_modules/d3-transition/src/transition/end.js","../node_modules/d3-transition/src/transition/index.js","../node_modules/d3-ease/src/cubic.js","../node_modules/d3-transition/src/selection/transition.js","../node_modules/d3-transition/src/selection/index.js","../node_modules/d3-zoom/src/constant.js","../node_modules/d3-zoom/src/event.js","../node_modules/d3-zoom/src/transform.js","../node_modules/d3-zoom/src/noevent.js","../node_modules/d3-zoom/src/zoom.js","../node_modules/internmap/src/index.js","../node_modules/d3-array/src/max.js","../node_modules/d3-array/src/min.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/_trimmedEndIndex.js","../node_modules/lodash-es/_baseTrim.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/toNumber.js","../node_modules/lodash-es/now.js","../node_modules/lodash-es/debounce.js","../node_modules/lodash-es/throttle.js","../node_modules/@tweenjs/tween.js/dist/tween.esm.js","../node_modules/kapsule/dist/kapsule.mjs","../node_modules/accessor-fn/dist/accessor-fn.mjs","../node_modules/tinycolor2/esm/tinycolor.js","../node_modules/canvas-color-tracker/dist/canvas-color-tracker.mjs","../node_modules/float-tooltip/dist/float-tooltip.mjs","../node_modules/d3-force-3d/src/center.js","../node_modules/d3-binarytree/src/add.js","../node_modules/d3-binarytree/src/cover.js","../node_modules/d3-binarytree/src/data.js","../node_modules/d3-binarytree/src/extent.js","../node_modules/d3-binarytree/src/half.js","../node_modules/d3-binarytree/src/find.js","../node_modules/d3-binarytree/src/remove.js","../node_modules/d3-binarytree/src/root.js","../node_modules/d3-binarytree/src/size.js","../node_modules/d3-binarytree/src/visit.js","../node_modules/d3-binarytree/src/visitAfter.js","../node_modules/d3-binarytree/src/x.js","../node_modules/d3-binarytree/src/binarytree.js","../node_modules/d3-quadtree/src/add.js","../node_modules/d3-quadtree/src/cover.js","../node_modules/d3-quadtree/src/data.js","../node_modules/d3-quadtree/src/extent.js","../node_modules/d3-quadtree/src/quad.js","../node_modules/d3-quadtree/src/find.js","../node_modules/d3-quadtree/src/remove.js","../node_modules/d3-quadtree/src/root.js","../node_modules/d3-quadtree/src/size.js","../node_modules/d3-quadtree/src/visit.js","../node_modules/d3-quadtree/src/visitAfter.js","../node_modules/d3-quadtree/src/x.js","../node_modules/d3-quadtree/src/y.js","../node_modules/d3-quadtree/src/quadtree.js","../node_modules/d3-octree/src/add.js","../node_modules/d3-octree/src/cover.js","../node_modules/d3-octree/src/data.js","../node_modules/d3-octree/src/extent.js","../node_modules/d3-octree/src/octant.js","../node_modules/d3-octree/src/find.js","../node_modules/d3-octree/src/findAll.js","../node_modules/d3-octree/src/remove.js","../node_modules/d3-octree/src/root.js","../node_modules/d3-octree/src/size.js","../node_modules/d3-octree/src/visit.js","../node_modules/d3-octree/src/visitAfter.js","../node_modules/d3-octree/src/x.js","../node_modules/d3-octree/src/y.js","../node_modules/d3-octree/src/z.js","../node_modules/d3-octree/src/octree.js","../node_modules/d3-force-3d/src/constant.js","../node_modules/d3-force-3d/src/jiggle.js","../node_modules/d3-force-3d/src/link.js","../node_modules/d3-force-3d/src/lcg.js","../node_modules/d3-force-3d/src/simulation.js","../node_modules/d3-force-3d/src/manyBody.js","../node_modules/d3-force-3d/src/radial.js","../node_modules/bezier-js/src/utils.js","../node_modules/bezier-js/src/poly-bezier.js","../node_modules/bezier-js/src/bezier.js","../node_modules/index-array-by/dist/index-array-by.mjs","../node_modules/d3-scale/src/init.js","../node_modules/d3-scale/src/ordinal.js","../node_modules/d3-scale-chromatic/src/colors.js","../node_modules/d3-scale-chromatic/src/categorical/Paired.js","../src/color-utils.js","../src/dagDepths.js","../src/canvas-force-graph.js","../src/kapsule-link.js","../src/force-graph.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\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\";\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","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\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","// 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","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","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","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","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 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","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 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 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 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","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","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\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","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","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, 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(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\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","// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {passive: false};\nexport const nonpassivecapture = {capture: true, passive: false};\n\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent, {nonpassivecapture} from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, nonpassivecapture);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, nonpassivecapture);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, nonpassivecapture);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","export default x => () => x;\n","export default function DragEvent(type, {\n sourceEvent,\n subject,\n target,\n identifier,\n active,\n x, y, dx, dy,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n subject: {value: subject, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n identifier: {value: identifier, enumerable: true, configurable: true},\n active: {value: active, enumerable: true, configurable: true},\n x: {value: x, enumerable: true, configurable: true},\n y: {value: y, enumerable: true, configurable: true},\n dx: {value: dx, enumerable: true, configurable: true},\n dy: {value: dy, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","import {dispatch} from \"d3-dispatch\";\nimport {select, pointer} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nonpassive, nonpassivecapture, nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(event, d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved, nonpassive)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned(event, d) {\n if (touchending || !filter.call(this, event, d)) return;\n var gesture = beforestart(this, container.call(this, event, d), event, d, \"mouse\");\n if (!gesture) return;\n select(event.view)\n .on(\"mousemove.drag\", mousemoved, nonpassivecapture)\n .on(\"mouseup.drag\", mouseupped, nonpassivecapture);\n nodrag(event.view);\n nopropagation(event);\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\", event);\n }\n\n function mousemoved(event) {\n noevent(event);\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\", event);\n }\n\n function mouseupped(event) {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent(event);\n gestures.mouse(\"end\", event);\n }\n\n function touchstarted(event, d) {\n if (!filter.call(this, event, d)) return;\n var touches = event.changedTouches,\n c = container.call(this, event, d),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) {\n nopropagation(event);\n gesture(\"start\", event, touches[i]);\n }\n }\n }\n\n function touchmoved(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent(event);\n gesture(\"drag\", event, touches[i]);\n }\n }\n }\n\n function touchended(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation(event);\n gesture(\"end\", event, touches[i]);\n }\n }\n }\n\n function beforestart(that, container, event, d, identifier, touch) {\n var dispatch = listeners.copy(),\n p = pointer(touch || event, container), dx, dy,\n s;\n\n if ((s = subject.call(that, new DragEvent(\"beforestart\", {\n sourceEvent: event,\n target: drag,\n identifier,\n active,\n x: p[0],\n y: p[1],\n dx: 0,\n dy: 0,\n dispatch\n }), d)) == null) return;\n\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n\n return function gesture(type, event, touch) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[identifier] = gesture, n = active++; break;\n case \"end\": delete gestures[identifier], --active; // falls through\n case \"drag\": p = pointer(touch || event, container), n = active; break;\n }\n dispatch.call(\n type,\n that,\n new DragEvent(type, {\n sourceEvent: event,\n subject: s,\n target: drag,\n identifier,\n active: n,\n x: p[0] + dx,\n y: p[1] + dy,\n dx: p[0] - p0[0],\n dy: p[1] - p0[1],\n dispatch\n }),\n d\n );\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\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 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","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\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","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","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\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","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 interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\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","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 {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 {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 {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","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 {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 {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","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 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 {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 {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 {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","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 {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","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","export default x => () => x;\n","export default function ZoomEvent(type, {\n sourceEvent,\n target,\n transform,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n transform: {value: transform, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\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","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {select, pointer} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled, {passive: false})\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p, event) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n\n zoom.scaleTo = function(selection, k, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n\n zoom.translateBy = function(selection, x, y, event) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n\n zoom.translateTo = function(selection, x, y, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point, event) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function(event) {\n if (event) this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = pointer(event);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned(event, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var currentTarget = event.currentTarget,\n g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event)\n .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started, i, t, p;\n\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n zoom.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\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 default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n","/**\n * The Ease class provides a collection of easing functions for use with tween.js.\n */\nvar Easing = Object.freeze({\n Linear: Object.freeze({\n None: function (amount) {\n return amount;\n },\n In: function (amount) {\n return amount;\n },\n Out: function (amount) {\n return amount;\n },\n InOut: function (amount) {\n return amount;\n },\n }),\n Quadratic: Object.freeze({\n In: function (amount) {\n return amount * amount;\n },\n Out: function (amount) {\n return amount * (2 - amount);\n },\n InOut: function (amount) {\n if ((amount *= 2) < 1) {\n return 0.5 * amount * amount;\n }\n return -0.5 * (--amount * (amount - 2) - 1);\n },\n }),\n Cubic: Object.freeze({\n In: function (amount) {\n return amount * amount * amount;\n },\n Out: function (amount) {\n return --amount * amount * amount + 1;\n },\n InOut: function (amount) {\n if ((amount *= 2) < 1) {\n return 0.5 * amount * amount * amount;\n }\n return 0.5 * ((amount -= 2) * amount * amount + 2);\n },\n }),\n Quartic: Object.freeze({\n In: function (amount) {\n return amount * amount * amount * amount;\n },\n Out: function (amount) {\n return 1 - --amount * amount * amount * amount;\n },\n InOut: function (amount) {\n if ((amount *= 2) < 1) {\n return 0.5 * amount * amount * amount * amount;\n }\n return -0.5 * ((amount -= 2) * amount * amount * amount - 2);\n },\n }),\n Quintic: Object.freeze({\n In: function (amount) {\n return amount * amount * amount * amount * amount;\n },\n Out: function (amount) {\n return --amount * amount * amount * amount * amount + 1;\n },\n InOut: function (amount) {\n if ((amount *= 2) < 1) {\n return 0.5 * amount * amount * amount * amount * amount;\n }\n return 0.5 * ((amount -= 2) * amount * amount * amount * amount + 2);\n },\n }),\n Sinusoidal: Object.freeze({\n In: function (amount) {\n return 1 - Math.sin(((1.0 - amount) * Math.PI) / 2);\n },\n Out: function (amount) {\n return Math.sin((amount * Math.PI) / 2);\n },\n InOut: function (amount) {\n return 0.5 * (1 - Math.sin(Math.PI * (0.5 - amount)));\n },\n }),\n Exponential: Object.freeze({\n In: function (amount) {\n return amount === 0 ? 0 : Math.pow(1024, amount - 1);\n },\n Out: function (amount) {\n return amount === 1 ? 1 : 1 - Math.pow(2, -10 * amount);\n },\n InOut: function (amount) {\n if (amount === 0) {\n return 0;\n }\n if (amount === 1) {\n return 1;\n }\n if ((amount *= 2) < 1) {\n return 0.5 * Math.pow(1024, amount - 1);\n }\n return 0.5 * (-Math.pow(2, -10 * (amount - 1)) + 2);\n },\n }),\n Circular: Object.freeze({\n In: function (amount) {\n return 1 - Math.sqrt(1 - amount * amount);\n },\n Out: function (amount) {\n return Math.sqrt(1 - --amount * amount);\n },\n InOut: function (amount) {\n if ((amount *= 2) < 1) {\n return -0.5 * (Math.sqrt(1 - amount * amount) - 1);\n }\n return 0.5 * (Math.sqrt(1 - (amount -= 2) * amount) + 1);\n },\n }),\n Elastic: Object.freeze({\n In: function (amount) {\n if (amount === 0) {\n return 0;\n }\n if (amount === 1) {\n return 1;\n }\n return -Math.pow(2, 10 * (amount - 1)) * Math.sin((amount - 1.1) * 5 * Math.PI);\n },\n Out: function (amount) {\n if (amount === 0) {\n return 0;\n }\n if (amount === 1) {\n return 1;\n }\n return Math.pow(2, -10 * amount) * Math.sin((amount - 0.1) * 5 * Math.PI) + 1;\n },\n InOut: function (amount) {\n if (amount === 0) {\n return 0;\n }\n if (amount === 1) {\n return 1;\n }\n amount *= 2;\n if (amount < 1) {\n return -0.5 * Math.pow(2, 10 * (amount - 1)) * Math.sin((amount - 1.1) * 5 * Math.PI);\n }\n return 0.5 * Math.pow(2, -10 * (amount - 1)) * Math.sin((amount - 1.1) * 5 * Math.PI) + 1;\n },\n }),\n Back: Object.freeze({\n In: function (amount) {\n var s = 1.70158;\n return amount === 1 ? 1 : amount * amount * ((s + 1) * amount - s);\n },\n Out: function (amount) {\n var s = 1.70158;\n return amount === 0 ? 0 : --amount * amount * ((s + 1) * amount + s) + 1;\n },\n InOut: function (amount) {\n var s = 1.70158 * 1.525;\n if ((amount *= 2) < 1) {\n return 0.5 * (amount * amount * ((s + 1) * amount - s));\n }\n return 0.5 * ((amount -= 2) * amount * ((s + 1) * amount + s) + 2);\n },\n }),\n Bounce: Object.freeze({\n In: function (amount) {\n return 1 - Easing.Bounce.Out(1 - amount);\n },\n Out: function (amount) {\n if (amount < 1 / 2.75) {\n return 7.5625 * amount * amount;\n }\n else if (amount < 2 / 2.75) {\n return 7.5625 * (amount -= 1.5 / 2.75) * amount + 0.75;\n }\n else if (amount < 2.5 / 2.75) {\n return 7.5625 * (amount -= 2.25 / 2.75) * amount + 0.9375;\n }\n else {\n return 7.5625 * (amount -= 2.625 / 2.75) * amount + 0.984375;\n }\n },\n InOut: function (amount) {\n if (amount < 0.5) {\n return Easing.Bounce.In(amount * 2) * 0.5;\n }\n return Easing.Bounce.Out(amount * 2 - 1) * 0.5 + 0.5;\n },\n }),\n generatePow: function (power) {\n if (power === void 0) { power = 4; }\n power = power < Number.EPSILON ? Number.EPSILON : power;\n power = power > 10000 ? 10000 : power;\n return {\n In: function (amount) {\n return Math.pow(amount, power);\n },\n Out: function (amount) {\n return 1 - Math.pow((1 - amount), power);\n },\n InOut: function (amount) {\n if (amount < 0.5) {\n return Math.pow((amount * 2), power) / 2;\n }\n return (1 - Math.pow((2 - amount * 2), power)) / 2 + 0.5;\n },\n };\n },\n});\n\nvar now = function () { return performance.now(); };\n\n/**\n * Controlling groups of tweens\n *\n * Using the TWEEN singleton to manage your tweens can cause issues in large apps with many components.\n * In these cases, you may want to create your own smaller groups of tween\n */\nvar Group = /** @class */ (function () {\n function Group() {\n var tweens = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n tweens[_i] = arguments[_i];\n }\n this._tweens = {};\n this._tweensAddedDuringUpdate = {};\n this.add.apply(this, tweens);\n }\n Group.prototype.getAll = function () {\n var _this = this;\n return Object.keys(this._tweens).map(function (tweenId) { return _this._tweens[tweenId]; });\n };\n Group.prototype.removeAll = function () {\n this._tweens = {};\n };\n Group.prototype.add = function () {\n var _a;\n var tweens = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n tweens[_i] = arguments[_i];\n }\n for (var _b = 0, tweens_1 = tweens; _b < tweens_1.length; _b++) {\n var tween = tweens_1[_b];\n // Remove from any other group first, a tween can only be in one group at a time.\n // @ts-expect-error library internal access\n (_a = tween._group) === null || _a === void 0 ? void 0 : _a.remove(tween);\n // @ts-expect-error library internal access\n tween._group = this;\n this._tweens[tween.getId()] = tween;\n this._tweensAddedDuringUpdate[tween.getId()] = tween;\n }\n };\n Group.prototype.remove = function () {\n var tweens = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n tweens[_i] = arguments[_i];\n }\n for (var _a = 0, tweens_2 = tweens; _a < tweens_2.length; _a++) {\n var tween = tweens_2[_a];\n // @ts-expect-error library internal access\n tween._group = undefined;\n delete this._tweens[tween.getId()];\n delete this._tweensAddedDuringUpdate[tween.getId()];\n }\n };\n /** Return true if all tweens in the group are not paused or playing. */\n Group.prototype.allStopped = function () {\n return this.getAll().every(function (tween) { return !tween.isPlaying(); });\n };\n Group.prototype.update = function (time, preserve) {\n if (time === void 0) { time = now(); }\n if (preserve === void 0) { preserve = true; }\n var tweenIds = Object.keys(this._tweens);\n if (tweenIds.length === 0)\n return;\n // Tweens are updated in \"batches\". If you add a new tween during an\n // update, then the new tween will be updated in the next batch.\n // If you remove a tween during an update, it may or may not be updated.\n // However, if the removed tween was added during the current batch,\n // then it will not be updated.\n while (tweenIds.length > 0) {\n this._tweensAddedDuringUpdate = {};\n for (var i = 0; i < tweenIds.length; i++) {\n var tween = this._tweens[tweenIds[i]];\n var autoStart = !preserve;\n if (tween && tween.update(time, autoStart) === false && !preserve)\n this.remove(tween);\n }\n tweenIds = Object.keys(this._tweensAddedDuringUpdate);\n }\n };\n return Group;\n}());\n\n/**\n *\n */\nvar Interpolation = {\n Linear: function (v, k) {\n var m = v.length - 1;\n var f = m * k;\n var i = Math.floor(f);\n var fn = Interpolation.Utils.Linear;\n if (k < 0) {\n return fn(v[0], v[1], f);\n }\n if (k > 1) {\n return fn(v[m], v[m - 1], m - f);\n }\n return fn(v[i], v[i + 1 > m ? m : i + 1], f - i);\n },\n Bezier: function (v, k) {\n var b = 0;\n var n = v.length - 1;\n var pw = Math.pow;\n var bn = Interpolation.Utils.Bernstein;\n for (var i = 0; i <= n; i++) {\n b += pw(1 - k, n - i) * pw(k, i) * v[i] * bn(n, i);\n }\n return b;\n },\n CatmullRom: function (v, k) {\n var m = v.length - 1;\n var f = m * k;\n var i = Math.floor(f);\n var fn = Interpolation.Utils.CatmullRom;\n if (v[0] === v[m]) {\n if (k < 0) {\n i = Math.floor((f = m * (1 + k)));\n }\n return fn(v[(i - 1 + m) % m], v[i], v[(i + 1) % m], v[(i + 2) % m], f - i);\n }\n else {\n if (k < 0) {\n return v[0] - (fn(v[0], v[0], v[1], v[1], -f) - v[0]);\n }\n if (k > 1) {\n return v[m] - (fn(v[m], v[m], v[m - 1], v[m - 1], f - m) - v[m]);\n }\n return fn(v[i ? i - 1 : 0], v[i], v[m < i + 1 ? m : i + 1], v[m < i + 2 ? m : i + 2], f - i);\n }\n },\n Utils: {\n Linear: function (p0, p1, t) {\n return (p1 - p0) * t + p0;\n },\n Bernstein: function (n, i) {\n var fc = Interpolation.Utils.Factorial;\n return fc(n) / fc(i) / fc(n - i);\n },\n Factorial: (function () {\n var a = [1];\n return function (n) {\n var s = 1;\n if (a[n]) {\n return a[n];\n }\n for (var i = n; i > 1; i--) {\n s *= i;\n }\n a[n] = s;\n return s;\n };\n })(),\n CatmullRom: function (p0, p1, p2, p3, t) {\n var v0 = (p2 - p0) * 0.5;\n var v1 = (p3 - p1) * 0.5;\n var t2 = t * t;\n var t3 = t * t2;\n return (2 * p1 - 2 * p2 + v0 + v1) * t3 + (-3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1;\n },\n },\n};\n\n/**\n * Utils\n */\nvar Sequence = /** @class */ (function () {\n function Sequence() {\n }\n Sequence.nextId = function () {\n return Sequence._nextId++;\n };\n Sequence._nextId = 0;\n return Sequence;\n}());\n\nvar mainGroup = new Group();\n\n/**\n * Tween.js - Licensed under the MIT license\n * https://github.com/tweenjs/tween.js\n * ----------------------------------------------\n *\n * See https://github.com/tweenjs/tween.js/graphs/contributors for the full list of contributors.\n * Thank you all, you're awesome!\n */\nvar Tween = /** @class */ (function () {\n function Tween(object, group) {\n this._isPaused = false;\n this._pauseStart = 0;\n this._valuesStart = {};\n this._valuesEnd = {};\n this._valuesStartRepeat = {};\n this._duration = 1000;\n this._isDynamic = false;\n this._initialRepeat = 0;\n this._repeat = 0;\n this._yoyo = false;\n this._isPlaying = false;\n this._reversed = false;\n this._delayTime = 0;\n this._startTime = 0;\n this._easingFunction = Easing.Linear.None;\n this._interpolationFunction = Interpolation.Linear;\n // eslint-disable-next-line\n this._chainedTweens = [];\n this._onStartCallbackFired = false;\n this._onEveryStartCallbackFired = false;\n this._id = Sequence.nextId();\n this._isChainStopped = false;\n this._propertiesAreSetUp = false;\n this._goToEnd = false;\n this._object = object;\n if (typeof group === 'object') {\n this._group = group;\n group.add(this);\n }\n // Use \"true\" to restore old behavior (will be removed in future release).\n else if (group === true) {\n this._group = mainGroup;\n mainGroup.add(this);\n }\n }\n Tween.prototype.getId = function () {\n return this._id;\n };\n Tween.prototype.isPlaying = function () {\n return this._isPlaying;\n };\n Tween.prototype.isPaused = function () {\n return this._isPaused;\n };\n Tween.prototype.getDuration = function () {\n return this._duration;\n };\n Tween.prototype.to = function (target, duration) {\n if (duration === void 0) { duration = 1000; }\n if (this._isPlaying)\n throw new Error('Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.');\n this._valuesEnd = target;\n this._propertiesAreSetUp = false;\n this._duration = duration < 0 ? 0 : duration;\n return this;\n };\n Tween.prototype.duration = function (duration) {\n if (duration === void 0) { duration = 1000; }\n this._duration = duration < 0 ? 0 : duration;\n return this;\n };\n Tween.prototype.dynamic = function (dynamic) {\n if (dynamic === void 0) { dynamic = false; }\n this._isDynamic = dynamic;\n return this;\n };\n Tween.prototype.start = function (time, overrideStartingValues) {\n if (time === void 0) { time = now(); }\n if (overrideStartingValues === void 0) { overrideStartingValues = false; }\n if (this._isPlaying) {\n return this;\n }\n this._repeat = this._initialRepeat;\n if (this._reversed) {\n // If we were reversed (f.e. using the yoyo feature) then we need to\n // flip the tween direction back to forward.\n this._reversed = false;\n for (var property in this._valuesStartRepeat) {\n this._swapEndStartRepeatValues(property);\n this._valuesStart[property] = this._valuesStartRepeat[property];\n }\n }\n this._isPlaying = true;\n this._isPaused = false;\n this._onStartCallbackFired = false;\n this._onEveryStartCallbackFired = false;\n this._isChainStopped = false;\n this._startTime = time;\n this._startTime += this._delayTime;\n if (!this._propertiesAreSetUp || overrideStartingValues) {\n this._propertiesAreSetUp = true;\n // If dynamic is not enabled, clone the end values instead of using the passed-in end values.\n if (!this._isDynamic) {\n var tmp = {};\n for (var prop in this._valuesEnd)\n tmp[prop] = this._valuesEnd[prop];\n this._valuesEnd = tmp;\n }\n this._setupProperties(this._object, this._valuesStart, this._valuesEnd, this._valuesStartRepeat, overrideStartingValues);\n }\n return this;\n };\n Tween.prototype.startFromCurrentValues = function (time) {\n return this.start(time, true);\n };\n Tween.prototype._setupProperties = function (_object, _valuesStart, _valuesEnd, _valuesStartRepeat, overrideStartingValues) {\n for (var property in _valuesEnd) {\n var startValue = _object[property];\n var startValueIsArray = Array.isArray(startValue);\n var propType = startValueIsArray ? 'array' : typeof startValue;\n var isInterpolationList = !startValueIsArray && Array.isArray(_valuesEnd[property]);\n // If `to()` specifies a property that doesn't exist in the source object,\n // we should not set that property in the object\n if (propType === 'undefined' || propType === 'function') {\n continue;\n }\n // Check if an Array was provided as property value\n if (isInterpolationList) {\n var endValues = _valuesEnd[property];\n if (endValues.length === 0) {\n continue;\n }\n // Handle an array of relative values.\n // Creates a local copy of the Array with the start value at the front\n var temp = [startValue];\n for (var i = 0, l = endValues.length; i < l; i += 1) {\n var value = this._handleRelativeValue(startValue, endValues[i]);\n if (isNaN(value)) {\n isInterpolationList = false;\n console.warn('Found invalid interpolation list. Skipping.');\n break;\n }\n temp.push(value);\n }\n if (isInterpolationList) {\n // if (_valuesStart[property] === undefined) { // handle end values only the first time. NOT NEEDED? setupProperties is now guarded by _propertiesAreSetUp.\n _valuesEnd[property] = temp;\n // }\n }\n }\n // handle the deepness of the values\n if ((propType === 'object' || startValueIsArray) && startValue && !isInterpolationList) {\n _valuesStart[property] = startValueIsArray ? [] : {};\n var nestedObject = startValue;\n for (var prop in nestedObject) {\n _valuesStart[property][prop] = nestedObject[prop];\n }\n // TODO? repeat nested values? And yoyo? And array values?\n _valuesStartRepeat[property] = startValueIsArray ? [] : {};\n var endValues = _valuesEnd[property];\n // If dynamic is not enabled, clone the end values instead of using the passed-in end values.\n if (!this._isDynamic) {\n var tmp = {};\n for (var prop in endValues)\n tmp[prop] = endValues[prop];\n _valuesEnd[property] = endValues = tmp;\n }\n this._setupProperties(nestedObject, _valuesStart[property], endValues, _valuesStartRepeat[property], overrideStartingValues);\n }\n else {\n // Save the starting value, but only once unless override is requested.\n if (typeof _valuesStart[property] === 'undefined' || overrideStartingValues) {\n _valuesStart[property] = startValue;\n }\n if (!startValueIsArray) {\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n _valuesStart[property] *= 1.0; // Ensures we're using numbers, not strings\n }\n if (isInterpolationList) {\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n _valuesStartRepeat[property] = _valuesEnd[property].slice().reverse();\n }\n else {\n _valuesStartRepeat[property] = _valuesStart[property] || 0;\n }\n }\n }\n };\n Tween.prototype.stop = function () {\n if (!this._isChainStopped) {\n this._isChainStopped = true;\n this.stopChainedTweens();\n }\n if (!this._isPlaying) {\n return this;\n }\n this._isPlaying = false;\n this._isPaused = false;\n if (this._onStopCallback) {\n this._onStopCallback(this._object);\n }\n return this;\n };\n Tween.prototype.end = function () {\n this._goToEnd = true;\n this.update(this._startTime + this._duration);\n return this;\n };\n Tween.prototype.pause = function (time) {\n if (time === void 0) { time = now(); }\n if (this._isPaused || !this._isPlaying) {\n return this;\n }\n this._isPaused = true;\n this._pauseStart = time;\n return this;\n };\n Tween.prototype.resume = function (time) {\n if (time === void 0) { time = now(); }\n if (!this._isPaused || !this._isPlaying) {\n return this;\n }\n this._isPaused = false;\n this._startTime += time - this._pauseStart;\n this._pauseStart = 0;\n return this;\n };\n Tween.prototype.stopChainedTweens = function () {\n for (var i = 0, numChainedTweens = this._chainedTweens.length; i < numChainedTweens; i++) {\n this._chainedTweens[i].stop();\n }\n return this;\n };\n Tween.prototype.group = function (group) {\n if (!group) {\n console.warn('tween.group() without args has been removed, use group.add(tween) instead.');\n return this;\n }\n group.add(this);\n return this;\n };\n /**\n * Removes the tween from whichever group it is in.\n */\n Tween.prototype.remove = function () {\n var _a;\n (_a = this._group) === null || _a === void 0 ? void 0 : _a.remove(this);\n return this;\n };\n Tween.prototype.delay = function (amount) {\n if (amount === void 0) { amount = 0; }\n this._delayTime = amount;\n return this;\n };\n Tween.prototype.repeat = function (times) {\n if (times === void 0) { times = 0; }\n this._initialRepeat = times;\n this._repeat = times;\n return this;\n };\n Tween.prototype.repeatDelay = function (amount) {\n this._repeatDelayTime = amount;\n return this;\n };\n Tween.prototype.yoyo = function (yoyo) {\n if (yoyo === void 0) { yoyo = false; }\n this._yoyo = yoyo;\n return this;\n };\n Tween.prototype.easing = function (easingFunction) {\n if (easingFunction === void 0) { easingFunction = Easing.Linear.None; }\n this._easingFunction = easingFunction;\n return this;\n };\n Tween.prototype.interpolation = function (interpolationFunction) {\n if (interpolationFunction === void 0) { interpolationFunction = Interpolation.Linear; }\n this._interpolationFunction = interpolationFunction;\n return this;\n };\n // eslint-disable-next-line\n Tween.prototype.chain = function () {\n var tweens = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n tweens[_i] = arguments[_i];\n }\n this._chainedTweens = tweens;\n return this;\n };\n Tween.prototype.onStart = function (callback) {\n this._onStartCallback = callback;\n return this;\n };\n Tween.prototype.onEveryStart = function (callback) {\n this._onEveryStartCallback = callback;\n return this;\n };\n Tween.prototype.onUpdate = function (callback) {\n this._onUpdateCallback = callback;\n return this;\n };\n Tween.prototype.onRepeat = function (callback) {\n this._onRepeatCallback = callback;\n return this;\n };\n Tween.prototype.onComplete = function (callback) {\n this._onCompleteCallback = callback;\n return this;\n };\n Tween.prototype.onStop = function (callback) {\n this._onStopCallback = callback;\n return this;\n };\n /**\n * @returns true if the tween is still playing after the update, false\n * otherwise (calling update on a paused tween still returns true because\n * it is still playing, just paused).\n *\n * @param autoStart - When true, calling update will implicitly call start()\n * as well. Note, if you stop() or end() the tween, but are still calling\n * update(), it will start again!\n */\n Tween.prototype.update = function (time, autoStart) {\n var _this = this;\n var _a;\n if (time === void 0) { time = now(); }\n if (autoStart === void 0) { autoStart = Tween.autoStartOnUpdate; }\n if (this._isPaused)\n return true;\n var property;\n if (!this._goToEnd && !this._isPlaying) {\n if (autoStart)\n this.start(time, true);\n else\n return false;\n }\n this._goToEnd = false;\n if (time < this._startTime) {\n return true;\n }\n if (this._onStartCallbackFired === false) {\n if (this._onStartCallback) {\n this._onStartCallback(this._object);\n }\n this._onStartCallbackFired = true;\n }\n if (this._onEveryStartCallbackFired === false) {\n if (this._onEveryStartCallback) {\n this._onEveryStartCallback(this._object);\n }\n this._onEveryStartCallbackFired = true;\n }\n var elapsedTime = time - this._startTime;\n var durationAndDelay = this._duration + ((_a = this._repeatDelayTime) !== null && _a !== void 0 ? _a : this._delayTime);\n var totalTime = this._duration + this._repeat * durationAndDelay;\n var calculateElapsedPortion = function () {\n if (_this._duration === 0)\n return 1;\n if (elapsedTime > totalTime) {\n return 1;\n }\n var timesRepeated = Math.trunc(elapsedTime / durationAndDelay);\n var timeIntoCurrentRepeat = elapsedTime - timesRepeated * durationAndDelay;\n // TODO use %?\n // const timeIntoCurrentRepeat = elapsedTime % durationAndDelay\n var portion = Math.min(timeIntoCurrentRepeat / _this._duration, 1);\n if (portion === 0 && elapsedTime === _this._duration) {\n return 1;\n }\n return portion;\n };\n var elapsed = calculateElapsedPortion();\n var value = this._easingFunction(elapsed);\n // properties transformations\n this._updateProperties(this._object, this._valuesStart, this._valuesEnd, value);\n if (this._onUpdateCallback) {\n this._onUpdateCallback(this._object, elapsed);\n }\n if (this._duration === 0 || elapsedTime >= this._duration) {\n if (this._repeat > 0) {\n var completeCount = Math.min(Math.trunc((elapsedTime - this._duration) / durationAndDelay) + 1, this._repeat);\n if (isFinite(this._repeat)) {\n this._repeat -= completeCount;\n }\n // Reassign starting values, restart by making startTime = now\n for (property in this._valuesStartRepeat) {\n if (!this._yoyo && typeof this._valuesEnd[property] === 'string') {\n this._valuesStartRepeat[property] =\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n this._valuesStartRepeat[property] + parseFloat(this._valuesEnd[property]);\n }\n if (this._yoyo) {\n this._swapEndStartRepeatValues(property);\n }\n this._valuesStart[property] = this._valuesStartRepeat[property];\n }\n if (this._yoyo) {\n this._reversed = !this._reversed;\n }\n this._startTime += durationAndDelay * completeCount;\n if (this._onRepeatCallback) {\n this._onRepeatCallback(this._object);\n }\n this._onEveryStartCallbackFired = false;\n return true;\n }\n else {\n if (this._onCompleteCallback) {\n this._onCompleteCallback(this._object);\n }\n for (var i = 0, numChainedTweens = this._chainedTweens.length; i < numChainedTweens; i++) {\n // Make the chained tweens start exactly at the time they should,\n // even if the `update()` method was called way past the duration of the tween\n this._chainedTweens[i].start(this._startTime + this._duration, false);\n }\n this._isPlaying = false;\n return false;\n }\n }\n return true;\n };\n Tween.prototype._updateProperties = function (_object, _valuesStart, _valuesEnd, value) {\n for (var property in _valuesEnd) {\n // Don't update properties that do not exist in the source object\n if (_valuesStart[property] === undefined) {\n continue;\n }\n var start = _valuesStart[property] || 0;\n var end = _valuesEnd[property];\n var startIsArray = Array.isArray(_object[property]);\n var endIsArray = Array.isArray(end);\n var isInterpolationList = !startIsArray && endIsArray;\n if (isInterpolationList) {\n _object[property] = this._interpolationFunction(end, value);\n }\n else if (typeof end === 'object' && end) {\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n this._updateProperties(_object[property], start, end, value);\n }\n else {\n // Parses relative end values with start as base (e.g.: +10, -3)\n end = this._handleRelativeValue(start, end);\n // Protect against non numeric properties.\n if (typeof end === 'number') {\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n _object[property] = start + (end - start) * value;\n }\n }\n }\n };\n Tween.prototype._handleRelativeValue = function (start, end) {\n if (typeof end !== 'string') {\n return end;\n }\n if (end.charAt(0) === '+' || end.charAt(0) === '-') {\n return start + parseFloat(end);\n }\n return parseFloat(end);\n };\n Tween.prototype._swapEndStartRepeatValues = function (property) {\n var tmp = this._valuesStartRepeat[property];\n var endValue = this._valuesEnd[property];\n if (typeof endValue === 'string') {\n this._valuesStartRepeat[property] = this._valuesStartRepeat[property] + parseFloat(endValue);\n }\n else {\n this._valuesStartRepeat[property] = this._valuesEnd[property];\n }\n this._valuesEnd[property] = tmp;\n };\n Tween.autoStartOnUpdate = false;\n return Tween;\n}());\n\nvar VERSION = '25.0.0';\n\n/**\n * Tween.js - Licensed under the MIT license\n * https://github.com/tweenjs/tween.js\n * ----------------------------------------------\n *\n * See https://github.com/tweenjs/tween.js/graphs/contributors for the full list of contributors.\n * Thank you all, you're awesome!\n */\nvar nextId = Sequence.nextId;\n/**\n * Controlling groups of tweens\n *\n * Using the TWEEN singleton to manage your tweens can cause issues in large apps with many components.\n * In these cases, you may want to create your own smaller groups of tweens.\n */\nvar TWEEN = mainGroup;\n// This is the best way to export things in a way that's compatible with both ES\n// Modules and CommonJS, without build hacks, and so as not to break the\n// existing API.\n// https://github.com/rollup/rollup/issues/1961#issuecomment-423037881\n/**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\nvar getAll = TWEEN.getAll.bind(TWEEN);\n/**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\nvar removeAll = TWEEN.removeAll.bind(TWEEN);\n/**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\nvar add = TWEEN.add.bind(TWEEN);\n/**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\nvar remove = TWEEN.remove.bind(TWEEN);\n/**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\nvar update = TWEEN.update.bind(TWEEN);\nvar exports = {\n Easing: Easing,\n Group: Group,\n Interpolation: Interpolation,\n now: now,\n Sequence: Sequence,\n nextId: nextId,\n Tween: Tween,\n VERSION: VERSION,\n /**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\n getAll: getAll,\n /**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\n removeAll: removeAll,\n /**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\n add: add,\n /**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\n remove: remove,\n /**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\n update: update,\n};\n\nexport { Easing, Group, Interpolation, Sequence, Tween, VERSION, add, exports as default, getAll, nextId, now, remove, removeAll, update };\n","import debounce from 'lodash-es/debounce.js';\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nfunction _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction _createClass(e, r, t) {\n return Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nvar Prop = /*#__PURE__*/_createClass(function Prop(name, _ref) {\n var _ref$default = _ref[\"default\"],\n defaultVal = _ref$default === void 0 ? null : _ref$default,\n _ref$triggerUpdate = _ref.triggerUpdate,\n triggerUpdate = _ref$triggerUpdate === void 0 ? true : _ref$triggerUpdate,\n _ref$onChange = _ref.onChange,\n onChange = _ref$onChange === void 0 ? function (newVal, state) {} : _ref$onChange;\n _classCallCheck(this, Prop);\n this.name = name;\n this.defaultVal = defaultVal;\n this.triggerUpdate = triggerUpdate;\n this.onChange = onChange;\n});\nfunction index (_ref2) {\n var _ref2$stateInit = _ref2.stateInit,\n stateInit = _ref2$stateInit === void 0 ? function () {\n return {};\n } : _ref2$stateInit,\n _ref2$props = _ref2.props,\n rawProps = _ref2$props === void 0 ? {} : _ref2$props,\n _ref2$methods = _ref2.methods,\n methods = _ref2$methods === void 0 ? {} : _ref2$methods,\n _ref2$aliases = _ref2.aliases,\n aliases = _ref2$aliases === void 0 ? {} : _ref2$aliases,\n _ref2$init = _ref2.init,\n initFn = _ref2$init === void 0 ? function () {} : _ref2$init,\n _ref2$update = _ref2.update,\n updateFn = _ref2$update === void 0 ? function () {} : _ref2$update;\n // Parse props into Prop instances\n var props = Object.keys(rawProps).map(function (propName) {\n return new Prop(propName, rawProps[propName]);\n });\n return function KapsuleComp() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var classMode = !!(this instanceof KapsuleComp ? this.constructor : void 0);\n var nodeElement = classMode ? args.shift() : undefined;\n var _args$ = args[0],\n options = _args$ === void 0 ? {} : _args$;\n\n // Holds component state\n var state = Object.assign({}, stateInit instanceof Function ? stateInit(options) : stateInit,\n // Support plain objects for backwards compatibility\n {\n initialised: false\n });\n\n // keeps track of which props triggered an update\n var changedProps = {};\n\n // Component constructor\n function comp(nodeElement) {\n initStatic(nodeElement, options);\n digest();\n return comp;\n }\n var initStatic = function initStatic(nodeElement, options) {\n initFn.call(comp, nodeElement, state, options);\n state.initialised = true;\n };\n var digest = debounce(function () {\n if (!state.initialised) {\n return;\n }\n updateFn.call(comp, state, changedProps);\n changedProps = {};\n }, 1);\n\n // Getter/setter methods\n props.forEach(function (prop) {\n comp[prop.name] = getSetProp(prop);\n function getSetProp(_ref3) {\n var prop = _ref3.name,\n _ref3$triggerUpdate = _ref3.triggerUpdate,\n redigest = _ref3$triggerUpdate === void 0 ? false : _ref3$triggerUpdate,\n _ref3$onChange = _ref3.onChange,\n onChange = _ref3$onChange === void 0 ? function (newVal, state) {} : _ref3$onChange,\n _ref3$defaultVal = _ref3.defaultVal,\n defaultVal = _ref3$defaultVal === void 0 ? null : _ref3$defaultVal;\n return function (_) {\n var curVal = state[prop];\n if (!arguments.length) {\n return curVal;\n } // Getter mode\n\n var val = _ === undefined ? defaultVal : _; // pick default if value passed is undefined\n state[prop] = val;\n onChange.call(comp, val, state, curVal);\n\n // track changed props\n !changedProps.hasOwnProperty(prop) && (changedProps[prop] = curVal);\n if (redigest) {\n digest();\n }\n return comp;\n };\n }\n });\n\n // Other methods\n Object.keys(methods).forEach(function (methodName) {\n comp[methodName] = function () {\n var _methods$methodName;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return (_methods$methodName = methods[methodName]).call.apply(_methods$methodName, [comp, state].concat(args));\n };\n });\n\n // Link aliases\n Object.entries(aliases).forEach(function (_ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n alias = _ref5[0],\n target = _ref5[1];\n return comp[alias] = comp[target];\n });\n\n // Reset all component props to their default value\n comp.resetProps = function () {\n props.forEach(function (prop) {\n comp[prop.name](prop.defaultVal);\n });\n return comp;\n };\n\n //\n\n comp.resetProps(); // Apply all prop defaults\n state._rerender = digest; // Expose digest method\n\n classMode && nodeElement && comp(nodeElement);\n return comp;\n };\n}\n\nexport { index as default };\n","var index = (function (p) {\n return typeof p === 'function' ? p // fn\n : typeof p === 'string' ? function (obj) {\n return obj[p];\n } // property name\n : function (obj) {\n return p;\n };\n}); // constant\n\nexport { index as default };\n","// This file is autogenerated. It's used to publish ESM to npm.\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\nvar trimLeft = /^\\s+/;\nvar trimRight = /\\s+$/;\nfunction tinycolor(color, opts) {\n color = color ? color : \"\";\n opts = opts || {};\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n var rgb = inputToRGB(color);\n this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = Math.round(100 * this._a) / 100, this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) this._r = Math.round(this._r);\n if (this._g < 1) this._g = Math.round(this._g);\n if (this._b < 1) this._b = Math.round(this._b);\n this._ok = rgb.ok;\n}\ntinycolor.prototype = {\n isDark: function isDark() {\n return this.getBrightness() < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n isValid: function isValid() {\n return this._ok;\n },\n getOriginalInput: function getOriginalInput() {\n return this._originalInput;\n },\n getFormat: function getFormat() {\n return this._format;\n },\n getAlpha: function getAlpha() {\n return this._a;\n },\n getBrightness: function getBrightness() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function getLuminance() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r / 255;\n GsRGB = rgb.g / 255;\n BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) R = RsRGB / 12.92;else R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n if (GsRGB <= 0.03928) G = GsRGB / 12.92;else G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n if (BsRGB <= 0.03928) B = BsRGB / 12.92;else B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n },\n setAlpha: function setAlpha(value) {\n this._a = boundAlpha(value);\n this._roundA = Math.round(100 * this._a) / 100;\n return this;\n },\n toHsv: function toHsv() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v,\n a: this._a\n };\n },\n toHsvString: function toHsvString() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = Math.round(hsv.h * 360),\n s = Math.round(hsv.s * 100),\n v = Math.round(hsv.v * 100);\n return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function toHsl() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return {\n h: hsl.h * 360,\n s: hsl.s,\n l: hsl.l,\n a: this._a\n };\n },\n toHslString: function toHslString() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = Math.round(hsl.h * 360),\n s = Math.round(hsl.s * 100),\n l = Math.round(hsl.l * 100);\n return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function toHex(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function toHexString(allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function toHex8(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function toHex8String(allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function toRgb() {\n return {\n r: Math.round(this._r),\n g: Math.round(this._g),\n b: Math.round(this._b),\n a: this._a\n };\n },\n toRgbString: function toRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \")\" : \"rgba(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function toPercentageRgb() {\n return {\n r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n a: this._a\n };\n },\n toPercentageRgbString: function toPercentageRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function toName() {\n if (this._a === 0) {\n return \"transparent\";\n }\n if (this._a < 1) {\n return false;\n }\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function toFilter(secondColor) {\n var hex8String = \"#\" + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function toString(format) {\n var formatSet = !!format;\n format = format || this._format;\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n },\n clone: function clone() {\n return tinycolor(this.toString());\n },\n _applyModification: function _applyModification(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function lighten() {\n return this._applyModification(_lighten, arguments);\n },\n brighten: function brighten() {\n return this._applyModification(_brighten, arguments);\n },\n darken: function darken() {\n return this._applyModification(_darken, arguments);\n },\n desaturate: function desaturate() {\n return this._applyModification(_desaturate, arguments);\n },\n saturate: function saturate() {\n return this._applyModification(_saturate, arguments);\n },\n greyscale: function greyscale() {\n return this._applyModification(_greyscale, arguments);\n },\n spin: function spin() {\n return this._applyModification(_spin, arguments);\n },\n _applyCombination: function _applyCombination(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function analogous() {\n return this._applyCombination(_analogous, arguments);\n },\n complement: function complement() {\n return this._applyCombination(_complement, arguments);\n },\n monochromatic: function monochromatic() {\n return this._applyCombination(_monochromatic, arguments);\n },\n splitcomplement: function splitcomplement() {\n return this._applyCombination(_splitcomplement, arguments);\n },\n // Disabled until https://github.com/bgrins/TinyColor/issues/254\n // polyad: function (number) {\n // return this._applyCombination(polyad, [number]);\n // },\n triad: function triad() {\n return this._applyCombination(polyad, [3]);\n },\n tetrad: function tetrad() {\n return this._applyCombination(polyad, [4]);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function (color, opts) {\n if (_typeof(color) == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n var rgb = {\n r: 0,\n g: 0,\n b: 0\n };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n if (_typeof(color) == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a\n };\n}\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// <http://www.w3.org/TR/css3-color/>\n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n if (max == min) {\n h = s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n l: l\n };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n v: v\n };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) return false;\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\ntinycolor.random = function () {\n return tinycolor.fromRatio({\n r: Math.random(),\n g: Math.random(),\n b: Math.random()\n });\n};\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>\n\nfunction _desaturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _saturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\nfunction _lighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\nfunction _brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return tinycolor(rgb);\n}\nfunction _darken(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction _spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>\n\nfunction _complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\nfunction polyad(color, number) {\n if (isNaN(number) || number <= 0) {\n throw new Error(\"Argument to polyad must be a positive number\");\n }\n var hsl = tinycolor(color).toHsl();\n var result = [tinycolor(color)];\n var step = 360 / number;\n for (var i = 1; i < number; i++) {\n result.push(tinycolor({\n h: (hsl.h + i * step) % 360,\n s: hsl.s,\n l: hsl.l\n }));\n }\n return result;\n}\nfunction _splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [tinycolor(color), tinycolor({\n h: (h + 72) % 360,\n s: hsl.s,\n l: hsl.l\n }), tinycolor({\n h: (h + 216) % 360,\n s: hsl.s,\n l: hsl.l\n })];\n}\nfunction _analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\nfunction _monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n while (results--) {\n ret.push(tinycolor({\n h: h,\n s: s,\n v: v\n }));\n v = (v + modification) % 1;\n }\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function (color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a\n };\n return tinycolor(rgba);\n};\n\n// Readability Functions\n// ---------------------\n// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n\n// `contrast`\n// Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\ntinycolor.readability = function (color1, color2) {\n var c1 = tinycolor(color1);\n var c2 = tinycolor(color2);\n return (Math.max(c1.getLuminance(), c2.getLuminance()) + 0.05) / (Math.min(c1.getLuminance(), c2.getLuminance()) + 0.05);\n};\n\n// `isReadable`\n// Ensure that foreground and background color combinations meet WCAG2 guidelines.\n// The third argument is an optional Object.\n// the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n// the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n// If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n\n// *Example*\n// tinycolor.isReadable(\"#000\", \"#111\") => false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function (color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n out = false;\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function (baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors;\n level = args.level;\n size = args.size;\n for (var i = 0; i < colorList.length; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n if (tinycolor.isReadable(baseColor, bestColor, {\n level: level,\n size: size\n }) || !includeFallbackColors) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\n }\n};\n\n// Big List of Colors\n// ------------------\n// <https://www.w3.org/TR/css-color-4/#named-colors>\nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) n = \"100%\";\n var processPercent = isPercentage(n);\n n = Math.min(max, Math.max(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return n % max / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf(\".\") != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf(\"%\") != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? \"0\" + c : \"\" + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + \"%\";\n }\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\nvar matchers = function () {\n // <http://www.w3.org/TR/css3-values/#integers>\n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // <http://www.w3.org/TR/css3-values/#number-value>\n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n}();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == \"transparent\") {\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n format: \"name\"\n };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if (match = matchers.rgb.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3]\n };\n }\n if (match = matchers.rgba.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsl.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3]\n };\n }\n if (match = matchers.hsla.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsv.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3]\n };\n }\n if (match = matchers.hsva.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hex8.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex6.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if (match = matchers.hex4.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n a: convertHexToDecimal(match[4] + \"\" + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex3.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n return false;\n}\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\n level: \"AA\",\n size: \"small\"\n };\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\n level: level,\n size: size\n };\n}\n\nexport { tinycolor as default };\n","import tinyColor from 'tinycolor2';\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n}\nfunction _checkPrivateRedeclaration(e, t) {\n if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n}\nfunction _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction _classPrivateFieldGet2(s, a) {\n return s.get(_assertClassBrand(s, a));\n}\nfunction _classPrivateFieldInitSpec(e, t, a) {\n _checkPrivateRedeclaration(e, t), t.set(e, a);\n}\nfunction _classPrivateFieldSet2(s, a, r) {\n return s.set(_assertClassBrand(s, a), r), r;\n}\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nfunction _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r);\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (String )(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nvar ENTROPY = 123; // Raise numbers to prevent collisions in lower indexes\n\nvar int2HexColor = function int2HexColor(num) {\n return \"#\".concat(Math.min(num, Math.pow(2, 24)).toString(16).padStart(6, '0'));\n};\nvar rgb2Int = function rgb2Int(r, g, b) {\n return (r << 16) + (g << 8) + b;\n};\nvar colorStr2Int = function colorStr2Int(str) {\n var _tinyColor$toRgb = tinyColor(str).toRgb(),\n r = _tinyColor$toRgb.r,\n g = _tinyColor$toRgb.g,\n b = _tinyColor$toRgb.b;\n return rgb2Int(r, g, b);\n};\nvar checksum = function checksum(n, csBits) {\n return n * ENTROPY % Math.pow(2, csBits);\n};\nvar _registry = /*#__PURE__*/new WeakMap();\nvar _csBits = /*#__PURE__*/new WeakMap();\nvar _default = /*#__PURE__*/function () {\n function _default() {\n var csBits = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 6;\n _classCallCheck(this, _default);\n // Internal state\n _classPrivateFieldInitSpec(this, _registry, void 0);\n // indexed objects for rgb lookup;\n _classPrivateFieldInitSpec(this, _csBits, void 0);\n _classPrivateFieldSet2(_csBits, this, csBits);\n this.reset();\n }\n return _createClass(_default, [{\n key: \"reset\",\n value: function reset() {\n _classPrivateFieldSet2(_registry, this, ['__reserved for background__']);\n }\n }, {\n key: \"register\",\n value: function register(obj) {\n if (_classPrivateFieldGet2(_registry, this).length >= Math.pow(2, 24 - _classPrivateFieldGet2(_csBits, this))) {\n // color has 24 bits (-checksum)\n return null; // Registry is full\n }\n var idx = _classPrivateFieldGet2(_registry, this).length;\n var cs = checksum(idx, _classPrivateFieldGet2(_csBits, this));\n var color = int2HexColor(idx + (cs << 24 - _classPrivateFieldGet2(_csBits, this)));\n _classPrivateFieldGet2(_registry, this).push(obj);\n return color;\n }\n }, {\n key: \"lookup\",\n value: function lookup(color) {\n if (!color) return null; // invalid color\n\n var n = typeof color === 'string' ? colorStr2Int(color) : rgb2Int.apply(void 0, _toConsumableArray(color));\n if (!n) return null; // 0 index is reserved for background\n\n var idx = n & Math.pow(2, 24 - _classPrivateFieldGet2(_csBits, this)) - 1; // registry index\n var cs = n >> 24 - _classPrivateFieldGet2(_csBits, this) & Math.pow(2, _classPrivateFieldGet2(_csBits, this)) - 1; // extract bits reserved for checksum\n\n if (checksum(idx, _classPrivateFieldGet2(_csBits, this)) !== cs || idx >= _classPrivateFieldGet2(_registry, this).length) return null; // failed checksum or registry out of bounds\n\n return _classPrivateFieldGet2(_registry, this)[idx];\n } // How many bits to reserve for checksum. Will eat away into the usable size of the registry.\n }]);\n}();\n\nexport { _default as default };\n","import { select, pointer } from 'd3-selection';\nimport Kapsule from 'kapsule';\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = true,\n o = false;\n try {\n if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = true, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : undefined;\n }\n}\n\nfunction styleInject(css, ref) {\n if (ref === undefined) ref = {};\n var insertAt = ref.insertAt;\n if (typeof document === 'undefined') {\n return;\n }\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \".float-tooltip-kap {\\n position: absolute;\\n width: max-content; /* prevent shrinking near right edge */\\n max-width: max(50%, 150px);\\n padding: 3px 5px;\\n border-radius: 3px;\\n font: 12px sans-serif;\\n color: #eee;\\n background: rgba(0,0,0,0.6);\\n pointer-events: none;\\n}\\n\";\nstyleInject(css_248z);\n\nvar index = Kapsule({\n props: {\n content: {\n \"default\": false\n }\n },\n init: function init(domNode, state) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style;\n var isD3Selection = !!domNode && _typeof(domNode) === 'object' && !!domNode.node && typeof domNode.node === 'function';\n var el = select(isD3Selection ? domNode.node() : domNode);\n\n // make sure container is positioned, to provide anchor for tooltip\n el.style('position') === 'static' && el.style('position', 'relative');\n state.tooltipEl = el.append('div').attr('class', 'float-tooltip-kap');\n Object.entries(style).forEach(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n k = _ref3[0],\n v = _ref3[1];\n return state.tooltipEl.style(k, v);\n });\n state.tooltipEl // start off-screen\n .style('left', '-10000px').style('display', 'none');\n state.mouseInside = false;\n el.on('mousemove.tooltip', function (ev) {\n state.mouseInside = true;\n var mousePos = pointer(ev);\n var domNode = el.node();\n var canvasWidth = domNode.offsetWidth;\n var canvasHeight = domNode.offsetHeight;\n state.tooltipEl.style('left', mousePos[0] + 'px').style('top', mousePos[1] + 'px')\n // adjust horizontal position to not exceed canvas boundaries\n .style('transform', \"translate(-\".concat(mousePos[0] / canvasWidth * 100, \"%, \").concat(\n // flip to above if near bottom\n canvasHeight > 130 && canvasHeight - mousePos[1] < 100 ? 'calc(-100% - 6px)' : '21px', \")\"));\n });\n el.on('mouseover.tooltip', function () {\n state.mouseInside = true;\n state.content && state.tooltipEl.style('display', 'inline');\n });\n el.on('mouseout.tooltip', function () {\n state.mouseInside = false;\n state.tooltipEl.style('display', 'none');\n });\n },\n update: function update(state) {\n state.tooltipEl.style('display', !!state.content && state.mouseInside ? 'inline' : 'none');\n if (state.content instanceof HTMLElement) {\n state.tooltipEl.text(''); // empty it\n state.tooltipEl.append(function () {\n return state.content;\n });\n } else {\n state.tooltipEl.html(state.content || '');\n }\n }\n});\n\nexport { index as default };\n","export default function(x, y, z) {\n var nodes, strength = 1;\n\n if (x == null) x = 0;\n if (y == null) y = 0;\n if (z == null) z = 0;\n\n function force() {\n var i,\n n = nodes.length,\n node,\n sx = 0,\n sy = 0,\n sz = 0;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], sx += node.x || 0, sy += node.y || 0, sz += node.z || 0;\n }\n\n for (sx = (sx / n - x) * strength, sy = (sy / n - y) * strength, sz = (sz / n - z) * strength, i = 0; i < n; ++i) {\n node = nodes[i];\n if (sx) { node.x -= sx }\n if (sy) { node.y -= sy; }\n if (sz) { node.z -= sz; }\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n force.z = function(_) {\n return arguments.length ? (z = +_, force) : z;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n return force;\n}\n","export default function(d) {\n const x = +this._x.call(null, d);\n return add(this.cover(x), x, d);\n}\n\nfunction add(tree, x, d) {\n if (isNaN(x)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n x1 = tree._x1,\n xm,\n xp,\n right,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (parent = node, !(node = node[i = +right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n if (x === xp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(2) : tree._root = new Array(2);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n } while ((i = +right) === (j = +(xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n if (!Array.isArray(data)) data = Array.from(data);\n const n = data.length;\n const xz = new Float64Array(n);\n let x0 = Infinity,\n x1 = -Infinity;\n\n // Compute the points and their extent.\n for (let i = 0, x; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, data[i]))) continue;\n xz[i] = x;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n }\n\n // If there were no (valid) points, abort.\n if (x0 > x1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0).cover(x1);\n\n // Add the new points.\n for (let i = 0; i < n; ++i) {\n add(this, xz[i], data[i]);\n }\n\n return this;\n}\n","export default function(x) {\n if (isNaN(x = +x)) return this; // ignore invalid points\n\n var x0 = this._x0,\n x1 = this._x1;\n\n // If the binarytree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing half boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0 || 1,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1) {\n i = +(x < x0);\n parent = new Array(2), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0: x1 = x0 + z; break;\n case 1: x0 = x1 - z; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._x1 = x1;\n return this;\n}\n","export default function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n","export default function(_) {\n return arguments.length\n ? this.cover(+_[0][0]).cover(+_[1][0])\n : isNaN(this._x0) ? undefined : [[this._x0], [this._x1]];\n}\n","export default function(node, x0, x1) {\n this.node = node;\n this.x0 = x0;\n this.x1 = x1;\n}\n","import Half from \"./half.js\";\n\nexport default function(x, radius) {\n var data,\n x0 = this._x0,\n x1,\n x2,\n x3 = this._x1,\n halves = [],\n node = this._root,\n q,\n i;\n\n if (node) halves.push(new Half(node, x0, x3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius;\n x3 = x + radius;\n }\n\n while (q = halves.pop()) {\n\n // Stop searching if this half can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (x2 = q.x1) < x0) continue;\n\n // Bisect the current half.\n if (node.length) {\n var xm = (x1 + x2) / 2;\n\n halves.push(\n new Half(node[1], xm, x2),\n new Half(node[0], x1, xm)\n );\n\n // Visit the closest half first.\n if (i = +(x >= xm)) {\n q = halves[halves.length - 1];\n halves[halves.length - 1] = halves[halves.length - 1 - i];\n halves[halves.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var d = Math.abs(x - +this._x.call(null, node.data));\n if (d < radius) {\n radius = d;\n x0 = x - d;\n x3 = x + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n","export default function(d) {\n if (isNaN(x = +this._x.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n x1 = this._x1,\n x,\n xm,\n right,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (!(parent = node, node = node[i = +right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 1]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1])\n && node === (parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n","export default function() {\n return this._root;\n}\n","export default function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n","import Half from \"./half.js\";\n\nexport default function(callback) {\n var halves = [], q, node = this._root, child, x0, x1;\n if (node) halves.push(new Half(node, this._x0, this._x1));\n while (q = halves.pop()) {\n if (!callback(node = q.node, x0 = q.x0, x1 = q.x1) && node.length) {\n var xm = (x0 + x1) / 2;\n if (child = node[1]) halves.push(new Half(child, xm, x1));\n if (child = node[0]) halves.push(new Half(child, x0, xm));\n }\n }\n return this;\n}\n","import Half from \"./half.js\";\n\nexport default function(callback) {\n var halves = [], next = [], q;\n if (this._root) halves.push(new Half(this._root, this._x0, this._x1));\n while (q = halves.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, x1 = q.x1, xm = (x0 + x1) / 2;\n if (child = node[0]) halves.push(new Half(child, x0, xm));\n if (child = node[1]) halves.push(new Half(child, xm, x1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.x1);\n }\n return this;\n}\n","export function defaultX(d) {\n return d[0];\n}\n\nexport default function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n","import tree_add, {addAll as tree_addAll} from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, {defaultX} from \"./x.js\";\n\nexport default function binarytree(nodes, x) {\n var tree = new Binarytree(x == null ? defaultX : x, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Binarytree(x, x0, x1) {\n this._x = x;\n this._x0 = x0;\n this._x1 = x1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = binarytree.prototype = Binarytree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Binarytree(this._x, this._x0, this._x1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(2)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 2; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(2)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;","export default function(d) {\n const x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n var d, i, n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity;\n\n // Compute the points and their extent.\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n }\n\n // If there were no (valid) points, abort.\n if (x0 > x1 || y0 > y1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0).cover(x1, y1);\n\n // Add the new points.\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}\n","export default function(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1;\n\n // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0 || 1,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | (x < x0);\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0: x1 = x0 + z, y1 = y0 + z; break;\n case 1: x0 = x1 - z, y1 = y0 + z; break;\n case 2: x1 = x0 + z, y0 = y1 - z; break;\n case 3: x0 = x1 - z, y0 = y1 - z; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n}\n","export default function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n","export default function(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}\n","export default function(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0) continue;\n\n // Bisect the current quadrant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n\n quads.push(\n new Quad(node[3], xm, ym, x2, y2),\n new Quad(node[2], x1, ym, xm, y2),\n new Quad(node[1], xm, y1, x2, ym),\n new Quad(node[0], x1, y1, xm, ym)\n );\n\n // Visit the closest quadrant first.\n if (i = (y >= ym) << 1 | (x >= xm)) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n","export default function(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n && node === (parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n","export default function() {\n return this._root;\n}\n","export default function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n}\n","export function defaultX(d) {\n return d[0];\n}\n\nexport default function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n","export function defaultY(d) {\n return d[1];\n}\n\nexport default function(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}\n","import tree_add, {addAll as tree_addAll} from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, {defaultX} from \"./x.js\";\nimport tree_y, {defaultY} from \"./y.js\";\n\nexport default function quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(4)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;\n","export default function(d) {\n const x = +this._x.call(null, d),\n y = +this._y.call(null, d),\n z = +this._z.call(null, d);\n return add(this.cover(x, y, z), x, y, z, d);\n}\n\nfunction add(tree, x, y, z, d) {\n if (isNaN(x) || isNaN(y) || isNaN(z)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n z0 = tree._z0,\n x1 = tree._x1,\n y1 = tree._y1,\n z1 = tree._z1,\n xm,\n ym,\n zm,\n xp,\n yp,\n zp,\n right,\n bottom,\n deep,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (deep = z >= (zm = (z0 + z1) / 2)) z0 = zm; else z1 = zm;\n if (parent = node, !(node = node[i = deep << 2 | bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n zp = +tree._z.call(null, node.data);\n if (x === xp && y === yp && z === zp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(8) : tree._root = new Array(8);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (deep = z >= (zm = (z0 + z1) / 2)) z0 = zm; else z1 = zm;\n } while ((i = deep << 2 | bottom << 1 | right) === (j = (zp >= zm) << 2 | (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n if (!Array.isArray(data)) data = Array.from(data);\n const n = data.length;\n const xz = new Float64Array(n);\n const yz = new Float64Array(n);\n const zz = new Float64Array(n);\n let x0 = Infinity,\n y0 = Infinity,\n z0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity,\n z1 = -Infinity;\n\n // Compute the points and their extent.\n for (let i = 0, d, x, y, z; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d)) || isNaN(z = +this._z.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n zz[i] = z;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n if (z < z0) z0 = z;\n if (z > z1) z1 = z;\n }\n\n // If there were no (valid) points, abort.\n if (x0 > x1 || y0 > y1 || z0 > z1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0, z0).cover(x1, y1, z1);\n\n // Add the new points.\n for (let i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], zz[i], data[i]);\n }\n\n return this;\n}\n","export default function(x, y, z) {\n if (isNaN(x = +x) || isNaN(y = +y) || isNaN(z = +z)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n z0 = this._z0,\n x1 = this._x1,\n y1 = this._y1,\n z1 = this._z1;\n\n // If the octree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing octant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n z1 = (z0 = Math.floor(z)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var t = x1 - x0 || 1,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1 || z0 > z || z >= z1) {\n i = (z < z0) << 2 | (y < y0) << 1 | (x < x0);\n parent = new Array(8), parent[i] = node, node = parent, t *= 2;\n switch (i) {\n case 0: x1 = x0 + t, y1 = y0 + t, z1 = z0 + t; break;\n case 1: x0 = x1 - t, y1 = y0 + t, z1 = z0 + t; break;\n case 2: x1 = x0 + t, y0 = y1 - t, z1 = z0 + t; break;\n case 3: x0 = x1 - t, y0 = y1 - t, z1 = z0 + t; break;\n case 4: x1 = x0 + t, y1 = y0 + t, z0 = z1 - t; break;\n case 5: x0 = x1 - t, y1 = y0 + t, z0 = z1 - t; break;\n case 6: x1 = x0 + t, y0 = y1 - t, z0 = z1 - t; break;\n case 7: x0 = x1 - t, y0 = y1 - t, z0 = z1 - t; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._z0 = z0;\n this._x1 = x1;\n this._y1 = y1;\n this._z1 = z1;\n return this;\n}\n","export default function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n","export default function(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1], +_[0][2]).cover(+_[1][0], +_[1][1], +_[1][2])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0, this._z0], [this._x1, this._y1, this._z1]];\n}\n","export default function(node, x0, y0, z0, x1, y1, z1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.z0 = z0;\n this.x1 = x1;\n this.y1 = y1;\n this.z1 = z1;\n}\n","import Octant from \"./octant.js\";\n\nexport default function(x, y, z, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n z0 = this._z0,\n x1,\n y1,\n z1,\n x2,\n y2,\n z2,\n x3 = this._x1,\n y3 = this._y1,\n z3 = this._z1,\n octs = [],\n node = this._root,\n q,\n i;\n\n if (node) octs.push(new Octant(node, x0, y0, z0, x3, y3, z3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius, z0 = z - radius;\n x3 = x + radius, y3 = y + radius, z3 = z + radius;\n radius *= radius;\n }\n\n while (q = octs.pop()) {\n\n // Stop searching if this octant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (z1 = q.z0) > z3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0\n || (z2 = q.z1) < z0) continue;\n\n // Bisect the current octant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2,\n zm = (z1 + z2) / 2;\n\n octs.push(\n new Octant(node[7], xm, ym, zm, x2, y2, z2),\n new Octant(node[6], x1, ym, zm, xm, y2, z2),\n new Octant(node[5], xm, y1, zm, x2, ym, z2),\n new Octant(node[4], x1, y1, zm, xm, ym, z2),\n new Octant(node[3], xm, ym, z1, x2, y2, zm),\n new Octant(node[2], x1, ym, z1, xm, y2, zm),\n new Octant(node[1], xm, y1, z1, x2, ym, zm),\n new Octant(node[0], x1, y1, z1, xm, ym, zm)\n );\n\n // Visit the closest octant first.\n if (i = (z >= zm) << 2 | (y >= ym) << 1 | (x >= xm)) {\n q = octs[octs.length - 1];\n octs[octs.length - 1] = octs[octs.length - 1 - i];\n octs[octs.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n dz = z - +this._z.call(null, node.data),\n d2 = dx * dx + dy * dy + dz * dz;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d, z0 = z - d;\n x3 = x + d, y3 = y + d, z3 = z + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n","const distance = (x1, y1, z1, x2, y2, z2) => Math.sqrt((x1-x2)**2 + (y1-y2)**2 + (z1-z2)**2);\n\nexport function findAllWithinRadius(x, y, z, radius) {\n const result = [];\n\n const xMin = x - radius;\n const yMin = y - radius;\n const zMin = z - radius;\n const xMax = x + radius;\n const yMax = y + radius;\n const zMax = z + radius;\n\n this.visit((node, x1, y1, z1, x2, y2, z2) => {\n if (!node.length) {\n do {\n const d = node.data;\n if (distance(x, y, z, this._x(d), this._y(d), this._z(d)) <= radius) {\n result.push(d);\n }\n } while (node = node.next);\n }\n return x1 > xMax || y1 > yMax || z1 > zMax || x2 < xMin || y2 < yMin || z2 < zMin;\n });\n\n return result;\n}\n","export default function(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d)) || isNaN(z = +this._z.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n z0 = this._z0,\n x1 = this._x1,\n y1 = this._y1,\n z1 = this._z1,\n x,\n y,\n z,\n xm,\n ym,\n zm,\n right,\n bottom,\n deep,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (deep = z >= (zm = (z0 + z1) / 2)) z0 = zm; else z1 = zm;\n if (!(parent = node, node = node[i = deep << 2 | bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 7] || parent[(i + 2) & 7] || parent[(i + 3) & 7] || parent[(i + 4) & 7] || parent[(i + 5) & 7] || parent[(i + 6) & 7] || parent[(i + 7) & 7]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3] || parent[4] || parent[5] || parent[6] || parent[7])\n && node === (parent[7] || parent[6] || parent[5] || parent[4] || parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n","export default function() {\n return this._root;\n}\n","export default function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n","import Octant from \"./octant.js\";\n\nexport default function(callback) {\n var octs = [], q, node = this._root, child, x0, y0, z0, x1, y1, z1;\n if (node) octs.push(new Octant(node, this._x0, this._y0, this._z0, this._x1, this._y1, this._z1));\n while (q = octs.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, z0 = q.z0, x1 = q.x1, y1 = q.y1, z1 = q.z1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2, zm = (z0 + z1) / 2;\n if (child = node[7]) octs.push(new Octant(child, xm, ym, zm, x1, y1, z1));\n if (child = node[6]) octs.push(new Octant(child, x0, ym, zm, xm, y1, z1));\n if (child = node[5]) octs.push(new Octant(child, xm, y0, zm, x1, ym, z1));\n if (child = node[4]) octs.push(new Octant(child, x0, y0, zm, xm, ym, z1));\n if (child = node[3]) octs.push(new Octant(child, xm, ym, z0, x1, y1, zm));\n if (child = node[2]) octs.push(new Octant(child, x0, ym, z0, xm, y1, zm));\n if (child = node[1]) octs.push(new Octant(child, xm, y0, z0, x1, ym, zm));\n if (child = node[0]) octs.push(new Octant(child, x0, y0, z0, xm, ym, zm));\n }\n }\n return this;\n}\n","import Octant from \"./octant.js\";\n\nexport default function(callback) {\n var octs = [], next = [], q;\n if (this._root) octs.push(new Octant(this._root, this._x0, this._y0, this._z0, this._x1, this._y1, this._z1));\n while (q = octs.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, z0 = q.z0, x1 = q.x1, y1 = q.y1, z1 = q.z1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2, zm = (z0 + z1) / 2;\n if (child = node[0]) octs.push(new Octant(child, x0, y0, z0, xm, ym, zm));\n if (child = node[1]) octs.push(new Octant(child, xm, y0, z0, x1, ym, zm));\n if (child = node[2]) octs.push(new Octant(child, x0, ym, z0, xm, y1, zm));\n if (child = node[3]) octs.push(new Octant(child, xm, ym, z0, x1, y1, zm));\n if (child = node[4]) octs.push(new Octant(child, x0, y0, zm, xm, ym, z1));\n if (child = node[5]) octs.push(new Octant(child, xm, y0, zm, x1, ym, z1));\n if (child = node[6]) octs.push(new Octant(child, x0, ym, zm, xm, y1, z1));\n if (child = node[7]) octs.push(new Octant(child, xm, ym, zm, x1, y1, z1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.z0, q.x1, q.y1, q.z1);\n }\n return this;\n}\n","export function defaultX(d) {\n return d[0];\n}\n\nexport default function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n","export function defaultY(d) {\n return d[1];\n}\n\nexport default function(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}\n","export function defaultZ(d) {\n return d[2];\n}\n\nexport default function(_) {\n return arguments.length ? (this._z = _, this) : this._z;\n}\n","import tree_add, {addAll as tree_addAll} from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport { findAllWithinRadius as tree_findAllWithinRadius } from \"./findAll.js\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, {defaultX} from \"./x.js\";\nimport tree_y, {defaultY} from \"./y.js\";\nimport tree_z, {defaultZ} from \"./z.js\";\n\nexport default function octree(nodes, x, y, z) {\n var tree = new Octree(x == null ? defaultX : x, y == null ? defaultY : y, z == null ? defaultZ : z, NaN, NaN, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Octree(x, y, z, x0, y0, z0, x1, y1, z1) {\n this._x = x;\n this._y = y;\n this._z = z;\n this._x0 = x0;\n this._y0 = y0;\n this._z0 = z0;\n this._x1 = x1;\n this._y1 = y1;\n this._z1 = z1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = octree.prototype = Octree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Octree(this._x, this._y, this._z, this._x0, this._y0, this._z0, this._x1, this._y1, this._z1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(8)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 8; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(8)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.findAllWithinRadius = tree_findAllWithinRadius;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;\ntreeProto.z = tree_z;\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(random) {\n return (random() - 0.5) * 1e-6;\n}\n","import constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\n\nfunction index(d) {\n return d.index;\n}\n\nfunction find(nodeById, nodeId) {\n var node = nodeById.get(nodeId);\n if (!node) throw new Error(\"node not found: \" + nodeId);\n return node;\n}\n\nexport default function(links) {\n var id = index,\n strength = defaultStrength,\n strengths,\n distance = constant(30),\n distances,\n nodes,\n nDim,\n count,\n bias,\n random,\n iterations = 1;\n\n if (links == null) links = [];\n\n function defaultStrength(link) {\n return 1 / Math.min(count[link.source.index], count[link.target.index]);\n }\n\n function force(alpha) {\n for (var k = 0, n = links.length; k < iterations; ++k) {\n for (var i = 0, link, source, target, x = 0, y = 0, z = 0, l, b; i < n; ++i) {\n link = links[i], source = link.source, target = link.target;\n x = target.x + target.vx - source.x - source.vx || jiggle(random);\n if (nDim > 1) { y = target.y + target.vy - source.y - source.vy || jiggle(random); }\n if (nDim > 2) { z = target.z + target.vz - source.z - source.vz || jiggle(random); }\n l = Math.sqrt(x * x + y * y + z * z);\n l = (l - distances[i]) / l * alpha * strengths[i];\n x *= l, y *= l, z *= l;\n\n target.vx -= x * (b = bias[i]);\n if (nDim > 1) { target.vy -= y * b; }\n if (nDim > 2) { target.vz -= z * b; }\n\n source.vx += x * (b = 1 - b);\n if (nDim > 1) { source.vy += y * b; }\n if (nDim > 2) { source.vz += z * b; }\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n\n var i,\n n = nodes.length,\n m = links.length,\n nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d])),\n link;\n\n for (i = 0, count = new Array(n); i < m; ++i) {\n link = links[i], link.index = i;\n if (typeof link.source !== \"object\") link.source = find(nodeById, link.source);\n if (typeof link.target !== \"object\") link.target = find(nodeById, link.target);\n count[link.source.index] = (count[link.source.index] || 0) + 1;\n count[link.target.index] = (count[link.target.index] || 0) + 1;\n }\n\n for (i = 0, bias = new Array(m); i < m; ++i) {\n link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);\n }\n\n strengths = new Array(m), initializeStrength();\n distances = new Array(m), initializeDistance();\n }\n\n function initializeStrength() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n strengths[i] = +strength(links[i], i, links);\n }\n }\n\n function initializeDistance() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n distances[i] = +distance(links[i], i, links);\n }\n }\n\n force.initialize = function(_nodes, ...args) {\n nodes = _nodes;\n random = args.find(arg => typeof arg === 'function') || Math.random;\n nDim = args.find(arg => [1, 2, 3].includes(arg)) || 2;\n initialize();\n };\n\n force.links = function(_) {\n return arguments.length ? (links = _, initialize(), force) : links;\n };\n\n force.id = function(_) {\n return arguments.length ? (id = _, force) : id;\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initializeStrength(), force) : strength;\n };\n\n force.distance = function(_) {\n return arguments.length ? (distance = typeof _ === \"function\" ? _ : constant(+_), initializeDistance(), force) : distance;\n };\n\n return force;\n}\n","// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use\nconst a = 1664525;\nconst c = 1013904223;\nconst m = 4294967296; // 2^32\n\nexport default function() {\n let s = 1;\n return () => (s = (a * s + c) % m) / m;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer} from \"d3-timer\";\nimport lcg from \"./lcg.js\";\n\nvar MAX_DIMENSIONS = 3;\n\nexport function x(d) {\n return d.x;\n}\n\nexport function y(d) {\n return d.y;\n}\n\nexport function z(d) {\n return d.z;\n}\n\nvar initialRadius = 10,\n initialAngleRoll = Math.PI * (3 - Math.sqrt(5)), // Golden ratio angle\n initialAngleYaw = Math.PI * 20 / (9 + Math.sqrt(221)); // Markov irrational number\n\nexport default function(nodes, numDimensions) {\n numDimensions = numDimensions || 2;\n\n var nDim = Math.min(MAX_DIMENSIONS, Math.max(1, Math.round(numDimensions))),\n simulation,\n alpha = 1,\n alphaMin = 0.001,\n alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n alphaTarget = 0,\n velocityDecay = 0.6,\n forces = new Map(),\n stepper = timer(step),\n event = dispatch(\"tick\", \"end\"),\n random = lcg();\n\n if (nodes == null) nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick(iterations) {\n var i, n = nodes.length, node;\n\n if (iterations === undefined) iterations = 1;\n\n for (var k = 0; k < iterations; ++k) {\n alpha += (alphaTarget - alpha) * alphaDecay;\n\n forces.forEach(function (force) {\n force(alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (nDim > 1) {\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n if (nDim > 2) {\n if (node.fz == null) node.z += node.vz *= velocityDecay;\n else node.z = node.fz, node.vz = 0;\n }\n }\n }\n\n return simulation;\n }\n\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (node.fx != null) node.x = node.fx;\n if (node.fy != null) node.y = node.fy;\n if (node.fz != null) node.z = node.fz;\n if (isNaN(node.x) || (nDim > 1 && isNaN(node.y)) || (nDim > 2 && isNaN(node.z))) {\n var radius = initialRadius * (nDim > 2 ? Math.cbrt(0.5 + i) : (nDim > 1 ? Math.sqrt(0.5 + i) : i)),\n rollAngle = i * initialAngleRoll,\n yawAngle = i * initialAngleYaw;\n\n if (nDim === 1) {\n node.x = radius;\n } else if (nDim === 2) {\n node.x = radius * Math.cos(rollAngle);\n node.y = radius * Math.sin(rollAngle);\n } else { // 3 dimensions: use spherical distribution along 2 irrational number angles\n node.x = radius * Math.sin(rollAngle) * Math.cos(yawAngle);\n node.y = radius * Math.cos(rollAngle);\n node.z = radius * Math.sin(rollAngle) * Math.sin(yawAngle);\n }\n }\n if (isNaN(node.vx) || (nDim > 1 && isNaN(node.vy)) || (nDim > 2 && isNaN(node.vz))) {\n node.vx = 0;\n if (nDim > 1) { node.vy = 0; }\n if (nDim > 2) { node.vz = 0; }\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes, random, nDim);\n return force;\n }\n\n initializeNodes();\n\n return simulation = {\n tick: tick,\n\n restart: function() {\n return stepper.restart(step), simulation;\n },\n\n stop: function() {\n return stepper.stop(), simulation;\n },\n\n numDimensions: function(_) {\n return arguments.length\n ? (nDim = Math.min(MAX_DIMENSIONS, Math.max(1, Math.round(_))), forces.forEach(initializeForce), simulation)\n : nDim;\n },\n\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.forEach(initializeForce), simulation) : nodes;\n },\n\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation) : alpha;\n },\n\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n },\n\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n },\n\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n },\n\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n },\n\n randomSource: function(_) {\n return arguments.length ? (random = _, forces.forEach(initializeForce), simulation) : random;\n },\n\n force: function(name, _) {\n return arguments.length > 1 ? ((_ == null ? forces.delete(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n },\n\n find: function() {\n var args = Array.prototype.slice.call(arguments);\n var x = args.shift() || 0,\n y = (nDim > 1 ? args.shift() : null) || 0,\n z = (nDim > 2 ? args.shift() : null) || 0,\n radius = args.shift() || Infinity;\n\n var i = 0,\n n = nodes.length,\n dx,\n dy,\n dz,\n d2,\n node,\n closest;\n\n radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x - node.x;\n dy = y - (node.y || 0);\n dz = z - (node.z ||0);\n d2 = dx * dx + dy * dy + dz * dz;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n\n on: function(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n}\n","import {binarytree} from \"d3-binarytree\";\nimport {quadtree} from \"d3-quadtree\";\nimport {octree} from \"d3-octree\";\nimport constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\nimport {x, y, z} from \"./simulation.js\";\n\nexport default function() {\n var nodes,\n nDim,\n node,\n random,\n alpha,\n strength = constant(-30),\n strengths,\n distanceMin2 = 1,\n distanceMax2 = Infinity,\n theta2 = 0.81;\n\n function force(_) {\n var i,\n n = nodes.length,\n tree =\n (nDim === 1 ? binarytree(nodes, x)\n :(nDim === 2 ? quadtree(nodes, x, y)\n :(nDim === 3 ? octree(nodes, x, y, z)\n :null\n ))).visitAfter(accumulate);\n\n for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n strengths = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);\n }\n\n function accumulate(treeNode) {\n var strength = 0, q, c, weight = 0, x, y, z, i;\n var numChildren = treeNode.length;\n\n // For internal nodes, accumulate forces from children.\n if (numChildren) {\n for (x = y = z = i = 0; i < numChildren; ++i) {\n if ((q = treeNode[i]) && (c = Math.abs(q.value))) {\n strength += q.value, weight += c, x += c * (q.x || 0), y += c * (q.y || 0), z += c * (q.z || 0);\n }\n }\n strength *= Math.sqrt(4 / numChildren); // scale accumulated strength according to number of dimensions\n\n treeNode.x = x / weight;\n if (nDim > 1) { treeNode.y = y / weight; }\n if (nDim > 2) { treeNode.z = z / weight; }\n }\n\n // For leaf nodes, accumulate forces from coincident nodes.\n else {\n q = treeNode;\n q.x = q.data.x;\n if (nDim > 1) { q.y = q.data.y; }\n if (nDim > 2) { q.z = q.data.z; }\n do strength += strengths[q.data.index];\n while (q = q.next);\n }\n\n treeNode.value = strength;\n }\n\n function apply(treeNode, x1, arg1, arg2, arg3) {\n if (!treeNode.value) return true;\n var x2 = [arg1, arg2, arg3][nDim-1];\n\n var x = treeNode.x - node.x,\n y = (nDim > 1 ? treeNode.y - node.y : 0),\n z = (nDim > 2 ? treeNode.z - node.z : 0),\n w = x2 - x1,\n l = x * x + y * y + z * z;\n\n // Apply the Barnes-Hut approximation if possible.\n // Limit forces for very close nodes; randomize direction if coincident.\n if (w * w / theta2 < l) {\n if (l < distanceMax2) {\n if (x === 0) x = jiggle(random), l += x * x;\n if (nDim > 1 && y === 0) y = jiggle(random), l += y * y;\n if (nDim > 2 && z === 0) z = jiggle(random), l += z * z;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n node.vx += x * treeNode.value * alpha / l;\n if (nDim > 1) { node.vy += y * treeNode.value * alpha / l; }\n if (nDim > 2) { node.vz += z * treeNode.value * alpha / l; }\n }\n return true;\n }\n\n // Otherwise, process points directly.\n else if (treeNode.length || l >= distanceMax2) return;\n\n // Limit forces for very close nodes; randomize direction if coincident.\n if (treeNode.data !== node || treeNode.next) {\n if (x === 0) x = jiggle(random), l += x * x;\n if (nDim > 1 && y === 0) y = jiggle(random), l += y * y;\n if (nDim > 2 && z === 0) z = jiggle(random), l += z * z;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n }\n\n do if (treeNode.data !== node) {\n w = strengths[treeNode.data.index] * alpha / l;\n node.vx += x * w;\n if (nDim > 1) { node.vy += y * w; }\n if (nDim > 2) { node.vz += z * w; }\n } while (treeNode = treeNode.next);\n }\n\n force.initialize = function(_nodes, ...args) {\n nodes = _nodes;\n random = args.find(arg => typeof arg === 'function') || Math.random;\n nDim = args.find(arg => [1, 2, 3].includes(arg)) || 2;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.distanceMin = function(_) {\n return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);\n };\n\n force.distanceMax = function(_) {\n return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);\n };\n\n force.theta = function(_) {\n return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);\n };\n\n return force;\n}\n","import constant from \"./constant.js\";\n\nexport default function(radius, x, y, z) {\n var nodes,\n nDim,\n strength = constant(0.1),\n strengths,\n radiuses;\n\n if (typeof radius !== \"function\") radius = constant(+radius);\n if (x == null) x = 0;\n if (y == null) y = 0;\n if (z == null) z = 0;\n\n function force(alpha) {\n for (var i = 0, n = nodes.length; i < n; ++i) {\n var node = nodes[i],\n dx = node.x - x || 1e-6,\n dy = (node.y || 0) - y || 1e-6,\n dz = (node.z || 0) - z || 1e-6,\n r = Math.sqrt(dx * dx + dy * dy + dz * dz),\n k = (radiuses[i] - r) * strengths[i] * alpha / r;\n node.vx += dx * k;\n if (nDim>1) { node.vy += dy * k; }\n if (nDim>2) { node.vz += dz * k; }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n radiuses = new Array(n);\n for (i = 0; i < n; ++i) {\n radiuses[i] = +radius(nodes[i], i, nodes);\n strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(initNodes, ...args) {\n nodes = initNodes;\n nDim = args.find(arg => [1, 2, 3].includes(arg)) || 2;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n force.z = function(_) {\n return arguments.length ? (z = +_, force) : z;\n };\n\n return force;\n}\n","import { Bezier } from \"./bezier.js\";\n\n// math-inlining.\nconst { abs, cos, sin, acos, atan2, sqrt, pow } = Math;\n\n// cube root function yielding real roots\nfunction crt(v) {\n return v < 0 ? -pow(-v, 1 / 3) : pow(v, 1 / 3);\n}\n\n// trig constants\nconst pi = Math.PI,\n tau = 2 * pi,\n quart = pi / 2,\n // float precision significant decimal\n epsilon = 0.000001,\n // extremas used in bbox calculation and similar algorithms\n nMax = Number.MAX_SAFE_INTEGER || 9007199254740991,\n nMin = Number.MIN_SAFE_INTEGER || -9007199254740991,\n // a zero coordinate, which is surprisingly useful\n ZERO = { x: 0, y: 0, z: 0 };\n\n// Bezier utility functions\nconst utils = {\n // Legendre-Gauss abscissae with n=24 (x_i values, defined at i=n as the roots of the nth order Legendre polynomial Pn(x))\n Tvalues: [\n -0.0640568928626056260850430826247450385909,\n 0.0640568928626056260850430826247450385909,\n -0.1911188674736163091586398207570696318404,\n 0.1911188674736163091586398207570696318404,\n -0.3150426796961633743867932913198102407864,\n 0.3150426796961633743867932913198102407864,\n -0.4337935076260451384870842319133497124524,\n 0.4337935076260451384870842319133497124524,\n -0.5454214713888395356583756172183723700107,\n 0.5454214713888395356583756172183723700107,\n -0.6480936519369755692524957869107476266696,\n 0.6480936519369755692524957869107476266696,\n -0.7401241915785543642438281030999784255232,\n 0.7401241915785543642438281030999784255232,\n -0.8200019859739029219539498726697452080761,\n 0.8200019859739029219539498726697452080761,\n -0.8864155270044010342131543419821967550873,\n 0.8864155270044010342131543419821967550873,\n -0.9382745520027327585236490017087214496548,\n 0.9382745520027327585236490017087214496548,\n -0.9747285559713094981983919930081690617411,\n 0.9747285559713094981983919930081690617411,\n -0.9951872199970213601799974097007368118745,\n 0.9951872199970213601799974097007368118745,\n ],\n\n // Legendre-Gauss weights with n=24 (w_i values, defined by a function linked to in the Bezier primer article)\n Cvalues: [\n 0.1279381953467521569740561652246953718517,\n 0.1279381953467521569740561652246953718517,\n 0.1258374563468282961213753825111836887264,\n 0.1258374563468282961213753825111836887264,\n 0.121670472927803391204463153476262425607,\n 0.121670472927803391204463153476262425607,\n 0.1155056680537256013533444839067835598622,\n 0.1155056680537256013533444839067835598622,\n 0.1074442701159656347825773424466062227946,\n 0.1074442701159656347825773424466062227946,\n 0.0976186521041138882698806644642471544279,\n 0.0976186521041138882698806644642471544279,\n 0.086190161531953275917185202983742667185,\n 0.086190161531953275917185202983742667185,\n 0.0733464814110803057340336152531165181193,\n 0.0733464814110803057340336152531165181193,\n 0.0592985849154367807463677585001085845412,\n 0.0592985849154367807463677585001085845412,\n 0.0442774388174198061686027482113382288593,\n 0.0442774388174198061686027482113382288593,\n 0.0285313886289336631813078159518782864491,\n 0.0285313886289336631813078159518782864491,\n 0.0123412297999871995468056670700372915759,\n 0.0123412297999871995468056670700372915759,\n ],\n\n arcfn: function (t, derivativeFn) {\n const d = derivativeFn(t);\n let l = d.x * d.x + d.y * d.y;\n if (typeof d.z !== \"undefined\") {\n l += d.z * d.z;\n }\n return sqrt(l);\n },\n\n compute: function (t, points, _3d) {\n // shortcuts\n if (t === 0) {\n points[0].t = 0;\n return points[0];\n }\n\n const order = points.length - 1;\n\n if (t === 1) {\n points[order].t = 1;\n return points[order];\n }\n\n const mt = 1 - t;\n let p = points;\n\n // constant?\n if (order === 0) {\n points[0].t = t;\n return points[0];\n }\n\n // linear?\n if (order === 1) {\n const ret = {\n x: mt * p[0].x + t * p[1].x,\n y: mt * p[0].y + t * p[1].y,\n t: t,\n };\n if (_3d) {\n ret.z = mt * p[0].z + t * p[1].z;\n }\n return ret;\n }\n\n // quadratic/cubic curve?\n if (order < 4) {\n let mt2 = mt * mt,\n t2 = t * t,\n a,\n b,\n c,\n d = 0;\n if (order === 2) {\n p = [p[0], p[1], p[2], ZERO];\n a = mt2;\n b = mt * t * 2;\n c = t2;\n } else if (order === 3) {\n a = mt2 * mt;\n b = mt2 * t * 3;\n c = mt * t2 * 3;\n d = t * t2;\n }\n const ret = {\n x: a * p[0].x + b * p[1].x + c * p[2].x + d * p[3].x,\n y: a * p[0].y + b * p[1].y + c * p[2].y + d * p[3].y,\n t: t,\n };\n if (_3d) {\n ret.z = a * p[0].z + b * p[1].z + c * p[2].z + d * p[3].z;\n }\n return ret;\n }\n\n // higher order curves: use de Casteljau's computation\n const dCpts = JSON.parse(JSON.stringify(points));\n while (dCpts.length > 1) {\n for (let i = 0; i < dCpts.length - 1; i++) {\n dCpts[i] = {\n x: dCpts[i].x + (dCpts[i + 1].x - dCpts[i].x) * t,\n y: dCpts[i].y + (dCpts[i + 1].y - dCpts[i].y) * t,\n };\n if (typeof dCpts[i].z !== \"undefined\") {\n dCpts[i].z = dCpts[i].z + (dCpts[i + 1].z - dCpts[i].z) * t;\n }\n }\n dCpts.splice(dCpts.length - 1, 1);\n }\n dCpts[0].t = t;\n return dCpts[0];\n },\n\n computeWithRatios: function (t, points, ratios, _3d) {\n const mt = 1 - t,\n r = ratios,\n p = points;\n\n let f1 = r[0],\n f2 = r[1],\n f3 = r[2],\n f4 = r[3],\n d;\n\n // spec for linear\n f1 *= mt;\n f2 *= t;\n\n if (p.length === 2) {\n d = f1 + f2;\n return {\n x: (f1 * p[0].x + f2 * p[1].x) / d,\n y: (f1 * p[0].y + f2 * p[1].y) / d,\n z: !_3d ? false : (f1 * p[0].z + f2 * p[1].z) / d,\n t: t,\n };\n }\n\n // upgrade to quadratic\n f1 *= mt;\n f2 *= 2 * mt;\n f3 *= t * t;\n\n if (p.length === 3) {\n d = f1 + f2 + f3;\n return {\n x: (f1 * p[0].x + f2 * p[1].x + f3 * p[2].x) / d,\n y: (f1 * p[0].y + f2 * p[1].y + f3 * p[2].y) / d,\n z: !_3d ? false : (f1 * p[0].z + f2 * p[1].z + f3 * p[2].z) / d,\n t: t,\n };\n }\n\n // upgrade to cubic\n f1 *= mt;\n f2 *= 1.5 * mt;\n f3 *= 3 * mt;\n f4 *= t * t * t;\n\n if (p.length === 4) {\n d = f1 + f2 + f3 + f4;\n return {\n x: (f1 * p[0].x + f2 * p[1].x + f3 * p[2].x + f4 * p[3].x) / d,\n y: (f1 * p[0].y + f2 * p[1].y + f3 * p[2].y + f4 * p[3].y) / d,\n z: !_3d\n ? false\n : (f1 * p[0].z + f2 * p[1].z + f3 * p[2].z + f4 * p[3].z) / d,\n t: t,\n };\n }\n },\n\n derive: function (points, _3d) {\n const dpoints = [];\n for (let p = points, d = p.length, c = d - 1; d > 1; d--, c--) {\n const list = [];\n for (let j = 0, dpt; j < c; j++) {\n dpt = {\n x: c * (p[j + 1].x - p[j].x),\n y: c * (p[j + 1].y - p[j].y),\n };\n if (_3d) {\n dpt.z = c * (p[j + 1].z - p[j].z);\n }\n list.push(dpt);\n }\n dpoints.push(list);\n p = list;\n }\n return dpoints;\n },\n\n between: function (v, m, M) {\n return (\n (m <= v && v <= M) ||\n utils.approximately(v, m) ||\n utils.approximately(v, M)\n );\n },\n\n approximately: function (a, b, precision) {\n return abs(a - b) <= (precision || epsilon);\n },\n\n length: function (derivativeFn) {\n const z = 0.5,\n len = utils.Tvalues.length;\n\n let sum = 0;\n\n for (let i = 0, t; i < len; i++) {\n t = z * utils.Tvalues[i] + z;\n sum += utils.Cvalues[i] * utils.arcfn(t, derivativeFn);\n }\n return z * sum;\n },\n\n map: function (v, ds, de, ts, te) {\n const d1 = de - ds,\n d2 = te - ts,\n v2 = v - ds,\n r = v2 / d1;\n return ts + d2 * r;\n },\n\n lerp: function (r, v1, v2) {\n const ret = {\n x: v1.x + r * (v2.x - v1.x),\n y: v1.y + r * (v2.y - v1.y),\n };\n if (v1.z !== undefined && v2.z !== undefined) {\n ret.z = v1.z + r * (v2.z - v1.z);\n }\n return ret;\n },\n\n pointToString: function (p) {\n let s = p.x + \"/\" + p.y;\n if (typeof p.z !== \"undefined\") {\n s += \"/\" + p.z;\n }\n return s;\n },\n\n pointsToString: function (points) {\n return \"[\" + points.map(utils.pointToString).join(\", \") + \"]\";\n },\n\n copy: function (obj) {\n return JSON.parse(JSON.stringify(obj));\n },\n\n angle: function (o, v1, v2) {\n const dx1 = v1.x - o.x,\n dy1 = v1.y - o.y,\n dx2 = v2.x - o.x,\n dy2 = v2.y - o.y,\n cross = dx1 * dy2 - dy1 * dx2,\n dot = dx1 * dx2 + dy1 * dy2;\n return atan2(cross, dot);\n },\n\n // round as string, to avoid rounding errors\n round: function (v, d) {\n const s = \"\" + v;\n const pos = s.indexOf(\".\");\n return parseFloat(s.substring(0, pos + 1 + d));\n },\n\n dist: function (p1, p2) {\n const dx = p1.x - p2.x,\n dy = p1.y - p2.y;\n return sqrt(dx * dx + dy * dy);\n },\n\n closest: function (LUT, point) {\n let mdist = pow(2, 63),\n mpos,\n d;\n LUT.forEach(function (p, idx) {\n d = utils.dist(point, p);\n if (d < mdist) {\n mdist = d;\n mpos = idx;\n }\n });\n return { mdist: mdist, mpos: mpos };\n },\n\n abcratio: function (t, n) {\n // see ratio(t) note on http://pomax.github.io/bezierinfo/#abc\n if (n !== 2 && n !== 3) {\n return false;\n }\n if (typeof t === \"undefined\") {\n t = 0.5;\n } else if (t === 0 || t === 1) {\n return t;\n }\n const bottom = pow(t, n) + pow(1 - t, n),\n top = bottom - 1;\n return abs(top / bottom);\n },\n\n projectionratio: function (t, n) {\n // see u(t) note on http://pomax.github.io/bezierinfo/#abc\n if (n !== 2 && n !== 3) {\n return false;\n }\n if (typeof t === \"undefined\") {\n t = 0.5;\n } else if (t === 0 || t === 1) {\n return t;\n }\n const top = pow(1 - t, n),\n bottom = pow(t, n) + top;\n return top / bottom;\n },\n\n lli8: function (x1, y1, x2, y2, x3, y3, x4, y4) {\n const nx =\n (x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4),\n ny = (x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4),\n d = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);\n if (d == 0) {\n return false;\n }\n return { x: nx / d, y: ny / d };\n },\n\n lli4: function (p1, p2, p3, p4) {\n const x1 = p1.x,\n y1 = p1.y,\n x2 = p2.x,\n y2 = p2.y,\n x3 = p3.x,\n y3 = p3.y,\n x4 = p4.x,\n y4 = p4.y;\n return utils.lli8(x1, y1, x2, y2, x3, y3, x4, y4);\n },\n\n lli: function (v1, v2) {\n return utils.lli4(v1, v1.c, v2, v2.c);\n },\n\n makeline: function (p1, p2) {\n return new Bezier(\n p1.x,\n p1.y,\n (p1.x + p2.x) / 2,\n (p1.y + p2.y) / 2,\n p2.x,\n p2.y\n );\n },\n\n findbbox: function (sections) {\n let mx = nMax,\n my = nMax,\n MX = nMin,\n MY = nMin;\n sections.forEach(function (s) {\n const bbox = s.bbox();\n if (mx > bbox.x.min) mx = bbox.x.min;\n if (my > bbox.y.min) my = bbox.y.min;\n if (MX < bbox.x.max) MX = bbox.x.max;\n if (MY < bbox.y.max) MY = bbox.y.max;\n });\n return {\n x: { min: mx, mid: (mx + MX) / 2, max: MX, size: MX - mx },\n y: { min: my, mid: (my + MY) / 2, max: MY, size: MY - my },\n };\n },\n\n shapeintersections: function (\n s1,\n bbox1,\n s2,\n bbox2,\n curveIntersectionThreshold\n ) {\n if (!utils.bboxoverlap(bbox1, bbox2)) return [];\n const intersections = [];\n const a1 = [s1.startcap, s1.forward, s1.back, s1.endcap];\n const a2 = [s2.startcap, s2.forward, s2.back, s2.endcap];\n a1.forEach(function (l1) {\n if (l1.virtual) return;\n a2.forEach(function (l2) {\n if (l2.virtual) return;\n const iss = l1.intersects(l2, curveIntersectionThreshold);\n if (iss.length > 0) {\n iss.c1 = l1;\n iss.c2 = l2;\n iss.s1 = s1;\n iss.s2 = s2;\n intersections.push(iss);\n }\n });\n });\n return intersections;\n },\n\n makeshape: function (forward, back, curveIntersectionThreshold) {\n const bpl = back.points.length;\n const fpl = forward.points.length;\n const start = utils.makeline(back.points[bpl - 1], forward.points[0]);\n const end = utils.makeline(forward.points[fpl - 1], back.points[0]);\n const shape = {\n startcap: start,\n forward: forward,\n back: back,\n endcap: end,\n bbox: utils.findbbox([start, forward, back, end]),\n };\n shape.intersections = function (s2) {\n return utils.shapeintersections(\n shape,\n shape.bbox,\n s2,\n s2.bbox,\n curveIntersectionThreshold\n );\n };\n return shape;\n },\n\n getminmax: function (curve, d, list) {\n if (!list) return { min: 0, max: 0 };\n let min = nMax,\n max = nMin,\n t,\n c;\n if (list.indexOf(0) === -1) {\n list = [0].concat(list);\n }\n if (list.indexOf(1) === -1) {\n list.push(1);\n }\n for (let i = 0, len = list.length; i < len; i++) {\n t = list[i];\n c = curve.get(t);\n if (c[d] < min) {\n min = c[d];\n }\n if (c[d] > max) {\n max = c[d];\n }\n }\n return { min: min, mid: (min + max) / 2, max: max, size: max - min };\n },\n\n align: function (points, line) {\n const tx = line.p1.x,\n ty = line.p1.y,\n a = -atan2(line.p2.y - ty, line.p2.x - tx),\n d = function (v) {\n return {\n x: (v.x - tx) * cos(a) - (v.y - ty) * sin(a),\n y: (v.x - tx) * sin(a) + (v.y - ty) * cos(a),\n };\n };\n return points.map(d);\n },\n\n roots: function (points, line) {\n line = line || { p1: { x: 0, y: 0 }, p2: { x: 1, y: 0 } };\n\n const order = points.length - 1;\n const aligned = utils.align(points, line);\n const reduce = function (t) {\n return 0 <= t && t <= 1;\n };\n\n if (order === 2) {\n const a = aligned[0].y,\n b = aligned[1].y,\n c = aligned[2].y,\n d = a - 2 * b + c;\n if (d !== 0) {\n const m1 = -sqrt(b * b - a * c),\n m2 = -a + b,\n v1 = -(m1 + m2) / d,\n v2 = -(-m1 + m2) / d;\n return [v1, v2].filter(reduce);\n } else if (b !== c && d === 0) {\n return [(2 * b - c) / (2 * b - 2 * c)].filter(reduce);\n }\n return [];\n }\n\n // see http://www.trans4mind.com/personal_development/mathematics/polynomials/cubicAlgebra.htm\n const pa = aligned[0].y,\n pb = aligned[1].y,\n pc = aligned[2].y,\n pd = aligned[3].y;\n\n let d = -pa + 3 * pb - 3 * pc + pd,\n a = 3 * pa - 6 * pb + 3 * pc,\n b = -3 * pa + 3 * pb,\n c = pa;\n\n if (utils.approximately(d, 0)) {\n // this is not a cubic curve.\n if (utils.approximately(a, 0)) {\n // in fact, this is not a quadratic curve either.\n if (utils.approximately(b, 0)) {\n // in fact in fact, there are no solutions.\n return [];\n }\n // linear solution:\n return [-c / b].filter(reduce);\n }\n // quadratic solution:\n const q = sqrt(b * b - 4 * a * c),\n a2 = 2 * a;\n return [(q - b) / a2, (-b - q) / a2].filter(reduce);\n }\n\n // at this point, we know we need a cubic solution:\n\n a /= d;\n b /= d;\n c /= d;\n\n const p = (3 * b - a * a) / 3,\n p3 = p / 3,\n q = (2 * a * a * a - 9 * a * b + 27 * c) / 27,\n q2 = q / 2,\n discriminant = q2 * q2 + p3 * p3 * p3;\n\n let u1, v1, x1, x2, x3;\n if (discriminant < 0) {\n const mp3 = -p / 3,\n mp33 = mp3 * mp3 * mp3,\n r = sqrt(mp33),\n t = -q / (2 * r),\n cosphi = t < -1 ? -1 : t > 1 ? 1 : t,\n phi = acos(cosphi),\n crtr = crt(r),\n t1 = 2 * crtr;\n x1 = t1 * cos(phi / 3) - a / 3;\n x2 = t1 * cos((phi + tau) / 3) - a / 3;\n x3 = t1 * cos((phi + 2 * tau) / 3) - a / 3;\n return [x1, x2, x3].filter(reduce);\n } else if (discriminant === 0) {\n u1 = q2 < 0 ? crt(-q2) : -crt(q2);\n x1 = 2 * u1 - a / 3;\n x2 = -u1 - a / 3;\n return [x1, x2].filter(reduce);\n } else {\n const sd = sqrt(discriminant);\n u1 = crt(-q2 + sd);\n v1 = crt(q2 + sd);\n return [u1 - v1 - a / 3].filter(reduce);\n }\n },\n\n droots: function (p) {\n // quadratic roots are easy\n if (p.length === 3) {\n const a = p[0],\n b = p[1],\n c = p[2],\n d = a - 2 * b + c;\n if (d !== 0) {\n const m1 = -sqrt(b * b - a * c),\n m2 = -a + b,\n v1 = -(m1 + m2) / d,\n v2 = -(-m1 + m2) / d;\n return [v1, v2];\n } else if (b !== c && d === 0) {\n return [(2 * b - c) / (2 * (b - c))];\n }\n return [];\n }\n\n // linear roots are even easier\n if (p.length === 2) {\n const a = p[0],\n b = p[1];\n if (a !== b) {\n return [a / (a - b)];\n }\n return [];\n }\n\n return [];\n },\n\n curvature: function (t, d1, d2, _3d, kOnly) {\n let num,\n dnm,\n adk,\n dk,\n k = 0,\n r = 0;\n\n //\n // We're using the following formula for curvature:\n //\n // x'y\" - y'x\"\n // k(t) = ------------------\n // (x'² + y'²)^(3/2)\n //\n // from https://en.wikipedia.org/wiki/Radius_of_curvature#Definition\n //\n // With it corresponding 3D counterpart:\n //\n // sqrt( (y'z\" - y\"z')² + (z'x\" - z\"x')² + (x'y\" - x\"y')²)\n // k(t) = -------------------------------------------------------\n // (x'² + y'² + z'²)^(3/2)\n //\n\n const d = utils.compute(t, d1);\n const dd = utils.compute(t, d2);\n const qdsum = d.x * d.x + d.y * d.y;\n\n if (_3d) {\n num = sqrt(\n pow(d.y * dd.z - dd.y * d.z, 2) +\n pow(d.z * dd.x - dd.z * d.x, 2) +\n pow(d.x * dd.y - dd.x * d.y, 2)\n );\n dnm = pow(qdsum + d.z * d.z, 3 / 2);\n } else {\n num = d.x * dd.y - d.y * dd.x;\n dnm = pow(qdsum, 3 / 2);\n }\n\n if (num === 0 || dnm === 0) {\n return { k: 0, r: 0 };\n }\n\n k = num / dnm;\n r = dnm / num;\n\n // We're also computing the derivative of kappa, because\n // there is value in knowing the rate of change for the\n // curvature along the curve. And we're just going to\n // ballpark it based on an epsilon.\n if (!kOnly) {\n // compute k'(t) based on the interval before, and after it,\n // to at least try to not introduce forward/backward pass bias.\n const pk = utils.curvature(t - 0.001, d1, d2, _3d, true).k;\n const nk = utils.curvature(t + 0.001, d1, d2, _3d, true).k;\n dk = (nk - k + (k - pk)) / 2;\n adk = (abs(nk - k) + abs(k - pk)) / 2;\n }\n\n return { k: k, r: r, dk: dk, adk: adk };\n },\n\n inflections: function (points) {\n if (points.length < 4) return [];\n\n // FIXME: TODO: add in inflection abstraction for quartic+ curves?\n\n const p = utils.align(points, { p1: points[0], p2: points.slice(-1)[0] }),\n a = p[2].x * p[1].y,\n b = p[3].x * p[1].y,\n c = p[1].x * p[2].y,\n d = p[3].x * p[2].y,\n v1 = 18 * (-3 * a + 2 * b + 3 * c - d),\n v2 = 18 * (3 * a - b - 3 * c),\n v3 = 18 * (c - a);\n\n if (utils.approximately(v1, 0)) {\n if (!utils.approximately(v2, 0)) {\n let t = -v3 / v2;\n if (0 <= t && t <= 1) return [t];\n }\n return [];\n }\n\n const d2 = 2 * v1;\n\n if (utils.approximately(d2, 0)) return [];\n\n const trm = v2 * v2 - 4 * v1 * v3;\n\n if (trm < 0) return [];\n\n const sq = Math.sqrt(trm);\n\n return [(sq - v2) / d2, -(v2 + sq) / d2].filter(function (r) {\n return 0 <= r && r <= 1;\n });\n },\n\n bboxoverlap: function (b1, b2) {\n const dims = [\"x\", \"y\"],\n len = dims.length;\n\n for (let i = 0, dim, l, t, d; i < len; i++) {\n dim = dims[i];\n l = b1[dim].mid;\n t = b2[dim].mid;\n d = (b1[dim].size + b2[dim].size) / 2;\n if (abs(l - t) >= d) return false;\n }\n return true;\n },\n\n expandbox: function (bbox, _bbox) {\n if (_bbox.x.min < bbox.x.min) {\n bbox.x.min = _bbox.x.min;\n }\n if (_bbox.y.min < bbox.y.min) {\n bbox.y.min = _bbox.y.min;\n }\n if (_bbox.z && _bbox.z.min < bbox.z.min) {\n bbox.z.min = _bbox.z.min;\n }\n if (_bbox.x.max > bbox.x.max) {\n bbox.x.max = _bbox.x.max;\n }\n if (_bbox.y.max > bbox.y.max) {\n bbox.y.max = _bbox.y.max;\n }\n if (_bbox.z && _bbox.z.max > bbox.z.max) {\n bbox.z.max = _bbox.z.max;\n }\n bbox.x.mid = (bbox.x.min + bbox.x.max) / 2;\n bbox.y.mid = (bbox.y.min + bbox.y.max) / 2;\n if (bbox.z) {\n bbox.z.mid = (bbox.z.min + bbox.z.max) / 2;\n }\n bbox.x.size = bbox.x.max - bbox.x.min;\n bbox.y.size = bbox.y.max - bbox.y.min;\n if (bbox.z) {\n bbox.z.size = bbox.z.max - bbox.z.min;\n }\n },\n\n pairiteration: function (c1, c2, curveIntersectionThreshold) {\n const c1b = c1.bbox(),\n c2b = c2.bbox(),\n r = 100000,\n threshold = curveIntersectionThreshold || 0.5;\n\n if (\n c1b.x.size + c1b.y.size < threshold &&\n c2b.x.size + c2b.y.size < threshold\n ) {\n return [\n (((r * (c1._t1 + c1._t2)) / 2) | 0) / r +\n \"/\" +\n (((r * (c2._t1 + c2._t2)) / 2) | 0) / r,\n ];\n }\n\n let cc1 = c1.split(0.5),\n cc2 = c2.split(0.5),\n pairs = [\n { left: cc1.left, right: cc2.left },\n { left: cc1.left, right: cc2.right },\n { left: cc1.right, right: cc2.right },\n { left: cc1.right, right: cc2.left },\n ];\n\n pairs = pairs.filter(function (pair) {\n return utils.bboxoverlap(pair.left.bbox(), pair.right.bbox());\n });\n\n let results = [];\n\n if (pairs.length === 0) return results;\n\n pairs.forEach(function (pair) {\n results = results.concat(\n utils.pairiteration(pair.left, pair.right, threshold)\n );\n });\n\n results = results.filter(function (v, i) {\n return results.indexOf(v) === i;\n });\n\n return results;\n },\n\n getccenter: function (p1, p2, p3) {\n const dx1 = p2.x - p1.x,\n dy1 = p2.y - p1.y,\n dx2 = p3.x - p2.x,\n dy2 = p3.y - p2.y,\n dx1p = dx1 * cos(quart) - dy1 * sin(quart),\n dy1p = dx1 * sin(quart) + dy1 * cos(quart),\n dx2p = dx2 * cos(quart) - dy2 * sin(quart),\n dy2p = dx2 * sin(quart) + dy2 * cos(quart),\n // chord midpoints\n mx1 = (p1.x + p2.x) / 2,\n my1 = (p1.y + p2.y) / 2,\n mx2 = (p2.x + p3.x) / 2,\n my2 = (p2.y + p3.y) / 2,\n // midpoint offsets\n mx1n = mx1 + dx1p,\n my1n = my1 + dy1p,\n mx2n = mx2 + dx2p,\n my2n = my2 + dy2p,\n // intersection of these lines:\n arc = utils.lli8(mx1, my1, mx1n, my1n, mx2, my2, mx2n, my2n),\n r = utils.dist(arc, p1);\n\n // arc start/end values, over mid point:\n let s = atan2(p1.y - arc.y, p1.x - arc.x),\n m = atan2(p2.y - arc.y, p2.x - arc.x),\n e = atan2(p3.y - arc.y, p3.x - arc.x),\n _;\n\n // determine arc direction (cw/ccw correction)\n if (s < e) {\n // if s<m<e, arc(s, e)\n // if m<s<e, arc(e, s + tau)\n // if s<e<m, arc(e, s + tau)\n if (s > m || m > e) {\n s += tau;\n }\n if (s > e) {\n _ = e;\n e = s;\n s = _;\n }\n } else {\n // if e<m<s, arc(e, s)\n // if m<e<s, arc(s, e + tau)\n // if e<s<m, arc(s, e + tau)\n if (e < m && m < s) {\n _ = e;\n e = s;\n s = _;\n } else {\n e += tau;\n }\n }\n // assign and done.\n arc.s = s;\n arc.e = e;\n arc.r = r;\n return arc;\n },\n\n numberSort: function (a, b) {\n return a - b;\n },\n};\n\nexport { utils };\n","import { utils } from \"./utils.js\";\n\n/**\n * Poly Bezier\n * @param {[type]} curves [description]\n */\nclass PolyBezier {\n constructor(curves) {\n this.curves = [];\n this._3d = false;\n if (!!curves) {\n this.curves = curves;\n this._3d = this.curves[0]._3d;\n }\n }\n\n valueOf() {\n return this.toString();\n }\n\n toString() {\n return (\n \"[\" +\n this.curves\n .map(function (curve) {\n return utils.pointsToString(curve.points);\n })\n .join(\", \") +\n \"]\"\n );\n }\n\n addCurve(curve) {\n this.curves.push(curve);\n this._3d = this._3d || curve._3d;\n }\n\n length() {\n return this.curves\n .map(function (v) {\n return v.length();\n })\n .reduce(function (a, b) {\n return a + b;\n });\n }\n\n curve(idx) {\n return this.curves[idx];\n }\n\n bbox() {\n const c = this.curves;\n var bbox = c[0].bbox();\n for (var i = 1; i < c.length; i++) {\n utils.expandbox(bbox, c[i].bbox());\n }\n return bbox;\n }\n\n offset(d) {\n const offset = [];\n this.curves.forEach(function (v) {\n offset.push(...v.offset(d));\n });\n return new PolyBezier(offset);\n }\n}\n\nexport { PolyBezier };\n","/**\n A javascript Bezier curve library by Pomax.\n\n Based on http://pomax.github.io/bezierinfo\n\n This code is MIT licensed.\n**/\n\nimport { utils } from \"./utils.js\";\nimport { PolyBezier } from \"./poly-bezier.js\";\n\n// math-inlining.\nconst { abs, min, max, cos, sin, acos, sqrt } = Math;\nconst pi = Math.PI;\n// a zero coordinate, which is surprisingly useful\nconst ZERO = { x: 0, y: 0, z: 0 };\n\n/**\n * Bezier curve constructor.\n *\n * ...docs pending...\n */\nclass Bezier {\n constructor(coords) {\n let args =\n coords && coords.forEach ? coords : Array.from(arguments).slice();\n let coordlen = false;\n\n if (typeof args[0] === \"object\") {\n coordlen = args.length;\n const newargs = [];\n args.forEach(function (point) {\n [\"x\", \"y\", \"z\"].forEach(function (d) {\n if (typeof point[d] !== \"undefined\") {\n newargs.push(point[d]);\n }\n });\n });\n args = newargs;\n }\n\n let higher = false;\n const len = args.length;\n\n if (coordlen) {\n if (coordlen > 4) {\n if (arguments.length !== 1) {\n throw new Error(\n \"Only new Bezier(point[]) is accepted for 4th and higher order curves\"\n );\n }\n higher = true;\n }\n } else {\n if (len !== 6 && len !== 8 && len !== 9 && len !== 12) {\n if (arguments.length !== 1) {\n throw new Error(\n \"Only new Bezier(point[]) is accepted for 4th and higher order curves\"\n );\n }\n }\n }\n\n const _3d = (this._3d =\n (!higher && (len === 9 || len === 12)) ||\n (coords && coords[0] && typeof coords[0].z !== \"undefined\"));\n\n const points = (this.points = []);\n for (let idx = 0, step = _3d ? 3 : 2; idx < len; idx += step) {\n var point = {\n x: args[idx],\n y: args[idx + 1],\n };\n if (_3d) {\n point.z = args[idx + 2];\n }\n points.push(point);\n }\n const order = (this.order = points.length - 1);\n\n const dims = (this.dims = [\"x\", \"y\"]);\n if (_3d) dims.push(\"z\");\n this.dimlen = dims.length;\n\n // is this curve, practically speaking, a straight line?\n const aligned = utils.align(points, { p1: points[0], p2: points[order] });\n const baselength = utils.dist(points[0], points[order]);\n this._linear = aligned.reduce((t, p) => t + abs(p.y), 0) < baselength / 50;\n\n this._lut = [];\n this._t1 = 0;\n this._t2 = 1;\n this.update();\n }\n\n static quadraticFromPoints(p1, p2, p3, t) {\n if (typeof t === \"undefined\") {\n t = 0.5;\n }\n // shortcuts, although they're really dumb\n if (t === 0) {\n return new Bezier(p2, p2, p3);\n }\n if (t === 1) {\n return new Bezier(p1, p2, p2);\n }\n // real fitting.\n const abc = Bezier.getABC(2, p1, p2, p3, t);\n return new Bezier(p1, abc.A, p3);\n }\n\n static cubicFromPoints(S, B, E, t, d1) {\n if (typeof t === \"undefined\") {\n t = 0.5;\n }\n const abc = Bezier.getABC(3, S, B, E, t);\n if (typeof d1 === \"undefined\") {\n d1 = utils.dist(B, abc.C);\n }\n const d2 = (d1 * (1 - t)) / t;\n\n const selen = utils.dist(S, E),\n lx = (E.x - S.x) / selen,\n ly = (E.y - S.y) / selen,\n bx1 = d1 * lx,\n by1 = d1 * ly,\n bx2 = d2 * lx,\n by2 = d2 * ly;\n // derivation of new hull coordinates\n const e1 = { x: B.x - bx1, y: B.y - by1 },\n e2 = { x: B.x + bx2, y: B.y + by2 },\n A = abc.A,\n v1 = { x: A.x + (e1.x - A.x) / (1 - t), y: A.y + (e1.y - A.y) / (1 - t) },\n v2 = { x: A.x + (e2.x - A.x) / t, y: A.y + (e2.y - A.y) / t },\n nc1 = { x: S.x + (v1.x - S.x) / t, y: S.y + (v1.y - S.y) / t },\n nc2 = {\n x: E.x + (v2.x - E.x) / (1 - t),\n y: E.y + (v2.y - E.y) / (1 - t),\n };\n // ...done\n return new Bezier(S, nc1, nc2, E);\n }\n\n static getUtils() {\n return utils;\n }\n\n getUtils() {\n return Bezier.getUtils();\n }\n\n static get PolyBezier() {\n return PolyBezier;\n }\n\n valueOf() {\n return this.toString();\n }\n\n toString() {\n return utils.pointsToString(this.points);\n }\n\n toSVG() {\n if (this._3d) return false;\n const p = this.points,\n x = p[0].x,\n y = p[0].y,\n s = [\"M\", x, y, this.order === 2 ? \"Q\" : \"C\"];\n for (let i = 1, last = p.length; i < last; i++) {\n s.push(p[i].x);\n s.push(p[i].y);\n }\n return s.join(\" \");\n }\n\n setRatios(ratios) {\n if (ratios.length !== this.points.length) {\n throw new Error(\"incorrect number of ratio values\");\n }\n this.ratios = ratios;\n this._lut = []; // invalidate any precomputed LUT\n }\n\n verify() {\n const print = this.coordDigest();\n if (print !== this._print) {\n this._print = print;\n this.update();\n }\n }\n\n coordDigest() {\n return this.points\n .map(function (c, pos) {\n return \"\" + pos + c.x + c.y + (c.z ? c.z : 0);\n })\n .join(\"\");\n }\n\n update() {\n // invalidate any precomputed LUT\n this._lut = [];\n this.dpoints = utils.derive(this.points, this._3d);\n this.computedirection();\n }\n\n computedirection() {\n const points = this.points;\n const angle = utils.angle(points[0], points[this.order], points[1]);\n this.clockwise = angle > 0;\n }\n\n length() {\n return utils.length(this.derivative.bind(this));\n }\n\n static getABC(order = 2, S, B, E, t = 0.5) {\n const u = utils.projectionratio(t, order),\n um = 1 - u,\n C = {\n x: u * S.x + um * E.x,\n y: u * S.y + um * E.y,\n },\n s = utils.abcratio(t, order),\n A = {\n x: B.x + (B.x - C.x) / s,\n y: B.y + (B.y - C.y) / s,\n };\n return { A, B, C, S, E };\n }\n\n getABC(t, B) {\n B = B || this.get(t);\n let S = this.points[0];\n let E = this.points[this.order];\n return Bezier.getABC(this.order, S, B, E, t);\n }\n\n getLUT(steps) {\n this.verify();\n steps = steps || 100;\n if (this._lut.length === steps + 1) {\n return this._lut;\n }\n this._lut = [];\n // n steps means n+1 points\n steps++;\n this._lut = [];\n for (let i = 0, p, t; i < steps; i++) {\n t = i / (steps - 1);\n p = this.compute(t);\n p.t = t;\n this._lut.push(p);\n }\n return this._lut;\n }\n\n on(point, error) {\n error = error || 5;\n const lut = this.getLUT(),\n hits = [];\n for (let i = 0, c, t = 0; i < lut.length; i++) {\n c = lut[i];\n if (utils.dist(c, point) < error) {\n hits.push(c);\n t += i / lut.length;\n }\n }\n if (!hits.length) return false;\n return (t /= hits.length);\n }\n\n project(point) {\n // step 1: coarse check\n const LUT = this.getLUT(),\n l = LUT.length - 1,\n closest = utils.closest(LUT, point),\n mpos = closest.mpos,\n t1 = (mpos - 1) / l,\n t2 = (mpos + 1) / l,\n step = 0.1 / l;\n\n // step 2: fine check\n let mdist = closest.mdist,\n t = t1,\n ft = t,\n p;\n mdist += 1;\n for (let d; t < t2 + step; t += step) {\n p = this.compute(t);\n d = utils.dist(point, p);\n if (d < mdist) {\n mdist = d;\n ft = t;\n }\n }\n ft = ft < 0 ? 0 : ft > 1 ? 1 : ft;\n p = this.compute(ft);\n p.t = ft;\n p.d = mdist;\n return p;\n }\n\n get(t) {\n return this.compute(t);\n }\n\n point(idx) {\n return this.points[idx];\n }\n\n compute(t) {\n if (this.ratios) {\n return utils.computeWithRatios(t, this.points, this.ratios, this._3d);\n }\n return utils.compute(t, this.points, this._3d, this.ratios);\n }\n\n raise() {\n const p = this.points,\n np = [p[0]],\n k = p.length;\n for (let i = 1, pi, pim; i < k; i++) {\n pi = p[i];\n pim = p[i - 1];\n np[i] = {\n x: ((k - i) / k) * pi.x + (i / k) * pim.x,\n y: ((k - i) / k) * pi.y + (i / k) * pim.y,\n };\n }\n np[k] = p[k - 1];\n return new Bezier(np);\n }\n\n derivative(t) {\n return utils.compute(t, this.dpoints[0], this._3d);\n }\n\n dderivative(t) {\n return utils.compute(t, this.dpoints[1], this._3d);\n }\n\n align() {\n let p = this.points;\n return new Bezier(utils.align(p, { p1: p[0], p2: p[p.length - 1] }));\n }\n\n curvature(t) {\n return utils.curvature(t, this.dpoints[0], this.dpoints[1], this._3d);\n }\n\n inflections() {\n return utils.inflections(this.points);\n }\n\n normal(t) {\n return this._3d ? this.__normal3(t) : this.__normal2(t);\n }\n\n __normal2(t) {\n const d = this.derivative(t);\n const q = sqrt(d.x * d.x + d.y * d.y);\n return { t, x: -d.y / q, y: d.x / q };\n }\n\n __normal3(t) {\n // see http://stackoverflow.com/questions/25453159\n const r1 = this.derivative(t),\n r2 = this.derivative(t + 0.01),\n q1 = sqrt(r1.x * r1.x + r1.y * r1.y + r1.z * r1.z),\n q2 = sqrt(r2.x * r2.x + r2.y * r2.y + r2.z * r2.z);\n r1.x /= q1;\n r1.y /= q1;\n r1.z /= q1;\n r2.x /= q2;\n r2.y /= q2;\n r2.z /= q2;\n // cross product\n const c = {\n x: r2.y * r1.z - r2.z * r1.y,\n y: r2.z * r1.x - r2.x * r1.z,\n z: r2.x * r1.y - r2.y * r1.x,\n };\n const m = sqrt(c.x * c.x + c.y * c.y + c.z * c.z);\n c.x /= m;\n c.y /= m;\n c.z /= m;\n // rotation matrix\n const R = [\n c.x * c.x,\n c.x * c.y - c.z,\n c.x * c.z + c.y,\n c.x * c.y + c.z,\n c.y * c.y,\n c.y * c.z - c.x,\n c.x * c.z - c.y,\n c.y * c.z + c.x,\n c.z * c.z,\n ];\n // normal vector:\n const n = {\n t,\n x: R[0] * r1.x + R[1] * r1.y + R[2] * r1.z,\n y: R[3] * r1.x + R[4] * r1.y + R[5] * r1.z,\n z: R[6] * r1.x + R[7] * r1.y + R[8] * r1.z,\n };\n return n;\n }\n\n hull(t) {\n let p = this.points,\n _p = [],\n q = [],\n idx = 0;\n q[idx++] = p[0];\n q[idx++] = p[1];\n q[idx++] = p[2];\n if (this.order === 3) {\n q[idx++] = p[3];\n }\n // we lerp between all points at each iteration, until we have 1 point left.\n while (p.length > 1) {\n _p = [];\n for (let i = 0, pt, l = p.length - 1; i < l; i++) {\n pt = utils.lerp(t, p[i], p[i + 1]);\n q[idx++] = pt;\n _p.push(pt);\n }\n p = _p;\n }\n return q;\n }\n\n split(t1, t2) {\n // shortcuts\n if (t1 === 0 && !!t2) {\n return this.split(t2).left;\n }\n if (t2 === 1) {\n return this.split(t1).right;\n }\n\n // no shortcut: use \"de Casteljau\" iteration.\n const q = this.hull(t1);\n const result = {\n left:\n this.order === 2\n ? new Bezier([q[0], q[3], q[5]])\n : new Bezier([q[0], q[4], q[7], q[9]]),\n right:\n this.order === 2\n ? new Bezier([q[5], q[4], q[2]])\n : new Bezier([q[9], q[8], q[6], q[3]]),\n span: q,\n };\n\n // make sure we bind _t1/_t2 information!\n result.left._t1 = utils.map(0, 0, 1, this._t1, this._t2);\n result.left._t2 = utils.map(t1, 0, 1, this._t1, this._t2);\n result.right._t1 = utils.map(t1, 0, 1, this._t1, this._t2);\n result.right._t2 = utils.map(1, 0, 1, this._t1, this._t2);\n\n // if we have no t2, we're done\n if (!t2) {\n return result;\n }\n\n // if we have a t2, split again:\n t2 = utils.map(t2, t1, 1, 0, 1);\n return result.right.split(t2).left;\n }\n\n extrema() {\n const result = {};\n let roots = [];\n\n this.dims.forEach(\n function (dim) {\n let mfn = function (v) {\n return v[dim];\n };\n let p = this.dpoints[0].map(mfn);\n result[dim] = utils.droots(p);\n if (this.order === 3) {\n p = this.dpoints[1].map(mfn);\n result[dim] = result[dim].concat(utils.droots(p));\n }\n result[dim] = result[dim].filter(function (t) {\n return t >= 0 && t <= 1;\n });\n roots = roots.concat(result[dim].sort(utils.numberSort));\n }.bind(this)\n );\n\n result.values = roots.sort(utils.numberSort).filter(function (v, idx) {\n return roots.indexOf(v) === idx;\n });\n\n return result;\n }\n\n bbox() {\n const extrema = this.extrema(),\n result = {};\n this.dims.forEach(\n function (d) {\n result[d] = utils.getminmax(this, d, extrema[d]);\n }.bind(this)\n );\n return result;\n }\n\n overlaps(curve) {\n const lbbox = this.bbox(),\n tbbox = curve.bbox();\n return utils.bboxoverlap(lbbox, tbbox);\n }\n\n offset(t, d) {\n if (typeof d !== \"undefined\") {\n const c = this.get(t),\n n = this.normal(t);\n const ret = {\n c: c,\n n: n,\n x: c.x + n.x * d,\n y: c.y + n.y * d,\n };\n if (this._3d) {\n ret.z = c.z + n.z * d;\n }\n return ret;\n }\n if (this._linear) {\n const nv = this.normal(0),\n coords = this.points.map(function (p) {\n const ret = {\n x: p.x + t * nv.x,\n y: p.y + t * nv.y,\n };\n if (p.z && nv.z) {\n ret.z = p.z + t * nv.z;\n }\n return ret;\n });\n return [new Bezier(coords)];\n }\n return this.reduce().map(function (s) {\n if (s._linear) {\n return s.offset(t)[0];\n }\n return s.scale(t);\n });\n }\n\n simple() {\n if (this.order === 3) {\n const a1 = utils.angle(this.points[0], this.points[3], this.points[1]);\n const a2 = utils.angle(this.points[0], this.points[3], this.points[2]);\n if ((a1 > 0 && a2 < 0) || (a1 < 0 && a2 > 0)) return false;\n }\n const n1 = this.normal(0);\n const n2 = this.normal(1);\n let s = n1.x * n2.x + n1.y * n2.y;\n if (this._3d) {\n s += n1.z * n2.z;\n }\n return abs(acos(s)) < pi / 3;\n }\n\n reduce() {\n // TODO: examine these var types in more detail...\n let i,\n t1 = 0,\n t2 = 0,\n step = 0.01,\n segment,\n pass1 = [],\n pass2 = [];\n // first pass: split on extrema\n let extrema = this.extrema().values;\n if (extrema.indexOf(0) === -1) {\n extrema = [0].concat(extrema);\n }\n if (extrema.indexOf(1) === -1) {\n extrema.push(1);\n }\n\n for (t1 = extrema[0], i = 1; i < extrema.length; i++) {\n t2 = extrema[i];\n segment = this.split(t1, t2);\n segment._t1 = t1;\n segment._t2 = t2;\n pass1.push(segment);\n t1 = t2;\n }\n\n // second pass: further reduce these segments to simple segments\n pass1.forEach(function (p1) {\n t1 = 0;\n t2 = 0;\n while (t2 <= 1) {\n for (t2 = t1 + step; t2 <= 1 + step; t2 += step) {\n segment = p1.split(t1, t2);\n if (!segment.simple()) {\n t2 -= step;\n if (abs(t1 - t2) < step) {\n // we can never form a reduction\n return [];\n }\n segment = p1.split(t1, t2);\n segment._t1 = utils.map(t1, 0, 1, p1._t1, p1._t2);\n segment._t2 = utils.map(t2, 0, 1, p1._t1, p1._t2);\n pass2.push(segment);\n t1 = t2;\n break;\n }\n }\n }\n if (t1 < 1) {\n segment = p1.split(t1, 1);\n segment._t1 = utils.map(t1, 0, 1, p1._t1, p1._t2);\n segment._t2 = p1._t2;\n pass2.push(segment);\n }\n });\n return pass2;\n }\n\n translate(v, d1, d2) {\n d2 = typeof d2 === \"number\" ? d2 : d1;\n\n // TODO: make this take curves with control points outside\n // of the start-end interval into account\n\n const o = this.order;\n let d = this.points.map((_, i) => (1 - i / o) * d1 + (i / o) * d2);\n return new Bezier(\n this.points.map((p, i) => ({\n x: p.x + v.x * d[i],\n y: p.y + v.y * d[i],\n }))\n );\n }\n\n scale(d) {\n const order = this.order;\n let distanceFn = false;\n if (typeof d === \"function\") {\n distanceFn = d;\n }\n if (distanceFn && order === 2) {\n return this.raise().scale(distanceFn);\n }\n\n // TODO: add special handling for non-linear degenerate curves.\n\n const clockwise = this.clockwise;\n const points = this.points;\n\n if (this._linear) {\n return this.translate(\n this.normal(0),\n distanceFn ? distanceFn(0) : d,\n distanceFn ? distanceFn(1) : d\n );\n }\n\n const r1 = distanceFn ? distanceFn(0) : d;\n const r2 = distanceFn ? distanceFn(1) : d;\n const v = [this.offset(0, 10), this.offset(1, 10)];\n const np = [];\n const o = utils.lli4(v[0], v[0].c, v[1], v[1].c);\n\n if (!o) {\n throw new Error(\"cannot scale this curve. Try reducing it first.\");\n }\n\n // move all points by distance 'd' wrt the origin 'o',\n // and move end points by fixed distance along normal.\n [0, 1].forEach(function (t) {\n const p = (np[t * order] = utils.copy(points[t * order]));\n p.x += (t ? r2 : r1) * v[t].n.x;\n p.y += (t ? r2 : r1) * v[t].n.y;\n });\n\n if (!distanceFn) {\n // move control points to lie on the intersection of the offset\n // derivative vector, and the origin-through-control vector\n [0, 1].forEach((t) => {\n if (order === 2 && !!t) return;\n const p = np[t * order];\n const d = this.derivative(t);\n const p2 = { x: p.x + d.x, y: p.y + d.y };\n np[t + 1] = utils.lli4(p, p2, o, points[t + 1]);\n });\n return new Bezier(np);\n }\n\n // move control points by \"however much necessary to\n // ensure the correct tangent to endpoint\".\n [0, 1].forEach(function (t) {\n if (order === 2 && !!t) return;\n var p = points[t + 1];\n var ov = {\n x: p.x - o.x,\n y: p.y - o.y,\n };\n var rc = distanceFn ? distanceFn((t + 1) / order) : d;\n if (distanceFn && !clockwise) rc = -rc;\n var m = sqrt(ov.x * ov.x + ov.y * ov.y);\n ov.x /= m;\n ov.y /= m;\n np[t + 1] = {\n x: p.x + rc * ov.x,\n y: p.y + rc * ov.y,\n };\n });\n return new Bezier(np);\n }\n\n outline(d1, d2, d3, d4) {\n d2 = d2 === undefined ? d1 : d2;\n\n if (this._linear) {\n // TODO: find the actual extrema, because they might\n // be before the start, or past the end.\n\n const n = this.normal(0);\n const start = this.points[0];\n const end = this.points[this.points.length - 1];\n let s, mid, e;\n\n if (d3 === undefined) {\n d3 = d1;\n d4 = d2;\n }\n\n s = { x: start.x + n.x * d1, y: start.y + n.y * d1 };\n e = { x: end.x + n.x * d3, y: end.y + n.y * d3 };\n mid = { x: (s.x + e.x) / 2, y: (s.y + e.y) / 2 };\n const fline = [s, mid, e];\n\n s = { x: start.x - n.x * d2, y: start.y - n.y * d2 };\n e = { x: end.x - n.x * d4, y: end.y - n.y * d4 };\n mid = { x: (s.x + e.x) / 2, y: (s.y + e.y) / 2 };\n const bline = [e, mid, s];\n\n const ls = utils.makeline(bline[2], fline[0]);\n const le = utils.makeline(fline[2], bline[0]);\n const segments = [ls, new Bezier(fline), le, new Bezier(bline)];\n return new PolyBezier(segments);\n }\n\n const reduced = this.reduce(),\n len = reduced.length,\n fcurves = [];\n\n let bcurves = [],\n p,\n alen = 0,\n tlen = this.length();\n\n const graduated = typeof d3 !== \"undefined\" && typeof d4 !== \"undefined\";\n\n function linearDistanceFunction(s, e, tlen, alen, slen) {\n return function (v) {\n const f1 = alen / tlen,\n f2 = (alen + slen) / tlen,\n d = e - s;\n return utils.map(v, 0, 1, s + f1 * d, s + f2 * d);\n };\n }\n\n // form curve oulines\n reduced.forEach(function (segment) {\n const slen = segment.length();\n if (graduated) {\n fcurves.push(\n segment.scale(linearDistanceFunction(d1, d3, tlen, alen, slen))\n );\n bcurves.push(\n segment.scale(linearDistanceFunction(-d2, -d4, tlen, alen, slen))\n );\n } else {\n fcurves.push(segment.scale(d1));\n bcurves.push(segment.scale(-d2));\n }\n alen += slen;\n });\n\n // reverse the \"return\" outline\n bcurves = bcurves\n .map(function (s) {\n p = s.points;\n if (p[3]) {\n s.points = [p[3], p[2], p[1], p[0]];\n } else {\n s.points = [p[2], p[1], p[0]];\n }\n return s;\n })\n .reverse();\n\n // form the endcaps as lines\n const fs = fcurves[0].points[0],\n fe = fcurves[len - 1].points[fcurves[len - 1].points.length - 1],\n bs = bcurves[len - 1].points[bcurves[len - 1].points.length - 1],\n be = bcurves[0].points[0],\n ls = utils.makeline(bs, fs),\n le = utils.makeline(fe, be),\n segments = [ls].concat(fcurves).concat([le]).concat(bcurves);\n\n return new PolyBezier(segments);\n }\n\n outlineshapes(d1, d2, curveIntersectionThreshold) {\n d2 = d2 || d1;\n const outline = this.outline(d1, d2).curves;\n const shapes = [];\n for (let i = 1, len = outline.length; i < len / 2; i++) {\n const shape = utils.makeshape(\n outline[i],\n outline[len - i],\n curveIntersectionThreshold\n );\n shape.startcap.virtual = i > 1;\n shape.endcap.virtual = i < len / 2 - 1;\n shapes.push(shape);\n }\n return shapes;\n }\n\n intersects(curve, curveIntersectionThreshold) {\n if (!curve) return this.selfintersects(curveIntersectionThreshold);\n if (curve.p1 && curve.p2) {\n return this.lineIntersects(curve);\n }\n if (curve instanceof Bezier) {\n curve = curve.reduce();\n }\n return this.curveintersects(\n this.reduce(),\n curve,\n curveIntersectionThreshold\n );\n }\n\n lineIntersects(line) {\n const mx = min(line.p1.x, line.p2.x),\n my = min(line.p1.y, line.p2.y),\n MX = max(line.p1.x, line.p2.x),\n MY = max(line.p1.y, line.p2.y);\n return utils.roots(this.points, line).filter((t) => {\n var p = this.get(t);\n return utils.between(p.x, mx, MX) && utils.between(p.y, my, MY);\n });\n }\n\n selfintersects(curveIntersectionThreshold) {\n // \"simple\" curves cannot intersect with their direct\n // neighbour, so for each segment X we check whether\n // it intersects [0:x-2][x+2:last].\n\n const reduced = this.reduce(),\n len = reduced.length - 2,\n results = [];\n\n for (let i = 0, result, left, right; i < len; i++) {\n left = reduced.slice(i, i + 1);\n right = reduced.slice(i + 2);\n result = this.curveintersects(left, right, curveIntersectionThreshold);\n results.push(...result);\n }\n return results;\n }\n\n curveintersects(c1, c2, curveIntersectionThreshold) {\n const pairs = [];\n // step 1: pair off any overlapping segments\n c1.forEach(function (l) {\n c2.forEach(function (r) {\n if (l.overlaps(r)) {\n pairs.push({ left: l, right: r });\n }\n });\n });\n // step 2: for each pairing, run through the convergence algorithm.\n let intersections = [];\n pairs.forEach(function (pair) {\n const result = utils.pairiteration(\n pair.left,\n pair.right,\n curveIntersectionThreshold\n );\n if (result.length > 0) {\n intersections = intersections.concat(result);\n }\n });\n return intersections;\n }\n\n arcs(errorThreshold) {\n errorThreshold = errorThreshold || 0.5;\n return this._iterate(errorThreshold, []);\n }\n\n _error(pc, np1, s, e) {\n const q = (e - s) / 4,\n c1 = this.get(s + q),\n c2 = this.get(e - q),\n ref = utils.dist(pc, np1),\n d1 = utils.dist(pc, c1),\n d2 = utils.dist(pc, c2);\n return abs(d1 - ref) + abs(d2 - ref);\n }\n\n _iterate(errorThreshold, circles) {\n let t_s = 0,\n t_e = 1,\n safety;\n // we do a binary search to find the \"good `t` closest to no-longer-good\"\n do {\n safety = 0;\n\n // step 1: start with the maximum possible arc\n t_e = 1;\n\n // points:\n let np1 = this.get(t_s),\n np2,\n np3,\n arc,\n prev_arc;\n\n // booleans:\n let curr_good = false,\n prev_good = false,\n done;\n\n // numbers:\n let t_m = t_e,\n prev_e = 1,\n step = 0;\n\n // step 2: find the best possible arc\n do {\n prev_good = curr_good;\n prev_arc = arc;\n t_m = (t_s + t_e) / 2;\n step++;\n\n np2 = this.get(t_m);\n np3 = this.get(t_e);\n\n arc = utils.getccenter(np1, np2, np3);\n\n //also save the t values\n arc.interval = {\n start: t_s,\n end: t_e,\n };\n\n let error = this._error(arc, np1, t_s, t_e);\n curr_good = error <= errorThreshold;\n\n done = prev_good && !curr_good;\n if (!done) prev_e = t_e;\n\n // this arc is fine: we can move 'e' up to see if we can find a wider arc\n if (curr_good) {\n // if e is already at max, then we're done for this arc.\n if (t_e >= 1) {\n // make sure we cap at t=1\n arc.interval.end = prev_e = 1;\n prev_arc = arc;\n // if we capped the arc segment to t=1 we also need to make sure that\n // the arc's end angle is correct with respect to the bezier end point.\n if (t_e > 1) {\n let d = {\n x: arc.x + arc.r * cos(arc.e),\n y: arc.y + arc.r * sin(arc.e),\n };\n arc.e += utils.angle({ x: arc.x, y: arc.y }, d, this.get(1));\n }\n break;\n }\n // if not, move it up by half the iteration distance\n t_e = t_e + (t_e - t_s) / 2;\n } else {\n // this is a bad arc: we need to move 'e' down to find a good arc\n t_e = t_m;\n }\n } while (!done && safety++ < 100);\n\n if (safety >= 100) {\n break;\n }\n\n // console.log(\"L835: [F] arc found\", t_s, prev_e, prev_arc.x, prev_arc.y, prev_arc.s, prev_arc.e);\n\n prev_arc = prev_arc ? prev_arc : arc;\n circles.push(prev_arc);\n t_s = prev_e;\n } while (t_e < 1);\n return circles;\n }\n}\n\nexport { Bezier };\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = _objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nfunction _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r );\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (String )(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nvar index = (function () {\n var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var keyAccessors = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var multiItem = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var flattenKeys = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var keys = (keyAccessors instanceof Array ? keyAccessors.length ? keyAccessors : [undefined] : [keyAccessors]).map(function (key) {\n return {\n keyAccessor: key,\n isProp: !(key instanceof Function)\n };\n });\n var indexedResult = list.reduce(function (res, item) {\n var iterObj = res;\n var itemVal = item;\n keys.forEach(function (_ref, idx) {\n var keyAccessor = _ref.keyAccessor,\n isProp = _ref.isProp;\n var key;\n if (isProp) {\n var _itemVal = itemVal,\n propVal = _itemVal[keyAccessor],\n rest = _objectWithoutProperties(_itemVal, [keyAccessor].map(_toPropertyKey));\n key = propVal;\n itemVal = rest;\n } else {\n key = keyAccessor(itemVal, idx);\n }\n if (idx + 1 < keys.length) {\n if (!iterObj.hasOwnProperty(key)) {\n iterObj[key] = {};\n }\n iterObj = iterObj[key];\n } else {\n // Leaf key\n if (multiItem) {\n if (!iterObj.hasOwnProperty(key)) {\n iterObj[key] = [];\n }\n iterObj[key].push(itemVal);\n } else {\n iterObj[key] = itemVal;\n }\n }\n });\n return res;\n }, {});\n if (multiItem instanceof Function) {\n // Reduce leaf multiple values\n (function reduce(node) {\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n if (level === keys.length) {\n Object.keys(node).forEach(function (k) {\n return node[k] = multiItem(node[k]);\n });\n } else {\n Object.values(node).forEach(function (child) {\n return reduce(child, level + 1);\n });\n }\n })(indexedResult); // IIFE\n }\n var result = indexedResult;\n if (flattenKeys) {\n // flatten into array\n result = [];\n (function flatten(node) {\n var accKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n if (accKeys.length === keys.length) {\n result.push({\n keys: accKeys,\n vals: node\n });\n } else {\n Object.entries(node).forEach(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n key = _ref3[0],\n val = _ref3[1];\n return flatten(val, [].concat(_toConsumableArray(accKeys), [key]));\n });\n }\n })(indexedResult); //IIFE\n\n if (keyAccessors instanceof Array && keyAccessors.length === 0 && result.length === 1) {\n // clear keys if there's no key accessors (single result)\n result[0].keys = [];\n }\n }\n return result;\n});\n\nexport { index as default };\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","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 colors from \"../colors.js\";\n\nexport default colors(\"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928\");\n","import { scaleOrdinal } from 'd3-scale';\nimport { schemePaired } from 'd3-scale-chromatic';\n\nconst autoColorScale = scaleOrdinal(schemePaired);\n\n// Autoset attribute colorField by colorByAccessor property\n// If an object has already a color, don't set it\n// Objects can be nodes or links\nfunction autoColorObjects(objects, colorByAccessor, colorField) {\n if (!colorByAccessor || typeof colorField !== 'string') return;\n\n objects.filter(obj => !obj[colorField]).forEach(obj => {\n obj[colorField] = autoColorScale(colorByAccessor(obj));\n });\n}\n\nexport { autoColorObjects };\n","export default function({ nodes, links }, idAccessor, {\n nodeFilter = () => true,\n onLoopError = loopIds => { throw `Invalid DAG structure! Found cycle in node path: ${loopIds.join(' -> ')}.` }\n} = {}) {\n // linked graph\n const graph = {};\n\n nodes.forEach(node => graph[idAccessor(node)] = { data: node, out : [], depth: -1, skip: !nodeFilter(node) });\n links.forEach(({ source, target }) => {\n const sourceId = getNodeId(source);\n const targetId = getNodeId(target);\n if (!graph.hasOwnProperty(sourceId)) throw `Missing source node with id: ${sourceId}`;\n if (!graph.hasOwnProperty(targetId)) throw `Missing target node with id: ${targetId}`;\n const sourceNode = graph[sourceId];\n const targetNode = graph[targetId];\n\n sourceNode.out.push(targetNode);\n\n function getNodeId(node) {\n return typeof node === 'object' ? idAccessor(node) : node;\n }\n });\n\n const foundLoops = [];\n traverse(Object.values(graph));\n\n const nodeDepths = Object.assign({}, ...Object.entries(graph)\n .filter(([, node]) => !node.skip)\n .map(([id, node]) => ({ [id]: node.depth }))\n );\n\n return nodeDepths;\n\n function traverse(nodes, nodeStack = [], currentDepth = 0) {\n for (let i=0, l=nodes.length; i<l; i++) {\n const node = nodes[i];\n if (nodeStack.indexOf(node) !== -1) {\n const loop = [...nodeStack.slice(nodeStack.indexOf(node)), node].map(d => idAccessor(d.data));\n if (!foundLoops.some(foundLoop => foundLoop.length === loop.length && foundLoop.every((id, idx) => id === loop[idx]))) {\n foundLoops.push(loop);\n onLoopError(loop);\n }\n continue;\n }\n if (currentDepth > node.depth) { // Don't unnecessarily revisit chunks of the graph\n node.depth = currentDepth;\n traverse(node.out, [...nodeStack, node], currentDepth + (node.skip ? 0 : 1));\n }\n }\n }\n}","import {\n forceSimulation as d3ForceSimulation,\n forceLink as d3ForceLink,\n forceManyBody as d3ForceManyBody,\n forceCenter as d3ForceCenter,\n forceRadial as d3ForceRadial\n} from 'd3-force-3d';\n\nimport { Bezier } from 'bezier-js';\n\nimport Kapsule from 'kapsule';\nimport accessorFn from 'accessor-fn';\nimport indexBy from 'index-array-by';\n\nimport { autoColorObjects } from './color-utils';\nimport getDagDepths from './dagDepths';\n\n//\n\nconst DAG_LEVEL_NODE_RATIO = 2;\n\n// whenever styling props are changed that require a canvas redraw\nconst notifyRedraw = (_, state) => state.onNeedsRedraw && state.onNeedsRedraw();\n\nconst updDataPhotons = (_, state) => {\n if (!state.isShadow) {\n // Add photon particles\n const linkParticlesAccessor = accessorFn(state.linkDirectionalParticles);\n state.graphData.links.forEach(link => {\n const numPhotons = Math.round(Math.abs(linkParticlesAccessor(link)));\n if (numPhotons) {\n link.__photons = [...Array(numPhotons)].map(() => ({}));\n } else {\n delete link.__photons;\n }\n });\n }\n};\n\nexport default Kapsule({\n props: {\n graphData: {\n default: {\n nodes: [],\n links: []\n },\n onChange(_, state) {\n state.engineRunning = false; // Pause simulation\n updDataPhotons(_, state);\n }\n },\n dagMode: { onChange(dagMode, state) { // td, bu, lr, rl, radialin, radialout\n !dagMode && (state.graphData.nodes || []).forEach(n => n.fx = n.fy = undefined); // unfix nodes when disabling dag mode\n }},\n dagLevelDistance: {},\n dagNodeFilter: { default: node => true },\n onDagError: { triggerUpdate: false },\n nodeRelSize: { default: 4, triggerUpdate: false, onChange: notifyRedraw }, // area per val unit\n nodeId: { default: 'id' },\n nodeVal: { default: 'val', triggerUpdate: false, onChange: notifyRedraw },\n nodeColor: { default: 'color', triggerUpdate: false, onChange: notifyRedraw },\n nodeAutoColorBy: {},\n nodeCanvasObject: { triggerUpdate: false, onChange: notifyRedraw },\n nodeCanvasObjectMode: { default: () => 'replace', triggerUpdate: false, onChange: notifyRedraw },\n nodeVisibility: { default: true, triggerUpdate: false, onChange: notifyRedraw },\n linkSource: { default: 'source' },\n linkTarget: { default: 'target' },\n linkVisibility: { default: true, triggerUpdate: false, onChange: notifyRedraw },\n linkColor: { default: 'color', triggerUpdate: false, onChange: notifyRedraw },\n linkAutoColorBy: {},\n linkLineDash: { triggerUpdate: false, onChange: notifyRedraw },\n linkWidth: { default: 1, triggerUpdate: false, onChange: notifyRedraw },\n linkCurvature: { default: 0, triggerUpdate: false, onChange: notifyRedraw },\n linkCanvasObject: { triggerUpdate: false, onChange: notifyRedraw },\n linkCanvasObjectMode: { default: () => 'replace', triggerUpdate: false, onChange: notifyRedraw },\n linkDirectionalArrowLength: { default: 0, triggerUpdate: false, onChange: notifyRedraw },\n linkDirectionalArrowColor: { triggerUpdate: false, onChange: notifyRedraw },\n linkDirectionalArrowRelPos: { default: 0.5, triggerUpdate: false, onChange: notifyRedraw }, // value between 0<>1 indicating the relative pos along the (exposed) line\n linkDirectionalParticles: { default: 0, triggerUpdate: false, onChange: updDataPhotons }, // animate photons travelling in the link direction\n linkDirectionalParticleSpeed: { default: 0.01, triggerUpdate: false }, // in link length ratio per frame\n linkDirectionalParticleWidth: { default: 4, triggerUpdate: false },\n linkDirectionalParticleColor: { triggerUpdate: false },\n globalScale: { default: 1, triggerUpdate: false },\n d3AlphaMin: { default: 0, triggerUpdate: false},\n d3AlphaDecay: { default: 0.0228, triggerUpdate: false, onChange(alphaDecay, state) { state.forceLayout.alphaDecay(alphaDecay) }},\n d3AlphaTarget: { default: 0, triggerUpdate: false, onChange(alphaTarget, state) { state.forceLayout.alphaTarget(alphaTarget) }},\n d3VelocityDecay: { default: 0.4, triggerUpdate: false, onChange(velocityDecay, state) { state.forceLayout.velocityDecay(velocityDecay) } },\n warmupTicks: { default: 0, triggerUpdate: false }, // how many times to tick the force engine at init before starting to render\n cooldownTicks: { default: Infinity, triggerUpdate: false },\n cooldownTime: { default: 15000, triggerUpdate: false }, // ms\n onUpdate: { default: () => {}, triggerUpdate: false },\n onFinishUpdate: { default: () => {}, triggerUpdate: false },\n onEngineTick: { default: () => {}, triggerUpdate: false },\n onEngineStop: { default: () => {}, triggerUpdate: false },\n onNeedsRedraw: { triggerUpdate: false },\n isShadow: { default: false, triggerUpdate: false }\n },\n\n methods: {\n // Expose d3 forces for external manipulation\n d3Force: function(state, forceName, forceFn) {\n if (forceFn === undefined) {\n return state.forceLayout.force(forceName); // Force getter\n }\n state.forceLayout.force(forceName, forceFn); // Force setter\n return this;\n },\n d3ReheatSimulation: function(state) {\n state.forceLayout.alpha(1);\n this.resetCountdown();\n return this;\n },\n // reset cooldown state\n resetCountdown: function(state) {\n state.cntTicks = 0;\n state.startTickTime = new Date();\n state.engineRunning = true;\n return this;\n },\n isEngineRunning: state => !!state.engineRunning,\n tickFrame: function(state) {\n !state.isShadow && layoutTick();\n paintLinks();\n !state.isShadow && paintArrows();\n !state.isShadow && paintPhotons();\n paintNodes();\n\n return this;\n\n //\n\n function layoutTick() {\n if (state.engineRunning) {\n if (\n ++state.cntTicks > state.cooldownTicks ||\n (new Date()) - state.startTickTime > state.cooldownTime ||\n (state.d3AlphaMin > 0 && state.forceLayout.alpha() < state.d3AlphaMin)\n ) {\n state.engineRunning = false; // Stop ticking graph\n state.onEngineStop();\n } else {\n state.forceLayout.tick(); // Tick it\n state.onEngineTick();\n }\n }\n }\n\n function paintNodes() {\n const getVisibility = accessorFn(state.nodeVisibility);\n const getVal = accessorFn(state.nodeVal);\n const getColor = accessorFn(state.nodeColor);\n const getNodeCanvasObjectMode = accessorFn(state.nodeCanvasObjectMode);\n\n const ctx = state.ctx;\n\n // Draw wider nodes by 1px on shadow canvas for more precise hovering (due to boundary anti-aliasing)\n const padAmount = state.isShadow / state.globalScale;\n\n const visibleNodes = state.graphData.nodes.filter(getVisibility);\n\n ctx.save();\n visibleNodes.forEach(node => {\n const nodeCanvasObjectMode = getNodeCanvasObjectMode(node);\n\n if (state.nodeCanvasObject && (nodeCanvasObjectMode === 'before' || nodeCanvasObjectMode === 'replace')) {\n // Custom node before/replace paint\n state.nodeCanvasObject(node, ctx, state.globalScale);\n\n if (nodeCanvasObjectMode === 'replace') {\n ctx.restore();\n return;\n }\n }\n\n // Draw wider nodes by 1px on shadow canvas for more precise hovering (due to boundary anti-aliasing)\n const r = Math.sqrt(Math.max(0, getVal(node) || 1)) * state.nodeRelSize + padAmount;\n\n ctx.beginPath();\n ctx.arc(node.x, node.y, r, 0, 2 * Math.PI, false);\n ctx.fillStyle = getColor(node) || 'rgba(31, 120, 180, 0.92)';\n ctx.fill();\n\n if (state.nodeCanvasObject && nodeCanvasObjectMode === 'after') {\n // Custom node after paint\n state.nodeCanvasObject(node, state.ctx, state.globalScale);\n }\n });\n ctx.restore();\n }\n\n function paintLinks() {\n const getVisibility = accessorFn(state.linkVisibility);\n const getColor = accessorFn(state.linkColor);\n const getWidth = accessorFn(state.linkWidth);\n const getLineDash = accessorFn(state.linkLineDash);\n const getCurvature = accessorFn(state.linkCurvature);\n const getLinkCanvasObjectMode = accessorFn(state.linkCanvasObjectMode);\n\n const ctx = state.ctx;\n\n // Draw wider lines by 2px on shadow canvas for more precise hovering (due to boundary anti-aliasing)\n const padAmount = state.isShadow * 2;\n\n const visibleLinks = state.graphData.links.filter(getVisibility);\n\n visibleLinks.forEach(calcLinkControlPoints); // calculate curvature control points for all visible links\n\n let beforeCustomLinks = [], afterCustomLinks = [], defaultPaintLinks = visibleLinks;\n if (state.linkCanvasObject) {\n const replaceCustomLinks = [], otherCustomLinks = [];\n\n visibleLinks.forEach(d =>\n ({\n before: beforeCustomLinks,\n after: afterCustomLinks,\n replace: replaceCustomLinks\n }[getLinkCanvasObjectMode(d)] || otherCustomLinks).push(d)\n );\n defaultPaintLinks = [...beforeCustomLinks, ...afterCustomLinks, ...otherCustomLinks];\n beforeCustomLinks = beforeCustomLinks.concat(replaceCustomLinks);\n }\n\n // Custom link before paints\n ctx.save();\n beforeCustomLinks.forEach(link => state.linkCanvasObject(link, ctx, state.globalScale));\n ctx.restore();\n\n // Bundle strokes per unique color/width/dash for performance optimization\n const linksPerColor = indexBy(defaultPaintLinks, [getColor, getWidth, getLineDash]);\n\n ctx.save();\n Object.entries(linksPerColor).forEach(([color, linksPerWidth]) => {\n const lineColor = !color || color === 'undefined' ? 'rgba(0,0,0,0.15)' : color;\n Object.entries(linksPerWidth).forEach(([width, linesPerLineDash]) => {\n const lineWidth = (width || 1) / state.globalScale + padAmount;\n Object.entries(linesPerLineDash).forEach(([dashSegments, links]) => {\n const lineDashSegments = getLineDash(links[0]);\n ctx.beginPath();\n links.forEach(link => {\n const start = link.source;\n const end = link.target;\n if (!start || !end || !start.hasOwnProperty('x') || !end.hasOwnProperty('x')) return; // skip invalid link\n \n ctx.moveTo(start.x, start.y);\n \n const controlPoints = link.__controlPoints;\n \n if (!controlPoints) { // Straight line\n ctx.lineTo(end.x, end.y);\n } else {\n // Use quadratic curves for regular lines and bezier for loops\n ctx[controlPoints.length === 2 ? 'quadraticCurveTo' : 'bezierCurveTo'](...controlPoints, end.x, end.y);\n }\n });\n ctx.strokeStyle = lineColor;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(lineDashSegments || []);\n ctx.stroke();\n });\n });\n });\n ctx.restore();\n\n // Custom link after paints\n ctx.save();\n afterCustomLinks.forEach(link => state.linkCanvasObject(link, ctx, state.globalScale));\n ctx.restore();\n\n //\n\n function calcLinkControlPoints(link) {\n const curvature = getCurvature(link);\n\n if (!curvature) { // straight line\n link.__controlPoints = null;\n return;\n }\n\n const start = link.source;\n const end = link.target;\n if (!start || !end || !start.hasOwnProperty('x') || !end.hasOwnProperty('x')) return; // skip invalid link\n\n const l = Math.sqrt(Math.pow(end.x - start.x, 2) + Math.pow(end.y - start.y, 2)); // line length\n\n if (l > 0) {\n const a = Math.atan2(end.y - start.y, end.x - start.x); // line angle\n const d = l * curvature; // control point distance\n\n const cp = { // control point\n x: (start.x + end.x) / 2 + d * Math.cos(a - Math.PI / 2),\n y: (start.y + end.y) / 2 + d * Math.sin(a - Math.PI / 2)\n };\n\n link.__controlPoints = [cp.x, cp.y];\n } else { // Same point, draw a loop\n const d = curvature * 70;\n link.__controlPoints = [end.x, end.y - d, end.x + d, end.y];\n }\n }\n }\n\n function paintArrows() {\n const ARROW_WH_RATIO = 1.6;\n const ARROW_VLEN_RATIO = 0.2;\n\n const getLength = accessorFn(state.linkDirectionalArrowLength);\n const getRelPos = accessorFn(state.linkDirectionalArrowRelPos);\n const getVisibility = accessorFn(state.linkVisibility);\n const getColor = accessorFn(state.linkDirectionalArrowColor || state.linkColor);\n const getNodeVal = accessorFn(state.nodeVal);\n const ctx = state.ctx;\n\n ctx.save();\n state.graphData.links.filter(getVisibility).forEach(link => {\n const arrowLength = getLength(link);\n if (!arrowLength || arrowLength < 0) return;\n\n const start = link.source;\n const end = link.target;\n\n if (!start || !end || !start.hasOwnProperty('x') || !end.hasOwnProperty('x')) return; // skip invalid link\n\n const startR = Math.sqrt(Math.max(0, getNodeVal(start) || 1)) * state.nodeRelSize;\n const endR = Math.sqrt(Math.max(0, getNodeVal(end) || 1)) * state.nodeRelSize;\n\n const arrowRelPos = Math.min(1, Math.max(0, getRelPos(link)));\n const arrowColor = getColor(link) || 'rgba(0,0,0,0.28)';\n const arrowHalfWidth = arrowLength / ARROW_WH_RATIO / 2;\n\n // Construct bezier for curved lines\n const bzLine = link.__controlPoints && new Bezier(start.x, start.y, ...link.__controlPoints, end.x, end.y);\n\n const getCoordsAlongLine = bzLine\n ? t => bzLine.get(t) // get position along bezier line\n : t => ({ // straight line: interpolate linearly\n x: start.x + (end.x - start.x) * t || 0,\n y: start.y + (end.y - start.y) * t || 0\n });\n\n const lineLen = bzLine\n ? bzLine.length()\n : Math.sqrt(Math.pow(end.x - start.x, 2) + Math.pow(end.y - start.y, 2));\n\n const posAlongLine = startR + arrowLength + (lineLen - startR - endR - arrowLength) * arrowRelPos;\n\n const arrowHead = getCoordsAlongLine(posAlongLine / lineLen);\n const arrowTail = getCoordsAlongLine((posAlongLine - arrowLength) / lineLen);\n const arrowTailVertex = getCoordsAlongLine((posAlongLine - arrowLength * (1 - ARROW_VLEN_RATIO)) / lineLen);\n\n const arrowTailAngle = Math.atan2(arrowHead.y - arrowTail.y, arrowHead.x - arrowTail.x) - Math.PI / 2;\n\n ctx.beginPath();\n\n ctx.moveTo(arrowHead.x, arrowHead.y);\n ctx.lineTo(arrowTail.x + arrowHalfWidth * Math.cos(arrowTailAngle), arrowTail.y + arrowHalfWidth * Math.sin(arrowTailAngle));\n ctx.lineTo(arrowTailVertex.x, arrowTailVertex.y);\n ctx.lineTo(arrowTail.x - arrowHalfWidth * Math.cos(arrowTailAngle), arrowTail.y - arrowHalfWidth * Math.sin(arrowTailAngle));\n\n ctx.fillStyle = arrowColor;\n ctx.fill();\n });\n ctx.restore();\n }\n\n function paintPhotons() {\n const getNumPhotons = accessorFn(state.linkDirectionalParticles);\n const getSpeed = accessorFn(state.linkDirectionalParticleSpeed);\n const getDiameter = accessorFn(state.linkDirectionalParticleWidth);\n const getVisibility = accessorFn(state.linkVisibility);\n const getColor = accessorFn(state.linkDirectionalParticleColor || state.linkColor);\n const ctx = state.ctx;\n\n ctx.save();\n state.graphData.links.filter(getVisibility).forEach(link => {\n const numCyclePhotons = getNumPhotons(link);\n\n if (!link.hasOwnProperty('__photons') || !link.__photons.length) return;\n\n const start = link.source;\n const end = link.target;\n\n if (!start || !end || !start.hasOwnProperty('x') || !end.hasOwnProperty('x')) return; // skip invalid link\n\n const particleSpeed = getSpeed(link);\n const photons = link.__photons || [];\n const photonR = Math.max(0, getDiameter(link) / 2) / Math.sqrt(state.globalScale);\n const photonColor = getColor(link) || 'rgba(0,0,0,0.28)';\n\n ctx.fillStyle = photonColor;\n\n // Construct bezier for curved lines\n const bzLine = link.__controlPoints\n ? new Bezier(start.x, start.y, ...link.__controlPoints, end.x, end.y)\n : null;\n\n let cyclePhotonIdx = 0;\n let needsCleanup = false; // whether some photons need to be removed from list\n photons.forEach(photon => {\n const singleHop = !!photon.__singleHop;\n\n if (!photon.hasOwnProperty('__progressRatio')) {\n photon.__progressRatio = singleHop ? 0 : cyclePhotonIdx / numCyclePhotons;\n }\n\n !singleHop && cyclePhotonIdx++; // increase regular photon index\n\n photon.__progressRatio += particleSpeed;\n\n if (photon.__progressRatio >=1) {\n if (!singleHop) {\n photon.__progressRatio = photon.__progressRatio % 1;\n } else {\n needsCleanup = true;\n return;\n }\n }\n\n const photonPosRatio = photon.__progressRatio;\n\n const coords = bzLine\n ? bzLine.get(photonPosRatio) // get position along bezier line\n : { // straight line: interpolate linearly\n x: start.x + (end.x - start.x) * photonPosRatio || 0,\n y: start.y + (end.y - start.y) * photonPosRatio || 0\n };\n\n ctx.beginPath();\n ctx.arc(coords.x, coords.y, photonR, 0, 2 * Math.PI, false);\n ctx.fill();\n });\n\n if (needsCleanup) {\n // remove expired single hop photons\n link.__photons = link.__photons.filter(photon => !photon.__singleHop || photon.__progressRatio <= 1);\n }\n });\n ctx.restore();\n }\n },\n emitParticle: function(state, link) {\n if (link) {\n !link.__photons && (link.__photons = []);\n link.__photons.push({ __singleHop: true }); // add a single hop particle\n }\n\n return this;\n }\n },\n\n stateInit: () => ({\n forceLayout: d3ForceSimulation()\n .force('link', d3ForceLink())\n .force('charge', d3ForceManyBody())\n .force('center', d3ForceCenter())\n .force('dagRadial', null)\n .stop(),\n engineRunning: false\n }),\n\n init(canvasCtx, state) {\n // Main canvas object to manipulate\n state.ctx = canvasCtx;\n },\n\n update(state, changedProps) {\n state.engineRunning = false; // Pause simulation\n state.onUpdate();\n\n if (state.nodeAutoColorBy !== null) {\n // Auto add color to uncolored nodes\n autoColorObjects(state.graphData.nodes, accessorFn(state.nodeAutoColorBy), state.nodeColor);\n }\n if (state.linkAutoColorBy !== null) {\n // Auto add color to uncolored links\n autoColorObjects(state.graphData.links, accessorFn(state.linkAutoColorBy), state.linkColor);\n }\n\n // parse links\n state.graphData.links.forEach(link => {\n link.source = link[state.linkSource];\n link.target = link[state.linkTarget];\n });\n\n // Feed data to force-directed layout\n state.forceLayout\n .stop()\n .alpha(1) // re-heat the simulation\n .nodes(state.graphData.nodes);\n\n // add links (if link force is still active)\n const linkForce = state.forceLayout.force('link');\n if (linkForce) {\n linkForce\n .id(d => d[state.nodeId])\n .links(state.graphData.links);\n }\n\n // setup dag force constraints\n const nodeDepths = state.dagMode && getDagDepths(\n state.graphData,\n node => node[state.nodeId],\n {\n nodeFilter: state.dagNodeFilter,\n onLoopError: state.onDagError || undefined\n }\n );\n const maxDepth = Math.max(...Object.values(nodeDepths || []));\n const dagLevelDistance = state.dagLevelDistance || (\n state.graphData.nodes.length / (maxDepth || 1) * DAG_LEVEL_NODE_RATIO\n * (['radialin', 'radialout'].indexOf(state.dagMode) !== -1 ? 0.7 : 1)\n );\n\n // Reset relevant fx/fy when swapping dag modes\n if (['lr', 'rl', 'td', 'bu'].includes(changedProps.dagMode)) {\n const resetProp = ['lr', 'rl'].includes(changedProps.dagMode) ? 'fx' : 'fy';\n state.graphData.nodes.filter(state.dagNodeFilter).forEach(node => delete node[resetProp]);\n }\n\n // Fix nodes to x,y for dag mode\n if (['lr', 'rl', 'td', 'bu'].includes(state.dagMode)) {\n const invert = ['rl', 'bu'].includes(state.dagMode);\n const fixFn = node => (nodeDepths[node[state.nodeId]] - maxDepth / 2) * dagLevelDistance * (invert ? -1 : 1);\n\n const resetProp = ['lr', 'rl'].includes(state.dagMode) ? 'fx' : 'fy';\n state.graphData.nodes.filter(state.dagNodeFilter).forEach(node => node[resetProp] = fixFn(node));\n }\n\n // Use radial force for radial dags\n state.forceLayout.force('dagRadial',\n ['radialin', 'radialout'].indexOf(state.dagMode) !== -1\n ? d3ForceRadial(node => {\n const nodeDepth = nodeDepths[node[state.nodeId]] || -1;\n return (state.dagMode === 'radialin' ? maxDepth - nodeDepth : nodeDepth) * dagLevelDistance;\n })\n .strength(node => state.dagNodeFilter(node) ? 1 : 0)\n : null\n );\n\n for (let i=0; (i<state.warmupTicks) && !(state.d3AlphaMin > 0 && state.forceLayout.alpha() < state.d3AlphaMin); i++) {\n state.forceLayout.tick();\n } // Initial ticks before starting to render\n\n this.resetCountdown();\n state.onFinishUpdate();\n }\n});\n","export default function(kapsulePropNames, kapsuleType) {\n\n const propNames = kapsulePropNames instanceof Array ? kapsulePropNames : [kapsulePropNames];\n\n const dummyK = new kapsuleType(); // To extract defaults\n dummyK._destructor && dummyK._destructor();\n\n return {\n linkProp: function(prop) { // link property config\n return {\n default: dummyK[prop](),\n onChange(v, state) { propNames.forEach(propName => state[propName][prop](v)) },\n triggerUpdate: false\n }\n },\n linkMethod: function(method) { // link method pass-through\n return function(state, ...args) {\n const returnVals = [];\n propNames.forEach(propName => {\n const kapsuleInstance = state[propName];\n const returnVal = kapsuleInstance[method](...args);\n\n if (returnVal !== kapsuleInstance) {\n returnVals.push(returnVal);\n }\n });\n\n return returnVals.length\n ? returnVals[0]\n : this; // chain based on the parent object, not the inner kapsule\n }\n }\n }\n\n}","import { select as d3Select } from 'd3-selection';\nimport { zoom as d3Zoom, zoomTransform as d3ZoomTransform } from 'd3-zoom';\nimport { drag as d3Drag } from 'd3-drag';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { throttle } from 'lodash-es';\nimport { Tween, Group as TweenGroup, Easing } from '@tweenjs/tween.js';\nimport Kapsule from 'kapsule';\nimport accessorFn from 'accessor-fn';\nimport ColorTracker from 'canvas-color-tracker';\nimport Tooltip from 'float-tooltip';\n\nimport CanvasForceGraph from './canvas-force-graph';\nimport linkKapsule from './kapsule-link.js';\n\nconst HOVER_CANVAS_THROTTLE_DELAY = 800; // ms to throttle shadow canvas updates for perf improvement\nconst ZOOM2NODES_FACTOR = 4;\n\n// Expose config from forceGraph\nconst bindFG = linkKapsule('forceGraph', CanvasForceGraph);\nconst bindBoth = linkKapsule(['forceGraph', 'shadowGraph'], CanvasForceGraph);\nconst linkedProps = Object.assign(\n ...[\n 'nodeColor',\n 'nodeAutoColorBy',\n 'nodeCanvasObject',\n 'nodeCanvasObjectMode',\n 'linkColor',\n 'linkAutoColorBy',\n 'linkLineDash',\n 'linkWidth',\n 'linkCanvasObject',\n 'linkCanvasObjectMode',\n 'linkDirectionalArrowLength',\n 'linkDirectionalArrowColor',\n 'linkDirectionalArrowRelPos',\n 'linkDirectionalParticles',\n 'linkDirectionalParticleSpeed',\n 'linkDirectionalParticleWidth',\n 'linkDirectionalParticleColor',\n 'dagMode',\n 'dagLevelDistance',\n 'dagNodeFilter',\n 'onDagError',\n 'd3AlphaMin',\n 'd3AlphaDecay',\n 'd3VelocityDecay',\n 'warmupTicks',\n 'cooldownTicks',\n 'cooldownTime',\n 'onEngineTick',\n 'onEngineStop'\n ].map(p => ({ [p]: bindFG.linkProp(p)})),\n ...[\n 'nodeRelSize',\n 'nodeId',\n 'nodeVal',\n 'nodeVisibility',\n 'linkSource',\n 'linkTarget',\n 'linkVisibility',\n 'linkCurvature'\n ].map(p => ({ [p]: bindBoth.linkProp(p)}))\n);\nconst linkedMethods = Object.assign(...[\n 'd3Force',\n 'd3ReheatSimulation',\n 'emitParticle'\n].map(p => ({ [p]: bindFG.linkMethod(p)})));\n\nfunction adjustCanvasSize(state) {\n if (state.canvas) {\n let curWidth = state.canvas.width;\n let curHeight = state.canvas.height;\n if (curWidth === 300 && curHeight === 150) { // Default canvas dimensions\n curWidth = curHeight = 0;\n }\n\n const pxScale = window.devicePixelRatio; // 2 on retina displays\n curWidth /= pxScale;\n curHeight /= pxScale;\n\n // Resize canvases\n [state.canvas, state.shadowCanvas].forEach(canvas => {\n // Element size\n canvas.style.width = `${state.width}px`;\n canvas.style.height = `${state.height}px`;\n\n // Memory size (scaled to avoid blurriness)\n canvas.width = state.width * pxScale;\n canvas.height = state.height * pxScale;\n\n // Normalize coordinate system to use css pixels (on init only)\n if (!curWidth && !curHeight) {\n canvas.getContext('2d').scale(pxScale, pxScale);\n }\n });\n\n // Relative center panning based on 0,0\n const k = d3ZoomTransform(state.canvas).k;\n state.zoom.translateBy(state.zoom.__baseElem,\n (state.width - curWidth) / 2 / k,\n (state.height - curHeight) / 2 / k\n );\n state.needsRedraw = true;\n }\n}\n\nfunction resetTransform(ctx) {\n const pxRatio = window.devicePixelRatio;\n ctx.setTransform(pxRatio, 0, 0, pxRatio, 0, 0);\n}\n\nfunction clearCanvas(ctx, width, height) {\n ctx.save();\n resetTransform(ctx); // reset transform\n ctx.clearRect(0, 0, width, height);\n ctx.restore(); //restore transforms\n}\n\n//\n\nexport default Kapsule({\n props:{\n width: { default: window.innerWidth, onChange: (_, state) => adjustCanvasSize(state), triggerUpdate: false } ,\n height: { default: window.innerHeight, onChange: (_, state) => adjustCanvasSize(state), triggerUpdate: false },\n graphData: {\n default: { nodes: [], links: [] },\n onChange: ((d, state) => {\n // Wipe color registry if all objects are new\n [d.nodes, d.links].every(arr => (arr || []).every(d => !d.hasOwnProperty('__indexColor'))) && state.colorTracker.reset();\n\n [{ type: 'Node', objs: d.nodes }, { type: 'Link', objs: d.links }].forEach(hexIndex);\n state.forceGraph.graphData(d);\n state.shadowGraph.graphData(d);\n\n function hexIndex({ type, objs }) {\n objs\n .filter(d => {\n if (!d.hasOwnProperty('__indexColor')) return true;\n const cur = state.colorTracker.lookup(d.__indexColor);\n return (!cur || !cur.hasOwnProperty('d') || cur.d !== d);\n })\n .forEach(d => {\n // store object lookup color\n d.__indexColor = state.colorTracker.register({ type, d });\n });\n }\n }),\n triggerUpdate: false\n },\n backgroundColor: { onChange(color, state) { state.canvas && color && (state.canvas.style.background = color) }, triggerUpdate: false },\n nodeLabel: { default: 'name', triggerUpdate: false },\n nodePointerAreaPaint: { onChange(paintFn, state) {\n state.shadowGraph.nodeCanvasObject(!paintFn ? null :\n (node, ctx, globalScale) => paintFn(node, node.__indexColor, ctx, globalScale)\n );\n state.flushShadowCanvas && state.flushShadowCanvas();\n }, triggerUpdate: false },\n linkPointerAreaPaint: { onChange(paintFn, state) {\n state.shadowGraph.linkCanvasObject(!paintFn ? null :\n (link, ctx, globalScale) => paintFn(link, link.__indexColor, ctx, globalScale)\n );\n state.flushShadowCanvas && state.flushShadowCanvas();\n }, triggerUpdate: false },\n linkLabel: { default: 'name', triggerUpdate: false },\n linkHoverPrecision: { default: 4, triggerUpdate: false },\n minZoom: { default: 0.01, onChange(minZoom, state) { state.zoom.scaleExtent([minZoom, state.zoom.scaleExtent()[1]]); }, triggerUpdate: false },\n maxZoom: { default: 1000, onChange(maxZoom, state) { state.zoom.scaleExtent([state.zoom.scaleExtent()[0], maxZoom]) }, triggerUpdate: false },\n enableNodeDrag: { default: true, triggerUpdate: false },\n enableZoomInteraction: { default: true, triggerUpdate: false },\n enablePanInteraction: { default: true, triggerUpdate: false },\n enableZoomPanInteraction: { default: true, triggerUpdate: false }, // to be deprecated\n enablePointerInteraction: { default: true, onChange(_, state) { state.hoverObj = null; }, triggerUpdate: false },\n autoPauseRedraw: { default: true, triggerUpdate: false },\n onNodeDrag: { default: () => {}, triggerUpdate: false },\n onNodeDragEnd: { default: () => {}, triggerUpdate: false },\n onNodeClick: { triggerUpdate: false },\n onNodeRightClick: { triggerUpdate: false },\n onNodeHover: { triggerUpdate: false },\n onLinkClick: { triggerUpdate: false },\n onLinkRightClick: { triggerUpdate: false },\n onLinkHover: { triggerUpdate: false },\n onBackgroundClick: { triggerUpdate: false },\n onBackgroundRightClick: { triggerUpdate: false },\n onZoom: { triggerUpdate: false },\n onZoomEnd: { triggerUpdate: false },\n onRenderFramePre: { triggerUpdate: false },\n onRenderFramePost: { triggerUpdate: false },\n ...linkedProps\n },\n\n aliases: { // Prop names supported for backwards compatibility\n stopAnimation: 'pauseAnimation'\n },\n\n methods: {\n graph2ScreenCoords: function(state, x, y) {\n const t = d3ZoomTransform(state.canvas);\n return { x: x * t.k + t.x, y: y * t.k + t.y };\n },\n screen2GraphCoords: function(state, x, y) {\n const t = d3ZoomTransform(state.canvas);\n return { x: (x - t.x) / t.k, y: (y - t.y) / t.k };\n },\n centerAt: function(state, x, y, transitionDuration) {\n if (!state.canvas) return null; // no canvas yet\n\n // setter\n if (x !== undefined || y !== undefined) {\n const finalPos = Object.assign({},\n x !== undefined ? { x } : {},\n y !== undefined ? { y } : {}\n );\n if (!transitionDuration) { // no animation\n setCenter(finalPos);\n } else {\n state.tweenGroup.add(\n new Tween(getCenter())\n .to(finalPos, transitionDuration)\n .easing(Easing.Quadratic.Out)\n .onUpdate(setCenter)\n .start()\n );\n }\n return this;\n }\n\n // getter\n return getCenter();\n\n //\n\n function getCenter() {\n const t = d3ZoomTransform(state.canvas);\n return { x: (state.width / 2 - t.x) / t.k, y: (state.height / 2 - t.y) / t.k };\n }\n\n function setCenter({ x, y }) {\n state.zoom.translateTo(\n state.zoom.__baseElem,\n x === undefined ? getCenter().x : x,\n y === undefined ? getCenter().y : y\n );\n state.needsRedraw = true;\n }\n },\n zoom: function(state, k, transitionDuration) {\n if (!state.canvas) return null; // no canvas yet\n\n // setter\n if (k !== undefined) {\n if (!transitionDuration) { // no animation\n setZoom(k);\n } else {\n state.tweenGroup.add(\n new Tween({ k: getZoom() })\n .to({ k }, transitionDuration)\n .easing(Easing.Quadratic.Out)\n .onUpdate(({ k }) => setZoom(k))\n .start()\n );\n }\n return this;\n }\n\n // getter\n return getZoom();\n\n //\n\n function getZoom() {\n return d3ZoomTransform(state.canvas).k;\n }\n\n function setZoom(k) {\n state.zoom.scaleTo(state.zoom.__baseElem, k);\n state.needsRedraw = true;\n }\n },\n zoomToFit: function(state, transitionDuration = 0, padding = 10, ...bboxArgs) {\n const bbox = this.getGraphBbox(...bboxArgs);\n \n if (bbox) {\n const center = {\n x: (bbox.x[0] + bbox.x[1]) / 2,\n y: (bbox.y[0] + bbox.y[1]) / 2,\n };\n\n const zoomK = Math.max(1e-12, Math.min(1e12,\n (state.width - padding * 2) / (bbox.x[1] - bbox.x[0]),\n (state.height - padding * 2) / (bbox.y[1] - bbox.y[0]))\n );\n\n this.centerAt(center.x, center.y, transitionDuration);\n this.zoom(zoomK, transitionDuration);\n }\n\n return this;\n },\n getGraphBbox: function(state, nodeFilter = () => true) {\n const getVal = accessorFn(state.nodeVal);\n const getR = node => Math.sqrt(Math.max(0, getVal(node) || 1)) * state.nodeRelSize;\n\n const nodesPos = state.graphData.nodes.filter(nodeFilter).map(node => ({\n x: node.x,\n y: node.y,\n r: getR(node)\n }));\n\n return !nodesPos.length ? null : {\n x: [\n d3Min(nodesPos, node => node.x - node.r),\n d3Max(nodesPos, node => node.x + node.r)\n ],\n y: [\n d3Min(nodesPos, node => node.y - node.r),\n d3Max(nodesPos, node => node.y + node.r)\n ]\n };\n },\n pauseAnimation: function(state) {\n if (state.animationFrameRequestId) {\n cancelAnimationFrame(state.animationFrameRequestId);\n state.animationFrameRequestId = null;\n }\n return this;\n },\n resumeAnimation: function(state) {\n if (!state.animationFrameRequestId) {\n this._animationCycle();\n }\n return this;\n },\n _destructor: function() {\n this.pauseAnimation();\n this.graphData({ nodes: [], links: []});\n },\n ...linkedMethods\n },\n\n stateInit: () => ({\n lastSetZoom: 1,\n zoom: d3Zoom(),\n forceGraph: new CanvasForceGraph(),\n shadowGraph: new CanvasForceGraph()\n .cooldownTicks(0)\n .nodeColor('__indexColor')\n .linkColor('__indexColor')\n .isShadow(true),\n colorTracker: new ColorTracker(), // indexed objects for rgb lookup\n tweenGroup: new TweenGroup()\n }),\n\n init: function(domNode, state) {\n // Wipe DOM\n domNode.innerHTML = '';\n\n // Container anchor for canvas and tooltip\n const container = document.createElement('div');\n container.classList.add('force-graph-container');\n container.style.position = 'relative';\n domNode.appendChild(container);\n\n state.canvas = document.createElement('canvas');\n if (state.backgroundColor) state.canvas.style.background = state.backgroundColor;\n container.appendChild(state.canvas);\n\n state.shadowCanvas = document.createElement('canvas');\n\n // Show shadow canvas\n //state.shadowCanvas.style.position = 'absolute';\n //state.shadowCanvas.style.top = '0';\n //state.shadowCanvas.style.left = '0';\n //container.appendChild(state.shadowCanvas);\n\n const ctx = state.canvas.getContext('2d');\n const shadowCtx = state.shadowCanvas.getContext('2d', { willReadFrequently: true });\n\n const pointerPos = { x: -1e12, y: -1e12 };\n const getObjUnderPointer = () => {\n let obj = null;\n const pxScale = window.devicePixelRatio;\n const px = (pointerPos.x > 0 && pointerPos.y > 0)\n ? shadowCtx.getImageData(pointerPos.x * pxScale, pointerPos.y * pxScale, 1, 1)\n : null;\n // Lookup object per pixel color\n px && (obj = state.colorTracker.lookup(px.data));\n return obj;\n };\n\n // Setup node drag interaction\n d3Select(state.canvas).call(\n d3Drag()\n .subject(() => {\n if (!state.enableNodeDrag) { return null; }\n const obj = getObjUnderPointer();\n return (obj && obj.type === 'Node') ? obj.d : null; // Only drag nodes\n })\n .on('start', ev => {\n const obj = ev.subject;\n obj.__initialDragPos = { x: obj.x, y: obj.y, fx: obj.fx, fy: obj.fy };\n\n // keep engine running at low intensity throughout drag\n if (!ev.active) {\n obj.fx = obj.x; obj.fy = obj.y; // Fix points\n }\n\n // drag cursor\n state.canvas.classList.add('grabbable');\n })\n .on('drag', ev => {\n const obj = ev.subject;\n const initPos = obj.__initialDragPos;\n const dragPos = ev;\n\n const k = d3ZoomTransform(state.canvas).k;\n const translate = {\n x: (initPos.x + (dragPos.x - initPos.x) / k) - obj.x,\n y: (initPos.y + (dragPos.y - initPos.y) / k) - obj.y\n };\n\n // Move fx/fy (and x/y) of nodes based on the scaled drag distance since the drag start\n ['x', 'y'].forEach(c => obj[`f${c}`] = obj[c] = initPos[c] + (dragPos[c] - initPos[c]) / k);\n\n // prevent freeze while dragging\n state.forceGraph\n .d3AlphaTarget(0.3) // keep engine running at low intensity throughout drag\n .resetCountdown(); // prevent freeze while dragging\n\n state.isPointerDragging = true;\n\n obj.__dragged = true;\n state.onNodeDrag(obj, translate);\n })\n .on('end', ev => {\n const obj = ev.subject;\n const initPos = obj.__initialDragPos;\n const translate = {x: obj.x - initPos.x, y: obj.y - initPos.y};\n\n if (initPos.fx === undefined) { obj.fx = undefined; }\n if (initPos.fy === undefined) { obj.fy = undefined; }\n delete(obj.__initialDragPos);\n\n if (state.forceGraph.d3AlphaTarget()) {\n state.forceGraph\n .d3AlphaTarget(0) // release engine low intensity\n .resetCountdown(); // let the engine readjust after releasing fixed nodes\n }\n\n // drag cursor\n state.canvas.classList.remove('grabbable');\n\n state.isPointerDragging = false;\n\n if (obj.__dragged) {\n delete(obj.__dragged);\n state.onNodeDragEnd(obj, translate);\n }\n })\n );\n\n // Setup zoom / pan interaction\n state.zoom(state.zoom.__baseElem = d3Select(state.canvas)); // Attach controlling elem for easy access\n\n state.zoom.__baseElem.on('dblclick.zoom', null); // Disable double-click to zoom\n\n state.zoom\n .filter(ev =>\n // disable zoom interaction\n !ev.button\n && state.enableZoomPanInteraction\n && (ev.type !== 'wheel' || accessorFn(state.enableZoomInteraction)(ev))\n && (ev.type === 'wheel' || accessorFn(state.enablePanInteraction)(ev))\n )\n .on('zoom', ev => {\n const t = ev.transform;\n [ctx, shadowCtx].forEach(c => {\n resetTransform(c);\n c.translate(t.x, t.y);\n c.scale(t.k, t.k);\n });\n state.onZoom && state.onZoom({ ...t, ...this.centerAt() }); // report x,y coordinates relative to canvas center\n state.needsRedraw = true;\n })\n .on('end', ev => state.onZoomEnd && state.onZoomEnd({ ...ev.transform, ...this.centerAt() }));\n\n adjustCanvasSize(state);\n\n state.forceGraph\n .onNeedsRedraw(() => state.needsRedraw = true)\n .onFinishUpdate(() => {\n // re-zoom, if still in default position (not user modified)\n if (d3ZoomTransform(state.canvas).k === state.lastSetZoom && state.graphData.nodes.length) {\n state.zoom.scaleTo(state.zoom.__baseElem,\n state.lastSetZoom = ZOOM2NODES_FACTOR / Math.cbrt(state.graphData.nodes.length)\n );\n state.needsRedraw = true;\n }\n });\n\n // Setup tooltip\n state.tooltip = new Tooltip(container);\n\n // Capture pointer coords on move or touchstart\n ['pointermove', 'pointerdown'].forEach(evType =>\n container.addEventListener(evType, ev => {\n if (evType === 'pointerdown') {\n state.isPointerPressed = true; // track click state\n state.pointerDownEvent = ev;\n }\n\n // detect pointer drag on canvas pan\n !state.isPointerDragging && ev.type === 'pointermove'\n && (state.onBackgroundClick) // only bother detecting drags this way if background clicks are enabled (so they don't trigger accidentally on canvas panning)\n && (ev.pressure > 0 || state.isPointerPressed) // ev.pressure always 0 on Safari, so we use the isPointerPressed tracker\n && (ev.pointerType !== 'touch' || ev.movementX === undefined || [ev.movementX, ev.movementY].some(m => Math.abs(m) > 1)) // relax drag trigger sensitivity on touch events\n && (state.isPointerDragging = true);\n\n // update the pointer pos\n const offset = getOffset(container);\n pointerPos.x = ev.pageX - offset.left;\n pointerPos.y = ev.pageY - offset.top;\n\n //\n\n function getOffset(el) {\n const rect = el.getBoundingClientRect(),\n scrollLeft = window.pageXOffset || document.documentElement.scrollLeft,\n scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n return { top: rect.top + scrollTop, left: rect.left + scrollLeft };\n }\n }, { passive: true })\n );\n\n // Handle click/touch events on nodes/links\n container.addEventListener('pointerup', ev => {\n state.isPointerPressed = false;\n if (state.isPointerDragging) {\n state.isPointerDragging = false;\n return; // don't trigger click events after pointer drag (pan / node drag functionality)\n }\n\n const cbEvents = [ev, state.pointerDownEvent];\n requestAnimationFrame(() => { // trigger click events asynchronously, to allow hoverObj to be set (on frame)\n if (ev.button === 0) { // mouse left-click or touch\n if (state.hoverObj) {\n const fn = state[`on${state.hoverObj.type}Click`];\n fn && fn(state.hoverObj.d, ...cbEvents);\n } else {\n state.onBackgroundClick && state.onBackgroundClick(...cbEvents);\n }\n }\n\n if (ev.button === 2) { // mouse right-click\n if (state.hoverObj) {\n const fn = state[`on${state.hoverObj.type}RightClick`];\n fn && fn(state.hoverObj.d, ...cbEvents);\n } else {\n state.onBackgroundRightClick && state.onBackgroundRightClick(...cbEvents);\n }\n }\n });\n }, { passive: true });\n\n container.addEventListener('contextmenu', ev => {\n if (!state.onBackgroundRightClick && !state.onNodeRightClick && !state.onLinkRightClick) return true; // default contextmenu behavior\n ev.preventDefault();\n return false;\n });\n\n state.forceGraph(ctx);\n state.shadowGraph(shadowCtx);\n\n //\n\n const refreshShadowCanvas = throttle(() => {\n // wipe canvas\n clearCanvas(shadowCtx, state.width, state.height);\n\n // Adjust link hover area\n state.shadowGraph.linkWidth(l => accessorFn(state.linkWidth)(l) + state.linkHoverPrecision);\n\n // redraw\n const t = d3ZoomTransform(state.canvas);\n state.shadowGraph.globalScale(t.k).tickFrame();\n }, HOVER_CANVAS_THROTTLE_DELAY);\n state.flushShadowCanvas = refreshShadowCanvas.flush; // hook to immediately invoke shadow canvas paint\n\n // Kick-off renderer\n (this._animationCycle = function animate() { // IIFE\n const doRedraw = !state.autoPauseRedraw || !!state.needsRedraw || state.forceGraph.isEngineRunning()\n || state.graphData.links.some(d => d.__photons && d.__photons.length);\n state.needsRedraw = false;\n\n if (state.enablePointerInteraction) {\n // Update tooltip and trigger onHover events\n const obj = !state.isPointerDragging ? getObjUnderPointer() : null; // don't hover during drag\n if (obj !== state.hoverObj) {\n const prevObj = state.hoverObj;\n const prevObjType = prevObj ? prevObj.type : null;\n const objType = obj ? obj.type : null;\n\n if (prevObjType && prevObjType !== objType) {\n // Hover out\n const fn = state[`on${prevObjType}Hover`];\n fn && fn(null, prevObj.d);\n }\n if (objType) {\n // Hover in\n const fn = state[`on${objType}Hover`];\n fn && fn(obj.d, prevObjType === objType ? prevObj.d : null);\n }\n\n state.tooltip.content(obj ? accessorFn(state[`${obj.type.toLowerCase()}Label`])(obj.d) || null : null);\n\n // set pointer if hovered object is clickable\n state.canvas.classList[\n ((obj && state[`on${objType}Click`]) || (!obj && state.onBackgroundClick)) ? 'add' : 'remove'\n ]('clickable');\n\n state.hoverObj = obj;\n }\n\n doRedraw && refreshShadowCanvas();\n }\n\n if(doRedraw) {\n // Wipe canvas\n clearCanvas(ctx, state.width, state.height);\n\n // Frame cycle\n const globalScale = d3ZoomTransform(state.canvas).k;\n state.onRenderFramePre && state.onRenderFramePre(ctx, globalScale);\n state.forceGraph.globalScale(globalScale).tickFrame();\n state.onRenderFramePost && state.onRenderFramePost(ctx, globalScale);\n }\n\n state.tweenGroup.update(); // update canvas animation tweens\n\n state.animationFrameRequestId = requestAnimationFrame(animate);\n })();\n },\n\n update: function updateFn(state) {}\n});\n"],"names":["styleInject","Selection","find","constant","attrRemove","attrRemoveNS","attrConstant","attrConstantNS","attrFunction","attrFunctionNS","styleRemove","styleConstant","styleFunction","textConstant","textFunction","parseTypenames","root","get","set","nopropagation","select","noevent","defaultFilter","defaultTouchable","nodrag","rgb","colorRgb","number","identity","timeout","now","interpolateTransform","style","easeCubicInOut","dragEnable","max","min","Symbol","objectProto","nativeObjectToString","symToStringTag","FUNC_ERROR_TEXT","_arrayLikeToArray","_arrayWithHoles","_classCallCheck","_createClass","_iterableToArrayLimit","_nonIterableRest","_slicedToArray","_unsupportedIterableToArray","index","_typeof","_arrayWithoutHoles","_toPropertyKey","_iterableToArray","_nonIterableSpread","_toConsumableArray","_toPrimitive","tinyColor","Kapsule","add","addAll","removeAll","defaultX","leaf_copy","treeProto","tree_add","tree_addAll","tree_cover","tree_data","tree_extent","tree_find","tree_remove","tree_removeAll","tree_root","tree_size","tree_visit","tree_visitAfter","tree_x","defaultY","tree_y","tree_findAllWithinRadius","abs","cos","sin","acos","sqrt","pi","autoColorScale","scaleOrdinal","schemePaired","autoColorObjects","objects","colorByAccessor","colorField","filter","obj","forEach","_ref","idAccessor","nodes","links","_ref2","arguments","length","undefined","_ref2$nodeFilter","nodeFilter","_ref2$onLoopError","onLoopError","loopIds","concat","join","graph","node","data","out","depth","skip","_ref3","source","target","sourceId","getNodeId","targetId","hasOwnProperty","sourceNode","targetNode","push","foundLoops","traverse","Object","values","nodeDepths","assign","apply","entries","_ref4","_ref5","map","_ref6","_ref7","id","_defineProperty","nodeStack","currentDepth","_loop","i","indexOf","loop","slice","d","some","foundLoop","every","idx","l","DAG_LEVEL_NODE_RATIO","notifyRedraw","_","state","onNeedsRedraw","updDataPhotons","isShadow","linkParticlesAccessor","accessorFn","linkDirectionalParticles","graphData","link","numPhotons","Math","round","__photons","Array","props","onChange","engineRunning","dagMode","n","fx","fy","dagLevelDistance","dagNodeFilter","default","onDagError","triggerUpdate","nodeRelSize","nodeId","nodeVal","nodeColor","nodeAutoColorBy","nodeCanvasObject","nodeCanvasObjectMode","nodeVisibility","linkSource","linkTarget","linkVisibility","linkColor","linkAutoColorBy","linkLineDash","linkWidth","linkCurvature","linkCanvasObject","linkCanvasObjectMode","linkDirectionalArrowLength","linkDirectionalArrowColor","linkDirectionalArrowRelPos","linkDirectionalParticleSpeed","linkDirectionalParticleWidth","linkDirectionalParticleColor","globalScale","d3AlphaMin","d3AlphaDecay","alphaDecay","forceLayout","d3AlphaTarget","alphaTarget","d3VelocityDecay","velocityDecay","warmupTicks","cooldownTicks","Infinity","cooldownTime","onUpdate","onFinishUpdate","onEngineTick","onEngineStop","methods","d3Force","forceName","forceFn","force","d3ReheatSimulation","alpha","resetCountdown","cntTicks","startTickTime","Date","isEngineRunning","tickFrame","layoutTick","paintLinks","paintArrows","paintPhotons","paintNodes","tick","getVisibility","getVal","getColor","getNodeCanvasObjectMode","ctx","padAmount","visibleNodes","save","restore","r","beginPath","arc","x","y","PI","fillStyle","fill","getWidth","getLineDash","getCurvature","getLinkCanvasObjectMode","visibleLinks","calcLinkControlPoints","beforeCustomLinks","afterCustomLinks","defaultPaintLinks","replaceCustomLinks","otherCustomLinks","before","after","replace","linksPerColor","indexBy","color","linksPerWidth","lineColor","width","linesPerLineDash","lineWidth","dashSegments","lineDashSegments","start","end","moveTo","controlPoints","__controlPoints","lineTo","strokeStyle","setLineDash","stroke","curvature","pow","a","atan2","cp","ARROW_WH_RATIO","ARROW_VLEN_RATIO","getLength","getRelPos","getNodeVal","arrowLength","startR","endR","arrowRelPos","arrowColor","arrowHalfWidth","bzLine","_construct","Bezier","getCoordsAlongLine","t","lineLen","posAlongLine","arrowHead","arrowTail","arrowTailVertex","arrowTailAngle","getNumPhotons","getSpeed","getDiameter","numCyclePhotons","particleSpeed","photons","photonR","photonColor","cyclePhotonIdx","needsCleanup","photon","singleHop","__singleHop","__progressRatio","photonPosRatio","coords","emitParticle","stateInit","d3ForceSimulation","d3ForceLink","d3ForceManyBody","d3ForceCenter","stop","init","canvasCtx","update","changedProps","linkForce","getDagDepths","maxDepth","includes","resetProp","invert","fixFn","d3ForceRadial","nodeDepth","strength","kapsulePropNames","kapsuleType","propNames","dummyK","_destructor","linkProp","prop","v","propName","linkMethod","method","_len","args","_key","returnVals","kapsuleInstance","returnVal","HOVER_CANVAS_THROTTLE_DELAY","ZOOM2NODES_FACTOR","bindFG","linkKapsule","CanvasForceGraph","bindBoth","linkedProps","p","linkedMethods","adjustCanvasSize","canvas","curWidth","curHeight","height","pxScale","window","devicePixelRatio","shadowCanvas","getContext","scale","k","d3ZoomTransform","zoom","translateBy","__baseElem","needsRedraw","resetTransform","pxRatio","setTransform","clearCanvas","clearRect","_objectSpread","innerWidth","innerHeight","arr","colorTracker","reset","type","objs","hexIndex","forceGraph","shadowGraph","cur","lookup","__indexColor","register","backgroundColor","background","nodeLabel","nodePointerAreaPaint","paintFn","flushShadowCanvas","linkPointerAreaPaint","linkLabel","linkHoverPrecision","minZoom","scaleExtent","maxZoom","enableNodeDrag","enableZoomInteraction","enablePanInteraction","enableZoomPanInteraction","enablePointerInteraction","hoverObj","autoPauseRedraw","onNodeDrag","onNodeDragEnd","onNodeClick","onNodeRightClick","onNodeHover","onLinkClick","onLinkRightClick","onLinkHover","onBackgroundClick","onBackgroundRightClick","onZoom","onZoomEnd","onRenderFramePre","onRenderFramePost","aliases","stopAnimation","graph2ScreenCoords","screen2GraphCoords","centerAt","transitionDuration","finalPos","setCenter","tweenGroup","Tween","getCenter","to","easing","Easing","Quadratic","Out","translateTo","setZoom","getZoom","scaleTo","zoomToFit","padding","bboxArgs","bbox","getGraphBbox","center","zoomK","getR","nodesPos","d3Min","d3Max","pauseAnimation","animationFrameRequestId","cancelAnimationFrame","resumeAnimation","_animationCycle","lastSetZoom","d3Zoom","ColorTracker","TweenGroup","domNode","_this","innerHTML","container","document","createElement","classList","position","appendChild","shadowCtx","willReadFrequently","pointerPos","getObjUnderPointer","px","getImageData","d3Select","call","d3Drag","subject","on","ev","__initialDragPos","active","initPos","dragPos","translate","c","isPointerDragging","__dragged","remove","button","transform","cbrt","tooltip","Tooltip","evType","addEventListener","isPointerPressed","pointerDownEvent","pressure","pointerType","movementX","movementY","m","offset","getOffset","pageX","left","pageY","top","el","rect","getBoundingClientRect","scrollLeft","pageXOffset","documentElement","scrollTop","pageYOffset","passive","cbEvents","requestAnimationFrame","fn","preventDefault","refreshShadowCanvas","throttle","flush","animate","doRedraw","prevObj","prevObjType","objType","content","toLowerCase","updateFn"],"mappings":"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Q,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;EAChD,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;EAC1C,YAAY,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC;EACxG;EACA,aAAa;EACb,YAAY,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;EACzE;EACA,QAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,GAAG;EACvC,KAAK;EACL,IAAI,KAAK,CAAC,iBAAiB,GAAG,KAAK;EACnC,IAAI,OAAO,KAAK;EAChB,CAAC,EAAE,CAAC;EAaJ;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,KAAK,GAAG,SAAS;EACrB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACa,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;EACpC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACgB,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK;EAC1C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACU,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK;EAC9B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACa,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;EACpC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACa,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;;EC3mCpC,SAASY,mBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;EACjC,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;EAC/C,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EACvD,EAAE,OAAO,CAAC;EACV;EACA,SAASC,iBAAe,CAAC,CAAC,EAAE;EAC5B,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;EAChC;EACA,SAASC,iBAAe,CAAC,CAAC,EAAE,CAAC,EAAE;EAC/B,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,IAAI,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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183]}
|
|
1
|
+
{"version":3,"file":"force-graph.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../node_modules/d3-selection/src/namespaces.js","../node_modules/d3-selection/src/namespace.js","../node_modules/d3-selection/src/creator.js","../node_modules/d3-selection/src/selector.js","../node_modules/d3-selection/src/selection/select.js","../node_modules/d3-selection/src/array.js","../node_modules/d3-selection/src/selectorAll.js","../node_modules/d3-selection/src/selection/selectAll.js","../node_modules/d3-selection/src/matcher.js","../node_modules/d3-selection/src/selection/selectChild.js","../node_modules/d3-selection/src/selection/selectChildren.js","../node_modules/d3-selection/src/selection/filter.js","../node_modules/d3-selection/src/selection/sparse.js","../node_modules/d3-selection/src/selection/enter.js","../node_modules/d3-selection/src/constant.js","../node_modules/d3-selection/src/selection/data.js","../node_modules/d3-selection/src/selection/exit.js","../node_modules/d3-selection/src/selection/join.js","../node_modules/d3-selection/src/selection/merge.js","../node_modules/d3-selection/src/selection/order.js","../node_modules/d3-selection/src/selection/sort.js","../node_modules/d3-selection/src/selection/call.js","../node_modules/d3-selection/src/selection/nodes.js","../node_modules/d3-selection/src/selection/node.js","../node_modules/d3-selection/src/selection/size.js","../node_modules/d3-selection/src/selection/empty.js","../node_modules/d3-selection/src/selection/each.js","../node_modules/d3-selection/src/selection/attr.js","../node_modules/d3-selection/src/window.js","../node_modules/d3-selection/src/selection/style.js","../node_modules/d3-selection/src/selection/property.js","../node_modules/d3-selection/src/selection/classed.js","../node_modules/d3-selection/src/selection/text.js","../node_modules/d3-selection/src/selection/html.js","../node_modules/d3-selection/src/selection/raise.js","../node_modules/d3-selection/src/selection/lower.js","../node_modules/d3-selection/src/selection/append.js","../node_modules/d3-selection/src/selection/insert.js","../node_modules/d3-selection/src/selection/remove.js","../node_modules/d3-selection/src/selection/clone.js","../node_modules/d3-selection/src/selection/datum.js","../node_modules/d3-selection/src/selection/on.js","../node_modules/d3-selection/src/selection/dispatch.js","../node_modules/d3-selection/src/selection/iterator.js","../node_modules/d3-selection/src/selection/index.js","../node_modules/d3-selection/src/select.js","../node_modules/d3-selection/src/sourceEvent.js","../node_modules/d3-selection/src/pointer.js","../node_modules/d3-dispatch/src/dispatch.js","../node_modules/d3-drag/src/noevent.js","../node_modules/d3-drag/src/nodrag.js","../node_modules/d3-drag/src/constant.js","../node_modules/d3-drag/src/event.js","../node_modules/d3-drag/src/drag.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-interpolate/src/transform/decompose.js","../node_modules/d3-interpolate/src/transform/parse.js","../node_modules/d3-interpolate/src/transform/index.js","../node_modules/d3-interpolate/src/zoom.js","../node_modules/d3-timer/src/timer.js","../node_modules/d3-timer/src/timeout.js","../node_modules/d3-transition/src/transition/schedule.js","../node_modules/d3-transition/src/interrupt.js","../node_modules/d3-transition/src/selection/interrupt.js","../node_modules/d3-transition/src/transition/tween.js","../node_modules/d3-transition/src/transition/interpolate.js","../node_modules/d3-transition/src/transition/attr.js","../node_modules/d3-transition/src/transition/attrTween.js","../node_modules/d3-transition/src/transition/delay.js","../node_modules/d3-transition/src/transition/duration.js","../node_modules/d3-transition/src/transition/ease.js","../node_modules/d3-transition/src/transition/easeVarying.js","../node_modules/d3-transition/src/transition/filter.js","../node_modules/d3-transition/src/transition/merge.js","../node_modules/d3-transition/src/transition/on.js","../node_modules/d3-transition/src/transition/remove.js","../node_modules/d3-transition/src/transition/select.js","../node_modules/d3-transition/src/transition/selectAll.js","../node_modules/d3-transition/src/transition/selection.js","../node_modules/d3-transition/src/transition/style.js","../node_modules/d3-transition/src/transition/styleTween.js","../node_modules/d3-transition/src/transition/text.js","../node_modules/d3-transition/src/transition/textTween.js","../node_modules/d3-transition/src/transition/transition.js","../node_modules/d3-transition/src/transition/end.js","../node_modules/d3-transition/src/transition/index.js","../node_modules/d3-ease/src/cubic.js","../node_modules/d3-transition/src/selection/transition.js","../node_modules/d3-transition/src/selection/index.js","../node_modules/d3-zoom/src/constant.js","../node_modules/d3-zoom/src/event.js","../node_modules/d3-zoom/src/transform.js","../node_modules/d3-zoom/src/noevent.js","../node_modules/d3-zoom/src/zoom.js","../node_modules/internmap/src/index.js","../node_modules/d3-array/src/max.js","../node_modules/d3-array/src/min.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/_trimmedEndIndex.js","../node_modules/lodash-es/_baseTrim.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/toNumber.js","../node_modules/lodash-es/now.js","../node_modules/lodash-es/debounce.js","../node_modules/lodash-es/throttle.js","../node_modules/@tweenjs/tween.js/dist/tween.esm.js","../node_modules/kapsule/dist/kapsule.mjs","../node_modules/accessor-fn/dist/accessor-fn.mjs","../node_modules/tinycolor2/esm/tinycolor.js","../node_modules/canvas-color-tracker/dist/canvas-color-tracker.mjs","../node_modules/preact/dist/preact.mjs","../node_modules/float-tooltip/dist/float-tooltip.mjs","../node_modules/d3-force-3d/src/center.js","../node_modules/d3-binarytree/src/add.js","../node_modules/d3-binarytree/src/cover.js","../node_modules/d3-binarytree/src/data.js","../node_modules/d3-binarytree/src/extent.js","../node_modules/d3-binarytree/src/half.js","../node_modules/d3-binarytree/src/find.js","../node_modules/d3-binarytree/src/remove.js","../node_modules/d3-binarytree/src/root.js","../node_modules/d3-binarytree/src/size.js","../node_modules/d3-binarytree/src/visit.js","../node_modules/d3-binarytree/src/visitAfter.js","../node_modules/d3-binarytree/src/x.js","../node_modules/d3-binarytree/src/binarytree.js","../node_modules/d3-quadtree/src/add.js","../node_modules/d3-quadtree/src/cover.js","../node_modules/d3-quadtree/src/data.js","../node_modules/d3-quadtree/src/extent.js","../node_modules/d3-quadtree/src/quad.js","../node_modules/d3-quadtree/src/find.js","../node_modules/d3-quadtree/src/remove.js","../node_modules/d3-quadtree/src/root.js","../node_modules/d3-quadtree/src/size.js","../node_modules/d3-quadtree/src/visit.js","../node_modules/d3-quadtree/src/visitAfter.js","../node_modules/d3-quadtree/src/x.js","../node_modules/d3-quadtree/src/y.js","../node_modules/d3-quadtree/src/quadtree.js","../node_modules/d3-octree/src/add.js","../node_modules/d3-octree/src/cover.js","../node_modules/d3-octree/src/data.js","../node_modules/d3-octree/src/extent.js","../node_modules/d3-octree/src/octant.js","../node_modules/d3-octree/src/find.js","../node_modules/d3-octree/src/findAll.js","../node_modules/d3-octree/src/remove.js","../node_modules/d3-octree/src/root.js","../node_modules/d3-octree/src/size.js","../node_modules/d3-octree/src/visit.js","../node_modules/d3-octree/src/visitAfter.js","../node_modules/d3-octree/src/x.js","../node_modules/d3-octree/src/y.js","../node_modules/d3-octree/src/z.js","../node_modules/d3-octree/src/octree.js","../node_modules/d3-force-3d/src/constant.js","../node_modules/d3-force-3d/src/jiggle.js","../node_modules/d3-force-3d/src/link.js","../node_modules/d3-force-3d/src/lcg.js","../node_modules/d3-force-3d/src/simulation.js","../node_modules/d3-force-3d/src/manyBody.js","../node_modules/d3-force-3d/src/radial.js","../node_modules/bezier-js/src/utils.js","../node_modules/bezier-js/src/poly-bezier.js","../node_modules/bezier-js/src/bezier.js","../node_modules/index-array-by/dist/index-array-by.mjs","../node_modules/d3-scale/src/init.js","../node_modules/d3-scale/src/ordinal.js","../node_modules/d3-scale-chromatic/src/colors.js","../node_modules/d3-scale-chromatic/src/categorical/Paired.js","../src/color-utils.js","../src/dagDepths.js","../src/canvas-force-graph.js","../src/kapsule-link.js","../src/force-graph.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\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\";\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","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\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","// 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","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","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","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","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 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","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 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 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 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","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","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\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","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","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, 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(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\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","// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {passive: false};\nexport const nonpassivecapture = {capture: true, passive: false};\n\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent, {nonpassivecapture} from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, nonpassivecapture);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, nonpassivecapture);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, nonpassivecapture);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","export default x => () => x;\n","export default function DragEvent(type, {\n sourceEvent,\n subject,\n target,\n identifier,\n active,\n x, y, dx, dy,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n subject: {value: subject, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n identifier: {value: identifier, enumerable: true, configurable: true},\n active: {value: active, enumerable: true, configurable: true},\n x: {value: x, enumerable: true, configurable: true},\n y: {value: y, enumerable: true, configurable: true},\n dx: {value: dx, enumerable: true, configurable: true},\n dy: {value: dy, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","import {dispatch} from \"d3-dispatch\";\nimport {select, pointer} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nonpassive, nonpassivecapture, nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(event, d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved, nonpassive)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned(event, d) {\n if (touchending || !filter.call(this, event, d)) return;\n var gesture = beforestart(this, container.call(this, event, d), event, d, \"mouse\");\n if (!gesture) return;\n select(event.view)\n .on(\"mousemove.drag\", mousemoved, nonpassivecapture)\n .on(\"mouseup.drag\", mouseupped, nonpassivecapture);\n nodrag(event.view);\n nopropagation(event);\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\", event);\n }\n\n function mousemoved(event) {\n noevent(event);\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\", event);\n }\n\n function mouseupped(event) {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent(event);\n gestures.mouse(\"end\", event);\n }\n\n function touchstarted(event, d) {\n if (!filter.call(this, event, d)) return;\n var touches = event.changedTouches,\n c = container.call(this, event, d),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) {\n nopropagation(event);\n gesture(\"start\", event, touches[i]);\n }\n }\n }\n\n function touchmoved(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent(event);\n gesture(\"drag\", event, touches[i]);\n }\n }\n }\n\n function touchended(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation(event);\n gesture(\"end\", event, touches[i]);\n }\n }\n }\n\n function beforestart(that, container, event, d, identifier, touch) {\n var dispatch = listeners.copy(),\n p = pointer(touch || event, container), dx, dy,\n s;\n\n if ((s = subject.call(that, new DragEvent(\"beforestart\", {\n sourceEvent: event,\n target: drag,\n identifier,\n active,\n x: p[0],\n y: p[1],\n dx: 0,\n dy: 0,\n dispatch\n }), d)) == null) return;\n\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n\n return function gesture(type, event, touch) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[identifier] = gesture, n = active++; break;\n case \"end\": delete gestures[identifier], --active; // falls through\n case \"drag\": p = pointer(touch || event, container), n = active; break;\n }\n dispatch.call(\n type,\n that,\n new DragEvent(type, {\n sourceEvent: event,\n subject: s,\n target: drag,\n identifier,\n active: n,\n x: p[0] + dx,\n y: p[1] + dy,\n dx: p[0] - p0[0],\n dy: p[1] - p0[1],\n dispatch\n }),\n d\n );\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\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 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","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\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","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","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\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","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 interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\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","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 {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 {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 {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","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 {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 {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","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 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 {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 {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 {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","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 {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","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","export default x => () => x;\n","export default function ZoomEvent(type, {\n sourceEvent,\n target,\n transform,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n transform: {value: transform, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\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","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {select, pointer} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled, {passive: false})\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p, event) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n\n zoom.scaleTo = function(selection, k, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n\n zoom.translateBy = function(selection, x, y, event) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n\n zoom.translateTo = function(selection, x, y, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point, event) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function(event) {\n if (event) this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = pointer(event);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned(event, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var currentTarget = event.currentTarget,\n g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event)\n .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started, i, t, p;\n\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n zoom.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\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 default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n","/**\n * The Ease class provides a collection of easing functions for use with tween.js.\n */\nvar Easing = Object.freeze({\n Linear: Object.freeze({\n None: function (amount) {\n return amount;\n },\n In: function (amount) {\n return amount;\n },\n Out: function (amount) {\n return amount;\n },\n InOut: function (amount) {\n return amount;\n },\n }),\n Quadratic: Object.freeze({\n In: function (amount) {\n return amount * amount;\n },\n Out: function (amount) {\n return amount * (2 - amount);\n },\n InOut: function (amount) {\n if ((amount *= 2) < 1) {\n return 0.5 * amount * amount;\n }\n return -0.5 * (--amount * (amount - 2) - 1);\n },\n }),\n Cubic: Object.freeze({\n In: function (amount) {\n return amount * amount * amount;\n },\n Out: function (amount) {\n return --amount * amount * amount + 1;\n },\n InOut: function (amount) {\n if ((amount *= 2) < 1) {\n return 0.5 * amount * amount * amount;\n }\n return 0.5 * ((amount -= 2) * amount * amount + 2);\n },\n }),\n Quartic: Object.freeze({\n In: function (amount) {\n return amount * amount * amount * amount;\n },\n Out: function (amount) {\n return 1 - --amount * amount * amount * amount;\n },\n InOut: function (amount) {\n if ((amount *= 2) < 1) {\n return 0.5 * amount * amount * amount * amount;\n }\n return -0.5 * ((amount -= 2) * amount * amount * amount - 2);\n },\n }),\n Quintic: Object.freeze({\n In: function (amount) {\n return amount * amount * amount * amount * amount;\n },\n Out: function (amount) {\n return --amount * amount * amount * amount * amount + 1;\n },\n InOut: function (amount) {\n if ((amount *= 2) < 1) {\n return 0.5 * amount * amount * amount * amount * amount;\n }\n return 0.5 * ((amount -= 2) * amount * amount * amount * amount + 2);\n },\n }),\n Sinusoidal: Object.freeze({\n In: function (amount) {\n return 1 - Math.sin(((1.0 - amount) * Math.PI) / 2);\n },\n Out: function (amount) {\n return Math.sin((amount * Math.PI) / 2);\n },\n InOut: function (amount) {\n return 0.5 * (1 - Math.sin(Math.PI * (0.5 - amount)));\n },\n }),\n Exponential: Object.freeze({\n In: function (amount) {\n return amount === 0 ? 0 : Math.pow(1024, amount - 1);\n },\n Out: function (amount) {\n return amount === 1 ? 1 : 1 - Math.pow(2, -10 * amount);\n },\n InOut: function (amount) {\n if (amount === 0) {\n return 0;\n }\n if (amount === 1) {\n return 1;\n }\n if ((amount *= 2) < 1) {\n return 0.5 * Math.pow(1024, amount - 1);\n }\n return 0.5 * (-Math.pow(2, -10 * (amount - 1)) + 2);\n },\n }),\n Circular: Object.freeze({\n In: function (amount) {\n return 1 - Math.sqrt(1 - amount * amount);\n },\n Out: function (amount) {\n return Math.sqrt(1 - --amount * amount);\n },\n InOut: function (amount) {\n if ((amount *= 2) < 1) {\n return -0.5 * (Math.sqrt(1 - amount * amount) - 1);\n }\n return 0.5 * (Math.sqrt(1 - (amount -= 2) * amount) + 1);\n },\n }),\n Elastic: Object.freeze({\n In: function (amount) {\n if (amount === 0) {\n return 0;\n }\n if (amount === 1) {\n return 1;\n }\n return -Math.pow(2, 10 * (amount - 1)) * Math.sin((amount - 1.1) * 5 * Math.PI);\n },\n Out: function (amount) {\n if (amount === 0) {\n return 0;\n }\n if (amount === 1) {\n return 1;\n }\n return Math.pow(2, -10 * amount) * Math.sin((amount - 0.1) * 5 * Math.PI) + 1;\n },\n InOut: function (amount) {\n if (amount === 0) {\n return 0;\n }\n if (amount === 1) {\n return 1;\n }\n amount *= 2;\n if (amount < 1) {\n return -0.5 * Math.pow(2, 10 * (amount - 1)) * Math.sin((amount - 1.1) * 5 * Math.PI);\n }\n return 0.5 * Math.pow(2, -10 * (amount - 1)) * Math.sin((amount - 1.1) * 5 * Math.PI) + 1;\n },\n }),\n Back: Object.freeze({\n In: function (amount) {\n var s = 1.70158;\n return amount === 1 ? 1 : amount * amount * ((s + 1) * amount - s);\n },\n Out: function (amount) {\n var s = 1.70158;\n return amount === 0 ? 0 : --amount * amount * ((s + 1) * amount + s) + 1;\n },\n InOut: function (amount) {\n var s = 1.70158 * 1.525;\n if ((amount *= 2) < 1) {\n return 0.5 * (amount * amount * ((s + 1) * amount - s));\n }\n return 0.5 * ((amount -= 2) * amount * ((s + 1) * amount + s) + 2);\n },\n }),\n Bounce: Object.freeze({\n In: function (amount) {\n return 1 - Easing.Bounce.Out(1 - amount);\n },\n Out: function (amount) {\n if (amount < 1 / 2.75) {\n return 7.5625 * amount * amount;\n }\n else if (amount < 2 / 2.75) {\n return 7.5625 * (amount -= 1.5 / 2.75) * amount + 0.75;\n }\n else if (amount < 2.5 / 2.75) {\n return 7.5625 * (amount -= 2.25 / 2.75) * amount + 0.9375;\n }\n else {\n return 7.5625 * (amount -= 2.625 / 2.75) * amount + 0.984375;\n }\n },\n InOut: function (amount) {\n if (amount < 0.5) {\n return Easing.Bounce.In(amount * 2) * 0.5;\n }\n return Easing.Bounce.Out(amount * 2 - 1) * 0.5 + 0.5;\n },\n }),\n generatePow: function (power) {\n if (power === void 0) { power = 4; }\n power = power < Number.EPSILON ? Number.EPSILON : power;\n power = power > 10000 ? 10000 : power;\n return {\n In: function (amount) {\n return Math.pow(amount, power);\n },\n Out: function (amount) {\n return 1 - Math.pow((1 - amount), power);\n },\n InOut: function (amount) {\n if (amount < 0.5) {\n return Math.pow((amount * 2), power) / 2;\n }\n return (1 - Math.pow((2 - amount * 2), power)) / 2 + 0.5;\n },\n };\n },\n});\n\nvar now = function () { return performance.now(); };\n\n/**\n * Controlling groups of tweens\n *\n * Using the TWEEN singleton to manage your tweens can cause issues in large apps with many components.\n * In these cases, you may want to create your own smaller groups of tween\n */\nvar Group = /** @class */ (function () {\n function Group() {\n var tweens = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n tweens[_i] = arguments[_i];\n }\n this._tweens = {};\n this._tweensAddedDuringUpdate = {};\n this.add.apply(this, tweens);\n }\n Group.prototype.getAll = function () {\n var _this = this;\n return Object.keys(this._tweens).map(function (tweenId) { return _this._tweens[tweenId]; });\n };\n Group.prototype.removeAll = function () {\n this._tweens = {};\n };\n Group.prototype.add = function () {\n var _a;\n var tweens = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n tweens[_i] = arguments[_i];\n }\n for (var _b = 0, tweens_1 = tweens; _b < tweens_1.length; _b++) {\n var tween = tweens_1[_b];\n // Remove from any other group first, a tween can only be in one group at a time.\n // @ts-expect-error library internal access\n (_a = tween._group) === null || _a === void 0 ? void 0 : _a.remove(tween);\n // @ts-expect-error library internal access\n tween._group = this;\n this._tweens[tween.getId()] = tween;\n this._tweensAddedDuringUpdate[tween.getId()] = tween;\n }\n };\n Group.prototype.remove = function () {\n var tweens = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n tweens[_i] = arguments[_i];\n }\n for (var _a = 0, tweens_2 = tweens; _a < tweens_2.length; _a++) {\n var tween = tweens_2[_a];\n // @ts-expect-error library internal access\n tween._group = undefined;\n delete this._tweens[tween.getId()];\n delete this._tweensAddedDuringUpdate[tween.getId()];\n }\n };\n /** Return true if all tweens in the group are not paused or playing. */\n Group.prototype.allStopped = function () {\n return this.getAll().every(function (tween) { return !tween.isPlaying(); });\n };\n Group.prototype.update = function (time, preserve) {\n if (time === void 0) { time = now(); }\n if (preserve === void 0) { preserve = true; }\n var tweenIds = Object.keys(this._tweens);\n if (tweenIds.length === 0)\n return;\n // Tweens are updated in \"batches\". If you add a new tween during an\n // update, then the new tween will be updated in the next batch.\n // If you remove a tween during an update, it may or may not be updated.\n // However, if the removed tween was added during the current batch,\n // then it will not be updated.\n while (tweenIds.length > 0) {\n this._tweensAddedDuringUpdate = {};\n for (var i = 0; i < tweenIds.length; i++) {\n var tween = this._tweens[tweenIds[i]];\n var autoStart = !preserve;\n if (tween && tween.update(time, autoStart) === false && !preserve)\n this.remove(tween);\n }\n tweenIds = Object.keys(this._tweensAddedDuringUpdate);\n }\n };\n return Group;\n}());\n\n/**\n *\n */\nvar Interpolation = {\n Linear: function (v, k) {\n var m = v.length - 1;\n var f = m * k;\n var i = Math.floor(f);\n var fn = Interpolation.Utils.Linear;\n if (k < 0) {\n return fn(v[0], v[1], f);\n }\n if (k > 1) {\n return fn(v[m], v[m - 1], m - f);\n }\n return fn(v[i], v[i + 1 > m ? m : i + 1], f - i);\n },\n Bezier: function (v, k) {\n var b = 0;\n var n = v.length - 1;\n var pw = Math.pow;\n var bn = Interpolation.Utils.Bernstein;\n for (var i = 0; i <= n; i++) {\n b += pw(1 - k, n - i) * pw(k, i) * v[i] * bn(n, i);\n }\n return b;\n },\n CatmullRom: function (v, k) {\n var m = v.length - 1;\n var f = m * k;\n var i = Math.floor(f);\n var fn = Interpolation.Utils.CatmullRom;\n if (v[0] === v[m]) {\n if (k < 0) {\n i = Math.floor((f = m * (1 + k)));\n }\n return fn(v[(i - 1 + m) % m], v[i], v[(i + 1) % m], v[(i + 2) % m], f - i);\n }\n else {\n if (k < 0) {\n return v[0] - (fn(v[0], v[0], v[1], v[1], -f) - v[0]);\n }\n if (k > 1) {\n return v[m] - (fn(v[m], v[m], v[m - 1], v[m - 1], f - m) - v[m]);\n }\n return fn(v[i ? i - 1 : 0], v[i], v[m < i + 1 ? m : i + 1], v[m < i + 2 ? m : i + 2], f - i);\n }\n },\n Utils: {\n Linear: function (p0, p1, t) {\n return (p1 - p0) * t + p0;\n },\n Bernstein: function (n, i) {\n var fc = Interpolation.Utils.Factorial;\n return fc(n) / fc(i) / fc(n - i);\n },\n Factorial: (function () {\n var a = [1];\n return function (n) {\n var s = 1;\n if (a[n]) {\n return a[n];\n }\n for (var i = n; i > 1; i--) {\n s *= i;\n }\n a[n] = s;\n return s;\n };\n })(),\n CatmullRom: function (p0, p1, p2, p3, t) {\n var v0 = (p2 - p0) * 0.5;\n var v1 = (p3 - p1) * 0.5;\n var t2 = t * t;\n var t3 = t * t2;\n return (2 * p1 - 2 * p2 + v0 + v1) * t3 + (-3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1;\n },\n },\n};\n\n/**\n * Utils\n */\nvar Sequence = /** @class */ (function () {\n function Sequence() {\n }\n Sequence.nextId = function () {\n return Sequence._nextId++;\n };\n Sequence._nextId = 0;\n return Sequence;\n}());\n\nvar mainGroup = new Group();\n\n/**\n * Tween.js - Licensed under the MIT license\n * https://github.com/tweenjs/tween.js\n * ----------------------------------------------\n *\n * See https://github.com/tweenjs/tween.js/graphs/contributors for the full list of contributors.\n * Thank you all, you're awesome!\n */\nvar Tween = /** @class */ (function () {\n function Tween(object, group) {\n this._isPaused = false;\n this._pauseStart = 0;\n this._valuesStart = {};\n this._valuesEnd = {};\n this._valuesStartRepeat = {};\n this._duration = 1000;\n this._isDynamic = false;\n this._initialRepeat = 0;\n this._repeat = 0;\n this._yoyo = false;\n this._isPlaying = false;\n this._reversed = false;\n this._delayTime = 0;\n this._startTime = 0;\n this._easingFunction = Easing.Linear.None;\n this._interpolationFunction = Interpolation.Linear;\n // eslint-disable-next-line\n this._chainedTweens = [];\n this._onStartCallbackFired = false;\n this._onEveryStartCallbackFired = false;\n this._id = Sequence.nextId();\n this._isChainStopped = false;\n this._propertiesAreSetUp = false;\n this._goToEnd = false;\n this._object = object;\n if (typeof group === 'object') {\n this._group = group;\n group.add(this);\n }\n // Use \"true\" to restore old behavior (will be removed in future release).\n else if (group === true) {\n this._group = mainGroup;\n mainGroup.add(this);\n }\n }\n Tween.prototype.getId = function () {\n return this._id;\n };\n Tween.prototype.isPlaying = function () {\n return this._isPlaying;\n };\n Tween.prototype.isPaused = function () {\n return this._isPaused;\n };\n Tween.prototype.getDuration = function () {\n return this._duration;\n };\n Tween.prototype.to = function (target, duration) {\n if (duration === void 0) { duration = 1000; }\n if (this._isPlaying)\n throw new Error('Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.');\n this._valuesEnd = target;\n this._propertiesAreSetUp = false;\n this._duration = duration < 0 ? 0 : duration;\n return this;\n };\n Tween.prototype.duration = function (duration) {\n if (duration === void 0) { duration = 1000; }\n this._duration = duration < 0 ? 0 : duration;\n return this;\n };\n Tween.prototype.dynamic = function (dynamic) {\n if (dynamic === void 0) { dynamic = false; }\n this._isDynamic = dynamic;\n return this;\n };\n Tween.prototype.start = function (time, overrideStartingValues) {\n if (time === void 0) { time = now(); }\n if (overrideStartingValues === void 0) { overrideStartingValues = false; }\n if (this._isPlaying) {\n return this;\n }\n this._repeat = this._initialRepeat;\n if (this._reversed) {\n // If we were reversed (f.e. using the yoyo feature) then we need to\n // flip the tween direction back to forward.\n this._reversed = false;\n for (var property in this._valuesStartRepeat) {\n this._swapEndStartRepeatValues(property);\n this._valuesStart[property] = this._valuesStartRepeat[property];\n }\n }\n this._isPlaying = true;\n this._isPaused = false;\n this._onStartCallbackFired = false;\n this._onEveryStartCallbackFired = false;\n this._isChainStopped = false;\n this._startTime = time;\n this._startTime += this._delayTime;\n if (!this._propertiesAreSetUp || overrideStartingValues) {\n this._propertiesAreSetUp = true;\n // If dynamic is not enabled, clone the end values instead of using the passed-in end values.\n if (!this._isDynamic) {\n var tmp = {};\n for (var prop in this._valuesEnd)\n tmp[prop] = this._valuesEnd[prop];\n this._valuesEnd = tmp;\n }\n this._setupProperties(this._object, this._valuesStart, this._valuesEnd, this._valuesStartRepeat, overrideStartingValues);\n }\n return this;\n };\n Tween.prototype.startFromCurrentValues = function (time) {\n return this.start(time, true);\n };\n Tween.prototype._setupProperties = function (_object, _valuesStart, _valuesEnd, _valuesStartRepeat, overrideStartingValues) {\n for (var property in _valuesEnd) {\n var startValue = _object[property];\n var startValueIsArray = Array.isArray(startValue);\n var propType = startValueIsArray ? 'array' : typeof startValue;\n var isInterpolationList = !startValueIsArray && Array.isArray(_valuesEnd[property]);\n // If `to()` specifies a property that doesn't exist in the source object,\n // we should not set that property in the object\n if (propType === 'undefined' || propType === 'function') {\n continue;\n }\n // Check if an Array was provided as property value\n if (isInterpolationList) {\n var endValues = _valuesEnd[property];\n if (endValues.length === 0) {\n continue;\n }\n // Handle an array of relative values.\n // Creates a local copy of the Array with the start value at the front\n var temp = [startValue];\n for (var i = 0, l = endValues.length; i < l; i += 1) {\n var value = this._handleRelativeValue(startValue, endValues[i]);\n if (isNaN(value)) {\n isInterpolationList = false;\n console.warn('Found invalid interpolation list. Skipping.');\n break;\n }\n temp.push(value);\n }\n if (isInterpolationList) {\n // if (_valuesStart[property] === undefined) { // handle end values only the first time. NOT NEEDED? setupProperties is now guarded by _propertiesAreSetUp.\n _valuesEnd[property] = temp;\n // }\n }\n }\n // handle the deepness of the values\n if ((propType === 'object' || startValueIsArray) && startValue && !isInterpolationList) {\n _valuesStart[property] = startValueIsArray ? [] : {};\n var nestedObject = startValue;\n for (var prop in nestedObject) {\n _valuesStart[property][prop] = nestedObject[prop];\n }\n // TODO? repeat nested values? And yoyo? And array values?\n _valuesStartRepeat[property] = startValueIsArray ? [] : {};\n var endValues = _valuesEnd[property];\n // If dynamic is not enabled, clone the end values instead of using the passed-in end values.\n if (!this._isDynamic) {\n var tmp = {};\n for (var prop in endValues)\n tmp[prop] = endValues[prop];\n _valuesEnd[property] = endValues = tmp;\n }\n this._setupProperties(nestedObject, _valuesStart[property], endValues, _valuesStartRepeat[property], overrideStartingValues);\n }\n else {\n // Save the starting value, but only once unless override is requested.\n if (typeof _valuesStart[property] === 'undefined' || overrideStartingValues) {\n _valuesStart[property] = startValue;\n }\n if (!startValueIsArray) {\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n _valuesStart[property] *= 1.0; // Ensures we're using numbers, not strings\n }\n if (isInterpolationList) {\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n _valuesStartRepeat[property] = _valuesEnd[property].slice().reverse();\n }\n else {\n _valuesStartRepeat[property] = _valuesStart[property] || 0;\n }\n }\n }\n };\n Tween.prototype.stop = function () {\n if (!this._isChainStopped) {\n this._isChainStopped = true;\n this.stopChainedTweens();\n }\n if (!this._isPlaying) {\n return this;\n }\n this._isPlaying = false;\n this._isPaused = false;\n if (this._onStopCallback) {\n this._onStopCallback(this._object);\n }\n return this;\n };\n Tween.prototype.end = function () {\n this._goToEnd = true;\n this.update(this._startTime + this._duration);\n return this;\n };\n Tween.prototype.pause = function (time) {\n if (time === void 0) { time = now(); }\n if (this._isPaused || !this._isPlaying) {\n return this;\n }\n this._isPaused = true;\n this._pauseStart = time;\n return this;\n };\n Tween.prototype.resume = function (time) {\n if (time === void 0) { time = now(); }\n if (!this._isPaused || !this._isPlaying) {\n return this;\n }\n this._isPaused = false;\n this._startTime += time - this._pauseStart;\n this._pauseStart = 0;\n return this;\n };\n Tween.prototype.stopChainedTweens = function () {\n for (var i = 0, numChainedTweens = this._chainedTweens.length; i < numChainedTweens; i++) {\n this._chainedTweens[i].stop();\n }\n return this;\n };\n Tween.prototype.group = function (group) {\n if (!group) {\n console.warn('tween.group() without args has been removed, use group.add(tween) instead.');\n return this;\n }\n group.add(this);\n return this;\n };\n /**\n * Removes the tween from whichever group it is in.\n */\n Tween.prototype.remove = function () {\n var _a;\n (_a = this._group) === null || _a === void 0 ? void 0 : _a.remove(this);\n return this;\n };\n Tween.prototype.delay = function (amount) {\n if (amount === void 0) { amount = 0; }\n this._delayTime = amount;\n return this;\n };\n Tween.prototype.repeat = function (times) {\n if (times === void 0) { times = 0; }\n this._initialRepeat = times;\n this._repeat = times;\n return this;\n };\n Tween.prototype.repeatDelay = function (amount) {\n this._repeatDelayTime = amount;\n return this;\n };\n Tween.prototype.yoyo = function (yoyo) {\n if (yoyo === void 0) { yoyo = false; }\n this._yoyo = yoyo;\n return this;\n };\n Tween.prototype.easing = function (easingFunction) {\n if (easingFunction === void 0) { easingFunction = Easing.Linear.None; }\n this._easingFunction = easingFunction;\n return this;\n };\n Tween.prototype.interpolation = function (interpolationFunction) {\n if (interpolationFunction === void 0) { interpolationFunction = Interpolation.Linear; }\n this._interpolationFunction = interpolationFunction;\n return this;\n };\n // eslint-disable-next-line\n Tween.prototype.chain = function () {\n var tweens = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n tweens[_i] = arguments[_i];\n }\n this._chainedTweens = tweens;\n return this;\n };\n Tween.prototype.onStart = function (callback) {\n this._onStartCallback = callback;\n return this;\n };\n Tween.prototype.onEveryStart = function (callback) {\n this._onEveryStartCallback = callback;\n return this;\n };\n Tween.prototype.onUpdate = function (callback) {\n this._onUpdateCallback = callback;\n return this;\n };\n Tween.prototype.onRepeat = function (callback) {\n this._onRepeatCallback = callback;\n return this;\n };\n Tween.prototype.onComplete = function (callback) {\n this._onCompleteCallback = callback;\n return this;\n };\n Tween.prototype.onStop = function (callback) {\n this._onStopCallback = callback;\n return this;\n };\n /**\n * @returns true if the tween is still playing after the update, false\n * otherwise (calling update on a paused tween still returns true because\n * it is still playing, just paused).\n *\n * @param autoStart - When true, calling update will implicitly call start()\n * as well. Note, if you stop() or end() the tween, but are still calling\n * update(), it will start again!\n */\n Tween.prototype.update = function (time, autoStart) {\n var _this = this;\n var _a;\n if (time === void 0) { time = now(); }\n if (autoStart === void 0) { autoStart = Tween.autoStartOnUpdate; }\n if (this._isPaused)\n return true;\n var property;\n if (!this._goToEnd && !this._isPlaying) {\n if (autoStart)\n this.start(time, true);\n else\n return false;\n }\n this._goToEnd = false;\n if (time < this._startTime) {\n return true;\n }\n if (this._onStartCallbackFired === false) {\n if (this._onStartCallback) {\n this._onStartCallback(this._object);\n }\n this._onStartCallbackFired = true;\n }\n if (this._onEveryStartCallbackFired === false) {\n if (this._onEveryStartCallback) {\n this._onEveryStartCallback(this._object);\n }\n this._onEveryStartCallbackFired = true;\n }\n var elapsedTime = time - this._startTime;\n var durationAndDelay = this._duration + ((_a = this._repeatDelayTime) !== null && _a !== void 0 ? _a : this._delayTime);\n var totalTime = this._duration + this._repeat * durationAndDelay;\n var calculateElapsedPortion = function () {\n if (_this._duration === 0)\n return 1;\n if (elapsedTime > totalTime) {\n return 1;\n }\n var timesRepeated = Math.trunc(elapsedTime / durationAndDelay);\n var timeIntoCurrentRepeat = elapsedTime - timesRepeated * durationAndDelay;\n // TODO use %?\n // const timeIntoCurrentRepeat = elapsedTime % durationAndDelay\n var portion = Math.min(timeIntoCurrentRepeat / _this._duration, 1);\n if (portion === 0 && elapsedTime === _this._duration) {\n return 1;\n }\n return portion;\n };\n var elapsed = calculateElapsedPortion();\n var value = this._easingFunction(elapsed);\n // properties transformations\n this._updateProperties(this._object, this._valuesStart, this._valuesEnd, value);\n if (this._onUpdateCallback) {\n this._onUpdateCallback(this._object, elapsed);\n }\n if (this._duration === 0 || elapsedTime >= this._duration) {\n if (this._repeat > 0) {\n var completeCount = Math.min(Math.trunc((elapsedTime - this._duration) / durationAndDelay) + 1, this._repeat);\n if (isFinite(this._repeat)) {\n this._repeat -= completeCount;\n }\n // Reassign starting values, restart by making startTime = now\n for (property in this._valuesStartRepeat) {\n if (!this._yoyo && typeof this._valuesEnd[property] === 'string') {\n this._valuesStartRepeat[property] =\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n this._valuesStartRepeat[property] + parseFloat(this._valuesEnd[property]);\n }\n if (this._yoyo) {\n this._swapEndStartRepeatValues(property);\n }\n this._valuesStart[property] = this._valuesStartRepeat[property];\n }\n if (this._yoyo) {\n this._reversed = !this._reversed;\n }\n this._startTime += durationAndDelay * completeCount;\n if (this._onRepeatCallback) {\n this._onRepeatCallback(this._object);\n }\n this._onEveryStartCallbackFired = false;\n return true;\n }\n else {\n if (this._onCompleteCallback) {\n this._onCompleteCallback(this._object);\n }\n for (var i = 0, numChainedTweens = this._chainedTweens.length; i < numChainedTweens; i++) {\n // Make the chained tweens start exactly at the time they should,\n // even if the `update()` method was called way past the duration of the tween\n this._chainedTweens[i].start(this._startTime + this._duration, false);\n }\n this._isPlaying = false;\n return false;\n }\n }\n return true;\n };\n Tween.prototype._updateProperties = function (_object, _valuesStart, _valuesEnd, value) {\n for (var property in _valuesEnd) {\n // Don't update properties that do not exist in the source object\n if (_valuesStart[property] === undefined) {\n continue;\n }\n var start = _valuesStart[property] || 0;\n var end = _valuesEnd[property];\n var startIsArray = Array.isArray(_object[property]);\n var endIsArray = Array.isArray(end);\n var isInterpolationList = !startIsArray && endIsArray;\n if (isInterpolationList) {\n _object[property] = this._interpolationFunction(end, value);\n }\n else if (typeof end === 'object' && end) {\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n this._updateProperties(_object[property], start, end, value);\n }\n else {\n // Parses relative end values with start as base (e.g.: +10, -3)\n end = this._handleRelativeValue(start, end);\n // Protect against non numeric properties.\n if (typeof end === 'number') {\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n _object[property] = start + (end - start) * value;\n }\n }\n }\n };\n Tween.prototype._handleRelativeValue = function (start, end) {\n if (typeof end !== 'string') {\n return end;\n }\n if (end.charAt(0) === '+' || end.charAt(0) === '-') {\n return start + parseFloat(end);\n }\n return parseFloat(end);\n };\n Tween.prototype._swapEndStartRepeatValues = function (property) {\n var tmp = this._valuesStartRepeat[property];\n var endValue = this._valuesEnd[property];\n if (typeof endValue === 'string') {\n this._valuesStartRepeat[property] = this._valuesStartRepeat[property] + parseFloat(endValue);\n }\n else {\n this._valuesStartRepeat[property] = this._valuesEnd[property];\n }\n this._valuesEnd[property] = tmp;\n };\n Tween.autoStartOnUpdate = false;\n return Tween;\n}());\n\nvar VERSION = '25.0.0';\n\n/**\n * Tween.js - Licensed under the MIT license\n * https://github.com/tweenjs/tween.js\n * ----------------------------------------------\n *\n * See https://github.com/tweenjs/tween.js/graphs/contributors for the full list of contributors.\n * Thank you all, you're awesome!\n */\nvar nextId = Sequence.nextId;\n/**\n * Controlling groups of tweens\n *\n * Using the TWEEN singleton to manage your tweens can cause issues in large apps with many components.\n * In these cases, you may want to create your own smaller groups of tweens.\n */\nvar TWEEN = mainGroup;\n// This is the best way to export things in a way that's compatible with both ES\n// Modules and CommonJS, without build hacks, and so as not to break the\n// existing API.\n// https://github.com/rollup/rollup/issues/1961#issuecomment-423037881\n/**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\nvar getAll = TWEEN.getAll.bind(TWEEN);\n/**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\nvar removeAll = TWEEN.removeAll.bind(TWEEN);\n/**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\nvar add = TWEEN.add.bind(TWEEN);\n/**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\nvar remove = TWEEN.remove.bind(TWEEN);\n/**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\nvar update = TWEEN.update.bind(TWEEN);\nvar exports = {\n Easing: Easing,\n Group: Group,\n Interpolation: Interpolation,\n now: now,\n Sequence: Sequence,\n nextId: nextId,\n Tween: Tween,\n VERSION: VERSION,\n /**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\n getAll: getAll,\n /**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\n removeAll: removeAll,\n /**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\n add: add,\n /**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\n remove: remove,\n /**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\n update: update,\n};\n\nexport { Easing, Group, Interpolation, Sequence, Tween, VERSION, add, exports as default, getAll, nextId, now, remove, removeAll, update };\n","import debounce from 'lodash-es/debounce.js';\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nfunction _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction _createClass(e, r, t) {\n return Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nvar Prop = /*#__PURE__*/_createClass(function Prop(name, _ref) {\n var _ref$default = _ref[\"default\"],\n defaultVal = _ref$default === void 0 ? null : _ref$default,\n _ref$triggerUpdate = _ref.triggerUpdate,\n triggerUpdate = _ref$triggerUpdate === void 0 ? true : _ref$triggerUpdate,\n _ref$onChange = _ref.onChange,\n onChange = _ref$onChange === void 0 ? function (newVal, state) {} : _ref$onChange;\n _classCallCheck(this, Prop);\n this.name = name;\n this.defaultVal = defaultVal;\n this.triggerUpdate = triggerUpdate;\n this.onChange = onChange;\n});\nfunction index (_ref2) {\n var _ref2$stateInit = _ref2.stateInit,\n stateInit = _ref2$stateInit === void 0 ? function () {\n return {};\n } : _ref2$stateInit,\n _ref2$props = _ref2.props,\n rawProps = _ref2$props === void 0 ? {} : _ref2$props,\n _ref2$methods = _ref2.methods,\n methods = _ref2$methods === void 0 ? {} : _ref2$methods,\n _ref2$aliases = _ref2.aliases,\n aliases = _ref2$aliases === void 0 ? {} : _ref2$aliases,\n _ref2$init = _ref2.init,\n initFn = _ref2$init === void 0 ? function () {} : _ref2$init,\n _ref2$update = _ref2.update,\n updateFn = _ref2$update === void 0 ? function () {} : _ref2$update;\n // Parse props into Prop instances\n var props = Object.keys(rawProps).map(function (propName) {\n return new Prop(propName, rawProps[propName]);\n });\n return function KapsuleComp() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var classMode = !!(this instanceof KapsuleComp ? this.constructor : void 0);\n var nodeElement = classMode ? args.shift() : undefined;\n var _args$ = args[0],\n options = _args$ === void 0 ? {} : _args$;\n\n // Holds component state\n var state = Object.assign({}, stateInit instanceof Function ? stateInit(options) : stateInit,\n // Support plain objects for backwards compatibility\n {\n initialised: false\n });\n\n // keeps track of which props triggered an update\n var changedProps = {};\n\n // Component constructor\n function comp(nodeElement) {\n initStatic(nodeElement, options);\n digest();\n return comp;\n }\n var initStatic = function initStatic(nodeElement, options) {\n initFn.call(comp, nodeElement, state, options);\n state.initialised = true;\n };\n var digest = debounce(function () {\n if (!state.initialised) {\n return;\n }\n updateFn.call(comp, state, changedProps);\n changedProps = {};\n }, 1);\n\n // Getter/setter methods\n props.forEach(function (prop) {\n comp[prop.name] = getSetProp(prop);\n function getSetProp(_ref3) {\n var prop = _ref3.name,\n _ref3$triggerUpdate = _ref3.triggerUpdate,\n redigest = _ref3$triggerUpdate === void 0 ? false : _ref3$triggerUpdate,\n _ref3$onChange = _ref3.onChange,\n onChange = _ref3$onChange === void 0 ? function (newVal, state) {} : _ref3$onChange,\n _ref3$defaultVal = _ref3.defaultVal,\n defaultVal = _ref3$defaultVal === void 0 ? null : _ref3$defaultVal;\n return function (_) {\n var curVal = state[prop];\n if (!arguments.length) {\n return curVal;\n } // Getter mode\n\n var val = _ === undefined ? defaultVal : _; // pick default if value passed is undefined\n state[prop] = val;\n onChange.call(comp, val, state, curVal);\n\n // track changed props\n !changedProps.hasOwnProperty(prop) && (changedProps[prop] = curVal);\n if (redigest) {\n digest();\n }\n return comp;\n };\n }\n });\n\n // Other methods\n Object.keys(methods).forEach(function (methodName) {\n comp[methodName] = function () {\n var _methods$methodName;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return (_methods$methodName = methods[methodName]).call.apply(_methods$methodName, [comp, state].concat(args));\n };\n });\n\n // Link aliases\n Object.entries(aliases).forEach(function (_ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n alias = _ref5[0],\n target = _ref5[1];\n return comp[alias] = comp[target];\n });\n\n // Reset all component props to their default value\n comp.resetProps = function () {\n props.forEach(function (prop) {\n comp[prop.name](prop.defaultVal);\n });\n return comp;\n };\n\n //\n\n comp.resetProps(); // Apply all prop defaults\n state._rerender = digest; // Expose digest method\n\n classMode && nodeElement && comp(nodeElement);\n return comp;\n };\n}\n\nexport { index as default };\n","var index = (function (p) {\n return typeof p === 'function' ? p // fn\n : typeof p === 'string' ? function (obj) {\n return obj[p];\n } // property name\n : function (obj) {\n return p;\n };\n}); // constant\n\nexport { index as default };\n","// This file is autogenerated. It's used to publish ESM to npm.\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\nvar trimLeft = /^\\s+/;\nvar trimRight = /\\s+$/;\nfunction tinycolor(color, opts) {\n color = color ? color : \"\";\n opts = opts || {};\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n var rgb = inputToRGB(color);\n this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = Math.round(100 * this._a) / 100, this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) this._r = Math.round(this._r);\n if (this._g < 1) this._g = Math.round(this._g);\n if (this._b < 1) this._b = Math.round(this._b);\n this._ok = rgb.ok;\n}\ntinycolor.prototype = {\n isDark: function isDark() {\n return this.getBrightness() < 128;\n },\n isLight: function isLight() {\n return !this.isDark();\n },\n isValid: function isValid() {\n return this._ok;\n },\n getOriginalInput: function getOriginalInput() {\n return this._originalInput;\n },\n getFormat: function getFormat() {\n return this._format;\n },\n getAlpha: function getAlpha() {\n return this._a;\n },\n getBrightness: function getBrightness() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function getLuminance() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r / 255;\n GsRGB = rgb.g / 255;\n BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) R = RsRGB / 12.92;else R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n if (GsRGB <= 0.03928) G = GsRGB / 12.92;else G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n if (BsRGB <= 0.03928) B = BsRGB / 12.92;else B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n },\n setAlpha: function setAlpha(value) {\n this._a = boundAlpha(value);\n this._roundA = Math.round(100 * this._a) / 100;\n return this;\n },\n toHsv: function toHsv() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v,\n a: this._a\n };\n },\n toHsvString: function toHsvString() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = Math.round(hsv.h * 360),\n s = Math.round(hsv.s * 100),\n v = Math.round(hsv.v * 100);\n return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function toHsl() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return {\n h: hsl.h * 360,\n s: hsl.s,\n l: hsl.l,\n a: this._a\n };\n },\n toHslString: function toHslString() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = Math.round(hsl.h * 360),\n s = Math.round(hsl.s * 100),\n l = Math.round(hsl.l * 100);\n return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function toHex(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function toHexString(allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function toHex8(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function toHex8String(allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function toRgb() {\n return {\n r: Math.round(this._r),\n g: Math.round(this._g),\n b: Math.round(this._b),\n a: this._a\n };\n },\n toRgbString: function toRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \")\" : \"rgba(\" + Math.round(this._r) + \", \" + Math.round(this._g) + \", \" + Math.round(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function toPercentageRgb() {\n return {\n r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n a: this._a\n };\n },\n toPercentageRgbString: function toPercentageRgbString() {\n return this._a == 1 ? \"rgb(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + Math.round(bound01(this._r, 255) * 100) + \"%, \" + Math.round(bound01(this._g, 255) * 100) + \"%, \" + Math.round(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function toName() {\n if (this._a === 0) {\n return \"transparent\";\n }\n if (this._a < 1) {\n return false;\n }\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function toFilter(secondColor) {\n var hex8String = \"#\" + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function toString(format) {\n var formatSet = !!format;\n format = format || this._format;\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n },\n clone: function clone() {\n return tinycolor(this.toString());\n },\n _applyModification: function _applyModification(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function lighten() {\n return this._applyModification(_lighten, arguments);\n },\n brighten: function brighten() {\n return this._applyModification(_brighten, arguments);\n },\n darken: function darken() {\n return this._applyModification(_darken, arguments);\n },\n desaturate: function desaturate() {\n return this._applyModification(_desaturate, arguments);\n },\n saturate: function saturate() {\n return this._applyModification(_saturate, arguments);\n },\n greyscale: function greyscale() {\n return this._applyModification(_greyscale, arguments);\n },\n spin: function spin() {\n return this._applyModification(_spin, arguments);\n },\n _applyCombination: function _applyCombination(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function analogous() {\n return this._applyCombination(_analogous, arguments);\n },\n complement: function complement() {\n return this._applyCombination(_complement, arguments);\n },\n monochromatic: function monochromatic() {\n return this._applyCombination(_monochromatic, arguments);\n },\n splitcomplement: function splitcomplement() {\n return this._applyCombination(_splitcomplement, arguments);\n },\n // Disabled until https://github.com/bgrins/TinyColor/issues/254\n // polyad: function (number) {\n // return this._applyCombination(polyad, [number]);\n // },\n triad: function triad() {\n return this._applyCombination(polyad, [3]);\n },\n tetrad: function tetrad() {\n return this._applyCombination(polyad, [4]);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function (color, opts) {\n if (_typeof(color) == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n var rgb = {\n r: 0,\n g: 0,\n b: 0\n };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n if (_typeof(color) == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a\n };\n}\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// <http://www.w3.org/TR/css3-color/>\n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n if (max == min) {\n h = s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n l: l\n };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return {\n h: h,\n s: s,\n v: v\n };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n return {\n r: r * 255,\n g: g * 255,\n b: b * 255\n };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16)), pad2(convertDecimalToHex(a))];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n var hex = [pad2(convertDecimalToHex(a)), pad2(Math.round(r).toString(16)), pad2(Math.round(g).toString(16)), pad2(Math.round(b).toString(16))];\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) return false;\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\ntinycolor.random = function () {\n return tinycolor.fromRatio({\n r: Math.random(),\n g: Math.random(),\n b: Math.random()\n });\n};\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>\n\nfunction _desaturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _saturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\nfunction _greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\nfunction _lighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\nfunction _brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return tinycolor(rgb);\n}\nfunction _darken(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction _spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>\n\nfunction _complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\nfunction polyad(color, number) {\n if (isNaN(number) || number <= 0) {\n throw new Error(\"Argument to polyad must be a positive number\");\n }\n var hsl = tinycolor(color).toHsl();\n var result = [tinycolor(color)];\n var step = 360 / number;\n for (var i = 1; i < number; i++) {\n result.push(tinycolor({\n h: (hsl.h + i * step) % 360,\n s: hsl.s,\n l: hsl.l\n }));\n }\n return result;\n}\nfunction _splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [tinycolor(color), tinycolor({\n h: (h + 72) % 360,\n s: hsl.s,\n l: hsl.l\n }), tinycolor({\n h: (h + 216) % 360,\n s: hsl.s,\n l: hsl.l\n })];\n}\nfunction _analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\nfunction _monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n while (results--) {\n ret.push(tinycolor({\n h: h,\n s: s,\n v: v\n }));\n v = (v + modification) % 1;\n }\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function (color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a\n };\n return tinycolor(rgba);\n};\n\n// Readability Functions\n// ---------------------\n// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n\n// `contrast`\n// Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\ntinycolor.readability = function (color1, color2) {\n var c1 = tinycolor(color1);\n var c2 = tinycolor(color2);\n return (Math.max(c1.getLuminance(), c2.getLuminance()) + 0.05) / (Math.min(c1.getLuminance(), c2.getLuminance()) + 0.05);\n};\n\n// `isReadable`\n// Ensure that foreground and background color combinations meet WCAG2 guidelines.\n// The third argument is an optional Object.\n// the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n// the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n// If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n\n// *Example*\n// tinycolor.isReadable(\"#000\", \"#111\") => false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function (color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n out = false;\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function (baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors;\n level = args.level;\n size = args.size;\n for (var i = 0; i < colorList.length; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n if (tinycolor.isReadable(baseColor, bestColor, {\n level: level,\n size: size\n }) || !includeFallbackColors) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\n }\n};\n\n// Big List of Colors\n// ------------------\n// <https://www.w3.org/TR/css-color-4/#named-colors>\nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) n = \"100%\";\n var processPercent = isPercentage(n);\n n = Math.min(max, Math.max(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return n % max / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf(\".\") != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf(\"%\") != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? \"0\" + c : \"\" + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + \"%\";\n }\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\nvar matchers = function () {\n // <http://www.w3.org/TR/css3-values/#integers>\n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // <http://www.w3.org/TR/css3-values/#number-value>\n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n}();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == \"transparent\") {\n return {\n r: 0,\n g: 0,\n b: 0,\n a: 0,\n format: \"name\"\n };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if (match = matchers.rgb.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3]\n };\n }\n if (match = matchers.rgba.exec(color)) {\n return {\n r: match[1],\n g: match[2],\n b: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsl.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3]\n };\n }\n if (match = matchers.hsla.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n l: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hsv.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3]\n };\n }\n if (match = matchers.hsva.exec(color)) {\n return {\n h: match[1],\n s: match[2],\n v: match[3],\n a: match[4]\n };\n }\n if (match = matchers.hex8.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex6.exec(color)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if (match = matchers.hex4.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n a: convertHexToDecimal(match[4] + \"\" + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex3.exec(color)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n return false;\n}\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\n level: \"AA\",\n size: \"small\"\n };\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\n level: level,\n size: size\n };\n}\n\nexport { tinycolor as default };\n","import tinyColor from 'tinycolor2';\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n}\nfunction _checkPrivateRedeclaration(e, t) {\n if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n}\nfunction _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction _classPrivateFieldGet2(s, a) {\n return s.get(_assertClassBrand(s, a));\n}\nfunction _classPrivateFieldInitSpec(e, t, a) {\n _checkPrivateRedeclaration(e, t), t.set(e, a);\n}\nfunction _classPrivateFieldSet2(s, a, r) {\n return s.set(_assertClassBrand(s, a), r), r;\n}\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nfunction _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r);\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (String )(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nvar ENTROPY = 123; // Raise numbers to prevent collisions in lower indexes\n\nvar int2HexColor = function int2HexColor(num) {\n return \"#\".concat(Math.min(num, Math.pow(2, 24)).toString(16).padStart(6, '0'));\n};\nvar rgb2Int = function rgb2Int(r, g, b) {\n return (r << 16) + (g << 8) + b;\n};\nvar colorStr2Int = function colorStr2Int(str) {\n var _tinyColor$toRgb = tinyColor(str).toRgb(),\n r = _tinyColor$toRgb.r,\n g = _tinyColor$toRgb.g,\n b = _tinyColor$toRgb.b;\n return rgb2Int(r, g, b);\n};\nvar checksum = function checksum(n, csBits) {\n return n * ENTROPY % Math.pow(2, csBits);\n};\nvar _registry = /*#__PURE__*/new WeakMap();\nvar _csBits = /*#__PURE__*/new WeakMap();\nvar _default = /*#__PURE__*/function () {\n function _default() {\n var csBits = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 6;\n _classCallCheck(this, _default);\n // Internal state\n _classPrivateFieldInitSpec(this, _registry, void 0);\n // indexed objects for rgb lookup;\n _classPrivateFieldInitSpec(this, _csBits, void 0);\n _classPrivateFieldSet2(_csBits, this, csBits);\n this.reset();\n }\n return _createClass(_default, [{\n key: \"reset\",\n value: function reset() {\n _classPrivateFieldSet2(_registry, this, ['__reserved for background__']);\n }\n }, {\n key: \"register\",\n value: function register(obj) {\n if (_classPrivateFieldGet2(_registry, this).length >= Math.pow(2, 24 - _classPrivateFieldGet2(_csBits, this))) {\n // color has 24 bits (-checksum)\n return null; // Registry is full\n }\n var idx = _classPrivateFieldGet2(_registry, this).length;\n var cs = checksum(idx, _classPrivateFieldGet2(_csBits, this));\n var color = int2HexColor(idx + (cs << 24 - _classPrivateFieldGet2(_csBits, this)));\n _classPrivateFieldGet2(_registry, this).push(obj);\n return color;\n }\n }, {\n key: \"lookup\",\n value: function lookup(color) {\n if (!color) return null; // invalid color\n\n var n = typeof color === 'string' ? colorStr2Int(color) : rgb2Int.apply(void 0, _toConsumableArray(color));\n if (!n) return null; // 0 index is reserved for background\n\n var idx = n & Math.pow(2, 24 - _classPrivateFieldGet2(_csBits, this)) - 1; // registry index\n var cs = n >> 24 - _classPrivateFieldGet2(_csBits, this) & Math.pow(2, _classPrivateFieldGet2(_csBits, this)) - 1; // extract bits reserved for checksum\n\n if (checksum(idx, _classPrivateFieldGet2(_csBits, this)) !== cs || idx >= _classPrivateFieldGet2(_registry, this).length) return null; // failed checksum or registry out of bounds\n\n return _classPrivateFieldGet2(_registry, this)[idx];\n } // How many bits to reserve for checksum. Will eat away into the usable size of the registry.\n }]);\n}();\n\nexport { _default as default };\n","var n,l,u,t,i,r,o,e,f,c,s,a,h,p={},v=[],y=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,d=Array.isArray;function w(n,l){for(var u in l)n[u]=l[u];return n}function _(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function g(l,u,t){var i,r,o,e={};for(o in u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:e[o]=u[o];if(arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===e[o]&&(e[o]=l.defaultProps[o]);return m(l,e,i,r,null)}function m(n,t,i,r,o){var e={type:n,props:t,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==o?++u:o,__i:-1,__u:0};return null==o&&null!=l.vnode&&l.vnode(e),e}function b(){return{current:null}}function k(n){return n.children}function x(n,l){this.props=n,this.context=l}function C(n,l){if(null==l)return n.__?C(n.__,n.__i+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?C(n):null}function S(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return S(n)}}function M(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!P.__r++||r!==l.debounceRendering)&&((r=l.debounceRendering)||o)(P)}function P(){var n,u,t,r,o,f,c,s;for(i.sort(e);n=i.shift();)n.__d&&(u=i.length,r=void 0,f=(o=(t=n).__v).__e,c=[],s=[],t.__P&&((r=w({},o)).__v=o.__v+1,l.vnode&&l.vnode(r),j(t.__P,r,o,t.__n,t.__P.namespaceURI,32&o.__u?[f]:null,c,null==f?C(o):f,!!(32&o.__u),s),r.__v=o.__v,r.__.__k[r.__i]=r,z(c,r,s),r.__e!=f&&S(r)),i.length>u&&i.sort(e));P.__r=0}function $(n,l,u,t,i,r,o,e,f,c,s){var a,h,y,d,w,_,g=t&&t.__k||v,m=l.length;for(f=I(u,l,g,f,m),a=0;a<m;a++)null!=(y=u.__k[a])&&(h=-1===y.__i?p:g[y.__i]||p,y.__i=a,_=j(n,y,h,i,r,o,e,f,c,s),d=y.__e,y.ref&&h.ref!=y.ref&&(h.ref&&V(h.ref,null,y),s.push(y.ref,y.__c||d,y)),null==w&&null!=d&&(w=d),4&y.__u||h.__k===y.__k?f=A(y,f,n):\"function\"==typeof y.type&&void 0!==_?f=_:d&&(f=d.nextSibling),y.__u&=-7);return u.__e=w,f}function I(n,l,u,t,i){var r,o,e,f,c,s=u.length,a=s,h=0;for(n.__k=new Array(i),r=0;r<i;r++)null!=(o=l[r])&&\"boolean\"!=typeof o&&\"function\"!=typeof o?(f=r+h,(o=n.__k[r]=\"string\"==typeof o||\"number\"==typeof o||\"bigint\"==typeof o||o.constructor==String?m(null,o,null,null,null):d(o)?m(k,{children:o},null,null,null):void 0===o.constructor&&o.__b>0?m(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o).__=n,o.__b=n.__b+1,e=null,-1!==(c=o.__i=L(o,u,f,a))&&(a--,(e=u[c])&&(e.__u|=2)),null==e||null===e.__v?(-1==c&&h--,\"function\"!=typeof o.type&&(o.__u|=4)):c!=f&&(c==f-1?h--:c==f+1?h++:(c>f?h--:h++,o.__u|=4))):n.__k[r]=null;if(a)for(r=0;r<s;r++)null!=(e=u[r])&&0==(2&e.__u)&&(e.__e==t&&(t=C(e)),q(e,e));return t}function A(n,l,u){var t,i;if(\"function\"==typeof n.type){for(t=n.__k,i=0;t&&i<t.length;i++)t[i]&&(t[i].__=n,l=A(t[i],l,u));return l}n.__e!=l&&(l&&n.type&&!u.contains(l)&&(l=C(n)),u.insertBefore(n.__e,l||null),l=n.__e);do{l=l&&l.nextSibling}while(null!=l&&8==l.nodeType);return l}function H(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(d(n)?n.some(function(n){H(n,l)}):l.push(n)),l}function L(n,l,u,t){var i,r,o=n.key,e=n.type,f=l[u];if(null===f||f&&o==f.key&&e===f.type&&0==(2&f.__u))return u;if(t>(null!=f&&0==(2&f.__u)?1:0))for(i=u-1,r=u+1;i>=0||r<l.length;){if(i>=0){if((f=l[i])&&0==(2&f.__u)&&o==f.key&&e===f.type)return i;i--}if(r<l.length){if((f=l[r])&&0==(2&f.__u)&&o==f.key&&e===f.type)return r;r++}}return-1}function T(n,l,u){\"-\"==l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||y.test(l)?u:u+\"px\"}function F(n,l,u,t,i){var r;n:if(\"style\"==l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof t&&(n.style.cssText=t=\"\"),t)for(l in t)u&&l in u||T(n.style,l,\"\");if(u)for(l in u)t&&u[l]===t[l]||T(n.style,l,u[l])}else if(\"o\"==l[0]&&\"n\"==l[1])r=l!=(l=l.replace(f,\"$1\")),l=l.toLowerCase()in n||\"onFocusOut\"==l||\"onFocusIn\"==l?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?t?u.u=t.u:(u.u=c,n.addEventListener(l,r?a:s,r)):n.removeEventListener(l,r?a:s,r);else{if(\"http://www.w3.org/2000/svg\"==i)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!=l&&\"height\"!=l&&\"href\"!=l&&\"list\"!=l&&\"form\"!=l&&\"tabIndex\"!=l&&\"download\"!=l&&\"rowSpan\"!=l&&\"colSpan\"!=l&&\"role\"!=l&&\"popover\"!=l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&\"-\"!=l[4]?n.removeAttribute(l):n.setAttribute(l,\"popover\"==l&&1==u?\"\":u))}}function O(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u.t)u.t=c++;else if(u.t<t.u)return;return t(l.event?l.event(u):u)}}}function j(n,u,t,i,r,o,e,f,c,s){var a,h,p,v,y,g,m,b,C,S,M,P,I,A,H,L,T,F=u.type;if(void 0!==u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),o=[f=u.__e=t.__e]),(a=l.__b)&&a(u);n:if(\"function\"==typeof F)try{if(b=u.props,C=\"prototype\"in F&&F.prototype.render,S=(a=F.contextType)&&i[a.__c],M=a?S?S.props.value:a.__:i,t.__c?m=(h=u.__c=t.__c).__=h.__E:(C?u.__c=h=new F(b,M):(u.__c=h=new x(b,M),h.constructor=F,h.render=B),S&&S.sub(h),h.props=b,h.state||(h.state={}),h.context=M,h.__n=i,p=h.__d=!0,h.__h=[],h._sb=[]),C&&null==h.__s&&(h.__s=h.state),C&&null!=F.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=w({},h.__s)),w(h.__s,F.getDerivedStateFromProps(b,h.__s))),v=h.props,y=h.state,h.__v=u,p)C&&null==F.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),C&&null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(C&&null==F.getDerivedStateFromProps&&b!==v&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(b,M),!h.__e&&(null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(b,h.__s,M)||u.__v==t.__v)){for(u.__v!=t.__v&&(h.props=b,h.state=h.__s,h.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.some(function(n){n&&(n.__=u)}),P=0;P<h._sb.length;P++)h.__h.push(h._sb[P]);h._sb=[],h.__h.length&&e.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(b,h.__s,M),C&&null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(v,y,g)})}if(h.context=M,h.props=b,h.__P=n,h.__e=!1,I=l.__r,A=0,C){for(h.state=h.__s,h.__d=!1,I&&I(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[]}else do{h.__d=!1,I&&I(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++A<25);h.state=h.__s,null!=h.getChildContext&&(i=w(w({},i),h.getChildContext())),C&&!p&&null!=h.getSnapshotBeforeUpdate&&(g=h.getSnapshotBeforeUpdate(v,y)),f=$(n,d(L=null!=a&&a.type===k&&null==a.key?a.props.children:a)?L:[L],u,t,i,r,o,e,f,c,s),h.base=u.__e,u.__u&=-161,h.__h.length&&e.push(h),m&&(h.__E=h.__=null)}catch(n){if(u.__v=null,c||null!=o)if(n.then){for(u.__u|=c?160:128;f&&8==f.nodeType&&f.nextSibling;)f=f.nextSibling;o[o.indexOf(f)]=null,u.__e=f}else for(T=o.length;T--;)_(o[T]);else u.__e=t.__e,u.__k=t.__k;l.__e(n,u,t)}else null==o&&u.__v==t.__v?(u.__k=t.__k,u.__e=t.__e):f=u.__e=N(t.__e,u,t,i,r,o,e,c,s);return(a=l.diffed)&&a(u),128&u.__u?void 0:f}function z(n,u,t){for(var i=0;i<t.length;i++)V(t[i],t[++i],t[++i]);l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function N(u,t,i,r,o,e,f,c,s){var a,h,v,y,w,g,m,b=i.props,k=t.props,x=t.type;if(\"svg\"==x?o=\"http://www.w3.org/2000/svg\":\"math\"==x?o=\"http://www.w3.org/1998/Math/MathML\":o||(o=\"http://www.w3.org/1999/xhtml\"),null!=e)for(a=0;a<e.length;a++)if((w=e[a])&&\"setAttribute\"in w==!!x&&(x?w.localName==x:3==w.nodeType)){u=w,e[a]=null;break}if(null==u){if(null==x)return document.createTextNode(k);u=document.createElementNS(o,x,k.is&&k),c&&(l.__m&&l.__m(t,e),c=!1),e=null}if(null===x)b===k||c&&u.data===k||(u.data=k);else{if(e=e&&n.call(u.childNodes),b=i.props||p,!c&&null!=e)for(b={},a=0;a<u.attributes.length;a++)b[(w=u.attributes[a]).name]=w.value;for(a in b)if(w=b[a],\"children\"==a);else if(\"dangerouslySetInnerHTML\"==a)v=w;else if(!(a in k)){if(\"value\"==a&&\"defaultValue\"in k||\"checked\"==a&&\"defaultChecked\"in k)continue;F(u,a,null,w,o)}for(a in k)w=k[a],\"children\"==a?y=w:\"dangerouslySetInnerHTML\"==a?h=w:\"value\"==a?g=w:\"checked\"==a?m=w:c&&\"function\"!=typeof w||b[a]===w||F(u,a,w,b[a],o);if(h)c||v&&(h.__html===v.__html||h.__html===u.innerHTML)||(u.innerHTML=h.__html),t.__k=[];else if(v&&(u.innerHTML=\"\"),$(u,d(y)?y:[y],t,i,r,\"foreignObject\"==x?\"http://www.w3.org/1999/xhtml\":o,e,f,e?e[0]:i.__k&&C(i,0),c,s),null!=e)for(a=e.length;a--;)_(e[a]);c||(a=\"value\",\"progress\"==x&&null==g?u.removeAttribute(\"value\"):void 0!==g&&(g!==u[a]||\"progress\"==x&&!g||\"option\"==x&&g!==b[a])&&F(u,a,g,b[a],o),a=\"checked\",void 0!==m&&m!==u[a]&&F(u,a,m,b[a],o))}return u}function V(n,u,t){try{if(\"function\"==typeof n){var i=\"function\"==typeof n.__u;i&&n.__u(),i&&null==u||(n.__u=n(u))}else n.current=u}catch(n){l.__e(n,t)}}function q(n,u,t){var i,r;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!==n.__e||V(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=null}if(i=n.__k)for(r=0;r<i.length;r++)i[r]&&q(i[r],u,t||\"function\"!=typeof n.type);t||_(n.__e),n.__c=n.__=n.__e=void 0}function B(n,l,u){return this.constructor(n,u)}function D(u,t,i){var r,o,e,f;t==document&&(t=document.documentElement),l.__&&l.__(u,t),o=(r=\"function\"==typeof i)?null:i&&i.__k||t.__k,e=[],f=[],j(t,u=(!r&&i||t).__k=g(k,null,[u]),o||p,p,t.namespaceURI,!r&&i?[i]:o?null:t.firstChild?n.call(t.childNodes):null,e,!r&&i?i:o?o.__e:t.firstChild,r,f),z(e,u,f)}function E(n,l){D(n,l,E)}function G(l,u,t){var i,r,o,e,f=w({},l.props);for(o in l.type&&l.type.defaultProps&&(e=l.type.defaultProps),u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:f[o]=void 0===u[o]&&void 0!==e?e[o]:u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),m(l.type,f,i||l.key,r||l.ref,null)}function J(n,l){var u={__c:l=\"__cC\"+h++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,t;return this.getChildContext||(u=new Set,(t={})[l]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.forEach(function(n){n.__e=!0,M(n)})},this.sub=function(n){u.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.delete(n),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=v.slice,l={__e:function(n,l,u,t){for(var i,r,o;l=l.__;)if((i=l.__c)&&!i.__)try{if((r=i.constructor)&&null!=r.getDerivedStateFromError&&(i.setState(r.getDerivedStateFromError(n)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),o=i.__d),o)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},x.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=w({},this.state),\"function\"==typeof n&&(n=n(w({},u),this.props)),n&&w(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),M(this))},x.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),M(this))},x.prototype.render=k,i=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,e=function(n,l){return n.__v.__b-l.__v.__b},P.__r=0,f=/(PointerCapture)$|Capture$/i,c=0,s=O(!1),a=O(!0),h=0;export{x as Component,k as Fragment,G as cloneElement,J as createContext,g as createElement,b as createRef,g as h,E as hydrate,t as isValidElement,l as options,D as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import { select, pointer } from 'd3-selection';\nimport Kapsule from 'kapsule';\nimport { isValidElement, cloneElement, render as render$1 } from 'preact';\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: true,\n configurable: true,\n writable: true\n }) : e[r] = t, e;\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = true,\n o = false;\n try {\n if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = true, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), true).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (undefined !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : undefined;\n }\n}\n\nvar _reactElement2VNode = function reactElement2VNode(el) {\n // Among other things, react VNodes (and all its children) need to have constructor: undefined attributes in order to be recognised, cloneElement (applied recursively) does the necessary conversion\n if (!(_typeof(el) === 'object')) return el;\n var res = cloneElement(el);\n if (res.props) {\n var _res$props;\n res.props = _objectSpread2({}, res.props);\n if (res !== null && res !== undefined && (_res$props = res.props) !== null && _res$props !== undefined && _res$props.children) {\n res.props.children = Array.isArray(res.props.children) ? res.props.children.map(_reactElement2VNode) : _reactElement2VNode(res.props.children);\n }\n }\n return res;\n};\nvar isReactRenderable = function isReactRenderable(o) {\n return isValidElement(cloneElement(o));\n};\nvar render = function render(jsx, domEl) {\n return render$1(_reactElement2VNode(jsx), domEl);\n};\n\nfunction styleInject(css, ref) {\n if (ref === undefined) ref = {};\n var insertAt = ref.insertAt;\n if (typeof document === 'undefined') {\n return;\n }\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \".float-tooltip-kap {\\n position: absolute;\\n width: max-content; /* prevent shrinking near right edge */\\n max-width: max(50%, 150px);\\n padding: 3px 5px;\\n border-radius: 3px;\\n font: 12px sans-serif;\\n color: #eee;\\n background: rgba(0,0,0,0.6);\\n pointer-events: none;\\n}\\n\";\nstyleInject(css_248z);\n\nvar index = Kapsule({\n props: {\n content: {\n \"default\": false\n }\n },\n init: function init(domNode, state) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style;\n var isD3Selection = !!domNode && _typeof(domNode) === 'object' && !!domNode.node && typeof domNode.node === 'function';\n var el = select(isD3Selection ? domNode.node() : domNode);\n\n // make sure container is positioned, to provide anchor for tooltip\n el.style('position') === 'static' && el.style('position', 'relative');\n state.tooltipEl = el.append('div').attr('class', 'float-tooltip-kap');\n Object.entries(style).forEach(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n k = _ref3[0],\n v = _ref3[1];\n return state.tooltipEl.style(k, v);\n });\n state.tooltipEl // start off-screen\n .style('left', '-10000px').style('display', 'none');\n state.mouseInside = false;\n el.on('mousemove.tooltip', function (ev) {\n state.mouseInside = true;\n var mousePos = pointer(ev);\n var domNode = el.node();\n var canvasWidth = domNode.offsetWidth;\n var canvasHeight = domNode.offsetHeight;\n state.tooltipEl.style('left', mousePos[0] + 'px').style('top', mousePos[1] + 'px')\n // adjust horizontal position to not exceed canvas boundaries\n .style('transform', \"translate(-\".concat(mousePos[0] / canvasWidth * 100, \"%, \").concat(\n // flip to above if near bottom\n canvasHeight > 130 && canvasHeight - mousePos[1] < 100 ? 'calc(-100% - 6px)' : '21px', \")\"));\n });\n el.on('mouseover.tooltip', function () {\n state.mouseInside = true;\n state.content && state.tooltipEl.style('display', 'inline');\n });\n el.on('mouseout.tooltip', function () {\n state.mouseInside = false;\n state.tooltipEl.style('display', 'none');\n });\n },\n update: function update(state) {\n state.tooltipEl.style('display', !!state.content && state.mouseInside ? 'inline' : 'none');\n if (!state.content) {\n state.tooltipEl.text('');\n } else if (state.content instanceof HTMLElement) {\n state.tooltipEl.text(''); // empty it\n state.tooltipEl.append(function () {\n return state.content;\n });\n } else if (typeof state.content === 'string') {\n state.tooltipEl.html(state.content);\n } else if (isReactRenderable(state.content)) {\n state.tooltipEl.text(''); // empty it\n render(state.content, state.tooltipEl.node());\n } else {\n state.tooltipEl.style('display', 'none');\n console.warn('Tooltip content is invalid, skipping.', state.content, state.content.toString());\n }\n }\n});\n\nexport { index as default };\n","export default function(x, y, z) {\n var nodes, strength = 1;\n\n if (x == null) x = 0;\n if (y == null) y = 0;\n if (z == null) z = 0;\n\n function force() {\n var i,\n n = nodes.length,\n node,\n sx = 0,\n sy = 0,\n sz = 0;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], sx += node.x || 0, sy += node.y || 0, sz += node.z || 0;\n }\n\n for (sx = (sx / n - x) * strength, sy = (sy / n - y) * strength, sz = (sz / n - z) * strength, i = 0; i < n; ++i) {\n node = nodes[i];\n if (sx) { node.x -= sx }\n if (sy) { node.y -= sy; }\n if (sz) { node.z -= sz; }\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n force.z = function(_) {\n return arguments.length ? (z = +_, force) : z;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n return force;\n}\n","export default function(d) {\n const x = +this._x.call(null, d);\n return add(this.cover(x), x, d);\n}\n\nfunction add(tree, x, d) {\n if (isNaN(x)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n x1 = tree._x1,\n xm,\n xp,\n right,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (parent = node, !(node = node[i = +right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n if (x === xp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(2) : tree._root = new Array(2);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n } while ((i = +right) === (j = +(xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n if (!Array.isArray(data)) data = Array.from(data);\n const n = data.length;\n const xz = new Float64Array(n);\n let x0 = Infinity,\n x1 = -Infinity;\n\n // Compute the points and their extent.\n for (let i = 0, x; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, data[i]))) continue;\n xz[i] = x;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n }\n\n // If there were no (valid) points, abort.\n if (x0 > x1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0).cover(x1);\n\n // Add the new points.\n for (let i = 0; i < n; ++i) {\n add(this, xz[i], data[i]);\n }\n\n return this;\n}\n","export default function(x) {\n if (isNaN(x = +x)) return this; // ignore invalid points\n\n var x0 = this._x0,\n x1 = this._x1;\n\n // If the binarytree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing half boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0 || 1,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1) {\n i = +(x < x0);\n parent = new Array(2), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0: x1 = x0 + z; break;\n case 1: x0 = x1 - z; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._x1 = x1;\n return this;\n}\n","export default function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n","export default function(_) {\n return arguments.length\n ? this.cover(+_[0][0]).cover(+_[1][0])\n : isNaN(this._x0) ? undefined : [[this._x0], [this._x1]];\n}\n","export default function(node, x0, x1) {\n this.node = node;\n this.x0 = x0;\n this.x1 = x1;\n}\n","import Half from \"./half.js\";\n\nexport default function(x, radius) {\n var data,\n x0 = this._x0,\n x1,\n x2,\n x3 = this._x1,\n halves = [],\n node = this._root,\n q,\n i;\n\n if (node) halves.push(new Half(node, x0, x3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius;\n x3 = x + radius;\n }\n\n while (q = halves.pop()) {\n\n // Stop searching if this half can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (x2 = q.x1) < x0) continue;\n\n // Bisect the current half.\n if (node.length) {\n var xm = (x1 + x2) / 2;\n\n halves.push(\n new Half(node[1], xm, x2),\n new Half(node[0], x1, xm)\n );\n\n // Visit the closest half first.\n if (i = +(x >= xm)) {\n q = halves[halves.length - 1];\n halves[halves.length - 1] = halves[halves.length - 1 - i];\n halves[halves.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var d = Math.abs(x - +this._x.call(null, node.data));\n if (d < radius) {\n radius = d;\n x0 = x - d;\n x3 = x + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n","export default function(d) {\n if (isNaN(x = +this._x.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n x1 = this._x1,\n x,\n xm,\n right,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (!(parent = node, node = node[i = +right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 1]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1])\n && node === (parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n","export default function() {\n return this._root;\n}\n","export default function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n","import Half from \"./half.js\";\n\nexport default function(callback) {\n var halves = [], q, node = this._root, child, x0, x1;\n if (node) halves.push(new Half(node, this._x0, this._x1));\n while (q = halves.pop()) {\n if (!callback(node = q.node, x0 = q.x0, x1 = q.x1) && node.length) {\n var xm = (x0 + x1) / 2;\n if (child = node[1]) halves.push(new Half(child, xm, x1));\n if (child = node[0]) halves.push(new Half(child, x0, xm));\n }\n }\n return this;\n}\n","import Half from \"./half.js\";\n\nexport default function(callback) {\n var halves = [], next = [], q;\n if (this._root) halves.push(new Half(this._root, this._x0, this._x1));\n while (q = halves.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, x1 = q.x1, xm = (x0 + x1) / 2;\n if (child = node[0]) halves.push(new Half(child, x0, xm));\n if (child = node[1]) halves.push(new Half(child, xm, x1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.x1);\n }\n return this;\n}\n","export function defaultX(d) {\n return d[0];\n}\n\nexport default function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n","import tree_add, {addAll as tree_addAll} from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, {defaultX} from \"./x.js\";\n\nexport default function binarytree(nodes, x) {\n var tree = new Binarytree(x == null ? defaultX : x, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Binarytree(x, x0, x1) {\n this._x = x;\n this._x0 = x0;\n this._x1 = x1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = binarytree.prototype = Binarytree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Binarytree(this._x, this._x0, this._x1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(2)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 2; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(2)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;","export default function(d) {\n const x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n var d, i, n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity;\n\n // Compute the points and their extent.\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n }\n\n // If there were no (valid) points, abort.\n if (x0 > x1 || y0 > y1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0).cover(x1, y1);\n\n // Add the new points.\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}\n","export default function(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1;\n\n // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0 || 1,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | (x < x0);\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0: x1 = x0 + z, y1 = y0 + z; break;\n case 1: x0 = x1 - z, y1 = y0 + z; break;\n case 2: x1 = x0 + z, y0 = y1 - z; break;\n case 3: x0 = x1 - z, y0 = y1 - z; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n}\n","export default function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n","export default function(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}\n","export default function(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0) continue;\n\n // Bisect the current quadrant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n\n quads.push(\n new Quad(node[3], xm, ym, x2, y2),\n new Quad(node[2], x1, ym, xm, y2),\n new Quad(node[1], xm, y1, x2, ym),\n new Quad(node[0], x1, y1, xm, ym)\n );\n\n // Visit the closest quadrant first.\n if (i = (y >= ym) << 1 | (x >= xm)) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n","export default function(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n && node === (parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n","export default function() {\n return this._root;\n}\n","export default function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n}\n","export function defaultX(d) {\n return d[0];\n}\n\nexport default function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n","export function defaultY(d) {\n return d[1];\n}\n\nexport default function(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}\n","import tree_add, {addAll as tree_addAll} from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, {defaultX} from \"./x.js\";\nimport tree_y, {defaultY} from \"./y.js\";\n\nexport default function quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(4)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;\n","export default function(d) {\n const x = +this._x.call(null, d),\n y = +this._y.call(null, d),\n z = +this._z.call(null, d);\n return add(this.cover(x, y, z), x, y, z, d);\n}\n\nfunction add(tree, x, y, z, d) {\n if (isNaN(x) || isNaN(y) || isNaN(z)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n z0 = tree._z0,\n x1 = tree._x1,\n y1 = tree._y1,\n z1 = tree._z1,\n xm,\n ym,\n zm,\n xp,\n yp,\n zp,\n right,\n bottom,\n deep,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (deep = z >= (zm = (z0 + z1) / 2)) z0 = zm; else z1 = zm;\n if (parent = node, !(node = node[i = deep << 2 | bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n zp = +tree._z.call(null, node.data);\n if (x === xp && y === yp && z === zp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(8) : tree._root = new Array(8);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (deep = z >= (zm = (z0 + z1) / 2)) z0 = zm; else z1 = zm;\n } while ((i = deep << 2 | bottom << 1 | right) === (j = (zp >= zm) << 2 | (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n if (!Array.isArray(data)) data = Array.from(data);\n const n = data.length;\n const xz = new Float64Array(n);\n const yz = new Float64Array(n);\n const zz = new Float64Array(n);\n let x0 = Infinity,\n y0 = Infinity,\n z0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity,\n z1 = -Infinity;\n\n // Compute the points and their extent.\n for (let i = 0, d, x, y, z; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d)) || isNaN(z = +this._z.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n zz[i] = z;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n if (z < z0) z0 = z;\n if (z > z1) z1 = z;\n }\n\n // If there were no (valid) points, abort.\n if (x0 > x1 || y0 > y1 || z0 > z1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0, z0).cover(x1, y1, z1);\n\n // Add the new points.\n for (let i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], zz[i], data[i]);\n }\n\n return this;\n}\n","export default function(x, y, z) {\n if (isNaN(x = +x) || isNaN(y = +y) || isNaN(z = +z)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n z0 = this._z0,\n x1 = this._x1,\n y1 = this._y1,\n z1 = this._z1;\n\n // If the octree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing octant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n z1 = (z0 = Math.floor(z)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var t = x1 - x0 || 1,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1 || z0 > z || z >= z1) {\n i = (z < z0) << 2 | (y < y0) << 1 | (x < x0);\n parent = new Array(8), parent[i] = node, node = parent, t *= 2;\n switch (i) {\n case 0: x1 = x0 + t, y1 = y0 + t, z1 = z0 + t; break;\n case 1: x0 = x1 - t, y1 = y0 + t, z1 = z0 + t; break;\n case 2: x1 = x0 + t, y0 = y1 - t, z1 = z0 + t; break;\n case 3: x0 = x1 - t, y0 = y1 - t, z1 = z0 + t; break;\n case 4: x1 = x0 + t, y1 = y0 + t, z0 = z1 - t; break;\n case 5: x0 = x1 - t, y1 = y0 + t, z0 = z1 - t; break;\n case 6: x1 = x0 + t, y0 = y1 - t, z0 = z1 - t; break;\n case 7: x0 = x1 - t, y0 = y1 - t, z0 = z1 - t; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._z0 = z0;\n this._x1 = x1;\n this._y1 = y1;\n this._z1 = z1;\n return this;\n}\n","export default function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n","export default function(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1], +_[0][2]).cover(+_[1][0], +_[1][1], +_[1][2])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0, this._z0], [this._x1, this._y1, this._z1]];\n}\n","export default function(node, x0, y0, z0, x1, y1, z1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.z0 = z0;\n this.x1 = x1;\n this.y1 = y1;\n this.z1 = z1;\n}\n","import Octant from \"./octant.js\";\n\nexport default function(x, y, z, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n z0 = this._z0,\n x1,\n y1,\n z1,\n x2,\n y2,\n z2,\n x3 = this._x1,\n y3 = this._y1,\n z3 = this._z1,\n octs = [],\n node = this._root,\n q,\n i;\n\n if (node) octs.push(new Octant(node, x0, y0, z0, x3, y3, z3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius, z0 = z - radius;\n x3 = x + radius, y3 = y + radius, z3 = z + radius;\n radius *= radius;\n }\n\n while (q = octs.pop()) {\n\n // Stop searching if this octant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (z1 = q.z0) > z3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0\n || (z2 = q.z1) < z0) continue;\n\n // Bisect the current octant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2,\n zm = (z1 + z2) / 2;\n\n octs.push(\n new Octant(node[7], xm, ym, zm, x2, y2, z2),\n new Octant(node[6], x1, ym, zm, xm, y2, z2),\n new Octant(node[5], xm, y1, zm, x2, ym, z2),\n new Octant(node[4], x1, y1, zm, xm, ym, z2),\n new Octant(node[3], xm, ym, z1, x2, y2, zm),\n new Octant(node[2], x1, ym, z1, xm, y2, zm),\n new Octant(node[1], xm, y1, z1, x2, ym, zm),\n new Octant(node[0], x1, y1, z1, xm, ym, zm)\n );\n\n // Visit the closest octant first.\n if (i = (z >= zm) << 2 | (y >= ym) << 1 | (x >= xm)) {\n q = octs[octs.length - 1];\n octs[octs.length - 1] = octs[octs.length - 1 - i];\n octs[octs.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n dz = z - +this._z.call(null, node.data),\n d2 = dx * dx + dy * dy + dz * dz;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d, z0 = z - d;\n x3 = x + d, y3 = y + d, z3 = z + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n","const distance = (x1, y1, z1, x2, y2, z2) => Math.sqrt((x1-x2)**2 + (y1-y2)**2 + (z1-z2)**2);\n\nexport function findAllWithinRadius(x, y, z, radius) {\n const result = [];\n\n const xMin = x - radius;\n const yMin = y - radius;\n const zMin = z - radius;\n const xMax = x + radius;\n const yMax = y + radius;\n const zMax = z + radius;\n\n this.visit((node, x1, y1, z1, x2, y2, z2) => {\n if (!node.length) {\n do {\n const d = node.data;\n if (distance(x, y, z, this._x(d), this._y(d), this._z(d)) <= radius) {\n result.push(d);\n }\n } while (node = node.next);\n }\n return x1 > xMax || y1 > yMax || z1 > zMax || x2 < xMin || y2 < yMin || z2 < zMin;\n });\n\n return result;\n}\n","export default function(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d)) || isNaN(z = +this._z.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n z0 = this._z0,\n x1 = this._x1,\n y1 = this._y1,\n z1 = this._z1,\n x,\n y,\n z,\n xm,\n ym,\n zm,\n right,\n bottom,\n deep,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (deep = z >= (zm = (z0 + z1) / 2)) z0 = zm; else z1 = zm;\n if (!(parent = node, node = node[i = deep << 2 | bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 7] || parent[(i + 2) & 7] || parent[(i + 3) & 7] || parent[(i + 4) & 7] || parent[(i + 5) & 7] || parent[(i + 6) & 7] || parent[(i + 7) & 7]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3] || parent[4] || parent[5] || parent[6] || parent[7])\n && node === (parent[7] || parent[6] || parent[5] || parent[4] || parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n","export default function() {\n return this._root;\n}\n","export default function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n","import Octant from \"./octant.js\";\n\nexport default function(callback) {\n var octs = [], q, node = this._root, child, x0, y0, z0, x1, y1, z1;\n if (node) octs.push(new Octant(node, this._x0, this._y0, this._z0, this._x1, this._y1, this._z1));\n while (q = octs.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, z0 = q.z0, x1 = q.x1, y1 = q.y1, z1 = q.z1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2, zm = (z0 + z1) / 2;\n if (child = node[7]) octs.push(new Octant(child, xm, ym, zm, x1, y1, z1));\n if (child = node[6]) octs.push(new Octant(child, x0, ym, zm, xm, y1, z1));\n if (child = node[5]) octs.push(new Octant(child, xm, y0, zm, x1, ym, z1));\n if (child = node[4]) octs.push(new Octant(child, x0, y0, zm, xm, ym, z1));\n if (child = node[3]) octs.push(new Octant(child, xm, ym, z0, x1, y1, zm));\n if (child = node[2]) octs.push(new Octant(child, x0, ym, z0, xm, y1, zm));\n if (child = node[1]) octs.push(new Octant(child, xm, y0, z0, x1, ym, zm));\n if (child = node[0]) octs.push(new Octant(child, x0, y0, z0, xm, ym, zm));\n }\n }\n return this;\n}\n","import Octant from \"./octant.js\";\n\nexport default function(callback) {\n var octs = [], next = [], q;\n if (this._root) octs.push(new Octant(this._root, this._x0, this._y0, this._z0, this._x1, this._y1, this._z1));\n while (q = octs.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, z0 = q.z0, x1 = q.x1, y1 = q.y1, z1 = q.z1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2, zm = (z0 + z1) / 2;\n if (child = node[0]) octs.push(new Octant(child, x0, y0, z0, xm, ym, zm));\n if (child = node[1]) octs.push(new Octant(child, xm, y0, z0, x1, ym, zm));\n if (child = node[2]) octs.push(new Octant(child, x0, ym, z0, xm, y1, zm));\n if (child = node[3]) octs.push(new Octant(child, xm, ym, z0, x1, y1, zm));\n if (child = node[4]) octs.push(new Octant(child, x0, y0, zm, xm, ym, z1));\n if (child = node[5]) octs.push(new Octant(child, xm, y0, zm, x1, ym, z1));\n if (child = node[6]) octs.push(new Octant(child, x0, ym, zm, xm, y1, z1));\n if (child = node[7]) octs.push(new Octant(child, xm, ym, zm, x1, y1, z1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.z0, q.x1, q.y1, q.z1);\n }\n return this;\n}\n","export function defaultX(d) {\n return d[0];\n}\n\nexport default function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n","export function defaultY(d) {\n return d[1];\n}\n\nexport default function(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}\n","export function defaultZ(d) {\n return d[2];\n}\n\nexport default function(_) {\n return arguments.length ? (this._z = _, this) : this._z;\n}\n","import tree_add, {addAll as tree_addAll} from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport { findAllWithinRadius as tree_findAllWithinRadius } from \"./findAll.js\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, {defaultX} from \"./x.js\";\nimport tree_y, {defaultY} from \"./y.js\";\nimport tree_z, {defaultZ} from \"./z.js\";\n\nexport default function octree(nodes, x, y, z) {\n var tree = new Octree(x == null ? defaultX : x, y == null ? defaultY : y, z == null ? defaultZ : z, NaN, NaN, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Octree(x, y, z, x0, y0, z0, x1, y1, z1) {\n this._x = x;\n this._y = y;\n this._z = z;\n this._x0 = x0;\n this._y0 = y0;\n this._z0 = z0;\n this._x1 = x1;\n this._y1 = y1;\n this._z1 = z1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = octree.prototype = Octree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Octree(this._x, this._y, this._z, this._x0, this._y0, this._z0, this._x1, this._y1, this._z1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(8)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 8; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(8)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.findAllWithinRadius = tree_findAllWithinRadius;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;\ntreeProto.z = tree_z;\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(random) {\n return (random() - 0.5) * 1e-6;\n}\n","import constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\n\nfunction index(d) {\n return d.index;\n}\n\nfunction find(nodeById, nodeId) {\n var node = nodeById.get(nodeId);\n if (!node) throw new Error(\"node not found: \" + nodeId);\n return node;\n}\n\nexport default function(links) {\n var id = index,\n strength = defaultStrength,\n strengths,\n distance = constant(30),\n distances,\n nodes,\n nDim,\n count,\n bias,\n random,\n iterations = 1;\n\n if (links == null) links = [];\n\n function defaultStrength(link) {\n return 1 / Math.min(count[link.source.index], count[link.target.index]);\n }\n\n function force(alpha) {\n for (var k = 0, n = links.length; k < iterations; ++k) {\n for (var i = 0, link, source, target, x = 0, y = 0, z = 0, l, b; i < n; ++i) {\n link = links[i], source = link.source, target = link.target;\n x = target.x + target.vx - source.x - source.vx || jiggle(random);\n if (nDim > 1) { y = target.y + target.vy - source.y - source.vy || jiggle(random); }\n if (nDim > 2) { z = target.z + target.vz - source.z - source.vz || jiggle(random); }\n l = Math.sqrt(x * x + y * y + z * z);\n l = (l - distances[i]) / l * alpha * strengths[i];\n x *= l, y *= l, z *= l;\n\n target.vx -= x * (b = bias[i]);\n if (nDim > 1) { target.vy -= y * b; }\n if (nDim > 2) { target.vz -= z * b; }\n\n source.vx += x * (b = 1 - b);\n if (nDim > 1) { source.vy += y * b; }\n if (nDim > 2) { source.vz += z * b; }\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n\n var i,\n n = nodes.length,\n m = links.length,\n nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d])),\n link;\n\n for (i = 0, count = new Array(n); i < m; ++i) {\n link = links[i], link.index = i;\n if (typeof link.source !== \"object\") link.source = find(nodeById, link.source);\n if (typeof link.target !== \"object\") link.target = find(nodeById, link.target);\n count[link.source.index] = (count[link.source.index] || 0) + 1;\n count[link.target.index] = (count[link.target.index] || 0) + 1;\n }\n\n for (i = 0, bias = new Array(m); i < m; ++i) {\n link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);\n }\n\n strengths = new Array(m), initializeStrength();\n distances = new Array(m), initializeDistance();\n }\n\n function initializeStrength() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n strengths[i] = +strength(links[i], i, links);\n }\n }\n\n function initializeDistance() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n distances[i] = +distance(links[i], i, links);\n }\n }\n\n force.initialize = function(_nodes, ...args) {\n nodes = _nodes;\n random = args.find(arg => typeof arg === 'function') || Math.random;\n nDim = args.find(arg => [1, 2, 3].includes(arg)) || 2;\n initialize();\n };\n\n force.links = function(_) {\n return arguments.length ? (links = _, initialize(), force) : links;\n };\n\n force.id = function(_) {\n return arguments.length ? (id = _, force) : id;\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initializeStrength(), force) : strength;\n };\n\n force.distance = function(_) {\n return arguments.length ? (distance = typeof _ === \"function\" ? _ : constant(+_), initializeDistance(), force) : distance;\n };\n\n return force;\n}\n","// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use\nconst a = 1664525;\nconst c = 1013904223;\nconst m = 4294967296; // 2^32\n\nexport default function() {\n let s = 1;\n return () => (s = (a * s + c) % m) / m;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer} from \"d3-timer\";\nimport lcg from \"./lcg.js\";\n\nvar MAX_DIMENSIONS = 3;\n\nexport function x(d) {\n return d.x;\n}\n\nexport function y(d) {\n return d.y;\n}\n\nexport function z(d) {\n return d.z;\n}\n\nvar initialRadius = 10,\n initialAngleRoll = Math.PI * (3 - Math.sqrt(5)), // Golden ratio angle\n initialAngleYaw = Math.PI * 20 / (9 + Math.sqrt(221)); // Markov irrational number\n\nexport default function(nodes, numDimensions) {\n numDimensions = numDimensions || 2;\n\n var nDim = Math.min(MAX_DIMENSIONS, Math.max(1, Math.round(numDimensions))),\n simulation,\n alpha = 1,\n alphaMin = 0.001,\n alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n alphaTarget = 0,\n velocityDecay = 0.6,\n forces = new Map(),\n stepper = timer(step),\n event = dispatch(\"tick\", \"end\"),\n random = lcg();\n\n if (nodes == null) nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick(iterations) {\n var i, n = nodes.length, node;\n\n if (iterations === undefined) iterations = 1;\n\n for (var k = 0; k < iterations; ++k) {\n alpha += (alphaTarget - alpha) * alphaDecay;\n\n forces.forEach(function (force) {\n force(alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (nDim > 1) {\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n if (nDim > 2) {\n if (node.fz == null) node.z += node.vz *= velocityDecay;\n else node.z = node.fz, node.vz = 0;\n }\n }\n }\n\n return simulation;\n }\n\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (node.fx != null) node.x = node.fx;\n if (node.fy != null) node.y = node.fy;\n if (node.fz != null) node.z = node.fz;\n if (isNaN(node.x) || (nDim > 1 && isNaN(node.y)) || (nDim > 2 && isNaN(node.z))) {\n var radius = initialRadius * (nDim > 2 ? Math.cbrt(0.5 + i) : (nDim > 1 ? Math.sqrt(0.5 + i) : i)),\n rollAngle = i * initialAngleRoll,\n yawAngle = i * initialAngleYaw;\n\n if (nDim === 1) {\n node.x = radius;\n } else if (nDim === 2) {\n node.x = radius * Math.cos(rollAngle);\n node.y = radius * Math.sin(rollAngle);\n } else { // 3 dimensions: use spherical distribution along 2 irrational number angles\n node.x = radius * Math.sin(rollAngle) * Math.cos(yawAngle);\n node.y = radius * Math.cos(rollAngle);\n node.z = radius * Math.sin(rollAngle) * Math.sin(yawAngle);\n }\n }\n if (isNaN(node.vx) || (nDim > 1 && isNaN(node.vy)) || (nDim > 2 && isNaN(node.vz))) {\n node.vx = 0;\n if (nDim > 1) { node.vy = 0; }\n if (nDim > 2) { node.vz = 0; }\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes, random, nDim);\n return force;\n }\n\n initializeNodes();\n\n return simulation = {\n tick: tick,\n\n restart: function() {\n return stepper.restart(step), simulation;\n },\n\n stop: function() {\n return stepper.stop(), simulation;\n },\n\n numDimensions: function(_) {\n return arguments.length\n ? (nDim = Math.min(MAX_DIMENSIONS, Math.max(1, Math.round(_))), forces.forEach(initializeForce), simulation)\n : nDim;\n },\n\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.forEach(initializeForce), simulation) : nodes;\n },\n\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation) : alpha;\n },\n\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n },\n\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n },\n\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n },\n\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n },\n\n randomSource: function(_) {\n return arguments.length ? (random = _, forces.forEach(initializeForce), simulation) : random;\n },\n\n force: function(name, _) {\n return arguments.length > 1 ? ((_ == null ? forces.delete(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n },\n\n find: function() {\n var args = Array.prototype.slice.call(arguments);\n var x = args.shift() || 0,\n y = (nDim > 1 ? args.shift() : null) || 0,\n z = (nDim > 2 ? args.shift() : null) || 0,\n radius = args.shift() || Infinity;\n\n var i = 0,\n n = nodes.length,\n dx,\n dy,\n dz,\n d2,\n node,\n closest;\n\n radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x - node.x;\n dy = y - (node.y || 0);\n dz = z - (node.z ||0);\n d2 = dx * dx + dy * dy + dz * dz;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n\n on: function(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n}\n","import {binarytree} from \"d3-binarytree\";\nimport {quadtree} from \"d3-quadtree\";\nimport {octree} from \"d3-octree\";\nimport constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\nimport {x, y, z} from \"./simulation.js\";\n\nexport default function() {\n var nodes,\n nDim,\n node,\n random,\n alpha,\n strength = constant(-30),\n strengths,\n distanceMin2 = 1,\n distanceMax2 = Infinity,\n theta2 = 0.81;\n\n function force(_) {\n var i,\n n = nodes.length,\n tree =\n (nDim === 1 ? binarytree(nodes, x)\n :(nDim === 2 ? quadtree(nodes, x, y)\n :(nDim === 3 ? octree(nodes, x, y, z)\n :null\n ))).visitAfter(accumulate);\n\n for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n strengths = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);\n }\n\n function accumulate(treeNode) {\n var strength = 0, q, c, weight = 0, x, y, z, i;\n var numChildren = treeNode.length;\n\n // For internal nodes, accumulate forces from children.\n if (numChildren) {\n for (x = y = z = i = 0; i < numChildren; ++i) {\n if ((q = treeNode[i]) && (c = Math.abs(q.value))) {\n strength += q.value, weight += c, x += c * (q.x || 0), y += c * (q.y || 0), z += c * (q.z || 0);\n }\n }\n strength *= Math.sqrt(4 / numChildren); // scale accumulated strength according to number of dimensions\n\n treeNode.x = x / weight;\n if (nDim > 1) { treeNode.y = y / weight; }\n if (nDim > 2) { treeNode.z = z / weight; }\n }\n\n // For leaf nodes, accumulate forces from coincident nodes.\n else {\n q = treeNode;\n q.x = q.data.x;\n if (nDim > 1) { q.y = q.data.y; }\n if (nDim > 2) { q.z = q.data.z; }\n do strength += strengths[q.data.index];\n while (q = q.next);\n }\n\n treeNode.value = strength;\n }\n\n function apply(treeNode, x1, arg1, arg2, arg3) {\n if (!treeNode.value) return true;\n var x2 = [arg1, arg2, arg3][nDim-1];\n\n var x = treeNode.x - node.x,\n y = (nDim > 1 ? treeNode.y - node.y : 0),\n z = (nDim > 2 ? treeNode.z - node.z : 0),\n w = x2 - x1,\n l = x * x + y * y + z * z;\n\n // Apply the Barnes-Hut approximation if possible.\n // Limit forces for very close nodes; randomize direction if coincident.\n if (w * w / theta2 < l) {\n if (l < distanceMax2) {\n if (x === 0) x = jiggle(random), l += x * x;\n if (nDim > 1 && y === 0) y = jiggle(random), l += y * y;\n if (nDim > 2 && z === 0) z = jiggle(random), l += z * z;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n node.vx += x * treeNode.value * alpha / l;\n if (nDim > 1) { node.vy += y * treeNode.value * alpha / l; }\n if (nDim > 2) { node.vz += z * treeNode.value * alpha / l; }\n }\n return true;\n }\n\n // Otherwise, process points directly.\n else if (treeNode.length || l >= distanceMax2) return;\n\n // Limit forces for very close nodes; randomize direction if coincident.\n if (treeNode.data !== node || treeNode.next) {\n if (x === 0) x = jiggle(random), l += x * x;\n if (nDim > 1 && y === 0) y = jiggle(random), l += y * y;\n if (nDim > 2 && z === 0) z = jiggle(random), l += z * z;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n }\n\n do if (treeNode.data !== node) {\n w = strengths[treeNode.data.index] * alpha / l;\n node.vx += x * w;\n if (nDim > 1) { node.vy += y * w; }\n if (nDim > 2) { node.vz += z * w; }\n } while (treeNode = treeNode.next);\n }\n\n force.initialize = function(_nodes, ...args) {\n nodes = _nodes;\n random = args.find(arg => typeof arg === 'function') || Math.random;\n nDim = args.find(arg => [1, 2, 3].includes(arg)) || 2;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.distanceMin = function(_) {\n return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);\n };\n\n force.distanceMax = function(_) {\n return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);\n };\n\n force.theta = function(_) {\n return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);\n };\n\n return force;\n}\n","import constant from \"./constant.js\";\n\nexport default function(radius, x, y, z) {\n var nodes,\n nDim,\n strength = constant(0.1),\n strengths,\n radiuses;\n\n if (typeof radius !== \"function\") radius = constant(+radius);\n if (x == null) x = 0;\n if (y == null) y = 0;\n if (z == null) z = 0;\n\n function force(alpha) {\n for (var i = 0, n = nodes.length; i < n; ++i) {\n var node = nodes[i],\n dx = node.x - x || 1e-6,\n dy = (node.y || 0) - y || 1e-6,\n dz = (node.z || 0) - z || 1e-6,\n r = Math.sqrt(dx * dx + dy * dy + dz * dz),\n k = (radiuses[i] - r) * strengths[i] * alpha / r;\n node.vx += dx * k;\n if (nDim>1) { node.vy += dy * k; }\n if (nDim>2) { node.vz += dz * k; }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n radiuses = new Array(n);\n for (i = 0; i < n; ++i) {\n radiuses[i] = +radius(nodes[i], i, nodes);\n strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(initNodes, ...args) {\n nodes = initNodes;\n nDim = args.find(arg => [1, 2, 3].includes(arg)) || 2;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n force.z = function(_) {\n return arguments.length ? (z = +_, force) : z;\n };\n\n return force;\n}\n","import { Bezier } from \"./bezier.js\";\n\n// math-inlining.\nconst { abs, cos, sin, acos, atan2, sqrt, pow } = Math;\n\n// cube root function yielding real roots\nfunction crt(v) {\n return v < 0 ? -pow(-v, 1 / 3) : pow(v, 1 / 3);\n}\n\n// trig constants\nconst pi = Math.PI,\n tau = 2 * pi,\n quart = pi / 2,\n // float precision significant decimal\n epsilon = 0.000001,\n // extremas used in bbox calculation and similar algorithms\n nMax = Number.MAX_SAFE_INTEGER || 9007199254740991,\n nMin = Number.MIN_SAFE_INTEGER || -9007199254740991,\n // a zero coordinate, which is surprisingly useful\n ZERO = { x: 0, y: 0, z: 0 };\n\n// Bezier utility functions\nconst utils = {\n // Legendre-Gauss abscissae with n=24 (x_i values, defined at i=n as the roots of the nth order Legendre polynomial Pn(x))\n Tvalues: [\n -0.0640568928626056260850430826247450385909,\n 0.0640568928626056260850430826247450385909,\n -0.1911188674736163091586398207570696318404,\n 0.1911188674736163091586398207570696318404,\n -0.3150426796961633743867932913198102407864,\n 0.3150426796961633743867932913198102407864,\n -0.4337935076260451384870842319133497124524,\n 0.4337935076260451384870842319133497124524,\n -0.5454214713888395356583756172183723700107,\n 0.5454214713888395356583756172183723700107,\n -0.6480936519369755692524957869107476266696,\n 0.6480936519369755692524957869107476266696,\n -0.7401241915785543642438281030999784255232,\n 0.7401241915785543642438281030999784255232,\n -0.8200019859739029219539498726697452080761,\n 0.8200019859739029219539498726697452080761,\n -0.8864155270044010342131543419821967550873,\n 0.8864155270044010342131543419821967550873,\n -0.9382745520027327585236490017087214496548,\n 0.9382745520027327585236490017087214496548,\n -0.9747285559713094981983919930081690617411,\n 0.9747285559713094981983919930081690617411,\n -0.9951872199970213601799974097007368118745,\n 0.9951872199970213601799974097007368118745,\n ],\n\n // Legendre-Gauss weights with n=24 (w_i values, defined by a function linked to in the Bezier primer article)\n Cvalues: [\n 0.1279381953467521569740561652246953718517,\n 0.1279381953467521569740561652246953718517,\n 0.1258374563468282961213753825111836887264,\n 0.1258374563468282961213753825111836887264,\n 0.121670472927803391204463153476262425607,\n 0.121670472927803391204463153476262425607,\n 0.1155056680537256013533444839067835598622,\n 0.1155056680537256013533444839067835598622,\n 0.1074442701159656347825773424466062227946,\n 0.1074442701159656347825773424466062227946,\n 0.0976186521041138882698806644642471544279,\n 0.0976186521041138882698806644642471544279,\n 0.086190161531953275917185202983742667185,\n 0.086190161531953275917185202983742667185,\n 0.0733464814110803057340336152531165181193,\n 0.0733464814110803057340336152531165181193,\n 0.0592985849154367807463677585001085845412,\n 0.0592985849154367807463677585001085845412,\n 0.0442774388174198061686027482113382288593,\n 0.0442774388174198061686027482113382288593,\n 0.0285313886289336631813078159518782864491,\n 0.0285313886289336631813078159518782864491,\n 0.0123412297999871995468056670700372915759,\n 0.0123412297999871995468056670700372915759,\n ],\n\n arcfn: function (t, derivativeFn) {\n const d = derivativeFn(t);\n let l = d.x * d.x + d.y * d.y;\n if (typeof d.z !== \"undefined\") {\n l += d.z * d.z;\n }\n return sqrt(l);\n },\n\n compute: function (t, points, _3d) {\n // shortcuts\n if (t === 0) {\n points[0].t = 0;\n return points[0];\n }\n\n const order = points.length - 1;\n\n if (t === 1) {\n points[order].t = 1;\n return points[order];\n }\n\n const mt = 1 - t;\n let p = points;\n\n // constant?\n if (order === 0) {\n points[0].t = t;\n return points[0];\n }\n\n // linear?\n if (order === 1) {\n const ret = {\n x: mt * p[0].x + t * p[1].x,\n y: mt * p[0].y + t * p[1].y,\n t: t,\n };\n if (_3d) {\n ret.z = mt * p[0].z + t * p[1].z;\n }\n return ret;\n }\n\n // quadratic/cubic curve?\n if (order < 4) {\n let mt2 = mt * mt,\n t2 = t * t,\n a,\n b,\n c,\n d = 0;\n if (order === 2) {\n p = [p[0], p[1], p[2], ZERO];\n a = mt2;\n b = mt * t * 2;\n c = t2;\n } else if (order === 3) {\n a = mt2 * mt;\n b = mt2 * t * 3;\n c = mt * t2 * 3;\n d = t * t2;\n }\n const ret = {\n x: a * p[0].x + b * p[1].x + c * p[2].x + d * p[3].x,\n y: a * p[0].y + b * p[1].y + c * p[2].y + d * p[3].y,\n t: t,\n };\n if (_3d) {\n ret.z = a * p[0].z + b * p[1].z + c * p[2].z + d * p[3].z;\n }\n return ret;\n }\n\n // higher order curves: use de Casteljau's computation\n const dCpts = JSON.parse(JSON.stringify(points));\n while (dCpts.length > 1) {\n for (let i = 0; i < dCpts.length - 1; i++) {\n dCpts[i] = {\n x: dCpts[i].x + (dCpts[i + 1].x - dCpts[i].x) * t,\n y: dCpts[i].y + (dCpts[i + 1].y - dCpts[i].y) * t,\n };\n if (typeof dCpts[i].z !== \"undefined\") {\n dCpts[i].z = dCpts[i].z + (dCpts[i + 1].z - dCpts[i].z) * t;\n }\n }\n dCpts.splice(dCpts.length - 1, 1);\n }\n dCpts[0].t = t;\n return dCpts[0];\n },\n\n computeWithRatios: function (t, points, ratios, _3d) {\n const mt = 1 - t,\n r = ratios,\n p = points;\n\n let f1 = r[0],\n f2 = r[1],\n f3 = r[2],\n f4 = r[3],\n d;\n\n // spec for linear\n f1 *= mt;\n f2 *= t;\n\n if (p.length === 2) {\n d = f1 + f2;\n return {\n x: (f1 * p[0].x + f2 * p[1].x) / d,\n y: (f1 * p[0].y + f2 * p[1].y) / d,\n z: !_3d ? false : (f1 * p[0].z + f2 * p[1].z) / d,\n t: t,\n };\n }\n\n // upgrade to quadratic\n f1 *= mt;\n f2 *= 2 * mt;\n f3 *= t * t;\n\n if (p.length === 3) {\n d = f1 + f2 + f3;\n return {\n x: (f1 * p[0].x + f2 * p[1].x + f3 * p[2].x) / d,\n y: (f1 * p[0].y + f2 * p[1].y + f3 * p[2].y) / d,\n z: !_3d ? false : (f1 * p[0].z + f2 * p[1].z + f3 * p[2].z) / d,\n t: t,\n };\n }\n\n // upgrade to cubic\n f1 *= mt;\n f2 *= 1.5 * mt;\n f3 *= 3 * mt;\n f4 *= t * t * t;\n\n if (p.length === 4) {\n d = f1 + f2 + f3 + f4;\n return {\n x: (f1 * p[0].x + f2 * p[1].x + f3 * p[2].x + f4 * p[3].x) / d,\n y: (f1 * p[0].y + f2 * p[1].y + f3 * p[2].y + f4 * p[3].y) / d,\n z: !_3d\n ? false\n : (f1 * p[0].z + f2 * p[1].z + f3 * p[2].z + f4 * p[3].z) / d,\n t: t,\n };\n }\n },\n\n derive: function (points, _3d) {\n const dpoints = [];\n for (let p = points, d = p.length, c = d - 1; d > 1; d--, c--) {\n const list = [];\n for (let j = 0, dpt; j < c; j++) {\n dpt = {\n x: c * (p[j + 1].x - p[j].x),\n y: c * (p[j + 1].y - p[j].y),\n };\n if (_3d) {\n dpt.z = c * (p[j + 1].z - p[j].z);\n }\n list.push(dpt);\n }\n dpoints.push(list);\n p = list;\n }\n return dpoints;\n },\n\n between: function (v, m, M) {\n return (\n (m <= v && v <= M) ||\n utils.approximately(v, m) ||\n utils.approximately(v, M)\n );\n },\n\n approximately: function (a, b, precision) {\n return abs(a - b) <= (precision || epsilon);\n },\n\n length: function (derivativeFn) {\n const z = 0.5,\n len = utils.Tvalues.length;\n\n let sum = 0;\n\n for (let i = 0, t; i < len; i++) {\n t = z * utils.Tvalues[i] + z;\n sum += utils.Cvalues[i] * utils.arcfn(t, derivativeFn);\n }\n return z * sum;\n },\n\n map: function (v, ds, de, ts, te) {\n const d1 = de - ds,\n d2 = te - ts,\n v2 = v - ds,\n r = v2 / d1;\n return ts + d2 * r;\n },\n\n lerp: function (r, v1, v2) {\n const ret = {\n x: v1.x + r * (v2.x - v1.x),\n y: v1.y + r * (v2.y - v1.y),\n };\n if (v1.z !== undefined && v2.z !== undefined) {\n ret.z = v1.z + r * (v2.z - v1.z);\n }\n return ret;\n },\n\n pointToString: function (p) {\n let s = p.x + \"/\" + p.y;\n if (typeof p.z !== \"undefined\") {\n s += \"/\" + p.z;\n }\n return s;\n },\n\n pointsToString: function (points) {\n return \"[\" + points.map(utils.pointToString).join(\", \") + \"]\";\n },\n\n copy: function (obj) {\n return JSON.parse(JSON.stringify(obj));\n },\n\n angle: function (o, v1, v2) {\n const dx1 = v1.x - o.x,\n dy1 = v1.y - o.y,\n dx2 = v2.x - o.x,\n dy2 = v2.y - o.y,\n cross = dx1 * dy2 - dy1 * dx2,\n dot = dx1 * dx2 + dy1 * dy2;\n return atan2(cross, dot);\n },\n\n // round as string, to avoid rounding errors\n round: function (v, d) {\n const s = \"\" + v;\n const pos = s.indexOf(\".\");\n return parseFloat(s.substring(0, pos + 1 + d));\n },\n\n dist: function (p1, p2) {\n const dx = p1.x - p2.x,\n dy = p1.y - p2.y;\n return sqrt(dx * dx + dy * dy);\n },\n\n closest: function (LUT, point) {\n let mdist = pow(2, 63),\n mpos,\n d;\n LUT.forEach(function (p, idx) {\n d = utils.dist(point, p);\n if (d < mdist) {\n mdist = d;\n mpos = idx;\n }\n });\n return { mdist: mdist, mpos: mpos };\n },\n\n abcratio: function (t, n) {\n // see ratio(t) note on http://pomax.github.io/bezierinfo/#abc\n if (n !== 2 && n !== 3) {\n return false;\n }\n if (typeof t === \"undefined\") {\n t = 0.5;\n } else if (t === 0 || t === 1) {\n return t;\n }\n const bottom = pow(t, n) + pow(1 - t, n),\n top = bottom - 1;\n return abs(top / bottom);\n },\n\n projectionratio: function (t, n) {\n // see u(t) note on http://pomax.github.io/bezierinfo/#abc\n if (n !== 2 && n !== 3) {\n return false;\n }\n if (typeof t === \"undefined\") {\n t = 0.5;\n } else if (t === 0 || t === 1) {\n return t;\n }\n const top = pow(1 - t, n),\n bottom = pow(t, n) + top;\n return top / bottom;\n },\n\n lli8: function (x1, y1, x2, y2, x3, y3, x4, y4) {\n const nx =\n (x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4),\n ny = (x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4),\n d = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);\n if (d == 0) {\n return false;\n }\n return { x: nx / d, y: ny / d };\n },\n\n lli4: function (p1, p2, p3, p4) {\n const x1 = p1.x,\n y1 = p1.y,\n x2 = p2.x,\n y2 = p2.y,\n x3 = p3.x,\n y3 = p3.y,\n x4 = p4.x,\n y4 = p4.y;\n return utils.lli8(x1, y1, x2, y2, x3, y3, x4, y4);\n },\n\n lli: function (v1, v2) {\n return utils.lli4(v1, v1.c, v2, v2.c);\n },\n\n makeline: function (p1, p2) {\n return new Bezier(\n p1.x,\n p1.y,\n (p1.x + p2.x) / 2,\n (p1.y + p2.y) / 2,\n p2.x,\n p2.y\n );\n },\n\n findbbox: function (sections) {\n let mx = nMax,\n my = nMax,\n MX = nMin,\n MY = nMin;\n sections.forEach(function (s) {\n const bbox = s.bbox();\n if (mx > bbox.x.min) mx = bbox.x.min;\n if (my > bbox.y.min) my = bbox.y.min;\n if (MX < bbox.x.max) MX = bbox.x.max;\n if (MY < bbox.y.max) MY = bbox.y.max;\n });\n return {\n x: { min: mx, mid: (mx + MX) / 2, max: MX, size: MX - mx },\n y: { min: my, mid: (my + MY) / 2, max: MY, size: MY - my },\n };\n },\n\n shapeintersections: function (\n s1,\n bbox1,\n s2,\n bbox2,\n curveIntersectionThreshold\n ) {\n if (!utils.bboxoverlap(bbox1, bbox2)) return [];\n const intersections = [];\n const a1 = [s1.startcap, s1.forward, s1.back, s1.endcap];\n const a2 = [s2.startcap, s2.forward, s2.back, s2.endcap];\n a1.forEach(function (l1) {\n if (l1.virtual) return;\n a2.forEach(function (l2) {\n if (l2.virtual) return;\n const iss = l1.intersects(l2, curveIntersectionThreshold);\n if (iss.length > 0) {\n iss.c1 = l1;\n iss.c2 = l2;\n iss.s1 = s1;\n iss.s2 = s2;\n intersections.push(iss);\n }\n });\n });\n return intersections;\n },\n\n makeshape: function (forward, back, curveIntersectionThreshold) {\n const bpl = back.points.length;\n const fpl = forward.points.length;\n const start = utils.makeline(back.points[bpl - 1], forward.points[0]);\n const end = utils.makeline(forward.points[fpl - 1], back.points[0]);\n const shape = {\n startcap: start,\n forward: forward,\n back: back,\n endcap: end,\n bbox: utils.findbbox([start, forward, back, end]),\n };\n shape.intersections = function (s2) {\n return utils.shapeintersections(\n shape,\n shape.bbox,\n s2,\n s2.bbox,\n curveIntersectionThreshold\n );\n };\n return shape;\n },\n\n getminmax: function (curve, d, list) {\n if (!list) return { min: 0, max: 0 };\n let min = nMax,\n max = nMin,\n t,\n c;\n if (list.indexOf(0) === -1) {\n list = [0].concat(list);\n }\n if (list.indexOf(1) === -1) {\n list.push(1);\n }\n for (let i = 0, len = list.length; i < len; i++) {\n t = list[i];\n c = curve.get(t);\n if (c[d] < min) {\n min = c[d];\n }\n if (c[d] > max) {\n max = c[d];\n }\n }\n return { min: min, mid: (min + max) / 2, max: max, size: max - min };\n },\n\n align: function (points, line) {\n const tx = line.p1.x,\n ty = line.p1.y,\n a = -atan2(line.p2.y - ty, line.p2.x - tx),\n d = function (v) {\n return {\n x: (v.x - tx) * cos(a) - (v.y - ty) * sin(a),\n y: (v.x - tx) * sin(a) + (v.y - ty) * cos(a),\n };\n };\n return points.map(d);\n },\n\n roots: function (points, line) {\n line = line || { p1: { x: 0, y: 0 }, p2: { x: 1, y: 0 } };\n\n const order = points.length - 1;\n const aligned = utils.align(points, line);\n const reduce = function (t) {\n return 0 <= t && t <= 1;\n };\n\n if (order === 2) {\n const a = aligned[0].y,\n b = aligned[1].y,\n c = aligned[2].y,\n d = a - 2 * b + c;\n if (d !== 0) {\n const m1 = -sqrt(b * b - a * c),\n m2 = -a + b,\n v1 = -(m1 + m2) / d,\n v2 = -(-m1 + m2) / d;\n return [v1, v2].filter(reduce);\n } else if (b !== c && d === 0) {\n return [(2 * b - c) / (2 * b - 2 * c)].filter(reduce);\n }\n return [];\n }\n\n // see http://www.trans4mind.com/personal_development/mathematics/polynomials/cubicAlgebra.htm\n const pa = aligned[0].y,\n pb = aligned[1].y,\n pc = aligned[2].y,\n pd = aligned[3].y;\n\n let d = -pa + 3 * pb - 3 * pc + pd,\n a = 3 * pa - 6 * pb + 3 * pc,\n b = -3 * pa + 3 * pb,\n c = pa;\n\n if (utils.approximately(d, 0)) {\n // this is not a cubic curve.\n if (utils.approximately(a, 0)) {\n // in fact, this is not a quadratic curve either.\n if (utils.approximately(b, 0)) {\n // in fact in fact, there are no solutions.\n return [];\n }\n // linear solution:\n return [-c / b].filter(reduce);\n }\n // quadratic solution:\n const q = sqrt(b * b - 4 * a * c),\n a2 = 2 * a;\n return [(q - b) / a2, (-b - q) / a2].filter(reduce);\n }\n\n // at this point, we know we need a cubic solution:\n\n a /= d;\n b /= d;\n c /= d;\n\n const p = (3 * b - a * a) / 3,\n p3 = p / 3,\n q = (2 * a * a * a - 9 * a * b + 27 * c) / 27,\n q2 = q / 2,\n discriminant = q2 * q2 + p3 * p3 * p3;\n\n let u1, v1, x1, x2, x3;\n if (discriminant < 0) {\n const mp3 = -p / 3,\n mp33 = mp3 * mp3 * mp3,\n r = sqrt(mp33),\n t = -q / (2 * r),\n cosphi = t < -1 ? -1 : t > 1 ? 1 : t,\n phi = acos(cosphi),\n crtr = crt(r),\n t1 = 2 * crtr;\n x1 = t1 * cos(phi / 3) - a / 3;\n x2 = t1 * cos((phi + tau) / 3) - a / 3;\n x3 = t1 * cos((phi + 2 * tau) / 3) - a / 3;\n return [x1, x2, x3].filter(reduce);\n } else if (discriminant === 0) {\n u1 = q2 < 0 ? crt(-q2) : -crt(q2);\n x1 = 2 * u1 - a / 3;\n x2 = -u1 - a / 3;\n return [x1, x2].filter(reduce);\n } else {\n const sd = sqrt(discriminant);\n u1 = crt(-q2 + sd);\n v1 = crt(q2 + sd);\n return [u1 - v1 - a / 3].filter(reduce);\n }\n },\n\n droots: function (p) {\n // quadratic roots are easy\n if (p.length === 3) {\n const a = p[0],\n b = p[1],\n c = p[2],\n d = a - 2 * b + c;\n if (d !== 0) {\n const m1 = -sqrt(b * b - a * c),\n m2 = -a + b,\n v1 = -(m1 + m2) / d,\n v2 = -(-m1 + m2) / d;\n return [v1, v2];\n } else if (b !== c && d === 0) {\n return [(2 * b - c) / (2 * (b - c))];\n }\n return [];\n }\n\n // linear roots are even easier\n if (p.length === 2) {\n const a = p[0],\n b = p[1];\n if (a !== b) {\n return [a / (a - b)];\n }\n return [];\n }\n\n return [];\n },\n\n curvature: function (t, d1, d2, _3d, kOnly) {\n let num,\n dnm,\n adk,\n dk,\n k = 0,\n r = 0;\n\n //\n // We're using the following formula for curvature:\n //\n // x'y\" - y'x\"\n // k(t) = ------------------\n // (x'² + y'²)^(3/2)\n //\n // from https://en.wikipedia.org/wiki/Radius_of_curvature#Definition\n //\n // With it corresponding 3D counterpart:\n //\n // sqrt( (y'z\" - y\"z')² + (z'x\" - z\"x')² + (x'y\" - x\"y')²)\n // k(t) = -------------------------------------------------------\n // (x'² + y'² + z'²)^(3/2)\n //\n\n const d = utils.compute(t, d1);\n const dd = utils.compute(t, d2);\n const qdsum = d.x * d.x + d.y * d.y;\n\n if (_3d) {\n num = sqrt(\n pow(d.y * dd.z - dd.y * d.z, 2) +\n pow(d.z * dd.x - dd.z * d.x, 2) +\n pow(d.x * dd.y - dd.x * d.y, 2)\n );\n dnm = pow(qdsum + d.z * d.z, 3 / 2);\n } else {\n num = d.x * dd.y - d.y * dd.x;\n dnm = pow(qdsum, 3 / 2);\n }\n\n if (num === 0 || dnm === 0) {\n return { k: 0, r: 0 };\n }\n\n k = num / dnm;\n r = dnm / num;\n\n // We're also computing the derivative of kappa, because\n // there is value in knowing the rate of change for the\n // curvature along the curve. And we're just going to\n // ballpark it based on an epsilon.\n if (!kOnly) {\n // compute k'(t) based on the interval before, and after it,\n // to at least try to not introduce forward/backward pass bias.\n const pk = utils.curvature(t - 0.001, d1, d2, _3d, true).k;\n const nk = utils.curvature(t + 0.001, d1, d2, _3d, true).k;\n dk = (nk - k + (k - pk)) / 2;\n adk = (abs(nk - k) + abs(k - pk)) / 2;\n }\n\n return { k: k, r: r, dk: dk, adk: adk };\n },\n\n inflections: function (points) {\n if (points.length < 4) return [];\n\n // FIXME: TODO: add in inflection abstraction for quartic+ curves?\n\n const p = utils.align(points, { p1: points[0], p2: points.slice(-1)[0] }),\n a = p[2].x * p[1].y,\n b = p[3].x * p[1].y,\n c = p[1].x * p[2].y,\n d = p[3].x * p[2].y,\n v1 = 18 * (-3 * a + 2 * b + 3 * c - d),\n v2 = 18 * (3 * a - b - 3 * c),\n v3 = 18 * (c - a);\n\n if (utils.approximately(v1, 0)) {\n if (!utils.approximately(v2, 0)) {\n let t = -v3 / v2;\n if (0 <= t && t <= 1) return [t];\n }\n return [];\n }\n\n const d2 = 2 * v1;\n\n if (utils.approximately(d2, 0)) return [];\n\n const trm = v2 * v2 - 4 * v1 * v3;\n\n if (trm < 0) return [];\n\n const sq = Math.sqrt(trm);\n\n return [(sq - v2) / d2, -(v2 + sq) / d2].filter(function (r) {\n return 0 <= r && r <= 1;\n });\n },\n\n bboxoverlap: function (b1, b2) {\n const dims = [\"x\", \"y\"],\n len = dims.length;\n\n for (let i = 0, dim, l, t, d; i < len; i++) {\n dim = dims[i];\n l = b1[dim].mid;\n t = b2[dim].mid;\n d = (b1[dim].size + b2[dim].size) / 2;\n if (abs(l - t) >= d) return false;\n }\n return true;\n },\n\n expandbox: function (bbox, _bbox) {\n if (_bbox.x.min < bbox.x.min) {\n bbox.x.min = _bbox.x.min;\n }\n if (_bbox.y.min < bbox.y.min) {\n bbox.y.min = _bbox.y.min;\n }\n if (_bbox.z && _bbox.z.min < bbox.z.min) {\n bbox.z.min = _bbox.z.min;\n }\n if (_bbox.x.max > bbox.x.max) {\n bbox.x.max = _bbox.x.max;\n }\n if (_bbox.y.max > bbox.y.max) {\n bbox.y.max = _bbox.y.max;\n }\n if (_bbox.z && _bbox.z.max > bbox.z.max) {\n bbox.z.max = _bbox.z.max;\n }\n bbox.x.mid = (bbox.x.min + bbox.x.max) / 2;\n bbox.y.mid = (bbox.y.min + bbox.y.max) / 2;\n if (bbox.z) {\n bbox.z.mid = (bbox.z.min + bbox.z.max) / 2;\n }\n bbox.x.size = bbox.x.max - bbox.x.min;\n bbox.y.size = bbox.y.max - bbox.y.min;\n if (bbox.z) {\n bbox.z.size = bbox.z.max - bbox.z.min;\n }\n },\n\n pairiteration: function (c1, c2, curveIntersectionThreshold) {\n const c1b = c1.bbox(),\n c2b = c2.bbox(),\n r = 100000,\n threshold = curveIntersectionThreshold || 0.5;\n\n if (\n c1b.x.size + c1b.y.size < threshold &&\n c2b.x.size + c2b.y.size < threshold\n ) {\n return [\n (((r * (c1._t1 + c1._t2)) / 2) | 0) / r +\n \"/\" +\n (((r * (c2._t1 + c2._t2)) / 2) | 0) / r,\n ];\n }\n\n let cc1 = c1.split(0.5),\n cc2 = c2.split(0.5),\n pairs = [\n { left: cc1.left, right: cc2.left },\n { left: cc1.left, right: cc2.right },\n { left: cc1.right, right: cc2.right },\n { left: cc1.right, right: cc2.left },\n ];\n\n pairs = pairs.filter(function (pair) {\n return utils.bboxoverlap(pair.left.bbox(), pair.right.bbox());\n });\n\n let results = [];\n\n if (pairs.length === 0) return results;\n\n pairs.forEach(function (pair) {\n results = results.concat(\n utils.pairiteration(pair.left, pair.right, threshold)\n );\n });\n\n results = results.filter(function (v, i) {\n return results.indexOf(v) === i;\n });\n\n return results;\n },\n\n getccenter: function (p1, p2, p3) {\n const dx1 = p2.x - p1.x,\n dy1 = p2.y - p1.y,\n dx2 = p3.x - p2.x,\n dy2 = p3.y - p2.y,\n dx1p = dx1 * cos(quart) - dy1 * sin(quart),\n dy1p = dx1 * sin(quart) + dy1 * cos(quart),\n dx2p = dx2 * cos(quart) - dy2 * sin(quart),\n dy2p = dx2 * sin(quart) + dy2 * cos(quart),\n // chord midpoints\n mx1 = (p1.x + p2.x) / 2,\n my1 = (p1.y + p2.y) / 2,\n mx2 = (p2.x + p3.x) / 2,\n my2 = (p2.y + p3.y) / 2,\n // midpoint offsets\n mx1n = mx1 + dx1p,\n my1n = my1 + dy1p,\n mx2n = mx2 + dx2p,\n my2n = my2 + dy2p,\n // intersection of these lines:\n arc = utils.lli8(mx1, my1, mx1n, my1n, mx2, my2, mx2n, my2n),\n r = utils.dist(arc, p1);\n\n // arc start/end values, over mid point:\n let s = atan2(p1.y - arc.y, p1.x - arc.x),\n m = atan2(p2.y - arc.y, p2.x - arc.x),\n e = atan2(p3.y - arc.y, p3.x - arc.x),\n _;\n\n // determine arc direction (cw/ccw correction)\n if (s < e) {\n // if s<m<e, arc(s, e)\n // if m<s<e, arc(e, s + tau)\n // if s<e<m, arc(e, s + tau)\n if (s > m || m > e) {\n s += tau;\n }\n if (s > e) {\n _ = e;\n e = s;\n s = _;\n }\n } else {\n // if e<m<s, arc(e, s)\n // if m<e<s, arc(s, e + tau)\n // if e<s<m, arc(s, e + tau)\n if (e < m && m < s) {\n _ = e;\n e = s;\n s = _;\n } else {\n e += tau;\n }\n }\n // assign and done.\n arc.s = s;\n arc.e = e;\n arc.r = r;\n return arc;\n },\n\n numberSort: function (a, b) {\n return a - b;\n },\n};\n\nexport { utils };\n","import { utils } from \"./utils.js\";\n\n/**\n * Poly Bezier\n * @param {[type]} curves [description]\n */\nclass PolyBezier {\n constructor(curves) {\n this.curves = [];\n this._3d = false;\n if (!!curves) {\n this.curves = curves;\n this._3d = this.curves[0]._3d;\n }\n }\n\n valueOf() {\n return this.toString();\n }\n\n toString() {\n return (\n \"[\" +\n this.curves\n .map(function (curve) {\n return utils.pointsToString(curve.points);\n })\n .join(\", \") +\n \"]\"\n );\n }\n\n addCurve(curve) {\n this.curves.push(curve);\n this._3d = this._3d || curve._3d;\n }\n\n length() {\n return this.curves\n .map(function (v) {\n return v.length();\n })\n .reduce(function (a, b) {\n return a + b;\n });\n }\n\n curve(idx) {\n return this.curves[idx];\n }\n\n bbox() {\n const c = this.curves;\n var bbox = c[0].bbox();\n for (var i = 1; i < c.length; i++) {\n utils.expandbox(bbox, c[i].bbox());\n }\n return bbox;\n }\n\n offset(d) {\n const offset = [];\n this.curves.forEach(function (v) {\n offset.push(...v.offset(d));\n });\n return new PolyBezier(offset);\n }\n}\n\nexport { PolyBezier };\n","/**\n A javascript Bezier curve library by Pomax.\n\n Based on http://pomax.github.io/bezierinfo\n\n This code is MIT licensed.\n**/\n\nimport { utils } from \"./utils.js\";\nimport { PolyBezier } from \"./poly-bezier.js\";\n\n// math-inlining.\nconst { abs, min, max, cos, sin, acos, sqrt } = Math;\nconst pi = Math.PI;\n// a zero coordinate, which is surprisingly useful\nconst ZERO = { x: 0, y: 0, z: 0 };\n\n/**\n * Bezier curve constructor.\n *\n * ...docs pending...\n */\nclass Bezier {\n constructor(coords) {\n let args =\n coords && coords.forEach ? coords : Array.from(arguments).slice();\n let coordlen = false;\n\n if (typeof args[0] === \"object\") {\n coordlen = args.length;\n const newargs = [];\n args.forEach(function (point) {\n [\"x\", \"y\", \"z\"].forEach(function (d) {\n if (typeof point[d] !== \"undefined\") {\n newargs.push(point[d]);\n }\n });\n });\n args = newargs;\n }\n\n let higher = false;\n const len = args.length;\n\n if (coordlen) {\n if (coordlen > 4) {\n if (arguments.length !== 1) {\n throw new Error(\n \"Only new Bezier(point[]) is accepted for 4th and higher order curves\"\n );\n }\n higher = true;\n }\n } else {\n if (len !== 6 && len !== 8 && len !== 9 && len !== 12) {\n if (arguments.length !== 1) {\n throw new Error(\n \"Only new Bezier(point[]) is accepted for 4th and higher order curves\"\n );\n }\n }\n }\n\n const _3d = (this._3d =\n (!higher && (len === 9 || len === 12)) ||\n (coords && coords[0] && typeof coords[0].z !== \"undefined\"));\n\n const points = (this.points = []);\n for (let idx = 0, step = _3d ? 3 : 2; idx < len; idx += step) {\n var point = {\n x: args[idx],\n y: args[idx + 1],\n };\n if (_3d) {\n point.z = args[idx + 2];\n }\n points.push(point);\n }\n const order = (this.order = points.length - 1);\n\n const dims = (this.dims = [\"x\", \"y\"]);\n if (_3d) dims.push(\"z\");\n this.dimlen = dims.length;\n\n // is this curve, practically speaking, a straight line?\n const aligned = utils.align(points, { p1: points[0], p2: points[order] });\n const baselength = utils.dist(points[0], points[order]);\n this._linear = aligned.reduce((t, p) => t + abs(p.y), 0) < baselength / 50;\n\n this._lut = [];\n this._t1 = 0;\n this._t2 = 1;\n this.update();\n }\n\n static quadraticFromPoints(p1, p2, p3, t) {\n if (typeof t === \"undefined\") {\n t = 0.5;\n }\n // shortcuts, although they're really dumb\n if (t === 0) {\n return new Bezier(p2, p2, p3);\n }\n if (t === 1) {\n return new Bezier(p1, p2, p2);\n }\n // real fitting.\n const abc = Bezier.getABC(2, p1, p2, p3, t);\n return new Bezier(p1, abc.A, p3);\n }\n\n static cubicFromPoints(S, B, E, t, d1) {\n if (typeof t === \"undefined\") {\n t = 0.5;\n }\n const abc = Bezier.getABC(3, S, B, E, t);\n if (typeof d1 === \"undefined\") {\n d1 = utils.dist(B, abc.C);\n }\n const d2 = (d1 * (1 - t)) / t;\n\n const selen = utils.dist(S, E),\n lx = (E.x - S.x) / selen,\n ly = (E.y - S.y) / selen,\n bx1 = d1 * lx,\n by1 = d1 * ly,\n bx2 = d2 * lx,\n by2 = d2 * ly;\n // derivation of new hull coordinates\n const e1 = { x: B.x - bx1, y: B.y - by1 },\n e2 = { x: B.x + bx2, y: B.y + by2 },\n A = abc.A,\n v1 = { x: A.x + (e1.x - A.x) / (1 - t), y: A.y + (e1.y - A.y) / (1 - t) },\n v2 = { x: A.x + (e2.x - A.x) / t, y: A.y + (e2.y - A.y) / t },\n nc1 = { x: S.x + (v1.x - S.x) / t, y: S.y + (v1.y - S.y) / t },\n nc2 = {\n x: E.x + (v2.x - E.x) / (1 - t),\n y: E.y + (v2.y - E.y) / (1 - t),\n };\n // ...done\n return new Bezier(S, nc1, nc2, E);\n }\n\n static getUtils() {\n return utils;\n }\n\n getUtils() {\n return Bezier.getUtils();\n }\n\n static get PolyBezier() {\n return PolyBezier;\n }\n\n valueOf() {\n return this.toString();\n }\n\n toString() {\n return utils.pointsToString(this.points);\n }\n\n toSVG() {\n if (this._3d) return false;\n const p = this.points,\n x = p[0].x,\n y = p[0].y,\n s = [\"M\", x, y, this.order === 2 ? \"Q\" : \"C\"];\n for (let i = 1, last = p.length; i < last; i++) {\n s.push(p[i].x);\n s.push(p[i].y);\n }\n return s.join(\" \");\n }\n\n setRatios(ratios) {\n if (ratios.length !== this.points.length) {\n throw new Error(\"incorrect number of ratio values\");\n }\n this.ratios = ratios;\n this._lut = []; // invalidate any precomputed LUT\n }\n\n verify() {\n const print = this.coordDigest();\n if (print !== this._print) {\n this._print = print;\n this.update();\n }\n }\n\n coordDigest() {\n return this.points\n .map(function (c, pos) {\n return \"\" + pos + c.x + c.y + (c.z ? c.z : 0);\n })\n .join(\"\");\n }\n\n update() {\n // invalidate any precomputed LUT\n this._lut = [];\n this.dpoints = utils.derive(this.points, this._3d);\n this.computedirection();\n }\n\n computedirection() {\n const points = this.points;\n const angle = utils.angle(points[0], points[this.order], points[1]);\n this.clockwise = angle > 0;\n }\n\n length() {\n return utils.length(this.derivative.bind(this));\n }\n\n static getABC(order = 2, S, B, E, t = 0.5) {\n const u = utils.projectionratio(t, order),\n um = 1 - u,\n C = {\n x: u * S.x + um * E.x,\n y: u * S.y + um * E.y,\n },\n s = utils.abcratio(t, order),\n A = {\n x: B.x + (B.x - C.x) / s,\n y: B.y + (B.y - C.y) / s,\n };\n return { A, B, C, S, E };\n }\n\n getABC(t, B) {\n B = B || this.get(t);\n let S = this.points[0];\n let E = this.points[this.order];\n return Bezier.getABC(this.order, S, B, E, t);\n }\n\n getLUT(steps) {\n this.verify();\n steps = steps || 100;\n if (this._lut.length === steps + 1) {\n return this._lut;\n }\n this._lut = [];\n // n steps means n+1 points\n steps++;\n this._lut = [];\n for (let i = 0, p, t; i < steps; i++) {\n t = i / (steps - 1);\n p = this.compute(t);\n p.t = t;\n this._lut.push(p);\n }\n return this._lut;\n }\n\n on(point, error) {\n error = error || 5;\n const lut = this.getLUT(),\n hits = [];\n for (let i = 0, c, t = 0; i < lut.length; i++) {\n c = lut[i];\n if (utils.dist(c, point) < error) {\n hits.push(c);\n t += i / lut.length;\n }\n }\n if (!hits.length) return false;\n return (t /= hits.length);\n }\n\n project(point) {\n // step 1: coarse check\n const LUT = this.getLUT(),\n l = LUT.length - 1,\n closest = utils.closest(LUT, point),\n mpos = closest.mpos,\n t1 = (mpos - 1) / l,\n t2 = (mpos + 1) / l,\n step = 0.1 / l;\n\n // step 2: fine check\n let mdist = closest.mdist,\n t = t1,\n ft = t,\n p;\n mdist += 1;\n for (let d; t < t2 + step; t += step) {\n p = this.compute(t);\n d = utils.dist(point, p);\n if (d < mdist) {\n mdist = d;\n ft = t;\n }\n }\n ft = ft < 0 ? 0 : ft > 1 ? 1 : ft;\n p = this.compute(ft);\n p.t = ft;\n p.d = mdist;\n return p;\n }\n\n get(t) {\n return this.compute(t);\n }\n\n point(idx) {\n return this.points[idx];\n }\n\n compute(t) {\n if (this.ratios) {\n return utils.computeWithRatios(t, this.points, this.ratios, this._3d);\n }\n return utils.compute(t, this.points, this._3d, this.ratios);\n }\n\n raise() {\n const p = this.points,\n np = [p[0]],\n k = p.length;\n for (let i = 1, pi, pim; i < k; i++) {\n pi = p[i];\n pim = p[i - 1];\n np[i] = {\n x: ((k - i) / k) * pi.x + (i / k) * pim.x,\n y: ((k - i) / k) * pi.y + (i / k) * pim.y,\n };\n }\n np[k] = p[k - 1];\n return new Bezier(np);\n }\n\n derivative(t) {\n return utils.compute(t, this.dpoints[0], this._3d);\n }\n\n dderivative(t) {\n return utils.compute(t, this.dpoints[1], this._3d);\n }\n\n align() {\n let p = this.points;\n return new Bezier(utils.align(p, { p1: p[0], p2: p[p.length - 1] }));\n }\n\n curvature(t) {\n return utils.curvature(t, this.dpoints[0], this.dpoints[1], this._3d);\n }\n\n inflections() {\n return utils.inflections(this.points);\n }\n\n normal(t) {\n return this._3d ? this.__normal3(t) : this.__normal2(t);\n }\n\n __normal2(t) {\n const d = this.derivative(t);\n const q = sqrt(d.x * d.x + d.y * d.y);\n return { t, x: -d.y / q, y: d.x / q };\n }\n\n __normal3(t) {\n // see http://stackoverflow.com/questions/25453159\n const r1 = this.derivative(t),\n r2 = this.derivative(t + 0.01),\n q1 = sqrt(r1.x * r1.x + r1.y * r1.y + r1.z * r1.z),\n q2 = sqrt(r2.x * r2.x + r2.y * r2.y + r2.z * r2.z);\n r1.x /= q1;\n r1.y /= q1;\n r1.z /= q1;\n r2.x /= q2;\n r2.y /= q2;\n r2.z /= q2;\n // cross product\n const c = {\n x: r2.y * r1.z - r2.z * r1.y,\n y: r2.z * r1.x - r2.x * r1.z,\n z: r2.x * r1.y - r2.y * r1.x,\n };\n const m = sqrt(c.x * c.x + c.y * c.y + c.z * c.z);\n c.x /= m;\n c.y /= m;\n c.z /= m;\n // rotation matrix\n const R = [\n c.x * c.x,\n c.x * c.y - c.z,\n c.x * c.z + c.y,\n c.x * c.y + c.z,\n c.y * c.y,\n c.y * c.z - c.x,\n c.x * c.z - c.y,\n c.y * c.z + c.x,\n c.z * c.z,\n ];\n // normal vector:\n const n = {\n t,\n x: R[0] * r1.x + R[1] * r1.y + R[2] * r1.z,\n y: R[3] * r1.x + R[4] * r1.y + R[5] * r1.z,\n z: R[6] * r1.x + R[7] * r1.y + R[8] * r1.z,\n };\n return n;\n }\n\n hull(t) {\n let p = this.points,\n _p = [],\n q = [],\n idx = 0;\n q[idx++] = p[0];\n q[idx++] = p[1];\n q[idx++] = p[2];\n if (this.order === 3) {\n q[idx++] = p[3];\n }\n // we lerp between all points at each iteration, until we have 1 point left.\n while (p.length > 1) {\n _p = [];\n for (let i = 0, pt, l = p.length - 1; i < l; i++) {\n pt = utils.lerp(t, p[i], p[i + 1]);\n q[idx++] = pt;\n _p.push(pt);\n }\n p = _p;\n }\n return q;\n }\n\n split(t1, t2) {\n // shortcuts\n if (t1 === 0 && !!t2) {\n return this.split(t2).left;\n }\n if (t2 === 1) {\n return this.split(t1).right;\n }\n\n // no shortcut: use \"de Casteljau\" iteration.\n const q = this.hull(t1);\n const result = {\n left:\n this.order === 2\n ? new Bezier([q[0], q[3], q[5]])\n : new Bezier([q[0], q[4], q[7], q[9]]),\n right:\n this.order === 2\n ? new Bezier([q[5], q[4], q[2]])\n : new Bezier([q[9], q[8], q[6], q[3]]),\n span: q,\n };\n\n // make sure we bind _t1/_t2 information!\n result.left._t1 = utils.map(0, 0, 1, this._t1, this._t2);\n result.left._t2 = utils.map(t1, 0, 1, this._t1, this._t2);\n result.right._t1 = utils.map(t1, 0, 1, this._t1, this._t2);\n result.right._t2 = utils.map(1, 0, 1, this._t1, this._t2);\n\n // if we have no t2, we're done\n if (!t2) {\n return result;\n }\n\n // if we have a t2, split again:\n t2 = utils.map(t2, t1, 1, 0, 1);\n return result.right.split(t2).left;\n }\n\n extrema() {\n const result = {};\n let roots = [];\n\n this.dims.forEach(\n function (dim) {\n let mfn = function (v) {\n return v[dim];\n };\n let p = this.dpoints[0].map(mfn);\n result[dim] = utils.droots(p);\n if (this.order === 3) {\n p = this.dpoints[1].map(mfn);\n result[dim] = result[dim].concat(utils.droots(p));\n }\n result[dim] = result[dim].filter(function (t) {\n return t >= 0 && t <= 1;\n });\n roots = roots.concat(result[dim].sort(utils.numberSort));\n }.bind(this)\n );\n\n result.values = roots.sort(utils.numberSort).filter(function (v, idx) {\n return roots.indexOf(v) === idx;\n });\n\n return result;\n }\n\n bbox() {\n const extrema = this.extrema(),\n result = {};\n this.dims.forEach(\n function (d) {\n result[d] = utils.getminmax(this, d, extrema[d]);\n }.bind(this)\n );\n return result;\n }\n\n overlaps(curve) {\n const lbbox = this.bbox(),\n tbbox = curve.bbox();\n return utils.bboxoverlap(lbbox, tbbox);\n }\n\n offset(t, d) {\n if (typeof d !== \"undefined\") {\n const c = this.get(t),\n n = this.normal(t);\n const ret = {\n c: c,\n n: n,\n x: c.x + n.x * d,\n y: c.y + n.y * d,\n };\n if (this._3d) {\n ret.z = c.z + n.z * d;\n }\n return ret;\n }\n if (this._linear) {\n const nv = this.normal(0),\n coords = this.points.map(function (p) {\n const ret = {\n x: p.x + t * nv.x,\n y: p.y + t * nv.y,\n };\n if (p.z && nv.z) {\n ret.z = p.z + t * nv.z;\n }\n return ret;\n });\n return [new Bezier(coords)];\n }\n return this.reduce().map(function (s) {\n if (s._linear) {\n return s.offset(t)[0];\n }\n return s.scale(t);\n });\n }\n\n simple() {\n if (this.order === 3) {\n const a1 = utils.angle(this.points[0], this.points[3], this.points[1]);\n const a2 = utils.angle(this.points[0], this.points[3], this.points[2]);\n if ((a1 > 0 && a2 < 0) || (a1 < 0 && a2 > 0)) return false;\n }\n const n1 = this.normal(0);\n const n2 = this.normal(1);\n let s = n1.x * n2.x + n1.y * n2.y;\n if (this._3d) {\n s += n1.z * n2.z;\n }\n return abs(acos(s)) < pi / 3;\n }\n\n reduce() {\n // TODO: examine these var types in more detail...\n let i,\n t1 = 0,\n t2 = 0,\n step = 0.01,\n segment,\n pass1 = [],\n pass2 = [];\n // first pass: split on extrema\n let extrema = this.extrema().values;\n if (extrema.indexOf(0) === -1) {\n extrema = [0].concat(extrema);\n }\n if (extrema.indexOf(1) === -1) {\n extrema.push(1);\n }\n\n for (t1 = extrema[0], i = 1; i < extrema.length; i++) {\n t2 = extrema[i];\n segment = this.split(t1, t2);\n segment._t1 = t1;\n segment._t2 = t2;\n pass1.push(segment);\n t1 = t2;\n }\n\n // second pass: further reduce these segments to simple segments\n pass1.forEach(function (p1) {\n t1 = 0;\n t2 = 0;\n while (t2 <= 1) {\n for (t2 = t1 + step; t2 <= 1 + step; t2 += step) {\n segment = p1.split(t1, t2);\n if (!segment.simple()) {\n t2 -= step;\n if (abs(t1 - t2) < step) {\n // we can never form a reduction\n return [];\n }\n segment = p1.split(t1, t2);\n segment._t1 = utils.map(t1, 0, 1, p1._t1, p1._t2);\n segment._t2 = utils.map(t2, 0, 1, p1._t1, p1._t2);\n pass2.push(segment);\n t1 = t2;\n break;\n }\n }\n }\n if (t1 < 1) {\n segment = p1.split(t1, 1);\n segment._t1 = utils.map(t1, 0, 1, p1._t1, p1._t2);\n segment._t2 = p1._t2;\n pass2.push(segment);\n }\n });\n return pass2;\n }\n\n translate(v, d1, d2) {\n d2 = typeof d2 === \"number\" ? d2 : d1;\n\n // TODO: make this take curves with control points outside\n // of the start-end interval into account\n\n const o = this.order;\n let d = this.points.map((_, i) => (1 - i / o) * d1 + (i / o) * d2);\n return new Bezier(\n this.points.map((p, i) => ({\n x: p.x + v.x * d[i],\n y: p.y + v.y * d[i],\n }))\n );\n }\n\n scale(d) {\n const order = this.order;\n let distanceFn = false;\n if (typeof d === \"function\") {\n distanceFn = d;\n }\n if (distanceFn && order === 2) {\n return this.raise().scale(distanceFn);\n }\n\n // TODO: add special handling for non-linear degenerate curves.\n\n const clockwise = this.clockwise;\n const points = this.points;\n\n if (this._linear) {\n return this.translate(\n this.normal(0),\n distanceFn ? distanceFn(0) : d,\n distanceFn ? distanceFn(1) : d\n );\n }\n\n const r1 = distanceFn ? distanceFn(0) : d;\n const r2 = distanceFn ? distanceFn(1) : d;\n const v = [this.offset(0, 10), this.offset(1, 10)];\n const np = [];\n const o = utils.lli4(v[0], v[0].c, v[1], v[1].c);\n\n if (!o) {\n throw new Error(\"cannot scale this curve. Try reducing it first.\");\n }\n\n // move all points by distance 'd' wrt the origin 'o',\n // and move end points by fixed distance along normal.\n [0, 1].forEach(function (t) {\n const p = (np[t * order] = utils.copy(points[t * order]));\n p.x += (t ? r2 : r1) * v[t].n.x;\n p.y += (t ? r2 : r1) * v[t].n.y;\n });\n\n if (!distanceFn) {\n // move control points to lie on the intersection of the offset\n // derivative vector, and the origin-through-control vector\n [0, 1].forEach((t) => {\n if (order === 2 && !!t) return;\n const p = np[t * order];\n const d = this.derivative(t);\n const p2 = { x: p.x + d.x, y: p.y + d.y };\n np[t + 1] = utils.lli4(p, p2, o, points[t + 1]);\n });\n return new Bezier(np);\n }\n\n // move control points by \"however much necessary to\n // ensure the correct tangent to endpoint\".\n [0, 1].forEach(function (t) {\n if (order === 2 && !!t) return;\n var p = points[t + 1];\n var ov = {\n x: p.x - o.x,\n y: p.y - o.y,\n };\n var rc = distanceFn ? distanceFn((t + 1) / order) : d;\n if (distanceFn && !clockwise) rc = -rc;\n var m = sqrt(ov.x * ov.x + ov.y * ov.y);\n ov.x /= m;\n ov.y /= m;\n np[t + 1] = {\n x: p.x + rc * ov.x,\n y: p.y + rc * ov.y,\n };\n });\n return new Bezier(np);\n }\n\n outline(d1, d2, d3, d4) {\n d2 = d2 === undefined ? d1 : d2;\n\n if (this._linear) {\n // TODO: find the actual extrema, because they might\n // be before the start, or past the end.\n\n const n = this.normal(0);\n const start = this.points[0];\n const end = this.points[this.points.length - 1];\n let s, mid, e;\n\n if (d3 === undefined) {\n d3 = d1;\n d4 = d2;\n }\n\n s = { x: start.x + n.x * d1, y: start.y + n.y * d1 };\n e = { x: end.x + n.x * d3, y: end.y + n.y * d3 };\n mid = { x: (s.x + e.x) / 2, y: (s.y + e.y) / 2 };\n const fline = [s, mid, e];\n\n s = { x: start.x - n.x * d2, y: start.y - n.y * d2 };\n e = { x: end.x - n.x * d4, y: end.y - n.y * d4 };\n mid = { x: (s.x + e.x) / 2, y: (s.y + e.y) / 2 };\n const bline = [e, mid, s];\n\n const ls = utils.makeline(bline[2], fline[0]);\n const le = utils.makeline(fline[2], bline[0]);\n const segments = [ls, new Bezier(fline), le, new Bezier(bline)];\n return new PolyBezier(segments);\n }\n\n const reduced = this.reduce(),\n len = reduced.length,\n fcurves = [];\n\n let bcurves = [],\n p,\n alen = 0,\n tlen = this.length();\n\n const graduated = typeof d3 !== \"undefined\" && typeof d4 !== \"undefined\";\n\n function linearDistanceFunction(s, e, tlen, alen, slen) {\n return function (v) {\n const f1 = alen / tlen,\n f2 = (alen + slen) / tlen,\n d = e - s;\n return utils.map(v, 0, 1, s + f1 * d, s + f2 * d);\n };\n }\n\n // form curve oulines\n reduced.forEach(function (segment) {\n const slen = segment.length();\n if (graduated) {\n fcurves.push(\n segment.scale(linearDistanceFunction(d1, d3, tlen, alen, slen))\n );\n bcurves.push(\n segment.scale(linearDistanceFunction(-d2, -d4, tlen, alen, slen))\n );\n } else {\n fcurves.push(segment.scale(d1));\n bcurves.push(segment.scale(-d2));\n }\n alen += slen;\n });\n\n // reverse the \"return\" outline\n bcurves = bcurves\n .map(function (s) {\n p = s.points;\n if (p[3]) {\n s.points = [p[3], p[2], p[1], p[0]];\n } else {\n s.points = [p[2], p[1], p[0]];\n }\n return s;\n })\n .reverse();\n\n // form the endcaps as lines\n const fs = fcurves[0].points[0],\n fe = fcurves[len - 1].points[fcurves[len - 1].points.length - 1],\n bs = bcurves[len - 1].points[bcurves[len - 1].points.length - 1],\n be = bcurves[0].points[0],\n ls = utils.makeline(bs, fs),\n le = utils.makeline(fe, be),\n segments = [ls].concat(fcurves).concat([le]).concat(bcurves);\n\n return new PolyBezier(segments);\n }\n\n outlineshapes(d1, d2, curveIntersectionThreshold) {\n d2 = d2 || d1;\n const outline = this.outline(d1, d2).curves;\n const shapes = [];\n for (let i = 1, len = outline.length; i < len / 2; i++) {\n const shape = utils.makeshape(\n outline[i],\n outline[len - i],\n curveIntersectionThreshold\n );\n shape.startcap.virtual = i > 1;\n shape.endcap.virtual = i < len / 2 - 1;\n shapes.push(shape);\n }\n return shapes;\n }\n\n intersects(curve, curveIntersectionThreshold) {\n if (!curve) return this.selfintersects(curveIntersectionThreshold);\n if (curve.p1 && curve.p2) {\n return this.lineIntersects(curve);\n }\n if (curve instanceof Bezier) {\n curve = curve.reduce();\n }\n return this.curveintersects(\n this.reduce(),\n curve,\n curveIntersectionThreshold\n );\n }\n\n lineIntersects(line) {\n const mx = min(line.p1.x, line.p2.x),\n my = min(line.p1.y, line.p2.y),\n MX = max(line.p1.x, line.p2.x),\n MY = max(line.p1.y, line.p2.y);\n return utils.roots(this.points, line).filter((t) => {\n var p = this.get(t);\n return utils.between(p.x, mx, MX) && utils.between(p.y, my, MY);\n });\n }\n\n selfintersects(curveIntersectionThreshold) {\n // \"simple\" curves cannot intersect with their direct\n // neighbour, so for each segment X we check whether\n // it intersects [0:x-2][x+2:last].\n\n const reduced = this.reduce(),\n len = reduced.length - 2,\n results = [];\n\n for (let i = 0, result, left, right; i < len; i++) {\n left = reduced.slice(i, i + 1);\n right = reduced.slice(i + 2);\n result = this.curveintersects(left, right, curveIntersectionThreshold);\n results.push(...result);\n }\n return results;\n }\n\n curveintersects(c1, c2, curveIntersectionThreshold) {\n const pairs = [];\n // step 1: pair off any overlapping segments\n c1.forEach(function (l) {\n c2.forEach(function (r) {\n if (l.overlaps(r)) {\n pairs.push({ left: l, right: r });\n }\n });\n });\n // step 2: for each pairing, run through the convergence algorithm.\n let intersections = [];\n pairs.forEach(function (pair) {\n const result = utils.pairiteration(\n pair.left,\n pair.right,\n curveIntersectionThreshold\n );\n if (result.length > 0) {\n intersections = intersections.concat(result);\n }\n });\n return intersections;\n }\n\n arcs(errorThreshold) {\n errorThreshold = errorThreshold || 0.5;\n return this._iterate(errorThreshold, []);\n }\n\n _error(pc, np1, s, e) {\n const q = (e - s) / 4,\n c1 = this.get(s + q),\n c2 = this.get(e - q),\n ref = utils.dist(pc, np1),\n d1 = utils.dist(pc, c1),\n d2 = utils.dist(pc, c2);\n return abs(d1 - ref) + abs(d2 - ref);\n }\n\n _iterate(errorThreshold, circles) {\n let t_s = 0,\n t_e = 1,\n safety;\n // we do a binary search to find the \"good `t` closest to no-longer-good\"\n do {\n safety = 0;\n\n // step 1: start with the maximum possible arc\n t_e = 1;\n\n // points:\n let np1 = this.get(t_s),\n np2,\n np3,\n arc,\n prev_arc;\n\n // booleans:\n let curr_good = false,\n prev_good = false,\n done;\n\n // numbers:\n let t_m = t_e,\n prev_e = 1,\n step = 0;\n\n // step 2: find the best possible arc\n do {\n prev_good = curr_good;\n prev_arc = arc;\n t_m = (t_s + t_e) / 2;\n step++;\n\n np2 = this.get(t_m);\n np3 = this.get(t_e);\n\n arc = utils.getccenter(np1, np2, np3);\n\n //also save the t values\n arc.interval = {\n start: t_s,\n end: t_e,\n };\n\n let error = this._error(arc, np1, t_s, t_e);\n curr_good = error <= errorThreshold;\n\n done = prev_good && !curr_good;\n if (!done) prev_e = t_e;\n\n // this arc is fine: we can move 'e' up to see if we can find a wider arc\n if (curr_good) {\n // if e is already at max, then we're done for this arc.\n if (t_e >= 1) {\n // make sure we cap at t=1\n arc.interval.end = prev_e = 1;\n prev_arc = arc;\n // if we capped the arc segment to t=1 we also need to make sure that\n // the arc's end angle is correct with respect to the bezier end point.\n if (t_e > 1) {\n let d = {\n x: arc.x + arc.r * cos(arc.e),\n y: arc.y + arc.r * sin(arc.e),\n };\n arc.e += utils.angle({ x: arc.x, y: arc.y }, d, this.get(1));\n }\n break;\n }\n // if not, move it up by half the iteration distance\n t_e = t_e + (t_e - t_s) / 2;\n } else {\n // this is a bad arc: we need to move 'e' down to find a good arc\n t_e = t_m;\n }\n } while (!done && safety++ < 100);\n\n if (safety >= 100) {\n break;\n }\n\n // console.log(\"L835: [F] arc found\", t_s, prev_e, prev_arc.x, prev_arc.y, prev_arc.s, prev_arc.e);\n\n prev_arc = prev_arc ? prev_arc : arc;\n circles.push(prev_arc);\n t_s = prev_e;\n } while (t_e < 1);\n return circles;\n }\n}\n\nexport { Bezier };\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = _objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nfunction _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r );\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (String )(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nvar index = (function () {\n var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var keyAccessors = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var multiItem = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var flattenKeys = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var keys = (keyAccessors instanceof Array ? keyAccessors.length ? keyAccessors : [undefined] : [keyAccessors]).map(function (key) {\n return {\n keyAccessor: key,\n isProp: !(key instanceof Function)\n };\n });\n var indexedResult = list.reduce(function (res, item) {\n var iterObj = res;\n var itemVal = item;\n keys.forEach(function (_ref, idx) {\n var keyAccessor = _ref.keyAccessor,\n isProp = _ref.isProp;\n var key;\n if (isProp) {\n var _itemVal = itemVal,\n propVal = _itemVal[keyAccessor],\n rest = _objectWithoutProperties(_itemVal, [keyAccessor].map(_toPropertyKey));\n key = propVal;\n itemVal = rest;\n } else {\n key = keyAccessor(itemVal, idx);\n }\n if (idx + 1 < keys.length) {\n if (!iterObj.hasOwnProperty(key)) {\n iterObj[key] = {};\n }\n iterObj = iterObj[key];\n } else {\n // Leaf key\n if (multiItem) {\n if (!iterObj.hasOwnProperty(key)) {\n iterObj[key] = [];\n }\n iterObj[key].push(itemVal);\n } else {\n iterObj[key] = itemVal;\n }\n }\n });\n return res;\n }, {});\n if (multiItem instanceof Function) {\n // Reduce leaf multiple values\n (function reduce(node) {\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n if (level === keys.length) {\n Object.keys(node).forEach(function (k) {\n return node[k] = multiItem(node[k]);\n });\n } else {\n Object.values(node).forEach(function (child) {\n return reduce(child, level + 1);\n });\n }\n })(indexedResult); // IIFE\n }\n var result = indexedResult;\n if (flattenKeys) {\n // flatten into array\n result = [];\n (function flatten(node) {\n var accKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n if (accKeys.length === keys.length) {\n result.push({\n keys: accKeys,\n vals: node\n });\n } else {\n Object.entries(node).forEach(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n key = _ref3[0],\n val = _ref3[1];\n return flatten(val, [].concat(_toConsumableArray(accKeys), [key]));\n });\n }\n })(indexedResult); //IIFE\n\n if (keyAccessors instanceof Array && keyAccessors.length === 0 && result.length === 1) {\n // clear keys if there's no key accessors (single result)\n result[0].keys = [];\n }\n }\n return result;\n});\n\nexport { index as default };\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","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 colors from \"../colors.js\";\n\nexport default colors(\"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928\");\n","import { scaleOrdinal } from 'd3-scale';\nimport { schemePaired } from 'd3-scale-chromatic';\n\nconst autoColorScale = scaleOrdinal(schemePaired);\n\n// Autoset attribute colorField by colorByAccessor property\n// If an object has already a color, don't set it\n// Objects can be nodes or links\nfunction autoColorObjects(objects, colorByAccessor, colorField) {\n if (!colorByAccessor || typeof colorField !== 'string') return;\n\n objects.filter(obj => !obj[colorField]).forEach(obj => {\n obj[colorField] = autoColorScale(colorByAccessor(obj));\n });\n}\n\nexport { autoColorObjects };\n","export default function({ nodes, links }, idAccessor, {\n nodeFilter = () => true,\n onLoopError = loopIds => { throw `Invalid DAG structure! Found cycle in node path: ${loopIds.join(' -> ')}.` }\n} = {}) {\n // linked graph\n const graph = {};\n\n nodes.forEach(node => graph[idAccessor(node)] = { data: node, out : [], depth: -1, skip: !nodeFilter(node) });\n links.forEach(({ source, target }) => {\n const sourceId = getNodeId(source);\n const targetId = getNodeId(target);\n if (!graph.hasOwnProperty(sourceId)) throw `Missing source node with id: ${sourceId}`;\n if (!graph.hasOwnProperty(targetId)) throw `Missing target node with id: ${targetId}`;\n const sourceNode = graph[sourceId];\n const targetNode = graph[targetId];\n\n sourceNode.out.push(targetNode);\n\n function getNodeId(node) {\n return typeof node === 'object' ? idAccessor(node) : node;\n }\n });\n\n const foundLoops = [];\n traverse(Object.values(graph));\n\n const nodeDepths = Object.assign({}, ...Object.entries(graph)\n .filter(([, node]) => !node.skip)\n .map(([id, node]) => ({ [id]: node.depth }))\n );\n\n return nodeDepths;\n\n function traverse(nodes, nodeStack = [], currentDepth = 0) {\n for (let i=0, l=nodes.length; i<l; i++) {\n const node = nodes[i];\n if (nodeStack.indexOf(node) !== -1) {\n const loop = [...nodeStack.slice(nodeStack.indexOf(node)), node].map(d => idAccessor(d.data));\n if (!foundLoops.some(foundLoop => foundLoop.length === loop.length && foundLoop.every((id, idx) => id === loop[idx]))) {\n foundLoops.push(loop);\n onLoopError(loop);\n }\n continue;\n }\n if (currentDepth > node.depth) { // Don't unnecessarily revisit chunks of the graph\n node.depth = currentDepth;\n traverse(node.out, [...nodeStack, node], currentDepth + (node.skip ? 0 : 1));\n }\n }\n }\n}","import {\n forceSimulation as d3ForceSimulation,\n forceLink as d3ForceLink,\n forceManyBody as d3ForceManyBody,\n forceCenter as d3ForceCenter,\n forceRadial as d3ForceRadial\n} from 'd3-force-3d';\n\nimport { Bezier } from 'bezier-js';\n\nimport Kapsule from 'kapsule';\nimport accessorFn from 'accessor-fn';\nimport indexBy from 'index-array-by';\n\nimport { autoColorObjects } from './color-utils';\nimport getDagDepths from './dagDepths';\n\n//\n\nconst DAG_LEVEL_NODE_RATIO = 2;\n\n// whenever styling props are changed that require a canvas redraw\nconst notifyRedraw = (_, state) => state.onNeedsRedraw && state.onNeedsRedraw();\n\nconst updDataPhotons = (_, state) => {\n if (!state.isShadow) {\n // Add photon particles\n const linkParticlesAccessor = accessorFn(state.linkDirectionalParticles);\n state.graphData.links.forEach(link => {\n const numPhotons = Math.round(Math.abs(linkParticlesAccessor(link)));\n if (numPhotons) {\n link.__photons = [...Array(numPhotons)].map(() => ({}));\n } else {\n delete link.__photons;\n }\n });\n }\n};\n\nexport default Kapsule({\n props: {\n graphData: {\n default: {\n nodes: [],\n links: []\n },\n onChange(_, state) {\n state.engineRunning = false; // Pause simulation\n updDataPhotons(_, state);\n }\n },\n dagMode: { onChange(dagMode, state) { // td, bu, lr, rl, radialin, radialout\n !dagMode && (state.graphData.nodes || []).forEach(n => n.fx = n.fy = undefined); // unfix nodes when disabling dag mode\n }},\n dagLevelDistance: {},\n dagNodeFilter: { default: node => true },\n onDagError: { triggerUpdate: false },\n nodeRelSize: { default: 4, triggerUpdate: false, onChange: notifyRedraw }, // area per val unit\n nodeId: { default: 'id' },\n nodeVal: { default: 'val', triggerUpdate: false, onChange: notifyRedraw },\n nodeColor: { default: 'color', triggerUpdate: false, onChange: notifyRedraw },\n nodeAutoColorBy: {},\n nodeCanvasObject: { triggerUpdate: false, onChange: notifyRedraw },\n nodeCanvasObjectMode: { default: () => 'replace', triggerUpdate: false, onChange: notifyRedraw },\n nodeVisibility: { default: true, triggerUpdate: false, onChange: notifyRedraw },\n linkSource: { default: 'source' },\n linkTarget: { default: 'target' },\n linkVisibility: { default: true, triggerUpdate: false, onChange: notifyRedraw },\n linkColor: { default: 'color', triggerUpdate: false, onChange: notifyRedraw },\n linkAutoColorBy: {},\n linkLineDash: { triggerUpdate: false, onChange: notifyRedraw },\n linkWidth: { default: 1, triggerUpdate: false, onChange: notifyRedraw },\n linkCurvature: { default: 0, triggerUpdate: false, onChange: notifyRedraw },\n linkCanvasObject: { triggerUpdate: false, onChange: notifyRedraw },\n linkCanvasObjectMode: { default: () => 'replace', triggerUpdate: false, onChange: notifyRedraw },\n linkDirectionalArrowLength: { default: 0, triggerUpdate: false, onChange: notifyRedraw },\n linkDirectionalArrowColor: { triggerUpdate: false, onChange: notifyRedraw },\n linkDirectionalArrowRelPos: { default: 0.5, triggerUpdate: false, onChange: notifyRedraw }, // value between 0<>1 indicating the relative pos along the (exposed) line\n linkDirectionalParticles: { default: 0, triggerUpdate: false, onChange: updDataPhotons }, // animate photons travelling in the link direction\n linkDirectionalParticleSpeed: { default: 0.01, triggerUpdate: false }, // in link length ratio per frame\n linkDirectionalParticleWidth: { default: 4, triggerUpdate: false },\n linkDirectionalParticleColor: { triggerUpdate: false },\n globalScale: { default: 1, triggerUpdate: false },\n d3AlphaMin: { default: 0, triggerUpdate: false},\n d3AlphaDecay: { default: 0.0228, triggerUpdate: false, onChange(alphaDecay, state) { state.forceLayout.alphaDecay(alphaDecay) }},\n d3AlphaTarget: { default: 0, triggerUpdate: false, onChange(alphaTarget, state) { state.forceLayout.alphaTarget(alphaTarget) }},\n d3VelocityDecay: { default: 0.4, triggerUpdate: false, onChange(velocityDecay, state) { state.forceLayout.velocityDecay(velocityDecay) } },\n warmupTicks: { default: 0, triggerUpdate: false }, // how many times to tick the force engine at init before starting to render\n cooldownTicks: { default: Infinity, triggerUpdate: false },\n cooldownTime: { default: 15000, triggerUpdate: false }, // ms\n onUpdate: { default: () => {}, triggerUpdate: false },\n onFinishUpdate: { default: () => {}, triggerUpdate: false },\n onEngineTick: { default: () => {}, triggerUpdate: false },\n onEngineStop: { default: () => {}, triggerUpdate: false },\n onNeedsRedraw: { triggerUpdate: false },\n isShadow: { default: false, triggerUpdate: false }\n },\n\n methods: {\n // Expose d3 forces for external manipulation\n d3Force: function(state, forceName, forceFn) {\n if (forceFn === undefined) {\n return state.forceLayout.force(forceName); // Force getter\n }\n state.forceLayout.force(forceName, forceFn); // Force setter\n return this;\n },\n d3ReheatSimulation: function(state) {\n state.forceLayout.alpha(1);\n this.resetCountdown();\n return this;\n },\n // reset cooldown state\n resetCountdown: function(state) {\n state.cntTicks = 0;\n state.startTickTime = new Date();\n state.engineRunning = true;\n return this;\n },\n isEngineRunning: state => !!state.engineRunning,\n tickFrame: function(state) {\n !state.isShadow && layoutTick();\n paintLinks();\n !state.isShadow && paintArrows();\n !state.isShadow && paintPhotons();\n paintNodes();\n\n return this;\n\n //\n\n function layoutTick() {\n if (state.engineRunning) {\n if (\n ++state.cntTicks > state.cooldownTicks ||\n (new Date()) - state.startTickTime > state.cooldownTime ||\n (state.d3AlphaMin > 0 && state.forceLayout.alpha() < state.d3AlphaMin)\n ) {\n state.engineRunning = false; // Stop ticking graph\n state.onEngineStop();\n } else {\n state.forceLayout.tick(); // Tick it\n state.onEngineTick();\n }\n }\n }\n\n function paintNodes() {\n const getVisibility = accessorFn(state.nodeVisibility);\n const getVal = accessorFn(state.nodeVal);\n const getColor = accessorFn(state.nodeColor);\n const getNodeCanvasObjectMode = accessorFn(state.nodeCanvasObjectMode);\n\n const ctx = state.ctx;\n\n // Draw wider nodes by 1px on shadow canvas for more precise hovering (due to boundary anti-aliasing)\n const padAmount = state.isShadow / state.globalScale;\n\n const visibleNodes = state.graphData.nodes.filter(getVisibility);\n\n ctx.save();\n visibleNodes.forEach(node => {\n const nodeCanvasObjectMode = getNodeCanvasObjectMode(node);\n\n if (state.nodeCanvasObject && (nodeCanvasObjectMode === 'before' || nodeCanvasObjectMode === 'replace')) {\n // Custom node before/replace paint\n state.nodeCanvasObject(node, ctx, state.globalScale);\n\n if (nodeCanvasObjectMode === 'replace') {\n ctx.restore();\n return;\n }\n }\n\n // Draw wider nodes by 1px on shadow canvas for more precise hovering (due to boundary anti-aliasing)\n const r = Math.sqrt(Math.max(0, getVal(node) || 1)) * state.nodeRelSize + padAmount;\n\n ctx.beginPath();\n ctx.arc(node.x, node.y, r, 0, 2 * Math.PI, false);\n ctx.fillStyle = getColor(node) || 'rgba(31, 120, 180, 0.92)';\n ctx.fill();\n\n if (state.nodeCanvasObject && nodeCanvasObjectMode === 'after') {\n // Custom node after paint\n state.nodeCanvasObject(node, state.ctx, state.globalScale);\n }\n });\n ctx.restore();\n }\n\n function paintLinks() {\n const getVisibility = accessorFn(state.linkVisibility);\n const getColor = accessorFn(state.linkColor);\n const getWidth = accessorFn(state.linkWidth);\n const getLineDash = accessorFn(state.linkLineDash);\n const getCurvature = accessorFn(state.linkCurvature);\n const getLinkCanvasObjectMode = accessorFn(state.linkCanvasObjectMode);\n\n const ctx = state.ctx;\n\n // Draw wider lines by 2px on shadow canvas for more precise hovering (due to boundary anti-aliasing)\n const padAmount = state.isShadow * 2;\n\n const visibleLinks = state.graphData.links.filter(getVisibility);\n\n visibleLinks.forEach(calcLinkControlPoints); // calculate curvature control points for all visible links\n\n let beforeCustomLinks = [], afterCustomLinks = [], defaultPaintLinks = visibleLinks;\n if (state.linkCanvasObject) {\n const replaceCustomLinks = [], otherCustomLinks = [];\n\n visibleLinks.forEach(d =>\n ({\n before: beforeCustomLinks,\n after: afterCustomLinks,\n replace: replaceCustomLinks\n }[getLinkCanvasObjectMode(d)] || otherCustomLinks).push(d)\n );\n defaultPaintLinks = [...beforeCustomLinks, ...afterCustomLinks, ...otherCustomLinks];\n beforeCustomLinks = beforeCustomLinks.concat(replaceCustomLinks);\n }\n\n // Custom link before paints\n ctx.save();\n beforeCustomLinks.forEach(link => state.linkCanvasObject(link, ctx, state.globalScale));\n ctx.restore();\n\n // Bundle strokes per unique color/width/dash for performance optimization\n const linksPerColor = indexBy(defaultPaintLinks, [getColor, getWidth, getLineDash]);\n\n ctx.save();\n Object.entries(linksPerColor).forEach(([color, linksPerWidth]) => {\n const lineColor = !color || color === 'undefined' ? 'rgba(0,0,0,0.15)' : color;\n Object.entries(linksPerWidth).forEach(([width, linesPerLineDash]) => {\n const lineWidth = (width || 1) / state.globalScale + padAmount;\n Object.entries(linesPerLineDash).forEach(([dashSegments, links]) => {\n const lineDashSegments = getLineDash(links[0]);\n ctx.beginPath();\n links.forEach(link => {\n const start = link.source;\n const end = link.target;\n if (!start || !end || !start.hasOwnProperty('x') || !end.hasOwnProperty('x')) return; // skip invalid link\n \n ctx.moveTo(start.x, start.y);\n \n const controlPoints = link.__controlPoints;\n \n if (!controlPoints) { // Straight line\n ctx.lineTo(end.x, end.y);\n } else {\n // Use quadratic curves for regular lines and bezier for loops\n ctx[controlPoints.length === 2 ? 'quadraticCurveTo' : 'bezierCurveTo'](...controlPoints, end.x, end.y);\n }\n });\n ctx.strokeStyle = lineColor;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(lineDashSegments || []);\n ctx.stroke();\n });\n });\n });\n ctx.restore();\n\n // Custom link after paints\n ctx.save();\n afterCustomLinks.forEach(link => state.linkCanvasObject(link, ctx, state.globalScale));\n ctx.restore();\n\n //\n\n function calcLinkControlPoints(link) {\n const curvature = getCurvature(link);\n\n if (!curvature) { // straight line\n link.__controlPoints = null;\n return;\n }\n\n const start = link.source;\n const end = link.target;\n if (!start || !end || !start.hasOwnProperty('x') || !end.hasOwnProperty('x')) return; // skip invalid link\n\n const l = Math.sqrt(Math.pow(end.x - start.x, 2) + Math.pow(end.y - start.y, 2)); // line length\n\n if (l > 0) {\n const a = Math.atan2(end.y - start.y, end.x - start.x); // line angle\n const d = l * curvature; // control point distance\n\n const cp = { // control point\n x: (start.x + end.x) / 2 + d * Math.cos(a - Math.PI / 2),\n y: (start.y + end.y) / 2 + d * Math.sin(a - Math.PI / 2)\n };\n\n link.__controlPoints = [cp.x, cp.y];\n } else { // Same point, draw a loop\n const d = curvature * 70;\n link.__controlPoints = [end.x, end.y - d, end.x + d, end.y];\n }\n }\n }\n\n function paintArrows() {\n const ARROW_WH_RATIO = 1.6;\n const ARROW_VLEN_RATIO = 0.2;\n\n const getLength = accessorFn(state.linkDirectionalArrowLength);\n const getRelPos = accessorFn(state.linkDirectionalArrowRelPos);\n const getVisibility = accessorFn(state.linkVisibility);\n const getColor = accessorFn(state.linkDirectionalArrowColor || state.linkColor);\n const getNodeVal = accessorFn(state.nodeVal);\n const ctx = state.ctx;\n\n ctx.save();\n state.graphData.links.filter(getVisibility).forEach(link => {\n const arrowLength = getLength(link);\n if (!arrowLength || arrowLength < 0) return;\n\n const start = link.source;\n const end = link.target;\n\n if (!start || !end || !start.hasOwnProperty('x') || !end.hasOwnProperty('x')) return; // skip invalid link\n\n const startR = Math.sqrt(Math.max(0, getNodeVal(start) || 1)) * state.nodeRelSize;\n const endR = Math.sqrt(Math.max(0, getNodeVal(end) || 1)) * state.nodeRelSize;\n\n const arrowRelPos = Math.min(1, Math.max(0, getRelPos(link)));\n const arrowColor = getColor(link) || 'rgba(0,0,0,0.28)';\n const arrowHalfWidth = arrowLength / ARROW_WH_RATIO / 2;\n\n // Construct bezier for curved lines\n const bzLine = link.__controlPoints && new Bezier(start.x, start.y, ...link.__controlPoints, end.x, end.y);\n\n const getCoordsAlongLine = bzLine\n ? t => bzLine.get(t) // get position along bezier line\n : t => ({ // straight line: interpolate linearly\n x: start.x + (end.x - start.x) * t || 0,\n y: start.y + (end.y - start.y) * t || 0\n });\n\n const lineLen = bzLine\n ? bzLine.length()\n : Math.sqrt(Math.pow(end.x - start.x, 2) + Math.pow(end.y - start.y, 2));\n\n const posAlongLine = startR + arrowLength + (lineLen - startR - endR - arrowLength) * arrowRelPos;\n\n const arrowHead = getCoordsAlongLine(posAlongLine / lineLen);\n const arrowTail = getCoordsAlongLine((posAlongLine - arrowLength) / lineLen);\n const arrowTailVertex = getCoordsAlongLine((posAlongLine - arrowLength * (1 - ARROW_VLEN_RATIO)) / lineLen);\n\n const arrowTailAngle = Math.atan2(arrowHead.y - arrowTail.y, arrowHead.x - arrowTail.x) - Math.PI / 2;\n\n ctx.beginPath();\n\n ctx.moveTo(arrowHead.x, arrowHead.y);\n ctx.lineTo(arrowTail.x + arrowHalfWidth * Math.cos(arrowTailAngle), arrowTail.y + arrowHalfWidth * Math.sin(arrowTailAngle));\n ctx.lineTo(arrowTailVertex.x, arrowTailVertex.y);\n ctx.lineTo(arrowTail.x - arrowHalfWidth * Math.cos(arrowTailAngle), arrowTail.y - arrowHalfWidth * Math.sin(arrowTailAngle));\n\n ctx.fillStyle = arrowColor;\n ctx.fill();\n });\n ctx.restore();\n }\n\n function paintPhotons() {\n const getNumPhotons = accessorFn(state.linkDirectionalParticles);\n const getSpeed = accessorFn(state.linkDirectionalParticleSpeed);\n const getDiameter = accessorFn(state.linkDirectionalParticleWidth);\n const getVisibility = accessorFn(state.linkVisibility);\n const getColor = accessorFn(state.linkDirectionalParticleColor || state.linkColor);\n const ctx = state.ctx;\n\n ctx.save();\n state.graphData.links.filter(getVisibility).forEach(link => {\n const numCyclePhotons = getNumPhotons(link);\n\n if (!link.hasOwnProperty('__photons') || !link.__photons.length) return;\n\n const start = link.source;\n const end = link.target;\n\n if (!start || !end || !start.hasOwnProperty('x') || !end.hasOwnProperty('x')) return; // skip invalid link\n\n const particleSpeed = getSpeed(link);\n const photons = link.__photons || [];\n const photonR = Math.max(0, getDiameter(link) / 2) / Math.sqrt(state.globalScale);\n const photonColor = getColor(link) || 'rgba(0,0,0,0.28)';\n\n ctx.fillStyle = photonColor;\n\n // Construct bezier for curved lines\n const bzLine = link.__controlPoints\n ? new Bezier(start.x, start.y, ...link.__controlPoints, end.x, end.y)\n : null;\n\n let cyclePhotonIdx = 0;\n let needsCleanup = false; // whether some photons need to be removed from list\n photons.forEach(photon => {\n const singleHop = !!photon.__singleHop;\n\n if (!photon.hasOwnProperty('__progressRatio')) {\n photon.__progressRatio = singleHop ? 0 : cyclePhotonIdx / numCyclePhotons;\n }\n\n !singleHop && cyclePhotonIdx++; // increase regular photon index\n\n photon.__progressRatio += particleSpeed;\n\n if (photon.__progressRatio >=1) {\n if (!singleHop) {\n photon.__progressRatio = photon.__progressRatio % 1;\n } else {\n needsCleanup = true;\n return;\n }\n }\n\n const photonPosRatio = photon.__progressRatio;\n\n const coords = bzLine\n ? bzLine.get(photonPosRatio) // get position along bezier line\n : { // straight line: interpolate linearly\n x: start.x + (end.x - start.x) * photonPosRatio || 0,\n y: start.y + (end.y - start.y) * photonPosRatio || 0\n };\n\n ctx.beginPath();\n ctx.arc(coords.x, coords.y, photonR, 0, 2 * Math.PI, false);\n ctx.fill();\n });\n\n if (needsCleanup) {\n // remove expired single hop photons\n link.__photons = link.__photons.filter(photon => !photon.__singleHop || photon.__progressRatio <= 1);\n }\n });\n ctx.restore();\n }\n },\n emitParticle: function(state, link) {\n if (link) {\n !link.__photons && (link.__photons = []);\n link.__photons.push({ __singleHop: true }); // add a single hop particle\n }\n\n return this;\n }\n },\n\n stateInit: () => ({\n forceLayout: d3ForceSimulation()\n .force('link', d3ForceLink())\n .force('charge', d3ForceManyBody())\n .force('center', d3ForceCenter())\n .force('dagRadial', null)\n .stop(),\n engineRunning: false\n }),\n\n init(canvasCtx, state) {\n // Main canvas object to manipulate\n state.ctx = canvasCtx;\n },\n\n update(state, changedProps) {\n state.engineRunning = false; // Pause simulation\n state.onUpdate();\n\n if (state.nodeAutoColorBy !== null) {\n // Auto add color to uncolored nodes\n autoColorObjects(state.graphData.nodes, accessorFn(state.nodeAutoColorBy), state.nodeColor);\n }\n if (state.linkAutoColorBy !== null) {\n // Auto add color to uncolored links\n autoColorObjects(state.graphData.links, accessorFn(state.linkAutoColorBy), state.linkColor);\n }\n\n // parse links\n state.graphData.links.forEach(link => {\n link.source = link[state.linkSource];\n link.target = link[state.linkTarget];\n });\n\n // Feed data to force-directed layout\n state.forceLayout\n .stop()\n .alpha(1) // re-heat the simulation\n .nodes(state.graphData.nodes);\n\n // add links (if link force is still active)\n const linkForce = state.forceLayout.force('link');\n if (linkForce) {\n linkForce\n .id(d => d[state.nodeId])\n .links(state.graphData.links);\n }\n\n // setup dag force constraints\n const nodeDepths = state.dagMode && getDagDepths(\n state.graphData,\n node => node[state.nodeId],\n {\n nodeFilter: state.dagNodeFilter,\n onLoopError: state.onDagError || undefined\n }\n );\n const maxDepth = Math.max(...Object.values(nodeDepths || []));\n const dagLevelDistance = state.dagLevelDistance || (\n state.graphData.nodes.length / (maxDepth || 1) * DAG_LEVEL_NODE_RATIO\n * (['radialin', 'radialout'].indexOf(state.dagMode) !== -1 ? 0.7 : 1)\n );\n\n // Reset relevant fx/fy when swapping dag modes\n if (['lr', 'rl', 'td', 'bu'].includes(changedProps.dagMode)) {\n const resetProp = ['lr', 'rl'].includes(changedProps.dagMode) ? 'fx' : 'fy';\n state.graphData.nodes.filter(state.dagNodeFilter).forEach(node => delete node[resetProp]);\n }\n\n // Fix nodes to x,y for dag mode\n if (['lr', 'rl', 'td', 'bu'].includes(state.dagMode)) {\n const invert = ['rl', 'bu'].includes(state.dagMode);\n const fixFn = node => (nodeDepths[node[state.nodeId]] - maxDepth / 2) * dagLevelDistance * (invert ? -1 : 1);\n\n const resetProp = ['lr', 'rl'].includes(state.dagMode) ? 'fx' : 'fy';\n state.graphData.nodes.filter(state.dagNodeFilter).forEach(node => node[resetProp] = fixFn(node));\n }\n\n // Use radial force for radial dags\n state.forceLayout.force('dagRadial',\n ['radialin', 'radialout'].indexOf(state.dagMode) !== -1\n ? d3ForceRadial(node => {\n const nodeDepth = nodeDepths[node[state.nodeId]] || -1;\n return (state.dagMode === 'radialin' ? maxDepth - nodeDepth : nodeDepth) * dagLevelDistance;\n })\n .strength(node => state.dagNodeFilter(node) ? 1 : 0)\n : null\n );\n\n for (let i=0; (i<state.warmupTicks) && !(state.d3AlphaMin > 0 && state.forceLayout.alpha() < state.d3AlphaMin); i++) {\n state.forceLayout.tick();\n } // Initial ticks before starting to render\n\n this.resetCountdown();\n state.onFinishUpdate();\n }\n});\n","export default function(kapsulePropNames, kapsuleType) {\n\n const propNames = kapsulePropNames instanceof Array ? kapsulePropNames : [kapsulePropNames];\n\n const dummyK = new kapsuleType(); // To extract defaults\n dummyK._destructor && dummyK._destructor();\n\n return {\n linkProp: function(prop) { // link property config\n return {\n default: dummyK[prop](),\n onChange(v, state) { propNames.forEach(propName => state[propName][prop](v)) },\n triggerUpdate: false\n }\n },\n linkMethod: function(method) { // link method pass-through\n return function(state, ...args) {\n const returnVals = [];\n propNames.forEach(propName => {\n const kapsuleInstance = state[propName];\n const returnVal = kapsuleInstance[method](...args);\n\n if (returnVal !== kapsuleInstance) {\n returnVals.push(returnVal);\n }\n });\n\n return returnVals.length\n ? returnVals[0]\n : this; // chain based on the parent object, not the inner kapsule\n }\n }\n }\n\n}","import { select as d3Select } from 'd3-selection';\nimport { zoom as d3Zoom, zoomTransform as d3ZoomTransform } from 'd3-zoom';\nimport { drag as d3Drag } from 'd3-drag';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { throttle } from 'lodash-es';\nimport { Tween, Group as TweenGroup, Easing } from '@tweenjs/tween.js';\nimport Kapsule from 'kapsule';\nimport accessorFn from 'accessor-fn';\nimport ColorTracker from 'canvas-color-tracker';\nimport Tooltip from 'float-tooltip';\n\nimport CanvasForceGraph from './canvas-force-graph';\nimport linkKapsule from './kapsule-link.js';\n\nconst HOVER_CANVAS_THROTTLE_DELAY = 800; // ms to throttle shadow canvas updates for perf improvement\nconst ZOOM2NODES_FACTOR = 4;\n\n// Expose config from forceGraph\nconst bindFG = linkKapsule('forceGraph', CanvasForceGraph);\nconst bindBoth = linkKapsule(['forceGraph', 'shadowGraph'], CanvasForceGraph);\nconst linkedProps = Object.assign(\n ...[\n 'nodeColor',\n 'nodeAutoColorBy',\n 'nodeCanvasObject',\n 'nodeCanvasObjectMode',\n 'linkColor',\n 'linkAutoColorBy',\n 'linkLineDash',\n 'linkWidth',\n 'linkCanvasObject',\n 'linkCanvasObjectMode',\n 'linkDirectionalArrowLength',\n 'linkDirectionalArrowColor',\n 'linkDirectionalArrowRelPos',\n 'linkDirectionalParticles',\n 'linkDirectionalParticleSpeed',\n 'linkDirectionalParticleWidth',\n 'linkDirectionalParticleColor',\n 'dagMode',\n 'dagLevelDistance',\n 'dagNodeFilter',\n 'onDagError',\n 'd3AlphaMin',\n 'd3AlphaDecay',\n 'd3VelocityDecay',\n 'warmupTicks',\n 'cooldownTicks',\n 'cooldownTime',\n 'onEngineTick',\n 'onEngineStop'\n ].map(p => ({ [p]: bindFG.linkProp(p)})),\n ...[\n 'nodeRelSize',\n 'nodeId',\n 'nodeVal',\n 'nodeVisibility',\n 'linkSource',\n 'linkTarget',\n 'linkVisibility',\n 'linkCurvature'\n ].map(p => ({ [p]: bindBoth.linkProp(p)}))\n);\nconst linkedMethods = Object.assign(...[\n 'd3Force',\n 'd3ReheatSimulation',\n 'emitParticle'\n].map(p => ({ [p]: bindFG.linkMethod(p)})));\n\nfunction adjustCanvasSize(state) {\n if (state.canvas) {\n let curWidth = state.canvas.width;\n let curHeight = state.canvas.height;\n if (curWidth === 300 && curHeight === 150) { // Default canvas dimensions\n curWidth = curHeight = 0;\n }\n\n const pxScale = window.devicePixelRatio; // 2 on retina displays\n curWidth /= pxScale;\n curHeight /= pxScale;\n\n // Resize canvases\n [state.canvas, state.shadowCanvas].forEach(canvas => {\n // Element size\n canvas.style.width = `${state.width}px`;\n canvas.style.height = `${state.height}px`;\n\n // Memory size (scaled to avoid blurriness)\n canvas.width = state.width * pxScale;\n canvas.height = state.height * pxScale;\n\n // Normalize coordinate system to use css pixels (on init only)\n if (!curWidth && !curHeight) {\n canvas.getContext('2d').scale(pxScale, pxScale);\n }\n });\n\n // Relative center panning based on 0,0\n const k = d3ZoomTransform(state.canvas).k;\n state.zoom.translateBy(state.zoom.__baseElem,\n (state.width - curWidth) / 2 / k,\n (state.height - curHeight) / 2 / k\n );\n state.needsRedraw = true;\n }\n}\n\nfunction resetTransform(ctx) {\n const pxRatio = window.devicePixelRatio;\n ctx.setTransform(pxRatio, 0, 0, pxRatio, 0, 0);\n}\n\nfunction clearCanvas(ctx, width, height) {\n ctx.save();\n resetTransform(ctx); // reset transform\n ctx.clearRect(0, 0, width, height);\n ctx.restore(); //restore transforms\n}\n\n//\n\nexport default Kapsule({\n props:{\n width: { default: window.innerWidth, onChange: (_, state) => adjustCanvasSize(state), triggerUpdate: false } ,\n height: { default: window.innerHeight, onChange: (_, state) => adjustCanvasSize(state), triggerUpdate: false },\n graphData: {\n default: { nodes: [], links: [] },\n onChange: ((d, state) => {\n // Wipe color registry if all objects are new\n [d.nodes, d.links].every(arr => (arr || []).every(d => !d.hasOwnProperty('__indexColor'))) && state.colorTracker.reset();\n\n [{ type: 'Node', objs: d.nodes }, { type: 'Link', objs: d.links }].forEach(hexIndex);\n state.forceGraph.graphData(d);\n state.shadowGraph.graphData(d);\n\n function hexIndex({ type, objs }) {\n objs\n .filter(d => {\n if (!d.hasOwnProperty('__indexColor')) return true;\n const cur = state.colorTracker.lookup(d.__indexColor);\n return (!cur || !cur.hasOwnProperty('d') || cur.d !== d);\n })\n .forEach(d => {\n // store object lookup color\n d.__indexColor = state.colorTracker.register({ type, d });\n });\n }\n }),\n triggerUpdate: false\n },\n backgroundColor: { onChange(color, state) { state.canvas && color && (state.canvas.style.background = color) }, triggerUpdate: false },\n nodeLabel: { default: 'name', triggerUpdate: false },\n nodePointerAreaPaint: { onChange(paintFn, state) {\n state.shadowGraph.nodeCanvasObject(!paintFn ? null :\n (node, ctx, globalScale) => paintFn(node, node.__indexColor, ctx, globalScale)\n );\n state.flushShadowCanvas && state.flushShadowCanvas();\n }, triggerUpdate: false },\n linkPointerAreaPaint: { onChange(paintFn, state) {\n state.shadowGraph.linkCanvasObject(!paintFn ? null :\n (link, ctx, globalScale) => paintFn(link, link.__indexColor, ctx, globalScale)\n );\n state.flushShadowCanvas && state.flushShadowCanvas();\n }, triggerUpdate: false },\n linkLabel: { default: 'name', triggerUpdate: false },\n linkHoverPrecision: { default: 4, triggerUpdate: false },\n minZoom: { default: 0.01, onChange(minZoom, state) { state.zoom.scaleExtent([minZoom, state.zoom.scaleExtent()[1]]); }, triggerUpdate: false },\n maxZoom: { default: 1000, onChange(maxZoom, state) { state.zoom.scaleExtent([state.zoom.scaleExtent()[0], maxZoom]) }, triggerUpdate: false },\n enableNodeDrag: { default: true, triggerUpdate: false },\n enableZoomInteraction: { default: true, triggerUpdate: false },\n enablePanInteraction: { default: true, triggerUpdate: false },\n enableZoomPanInteraction: { default: true, triggerUpdate: false }, // to be deprecated\n enablePointerInteraction: { default: true, onChange(_, state) { state.hoverObj = null; }, triggerUpdate: false },\n autoPauseRedraw: { default: true, triggerUpdate: false },\n onNodeDrag: { default: () => {}, triggerUpdate: false },\n onNodeDragEnd: { default: () => {}, triggerUpdate: false },\n onNodeClick: { triggerUpdate: false },\n onNodeRightClick: { triggerUpdate: false },\n onNodeHover: { triggerUpdate: false },\n onLinkClick: { triggerUpdate: false },\n onLinkRightClick: { triggerUpdate: false },\n onLinkHover: { triggerUpdate: false },\n onBackgroundClick: { triggerUpdate: false },\n onBackgroundRightClick: { triggerUpdate: false },\n onZoom: { triggerUpdate: false },\n onZoomEnd: { triggerUpdate: false },\n onRenderFramePre: { triggerUpdate: false },\n onRenderFramePost: { triggerUpdate: false },\n ...linkedProps\n },\n\n aliases: { // Prop names supported for backwards compatibility\n stopAnimation: 'pauseAnimation'\n },\n\n methods: {\n graph2ScreenCoords: function(state, x, y) {\n const t = d3ZoomTransform(state.canvas);\n return { x: x * t.k + t.x, y: y * t.k + t.y };\n },\n screen2GraphCoords: function(state, x, y) {\n const t = d3ZoomTransform(state.canvas);\n return { x: (x - t.x) / t.k, y: (y - t.y) / t.k };\n },\n centerAt: function(state, x, y, transitionDuration) {\n if (!state.canvas) return null; // no canvas yet\n\n // setter\n if (x !== undefined || y !== undefined) {\n const finalPos = Object.assign({},\n x !== undefined ? { x } : {},\n y !== undefined ? { y } : {}\n );\n if (!transitionDuration) { // no animation\n setCenter(finalPos);\n } else {\n state.tweenGroup.add(\n new Tween(getCenter())\n .to(finalPos, transitionDuration)\n .easing(Easing.Quadratic.Out)\n .onUpdate(setCenter)\n .start()\n );\n }\n return this;\n }\n\n // getter\n return getCenter();\n\n //\n\n function getCenter() {\n const t = d3ZoomTransform(state.canvas);\n return { x: (state.width / 2 - t.x) / t.k, y: (state.height / 2 - t.y) / t.k };\n }\n\n function setCenter({ x, y }) {\n state.zoom.translateTo(\n state.zoom.__baseElem,\n x === undefined ? getCenter().x : x,\n y === undefined ? getCenter().y : y\n );\n state.needsRedraw = true;\n }\n },\n zoom: function(state, k, transitionDuration) {\n if (!state.canvas) return null; // no canvas yet\n\n // setter\n if (k !== undefined) {\n if (!transitionDuration) { // no animation\n setZoom(k);\n } else {\n state.tweenGroup.add(\n new Tween({ k: getZoom() })\n .to({ k }, transitionDuration)\n .easing(Easing.Quadratic.Out)\n .onUpdate(({ k }) => setZoom(k))\n .start()\n );\n }\n return this;\n }\n\n // getter\n return getZoom();\n\n //\n\n function getZoom() {\n return d3ZoomTransform(state.canvas).k;\n }\n\n function setZoom(k) {\n state.zoom.scaleTo(state.zoom.__baseElem, k);\n state.needsRedraw = true;\n }\n },\n zoomToFit: function(state, transitionDuration = 0, padding = 10, ...bboxArgs) {\n const bbox = this.getGraphBbox(...bboxArgs);\n \n if (bbox) {\n const center = {\n x: (bbox.x[0] + bbox.x[1]) / 2,\n y: (bbox.y[0] + bbox.y[1]) / 2,\n };\n\n const zoomK = Math.max(1e-12, Math.min(1e12,\n (state.width - padding * 2) / (bbox.x[1] - bbox.x[0]),\n (state.height - padding * 2) / (bbox.y[1] - bbox.y[0]))\n );\n\n this.centerAt(center.x, center.y, transitionDuration);\n this.zoom(zoomK, transitionDuration);\n }\n\n return this;\n },\n getGraphBbox: function(state, nodeFilter = () => true) {\n const getVal = accessorFn(state.nodeVal);\n const getR = node => Math.sqrt(Math.max(0, getVal(node) || 1)) * state.nodeRelSize;\n\n const nodesPos = state.graphData.nodes.filter(nodeFilter).map(node => ({\n x: node.x,\n y: node.y,\n r: getR(node)\n }));\n\n return !nodesPos.length ? null : {\n x: [\n d3Min(nodesPos, node => node.x - node.r),\n d3Max(nodesPos, node => node.x + node.r)\n ],\n y: [\n d3Min(nodesPos, node => node.y - node.r),\n d3Max(nodesPos, node => node.y + node.r)\n ]\n };\n },\n pauseAnimation: function(state) {\n if (state.animationFrameRequestId) {\n cancelAnimationFrame(state.animationFrameRequestId);\n state.animationFrameRequestId = null;\n }\n return this;\n },\n resumeAnimation: function(state) {\n if (!state.animationFrameRequestId) {\n this._animationCycle();\n }\n return this;\n },\n _destructor: function() {\n this.pauseAnimation();\n this.graphData({ nodes: [], links: []});\n },\n ...linkedMethods\n },\n\n stateInit: () => ({\n lastSetZoom: 1,\n zoom: d3Zoom(),\n forceGraph: new CanvasForceGraph(),\n shadowGraph: new CanvasForceGraph()\n .cooldownTicks(0)\n .nodeColor('__indexColor')\n .linkColor('__indexColor')\n .isShadow(true),\n colorTracker: new ColorTracker(), // indexed objects for rgb lookup\n tweenGroup: new TweenGroup()\n }),\n\n init: function(domNode, state) {\n // Wipe DOM\n domNode.innerHTML = '';\n\n // Container anchor for canvas and tooltip\n const container = document.createElement('div');\n container.classList.add('force-graph-container');\n container.style.position = 'relative';\n domNode.appendChild(container);\n\n state.canvas = document.createElement('canvas');\n if (state.backgroundColor) state.canvas.style.background = state.backgroundColor;\n container.appendChild(state.canvas);\n\n state.shadowCanvas = document.createElement('canvas');\n\n // Show shadow canvas\n //state.shadowCanvas.style.position = 'absolute';\n //state.shadowCanvas.style.top = '0';\n //state.shadowCanvas.style.left = '0';\n //container.appendChild(state.shadowCanvas);\n\n const ctx = state.canvas.getContext('2d');\n const shadowCtx = state.shadowCanvas.getContext('2d', { willReadFrequently: true });\n\n const pointerPos = { x: -1e12, y: -1e12 };\n const getObjUnderPointer = () => {\n let obj = null;\n const pxScale = window.devicePixelRatio;\n const px = (pointerPos.x > 0 && pointerPos.y > 0)\n ? shadowCtx.getImageData(pointerPos.x * pxScale, pointerPos.y * pxScale, 1, 1)\n : null;\n // Lookup object per pixel color\n px && (obj = state.colorTracker.lookup(px.data));\n return obj;\n };\n\n // Setup node drag interaction\n d3Select(state.canvas).call(\n d3Drag()\n .subject(() => {\n if (!state.enableNodeDrag) { return null; }\n const obj = getObjUnderPointer();\n return (obj && obj.type === 'Node') ? obj.d : null; // Only drag nodes\n })\n .on('start', ev => {\n const obj = ev.subject;\n obj.__initialDragPos = { x: obj.x, y: obj.y, fx: obj.fx, fy: obj.fy };\n\n // keep engine running at low intensity throughout drag\n if (!ev.active) {\n obj.fx = obj.x; obj.fy = obj.y; // Fix points\n }\n\n // drag cursor\n state.canvas.classList.add('grabbable');\n })\n .on('drag', ev => {\n const obj = ev.subject;\n const initPos = obj.__initialDragPos;\n const dragPos = ev;\n\n const k = d3ZoomTransform(state.canvas).k;\n const translate = {\n x: (initPos.x + (dragPos.x - initPos.x) / k) - obj.x,\n y: (initPos.y + (dragPos.y - initPos.y) / k) - obj.y\n };\n\n // Move fx/fy (and x/y) of nodes based on the scaled drag distance since the drag start\n ['x', 'y'].forEach(c => obj[`f${c}`] = obj[c] = initPos[c] + (dragPos[c] - initPos[c]) / k);\n\n // prevent freeze while dragging\n state.forceGraph\n .d3AlphaTarget(0.3) // keep engine running at low intensity throughout drag\n .resetCountdown(); // prevent freeze while dragging\n\n state.isPointerDragging = true;\n\n obj.__dragged = true;\n state.onNodeDrag(obj, translate);\n })\n .on('end', ev => {\n const obj = ev.subject;\n const initPos = obj.__initialDragPos;\n const translate = {x: obj.x - initPos.x, y: obj.y - initPos.y};\n\n if (initPos.fx === undefined) { obj.fx = undefined; }\n if (initPos.fy === undefined) { obj.fy = undefined; }\n delete(obj.__initialDragPos);\n\n if (state.forceGraph.d3AlphaTarget()) {\n state.forceGraph\n .d3AlphaTarget(0) // release engine low intensity\n .resetCountdown(); // let the engine readjust after releasing fixed nodes\n }\n\n // drag cursor\n state.canvas.classList.remove('grabbable');\n\n state.isPointerDragging = false;\n\n if (obj.__dragged) {\n delete(obj.__dragged);\n state.onNodeDragEnd(obj, translate);\n }\n })\n );\n\n // Setup zoom / pan interaction\n state.zoom(state.zoom.__baseElem = d3Select(state.canvas)); // Attach controlling elem for easy access\n\n state.zoom.__baseElem.on('dblclick.zoom', null); // Disable double-click to zoom\n\n state.zoom\n .filter(ev =>\n // disable zoom interaction\n !ev.button\n && state.enableZoomPanInteraction\n && (ev.type !== 'wheel' || accessorFn(state.enableZoomInteraction)(ev))\n && (ev.type === 'wheel' || accessorFn(state.enablePanInteraction)(ev))\n )\n .on('zoom', ev => {\n const t = ev.transform;\n [ctx, shadowCtx].forEach(c => {\n resetTransform(c);\n c.translate(t.x, t.y);\n c.scale(t.k, t.k);\n });\n state.onZoom && state.onZoom({ ...t, ...this.centerAt() }); // report x,y coordinates relative to canvas center\n state.needsRedraw = true;\n })\n .on('end', ev => state.onZoomEnd && state.onZoomEnd({ ...ev.transform, ...this.centerAt() }));\n\n adjustCanvasSize(state);\n\n state.forceGraph\n .onNeedsRedraw(() => state.needsRedraw = true)\n .onFinishUpdate(() => {\n // re-zoom, if still in default position (not user modified)\n if (d3ZoomTransform(state.canvas).k === state.lastSetZoom && state.graphData.nodes.length) {\n state.zoom.scaleTo(state.zoom.__baseElem,\n state.lastSetZoom = ZOOM2NODES_FACTOR / Math.cbrt(state.graphData.nodes.length)\n );\n state.needsRedraw = true;\n }\n });\n\n // Setup tooltip\n state.tooltip = new Tooltip(container);\n\n // Capture pointer coords on move or touchstart\n ['pointermove', 'pointerdown'].forEach(evType =>\n container.addEventListener(evType, ev => {\n if (evType === 'pointerdown') {\n state.isPointerPressed = true; // track click state\n state.pointerDownEvent = ev;\n }\n\n // detect pointer drag on canvas pan\n !state.isPointerDragging && ev.type === 'pointermove'\n && (state.onBackgroundClick) // only bother detecting drags this way if background clicks are enabled (so they don't trigger accidentally on canvas panning)\n && (ev.pressure > 0 || state.isPointerPressed) // ev.pressure always 0 on Safari, so we use the isPointerPressed tracker\n && (ev.pointerType !== 'touch' || ev.movementX === undefined || [ev.movementX, ev.movementY].some(m => Math.abs(m) > 1)) // relax drag trigger sensitivity on touch events\n && (state.isPointerDragging = true);\n\n // update the pointer pos\n const offset = getOffset(container);\n pointerPos.x = ev.pageX - offset.left;\n pointerPos.y = ev.pageY - offset.top;\n\n //\n\n function getOffset(el) {\n const rect = el.getBoundingClientRect(),\n scrollLeft = window.pageXOffset || document.documentElement.scrollLeft,\n scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n return { top: rect.top + scrollTop, left: rect.left + scrollLeft };\n }\n }, { passive: true })\n );\n\n // Handle click/touch events on nodes/links\n container.addEventListener('pointerup', ev => {\n state.isPointerPressed = false;\n if (state.isPointerDragging) {\n state.isPointerDragging = false;\n return; // don't trigger click events after pointer drag (pan / node drag functionality)\n }\n\n const cbEvents = [ev, state.pointerDownEvent];\n requestAnimationFrame(() => { // trigger click events asynchronously, to allow hoverObj to be set (on frame)\n if (ev.button === 0) { // mouse left-click or touch\n if (state.hoverObj) {\n const fn = state[`on${state.hoverObj.type}Click`];\n fn && fn(state.hoverObj.d, ...cbEvents);\n } else {\n state.onBackgroundClick && state.onBackgroundClick(...cbEvents);\n }\n }\n\n if (ev.button === 2) { // mouse right-click\n if (state.hoverObj) {\n const fn = state[`on${state.hoverObj.type}RightClick`];\n fn && fn(state.hoverObj.d, ...cbEvents);\n } else {\n state.onBackgroundRightClick && state.onBackgroundRightClick(...cbEvents);\n }\n }\n });\n }, { passive: true });\n\n container.addEventListener('contextmenu', ev => {\n if (!state.onBackgroundRightClick && !state.onNodeRightClick && !state.onLinkRightClick) return true; // default contextmenu behavior\n ev.preventDefault();\n return false;\n });\n\n state.forceGraph(ctx);\n state.shadowGraph(shadowCtx);\n\n //\n\n const refreshShadowCanvas = throttle(() => {\n // wipe canvas\n clearCanvas(shadowCtx, state.width, state.height);\n\n // Adjust link hover area\n state.shadowGraph.linkWidth(l => accessorFn(state.linkWidth)(l) + state.linkHoverPrecision);\n\n // redraw\n const t = d3ZoomTransform(state.canvas);\n state.shadowGraph.globalScale(t.k).tickFrame();\n }, HOVER_CANVAS_THROTTLE_DELAY);\n state.flushShadowCanvas = refreshShadowCanvas.flush; // hook to immediately invoke shadow canvas paint\n\n // Kick-off renderer\n (this._animationCycle = function animate() { // IIFE\n const doRedraw = !state.autoPauseRedraw || !!state.needsRedraw || state.forceGraph.isEngineRunning()\n || state.graphData.links.some(d => d.__photons && d.__photons.length);\n state.needsRedraw = false;\n\n if (state.enablePointerInteraction) {\n // Update tooltip and trigger onHover events\n const obj = !state.isPointerDragging ? getObjUnderPointer() : null; // don't hover during drag\n if (obj !== state.hoverObj) {\n const prevObj = state.hoverObj;\n const prevObjType = prevObj ? prevObj.type : null;\n const objType = obj ? obj.type : null;\n\n if (prevObjType && prevObjType !== objType) {\n // Hover out\n const fn = state[`on${prevObjType}Hover`];\n fn && fn(null, prevObj.d);\n }\n if (objType) {\n // Hover in\n const fn = state[`on${objType}Hover`];\n fn && fn(obj.d, prevObjType === objType ? prevObj.d : null);\n }\n\n state.tooltip.content(obj ? accessorFn(state[`${obj.type.toLowerCase()}Label`])(obj.d) || null : null);\n\n // set pointer if hovered object is clickable\n state.canvas.classList[\n ((obj && state[`on${objType}Click`]) || (!obj && state.onBackgroundClick)) ? 'add' : 'remove'\n ]('clickable');\n\n state.hoverObj = obj;\n }\n\n doRedraw && refreshShadowCanvas();\n }\n\n if(doRedraw) {\n // Wipe canvas\n clearCanvas(ctx, state.width, state.height);\n\n // Frame cycle\n const globalScale = d3ZoomTransform(state.canvas).k;\n state.onRenderFramePre && state.onRenderFramePre(ctx, globalScale);\n state.forceGraph.globalScale(globalScale).tickFrame();\n state.onRenderFramePost && state.onRenderFramePost(ctx, globalScale);\n }\n\n state.tweenGroup.update(); // update canvas animation tweens\n\n state.animationFrameRequestId = requestAnimationFrame(animate);\n })();\n },\n\n update: function updateFn(state) {}\n});\n"],"names":["styleInject","Selection","find","constant","attrRemove","attrRemoveNS","attrConstant","attrConstantNS","attrFunction","attrFunctionNS","styleRemove","styleConstant","styleFunction","textConstant","textFunction","parseTypenames","root","get","set","nopropagation","select","noevent","defaultFilter","defaultTouchable","nodrag","rgb","colorRgb","number","identity","timeout","now","interpolateTransform","style","easeCubicInOut","dragEnable","max","min","Symbol","objectProto","nativeObjectToString","symToStringTag","FUNC_ERROR_TEXT","_arrayLikeToArray","_arrayWithHoles","_classCallCheck","_createClass","_iterableToArrayLimit","_nonIterableRest","_slicedToArray","_unsupportedIterableToArray","index","_typeof","_arrayWithoutHoles","_toPropertyKey","_iterableToArray","_nonIterableSpread","_toConsumableArray","_toPrimitive","tinyColor","t","c","a","y","m","x","z","cloneElement","isValidElement","render$1","Kapsule","add","addAll","removeAll","defaultX","leaf_copy","treeProto","tree_add","tree_addAll","tree_cover","tree_data","tree_extent","tree_find","tree_remove","tree_removeAll","tree_root","tree_size","tree_visit","tree_visitAfter","tree_x","defaultY","tree_y","tree_findAllWithinRadius","abs","cos","sin","acos","sqrt","pi","autoColorScale","scaleOrdinal","schemePaired","autoColorObjects","objects","colorByAccessor","colorField","filter","obj","forEach","_ref","idAccessor","nodes","links","_ref2","arguments","length","undefined","_ref2$nodeFilter","nodeFilter","_ref2$onLoopError","onLoopError","loopIds","concat","join","graph","node","data","out","depth","skip","_ref3","source","target","sourceId","getNodeId","targetId","hasOwnProperty","sourceNode","targetNode","push","foundLoops","traverse","Object","values","nodeDepths","assign","apply","entries","_ref4","_ref5","map","_ref6","_ref7","id","_defineProperty","nodeStack","currentDepth","_loop","i","indexOf","loop","slice","d","some","foundLoop","every","idx","l","DAG_LEVEL_NODE_RATIO","notifyRedraw","_","state","onNeedsRedraw","updDataPhotons","isShadow","linkParticlesAccessor","accessorFn","linkDirectionalParticles","graphData","link","numPhotons","Math","round","__photons","Array","props","onChange","engineRunning","dagMode","n","fx","fy","dagLevelDistance","dagNodeFilter","default","onDagError","triggerUpdate","nodeRelSize","nodeId","nodeVal","nodeColor","nodeAutoColorBy","nodeCanvasObject","nodeCanvasObjectMode","nodeVisibility","linkSource","linkTarget","linkVisibility","linkColor","linkAutoColorBy","linkLineDash","linkWidth","linkCurvature","linkCanvasObject","linkCanvasObjectMode","linkDirectionalArrowLength","linkDirectionalArrowColor","linkDirectionalArrowRelPos","linkDirectionalParticleSpeed","linkDirectionalParticleWidth","linkDirectionalParticleColor","globalScale","d3AlphaMin","d3AlphaDecay","alphaDecay","forceLayout","d3AlphaTarget","alphaTarget","d3VelocityDecay","velocityDecay","warmupTicks","cooldownTicks","Infinity","cooldownTime","onUpdate","onFinishUpdate","onEngineTick","onEngineStop","methods","d3Force","forceName","forceFn","force","d3ReheatSimulation","alpha","resetCountdown","cntTicks","startTickTime","Date","isEngineRunning","tickFrame","layoutTick","paintLinks","paintArrows","paintPhotons","paintNodes","tick","getVisibility","getVal","getColor","getNodeCanvasObjectMode","ctx","padAmount","visibleNodes","save","restore","r","beginPath","arc","PI","fillStyle","fill","getWidth","getLineDash","getCurvature","getLinkCanvasObjectMode","visibleLinks","calcLinkControlPoints","beforeCustomLinks","afterCustomLinks","defaultPaintLinks","replaceCustomLinks","otherCustomLinks","before","after","replace","linksPerColor","indexBy","color","linksPerWidth","lineColor","width","linesPerLineDash","lineWidth","dashSegments","lineDashSegments","start","end","moveTo","controlPoints","__controlPoints","lineTo","strokeStyle","setLineDash","stroke","curvature","pow","atan2","cp","ARROW_WH_RATIO","ARROW_VLEN_RATIO","getLength","getRelPos","getNodeVal","arrowLength","startR","endR","arrowRelPos","arrowColor","arrowHalfWidth","bzLine","_construct","Bezier","getCoordsAlongLine","lineLen","posAlongLine","arrowHead","arrowTail","arrowTailVertex","arrowTailAngle","getNumPhotons","getSpeed","getDiameter","numCyclePhotons","particleSpeed","photons","photonR","photonColor","cyclePhotonIdx","needsCleanup","photon","singleHop","__singleHop","__progressRatio","photonPosRatio","coords","emitParticle","stateInit","d3ForceSimulation","d3ForceLink","d3ForceManyBody","d3ForceCenter","stop","init","canvasCtx","update","changedProps","linkForce","getDagDepths","maxDepth","includes","resetProp","invert","fixFn","d3ForceRadial","nodeDepth","strength","kapsulePropNames","kapsuleType","propNames","dummyK","_destructor","linkProp","prop","v","propName","linkMethod","method","_len","args","_key","returnVals","kapsuleInstance","returnVal","HOVER_CANVAS_THROTTLE_DELAY","ZOOM2NODES_FACTOR","bindFG","linkKapsule","CanvasForceGraph","bindBoth","linkedProps","p","linkedMethods","adjustCanvasSize","canvas","curWidth","curHeight","height","pxScale","window","devicePixelRatio","shadowCanvas","getContext","scale","k","d3ZoomTransform","zoom","translateBy","__baseElem","needsRedraw","resetTransform","pxRatio","setTransform","clearCanvas","clearRect","_objectSpread","innerWidth","innerHeight","arr","colorTracker","reset","type","objs","hexIndex","forceGraph","shadowGraph","cur","lookup","__indexColor","register","backgroundColor","background","nodeLabel","nodePointerAreaPaint","paintFn","flushShadowCanvas","linkPointerAreaPaint","linkLabel","linkHoverPrecision","minZoom","scaleExtent","maxZoom","enableNodeDrag","enableZoomInteraction","enablePanInteraction","enableZoomPanInteraction","enablePointerInteraction","hoverObj","autoPauseRedraw","onNodeDrag","onNodeDragEnd","onNodeClick","onNodeRightClick","onNodeHover","onLinkClick","onLinkRightClick","onLinkHover","onBackgroundClick","onBackgroundRightClick","onZoom","onZoomEnd","onRenderFramePre","onRenderFramePost","aliases","stopAnimation","graph2ScreenCoords","screen2GraphCoords","centerAt","transitionDuration","finalPos","setCenter","tweenGroup","Tween","getCenter","to","easing","Easing","Quadratic","Out","translateTo","setZoom","getZoom","scaleTo","zoomToFit","padding","bboxArgs","bbox","getGraphBbox","center","zoomK","getR","nodesPos","d3Min","d3Max","pauseAnimation","animationFrameRequestId","cancelAnimationFrame","resumeAnimation","_animationCycle","lastSetZoom","d3Zoom","ColorTracker","TweenGroup","domNode","_this","innerHTML","container","document","createElement","classList","position","appendChild","shadowCtx","willReadFrequently","pointerPos","getObjUnderPointer","px","getImageData","d3Select","call","d3Drag","subject","on","ev","__initialDragPos","active","initPos","dragPos","translate","isPointerDragging","__dragged","remove","button","transform","cbrt","tooltip","Tooltip","evType","addEventListener","isPointerPressed","pointerDownEvent","pressure","pointerType","movementX","movementY","offset","getOffset","pageX","left","pageY","top","el","rect","getBoundingClientRect","scrollLeft","pageXOffset","documentElement","scrollTop","pageYOffset","passive","cbEvents","requestAnimationFrame","fn","preventDefault","refreshShadowCanvas","throttle","flush","animate","doRedraw","prevObj","prevObjType","objType","content","toLowerCase","updateFn"],"mappings":"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Q,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;EAChD,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;EAC1C,YAAY,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC;EACxG;EACA,aAAa;EACb,YAAY,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;EACzE;EACA,QAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,GAAG;EACvC,KAAK;EACL,IAAI,KAAK,CAAC,iBAAiB,GAAG,KAAK;EACnC,IAAI,OAAO,KAAK;EAChB,CAAC,EAAE,CAAC;EAaJ;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,KAAK,GAAG,SAAS;EACrB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACa,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;EACpC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACgB,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK;EAC1C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACU,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK;EAC9B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACa,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;EACpC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACa,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;;EC3mCpC,SAASY,mBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;EACjC,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;EAC/C,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EACvD,EAAE,OAAO,CAAC;EACV;EACA,SAASC,iBAAe,CAAC,CAAC,EAAE;EAC5B,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;EAChC;EACA,SAASC,iBAAe,CAAC,CAAC,EAAE,CAAC,EAAE;EAC/B,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,IAAI,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SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,SAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,MAAM,CAACF,GAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,GAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAM,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAACA,GAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184]}
|