{
  "version": 3,
  "sources": ["../../../../../node_modules/classnames/index.js", "../../../../../node_modules/reduce-css-calc/node_modules/balanced-match/index.js", "../../../../../node_modules/balanced-match/index.js", "../../../../../node_modules/reduce-function-call/index.js", "../../../../../node_modules/math-expression-evaluator/src/math_function.js", "../../../../../node_modules/math-expression-evaluator/src/lexer.js", "../../../../../node_modules/math-expression-evaluator/src/postfix.js", "../../../../../node_modules/math-expression-evaluator/src/postfix_evaluator.js", "../../../../../node_modules/math-expression-evaluator/src/formula_evaluator.js", "../../../../../node_modules/reduce-css-calc/index.js", "../../../../../node_modules/lodash/_freeGlobal.js", "../../../../../node_modules/lodash/_root.js", "../../../../../node_modules/lodash/_Symbol.js", "../../../../../node_modules/lodash/_getRawTag.js", "../../../../../node_modules/lodash/_objectToString.js", "../../../../../node_modules/lodash/_baseGetTag.js", "../../../../../node_modules/lodash/isObject.js", "../../../../../node_modules/lodash/isFunction.js", "../../../../../node_modules/lodash/_coreJsData.js", "../../../../../node_modules/lodash/_isMasked.js", "../../../../../node_modules/lodash/_toSource.js", "../../../../../node_modules/lodash/_baseIsNative.js", "../../../../../node_modules/lodash/_getValue.js", "../../../../../node_modules/lodash/_getNative.js", "../../../../../node_modules/lodash/_nativeCreate.js", "../../../../../node_modules/lodash/_hashClear.js", "../../../../../node_modules/lodash/_hashDelete.js", "../../../../../node_modules/lodash/_hashGet.js", "../../../../../node_modules/lodash/_hashHas.js", "../../../../../node_modules/lodash/_hashSet.js", "../../../../../node_modules/lodash/_Hash.js", "../../../../../node_modules/lodash/_listCacheClear.js", "../../../../../node_modules/lodash/eq.js", "../../../../../node_modules/lodash/_assocIndexOf.js", "../../../../../node_modules/lodash/_listCacheDelete.js", "../../../../../node_modules/lodash/_listCacheGet.js", "../../../../../node_modules/lodash/_listCacheHas.js", "../../../../../node_modules/lodash/_listCacheSet.js", "../../../../../node_modules/lodash/_ListCache.js", "../../../../../node_modules/lodash/_Map.js", "../../../../../node_modules/lodash/_mapCacheClear.js", "../../../../../node_modules/lodash/_isKeyable.js", "../../../../../node_modules/lodash/_getMapData.js", "../../../../../node_modules/lodash/_mapCacheDelete.js", "../../../../../node_modules/lodash/_mapCacheGet.js", "../../../../../node_modules/lodash/_mapCacheHas.js", "../../../../../node_modules/lodash/_mapCacheSet.js", "../../../../../node_modules/lodash/_MapCache.js", "../../../../../node_modules/lodash/memoize.js", "../../../../../node_modules/@visx/group/esm/Group.js", "../../../../../node_modules/d3-array/src/ascending.js", "../../../../../node_modules/d3-array/src/bisector.js", "../../../../../node_modules/d3-array/src/number.js", "../../../../../node_modules/d3-array/src/bisect.js", "../../../../../node_modules/d3-array/src/ticks.js", "../../../../../node_modules/d3-scale/src/init.js", "../../../../../node_modules/d3-color/src/define.js", "../../../../../node_modules/d3-color/src/color.js", "../../../../../node_modules/d3-color/src/math.js", "../../../../../node_modules/d3-color/src/lab.js", "../../../../../node_modules/d3-color/src/cubehelix.js", "../../../../../node_modules/d3-scale/node_modules/d3-interpolate/src/basis.js", "../../../../../node_modules/d3-scale/node_modules/d3-interpolate/src/basisClosed.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-format/src/formatDecimal.js", "../../../../../node_modules/d3-format/src/exponent.js", "../../../../../node_modules/d3-format/src/formatGroup.js", "../../../../../node_modules/d3-format/src/formatNumerals.js", "../../../../../node_modules/d3-format/src/formatSpecifier.js", "../../../../../node_modules/d3-format/src/formatTrim.js", "../../../../../node_modules/d3-format/src/formatPrefixAuto.js", "../../../../../node_modules/d3-format/src/formatRounded.js", "../../../../../node_modules/d3-format/src/formatTypes.js", "../../../../../node_modules/d3-format/src/identity.js", "../../../../../node_modules/d3-format/src/locale.js", "../../../../../node_modules/d3-format/src/defaultLocale.js", "../../../../../node_modules/d3-format/src/precisionFixed.js", "../../../../../node_modules/d3-format/src/precisionPrefix.js", "../../../../../node_modules/d3-format/src/precisionRound.js", "../../../../../node_modules/d3-scale/src/tickFormat.js", "../../../../../node_modules/d3-scale/src/linear.js", "../../../../../node_modules/d3-scale/src/nice.js", "../../../../../node_modules/d3-time/src/interval.js", "../../../../../node_modules/d3-time/src/millisecond.js", "../../../../../node_modules/d3-time/src/duration.js", "../../../../../node_modules/d3-time/src/second.js", "../../../../../node_modules/d3-time/src/minute.js", "../../../../../node_modules/d3-time/src/hour.js", "../../../../../node_modules/d3-time/src/day.js", "../../../../../node_modules/d3-time/src/week.js", "../../../../../node_modules/d3-time/src/month.js", "../../../../../node_modules/d3-time/src/year.js", "../../../../../node_modules/d3-time/src/utcMinute.js", "../../../../../node_modules/d3-time/src/utcHour.js", "../../../../../node_modules/d3-time/src/utcDay.js", "../../../../../node_modules/d3-time/src/utcWeek.js", "../../../../../node_modules/d3-time/src/utcMonth.js", "../../../../../node_modules/d3-time/src/utcYear.js", "../../../../../node_modules/d3-time/src/ticks.js", "../../../../../node_modules/d3-time-format/src/locale.js", "../../../../../node_modules/d3-time-format/src/defaultLocale.js", "../../../../../node_modules/d3-scale/src/time.js", "../../../../../node_modules/@visx/scale/esm/operators/domain.js", "../../../../../node_modules/@visx/scale/esm/operators/range.js", "../../../../../node_modules/@visx/scale/esm/operators/align.js", "../../../../../node_modules/@visx/scale/esm/operators/base.js", "../../../../../node_modules/@visx/scale/esm/operators/clamp.js", "../../../../../node_modules/@visx/scale/esm/operators/constant.js", "../../../../../node_modules/@visx/scale/esm/operators/exponent.js", "../../../../../node_modules/d3-interpolate/src/basis.js", "../../../../../node_modules/d3-interpolate/src/basisClosed.js", "../../../../../node_modules/d3-interpolate/src/constant.js", "../../../../../node_modules/d3-interpolate/src/color.js", "../../../../../node_modules/d3-interpolate/src/rgb.js", "../../../../../node_modules/d3-interpolate/src/round.js", "../../../../../node_modules/d3-interpolate/src/hsl.js", "../../../../../node_modules/d3-interpolate/src/lab.js", "../../../../../node_modules/d3-interpolate/src/hcl.js", "../../../../../node_modules/d3-interpolate/src/cubehelix.js", "../../../../../node_modules/@visx/scale/esm/utils/createColorInterpolator.js", "../../../../../node_modules/@visx/scale/esm/operators/interpolate.js", "../../../../../node_modules/@visx/scale/esm/utils/isUtcScale.js", "../../../../../node_modules/@visx/scale/esm/operators/nice.js", "../../../../../node_modules/@visx/scale/esm/operators/padding.js", "../../../../../node_modules/@visx/scale/esm/operators/reverse.js", "../../../../../node_modules/@visx/scale/esm/operators/round.js", "../../../../../node_modules/@visx/scale/esm/operators/unknown.js", "../../../../../node_modules/@visx/scale/esm/operators/zero.js", "../../../../../node_modules/@visx/scale/esm/operators/scaleOperator.js", "../../../../../node_modules/@visx/scale/esm/scales/linear.js", "../../../../../node_modules/@visx/scale/esm/scales/time.js", "../../../../../node_modules/@visx/scale/esm/utils/coerceNumber.js", "../../../../../node_modules/@visx/scale/esm/utils/getTicks.js", "../../../../../node_modules/@visx/scale/esm/utils/toString.js", "../../../../../node_modules/@visx/shape/esm/shapes/LinePath.js", "../../../../../node_modules/d3-path/src/path.js", "../../../../../node_modules/d3-shape/src/constant.js", "../../../../../node_modules/d3-shape/src/curve/linear.js", "../../../../../node_modules/d3-shape/src/point.js", "../../../../../node_modules/d3-shape/src/line.js", "../../../../../node_modules/d3-shape/src/area.js", "../../../../../node_modules/d3-shape/src/curve/cardinal.js", "../../../../../node_modules/@visx/shape/esm/util/setNumberOrNumberAccessor.js", "../../../../../node_modules/@visx/shape/esm/util/D3ShapeFactories.js", "../../../../../node_modules/@visx/shape/esm/shapes/AreaClosed.js", "../../../../../node_modules/@visx/shape/esm/shapes/Bar.js", "../../../../../node_modules/@visx/shape/esm/shapes/Line.js", "../../../../../node_modules/@visx/axis/esm/axis/AxisLeft.js", "../../../../../node_modules/@visx/axis/esm/axis/Axis.js", "../../../../../node_modules/@visx/axis/esm/axis/AxisRenderer.js", "../../../../../node_modules/@visx/axis/node_modules/@visx/text/esm/Text.js", "../../../../../node_modules/@visx/axis/node_modules/@visx/text/esm/hooks/useText.js", "../../../../../node_modules/@visx/axis/node_modules/@visx/text/esm/util/getStringWidth.js", "../../../../../node_modules/@visx/axis/esm/constants/orientation.js", "../../../../../node_modules/@visx/axis/esm/utils/getLabelTransform.js", "../../../../../node_modules/@visx/axis/esm/axis/Ticks.js", "../../../../../node_modules/@visx/axis/esm/axis/AxisBottom.js", "../../../../../node_modules/@visx/axis/esm/utils/getTickPosition.js", "../../../../../node_modules/@visx/axis/esm/utils/getTickFormatter.js", "../../../../../node_modules/@visx/point/esm/Point.js", "../../../../../node_modules/@visx/axis/esm/utils/createPoint.js", "../../../../../node_modules/@visx/event/esm/typeGuards.js", "../../../../../node_modules/@visx/event/esm/getXAndYFromEvent.js", "../../../../../node_modules/@visx/event/esm/localPointGeneric.js", "../../../../../node_modules/@visx/event/esm/localPoint.js", "../../../../../node_modules/@visx/gradient/esm/gradients/LinearGradient.js", "../../../../../node_modules/@visx/tooltip/esm/hooks/useTooltip.js", "../../../../../node_modules/@visx/tooltip/esm/tooltips/Tooltip.js", "../../../../../node_modules/@visx/tooltip/esm/tooltips/TooltipWithBounds.js", "../../../../../node_modules/@visx/tooltip/esm/context/TooltipPositionContext.js", "../../src/document/components/chrome/analytics/components/ChartFade.tsx", "../../src/document/components/chrome/analytics/components/ChartTooltip.styles.ts", "../../src/document/components/chrome/analytics/components/ChartTooltip.tsx", "../../src/document/components/chrome/analytics/utils/chart.ts"],
  "sourcesContent": ["/*!\n  Copyright (c) 2018 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n", "module.exports = balanced;\nfunction balanced(a, b, str) {\n  if (a instanceof RegExp) a = maybeMatch(a, str);\n  if (b instanceof RegExp) b = maybeMatch(b, str);\n\n  var r = range(a, b, str);\n\n  return r && {\n    start: r[0],\n    end: r[1],\n    pre: str.slice(0, r[0]),\n    body: str.slice(r[0] + a.length, r[1]),\n    post: str.slice(r[1] + b.length)\n  };\n}\n\nfunction maybeMatch(reg, str) {\n  var m = str.match(reg);\n  return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n  var begs, beg, left, right, result;\n  var ai = str.indexOf(a);\n  var bi = str.indexOf(b, ai + 1);\n  var i = ai;\n\n  if (ai >= 0 && bi > 0) {\n    begs = [];\n    left = str.length;\n\n    while (i >= 0 && !result) {\n      if (i == ai) {\n        begs.push(i);\n        ai = str.indexOf(a, i + 1);\n      } else if (begs.length == 1) {\n        result = [ begs.pop(), bi ];\n      } else {\n        beg = begs.pop();\n        if (beg < left) {\n          left = beg;\n          right = bi;\n        }\n\n        bi = str.indexOf(b, i + 1);\n      }\n\n      i = ai < bi && ai >= 0 ? ai : bi;\n    }\n\n    if (begs.length) {\n      result = [ left, right ];\n    }\n  }\n\n  return result;\n}\n", "'use strict';\nmodule.exports = balanced;\nfunction balanced(a, b, str) {\n  if (a instanceof RegExp) a = maybeMatch(a, str);\n  if (b instanceof RegExp) b = maybeMatch(b, str);\n\n  var r = range(a, b, str);\n\n  return r && {\n    start: r[0],\n    end: r[1],\n    pre: str.slice(0, r[0]),\n    body: str.slice(r[0] + a.length, r[1]),\n    post: str.slice(r[1] + b.length)\n  };\n}\n\nfunction maybeMatch(reg, str) {\n  var m = str.match(reg);\n  return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n  var begs, beg, left, right, result;\n  var ai = str.indexOf(a);\n  var bi = str.indexOf(b, ai + 1);\n  var i = ai;\n\n  if (ai >= 0 && bi > 0) {\n    begs = [];\n    left = str.length;\n\n    while (i >= 0 && !result) {\n      if (i == ai) {\n        begs.push(i);\n        ai = str.indexOf(a, i + 1);\n      } else if (begs.length == 1) {\n        result = [ begs.pop(), bi ];\n      } else {\n        beg = begs.pop();\n        if (beg < left) {\n          left = beg;\n          right = bi;\n        }\n\n        bi = str.indexOf(b, i + 1);\n      }\n\n      i = ai < bi && ai >= 0 ? ai : bi;\n    }\n\n    if (begs.length) {\n      result = [ left, right ];\n    }\n  }\n\n  return result;\n}\n", "/*\n * Module dependencies\n */\nvar balanced = require(\"balanced-match\")\n\n/**\n * Expose `reduceFunctionCall`\n *\n * @type {Function}\n */\nmodule.exports = reduceFunctionCall\n\n/**\n * Walkthrough all expressions, evaluate them and insert them into the declaration\n *\n * @param {Array} expressions\n * @param {Object} declaration\n */\n\nfunction reduceFunctionCall(string, functionRE, callback) {\n  var call = string\n  return getFunctionCalls(string, functionRE).reduce(function(string, obj) {\n    return string.replace(obj.functionIdentifier + \"(\" + obj.matches.body + \")\", evalFunctionCall(obj.matches.body, obj.functionIdentifier, callback, call, functionRE))\n  }, string)\n}\n\n/**\n * Parses expressions in a value\n *\n * @param {String} value\n * @returns {Array}\n * @api private\n */\n\nfunction getFunctionCalls(call, functionRE) {\n  var expressions = []\n\n  var fnRE = typeof functionRE === \"string\" ? new RegExp(\"\\\\b(\" + functionRE + \")\\\\(\") : functionRE\n  do {\n    var searchMatch = fnRE.exec(call)\n    if (!searchMatch) {\n      return expressions\n    }\n    if (searchMatch[1] === undefined) {\n      throw new Error(\"Missing the first couple of parenthesis to get the function identifier in \" + functionRE)\n    }\n    var fn = searchMatch[1]\n    var startIndex = searchMatch.index\n    var matches = balanced(\"(\", \")\", call.substring(startIndex))\n\n    if (!matches || matches.start !== searchMatch[0].length - 1) {\n      throw new SyntaxError(fn + \"(): missing closing ')' in the value '\" + call + \"'\")\n    }\n\n    expressions.push({matches: matches, functionIdentifier: fn})\n    call = matches.post\n  }\n  while (fnRE.test(call))\n\n  return expressions\n}\n\n/**\n * Evaluates an expression\n *\n * @param {String} expression\n * @returns {String}\n * @api private\n */\n\nfunction evalFunctionCall (string, functionIdentifier, callback, call, functionRE) {\n  // allow recursivity\n  return callback(reduceFunctionCall(string, functionRE, callback), functionIdentifier, call)\n}\n", "\"use strict\";\r\nvar Mexp = function (parsed) {\r\n  this.value = parsed\r\n}\r\n\r\nMexp.math = {\r\n  isDegree: true, // mode of calculator\r\n  acos: function (x) {\r\n    return (Mexp.math.isDegree ? 180 / Math.PI * Math.acos(x) : Math.acos(x))\r\n  },\r\n  add: function (a, b) {\r\n    return a + b\r\n  },\r\n  asin: function (x) {\r\n    return (Mexp.math.isDegree ? 180 / Math.PI * Math.asin(x) : Math.asin(x))\r\n  },\r\n  atan: function (x) {\r\n    return (Mexp.math.isDegree ? 180 / Math.PI * Math.atan(x) : Math.atan(x))\r\n  },\r\n  acosh: function (x) {\r\n    return Math.log(x + Math.sqrt(x * x - 1))\r\n  },\r\n  asinh: function (x) {\r\n    return Math.log(x + Math.sqrt(x * x + 1))\r\n  },\r\n  atanh: function (x) {\r\n    return Math.log((1 + x) / (1 - x))\r\n  },\r\n  C: function (n, r) {\r\n    var pro = 1\r\n    var other = n - r\r\n    var choice = r\r\n    if (choice < other) {\r\n      choice = other\r\n      other = r\r\n    }\r\n    for (var i = choice + 1; i <= n; i++) {\r\n      pro *= i\r\n    }\r\n    return pro / Mexp.math.fact(other)\r\n  },\r\n  changeSign: function (x) {\r\n    return -x\r\n  },\r\n  cos: function (x) {\r\n    if (Mexp.math.isDegree) x = Mexp.math.toRadian(x)\r\n    return Math.cos(x)\r\n  },\r\n  cosh: function (x) {\r\n    return (Math.pow(Math.E, x) + Math.pow(Math.E, -1 * x)) / 2\r\n  },\r\n  div: function (a, b) {\r\n    return a / b\r\n  },\r\n  fact: function (n) {\r\n    if (n % 1 !== 0) return 'NaN'\r\n    var pro = 1\r\n    for (var i = 2; i <= n; i++) {\r\n      pro *= i\r\n    }\r\n    return pro\r\n  },\r\n  inverse: function (x) {\r\n    return 1 / x\r\n  },\r\n  log: function (i) {\r\n    return Math.log(i) / Math.log(10)\r\n  },\r\n  mod: function (a, b) {\r\n    return a % b\r\n  },\r\n  mul: function (a, b) {\r\n    return a * b\r\n  },\r\n  P: function (n, r) {\r\n    var pro = 1\r\n    for (var i = Math.floor(n) - Math.floor(r) + 1; i <= Math.floor(n); i++) {\r\n      pro *= i\r\n    }\r\n    return pro\r\n  },\r\n  Pi: function (low, high, ex) {\r\n    var pro = 1\r\n    for (var i = low; i <= high; i++) {\r\n      pro *= Number(ex.postfixEval({\r\n        n: i\r\n      }))\r\n    }\r\n    return pro\r\n  },\r\n  pow10x: function (e) {\r\n    var x = 1\r\n    while (e--) {\r\n      x *= 10\r\n    }\r\n    return x\r\n  },\r\n  sigma: function (low, high, ex) {\r\n    var sum = 0\r\n    for (var i = low; i <= high; i++) {\r\n      sum += Number(ex.postfixEval({\r\n        n: i\r\n      }))\r\n    }\r\n    return sum\r\n  },\r\n  sin: function (x) {\r\n    if (Mexp.math.isDegree) x = Mexp.math.toRadian(x)\r\n    return Math.sin(x)\r\n  },\r\n  sinh: function (x) {\r\n    return (Math.pow(Math.E, x) - Math.pow(Math.E, -1 * x)) / 2\r\n  },\r\n  sub: function (a, b) {\r\n    return a - b\r\n  },\r\n  tan: function (x) {\r\n    if (Mexp.math.isDegree) x = Mexp.math.toRadian(x)\r\n    return Math.tan(x)\r\n  },\r\n  tanh: function (x) {\r\n    return Mexp.sinha(x) / Mexp.cosha(x)\r\n  },\r\n  toRadian: function (x) {\r\n    return x * Math.PI / 180\r\n  }\r\n}\r\nMexp.Exception = function (message) {\r\n  this.message = message\r\n}\r\nmodule.exports = Mexp\r\n", "'use strict'\r\nvar Mexp = require('./math_function.js')\r\nfunction inc (arr, val) {\r\n  for (var i = 0; i < arr.length; i++) {\r\n    arr[i] += val\r\n  }\r\n  return arr\r\n}\r\nvar token = [\r\n  'sin',\r\n  'cos',\r\n  'tan',\r\n  'pi',\r\n  '(',\r\n  ')',\r\n  'P',\r\n  'C',\r\n  ' ',\r\n  'asin',\r\n  'acos',\r\n  'atan',\r\n  '7',\r\n  '8',\r\n  '9',\r\n  'int',\r\n  'cosh',\r\n  'acosh',\r\n  'ln',\r\n  '^',\r\n  'root',\r\n  '4',\r\n  '5',\r\n  '6',\r\n  '/',\r\n  '!',\r\n  'tanh',\r\n  'atanh',\r\n  'Mod',\r\n  '1',\r\n  '2',\r\n  '3',\r\n  '*',\r\n  'sinh',\r\n  'asinh',\r\n  'e',\r\n  'log',\r\n  '0',\r\n  '.',\r\n  '+',\r\n  '-',\r\n  ',',\r\n  'Sigma',\r\n  'n',\r\n  'Pi',\r\n  'pow'\r\n]\r\nvar show = [\r\n  'sin',\r\n  'cos',\r\n  'tan',\r\n  '&pi;',\r\n  '(',\r\n  ')',\r\n  'P',\r\n  'C',\r\n  ' ',\r\n  'asin',\r\n  'acos',\r\n  'atan',\r\n  '7',\r\n  '8',\r\n  '9',\r\n  'Int',\r\n  'cosh',\r\n  'acosh',\r\n  ' ln',\r\n  '^',\r\n  'root',\r\n  '4',\r\n  '5',\r\n  '6',\r\n  '&divide;',\r\n  '!',\r\n  'tanh',\r\n  'atanh',\r\n  ' Mod ',\r\n  '1',\r\n  '2',\r\n  '3',\r\n  '&times;',\r\n  'sinh',\r\n  'asinh',\r\n  'e',\r\n  ' log',\r\n  '0',\r\n  '.',\r\n  '+',\r\n  '-',\r\n  ',',\r\n  '&Sigma;',\r\n  'n',\r\n  '&Pi;',\r\n  'pow'\r\n]\r\nvar eva = [\r\n  Mexp.math.sin,\r\n  Mexp.math.cos,\r\n  Mexp.math.tan,\r\n  'PI',\r\n  '(',\r\n  ')',\r\n  Mexp.math.P,\r\n  Mexp.math.C,\r\n  ' '.anchor,\r\n  Mexp.math.asin,\r\n  Mexp.math.acos,\r\n  Mexp.math.atan,\r\n  '7',\r\n  '8',\r\n  '9',\r\n  Math.floor,\r\n  Mexp.math.cosh,\r\n  Mexp.math.acosh,\r\n  Math.log,\r\n  Math.pow,\r\n  Math.sqrt,\r\n  '4',\r\n  '5',\r\n  '6',\r\n  Mexp.math.div,\r\n  Mexp.math.fact,\r\n  Mexp.math.tanh,\r\n  Mexp.math.atanh,\r\n  Mexp.math.mod,\r\n  '1',\r\n  '2',\r\n  '3',\r\n  Mexp.math.mul,\r\n  Mexp.math.sinh,\r\n  Mexp.math.asinh,\r\n  'E',\r\n  Mexp.math.log,\r\n  '0',\r\n  '.',\r\n  Mexp.math.add,\r\n  Mexp.math.sub,\r\n  ',',\r\n  Mexp.math.sigma,\r\n  'n',\r\n  Mexp.math.Pi,\r\n  Math.pow\r\n]\r\nvar preced = {\r\n  0: 11,\r\n  1: 0,\r\n  2: 3,\r\n  3: 0,\r\n  4: 0,\r\n  5: 0,\r\n  6: 0,\r\n  7: 11,\r\n  8: 11,\r\n  9: 1,\r\n  10: 10,\r\n  11: 0,\r\n  12: 11,\r\n  13: 0,\r\n  14: -1 // will be filtered after lexer\r\n} // stores precedence by types\r\nvar type = [\r\n  0, 0, 0, 3, 4, 5, 10, 10, 14, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 10, 0, 1, 1, 1, 2, 7, 0, 0, 2, 1, 1,\r\n  1, 2, 0, 0, 3, 0, 1, 6, 9, 9, 11, 12, 13, 12, 8\r\n]\r\n/*\r\n0 : function with syntax function_name(Maths_exp)\r\n1 : numbers\r\n2 : binary operators like * / Mod left associate and same precedence\r\n3 : Math constant values like e,pi,Cruncher ans\r\n4 : opening bracket\r\n5 : closing bracket\r\n6 : decimal\r\n7 : function with syntax (Math_exp)function_name\r\n8: function with syntax function_name(Math_exp1,Math_exp2)\r\n9 : binary operator like +,-\r\n10: binary operator like P C or ^\r\n11: ,\r\n12: function with , seperated three parameters and third parameter is a string that will be mexp string\r\n13: variable of Sigma function\r\n*/\r\nvar type0 = {\r\n  0: true,\r\n  1: true,\r\n  3: true,\r\n  4: true,\r\n  6: true,\r\n  8: true,\r\n  9: true,\r\n  12: true,\r\n  13: true,\r\n  14: true\r\n} // type2:true,type4:true,type9:true,type11:true,type21:true,type22\r\nvar type1 = {\r\n  0: true,\r\n  1: true,\r\n  2: true,\r\n  3: true,\r\n  4: true,\r\n  5: true,\r\n  6: true,\r\n  7: true,\r\n  8: true,\r\n  9: true,\r\n  10: true,\r\n  11: true,\r\n  12: true,\r\n  13: true\r\n} // type3:true,type5:true,type7:true,type23\r\nvar type1Asterick = {\r\n  0: true,\r\n  3: true,\r\n  4: true,\r\n  8: true,\r\n  12: true,\r\n  13: true\r\n}\r\nvar empty = {}\r\nvar type3Asterick = {\r\n  0: true,\r\n  1: true,\r\n  3: true,\r\n  4: true,\r\n  6: true,\r\n  8: true,\r\n  12: true,\r\n  13: true\r\n} // type_5:true,type_7:true,type_23\r\nvar type6 = {\r\n  1: true\r\n}\r\nvar newAr = [\r\n  [],\r\n  [\r\n    '1',\r\n    '2',\r\n    '3',\r\n    '7',\r\n    '8',\r\n    '9',\r\n    '4',\r\n    '5',\r\n    '6',\r\n    '+',\r\n    '-',\r\n    '*',\r\n    '/',\r\n    '(',\r\n    ')',\r\n    '^',\r\n    '!',\r\n    'P',\r\n    'C',\r\n    'e',\r\n    '0',\r\n    '.',\r\n    ',',\r\n    'n',\r\n    ' '\r\n  ],\r\n  ['pi', 'ln', 'Pi'],\r\n  ['sin', 'cos', 'tan', 'Del', 'int', 'Mod', 'log', 'pow'],\r\n  ['asin', 'acos', 'atan', 'cosh', 'root', 'tanh', 'sinh'],\r\n  ['acosh', 'atanh', 'asinh', 'Sigma']\r\n]\r\n\r\nfunction match (str1, str2, i, x) {\r\n  for (var f = 0; f < x; f++) {\r\n    if (str1[i + f] !== str2[f]) {\r\n      return false\r\n    }\r\n  }\r\n  return true\r\n}\r\nMexp.addToken = function (tokens) {\r\n  for (var i = 0; i < tokens.length; i++) {\r\n    var x = tokens[i].token.length\r\n    var temp = -1\r\n\r\n    // newAr is a specially designed data structure index of 1d array = length of tokens\r\n    newAr[x] = newAr[x] || []\r\n    for (var y = 0; y < newAr[x].length; y++) {\r\n      if (tokens[i].token === newAr[x][y]) {\r\n        temp = token.indexOf(newAr[x][y])\r\n        break\r\n      }\r\n    }\r\n    if (temp === -1) {\r\n      token.push(tokens[i].token)\r\n      type.push(tokens[i].type)\r\n      if (newAr.length <= tokens[i].token.length) {\r\n        newAr[tokens[i].token.length] = []\r\n      }\r\n      newAr[tokens[i].token.length].push(tokens[i].token)\r\n      eva.push(tokens[i].value)\r\n      show.push(tokens[i].show)\r\n    } else {\r\n      // overwrite\r\n      token[temp] = tokens[i].token\r\n      type[temp] = tokens[i].type\r\n      eva[temp] = tokens[i].value\r\n      show[temp] = tokens[i].show\r\n    }\r\n  }\r\n}\r\n\r\nfunction tokenize (string) {\r\n  var nodes = []\r\n  var length = string.length\r\n  var key, x, y\r\n  for (var i = 0; i < length; i++) {\r\n    if (i < length - 1 && string[i] === ' ' && string[i + 1] === ' ') {\r\n      continue\r\n    }\r\n    key = ''\r\n    for (\r\n      x = string.length - i > newAr.length - 2 ? newAr.length - 1 : string.length - i;\r\n      x > 0;\r\n      x--\r\n    ) {\r\n      if (newAr[x] === undefined) continue\r\n      for (y = 0; y < newAr[x].length; y++) {\r\n        if (match(string, newAr[x][y], i, x)) {\r\n          key = newAr[x][y]\r\n          y = newAr[x].length\r\n          x = 0\r\n        }\r\n      }\r\n    }\r\n    i += key.length - 1\r\n    if (key === '') {\r\n      throw new Mexp.Exception(\"Can't understand after \" + string.slice(i))\r\n    }\r\n    var index = token.indexOf(key)\r\n    nodes.push({\r\n      index: index,\r\n      token: key,\r\n      type: type[index],\r\n      eval: eva[index],\r\n      precedence: preced[type[index]],\r\n      show: show[index]\r\n    })\r\n  }\r\n  return nodes\r\n}\r\n\r\nMexp.lex = function (inp, tokens) {\r\n  'use strict'\r\n\r\n  var changeSignObj = {\r\n    value: Mexp.math.changeSign,\r\n    type: 0,\r\n    pre: 21,\r\n    show: '-'\r\n  }\r\n  var closingParObj = {\r\n    value: ')',\r\n    show: ')',\r\n    type: 5,\r\n    pre: 0\r\n  }\r\n  var openingParObj = {\r\n    value: '(',\r\n    type: 4,\r\n    pre: 0,\r\n    show: '('\r\n  }\r\n  var str = [openingParObj]\r\n\r\n  var ptc = [] // Parenthesis to close at the beginning is after one token\r\n  var inpStr = inp\r\n  var allowed = type0\r\n  var bracToClose = 0\r\n  var asterick = empty\r\n  var prevKey = ''\r\n  var i\r\n  if (typeof tokens !== 'undefined') {\r\n    Mexp.addToken(tokens)\r\n  }\r\n  var obj = {}\r\n  var nodes = tokenize(inpStr)\r\n  for (i = 0; i < nodes.length; i++) {\r\n    var node = nodes[i]\r\n    if (node.type === 14) {\r\n      if (\r\n        i > 0 &&\r\n        i < nodes.length - 1 &&\r\n        nodes[i + 1].type === 1 &&\r\n        (nodes[i - 1].type === 1 || nodes[i - 1].type === 6)\r\n      ) { throw new Mexp.Exception('Unexpected Space') }\r\n      continue\r\n    }\r\n    var cToken = node.token\r\n    var cType = node.type\r\n    var cEv = node.eval\r\n    var cPre = node.precedence\r\n    var cShow = node.show\r\n    var pre = str[str.length - 1]\r\n    var j\r\n    for (j = ptc.length; j--;) {\r\n      // loop over ptc\r\n      if (ptc[j] === 0) {\r\n        if ([0, 2, 3, 4, 5, 9, 11, 12, 13].indexOf(cType) !== -1) {\r\n          if (allowed[cType] !== true) {\r\n            throw new Mexp.Exception(cToken + ' is not allowed after ' + prevKey)\r\n          }\r\n          str.push(closingParObj)\r\n          allowed = type1\r\n          asterick = type3Asterick\r\n          inc(ptc, -1).pop()\r\n        }\r\n      } else break\r\n    }\r\n    if (allowed[cType] !== true) {\r\n      throw new Mexp.Exception(cToken + ' is not allowed after ' + prevKey)\r\n    }\r\n    if (asterick[cType] === true) {\r\n      cType = 2\r\n      cEv = Mexp.math.mul\r\n      cShow = '&times;'\r\n      cPre = 3\r\n      i = i - 1\r\n    }\r\n    obj = {\r\n      value: cEv,\r\n      type: cType,\r\n      pre: cPre,\r\n      show: cShow\r\n    }\r\n    if (cType === 0) {\r\n      allowed = type0\r\n      asterick = empty\r\n      inc(ptc, 2).push(2)\r\n      str.push(obj)\r\n      str.push(openingParObj)\r\n    } else if (cType === 1) {\r\n      if (pre.type === 1) {\r\n        pre.value += cEv\r\n        inc(ptc, 1)\r\n      } else {\r\n        str.push(obj)\r\n      }\r\n      allowed = type1\r\n      asterick = type1Asterick\r\n    } else if (cType === 2) {\r\n      allowed = type0\r\n      asterick = empty\r\n      inc(ptc, 2)\r\n      str.push(obj)\r\n    } else if (cType === 3) {\r\n      // constant\r\n      str.push(obj)\r\n      allowed = type1\r\n      asterick = type3Asterick\r\n    } else if (cType === 4) {\r\n      inc(ptc, 1)\r\n      bracToClose++\r\n      allowed = type0\r\n      asterick = empty\r\n      str.push(obj)\r\n    } else if (cType === 5) {\r\n      if (!bracToClose) {\r\n        throw new Mexp.Exception('Closing parenthesis are more than opening one, wait What!!!')\r\n      }\r\n      bracToClose--\r\n      allowed = type1\r\n      asterick = type3Asterick\r\n      str.push(obj)\r\n      inc(ptc, 1)\r\n    } else if (cType === 6) {\r\n      if (pre.hasDec) {\r\n        throw new Mexp.Exception('Two decimals are not allowed in one number')\r\n      }\r\n      if (pre.type !== 1) {\r\n        pre = {\r\n          value: 0,\r\n          type: 1,\r\n          pre: 0\r\n        } // pre needs to be changed as it will the last value now to be safe in later code\r\n        str.push(pre)\r\n        inc(ptc, -1)\r\n      }\r\n      allowed = type6\r\n      inc(ptc, 1)\r\n      asterick = empty\r\n      pre.value += cEv\r\n      pre.hasDec = true\r\n    } else if (cType === 7) {\r\n      allowed = type1\r\n      asterick = type3Asterick\r\n      inc(ptc, 1)\r\n      str.push(obj)\r\n    }\r\n    if (cType === 8) {\r\n      allowed = type0\r\n      asterick = empty\r\n      inc(ptc, 4).push(4)\r\n      str.push(obj)\r\n      str.push(openingParObj)\r\n    } else if (cType === 9) {\r\n      if (pre.type === 9) {\r\n        if (pre.value === Mexp.math.add) {\r\n          pre.value = cEv\r\n          pre.show = cShow\r\n          inc(ptc, 1)\r\n        } else if (pre.value === Mexp.math.sub && cShow === '-') {\r\n          pre.value = Mexp.math.add\r\n          pre.show = '+'\r\n          inc(ptc, 1)\r\n        }\r\n      } else if (\r\n        pre.type !== 5 &&\r\n        pre.type !== 7 &&\r\n        pre.type !== 1 &&\r\n        pre.type !== 3 &&\r\n        pre.type !== 13\r\n      ) {\r\n        // changesign only when negative is found\r\n        if (cToken === '-') {\r\n          // do nothing for + token\r\n          // don't add with the above if statement as that will run the else statement of parent if on Ctoken +\r\n          allowed = type0\r\n          asterick = empty\r\n          inc(ptc, 2).push(2)\r\n          str.push(changeSignObj)\r\n          str.push(openingParObj)\r\n        }\r\n      } else {\r\n        str.push(obj)\r\n        inc(ptc, 2)\r\n      }\r\n      allowed = type0\r\n      asterick = empty\r\n    } else if (cType === 10) {\r\n      allowed = type0\r\n      asterick = empty\r\n      inc(ptc, 2)\r\n      str.push(obj)\r\n    } else if (cType === 11) {\r\n      allowed = type0\r\n      asterick = empty\r\n      str.push(obj)\r\n    } else if (cType === 12) {\r\n      allowed = type0\r\n      asterick = empty\r\n      inc(ptc, 6).push(6)\r\n      str.push(obj)\r\n      str.push(openingParObj)\r\n    } else if (cType === 13) {\r\n      allowed = type1\r\n      asterick = type3Asterick\r\n      str.push(obj)\r\n    }\r\n    inc(ptc, -1)\r\n    prevKey = cToken\r\n  }\r\n  for (j = ptc.length; j--;) {\r\n    // loop over ptc\r\n    if (ptc[j] === 0) {\r\n      str.push(closingParObj)\r\n      inc(ptc, -1).pop()\r\n    } else break // if it is not zero so before ptc also cant be zero\r\n  }\r\n  if (allowed[5] !== true) {\r\n    throw new Mexp.Exception('complete the expression')\r\n  }\r\n  while (bracToClose--) {\r\n    str.push(closingParObj)\r\n  }\r\n\r\n  str.push(closingParObj)\r\n  //        console.log(str);\r\n  return new Mexp(str)\r\n}\r\nmodule.exports = Mexp\r\n", "\r\nvar Mexp = require('./lexer.js');\r\n\r\nMexp.prototype.toPostfix = function () {\r\n\t'use strict';\r\n\tvar post = [], elem, popped, prep, pre, ele;\r\n\tvar stack = [{ value: \"(\", type: 4, pre: 0 }];\r\n\tvar arr = this.value;\r\n\tfor (var i = 1; i < arr.length; i++) {\r\n\t\tif (arr[i].type === 1 || arr[i].type === 3 || arr[i].type === 13) {\t//if token is number,constant,or n(which is also a special constant in our case)\r\n\t\t\tif (arr[i].type === 1)\r\n\t\t\t\tarr[i].value = Number(arr[i].value);\r\n\t\t\tpost.push(arr[i]);\r\n\t\t}\r\n\t\telse if (arr[i].type === 4) {\r\n\t\t\tstack.push(arr[i]);\r\n\t\t}\r\n\t\telse if (arr[i].type === 5) {\r\n\t\t\twhile ((popped = stack.pop()).type !== 4) {\r\n\t\t\t\tpost.push(popped);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (arr[i].type === 11) {\r\n\t\t\twhile ((popped = stack.pop()).type !== 4) {\r\n\t\t\t\tpost.push(popped);\r\n\t\t\t}\r\n\t\t\tstack.push(popped);\r\n\t\t}\r\n\t\telse {\r\n\t\t\telem = arr[i];\r\n\t\t\tpre = elem.pre;\r\n\t\t\tele = stack[stack.length - 1];\r\n\t\t\tprep = ele.pre;\r\n\t\t\tvar flag = ele.value == 'Math.pow' && elem.value == 'Math.pow';\r\n\t\t\tif (pre > prep) stack.push(elem);\r\n\t\t\telse {\r\n\t\t\t\twhile (prep >= pre && !flag || flag && pre < prep) {\r\n\t\t\t\t\tpopped = stack.pop();\r\n\t\t\t\t\tele = stack[stack.length - 1];\r\n\t\t\t\t\tpost.push(popped);\r\n\t\t\t\t\tprep = ele.pre;\r\n\t\t\t\t\tflag = elem.value == 'Math.pow' && ele.value == 'Math.pow';\r\n\t\t\t\t}\r\n\t\t\t\tstack.push(elem);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn new Mexp(post);\r\n};\r\nmodule.exports = Mexp;", "var Mexp=require('./postfix.js');\r\nMexp.prototype.postfixEval = function (UserDefined) {\r\n\t'use strict';\r\n\tUserDefined=UserDefined||{};\r\n\tUserDefined.PI=Math.PI;\r\n\tUserDefined.E=Math.E;\r\n\tvar stack=[],pop1,pop2,pop3;\r\n\tvar disp=[];\r\n\tvar temp='';\r\n\tvar arr=this.value;\r\n\tvar bool=(typeof UserDefined.n!==\"undefined\");\r\n\tfor(var i=0;i<arr.length;i++){\r\n\t\tif(arr[i].type===1){\r\n\t\t\tstack.push({value:arr[i].value,type:1});\r\n\t\t}\r\n\t\telse if(arr[i].type===3){\r\n\t\t\tstack.push({value:UserDefined[arr[i].value],type:1});\r\n\t\t}\r\n\t\telse if(arr[i].type===0){\r\n\t\t\tif(typeof stack[stack.length-1].type===\"undefined\"){\r\n\t\t\t\tstack[stack.length-1].value.push(arr[i]);\r\n\t\t\t}\r\n\t\t\telse stack[stack.length-1].value=arr[i].value(stack[stack.length-1].value);\r\n\t\t}\r\n\t\telse if(arr[i].type===7){\r\n\t\t\tif(typeof stack[stack.length-1].type===\"undefined\"){\r\n\t\t\t\tstack[stack.length-1].value.push(arr[i]);\r\n\t\t\t}\r\n\t\t\telse stack[stack.length-1].value=arr[i].value(stack[stack.length-1].value);\r\n\t\t}\r\n\t\telse if(arr[i].type===8){\r\n\t\t\tpop1=stack.pop();\r\n\t\t\tpop2=stack.pop();\r\n\t\t\tstack.push({type:1,value:arr[i].value(pop2.value,pop1.value)});\r\n\t\t}\r\n\t\telse if(arr[i].type===10){\r\n\t\t\tpop1=stack.pop();\r\n\t\t\tpop2=stack.pop();\r\n\t\t\tif(typeof pop2.type===\"undefined\"){\r\n\t\t\t\tpop2.value=pop2.concat(pop1);\r\n\t\t\t\tpop2.value.push(arr[i]);\r\n\t\t\t\tstack.push(pop2);\r\n\t\t\t}\r\n\t\t\telse if (typeof pop1.type===\"undefined\") {\r\n\t\t\t\tpop1.unshift(pop2);\r\n\t\t\t\tpop1.push(arr[i]);\r\n\t\t\t\tstack.push(pop1);\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tstack.push({type:1,value:arr[i].value(pop2.value,pop1.value)});\r\n            }\r\n\t\t}\r\n\t\telse if(arr[i].type===2||arr[i].type===9){\r\n\t\t\tpop1=stack.pop();\r\n\t\t\tpop2=stack.pop();\r\n\t\t\tif(typeof pop2.type===\"undefined\"){\r\n\t\t\t\tpop2=pop2.concat(pop1);\r\n\t\t\t\tpop2.push(arr[i]);\r\n\t\t\t\tstack.push(pop2);\r\n\t\t\t}\r\n\t\t\telse if (typeof pop1.type===\"undefined\") {\r\n\t\t\t\tpop1.unshift(pop2);\r\n\t\t\t\tpop1.push(arr[i]);\r\n\t\t\t\tstack.push(pop1);\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tstack.push({type:1,value:arr[i].value(pop2.value,pop1.value)});\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if(arr[i].type===12){\r\n\t\t\tpop1=stack.pop();\r\n\t\t\tif (typeof pop1.type!==\"undefined\") {\r\n\t\t\t\tpop1=[pop1];\r\n\t\t\t}\r\n\t\t\tpop2=stack.pop();\r\n\t\t\tpop3=stack.pop();\r\n\t\t\tstack.push({type:1,value:arr[i].value(pop3.value,pop2.value,new Mexp(pop1))});\r\n\t\t}\r\n\t\telse if(arr[i].type===13){\r\n\t\t\tif(bool){\r\n\t\t\t\tstack.push({value:UserDefined[arr[i].value],type:3});\r\n\t\t\t}\r\n\t\t\telse stack.push([arr[i]]);\r\n\t\t}\r\n\t}\r\n\tif (stack.length>1) {\r\n\t\tthrow(new Mexp.Exception(\"Uncaught Syntax error\"));\r\n\t}\r\n\treturn stack[0].value>1000000000000000?\"Infinity\":parseFloat(stack[0].value.toFixed(15));\r\n};\r\nMexp.eval=function(str,tokens,obj){\r\n\tif (typeof tokens===\"undefined\") {\r\n\t\treturn this.lex(str).toPostfix().postfixEval();\r\n\t}\r\n\telse if (typeof obj===\"undefined\") {\r\n\t\tif (typeof tokens.length!==\"undefined\") \r\n\t\t\treturn this.lex(str,tokens).toPostfix().postfixEval();\r\n\t\telse\r\n\t\t\treturn this.lex(str).toPostfix().postfixEval(tokens);\r\n\t}\r\n\telse\r\n\t\treturn this.lex(str,tokens).toPostfix().postfixEval(obj);\r\n};\r\nmodule.exports=Mexp;", "var Mexp=require('./postfix_evaluator.js');\r\nMexp.prototype.formulaEval = function () {\r\n\t\"use strict\";\r\n\tvar stack=[],pop1,pop2,pop3;\r\n\tvar disp=[];\r\n\tvar temp='';\r\n\tvar arr=this.value;\r\n\tfor(var i=0;i<arr.length;i++){\r\n\t\tif(arr[i].type===1||arr[i].type===3){\r\n\t\t\tdisp.push({value:arr[i].type===3?arr[i].show:arr[i].value,type:1});\r\n\t\t}\r\n\t\telse if(arr[i].type===13){\r\n\t\t\tdisp.push({value:arr[i].show,type:1});\r\n\t\t}\r\n\t\telse if(arr[i].type===0){\r\n\t\t\tdisp[disp.length-1]={value:arr[i].show+(arr[i].show!=\"-\"?\"(\":\"\")+disp[disp.length-1].value+(arr[i].show!=\"-\"?\")\":\"\"),type:0};\r\n\t\t}\r\n\t\telse if(arr[i].type===7){\r\n\t\t\tdisp[disp.length-1]={value:(disp[disp.length-1].type!=1?\"(\":\"\")+disp[disp.length-1].value+(disp[disp.length-1].type!=1?\")\":\"\")+arr[i].show,type:7};\r\n\t\t}\r\n\t\telse if(arr[i].type===10){\r\n\t\t\tpop1=disp.pop();\r\n\t\t\tpop2=disp.pop();\r\n\t\t\tif(arr[i].show==='P'||arr[i].show==='C')disp.push({value:\"<sup>\"+pop2.value+\"</sup>\"+arr[i].show+\"<sub>\"+pop1.value+\"</sub>\",type:10});\r\n\t\t\telse disp.push({value:(pop2.type!=1?\"(\":\"\")+pop2.value+(pop2.type!=1?\")\":\"\")+\"<sup>\"+pop1.value+\"</sup>\",type:1});\r\n\t\t}\r\n\t\telse if(arr[i].type===2||arr[i].type===9){\r\n\t\t\tpop1=disp.pop();\r\n\t\t\tpop2=disp.pop();\r\n\t\t\tdisp.push({value:(pop2.type!=1?\"(\":\"\")+pop2.value+(pop2.type!=1?\")\":\"\")+arr[i].show+(pop1.type!=1?\"(\":\"\")+pop1.value+(pop1.type!=1?\")\":\"\"),type:arr[i].type});\r\n\t\t}\r\n\t\telse if(arr[i].type===12){\r\n\t\t\tpop1=disp.pop();\r\n\t\t\tpop2=disp.pop();\r\n\t\t\tpop3=disp.pop();\r\n\t\t\tdisp.push({value:arr[i].show+\"(\"+pop3.value+\",\"+pop2.value+\",\"+pop1.value+\")\",type:12});\r\n\t\t}\r\n\t}\r\n\treturn disp[0].value;\r\n};\r\nmodule.exports=Mexp;", "/**\n * Module dependencies\n */\nvar balanced = require(\"balanced-match\")\nvar reduceFunctionCall = require(\"reduce-function-call\")\nvar mexp = require(\"math-expression-evaluator\")\n\n/**\n * Constantes\n */\nvar MAX_STACK = 100 // should be enough for a single calc()...\nvar NESTED_CALC_RE = /(\\+|\\-|\\*|\\\\|[^a-z]|)(\\s*)(\\()/g\n\n/**\n * Global variables\n */\nvar stack\n\n/**\n * Expose reduceCSSCalc plugin\n *\n * @type {Function}\n */\nmodule.exports = reduceCSSCalc\n\n/**\n * Reduce CSS calc() in a string, whenever it's possible\n *\n * @param {String} value css input\n */\nfunction reduceCSSCalc(value, decimalPrecision) {\n  stack = 0\n  decimalPrecision = Math.pow(10, decimalPrecision === undefined ? 5 : decimalPrecision)\n\n  // Allow calc() on multiple lines\n  value = value.replace(/\\n+/g, \" \")\n\n  /**\n   * Evaluates an expression\n   *\n   * @param {String} expression\n   * @returns {String}\n   */\n  function evaluateExpression (expression, functionIdentifier, call) {\n    if (stack++ > MAX_STACK) {\n      stack = 0\n      throw new Error(\"Call stack overflow for \" + call)\n    }\n\n    if (expression === \"\") {\n      throw new Error(functionIdentifier + \"(): '\" + call + \"' must contain a non-whitespace string\")\n    }\n\n    expression = evaluateNestedExpression(expression, call)\n\n    var units = getUnitsInExpression(expression)\n\n    // If the expression contains multiple units or CSS variables,\n    // then let the expression be (i.e. browser calc())\n    if (units.length > 1 || expression.indexOf(\"var(\") > -1) {\n      return functionIdentifier + \"(\" + expression + \")\"\n    }\n\n    var unit = units[0] || \"\"\n\n    if (unit === \"%\") {\n      // Convert percentages to numbers, to handle expressions like: 50% * 50% (will become: 25%):\n      // console.log(expression)\n      expression = expression.replace(/\\b[0-9\\.]+%/g, function(percent) {\n        return parseFloat(percent.slice(0, -1)) * 0.01\n      })\n    }\n\n    // Remove units in expression:\n    var toEvaluate = expression.replace(new RegExp(unit, \"gi\"), \"\")\n    var result\n\n    try {\n      result = mexp.eval(toEvaluate)\n    }\n    catch (e) {\n      return functionIdentifier + \"(\" + expression + \")\"\n    }\n\n    // Transform back to a percentage result:\n    if (unit === \"%\") {\n      result *= 100\n    }\n\n    // adjust rounding shit\n    // (0.1 * 0.2 === 0.020000000000000004)\n    if (functionIdentifier.length || unit === \"%\") {\n      result = Math.round(result * decimalPrecision) / decimalPrecision\n    }\n\n    // Add unit\n    result += unit\n\n    return result\n  }\n\n  /**\n   * Evaluates nested expressions\n   *\n   * @param {String} expression\n   * @returns {String}\n   */\n  function evaluateNestedExpression(expression, call) {\n    // Remove the calc part from nested expressions to ensure\n    // better browser compatibility\n    expression = expression.replace(/((?:\\-[a-z]+\\-)?calc)/g, \"\")\n    var evaluatedPart = \"\"\n    var nonEvaluatedPart = expression\n    var matches\n    while ((matches = NESTED_CALC_RE.exec(nonEvaluatedPart))) {\n      if (matches[0].index > 0) {\n        evaluatedPart += nonEvaluatedPart.substring(0, matches[0].index)\n      }\n\n      var balancedExpr = balanced(\"(\", \")\", nonEvaluatedPart.substring([0].index))\n      if (balancedExpr.body === \"\") {\n        throw new Error(\"'\" + expression + \"' must contain a non-whitespace string\")\n      }\n\n      var evaluated = evaluateExpression(balancedExpr.body, \"\", call)\n\n      evaluatedPart += balancedExpr.pre + evaluated\n      nonEvaluatedPart = balancedExpr.post\n    }\n\n    return evaluatedPart + nonEvaluatedPart\n  }\n\n  return reduceFunctionCall(value, /((?:\\-[a-z]+\\-)?calc)\\(/, evaluateExpression)\n}\n\n/**\n * Checks what units are used in an expression\n *\n * @param {String} expression\n * @returns {Array}\n */\n\nfunction getUnitsInExpression(expression) {\n  var uniqueUnits = []\n  var uniqueLowerCaseUnits = []\n  var unitRegEx = /[\\.0-9]([%a-z]+)/gi\n  var matches = unitRegEx.exec(expression)\n\n  while (matches) {\n    if (!matches || !matches[1]) {\n      continue\n    }\n\n    if (uniqueLowerCaseUnits.indexOf(matches[1].toLowerCase()) === -1) {\n      uniqueUnits.push(matches[1])\n      uniqueLowerCaseUnits.push(matches[1].toLowerCase())\n    }\n\n    matches = unitRegEx.exec(expression)\n  }\n\n  return uniqueUnits\n}\n", "/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n", "var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n", "var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n", "var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nmodule.exports = getRawTag;\n", "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n", "var Symbol = require('./_Symbol'),\n    getRawTag = require('./_getRawTag'),\n    objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n", "/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n", "var baseGetTag = require('./_baseGetTag'),\n    isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]',\n    proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n  if (!isObject(value)) {\n    return false;\n  }\n  // The use of `Object#toString` avoids issues with the `typeof` operator\n  // in Safari 9 which returns 'object' for typed arrays and other constructors.\n  var tag = baseGetTag(value);\n  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n", "var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n", "var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n  return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n  return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n", "/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n  if (func != null) {\n    try {\n      return funcToString.call(func);\n    } catch (e) {}\n    try {\n      return (func + '');\n    } catch (e) {}\n  }\n  return '';\n}\n\nmodule.exports = toSource;\n", "var isFunction = require('./isFunction'),\n    isMasked = require('./_isMasked'),\n    isObject = require('./isObject'),\n    toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n  .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n *  else `false`.\n */\nfunction baseIsNative(value) {\n  if (!isObject(value) || isMasked(value)) {\n    return false;\n  }\n  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n  return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n", "/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n  return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n", "var baseIsNative = require('./_baseIsNative'),\n    getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n  var value = getValue(object, key);\n  return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n", "var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n", "var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n  this.__data__ = nativeCreate ? nativeCreate(null) : {};\n  this.size = 0;\n}\n\nmodule.exports = hashClear;\n", "/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n  var result = this.has(key) && delete this.__data__[key];\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nmodule.exports = hashDelete;\n", "var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n  var data = this.__data__;\n  if (nativeCreate) {\n    var result = data[key];\n    return result === HASH_UNDEFINED ? undefined : result;\n  }\n  return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n", "var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n  var data = this.__data__;\n  return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n", "var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n  var data = this.__data__;\n  this.size += this.has(key) ? 0 : 1;\n  data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n  return this;\n}\n\nmodule.exports = hashSet;\n", "var hashClear = require('./_hashClear'),\n    hashDelete = require('./_hashDelete'),\n    hashGet = require('./_hashGet'),\n    hashHas = require('./_hashHas'),\n    hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n", "/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n  this.__data__ = [];\n  this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n", "/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n  return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n", "var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n  var length = array.length;\n  while (length--) {\n    if (eq(array[length][0], key)) {\n      return length;\n    }\n  }\n  return -1;\n}\n\nmodule.exports = assocIndexOf;\n", "var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    return false;\n  }\n  var lastIndex = data.length - 1;\n  if (index == lastIndex) {\n    data.pop();\n  } else {\n    splice.call(data, index, 1);\n  }\n  --this.size;\n  return true;\n}\n\nmodule.exports = listCacheDelete;\n", "var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n", "var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n  return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n", "var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    ++this.size;\n    data.push([key, value]);\n  } else {\n    data[index][1] = value;\n  }\n  return this;\n}\n\nmodule.exports = listCacheSet;\n", "var listCacheClear = require('./_listCacheClear'),\n    listCacheDelete = require('./_listCacheDelete'),\n    listCacheGet = require('./_listCacheGet'),\n    listCacheHas = require('./_listCacheHas'),\n    listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n", "var getNative = require('./_getNative'),\n    root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n", "var Hash = require('./_Hash'),\n    ListCache = require('./_ListCache'),\n    Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n  this.size = 0;\n  this.__data__ = {\n    'hash': new Hash,\n    'map': new (Map || ListCache),\n    'string': new Hash\n  };\n}\n\nmodule.exports = mapCacheClear;\n", "/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n  var type = typeof value;\n  return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n    ? (value !== '__proto__')\n    : (value === null);\n}\n\nmodule.exports = isKeyable;\n", "var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n  var data = map.__data__;\n  return isKeyable(key)\n    ? data[typeof key == 'string' ? 'string' : 'hash']\n    : data.map;\n}\n\nmodule.exports = getMapData;\n", "var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n  var result = getMapData(this, key)['delete'](key);\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nmodule.exports = mapCacheDelete;\n", "var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n  return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n", "var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n  return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n", "var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n  var data = getMapData(this, key),\n      size = data.size;\n\n  data.set(key, value);\n  this.size += data.size == size ? 0 : 1;\n  return this;\n}\n\nmodule.exports = mapCacheSet;\n", "var mapCacheClear = require('./_mapCacheClear'),\n    mapCacheDelete = require('./_mapCacheDelete'),\n    mapCacheGet = require('./_mapCacheGet'),\n    mapCacheHas = require('./_mapCacheHas'),\n    mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n", "var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n  if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  var memoized = function() {\n    var args = arguments,\n        key = resolver ? resolver.apply(this, args) : args[0],\n        cache = memoized.cache;\n\n    if (cache.has(key)) {\n      return cache.get(key);\n    }\n    var result = func.apply(this, args);\n    memoized.cache = cache.set(key, result) || cache;\n    return result;\n  };\n  memoized.cache = new (memoize.Cache || MapCache);\n  return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n", "import _pt from \"prop-types\";\nvar _excluded = [\"top\", \"left\", \"transform\", \"className\", \"children\", \"innerRef\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport cx from 'classnames';\nexport default function Group(_ref) {\n  var _ref$top = _ref.top,\n      top = _ref$top === void 0 ? 0 : _ref$top,\n      _ref$left = _ref.left,\n      left = _ref$left === void 0 ? 0 : _ref$left,\n      transform = _ref.transform,\n      className = _ref.className,\n      children = _ref.children,\n      innerRef = _ref.innerRef,\n      restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n  return /*#__PURE__*/React.createElement(\"g\", _extends({\n    ref: innerRef,\n    className: cx('visx-group', className),\n    transform: transform || \"translate(\" + left + \", \" + top + \")\"\n  }, restProps), children);\n}\nGroup.propTypes = {\n  top: _pt.number,\n  left: _pt.number,\n  transform: _pt.string,\n  className: _pt.string,\n  children: _pt.node,\n  innerRef: _pt.oneOfType([_pt.string, _pt.func, _pt.object])\n};", "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 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(constructor, factory, prototype) {\n  constructor.prototype = factory.prototype = prototype;\n  prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n  var prototype = Object.create(parent.prototype);\n  for (var key in definition) prototype[key] = definition[key];\n  return prototype;\n}\n", "import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n    reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n    reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n    reHex = /^#([0-9a-f]{3,8})$/,\n    reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n    reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n    reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n    reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n    reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n    reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n  aliceblue: 0xf0f8ff,\n  antiquewhite: 0xfaebd7,\n  aqua: 0x00ffff,\n  aquamarine: 0x7fffd4,\n  azure: 0xf0ffff,\n  beige: 0xf5f5dc,\n  bisque: 0xffe4c4,\n  black: 0x000000,\n  blanchedalmond: 0xffebcd,\n  blue: 0x0000ff,\n  blueviolet: 0x8a2be2,\n  brown: 0xa52a2a,\n  burlywood: 0xdeb887,\n  cadetblue: 0x5f9ea0,\n  chartreuse: 0x7fff00,\n  chocolate: 0xd2691e,\n  coral: 0xff7f50,\n  cornflowerblue: 0x6495ed,\n  cornsilk: 0xfff8dc,\n  crimson: 0xdc143c,\n  cyan: 0x00ffff,\n  darkblue: 0x00008b,\n  darkcyan: 0x008b8b,\n  darkgoldenrod: 0xb8860b,\n  darkgray: 0xa9a9a9,\n  darkgreen: 0x006400,\n  darkgrey: 0xa9a9a9,\n  darkkhaki: 0xbdb76b,\n  darkmagenta: 0x8b008b,\n  darkolivegreen: 0x556b2f,\n  darkorange: 0xff8c00,\n  darkorchid: 0x9932cc,\n  darkred: 0x8b0000,\n  darksalmon: 0xe9967a,\n  darkseagreen: 0x8fbc8f,\n  darkslateblue: 0x483d8b,\n  darkslategray: 0x2f4f4f,\n  darkslategrey: 0x2f4f4f,\n  darkturquoise: 0x00ced1,\n  darkviolet: 0x9400d3,\n  deeppink: 0xff1493,\n  deepskyblue: 0x00bfff,\n  dimgray: 0x696969,\n  dimgrey: 0x696969,\n  dodgerblue: 0x1e90ff,\n  firebrick: 0xb22222,\n  floralwhite: 0xfffaf0,\n  forestgreen: 0x228b22,\n  fuchsia: 0xff00ff,\n  gainsboro: 0xdcdcdc,\n  ghostwhite: 0xf8f8ff,\n  gold: 0xffd700,\n  goldenrod: 0xdaa520,\n  gray: 0x808080,\n  green: 0x008000,\n  greenyellow: 0xadff2f,\n  grey: 0x808080,\n  honeydew: 0xf0fff0,\n  hotpink: 0xff69b4,\n  indianred: 0xcd5c5c,\n  indigo: 0x4b0082,\n  ivory: 0xfffff0,\n  khaki: 0xf0e68c,\n  lavender: 0xe6e6fa,\n  lavenderblush: 0xfff0f5,\n  lawngreen: 0x7cfc00,\n  lemonchiffon: 0xfffacd,\n  lightblue: 0xadd8e6,\n  lightcoral: 0xf08080,\n  lightcyan: 0xe0ffff,\n  lightgoldenrodyellow: 0xfafad2,\n  lightgray: 0xd3d3d3,\n  lightgreen: 0x90ee90,\n  lightgrey: 0xd3d3d3,\n  lightpink: 0xffb6c1,\n  lightsalmon: 0xffa07a,\n  lightseagreen: 0x20b2aa,\n  lightskyblue: 0x87cefa,\n  lightslategray: 0x778899,\n  lightslategrey: 0x778899,\n  lightsteelblue: 0xb0c4de,\n  lightyellow: 0xffffe0,\n  lime: 0x00ff00,\n  limegreen: 0x32cd32,\n  linen: 0xfaf0e6,\n  magenta: 0xff00ff,\n  maroon: 0x800000,\n  mediumaquamarine: 0x66cdaa,\n  mediumblue: 0x0000cd,\n  mediumorchid: 0xba55d3,\n  mediumpurple: 0x9370db,\n  mediumseagreen: 0x3cb371,\n  mediumslateblue: 0x7b68ee,\n  mediumspringgreen: 0x00fa9a,\n  mediumturquoise: 0x48d1cc,\n  mediumvioletred: 0xc71585,\n  midnightblue: 0x191970,\n  mintcream: 0xf5fffa,\n  mistyrose: 0xffe4e1,\n  moccasin: 0xffe4b5,\n  navajowhite: 0xffdead,\n  navy: 0x000080,\n  oldlace: 0xfdf5e6,\n  olive: 0x808000,\n  olivedrab: 0x6b8e23,\n  orange: 0xffa500,\n  orangered: 0xff4500,\n  orchid: 0xda70d6,\n  palegoldenrod: 0xeee8aa,\n  palegreen: 0x98fb98,\n  paleturquoise: 0xafeeee,\n  palevioletred: 0xdb7093,\n  papayawhip: 0xffefd5,\n  peachpuff: 0xffdab9,\n  peru: 0xcd853f,\n  pink: 0xffc0cb,\n  plum: 0xdda0dd,\n  powderblue: 0xb0e0e6,\n  purple: 0x800080,\n  rebeccapurple: 0x663399,\n  red: 0xff0000,\n  rosybrown: 0xbc8f8f,\n  royalblue: 0x4169e1,\n  saddlebrown: 0x8b4513,\n  salmon: 0xfa8072,\n  sandybrown: 0xf4a460,\n  seagreen: 0x2e8b57,\n  seashell: 0xfff5ee,\n  sienna: 0xa0522d,\n  silver: 0xc0c0c0,\n  skyblue: 0x87ceeb,\n  slateblue: 0x6a5acd,\n  slategray: 0x708090,\n  slategrey: 0x708090,\n  snow: 0xfffafa,\n  springgreen: 0x00ff7f,\n  steelblue: 0x4682b4,\n  tan: 0xd2b48c,\n  teal: 0x008080,\n  thistle: 0xd8bfd8,\n  tomato: 0xff6347,\n  turquoise: 0x40e0d0,\n  violet: 0xee82ee,\n  wheat: 0xf5deb3,\n  white: 0xffffff,\n  whitesmoke: 0xf5f5f5,\n  yellow: 0xffff00,\n  yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n  copy(channels) {\n    return Object.assign(new this.constructor, this, channels);\n  },\n  displayable() {\n    return this.rgb().displayable();\n  },\n  hex: color_formatHex, // Deprecated! Use color.formatHex.\n  formatHex: color_formatHex,\n  formatHex8: color_formatHex8,\n  formatHsl: color_formatHsl,\n  formatRgb: color_formatRgb,\n  toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n  return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n  return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n  return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n  return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n  var m, l;\n  format = (format + \"\").trim().toLowerCase();\n  return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n      : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n      : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n      : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n      : null) // invalid hex\n      : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n      : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n      : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n      : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n      : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n      : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n      : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n      : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n      : null;\n}\n\nfunction rgbn(n) {\n  return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n  if (a <= 0) r = g = b = NaN;\n  return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n  if (!(o instanceof Color)) o = color(o);\n  if (!o) return new Rgb;\n  o = o.rgb();\n  return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n  return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n  this.r = +r;\n  this.g = +g;\n  this.b = +b;\n  this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n  brighter(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n  },\n  darker(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n  },\n  rgb() {\n    return this;\n  },\n  clamp() {\n    return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n  },\n  displayable() {\n    return (-0.5 <= this.r && this.r < 255.5)\n        && (-0.5 <= this.g && this.g < 255.5)\n        && (-0.5 <= this.b && this.b < 255.5)\n        && (0 <= this.opacity && this.opacity <= 1);\n  },\n  hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n  formatHex: rgb_formatHex,\n  formatHex8: rgb_formatHex8,\n  formatRgb: rgb_formatRgb,\n  toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n  return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n  return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n  const a = clampa(this.opacity);\n  return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n  return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n  return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n  value = clampi(value);\n  return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n  if (a <= 0) h = s = l = NaN;\n  else if (l <= 0 || l >= 1) h = s = NaN;\n  else if (s <= 0) h = NaN;\n  return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n  if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n  if (!(o instanceof Color)) o = color(o);\n  if (!o) return new Hsl;\n  if (o instanceof Hsl) return o;\n  o = o.rgb();\n  var r = o.r / 255,\n      g = o.g / 255,\n      b = o.b / 255,\n      min = Math.min(r, g, b),\n      max = Math.max(r, g, b),\n      h = NaN,\n      s = max - min,\n      l = (max + min) / 2;\n  if (s) {\n    if (r === max) h = (g - b) / s + (g < b) * 6;\n    else if (g === max) h = (b - r) / s + 2;\n    else h = (r - g) / s + 4;\n    s /= l < 0.5 ? max + min : 2 - max - min;\n    h *= 60;\n  } else {\n    s = l > 0 && l < 1 ? 0 : h;\n  }\n  return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n  return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n  this.h = +h;\n  this.s = +s;\n  this.l = +l;\n  this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n  brighter(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Hsl(this.h, this.s, this.l * k, this.opacity);\n  },\n  darker(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Hsl(this.h, this.s, this.l * k, this.opacity);\n  },\n  rgb() {\n    var h = this.h % 360 + (this.h < 0) * 360,\n        s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n        l = this.l,\n        m2 = l + (l < 0.5 ? l : 1 - l) * s,\n        m1 = 2 * l - m2;\n    return new Rgb(\n      hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n      hsl2rgb(h, m1, m2),\n      hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n      this.opacity\n    );\n  },\n  clamp() {\n    return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n  },\n  displayable() {\n    return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n        && (0 <= this.l && this.l <= 1)\n        && (0 <= this.opacity && this.opacity <= 1);\n  },\n  formatHsl() {\n    const a = clampa(this.opacity);\n    return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n  }\n}));\n\nfunction clamph(value) {\n  value = (value || 0) % 360;\n  return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n  return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n  return (h < 60 ? m1 + (m2 - m1) * h / 60\n      : h < 180 ? m2\n      : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n      : m1) * 255;\n}\n", "export const radians = Math.PI / 180;\nexport const degrees = 180 / Math.PI;\n", "import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nconst K = 18,\n    Xn = 0.96422,\n    Yn = 1,\n    Zn = 0.82521,\n    t0 = 4 / 29,\n    t1 = 6 / 29,\n    t2 = 3 * t1 * t1,\n    t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n  if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n  if (o instanceof Hcl) return hcl2lab(o);\n  if (!(o instanceof Rgb)) o = rgbConvert(o);\n  var r = rgb2lrgb(o.r),\n      g = rgb2lrgb(o.g),\n      b = rgb2lrgb(o.b),\n      y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n  if (r === g && g === b) x = z = y; else {\n    x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n    z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n  }\n  return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n  return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n  return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n  this.l = +l;\n  this.a = +a;\n  this.b = +b;\n  this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n  brighter(k) {\n    return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n  },\n  darker(k) {\n    return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n  },\n  rgb() {\n    var y = (this.l + 16) / 116,\n        x = isNaN(this.a) ? y : y + this.a / 500,\n        z = isNaN(this.b) ? y : y - this.b / 200;\n    x = Xn * lab2xyz(x);\n    y = Yn * lab2xyz(y);\n    z = Zn * lab2xyz(z);\n    return new Rgb(\n      lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n      lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n      lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n      this.opacity\n    );\n  }\n}));\n\nfunction xyz2lab(t) {\n  return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n  return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n  return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n  return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n  if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n  if (!(o instanceof Lab)) o = labConvert(o);\n  if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n  var h = Math.atan2(o.b, o.a) * degrees;\n  return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n  return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n  return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n  this.h = +h;\n  this.c = +c;\n  this.l = +l;\n  this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n  if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n  var h = o.h * radians;\n  return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n  brighter(k) {\n    return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n  },\n  darker(k) {\n    return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n  },\n  rgb() {\n    return hcl2lab(this).rgb();\n  }\n}));\n", "import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\nvar A = -0.14861,\n    B = +1.78277,\n    C = -0.29227,\n    D = -0.90649,\n    E = +1.97294,\n    ED = E * D,\n    EB = E * B,\n    BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n  if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n  if (!(o instanceof Rgb)) o = rgbConvert(o);\n  var r = o.r / 255,\n      g = o.g / 255,\n      b = o.b / 255,\n      l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n      bl = b - l,\n      k = (E * (g - l) - C * bl) / D,\n      s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n      h = s ? Math.atan2(k, bl) * degrees - 120 : NaN;\n  return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n  return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n  this.h = +h;\n  this.s = +s;\n  this.l = +l;\n  this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n  brighter(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n  },\n  darker(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n  },\n  rgb() {\n    var h = isNaN(this.h) ? 0 : (this.h + 120) * radians,\n        l = +this.l,\n        a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n        cosh = Math.cos(h),\n        sinh = Math.sin(h);\n    return new Rgb(\n      255 * (l + a * (A * cosh + B * sinh)),\n      255 * (l + a * (C * cosh + D * sinh)),\n      255 * (l + a * (E * cosh)),\n      this.opacity\n    );\n  }\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 {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", "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 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(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, \u00B1Infinity\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\",\"\u00B5\",\"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 ? \"\u2212\" : 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 \u201Cvalue\u201D part that can be\n        // grouped, and fractional or exponential \u201Csuffix\u201D 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", "export default function nice(domain, interval) {\n  domain = domain.slice();\n\n  var i0 = 0,\n      i1 = domain.length - 1,\n      x0 = domain[i0],\n      x1 = domain[i1],\n      t;\n\n  if (x1 < x0) {\n    t = i0, i0 = i1, i1 = t;\n    t = x0, x0 = x1, x1 = t;\n  }\n\n  domain[i0] = interval.floor(x0);\n  domain[i1] = interval.ceil(x1);\n  return domain;\n}\n", "var t0 = new Date,\n    t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n  function interval(date) {\n    return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n  }\n\n  interval.floor = function(date) {\n    return floori(date = new Date(+date)), date;\n  };\n\n  interval.ceil = function(date) {\n    return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n  };\n\n  interval.round = function(date) {\n    var d0 = interval(date),\n        d1 = interval.ceil(date);\n    return date - d0 < d1 - date ? d0 : d1;\n  };\n\n  interval.offset = function(date, step) {\n    return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n  };\n\n  interval.range = function(start, stop, step) {\n    var range = [], previous;\n    start = interval.ceil(start);\n    step = step == null ? 1 : Math.floor(step);\n    if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n    do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n    while (previous < start && start < stop);\n    return range;\n  };\n\n  interval.filter = function(test) {\n    return newInterval(function(date) {\n      if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n    }, function(date, step) {\n      if (date >= date) {\n        if (step < 0) while (++step <= 0) {\n          while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n        } else while (--step >= 0) {\n          while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n        }\n      }\n    });\n  };\n\n  if (count) {\n    interval.count = function(start, end) {\n      t0.setTime(+start), t1.setTime(+end);\n      floori(t0), floori(t1);\n      return Math.floor(count(t0, t1));\n    };\n\n    interval.every = function(step) {\n      step = Math.floor(step);\n      return !isFinite(step) || !(step > 0) ? null\n          : !(step > 1) ? interval\n          : interval.filter(field\n              ? function(d) { return field(d) % step === 0; }\n              : function(d) { return interval.count(0, d) % step === 0; });\n    };\n  }\n\n  return interval;\n}\n", "import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n  // noop\n}, function(date, step) {\n  date.setTime(+date + step);\n}, function(start, end) {\n  return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n  k = Math.floor(k);\n  if (!isFinite(k) || !(k > 0)) return null;\n  if (!(k > 1)) return millisecond;\n  return interval(function(date) {\n    date.setTime(Math.floor(date / k) * k);\n  }, function(date, step) {\n    date.setTime(+date + step * k);\n  }, function(start, end) {\n    return (end - start) / k;\n  });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n", "export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n", "import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n  date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n  date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n  return (end - start) / durationSecond;\n}, function(date) {\n  return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n", "import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n  date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n  date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n  return (end - start) / durationMinute;\n}, function(date) {\n  return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n", "import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n  date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n  date.setTime(+date + step * durationHour);\n}, function(start, end) {\n  return (end - start) / durationHour;\n}, function(date) {\n  return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n", "import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(\n  date => date.setHours(0, 0, 0, 0),\n  (date, step) => date.setDate(date.getDate() + step),\n  (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n  date => date.getDate() - 1\n);\n\nexport default day;\nexport var days = day.range;\n", "import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n  return interval(function(date) {\n    date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n    date.setHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setDate(date.getDate() + step * 7);\n  }, function(start, end) {\n    return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n  });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n", "import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n  date.setDate(1);\n  date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n  return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n  return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n", "import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n  date.setMonth(0, 1);\n  date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n  return end.getFullYear() - start.getFullYear();\n}, function(date) {\n  return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n    date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n    date.setMonth(0, 1);\n    date.setHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setFullYear(date.getFullYear() + step * k);\n  });\n};\n\nexport default year;\nexport var years = year.range;\n", "import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n  date.setUTCSeconds(0, 0);\n}, function(date, step) {\n  date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n  return (end - start) / durationMinute;\n}, function(date) {\n  return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n", "import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n  date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n  date.setTime(+date + step * durationHour);\n}, function(start, end) {\n  return (end - start) / durationHour;\n}, function(date) {\n  return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n", "import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n  date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n  return (end - start) / durationDay;\n}, function(date) {\n  return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n", "import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n  return interval(function(date) {\n    date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n    date.setUTCHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setUTCDate(date.getUTCDate() + step * 7);\n  }, function(start, end) {\n    return (end - start) / durationWeek;\n  });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n", "import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n  date.setUTCDate(1);\n  date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n  return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n  return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n", "import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n  date.setUTCMonth(0, 1);\n  date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n  date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n  return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n  return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n  return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n    date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n    date.setUTCMonth(0, 1);\n    date.setUTCHours(0, 0, 0, 0);\n  }, function(date, step) {\n    date.setUTCFullYear(date.getUTCFullYear() + step * k);\n  });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n", "import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport millisecond from \"./millisecond.js\";\nimport second from \"./second.js\";\nimport minute from \"./minute.js\";\nimport hour from \"./hour.js\";\nimport day from \"./day.js\";\nimport {sunday as week} from \"./week.js\";\nimport month from \"./month.js\";\nimport year from \"./year.js\";\nimport utcMinute from \"./utcMinute.js\";\nimport utcHour from \"./utcHour.js\";\nimport utcDay from \"./utcDay.js\";\nimport {utcSunday as utcWeek} from \"./utcWeek.js\";\nimport utcMonth from \"./utcMonth.js\";\nimport utcYear from \"./utcYear.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n  const tickIntervals = [\n    [second,  1,      durationSecond],\n    [second,  5,  5 * durationSecond],\n    [second, 15, 15 * durationSecond],\n    [second, 30, 30 * durationSecond],\n    [minute,  1,      durationMinute],\n    [minute,  5,  5 * durationMinute],\n    [minute, 15, 15 * durationMinute],\n    [minute, 30, 30 * durationMinute],\n    [  hour,  1,      durationHour  ],\n    [  hour,  3,  3 * durationHour  ],\n    [  hour,  6,  6 * durationHour  ],\n    [  hour, 12, 12 * durationHour  ],\n    [   day,  1,      durationDay   ],\n    [   day,  2,  2 * durationDay   ],\n    [  week,  1,      durationWeek  ],\n    [ month,  1,      durationMonth ],\n    [ month,  3,  3 * durationMonth ],\n    [  year,  1,      durationYear  ]\n  ];\n\n  function ticks(start, stop, count) {\n    const reverse = stop < start;\n    if (reverse) [start, stop] = [stop, start];\n    const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n    const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n    return reverse ? ticks.reverse() : ticks;\n  }\n\n  function tickInterval(start, stop, count) {\n    const target = Math.abs(stop - start) / count;\n    const i = bisector(([,, step]) => step).right(tickIntervals, target);\n    if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n    if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n    const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n    return t.every(step);\n  }\n\n  return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(year, month, week, day, hour, minute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n", "import {\n  timeDay,\n  timeSunday,\n  timeMonday,\n  timeThursday,\n  timeYear,\n  utcDay,\n  utcSunday,\n  utcMonday,\n  utcThursday,\n  utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n  if (0 <= d.y && d.y < 100) {\n    var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n    date.setFullYear(d.y);\n    return date;\n  }\n  return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n  if (0 <= d.y && d.y < 100) {\n    var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n    date.setUTCFullYear(d.y);\n    return date;\n  }\n  return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n  return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n  var locale_dateTime = locale.dateTime,\n      locale_date = locale.date,\n      locale_time = locale.time,\n      locale_periods = locale.periods,\n      locale_weekdays = locale.days,\n      locale_shortWeekdays = locale.shortDays,\n      locale_months = locale.months,\n      locale_shortMonths = locale.shortMonths;\n\n  var periodRe = formatRe(locale_periods),\n      periodLookup = formatLookup(locale_periods),\n      weekdayRe = formatRe(locale_weekdays),\n      weekdayLookup = formatLookup(locale_weekdays),\n      shortWeekdayRe = formatRe(locale_shortWeekdays),\n      shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n      monthRe = formatRe(locale_months),\n      monthLookup = formatLookup(locale_months),\n      shortMonthRe = formatRe(locale_shortMonths),\n      shortMonthLookup = formatLookup(locale_shortMonths);\n\n  var formats = {\n    \"a\": formatShortWeekday,\n    \"A\": formatWeekday,\n    \"b\": formatShortMonth,\n    \"B\": formatMonth,\n    \"c\": null,\n    \"d\": formatDayOfMonth,\n    \"e\": formatDayOfMonth,\n    \"f\": formatMicroseconds,\n    \"g\": formatYearISO,\n    \"G\": formatFullYearISO,\n    \"H\": formatHour24,\n    \"I\": formatHour12,\n    \"j\": formatDayOfYear,\n    \"L\": formatMilliseconds,\n    \"m\": formatMonthNumber,\n    \"M\": formatMinutes,\n    \"p\": formatPeriod,\n    \"q\": formatQuarter,\n    \"Q\": formatUnixTimestamp,\n    \"s\": formatUnixTimestampSeconds,\n    \"S\": formatSeconds,\n    \"u\": formatWeekdayNumberMonday,\n    \"U\": formatWeekNumberSunday,\n    \"V\": formatWeekNumberISO,\n    \"w\": formatWeekdayNumberSunday,\n    \"W\": formatWeekNumberMonday,\n    \"x\": null,\n    \"X\": null,\n    \"y\": formatYear,\n    \"Y\": formatFullYear,\n    \"Z\": formatZone,\n    \"%\": formatLiteralPercent\n  };\n\n  var utcFormats = {\n    \"a\": formatUTCShortWeekday,\n    \"A\": formatUTCWeekday,\n    \"b\": formatUTCShortMonth,\n    \"B\": formatUTCMonth,\n    \"c\": null,\n    \"d\": formatUTCDayOfMonth,\n    \"e\": formatUTCDayOfMonth,\n    \"f\": formatUTCMicroseconds,\n    \"g\": formatUTCYearISO,\n    \"G\": formatUTCFullYearISO,\n    \"H\": formatUTCHour24,\n    \"I\": formatUTCHour12,\n    \"j\": formatUTCDayOfYear,\n    \"L\": formatUTCMilliseconds,\n    \"m\": formatUTCMonthNumber,\n    \"M\": formatUTCMinutes,\n    \"p\": formatUTCPeriod,\n    \"q\": formatUTCQuarter,\n    \"Q\": formatUnixTimestamp,\n    \"s\": formatUnixTimestampSeconds,\n    \"S\": formatUTCSeconds,\n    \"u\": formatUTCWeekdayNumberMonday,\n    \"U\": formatUTCWeekNumberSunday,\n    \"V\": formatUTCWeekNumberISO,\n    \"w\": formatUTCWeekdayNumberSunday,\n    \"W\": formatUTCWeekNumberMonday,\n    \"x\": null,\n    \"X\": null,\n    \"y\": formatUTCYear,\n    \"Y\": formatUTCFullYear,\n    \"Z\": formatUTCZone,\n    \"%\": formatLiteralPercent\n  };\n\n  var parses = {\n    \"a\": parseShortWeekday,\n    \"A\": parseWeekday,\n    \"b\": parseShortMonth,\n    \"B\": parseMonth,\n    \"c\": parseLocaleDateTime,\n    \"d\": parseDayOfMonth,\n    \"e\": parseDayOfMonth,\n    \"f\": parseMicroseconds,\n    \"g\": parseYear,\n    \"G\": parseFullYear,\n    \"H\": parseHour24,\n    \"I\": parseHour24,\n    \"j\": parseDayOfYear,\n    \"L\": parseMilliseconds,\n    \"m\": parseMonthNumber,\n    \"M\": parseMinutes,\n    \"p\": parsePeriod,\n    \"q\": parseQuarter,\n    \"Q\": parseUnixTimestamp,\n    \"s\": parseUnixTimestampSeconds,\n    \"S\": parseSeconds,\n    \"u\": parseWeekdayNumberMonday,\n    \"U\": parseWeekNumberSunday,\n    \"V\": parseWeekNumberISO,\n    \"w\": parseWeekdayNumberSunday,\n    \"W\": parseWeekNumberMonday,\n    \"x\": parseLocaleDate,\n    \"X\": parseLocaleTime,\n    \"y\": parseYear,\n    \"Y\": parseFullYear,\n    \"Z\": parseZone,\n    \"%\": parseLiteralPercent\n  };\n\n  // These recursive directive definitions must be deferred.\n  formats.x = newFormat(locale_date, formats);\n  formats.X = newFormat(locale_time, formats);\n  formats.c = newFormat(locale_dateTime, formats);\n  utcFormats.x = newFormat(locale_date, utcFormats);\n  utcFormats.X = newFormat(locale_time, utcFormats);\n  utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n  function newFormat(specifier, formats) {\n    return function(date) {\n      var string = [],\n          i = -1,\n          j = 0,\n          n = specifier.length,\n          c,\n          pad,\n          format;\n\n      if (!(date instanceof Date)) date = new Date(+date);\n\n      while (++i < n) {\n        if (specifier.charCodeAt(i) === 37) {\n          string.push(specifier.slice(j, i));\n          if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n          else pad = c === \"e\" ? \" \" : \"0\";\n          if (format = formats[c]) c = format(date, pad);\n          string.push(c);\n          j = i + 1;\n        }\n      }\n\n      string.push(specifier.slice(j, i));\n      return string.join(\"\");\n    };\n  }\n\n  function newParse(specifier, Z) {\n    return function(string) {\n      var d = newDate(1900, undefined, 1),\n          i = parseSpecifier(d, specifier, string += \"\", 0),\n          week, day;\n      if (i != string.length) return null;\n\n      // If a UNIX timestamp is specified, return it.\n      if (\"Q\" in d) return new Date(d.Q);\n      if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n      // If this is utcParse, never use the local timezone.\n      if (Z && !(\"Z\" in d)) d.Z = 0;\n\n      // The am-pm flag is 0 for AM, and 1 for PM.\n      if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n      // If the month was not specified, inherit from the quarter.\n      if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n      // Convert day-of-week and week-of-year to day-of-year.\n      if (\"V\" in d) {\n        if (d.V < 1 || d.V > 53) return null;\n        if (!(\"w\" in d)) d.w = 1;\n        if (\"Z\" in d) {\n          week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n          week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n          week = utcDay.offset(week, (d.V - 1) * 7);\n          d.y = week.getUTCFullYear();\n          d.m = week.getUTCMonth();\n          d.d = week.getUTCDate() + (d.w + 6) % 7;\n        } else {\n          week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n          week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n          week = timeDay.offset(week, (d.V - 1) * 7);\n          d.y = week.getFullYear();\n          d.m = week.getMonth();\n          d.d = week.getDate() + (d.w + 6) % 7;\n        }\n      } else if (\"W\" in d || \"U\" in d) {\n        if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n        day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n        d.m = 0;\n        d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n      }\n\n      // If a time zone is specified, all fields are interpreted as UTC and then\n      // offset according to the specified time zone.\n      if (\"Z\" in d) {\n        d.H += d.Z / 100 | 0;\n        d.M += d.Z % 100;\n        return utcDate(d);\n      }\n\n      // Otherwise, all fields are in local time.\n      return localDate(d);\n    };\n  }\n\n  function parseSpecifier(d, specifier, string, j) {\n    var i = 0,\n        n = specifier.length,\n        m = string.length,\n        c,\n        parse;\n\n    while (i < n) {\n      if (j >= m) return -1;\n      c = specifier.charCodeAt(i++);\n      if (c === 37) {\n        c = specifier.charAt(i++);\n        parse = parses[c in pads ? specifier.charAt(i++) : c];\n        if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n      } else if (c != string.charCodeAt(j++)) {\n        return -1;\n      }\n    }\n\n    return j;\n  }\n\n  function parsePeriod(d, string, i) {\n    var n = periodRe.exec(string.slice(i));\n    return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n  }\n\n  function parseShortWeekday(d, string, i) {\n    var n = shortWeekdayRe.exec(string.slice(i));\n    return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n  }\n\n  function parseWeekday(d, string, i) {\n    var n = weekdayRe.exec(string.slice(i));\n    return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n  }\n\n  function parseShortMonth(d, string, i) {\n    var n = shortMonthRe.exec(string.slice(i));\n    return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n  }\n\n  function parseMonth(d, string, i) {\n    var n = monthRe.exec(string.slice(i));\n    return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n  }\n\n  function parseLocaleDateTime(d, string, i) {\n    return parseSpecifier(d, locale_dateTime, string, i);\n  }\n\n  function parseLocaleDate(d, string, i) {\n    return parseSpecifier(d, locale_date, string, i);\n  }\n\n  function parseLocaleTime(d, string, i) {\n    return parseSpecifier(d, locale_time, string, i);\n  }\n\n  function formatShortWeekday(d) {\n    return locale_shortWeekdays[d.getDay()];\n  }\n\n  function formatWeekday(d) {\n    return locale_weekdays[d.getDay()];\n  }\n\n  function formatShortMonth(d) {\n    return locale_shortMonths[d.getMonth()];\n  }\n\n  function formatMonth(d) {\n    return locale_months[d.getMonth()];\n  }\n\n  function formatPeriod(d) {\n    return locale_periods[+(d.getHours() >= 12)];\n  }\n\n  function formatQuarter(d) {\n    return 1 + ~~(d.getMonth() / 3);\n  }\n\n  function formatUTCShortWeekday(d) {\n    return locale_shortWeekdays[d.getUTCDay()];\n  }\n\n  function formatUTCWeekday(d) {\n    return locale_weekdays[d.getUTCDay()];\n  }\n\n  function formatUTCShortMonth(d) {\n    return locale_shortMonths[d.getUTCMonth()];\n  }\n\n  function formatUTCMonth(d) {\n    return locale_months[d.getUTCMonth()];\n  }\n\n  function formatUTCPeriod(d) {\n    return locale_periods[+(d.getUTCHours() >= 12)];\n  }\n\n  function formatUTCQuarter(d) {\n    return 1 + ~~(d.getUTCMonth() / 3);\n  }\n\n  return {\n    format: function(specifier) {\n      var f = newFormat(specifier += \"\", formats);\n      f.toString = function() { return specifier; };\n      return f;\n    },\n    parse: function(specifier) {\n      var p = newParse(specifier += \"\", false);\n      p.toString = function() { return specifier; };\n      return p;\n    },\n    utcFormat: function(specifier) {\n      var f = newFormat(specifier += \"\", utcFormats);\n      f.toString = function() { return specifier; };\n      return f;\n    },\n    utcParse: function(specifier) {\n      var p = newParse(specifier += \"\", true);\n      p.toString = function() { return specifier; };\n      return p;\n    }\n  };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n    numberRe = /^\\s*\\d+/, // note: ignores next directive\n    percentRe = /^%/,\n    requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n  var sign = value < 0 ? \"-\" : \"\",\n      string = (sign ? -value : value) + \"\",\n      length = string.length;\n  return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n  return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n  return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n  return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 1));\n  return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 1));\n  return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 4));\n  return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n  var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n  return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 1));\n  return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 3));\n  return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 2));\n  return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 3));\n  return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i, i + 6));\n  return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n  var n = percentRe.exec(string.slice(i, i + 1));\n  return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n  var n = numberRe.exec(string.slice(i));\n  return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n  var n = numberRe.exec(string.slice(i));\n  return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n  return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n  return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n  return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n  return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n  return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n  return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n  return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n  return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n  return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n  var day = d.getDay();\n  return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n  return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n  var day = d.getDay();\n  return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n  d = dISO(d);\n  return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n  return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n  return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n  return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n  d = dISO(d);\n  return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n  return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n  var day = d.getDay();\n  d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n  return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n  var z = d.getTimezoneOffset();\n  return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n      + pad(z / 60 | 0, \"0\", 2)\n      + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n  return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n  return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n  return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n  return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n  return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n  return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n  return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n  return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n  return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n  var dow = d.getUTCDay();\n  return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n  return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n  var day = d.getUTCDay();\n  return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n  d = UTCdISO(d);\n  return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n  return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n  return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n  return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n  d = UTCdISO(d);\n  return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n  return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n  var day = d.getUTCDay();\n  d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n  return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n  return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n  return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n  return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n  return Math.floor(+d / 1000);\n}\n", "import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n  dateTime: \"%x, %X\",\n  date: \"%-m/%-d/%Y\",\n  time: \"%-I:%M:%S %p\",\n  periods: [\"AM\", \"PM\"],\n  days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n  shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n  months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n  shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n  locale = formatLocale(definition);\n  timeFormat = locale.format;\n  timeParse = locale.parse;\n  utcFormat = locale.utcFormat;\n  utcParse = locale.utcParse;\n  return locale;\n}\n", "import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n  return new Date(t);\n}\n\nfunction number(t) {\n  return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n  var scale = continuous(),\n      invert = scale.invert,\n      domain = scale.domain;\n\n  var formatMillisecond = format(\".%L\"),\n      formatSecond = format(\":%S\"),\n      formatMinute = format(\"%I:%M\"),\n      formatHour = format(\"%I %p\"),\n      formatDay = format(\"%a %d\"),\n      formatWeek = format(\"%b %d\"),\n      formatMonth = format(\"%B\"),\n      formatYear = format(\"%Y\");\n\n  function tickFormat(date) {\n    return (second(date) < date ? formatMillisecond\n        : minute(date) < date ? formatSecond\n        : hour(date) < date ? formatMinute\n        : day(date) < date ? formatHour\n        : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n        : year(date) < date ? formatMonth\n        : formatYear)(date);\n  }\n\n  scale.invert = function(y) {\n    return new Date(invert(y));\n  };\n\n  scale.domain = function(_) {\n    return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n  };\n\n  scale.ticks = function(interval) {\n    var d = domain();\n    return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n  };\n\n  scale.tickFormat = function(count, specifier) {\n    return specifier == null ? tickFormat : format(specifier);\n  };\n\n  scale.nice = function(interval) {\n    var d = domain();\n    if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n    return interval ? domain(nice(d, interval)) : scale;\n  };\n\n  scale.copy = function() {\n    return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n  };\n\n  return scale;\n}\n\nexport default function time() {\n  return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n", "export default function applyDomain(scale, config) {\n  if (config.domain) {\n    if ('nice' in scale || 'quantiles' in scale) {\n      // continuous input scales\n      scale.domain(config.domain);\n    } else if ('padding' in scale) {\n      // point and band scales\n      scale.domain(config.domain);\n    } else {\n      // ordinal and threshold scale\n      scale.domain(config.domain);\n    }\n  }\n}", "export default function applyRange(scale, config) {\n  if (config.range) {\n    if ('padding' in scale) {\n      // point and band scales\n      scale.range(config.range);\n    } else {\n      // the rest\n      scale.range(config.range);\n    }\n  }\n}", "export default function applyAlign(scale, config) {\n  if ('align' in scale && 'align' in config && typeof config.align !== 'undefined') {\n    scale.align(config.align);\n  }\n}", "export default function applyBase(scale, config) {\n  if ('base' in scale && 'base' in config && typeof config.base !== 'undefined') {\n    scale.base(config.base);\n  }\n}", "export default function applyClamp(scale, config) {\n  if ('clamp' in scale && 'clamp' in config && typeof config.clamp !== 'undefined') {\n    scale.clamp(config.clamp);\n  }\n}", "export default function applyConstant(scale, config) {\n  if ('constant' in scale && 'constant' in config && typeof config.constant !== 'undefined') {\n    scale.constant(config.constant);\n  }\n}", "export default function applyExponent(scale, config) {\n  if ('exponent' in scale && 'exponent' in config && typeof config.exponent !== 'undefined') {\n    scale.exponent(config.exponent);\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 {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", "export default function(x) {\n  return function() {\n    return x;\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", "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", "import {hsl as colorHsl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hsl(hue) {\n  return function(start, end) {\n    var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),\n        s = color(start.s, end.s),\n        l = color(start.l, end.l),\n        opacity = color(start.opacity, end.opacity);\n    return function(t) {\n      start.h = h(t);\n      start.s = s(t);\n      start.l = l(t);\n      start.opacity = opacity(t);\n      return start + \"\";\n    };\n  }\n}\n\nexport default hsl(hue);\nexport var hslLong = hsl(color);\n", "import {lab as colorLab} from \"d3-color\";\nimport color from \"./color.js\";\n\nexport default function lab(start, end) {\n  var l = color((start = colorLab(start)).l, (end = colorLab(end)).l),\n      a = color(start.a, end.a),\n      b = color(start.b, end.b),\n      opacity = color(start.opacity, end.opacity);\n  return function(t) {\n    start.l = l(t);\n    start.a = a(t);\n    start.b = b(t);\n    start.opacity = opacity(t);\n    return start + \"\";\n  };\n}\n", "import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hcl(hue) {\n  return function(start, end) {\n    var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n        c = color(start.c, end.c),\n        l = color(start.l, end.l),\n        opacity = color(start.opacity, end.opacity);\n    return function(t) {\n      start.h = h(t);\n      start.c = c(t);\n      start.l = l(t);\n      start.opacity = opacity(t);\n      return start + \"\";\n    };\n  }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n", "import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction cubehelix(hue) {\n  return (function cubehelixGamma(y) {\n    y = +y;\n\n    function cubehelix(start, end) {\n      var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n          s = color(start.s, end.s),\n          l = color(start.l, end.l),\n          opacity = color(start.opacity, end.opacity);\n      return function(t) {\n        start.h = h(t);\n        start.s = s(t);\n        start.l = l(Math.pow(t, y));\n        start.opacity = opacity(t);\n        return start + \"\";\n      };\n    }\n\n    cubehelix.gamma = cubehelixGamma;\n\n    return cubehelix;\n  })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n", "import { interpolateRgb, interpolateLab, interpolateHcl, interpolateHclLong, interpolateHsl, interpolateHslLong, interpolateCubehelix, interpolateCubehelixLong } from 'd3-interpolate';\nvar interpolatorMap = {\n  lab: interpolateLab,\n  hcl: interpolateHcl,\n  'hcl-long': interpolateHclLong,\n  hsl: interpolateHsl,\n  'hsl-long': interpolateHslLong,\n  cubehelix: interpolateCubehelix,\n  'cubehelix-long': interpolateCubehelixLong,\n  rgb: interpolateRgb\n};\nexport default function createColorInterpolator(interpolate) {\n  switch (interpolate) {\n    case 'lab':\n    case 'hcl':\n    case 'hcl-long':\n    case 'hsl':\n    case 'hsl-long':\n    case 'cubehelix':\n    case 'cubehelix-long':\n    case 'rgb':\n      return interpolatorMap[interpolate];\n\n    default:\n  }\n\n  var type = interpolate.type,\n      gamma = interpolate.gamma;\n  var interpolator = interpolatorMap[type];\n  return typeof gamma === 'undefined' ? interpolator : interpolator.gamma(gamma);\n}", "import createColorInterpolator from '../utils/createColorInterpolator';\nexport default function applyInterpolate(scale, config) {\n  if ('interpolate' in config && 'interpolate' in scale && typeof config.interpolate !== 'undefined') {\n    var interpolator = createColorInterpolator(config.interpolate);\n    scale.interpolate(interpolator);\n  }\n}", "var TEST_TIME = new Date(Date.UTC(2020, 1, 2, 3, 4, 5));\nvar TEST_FORMAT = '%Y-%m-%d %H:%M';\n/**\n * Check if the scale is UTC or Time scale\n * When local time is equal to UTC, always return true\n * @param scale time or utc scale\n */\n\nexport default function isUtcScale(scale) {\n  // The only difference between time and utc scale is\n  // whether the tick format function is utcFormat or timeFormat\n  var output = scale.tickFormat(1, TEST_FORMAT)(TEST_TIME);\n  return output === '2020-02-02 03:04';\n}", "import { timeSecond, timeMinute, timeHour, timeDay, timeYear, timeMonth, timeWeek, utcSecond, utcMinute, utcHour, utcDay, utcWeek, utcMonth, utcYear } from 'd3-time';\nimport isUtcScale from '../utils/isUtcScale';\nvar localTimeIntervals = {\n  day: timeDay,\n  hour: timeHour,\n  minute: timeMinute,\n  month: timeMonth,\n  second: timeSecond,\n  week: timeWeek,\n  year: timeYear\n};\nvar utcIntervals = {\n  day: utcDay,\n  hour: utcHour,\n  minute: utcMinute,\n  month: utcMonth,\n  second: utcSecond,\n  week: utcWeek,\n  year: utcYear\n};\nexport default function applyNice(scale, config) {\n  if ('nice' in config && typeof config.nice !== 'undefined' && 'nice' in scale) {\n    var nice = config.nice;\n\n    if (typeof nice === 'boolean') {\n      if (nice) {\n        scale.nice();\n      }\n    } else if (typeof nice === 'number') {\n      scale.nice(nice);\n    } else {\n      var timeScale = scale;\n      var isUtc = isUtcScale(timeScale);\n\n      if (typeof nice === 'string') {\n        timeScale.nice(isUtc ? utcIntervals[nice] : localTimeIntervals[nice]);\n      } else {\n        var interval = nice.interval,\n            step = nice.step;\n        var parsedInterval = (isUtc ? utcIntervals[interval] : localTimeIntervals[interval]).every(step);\n\n        if (parsedInterval != null) {\n          timeScale.nice(parsedInterval);\n        }\n      }\n    }\n  }\n}", "export default function applyPadding(scale, config) {\n  if ('padding' in scale && 'padding' in config && typeof config.padding !== 'undefined') {\n    scale.padding(config.padding);\n  }\n\n  if ('paddingInner' in scale && 'paddingInner' in config && typeof config.paddingInner !== 'undefined') {\n    scale.paddingInner(config.paddingInner);\n  }\n\n  if ('paddingOuter' in scale && 'paddingOuter' in config && typeof config.paddingOuter !== 'undefined') {\n    scale.paddingOuter(config.paddingOuter);\n  }\n}", "export default function applyReverse(scale, config) {\n  if (config.reverse) {\n    var reversedRange = scale.range().slice().reverse();\n\n    if ('padding' in scale) {\n      // point and band scales\n      scale.range(reversedRange);\n    } else {\n      // the rest\n      scale.range(reversedRange);\n    }\n  }\n}", "import { interpolateRound } from 'd3-interpolate';\nexport default function applyRound(scale, config) {\n  if ('round' in config && typeof config.round !== 'undefined') {\n    if (config.round && 'interpolate' in config && typeof config.interpolate !== 'undefined') {\n      console.warn(\"[visx/scale/applyRound] ignoring round: scale config contains round and interpolate. only applying interpolate. config:\", config);\n    } else if ('round' in scale) {\n      // for point and band scales\n      scale.round(config.round);\n    } else if ('interpolate' in scale && config.round) {\n      // for continuous output scales\n      // setting config.round = true\n      // is actually setting interpolator to interpolateRound\n      // as these scales do not have scale.round() function\n      scale.interpolate(interpolateRound);\n    }\n  }\n}", "export default function applyUnknown(scale, config) {\n  if ('unknown' in scale && 'unknown' in config && typeof config.unknown !== 'undefined') {\n    scale.unknown(config.unknown);\n  }\n}", "export default function applyZero(scale, config) {\n  if ('zero' in config && config.zero === true) {\n    var domain = scale.domain();\n    var a = domain[0],\n        b = domain[1];\n    var isDescending = b < a;\n\n    var _ref = isDescending ? [b, a] : [a, b],\n        min = _ref[0],\n        max = _ref[1];\n\n    var domainWithZero = [Math.min(0, min), Math.max(0, max)];\n    scale.domain(isDescending ? domainWithZero.reverse() : domainWithZero);\n  }\n}", "import domain from './domain';\nimport range from './range';\nimport align from './align';\nimport base from './base';\nimport clamp from './clamp';\nimport constant from './constant';\nimport exponent from './exponent';\nimport interpolate from './interpolate';\nimport nice from './nice';\nimport padding from './padding';\nimport reverse from './reverse';\nimport round from './round';\nimport unknown from './unknown';\nimport zero from './zero';\n/**\n * List of all operators, in order of execution\n */\n\nexport var ALL_OPERATORS = [// domain => nice => zero\n'domain', 'nice', 'zero', // interpolate before round\n'interpolate', 'round', // set range then reverse\n'range', 'reverse', // Order does not matter for these operators\n'align', 'base', 'clamp', 'constant', 'exponent', 'padding', 'unknown'];\n// Use Record to enforce that all keys in OperatorType must exist.\nvar operators = {\n  domain: domain,\n  nice: nice,\n  zero: zero,\n  interpolate: interpolate,\n  round: round,\n  align: align,\n  base: base,\n  clamp: clamp,\n  constant: constant,\n  exponent: exponent,\n  padding: padding,\n  range: range,\n  reverse: reverse,\n  unknown: unknown\n};\nexport default function scaleOperator() {\n  for (var _len = arguments.length, ops = new Array(_len), _key = 0; _key < _len; _key++) {\n    ops[_key] = arguments[_key];\n  }\n\n  var selection = new Set(ops);\n  var selectedOps = ALL_OPERATORS.filter(function (o) {\n    return selection.has(o);\n  });\n  return function applyOperators(scale, config) {\n    if (typeof config !== 'undefined') {\n      selectedOps.forEach(function (op) {\n        operators[op](scale, config);\n      });\n    }\n\n    return scale;\n  };\n}", "import { scaleLinear } from 'd3-scale';\nimport scaleOperator from '../operators/scaleOperator';\nexport var updateLinearScale = scaleOperator('domain', 'range', 'reverse', 'clamp', 'interpolate', 'nice', 'round', 'zero');\nexport default function createLinearScale(config) {\n  return updateLinearScale(scaleLinear(), config);\n}", "import { scaleTime } from 'd3-scale';\nimport scaleOperator from '../operators/scaleOperator';\nexport var updateTimeScale = scaleOperator('domain', 'range', 'reverse', 'clamp', 'interpolate', 'nice', 'round');\nexport default function createTimeScale(config) {\n  return updateTimeScale(scaleTime(), config);\n}", "export default function coerceNumber(val) {\n  if ((typeof val === 'function' || typeof val === 'object' && !!val) && 'valueOf' in val) {\n    var num = val.valueOf();\n    if (typeof num === 'number') return num;\n  }\n\n  return val;\n}", "export default function getTicks(scale, numTicks) {\n  // Because `Scale` is generic type which maybe a subset of AnyD3Scale\n  // that may not have `ticks` field,\n  // TypeScript will not let us do the `'ticks' in scale` check directly.\n  // Have to manually cast and expand type first.\n  var s = scale;\n\n  if ('ticks' in s) {\n    return s.ticks(numTicks);\n  }\n\n  return s.domain().filter(function (_, index, arr) {\n    return numTicks == null || arr.length <= numTicks || index % Math.round((arr.length - 1) / numTicks) === 0;\n  });\n}", "export default function toString(x) {\n  return x == null ? void 0 : x.toString();\n}", "var _excluded = [\"children\", \"data\", \"x\", \"y\", \"fill\", \"className\", \"curve\", \"innerRef\", \"defined\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport cx from 'classnames';\nimport { line } from '../util/D3ShapeFactories';\nexport default function LinePath(_ref) {\n  var children = _ref.children,\n      _ref$data = _ref.data,\n      data = _ref$data === void 0 ? [] : _ref$data,\n      x = _ref.x,\n      y = _ref.y,\n      _ref$fill = _ref.fill,\n      fill = _ref$fill === void 0 ? 'transparent' : _ref$fill,\n      className = _ref.className,\n      curve = _ref.curve,\n      innerRef = _ref.innerRef,\n      _ref$defined = _ref.defined,\n      defined = _ref$defined === void 0 ? function () {\n    return true;\n  } : _ref$defined,\n      restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n  var path = line({\n    x: x,\n    y: y,\n    defined: defined,\n    curve: curve\n  });\n  if (children) return /*#__PURE__*/React.createElement(React.Fragment, null, children({\n    path: path\n  }));\n  return /*#__PURE__*/React.createElement(\"path\", _extends({\n    ref: innerRef,\n    className: cx('visx-linepath', className),\n    d: path(data) || '',\n    fill: fill // without this a datum surrounded by nulls will not be visible\n    // https://github.com/d3/d3-shape#line_defined\n    ,\n    strokeLinecap: \"round\"\n  }, restProps));\n}", "var pi = Math.PI,\n    tau = 2 * pi,\n    epsilon = 1e-6,\n    tauEpsilon = tau - epsilon;\n\nfunction Path() {\n  this._x0 = this._y0 = // start of current subpath\n  this._x1 = this._y1 = null; // end of current subpath\n  this._ = \"\";\n}\n\nfunction path() {\n  return new Path;\n}\n\nPath.prototype = path.prototype = {\n  constructor: Path,\n  moveTo: function(x, y) {\n    this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n  },\n  closePath: function() {\n    if (this._x1 !== null) {\n      this._x1 = this._x0, this._y1 = this._y0;\n      this._ += \"Z\";\n    }\n  },\n  lineTo: function(x, y) {\n    this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n  },\n  quadraticCurveTo: function(x1, y1, x, y) {\n    this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n  },\n  bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n    this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n  },\n  arcTo: function(x1, y1, x2, y2, r) {\n    x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n    var x0 = this._x1,\n        y0 = this._y1,\n        x21 = x2 - x1,\n        y21 = y2 - y1,\n        x01 = x0 - x1,\n        y01 = y0 - y1,\n        l01_2 = x01 * x01 + y01 * y01;\n\n    // Is the radius negative? Error.\n    if (r < 0) throw new Error(\"negative radius: \" + r);\n\n    // Is this path empty? Move to (x1,y1).\n    if (this._x1 === null) {\n      this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n    }\n\n    // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n    else if (!(l01_2 > epsilon));\n\n    // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n    // Equivalently, is (x1,y1) coincident with (x2,y2)?\n    // Or, is the radius zero? Line to (x1,y1).\n    else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n      this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n    }\n\n    // Otherwise, draw an arc!\n    else {\n      var x20 = x2 - x0,\n          y20 = y2 - y0,\n          l21_2 = x21 * x21 + y21 * y21,\n          l20_2 = x20 * x20 + y20 * y20,\n          l21 = Math.sqrt(l21_2),\n          l01 = Math.sqrt(l01_2),\n          l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n          t01 = l / l01,\n          t21 = l / l21;\n\n      // If the start tangent is not coincident with (x0,y0), line to.\n      if (Math.abs(t01 - 1) > epsilon) {\n        this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n      }\n\n      this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n    }\n  },\n  arc: function(x, y, r, a0, a1, ccw) {\n    x = +x, y = +y, r = +r, ccw = !!ccw;\n    var dx = r * Math.cos(a0),\n        dy = r * Math.sin(a0),\n        x0 = x + dx,\n        y0 = y + dy,\n        cw = 1 ^ ccw,\n        da = ccw ? a0 - a1 : a1 - a0;\n\n    // Is the radius negative? Error.\n    if (r < 0) throw new Error(\"negative radius: \" + r);\n\n    // Is this path empty? Move to (x0,y0).\n    if (this._x1 === null) {\n      this._ += \"M\" + x0 + \",\" + y0;\n    }\n\n    // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n    else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n      this._ += \"L\" + x0 + \",\" + y0;\n    }\n\n    // Is this arc empty? We\u2019re done.\n    if (!r) return;\n\n    // Does the angle go the wrong way? Flip the direction.\n    if (da < 0) da = da % tau + tau;\n\n    // Is this a complete circle? Draw two arcs to complete the circle.\n    if (da > tauEpsilon) {\n      this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n    }\n\n    // Is this arc non-empty? Draw an arc!\n    else if (da > epsilon) {\n      this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n    }\n  },\n  rect: function(x, y, w, h) {\n    this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n  },\n  toString: function() {\n    return this._;\n  }\n};\n\nexport default path;\n", "export default function(x) {\n  return function constant() {\n    return x;\n  };\n}\n", "function Linear(context) {\n  this._context = context;\n}\n\nLinear.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n      case 1: this._point = 2; // proceed\n      default: this._context.lineTo(x, y); break;\n    }\n  }\n};\n\nexport default function(context) {\n  return new Linear(context);\n}\n", "export function x(p) {\n  return p[0];\n}\n\nexport function y(p) {\n  return p[1];\n}\n", "import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n  var x = pointX,\n      y = pointY,\n      defined = constant(true),\n      context = null,\n      curve = curveLinear,\n      output = null;\n\n  function line(data) {\n    var i,\n        n = data.length,\n        d,\n        defined0 = false,\n        buffer;\n\n    if (context == null) output = curve(buffer = path());\n\n    for (i = 0; i <= n; ++i) {\n      if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n        if (defined0 = !defined0) output.lineStart();\n        else output.lineEnd();\n      }\n      if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n    }\n\n    if (buffer) return output = null, buffer + \"\" || null;\n  }\n\n  line.x = function(_) {\n    return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n  };\n\n  line.y = function(_) {\n    return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n  };\n\n  line.defined = function(_) {\n    return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n  };\n\n  line.curve = function(_) {\n    return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n  };\n\n  line.context = function(_) {\n    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n  };\n\n  return line;\n}\n", "import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n  var x0 = pointX,\n      x1 = null,\n      y0 = constant(0),\n      y1 = pointY,\n      defined = constant(true),\n      context = null,\n      curve = curveLinear,\n      output = null;\n\n  function area(data) {\n    var i,\n        j,\n        k,\n        n = data.length,\n        d,\n        defined0 = false,\n        buffer,\n        x0z = new Array(n),\n        y0z = new Array(n);\n\n    if (context == null) output = curve(buffer = path());\n\n    for (i = 0; i <= n; ++i) {\n      if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n        if (defined0 = !defined0) {\n          j = i;\n          output.areaStart();\n          output.lineStart();\n        } else {\n          output.lineEnd();\n          output.lineStart();\n          for (k = i - 1; k >= j; --k) {\n            output.point(x0z[k], y0z[k]);\n          }\n          output.lineEnd();\n          output.areaEnd();\n        }\n      }\n      if (defined0) {\n        x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n        output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n      }\n    }\n\n    if (buffer) return output = null, buffer + \"\" || null;\n  }\n\n  function arealine() {\n    return line().defined(defined).curve(curve).context(context);\n  }\n\n  area.x = function(_) {\n    return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n  };\n\n  area.x0 = function(_) {\n    return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n  };\n\n  area.x1 = function(_) {\n    return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n  };\n\n  area.y = function(_) {\n    return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n  };\n\n  area.y0 = function(_) {\n    return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n  };\n\n  area.y1 = function(_) {\n    return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n  };\n\n  area.lineX0 =\n  area.lineY0 = function() {\n    return arealine().x(x0).y(y0);\n  };\n\n  area.lineY1 = function() {\n    return arealine().x(x0).y(y1);\n  };\n\n  area.lineX1 = function() {\n    return arealine().x(x1).y(y0);\n  };\n\n  area.defined = function(_) {\n    return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n  };\n\n  area.curve = function(_) {\n    return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n  };\n\n  area.context = function(_) {\n    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n  };\n\n  return area;\n}\n", "export function point(that, x, y) {\n  that._context.bezierCurveTo(\n    that._x1 + that._k * (that._x2 - that._x0),\n    that._y1 + that._k * (that._y2 - that._y0),\n    that._x2 + that._k * (that._x1 - x),\n    that._y2 + that._k * (that._y1 - y),\n    that._x2,\n    that._y2\n  );\n}\n\nexport function Cardinal(context, tension) {\n  this._context = context;\n  this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x0 = this._x1 = this._x2 =\n    this._y0 = this._y1 = this._y2 = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    switch (this._point) {\n      case 2: this._context.lineTo(this._x2, this._y2); break;\n      case 3: point(this, this._x1, this._y1); break;\n    }\n    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n      case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n      case 2: this._point = 3; // proceed\n      default: point(this, x, y); break;\n    }\n    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n  }\n};\n\nexport default (function custom(tension) {\n\n  function cardinal(context) {\n    return new Cardinal(context, tension);\n  }\n\n  cardinal.tension = function(tension) {\n    return custom(+tension);\n  };\n\n  return cardinal;\n})(0);\n", "/**\n * This is a workaround for TypeScript not inferring the correct\n * method overload/signature for some d3 shape methods.\n */\nexport default function setNumberOrNumberAccessor(func, value) {\n  if (typeof value === 'number') func(value);else func(value);\n}", "import { arc as d3Arc, area as d3Area, line as d3Line, pie as d3Pie, radialLine as d3RadialLine, stack as d3Stack } from 'd3-shape';\nimport setNumberOrNumberAccessor from './setNumberOrNumberAccessor';\nimport stackOrder from './stackOrder';\nimport stackOffset from './stackOffset';\nexport function arc(_temp) {\n  var _ref = _temp === void 0 ? {} : _temp,\n      innerRadius = _ref.innerRadius,\n      outerRadius = _ref.outerRadius,\n      cornerRadius = _ref.cornerRadius,\n      startAngle = _ref.startAngle,\n      endAngle = _ref.endAngle,\n      padAngle = _ref.padAngle,\n      padRadius = _ref.padRadius;\n\n  var path = d3Arc();\n  if (innerRadius != null) setNumberOrNumberAccessor(path.innerRadius, innerRadius);\n  if (outerRadius != null) setNumberOrNumberAccessor(path.outerRadius, outerRadius);\n  if (cornerRadius != null) setNumberOrNumberAccessor(path.cornerRadius, cornerRadius);\n  if (startAngle != null) setNumberOrNumberAccessor(path.startAngle, startAngle);\n  if (endAngle != null) setNumberOrNumberAccessor(path.endAngle, endAngle);\n  if (padAngle != null) setNumberOrNumberAccessor(path.padAngle, padAngle);\n  if (padRadius != null) setNumberOrNumberAccessor(path.padRadius, padRadius);\n  return path;\n}\nexport function area(_temp2) {\n  var _ref2 = _temp2 === void 0 ? {} : _temp2,\n      x = _ref2.x,\n      x0 = _ref2.x0,\n      x1 = _ref2.x1,\n      y = _ref2.y,\n      y0 = _ref2.y0,\n      y1 = _ref2.y1,\n      defined = _ref2.defined,\n      curve = _ref2.curve;\n\n  var path = d3Area();\n  if (x) setNumberOrNumberAccessor(path.x, x);\n  if (x0) setNumberOrNumberAccessor(path.x0, x0);\n  if (x1) setNumberOrNumberAccessor(path.x1, x1);\n  if (y) setNumberOrNumberAccessor(path.y, y);\n  if (y0) setNumberOrNumberAccessor(path.y0, y0);\n  if (y1) setNumberOrNumberAccessor(path.y1, y1);\n  if (defined) path.defined(defined);\n  if (curve) path.curve(curve);\n  return path;\n}\nexport function line(_temp3) {\n  var _ref3 = _temp3 === void 0 ? {} : _temp3,\n      x = _ref3.x,\n      y = _ref3.y,\n      defined = _ref3.defined,\n      curve = _ref3.curve;\n\n  var path = d3Line();\n  if (x) setNumberOrNumberAccessor(path.x, x);\n  if (y) setNumberOrNumberAccessor(path.y, y);\n  if (defined) path.defined(defined);\n  if (curve) path.curve(curve);\n  return path;\n}\nexport function pie(_temp4) {\n  var _ref4 = _temp4 === void 0 ? {} : _temp4,\n      startAngle = _ref4.startAngle,\n      endAngle = _ref4.endAngle,\n      padAngle = _ref4.padAngle,\n      value = _ref4.value,\n      sort = _ref4.sort,\n      sortValues = _ref4.sortValues;\n\n  var path = d3Pie(); // ts can't distinguish between these method overloads\n\n  if (sort === null) path.sort(sort);else if (sort != null) path.sort(sort);\n  if (sortValues === null) path.sortValues(sortValues);else if (sortValues != null) path.sortValues(sortValues);\n  if (value != null) path.value(value);\n  if (padAngle != null) setNumberOrNumberAccessor(path.padAngle, padAngle);\n  if (startAngle != null) setNumberOrNumberAccessor(path.startAngle, startAngle);\n  if (endAngle != null) setNumberOrNumberAccessor(path.endAngle, endAngle);\n  return path;\n}\nexport function radialLine(_temp5) {\n  var _ref5 = _temp5 === void 0 ? {} : _temp5,\n      angle = _ref5.angle,\n      radius = _ref5.radius,\n      defined = _ref5.defined,\n      curve = _ref5.curve;\n\n  var path = d3RadialLine();\n  if (angle) setNumberOrNumberAccessor(path.angle, angle);\n  if (radius) setNumberOrNumberAccessor(path.radius, radius);\n  if (defined) path.defined(defined);\n  if (curve) path.curve(curve);\n  return path;\n}\nexport function stack(_ref6) {\n  var keys = _ref6.keys,\n      value = _ref6.value,\n      order = _ref6.order,\n      offset = _ref6.offset;\n  var path = d3Stack();\n  if (keys) path.keys(keys);\n  if (value) setNumberOrNumberAccessor(path.value, value);\n  if (order) path.order(stackOrder(order));\n  if (offset) path.offset(stackOffset(offset));\n  return path;\n}", "var _excluded = [\"x\", \"x0\", \"x1\", \"y\", \"y1\", \"y0\", \"yScale\", \"data\", \"defined\", \"className\", \"curve\", \"innerRef\", \"children\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport cx from 'classnames';\nimport setNumOrAccessor from '../util/setNumberOrNumberAccessor';\nimport { area } from '../util/D3ShapeFactories';\nexport default function AreaClosed(_ref) {\n  var x = _ref.x,\n      x0 = _ref.x0,\n      x1 = _ref.x1,\n      y = _ref.y,\n      y1 = _ref.y1,\n      y0 = _ref.y0,\n      yScale = _ref.yScale,\n      _ref$data = _ref.data,\n      data = _ref$data === void 0 ? [] : _ref$data,\n      _ref$defined = _ref.defined,\n      defined = _ref$defined === void 0 ? function () {\n    return true;\n  } : _ref$defined,\n      className = _ref.className,\n      curve = _ref.curve,\n      innerRef = _ref.innerRef,\n      children = _ref.children,\n      restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n  var path = area({\n    x: x,\n    x0: x0,\n    x1: x1,\n    defined: defined,\n    curve: curve\n  });\n\n  if (y0 == null) {\n    /**\n     * by default set the baseline to the first element of the yRange\n     * @TODO take the minimum instead?\n     */\n    path.y0(yScale.range()[0]);\n  } else {\n    setNumOrAccessor(path.y0, y0);\n  }\n\n  if (y && !y1) setNumOrAccessor(path.y1, y);\n  if (y1 && !y) setNumOrAccessor(path.y1, y1);\n  if (children) return /*#__PURE__*/React.createElement(React.Fragment, null, children({\n    path: path\n  }));\n  return /*#__PURE__*/React.createElement(\"path\", _extends({\n    ref: innerRef,\n    className: cx('visx-area-closed', className),\n    d: path(data) || ''\n  }, restProps));\n}", "var _excluded = [\"className\", \"innerRef\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport cx from 'classnames';\nexport default function Bar(_ref) {\n  var className = _ref.className,\n      innerRef = _ref.innerRef,\n      restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n  return /*#__PURE__*/React.createElement(\"rect\", _extends({\n    ref: innerRef,\n    className: cx('visx-bar', className)\n  }, restProps));\n}", "var _excluded = [\"from\", \"to\", \"fill\", \"className\", \"innerRef\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport cx from 'classnames';\nexport default function Line(_ref) {\n  var _ref$from = _ref.from,\n      from = _ref$from === void 0 ? {\n    x: 0,\n    y: 0\n  } : _ref$from,\n      _ref$to = _ref.to,\n      to = _ref$to === void 0 ? {\n    x: 1,\n    y: 1\n  } : _ref$to,\n      _ref$fill = _ref.fill,\n      fill = _ref$fill === void 0 ? 'transparent' : _ref$fill,\n      className = _ref.className,\n      innerRef = _ref.innerRef,\n      restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n  var isRectilinear = from.x === to.x || from.y === to.y;\n  return /*#__PURE__*/React.createElement(\"line\", _extends({\n    ref: innerRef,\n    className: cx('visx-line', className),\n    x1: from.x,\n    y1: from.y,\n    x2: to.x,\n    y2: to.y,\n    fill: fill,\n    shapeRendering: isRectilinear ? 'crispEdges' : 'auto'\n  }, restProps));\n}", "var _excluded = [\"axisClassName\", \"labelOffset\", \"tickLabelProps\", \"tickLength\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport cx from 'classnames';\nimport Axis from './Axis';\nimport Orientation from '../constants/orientation';\nexport var leftTickLabelProps = function leftTickLabelProps() {\n  return {\n    dx: '-0.25em',\n    dy: '0.25em',\n    fill: '#222',\n    fontFamily: 'Arial',\n    fontSize: 10,\n    textAnchor: 'end'\n  };\n};\nexport default function AxisLeft(_ref) {\n  var axisClassName = _ref.axisClassName,\n      _ref$labelOffset = _ref.labelOffset,\n      labelOffset = _ref$labelOffset === void 0 ? 36 : _ref$labelOffset,\n      _ref$tickLabelProps = _ref.tickLabelProps,\n      tickLabelProps = _ref$tickLabelProps === void 0 ? leftTickLabelProps : _ref$tickLabelProps,\n      _ref$tickLength = _ref.tickLength,\n      tickLength = _ref$tickLength === void 0 ? 8 : _ref$tickLength,\n      restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n  return /*#__PURE__*/React.createElement(Axis, _extends({\n    axisClassName: cx('visx-axis-left', axisClassName),\n    labelOffset: labelOffset,\n    orientation: Orientation.left,\n    tickLabelProps: tickLabelProps,\n    tickLength: tickLength\n  }, restProps));\n}", "import _pt from \"prop-types\";\nvar _excluded = [\"children\", \"axisClassName\", \"hideAxisLine\", \"hideTicks\", \"hideZero\", \"left\", \"numTicks\", \"orientation\", \"rangePadding\", \"scale\", \"tickFormat\", \"tickLength\", \"tickValues\", \"top\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport cx from 'classnames';\nimport { Group } from '@visx/group';\nimport { getTicks, coerceNumber } from '@visx/scale';\nimport AxisRenderer from './AxisRenderer';\nimport getTickPosition from '../utils/getTickPosition';\nimport getTickFormatter from '../utils/getTickFormatter';\nimport createPoint from '../utils/createPoint';\nimport Orientation from '../constants/orientation';\nexport default function Axis(_ref) {\n  var _ref$children = _ref.children,\n      children = _ref$children === void 0 ? AxisRenderer : _ref$children,\n      axisClassName = _ref.axisClassName,\n      _ref$hideAxisLine = _ref.hideAxisLine,\n      hideAxisLine = _ref$hideAxisLine === void 0 ? false : _ref$hideAxisLine,\n      _ref$hideTicks = _ref.hideTicks,\n      hideTicks = _ref$hideTicks === void 0 ? false : _ref$hideTicks,\n      _ref$hideZero = _ref.hideZero,\n      hideZero = _ref$hideZero === void 0 ? false : _ref$hideZero,\n      _ref$left = _ref.left,\n      left = _ref$left === void 0 ? 0 : _ref$left,\n      _ref$numTicks = _ref.numTicks,\n      numTicks = _ref$numTicks === void 0 ? 10 : _ref$numTicks,\n      _ref$orientation = _ref.orientation,\n      orientation = _ref$orientation === void 0 ? Orientation.bottom : _ref$orientation,\n      _ref$rangePadding = _ref.rangePadding,\n      rangePadding = _ref$rangePadding === void 0 ? 0 : _ref$rangePadding,\n      scale = _ref.scale,\n      tickFormat = _ref.tickFormat,\n      _ref$tickLength = _ref.tickLength,\n      tickLength = _ref$tickLength === void 0 ? 8 : _ref$tickLength,\n      tickValues = _ref.tickValues,\n      _ref$top = _ref.top,\n      top = _ref$top === void 0 ? 0 : _ref$top,\n      restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n  var format = tickFormat != null ? tickFormat : getTickFormatter(scale);\n  var isLeft = orientation === Orientation.left;\n  var isTop = orientation === Orientation.top;\n  var horizontal = isTop || orientation === Orientation.bottom;\n  var tickPosition = getTickPosition(scale);\n  var tickSign = isLeft || isTop ? -1 : 1;\n  var range = scale.range();\n  var axisFromPoint = createPoint({\n    x: Number(range[0]) + 0.5 - rangePadding,\n    y: 0\n  }, horizontal);\n  var axisToPoint = createPoint({\n    x: Number(range[range.length - 1]) + 0.5 + rangePadding,\n    y: 0\n  }, horizontal);\n  var filteredTickValues = (tickValues != null ? tickValues : getTicks(scale, numTicks)).filter(function (value) {\n    return !hideZero || value !== 0 && value !== '0';\n  }).map(function (value, index) {\n    return {\n      value: value,\n      index: index\n    };\n  });\n  var ticks = filteredTickValues.map(function (_ref2) {\n    var value = _ref2.value,\n        index = _ref2.index;\n    var scaledValue = coerceNumber(tickPosition(value));\n    return {\n      value: value,\n      index: index,\n      from: createPoint({\n        x: scaledValue,\n        y: 0\n      }, horizontal),\n      to: createPoint({\n        x: scaledValue,\n        y: tickLength * tickSign\n      }, horizontal),\n      formattedValue: format(value, index, filteredTickValues)\n    };\n  });\n  return /*#__PURE__*/React.createElement(Group, {\n    className: cx('visx-axis', axisClassName),\n    top: top,\n    left: left\n  }, children(_extends({}, restProps, {\n    axisFromPoint: axisFromPoint,\n    axisToPoint: axisToPoint,\n    hideAxisLine: hideAxisLine,\n    hideTicks: hideTicks,\n    hideZero: hideZero,\n    horizontal: horizontal,\n    numTicks: numTicks,\n    orientation: orientation,\n    rangePadding: rangePadding,\n    scale: scale,\n    tickFormat: format,\n    tickLength: tickLength,\n    tickPosition: tickPosition,\n    tickSign: tickSign,\n    ticks: ticks\n  })));\n}", "function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\nimport cx from 'classnames';\nimport { Line } from '@visx/shape';\nimport { Text } from '@visx/text';\nimport getLabelTransform from '../utils/getLabelTransform';\nimport Ticks from './Ticks';\nimport { Orientation } from '..';\nvar defaultTextProps = {\n  textAnchor: 'middle',\n  fontFamily: 'Arial',\n  fontSize: 10,\n  fill: '#222'\n};\nexport default function AxisRenderer(_ref) {\n  var axisFromPoint = _ref.axisFromPoint,\n      axisLineClassName = _ref.axisLineClassName,\n      axisToPoint = _ref.axisToPoint,\n      hideAxisLine = _ref.hideAxisLine,\n      hideTicks = _ref.hideTicks,\n      horizontal = _ref.horizontal,\n      _ref$label = _ref.label,\n      label = _ref$label === void 0 ? '' : _ref$label,\n      labelClassName = _ref.labelClassName,\n      _ref$labelOffset = _ref.labelOffset,\n      labelOffset = _ref$labelOffset === void 0 ? 14 : _ref$labelOffset,\n      _ref$labelProps = _ref.labelProps,\n      labelProps = _ref$labelProps === void 0 ? defaultTextProps : _ref$labelProps,\n      _ref$orientation = _ref.orientation,\n      orientation = _ref$orientation === void 0 ? Orientation.bottom : _ref$orientation,\n      scale = _ref.scale,\n      _ref$stroke = _ref.stroke,\n      stroke = _ref$stroke === void 0 ? '#222' : _ref$stroke,\n      strokeDasharray = _ref.strokeDasharray,\n      _ref$strokeWidth = _ref.strokeWidth,\n      strokeWidth = _ref$strokeWidth === void 0 ? 1 : _ref$strokeWidth,\n      tickClassName = _ref.tickClassName,\n      tickComponent = _ref.tickComponent,\n      tickLineProps = _ref.tickLineProps,\n      _ref$tickLabelProps = _ref.tickLabelProps,\n      tickLabelProps = _ref$tickLabelProps === void 0 ? function () {\n    return defaultTextProps;\n  } : _ref$tickLabelProps,\n      _ref$tickLength = _ref.tickLength,\n      tickLength = _ref$tickLength === void 0 ? 8 : _ref$tickLength,\n      _ref$tickStroke = _ref.tickStroke,\n      tickStroke = _ref$tickStroke === void 0 ? '#222' : _ref$tickStroke,\n      tickTransform = _ref.tickTransform,\n      ticks = _ref.ticks,\n      _ref$ticksComponent = _ref.ticksComponent,\n      ticksComponent = _ref$ticksComponent === void 0 ? Ticks : _ref$ticksComponent;\n  // compute the max tick label size to compute label offset\n  var allTickLabelProps = ticks.map(function (_ref2) {\n    var value = _ref2.value,\n        index = _ref2.index;\n    return tickLabelProps(value, index, ticks);\n  });\n  var maxTickLabelFontSize = Math.max.apply(Math, [10].concat(allTickLabelProps.map(function (props) {\n    return typeof props.fontSize === 'number' ? props.fontSize : 0;\n  })));\n  return /*#__PURE__*/React.createElement(React.Fragment, null, ticksComponent({\n    hideTicks: hideTicks,\n    horizontal: horizontal,\n    orientation: orientation,\n    scale: scale,\n    tickClassName: tickClassName,\n    tickComponent: tickComponent,\n    tickLabelProps: allTickLabelProps,\n    tickStroke: tickStroke,\n    tickTransform: tickTransform,\n    ticks: ticks,\n    strokeWidth: strokeWidth,\n    tickLineProps: tickLineProps\n  }), !hideAxisLine && /*#__PURE__*/React.createElement(Line, {\n    className: cx('visx-axis-line', axisLineClassName),\n    from: axisFromPoint,\n    to: axisToPoint,\n    stroke: stroke,\n    strokeWidth: strokeWidth,\n    strokeDasharray: strokeDasharray\n  }), label && /*#__PURE__*/React.createElement(Text, _extends({\n    className: cx('visx-axis-label', labelClassName)\n  }, getLabelTransform({\n    labelOffset: labelOffset,\n    labelProps: labelProps,\n    orientation: orientation,\n    range: scale.range(),\n    tickLabelFontSize: maxTickLabelFontSize,\n    tickLength: tickLength\n  }), labelProps), label));\n}", "var _excluded = [\"dx\", \"dy\", \"textAnchor\", \"innerRef\", \"innerTextRef\", \"verticalAnchor\", \"angle\", \"lineHeight\", \"scaleToFit\", \"capHeight\", \"width\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport useText from './hooks/useText';\nvar SVG_STYLE = {\n  overflow: 'visible'\n};\nexport default function Text(props) {\n  var _props$dx = props.dx,\n      dx = _props$dx === void 0 ? 0 : _props$dx,\n      _props$dy = props.dy,\n      dy = _props$dy === void 0 ? 0 : _props$dy,\n      _props$textAnchor = props.textAnchor,\n      textAnchor = _props$textAnchor === void 0 ? 'start' : _props$textAnchor,\n      innerRef = props.innerRef,\n      innerTextRef = props.innerTextRef,\n      verticalAnchor = props.verticalAnchor,\n      angle = props.angle,\n      _props$lineHeight = props.lineHeight,\n      lineHeight = _props$lineHeight === void 0 ? '1em' : _props$lineHeight,\n      _props$scaleToFit = props.scaleToFit,\n      scaleToFit = _props$scaleToFit === void 0 ? false : _props$scaleToFit,\n      capHeight = props.capHeight,\n      width = props.width,\n      textProps = _objectWithoutPropertiesLoose(props, _excluded);\n\n  var _textProps$x = textProps.x,\n      x = _textProps$x === void 0 ? 0 : _textProps$x,\n      fontSize = textProps.fontSize;\n\n  var _useText = useText(props),\n      wordsByLines = _useText.wordsByLines,\n      startDy = _useText.startDy,\n      transform = _useText.transform;\n\n  return /*#__PURE__*/React.createElement(\"svg\", {\n    ref: innerRef,\n    x: dx,\n    y: dy,\n    fontSize: fontSize,\n    style: SVG_STYLE\n  }, wordsByLines.length > 0 ? /*#__PURE__*/React.createElement(\"text\", _extends({\n    ref: innerTextRef,\n    transform: transform\n  }, textProps, {\n    textAnchor: textAnchor\n  }), wordsByLines.map(function (line, index) {\n    return /*#__PURE__*/React.createElement(\"tspan\", {\n      key: index,\n      x: x,\n      dy: index === 0 ? startDy : lineHeight\n    }, line.words.join(' '));\n  })) : null);\n}", "var _excluded = [\"verticalAnchor\", \"scaleToFit\", \"angle\", \"width\", \"lineHeight\", \"capHeight\", \"children\", \"style\"];\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { useMemo } from 'react';\nimport reduceCSSCalc from 'reduce-css-calc';\nimport getStringWidth from '../util/getStringWidth';\n\nfunction isNumber(val) {\n  return typeof val === 'number';\n}\n\nfunction isXOrYInValid(xOrY) {\n  return (// number that is not NaN or Infinity\n    typeof xOrY === 'number' && Number.isFinite(xOrY) || // for percentage\n    typeof xOrY === 'string'\n  );\n}\n\nexport default function useText(props) {\n  var _props$verticalAnchor = props.verticalAnchor,\n      verticalAnchor = _props$verticalAnchor === void 0 ? 'end' : _props$verticalAnchor,\n      _props$scaleToFit = props.scaleToFit,\n      scaleToFit = _props$scaleToFit === void 0 ? false : _props$scaleToFit,\n      angle = props.angle,\n      width = props.width,\n      _props$lineHeight = props.lineHeight,\n      lineHeight = _props$lineHeight === void 0 ? '1em' : _props$lineHeight,\n      _props$capHeight = props.capHeight,\n      capHeight = _props$capHeight === void 0 ? '0.71em' : _props$capHeight,\n      children = props.children,\n      style = props.style,\n      textProps = _objectWithoutPropertiesLoose(props, _excluded);\n\n  var _textProps$x = textProps.x,\n      x = _textProps$x === void 0 ? 0 : _textProps$x,\n      _textProps$y = textProps.y,\n      y = _textProps$y === void 0 ? 0 : _textProps$y;\n  var isXOrYNotValid = !isXOrYInValid(x) || !isXOrYInValid(y);\n\n  var _useMemo = useMemo(function () {\n    var words = children == null ? [] : children.toString().split(/(?:(?!\\u00A0+)\\s+)/);\n    return {\n      wordsWithWidth: words.map(function (word) {\n        return {\n          word: word,\n          wordWidth: getStringWidth(word, style) || 0\n        };\n      }),\n      spaceWidth: getStringWidth(\"\\xA0\", style) || 0\n    };\n  }, [children, style]),\n      wordsWithWidth = _useMemo.wordsWithWidth,\n      spaceWidth = _useMemo.spaceWidth;\n\n  var wordsByLines = useMemo(function () {\n    if (isXOrYNotValid) {\n      return [];\n    } // Only perform calculations if using features that require them (multiline, scaleToFit)\n\n\n    if (width || scaleToFit) {\n      return wordsWithWidth.reduce(function (result, _ref) {\n        var word = _ref.word,\n            wordWidth = _ref.wordWidth;\n        var currentLine = result[result.length - 1];\n\n        if (currentLine && (width == null || scaleToFit || (currentLine.width || 0) + wordWidth + spaceWidth < width)) {\n          // Word can be added to an existing line\n          currentLine.words.push(word);\n          currentLine.width = currentLine.width || 0;\n          currentLine.width += wordWidth + spaceWidth;\n        } else {\n          // Add first word to line or word is too long to scaleToFit on existing line\n          var newLine = {\n            words: [word],\n            width: wordWidth\n          };\n          result.push(newLine);\n        }\n\n        return result;\n      }, []);\n    }\n\n    return [{\n      words: children == null ? [] : children.toString().split(/(?:(?!\\u00A0+)\\s+)/)\n    }];\n  }, [isXOrYNotValid, width, scaleToFit, children, wordsWithWidth, spaceWidth]);\n  var startDy = useMemo(function () {\n    var startDyStr = isXOrYNotValid ? '' : verticalAnchor === 'start' ? reduceCSSCalc(\"calc(\" + capHeight + \")\") : verticalAnchor === 'middle' ? reduceCSSCalc(\"calc(\" + (wordsByLines.length - 1) / 2 + \" * -\" + lineHeight + \" + (\" + capHeight + \" / 2))\") : reduceCSSCalc(\"calc(\" + (wordsByLines.length - 1) + \" * -\" + lineHeight + \")\");\n    return startDyStr;\n  }, [isXOrYNotValid, verticalAnchor, capHeight, wordsByLines.length, lineHeight]);\n  var transform = useMemo(function () {\n    var transforms = [];\n\n    if (isXOrYNotValid) {\n      return '';\n    }\n\n    if (isNumber(x) && isNumber(y) && isNumber(width) && scaleToFit && wordsByLines.length > 0) {\n      var lineWidth = wordsByLines[0].width || 1;\n      var sx = scaleToFit === 'shrink-only' ? Math.min(width / lineWidth, 1) : width / lineWidth;\n      var sy = sx;\n      var originX = x - sx * x;\n      var originY = y - sy * y;\n      transforms.push(\"matrix(\" + sx + \", 0, 0, \" + sy + \", \" + originX + \", \" + originY + \")\");\n    }\n\n    if (angle) {\n      transforms.push(\"rotate(\" + angle + \", \" + x + \", \" + y + \")\");\n    }\n\n    return transforms.length > 0 ? transforms.join(' ') : '';\n  }, [isXOrYNotValid, x, y, width, scaleToFit, wordsByLines, angle]);\n  return {\n    wordsByLines: wordsByLines,\n    startDy: startDy,\n    transform: transform\n  };\n}", "import memoize from 'lodash/memoize';\nvar MEASUREMENT_ELEMENT_ID = '__react_svg_text_measurement_id';\n\nfunction getStringWidth(str, style) {\n  try {\n    // Calculate length of each word to be used to determine number of words per line\n    var textEl = document.getElementById(MEASUREMENT_ELEMENT_ID);\n\n    if (!textEl) {\n      var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n      svg.setAttribute('aria-hidden', 'true');\n      svg.style.width = '0';\n      svg.style.height = '0';\n      svg.style.position = 'absolute';\n      svg.style.top = '-100%';\n      svg.style.left = '-100%';\n      textEl = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n      textEl.setAttribute('id', MEASUREMENT_ELEMENT_ID);\n      svg.appendChild(textEl);\n      document.body.appendChild(svg);\n    }\n\n    Object.assign(textEl.style, style);\n    textEl.textContent = str;\n    return textEl.getComputedTextLength();\n  } catch (e) {\n    return null;\n  }\n}\n\nexport default memoize(getStringWidth, function (str, style) {\n  return str + \"_\" + JSON.stringify(style);\n});", "var Orientation = {\n  top: 'top',\n  left: 'left',\n  right: 'right',\n  bottom: 'bottom'\n};\nexport default Orientation;", "import Orientation from '../constants/orientation';\nexport default function getLabelTransform(_ref) {\n  var labelOffset = _ref.labelOffset,\n      labelProps = _ref.labelProps,\n      orientation = _ref.orientation,\n      range = _ref.range,\n      tickLabelFontSize = _ref.tickLabelFontSize,\n      tickLength = _ref.tickLength;\n  var sign = orientation === Orientation.left || orientation === Orientation.top ? -1 : 1;\n  var x;\n  var y;\n  var transform;\n\n  if (orientation === Orientation.top || orientation === Orientation.bottom) {\n    var yBottomOffset = orientation === Orientation.bottom && typeof labelProps.fontSize === 'number' ? labelProps.fontSize : 0;\n    x = (Number(range[0]) + Number(range[range.length - 1])) / 2;\n    y = sign * (tickLength + labelOffset + tickLabelFontSize + yBottomOffset);\n  } else {\n    x = sign * ((Number(range[0]) + Number(range[range.length - 1])) / 2);\n    y = -(tickLength + labelOffset);\n    transform = \"rotate(\" + sign * 90 + \")\";\n  }\n\n  return {\n    x: x,\n    y: y,\n    transform: transform\n  };\n}", "function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\nimport cx from 'classnames';\nimport { Line } from '@visx/shape';\nimport { Group } from '@visx/group';\nimport { Text } from '@visx/text';\nimport Orientation from '../constants/orientation';\nexport default function Ticks(_ref) {\n  var hideTicks = _ref.hideTicks,\n      horizontal = _ref.horizontal,\n      orientation = _ref.orientation,\n      tickClassName = _ref.tickClassName,\n      tickComponent = _ref.tickComponent,\n      allTickLabelProps = _ref.tickLabelProps,\n      _ref$tickStroke = _ref.tickStroke,\n      tickStroke = _ref$tickStroke === void 0 ? '#222' : _ref$tickStroke,\n      tickTransform = _ref.tickTransform,\n      ticks = _ref.ticks,\n      strokeWidth = _ref.strokeWidth,\n      tickLineProps = _ref.tickLineProps;\n  return ticks.map(function (_ref2) {\n    var _allTickLabelProps$in;\n\n    var value = _ref2.value,\n        index = _ref2.index,\n        from = _ref2.from,\n        to = _ref2.to,\n        formattedValue = _ref2.formattedValue;\n    var tickLabelProps = (_allTickLabelProps$in = allTickLabelProps[index]) != null ? _allTickLabelProps$in : {};\n    var tickLabelFontSize = Math.max(10, typeof tickLabelProps.fontSize === 'number' && tickLabelProps.fontSize || 0);\n    var tickYCoord = to.y + (horizontal && orientation !== Orientation.top ? tickLabelFontSize : 0);\n    return /*#__PURE__*/React.createElement(Group, {\n      key: \"visx-tick-\" + value + \"-\" + index,\n      className: cx('visx-axis-tick', tickClassName),\n      transform: tickTransform\n    }, !hideTicks && /*#__PURE__*/React.createElement(Line, _extends({\n      from: from,\n      to: to,\n      stroke: tickStroke,\n      strokeWidth: strokeWidth,\n      strokeLinecap: \"square\"\n    }, tickLineProps)), tickComponent ? tickComponent(_extends({}, tickLabelProps, {\n      x: to.x,\n      y: tickYCoord,\n      formattedValue: formattedValue\n    })) : /*#__PURE__*/React.createElement(Text, _extends({\n      x: to.x,\n      y: tickYCoord\n    }, tickLabelProps), formattedValue));\n  });\n}", "var _excluded = [\"axisClassName\", \"labelOffset\", \"tickLabelProps\", \"tickLength\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport cx from 'classnames';\nimport Axis from './Axis';\nimport Orientation from '../constants/orientation';\nexport var bottomTickLabelProps = function bottomTickLabelProps() {\n  return {\n    dy: '0.25em',\n    fill: '#222',\n    fontFamily: 'Arial',\n    fontSize: 10,\n    textAnchor: 'middle'\n  };\n};\nexport default function AxisBottom(_ref) {\n  var axisClassName = _ref.axisClassName,\n      _ref$labelOffset = _ref.labelOffset,\n      labelOffset = _ref$labelOffset === void 0 ? 8 : _ref$labelOffset,\n      _ref$tickLabelProps = _ref.tickLabelProps,\n      tickLabelProps = _ref$tickLabelProps === void 0 ? bottomTickLabelProps : _ref$tickLabelProps,\n      _ref$tickLength = _ref.tickLength,\n      tickLength = _ref$tickLength === void 0 ? 8 : _ref$tickLength,\n      restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n  return /*#__PURE__*/React.createElement(Axis, _extends({\n    axisClassName: cx('visx-axis-bottom', axisClassName),\n    labelOffset: labelOffset,\n    orientation: Orientation.bottom,\n    tickLabelProps: tickLabelProps,\n    tickLength: tickLength\n  }, restProps));\n}", "/**\n * Create a function that returns a tick position for the given tick value\n */\nexport default function getTickPosition(scale, align) {\n  if (align === void 0) {\n    align = 'center';\n  }\n\n  // Broaden type before using 'xxx' in s as typeguard.\n  var s = scale; // For point or band scales,\n  // have to add offset to make the tick at center or end.\n\n  if (align !== 'start' && 'bandwidth' in s) {\n    var offset = s.bandwidth();\n    if (align === 'center') offset /= 2;\n    if (s.round()) offset = Math.round(offset);\n    return function (d) {\n      var scaledValue = s(d);\n      return typeof scaledValue === 'number' ? scaledValue + offset : scaledValue;\n    };\n  }\n\n  return scale;\n}", "import { toString } from '@visx/scale';\n\n/**\n * Returns a tick position for the given tick value\n */\nexport default function getTickFormatter(scale) {\n  // Broaden type before using 'xxx' in s as typeguard.\n  var s = scale; // For point or band scales,\n  // have to add offset to make the tick centered.\n\n  if ('tickFormat' in s) {\n    return s.tickFormat();\n  }\n\n  return toString;\n}", "function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar Point = /*#__PURE__*/function () {\n  function Point(_ref) {\n    var _ref$x = _ref.x,\n        x = _ref$x === void 0 ? 0 : _ref$x,\n        _ref$y = _ref.y,\n        y = _ref$y === void 0 ? 0 : _ref$y;\n\n    _defineProperty(this, \"x\", 0);\n\n    _defineProperty(this, \"y\", 0);\n\n    this.x = x;\n    this.y = y;\n  }\n\n  var _proto = Point.prototype;\n\n  _proto.value = function value() {\n    return {\n      x: this.x,\n      y: this.y\n    };\n  };\n\n  _proto.toArray = function toArray() {\n    return [this.x, this.y];\n  };\n\n  return Point;\n}();\n\nexport { Point as default };", "import { Point } from '@visx/point';\nexport default function createPoint(_ref, horizontal) {\n  var x = _ref.x,\n      y = _ref.y;\n  return new Point(horizontal ? {\n    x: x,\n    y: y\n  } : {\n    x: y,\n    y: x\n  });\n}", "export function isElement(elem) {\n  return !!elem && elem instanceof Element;\n} // functional definition of isSVGElement. Note that SVGSVGElements are HTMLElements\n\nexport function isSVGElement(elem) {\n  return !!elem && (elem instanceof SVGElement || 'ownerSVGElement' in elem);\n} // functional definition of SVGGElement\n\nexport function isSVGSVGElement(elem) {\n  return !!elem && 'createSVGPoint' in elem;\n}\nexport function isSVGGraphicsElement(elem) {\n  return !!elem && 'getScreenCTM' in elem;\n} // functional definition of TouchEvent\n\nexport function isTouchEvent(event) {\n  return !!event && 'changedTouches' in event;\n} // functional definition of MouseEvent\n\nexport function isMouseEvent(event) {\n  return !!event && 'clientX' in event;\n} // functional definition of event\n\nexport function isEvent(event) {\n  return !!event && (event instanceof Event || 'nativeEvent' in event && event.nativeEvent instanceof Event);\n}", "function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { isMouseEvent, isTouchEvent } from './typeGuards';\nvar DEFAULT_POINT = {\n  x: 0,\n  y: 0\n};\nexport default function getXAndYFromEvent(event) {\n  if (!event) return _extends({}, DEFAULT_POINT);\n\n  if (isTouchEvent(event)) {\n    return event.changedTouches.length > 0 ? {\n      x: event.changedTouches[0].clientX,\n      y: event.changedTouches[0].clientY\n    } : _extends({}, DEFAULT_POINT);\n  }\n\n  if (isMouseEvent(event)) {\n    return {\n      x: event.clientX,\n      y: event.clientY\n    };\n  } // for focus events try to extract the center position of the target element\n\n\n  var target = event == null ? void 0 : event.target;\n  var boundingClientRect = target && 'getBoundingClientRect' in target ? target.getBoundingClientRect() : null;\n  if (!boundingClientRect) return _extends({}, DEFAULT_POINT);\n  return {\n    x: boundingClientRect.x + boundingClientRect.width / 2,\n    y: boundingClientRect.y + boundingClientRect.height / 2\n  };\n}", "import { Point } from '@visx/point';\nimport { isSVGElement, isSVGGraphicsElement, isSVGSVGElement } from './typeGuards';\nimport getXAndYFromEvent from './getXAndYFromEvent';\nexport default function localPoint(node, event) {\n  if (!node || !event) return null;\n  var coords = getXAndYFromEvent(event); // find top-most SVG\n\n  var svg = isSVGElement(node) ? node.ownerSVGElement : node;\n  var screenCTM = isSVGGraphicsElement(svg) ? svg.getScreenCTM() : null;\n\n  if (isSVGSVGElement(svg) && screenCTM) {\n    var point = svg.createSVGPoint();\n    point.x = coords.x;\n    point.y = coords.y;\n    point = point.matrixTransform(screenCTM.inverse());\n    return new Point({\n      x: point.x,\n      y: point.y\n    });\n  } // fall back to bounding box\n\n\n  var rect = node.getBoundingClientRect();\n  return new Point({\n    x: coords.x - rect.left - node.clientLeft,\n    y: coords.y - rect.top - node.clientTop\n  });\n}", "import localPointGeneric from './localPointGeneric';\nimport { isElement, isEvent } from './typeGuards';\n/** Handles two signatures for backwards compatibility. */\n\nexport default function localPoint(nodeOrEvent, maybeEvent) {\n  // localPoint(node, event)\n  if (isElement(nodeOrEvent) && maybeEvent) {\n    return localPointGeneric(nodeOrEvent, maybeEvent);\n  } // localPoint(event)\n\n\n  if (isEvent(nodeOrEvent)) {\n    var event = nodeOrEvent;\n    var node = event.target;\n    if (node) return localPointGeneric(node, event);\n  }\n\n  return null;\n}", "import _pt from \"prop-types\";\nvar _excluded = [\"children\", \"id\", \"from\", \"to\", \"x1\", \"y1\", \"x2\", \"y2\", \"fromOffset\", \"fromOpacity\", \"toOffset\", \"toOpacity\", \"rotate\", \"transform\", \"vertical\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nexport default function LinearGradient(_ref) {\n  var children = _ref.children,\n      id = _ref.id,\n      from = _ref.from,\n      to = _ref.to,\n      _x1 = _ref.x1,\n      _y1 = _ref.y1,\n      _x2 = _ref.x2,\n      _y2 = _ref.y2,\n      _ref$fromOffset = _ref.fromOffset,\n      fromOffset = _ref$fromOffset === void 0 ? '0%' : _ref$fromOffset,\n      _ref$fromOpacity = _ref.fromOpacity,\n      fromOpacity = _ref$fromOpacity === void 0 ? 1 : _ref$fromOpacity,\n      _ref$toOffset = _ref.toOffset,\n      toOffset = _ref$toOffset === void 0 ? '100%' : _ref$toOffset,\n      _ref$toOpacity = _ref.toOpacity,\n      toOpacity = _ref$toOpacity === void 0 ? 1 : _ref$toOpacity,\n      rotate = _ref.rotate,\n      transform = _ref.transform,\n      _ref$vertical = _ref.vertical,\n      vertical = _ref$vertical === void 0 ? true : _ref$vertical,\n      restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n  var x1 = _x1;\n  var x2 = _x2;\n  var y1 = _y1;\n  var y2 = _y2;\n\n  if (vertical && !x1 && !x2 && !y1 && !y2) {\n    x1 = '0';\n    x2 = '0';\n    y1 = '0';\n    y2 = '1';\n  }\n\n  return /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", _extends({\n    id: id,\n    x1: x1,\n    y1: y1,\n    x2: x2,\n    y2: y2,\n    gradientTransform: rotate ? \"rotate(\" + rotate + \")\" : transform\n  }, restProps), !!children && children, !children && /*#__PURE__*/React.createElement(\"stop\", {\n    offset: fromOffset,\n    stopColor: from,\n    stopOpacity: fromOpacity\n  }), !children && /*#__PURE__*/React.createElement(\"stop\", {\n    offset: toOffset,\n    stopColor: to,\n    stopOpacity: toOpacity\n  })));\n}\nLinearGradient.propTypes = {\n  id: _pt.string.isRequired,\n  from: _pt.string,\n  to: _pt.string,\n  x1: _pt.oneOfType([_pt.string, _pt.number]),\n  x2: _pt.oneOfType([_pt.string, _pt.number]),\n  y1: _pt.oneOfType([_pt.string, _pt.number]),\n  y2: _pt.oneOfType([_pt.string, _pt.number]),\n  fromOffset: _pt.oneOfType([_pt.string, _pt.number]),\n  fromOpacity: _pt.oneOfType([_pt.string, _pt.number]),\n  toOffset: _pt.oneOfType([_pt.string, _pt.number]),\n  toOpacity: _pt.oneOfType([_pt.string, _pt.number]),\n  rotate: _pt.oneOfType([_pt.string, _pt.number]),\n  transform: _pt.string,\n  children: _pt.node,\n  vertical: _pt.bool\n};", "var _excluded = [\"tooltipOpen\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport { useState, useCallback } from 'react';\nexport default function useTooltip( /** Optional initial TooltipState. */\ninitialTooltipState) {\n  var _useState = useState(_extends({\n      tooltipOpen: false\n    }, initialTooltipState)),\n    tooltipState = _useState[0],\n    setTooltipState = _useState[1];\n  var showTooltip = useCallback(function (showArgs) {\n    return setTooltipState(typeof showArgs === 'function' ? function (_ref) {\n      var tooltipOpen = _ref.tooltipOpen,\n        show = _objectWithoutPropertiesLoose(_ref, _excluded);\n      return _extends({}, showArgs(show), {\n        tooltipOpen: true\n      });\n    } : {\n      tooltipOpen: true,\n      tooltipLeft: showArgs.tooltipLeft,\n      tooltipTop: showArgs.tooltipTop,\n      tooltipData: showArgs.tooltipData\n    });\n  }, [setTooltipState]);\n  var hideTooltip = useCallback(function () {\n    return setTooltipState({\n      tooltipOpen: false,\n      tooltipLeft: undefined,\n      tooltipTop: undefined,\n      tooltipData: undefined\n    });\n  }, [setTooltipState]);\n  return {\n    tooltipOpen: tooltipState.tooltipOpen,\n    tooltipLeft: tooltipState.tooltipLeft,\n    tooltipTop: tooltipState.tooltipTop,\n    tooltipData: tooltipState.tooltipData,\n    updateTooltip: setTooltipState,\n    showTooltip: showTooltip,\n    hideTooltip: hideTooltip\n  };\n}", "import _pt from \"prop-types\";\nvar _excluded = [\"className\", \"top\", \"left\", \"offsetLeft\", \"offsetTop\", \"style\", \"children\", \"unstyled\", \"applyPositionStyle\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport cx from 'classnames';\nexport var defaultStyles = {\n  position: 'absolute',\n  backgroundColor: 'white',\n  color: '#666666',\n  padding: '.3rem .5rem',\n  borderRadius: '3px',\n  fontSize: '14px',\n  boxShadow: '0 1px 2px rgba(33,33,33,0.2)',\n  lineHeight: '1em',\n  pointerEvents: 'none'\n};\nvar Tooltip = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n  var className = _ref.className,\n    top = _ref.top,\n    left = _ref.left,\n    _ref$offsetLeft = _ref.offsetLeft,\n    offsetLeft = _ref$offsetLeft === void 0 ? 10 : _ref$offsetLeft,\n    _ref$offsetTop = _ref.offsetTop,\n    offsetTop = _ref$offsetTop === void 0 ? 10 : _ref$offsetTop,\n    _ref$style = _ref.style,\n    style = _ref$style === void 0 ? defaultStyles : _ref$style,\n    children = _ref.children,\n    _ref$unstyled = _ref.unstyled,\n    unstyled = _ref$unstyled === void 0 ? false : _ref$unstyled,\n    _ref$applyPositionSty = _ref.applyPositionStyle,\n    applyPositionStyle = _ref$applyPositionSty === void 0 ? false : _ref$applyPositionSty,\n    restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n  return /*#__PURE__*/React.createElement(\"div\", _extends({\n    ref: ref,\n    className: cx('visx-tooltip', className),\n    style: _extends({\n      top: top == null || offsetTop == null ? top : top + offsetTop,\n      left: left == null || offsetLeft == null ? left : left + offsetLeft\n    }, applyPositionStyle && {\n      position: 'absolute'\n    }, !unstyled && style)\n  }, restProps), children);\n});\nTooltip.propTypes = {\n  children: _pt.node,\n  className: _pt.string,\n  left: _pt.number,\n  offsetLeft: _pt.number,\n  offsetTop: _pt.number,\n  top: _pt.number,\n  applyPositionStyle: _pt.bool,\n  unstyled: _pt.bool\n};\nTooltip.displayName = 'Tooltip';\nexport default Tooltip;", "import _pt from \"prop-types\";\nvar _excluded = [\"children\", \"getRects\", \"left\", \"offsetLeft\", \"offsetTop\", \"parentRect\", \"rect\", \"style\", \"top\", \"unstyled\", \"nodeRef\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport { withBoundingRects } from '@visx/bounds';\nimport Tooltip, { defaultStyles } from './Tooltip';\nimport { TooltipPositionProvider } from '../context/TooltipPositionContext';\nfunction TooltipWithBounds(_ref) {\n  var children = _ref.children,\n    getRects = _ref.getRects,\n    _ref$left = _ref.left,\n    initialLeft = _ref$left === void 0 ? 0 : _ref$left,\n    _ref$offsetLeft = _ref.offsetLeft,\n    offsetLeft = _ref$offsetLeft === void 0 ? 10 : _ref$offsetLeft,\n    _ref$offsetTop = _ref.offsetTop,\n    offsetTop = _ref$offsetTop === void 0 ? 10 : _ref$offsetTop,\n    parentBounds = _ref.parentRect,\n    ownBounds = _ref.rect,\n    _ref$style = _ref.style,\n    style = _ref$style === void 0 ? defaultStyles : _ref$style,\n    _ref$top = _ref.top,\n    initialTop = _ref$top === void 0 ? 0 : _ref$top,\n    _ref$unstyled = _ref.unstyled,\n    unstyled = _ref$unstyled === void 0 ? false : _ref$unstyled,\n    nodeRef = _ref.nodeRef,\n    otherProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n  var transform;\n  var placeTooltipLeft = false;\n  var placeTooltipUp = false;\n  if (ownBounds && parentBounds) {\n    var left = initialLeft;\n    var top = initialTop;\n    if (parentBounds.width) {\n      var rightPlacementClippedPx = left + offsetLeft + ownBounds.width - parentBounds.width;\n      var leftPlacementClippedPx = ownBounds.width - left - offsetLeft;\n      placeTooltipLeft = rightPlacementClippedPx > 0 && rightPlacementClippedPx > leftPlacementClippedPx;\n    } else {\n      var _rightPlacementClippedPx = left + offsetLeft + ownBounds.width - window.innerWidth;\n      var _leftPlacementClippedPx = ownBounds.width - left - offsetLeft;\n      placeTooltipLeft = _rightPlacementClippedPx > 0 && _rightPlacementClippedPx > _leftPlacementClippedPx;\n    }\n    if (parentBounds.height) {\n      var bottomPlacementClippedPx = top + offsetTop + ownBounds.height - parentBounds.height;\n      var topPlacementClippedPx = ownBounds.height - top - offsetTop;\n      placeTooltipUp = bottomPlacementClippedPx > 0 && bottomPlacementClippedPx > topPlacementClippedPx;\n    } else {\n      placeTooltipUp = top + offsetTop + ownBounds.height > window.innerHeight;\n    }\n    left = placeTooltipLeft ? left - ownBounds.width - offsetLeft : left + offsetLeft;\n    top = placeTooltipUp ? top - ownBounds.height - offsetTop : top + offsetTop;\n    left = Math.round(left);\n    top = Math.round(top);\n    transform = \"translate(\" + left + \"px, \" + top + \"px)\";\n  }\n  return /*#__PURE__*/React.createElement(Tooltip, _extends({\n    ref: nodeRef,\n    style: _extends({\n      left: 0,\n      top: 0,\n      transform: transform\n    }, !unstyled && style)\n  }, otherProps), /*#__PURE__*/React.createElement(TooltipPositionProvider, {\n    value: {\n      isFlippedVertically: !placeTooltipUp,\n      isFlippedHorizontally: !placeTooltipLeft\n    }\n  }, children));\n}\nTooltipWithBounds.propTypes = {\n  nodeRef: _pt.oneOfType([_pt.string, _pt.func, _pt.object])\n};\nexport default withBoundingRects(TooltipWithBounds);", "import { createContext, useContext } from 'react';\nvar TooltipPositionContext = /*#__PURE__*/createContext({\n  isFlippedVertically: false,\n  isFlippedHorizontally: false\n});\nexport var TooltipPositionProvider = TooltipPositionContext.Provider;\nexport var TooltipPositionConsumer = TooltipPositionContext.Consumer;\nexport var useTooltipPosition = function useTooltipPosition() {\n  return useContext(TooltipPositionContext);\n};", "export function ChartFade({ id }: { id: string }) {\n\treturn (\n\t\t<>\n\t\t\t{/* Use #ffffff as the stopcolor, as that defines transparency */}\n\t\t\t<linearGradient id={`${id}-gradient`} x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n\t\t\t\t<stop offset=\"0%\" stopColor=\"#ffffff\" stopOpacity=\"0.15\" />\n\t\t\t\t<stop offset=\"15%\" stopColor=\"#ffffff\" stopOpacity=\"1\" />\n\t\t\t\t<stop offset=\"95%\" stopColor=\"#ffffff\" stopOpacity=\"1\" />\n\t\t\t\t<stop offset=\"100%\" stopColor=\"#ffffff\" stopOpacity=\"0.5\" />\n\t\t\t</linearGradient>\n\n\t\t\t<mask id={id}>\n\t\t\t\t<rect width=\"100%\" height=\"100%\" fill={`url(#${id}-gradient)`} />\n\t\t\t</mask>\n\t\t</>\n\t)\n}\n", "import \"ChartTooltip.styles_oiwlsy.wyw.css\"; export const tooltip = \"tooltip_tz1p33n\";\nexport const border = \"border_b160613u\";\nexport const content = \"content_chthpla\";\nexport const header = \"header_hv35h7o\";\nexport const date = \"date_dqsgi5v\";\nexport const meta = \"meta_ml9w4m1\";\nexport const itemLabel = \"itemLabel_i1am9uyl\";\nexport const itemValue = \"itemValue_iem22yb\";\nexport const footer = \"footer_f1ikc8ri\";", "import { Stack } from \"@framerjs/fresco\"\nimport { cx } from \"@linaria/core\"\nimport { TooltipWithBounds } from \"@visx/tooltip\"\nimport { format } from \"date-fns\"\nimport type React from \"react\"\nimport * as styles from \"./ChartTooltip.styles.ts\"\n\nexport interface TooltipItem {\n\tindicatorColor?: string\n\tlabel: React.ReactNode\n\tvalue: string\n\tadditionalInfo?: string\n}\n\ninterface Footer {\n\tlabel: string\n\tvalue: string\n}\n\ninterface ChartTooltipProps {\n\ttop: number\n\tleft: number\n\tisHourlyData: boolean\n\tdate: Date\n\titems: TooltipItem[]\n\tfooter?: Footer\n\tclassName?: string\n\tmeta?: string\n}\n\nexport function ChartTooltip({ top, left, isHourlyData, date, items, footer, className, meta }: ChartTooltipProps) {\n\treturn (\n\t\t<TooltipWithBounds key={Math.random()} top={top} left={left} className={styles.tooltip} unstyled>\n\t\t\t<div className={styles.border}>\n\t\t\t\t<Stack className={cx(styles.content, className)} gap={10}>\n\t\t\t\t\t<Stack className={styles.header} direction=\"row\" alignItems=\"center\" justifyContent=\"space-between\" gap={10}>\n\t\t\t\t\t\t<span className={styles.date}>\n\t\t\t\t\t\t\t{isHourlyData ? format(date, \"MMMM d, yyyy \u00B7 h:mm a\") : format(date, \"MMM d, yyyy\")}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t{meta && <span className={styles.meta}>{meta}</span>}\n\t\t\t\t\t</Stack>\n\t\t\t\t\t{items.map((item, i) => (\n\t\t\t\t\t\t<Stack\n\t\t\t\t\t\t\t// biome-ignore lint/suspicious/noArrayIndexKey: we don't have IDs here\n\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\tdirection=\"row\"\n\t\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t\t\tjustifyContent=\"space-between\"\n\t\t\t\t\t\t\tgap={10}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{item.indicatorColor && <LegendBox fill={item.indicatorColor} />}\n\t\t\t\t\t\t\t<span className={styles.itemLabel}>{item.label}</span>\n\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t{item.additionalInfo && `${item.additionalInfo} \u00B7 `}\n\t\t\t\t\t\t\t\t<span className={styles.itemValue}>{item.value}</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</Stack>\n\t\t\t\t\t))}\n\t\t\t\t\t{footer && (\n\t\t\t\t\t\t<Stack\n\t\t\t\t\t\t\tclassName={styles.footer}\n\t\t\t\t\t\t\tdirection=\"row\"\n\t\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t\t\tjustifyContent=\"space-between\"\n\t\t\t\t\t\t\tgap={10}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span className={styles.itemLabel}>{footer.label}</span>\n\t\t\t\t\t\t\t<span className={styles.itemValue}>{footer.value}</span>\n\t\t\t\t\t\t</Stack>\n\t\t\t\t\t)}\n\t\t\t\t</Stack>\n\t\t\t</div>\n\t\t</TooltipWithBounds>\n\t)\n}\n\nfunction LegendBox({ fill }: { fill: string }) {\n\treturn (\n\t\t<svg viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\" width=\"8px\">\n\t\t\t<rect width=\"100\" height=\"100\" rx=\"100\" fill={fill} />\n\t\t</svg>\n\t)\n}\n", "import { curveCardinal } from \"@visx/curve\"\nimport { clamp } from \"library/utils/math.ts\"\n\n// from https://github.com/d3/d3-array/blob/main/src/ascending.js\nfunction ascending(a: number, b: number): number {\n\treturn a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN\n}\n\n// adapted from https://github.com/d3/d3-array/blob/main/src/ascending.js\nexport function bisector<T, U>(f: (a: T, b?: U) => U) {\n\tconst compare = (d: T, x: U) => ascending(Number(f(d)), Number(x))\n\n\tfunction left(a: ArrayLike<T>, x: U, lo = 0, hi = a.length) {\n\t\tif (lo < hi) {\n\t\t\tif (ascending(Number(x), Number(x)) !== 0) return hi\n\t\t\tdo {\n\t\t\t\tconst mid = (lo + hi) >>> 1\n\t\t\t\tif (compare(a[mid]!, x) < 0) lo = mid + 1\n\t\t\t\telse hi = mid\n\t\t\t} while (lo < hi)\n\t\t}\n\t\treturn lo\n\t}\n\n\treturn { left }\n}\n\nexport const TOOLTIP_DOT_RADIUS = 3.5\nexport function getTooltipLeft(left: number, leftMargin: number, chartWidth: number) {\n\treturn clamp(left - leftMargin, TOOLTIP_DOT_RADIUS, chartWidth - TOOLTIP_DOT_RADIUS)\n}\n\n/**\n * Chart curve presets using cardinal curves with different tension values.\n * Higher tension (closer to 1) = straighter lines\n * Lower tension (closer to 0) = smoother curves\n */\nexport const ChartCurves = {\n\t/** Straight lines with minimal smoothing (tension: 1) */\n\tSharp: curveCardinal.tension(1),\n\t/** Smooth curve with moderate tension (tension: 0.75) */\n\tSmooth: curveCardinal.tension(0.75),\n} as const\n"],
  "mappings": "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",
  "names": ["require_balanced_match", "string", "x", "x", "y", "reduceCSSCalc", "unit", "Map", "Map", "map", "memoize", "React", "cx", "_pt", "x", "x", "format", "y", "x", "y", "x", "t1", "t2", "t3", "x", "y", "y", "y", "color", "rgb", "x", "x", "number_default", "number_default", "i", "number_default", "x", "x", "x", "i", "clamp", "y", "number_default", "x", "x", "x", "x", "x", "x", "locale", "zero", "format", "formatPrefix", "value", "format", "format", "linear", "t0", "t1", "date", "date", "date", "date", "date", "date", "date", "date", "date", "date", "date", "date", "date", "date", "date", "year", "month", "day", "hour", "minute", "ticks", "step", "date", "y", "locale", "formats", "pad", "format", "day", "locale", "defaultLocale", "number", "year", "month", "day", "hour", "minute", "second", "format", "formatYear", "tickFormat", "date", "y", "basis", "t1", "t2", "t3", "basis_default", "basisClosed_default", "basis", "constant_default", "x", "linear", "exponential", "y", "constant_default", "gamma", "nogamma", "rgb_default", "rgbGamma", "y", "color", "gamma", "rgb", "nogamma", "rgbSpline", "rgbBasis", "basis_default", "rgbBasisClosed", "basisClosed_default", "round_default", "hsl", "hue", "nogamma", "lab", "nogamma", "hcl", "hue", "nogamma", "cubehelix", "hue", "y", "nogamma", "lab", "rgb_default", "gamma", "nice", "round_default", "linear", "x", "import_react", "import_classnames", "x", "y", "constant_default", "x", "x", "y", "x", "y", "constant_default", "line", "constant_default", "area", "x", "y", "tension", "x", "y", "path", "_excluded", "_extends", "_objectWithoutPropertiesLoose", "x", "y", "path", "React", "cx", "import_react", "import_classnames", "_excluded", "_extends", "_objectWithoutPropertiesLoose", "x", "y", "path", "React", "cx", "import_react", "import_classnames", "_excluded", "_extends", "_objectWithoutPropertiesLoose", "React", "cx", "import_react", "import_classnames", "_excluded", "_extends", "_objectWithoutPropertiesLoose", "React", "cx", "import_react", "import_classnames", "import_react", "import_classnames", "import_react", "import_classnames", "import_react", "import_react", "memoize", "_excluded", "_objectWithoutPropertiesLoose", "x", "y", "reduceCSSCalc", "_excluded", "_extends", "_objectWithoutPropertiesLoose", "x", "React", "line", "x", "y", "import_react", "import_classnames", "_extends", "React", "cx", "import_react", "import_classnames", "_excluded", "_extends", "_objectWithoutPropertiesLoose", "bottomTickLabelProps", "React", "cx", "_extends", "React", "cx", "Point", "x", "y", "x", "y", "_excluded", "_extends", "_objectWithoutPropertiesLoose", "tickFormat", "format", "React", "cx", "_excluded", "_extends", "_objectWithoutPropertiesLoose", "leftTickLabelProps", "React", "cx", "_extends", "point", "localPoint", "import_prop_types", "import_react", "_excluded", "_extends", "_objectWithoutPropertiesLoose", "React", "_pt", "import_react", "_excluded", "_objectWithoutPropertiesLoose", "_extends", "import_prop_types", "import_react", "import_classnames", "_excluded", "_extends", "_objectWithoutPropertiesLoose", "React", "cx", "_pt", "import_prop_types", "import_react", "import_react", "_excluded", "_extends", "_objectWithoutPropertiesLoose", "React", "_pt", "date", "import_jsx_runtime", "date", "footer", "meta", "x"]
}
