{"version":3,"sources":["jsdelivr-header.js","/npm/markmap-view@0.18.10/dist/browser/index.js"],"names":[],"mappings":"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","file":"/npm/markmap-view@0.18.10/dist/browser/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/markmap-view@0.18.10/dist/browser/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","(function(exports, d32) {\n  \"use strict\";\n  class Hook {\n    constructor() {\n      this.listeners = [];\n    }\n    tap(fn) {\n      this.listeners.push(fn);\n      return () => this.revoke(fn);\n    }\n    revoke(fn) {\n      const i = this.listeners.indexOf(fn);\n      if (i >= 0) this.listeners.splice(i, 1);\n    }\n    revokeAll() {\n      this.listeners.splice(0);\n    }\n    call(...args) {\n      for (const fn of this.listeners) {\n        fn(...args);\n      }\n    }\n  }\n  const uniqId = Math.random().toString(36).slice(2, 8);\n  let globalIndex = 0;\n  function getId() {\n    globalIndex += 1;\n    return `mm-${uniqId}-${globalIndex}`;\n  }\n  function noop() {\n  }\n  function walkTree(tree, callback) {\n    const walk = (item, parent) => callback(\n      item,\n      () => {\n        var _a;\n        return (_a = item.children) == null ? void 0 : _a.map((child) => walk(child, item));\n      },\n      parent\n    );\n    return walk(tree);\n  }\n  function addClass(className, ...rest) {\n    const classList = (className || \"\").split(\" \").filter(Boolean);\n    rest.forEach((item) => {\n      if (item && classList.indexOf(item) < 0) classList.push(item);\n    });\n    return classList.join(\" \");\n  }\n  function defer() {\n    const obj = {};\n    obj.promise = new Promise((resolve, reject) => {\n      obj.resolve = resolve;\n      obj.reject = reject;\n    });\n    return obj;\n  }\n  function memoize(fn) {\n    const cache = {};\n    return function memoized(...args) {\n      const key = `${args[0]}`;\n      let data = cache[key];\n      if (!data) {\n        data = {\n          value: fn(...args)\n        };\n        cache[key] = data;\n      }\n      return data.value;\n    };\n  }\n  function debounce(fn, time) {\n    const state = {\n      timer: 0\n    };\n    function reset() {\n      if (state.timer) {\n        window.clearTimeout(state.timer);\n        state.timer = 0;\n      }\n    }\n    function run() {\n      reset();\n      if (state.args) state.result = fn(...state.args);\n    }\n    return function debounced(...args) {\n      reset();\n      state.args = args;\n      state.timer = window.setTimeout(run, time);\n      return state.result;\n    };\n  }\n  /*! @gera2ld/jsx-dom v2.2.2 | ISC License */\n  const VTYPE_ELEMENT = 1;\n  const VTYPE_FUNCTION = 2;\n  const SVG_NS = \"http://www.w3.org/2000/svg\";\n  const XLINK_NS = \"http://www.w3.org/1999/xlink\";\n  const NS_ATTRS = {\n    show: XLINK_NS,\n    actuate: XLINK_NS,\n    href: XLINK_NS\n  };\n  const isLeaf = (c) => typeof c === \"string\" || typeof c === \"number\";\n  const isElement = (c) => (c == null ? void 0 : c.vtype) === VTYPE_ELEMENT;\n  const isRenderFunction = (c) => (c == null ? void 0 : c.vtype) === VTYPE_FUNCTION;\n  function h(type, props, ...children) {\n    props = Object.assign({}, props, {\n      children: children.length === 1 ? children[0] : children\n    });\n    return jsx(type, props);\n  }\n  function jsx(type, props) {\n    let vtype;\n    if (typeof type === \"string\") vtype = VTYPE_ELEMENT;\n    else if (typeof type === \"function\") vtype = VTYPE_FUNCTION;\n    else throw new Error(\"Invalid VNode type\");\n    return {\n      vtype,\n      type,\n      props\n    };\n  }\n  function Fragment(props) {\n    return props.children;\n  }\n  const DEFAULT_ENV = {\n    isSvg: false\n  };\n  function insertDom(parent, nodes) {\n    if (!Array.isArray(nodes)) nodes = [nodes];\n    nodes = nodes.filter(Boolean);\n    if (nodes.length) parent.append(...nodes);\n  }\n  function mountAttributes(domElement, props, env) {\n    for (const key in props) {\n      if (key === \"key\" || key === \"children\" || key === \"ref\") continue;\n      if (key === \"dangerouslySetInnerHTML\") {\n        domElement.innerHTML = props[key].__html;\n      } else if (key === \"innerHTML\" || key === \"textContent\" || key === \"innerText\" || key === \"value\" && [\"textarea\", \"select\"].includes(domElement.tagName)) {\n        const value = props[key];\n        if (value != null) domElement[key] = value;\n      } else if (key.startsWith(\"on\")) {\n        domElement[key.toLowerCase()] = props[key];\n      } else {\n        setDOMAttribute(domElement, key, props[key], env.isSvg);\n      }\n    }\n  }\n  const attrMap = {\n    className: \"class\",\n    labelFor: \"for\"\n  };\n  function setDOMAttribute(el, attr, value, isSVG) {\n    attr = attrMap[attr] || attr;\n    if (value === true) {\n      el.setAttribute(attr, \"\");\n    } else if (value === false) {\n      el.removeAttribute(attr);\n    } else {\n      const namespace = isSVG ? NS_ATTRS[attr] : void 0;\n      if (namespace !== void 0) {\n        el.setAttributeNS(namespace, attr, value);\n      } else {\n        el.setAttribute(attr, value);\n      }\n    }\n  }\n  function flatten(arr) {\n    return arr.reduce((prev, item) => prev.concat(item), []);\n  }\n  function mountChildren(children, env) {\n    return Array.isArray(children) ? flatten(children.map((child) => mountChildren(child, env))) : mount(children, env);\n  }\n  function mount(vnode, env = DEFAULT_ENV) {\n    if (vnode == null || typeof vnode === \"boolean\") {\n      return null;\n    }\n    if (vnode instanceof Node) {\n      return vnode;\n    }\n    if (isRenderFunction(vnode)) {\n      const {\n        type,\n        props\n      } = vnode;\n      if (type === Fragment) {\n        const node = document.createDocumentFragment();\n        if (props.children) {\n          const children = mountChildren(props.children, env);\n          insertDom(node, children);\n        }\n        return node;\n      }\n      const childVNode = type(props);\n      return mount(childVNode, env);\n    }\n    if (isLeaf(vnode)) {\n      return document.createTextNode(`${vnode}`);\n    }\n    if (isElement(vnode)) {\n      let node;\n      const {\n        type,\n        props\n      } = vnode;\n      if (!env.isSvg && type === \"svg\") {\n        env = Object.assign({}, env, {\n          isSvg: true\n        });\n      }\n      if (!env.isSvg) {\n        node = document.createElement(type);\n      } else {\n        node = document.createElementNS(SVG_NS, type);\n      }\n      mountAttributes(node, props, env);\n      if (props.children) {\n        let childEnv = env;\n        if (env.isSvg && type === \"foreignObject\") {\n          childEnv = Object.assign({}, childEnv, {\n            isSvg: false\n          });\n        }\n        const children = mountChildren(props.children, childEnv);\n        if (children != null) insertDom(node, children);\n      }\n      const {\n        ref\n      } = props;\n      if (typeof ref === \"function\") ref(node);\n      return node;\n    }\n    throw new Error(\"mount: Invalid Vnode!\");\n  }\n  function mountDom(vnode) {\n    return mount(vnode);\n  }\n  function hm(...args) {\n    return mountDom(h(...args));\n  }\n  const memoizedPreloadJS = memoize((url) => {\n    document.head.append(\n      hm(\"link\", {\n        rel: \"preload\",\n        as: \"script\",\n        href: url\n      })\n    );\n  });\n  const jsCache = {};\n  const cssCache = {};\n  async function loadJSItem(item, context) {\n    var _a;\n    const src = item.type === \"script\" && ((_a = item.data) == null ? void 0 : _a.src) || \"\";\n    item.loaded || (item.loaded = jsCache[src]);\n    if (!item.loaded) {\n      const deferred = defer();\n      item.loaded = deferred.promise;\n      if (item.type === \"script\") {\n        document.head.append(\n          hm(\"script\", {\n            ...item.data,\n            onLoad: () => deferred.resolve(),\n            onError: deferred.reject\n          })\n        );\n        if (!src) {\n          deferred.resolve();\n        } else {\n          jsCache[src] = item.loaded;\n        }\n      }\n      if (item.type === \"iife\") {\n        const { fn, getParams } = item.data;\n        fn(...(getParams == null ? void 0 : getParams(context)) || []);\n        deferred.resolve();\n      }\n    }\n    await item.loaded;\n  }\n  async function loadCSSItem(item) {\n    const url = item.type === \"stylesheet\" && item.data.href || \"\";\n    item.loaded || (item.loaded = cssCache[url]);\n    if (!item.loaded) {\n      const deferred = defer();\n      item.loaded = deferred.promise;\n      if (url) cssCache[url] = item.loaded;\n      if (item.type === \"style\") {\n        document.head.append(\n          hm(\"style\", {\n            textContent: item.data\n          })\n        );\n        deferred.resolve();\n      } else if (url) {\n        document.head.append(\n          hm(\"link\", {\n            rel: \"stylesheet\",\n            ...item.data\n          })\n        );\n        fetch(url).then((res) => {\n          if (res.ok) return res.text();\n          throw res;\n        }).then(() => deferred.resolve(), deferred.reject);\n      }\n    }\n    await item.loaded;\n  }\n  async function loadJS(items, context) {\n    items.forEach((item) => {\n      var _a;\n      if (item.type === \"script\" && ((_a = item.data) == null ? void 0 : _a.src)) {\n        memoizedPreloadJS(item.data.src);\n      }\n    });\n    context = {\n      getMarkmap: () => window.markmap,\n      ...context\n    };\n    for (const item of items) {\n      await loadJSItem(item, context);\n    }\n  }\n  async function loadCSS(items) {\n    await Promise.all(items.map((item) => loadCSSItem(item)));\n  }\n  const isMacintosh = typeof navigator !== \"undefined\" && navigator.userAgent.includes(\"Macintosh\");\n  const defaultColorFn = d32.scaleOrdinal(d32.schemeCategory10);\n  const lineWidthFactory = (baseWidth = 1, deltaWidth = 3, k = 2) => (node) => baseWidth + deltaWidth / k ** node.state.depth;\n  const defaultOptions = {\n    autoFit: false,\n    duration: 500,\n    embedGlobalCSS: true,\n    fitRatio: 0.95,\n    maxInitialScale: 2,\n    scrollForPan: isMacintosh,\n    initialExpandLevel: -1,\n    zoom: true,\n    pan: true,\n    toggleRecursively: false,\n    color: (node) => {\n      var _a;\n      return defaultColorFn(`${((_a = node.state) == null ? void 0 : _a.path) || \"\"}`);\n    },\n    lineWidth: lineWidthFactory(),\n    maxWidth: 0,\n    nodeMinHeight: 16,\n    paddingX: 8,\n    spacingHorizontal: 80,\n    spacingVertical: 5\n  };\n  function deriveOptions(jsonOptions) {\n    const derivedOptions = {};\n    const options = { ...jsonOptions };\n    const { color, colorFreezeLevel, lineWidth } = options;\n    if ((color == null ? void 0 : color.length) === 1) {\n      const solidColor = color[0];\n      derivedOptions.color = () => solidColor;\n    } else if (color == null ? void 0 : color.length) {\n      const colorFn = d32.scaleOrdinal(color);\n      derivedOptions.color = (node) => colorFn(`${node.state.path}`);\n    }\n    if (colorFreezeLevel) {\n      const color2 = derivedOptions.color || defaultOptions.color;\n      derivedOptions.color = (node) => {\n        node = {\n          ...node,\n          state: {\n            ...node.state,\n            path: node.state.path.split(\".\").slice(0, colorFreezeLevel).join(\".\")\n          }\n        };\n        return color2(node);\n      };\n    }\n    if (lineWidth) {\n      const args = Array.isArray(lineWidth) ? lineWidth : [lineWidth, 0, 1];\n      derivedOptions.lineWidth = lineWidthFactory(\n        ...args\n      );\n    }\n    const numberKeys = [\n      \"duration\",\n      \"fitRatio\",\n      \"initialExpandLevel\",\n      \"maxInitialScale\",\n      \"maxWidth\",\n      \"nodeMinHeight\",\n      \"paddingX\",\n      \"spacingHorizontal\",\n      \"spacingVertical\"\n    ];\n    numberKeys.forEach((key) => {\n      const value = options[key];\n      if (typeof value === \"number\") derivedOptions[key] = value;\n    });\n    const booleanKeys = [\"zoom\", \"pan\"];\n    booleanKeys.forEach((key) => {\n      const value = options[key];\n      if (value != null) derivedOptions[key] = !!value;\n    });\n    return derivedOptions;\n  }\n  function simpleHash(str) {\n    let hash = 0;\n    for (let i = 0; i < str.length; i++) {\n      hash = (hash << 5) - hash + str.charCodeAt(i) | 0;\n    }\n    return (hash >>> 0).toString(36);\n  }\n  function childSelector(filter) {\n    if (typeof filter === \"string\") {\n      const selector = filter;\n      filter = (el) => el.matches(selector);\n    }\n    const filterFn = filter;\n    return function selector() {\n      let nodes = Array.from(this.childNodes);\n      if (filterFn) nodes = nodes.filter((node) => filterFn(node));\n      return nodes;\n    };\n  }\n  function count(node) {\n    var sum = 0, children = node.children, i = children && children.length;\n    if (!i) sum = 1;\n    else while (--i >= 0) sum += children[i].value;\n    node.value = sum;\n  }\n  function node_count() {\n    return this.eachAfter(count);\n  }\n  function node_each(callback) {\n    var node = this, current, next = [node], children, i, n;\n    do {\n      current = next.reverse(), next = [];\n      while (node = current.pop()) {\n        callback(node), children = node.children;\n        if (children) for (i = 0, n = children.length; i < n; ++i) {\n          next.push(children[i]);\n        }\n      }\n    } while (next.length);\n    return this;\n  }\n  function node_eachBefore(callback) {\n    var node = this, nodes = [node], children, i;\n    while (node = nodes.pop()) {\n      callback(node), children = node.children;\n      if (children) for (i = children.length - 1; i >= 0; --i) {\n        nodes.push(children[i]);\n      }\n    }\n    return this;\n  }\n  function node_eachAfter(callback) {\n    var node = this, nodes = [node], next = [], children, i, n;\n    while (node = nodes.pop()) {\n      next.push(node), children = node.children;\n      if (children) for (i = 0, n = children.length; i < n; ++i) {\n        nodes.push(children[i]);\n      }\n    }\n    while (node = next.pop()) {\n      callback(node);\n    }\n    return this;\n  }\n  function node_sum(value) {\n    return this.eachAfter(function(node) {\n      var sum = +value(node.data) || 0, children = node.children, i = children && children.length;\n      while (--i >= 0) sum += children[i].value;\n      node.value = sum;\n    });\n  }\n  function node_sort(compare) {\n    return this.eachBefore(function(node) {\n      if (node.children) {\n        node.children.sort(compare);\n      }\n    });\n  }\n  function node_path(end) {\n    var start = this, ancestor = leastCommonAncestor(start, end), nodes = [start];\n    while (start !== ancestor) {\n      start = start.parent;\n      nodes.push(start);\n    }\n    var k = nodes.length;\n    while (end !== ancestor) {\n      nodes.splice(k, 0, end);\n      end = end.parent;\n    }\n    return nodes;\n  }\n  function leastCommonAncestor(a, b) {\n    if (a === b) return a;\n    var aNodes = a.ancestors(), bNodes = b.ancestors(), c = null;\n    a = aNodes.pop();\n    b = bNodes.pop();\n    while (a === b) {\n      c = a;\n      a = aNodes.pop();\n      b = bNodes.pop();\n    }\n    return c;\n  }\n  function node_ancestors() {\n    var node = this, nodes = [node];\n    while (node = node.parent) {\n      nodes.push(node);\n    }\n    return nodes;\n  }\n  function node_descendants() {\n    var nodes = [];\n    this.each(function(node) {\n      nodes.push(node);\n    });\n    return nodes;\n  }\n  function node_leaves() {\n    var leaves = [];\n    this.eachBefore(function(node) {\n      if (!node.children) {\n        leaves.push(node);\n      }\n    });\n    return leaves;\n  }\n  function node_links() {\n    var root = this, links = [];\n    root.each(function(node) {\n      if (node !== root) {\n        links.push({ source: node.parent, target: node });\n      }\n    });\n    return links;\n  }\n  function hierarchy(data, children) {\n    var root = new Node$1(data), valued = +data.value && (root.value = data.value), node, nodes = [root], child, childs, i, n;\n    if (children == null) children = defaultChildren;\n    while (node = nodes.pop()) {\n      if (valued) node.value = +node.data.value;\n      if ((childs = children(node.data)) && (n = childs.length)) {\n        node.children = new Array(n);\n        for (i = n - 1; i >= 0; --i) {\n          nodes.push(child = node.children[i] = new Node$1(childs[i]));\n          child.parent = node;\n          child.depth = node.depth + 1;\n        }\n      }\n    }\n    return root.eachBefore(computeHeight);\n  }\n  function node_copy() {\n    return hierarchy(this).eachBefore(copyData);\n  }\n  function defaultChildren(d) {\n    return d.children;\n  }\n  function copyData(node) {\n    node.data = node.data.data;\n  }\n  function computeHeight(node) {\n    var height = 0;\n    do\n      node.height = height;\n    while ((node = node.parent) && node.height < ++height);\n  }\n  function Node$1(data) {\n    this.data = data;\n    this.depth = this.height = 0;\n    this.parent = null;\n  }\n  Node$1.prototype = hierarchy.prototype = {\n    constructor: Node$1,\n    count: node_count,\n    each: node_each,\n    eachAfter: node_eachAfter,\n    eachBefore: node_eachBefore,\n    sum: node_sum,\n    sort: node_sort,\n    path: node_path,\n    ancestors: node_ancestors,\n    descendants: node_descendants,\n    leaves: node_leaves,\n    links: node_links,\n    copy: node_copy\n  };\n  const name = \"d3-flextree\";\n  const version$1 = \"2.1.2\";\n  const main = \"build/d3-flextree.js\";\n  const module = \"index\";\n  const author = { \"name\": \"Chris Maloney\", \"url\": \"http://chrismaloney.org\" };\n  const description = \"Flexible tree layout algorithm that allows for variable node sizes.\";\n  const keywords = [\"d3\", \"d3-module\", \"layout\", \"tree\", \"hierarchy\", \"d3-hierarchy\", \"plugin\", \"d3-plugin\", \"infovis\", \"visualization\", \"2d\"];\n  const homepage = \"https://github.com/klortho/d3-flextree\";\n  const license = \"WTFPL\";\n  const repository = { \"type\": \"git\", \"url\": \"https://github.com/klortho/d3-flextree.git\" };\n  const scripts = { \"clean\": \"rm -rf build demo test\", \"build:demo\": \"rollup -c --environment BUILD:demo\", \"build:dev\": \"rollup -c --environment BUILD:dev\", \"build:prod\": \"rollup -c --environment BUILD:prod\", \"build:test\": \"rollup -c --environment BUILD:test\", \"build\": \"rollup -c\", \"lint\": \"eslint index.js src\", \"test:main\": \"node test/bundle.js\", \"test:browser\": \"node test/browser-tests.js\", \"test\": \"npm-run-all test:*\", \"prepare\": \"npm-run-all clean build lint test\" };\n  const dependencies = { \"d3-hierarchy\": \"^1.1.5\" };\n  const devDependencies = { \"babel-plugin-external-helpers\": \"^6.22.0\", \"babel-preset-es2015-rollup\": \"^3.0.0\", \"d3\": \"^4.13.0\", \"d3-selection-multi\": \"^1.0.1\", \"eslint\": \"^4.19.1\", \"jsdom\": \"^11.6.2\", \"npm-run-all\": \"^4.1.2\", \"rollup\": \"^0.55.3\", \"rollup-plugin-babel\": \"^2.7.1\", \"rollup-plugin-commonjs\": \"^8.0.2\", \"rollup-plugin-copy\": \"^0.2.3\", \"rollup-plugin-json\": \"^2.3.0\", \"rollup-plugin-node-resolve\": \"^3.0.2\", \"rollup-plugin-uglify\": \"^3.0.0\", \"uglify-es\": \"^3.3.9\" };\n  const packageInfo = {\n    name,\n    version: version$1,\n    main,\n    module,\n    \"jsnext:main\": \"index\",\n    author,\n    description,\n    keywords,\n    homepage,\n    license,\n    repository,\n    scripts,\n    dependencies,\n    devDependencies\n  };\n  const { version } = packageInfo;\n  const defaults = Object.freeze({\n    children: (data) => data.children,\n    nodeSize: (node) => node.data.size,\n    spacing: 0\n  });\n  function flextree(options) {\n    const opts = Object.assign({}, defaults, options);\n    function accessor(name2) {\n      const opt = opts[name2];\n      return typeof opt === \"function\" ? opt : () => opt;\n    }\n    function layout(tree) {\n      const wtree = wrap(getWrapper(), tree, (node) => node.children);\n      wtree.update();\n      return wtree.data;\n    }\n    function getFlexNode() {\n      const nodeSize = accessor(\"nodeSize\");\n      const spacing = accessor(\"spacing\");\n      return class FlexNode extends hierarchy.prototype.constructor {\n        constructor(data) {\n          super(data);\n        }\n        copy() {\n          const c = wrap(this.constructor, this, (node) => node.children);\n          c.each((node) => node.data = node.data.data);\n          return c;\n        }\n        get size() {\n          return nodeSize(this);\n        }\n        spacing(oNode) {\n          return spacing(this, oNode);\n        }\n        get nodes() {\n          return this.descendants();\n        }\n        get xSize() {\n          return this.size[0];\n        }\n        get ySize() {\n          return this.size[1];\n        }\n        get top() {\n          return this.y;\n        }\n        get bottom() {\n          return this.y + this.ySize;\n        }\n        get left() {\n          return this.x - this.xSize / 2;\n        }\n        get right() {\n          return this.x + this.xSize / 2;\n        }\n        get root() {\n          const ancs = this.ancestors();\n          return ancs[ancs.length - 1];\n        }\n        get numChildren() {\n          return this.hasChildren ? this.children.length : 0;\n        }\n        get hasChildren() {\n          return !this.noChildren;\n        }\n        get noChildren() {\n          return this.children === null;\n        }\n        get firstChild() {\n          return this.hasChildren ? this.children[0] : null;\n        }\n        get lastChild() {\n          return this.hasChildren ? this.children[this.numChildren - 1] : null;\n        }\n        get extents() {\n          return (this.children || []).reduce(\n            (acc, kid) => FlexNode.maxExtents(acc, kid.extents),\n            this.nodeExtents\n          );\n        }\n        get nodeExtents() {\n          return {\n            top: this.top,\n            bottom: this.bottom,\n            left: this.left,\n            right: this.right\n          };\n        }\n        static maxExtents(e0, e1) {\n          return {\n            top: Math.min(e0.top, e1.top),\n            bottom: Math.max(e0.bottom, e1.bottom),\n            left: Math.min(e0.left, e1.left),\n            right: Math.max(e0.right, e1.right)\n          };\n        }\n      };\n    }\n    function getWrapper() {\n      const FlexNode = getFlexNode();\n      const nodeSize = accessor(\"nodeSize\");\n      const spacing = accessor(\"spacing\");\n      return class extends FlexNode {\n        constructor(data) {\n          super(data);\n          Object.assign(this, {\n            x: 0,\n            y: 0,\n            relX: 0,\n            prelim: 0,\n            shift: 0,\n            change: 0,\n            lExt: this,\n            lExtRelX: 0,\n            lThr: null,\n            rExt: this,\n            rExtRelX: 0,\n            rThr: null\n          });\n        }\n        get size() {\n          return nodeSize(this.data);\n        }\n        spacing(oNode) {\n          return spacing(this.data, oNode.data);\n        }\n        get x() {\n          return this.data.x;\n        }\n        set x(v) {\n          this.data.x = v;\n        }\n        get y() {\n          return this.data.y;\n        }\n        set y(v) {\n          this.data.y = v;\n        }\n        update() {\n          layoutChildren(this);\n          resolveX(this);\n          return this;\n        }\n      };\n    }\n    function wrap(FlexClass, treeData, children) {\n      const _wrap = (data, parent) => {\n        const node = new FlexClass(data);\n        Object.assign(node, {\n          parent,\n          depth: parent === null ? 0 : parent.depth + 1,\n          height: 0,\n          length: 1\n        });\n        const kidsData = children(data) || [];\n        node.children = kidsData.length === 0 ? null : kidsData.map((kd) => _wrap(kd, node));\n        if (node.children) {\n          Object.assign(node, node.children.reduce(\n            (hl, kid) => ({\n              height: Math.max(hl.height, kid.height + 1),\n              length: hl.length + kid.length\n            }),\n            node\n          ));\n        }\n        return node;\n      };\n      return _wrap(treeData, null);\n    }\n    Object.assign(layout, {\n      nodeSize(arg) {\n        return arguments.length ? (opts.nodeSize = arg, layout) : opts.nodeSize;\n      },\n      spacing(arg) {\n        return arguments.length ? (opts.spacing = arg, layout) : opts.spacing;\n      },\n      children(arg) {\n        return arguments.length ? (opts.children = arg, layout) : opts.children;\n      },\n      hierarchy(treeData, children) {\n        const kids = typeof children === \"undefined\" ? opts.children : children;\n        return wrap(getFlexNode(), treeData, kids);\n      },\n      dump(tree) {\n        const nodeSize = accessor(\"nodeSize\");\n        const _dump = (i0) => (node) => {\n          const i1 = i0 + \"  \";\n          const i2 = i0 + \"    \";\n          const { x, y } = node;\n          const size = nodeSize(node);\n          const kids = node.children || [];\n          const kdumps = kids.length === 0 ? \" \" : `,${i1}children: [${i2}${kids.map(_dump(i2)).join(i2)}${i1}],${i0}`;\n          return `{ size: [${size.join(\", \")}],${i1}x: ${x}, y: ${y}${kdumps}},`;\n        };\n        return _dump(\"\\n\")(tree);\n      }\n    });\n    return layout;\n  }\n  flextree.version = version;\n  const layoutChildren = (w, y = 0) => {\n    w.y = y;\n    (w.children || []).reduce((acc, kid) => {\n      const [i, lastLows] = acc;\n      layoutChildren(kid, w.y + w.ySize);\n      const lowY = (i === 0 ? kid.lExt : kid.rExt).bottom;\n      if (i !== 0) separate(w, i, lastLows);\n      const lows = updateLows(lowY, i, lastLows);\n      return [i + 1, lows];\n    }, [0, null]);\n    shiftChange(w);\n    positionRoot(w);\n    return w;\n  };\n  const resolveX = (w, prevSum, parentX) => {\n    if (typeof prevSum === \"undefined\") {\n      prevSum = -w.relX - w.prelim;\n      parentX = 0;\n    }\n    const sum = prevSum + w.relX;\n    w.relX = sum + w.prelim - parentX;\n    w.prelim = 0;\n    w.x = parentX + w.relX;\n    (w.children || []).forEach((k) => resolveX(k, sum, w.x));\n    return w;\n  };\n  const shiftChange = (w) => {\n    (w.children || []).reduce((acc, child) => {\n      const [lastShiftSum, lastChangeSum] = acc;\n      const shiftSum = lastShiftSum + child.shift;\n      const changeSum = lastChangeSum + shiftSum + child.change;\n      child.relX += changeSum;\n      return [shiftSum, changeSum];\n    }, [0, 0]);\n  };\n  const separate = (w, i, lows) => {\n    const lSib = w.children[i - 1];\n    const curSubtree = w.children[i];\n    let rContour = lSib;\n    let rSumMods = lSib.relX;\n    let lContour = curSubtree;\n    let lSumMods = curSubtree.relX;\n    let isFirst = true;\n    while (rContour && lContour) {\n      if (rContour.bottom > lows.lowY) lows = lows.next;\n      const dist = rSumMods + rContour.prelim - (lSumMods + lContour.prelim) + rContour.xSize / 2 + lContour.xSize / 2 + rContour.spacing(lContour);\n      if (dist > 0 || dist < 0 && isFirst) {\n        lSumMods += dist;\n        moveSubtree(curSubtree, dist);\n        distributeExtra(w, i, lows.index, dist);\n      }\n      isFirst = false;\n      const rightBottom = rContour.bottom;\n      const leftBottom = lContour.bottom;\n      if (rightBottom <= leftBottom) {\n        rContour = nextRContour(rContour);\n        if (rContour) rSumMods += rContour.relX;\n      }\n      if (rightBottom >= leftBottom) {\n        lContour = nextLContour(lContour);\n        if (lContour) lSumMods += lContour.relX;\n      }\n    }\n    if (!rContour && lContour) setLThr(w, i, lContour, lSumMods);\n    else if (rContour && !lContour) setRThr(w, i, rContour, rSumMods);\n  };\n  const moveSubtree = (subtree, distance) => {\n    subtree.relX += distance;\n    subtree.lExtRelX += distance;\n    subtree.rExtRelX += distance;\n  };\n  const distributeExtra = (w, curSubtreeI, leftSibI, dist) => {\n    const curSubtree = w.children[curSubtreeI];\n    const n = curSubtreeI - leftSibI;\n    if (n > 1) {\n      const delta = dist / n;\n      w.children[leftSibI + 1].shift += delta;\n      curSubtree.shift -= delta;\n      curSubtree.change -= dist - delta;\n    }\n  };\n  const nextLContour = (w) => {\n    return w.hasChildren ? w.firstChild : w.lThr;\n  };\n  const nextRContour = (w) => {\n    return w.hasChildren ? w.lastChild : w.rThr;\n  };\n  const setLThr = (w, i, lContour, lSumMods) => {\n    const firstChild = w.firstChild;\n    const lExt = firstChild.lExt;\n    const curSubtree = w.children[i];\n    lExt.lThr = lContour;\n    const diff = lSumMods - lContour.relX - firstChild.lExtRelX;\n    lExt.relX += diff;\n    lExt.prelim -= diff;\n    firstChild.lExt = curSubtree.lExt;\n    firstChild.lExtRelX = curSubtree.lExtRelX;\n  };\n  const setRThr = (w, i, rContour, rSumMods) => {\n    const curSubtree = w.children[i];\n    const rExt = curSubtree.rExt;\n    const lSib = w.children[i - 1];\n    rExt.rThr = rContour;\n    const diff = rSumMods - rContour.relX - curSubtree.rExtRelX;\n    rExt.relX += diff;\n    rExt.prelim -= diff;\n    curSubtree.rExt = lSib.rExt;\n    curSubtree.rExtRelX = lSib.rExtRelX;\n  };\n  const positionRoot = (w) => {\n    if (w.hasChildren) {\n      const k0 = w.firstChild;\n      const kf = w.lastChild;\n      const prelim = (k0.prelim + k0.relX - k0.xSize / 2 + kf.relX + kf.prelim + kf.xSize / 2) / 2;\n      Object.assign(w, {\n        prelim,\n        lExt: k0.lExt,\n        lExtRelX: k0.lExtRelX,\n        rExt: kf.rExt,\n        rExtRelX: kf.rExtRelX\n      });\n    }\n  };\n  const updateLows = (lowY, index, lastLows) => {\n    while (lastLows !== null && lowY >= lastLows.lowY)\n      lastLows = lastLows.next;\n    return {\n      lowY,\n      index,\n      next: lastLows\n    };\n  };\n  const css = \".markmap {\\n  --markmap-max-width: 9999px;\\n  --markmap-a-color: #0097e6;\\n  --markmap-a-hover-color: #00a8ff;\\n  --markmap-code-bg: #f0f0f0;\\n  --markmap-code-color: #555;\\n  --markmap-highlight-bg: #ffeaa7;\\n  --markmap-table-border: 1px solid currentColor;\\n  --markmap-font: 300 16px/20px sans-serif;\\n  --markmap-circle-open-bg: #fff;\\n  --markmap-text-color: #333;\\n  --markmap-highlight-node-bg: #ff02;\\n\\n  font: var(--markmap-font);\\n  color: var(--markmap-text-color);\\n}\\n\\n  .markmap-link {\\n    fill: none;\\n  }\\n\\n  .markmap-node > circle {\\n      cursor: pointer;\\n    }\\n\\n  .markmap-foreign {\\n    display: inline-block;\\n  }\\n\\n  .markmap-foreign p {\\n      margin: 0;\\n    }\\n\\n  .markmap-foreign a {\\n      color: var(--markmap-a-color);\\n    }\\n\\n  .markmap-foreign a:hover {\\n        color: var(--markmap-a-hover-color);\\n      }\\n\\n  .markmap-foreign code {\\n      padding: 0.25em;\\n      font-size: calc(1em - 2px);\\n      color: var(--markmap-code-color);\\n      background-color: var(--markmap-code-bg);\\n      border-radius: 2px;\\n    }\\n\\n  .markmap-foreign pre {\\n      margin: 0;\\n    }\\n\\n  .markmap-foreign pre > code {\\n        display: block;\\n      }\\n\\n  .markmap-foreign del {\\n      text-decoration: line-through;\\n    }\\n\\n  .markmap-foreign em {\\n      font-style: italic;\\n    }\\n\\n  .markmap-foreign strong {\\n      font-weight: bold;\\n    }\\n\\n  .markmap-foreign mark {\\n      background: var(--markmap-highlight-bg);\\n    }\\n\\n  .markmap-foreign table,\\n    .markmap-foreign th,\\n    .markmap-foreign td {\\n      border-collapse: collapse;\\n      border: var(--markmap-table-border);\\n    }\\n\\n  .markmap-foreign img {\\n      display: inline-block;\\n    }\\n\\n  .markmap-foreign svg {\\n      fill: currentColor;\\n    }\\n\\n  .markmap-foreign > div {\\n      width: var(--markmap-max-width);\\n      text-align: left;\\n    }\\n\\n  .markmap-foreign > div > div {\\n        display: inline-block;\\n      }\\n\\n  .markmap-highlight rect {\\n    fill: var(--markmap-highlight-node-bg);\\n  }\\n\\n.markmap-dark .markmap {\\n  --markmap-code-bg: #1a1b26;\\n  --markmap-code-color: #ddd;\\n  --markmap-circle-open-bg: #444;\\n  --markmap-text-color: #eee;\\n}\\n\";\n  const globalCSS = css;\n  const SELECTOR_NODE = \"g.markmap-node\";\n  const SELECTOR_LINK = \"path.markmap-link\";\n  const SELECTOR_HIGHLIGHT = \"g.markmap-highlight\";\n  const linkShape = d32.linkHorizontal();\n  function minBy(numbers, by) {\n    const index = d32.minIndex(numbers, by);\n    return numbers[index];\n  }\n  function stopPropagation(e) {\n    e.stopPropagation();\n  }\n  const refreshHook = new Hook();\n  class Markmap {\n    constructor(svg, opts) {\n      this.options = { ...defaultOptions };\n      this._disposeList = [];\n      this.handleZoom = (e) => {\n        const { transform } = e;\n        this.g.attr(\"transform\", transform);\n      };\n      this.handlePan = (e) => {\n        e.preventDefault();\n        const transform = d32.zoomTransform(this.svg.node());\n        const newTransform = transform.translate(\n          -e.deltaX / transform.k,\n          -e.deltaY / transform.k\n        );\n        this.svg.call(this.zoom.transform, newTransform);\n      };\n      this.handleClick = (e, d) => {\n        let recursive = this.options.toggleRecursively;\n        if (isMacintosh ? e.metaKey : e.ctrlKey) recursive = !recursive;\n        this.toggleNode(d, recursive);\n      };\n      this.ensureView = this.ensureVisible;\n      this.svg = svg.datum ? svg : d32.select(svg);\n      this.styleNode = this.svg.append(\"style\");\n      this.zoom = d32.zoom().filter((event) => {\n        if (this.options.scrollForPan) {\n          if (event.type === \"wheel\") return event.ctrlKey && !event.button;\n        }\n        return (!event.ctrlKey || event.type === \"wheel\") && !event.button;\n      }).on(\"zoom\", this.handleZoom);\n      this.setOptions(opts);\n      this.state = {\n        id: this.options.id || this.svg.attr(\"id\") || getId(),\n        rect: { x1: 0, y1: 0, x2: 0, y2: 0 }\n      };\n      this.g = this.svg.append(\"g\");\n      this.g.append(\"g\").attr(\"class\", \"markmap-highlight\");\n      this._observer = new ResizeObserver(\n        debounce(() => {\n          this.renderData();\n        }, 100)\n      );\n      this._disposeList.push(\n        refreshHook.tap(() => {\n          this.setData();\n        }),\n        () => this._observer.disconnect()\n      );\n    }\n    getStyleContent() {\n      const { style } = this.options;\n      const { id } = this.state;\n      const styleText = typeof style === \"function\" ? style(id) : \"\";\n      return [this.options.embedGlobalCSS && css, styleText].filter(Boolean).join(\"\\n\");\n    }\n    updateStyle() {\n      this.svg.attr(\n        \"class\",\n        addClass(this.svg.attr(\"class\"), \"markmap\", this.state.id)\n      );\n      const style = this.getStyleContent();\n      this.styleNode.text(style);\n    }\n    async toggleNode(data, recursive = false) {\n      var _a, _b;\n      const fold = ((_a = data.payload) == null ? void 0 : _a.fold) ? 0 : 1;\n      if (recursive) {\n        walkTree(data, (item, next) => {\n          item.payload = {\n            ...item.payload,\n            fold\n          };\n          next();\n        });\n      } else {\n        data.payload = {\n          ...data.payload,\n          fold: ((_b = data.payload) == null ? void 0 : _b.fold) ? 0 : 1\n        };\n      }\n      await this.renderData(data);\n    }\n    _initializeData(node) {\n      let nodeId = 0;\n      const { color, initialExpandLevel } = this.options;\n      let foldRecursively = 0;\n      let depth = 0;\n      walkTree(node, (item, next, parent) => {\n        var _a, _b, _c, _d;\n        depth += 1;\n        item.children = (_a = item.children) == null ? void 0 : _a.map((child) => ({ ...child }));\n        nodeId += 1;\n        item.state = {\n          ...item.state,\n          depth,\n          id: nodeId,\n          rect: {\n            x: 0,\n            y: 0,\n            width: 0,\n            height: 0\n          },\n          size: [0, 0]\n        };\n        item.state.key = [(_b = parent == null ? void 0 : parent.state) == null ? void 0 : _b.id, item.state.id].filter(Boolean).join(\".\") + simpleHash(item.content);\n        item.state.path = [(_c = parent == null ? void 0 : parent.state) == null ? void 0 : _c.path, item.state.id].filter(Boolean).join(\".\");\n        color(item);\n        const isFoldRecursively = ((_d = item.payload) == null ? void 0 : _d.fold) === 2;\n        if (isFoldRecursively) {\n          foldRecursively += 1;\n        } else if (foldRecursively || initialExpandLevel >= 0 && item.state.depth >= initialExpandLevel) {\n          item.payload = { ...item.payload, fold: 1 };\n        }\n        next();\n        if (isFoldRecursively) foldRecursively -= 1;\n        depth -= 1;\n      });\n      return node;\n    }\n    _relayout() {\n      if (!this.state.data) return;\n      this.g.selectAll(childSelector(SELECTOR_NODE)).selectAll(\n        childSelector(\"foreignObject\")\n      ).each(function(d) {\n        var _a;\n        const el = (_a = this.firstChild) == null ? void 0 : _a.firstChild;\n        const newSize = [el.scrollWidth, el.scrollHeight];\n        d.state.size = newSize;\n      });\n      const { lineWidth, paddingX, spacingHorizontal, spacingVertical } = this.options;\n      const layout = flextree({}).children((d) => {\n        var _a;\n        if (!((_a = d.payload) == null ? void 0 : _a.fold)) return d.children;\n      }).nodeSize((node) => {\n        const [width, height] = node.data.state.size;\n        return [height, width + (width ? paddingX * 2 : 0) + spacingHorizontal];\n      }).spacing((a, b) => {\n        return (a.parent === b.parent ? spacingVertical : spacingVertical * 2) + lineWidth(a.data);\n      });\n      const tree = layout.hierarchy(this.state.data);\n      layout(tree);\n      const fnodes = tree.descendants();\n      fnodes.forEach((fnode) => {\n        const node = fnode.data;\n        node.state.rect = {\n          x: fnode.y,\n          y: fnode.x - fnode.xSize / 2,\n          width: fnode.ySize - spacingHorizontal,\n          height: fnode.xSize\n        };\n      });\n      this.state.rect = {\n        x1: d32.min(fnodes, (fnode) => fnode.data.state.rect.x) || 0,\n        y1: d32.min(fnodes, (fnode) => fnode.data.state.rect.y) || 0,\n        x2: d32.max(\n          fnodes,\n          (fnode) => fnode.data.state.rect.x + fnode.data.state.rect.width\n        ) || 0,\n        y2: d32.max(\n          fnodes,\n          (fnode) => fnode.data.state.rect.y + fnode.data.state.rect.height\n        ) || 0\n      };\n    }\n    setOptions(opts) {\n      this.options = {\n        ...this.options,\n        ...opts\n      };\n      if (this.options.zoom) {\n        this.svg.call(this.zoom);\n      } else {\n        this.svg.on(\".zoom\", null);\n      }\n      if (this.options.pan) {\n        this.svg.on(\"wheel\", this.handlePan);\n      } else {\n        this.svg.on(\"wheel\", null);\n      }\n    }\n    async setData(data, opts) {\n      if (opts) this.setOptions(opts);\n      if (data) this.state.data = this._initializeData(data);\n      if (!this.state.data) return;\n      this.updateStyle();\n      await this.renderData();\n    }\n    async setHighlight(node) {\n      this.state.highlight = node || void 0;\n      await this.renderData();\n    }\n    _getHighlightRect(highlight) {\n      const svgNode = this.svg.node();\n      const transform = d32.zoomTransform(svgNode);\n      const padding = 4 / transform.k;\n      const rect = {\n        ...highlight.state.rect\n      };\n      rect.x -= padding;\n      rect.y -= padding;\n      rect.width += 2 * padding;\n      rect.height += 2 * padding;\n      return rect;\n    }\n    async renderData(originData) {\n      const { paddingX, autoFit, color, maxWidth, lineWidth } = this.options;\n      const rootNode = this.state.data;\n      if (!rootNode) return;\n      const nodeMap = {};\n      const parentMap = {};\n      const nodes = [];\n      walkTree(rootNode, (item, next, parent) => {\n        var _a;\n        if (!((_a = item.payload) == null ? void 0 : _a.fold)) next();\n        nodeMap[item.state.id] = item;\n        if (parent) parentMap[item.state.id] = parent.state.id;\n        nodes.push(item);\n      });\n      const originMap = {};\n      const sourceRectMap = {};\n      const setOriginNode = (originNode) => {\n        if (!originNode || originMap[originNode.state.id]) return;\n        walkTree(originNode, (item, next) => {\n          originMap[item.state.id] = originNode.state.id;\n          next();\n        });\n      };\n      const getOriginSourceRect = (node) => {\n        const rect = sourceRectMap[originMap[node.state.id]];\n        return rect || rootNode.state.rect;\n      };\n      const getOriginTargetRect = (node) => (nodeMap[originMap[node.state.id]] || rootNode).state.rect;\n      sourceRectMap[rootNode.state.id] = rootNode.state.rect;\n      if (originData) setOriginNode(originData);\n      let { highlight } = this.state;\n      if (highlight && !nodeMap[highlight.state.id]) highlight = void 0;\n      let highlightNodes = this.g.selectAll(childSelector(SELECTOR_HIGHLIGHT)).selectAll(childSelector(\"rect\")).data(highlight ? [this._getHighlightRect(highlight)] : []).join(\"rect\").attr(\"x\", (d) => d.x).attr(\"y\", (d) => d.y).attr(\"width\", (d) => d.width).attr(\"height\", (d) => d.height);\n      const mmG = this.g.selectAll(childSelector(SELECTOR_NODE)).each((d) => {\n        sourceRectMap[d.state.id] = d.state.rect;\n      }).data(nodes, (d) => d.state.key);\n      const mmGEnter = mmG.enter().append(\"g\").attr(\"data-depth\", (d) => d.state.depth).attr(\"data-path\", (d) => d.state.path).each((d) => {\n        setOriginNode(nodeMap[parentMap[d.state.id]]);\n      });\n      const mmGExit = mmG.exit().each((d) => {\n        setOriginNode(nodeMap[parentMap[d.state.id]]);\n      });\n      const mmGMerge = mmG.merge(mmGEnter).attr(\n        \"class\",\n        (d) => {\n          var _a;\n          return [\"markmap-node\", ((_a = d.payload) == null ? void 0 : _a.fold) && \"markmap-fold\"].filter(Boolean).join(\" \");\n        }\n      );\n      const mmLine = mmGMerge.selectAll(childSelector(\"line\")).data(\n        (d) => [d],\n        (d) => d.state.key\n      );\n      const mmLineEnter = mmLine.enter().append(\"line\").attr(\"stroke\", (d) => color(d)).attr(\"stroke-width\", 0);\n      const mmLineMerge = mmLine.merge(mmLineEnter);\n      const mmCircle = mmGMerge.selectAll(childSelector(\"circle\")).data(\n        (d) => {\n          var _a;\n          return ((_a = d.children) == null ? void 0 : _a.length) ? [d] : [];\n        },\n        (d) => d.state.key\n      );\n      const mmCircleEnter = mmCircle.enter().append(\"circle\").attr(\"stroke-width\", 0).attr(\"r\", 0).on(\"click\", (e, d) => this.handleClick(e, d)).on(\"mousedown\", stopPropagation);\n      const mmCircleMerge = mmCircleEnter.merge(mmCircle).attr(\"stroke\", (d) => color(d)).attr(\n        \"fill\",\n        (d) => {\n          var _a;\n          return ((_a = d.payload) == null ? void 0 : _a.fold) && d.children ? color(d) : \"var(--markmap-circle-open-bg)\";\n        }\n      );\n      const observer = this._observer;\n      const mmFo = mmGMerge.selectAll(childSelector(\"foreignObject\")).data(\n        (d) => [d],\n        (d) => d.state.key\n      );\n      const mmFoEnter = mmFo.enter().append(\"foreignObject\").attr(\"class\", \"markmap-foreign\").attr(\"x\", paddingX).attr(\"y\", 0).style(\"opacity\", 0).on(\"mousedown\", stopPropagation).on(\"dblclick\", stopPropagation);\n      mmFoEnter.append(\"xhtml:div\").append(\"xhtml:div\").html((d) => d.content).attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n      mmFoEnter.each(function() {\n        var _a;\n        const el = (_a = this.firstChild) == null ? void 0 : _a.firstChild;\n        observer.observe(el);\n      });\n      const mmFoExit = mmGExit.selectAll(\n        childSelector(\"foreignObject\")\n      );\n      mmFoExit.each(function() {\n        var _a;\n        const el = (_a = this.firstChild) == null ? void 0 : _a.firstChild;\n        observer.unobserve(el);\n      });\n      const mmFoMerge = mmFoEnter.merge(mmFo);\n      const links = nodes.flatMap(\n        (node) => {\n          var _a;\n          return ((_a = node.payload) == null ? void 0 : _a.fold) ? [] : node.children.map((child) => ({ source: node, target: child }));\n        }\n      );\n      const mmPath = this.g.selectAll(childSelector(SELECTOR_LINK)).data(links, (d) => d.target.state.key);\n      const mmPathExit = mmPath.exit();\n      const mmPathEnter = mmPath.enter().insert(\"path\", \"g\").attr(\"class\", \"markmap-link\").attr(\"data-depth\", (d) => d.target.state.depth).attr(\"data-path\", (d) => d.target.state.path).attr(\"d\", (d) => {\n        const originRect = getOriginSourceRect(d.target);\n        const pathOrigin = [\n          originRect.x + originRect.width,\n          originRect.y + originRect.height\n        ];\n        return linkShape({ source: pathOrigin, target: pathOrigin });\n      }).attr(\"stroke-width\", 0);\n      const mmPathMerge = mmPathEnter.merge(mmPath);\n      this.svg.style(\n        \"--markmap-max-width\",\n        maxWidth ? `${maxWidth}px` : null\n      );\n      await new Promise(requestAnimationFrame);\n      this._relayout();\n      highlightNodes = highlightNodes.data(highlight ? [this._getHighlightRect(highlight)] : []).join(\"rect\");\n      this.transition(highlightNodes).attr(\"x\", (d) => d.x).attr(\"y\", (d) => d.y).attr(\"width\", (d) => d.width).attr(\"height\", (d) => d.height);\n      mmGEnter.attr(\"transform\", (d) => {\n        const originRect = getOriginSourceRect(d);\n        return `translate(${originRect.x + originRect.width - d.state.rect.width},${originRect.y + originRect.height - d.state.rect.height})`;\n      });\n      this.transition(mmGExit).attr(\"transform\", (d) => {\n        const targetRect = getOriginTargetRect(d);\n        const targetX = targetRect.x + targetRect.width - d.state.rect.width;\n        const targetY = targetRect.y + targetRect.height - d.state.rect.height;\n        return `translate(${targetX},${targetY})`;\n      }).remove();\n      this.transition(mmGMerge).attr(\n        \"transform\",\n        (d) => `translate(${d.state.rect.x},${d.state.rect.y})`\n      );\n      const mmLineExit = mmGExit.selectAll(\n        childSelector(\"line\")\n      );\n      this.transition(mmLineExit).attr(\"x1\", (d) => d.state.rect.width).attr(\"stroke-width\", 0);\n      mmLineEnter.attr(\"x1\", (d) => d.state.rect.width).attr(\"x2\", (d) => d.state.rect.width);\n      mmLineMerge.attr(\"y1\", (d) => d.state.rect.height + lineWidth(d) / 2).attr(\"y2\", (d) => d.state.rect.height + lineWidth(d) / 2);\n      this.transition(mmLineMerge).attr(\"x1\", -1).attr(\"x2\", (d) => d.state.rect.width + 2).attr(\"stroke\", (d) => color(d)).attr(\"stroke-width\", lineWidth);\n      const mmCircleExit = mmGExit.selectAll(\n        childSelector(\"circle\")\n      );\n      this.transition(mmCircleExit).attr(\"r\", 0).attr(\"stroke-width\", 0);\n      mmCircleMerge.attr(\"cx\", (d) => d.state.rect.width).attr(\"cy\", (d) => d.state.rect.height + lineWidth(d) / 2);\n      this.transition(mmCircleMerge).attr(\"r\", 6).attr(\"stroke-width\", \"1.5\");\n      this.transition(mmFoExit).style(\"opacity\", 0);\n      mmFoMerge.attr(\"width\", (d) => Math.max(0, d.state.rect.width - paddingX * 2)).attr(\"height\", (d) => d.state.rect.height);\n      this.transition(mmFoMerge).style(\"opacity\", 1);\n      this.transition(mmPathExit).attr(\"d\", (d) => {\n        const targetRect = getOriginTargetRect(d.target);\n        const pathTarget = [\n          targetRect.x + targetRect.width,\n          targetRect.y + targetRect.height + lineWidth(d.target) / 2\n        ];\n        return linkShape({ source: pathTarget, target: pathTarget });\n      }).attr(\"stroke-width\", 0).remove();\n      this.transition(mmPathMerge).attr(\"stroke\", (d) => color(d.target)).attr(\"stroke-width\", (d) => lineWidth(d.target)).attr(\"d\", (d) => {\n        const origSource = d.source;\n        const origTarget = d.target;\n        const source = [\n          origSource.state.rect.x + origSource.state.rect.width,\n          origSource.state.rect.y + origSource.state.rect.height + lineWidth(origSource) / 2\n        ];\n        const target = [\n          origTarget.state.rect.x,\n          origTarget.state.rect.y + origTarget.state.rect.height + lineWidth(origTarget) / 2\n        ];\n        return linkShape({ source, target });\n      });\n      if (autoFit) this.fit();\n    }\n    transition(sel) {\n      const { duration } = this.options;\n      return sel.transition().duration(duration);\n    }\n    /**\n     * Fit the content to the viewport.\n     */\n    async fit(maxScale = this.options.maxInitialScale) {\n      const svgNode = this.svg.node();\n      const { width: offsetWidth, height: offsetHeight } = svgNode.getBoundingClientRect();\n      const { fitRatio } = this.options;\n      const { x1, y1, x2, y2 } = this.state.rect;\n      const naturalWidth = x2 - x1;\n      const naturalHeight = y2 - y1;\n      const scale = Math.min(\n        offsetWidth / naturalWidth * fitRatio,\n        offsetHeight / naturalHeight * fitRatio,\n        maxScale\n      );\n      const initialZoom = d32.zoomIdentity.translate(\n        (offsetWidth - naturalWidth * scale) / 2 - x1 * scale,\n        (offsetHeight - naturalHeight * scale) / 2 - y1 * scale\n      ).scale(scale);\n      return this.transition(this.svg).call(this.zoom.transform, initialZoom).end().catch(noop);\n    }\n    findElement(node) {\n      let result;\n      this.g.selectAll(childSelector(SELECTOR_NODE)).each(function walk(d) {\n        if (d === node) {\n          result = {\n            data: d,\n            g: this\n          };\n        }\n      });\n      return result;\n    }\n    /**\n     * Pan the content to make the provided node visible in the viewport.\n     */\n    async ensureVisible(node, padding) {\n      var _a;\n      const itemData = (_a = this.findElement(node)) == null ? void 0 : _a.data;\n      if (!itemData) return;\n      const svgNode = this.svg.node();\n      const relRect = svgNode.getBoundingClientRect();\n      const transform = d32.zoomTransform(svgNode);\n      const [left, right] = [\n        itemData.state.rect.x,\n        itemData.state.rect.x + itemData.state.rect.width + 2\n      ].map((x) => x * transform.k + transform.x);\n      const [top, bottom] = [\n        itemData.state.rect.y,\n        itemData.state.rect.y + itemData.state.rect.height\n      ].map((y) => y * transform.k + transform.y);\n      const pd = {\n        left: 0,\n        right: 0,\n        top: 0,\n        bottom: 0,\n        ...padding\n      };\n      const dxs = [pd.left - left, relRect.width - pd.right - right];\n      const dys = [pd.top - top, relRect.height - pd.bottom - bottom];\n      const dx = dxs[0] * dxs[1] > 0 ? minBy(dxs, Math.abs) / transform.k : 0;\n      const dy = dys[0] * dys[1] > 0 ? minBy(dys, Math.abs) / transform.k : 0;\n      if (dx || dy) {\n        const newTransform = transform.translate(dx, dy);\n        return this.transition(this.svg).call(this.zoom.transform, newTransform).end().catch(noop);\n      }\n    }\n    async centerNode(node, padding) {\n      var _a;\n      const itemData = (_a = this.findElement(node)) == null ? void 0 : _a.data;\n      if (!itemData) return;\n      const svgNode = this.svg.node();\n      const relRect = svgNode.getBoundingClientRect();\n      const transform = d32.zoomTransform(svgNode);\n      const x = (itemData.state.rect.x + itemData.state.rect.width / 2) * transform.k + transform.x;\n      const y = (itemData.state.rect.y + itemData.state.rect.height / 2) * transform.k + transform.y;\n      const pd = {\n        left: 0,\n        right: 0,\n        top: 0,\n        bottom: 0,\n        ...padding\n      };\n      const cx = (pd.left + relRect.width - pd.right) / 2;\n      const cy = (pd.top + relRect.height - pd.bottom) / 2;\n      const dx = (cx - x) / transform.k;\n      const dy = (cy - y) / transform.k;\n      if (dx || dy) {\n        const newTransform = transform.translate(dx, dy);\n        return this.transition(this.svg).call(this.zoom.transform, newTransform).end().catch(noop);\n      }\n    }\n    /**\n     * Scale content with it pinned at the center of the viewport.\n     */\n    async rescale(scale) {\n      const svgNode = this.svg.node();\n      const { width: offsetWidth, height: offsetHeight } = svgNode.getBoundingClientRect();\n      const halfWidth = offsetWidth / 2;\n      const halfHeight = offsetHeight / 2;\n      const transform = d32.zoomTransform(svgNode);\n      const newTransform = transform.translate(\n        (halfWidth - transform.x) * (1 - scale) / transform.k,\n        (halfHeight - transform.y) * (1 - scale) / transform.k\n      ).scale(scale);\n      return this.transition(this.svg).call(this.zoom.transform, newTransform).end().catch(noop);\n    }\n    destroy() {\n      this.svg.on(\".zoom\", null);\n      this.svg.html(null);\n      this._disposeList.forEach((fn) => {\n        fn();\n      });\n    }\n    static create(svg, opts, data = null) {\n      const mm = new Markmap(svg, opts);\n      if (data) {\n        mm.setData(data).then(() => {\n          mm.fit();\n        });\n      }\n      return mm;\n    }\n  }\n  exports.Markmap = Markmap;\n  exports.childSelector = childSelector;\n  exports.defaultColorFn = defaultColorFn;\n  exports.defaultOptions = defaultOptions;\n  exports.deriveOptions = deriveOptions;\n  exports.globalCSS = globalCSS;\n  exports.isMacintosh = isMacintosh;\n  exports.lineWidthFactory = lineWidthFactory;\n  exports.loadCSS = loadCSS;\n  exports.loadJS = loadJS;\n  exports.refreshHook = refreshHook;\n  exports.simpleHash = simpleHash;\n  Object.defineProperty(exports, Symbol.toStringTag, { value: \"Module\" });\n})(this.markmap = this.markmap || {}, d3);\n"]}