{"version":3,"file":"colors.105e2347.js","sources":["../../app/javascript/v2/colors/ColorPalettes.vue","../../node_modules/internmap/src/index.js","../../node_modules/d3-array/src/range.js","../../node_modules/d3-array/src/map.js","../../node_modules/d3-dispatch/src/dispatch.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-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-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-path/src/path.js","../../node_modules/d3-format/src/formatDecimal.js","../../node_modules/d3-format/src/exponent.js","../../node_modules/d3-format/src/formatGroup.js","../../node_modules/d3-format/src/formatNumerals.js","../../node_modules/d3-format/src/formatSpecifier.js","../../node_modules/d3-format/src/formatTrim.js","../../node_modules/d3-format/src/formatPrefixAuto.js","../../node_modules/d3-format/src/formatRounded.js","../../node_modules/d3-format/src/formatTypes.js","../../node_modules/d3-format/src/identity.js","../../node_modules/d3-format/src/locale.js","../../node_modules/d3-format/src/defaultLocale.js","../../node_modules/d3-scale/src/init.js","../../node_modules/d3-scale/src/ordinal.js","../../node_modules/d3-shape/src/constant.js","../../node_modules/d3-shape/src/math.js","../../node_modules/d3-shape/src/path.js","../../node_modules/d3-shape/src/arc.js","../../node_modules/d3-shape/src/array.js","../../node_modules/d3-shape/src/descending.js","../../node_modules/d3-shape/src/identity.js","../../node_modules/d3-shape/src/pie.js","../../node_modules/d3-zoom/src/transform.js","../../app/javascript/v2/colors/ColorWheel.vue","../../app/javascript/v2/colors/ColorsHome.vue","../../app/javascript/v2/colors/routes.js","../../app/javascript/v2/colors/ColorsApp.vue","../../app/javascript/entrypoints/colors.js"],"sourcesContent":["\n\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 range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","export default function map(values, mapper) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n if (typeof mapper !== \"function\") throw new TypeError(\"mapper is not a function\");\n return Array.from(values, (value, index) => mapper(value, index, values));\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","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(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","var 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","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","import constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\nimport {withPath} from \"./path.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null,\n path = withPath(arc);\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle. If this\n // intersection fails, it’s probably because the arc is too small, so\n // disable the corner radius entirely.\n if (da < pi) {\n if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n } else {\n rc0 = rc1 = 0;\n }\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\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","\n\n\n","\n\n\n","import {createRouter, createWebHistory} from 'vue-router'\nimport ColorPalettes from \"./ColorPalettes.vue\";\nimport ColorsHome from \"./ColorsHome.vue\";\n\nconst router = createRouter({\n history: createWebHistory(import.meta.env.BASE_URL),\n routes: [\n {\n path: '/colors',\n redirect: '/colors/home',\n },\n {\n path: '/colors/home',\n name: 'home',\n component: ColorsHome,\n },\n {\n path: '/colors/palettes',\n name: 'palettes',\n component: ColorPalettes\n }\n ]\n})\n\nexport default router","\n\n\n","import { createApp } from 'vue'\nimport router from '../v2/colors/routes'\nimport ColorsApp from \"../v2/colors/ColorsApp.vue\";\nimport Popper from \"vue3-popper\";\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const app = createApp(ColorsApp)\n app.use(router)\n app.component(\"Popper\", Popper)\n app.mount('#colors')\n})"],"names":["_sfc_main","color","BootstrapColors","TailwindColors","ExtraColors","colorObject","colorData","colorType","shade","textColor","label","StringUtil","standardColor","ColorUtil","colorName","_hoisted_1","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_createElementVNode","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_openBlock","_createElementBlock","_hoisted_2","_Fragment","_renderList","$options","_toDisplayString","_hoisted_8","$data","_normalizeStyle","_hoisted_13","_hoisted_14","_normalizeClass","InternMap","entries","key","keyof","value","intern_get","intern_set","intern_delete","InternSet","values","_intern","_key","range","start","stop","step","n","i","map","mapper","index","noop","dispatch","_","t","Dispatch","parseTypenames","typenames","types","name","typename","callback","T","get","set","copy","type","that","args","c","xhtml","namespaces","namespace","prefix","creatorInherit","document","uri","creatorFixed","fullname","creator","none","selector","selection_select","select","groups","m","subgroups","j","group","subgroup","node","subnode","Selection","array","x","empty","selectorAll","arrayAll","selection_selectAll","parents","matcher","childMatcher","find","childFind","match","childFirst","selection_selectChild","filter","children","childrenFilter","selection_selectChildren","selection_filter","sparse","update","selection_enter","EnterNode","parent","datum","child","next","constant$2","bindIndex","enter","exit","data","groupLength","dataLength","bindKey","nodeByKeyValue","keyValues","keyValue","selection_data","bind","constant","arraylike","enterGroup","updateGroup","exitGroup","i0","i1","previous","selection_exit","selection_join","onenter","onupdate","onexit","selection_merge","context","selection","groups0","groups1","m0","m1","merges","group0","group1","merge","selection_order","selection_sort","compare","ascending","compareNode","a","b","sortgroups","sortgroup","selection_call","selection_nodes","selection_node","selection_size","size","selection_empty","selection_each","attrRemove","attrRemoveNS","attrConstant","attrConstantNS","attrFunction","v","attrFunctionNS","selection_attr","defaultView","styleRemove","styleConstant","priority","styleFunction","selection_style","styleValue","propertyRemove","propertyConstant","propertyFunction","selection_property","classArray","string","classList","ClassList","classedAdd","names","list","classedRemove","classedTrue","classedFalse","classedFunction","selection_classed","textRemove","textConstant","textFunction","selection_text","htmlRemove","htmlConstant","htmlFunction","selection_html","raise","selection_raise","lower","selection_lower","selection_append","create","constantNull","selection_insert","before","remove","selection_remove","selection_cloneShallow","clone","selection_cloneDeep","selection_clone","deep","selection_datum","contextListener","listener","event","onRemove","on","onAdd","options","o","selection_on","dispatchEvent","params","window","dispatchConstant","dispatchFunction","selection_dispatch","selection_iterator","root","selection_selection","define","constructor","factory","prototype","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","channels","color_formatHex","color_formatHex8","color_formatHsl","color_formatRgb","hslConvert","format","l","rgbn","Rgb","rgba","hsla","r","g","rgbConvert","rgb","opacity","k","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","hex","h","s","Hsl","min","max","hsl","m2","hsl2rgb","clamph","clampt","constant$1","linear","d","exponential","y","gamma","nogamma","interpolateRgb","rgbGamma","end","colorRgb","interpolateNumber","reA","reB","zero","one","interpolateString","bi","am","bm","bs","q","number","degrees","identity","decompose","e","f","scaleX","scaleY","skewX","svgNode","parseCss","parseSvg","interpolateTransform","parse","pxComma","pxParen","degParen","pop","translate","xa","ya","xb","yb","rotate","scale","interpolateTransformCss","interpolateTransformSvg","frame","timeout","interval","pokeDelay","taskHead","taskTail","clockLast","clockNow","clockSkew","clock","setFrame","now","clearNow","Timer","timer","delay","time","sleep","timerFlush","wake","nap","poke","t0","t1","t2","elapsed","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","schedule","id","timing","schedules","init","self","tween","tick","interrupt","active","selection_interrupt","tweenRemove","tween0","tween1","tweenFunction","transition_tween","tweenValue","transition","interpolate","value1","string00","string1","interpolate0","string0","string10","transition_attr","attrInterpolate","attrInterpolateNS","attrTweenNS","attrTween","transition_attrTween","delayFunction","delayConstant","transition_delay","durationFunction","durationConstant","transition_duration","easeConstant","transition_ease","easeVarying","transition_easeVarying","transition_filter","Transition","transition_merge","onFunction","on0","on1","sit","transition_on","removeFunction","transition_remove","transition_select","transition_selectAll","inherit","transition_selection","styleNull","style","styleMaybeRemove","listener0","transition_style","styleInterpolate","styleTween","transition_styleTween","transition_text","textInterpolate","textTween","transition_textTween","transition_transition","id0","id1","newId","transition_end","resolve","reject","cancel","selection_prototype","cubicInOut","defaultTiming","easeCubicInOut","selection_transition","pi","tau","epsilon","tauEpsilon","append","strings","appendRound","digits","Path","x1","y1","x2","y2","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","a0","a1","ccw","dx","dy","cw","da","w","formatDecimal","formatDecimalParts","p","coefficient","exponent","formatGroup","grouping","thousands","width","length","formatNumerals","numerals","re","formatSpecifier","specifier","FormatSpecifier","formatTrim","out","prefixExponent","formatPrefixAuto","formatRounded","formatTypes","identity$1","prefixes","formatLocale","locale","currencyPrefix","currencySuffix","decimal","percent","minus","nan","newFormat","fill","align","sign","symbol","comma","precision","trim","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","padding","formatPrefix","defaultLocale","initRange","domain","implicit","ordinal","unknown","abs","atan2","cos","sin","sqrt","halfPi","acos","asin","withPath","shape","arcInnerRadius","arcOuterRadius","arcStartAngle","arcEndAngle","arcPadAngle","intersect","x3","y3","x10","y10","x32","y32","cornerTangents","r1","rc","lo","ox","oy","x11","y11","x00","y00","d2","D","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","arc","innerRadius","outerRadius","cornerRadius","padRadius","startAngle","endAngle","padAngle","path","buffer","r0","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","p1","oc","ax","ay","bx","by","kc","lc","descending","pie","sortValues","sort","sum","arcs","pa","Transform","point","location","colorsFunction","title","height","labelRadius","colors","stroke","strokeWidth","strokeLinejoin","N","d3.map","V","I","d3.range","d3.InternSet","d3.scaleOrdinal","d3.format","O","d3.pie","d3.arc","arcLabel","svg","d3.select","lines","$props","ColorWheel","colorUtil","colorList","chartData","colorLabel","hexValue","bsChartData","blueHexColor","_hoisted_3","_createVNode","_component_color_wheel","router","createRouter","createWebHistory","ColorsHome","ColorPalettes","_component_router_link","_component_router_view","app","createApp","ColorsApp","Popper"],"mappings":"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"}