{"version":3,"sources":["webpack:///./node_modules/d3-format/src/exponent.js","webpack:///./node_modules/d3-format/src/formatDecimal.js","webpack:///./node_modules/d3-selection/src/selection/selectAll.js","webpack:///./node_modules/d3-selection/src/selection/selectChild.js","webpack:///./node_modules/d3-selection/src/selection/selectChildren.js","webpack:///./node_modules/d3-selection/src/selection/sparse.js","webpack:///./node_modules/d3-selection/src/selection/enter.js","webpack:///./node_modules/d3-selection/src/selection/data.js","webpack:///./node_modules/d3-selection/src/selection/sort.js","webpack:///./node_modules/d3-selection/src/selection/call.js","webpack:///./node_modules/d3-selection/src/selection/attr.js","webpack:///./node_modules/d3-selection/src/selection/classed.js","webpack:///./node_modules/d3-selection/src/selection/text.js","webpack:///./node_modules/d3-selection/src/selection/html.js","webpack:///./node_modules/d3-selection/src/selection/raise.js","webpack:///./node_modules/d3-selection/src/selection/lower.js","webpack:///./node_modules/d3-selection/src/selection/insert.js","webpack:///./node_modules/d3-selection/src/selection/remove.js","webpack:///./node_modules/d3-selection/src/selection/clone.js","webpack:///./node_modules/d3-selection/src/selection/on.js","webpack:///./node_modules/d3-selection/src/selection/dispatch.js","webpack:///./node_modules/d3-selection/src/selection/index.js","webpack:///./node_modules/d3-selection/src/selection/select.js","webpack:///./node_modules/d3-selection/src/selection/filter.js","webpack:///./node_modules/d3-selection/src/constant.js","webpack:///./node_modules/d3-selection/src/selection/exit.js","webpack:///./node_modules/d3-selection/src/selection/join.js","webpack:///./node_modules/d3-selection/src/selection/merge.js","webpack:///./node_modules/d3-selection/src/selection/order.js","webpack:///./node_modules/d3-selection/src/selection/nodes.js","webpack:///./node_modules/d3-selection/src/selection/node.js","webpack:///./node_modules/d3-selection/src/selection/size.js","webpack:///./node_modules/d3-selection/src/selection/empty.js","webpack:///./node_modules/d3-selection/src/selection/each.js","webpack:///./node_modules/d3-selection/src/selection/property.js","webpack:///./node_modules/d3-selection/src/selection/append.js","webpack:///./node_modules/d3-selection/src/selection/datum.js","webpack:///./node_modules/d3-selection/src/selection/iterator.js","webpack:///./node_modules/d3-interpolate/src/number.js","webpack:///./node_modules/d3-selection/src/matcher.js","webpack:///./node_modules/d3-selection/src/namespaces.js","webpack:///./node_modules/d3-interpolate/src/constant.js","webpack:///./node_modules/d3-array/src/ascending.js","webpack:///./node_modules/d3-scale/src/init.js","webpack:///./node_modules/d3-interpolate/src/round.js","webpack:///./node_modules/d3-scale/src/number.js","webpack:///./node_modules/d3-scale/src/continuous.js","webpack:///./node_modules/d3-scale/src/constant.js","webpack:///./node_modules/d3-selection/src/selector.js","webpack:///./node_modules/d3-selection/src/namespace.js","webpack:///./node_modules/d3-selection/src/window.js","webpack:///./node_modules/d3-selection/src/creator.js","webpack:///./node_modules/d3-array/src/bisector.js","webpack:///./node_modules/d3-array/src/ticks.js","webpack:///./node_modules/d3-selection/src/array.js","webpack:///./node_modules/d3-format/src/formatSpecifier.js","webpack:///./node_modules/d3-interpolate/src/basis.js","webpack:///./node_modules/d3-interpolate/src/color.js","webpack:///./node_modules/d3-interpolate/src/rgb.js","webpack:///./node_modules/d3-interpolate/src/basisClosed.js","webpack:///./node_modules/d3-selection/src/selectorAll.js","webpack:///./node_modules/d3-selection/src/selection/style.js","webpack:///./node_modules/d3-format/src/precisionPrefix.js","webpack:///./node_modules/d3-format/src/precisionRound.js","webpack:///./node_modules/d3-format/src/precisionFixed.js","webpack:///./node_modules/d3-scale/src/tickFormat.js","webpack:///./node_modules/d3-interpolate/src/string.js","webpack:///./node_modules/d3-array/src/bisect.js","webpack:///./node_modules/d3-array/src/number.js","webpack:///./node_modules/d3-selection/src/select.js","webpack:///./node_modules/d3-scale/src/linear.js","webpack:///./node_modules/d3-format/src/formatPrefixAuto.js","webpack:///./node_modules/d3-format/src/defaultLocale.js","webpack:///./node_modules/d3-format/src/formatTrim.js","webpack:///./node_modules/d3-format/src/formatRounded.js","webpack:///./node_modules/d3-format/src/formatTypes.js","webpack:///./node_modules/d3-format/src/identity.js","webpack:///./node_modules/d3-format/src/locale.js","webpack:///./node_modules/d3-format/src/formatGroup.js","webpack:///./node_modules/d3-format/src/formatNumerals.js","webpack:///./node_modules/d3-interpolate/src/numberArray.js","webpack:///./node_modules/d3-interpolate/src/array.js","webpack:///./node_modules/d3-interpolate/src/date.js","webpack:///./node_modules/d3-interpolate/src/value.js","webpack:///./node_modules/d3-interpolate/src/object.js","webpack:///./node_modules/d3-color/src/define.js","webpack:///./node_modules/d3-color/src/color.js"],"names":["_formatDecimal_js__WEBPACK_IMPORTED_MODULE_0__","__webpack_require__","__webpack_exports__","x","formatDecimalParts","Math","abs","NaN","p","i","toExponential","indexOf","coefficient","slice","length","d","round","toLocaleString","replace","toString","find","Array","prototype","childFirst","this","firstElementChild","filter","children","from","sparse","update","EnterNode","parent","datum","ownerDocument","namespaceURI","_next","_parent","__data__","constructor","appendChild","child","insertBefore","next","querySelector","selector","querySelectorAll","bindIndex","group","enter","exit","data","node","groupLength","dataLength","bindKey","key","keyValue","nodeByKeyValue","Map","keyValues","call","has","set","get","delete","arraylike","ascending","a","b","classArray","string","trim","split","classList","ClassList","_node","_names","getAttribute","classedAdd","names","list","n","add","classedRemove","remove","name","push","setAttribute","join","splice","contains","textRemove","textContent","htmlRemove","innerHTML","raise","nextSibling","parentNode","lower","previousSibling","firstChild","constantNull","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","onRemove","typename","on","__on","o","j","m","type","removeEventListener","listener","options","onAdd","value","event","contextListener","addEventListener","dispatchEvent","params","window","defaultView","CustomEvent","document","createEvent","initEvent","bubbles","cancelable","detail","root","Selection","groups","parents","_groups","_parents","selection","documentElement","select","subgroups","subnode","subgroup","selectAll","array","apply","arguments","arrayAll","selectorAll","selectChild","match","childFind","childMatcher","selectChildren","childrenFilter","matcher","bind","enterGroup","updateGroup","previous","i0","i1","_enter","_exit","map","onenter","onupdate","onexit","append","merge","order","context","groups0","groups1","m0","m1","min","merges","group0","group1","compareDocumentPosition","sort","compare","compareNode","sortgroups","sortgroup","callback","nodes","size","empty","each","attr","fullname","namespace","local","getAttributeNS","space","removeAttributeNS","removeAttribute","v","setAttributeNS","style","selection_style","property","classed","text","html","create","creator","insert","before","deep","t","typenames","parseTypenames","dispatch","[object Object]","Symbol","iterator","matches","xhtml","svg","xlink","xml","xmlns","initRange","domain","range","number","unit","identity","normalize","isNaN","bimap","interpolate","d0","d1","r0","r1","polymap","r","reverse","bisect","copy","source","target","clamp","unknown","transformer","transform","untransform","piecewise","output","input","interpolateValue","rescale","max","scale","invert","y","interpolateNumber","_","rangeRound","interpolateRound","u","continuous","none","_namespaces_js__WEBPACK_IMPORTED_MODULE_0__","prefix","namespaces","hasOwnProperty","_namespace_js__WEBPACK_IMPORTED_MODULE_0__","_namespaces_js__WEBPACK_IMPORTED_MODULE_1__","createElementNS","uri","createElement","bisector","_ascending_js__WEBPACK_IMPORTED_MODULE_0__","f","delta","compare1","compare2","left","lo","hi","mid","center","right","ticks","tickIncrement","tickStep","e10","sqrt","e5","e2","start","stop","count","step","isFinite","power","floor","log","LN10","error","pow","step0","step1","isArray","formatSpecifier","re","specifier","exec","Error","FormatSpecifier","fill","align","sign","symbol","zero","width","comma","precision","undefined","basis","t1","v0","v1","v2","v3","t2","t3","linear","gamma","nogamma","exponential","constant","rgbGamma","color","rgb","end","colorRgb","g","opacity","rgbSpline","spline","colors","values","styleValue","_window_js__WEBPACK_IMPORTED_MODULE_0__","getPropertyValue","getComputedStyle","priority","removeProperty","setProperty","precisionPrefix","exponent","precisionRound","precisionFixed","tickFormat","formatPrefix","format","_number_js__WEBPACK_IMPORTED_MODULE_0__","reA","reB","RegExp","am","bm","bs","bi","lastIndex","s","q","index","one","ascendingBisect","bisectRight","_selection_index_js__WEBPACK_IMPORTED_MODULE_0__","d3_array__WEBPACK_IMPORTED_MODULE_0__","_continuous_js__WEBPACK_IMPORTED_MODULE_1__","_init_js__WEBPACK_IMPORTED_MODULE_2__","_tickFormat_js__WEBPACK_IMPORTED_MODULE_3__","nice","prestep","maxIter","ceil","linearish","prefixExponent","locale","formatTrim","out","formatRounded","formatTypes","%","toFixed","c","formatDecimal","e","toPrecision","X","toUpperCase","prefixes","grouping","thousands","Number","substring","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","String","percent","minus","nan","newFormat","test","toLowerCase","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","charCodeAt","Infinity","padding","k","formatLocale","numberArray","isNumberArray","ArrayBuffer","isView","DataView","genericArray","nb","na","Date","setTime","valueOf","define","factory","extend","definition","Object","Color","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","formatHex","color_formatRgb","formatRgb","l","parseInt","rgbn","Rgb","rgba","hsla","rgb_formatHex","hex","rgb_formatRgb","h","Hsl","hslConvert","hsl2rgb","m2","channels","assign","displayable","formatHsl","brighter","darker"],"mappings":"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","file":"assets/js/0.js","sourcesContent":["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(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 {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\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","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\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index.js\";\nimport 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(x) {\n return function() {\n return x;\n };\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","export default function() {\n 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","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","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","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","export default x => () => x;\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\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","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\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","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 namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import ascending from \"./ascending.js\";\n\nexport default function bisector(f) {\n let delta = f;\n let compare1 = f;\n let compare2 = f;\n\n if (f.length !== 2) {\n delta = (d, x) => f(d) - x;\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function ticks(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n let r0 = Math.round(start / step), r1 = Math.round(stop / step);\n if (r0 * step < start) ++r0;\n if (r1 * step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) * step;\n } else {\n step = -step;\n let r0 = Math.round(start * step), r1 = Math.round(stop * step);\n if (r0 / step < start) ++r0;\n if (r1 / step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\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","// [[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","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","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 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","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\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 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","// 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 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","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","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n"],"sourceRoot":""}