%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /www/varak.net/nextcloud.varak.net/apps/text/js/
Upload File :
Create Path :
Current File : /www/varak.net/nextcloud.varak.net/apps/text/js/sankeyDiagram-04a897e0-BfmQBkWT.chunk.mjs.map

{"version":3,"file":"sankeyDiagram-04a897e0-BfmQBkWT.chunk.mjs","sources":["../node_modules/d3-sankey/node_modules/d3-array/src/max.js","../node_modules/d3-sankey/node_modules/d3-array/src/min.js","../node_modules/d3-sankey/node_modules/d3-array/src/sum.js","../node_modules/d3-sankey/src/align.js","../node_modules/d3-sankey/src/constant.js","../node_modules/d3-sankey/src/sankey.js","../node_modules/d3-sankey/node_modules/d3-path/src/path.js","../node_modules/d3-sankey/node_modules/d3-shape/src/constant.js","../node_modules/d3-sankey/node_modules/d3-shape/src/point.js","../node_modules/d3-sankey/node_modules/d3-shape/src/array.js","../node_modules/d3-sankey/node_modules/d3-shape/src/link/index.js","../node_modules/d3-sankey/src/sankeyLinkHorizontal.js","../node_modules/mermaid/dist/sankeyDiagram-04a897e0.js"],"sourcesContent":["export default function max(values, valueof) {\n  let max;\n  if (valueof === undefined) {\n    for (const value of values) {\n      if (value != null\n          && (max < value || (max === undefined && value >= value))) {\n        max = value;\n      }\n    }\n  } else {\n    let index = -1;\n    for (let value of values) {\n      if ((value = valueof(value, ++index, values)) != null\n          && (max < value || (max === undefined && value >= value))) {\n        max = value;\n      }\n    }\n  }\n  return max;\n}\n","export default function min(values, valueof) {\n  let min;\n  if (valueof === undefined) {\n    for (const value of values) {\n      if (value != null\n          && (min > value || (min === undefined && value >= value))) {\n        min = value;\n      }\n    }\n  } else {\n    let index = -1;\n    for (let value of values) {\n      if ((value = valueof(value, ++index, values)) != null\n          && (min > value || (min === undefined && value >= value))) {\n        min = value;\n      }\n    }\n  }\n  return min;\n}\n","export default function sum(values, valueof) {\n  let sum = 0;\n  if (valueof === undefined) {\n    for (let value of values) {\n      if (value = +value) {\n        sum += value;\n      }\n    }\n  } else {\n    let index = -1;\n    for (let value of values) {\n      if (value = +valueof(value, ++index, values)) {\n        sum += value;\n      }\n    }\n  }\n  return sum;\n}\n","import {min} from \"d3-array\";\n\nfunction targetDepth(d) {\n  return d.target.depth;\n}\n\nexport function left(node) {\n  return node.depth;\n}\n\nexport function right(node, n) {\n  return n - 1 - node.height;\n}\n\nexport function justify(node, n) {\n  return node.sourceLinks.length ? node.depth : n - 1;\n}\n\nexport function center(node) {\n  return node.targetLinks.length ? node.depth\n      : node.sourceLinks.length ? min(node.sourceLinks, targetDepth) - 1\n      : 0;\n}\n","export default function constant(x) {\n  return function() {\n    return x;\n  };\n}\n","import {max, min, sum} from \"d3-array\";\nimport {justify} from \"./align.js\";\nimport constant from \"./constant.js\";\n\nfunction ascendingSourceBreadth(a, b) {\n  return ascendingBreadth(a.source, b.source) || a.index - b.index;\n}\n\nfunction ascendingTargetBreadth(a, b) {\n  return ascendingBreadth(a.target, b.target) || a.index - b.index;\n}\n\nfunction ascendingBreadth(a, b) {\n  return a.y0 - b.y0;\n}\n\nfunction value(d) {\n  return d.value;\n}\n\nfunction defaultId(d) {\n  return d.index;\n}\n\nfunction defaultNodes(graph) {\n  return graph.nodes;\n}\n\nfunction defaultLinks(graph) {\n  return graph.links;\n}\n\nfunction find(nodeById, id) {\n  const node = nodeById.get(id);\n  if (!node) throw new Error(\"missing: \" + id);\n  return node;\n}\n\nfunction computeLinkBreadths({nodes}) {\n  for (const node of nodes) {\n    let y0 = node.y0;\n    let y1 = y0;\n    for (const link of node.sourceLinks) {\n      link.y0 = y0 + link.width / 2;\n      y0 += link.width;\n    }\n    for (const link of node.targetLinks) {\n      link.y1 = y1 + link.width / 2;\n      y1 += link.width;\n    }\n  }\n}\n\nexport default function Sankey() {\n  let x0 = 0, y0 = 0, x1 = 1, y1 = 1; // extent\n  let dx = 24; // nodeWidth\n  let dy = 8, py; // nodePadding\n  let id = defaultId;\n  let align = justify;\n  let sort;\n  let linkSort;\n  let nodes = defaultNodes;\n  let links = defaultLinks;\n  let iterations = 6;\n\n  function sankey() {\n    const graph = {nodes: nodes.apply(null, arguments), links: links.apply(null, arguments)};\n    computeNodeLinks(graph);\n    computeNodeValues(graph);\n    computeNodeDepths(graph);\n    computeNodeHeights(graph);\n    computeNodeBreadths(graph);\n    computeLinkBreadths(graph);\n    return graph;\n  }\n\n  sankey.update = function(graph) {\n    computeLinkBreadths(graph);\n    return graph;\n  };\n\n  sankey.nodeId = function(_) {\n    return arguments.length ? (id = typeof _ === \"function\" ? _ : constant(_), sankey) : id;\n  };\n\n  sankey.nodeAlign = function(_) {\n    return arguments.length ? (align = typeof _ === \"function\" ? _ : constant(_), sankey) : align;\n  };\n\n  sankey.nodeSort = function(_) {\n    return arguments.length ? (sort = _, sankey) : sort;\n  };\n\n  sankey.nodeWidth = function(_) {\n    return arguments.length ? (dx = +_, sankey) : dx;\n  };\n\n  sankey.nodePadding = function(_) {\n    return arguments.length ? (dy = py = +_, sankey) : dy;\n  };\n\n  sankey.nodes = function(_) {\n    return arguments.length ? (nodes = typeof _ === \"function\" ? _ : constant(_), sankey) : nodes;\n  };\n\n  sankey.links = function(_) {\n    return arguments.length ? (links = typeof _ === \"function\" ? _ : constant(_), sankey) : links;\n  };\n\n  sankey.linkSort = function(_) {\n    return arguments.length ? (linkSort = _, sankey) : linkSort;\n  };\n\n  sankey.size = function(_) {\n    return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankey) : [x1 - x0, y1 - y0];\n  };\n\n  sankey.extent = function(_) {\n    return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], sankey) : [[x0, y0], [x1, y1]];\n  };\n\n  sankey.iterations = function(_) {\n    return arguments.length ? (iterations = +_, sankey) : iterations;\n  };\n\n  function computeNodeLinks({nodes, links}) {\n    for (const [i, node] of nodes.entries()) {\n      node.index = i;\n      node.sourceLinks = [];\n      node.targetLinks = [];\n    }\n    const nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d]));\n    for (const [i, link] of links.entries()) {\n      link.index = i;\n      let {source, target} = link;\n      if (typeof source !== \"object\") source = link.source = find(nodeById, source);\n      if (typeof target !== \"object\") target = link.target = find(nodeById, target);\n      source.sourceLinks.push(link);\n      target.targetLinks.push(link);\n    }\n    if (linkSort != null) {\n      for (const {sourceLinks, targetLinks} of nodes) {\n        sourceLinks.sort(linkSort);\n        targetLinks.sort(linkSort);\n      }\n    }\n  }\n\n  function computeNodeValues({nodes}) {\n    for (const node of nodes) {\n      node.value = node.fixedValue === undefined\n          ? Math.max(sum(node.sourceLinks, value), sum(node.targetLinks, value))\n          : node.fixedValue;\n    }\n  }\n\n  function computeNodeDepths({nodes}) {\n    const n = nodes.length;\n    let current = new Set(nodes);\n    let next = new Set;\n    let x = 0;\n    while (current.size) {\n      for (const node of current) {\n        node.depth = x;\n        for (const {target} of node.sourceLinks) {\n          next.add(target);\n        }\n      }\n      if (++x > n) throw new Error(\"circular link\");\n      current = next;\n      next = new Set;\n    }\n  }\n\n  function computeNodeHeights({nodes}) {\n    const n = nodes.length;\n    let current = new Set(nodes);\n    let next = new Set;\n    let x = 0;\n    while (current.size) {\n      for (const node of current) {\n        node.height = x;\n        for (const {source} of node.targetLinks) {\n          next.add(source);\n        }\n      }\n      if (++x > n) throw new Error(\"circular link\");\n      current = next;\n      next = new Set;\n    }\n  }\n\n  function computeNodeLayers({nodes}) {\n    const x = max(nodes, d => d.depth) + 1;\n    const kx = (x1 - x0 - dx) / (x - 1);\n    const columns = new Array(x);\n    for (const node of nodes) {\n      const i = Math.max(0, Math.min(x - 1, Math.floor(align.call(null, node, x))));\n      node.layer = i;\n      node.x0 = x0 + i * kx;\n      node.x1 = node.x0 + dx;\n      if (columns[i]) columns[i].push(node);\n      else columns[i] = [node];\n    }\n    if (sort) for (const column of columns) {\n      column.sort(sort);\n    }\n    return columns;\n  }\n\n  function initializeNodeBreadths(columns) {\n    const ky = min(columns, c => (y1 - y0 - (c.length - 1) * py) / sum(c, value));\n    for (const nodes of columns) {\n      let y = y0;\n      for (const node of nodes) {\n        node.y0 = y;\n        node.y1 = y + node.value * ky;\n        y = node.y1 + py;\n        for (const link of node.sourceLinks) {\n          link.width = link.value * ky;\n        }\n      }\n      y = (y1 - y + py) / (nodes.length + 1);\n      for (let i = 0; i < nodes.length; ++i) {\n        const node = nodes[i];\n        node.y0 += y * (i + 1);\n        node.y1 += y * (i + 1);\n      }\n      reorderLinks(nodes);\n    }\n  }\n\n  function computeNodeBreadths(graph) {\n    const columns = computeNodeLayers(graph);\n    py = Math.min(dy, (y1 - y0) / (max(columns, c => c.length) - 1));\n    initializeNodeBreadths(columns);\n    for (let i = 0; i < iterations; ++i) {\n      const alpha = Math.pow(0.99, i);\n      const beta = Math.max(1 - alpha, (i + 1) / iterations);\n      relaxRightToLeft(columns, alpha, beta);\n      relaxLeftToRight(columns, alpha, beta);\n    }\n  }\n\n  // Reposition each node based on its incoming (target) links.\n  function relaxLeftToRight(columns, alpha, beta) {\n    for (let i = 1, n = columns.length; i < n; ++i) {\n      const column = columns[i];\n      for (const target of column) {\n        let y = 0;\n        let w = 0;\n        for (const {source, value} of target.targetLinks) {\n          let v = value * (target.layer - source.layer);\n          y += targetTop(source, target) * v;\n          w += v;\n        }\n        if (!(w > 0)) continue;\n        let dy = (y / w - target.y0) * alpha;\n        target.y0 += dy;\n        target.y1 += dy;\n        reorderNodeLinks(target);\n      }\n      if (sort === undefined) column.sort(ascendingBreadth);\n      resolveCollisions(column, beta);\n    }\n  }\n\n  // Reposition each node based on its outgoing (source) links.\n  function relaxRightToLeft(columns, alpha, beta) {\n    for (let n = columns.length, i = n - 2; i >= 0; --i) {\n      const column = columns[i];\n      for (const source of column) {\n        let y = 0;\n        let w = 0;\n        for (const {target, value} of source.sourceLinks) {\n          let v = value * (target.layer - source.layer);\n          y += sourceTop(source, target) * v;\n          w += v;\n        }\n        if (!(w > 0)) continue;\n        let dy = (y / w - source.y0) * alpha;\n        source.y0 += dy;\n        source.y1 += dy;\n        reorderNodeLinks(source);\n      }\n      if (sort === undefined) column.sort(ascendingBreadth);\n      resolveCollisions(column, beta);\n    }\n  }\n\n  function resolveCollisions(nodes, alpha) {\n    const i = nodes.length >> 1;\n    const subject = nodes[i];\n    resolveCollisionsBottomToTop(nodes, subject.y0 - py, i - 1, alpha);\n    resolveCollisionsTopToBottom(nodes, subject.y1 + py, i + 1, alpha);\n    resolveCollisionsBottomToTop(nodes, y1, nodes.length - 1, alpha);\n    resolveCollisionsTopToBottom(nodes, y0, 0, alpha);\n  }\n\n  // Push any overlapping nodes down.\n  function resolveCollisionsTopToBottom(nodes, y, i, alpha) {\n    for (; i < nodes.length; ++i) {\n      const node = nodes[i];\n      const dy = (y - node.y0) * alpha;\n      if (dy > 1e-6) node.y0 += dy, node.y1 += dy;\n      y = node.y1 + py;\n    }\n  }\n\n  // Push any overlapping nodes up.\n  function resolveCollisionsBottomToTop(nodes, y, i, alpha) {\n    for (; i >= 0; --i) {\n      const node = nodes[i];\n      const dy = (node.y1 - y) * alpha;\n      if (dy > 1e-6) node.y0 -= dy, node.y1 -= dy;\n      y = node.y0 - py;\n    }\n  }\n\n  function reorderNodeLinks({sourceLinks, targetLinks}) {\n    if (linkSort === undefined) {\n      for (const {source: {sourceLinks}} of targetLinks) {\n        sourceLinks.sort(ascendingTargetBreadth);\n      }\n      for (const {target: {targetLinks}} of sourceLinks) {\n        targetLinks.sort(ascendingSourceBreadth);\n      }\n    }\n  }\n\n  function reorderLinks(nodes) {\n    if (linkSort === undefined) {\n      for (const {sourceLinks, targetLinks} of nodes) {\n        sourceLinks.sort(ascendingTargetBreadth);\n        targetLinks.sort(ascendingSourceBreadth);\n      }\n    }\n  }\n\n  // Returns the target.y0 that would produce an ideal link from source to target.\n  function targetTop(source, target) {\n    let y = source.y0 - (source.sourceLinks.length - 1) * py / 2;\n    for (const {target: node, width} of source.sourceLinks) {\n      if (node === target) break;\n      y += width + py;\n    }\n    for (const {source: node, width} of target.targetLinks) {\n      if (node === source) break;\n      y -= width;\n    }\n    return y;\n  }\n\n  // Returns the source.y0 that would produce an ideal link from source to target.\n  function sourceTop(source, target) {\n    let y = target.y0 - (target.targetLinks.length - 1) * py / 2;\n    for (const {source: node, width} of target.targetLinks) {\n      if (node === source) break;\n      y += width + py;\n    }\n    for (const {target: node, width} of source.sourceLinks) {\n      if (node === target) break;\n      y -= width;\n    }\n    return y;\n  }\n\n  return sankey;\n}\n","var pi = Math.PI,\n    tau = 2 * pi,\n    epsilon = 1e-6,\n    tauEpsilon = tau - epsilon;\n\nfunction Path() {\n  this._x0 = this._y0 = // start of current subpath\n  this._x1 = this._y1 = null; // end of current subpath\n  this._ = \"\";\n}\n\nfunction path() {\n  return new Path;\n}\n\nPath.prototype = path.prototype = {\n  constructor: Path,\n  moveTo: function(x, y) {\n    this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n  },\n  closePath: function() {\n    if (this._x1 !== null) {\n      this._x1 = this._x0, this._y1 = this._y0;\n      this._ += \"Z\";\n    }\n  },\n  lineTo: function(x, y) {\n    this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n  },\n  quadraticCurveTo: function(x1, y1, x, y) {\n    this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n  },\n  bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n    this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n  },\n  arcTo: function(x1, y1, x2, y2, r) {\n    x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n    var x0 = this._x1,\n        y0 = this._y1,\n        x21 = x2 - x1,\n        y21 = y2 - y1,\n        x01 = x0 - x1,\n        y01 = y0 - y1,\n        l01_2 = x01 * x01 + y01 * y01;\n\n    // Is the radius negative? Error.\n    if (r < 0) throw new Error(\"negative radius: \" + r);\n\n    // Is this path empty? Move to (x1,y1).\n    if (this._x1 === null) {\n      this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n    }\n\n    // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n    else if (!(l01_2 > epsilon));\n\n    // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n    // Equivalently, is (x1,y1) coincident with (x2,y2)?\n    // Or, is the radius zero? Line to (x1,y1).\n    else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n      this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n    }\n\n    // Otherwise, draw an arc!\n    else {\n      var x20 = x2 - x0,\n          y20 = y2 - y0,\n          l21_2 = x21 * x21 + y21 * y21,\n          l20_2 = x20 * x20 + y20 * y20,\n          l21 = Math.sqrt(l21_2),\n          l01 = Math.sqrt(l01_2),\n          l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n          t01 = l / l01,\n          t21 = l / l21;\n\n      // If the start tangent is not coincident with (x0,y0), line to.\n      if (Math.abs(t01 - 1) > epsilon) {\n        this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n      }\n\n      this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n    }\n  },\n  arc: function(x, y, r, a0, a1, ccw) {\n    x = +x, y = +y, r = +r, ccw = !!ccw;\n    var dx = r * Math.cos(a0),\n        dy = r * Math.sin(a0),\n        x0 = x + dx,\n        y0 = y + dy,\n        cw = 1 ^ ccw,\n        da = ccw ? a0 - a1 : a1 - a0;\n\n    // Is the radius negative? Error.\n    if (r < 0) throw new Error(\"negative radius: \" + r);\n\n    // Is this path empty? Move to (x0,y0).\n    if (this._x1 === null) {\n      this._ += \"M\" + x0 + \",\" + y0;\n    }\n\n    // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n    else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n      this._ += \"L\" + x0 + \",\" + y0;\n    }\n\n    // Is this arc empty? We’re done.\n    if (!r) return;\n\n    // Does the angle go the wrong way? Flip the direction.\n    if (da < 0) da = da % tau + tau;\n\n    // Is this a complete circle? Draw two arcs to complete the circle.\n    if (da > tauEpsilon) {\n      this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n    }\n\n    // Is this arc non-empty? Draw an arc!\n    else if (da > epsilon) {\n      this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n    }\n  },\n  rect: function(x, y, w, h) {\n    this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n  },\n  toString: function() {\n    return this._;\n  }\n};\n\nexport default path;\n","export default function(x) {\n  return function constant() {\n    return x;\n  };\n}\n","export function x(p) {\n  return p[0];\n}\n\nexport function y(p) {\n  return p[1];\n}\n","export var slice = Array.prototype.slice;\n","import {path} from \"d3-path\";\nimport {slice} from \"../array.js\";\nimport constant from \"../constant.js\";\nimport {x as pointX, y as pointY} from \"../point.js\";\nimport pointRadial from \"../pointRadial.js\";\n\nfunction linkSource(d) {\n  return d.source;\n}\n\nfunction linkTarget(d) {\n  return d.target;\n}\n\nfunction link(curve) {\n  var source = linkSource,\n      target = linkTarget,\n      x = pointX,\n      y = pointY,\n      context = null;\n\n  function link() {\n    var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n    if (!context) context = buffer = path();\n    curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n    if (buffer) return context = null, buffer + \"\" || null;\n  }\n\n  link.source = function(_) {\n    return arguments.length ? (source = _, link) : source;\n  };\n\n  link.target = function(_) {\n    return arguments.length ? (target = _, link) : target;\n  };\n\n  link.x = function(_) {\n    return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n  };\n\n  link.y = function(_) {\n    return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n  };\n\n  link.context = function(_) {\n    return arguments.length ? ((context = _ == null ? null : _), link) : context;\n  };\n\n  return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n  context.moveTo(x0, y0);\n  context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n  context.moveTo(x0, y0);\n  context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n  var p0 = pointRadial(x0, y0),\n      p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n      p2 = pointRadial(x1, y0),\n      p3 = pointRadial(x1, y1);\n  context.moveTo(p0[0], p0[1]);\n  context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nexport function linkHorizontal() {\n  return link(curveHorizontal);\n}\n\nexport function linkVertical() {\n  return link(curveVertical);\n}\n\nexport function linkRadial() {\n  var l = link(curveRadial);\n  l.angle = l.x, delete l.x;\n  l.radius = l.y, delete l.y;\n  return l;\n}\n","import {linkHorizontal} from \"d3-shape\";\n\nfunction horizontalSource(d) {\n  return [d.source.x1, d.y0];\n}\n\nfunction horizontalTarget(d) {\n  return [d.target.x0, d.y1];\n}\n\nexport default function() {\n  return linkHorizontal()\n      .source(horizontalSource)\n      .target(horizontalTarget);\n}\n","import { c as getConfig, g as getAccTitle, s as setAccTitle, a as getAccDescription, b as setAccDescription, t as getDiagramTitle, q as setDiagramTitle, v as clear$1, e as common, K as defaultConfig, o as setupGraphViewbox } from \"./mermaid-b5860b54.js\";\nimport { select, scaleOrdinal, schemeTableau10 } from \"d3\";\nimport { sankey, sankeyLinkHorizontal, sankeyLeft, sankeyRight, sankeyCenter, sankeyJustify } from \"d3-sankey\";\nimport \"ts-dedent\";\nimport \"dayjs\";\nimport \"@braintree/sanitize-url\";\nimport \"dompurify\";\nimport \"khroma\";\nimport \"lodash-es/memoize.js\";\nimport \"lodash-es/merge.js\";\nimport \"stylis\";\nimport \"lodash-es/isEmpty.js\";\nvar parser = function() {\n  var o = function(k, v, o2, l) {\n    for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)\n      ;\n    return o2;\n  }, $V0 = [1, 9], $V1 = [1, 10], $V2 = [1, 5, 10, 12];\n  var parser2 = {\n    trace: function trace() {\n    },\n    yy: {},\n    symbols_: { \"error\": 2, \"start\": 3, \"SANKEY\": 4, \"NEWLINE\": 5, \"csv\": 6, \"opt_eof\": 7, \"record\": 8, \"csv_tail\": 9, \"EOF\": 10, \"field[source]\": 11, \"COMMA\": 12, \"field[target]\": 13, \"field[value]\": 14, \"field\": 15, \"escaped\": 16, \"non_escaped\": 17, \"DQUOTE\": 18, \"ESCAPED_TEXT\": 19, \"NON_ESCAPED_TEXT\": 20, \"$accept\": 0, \"$end\": 1 },\n    terminals_: { 2: \"error\", 4: \"SANKEY\", 5: \"NEWLINE\", 10: \"EOF\", 11: \"field[source]\", 12: \"COMMA\", 13: \"field[target]\", 14: \"field[value]\", 18: \"DQUOTE\", 19: \"ESCAPED_TEXT\", 20: \"NON_ESCAPED_TEXT\" },\n    productions_: [0, [3, 4], [6, 2], [9, 2], [9, 0], [7, 1], [7, 0], [8, 5], [15, 1], [15, 1], [16, 3], [17, 1]],\n    performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n      var $0 = $$.length - 1;\n      switch (yystate) {\n        case 7:\n          const source = yy.findOrCreateNode($$[$0 - 4].trim().replaceAll('\"\"', '\"'));\n          const target = yy.findOrCreateNode($$[$0 - 2].trim().replaceAll('\"\"', '\"'));\n          const value = parseFloat($$[$0].trim());\n          yy.addLink(source, target, value);\n          break;\n        case 8:\n        case 9:\n        case 11:\n          this.$ = $$[$0];\n          break;\n        case 10:\n          this.$ = $$[$0 - 1];\n          break;\n      }\n    },\n    table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, { 5: [1, 3] }, { 6: 4, 8: 5, 15: 6, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 1: [2, 6], 7: 11, 10: [1, 12] }, o($V1, [2, 4], { 9: 13, 5: [1, 14] }), { 12: [1, 15] }, o($V2, [2, 8]), o($V2, [2, 9]), { 19: [1, 16] }, o($V2, [2, 11]), { 1: [2, 1] }, { 1: [2, 5] }, o($V1, [2, 2]), { 6: 17, 8: 5, 15: 6, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 15: 18, 16: 7, 17: 8, 18: $V0, 20: $V1 }, { 18: [1, 19] }, o($V1, [2, 3]), { 12: [1, 20] }, o($V2, [2, 10]), { 15: 21, 16: 7, 17: 8, 18: $V0, 20: $V1 }, o([1, 5, 10], [2, 7])],\n    defaultActions: { 11: [2, 1], 12: [2, 5] },\n    parseError: function parseError(str, hash) {\n      if (hash.recoverable) {\n        this.trace(str);\n      } else {\n        var error = new Error(str);\n        error.hash = hash;\n        throw error;\n      }\n    },\n    parse: function parse(input) {\n      var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;\n      var args = lstack.slice.call(arguments, 1);\n      var lexer2 = Object.create(this.lexer);\n      var sharedState = { yy: {} };\n      for (var k in this.yy) {\n        if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n          sharedState.yy[k] = this.yy[k];\n        }\n      }\n      lexer2.setInput(input, sharedState.yy);\n      sharedState.yy.lexer = lexer2;\n      sharedState.yy.parser = this;\n      if (typeof lexer2.yylloc == \"undefined\") {\n        lexer2.yylloc = {};\n      }\n      var yyloc = lexer2.yylloc;\n      lstack.push(yyloc);\n      var ranges = lexer2.options && lexer2.options.ranges;\n      if (typeof sharedState.yy.parseError === \"function\") {\n        this.parseError = sharedState.yy.parseError;\n      } else {\n        this.parseError = Object.getPrototypeOf(this).parseError;\n      }\n      function lex() {\n        var token;\n        token = tstack.pop() || lexer2.lex() || EOF;\n        if (typeof token !== \"number\") {\n          if (token instanceof Array) {\n            tstack = token;\n            token = tstack.pop();\n          }\n          token = self.symbols_[token] || token;\n        }\n        return token;\n      }\n      var symbol, state, action, r, yyval = {}, p, len, newState, expected;\n      while (true) {\n        state = stack[stack.length - 1];\n        if (this.defaultActions[state]) {\n          action = this.defaultActions[state];\n        } else {\n          if (symbol === null || typeof symbol == \"undefined\") {\n            symbol = lex();\n          }\n          action = table[state] && table[state][symbol];\n        }\n        if (typeof action === \"undefined\" || !action.length || !action[0]) {\n          var errStr = \"\";\n          expected = [];\n          for (p in table[state]) {\n            if (this.terminals_[p] && p > TERROR) {\n              expected.push(\"'\" + this.terminals_[p] + \"'\");\n            }\n          }\n          if (lexer2.showPosition) {\n            errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n          } else {\n            errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n          }\n          this.parseError(errStr, {\n            text: lexer2.match,\n            token: this.terminals_[symbol] || symbol,\n            line: lexer2.yylineno,\n            loc: yyloc,\n            expected\n          });\n        }\n        if (action[0] instanceof Array && action.length > 1) {\n          throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n        }\n        switch (action[0]) {\n          case 1:\n            stack.push(symbol);\n            vstack.push(lexer2.yytext);\n            lstack.push(lexer2.yylloc);\n            stack.push(action[1]);\n            symbol = null;\n            {\n              yyleng = lexer2.yyleng;\n              yytext = lexer2.yytext;\n              yylineno = lexer2.yylineno;\n              yyloc = lexer2.yylloc;\n            }\n            break;\n          case 2:\n            len = this.productions_[action[1]][1];\n            yyval.$ = vstack[vstack.length - len];\n            yyval._$ = {\n              first_line: lstack[lstack.length - (len || 1)].first_line,\n              last_line: lstack[lstack.length - 1].last_line,\n              first_column: lstack[lstack.length - (len || 1)].first_column,\n              last_column: lstack[lstack.length - 1].last_column\n            };\n            if (ranges) {\n              yyval._$.range = [\n                lstack[lstack.length - (len || 1)].range[0],\n                lstack[lstack.length - 1].range[1]\n              ];\n            }\n            r = this.performAction.apply(yyval, [\n              yytext,\n              yyleng,\n              yylineno,\n              sharedState.yy,\n              action[1],\n              vstack,\n              lstack\n            ].concat(args));\n            if (typeof r !== \"undefined\") {\n              return r;\n            }\n            if (len) {\n              stack = stack.slice(0, -1 * len * 2);\n              vstack = vstack.slice(0, -1 * len);\n              lstack = lstack.slice(0, -1 * len);\n            }\n            stack.push(this.productions_[action[1]][0]);\n            vstack.push(yyval.$);\n            lstack.push(yyval._$);\n            newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n            stack.push(newState);\n            break;\n          case 3:\n            return true;\n        }\n      }\n      return true;\n    }\n  };\n  var lexer = function() {\n    var lexer2 = {\n      EOF: 1,\n      parseError: function parseError(str, hash) {\n        if (this.yy.parser) {\n          this.yy.parser.parseError(str, hash);\n        } else {\n          throw new Error(str);\n        }\n      },\n      // resets the lexer, sets new input\n      setInput: function(input, yy) {\n        this.yy = yy || this.yy || {};\n        this._input = input;\n        this._more = this._backtrack = this.done = false;\n        this.yylineno = this.yyleng = 0;\n        this.yytext = this.matched = this.match = \"\";\n        this.conditionStack = [\"INITIAL\"];\n        this.yylloc = {\n          first_line: 1,\n          first_column: 0,\n          last_line: 1,\n          last_column: 0\n        };\n        if (this.options.ranges) {\n          this.yylloc.range = [0, 0];\n        }\n        this.offset = 0;\n        return this;\n      },\n      // consumes and returns one char from the input\n      input: function() {\n        var ch = this._input[0];\n        this.yytext += ch;\n        this.yyleng++;\n        this.offset++;\n        this.match += ch;\n        this.matched += ch;\n        var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n        if (lines) {\n          this.yylineno++;\n          this.yylloc.last_line++;\n        } else {\n          this.yylloc.last_column++;\n        }\n        if (this.options.ranges) {\n          this.yylloc.range[1]++;\n        }\n        this._input = this._input.slice(1);\n        return ch;\n      },\n      // unshifts one char (or a string) into the input\n      unput: function(ch) {\n        var len = ch.length;\n        var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n        this._input = ch + this._input;\n        this.yytext = this.yytext.substr(0, this.yytext.length - len);\n        this.offset -= len;\n        var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n        this.match = this.match.substr(0, this.match.length - 1);\n        this.matched = this.matched.substr(0, this.matched.length - 1);\n        if (lines.length - 1) {\n          this.yylineno -= lines.length - 1;\n        }\n        var r = this.yylloc.range;\n        this.yylloc = {\n          first_line: this.yylloc.first_line,\n          last_line: this.yylineno + 1,\n          first_column: this.yylloc.first_column,\n          last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n        };\n        if (this.options.ranges) {\n          this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n        }\n        this.yyleng = this.yytext.length;\n        return this;\n      },\n      // When called from action, caches matched text and appends it on next action\n      more: function() {\n        this._more = true;\n        return this;\n      },\n      // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n      reject: function() {\n        if (this.options.backtrack_lexer) {\n          this._backtrack = true;\n        } else {\n          return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n            text: \"\",\n            token: null,\n            line: this.yylineno\n          });\n        }\n        return this;\n      },\n      // retain first n characters of the match\n      less: function(n) {\n        this.unput(this.match.slice(n));\n      },\n      // displays already matched input, i.e. for error messages\n      pastInput: function() {\n        var past = this.matched.substr(0, this.matched.length - this.match.length);\n        return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n      },\n      // displays upcoming input, i.e. for error messages\n      upcomingInput: function() {\n        var next = this.match;\n        if (next.length < 20) {\n          next += this._input.substr(0, 20 - next.length);\n        }\n        return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n      },\n      // displays the character position where the lexing error occurred, i.e. for error messages\n      showPosition: function() {\n        var pre = this.pastInput();\n        var c = new Array(pre.length + 1).join(\"-\");\n        return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n      },\n      // test the lexed token: return FALSE when not a match, otherwise return token\n      test_match: function(match, indexed_rule) {\n        var token, lines, backup;\n        if (this.options.backtrack_lexer) {\n          backup = {\n            yylineno: this.yylineno,\n            yylloc: {\n              first_line: this.yylloc.first_line,\n              last_line: this.last_line,\n              first_column: this.yylloc.first_column,\n              last_column: this.yylloc.last_column\n            },\n            yytext: this.yytext,\n            match: this.match,\n            matches: this.matches,\n            matched: this.matched,\n            yyleng: this.yyleng,\n            offset: this.offset,\n            _more: this._more,\n            _input: this._input,\n            yy: this.yy,\n            conditionStack: this.conditionStack.slice(0),\n            done: this.done\n          };\n          if (this.options.ranges) {\n            backup.yylloc.range = this.yylloc.range.slice(0);\n          }\n        }\n        lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n        if (lines) {\n          this.yylineno += lines.length;\n        }\n        this.yylloc = {\n          first_line: this.yylloc.last_line,\n          last_line: this.yylineno + 1,\n          first_column: this.yylloc.last_column,\n          last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n        };\n        this.yytext += match[0];\n        this.match += match[0];\n        this.matches = match;\n        this.yyleng = this.yytext.length;\n        if (this.options.ranges) {\n          this.yylloc.range = [this.offset, this.offset += this.yyleng];\n        }\n        this._more = false;\n        this._backtrack = false;\n        this._input = this._input.slice(match[0].length);\n        this.matched += match[0];\n        token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n        if (this.done && this._input) {\n          this.done = false;\n        }\n        if (token) {\n          return token;\n        } else if (this._backtrack) {\n          for (var k in backup) {\n            this[k] = backup[k];\n          }\n          return false;\n        }\n        return false;\n      },\n      // return next match in input\n      next: function() {\n        if (this.done) {\n          return this.EOF;\n        }\n        if (!this._input) {\n          this.done = true;\n        }\n        var token, match, tempMatch, index;\n        if (!this._more) {\n          this.yytext = \"\";\n          this.match = \"\";\n        }\n        var rules = this._currentRules();\n        for (var i = 0; i < rules.length; i++) {\n          tempMatch = this._input.match(this.rules[rules[i]]);\n          if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n            match = tempMatch;\n            index = i;\n            if (this.options.backtrack_lexer) {\n              token = this.test_match(tempMatch, rules[i]);\n              if (token !== false) {\n                return token;\n              } else if (this._backtrack) {\n                match = false;\n                continue;\n              } else {\n                return false;\n              }\n            } else if (!this.options.flex) {\n              break;\n            }\n          }\n        }\n        if (match) {\n          token = this.test_match(match, rules[index]);\n          if (token !== false) {\n            return token;\n          }\n          return false;\n        }\n        if (this._input === \"\") {\n          return this.EOF;\n        } else {\n          return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n            text: \"\",\n            token: null,\n            line: this.yylineno\n          });\n        }\n      },\n      // return next match that has a token\n      lex: function lex() {\n        var r = this.next();\n        if (r) {\n          return r;\n        } else {\n          return this.lex();\n        }\n      },\n      // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n      begin: function begin(condition) {\n        this.conditionStack.push(condition);\n      },\n      // pop the previously active lexer condition state off the condition stack\n      popState: function popState() {\n        var n = this.conditionStack.length - 1;\n        if (n > 0) {\n          return this.conditionStack.pop();\n        } else {\n          return this.conditionStack[0];\n        }\n      },\n      // produce the lexer rule set which is active for the currently active lexer condition state\n      _currentRules: function _currentRules() {\n        if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n          return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n        } else {\n          return this.conditions[\"INITIAL\"].rules;\n        }\n      },\n      // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n      topState: function topState(n) {\n        n = this.conditionStack.length - 1 - Math.abs(n || 0);\n        if (n >= 0) {\n          return this.conditionStack[n];\n        } else {\n          return \"INITIAL\";\n        }\n      },\n      // alias for begin(condition)\n      pushState: function pushState(condition) {\n        this.begin(condition);\n      },\n      // return the number of states currently on the stack\n      stateStackSize: function stateStackSize() {\n        return this.conditionStack.length;\n      },\n      options: { \"case-insensitive\": true },\n      performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n        switch ($avoiding_name_collisions) {\n          case 0:\n            this.pushState(\"csv\");\n            return 4;\n          case 1:\n            return 10;\n          case 2:\n            return 5;\n          case 3:\n            return 12;\n          case 4:\n            this.pushState(\"escaped_text\");\n            return 18;\n          case 5:\n            return 20;\n          case 6:\n            this.popState(\"escaped_text\");\n            return 18;\n          case 7:\n            return 19;\n        }\n      },\n      rules: [/^(?:sankey-beta\\b)/i, /^(?:$)/i, /^(?:((\\u000D\\u000A)|(\\u000A)))/i, /^(?:(\\u002C))/i, /^(?:(\\u0022))/i, /^(?:([\\u0020-\\u0021\\u0023-\\u002B\\u002D-\\u007E])*)/i, /^(?:(\\u0022)(?!(\\u0022)))/i, /^(?:(([\\u0020-\\u0021\\u0023-\\u002B\\u002D-\\u007E])|(\\u002C)|(\\u000D)|(\\u000A)|(\\u0022)(\\u0022))*)/i],\n      conditions: { \"csv\": { \"rules\": [1, 2, 3, 4, 5, 6, 7], \"inclusive\": false }, \"escaped_text\": { \"rules\": [6, 7], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 1, 2, 3, 4, 5, 6, 7], \"inclusive\": true } }\n    };\n    return lexer2;\n  }();\n  parser2.lexer = lexer;\n  function Parser() {\n    this.yy = {};\n  }\n  Parser.prototype = parser2;\n  parser2.Parser = Parser;\n  return new Parser();\n}();\nparser.parser = parser;\nconst parser$1 = parser;\nlet links = [];\nlet nodes = [];\nlet nodesMap = {};\nconst clear = () => {\n  links = [];\n  nodes = [];\n  nodesMap = {};\n  clear$1();\n};\nclass SankeyLink {\n  constructor(source, target, value = 0) {\n    this.source = source;\n    this.target = target;\n    this.value = value;\n  }\n}\nconst addLink = (source, target, value) => {\n  links.push(new SankeyLink(source, target, value));\n};\nclass SankeyNode {\n  constructor(ID) {\n    this.ID = ID;\n  }\n}\nconst findOrCreateNode = (ID) => {\n  ID = common.sanitizeText(ID, getConfig());\n  if (!nodesMap[ID]) {\n    nodesMap[ID] = new SankeyNode(ID);\n    nodes.push(nodesMap[ID]);\n  }\n  return nodesMap[ID];\n};\nconst getNodes = () => nodes;\nconst getLinks = () => links;\nconst getGraph = () => ({\n  nodes: nodes.map((node) => ({ id: node.ID })),\n  links: links.map((link) => ({\n    source: link.source.ID,\n    target: link.target.ID,\n    value: link.value\n  }))\n});\nconst db = {\n  nodesMap,\n  getConfig: () => getConfig().sankey,\n  getNodes,\n  getLinks,\n  getGraph,\n  addLink,\n  findOrCreateNode,\n  getAccTitle,\n  setAccTitle,\n  getAccDescription,\n  setAccDescription,\n  getDiagramTitle,\n  setDiagramTitle,\n  clear\n};\nconst _Uid = class _Uid2 {\n  static next(name) {\n    return new _Uid2(name + ++_Uid2.count);\n  }\n  constructor(id) {\n    this.id = id;\n    this.href = `#${id}`;\n  }\n  toString() {\n    return \"url(\" + this.href + \")\";\n  }\n};\n_Uid.count = 0;\nlet Uid = _Uid;\nconst alignmentsMap = {\n  left: sankeyLeft,\n  right: sankeyRight,\n  center: sankeyCenter,\n  justify: sankeyJustify\n};\nconst draw = function(text, id, _version, diagObj) {\n  const { securityLevel, sankey: conf } = getConfig();\n  const defaultSankeyConfig = defaultConfig.sankey;\n  let sandboxElement;\n  if (securityLevel === \"sandbox\") {\n    sandboxElement = select(\"#i\" + id);\n  }\n  const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n  const svg = securityLevel === \"sandbox\" ? root.select(`[id=\"${id}\"]`) : select(`[id=\"${id}\"]`);\n  const width = (conf == null ? void 0 : conf.width) ?? defaultSankeyConfig.width;\n  const height = (conf == null ? void 0 : conf.height) ?? defaultSankeyConfig.width;\n  const useMaxWidth = (conf == null ? void 0 : conf.useMaxWidth) ?? defaultSankeyConfig.useMaxWidth;\n  const nodeAlignment = (conf == null ? void 0 : conf.nodeAlignment) ?? defaultSankeyConfig.nodeAlignment;\n  const prefix = (conf == null ? void 0 : conf.prefix) ?? defaultSankeyConfig.prefix;\n  const suffix = (conf == null ? void 0 : conf.suffix) ?? defaultSankeyConfig.suffix;\n  const showValues = (conf == null ? void 0 : conf.showValues) ?? defaultSankeyConfig.showValues;\n  const graph = diagObj.db.getGraph();\n  const nodeAlign = alignmentsMap[nodeAlignment];\n  const nodeWidth = 10;\n  const sankey$1 = sankey().nodeId((d) => d.id).nodeWidth(nodeWidth).nodePadding(10 + (showValues ? 15 : 0)).nodeAlign(nodeAlign).extent([\n    [0, 0],\n    [width, height]\n  ]);\n  sankey$1(graph);\n  const colorScheme = scaleOrdinal(schemeTableau10);\n  svg.append(\"g\").attr(\"class\", \"nodes\").selectAll(\".node\").data(graph.nodes).join(\"g\").attr(\"class\", \"node\").attr(\"id\", (d) => (d.uid = Uid.next(\"node-\")).id).attr(\"transform\", function(d) {\n    return \"translate(\" + d.x0 + \",\" + d.y0 + \")\";\n  }).attr(\"x\", (d) => d.x0).attr(\"y\", (d) => d.y0).append(\"rect\").attr(\"height\", (d) => {\n    return d.y1 - d.y0;\n  }).attr(\"width\", (d) => d.x1 - d.x0).attr(\"fill\", (d) => colorScheme(d.id));\n  const getText = ({ id: id2, value }) => {\n    if (!showValues) {\n      return id2;\n    }\n    return `${id2}\n${prefix}${Math.round(value * 100) / 100}${suffix}`;\n  };\n  svg.append(\"g\").attr(\"class\", \"node-labels\").attr(\"font-family\", \"sans-serif\").attr(\"font-size\", 14).selectAll(\"text\").data(graph.nodes).join(\"text\").attr(\"x\", (d) => d.x0 < width / 2 ? d.x1 + 6 : d.x0 - 6).attr(\"y\", (d) => (d.y1 + d.y0) / 2).attr(\"dy\", `${showValues ? \"0\" : \"0.35\"}em`).attr(\"text-anchor\", (d) => d.x0 < width / 2 ? \"start\" : \"end\").text(getText);\n  const link = svg.append(\"g\").attr(\"class\", \"links\").attr(\"fill\", \"none\").attr(\"stroke-opacity\", 0.5).selectAll(\".link\").data(graph.links).join(\"g\").attr(\"class\", \"link\").style(\"mix-blend-mode\", \"multiply\");\n  const linkColor = (conf == null ? void 0 : conf.linkColor) || \"gradient\";\n  if (linkColor === \"gradient\") {\n    const gradient = link.append(\"linearGradient\").attr(\"id\", (d) => (d.uid = Uid.next(\"linearGradient-\")).id).attr(\"gradientUnits\", \"userSpaceOnUse\").attr(\"x1\", (d) => d.source.x1).attr(\"x2\", (d) => d.target.x0);\n    gradient.append(\"stop\").attr(\"offset\", \"0%\").attr(\"stop-color\", (d) => colorScheme(d.source.id));\n    gradient.append(\"stop\").attr(\"offset\", \"100%\").attr(\"stop-color\", (d) => colorScheme(d.target.id));\n  }\n  let coloring;\n  switch (linkColor) {\n    case \"gradient\":\n      coloring = (d) => d.uid;\n      break;\n    case \"source\":\n      coloring = (d) => colorScheme(d.source.id);\n      break;\n    case \"target\":\n      coloring = (d) => colorScheme(d.target.id);\n      break;\n    default:\n      coloring = linkColor;\n  }\n  link.append(\"path\").attr(\"d\", sankeyLinkHorizontal()).attr(\"stroke\", coloring).attr(\"stroke-width\", (d) => Math.max(1, d.width));\n  setupGraphViewbox(void 0, svg, 0, useMaxWidth);\n};\nconst renderer = {\n  draw\n};\nconst prepareTextForParsing = (text) => {\n  const textToParse = text.replaceAll(/^[^\\S\\n\\r]+|[^\\S\\n\\r]+$/g, \"\").replaceAll(/([\\n\\r])+/g, \"\\n\").trim();\n  return textToParse;\n};\nconst originalParse = parser$1.parse.bind(parser$1);\nparser$1.parse = (text) => originalParse(prepareTextForParsing(text));\nconst diagram = {\n  parser: parser$1,\n  db,\n  renderer\n};\nexport {\n  diagram\n};\n"],"names":["max","values","valueof","value","index","min","sum","targetDepth","d","left","node","right","n","justify","center","constant","x","ascendingSourceBreadth","a","b","ascendingBreadth","ascendingTargetBreadth","defaultId","defaultNodes","graph","defaultLinks","find","nodeById","id","computeLinkBreadths","nodes","y0","y1","link","Sankey","x0","x1","dx","dy","py","align","sort","linkSort","links","iterations","sankey","computeNodeLinks","computeNodeValues","computeNodeDepths","computeNodeHeights","computeNodeBreadths","_","i","source","target","sourceLinks","targetLinks","current","next","computeNodeLayers","kx","columns","column","initializeNodeBreadths","ky","c","y","reorderLinks","alpha","beta","relaxRightToLeft","relaxLeftToRight","w","v","targetTop","reorderNodeLinks","resolveCollisions","sourceTop","subject","resolveCollisionsBottomToTop","resolveCollisionsTopToBottom","width","pi","tau","epsilon","tauEpsilon","Path","path","x2","y2","r","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","l","t01","t21","a0","a1","ccw","cw","da","h","p","slice","linkSource","linkTarget","curve","pointX","pointY","context","buffer","argv","s","t","curveHorizontal","linkHorizontal","horizontalSource","horizontalTarget","sankeyLinkHorizontal","parser","o","k","o2","$V0","$V1","$V2","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","lex","token","symbol","state","action","yyval","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","pre","match","indexed_rule","backup","tempMatch","rules","condition","yy_","$avoiding_name_collisions","YY_START","Parser","parser$1","nodesMap","clear","clear$1","SankeyLink","addLink","SankeyNode","ID","findOrCreateNode","common","getConfig","getNodes","getLinks","getGraph","db","getAccTitle","setAccTitle","getAccDescription","setAccDescription","getDiagramTitle","setDiagramTitle","_Uid","_Uid2","name","Uid","alignmentsMap","sankeyLeft","sankeyRight","sankeyCenter","sankeyJustify","draw","text","_version","diagObj","securityLevel","conf","defaultSankeyConfig","defaultConfig","sandboxElement","select","root","svg","height","useMaxWidth","nodeAlignment","prefix","suffix","showValues","nodeAlign","colorScheme","scaleOrdinal","schemeTableau10","getText","id2","linkColor","gradient","coloring","setupGraphViewbox","renderer","prepareTextForParsing","originalParse","diagram"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12]}

Zerion Mini Shell 1.0