{"ast":null,"code":"import { max, min, sum } from \"d3-array\";\nimport { justify } from \"./align.js\";\nimport constant from \"./constant.js\";\nfunction ascendingSourceBreadth(a, b) {\n  return ascendingBreadth(a.source, b.source) || a.index - b.index;\n}\nfunction ascendingTargetBreadth(a, b) {\n  return ascendingBreadth(a.target, b.target) || a.index - b.index;\n}\nfunction ascendingBreadth(a, b) {\n  return a.y0 - b.y0;\n}\nfunction value(d) {\n  return d.value;\n}\nfunction defaultId(d) {\n  return d.index;\n}\nfunction defaultNodes(graph) {\n  return graph.nodes;\n}\nfunction defaultLinks(graph) {\n  return graph.links;\n}\nfunction find(nodeById, id) {\n  const node = nodeById.get(id);\n  if (!node) throw new Error(\"missing: \" + id);\n  return node;\n}\nfunction computeLinkBreadths({\n  nodes\n}) {\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}\nexport default function Sankey() {\n  let x0 = 0,\n    y0 = 0,\n    x1 = 1,\n    y1 = 1; // extent\n  let dx = 24; // nodeWidth\n  let dy = 8,\n    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  function sankey() {\n    const graph = {\n      nodes: nodes.apply(null, arguments),\n      links: links.apply(null, arguments)\n    };\n    computeNodeLinks(graph);\n    computeNodeValues(graph);\n    computeNodeDepths(graph);\n    computeNodeHeights(graph);\n    computeNodeBreadths(graph);\n    computeLinkBreadths(graph);\n    return graph;\n  }\n  sankey.update = function (graph) {\n    computeLinkBreadths(graph);\n    return graph;\n  };\n  sankey.nodeId = function (_) {\n    return arguments.length ? (id = typeof _ === \"function\" ? _ : constant(_), sankey) : id;\n  };\n  sankey.nodeAlign = function (_) {\n    return arguments.length ? (align = typeof _ === \"function\" ? _ : constant(_), sankey) : align;\n  };\n  sankey.nodeSort = function (_) {\n    return arguments.length ? (sort = _, sankey) : sort;\n  };\n  sankey.nodeWidth = function (_) {\n    return arguments.length ? (dx = +_, sankey) : dx;\n  };\n  sankey.nodePadding = function (_) {\n    return arguments.length ? (dy = py = +_, sankey) : dy;\n  };\n  sankey.nodes = function (_) {\n    return arguments.length ? (nodes = typeof _ === \"function\" ? _ : constant(_), sankey) : nodes;\n  };\n  sankey.links = function (_) {\n    return arguments.length ? (links = typeof _ === \"function\" ? _ : constant(_), sankey) : links;\n  };\n  sankey.linkSort = function (_) {\n    return arguments.length ? (linkSort = _, sankey) : linkSort;\n  };\n  sankey.size = function (_) {\n    return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankey) : [x1 - x0, y1 - y0];\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  sankey.iterations = function (_) {\n    return arguments.length ? (iterations = +_, sankey) : iterations;\n  };\n  function computeNodeLinks({\n    nodes,\n    links\n  }) {\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 {\n        source,\n        target\n      } = 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 {\n        sourceLinks,\n        targetLinks\n      } of nodes) {\n        sourceLinks.sort(linkSort);\n        targetLinks.sort(linkSort);\n      }\n    }\n  }\n  function computeNodeValues({\n    nodes\n  }) {\n    for (const node of nodes) {\n      node.value = node.fixedValue === undefined ? Math.max(sum(node.sourceLinks, value), sum(node.targetLinks, value)) : node.fixedValue;\n    }\n  }\n  function computeNodeDepths({\n    nodes\n  }) {\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 {\n          target\n        } 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  function computeNodeHeights({\n    nodes\n  }) {\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 {\n          source\n        } 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  function computeNodeLayers({\n    nodes\n  }) {\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);else columns[i] = [node];\n    }\n    if (sort) for (const column of columns) {\n      column.sort(sort);\n    }\n    return columns;\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  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 {\n          source,\n          value\n        } 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 {\n          target,\n          value\n        } 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  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  function reorderNodeLinks({\n    sourceLinks,\n    targetLinks\n  }) {\n    if (linkSort === undefined) {\n      for (const {\n        source: {\n          sourceLinks\n        }\n      } of targetLinks) {\n        sourceLinks.sort(ascendingTargetBreadth);\n      }\n      for (const {\n        target: {\n          targetLinks\n        }\n      } of sourceLinks) {\n        targetLinks.sort(ascendingSourceBreadth);\n      }\n    }\n  }\n  function reorderLinks(nodes) {\n    if (linkSort === undefined) {\n      for (const {\n        sourceLinks,\n        targetLinks\n      } 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 {\n      target: node,\n      width\n    } of source.sourceLinks) {\n      if (node === target) break;\n      y += width + py;\n    }\n    for (const {\n      source: node,\n      width\n    } 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 {\n      source: node,\n      width\n    } of target.targetLinks) {\n      if (node === source) break;\n      y += width + py;\n    }\n    for (const {\n      target: node,\n      width\n    } of source.sourceLinks) {\n      if (node === target) break;\n      y -= width;\n    }\n    return y;\n  }\n  return sankey;\n}","map":{"version":3,"names":["max","min","sum","justify","constant","ascendingSourceBreadth","a","b","ascendingBreadth","source","index","ascendingTargetBreadth","target","y0","value","d","defaultId","defaultNodes","graph","nodes","defaultLinks","links","find","nodeById","id","node","get","Error","computeLinkBreadths","y1","link","sourceLinks","width","targetLinks","Sankey","x0","x1","dx","dy","py","align","sort","linkSort","iterations","sankey","apply","arguments","computeNodeLinks","computeNodeValues","computeNodeDepths","computeNodeHeights","computeNodeBreadths","update","nodeId","_","length","nodeAlign","nodeSort","nodeWidth","nodePadding","size","extent","i","entries","Map","map","push","fixedValue","undefined","Math","n","current","Set","next","x","depth","add","height","computeNodeLayers","kx","columns","Array","floor","call","layer","column","initializeNodeBreadths","ky","c","y","reorderLinks","alpha","pow","beta","relaxRightToLeft","relaxLeftToRight","w","v","targetTop","reorderNodeLinks","resolveCollisions","sourceTop","subject","resolveCollisionsBottomToTop","resolveCollisionsTopToBottom"],"sources":["C:/Users/Cem/Desktop/InventryUI-Client/node_modules/d3-sankey/src/sankey.js"],"sourcesContent":["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"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}