{"version":3,"file":"dist/974.js","mappings":"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","sources":["webpack://vaneckweb/./node_modules/d3-selection/src/select.js","webpack://vaneckweb/./node_modules/d3-selection/src/selector.js","webpack://vaneckweb/./node_modules/d3-selection/src/selectorAll.js","webpack://vaneckweb/./node_modules/d3-dispatch/src/dispatch.js","webpack://vaneckweb/./node_modules/d3-timer/src/timer.js","webpack://vaneckweb/./node_modules/d3-timer/src/timeout.js","webpack://vaneckweb/./node_modules/d3-transition/src/transition/schedule.js","webpack://vaneckweb/./node_modules/d3-interpolate/src/transform/parse.js","webpack://vaneckweb/./node_modules/d3-interpolate/src/transform/decompose.js","webpack://vaneckweb/./node_modules/d3-interpolate/src/transform/index.js","webpack://vaneckweb/./node_modules/d3-transition/src/transition/tween.js","webpack://vaneckweb/./node_modules/d3-transition/src/transition/interpolate.js","webpack://vaneckweb/./node_modules/d3-transition/src/transition/attr.js","webpack://vaneckweb/./node_modules/d3-transition/src/transition/attrTween.js","webpack://vaneckweb/./node_modules/d3-transition/src/transition/delay.js","webpack://vaneckweb/./node_modules/d3-transition/src/transition/duration.js","webpack://vaneckweb/./node_modules/d3-transition/src/transition/selection.js","webpack://vaneckweb/./node_modules/d3-transition/src/transition/style.js","webpack://vaneckweb/./node_modules/d3-transition/src/transition/index.js","webpack://vaneckweb/./node_modules/d3-transition/src/transition/select.js","webpack://vaneckweb/./node_modules/d3-transition/src/transition/selectAll.js","webpack://vaneckweb/./node_modules/d3-transition/src/transition/filter.js","webpack://vaneckweb/./node_modules/d3-transition/src/transition/merge.js","webpack://vaneckweb/./node_modules/d3-transition/src/transition/transition.js","webpack://vaneckweb/./node_modules/d3-transition/src/transition/on.js","webpack://vaneckweb/./node_modules/d3-transition/src/transition/styleTween.js","webpack://vaneckweb/./node_modules/d3-transition/src/transition/text.js","webpack://vaneckweb/./node_modules/d3-transition/src/transition/textTween.js","webpack://vaneckweb/./node_modules/d3-transition/src/transition/remove.js","webpack://vaneckweb/./node_modules/d3-transition/src/transition/ease.js","webpack://vaneckweb/./node_modules/d3-transition/src/transition/easeVarying.js","webpack://vaneckweb/./node_modules/d3-transition/src/transition/end.js","webpack://vaneckweb/./node_modules/d3-transition/src/selection/transition.js","webpack://vaneckweb/./node_modules/d3-transition/src/selection/index.js","webpack://vaneckweb/./node_modules/d3-transition/src/selection/interrupt.js","webpack://vaneckweb/./node_modules/d3-transition/src/interrupt.js","webpack://vaneckweb/./node_modules/d3-path/src/path.js","webpack://vaneckweb/./node_modules/d3-shape/src/arc.js","webpack://vaneckweb/./node_modules/d3-shape/src/path.js","webpack://vaneckweb/./node_modules/d3-interpolate/src/constant.js","webpack://vaneckweb/./node_modules/d3-interpolate/src/array.js","webpack://vaneckweb/./node_modules/d3-interpolate/src/date.js","webpack://vaneckweb/./node_modules/d3-interpolate/src/object.js","webpack://vaneckweb/./node_modules/d3-interpolate/src/numberArray.js","webpack://vaneckweb/./node_modules/d3-interpolate/src/value.js","webpack://vaneckweb/./node_modules/d3-interpolate/src/basis.js","webpack://vaneckweb/./node_modules/d3-interpolate/src/color.js","webpack://vaneckweb/./node_modules/d3-interpolate/src/rgb.js","webpack://vaneckweb/./node_modules/d3-interpolate/src/basisClosed.js","webpack://vaneckweb/./node_modules/d3-shape/src/array.js","webpack://vaneckweb/./node_modules/d3-shape/src/descending.js","webpack://vaneckweb/./node_modules/d3-shape/src/identity.js","webpack://vaneckweb/./node_modules/d3-shape/src/pie.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/style.js","webpack://vaneckweb/./node_modules/d3-ease/src/cubic.js","webpack://vaneckweb/./node_modules/d3-shape/src/math.js","webpack://vaneckweb/./node_modules/d3-color/src/define.js","webpack://vaneckweb/./node_modules/d3-color/src/color.js","webpack://vaneckweb/./node_modules/d3-selection/src/matcher.js","webpack://vaneckweb/./node_modules/d3-selection/src/window.js","webpack://vaneckweb/./node_modules/d3-selection/src/namespace.js","webpack://vaneckweb/./node_modules/mitt/dist/mitt.mjs","webpack://vaneckweb/./node_modules/d3-interpolate/src/string.js","webpack://vaneckweb/./node_modules/d3-selection/src/namespaces.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/selectChild.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/selectChildren.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/sparse.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/enter.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/data.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/sort.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/attr.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/property.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/classed.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/text.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/html.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/raise.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/lower.js","webpack://vaneckweb/./node_modules/d3-selection/src/creator.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/insert.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/remove.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/clone.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/on.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/dispatch.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/index.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/select.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/selectAll.js","webpack://vaneckweb/./node_modules/d3-selection/src/array.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/filter.js","webpack://vaneckweb/./node_modules/d3-selection/src/constant.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/exit.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/join.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/merge.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/order.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/call.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/nodes.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/node.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/size.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/empty.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/each.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/append.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/datum.js","webpack://vaneckweb/./node_modules/d3-selection/src/selection/iterator.js","webpack://vaneckweb/./node_modules/d3-shape/src/constant.js","webpack://vaneckweb/./node_modules/d3-interpolate/src/number.js"],"sourcesContent":["import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n  return typeof selector === \"string\"\n      ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n      : new Selection([[selector]], root);\n}\n","function none() {}\n\nexport default function(selector) {\n  return selector == null ? none : function() {\n    return this.querySelector(selector);\n  };\n}\n","function empty() {\n  return [];\n}\n\nexport default function(selector) {\n  return selector == null ? empty : function() {\n    return this.querySelectorAll(selector);\n  };\n}\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n  for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n    if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n    _[t] = [];\n  }\n  return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n  this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n  return typenames.trim().split(/^|\\s+/).map(function(t) {\n    var name = \"\", i = t.indexOf(\".\");\n    if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n    if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n    return {type: t, name: name};\n  });\n}\n\nDispatch.prototype = dispatch.prototype = {\n  constructor: Dispatch,\n  on: function(typename, callback) {\n    var _ = this._,\n        T = parseTypenames(typename + \"\", _),\n        t,\n        i = -1,\n        n = T.length;\n\n    // If no callback was specified, return the callback of the given type and name.\n    if (arguments.length < 2) {\n      while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n      return;\n    }\n\n    // If a type was specified, set the callback for the given type and name.\n    // Otherwise, if a null callback was specified, remove callbacks of the given name.\n    if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n    while (++i < n) {\n      if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n      else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n    }\n\n    return this;\n  },\n  copy: function() {\n    var copy = {}, _ = this._;\n    for (var t in _) copy[t] = _[t].slice();\n    return new Dispatch(copy);\n  },\n  call: function(type, that) {\n    if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n    if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n    for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n  },\n  apply: function(type, that, args) {\n    if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n    for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n  }\n};\n\nfunction get(type, name) {\n  for (var i = 0, n = type.length, c; i < n; ++i) {\n    if ((c = type[i]).name === name) {\n      return c.value;\n    }\n  }\n}\n\nfunction set(type, name, callback) {\n  for (var i = 0, n = type.length; i < n; ++i) {\n    if (type[i].name === name) {\n      type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n      break;\n    }\n  }\n  if (callback != null) type.push({name: name, value: callback});\n  return type;\n}\n\nexport default dispatch;\n","var frame = 0, // is an animation frame pending?\n    timeout = 0, // is a timeout pending?\n    interval = 0, // are any timers active?\n    pokeDelay = 1000, // how frequently we check for clock skew\n    taskHead,\n    taskTail,\n    clockLast = 0,\n    clockNow = 0,\n    clockSkew = 0,\n    clock = typeof performance === \"object\" && performance.now ? performance : Date,\n    setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n  return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n  clockNow = 0;\n}\n\nexport function Timer() {\n  this._call =\n  this._time =\n  this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n  constructor: Timer,\n  restart: function(callback, delay, time) {\n    if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n    time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n    if (!this._next && taskTail !== this) {\n      if (taskTail) taskTail._next = this;\n      else taskHead = this;\n      taskTail = this;\n    }\n    this._call = callback;\n    this._time = time;\n    sleep();\n  },\n  stop: function() {\n    if (this._call) {\n      this._call = null;\n      this._time = Infinity;\n      sleep();\n    }\n  }\n};\n\nexport function timer(callback, delay, time) {\n  var t = new Timer;\n  t.restart(callback, delay, time);\n  return t;\n}\n\nexport function timerFlush() {\n  now(); // Get the current time, if not already set.\n  ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n  var t = taskHead, e;\n  while (t) {\n    if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n    t = t._next;\n  }\n  --frame;\n}\n\nfunction wake() {\n  clockNow = (clockLast = clock.now()) + clockSkew;\n  frame = timeout = 0;\n  try {\n    timerFlush();\n  } finally {\n    frame = 0;\n    nap();\n    clockNow = 0;\n  }\n}\n\nfunction poke() {\n  var now = clock.now(), delay = now - clockLast;\n  if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n  var t0, t1 = taskHead, t2, time = Infinity;\n  while (t1) {\n    if (t1._call) {\n      if (time > t1._time) time = t1._time;\n      t0 = t1, t1 = t1._next;\n    } else {\n      t2 = t1._next, t1._next = null;\n      t1 = t0 ? t0._next = t2 : taskHead = t2;\n    }\n  }\n  taskTail = t0;\n  sleep(time);\n}\n\nfunction sleep(time) {\n  if (frame) return; // Soonest alarm already set, or will be.\n  if (timeout) timeout = clearTimeout(timeout);\n  var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n  if (delay > 24) {\n    if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n    if (interval) interval = clearInterval(interval);\n  } else {\n    if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n    frame = 1, setFrame(wake);\n  }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n  var t = new Timer;\n  delay = delay == null ? 0 : +delay;\n  t.restart(elapsed => {\n    t.stop();\n    callback(elapsed + delay);\n  }, delay, time);\n  return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n  var schedules = node.__transition;\n  if (!schedules) node.__transition = {};\n  else if (id in schedules) return;\n  create(node, id, {\n    name: name,\n    index: index, // For context during callback.\n    group: group, // For context during callback.\n    on: emptyOn,\n    tween: emptyTween,\n    time: timing.time,\n    delay: timing.delay,\n    duration: timing.duration,\n    ease: timing.ease,\n    timer: null,\n    state: CREATED\n  });\n}\n\nexport function init(node, id) {\n  var schedule = get(node, id);\n  if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n  return schedule;\n}\n\nexport function set(node, id) {\n  var schedule = get(node, id);\n  if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n  return schedule;\n}\n\nexport function get(node, id) {\n  var schedule = node.__transition;\n  if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n  return schedule;\n}\n\nfunction create(node, id, self) {\n  var schedules = node.__transition,\n      tween;\n\n  // Initialize the self timer when the transition is created.\n  // Note the actual delay is not known until the first callback!\n  schedules[id] = self;\n  self.timer = timer(schedule, 0, self.time);\n\n  function schedule(elapsed) {\n    self.state = SCHEDULED;\n    self.timer.restart(start, self.delay, self.time);\n\n    // If the elapsed delay is less than our first sleep, start immediately.\n    if (self.delay <= elapsed) start(elapsed - self.delay);\n  }\n\n  function start(elapsed) {\n    var i, j, n, o;\n\n    // If the state is not SCHEDULED, then we previously errored on start.\n    if (self.state !== SCHEDULED) return stop();\n\n    for (i in schedules) {\n      o = schedules[i];\n      if (o.name !== self.name) continue;\n\n      // While this element already has a starting transition during this frame,\n      // defer starting an interrupting transition until that transition has a\n      // chance to tick (and possibly end); see d3/d3-transition#54!\n      if (o.state === STARTED) return timeout(start);\n\n      // Interrupt the active transition, if any.\n      if (o.state === RUNNING) {\n        o.state = ENDED;\n        o.timer.stop();\n        o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n        delete schedules[i];\n      }\n\n      // Cancel any pre-empted transitions.\n      else if (+i < id) {\n        o.state = ENDED;\n        o.timer.stop();\n        o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n        delete schedules[i];\n      }\n    }\n\n    // Defer the first tick to end of the current frame; see d3/d3#1576.\n    // Note the transition may be canceled after start and before the first tick!\n    // Note this must be scheduled before the start event; see d3/d3-transition#16!\n    // Assuming this is successful, subsequent callbacks go straight to tick.\n    timeout(function() {\n      if (self.state === STARTED) {\n        self.state = RUNNING;\n        self.timer.restart(tick, self.delay, self.time);\n        tick(elapsed);\n      }\n    });\n\n    // Dispatch the start event.\n    // Note this must be done before the tween are initialized.\n    self.state = STARTING;\n    self.on.call(\"start\", node, node.__data__, self.index, self.group);\n    if (self.state !== STARTING) return; // interrupted\n    self.state = STARTED;\n\n    // Initialize the tween, deleting null tween.\n    tween = new Array(n = self.tween.length);\n    for (i = 0, j = -1; i < n; ++i) {\n      if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n        tween[++j] = o;\n      }\n    }\n    tween.length = j + 1;\n  }\n\n  function tick(elapsed) {\n    var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n        i = -1,\n        n = tween.length;\n\n    while (++i < n) {\n      tween[i].call(node, t);\n    }\n\n    // Dispatch the end event.\n    if (self.state === ENDING) {\n      self.on.call(\"end\", node, node.__data__, self.index, self.group);\n      stop();\n    }\n  }\n\n  function stop() {\n    self.state = ENDED;\n    self.timer.stop();\n    delete schedules[id];\n    for (var i in schedules) return; // eslint-disable-line no-unused-vars\n    delete node.__transition;\n  }\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n  const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n  return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n  if (value == null) return identity;\n  if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n  svgNode.setAttribute(\"transform\", value);\n  if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n  value = value.matrix;\n  return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n  translateX: 0,\n  translateY: 0,\n  rotate: 0,\n  skewX: 0,\n  scaleX: 1,\n  scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n  var scaleX, scaleY, skewX;\n  if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n  if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n  if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n  if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n  return {\n    translateX: e,\n    translateY: f,\n    rotate: Math.atan2(b, a) * degrees,\n    skewX: Math.atan(skewX) * degrees,\n    scaleX: scaleX,\n    scaleY: scaleY\n  };\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n  function pop(s) {\n    return s.length ? s.pop() + \" \" : \"\";\n  }\n\n  function translate(xa, ya, xb, yb, s, q) {\n    if (xa !== xb || ya !== yb) {\n      var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n      q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n    } else if (xb || yb) {\n      s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n    }\n  }\n\n  function rotate(a, b, s, q) {\n    if (a !== b) {\n      if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n      q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n    } else if (b) {\n      s.push(pop(s) + \"rotate(\" + b + degParen);\n    }\n  }\n\n  function skewX(a, b, s, q) {\n    if (a !== b) {\n      q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n    } else if (b) {\n      s.push(pop(s) + \"skewX(\" + b + degParen);\n    }\n  }\n\n  function scale(xa, ya, xb, yb, s, q) {\n    if (xa !== xb || ya !== yb) {\n      var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n      q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n    } else if (xb !== 1 || yb !== 1) {\n      s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n    }\n  }\n\n  return function(a, b) {\n    var s = [], // string constants and placeholders\n        q = []; // number interpolators\n    a = parse(a), b = parse(b);\n    translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n    rotate(a.rotate, b.rotate, s, q);\n    skewX(a.skewX, b.skewX, s, q);\n    scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n    a = b = null; // gc\n    return function(t) {\n      var i = -1, n = q.length, o;\n      while (++i < n) s[(o = q[i]).i] = o.x(t);\n      return s.join(\"\");\n    };\n  };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n  var tween0, tween1;\n  return function() {\n    var schedule = set(this, id),\n        tween = schedule.tween;\n\n    // If this node shared tween with the previous node,\n    // just assign the updated shared tween and we’re done!\n    // Otherwise, copy-on-write.\n    if (tween !== tween0) {\n      tween1 = tween0 = tween;\n      for (var i = 0, n = tween1.length; i < n; ++i) {\n        if (tween1[i].name === name) {\n          tween1 = tween1.slice();\n          tween1.splice(i, 1);\n          break;\n        }\n      }\n    }\n\n    schedule.tween = tween1;\n  };\n}\n\nfunction tweenFunction(id, name, value) {\n  var tween0, tween1;\n  if (typeof value !== \"function\") throw new Error;\n  return function() {\n    var schedule = set(this, id),\n        tween = schedule.tween;\n\n    // If this node shared tween with the previous node,\n    // just assign the updated shared tween and we’re done!\n    // Otherwise, copy-on-write.\n    if (tween !== tween0) {\n      tween1 = (tween0 = tween).slice();\n      for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n        if (tween1[i].name === name) {\n          tween1[i] = t;\n          break;\n        }\n      }\n      if (i === n) tween1.push(t);\n    }\n\n    schedule.tween = tween1;\n  };\n}\n\nexport default function(name, value) {\n  var id = this._id;\n\n  name += \"\";\n\n  if (arguments.length < 2) {\n    var tween = get(this.node(), id).tween;\n    for (var i = 0, n = tween.length, t; i < n; ++i) {\n      if ((t = tween[i]).name === name) {\n        return t.value;\n      }\n    }\n    return null;\n  }\n\n  return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n  var id = transition._id;\n\n  transition.each(function() {\n    var schedule = set(this, id);\n    (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n  });\n\n  return function(node) {\n    return get(node, id).value[name];\n  };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n  var c;\n  return (typeof b === \"number\" ? interpolateNumber\n      : b instanceof color ? interpolateRgb\n      : (c = color(b)) ? (b = c, interpolateRgb)\n      : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n  return function() {\n    this.removeAttribute(name);\n  };\n}\n\nfunction attrRemoveNS(fullname) {\n  return function() {\n    this.removeAttributeNS(fullname.space, fullname.local);\n  };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n  var string00,\n      string1 = value1 + \"\",\n      interpolate0;\n  return function() {\n    var string0 = this.getAttribute(name);\n    return string0 === string1 ? null\n        : string0 === string00 ? interpolate0\n        : interpolate0 = interpolate(string00 = string0, value1);\n  };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n  var string00,\n      string1 = value1 + \"\",\n      interpolate0;\n  return function() {\n    var string0 = this.getAttributeNS(fullname.space, fullname.local);\n    return string0 === string1 ? null\n        : string0 === string00 ? interpolate0\n        : interpolate0 = interpolate(string00 = string0, value1);\n  };\n}\n\nfunction attrFunction(name, interpolate, value) {\n  var string00,\n      string10,\n      interpolate0;\n  return function() {\n    var string0, value1 = value(this), string1;\n    if (value1 == null) return void this.removeAttribute(name);\n    string0 = this.getAttribute(name);\n    string1 = value1 + \"\";\n    return string0 === string1 ? null\n        : string0 === string00 && string1 === string10 ? interpolate0\n        : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n  };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n  var string00,\n      string10,\n      interpolate0;\n  return function() {\n    var string0, value1 = value(this), string1;\n    if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n    string0 = this.getAttributeNS(fullname.space, fullname.local);\n    string1 = value1 + \"\";\n    return string0 === string1 ? null\n        : string0 === string00 && string1 === string10 ? interpolate0\n        : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n  };\n}\n\nexport default function(name, value) {\n  var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n  return this.attrTween(name, typeof value === \"function\"\n      ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n      : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n      : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n  return function(t) {\n    this.setAttribute(name, i.call(this, t));\n  };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n  return function(t) {\n    this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n  };\n}\n\nfunction attrTweenNS(fullname, value) {\n  var t0, i0;\n  function tween() {\n    var i = value.apply(this, arguments);\n    if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n    return t0;\n  }\n  tween._value = value;\n  return tween;\n}\n\nfunction attrTween(name, value) {\n  var t0, i0;\n  function tween() {\n    var i = value.apply(this, arguments);\n    if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n    return t0;\n  }\n  tween._value = value;\n  return tween;\n}\n\nexport default function(name, value) {\n  var key = \"attr.\" + name;\n  if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n  if (value == null) return this.tween(key, null);\n  if (typeof value !== \"function\") throw new Error;\n  var fullname = namespace(name);\n  return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n  return function() {\n    init(this, id).delay = +value.apply(this, arguments);\n  };\n}\n\nfunction delayConstant(id, value) {\n  return value = +value, function() {\n    init(this, id).delay = value;\n  };\n}\n\nexport default function(value) {\n  var id = this._id;\n\n  return arguments.length\n      ? this.each((typeof value === \"function\"\n          ? delayFunction\n          : delayConstant)(id, value))\n      : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n  return function() {\n    set(this, id).duration = +value.apply(this, arguments);\n  };\n}\n\nfunction durationConstant(id, value) {\n  return value = +value, function() {\n    set(this, id).duration = value;\n  };\n}\n\nexport default function(value) {\n  var id = this._id;\n\n  return arguments.length\n      ? this.each((typeof value === \"function\"\n          ? durationFunction\n          : durationConstant)(id, value))\n      : get(this.node(), id).duration;\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n  return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n  var string00,\n      string10,\n      interpolate0;\n  return function() {\n    var string0 = style(this, name),\n        string1 = (this.style.removeProperty(name), style(this, name));\n    return string0 === string1 ? null\n        : string0 === string00 && string1 === string10 ? interpolate0\n        : interpolate0 = interpolate(string00 = string0, string10 = string1);\n  };\n}\n\nfunction styleRemove(name) {\n  return function() {\n    this.style.removeProperty(name);\n  };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n  var string00,\n      string1 = value1 + \"\",\n      interpolate0;\n  return function() {\n    var string0 = style(this, name);\n    return string0 === string1 ? null\n        : string0 === string00 ? interpolate0\n        : interpolate0 = interpolate(string00 = string0, value1);\n  };\n}\n\nfunction styleFunction(name, interpolate, value) {\n  var string00,\n      string10,\n      interpolate0;\n  return function() {\n    var string0 = style(this, name),\n        value1 = value(this),\n        string1 = value1 + \"\";\n    if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n    return string0 === string1 ? null\n        : string0 === string00 && string1 === string10 ? interpolate0\n        : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n  };\n}\n\nfunction styleMaybeRemove(id, name) {\n  var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n  return function() {\n    var schedule = set(this, id),\n        on = schedule.on,\n        listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n    // If this node shared a dispatch with the previous node,\n    // just assign the updated shared dispatch and we’re done!\n    // Otherwise, copy-on-write.\n    if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n    schedule.on = on1;\n  };\n}\n\nexport default function(name, value, priority) {\n  var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n  return value == null ? this\n      .styleTween(name, styleNull(name, i))\n      .on(\"end.style.\" + name, styleRemove(name))\n    : typeof value === \"function\" ? this\n      .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n      .each(styleMaybeRemove(this._id, name))\n    : this\n      .styleTween(name, styleConstant(name, i, value), priority)\n      .on(\"end.style.\" + name, null);\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n  this._groups = groups;\n  this._parents = parents;\n  this._name = name;\n  this._id = id;\n}\n\nexport default function transition(name) {\n  return selection().transition(name);\n}\n\nexport function newId() {\n  return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n  constructor: Transition,\n  select: transition_select,\n  selectAll: transition_selectAll,\n  selectChild: selection_prototype.selectChild,\n  selectChildren: selection_prototype.selectChildren,\n  filter: transition_filter,\n  merge: transition_merge,\n  selection: transition_selection,\n  transition: transition_transition,\n  call: selection_prototype.call,\n  nodes: selection_prototype.nodes,\n  node: selection_prototype.node,\n  size: selection_prototype.size,\n  empty: selection_prototype.empty,\n  each: selection_prototype.each,\n  on: transition_on,\n  attr: transition_attr,\n  attrTween: transition_attrTween,\n  style: transition_style,\n  styleTween: transition_styleTween,\n  text: transition_text,\n  textTween: transition_textTween,\n  remove: transition_remove,\n  tween: transition_tween,\n  delay: transition_delay,\n  duration: transition_duration,\n  ease: transition_ease,\n  easeVarying: transition_easeVarying,\n  end: transition_end,\n  [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n  var name = this._name,\n      id = this._id;\n\n  if (typeof select !== \"function\") select = selector(select);\n\n  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n      if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n        if (\"__data__\" in node) subnode.__data__ = node.__data__;\n        subgroup[i] = subnode;\n        schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n      }\n    }\n  }\n\n  return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n  var name = this._name,\n      id = this._id;\n\n  if (typeof select !== \"function\") select = selectorAll(select);\n\n  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n      if (node = group[i]) {\n        for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n          if (child = children[k]) {\n            schedule(child, name, id, k, children, inherit);\n          }\n        }\n        subgroups.push(children);\n        parents.push(node);\n      }\n    }\n  }\n\n  return new Transition(subgroups, parents, name, id);\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n  if (typeof match !== \"function\") match = matcher(match);\n\n  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n      if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n        subgroup.push(node);\n      }\n    }\n  }\n\n  return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n  if (transition._id !== this._id) throw new Error;\n\n  for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n    for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n      if (node = group0[i] || group1[i]) {\n        merge[i] = node;\n      }\n    }\n  }\n\n  for (; j < m0; ++j) {\n    merges[j] = groups0[j];\n  }\n\n  return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n  var name = this._name,\n      id0 = this._id,\n      id1 = newId();\n\n  for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n      if (node = group[i]) {\n        var inherit = get(node, id0);\n        schedule(node, name, id1, i, group, {\n          time: inherit.time + inherit.delay + inherit.duration,\n          delay: 0,\n          duration: inherit.duration,\n          ease: inherit.ease\n        });\n      }\n    }\n  }\n\n  return new Transition(groups, this._parents, name, id1);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n  return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n    var i = t.indexOf(\".\");\n    if (i >= 0) t = t.slice(0, i);\n    return !t || t === \"start\";\n  });\n}\n\nfunction onFunction(id, name, listener) {\n  var on0, on1, sit = start(name) ? init : set;\n  return function() {\n    var schedule = sit(this, id),\n        on = schedule.on;\n\n    // If this node shared a dispatch with the previous node,\n    // just assign the updated shared dispatch and we’re done!\n    // Otherwise, copy-on-write.\n    if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n    schedule.on = on1;\n  };\n}\n\nexport default function(name, listener) {\n  var id = this._id;\n\n  return arguments.length < 2\n      ? get(this.node(), id).on.on(name)\n      : this.each(onFunction(id, name, listener));\n}\n","function styleInterpolate(name, i, priority) {\n  return function(t) {\n    this.style.setProperty(name, i.call(this, t), priority);\n  };\n}\n\nfunction styleTween(name, value, priority) {\n  var t, i0;\n  function tween() {\n    var i = value.apply(this, arguments);\n    if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n    return t;\n  }\n  tween._value = value;\n  return tween;\n}\n\nexport default function(name, value, priority) {\n  var key = \"style.\" + (name += \"\");\n  if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n  if (value == null) return this.tween(key, null);\n  if (typeof value !== \"function\") throw new Error;\n  return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n  return function() {\n    this.textContent = value;\n  };\n}\n\nfunction textFunction(value) {\n  return function() {\n    var value1 = value(this);\n    this.textContent = value1 == null ? \"\" : value1;\n  };\n}\n\nexport default function(value) {\n  return this.tween(\"text\", typeof value === \"function\"\n      ? textFunction(tweenValue(this, \"text\", value))\n      : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n  return function(t) {\n    this.textContent = i.call(this, t);\n  };\n}\n\nfunction textTween(value) {\n  var t0, i0;\n  function tween() {\n    var i = value.apply(this, arguments);\n    if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n    return t0;\n  }\n  tween._value = value;\n  return tween;\n}\n\nexport default function(value) {\n  var key = \"text\";\n  if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n  if (value == null) return this.tween(key, null);\n  if (typeof value !== \"function\") throw new Error;\n  return this.tween(key, textTween(value));\n}\n","function removeFunction(id) {\n  return function() {\n    var parent = this.parentNode;\n    for (var i in this.__transition) if (+i !== id) return;\n    if (parent) parent.removeChild(this);\n  };\n}\n\nexport default function() {\n  return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n  if (typeof value !== \"function\") throw new Error;\n  return function() {\n    set(this, id).ease = value;\n  };\n}\n\nexport default function(value) {\n  var id = this._id;\n\n  return arguments.length\n      ? this.each(easeConstant(id, value))\n      : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    if (typeof v !== \"function\") throw new Error;\n    set(this, id).ease = v;\n  };\n}\n\nexport default function(value) {\n  if (typeof value !== \"function\") throw new Error;\n  return this.each(easeVarying(this._id, value));\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n  var on0, on1, that = this, id = that._id, size = that.size();\n  return new Promise(function(resolve, reject) {\n    var cancel = {value: reject},\n        end = {value: function() { if (--size === 0) resolve(); }};\n\n    that.each(function() {\n      var schedule = set(this, id),\n          on = schedule.on;\n\n      // If this node shared a dispatch with the previous node,\n      // just assign the updated shared dispatch and we’re done!\n      // Otherwise, copy-on-write.\n      if (on !== on0) {\n        on1 = (on0 = on).copy();\n        on1._.cancel.push(cancel);\n        on1._.interrupt.push(cancel);\n        on1._.end.push(end);\n      }\n\n      schedule.on = on1;\n    });\n\n    // The selection was empty, resolve end immediately\n    if (size === 0) resolve();\n  });\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n  time: null, // Set on use.\n  delay: 0,\n  duration: 250,\n  ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n  var timing;\n  while (!(timing = node.__transition) || !(timing = timing[id])) {\n    if (!(node = node.parentNode)) {\n      throw new Error(`transition ${id} not found`);\n    }\n  }\n  return timing;\n}\n\nexport default function(name) {\n  var id,\n      timing;\n\n  if (name instanceof Transition) {\n    id = name._id, name = name._name;\n  } else {\n    id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n  }\n\n  for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n      if (node = group[i]) {\n        schedule(node, name, id, i, group, timing || inherit(node, id));\n      }\n    }\n  }\n\n  return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n  return this.each(function() {\n    interrupt(this, name);\n  });\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n  var schedules = node.__transition,\n      schedule,\n      active,\n      empty = true,\n      i;\n\n  if (!schedules) return;\n\n  name = name == null ? null : name + \"\";\n\n  for (i in schedules) {\n    if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n    active = schedule.state > STARTING && schedule.state < ENDING;\n    schedule.state = ENDED;\n    schedule.timer.stop();\n    schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n    delete schedules[i];\n  }\n\n  if (empty) delete node.__transition;\n}\n","const pi = Math.PI,\n    tau = 2 * pi,\n    epsilon = 1e-6,\n    tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n  this._ += strings[0];\n  for (let i = 1, n = strings.length; i < n; ++i) {\n    this._ += arguments[i] + strings[i];\n  }\n}\n\nfunction appendRound(digits) {\n  let d = Math.floor(digits);\n  if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n  if (d > 15) return append;\n  const k = 10 ** d;\n  return function(strings) {\n    this._ += strings[0];\n    for (let i = 1, n = strings.length; i < n; ++i) {\n      this._ += Math.round(arguments[i] * k) / k + strings[i];\n    }\n  };\n}\n\nexport class Path {\n  constructor(digits) {\n    this._x0 = this._y0 = // start of current subpath\n    this._x1 = this._y1 = null; // end of current subpath\n    this._ = \"\";\n    this._append = digits == null ? append : appendRound(digits);\n  }\n  moveTo(x, y) {\n    this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n  }\n  closePath() {\n    if (this._x1 !== null) {\n      this._x1 = this._x0, this._y1 = this._y0;\n      this._append`Z`;\n    }\n  }\n  lineTo(x, y) {\n    this._append`L${this._x1 = +x},${this._y1 = +y}`;\n  }\n  quadraticCurveTo(x1, y1, x, y) {\n    this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n  }\n  bezierCurveTo(x1, y1, x2, y2, x, y) {\n    this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n  }\n  arcTo(x1, y1, x2, y2, r) {\n    x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n    // Is the radius negative? Error.\n    if (r < 0) throw new Error(`negative radius: ${r}`);\n\n    let x0 = this._x1,\n        y0 = this._y1,\n        x21 = x2 - x1,\n        y21 = y2 - y1,\n        x01 = x0 - x1,\n        y01 = y0 - y1,\n        l01_2 = x01 * x01 + y01 * y01;\n\n    // Is this path empty? Move to (x1,y1).\n    if (this._x1 === null) {\n      this._append`M${this._x1 = x1},${this._y1 = y1}`;\n    }\n\n    // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n    else if (!(l01_2 > epsilon));\n\n    // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n    // Equivalently, is (x1,y1) coincident with (x2,y2)?\n    // Or, is the radius zero? Line to (x1,y1).\n    else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n      this._append`L${this._x1 = x1},${this._y1 = y1}`;\n    }\n\n    // Otherwise, draw an arc!\n    else {\n      let x20 = x2 - x0,\n          y20 = y2 - y0,\n          l21_2 = x21 * x21 + y21 * y21,\n          l20_2 = x20 * x20 + y20 * y20,\n          l21 = Math.sqrt(l21_2),\n          l01 = Math.sqrt(l01_2),\n          l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n          t01 = l / l01,\n          t21 = l / l21;\n\n      // If the start tangent is not coincident with (x0,y0), line to.\n      if (Math.abs(t01 - 1) > epsilon) {\n        this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n      }\n\n      this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n    }\n  }\n  arc(x, y, r, a0, a1, ccw) {\n    x = +x, y = +y, r = +r, ccw = !!ccw;\n\n    // Is the radius negative? Error.\n    if (r < 0) throw new Error(`negative radius: ${r}`);\n\n    let dx = r * Math.cos(a0),\n        dy = r * Math.sin(a0),\n        x0 = x + dx,\n        y0 = y + dy,\n        cw = 1 ^ ccw,\n        da = ccw ? a0 - a1 : a1 - a0;\n\n    // Is this path empty? Move to (x0,y0).\n    if (this._x1 === null) {\n      this._append`M${x0},${y0}`;\n    }\n\n    // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n    else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n      this._append`L${x0},${y0}`;\n    }\n\n    // Is this arc empty? We’re done.\n    if (!r) return;\n\n    // Does the angle go the wrong way? Flip the direction.\n    if (da < 0) da = da % tau + tau;\n\n    // Is this a complete circle? Draw two arcs to complete the circle.\n    if (da > tauEpsilon) {\n      this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n    }\n\n    // Is this arc non-empty? Draw an arc!\n    else if (da > epsilon) {\n      this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n    }\n  }\n  rect(x, y, w, h) {\n    this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n  }\n  toString() {\n    return this._;\n  }\n}\n\nexport function path() {\n  return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n  return new Path(+digits);\n}\n","import constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\nimport {withPath} from \"./path.js\";\n\nfunction arcInnerRadius(d) {\n  return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n  return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n  return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n  return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n  return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n  var x10 = x1 - x0, y10 = y1 - y0,\n      x32 = x3 - x2, y32 = y3 - y2,\n      t = y32 * x10 - x32 * y10;\n  if (t * t < epsilon) return;\n  t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n  return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n  var x01 = x0 - x1,\n      y01 = y0 - y1,\n      lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n      ox = lo * y01,\n      oy = -lo * x01,\n      x11 = x0 + ox,\n      y11 = y0 + oy,\n      x10 = x1 + ox,\n      y10 = y1 + oy,\n      x00 = (x11 + x10) / 2,\n      y00 = (y11 + y10) / 2,\n      dx = x10 - x11,\n      dy = y10 - y11,\n      d2 = dx * dx + dy * dy,\n      r = r1 - rc,\n      D = x11 * y10 - x10 * y11,\n      d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n      cx0 = (D * dy - dx * d) / d2,\n      cy0 = (-D * dx - dy * d) / d2,\n      cx1 = (D * dy + dx * d) / d2,\n      cy1 = (-D * dx + dy * d) / d2,\n      dx0 = cx0 - x00,\n      dy0 = cy0 - y00,\n      dx1 = cx1 - x00,\n      dy1 = cy1 - y00;\n\n  // Pick the closer of the two intersection points.\n  // TODO Is there a faster way to determine which intersection to use?\n  if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n  return {\n    cx: cx0,\n    cy: cy0,\n    x01: -ox,\n    y01: -oy,\n    x11: cx0 * (r1 / r - 1),\n    y11: cy0 * (r1 / r - 1)\n  };\n}\n\nexport default function() {\n  var innerRadius = arcInnerRadius,\n      outerRadius = arcOuterRadius,\n      cornerRadius = constant(0),\n      padRadius = null,\n      startAngle = arcStartAngle,\n      endAngle = arcEndAngle,\n      padAngle = arcPadAngle,\n      context = null,\n      path = withPath(arc);\n\n  function arc() {\n    var buffer,\n        r,\n        r0 = +innerRadius.apply(this, arguments),\n        r1 = +outerRadius.apply(this, arguments),\n        a0 = startAngle.apply(this, arguments) - halfPi,\n        a1 = endAngle.apply(this, arguments) - halfPi,\n        da = abs(a1 - a0),\n        cw = a1 > a0;\n\n    if (!context) context = buffer = path();\n\n    // Ensure that the outer radius is always larger than the inner radius.\n    if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n    // Is it a point?\n    if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n    // Or is it a circle or annulus?\n    else if (da > tau - epsilon) {\n      context.moveTo(r1 * cos(a0), r1 * sin(a0));\n      context.arc(0, 0, r1, a0, a1, !cw);\n      if (r0 > epsilon) {\n        context.moveTo(r0 * cos(a1), r0 * sin(a1));\n        context.arc(0, 0, r0, a1, a0, cw);\n      }\n    }\n\n    // Or is it a circular or annular sector?\n    else {\n      var a01 = a0,\n          a11 = a1,\n          a00 = a0,\n          a10 = a1,\n          da0 = da,\n          da1 = da,\n          ap = padAngle.apply(this, arguments) / 2,\n          rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n          rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n          rc0 = rc,\n          rc1 = rc,\n          t0,\n          t1;\n\n      // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n      if (rp > epsilon) {\n        var p0 = asin(rp / r0 * sin(ap)),\n            p1 = asin(rp / r1 * sin(ap));\n        if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n        else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n        if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n        else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n      }\n\n      var x01 = r1 * cos(a01),\n          y01 = r1 * sin(a01),\n          x10 = r0 * cos(a10),\n          y10 = r0 * sin(a10);\n\n      // Apply rounded corners?\n      if (rc > epsilon) {\n        var x11 = r1 * cos(a11),\n            y11 = r1 * sin(a11),\n            x00 = r0 * cos(a00),\n            y00 = r0 * sin(a00),\n            oc;\n\n        // Restrict the corner radius according to the sector angle. If this\n        // intersection fails, it’s probably because the arc is too small, so\n        // disable the corner radius entirely.\n        if (da < pi) {\n          if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n            var ax = x01 - oc[0],\n                ay = y01 - oc[1],\n                bx = x11 - oc[0],\n                by = y11 - oc[1],\n                kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n                lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n            rc0 = min(rc, (r0 - lc) / (kc - 1));\n            rc1 = min(rc, (r1 - lc) / (kc + 1));\n          } else {\n            rc0 = rc1 = 0;\n          }\n        }\n      }\n\n      // Is the sector collapsed to a line?\n      if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n      // Does the sector’s outer ring have rounded corners?\n      else if (rc1 > epsilon) {\n        t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n        t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n        context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n        // Have the corners merged?\n        if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n        // Otherwise, draw the two corners and the ring.\n        else {\n          context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n          context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n          context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n        }\n      }\n\n      // Or is the outer ring just a circular arc?\n      else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n      // Is there no inner ring, and it’s a circular sector?\n      // Or perhaps it’s an annular sector collapsed due to padding?\n      if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n      // Does the sector’s inner ring (or point) have rounded corners?\n      else if (rc0 > epsilon) {\n        t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n        t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n        context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n        // Have the corners merged?\n        if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n        // Otherwise, draw the two corners and the ring.\n        else {\n          context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n          context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n          context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n        }\n      }\n\n      // Or is the inner ring just a circular arc?\n      else context.arc(0, 0, r0, a10, a00, cw);\n    }\n\n    context.closePath();\n\n    if (buffer) return context = null, buffer + \"\" || null;\n  }\n\n  arc.centroid = function() {\n    var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n        a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n    return [cos(a) * r, sin(a) * r];\n  };\n\n  arc.innerRadius = function(_) {\n    return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n  };\n\n  arc.outerRadius = function(_) {\n    return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n  };\n\n  arc.cornerRadius = function(_) {\n    return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n  };\n\n  arc.padRadius = function(_) {\n    return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n  };\n\n  arc.startAngle = function(_) {\n    return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n  };\n\n  arc.endAngle = function(_) {\n    return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n  };\n\n  arc.padAngle = function(_) {\n    return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n  };\n\n  arc.context = function(_) {\n    return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n  };\n\n  return arc;\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n  let digits = 3;\n\n  shape.digits = function(_) {\n    if (!arguments.length) return digits;\n    if (_ == null) {\n      digits = null;\n    } else {\n      const d = Math.floor(_);\n      if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n      digits = d;\n    }\n    return shape;\n  };\n\n  return () => new Path(digits);\n}\n","export default x => () => x;\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n  return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n  var nb = b ? b.length : 0,\n      na = a ? Math.min(nb, a.length) : 0,\n      x = new Array(na),\n      c = new Array(nb),\n      i;\n\n  for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n  for (; i < nb; ++i) c[i] = b[i];\n\n  return function(t) {\n    for (i = 0; i < na; ++i) c[i] = x[i](t);\n    return c;\n  };\n}\n","export default function(a, b) {\n  var d = new Date;\n  return a = +a, b = +b, function(t) {\n    return d.setTime(a * (1 - t) + b * t), d;\n  };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n  var i = {},\n      c = {},\n      k;\n\n  if (a === null || typeof a !== \"object\") a = {};\n  if (b === null || typeof b !== \"object\") b = {};\n\n  for (k in b) {\n    if (k in a) {\n      i[k] = value(a[k], b[k]);\n    } else {\n      c[k] = b[k];\n    }\n  }\n\n  return function(t) {\n    for (k in i) c[k] = i[k](t);\n    return c;\n  };\n}\n","export default function(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 {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 function basis(t1, v0, v1, v2, v3) {\n  var t2 = t1 * t1, t3 = t2 * t1;\n  return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n      + (4 - 6 * t2 + 3 * t3) * v1\n      + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n      + t3 * v3) / 6;\n}\n\nexport default function(values) {\n  var n = values.length - 1;\n  return function(t) {\n    var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n        v1 = values[i],\n        v2 = values[i + 1],\n        v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n        v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n    return basis((t - i / n) * n, v0, v1, v2, v3);\n  };\n}\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n  return function(t) {\n    return a + t * d;\n  };\n}\n\nfunction exponential(a, b, y) {\n  return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n    return Math.pow(a + t * b, y);\n  };\n}\n\nexport function hue(a, b) {\n  var d = b - a;\n  return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n  return (y = +y) === 1 ? nogamma : function(a, b) {\n    return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n  };\n}\n\nexport default function nogamma(a, b) {\n  var d = b - a;\n  return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n  var color = gamma(y);\n\n  function rgb(start, end) {\n    var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n        g = color(start.g, end.g),\n        b = color(start.b, end.b),\n        opacity = nogamma(start.opacity, end.opacity);\n    return function(t) {\n      start.r = r(t);\n      start.g = g(t);\n      start.b = b(t);\n      start.opacity = opacity(t);\n      return start + \"\";\n    };\n  }\n\n  rgb.gamma = rgbGamma;\n\n  return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n  return function(colors) {\n    var n = colors.length,\n        r = new Array(n),\n        g = new Array(n),\n        b = new Array(n),\n        i, color;\n    for (i = 0; i < n; ++i) {\n      color = colorRgb(colors[i]);\n      r[i] = color.r || 0;\n      g[i] = color.g || 0;\n      b[i] = color.b || 0;\n    }\n    r = spline(r);\n    g = spline(g);\n    b = spline(b);\n    color.opacity = 1;\n    return function(t) {\n      color.r = r(t);\n      color.g = g(t);\n      color.b = b(t);\n      return color + \"\";\n    };\n  };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n  var n = values.length;\n  return function(t) {\n    var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n        v0 = values[(i + n - 1) % n],\n        v1 = values[i % n],\n        v2 = values[(i + 1) % n],\n        v3 = values[(i + 2) % n];\n    return basis((t - i / n) * n, v0, v1, v2, v3);\n  };\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n  return typeof x === \"object\" && \"length\" in x\n    ? x // Array, TypedArray, NodeList, array-like\n    : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","export default function(a, b) {\n  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n  return d;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n  var value = identity,\n      sortValues = descending,\n      sort = null,\n      startAngle = constant(0),\n      endAngle = constant(tau),\n      padAngle = constant(0);\n\n  function pie(data) {\n    var i,\n        n = (data = array(data)).length,\n        j,\n        k,\n        sum = 0,\n        index = new Array(n),\n        arcs = new Array(n),\n        a0 = +startAngle.apply(this, arguments),\n        da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n        a1,\n        p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n        pa = p * (da < 0 ? -1 : 1),\n        v;\n\n    for (i = 0; i < n; ++i) {\n      if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n        sum += v;\n      }\n    }\n\n    // Optionally sort the arcs by previously-computed values or by data.\n    if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n    else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n    // Compute the arcs! They are stored in the original data's order.\n    for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n      j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n        data: data[j],\n        index: i,\n        value: v,\n        startAngle: a0,\n        endAngle: a1,\n        padAngle: p\n      };\n    }\n\n    return arcs;\n  }\n\n  pie.value = function(_) {\n    return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n  };\n\n  pie.sortValues = function(_) {\n    return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n  };\n\n  pie.sort = function(_) {\n    return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n  };\n\n  pie.startAngle = function(_) {\n    return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n  };\n\n  pie.endAngle = function(_) {\n    return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n  };\n\n  pie.padAngle = function(_) {\n    return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n  };\n\n  return pie;\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n  return function() {\n    this.style.removeProperty(name);\n  };\n}\n\nfunction styleConstant(name, value, priority) {\n  return function() {\n    this.style.setProperty(name, value, priority);\n  };\n}\n\nfunction styleFunction(name, value, priority) {\n  return function() {\n    var v = value.apply(this, arguments);\n    if (v == null) this.style.removeProperty(name);\n    else this.style.setProperty(name, v, priority);\n  };\n}\n\nexport default function(name, value, priority) {\n  return arguments.length > 1\n      ? this.each((value == null\n            ? styleRemove : typeof value === \"function\"\n            ? styleFunction\n            : styleConstant)(name, value, priority == null ? \"\" : priority))\n      : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n  return node.style.getPropertyValue(name)\n      || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","export function cubicIn(t) {\n  return t * t * t;\n}\n\nexport function cubicOut(t) {\n  return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n  return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n  return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n  return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","export default function(constructor, factory, prototype) {\n  constructor.prototype = factory.prototype = prototype;\n  prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n  var prototype = Object.create(parent.prototype);\n  for (var key in definition) prototype[key] = definition[key];\n  return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n    reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n    reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n    reHex = /^#([0-9a-f]{3,8})$/,\n    reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n    reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n    reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n    reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n    reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n    reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n  aliceblue: 0xf0f8ff,\n  antiquewhite: 0xfaebd7,\n  aqua: 0x00ffff,\n  aquamarine: 0x7fffd4,\n  azure: 0xf0ffff,\n  beige: 0xf5f5dc,\n  bisque: 0xffe4c4,\n  black: 0x000000,\n  blanchedalmond: 0xffebcd,\n  blue: 0x0000ff,\n  blueviolet: 0x8a2be2,\n  brown: 0xa52a2a,\n  burlywood: 0xdeb887,\n  cadetblue: 0x5f9ea0,\n  chartreuse: 0x7fff00,\n  chocolate: 0xd2691e,\n  coral: 0xff7f50,\n  cornflowerblue: 0x6495ed,\n  cornsilk: 0xfff8dc,\n  crimson: 0xdc143c,\n  cyan: 0x00ffff,\n  darkblue: 0x00008b,\n  darkcyan: 0x008b8b,\n  darkgoldenrod: 0xb8860b,\n  darkgray: 0xa9a9a9,\n  darkgreen: 0x006400,\n  darkgrey: 0xa9a9a9,\n  darkkhaki: 0xbdb76b,\n  darkmagenta: 0x8b008b,\n  darkolivegreen: 0x556b2f,\n  darkorange: 0xff8c00,\n  darkorchid: 0x9932cc,\n  darkred: 0x8b0000,\n  darksalmon: 0xe9967a,\n  darkseagreen: 0x8fbc8f,\n  darkslateblue: 0x483d8b,\n  darkslategray: 0x2f4f4f,\n  darkslategrey: 0x2f4f4f,\n  darkturquoise: 0x00ced1,\n  darkviolet: 0x9400d3,\n  deeppink: 0xff1493,\n  deepskyblue: 0x00bfff,\n  dimgray: 0x696969,\n  dimgrey: 0x696969,\n  dodgerblue: 0x1e90ff,\n  firebrick: 0xb22222,\n  floralwhite: 0xfffaf0,\n  forestgreen: 0x228b22,\n  fuchsia: 0xff00ff,\n  gainsboro: 0xdcdcdc,\n  ghostwhite: 0xf8f8ff,\n  gold: 0xffd700,\n  goldenrod: 0xdaa520,\n  gray: 0x808080,\n  green: 0x008000,\n  greenyellow: 0xadff2f,\n  grey: 0x808080,\n  honeydew: 0xf0fff0,\n  hotpink: 0xff69b4,\n  indianred: 0xcd5c5c,\n  indigo: 0x4b0082,\n  ivory: 0xfffff0,\n  khaki: 0xf0e68c,\n  lavender: 0xe6e6fa,\n  lavenderblush: 0xfff0f5,\n  lawngreen: 0x7cfc00,\n  lemonchiffon: 0xfffacd,\n  lightblue: 0xadd8e6,\n  lightcoral: 0xf08080,\n  lightcyan: 0xe0ffff,\n  lightgoldenrodyellow: 0xfafad2,\n  lightgray: 0xd3d3d3,\n  lightgreen: 0x90ee90,\n  lightgrey: 0xd3d3d3,\n  lightpink: 0xffb6c1,\n  lightsalmon: 0xffa07a,\n  lightseagreen: 0x20b2aa,\n  lightskyblue: 0x87cefa,\n  lightslategray: 0x778899,\n  lightslategrey: 0x778899,\n  lightsteelblue: 0xb0c4de,\n  lightyellow: 0xffffe0,\n  lime: 0x00ff00,\n  limegreen: 0x32cd32,\n  linen: 0xfaf0e6,\n  magenta: 0xff00ff,\n  maroon: 0x800000,\n  mediumaquamarine: 0x66cdaa,\n  mediumblue: 0x0000cd,\n  mediumorchid: 0xba55d3,\n  mediumpurple: 0x9370db,\n  mediumseagreen: 0x3cb371,\n  mediumslateblue: 0x7b68ee,\n  mediumspringgreen: 0x00fa9a,\n  mediumturquoise: 0x48d1cc,\n  mediumvioletred: 0xc71585,\n  midnightblue: 0x191970,\n  mintcream: 0xf5fffa,\n  mistyrose: 0xffe4e1,\n  moccasin: 0xffe4b5,\n  navajowhite: 0xffdead,\n  navy: 0x000080,\n  oldlace: 0xfdf5e6,\n  olive: 0x808000,\n  olivedrab: 0x6b8e23,\n  orange: 0xffa500,\n  orangered: 0xff4500,\n  orchid: 0xda70d6,\n  palegoldenrod: 0xeee8aa,\n  palegreen: 0x98fb98,\n  paleturquoise: 0xafeeee,\n  palevioletred: 0xdb7093,\n  papayawhip: 0xffefd5,\n  peachpuff: 0xffdab9,\n  peru: 0xcd853f,\n  pink: 0xffc0cb,\n  plum: 0xdda0dd,\n  powderblue: 0xb0e0e6,\n  purple: 0x800080,\n  rebeccapurple: 0x663399,\n  red: 0xff0000,\n  rosybrown: 0xbc8f8f,\n  royalblue: 0x4169e1,\n  saddlebrown: 0x8b4513,\n  salmon: 0xfa8072,\n  sandybrown: 0xf4a460,\n  seagreen: 0x2e8b57,\n  seashell: 0xfff5ee,\n  sienna: 0xa0522d,\n  silver: 0xc0c0c0,\n  skyblue: 0x87ceeb,\n  slateblue: 0x6a5acd,\n  slategray: 0x708090,\n  slategrey: 0x708090,\n  snow: 0xfffafa,\n  springgreen: 0x00ff7f,\n  steelblue: 0x4682b4,\n  tan: 0xd2b48c,\n  teal: 0x008080,\n  thistle: 0xd8bfd8,\n  tomato: 0xff6347,\n  turquoise: 0x40e0d0,\n  violet: 0xee82ee,\n  wheat: 0xf5deb3,\n  white: 0xffffff,\n  whitesmoke: 0xf5f5f5,\n  yellow: 0xffff00,\n  yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n  copy(channels) {\n    return Object.assign(new this.constructor, this, channels);\n  },\n  displayable() {\n    return this.rgb().displayable();\n  },\n  hex: color_formatHex, // Deprecated! Use color.formatHex.\n  formatHex: color_formatHex,\n  formatHex8: color_formatHex8,\n  formatHsl: color_formatHsl,\n  formatRgb: color_formatRgb,\n  toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n  return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n  return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n  return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n  return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n  var m, l;\n  format = (format + \"\").trim().toLowerCase();\n  return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n      : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n      : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n      : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n      : null) // invalid hex\n      : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n      : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n      : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n      : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n      : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n      : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n      : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n      : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n      : null;\n}\n\nfunction rgbn(n) {\n  return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n  if (a <= 0) r = g = b = NaN;\n  return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n  if (!(o instanceof Color)) o = color(o);\n  if (!o) return new Rgb;\n  o = o.rgb();\n  return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n  return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n  this.r = +r;\n  this.g = +g;\n  this.b = +b;\n  this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n  brighter(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n  },\n  darker(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n  },\n  rgb() {\n    return this;\n  },\n  clamp() {\n    return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n  },\n  displayable() {\n    return (-0.5 <= this.r && this.r < 255.5)\n        && (-0.5 <= this.g && this.g < 255.5)\n        && (-0.5 <= this.b && this.b < 255.5)\n        && (0 <= this.opacity && this.opacity <= 1);\n  },\n  hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n  formatHex: rgb_formatHex,\n  formatHex8: rgb_formatHex8,\n  formatRgb: rgb_formatRgb,\n  toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n  return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n  return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n  const a = clampa(this.opacity);\n  return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n  return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n  return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n  value = clampi(value);\n  return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n  if (a <= 0) h = s = l = NaN;\n  else if (l <= 0 || l >= 1) h = s = NaN;\n  else if (s <= 0) h = NaN;\n  return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n  if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n  if (!(o instanceof Color)) o = color(o);\n  if (!o) return new Hsl;\n  if (o instanceof Hsl) return o;\n  o = o.rgb();\n  var r = o.r / 255,\n      g = o.g / 255,\n      b = o.b / 255,\n      min = Math.min(r, g, b),\n      max = Math.max(r, g, b),\n      h = NaN,\n      s = max - min,\n      l = (max + min) / 2;\n  if (s) {\n    if (r === max) h = (g - b) / s + (g < b) * 6;\n    else if (g === max) h = (b - r) / s + 2;\n    else h = (r - g) / s + 4;\n    s /= l < 0.5 ? max + min : 2 - max - min;\n    h *= 60;\n  } else {\n    s = l > 0 && l < 1 ? 0 : h;\n  }\n  return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n  return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n  this.h = +h;\n  this.s = +s;\n  this.l = +l;\n  this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n  brighter(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Hsl(this.h, this.s, this.l * k, this.opacity);\n  },\n  darker(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Hsl(this.h, this.s, this.l * k, this.opacity);\n  },\n  rgb() {\n    var h = this.h % 360 + (this.h < 0) * 360,\n        s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n        l = this.l,\n        m2 = l + (l < 0.5 ? l : 1 - l) * s,\n        m1 = 2 * l - m2;\n    return new Rgb(\n      hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n      hsl2rgb(h, m1, m2),\n      hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n      this.opacity\n    );\n  },\n  clamp() {\n    return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n  },\n  displayable() {\n    return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n        && (0 <= this.l && this.l <= 1)\n        && (0 <= this.opacity && this.opacity <= 1);\n  },\n  formatHsl() {\n    const a = clampa(this.opacity);\n    return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n  }\n}));\n\nfunction clamph(value) {\n  value = (value || 0) % 360;\n  return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n  return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n  return (h < 60 ? m1 + (m2 - m1) * h / 60\n      : h < 180 ? m2\n      : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n      : m1) * 255;\n}\n","export default function(selector) {\n  return function() {\n    return this.matches(selector);\n  };\n}\n\nexport function childMatcher(selector) {\n  return function(node) {\n    return node.matches(selector);\n  };\n}\n\n","export default function(node) {\n  return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n      || (node.document && node) // node is a Window\n      || node.defaultView; // node is a Document\n}\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n  var prefix = name += \"\", i = prefix.indexOf(\":\");\n  if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n  return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","export default function(n){return{all:n=n||new Map,on:function(t,e){var i=n.get(t);i?i.push(e):n.set(t,[e])},off:function(t,e){var i=n.get(t);i&&(e?i.splice(i.indexOf(e)>>>0,1):n.set(t,[]))},emit:function(t,e){var i=n.get(t);i&&i.slice().map(function(n){n(e)}),(i=n.get(\"*\"))&&i.slice().map(function(n){n(t,e)})}}}\n//# sourceMappingURL=mitt.mjs.map\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","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n  svg: \"http://www.w3.org/2000/svg\",\n  xhtml: xhtml,\n  xlink: \"http://www.w3.org/1999/xlink\",\n  xml: \"http://www.w3.org/XML/1998/namespace\",\n  xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n  return function() {\n    return find.call(this.children, match);\n  };\n}\n\nfunction childFirst() {\n  return this.firstElementChild;\n}\n\nexport default function(match) {\n  return this.select(match == null ? childFirst\n      : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n  return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n  return function() {\n    return filter.call(this.children, match);\n  };\n}\n\nexport default function(match) {\n  return this.selectAll(match == null ? children\n      : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","export default function(update) {\n  return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n  return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n  this.ownerDocument = parent.ownerDocument;\n  this.namespaceURI = parent.namespaceURI;\n  this._next = null;\n  this._parent = parent;\n  this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n  constructor: EnterNode,\n  appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n  insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n  querySelector: function(selector) { return this._parent.querySelector(selector); },\n  querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n  var i = 0,\n      node,\n      groupLength = group.length,\n      dataLength = data.length;\n\n  // Put any non-null nodes that fit into update.\n  // Put any null nodes into enter.\n  // Put any remaining data into enter.\n  for (; i < dataLength; ++i) {\n    if (node = group[i]) {\n      node.__data__ = data[i];\n      update[i] = node;\n    } else {\n      enter[i] = new EnterNode(parent, data[i]);\n    }\n  }\n\n  // Put any non-null nodes that don’t fit into exit.\n  for (; i < groupLength; ++i) {\n    if (node = group[i]) {\n      exit[i] = node;\n    }\n  }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n  var i,\n      node,\n      nodeByKeyValue = new Map,\n      groupLength = group.length,\n      dataLength = data.length,\n      keyValues = new Array(groupLength),\n      keyValue;\n\n  // Compute the key for each node.\n  // If multiple nodes have the same key, the duplicates are added to exit.\n  for (i = 0; i < groupLength; ++i) {\n    if (node = group[i]) {\n      keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n      if (nodeByKeyValue.has(keyValue)) {\n        exit[i] = node;\n      } else {\n        nodeByKeyValue.set(keyValue, node);\n      }\n    }\n  }\n\n  // Compute the key for each datum.\n  // If there a node associated with this key, join and add it to update.\n  // If there is not (or the key is a duplicate), add it to enter.\n  for (i = 0; i < dataLength; ++i) {\n    keyValue = key.call(parent, data[i], i, data) + \"\";\n    if (node = nodeByKeyValue.get(keyValue)) {\n      update[i] = node;\n      node.__data__ = data[i];\n      nodeByKeyValue.delete(keyValue);\n    } else {\n      enter[i] = new EnterNode(parent, data[i]);\n    }\n  }\n\n  // Add any remaining nodes that were not bound to data to exit.\n  for (i = 0; i < groupLength; ++i) {\n    if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n      exit[i] = node;\n    }\n  }\n}\n\nfunction datum(node) {\n  return node.__data__;\n}\n\nexport default function(value, key) {\n  if (!arguments.length) return Array.from(this, datum);\n\n  var bind = key ? bindKey : bindIndex,\n      parents = this._parents,\n      groups = this._groups;\n\n  if (typeof value !== \"function\") value = constant(value);\n\n  for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n    var parent = parents[j],\n        group = groups[j],\n        groupLength = group.length,\n        data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n        dataLength = data.length,\n        enterGroup = enter[j] = new Array(dataLength),\n        updateGroup = update[j] = new Array(dataLength),\n        exitGroup = exit[j] = new Array(groupLength);\n\n    bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n    // Now connect the enter nodes to their following update node, such that\n    // appendChild can insert the materialized enter node before this node,\n    // rather than at the end of the parent node.\n    for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n      if (previous = enterGroup[i0]) {\n        if (i0 >= i1) i1 = i0 + 1;\n        while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n        previous._next = next || null;\n      }\n    }\n  }\n\n  update = new Selection(update, parents);\n  update._enter = enter;\n  update._exit = exit;\n  return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n  return typeof data === \"object\" && \"length\" in data\n    ? data // Array, TypedArray, NodeList, array-like\n    : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n  if (!compare) compare = ascending;\n\n  function compareNode(a, b) {\n    return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n  }\n\n  for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n      if (node = group[i]) {\n        sortgroup[i] = node;\n      }\n    }\n    sortgroup.sort(compareNode);\n  }\n\n  return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n  return function() {\n    this.removeAttribute(name);\n  };\n}\n\nfunction attrRemoveNS(fullname) {\n  return function() {\n    this.removeAttributeNS(fullname.space, fullname.local);\n  };\n}\n\nfunction attrConstant(name, value) {\n  return function() {\n    this.setAttribute(name, value);\n  };\n}\n\nfunction attrConstantNS(fullname, value) {\n  return function() {\n    this.setAttributeNS(fullname.space, fullname.local, value);\n  };\n}\n\nfunction attrFunction(name, value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    if (v == null) this.removeAttribute(name);\n    else this.setAttribute(name, v);\n  };\n}\n\nfunction attrFunctionNS(fullname, value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n    else this.setAttributeNS(fullname.space, fullname.local, v);\n  };\n}\n\nexport default function(name, value) {\n  var fullname = namespace(name);\n\n  if (arguments.length < 2) {\n    var node = this.node();\n    return fullname.local\n        ? node.getAttributeNS(fullname.space, fullname.local)\n        : node.getAttribute(fullname);\n  }\n\n  return this.each((value == null\n      ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n      ? (fullname.local ? attrFunctionNS : attrFunction)\n      : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","function propertyRemove(name) {\n  return function() {\n    delete this[name];\n  };\n}\n\nfunction propertyConstant(name, value) {\n  return function() {\n    this[name] = value;\n  };\n}\n\nfunction propertyFunction(name, value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    if (v == null) delete this[name];\n    else this[name] = v;\n  };\n}\n\nexport default function(name, value) {\n  return arguments.length > 1\n      ? this.each((value == null\n          ? propertyRemove : typeof value === \"function\"\n          ? propertyFunction\n          : propertyConstant)(name, value))\n      : this.node()[name];\n}\n","function classArray(string) {\n  return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n  return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n  this._node = node;\n  this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n  add: function(name) {\n    var i = this._names.indexOf(name);\n    if (i < 0) {\n      this._names.push(name);\n      this._node.setAttribute(\"class\", this._names.join(\" \"));\n    }\n  },\n  remove: function(name) {\n    var i = this._names.indexOf(name);\n    if (i >= 0) {\n      this._names.splice(i, 1);\n      this._node.setAttribute(\"class\", this._names.join(\" \"));\n    }\n  },\n  contains: function(name) {\n    return this._names.indexOf(name) >= 0;\n  }\n};\n\nfunction classedAdd(node, names) {\n  var list = classList(node), i = -1, n = names.length;\n  while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n  var list = classList(node), i = -1, n = names.length;\n  while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n  return function() {\n    classedAdd(this, names);\n  };\n}\n\nfunction classedFalse(names) {\n  return function() {\n    classedRemove(this, names);\n  };\n}\n\nfunction classedFunction(names, value) {\n  return function() {\n    (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n  };\n}\n\nexport default function(name, value) {\n  var names = classArray(name + \"\");\n\n  if (arguments.length < 2) {\n    var list = classList(this.node()), i = -1, n = names.length;\n    while (++i < n) if (!list.contains(names[i])) return false;\n    return true;\n  }\n\n  return this.each((typeof value === \"function\"\n      ? classedFunction : value\n      ? classedTrue\n      : classedFalse)(names, value));\n}\n","function textRemove() {\n  this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n  return function() {\n    this.textContent = value;\n  };\n}\n\nfunction textFunction(value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    this.textContent = v == null ? \"\" : v;\n  };\n}\n\nexport default function(value) {\n  return arguments.length\n      ? this.each(value == null\n          ? textRemove : (typeof value === \"function\"\n          ? textFunction\n          : textConstant)(value))\n      : this.node().textContent;\n}\n","function htmlRemove() {\n  this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n  return function() {\n    this.innerHTML = value;\n  };\n}\n\nfunction htmlFunction(value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    this.innerHTML = v == null ? \"\" : v;\n  };\n}\n\nexport default function(value) {\n  return arguments.length\n      ? this.each(value == null\n          ? htmlRemove : (typeof value === \"function\"\n          ? htmlFunction\n          : htmlConstant)(value))\n      : this.node().innerHTML;\n}\n","function raise() {\n  if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n  return this.each(raise);\n}\n","function lower() {\n  if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n  return this.each(lower);\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n  return function() {\n    var document = this.ownerDocument,\n        uri = this.namespaceURI;\n    return uri === xhtml && document.documentElement.namespaceURI === xhtml\n        ? document.createElement(name)\n        : document.createElementNS(uri, name);\n  };\n}\n\nfunction creatorFixed(fullname) {\n  return function() {\n    return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n  };\n}\n\nexport default function(name) {\n  var fullname = namespace(name);\n  return (fullname.local\n      ? creatorFixed\n      : creatorInherit)(fullname);\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n  return null;\n}\n\nexport default function(name, before) {\n  var create = typeof name === \"function\" ? name : creator(name),\n      select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n  return this.select(function() {\n    return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n  });\n}\n","function remove() {\n  var parent = this.parentNode;\n  if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n  return this.each(remove);\n}\n","function selection_cloneShallow() {\n  var clone = this.cloneNode(false), parent = this.parentNode;\n  return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n  var clone = this.cloneNode(true), parent = this.parentNode;\n  return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n  return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","function contextListener(listener) {\n  return function(event) {\n    listener.call(this, event, this.__data__);\n  };\n}\n\nfunction parseTypenames(typenames) {\n  return typenames.trim().split(/^|\\s+/).map(function(t) {\n    var name = \"\", i = t.indexOf(\".\");\n    if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n    return {type: t, name: name};\n  });\n}\n\nfunction onRemove(typename) {\n  return function() {\n    var on = this.__on;\n    if (!on) return;\n    for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n      if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n        this.removeEventListener(o.type, o.listener, o.options);\n      } else {\n        on[++i] = o;\n      }\n    }\n    if (++i) on.length = i;\n    else delete this.__on;\n  };\n}\n\nfunction onAdd(typename, value, options) {\n  return function() {\n    var on = this.__on, o, listener = contextListener(value);\n    if (on) for (var j = 0, m = on.length; j < m; ++j) {\n      if ((o = on[j]).type === typename.type && o.name === typename.name) {\n        this.removeEventListener(o.type, o.listener, o.options);\n        this.addEventListener(o.type, o.listener = listener, o.options = options);\n        o.value = value;\n        return;\n      }\n    }\n    this.addEventListener(typename.type, listener, options);\n    o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n    if (!on) this.__on = [o];\n    else on.push(o);\n  };\n}\n\nexport default function(typename, value, options) {\n  var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n  if (arguments.length < 2) {\n    var on = this.node().__on;\n    if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n      for (i = 0, o = on[j]; i < n; ++i) {\n        if ((t = typenames[i]).type === o.type && t.name === o.name) {\n          return o.value;\n        }\n      }\n    }\n    return;\n  }\n\n  on = value ? onAdd : onRemove;\n  for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n  return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n  var window = defaultView(node),\n      event = window.CustomEvent;\n\n  if (typeof event === \"function\") {\n    event = new event(type, params);\n  } else {\n    event = window.document.createEvent(\"Event\");\n    if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n    else event.initEvent(type, false, false);\n  }\n\n  node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n  return function() {\n    return dispatchEvent(this, type, params);\n  };\n}\n\nfunction dispatchFunction(type, params) {\n  return function() {\n    return dispatchEvent(this, type, params.apply(this, arguments));\n  };\n}\n\nexport default function(type, params) {\n  return this.each((typeof params === \"function\"\n      ? dispatchFunction\n      : dispatchConstant)(type, params));\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n  this._groups = groups;\n  this._parents = parents;\n}\n\nfunction selection() {\n  return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n  return this;\n}\n\nSelection.prototype = selection.prototype = {\n  constructor: Selection,\n  select: selection_select,\n  selectAll: selection_selectAll,\n  selectChild: selection_selectChild,\n  selectChildren: selection_selectChildren,\n  filter: selection_filter,\n  data: selection_data,\n  enter: selection_enter,\n  exit: selection_exit,\n  join: selection_join,\n  merge: selection_merge,\n  selection: selection_selection,\n  order: selection_order,\n  sort: selection_sort,\n  call: selection_call,\n  nodes: selection_nodes,\n  node: selection_node,\n  size: selection_size,\n  empty: selection_empty,\n  each: selection_each,\n  attr: selection_attr,\n  style: selection_style,\n  property: selection_property,\n  classed: selection_classed,\n  text: selection_text,\n  html: selection_html,\n  raise: selection_raise,\n  lower: selection_lower,\n  append: selection_append,\n  insert: selection_insert,\n  remove: selection_remove,\n  clone: selection_clone,\n  datum: selection_datum,\n  on: selection_on,\n  dispatch: selection_dispatch,\n  [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n  if (typeof select !== \"function\") select = selector(select);\n\n  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n      if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n        if (\"__data__\" in node) subnode.__data__ = node.__data__;\n        subgroup[i] = subnode;\n      }\n    }\n  }\n\n  return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n  return function() {\n    return array(select.apply(this, arguments));\n  };\n}\n\nexport default function(select) {\n  if (typeof select === \"function\") select = arrayAll(select);\n  else select = selectorAll(select);\n\n  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n      if (node = group[i]) {\n        subgroups.push(select.call(node, node.__data__, i, group));\n        parents.push(node);\n      }\n    }\n  }\n\n  return new Selection(subgroups, parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n  return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n  if (typeof match !== \"function\") match = matcher(match);\n\n  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n      if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n        subgroup.push(node);\n      }\n    }\n  }\n\n  return new Selection(subgroups, this._parents);\n}\n","export default function(x) {\n  return function() {\n    return x;\n  };\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n  return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n  var enter = this.enter(), update = this, exit = this.exit();\n  if (typeof onenter === \"function\") {\n    enter = onenter(enter);\n    if (enter) enter = enter.selection();\n  } else {\n    enter = enter.append(onenter + \"\");\n  }\n  if (onupdate != null) {\n    update = onupdate(update);\n    if (update) update = update.selection();\n  }\n  if (onexit == null) exit.remove(); else onexit(exit);\n  return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n  var selection = context.selection ? context.selection() : context;\n\n  for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n    for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n      if (node = group0[i] || group1[i]) {\n        merge[i] = node;\n      }\n    }\n  }\n\n  for (; j < m0; ++j) {\n    merges[j] = groups0[j];\n  }\n\n  return new Selection(merges, this._parents);\n}\n","export default function() {\n\n  for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n    for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n      if (node = group[i]) {\n        if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n        next = node;\n      }\n    }\n  }\n\n  return this;\n}\n","export default function() {\n  var callback = arguments[0];\n  arguments[0] = this;\n  callback.apply(null, arguments);\n  return this;\n}\n","export default function() {\n  return Array.from(this);\n}\n","export default function() {\n\n  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n    for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n      var node = group[i];\n      if (node) return node;\n    }\n  }\n\n  return null;\n}\n","export default function() {\n  let size = 0;\n  for (const node of this) ++size; // eslint-disable-line no-unused-vars\n  return size;\n}\n","export default function() {\n  return !this.node();\n}\n","export default function(callback) {\n\n  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n    for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n      if (node = group[i]) callback.call(node, node.__data__, i, group);\n    }\n  }\n\n  return this;\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n  var create = typeof name === \"function\" ? name : creator(name);\n  return this.select(function() {\n    return this.appendChild(create.apply(this, arguments));\n  });\n}\n","export default function(value) {\n  return arguments.length\n      ? this.property(\"__data__\", value)\n      : this.node().__data__;\n}\n","export default function*() {\n  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n    for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n      if (node = group[i]) yield node;\n    }\n  }\n}\n","export default function(x) {\n  return function constant() {\n    return x;\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"],"names":["selector","document","querySelector","documentElement","none","this","empty","querySelectorAll","noop","value","dispatch","t","i","n","arguments","length","_","test","Error","Dispatch","get","type","name","c","set","callback","slice","concat","push","prototype","constructor","on","typename","types","T","trim","split","map","indexOf","hasOwnProperty","copy","call","that","args","Array","apply","taskHead","taskTail","timeout","interval","clockLast","clockNow","clockSkew","clock","performance","now","Date","setFrame","window","requestAnimationFrame","bind","f","setTimeout","clearNow","Timer","_call","_time","_next","timer","delay","time","restart","wake","e","undefined","timerFlush","t0","t2","t1","Infinity","sleep","nap","poke","clearTimeout","clearInterval","setInterval","elapsed","stop","TypeError","emptyOn","emptyTween","node","id","index","group","timing","schedules","__transition","self","tween","start","j","o","state","__data__","tick","duration","ease","create","init","schedule","svgNode","degrees","Math","PI","identity","translateX","translateY","rotate","skewX","scaleX","scaleY","a","b","d","sqrt","atan2","atan","interpolateTransform","parse","pxComma","pxParen","degParen","pop","s","q","xa","ya","xb","yb","x","number","translate","scale","join","interpolateTransformCss","m","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","interpolateTransformSvg","createElementNS","setAttribute","transform","baseVal","consolidate","matrix","tweenRemove","tween0","tween1","splice","tweenFunction","tweenValue","transition","_id","each","color","attrRemove","removeAttribute","attrRemoveNS","fullname","removeAttributeNS","space","local","attrConstant","interpolate","value1","string00","interpolate0","string1","string0","getAttribute","attrConstantNS","getAttributeNS","attrFunction","string10","attrFunctionNS","attrTweenNS","i0","setAttributeNS","attrInterpolateNS","_value","attrTween","attrInterpolate","delayFunction","delayConstant","durationFunction","durationConstant","Selection","selection","styleRemove","style","removeProperty","Transition","groups","parents","_groups","_parents","_name","newId","selection_prototype","select","subgroups","subnode","subgroup","selectAll","selectorAll","child","children","inherit","k","l","selectChild","selectChildren","filter","match","matcher","merge","groups0","groups1","m0","m1","min","merges","group0","group1","id0","id1","nodes","size","listener","on0","on1","sit","every","onFunction","attr","namespace","key","priority","styleTween","styleNull","styleFunction","listener0","remove","event","styleMaybeRemove","styleConstant","setProperty","styleInterpolate","text","textContent","textFunction","textConstant","textTween","textInterpolate","parent","parentNode","removeChild","removeFunction","easeConstant","easeVarying","v","end","Promise","resolve","reject","cancel","interrupt","Symbol","iterator","defaultTiming","active","pi","tau","epsilon","tauEpsilon","append","strings","Path","digits","_x0","_y0","_x1","_y1","_append","floor","round","appendRound","moveTo","y","closePath","lineTo","quadraticCurveTo","x1","y1","bezierCurveTo","x2","y2","arcTo","r","x0","y0","x21","y21","x01","y01","l01_2","abs","x20","y20","l21_2","l20_2","l21","l01","tan","acos","t01","t21","arc","a0","a1","ccw","dx","cos","dy","sin","cw","da","rect","w","h","toString","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","cornerTangents","r1","rc","lo","ox","oy","x11","y11","x10","y10","x00","y00","d2","D","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","cornerRadius","constant","padRadius","context","path","shape","RangeError","withPath","buffer","r0","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","p1","oc","x3","y3","x32","y32","intersect","ax","ay","bx","by","kc","lc","centroid","genericArray","nb","na","setTime","rgb","string","date","ArrayBuffer","isView","DataView","isArray","valueOf","isNaN","object","basis","v0","v1","v2","v3","t3","nogamma","linear","rgbGamma","pow","exponential","gamma","g","opacity","rgbSpline","spline","colors","values","NaN","sortValues","descending","sort","pie","data","from","sum","arcs","max","p","pa","styleValue","getPropertyValue","getComputedStyle","cubicIn","cubicOut","cubicInOut","halfPi","asin","factory","extend","definition","Object","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","formatHex","color_formatRgb","formatRgb","format","toLowerCase","exec","parseInt","rgbn","Rgb","rgba","hsla","rgb_formatHex","hex","rgb_formatRgb","clampa","clampi","Hsl","hslConvert","clamph","clampt","hsl2rgb","m2","channels","assign","displayable","formatHex8","formatHsl","clamp","matches","childMatcher","ownerDocument","defaultView","prefix","all","Map","off","emit","reA","reB","source","am","bm","bs","bi","lastIndex","one","zero","xhtml","svg","xlink","xml","xmlns","find","childFirst","firstElementChild","update","EnterNode","datum","namespaceURI","_parent","bindIndex","enter","exit","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","has","delete","arraylike","ascending","appendChild","insertBefore","next","propertyRemove","propertyConstant","propertyFunction","classArray","classList","ClassList","_node","_names","classedAdd","names","list","add","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","lower","previousSibling","firstChild","contains","creatorInherit","uri","createElement","creatorFixed","constantNull","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","onRemove","__on","removeEventListener","options","onAdd","contextListener","addEventListener","dispatchEvent","params","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","root","arrayAll","childFind","childrenFilter","enterGroup","updateGroup","previous","i1","_enter","_exit","sparse","onenter","onupdate","onexit","order","compareDocumentPosition","compare","compareNode","sortgroups","sortgroup","property","classed","html","creator","insert","before","deep","typenames","parseTypenames"],"sourceRoot":""}