force-graph 1.42.3
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/LICENSE +21 -0
- package/README.md +228 -0
- package/dist/force-graph.common.js +1754 -0
- package/dist/force-graph.d.ts +195 -0
- package/dist/force-graph.js +12168 -0
- package/dist/force-graph.js.map +1 -0
- package/dist/force-graph.min.js +5 -0
- package/dist/force-graph.module.js +1743 -0
- package/example/auto-colored/index.html +34 -0
- package/example/basic/index.html +29 -0
- package/example/build-a-graph/index.html +108 -0
- package/example/click-to-focus/index.html +28 -0
- package/example/collision-detection/index.html +50 -0
- package/example/curved-links/index.html +37 -0
- package/example/curved-links-computed-curvature/index.html +76 -0
- package/example/custom-node-shape/index.html +44 -0
- package/example/dag-yarn/index.html +96 -0
- package/example/dagre/index.html +119 -0
- package/example/dash-odd-links/index.html +47 -0
- package/example/datasets/blocks.json +1 -0
- package/example/datasets/d3-dependencies.csv +464 -0
- package/example/datasets/miserables.json +337 -0
- package/example/datasets/mplate.mtx +74090 -0
- package/example/directional-links-arrows/index.html +29 -0
- package/example/directional-links-particles/index.html +22 -0
- package/example/dynamic/index.html +42 -0
- package/example/emit-particles/index.html +50 -0
- package/example/expandable-nodes/index.html +66 -0
- package/example/expandable-tree/index.html +85 -0
- package/example/fit-to-canvas/index.html +34 -0
- package/example/fix-dragged-nodes/index.html +24 -0
- package/example/highlight/index.html +84 -0
- package/example/huge-1M/index.html +37 -0
- package/example/img-nodes/imgs/cat.jpg +0 -0
- package/example/img-nodes/imgs/dog.jpg +0 -0
- package/example/img-nodes/imgs/eagle.jpg +0 -0
- package/example/img-nodes/imgs/elephant.jpg +0 -0
- package/example/img-nodes/imgs/grasshopper.jpg +0 -0
- package/example/img-nodes/imgs/octopus.jpg +0 -0
- package/example/img-nodes/imgs/owl.jpg +0 -0
- package/example/img-nodes/imgs/panda.jpg +0 -0
- package/example/img-nodes/imgs/squirrel.jpg +0 -0
- package/example/img-nodes/imgs/tiger.jpg +0 -0
- package/example/img-nodes/imgs/whale.jpg +0 -0
- package/example/img-nodes/index.html +43 -0
- package/example/large-graph/index.html +41 -0
- package/example/load-json/index.html +24 -0
- package/example/medium-graph/index.html +26 -0
- package/example/medium-graph/preview.png +0 -0
- package/example/move-viewport/index.html +42 -0
- package/example/multi-selection/index.html +57 -0
- package/example/responsive/index.html +37 -0
- package/example/text-links/index.html +69 -0
- package/example/text-nodes/index.html +42 -0
- package/example/tree/index.html +71 -0
- package/package.json +72 -0
- package/src/canvas-force-graph.js +544 -0
- package/src/color-utils.js +17 -0
- package/src/dagDepths.js +51 -0
- package/src/force-graph.css +35 -0
- package/src/force-graph.js +644 -0
- package/src/index.d.ts +195 -0
- package/src/index.js +3 -0
- package/src/kapsule-link.js +34 -0
|
@@ -0,0 +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.throttle/index.js","../node_modules/@tweenjs/tween.js/dist/tween.esm.js","../node_modules/debounce/index.js","../node_modules/kapsule/dist/kapsule.module.js","../node_modules/accessor-fn/dist/accessor-fn.module.js","../node_modules/tinycolor2/tinycolor.js","../node_modules/canvas-color-tracker/dist/canvas-color-tracker.module.js","../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/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.module.js","../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: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\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_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: function(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: function(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: function() {\n return this;\n },\n displayable: function() {\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 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_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\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: function(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: function(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: function() {\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 displayable: function() {\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: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\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","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\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/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\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\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 objectToString = objectProto.toString;\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 * 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\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 result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\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 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\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\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 && (type == 'object' || type == 'function');\n}\n\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 && typeof value == 'object';\n}\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) && objectToString.call(value) == symbolTag);\n}\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 = value.replace(reTrim, '');\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\nmodule.exports = throttle;\n","/**\n * The Ease class provides a collection of easing functions for use with tween.js.\n */\nvar Easing = {\n Linear: {\n None: function (amount) {\n return amount;\n },\n },\n Quadratic: {\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: {\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: {\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: {\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: {\n In: function (amount) {\n return 1 - Math.cos((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.cos(Math.PI * amount));\n },\n },\n Exponential: {\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: {\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: {\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: {\n In: function (amount) {\n var s = 1.70158;\n return amount * amount * ((s + 1) * amount - s);\n },\n Out: function (amount) {\n var s = 1.70158;\n return --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: {\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};\n\nvar now;\n// Include a performance.now polyfill.\n// In node.js, use process.hrtime.\n// eslint-disable-next-line\n// @ts-ignore\nif (typeof self === 'undefined' && typeof process !== 'undefined' && process.hrtime) {\n now = function () {\n // eslint-disable-next-line\n // @ts-ignore\n var time = process.hrtime();\n // Convert [seconds, nanoseconds] to milliseconds.\n return time[0] * 1000 + time[1] / 1000000;\n };\n}\n// In a browser, use self.performance.now if it is available.\nelse if (typeof self !== 'undefined' && self.performance !== undefined && self.performance.now !== undefined) {\n // This must be bound, because directly assigning this function\n // leads to an invocation exception in Chrome.\n now = self.performance.now.bind(self.performance);\n}\n// Use Date.now if it is available.\nelse if (Date.now !== undefined) {\n now = Date.now;\n}\n// Otherwise, use 'new Date().getTime()'.\nelse {\n now = function () {\n return new Date().getTime();\n };\n}\nvar now$1 = 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 this._tweens = {};\n this._tweensAddedDuringUpdate = {};\n }\n Group.prototype.getAll = function () {\n var _this = this;\n return Object.keys(this._tweens).map(function (tweenId) {\n return _this._tweens[tweenId];\n });\n };\n Group.prototype.removeAll = function () {\n this._tweens = {};\n };\n Group.prototype.add = function (tween) {\n this._tweens[tween.getId()] = tween;\n this._tweensAddedDuringUpdate[tween.getId()] = tween;\n };\n Group.prototype.remove = function (tween) {\n delete this._tweens[tween.getId()];\n delete this._tweensAddedDuringUpdate[tween.getId()];\n };\n Group.prototype.update = function (time, preserve) {\n if (time === void 0) { time = now$1(); }\n if (preserve === void 0) { preserve = false; }\n var tweenIds = Object.keys(this._tweens);\n if (tweenIds.length === 0) {\n return false;\n }\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 delete this._tweens[tweenIds[i]];\n }\n }\n tweenIds = Object.keys(this._tweensAddedDuringUpdate);\n }\n return true;\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 if (_group === void 0) { _group = mainGroup; }\n this._object = _object;\n this._group = _group;\n this._isPaused = false;\n this._pauseStart = 0;\n this._valuesStart = {};\n this._valuesEnd = {};\n this._valuesStartRepeat = {};\n this._duration = 1000;\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 this._chainedTweens = [];\n this._onStartCallbackFired = false;\n this._id = Sequence.nextId();\n this._isChainStopped = false;\n this._goToEnd = false;\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.to = function (properties, duration) {\n // TODO? restore this, then update the 07_dynamic_to example to set fox\n // tween's to on each update. That way the behavior is opt-in (there's\n // currently no opt-out).\n // for (const prop in properties) this._valuesEnd[prop] = properties[prop]\n this._valuesEnd = Object.create(properties);\n if (duration !== undefined) {\n this._duration = duration;\n }\n return this;\n };\n Tween.prototype.duration = function (d) {\n this._duration = d;\n return this;\n };\n Tween.prototype.start = function (time) {\n if (this._isPlaying) {\n return this;\n }\n // eslint-disable-next-line\n this._group && this._group.add(this);\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._isChainStopped = false;\n this._startTime = time !== undefined ? (typeof time === 'string' ? now$1() + parseFloat(time) : time) : now$1();\n this._startTime += this._delayTime;\n this._setupProperties(this._object, this._valuesStart, this._valuesEnd, this._valuesStartRepeat);\n return this;\n };\n Tween.prototype._setupProperties = function (_object, _valuesStart, _valuesEnd, _valuesStartRepeat) {\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 endValues = endValues.map(this._handleRelativeValue.bind(this, startValue));\n // Create a local copy of the Array with the start value at the front\n _valuesEnd[property] = [startValue].concat(endValues);\n }\n // handle the deepness of the values\n if ((propType === 'object' || startValueIsArray) && startValue && !isInterpolationList) {\n _valuesStart[property] = startValueIsArray ? [] : {};\n // eslint-disable-next-line\n for (var prop in startValue) {\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n _valuesStart[property][prop] = startValue[prop];\n }\n _valuesStartRepeat[property] = startValueIsArray ? [] : {}; // TODO? repeat nested values? And yoyo? And array values?\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n this._setupProperties(startValue, _valuesStart[property], _valuesEnd[property], _valuesStartRepeat[property]);\n }\n else {\n // Save the starting value, but only once.\n if (typeof _valuesStart[property] === 'undefined') {\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 // eslint-disable-next-line\n this._group && this._group.remove(this);\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(Infinity);\n return this;\n };\n Tween.prototype.pause = function (time) {\n if (time === void 0) { time = now$1(); }\n if (this._isPaused || !this._isPlaying) {\n return this;\n }\n this._isPaused = true;\n this._pauseStart = time;\n // eslint-disable-next-line\n this._group && this._group.remove(this);\n return this;\n };\n Tween.prototype.resume = function (time) {\n if (time === void 0) { time = now$1(); }\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 // eslint-disable-next-line\n this._group && this._group.add(this);\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 this._group = group;\n return this;\n };\n Tween.prototype.delay = function (amount) {\n this._delayTime = amount;\n return this;\n };\n Tween.prototype.repeat = function (times) {\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 this._yoyo = yoyo;\n return this;\n };\n Tween.prototype.easing = function (easingFunction) {\n this._easingFunction = easingFunction;\n return this;\n };\n Tween.prototype.interpolation = function (interpolationFunction) {\n this._interpolationFunction = interpolationFunction;\n return this;\n };\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.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 Tween.prototype.update = function (time, autoStart) {\n if (time === void 0) { time = now$1(); }\n if (autoStart === void 0) { autoStart = true; }\n if (this._isPaused)\n return true;\n var property;\n var elapsed;\n var endTime = this._startTime + this._duration;\n if (!this._goToEnd && !this._isPlaying) {\n if (time > endTime)\n return false;\n if (autoStart)\n this.start(time);\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 elapsed = (time - this._startTime) / this._duration;\n elapsed = this._duration === 0 || elapsed > 1 ? 1 : elapsed;\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 (elapsed === 1) {\n if (this._repeat > 0) {\n if (isFinite(this._repeat)) {\n this._repeat--;\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 if (this._repeatDelayTime !== undefined) {\n this._startTime = time + this._repeatDelayTime;\n }\n else {\n this._startTime = time + this._delayTime;\n }\n if (this._onRepeatCallback) {\n this._onRepeatCallback(this._object);\n }\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);\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 else {\n return parseFloat(end);\n }\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 return Tween;\n}());\n\nvar VERSION = '18.6.4';\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\nvar getAll = TWEEN.getAll.bind(TWEEN);\nvar removeAll = TWEEN.removeAll.bind(TWEEN);\nvar add = TWEEN.add.bind(TWEEN);\nvar remove = TWEEN.remove.bind(TWEEN);\nvar update = TWEEN.update.bind(TWEEN);\nvar exports = {\n Easing: Easing,\n Group: Group,\n Interpolation: Interpolation,\n now: now$1,\n Sequence: Sequence,\n nextId: nextId,\n Tween: Tween,\n VERSION: VERSION,\n getAll: getAll,\n removeAll: removeAll,\n add: add,\n remove: remove,\n update: update,\n};\n\nexport default exports;\nexport { Easing, Group, Interpolation, Sequence, Tween, VERSION, add, getAll, nextId, now$1 as now, remove, removeAll, update };\n","/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */\nfunction debounce(func, wait, immediate){\n var timeout, args, context, timestamp, result;\n if (null == wait) wait = 100;\n\n function later() {\n var last = Date.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n };\n\n var debounced = function(){\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n\n debounced.clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n \n debounced.flush = function() {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n \n clearTimeout(timeout);\n timeout = null;\n }\n };\n\n return debounced;\n};\n\n// Adds compatibility for ES modules\ndebounce.debounce = debounce;\n\nmodule.exports = debounce;\n","import debounce from 'debounce';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\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}\n\nvar Prop = 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\n _classCallCheck(this, Prop);\n\n this.name = name;\n this.defaultVal = defaultVal;\n this.triggerUpdate = triggerUpdate;\n this.onChange = onChange;\n};\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 () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Holds component state\n var state = Object.assign({}, stateInit instanceof Function ? stateInit(options) : stateInit, // Support plain objects for backwards compatibility\n {\n initialised: false\n }); // keeps track of which props triggered an update\n\n var changedProps = {}; // Component constructor\n\n function comp(nodeElement) {\n initStatic(nodeElement, options);\n digest();\n return comp;\n }\n\n var initStatic = function initStatic(nodeElement, options) {\n initFn.call(comp, nodeElement, state, options);\n state.initialised = true;\n };\n\n var digest = debounce(function () {\n if (!state.initialised) {\n return;\n }\n\n updateFn.call(comp, state, changedProps);\n changedProps = {};\n }, 1); // Getter/setter methods\n\n props.forEach(function (prop) {\n comp[prop.name] = getSetProp(prop);\n\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\n if (!arguments.length) {\n return curVal;\n } // Getter mode\n\n\n var val = _ === undefined ? defaultVal : _; // pick default if value passed is undefined\n\n state[prop] = val;\n onChange.call(comp, val, state, curVal); // track changed props\n\n !changedProps.hasOwnProperty(prop) && (changedProps[prop] = curVal);\n\n if (redigest) {\n digest();\n }\n\n return comp;\n };\n }\n }); // Other methods\n\n Object.keys(methods).forEach(function (methodName) {\n comp[methodName] = function () {\n var _methods$methodName;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return (_methods$methodName = methods[methodName]).call.apply(_methods$methodName, [comp, state].concat(args));\n };\n }); // Link aliases\n\n Object.entries(aliases).forEach(function (_ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n alias = _ref5[0],\n target = _ref5[1];\n\n return comp[alias] = comp[target];\n }); // Reset all component props to their default value\n\n comp.resetProps = function () {\n props.forEach(function (prop) {\n comp[prop.name](prop.defaultVal);\n });\n return comp;\n }; //\n\n\n comp.resetProps(); // Apply all prop defaults\n\n state._rerender = digest; // Expose digest method\n\n return comp;\n };\n}\n\nexport default index;\n","var index = (function (p) {\n return p instanceof 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 default index;\n","// TinyColor v1.4.2\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\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\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n 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 = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\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() {\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\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(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(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\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\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\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\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(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() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\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 }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\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\n var rgb = { r: 0, g: 0, b: 0 };\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\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\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 }\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 }\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\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\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\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\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: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\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\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\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\n if(s === 0) {\n r = g = b = l; // achromatic\n }\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\n return { r: r * 255, g: g * 255, b: b * 255 };\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\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\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]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\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\n return { r: r * 255, g: g * 255, b: b * 255 };\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\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\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\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\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\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\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\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\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};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\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}\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}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\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}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\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}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\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}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\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\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\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\n return tinycolor(rgba);\n};\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\n out = false;\n\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\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\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\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// <http://www.w3.org/TR/css3-color/#svg-color>\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\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\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\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\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(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 mathMin(1, mathMax(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\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}\n\nvar matchers = (function() {\n\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\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\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\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 { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\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\n return false;\n}\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 || {\"level\":\"AA\", \"size\":\"small\"};\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 {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n","import tinyColor from 'tinycolor2';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\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}\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};\n\nvar rgb2Int = function rgb2Int(r, g, b) {\n return (r << 16) + (g << 8) + b;\n};\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\n return rgb2Int(r, g, b);\n};\n\nvar checksum = function checksum(n, csBits) {\n return n * ENTROPY % Math.pow(2, csBits);\n};\n\nvar _default = /*#__PURE__*/function () {\n function _default() {\n var csBits = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 6;\n\n _classCallCheck(this, _default);\n\n this.csBits = csBits; // How many bits to reserve for checksum. Will eat away into the usable size of the registry.\n\n this.registry = ['__reserved for background__']; // indexed objects for rgb lookup;\n }\n\n _createClass(_default, [{\n key: \"register\",\n value: function register(obj) {\n if (this.registry.length >= Math.pow(2, 24 - this.csBits)) {\n // color has 24 bits (-checksum)\n return null; // Registry is full\n }\n\n var idx = this.registry.length;\n var cs = checksum(idx, this.csBits);\n var color = int2HexColor(idx + (cs << 24 - this.csBits));\n this.registry.push(obj);\n return color;\n }\n }, {\n key: \"lookup\",\n value: function lookup(color) {\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 - this.csBits) - 1; // registry index\n\n var cs = n >> 24 - this.csBits & Math.pow(2, this.csBits) - 1; // extract bits reserved for checksum\n\n if (checksum(idx, this.csBits) !== cs || idx >= this.registry.length) return null; // failed checksum or registry out of bounds\n\n return this.registry[idx];\n }\n }]);\n\n return _default;\n}();\n\nexport default _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 var 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 var i, n = data.length,\n x,\n xz = new Array(n),\n x0 = Infinity,\n x1 = -Infinity;\n\n // Compute the points and their extent.\n for (i = 0; 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 (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\";\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\";\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\";\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\";\nimport tree_cover from \"./cover\";\nimport tree_data from \"./data\";\nimport tree_extent from \"./extent\";\nimport tree_find from \"./find\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove\";\nimport tree_root from \"./root\";\nimport tree_size from \"./size\";\nimport tree_visit from \"./visit\";\nimport tree_visitAfter from \"./visitAfter\";\nimport tree_x, {defaultX} from \"./x\";\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 var 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 var d, i, n = data.length,\n x,\n y,\n z,\n xz = new Array(n),\n yz = new Array(n),\n zz = new Array(n),\n 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 (i = 0; 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 (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\";\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","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\";\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\";\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\";\nimport tree_cover from \"./cover\";\nimport tree_data from \"./data\";\nimport tree_extent from \"./extent\";\nimport tree_find from \"./find\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove\";\nimport tree_root from \"./root\";\nimport tree_size from \"./size\";\nimport tree_visit from \"./visit\";\nimport tree_visitAfter from \"./visitAfter\";\nimport tree_x, {defaultX} from \"./x\";\nimport tree_y, {defaultY} from \"./y\";\nimport tree_z, {defaultZ} from \"./z\";\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.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] = 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 const x1 = p1.x,\n y1 = p1.y,\n x2 = p2.x,\n y2 = p2.y,\n dx = (x2 - x1) / 3,\n dy = (y2 - y1) / 3;\n return new Bezier(\n x1,\n y1,\n x1 + dx,\n y1 + dy,\n x1 + 2 * dx,\n y1 + 2 * dy,\n x2,\n y2\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 trm = v2 * v2 - 4 * v1 * v3,\n sq = Math.sqrt(trm),\n d2 = 2 * v1;\n\n if (utils.approximately(d2, 0)) return [];\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 const aligned = utils.align(points, { p1: points[0], p2: points[order] });\n this._linear = !aligned.some((p) => abs(p.y) > 0.0001);\n\n this._lut = [];\n\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) {\n return this._lut;\n }\n this._lut = [];\n // We want a range from 0 to 1 inclusive, so\n // we decrement and then use <= rather than <:\n steps--;\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 { 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 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 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 degenerate (=linear) curves.\n const clockwise = this.clockwise;\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 points = this.points;\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 // move all points by distance 'd' wrt the origin 'o'\n\n // 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 = typeof d2 === \"undefined\" ? d1 : d2;\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 slen = segments.length;\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 _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\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}\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}\n\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n\n return (hint === \"string\" ? String : Number)(input);\n}\n\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n\n return typeof key === \"symbol\" ? key : String(key);\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\n if (isProp) {\n var _itemVal = itemVal,\n propVal = _itemVal[keyAccessor],\n rest = _objectWithoutProperties(_itemVal, [keyAccessor].map(_toPropertyKey));\n\n key = propVal;\n itemVal = rest;\n } else {\n key = keyAccessor(itemVal, idx);\n }\n\n if (idx + 1 < keys.length) {\n if (!iterObj.hasOwnProperty(key)) {\n iterObj[key] = {};\n }\n\n iterObj = iterObj[key];\n } else {\n // Leaf key\n if (multiItem) {\n if (!iterObj.hasOwnProperty(key)) {\n iterObj[key] = [];\n }\n\n iterObj[key].push(itemVal);\n } else {\n iterObj[key] = itemVal;\n }\n }\n });\n return res;\n }, {});\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\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 }\n\n var result = indexedResult;\n\n if (flattenKeys) {\n // flatten into array\n result = [];\n\n (function flatten(node) {\n var accKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\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\n return flatten(val, [].concat(_toConsumableArray(accKeys), [key]));\n });\n }\n })(indexedResult); //IIFE\n\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\n return result;\n});\n\nexport default index;\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\nexport default Kapsule({\n\n props: {\n graphData: {\n default: {\n nodes: [],\n links: []\n },\n onChange(_, state) {\n state.engineRunning = false;\n } // Pause simulation\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 }, // 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) {\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 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 // 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 // Fix nodes to x,y for dag mode\n if (state.dagMode) {\n const getFFn = (fix, invert) => node => !fix\n ? undefined\n : (nodeDepths[node[state.nodeId]] - maxDepth / 2) * dagLevelDistance * (invert ? -1 : 1);\n\n const fxFn = getFFn(['lr', 'rl'].indexOf(state.dagMode) !== -1, state.dagMode === 'rl');\n const fyFn = getFFn(['td', 'bu'].indexOf(state.dagMode) !== -1, state.dagMode === 'bu');\n\n state.graphData.nodes.filter(state.dagNodeFilter).forEach(node => {\n node.fx = fxFn(node);\n node.fy = fyFn(node);\n });\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\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.throttle';\nimport TWEEN from '@tweenjs/tween.js';\nimport Kapsule from 'kapsule';\nimport accessorFn from 'accessor-fn';\nimport ColorTracker from 'canvas-color-tracker';\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 [{ 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: { default: () => {}, triggerUpdate: false },\n onZoomEnd: { default: () => {}, 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 new TWEEN.Tween(getCenter())\n .to(finalPos, transitionDuration)\n .easing(TWEEN.Easing.Quadratic.Out)\n .onUpdate(setCenter)\n .start();\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 new TWEEN.Tween({ k: getZoom() })\n .to({ k }, transitionDuration)\n .easing(TWEEN.Easing.Quadratic.Out)\n .onUpdate(({ k }) => setZoom(k))\n .start();\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 }),\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');\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 && (state.enableZoomInteraction || ev.type !== 'wheel')\n && (state.enablePanInteraction || ev.type === 'wheel')\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({ ...t });\n state.needsRedraw = true;\n })\n .on('end', ev => state.onZoomEnd({ ...ev.transform }));\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 const toolTipElem = document.createElement('div');\n toolTipElem.classList.add('graph-tooltip');\n container.appendChild(toolTipElem);\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 // Move tooltip\n toolTipElem.style.top = `${pointerPos.y}px`;\n toolTipElem.style.left = `${pointerPos.x}px`;\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 const tooltipContent = obj ? accessorFn(state[`${obj.type.toLowerCase()}Label`])(obj.d) || '' : '';\n toolTipElem.style.visibility = tooltipContent ? 'visible' : 'hidden';\n toolTipElem.innerHTML = tooltipContent;\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 TWEEN.update(); // update canvas animation tweens\n\n state.animationFrameRequestId = requestAnimationFrame(animate);\n })();\n },\n\n update: function updateFn(state) {}\n});\n"],"names":["Selection","find","constant","attrRemove","attrRemoveNS","attrConstant","attrConstantNS","attrFunction","attrFunctionNS","styleRemove","styleConstant","styleFunction","textConstant","textFunction","remove","parseTypenames","root","get","set","nopropagation","select","noevent","defaultFilter","defaultTouchable","nodrag","rgb","colorRgb","number","identity","timeout","now","interpolateTransform","style","easeCubicInOut","dragEnable","max","min","global","debounce","removeAll","add","exports","_classCallCheck","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","index","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","addAll","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","abs","cos","sin","acos","sqrt","pi","autoColorScale","scaleOrdinal","schemePaired","autoColorObjects","objects","colorByAccessor","colorField","filter","obj","forEach","idAccessor","nodes","links","nodeFilter","onLoopError","loopIds","join","graph","node","data","out","depth","skip","source","target","sourceId","getNodeId","targetId","hasOwnProperty","sourceNode","targetNode","push","foundLoops","traverse","Object","values","nodeDepths","assign","entries","map","id","nodeStack","currentDepth","i","l","length","indexOf","loop","slice","d","some","foundLoop","every","idx","DAG_LEVEL_NODE_RATIO","notifyRedraw","_","state","onNeedsRedraw","Kapsule","props","graphData","onChange","engineRunning","dagMode","n","fx","fy","undefined","dagLevelDistance","dagNodeFilter","onDagError","triggerUpdate","nodeRelSize","nodeId","nodeVal","nodeColor","nodeAutoColorBy","nodeCanvasObject","nodeCanvasObjectMode","nodeVisibility","linkSource","linkTarget","linkVisibility","linkColor","linkAutoColorBy","linkLineDash","linkWidth","linkCurvature","linkCanvasObject","linkCanvasObjectMode","linkDirectionalArrowLength","linkDirectionalArrowColor","linkDirectionalArrowRelPos","linkDirectionalParticles","linkDirectionalParticleSpeed","linkDirectionalParticleWidth","linkDirectionalParticleColor","globalScale","d3AlphaMin","d3AlphaDecay","alphaDecay","forceLayout","d3AlphaTarget","alphaTarget","d3VelocityDecay","velocityDecay","warmupTicks","cooldownTicks","Infinity","cooldownTime","onUpdate","onFinishUpdate","onEngineTick","onEngineStop","isShadow","methods","d3Force","forceName","forceFn","force","d3ReheatSimulation","alpha","resetCountdown","cntTicks","startTickTime","Date","isEngineRunning","tickFrame","layoutTick","paintLinks","paintArrows","paintPhotons","paintNodes","tick","getVisibility","accessorFn","getVal","getColor","getNodeCanvasObjectMode","ctx","padAmount","visibleNodes","save","restore","r","Math","beginPath","arc","x","y","PI","fillStyle","fill","getWidth","getLineDash","getCurvature","getLinkCanvasObjectMode","visibleLinks","calcLinkControlPoints","beforeCustomLinks","afterCustomLinks","defaultPaintLinks","replaceCustomLinks","otherCustomLinks","before","after","replace","concat","link","linksPerColor","indexBy","color","linksPerWidth","lineColor","width","linesPerLineDash","lineWidth","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","Bezier","getCoordsAlongLine","t","lineLen","posAlongLine","arrowHead","arrowTail","arrowTailVertex","arrowTailAngle","getNumPhotons","getSpeed","getDiameter","numCyclePhotons","__photons","particleSpeed","photons","photonR","photonColor","cyclePhotonIdx","needsCleanup","photon","singleHop","__singleHop","__progressRatio","photonPosRatio","coords","emitParticle","stateInit","d3ForceSimulation","d3ForceLink","d3ForceManyBody","d3ForceCenter","stop","init","canvasCtx","update","linkParticlesAccessor","numPhotons","round","Array","linkForce","getDagDepths","maxDepth","getFFn","fix","invert","fxFn","fyFn","d3ForceRadial","nodeDepth","strength","kapsulePropNames","kapsuleType","propNames","dummyK","linkProp","prop","v","propName","linkMethod","method","args","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","innerWidth","innerHeight","type","objs","hexIndex","forceGraph","shadowGraph","cur","colorTracker","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","TWEEN","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","_destructor","lastSetZoom","d3Zoom","ColorTracker","domNode","innerHTML","container","document","createElement","classList","position","appendChild","shadowCtx","pointerPos","getObjUnderPointer","px","getImageData","d3Select","call","d3Drag","subject","on","ev","__initialDragPos","active","initPos","dragPos","translate","c","isPointerDragging","__dragged","button","transform","cbrt","toolTipElem","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","tooltipContent","toLowerCase","visibility","updateFn"],"mappings":"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"}
|