{"version":3,"file":"linear-Ix_paVqX.js","sources":["../../../node_modules/d3-scale/node_modules/d3-array/src/ascending.js","../../../node_modules/d3-scale/node_modules/d3-array/src/bisector.js","../../../node_modules/d3-scale/node_modules/d3-array/src/number.js","../../../node_modules/d3-scale/node_modules/d3-array/src/bisect.js","../../../node_modules/d3-scale/node_modules/d3-array/src/ticks.js","../../../node_modules/d3-scale/node_modules/d3-array/src/range.js","../../../node_modules/d3-scale/src/init.js","../../../node_modules/d3-scale/src/ordinal.js","../../../node_modules/d3-scale/src/band.js","../../../node_modules/d3-scale/node_modules/d3-color/src/define.js","../../../node_modules/d3-scale/node_modules/d3-color/src/color.js","../../../node_modules/d3-scale/node_modules/d3-interpolate/src/constant.js","../../../node_modules/d3-scale/node_modules/d3-interpolate/src/color.js","../../../node_modules/d3-scale/node_modules/d3-interpolate/src/rgb.js","../../../node_modules/d3-scale/node_modules/d3-interpolate/src/numberArray.js","../../../node_modules/d3-scale/node_modules/d3-interpolate/src/array.js","../../../node_modules/d3-scale/node_modules/d3-interpolate/src/date.js","../../../node_modules/d3-scale/node_modules/d3-interpolate/src/number.js","../../../node_modules/d3-scale/node_modules/d3-interpolate/src/object.js","../../../node_modules/d3-scale/node_modules/d3-interpolate/src/string.js","../../../node_modules/d3-scale/node_modules/d3-interpolate/src/value.js","../../../node_modules/d3-scale/node_modules/d3-interpolate/src/round.js","../../../node_modules/d3-scale/src/constant.js","../../../node_modules/d3-scale/src/number.js","../../../node_modules/d3-scale/src/continuous.js","../../../node_modules/d3-scale/node_modules/d3-format/src/formatDecimal.js","../../../node_modules/d3-scale/node_modules/d3-format/src/exponent.js","../../../node_modules/d3-scale/node_modules/d3-format/src/formatGroup.js","../../../node_modules/d3-scale/node_modules/d3-format/src/formatNumerals.js","../../../node_modules/d3-scale/node_modules/d3-format/src/formatSpecifier.js","../../../node_modules/d3-scale/node_modules/d3-format/src/formatTrim.js","../../../node_modules/d3-scale/node_modules/d3-format/src/formatPrefixAuto.js","../../../node_modules/d3-scale/node_modules/d3-format/src/formatRounded.js","../../../node_modules/d3-scale/node_modules/d3-format/src/formatTypes.js","../../../node_modules/d3-scale/node_modules/d3-format/src/identity.js","../../../node_modules/d3-scale/node_modules/d3-format/src/locale.js","../../../node_modules/d3-scale/node_modules/d3-format/src/defaultLocale.js","../../../node_modules/d3-scale/node_modules/d3-format/src/precisionFixed.js","../../../node_modules/d3-scale/node_modules/d3-format/src/precisionPrefix.js","../../../node_modules/d3-scale/node_modules/d3-format/src/precisionRound.js","../../../node_modules/d3-scale/src/tickFormat.js","../../../node_modules/d3-scale/src/linear.js"],"sourcesContent":["export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(f) {\n let delta = f;\n let compare = f;\n\n if (f.length === 1) {\n delta = (d, x) => f(d) - x;\n compare = ascendingComparator(f);\n }\n\n function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n }\n\n function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n\n function center(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) 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\nfunction ascendingComparator(f) {\n return (d, x) => ascending(f(d), x);\n}\n","export default function(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 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","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(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","export default function(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 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 {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new Map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new Map();\n for (const value of _) {\n const key = value + \"\";\n if (index.has(key)) continue;\n index.set(key, domain.push(value));\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n 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","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\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","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport 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","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 constants(x) {\n return function() {\n return x;\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 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(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","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\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 {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 {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"],"names":["ascending","a","b","bisector","f","delta","compare","d","x","ascendingComparator","left","lo","hi","mid","right","center","i","number$1","ascendingBisect","bisectRight","number","e10","e5","e2","ticks","start","stop","count","reverse","n","step","tickIncrement","r0","r1","power","error","tickStep","step0","step1","sequence","range","initRange","domain","implicit","ordinal","index","unknown","scale","key","_","value","band","ordinalRange","bandwidth","round","paddingInner","paddingOuter","align","rescale","values","define","constructor","factory","prototype","extend","parent","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","color","channels","color_formatHex","color_formatHsl","color_formatRgb","hslConvert","format","m","l","rgbn","Rgb","rgba","hsla","r","g","rgbConvert","o","rgb","opacity","k","rgb_formatHex","rgb_formatRgb","hex","h","s","Hsl","min","max","hsl","m2","m1","hsl2rgb","constant","linear","t","exponential","y","gamma","nogamma","rgbGamma","end","colorRgb","numberArray","c","isNumberArray","genericArray","nb","na","date","interpolateNumber","object","reA","reB","zero","one","string","bi","am","bm","bs","q","interpolate","interpolateRound","constants","unit","identity","normalize","clamper","bimap","d0","d1","polymap","j","bisect","copy","source","target","transformer","interpolateValue","transform","untransform","clamp","piecewise","output","input","u","continuous","formatDecimal","formatDecimalParts","p","coefficient","exponent","formatGroup","grouping","thousands","width","length","formatNumerals","numerals","re","formatSpecifier","specifier","match","FormatSpecifier","formatTrim","out","i0","i1","prefixExponent","formatPrefixAuto","formatRounded","formatTypes","map","prefixes","formatLocale","locale","group","currencyPrefix","currencySuffix","decimal","percent","minus","nan","newFormat","fill","sign","symbol","comma","precision","trim","type","prefix","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","padding","formatPrefix","e","defaultLocale","precisionFixed","precisionPrefix","precisionRound","tickFormat","linearish","prestep","maxIter"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41]}