{"version":3,"sources":["jsdelivr-header.js","/npm/@vue-flow/minimap@1.5.4/dist/vue-flow-minimap.iife.js"],"names":[],"mappings":"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","file":"/npm/@vue-flow/minimap@1.5.4/dist/vue-flow-minimap.iife.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@vue-flow/minimap@1.5.4/dist/vue-flow-minimap.iife.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","var VueFlowMiniMap = function(exports, vue, core) {\n  \"use strict\";\n  var noop = { value: () => {\n  } };\n  function 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  function Dispatch(_) {\n    this._ = _;\n  }\n  function parseTypenames$1(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 };\n    });\n  }\n  Dispatch.prototype = dispatch.prototype = {\n    constructor: Dispatch,\n    on: function(typename, callback) {\n      var _ = this._, T = parseTypenames$1(typename + \"\", _), t, i = -1, n = T.length;\n      if (arguments.length < 2) {\n        while (++i < n) if ((t = (typename = T[i]).type) && (t = get$1(_[t], typename.name))) return t;\n        return;\n      }\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$1(_[t], typename.name, callback);\n        else if (callback == null) for (t in _) _[t] = set$1(_[t], typename.name, null);\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  function get$1(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  function set$1(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, value: callback });\n    return type;\n  }\n  var xhtml = \"http://www.w3.org/1999/xhtml\";\n  const namespaces = {\n    svg: \"http://www.w3.org/2000/svg\",\n    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  function namespace(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;\n  }\n  function creatorInherit(name) {\n    return function() {\n      var document2 = this.ownerDocument, uri = this.namespaceURI;\n      return uri === xhtml && document2.documentElement.namespaceURI === xhtml ? document2.createElement(name) : document2.createElementNS(uri, name);\n    };\n  }\n  function creatorFixed(fullname) {\n    return function() {\n      return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n    };\n  }\n  function creator(name) {\n    var fullname = namespace(name);\n    return (fullname.local ? creatorFixed : creatorInherit)(fullname);\n  }\n  function none() {\n  }\n  function selector(selector2) {\n    return selector2 == null ? none : function() {\n      return this.querySelector(selector2);\n    };\n  }\n  function selection_select(select2) {\n    if (typeof select2 !== \"function\") select2 = selector(select2);\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 = select2.call(node, node.__data__, i, group))) {\n          if (\"__data__\" in node) subnode.__data__ = node.__data__;\n          subgroup[i] = subnode;\n        }\n      }\n    }\n    return new Selection$1(subgroups, this._parents);\n  }\n  function array(x) {\n    return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n  }\n  function empty() {\n    return [];\n  }\n  function selectorAll(selector2) {\n    return selector2 == null ? empty : function() {\n      return this.querySelectorAll(selector2);\n    };\n  }\n  function arrayAll(select2) {\n    return function() {\n      return array(select2.apply(this, arguments));\n    };\n  }\n  function selection_selectAll(select2) {\n    if (typeof select2 === \"function\") select2 = arrayAll(select2);\n    else select2 = selectorAll(select2);\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(select2.call(node, node.__data__, i, group));\n          parents.push(node);\n        }\n      }\n    }\n    return new Selection$1(subgroups, parents);\n  }\n  function matcher(selector2) {\n    return function() {\n      return this.matches(selector2);\n    };\n  }\n  function childMatcher(selector2) {\n    return function(node) {\n      return node.matches(selector2);\n    };\n  }\n  var find = Array.prototype.find;\n  function childFind(match) {\n    return function() {\n      return find.call(this.children, match);\n    };\n  }\n  function childFirst() {\n    return this.firstElementChild;\n  }\n  function selection_selectChild(match) {\n    return this.select(match == null ? childFirst : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n  }\n  var filter = Array.prototype.filter;\n  function children() {\n    return Array.from(this.children);\n  }\n  function childrenFilter(match) {\n    return function() {\n      return filter.call(this.children, match);\n    };\n  }\n  function selection_selectChildren(match) {\n    return this.selectAll(match == null ? children : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n  }\n  function selection_filter(match) {\n    if (typeof match !== \"function\") match = matcher(match);\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    return new Selection$1(subgroups, this._parents);\n  }\n  function sparse(update) {\n    return new Array(update.length);\n  }\n  function selection_enter() {\n    return new Selection$1(this._enter || this._groups.map(sparse), this._parents);\n  }\n  function EnterNode(parent, datum2) {\n    this.ownerDocument = parent.ownerDocument;\n    this.namespaceURI = parent.namespaceURI;\n    this._next = null;\n    this._parent = parent;\n    this.__data__ = datum2;\n  }\n  EnterNode.prototype = {\n    constructor: EnterNode,\n    appendChild: function(child) {\n      return this._parent.insertBefore(child, this._next);\n    },\n    insertBefore: function(child, next) {\n      return this._parent.insertBefore(child, next);\n    },\n    querySelector: function(selector2) {\n      return this._parent.querySelector(selector2);\n    },\n    querySelectorAll: function(selector2) {\n      return this._parent.querySelectorAll(selector2);\n    }\n  };\n  function constant$2(x) {\n    return function() {\n      return x;\n    };\n  }\n  function bindIndex(parent, group, enter, update, exit, data) {\n    var i = 0, node, groupLength = group.length, dataLength = data.length;\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    for (; i < groupLength; ++i) {\n      if (node = group[i]) {\n        exit[i] = node;\n      }\n    }\n  }\n  function bindKey(parent, group, enter, update, exit, data, key) {\n    var i, node, nodeByKeyValue = /* @__PURE__ */ new Map(), groupLength = group.length, dataLength = data.length, keyValues = new Array(groupLength), keyValue;\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    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    for (i = 0; i < groupLength; ++i) {\n      if ((node = group[i]) && nodeByKeyValue.get(keyValues[i]) === node) {\n        exit[i] = node;\n      }\n    }\n  }\n  function datum(node) {\n    return node.__data__;\n  }\n  function selection_data(value, key) {\n    if (!arguments.length) return Array.from(this, datum);\n    var bind = key ? bindKey : bindIndex, parents = this._parents, groups = this._groups;\n    if (typeof value !== \"function\") value = constant$2(value);\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], group = groups[j], groupLength = group.length, data = arraylike(value.call(parent, parent && parent.__data__, j, parents)), dataLength = data.length, enterGroup = enter[j] = new Array(dataLength), updateGroup = update[j] = new Array(dataLength), exitGroup = exit[j] = new Array(groupLength);\n      bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\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    update = new Selection$1(update, parents);\n    update._enter = enter;\n    update._exit = exit;\n    return update;\n  }\n  function arraylike(data) {\n    return typeof data === \"object\" && \"length\" in data ? data : Array.from(data);\n  }\n  function selection_exit() {\n    return new Selection$1(this._exit || this._groups.map(sparse), this._parents);\n  }\n  function selection_join(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();\n    else onexit(exit);\n    return enter && update ? enter.merge(update).order() : update;\n  }\n  function selection_merge(context) {\n    var selection2 = context.selection ? context.selection() : context;\n    for (var groups0 = this._groups, groups1 = selection2._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    for (; j < m0; ++j) {\n      merges[j] = groups0[j];\n    }\n    return new Selection$1(merges, this._parents);\n  }\n  function selection_order() {\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    return this;\n  }\n  function selection_sort(compare) {\n    if (!compare) compare = ascending;\n    function compareNode(a, b) {\n      return a && b ? compare(a.__data__, b.__data__) : !a - !b;\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    return new Selection$1(sortgroups, this._parents).order();\n  }\n  function ascending(a, b) {\n    return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n  }\n  function selection_call() {\n    var callback = arguments[0];\n    arguments[0] = this;\n    callback.apply(null, arguments);\n    return this;\n  }\n  function selection_nodes() {\n    return Array.from(this);\n  }\n  function selection_node() {\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    return null;\n  }\n  function selection_size() {\n    let size = 0;\n    for (const node of this) ++size;\n    return size;\n  }\n  function selection_empty() {\n    return !this.node();\n  }\n  function selection_each(callback) {\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    return this;\n  }\n  function attrRemove$1(name) {\n    return function() {\n      this.removeAttribute(name);\n    };\n  }\n  function attrRemoveNS$1(fullname) {\n    return function() {\n      this.removeAttributeNS(fullname.space, fullname.local);\n    };\n  }\n  function attrConstant$1(name, value) {\n    return function() {\n      this.setAttribute(name, value);\n    };\n  }\n  function attrConstantNS$1(fullname, value) {\n    return function() {\n      this.setAttributeNS(fullname.space, fullname.local, value);\n    };\n  }\n  function attrFunction$1(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  function attrFunctionNS$1(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  function selection_attr(name, value) {\n    var fullname = namespace(name);\n    if (arguments.length < 2) {\n      var node = this.node();\n      return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname);\n    }\n    return this.each((value == null ? fullname.local ? attrRemoveNS$1 : attrRemove$1 : typeof value === \"function\" ? fullname.local ? attrFunctionNS$1 : attrFunction$1 : fullname.local ? attrConstantNS$1 : attrConstant$1)(fullname, value));\n  }\n  function defaultView(node) {\n    return node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView;\n  }\n  function styleRemove$1(name) {\n    return function() {\n      this.style.removeProperty(name);\n    };\n  }\n  function styleConstant$1(name, value, priority) {\n    return function() {\n      this.style.setProperty(name, value, priority);\n    };\n  }\n  function styleFunction$1(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  function selection_style(name, value, priority) {\n    return arguments.length > 1 ? this.each((value == null ? styleRemove$1 : typeof value === \"function\" ? styleFunction$1 : styleConstant$1)(name, value, priority == null ? \"\" : priority)) : styleValue(this.node(), name);\n  }\n  function styleValue(node, name) {\n    return node.style.getPropertyValue(name) || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n  }\n  function propertyRemove(name) {\n    return function() {\n      delete this[name];\n    };\n  }\n  function propertyConstant(name, value) {\n    return function() {\n      this[name] = value;\n    };\n  }\n  function 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  function selection_property(name, value) {\n    return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === \"function\" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name];\n  }\n  function classArray(string) {\n    return string.trim().split(/^|\\s+/);\n  }\n  function classList(node) {\n    return node.classList || new ClassList(node);\n  }\n  function ClassList(node) {\n    this._node = node;\n    this._names = classArray(node.getAttribute(\"class\") || \"\");\n  }\n  ClassList.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  function classedAdd(node, names) {\n    var list = classList(node), i = -1, n = names.length;\n    while (++i < n) list.add(names[i]);\n  }\n  function classedRemove(node, names) {\n    var list = classList(node), i = -1, n = names.length;\n    while (++i < n) list.remove(names[i]);\n  }\n  function classedTrue(names) {\n    return function() {\n      classedAdd(this, names);\n    };\n  }\n  function classedFalse(names) {\n    return function() {\n      classedRemove(this, names);\n    };\n  }\n  function classedFunction(names, value) {\n    return function() {\n      (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n    };\n  }\n  function selection_classed(name, value) {\n    var names = classArray(name + \"\");\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    return this.each((typeof value === \"function\" ? classedFunction : value ? classedTrue : classedFalse)(names, value));\n  }\n  function textRemove() {\n    this.textContent = \"\";\n  }\n  function textConstant$1(value) {\n    return function() {\n      this.textContent = value;\n    };\n  }\n  function textFunction$1(value) {\n    return function() {\n      var v = value.apply(this, arguments);\n      this.textContent = v == null ? \"\" : v;\n    };\n  }\n  function selection_text(value) {\n    return arguments.length ? this.each(value == null ? textRemove : (typeof value === \"function\" ? textFunction$1 : textConstant$1)(value)) : this.node().textContent;\n  }\n  function htmlRemove() {\n    this.innerHTML = \"\";\n  }\n  function htmlConstant(value) {\n    return function() {\n      this.innerHTML = value;\n    };\n  }\n  function htmlFunction(value) {\n    return function() {\n      var v = value.apply(this, arguments);\n      this.innerHTML = v == null ? \"\" : v;\n    };\n  }\n  function selection_html(value) {\n    return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === \"function\" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML;\n  }\n  function raise() {\n    if (this.nextSibling) this.parentNode.appendChild(this);\n  }\n  function selection_raise() {\n    return this.each(raise);\n  }\n  function lower() {\n    if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n  }\n  function selection_lower() {\n    return this.each(lower);\n  }\n  function selection_append(name) {\n    var create2 = typeof name === \"function\" ? name : creator(name);\n    return this.select(function() {\n      return this.appendChild(create2.apply(this, arguments));\n    });\n  }\n  function constantNull() {\n    return null;\n  }\n  function selection_insert(name, before) {\n    var create2 = typeof name === \"function\" ? name : creator(name), select2 = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n    return this.select(function() {\n      return this.insertBefore(create2.apply(this, arguments), select2.apply(this, arguments) || null);\n    });\n  }\n  function remove() {\n    var parent = this.parentNode;\n    if (parent) parent.removeChild(this);\n  }\n  function selection_remove() {\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  function selection_cloneDeep() {\n    var clone = this.cloneNode(true), parent = this.parentNode;\n    return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n  }\n  function selection_clone(deep) {\n    return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n  }\n  function selection_datum(value) {\n    return arguments.length ? this.property(\"__data__\", value) : this.node().__data__;\n  }\n  function contextListener(listener) {\n    return function(event) {\n      listener.call(this, event, this.__data__);\n    };\n  }\n  function 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 };\n    });\n  }\n  function 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  function 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, listener, options };\n      if (!on) this.__on = [o];\n      else on.push(o);\n    };\n  }\n  function selection_on(typename, value, options) {\n    var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\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    on = value ? onAdd : onRemove;\n    for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n    return this;\n  }\n  function dispatchEvent(node, type, params) {\n    var window2 = defaultView(node), event = window2.CustomEvent;\n    if (typeof event === \"function\") {\n      event = new event(type, params);\n    } else {\n      event = window2.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    node.dispatchEvent(event);\n  }\n  function dispatchConstant(type, params) {\n    return function() {\n      return dispatchEvent(this, type, params);\n    };\n  }\n  function dispatchFunction(type, params) {\n    return function() {\n      return dispatchEvent(this, type, params.apply(this, arguments));\n    };\n  }\n  function selection_dispatch(type, params) {\n    return this.each((typeof params === \"function\" ? dispatchFunction : dispatchConstant)(type, params));\n  }\n  function* selection_iterator() {\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  var root = [null];\n  function Selection$1(groups, parents) {\n    this._groups = groups;\n    this._parents = parents;\n  }\n  function selection() {\n    return new Selection$1([[document.documentElement]], root);\n  }\n  function selection_selection() {\n    return this;\n  }\n  Selection$1.prototype = selection.prototype = {\n    constructor: Selection$1,\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  function select(selector2) {\n    return typeof selector2 === \"string\" ? new Selection$1([[document.querySelector(selector2)]], [document.documentElement]) : new Selection$1([[selector2]], root);\n  }\n  function sourceEvent(event) {\n    let sourceEvent2;\n    while (sourceEvent2 = event.sourceEvent) event = sourceEvent2;\n    return event;\n  }\n  function pointer(event, node) {\n    event = sourceEvent(event);\n    if (node === void 0) node = event.currentTarget;\n    if (node) {\n      var svg = node.ownerSVGElement || node;\n      if (svg.createSVGPoint) {\n        var point = svg.createSVGPoint();\n        point.x = event.clientX, point.y = event.clientY;\n        point = point.matrixTransform(node.getScreenCTM().inverse());\n        return [point.x, point.y];\n      }\n      if (node.getBoundingClientRect) {\n        var rect = node.getBoundingClientRect();\n        return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n      }\n    }\n    return [event.pageX, event.pageY];\n  }\n  const nonpassivecapture = { capture: true, passive: false };\n  function noevent$1(event) {\n    event.preventDefault();\n    event.stopImmediatePropagation();\n  }\n  function dragDisable(view) {\n    var root2 = view.document.documentElement, selection2 = select(view).on(\"dragstart.drag\", noevent$1, nonpassivecapture);\n    if (\"onselectstart\" in root2) {\n      selection2.on(\"selectstart.drag\", noevent$1, nonpassivecapture);\n    } else {\n      root2.__noselect = root2.style.MozUserSelect;\n      root2.style.MozUserSelect = \"none\";\n    }\n  }\n  function yesdrag(view, noclick) {\n    var root2 = view.document.documentElement, selection2 = select(view).on(\"dragstart.drag\", null);\n    if (noclick) {\n      selection2.on(\"click.drag\", noevent$1, nonpassivecapture);\n      setTimeout(function() {\n        selection2.on(\"click.drag\", null);\n      }, 0);\n    }\n    if (\"onselectstart\" in root2) {\n      selection2.on(\"selectstart.drag\", null);\n    } else {\n      root2.style.MozUserSelect = root2.__noselect;\n      delete root2.__noselect;\n    }\n  }\n  function define(constructor, factory, prototype) {\n    constructor.prototype = factory.prototype = prototype;\n    prototype.constructor = constructor;\n  }\n  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  function Color() {\n  }\n  var darker = 0.7;\n  var brighter = 1 / darker;\n  var reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\", reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\", reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\", reHex = /^#([0-9a-f]{3,8})$/, reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`), reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`), reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`), reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`), reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`), reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n  var named = {\n    aliceblue: 15792383,\n    antiquewhite: 16444375,\n    aqua: 65535,\n    aquamarine: 8388564,\n    azure: 15794175,\n    beige: 16119260,\n    bisque: 16770244,\n    black: 0,\n    blanchedalmond: 16772045,\n    blue: 255,\n    blueviolet: 9055202,\n    brown: 10824234,\n    burlywood: 14596231,\n    cadetblue: 6266528,\n    chartreuse: 8388352,\n    chocolate: 13789470,\n    coral: 16744272,\n    cornflowerblue: 6591981,\n    cornsilk: 16775388,\n    crimson: 14423100,\n    cyan: 65535,\n    darkblue: 139,\n    darkcyan: 35723,\n    darkgoldenrod: 12092939,\n    darkgray: 11119017,\n    darkgreen: 25600,\n    darkgrey: 11119017,\n    darkkhaki: 12433259,\n    darkmagenta: 9109643,\n    darkolivegreen: 5597999,\n    darkorange: 16747520,\n    darkorchid: 10040012,\n    darkred: 9109504,\n    darksalmon: 15308410,\n    darkseagreen: 9419919,\n    darkslateblue: 4734347,\n    darkslategray: 3100495,\n    darkslategrey: 3100495,\n    darkturquoise: 52945,\n    darkviolet: 9699539,\n    deeppink: 16716947,\n    deepskyblue: 49151,\n    dimgray: 6908265,\n    dimgrey: 6908265,\n    dodgerblue: 2003199,\n    firebrick: 11674146,\n    floralwhite: 16775920,\n    forestgreen: 2263842,\n    fuchsia: 16711935,\n    gainsboro: 14474460,\n    ghostwhite: 16316671,\n    gold: 16766720,\n    goldenrod: 14329120,\n    gray: 8421504,\n    green: 32768,\n    greenyellow: 11403055,\n    grey: 8421504,\n    honeydew: 15794160,\n    hotpink: 16738740,\n    indianred: 13458524,\n    indigo: 4915330,\n    ivory: 16777200,\n    khaki: 15787660,\n    lavender: 15132410,\n    lavenderblush: 16773365,\n    lawngreen: 8190976,\n    lemonchiffon: 16775885,\n    lightblue: 11393254,\n    lightcoral: 15761536,\n    lightcyan: 14745599,\n    lightgoldenrodyellow: 16448210,\n    lightgray: 13882323,\n    lightgreen: 9498256,\n    lightgrey: 13882323,\n    lightpink: 16758465,\n    lightsalmon: 16752762,\n    lightseagreen: 2142890,\n    lightskyblue: 8900346,\n    lightslategray: 7833753,\n    lightslategrey: 7833753,\n    lightsteelblue: 11584734,\n    lightyellow: 16777184,\n    lime: 65280,\n    limegreen: 3329330,\n    linen: 16445670,\n    magenta: 16711935,\n    maroon: 8388608,\n    mediumaquamarine: 6737322,\n    mediumblue: 205,\n    mediumorchid: 12211667,\n    mediumpurple: 9662683,\n    mediumseagreen: 3978097,\n    mediumslateblue: 8087790,\n    mediumspringgreen: 64154,\n    mediumturquoise: 4772300,\n    mediumvioletred: 13047173,\n    midnightblue: 1644912,\n    mintcream: 16121850,\n    mistyrose: 16770273,\n    moccasin: 16770229,\n    navajowhite: 16768685,\n    navy: 128,\n    oldlace: 16643558,\n    olive: 8421376,\n    olivedrab: 7048739,\n    orange: 16753920,\n    orangered: 16729344,\n    orchid: 14315734,\n    palegoldenrod: 15657130,\n    palegreen: 10025880,\n    paleturquoise: 11529966,\n    palevioletred: 14381203,\n    papayawhip: 16773077,\n    peachpuff: 16767673,\n    peru: 13468991,\n    pink: 16761035,\n    plum: 14524637,\n    powderblue: 11591910,\n    purple: 8388736,\n    rebeccapurple: 6697881,\n    red: 16711680,\n    rosybrown: 12357519,\n    royalblue: 4286945,\n    saddlebrown: 9127187,\n    salmon: 16416882,\n    sandybrown: 16032864,\n    seagreen: 3050327,\n    seashell: 16774638,\n    sienna: 10506797,\n    silver: 12632256,\n    skyblue: 8900331,\n    slateblue: 6970061,\n    slategray: 7372944,\n    slategrey: 7372944,\n    snow: 16775930,\n    springgreen: 65407,\n    steelblue: 4620980,\n    tan: 13808780,\n    teal: 32896,\n    thistle: 14204888,\n    tomato: 16737095,\n    turquoise: 4251856,\n    violet: 15631086,\n    wheat: 16113331,\n    white: 16777215,\n    whitesmoke: 16119285,\n    yellow: 16776960,\n    yellowgreen: 10145074\n  };\n  define(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,\n    // 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  function color_formatHex() {\n    return this.rgb().formatHex();\n  }\n  function color_formatHex8() {\n    return this.rgb().formatHex8();\n  }\n  function color_formatHsl() {\n    return hslConvert(this).formatHsl();\n  }\n  function color_formatRgb() {\n    return this.rgb().formatRgb();\n  }\n  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) : l === 3 ? new Rgb(m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, (m & 15) << 4 | m & 15, 1) : l === 8 ? rgba(m >> 24 & 255, m >> 16 & 255, m >> 8 & 255, (m & 255) / 255) : l === 4 ? rgba(m >> 12 & 15 | m >> 8 & 240, m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, ((m & 15) << 4 | m & 15) / 255) : null) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) : named.hasOwnProperty(format) ? rgbn(named[format]) : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0) : null;\n  }\n  function rgbn(n) {\n    return new Rgb(n >> 16 & 255, n >> 8 & 255, n & 255, 1);\n  }\n  function rgba(r, g, b, a) {\n    if (a <= 0) r = g = b = NaN;\n    return new Rgb(r, g, b, a);\n  }\n  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  function rgb(r, g, b, opacity) {\n    return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n  }\n  function Rgb(r, g, b, opacity) {\n    this.r = +r;\n    this.g = +g;\n    this.b = +b;\n    this.opacity = +opacity;\n  }\n  define(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 && (-0.5 <= this.g && this.g < 255.5) && (-0.5 <= this.b && this.b < 255.5) && (0 <= this.opacity && this.opacity <= 1);\n    },\n    hex: rgb_formatHex,\n    // Deprecated! Use color.formatHex.\n    formatHex: rgb_formatHex,\n    formatHex8: rgb_formatHex8,\n    formatRgb: rgb_formatRgb,\n    toString: rgb_formatRgb\n  }));\n  function rgb_formatHex() {\n    return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n  }\n  function rgb_formatHex8() {\n    return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n  }\n  function 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  function clampa(opacity) {\n    return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n  }\n  function clampi(value) {\n    return Math.max(0, Math.min(255, Math.round(value) || 0));\n  }\n  function hex(value) {\n    value = clampi(value);\n    return (value < 16 ? \"0\" : \"\") + value.toString(16);\n  }\n  function 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  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, g = o.g / 255, b = o.b / 255, min = Math.min(r, g, b), max = Math.max(r, g, b), h = NaN, s = max - min, 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  function hsl(h, s, l, opacity) {\n    return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n  }\n  function Hsl(h, s, l, opacity) {\n    this.h = +h;\n    this.s = +s;\n    this.l = +l;\n    this.opacity = +opacity;\n  }\n  define(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, s = isNaN(h) || isNaN(this.s) ? 0 : this.s, l = this.l, m2 = l + (l < 0.5 ? l : 1 - l) * s, 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)) && (0 <= this.l && this.l <= 1) && (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  function clamph(value) {\n    value = (value || 0) % 360;\n    return value < 0 ? value + 360 : value;\n  }\n  function clampt(value) {\n    return Math.max(0, Math.min(1, value || 0));\n  }\n  function hsl2rgb(h, m1, m2) {\n    return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;\n  }\n  const constant$1 = (x) => () => x;\n  function linear(a, d) {\n    return function(t) {\n      return a + t * d;\n    };\n  }\n  function 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  function gamma(y) {\n    return (y = +y) === 1 ? nogamma : function(a, b) {\n      return b - a ? exponential(a, b, y) : constant$1(isNaN(a) ? b : a);\n    };\n  }\n  function nogamma(a, b) {\n    var d = b - a;\n    return d ? linear(a, d) : constant$1(isNaN(a) ? b : a);\n  }\n  const interpolateRgb = function rgbGamma(y) {\n    var color2 = gamma(y);\n    function rgb$1(start2, end) {\n      var r = color2((start2 = rgb(start2)).r, (end = rgb(end)).r), g = color2(start2.g, end.g), b = color2(start2.b, end.b), opacity = nogamma(start2.opacity, end.opacity);\n      return function(t) {\n        start2.r = r(t);\n        start2.g = g(t);\n        start2.b = b(t);\n        start2.opacity = opacity(t);\n        return start2 + \"\";\n      };\n    }\n    rgb$1.gamma = rgbGamma;\n    return rgb$1;\n  }(1);\n  function interpolateNumber(a, b) {\n    return a = +a, b = +b, function(t) {\n      return a * (1 - t) + b * t;\n    };\n  }\n  var reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g, reB = new RegExp(reA.source, \"g\");\n  function zero(b) {\n    return function() {\n      return b;\n    };\n  }\n  function one(b) {\n    return function(t) {\n      return b(t) + \"\";\n    };\n  }\n  function interpolateString(a, b) {\n    var bi = reA.lastIndex = reB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = [];\n    a = a + \"\", b = b + \"\";\n    while ((am = reA.exec(a)) && (bm = reB.exec(b))) {\n      if ((bs = bm.index) > bi) {\n        bs = b.slice(bi, bs);\n        if (s[i]) s[i] += bs;\n        else s[++i] = bs;\n      }\n      if ((am = am[0]) === (bm = bm[0])) {\n        if (s[i]) s[i] += bm;\n        else s[++i] = bm;\n      } else {\n        s[++i] = null;\n        q.push({ i, x: interpolateNumber(am, bm) });\n      }\n      bi = reB.lastIndex;\n    }\n    if (bi < b.length) {\n      bs = b.slice(bi);\n      if (s[i]) s[i] += bs;\n      else s[++i] = bs;\n    }\n    return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function(t) {\n      for (var i2 = 0, o; i2 < b; ++i2) s[(o = q[i2]).i] = o.x(t);\n      return s.join(\"\");\n    });\n  }\n  var degrees = 180 / Math.PI;\n  var identity$1 = {\n    translateX: 0,\n    translateY: 0,\n    rotate: 0,\n    skewX: 0,\n    scaleX: 1,\n    scaleY: 1\n  };\n  function decompose(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,\n      scaleY\n    };\n  }\n  var svgNode;\n  function parseCss(value) {\n    const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n    return m.isIdentity ? identity$1 : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n  }\n  function parseSvg(value) {\n    if (value == null) return identity$1;\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$1;\n    value = value.matrix;\n    return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n  }\n  function interpolateTransform(parse, pxComma, pxParen, degParen) {\n    function pop(s) {\n      return s.length ? s.pop() + \" \" : \"\";\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: interpolateNumber(xa, xb) }, { i: i - 2, x: interpolateNumber(ya, yb) });\n      } else if (xb || yb) {\n        s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n      }\n    }\n    function rotate(a, b, s, q) {\n      if (a !== b) {\n        if (a - b > 180) b += 360;\n        else if (b - a > 180) a += 360;\n        q.push({ i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: interpolateNumber(a, b) });\n      } else if (b) {\n        s.push(pop(s) + \"rotate(\" + b + degParen);\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: interpolateNumber(a, b) });\n      } else if (b) {\n        s.push(pop(s) + \"skewX(\" + b + degParen);\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: interpolateNumber(xa, xb) }, { i: i - 2, x: interpolateNumber(ya, yb) });\n      } else if (xb !== 1 || yb !== 1) {\n        s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n      }\n    }\n    return function(a, b) {\n      var s = [], q = [];\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;\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  var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\n  var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n  var epsilon2 = 1e-12;\n  function cosh(x) {\n    return ((x = Math.exp(x)) + 1 / x) / 2;\n  }\n  function sinh(x) {\n    return ((x = Math.exp(x)) - 1 / x) / 2;\n  }\n  function tanh(x) {\n    return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n  }\n  const interpolateZoom = function zoomRho(rho, rho2, rho4) {\n    function zoom2(p0, p1) {\n      var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S;\n      if (d2 < epsilon2) {\n        S = Math.log(w1 / w0) / rho;\n        i = function(t) {\n          return [\n            ux0 + t * dx,\n            uy0 + t * dy,\n            w0 * Math.exp(rho * t * S)\n          ];\n        };\n      } else {\n        var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1), b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n        S = (r1 - r0) / rho;\n        i = function(t) {\n          var s = t * S, coshr0 = cosh(r0), u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n          return [\n            ux0 + u * dx,\n            uy0 + u * dy,\n            w0 * coshr0 / cosh(rho * s + r0)\n          ];\n        };\n      }\n      i.duration = S * 1e3 * rho / Math.SQRT2;\n      return i;\n    }\n    zoom2.rho = function(_) {\n      var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n      return zoomRho(_1, _2, _4);\n    };\n    return zoom2;\n  }(Math.SQRT2, 2, 4);\n  var frame = 0, timeout$1 = 0, interval = 0, pokeDelay = 1e3, taskHead, taskTail, clockLast = 0, clockNow = 0, clockSkew = 0, clock = typeof performance === \"object\" && performance.now ? performance : Date, setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) {\n    setTimeout(f, 17);\n  };\n  function now() {\n    return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n  }\n  function clearNow() {\n    clockNow = 0;\n  }\n  function Timer() {\n    this._call = this._time = this._next = null;\n  }\n  Timer.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  function timer(callback, delay, time) {\n    var t = new Timer();\n    t.restart(callback, delay, time);\n    return t;\n  }\n  function timerFlush() {\n    now();\n    ++frame;\n    var t = taskHead, e;\n    while (t) {\n      if ((e = clockNow - t._time) >= 0) t._call.call(void 0, e);\n      t = t._next;\n    }\n    --frame;\n  }\n  function wake() {\n    clockNow = (clockLast = clock.now()) + clockSkew;\n    frame = timeout$1 = 0;\n    try {\n      timerFlush();\n    } finally {\n      frame = 0;\n      nap();\n      clockNow = 0;\n    }\n  }\n  function poke() {\n    var now2 = clock.now(), delay = now2 - clockLast;\n    if (delay > pokeDelay) clockSkew -= delay, clockLast = now2;\n  }\n  function 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  function sleep(time) {\n    if (frame) return;\n    if (timeout$1) timeout$1 = clearTimeout(timeout$1);\n    var delay = time - clockNow;\n    if (delay > 24) {\n      if (time < Infinity) timeout$1 = 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  function timeout(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  var emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\n  var emptyTween = [];\n  var CREATED = 0;\n  var SCHEDULED = 1;\n  var STARTING = 2;\n  var STARTED = 3;\n  var RUNNING = 4;\n  var ENDING = 5;\n  var ENDED = 6;\n  function schedule(node, name, id2, index, group, timing) {\n    var schedules = node.__transition;\n    if (!schedules) node.__transition = {};\n    else if (id2 in schedules) return;\n    create(node, id2, {\n      name,\n      index,\n      // For context during callback.\n      group,\n      // 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  function init(node, id2) {\n    var schedule2 = get(node, id2);\n    if (schedule2.state > CREATED) throw new Error(\"too late; already scheduled\");\n    return schedule2;\n  }\n  function set(node, id2) {\n    var schedule2 = get(node, id2);\n    if (schedule2.state > STARTED) throw new Error(\"too late; already running\");\n    return schedule2;\n  }\n  function get(node, id2) {\n    var schedule2 = node.__transition;\n    if (!schedule2 || !(schedule2 = schedule2[id2])) throw new Error(\"transition not found\");\n    return schedule2;\n  }\n  function create(node, id2, self) {\n    var schedules = node.__transition, tween;\n    schedules[id2] = self;\n    self.timer = timer(schedule2, 0, self.time);\n    function schedule2(elapsed) {\n      self.state = SCHEDULED;\n      self.timer.restart(start2, self.delay, self.time);\n      if (self.delay <= elapsed) start2(elapsed - self.delay);\n    }\n    function start2(elapsed) {\n      var i, j, n, o;\n      if (self.state !== SCHEDULED) return stop();\n      for (i in schedules) {\n        o = schedules[i];\n        if (o.name !== self.name) continue;\n        if (o.state === STARTED) return timeout(start2);\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        } else if (+i < id2) {\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      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      self.state = STARTING;\n      self.on.call(\"start\", node, node.__data__, self.index, self.group);\n      if (self.state !== STARTING) return;\n      self.state = STARTED;\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    function tick(elapsed) {\n      var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1), i = -1, n = tween.length;\n      while (++i < n) {\n        tween[i].call(node, t);\n      }\n      if (self.state === ENDING) {\n        self.on.call(\"end\", node, node.__data__, self.index, self.group);\n        stop();\n      }\n    }\n    function stop() {\n      self.state = ENDED;\n      self.timer.stop();\n      delete schedules[id2];\n      for (var i in schedules) return;\n      delete node.__transition;\n    }\n  }\n  function interrupt(node, name) {\n    var schedules = node.__transition, schedule2, active, empty2 = true, i;\n    if (!schedules) return;\n    name = name == null ? null : name + \"\";\n    for (i in schedules) {\n      if ((schedule2 = schedules[i]).name !== name) {\n        empty2 = false;\n        continue;\n      }\n      active = schedule2.state > STARTING && schedule2.state < ENDING;\n      schedule2.state = ENDED;\n      schedule2.timer.stop();\n      schedule2.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule2.index, schedule2.group);\n      delete schedules[i];\n    }\n    if (empty2) delete node.__transition;\n  }\n  function selection_interrupt(name) {\n    return this.each(function() {\n      interrupt(this, name);\n    });\n  }\n  function tweenRemove(id2, name) {\n    var tween0, tween1;\n    return function() {\n      var schedule2 = set(this, id2), tween = schedule2.tween;\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      schedule2.tween = tween1;\n    };\n  }\n  function tweenFunction(id2, name, value) {\n    var tween0, tween1;\n    if (typeof value !== \"function\") throw new Error();\n    return function() {\n      var schedule2 = set(this, id2), tween = schedule2.tween;\n      if (tween !== tween0) {\n        tween1 = (tween0 = tween).slice();\n        for (var t = { name, 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      schedule2.tween = tween1;\n    };\n  }\n  function transition_tween(name, value) {\n    var id2 = this._id;\n    name += \"\";\n    if (arguments.length < 2) {\n      var tween = get(this.node(), id2).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    return this.each((value == null ? tweenRemove : tweenFunction)(id2, name, value));\n  }\n  function tweenValue(transition, name, value) {\n    var id2 = transition._id;\n    transition.each(function() {\n      var schedule2 = set(this, id2);\n      (schedule2.value || (schedule2.value = {}))[name] = value.apply(this, arguments);\n    });\n    return function(node) {\n      return get(node, id2).value[name];\n    };\n  }\n  function interpolate(a, b) {\n    var c;\n    return (typeof b === \"number\" ? interpolateNumber : b instanceof color ? interpolateRgb : (c = color(b)) ? (b = c, interpolateRgb) : interpolateString)(a, b);\n  }\n  function attrRemove(name) {\n    return function() {\n      this.removeAttribute(name);\n    };\n  }\n  function attrRemoveNS(fullname) {\n    return function() {\n      this.removeAttributeNS(fullname.space, fullname.local);\n    };\n  }\n  function attrConstant(name, interpolate2, value1) {\n    var string00, string1 = value1 + \"\", interpolate0;\n    return function() {\n      var string0 = this.getAttribute(name);\n      return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1);\n    };\n  }\n  function attrConstantNS(fullname, interpolate2, value1) {\n    var string00, string1 = value1 + \"\", interpolate0;\n    return function() {\n      var string0 = this.getAttributeNS(fullname.space, fullname.local);\n      return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1);\n    };\n  }\n  function attrFunction(name, interpolate2, value) {\n    var string00, string10, 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 : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1));\n    };\n  }\n  function attrFunctionNS(fullname, interpolate2, value) {\n    var string00, string10, 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 : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1));\n    };\n  }\n  function transition_attr(name, value) {\n    var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransformSvg : interpolate;\n    return this.attrTween(name, typeof value === \"function\" ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value)) : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname) : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n  }\n  function attrInterpolate(name, i) {\n    return function(t) {\n      this.setAttribute(name, i.call(this, t));\n    };\n  }\n  function attrInterpolateNS(fullname, i) {\n    return function(t) {\n      this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n    };\n  }\n  function 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  function 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  function transition_attrTween(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  function delayFunction(id2, value) {\n    return function() {\n      init(this, id2).delay = +value.apply(this, arguments);\n    };\n  }\n  function delayConstant(id2, value) {\n    return value = +value, function() {\n      init(this, id2).delay = value;\n    };\n  }\n  function transition_delay(value) {\n    var id2 = this._id;\n    return arguments.length ? this.each((typeof value === \"function\" ? delayFunction : delayConstant)(id2, value)) : get(this.node(), id2).delay;\n  }\n  function durationFunction(id2, value) {\n    return function() {\n      set(this, id2).duration = +value.apply(this, arguments);\n    };\n  }\n  function durationConstant(id2, value) {\n    return value = +value, function() {\n      set(this, id2).duration = value;\n    };\n  }\n  function transition_duration(value) {\n    var id2 = this._id;\n    return arguments.length ? this.each((typeof value === \"function\" ? durationFunction : durationConstant)(id2, value)) : get(this.node(), id2).duration;\n  }\n  function easeConstant(id2, value) {\n    if (typeof value !== \"function\") throw new Error();\n    return function() {\n      set(this, id2).ease = value;\n    };\n  }\n  function transition_ease(value) {\n    var id2 = this._id;\n    return arguments.length ? this.each(easeConstant(id2, value)) : get(this.node(), id2).ease;\n  }\n  function easeVarying(id2, value) {\n    return function() {\n      var v = value.apply(this, arguments);\n      if (typeof v !== \"function\") throw new Error();\n      set(this, id2).ease = v;\n    };\n  }\n  function transition_easeVarying(value) {\n    if (typeof value !== \"function\") throw new Error();\n    return this.each(easeVarying(this._id, value));\n  }\n  function transition_filter(match) {\n    if (typeof match !== \"function\") match = matcher(match);\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    return new Transition(subgroups, this._parents, this._name, this._id);\n  }\n  function transition_merge(transition) {\n    if (transition._id !== this._id) throw new Error();\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    for (; j < m0; ++j) {\n      merges[j] = groups0[j];\n    }\n    return new Transition(merges, this._parents, this._name, this._id);\n  }\n  function 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  function onFunction(id2, name, listener) {\n    var on0, on1, sit = start(name) ? init : set;\n    return function() {\n      var schedule2 = sit(this, id2), on = schedule2.on;\n      if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n      schedule2.on = on1;\n    };\n  }\n  function transition_on(name, listener) {\n    var id2 = this._id;\n    return arguments.length < 2 ? get(this.node(), id2).on.on(name) : this.each(onFunction(id2, name, listener));\n  }\n  function removeFunction(id2) {\n    return function() {\n      var parent = this.parentNode;\n      for (var i in this.__transition) if (+i !== id2) return;\n      if (parent) parent.removeChild(this);\n    };\n  }\n  function transition_remove() {\n    return this.on(\"end.remove\", removeFunction(this._id));\n  }\n  function transition_select(select2) {\n    var name = this._name, id2 = this._id;\n    if (typeof select2 !== \"function\") select2 = selector(select2);\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 = select2.call(node, node.__data__, i, group))) {\n          if (\"__data__\" in node) subnode.__data__ = node.__data__;\n          subgroup[i] = subnode;\n          schedule(subgroup[i], name, id2, i, subgroup, get(node, id2));\n        }\n      }\n    }\n    return new Transition(subgroups, this._parents, name, id2);\n  }\n  function transition_selectAll(select2) {\n    var name = this._name, id2 = this._id;\n    if (typeof select2 !== \"function\") select2 = selectorAll(select2);\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 children2 = select2.call(node, node.__data__, i, group), child, inherit2 = get(node, id2), k = 0, l = children2.length; k < l; ++k) {\n            if (child = children2[k]) {\n              schedule(child, name, id2, k, children2, inherit2);\n            }\n          }\n          subgroups.push(children2);\n          parents.push(node);\n        }\n      }\n    }\n    return new Transition(subgroups, parents, name, id2);\n  }\n  var Selection = selection.prototype.constructor;\n  function transition_selection() {\n    return new Selection(this._groups, this._parents);\n  }\n  function styleNull(name, interpolate2) {\n    var string00, string10, interpolate0;\n    return function() {\n      var string0 = styleValue(this, name), string1 = (this.style.removeProperty(name), styleValue(this, name));\n      return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, string10 = string1);\n    };\n  }\n  function styleRemove(name) {\n    return function() {\n      this.style.removeProperty(name);\n    };\n  }\n  function styleConstant(name, interpolate2, value1) {\n    var string00, string1 = value1 + \"\", interpolate0;\n    return function() {\n      var string0 = styleValue(this, name);\n      return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1);\n    };\n  }\n  function styleFunction(name, interpolate2, value) {\n    var string00, string10, interpolate0;\n    return function() {\n      var string0 = styleValue(this, name), value1 = value(this), string1 = value1 + \"\";\n      if (value1 == null) string1 = value1 = (this.style.removeProperty(name), styleValue(this, name));\n      return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1));\n    };\n  }\n  function styleMaybeRemove(id2, name) {\n    var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove2;\n    return function() {\n      var schedule2 = set(this, id2), on = schedule2.on, listener = schedule2.value[key] == null ? remove2 || (remove2 = styleRemove(name)) : void 0;\n      if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n      schedule2.on = on1;\n    };\n  }\n  function transition_style(name, value, priority) {\n    var i = (name += \"\") === \"transform\" ? interpolateTransformCss : interpolate;\n    return value == null ? this.styleTween(name, styleNull(name, i)).on(\"end.style.\" + name, styleRemove(name)) : typeof value === \"function\" ? this.styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value))).each(styleMaybeRemove(this._id, name)) : this.styleTween(name, styleConstant(name, i, value), priority).on(\"end.style.\" + name, null);\n  }\n  function styleInterpolate(name, i, priority) {\n    return function(t) {\n      this.style.setProperty(name, i.call(this, t), priority);\n    };\n  }\n  function 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  function transition_styleTween(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  function textConstant(value) {\n    return function() {\n      this.textContent = value;\n    };\n  }\n  function textFunction(value) {\n    return function() {\n      var value1 = value(this);\n      this.textContent = value1 == null ? \"\" : value1;\n    };\n  }\n  function transition_text(value) {\n    return this.tween(\"text\", typeof value === \"function\" ? textFunction(tweenValue(this, \"text\", value)) : textConstant(value == null ? \"\" : value + \"\"));\n  }\n  function textInterpolate(i) {\n    return function(t) {\n      this.textContent = i.call(this, t);\n    };\n  }\n  function 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  function transition_textTween(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 transition_transition() {\n    var name = this._name, id0 = this._id, id1 = newId();\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 inherit2 = get(node, id0);\n          schedule(node, name, id1, i, group, {\n            time: inherit2.time + inherit2.delay + inherit2.duration,\n            delay: 0,\n            duration: inherit2.duration,\n            ease: inherit2.ease\n          });\n        }\n      }\n    }\n    return new Transition(groups, this._parents, name, id1);\n  }\n  function transition_end() {\n    var on0, on1, that = this, id2 = that._id, size = that.size();\n    return new Promise(function(resolve, reject) {\n      var cancel = { value: reject }, end = { value: function() {\n        if (--size === 0) resolve();\n      } };\n      that.each(function() {\n        var schedule2 = set(this, id2), on = schedule2.on;\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        schedule2.on = on1;\n      });\n      if (size === 0) resolve();\n    });\n  }\n  var id = 0;\n  function Transition(groups, parents, name, id2) {\n    this._groups = groups;\n    this._parents = parents;\n    this._name = name;\n    this._id = id2;\n  }\n  function newId() {\n    return ++id;\n  }\n  var selection_prototype = selection.prototype;\n  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  function cubicInOut(t) {\n    return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n  }\n  var defaultTiming = {\n    time: null,\n    // Set on use.\n    delay: 0,\n    duration: 250,\n    ease: cubicInOut\n  };\n  function inherit(node, id2) {\n    var timing;\n    while (!(timing = node.__transition) || !(timing = timing[id2])) {\n      if (!(node = node.parentNode)) {\n        throw new Error(`transition ${id2} not found`);\n      }\n    }\n    return timing;\n  }\n  function selection_transition(name) {\n    var id2, timing;\n    if (name instanceof Transition) {\n      id2 = name._id, name = name._name;\n    } else {\n      id2 = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\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, id2, i, group, timing || inherit(node, id2));\n        }\n      }\n    }\n    return new Transition(groups, this._parents, name, id2);\n  }\n  selection.prototype.interrupt = selection_interrupt;\n  selection.prototype.transition = selection_transition;\n  const constant = (x) => () => x;\n  function ZoomEvent(type, {\n    sourceEvent: sourceEvent2,\n    target,\n    transform,\n    dispatch: dispatch2\n  }) {\n    Object.defineProperties(this, {\n      type: { value: type, enumerable: true, configurable: true },\n      sourceEvent: { value: sourceEvent2, enumerable: true, configurable: true },\n      target: { value: target, enumerable: true, configurable: true },\n      transform: { value: transform, enumerable: true, configurable: true },\n      _: { value: dispatch2 }\n    });\n  }\n  function Transform(k, x, y) {\n    this.k = k;\n    this.x = x;\n    this.y = y;\n  }\n  Transform.prototype = {\n    constructor: Transform,\n    scale: function(k) {\n      return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n    },\n    translate: function(x, y) {\n      return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n    },\n    apply: function(point) {\n      return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n    },\n    applyX: function(x) {\n      return x * this.k + this.x;\n    },\n    applyY: function(y) {\n      return y * this.k + this.y;\n    },\n    invert: function(location) {\n      return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n    },\n    invertX: function(x) {\n      return (x - this.x) / this.k;\n    },\n    invertY: function(y) {\n      return (y - this.y) / this.k;\n    },\n    rescaleX: function(x) {\n      return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n    },\n    rescaleY: function(y) {\n      return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n    },\n    toString: function() {\n      return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n    }\n  };\n  var identity = new Transform(1, 0, 0);\n  Transform.prototype;\n  function nopropagation(event) {\n    event.stopImmediatePropagation();\n  }\n  function noevent(event) {\n    event.preventDefault();\n    event.stopImmediatePropagation();\n  }\n  function defaultFilter(event) {\n    return (!event.ctrlKey || event.type === \"wheel\") && !event.button;\n  }\n  function defaultExtent() {\n    var e = this;\n    if (e instanceof SVGElement) {\n      e = e.ownerSVGElement || e;\n      if (e.hasAttribute(\"viewBox\")) {\n        e = e.viewBox.baseVal;\n        return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n      }\n      return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n    }\n    return [[0, 0], [e.clientWidth, e.clientHeight]];\n  }\n  function defaultTransform() {\n    return this.__zoom || identity;\n  }\n  function defaultWheelDelta(event) {\n    return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 2e-3) * (event.ctrlKey ? 10 : 1);\n  }\n  function defaultTouchable() {\n    return navigator.maxTouchPoints || \"ontouchstart\" in this;\n  }\n  function defaultConstrain(transform, extent, translateExtent) {\n    var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0], dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0], dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1], dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n    return transform.translate(\n      dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n      dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n    );\n  }\n  function zoom() {\n    var filter2 = defaultFilter, extent = defaultExtent, constrain = defaultConstrain, wheelDelta = defaultWheelDelta, touchable = defaultTouchable, scaleExtent = [0, Infinity], translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]], duration = 250, interpolate2 = interpolateZoom, listeners = dispatch(\"start\", \"zoom\", \"end\"), touchstarting, touchfirst, touchending, touchDelay = 500, wheelDelay = 150, clickDistance2 = 0, tapDistance = 10;\n    function zoom2(selection2) {\n      selection2.property(\"__zoom\", defaultTransform).on(\"wheel.zoom\", wheeled, { passive: false }).on(\"mousedown.zoom\", mousedowned).on(\"dblclick.zoom\", dblclicked).filter(touchable).on(\"touchstart.zoom\", touchstarted).on(\"touchmove.zoom\", touchmoved).on(\"touchend.zoom touchcancel.zoom\", touchended).style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n    }\n    zoom2.transform = function(collection, transform, point, event) {\n      var selection2 = collection.selection ? collection.selection() : collection;\n      selection2.property(\"__zoom\", defaultTransform);\n      if (collection !== selection2) {\n        schedule2(collection, transform, point, event);\n      } else {\n        selection2.interrupt().each(function() {\n          gesture(this, arguments).event(event).start().zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform).end();\n        });\n      }\n    };\n    zoom2.scaleBy = function(selection2, k, p, event) {\n      zoom2.scaleTo(selection2, function() {\n        var k0 = this.__zoom.k, k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n        return k0 * k1;\n      }, p, event);\n    };\n    zoom2.scaleTo = function(selection2, k, p, event) {\n      zoom2.transform(selection2, function() {\n        var e = extent.apply(this, arguments), t0 = this.__zoom, p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p, p1 = t0.invert(p0), k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n        return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n      }, p, event);\n    };\n    zoom2.translateBy = function(selection2, x, y, event) {\n      zoom2.transform(selection2, function() {\n        return constrain(this.__zoom.translate(\n          typeof x === \"function\" ? x.apply(this, arguments) : x,\n          typeof y === \"function\" ? y.apply(this, arguments) : y\n        ), extent.apply(this, arguments), translateExtent);\n      }, null, event);\n    };\n    zoom2.translateTo = function(selection2, x, y, p, event) {\n      zoom2.transform(selection2, function() {\n        var e = extent.apply(this, arguments), t = this.__zoom, p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n        return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n          typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n          typeof y === \"function\" ? -y.apply(this, arguments) : -y\n        ), e, translateExtent);\n      }, p, event);\n    };\n    function scale(transform, k) {\n      k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n      return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n    }\n    function translate(transform, p0, p1) {\n      var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n      return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n    }\n    function centroid(extent2) {\n      return [(+extent2[0][0] + +extent2[1][0]) / 2, (+extent2[0][1] + +extent2[1][1]) / 2];\n    }\n    function schedule2(transition, transform, point, event) {\n      transition.on(\"start.zoom\", function() {\n        gesture(this, arguments).event(event).start();\n      }).on(\"interrupt.zoom end.zoom\", function() {\n        gesture(this, arguments).event(event).end();\n      }).tween(\"zoom\", function() {\n        var that = this, args = arguments, g = gesture(that, args).event(event), e = extent.apply(that, args), p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point, w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]), a = that.__zoom, b = typeof transform === \"function\" ? transform.apply(that, args) : transform, i = interpolate2(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n        return function(t) {\n          if (t === 1) t = b;\n          else {\n            var l = i(t), k = w / l[2];\n            t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k);\n          }\n          g.zoom(null, t);\n        };\n      });\n    }\n    function gesture(that, args, clean) {\n      return !clean && that.__zooming || new Gesture(that, args);\n    }\n    function Gesture(that, args) {\n      this.that = that;\n      this.args = args;\n      this.active = 0;\n      this.sourceEvent = null;\n      this.extent = extent.apply(that, args);\n      this.taps = 0;\n    }\n    Gesture.prototype = {\n      event: function(event) {\n        if (event) this.sourceEvent = event;\n        return this;\n      },\n      start: function() {\n        if (++this.active === 1) {\n          this.that.__zooming = this;\n          this.emit(\"start\");\n        }\n        return this;\n      },\n      zoom: function(key, transform) {\n        if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n        if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n        if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n        this.that.__zoom = transform;\n        this.emit(\"zoom\");\n        return this;\n      },\n      end: function() {\n        if (--this.active === 0) {\n          delete this.that.__zooming;\n          this.emit(\"end\");\n        }\n        return this;\n      },\n      emit: function(type) {\n        var d = select(this.that).datum();\n        listeners.call(\n          type,\n          this.that,\n          new ZoomEvent(type, {\n            sourceEvent: this.sourceEvent,\n            target: zoom2,\n            type,\n            transform: this.that.__zoom,\n            dispatch: listeners\n          }),\n          d\n        );\n      }\n    };\n    function wheeled(event, ...args) {\n      if (!filter2.apply(this, arguments)) return;\n      var g = gesture(this, args).event(event), t = this.__zoom, k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))), p = pointer(event);\n      if (g.wheel) {\n        if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n          g.mouse[1] = t.invert(g.mouse[0] = p);\n        }\n        clearTimeout(g.wheel);\n      } else if (t.k === k) return;\n      else {\n        g.mouse = [p, t.invert(p)];\n        interrupt(this);\n        g.start();\n      }\n      noevent(event);\n      g.wheel = setTimeout(wheelidled, wheelDelay);\n      g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n      function wheelidled() {\n        g.wheel = null;\n        g.end();\n      }\n    }\n    function mousedowned(event, ...args) {\n      if (touchending || !filter2.apply(this, arguments)) return;\n      var currentTarget = event.currentTarget, g = gesture(this, args, true).event(event), v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true), p = pointer(event, currentTarget), x0 = event.clientX, y0 = event.clientY;\n      dragDisable(event.view);\n      nopropagation(event);\n      g.mouse = [p, this.__zoom.invert(p)];\n      interrupt(this);\n      g.start();\n      function mousemoved(event2) {\n        noevent(event2);\n        if (!g.moved) {\n          var dx = event2.clientX - x0, dy = event2.clientY - y0;\n          g.moved = dx * dx + dy * dy > clickDistance2;\n        }\n        g.event(event2).zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event2, currentTarget), g.mouse[1]), g.extent, translateExtent));\n      }\n      function mouseupped(event2) {\n        v.on(\"mousemove.zoom mouseup.zoom\", null);\n        yesdrag(event2.view, g.moved);\n        noevent(event2);\n        g.event(event2).end();\n      }\n    }\n    function dblclicked(event, ...args) {\n      if (!filter2.apply(this, arguments)) return;\n      var t0 = this.__zoom, p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this), p1 = t0.invert(p0), k1 = t0.k * (event.shiftKey ? 0.5 : 2), t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n      noevent(event);\n      if (duration > 0) select(this).transition().duration(duration).call(schedule2, t1, p0, event);\n      else select(this).call(zoom2.transform, t1, p0, event);\n    }\n    function touchstarted(event, ...args) {\n      if (!filter2.apply(this, arguments)) return;\n      var touches = event.touches, n = touches.length, g = gesture(this, args, event.changedTouches.length === n).event(event), started, i, t, p;\n      nopropagation(event);\n      for (i = 0; i < n; ++i) {\n        t = touches[i], p = pointer(t, this);\n        p = [p, this.__zoom.invert(p), t.identifier];\n        if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n        else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n      }\n      if (touchstarting) touchstarting = clearTimeout(touchstarting);\n      if (started) {\n        if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() {\n          touchstarting = null;\n        }, touchDelay);\n        interrupt(this);\n        g.start();\n      }\n    }\n    function touchmoved(event, ...args) {\n      if (!this.__zooming) return;\n      var g = gesture(this, args).event(event), touches = event.changedTouches, n = touches.length, i, t, p, l;\n      noevent(event);\n      for (i = 0; i < n; ++i) {\n        t = touches[i], p = pointer(t, this);\n        if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n        else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n      }\n      t = g.that.__zoom;\n      if (g.touch1) {\n        var p0 = g.touch0[0], l0 = g.touch0[1], p1 = g.touch1[0], l1 = g.touch1[1], dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp, dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n        t = scale(t, Math.sqrt(dp / dl));\n        p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n        l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n      } else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n      else return;\n      g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n    }\n    function touchended(event, ...args) {\n      if (!this.__zooming) return;\n      var g = gesture(this, args).event(event), touches = event.changedTouches, n = touches.length, i, t;\n      nopropagation(event);\n      if (touchending) clearTimeout(touchending);\n      touchending = setTimeout(function() {\n        touchending = null;\n      }, touchDelay);\n      for (i = 0; i < n; ++i) {\n        t = touches[i];\n        if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n        else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n      }\n      if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n      if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n      else {\n        g.end();\n        if (g.taps === 2) {\n          t = pointer(t, this);\n          if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n            var p = select(this).on(\"dblclick.zoom\");\n            if (p) p.apply(this, arguments);\n          }\n        }\n      }\n    }\n    zoom2.wheelDelta = function(_) {\n      return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom2) : wheelDelta;\n    };\n    zoom2.filter = function(_) {\n      return arguments.length ? (filter2 = typeof _ === \"function\" ? _ : constant(!!_), zoom2) : filter2;\n    };\n    zoom2.touchable = function(_) {\n      return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom2) : touchable;\n    };\n    zoom2.extent = function(_) {\n      return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom2) : extent;\n    };\n    zoom2.scaleExtent = function(_) {\n      return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom2) : [scaleExtent[0], scaleExtent[1]];\n    };\n    zoom2.translateExtent = function(_) {\n      return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom2) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n    };\n    zoom2.constrain = function(_) {\n      return arguments.length ? (constrain = _, zoom2) : constrain;\n    };\n    zoom2.duration = function(_) {\n      return arguments.length ? (duration = +_, zoom2) : duration;\n    };\n    zoom2.interpolate = function(_) {\n      return arguments.length ? (interpolate2 = _, zoom2) : interpolate2;\n    };\n    zoom2.on = function() {\n      var value = listeners.on.apply(listeners, arguments);\n      return value === listeners ? zoom2 : value;\n    };\n    zoom2.clickDistance = function(_) {\n      return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom2) : Math.sqrt(clickDistance2);\n    };\n    zoom2.tapDistance = function(_) {\n      return arguments.length ? (tapDistance = +_, zoom2) : tapDistance;\n    };\n    return zoom2;\n  }\n  const Slots = Symbol(\"MiniMapSlots\");\n  const _hoisted_1$1 = [\"id\", \"x\", \"y\", \"rx\", \"ry\", \"width\", \"height\", \"fill\", \"stroke\", \"stroke-width\", \"shape-rendering\"];\n  const __default__$1 = {\n    name: \"MiniMapNode\",\n    compatConfig: { MODE: 3 },\n    inheritAttrs: false\n  };\n  const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({\n    ...__default__$1,\n    props: {\n      id: {},\n      type: {},\n      selected: { type: Boolean },\n      dragging: { type: Boolean },\n      position: {},\n      dimensions: {},\n      borderRadius: {},\n      color: {},\n      shapeRendering: {},\n      strokeColor: {},\n      strokeWidth: {},\n      hidden: { type: Boolean }\n    },\n    emits: [\"click\", \"dblclick\", \"mouseenter\", \"mousemove\", \"mouseleave\"],\n    setup(__props, { emit: emits }) {\n      const props = __props;\n      const miniMapSlots = vue.inject(Slots);\n      const attrs = vue.useAttrs();\n      const style = vue.toRef(() => attrs.style ?? {});\n      function onClick(event) {\n        emits(\"click\", event);\n      }\n      function onDblclick(event) {\n        emits(\"dblclick\", event);\n      }\n      function onMouseEnter(event) {\n        emits(\"mouseenter\", event);\n      }\n      function onMouseMove(event) {\n        emits(\"mousemove\", event);\n      }\n      function onMouseLeave(event) {\n        emits(\"mouseleave\", event);\n      }\n      return (_ctx, _cache) => {\n        return !_ctx.hidden && _ctx.dimensions.width !== 0 && _ctx.dimensions.height !== 0 ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [\n          vue.unref(miniMapSlots)[`node-${props.type}`] ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(miniMapSlots)[`node-${props.type}`]), vue.normalizeProps(vue.mergeProps({ key: 0 }, { ...props, ..._ctx.$attrs })), null, 16)) : (vue.openBlock(), vue.createElementBlock(\"rect\", vue.mergeProps({\n            key: 1,\n            id: _ctx.id\n          }, _ctx.$attrs, {\n            class: [\"vue-flow__minimap-node\", { selected: _ctx.selected, dragging: _ctx.dragging }],\n            x: _ctx.position.x,\n            y: _ctx.position.y,\n            rx: _ctx.borderRadius,\n            ry: _ctx.borderRadius,\n            width: _ctx.dimensions.width,\n            height: _ctx.dimensions.height,\n            fill: _ctx.color || style.value.background || style.value.backgroundColor,\n            stroke: _ctx.strokeColor,\n            \"stroke-width\": _ctx.strokeWidth,\n            \"shape-rendering\": _ctx.shapeRendering,\n            onClick,\n            onDblclick,\n            onMouseenter: onMouseEnter,\n            onMousemove: onMouseMove,\n            onMouseleave: onMouseLeave\n          }), null, 16, _hoisted_1$1))\n        ], 64)) : vue.createCommentVNode(\"\", true);\n      };\n    }\n  });\n  const _hoisted_1 = [\"width\", \"height\", \"viewBox\", \"aria-labelledby\"];\n  const _hoisted_2 = [\"id\"];\n  const _hoisted_3 = [\"d\", \"fill\", \"stroke\", \"stroke-width\"];\n  const __default__ = {\n    name: \"MiniMap\",\n    compatConfig: { MODE: 3 }\n  };\n  const _sfc_main = /* @__PURE__ */ vue.defineComponent({\n    ...__default__,\n    props: {\n      nodeColor: { type: [String, Function], default: \"#e2e2e2\" },\n      nodeStrokeColor: { type: [String, Function], default: \"transparent\" },\n      nodeClassName: { type: [String, Function] },\n      nodeBorderRadius: { default: 5 },\n      nodeStrokeWidth: { default: 2 },\n      maskColor: { default: \"rgb(240, 240, 240, 0.6)\" },\n      maskStrokeColor: { default: \"none\" },\n      maskStrokeWidth: { default: 1 },\n      position: { default: \"bottom-right\" },\n      pannable: { type: Boolean, default: false },\n      zoomable: { type: Boolean, default: false },\n      width: {},\n      height: {},\n      ariaLabel: { default: \"Vue Flow mini map\" },\n      inversePan: { type: Boolean, default: false },\n      zoomStep: { default: 1 },\n      offsetScale: { default: 5 },\n      maskBorderRadius: { default: 0 }\n    },\n    emits: [\"click\", \"nodeClick\", \"nodeDblclick\", \"nodeMouseenter\", \"nodeMousemove\", \"nodeMouseleave\"],\n    setup(__props, { emit }) {\n      const slots = vue.useSlots();\n      const attrs = vue.useAttrs();\n      const defaultWidth = 200;\n      const defaultHeight = 150;\n      const { id: id2, edges, viewport, translateExtent, dimensions, emits, d3Selection, d3Zoom, getNodesInitialized } = core.useVueFlow();\n      const el = vue.ref();\n      vue.provide(Slots, slots);\n      const elementWidth = vue.toRef(() => {\n        var _a;\n        return __props.width ?? ((_a = attrs.style) == null ? void 0 : _a.width) ?? defaultWidth;\n      });\n      const elementHeight = vue.toRef(() => {\n        var _a;\n        return __props.height ?? ((_a = attrs.style) == null ? void 0 : _a.height) ?? defaultHeight;\n      });\n      const shapeRendering = typeof window === \"undefined\" || !!window.chrome ? \"crispEdges\" : \"geometricPrecision\";\n      const nodeColorFunc = vue.computed(() => typeof __props.nodeColor === \"string\" ? () => __props.nodeColor : __props.nodeColor);\n      const nodeStrokeColorFunc = vue.computed(\n        () => typeof __props.nodeStrokeColor === \"string\" ? () => __props.nodeStrokeColor : __props.nodeStrokeColor\n      );\n      const nodeClassNameFunc = vue.computed(\n        () => typeof __props.nodeClassName === \"string\" ? () => __props.nodeClassName : typeof __props.nodeClassName === \"function\" ? __props.nodeClassName : () => \"\"\n      );\n      const bb = vue.computed(() => core.getRectOfNodes(getNodesInitialized.value.filter((node) => !node.hidden)));\n      const viewBB = vue.computed(() => ({\n        x: -viewport.value.x / viewport.value.zoom,\n        y: -viewport.value.y / viewport.value.zoom,\n        width: dimensions.value.width / viewport.value.zoom,\n        height: dimensions.value.height / viewport.value.zoom\n      }));\n      const boundingRect = vue.computed(\n        () => getNodesInitialized.value && getNodesInitialized.value.length ? core.getBoundsofRects(bb.value, viewBB.value) : viewBB.value\n      );\n      const viewScale = vue.computed(() => {\n        const scaledWidth = boundingRect.value.width / elementWidth.value;\n        const scaledHeight = boundingRect.value.height / elementHeight.value;\n        return Math.max(scaledWidth, scaledHeight);\n      });\n      const viewBox = vue.computed(() => {\n        const viewWidth = viewScale.value * elementWidth.value;\n        const viewHeight = viewScale.value * elementHeight.value;\n        const offset = __props.offsetScale * viewScale.value;\n        return {\n          offset,\n          x: boundingRect.value.x - (viewWidth - boundingRect.value.width) / 2 - offset,\n          y: boundingRect.value.y - (viewHeight - boundingRect.value.height) / 2 - offset,\n          width: viewWidth + offset * 2,\n          height: viewHeight + offset * 2\n        };\n      });\n      const d = vue.computed(() => {\n        if (!viewBox.value.x || !viewBox.value.y) {\n          return \"\";\n        }\n        return `\n    M${viewBox.value.x - viewBox.value.offset},${viewBox.value.y - viewBox.value.offset}\n    h${viewBox.value.width + viewBox.value.offset * 2}\n    v${viewBox.value.height + viewBox.value.offset * 2}\n    h${-viewBox.value.width - viewBox.value.offset * 2}z\n    M${viewBB.value.x + __props.maskBorderRadius},${viewBB.value.y}\n    h${viewBB.value.width - 2 * __props.maskBorderRadius}\n    a${__props.maskBorderRadius},${__props.maskBorderRadius} 0 0 1 ${__props.maskBorderRadius},${__props.maskBorderRadius}\n    v${viewBB.value.height - 2 * __props.maskBorderRadius}\n    a${__props.maskBorderRadius},${__props.maskBorderRadius} 0 0 1 -${__props.maskBorderRadius},${__props.maskBorderRadius}\n    h${-(viewBB.value.width - 2 * __props.maskBorderRadius)}\n    a${__props.maskBorderRadius},${__props.maskBorderRadius} 0 0 1 -${__props.maskBorderRadius},-${__props.maskBorderRadius}\n    v${-(viewBB.value.height - 2 * __props.maskBorderRadius)}\n    a${__props.maskBorderRadius},${__props.maskBorderRadius} 0 0 1 ${__props.maskBorderRadius},-${__props.maskBorderRadius}z`;\n      });\n      vue.watchEffect(\n        (onCleanup) => {\n          if (el.value) {\n            const selection2 = select(el.value);\n            const zoomHandler = (event) => {\n              if (event.sourceEvent.type !== \"wheel\" || !d3Selection.value || !d3Zoom.value) {\n                return;\n              }\n              const factor = event.sourceEvent.ctrlKey && core.isMacOs() ? 10 : 1;\n              const pinchDelta = -event.sourceEvent.deltaY * (event.sourceEvent.deltaMode === 1 ? 0.05 : event.sourceEvent.deltaMode ? 1 : 2e-3) * __props.zoomStep;\n              const nextZoom = viewport.value.zoom * 2 ** (pinchDelta * factor);\n              d3Zoom.value.scaleTo(d3Selection.value, nextZoom);\n            };\n            const panHandler = (event) => {\n              if (event.sourceEvent.type !== \"mousemove\" || !d3Selection.value || !d3Zoom.value) {\n                return;\n              }\n              const moveScale = viewScale.value * Math.max(1, viewport.value.zoom) * (__props.inversePan ? -1 : 1);\n              const position = {\n                x: viewport.value.x - event.sourceEvent.movementX * moveScale,\n                y: viewport.value.y - event.sourceEvent.movementY * moveScale\n              };\n              const extent = [\n                [0, 0],\n                [dimensions.value.width, dimensions.value.height]\n              ];\n              const nextTransform = identity.translate(position.x, position.y).scale(viewport.value.zoom);\n              const constrainedTransform = d3Zoom.value.constrain()(nextTransform, extent, translateExtent.value);\n              d3Zoom.value.transform(d3Selection.value, constrainedTransform);\n            };\n            const zoomAndPanHandler = zoom().wheelDelta((event) => core.wheelDelta(event) * (__props.zoomStep / 10)).on(\"zoom\", __props.pannable ? panHandler : () => {\n            }).on(\"zoom.wheel\", __props.zoomable ? zoomHandler : () => {\n            });\n            selection2.call(zoomAndPanHandler);\n            onCleanup(() => {\n              selection2.on(\"zoom\", null);\n            });\n          }\n        },\n        { flush: \"post\" }\n      );\n      function onSvgClick(event) {\n        const [x, y] = pointer(event);\n        emit(\"click\", { event, position: { x, y } });\n      }\n      function onNodeClick(event, node) {\n        const param = { event, node, connectedEdges: core.getConnectedEdges([node], edges.value) };\n        emits.miniMapNodeClick(param);\n        emit(\"nodeClick\", param);\n      }\n      function onNodeDblClick(event, node) {\n        const param = { event, node, connectedEdges: core.getConnectedEdges([node], edges.value) };\n        emits.miniMapNodeDoubleClick(param);\n        emit(\"nodeDblclick\", param);\n      }\n      function onNodeMouseEnter(event, node) {\n        const param = { event, node, connectedEdges: core.getConnectedEdges([node], edges.value) };\n        emits.miniMapNodeMouseEnter(param);\n        emit(\"nodeMouseenter\", param);\n      }\n      function onNodeMouseMove(event, node) {\n        const param = { event, node, connectedEdges: core.getConnectedEdges([node], edges.value) };\n        emits.miniMapNodeMouseMove(param);\n        emit(\"nodeMousemove\", param);\n      }\n      function onNodeMouseLeave(event, node) {\n        const param = { event, node, connectedEdges: core.getConnectedEdges([node], edges.value) };\n        emits.miniMapNodeMouseLeave(param);\n        emit(\"nodeMouseleave\", param);\n      }\n      return (_ctx, _cache) => {\n        return vue.openBlock(), vue.createBlock(vue.unref(core.Panel), {\n          position: _ctx.position,\n          class: vue.normalizeClass([\"vue-flow__minimap\", { pannable: _ctx.pannable, zoomable: _ctx.zoomable }])\n        }, {\n          default: vue.withCtx(() => [\n            (vue.openBlock(), vue.createElementBlock(\"svg\", {\n              ref_key: \"el\",\n              ref: el,\n              width: elementWidth.value,\n              height: elementHeight.value,\n              viewBox: [viewBox.value.x, viewBox.value.y, viewBox.value.width, viewBox.value.height].join(\" \"),\n              role: \"img\",\n              \"aria-labelledby\": `vue-flow__minimap-${vue.unref(id2)}`,\n              onClick: onSvgClick\n            }, [\n              _ctx.ariaLabel ? (vue.openBlock(), vue.createElementBlock(\"title\", {\n                key: 0,\n                id: `vue-flow__minimap-${vue.unref(id2)}`\n              }, vue.toDisplayString(_ctx.ariaLabel), 9, _hoisted_2)) : vue.createCommentVNode(\"\", true),\n              (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(getNodesInitialized), (node) => {\n                return vue.openBlock(), vue.createBlock(_sfc_main$1, {\n                  id: node.id,\n                  key: node.id,\n                  f: \"\",\n                  position: node.computedPosition,\n                  dimensions: node.dimensions,\n                  selected: node.selected,\n                  dragging: node.dragging,\n                  style: vue.normalizeStyle(node.style),\n                  class: vue.normalizeClass(nodeClassNameFunc.value(node)),\n                  color: nodeColorFunc.value(node),\n                  \"border-radius\": _ctx.nodeBorderRadius,\n                  \"stroke-color\": nodeStrokeColorFunc.value(node),\n                  \"stroke-width\": _ctx.nodeStrokeWidth,\n                  \"shape-rendering\": vue.unref(shapeRendering),\n                  type: node.type,\n                  hidden: node.hidden,\n                  onClick: ($event) => onNodeClick($event, node),\n                  onDblclick: ($event) => onNodeDblClick($event, node),\n                  onMouseenter: ($event) => onNodeMouseEnter($event, node),\n                  onMousemove: ($event) => onNodeMouseMove($event, node),\n                  onMouseleave: ($event) => onNodeMouseLeave($event, node)\n                }, null, 8, [\"id\", \"position\", \"dimensions\", \"selected\", \"dragging\", \"style\", \"class\", \"color\", \"border-radius\", \"stroke-color\", \"stroke-width\", \"shape-rendering\", \"type\", \"hidden\", \"onClick\", \"onDblclick\", \"onMouseenter\", \"onMousemove\", \"onMouseleave\"]);\n              }), 128)),\n              vue.createElementVNode(\"path\", {\n                class: \"vue-flow__minimap-mask\",\n                d: d.value,\n                fill: _ctx.maskColor,\n                stroke: _ctx.maskStrokeColor,\n                \"stroke-width\": _ctx.maskStrokeWidth,\n                \"fill-rule\": \"evenodd\"\n              }, null, 8, _hoisted_3)\n            ], 8, _hoisted_1))\n          ]),\n          _: 1\n        }, 8, [\"position\", \"class\"]);\n      };\n    }\n  });\n  exports.MiniMap = _sfc_main;\n  exports.MiniMapNode = _sfc_main$1;\n  exports.Slots = Slots;\n  Object.defineProperty(exports, Symbol.toStringTag, { value: \"Module\" });\n  return exports;\n}({}, Vue, VueFlowCore);\n"]}