{"version":3,"sources":["webpack:////build/source/node_modules/d3-array/src/ascending.js","webpack:////build/source/node_modules/d3-array/src/bisector.js","webpack:////build/source/node_modules/d3-array/src/bisect.js","webpack:////build/source/node_modules/d3-array/src/cross.js","webpack:////build/source/node_modules/d3-array/src/number.js","webpack:////build/source/node_modules/d3-array/src/extent.js","webpack:////build/source/node_modules/d3-array/src/array.js","webpack:////build/source/node_modules/d3-array/src/range.js","webpack:////build/source/node_modules/d3-array/src/ticks.js","webpack:////build/source/node_modules/d3-array/src/threshold/sturges.js","webpack:////build/source/node_modules/d3-array/src/quantile.js","webpack:////build/source/node_modules/d3-array/src/max.js","webpack:////build/source/node_modules/d3-array/src/min.js","webpack:////build/source/node_modules/d3-array/src/sum.js","webpack:////build/source/node_modules/d3-sankey/src/align.js","webpack:////build/source/node_modules/d3-sankey/src/constant.js","webpack:////build/source/node_modules/d3-sankey/src/sankey.js","webpack:////build/source/node_modules/d3-shape/src/array.js","webpack:////build/source/node_modules/d3-shape/src/constant.js","webpack:////build/source/node_modules/d3-shape/src/point.js","webpack:////build/source/node_modules/d3-shape/src/link/index.js","webpack:////build/source/node_modules/d3-sankey/src/sankeyLinkHorizontal.js","webpack:////build/source/node_modules/d3-path/src/path.js"],"names":["a","b","NaN","f","compare","length","d","x","ascending","left","lo","hi","mid","right","ascendingBisect","bisector","bisectRight","bisect","value","min","max","n","values","i","valueof","Array","prototype","slice","map","start","stop","step","arguments","Math","ceil","range","e10","sqrt","e5","e2","reverse","ticks","count","tickIncrement","isFinite","floor","power","log","LN10","error","pow","tickStep","step0","abs","step1","LN2","number","p","i0","value0","sum","targetDepth","target","depth","node","height","justify","sourceLinks","center","targetLinks","constant","ascendingSourceBreadth","ascendingBreadth","source","index","ascendingTargetBreadth","y0","defaultId","defaultNodes","graph","nodes","defaultLinks","links","find","nodeById","id","get","Error","computeLinkBreadths","y1","link","width","Sankey","py","sort","linkSort","x0","x1","dx","dy","align","iterations","sankey","apply","computeNodeLinks","computeNodeValues","computeNodeDepths","computeNodeHeights","computeNodeBreadths","entries","Map","push","undefined","fixedValue","current","Set","next","size","add","columns","kx","call","layer","column","computeNodeLayers","c","ky","y","reorderLinks","initializeNodeBreadths","alpha","beta","relaxRightToLeft","relaxLeftToRight","w","v","targetTop","reorderNodeLinks","resolveCollisions","sourceTop","subject","resolveCollisionsBottomToTop","resolveCollisionsTopToBottom","update","nodeId","_","nodeAlign","nodeSort","nodeWidth","nodePadding","extent","linkSource","linkTarget","curve","context","buffer","argv","s","this","t","path","curveHorizontal","moveTo","bezierCurveTo","horizontalSource","horizontalTarget","pi","PI","tau","tauEpsilon","Path","_x0","_y0","_x1","_y1","constructor","closePath","lineTo","quadraticCurveTo","x2","y2","arcTo","r","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","l","tan","acos","t01","t21","arc","a0","a1","ccw","cos","sin","cw","da","rect","h","toString"],"mappings":"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","file":"144.2c6844f1.chunk.js","sourcesContent":["export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending\";\n\nexport default function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","import {pair} from \"./pairs\";\n\nexport default function(values0, values1, reduce) {\n var n0 = values0.length,\n n1 = values1.length,\n values = new Array(n0 * n1),\n i0,\n i1,\n i,\n value0;\n\n if (reduce == null) reduce = pair;\n\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n\n return values;\n}\n","export default function(x) {\n return x === null ? NaN : +x;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n return [min, max];\n}\n","var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","export default function(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n}\n","import number from \"./number\";\n\nexport default function(values, p, valueof) {\n if (valueof == null) valueof = number;\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n return max;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n return min;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (value = +values[i]) sum += value; // Note: zero and null are equivalent.\n }\n }\n\n else {\n while (++i < n) {\n if (value = +valueof(values[i], i, values)) 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","export var slice = Array.prototype.slice;\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","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","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"],"sourceRoot":""}