@kong/markdown 1.3.1 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{arc-CRNu716j.js → arc-8cjaq9av.js} +2 -2
- package/dist/{arc-CRNu716j.js.map → arc-8cjaq9av.js.map} +1 -1
- package/dist/{blockDiagram-6b2b5046-D2MkRD_j.js → blockDiagram-6b2b5046-CXMFsTaq.js} +6 -6
- package/dist/{blockDiagram-6b2b5046-D2MkRD_j.js.map → blockDiagram-6b2b5046-CXMFsTaq.js.map} +1 -1
- package/dist/{c4Diagram-b947cdbb-DCrk3XXk.js → c4Diagram-b947cdbb-vwALH1WH.js} +3 -3
- package/dist/{c4Diagram-b947cdbb-DCrk3XXk.js.map → c4Diagram-b947cdbb-vwALH1WH.js.map} +1 -1
- package/dist/channel-CiebjdPJ.js +6 -0
- package/dist/{channel-AStNV-TO.js.map → channel-CiebjdPJ.js.map} +1 -1
- package/dist/{classDiagram-35230388-xHVnplkU.js → classDiagram-35230388-CTxUL5uA.js} +6 -6
- package/dist/{classDiagram-35230388-xHVnplkU.js.map → classDiagram-35230388-CTxUL5uA.js.map} +1 -1
- package/dist/{classDiagram-v2-412acd34-Df3TOSJO.js → classDiagram-v2-412acd34-BQSUu5Vr.js} +6 -6
- package/dist/{classDiagram-v2-412acd34-Df3TOSJO.js.map → classDiagram-v2-412acd34-BQSUu5Vr.js.map} +1 -1
- package/dist/clone-AVwa-Pmf.js +9 -0
- package/dist/{clone-BEwR0ae8.js.map → clone-AVwa-Pmf.js.map} +1 -1
- package/dist/{createText-423428c9-CQXqrQGV.js → createText-423428c9-C_xMZUNE.js} +2 -2
- package/dist/{createText-423428c9-CQXqrQGV.js.map → createText-423428c9-C_xMZUNE.js.map} +1 -1
- package/dist/{edges-d417c7a0-D2l0zXjx.js → edges-d417c7a0-9M_sA3AX.js} +4 -4
- package/dist/{edges-d417c7a0-D2l0zXjx.js.map → edges-d417c7a0-9M_sA3AX.js.map} +1 -1
- package/dist/{erDiagram-0ea73325-CGortXf-.js → erDiagram-0ea73325-LCVGPMbf.js} +5 -5
- package/dist/{erDiagram-0ea73325-CGortXf-.js.map → erDiagram-0ea73325-LCVGPMbf.js.map} +1 -1
- package/dist/{flowDb-d35e309a-B37o2qfF.js → flowDb-d35e309a-EwD5UOTn.js} +2 -2
- package/dist/{flowDb-d35e309a-B37o2qfF.js.map → flowDb-d35e309a-EwD5UOTn.js.map} +1 -1
- package/dist/{flowDiagram-d949d7c1-CZWR-qRX.js → flowDiagram-d949d7c1-B8fV1Bgb.js} +7 -7
- package/dist/{flowDiagram-d949d7c1-CZWR-qRX.js.map → flowDiagram-d949d7c1-B8fV1Bgb.js.map} +1 -1
- package/dist/{flowDiagram-v2-49332944-OmkAsRSo.js → flowDiagram-v2-49332944-B1NmgnBY.js} +6 -6
- package/dist/{flowDiagram-v2-49332944-OmkAsRSo.js.map → flowDiagram-v2-49332944-B1NmgnBY.js.map} +1 -1
- package/dist/{flowchart-elk-definition-27cc417a-DvRAXt5Q.js → flowchart-elk-definition-27cc417a-uJBgGb6w.js} +5 -5
- package/dist/{flowchart-elk-definition-27cc417a-DvRAXt5Q.js.map → flowchart-elk-definition-27cc417a-uJBgGb6w.js.map} +1 -1
- package/dist/{ganttDiagram-5c869e3b-CFIXQjia.js → ganttDiagram-5c869e3b-CP3jCxVz.js} +3 -3
- package/dist/{ganttDiagram-5c869e3b-CFIXQjia.js.map → ganttDiagram-5c869e3b-CP3jCxVz.js.map} +1 -1
- package/dist/{gitGraphDiagram-b9d81de9-dYIPtz9A.js → gitGraphDiagram-b9d81de9-C0mDyUJG.js} +2 -2
- package/dist/{gitGraphDiagram-b9d81de9-dYIPtz9A.js.map → gitGraphDiagram-b9d81de9-C0mDyUJG.js.map} +1 -1
- package/dist/{graph-DnI6iIW-.js → graph-D8osM22K.js} +2 -2
- package/dist/{graph-DnI6iIW-.js.map → graph-D8osM22K.js.map} +1 -1
- package/dist/{index-8fae9850-BrJpYy1U.js → index-8fae9850-LWne7Y_5.js} +7 -7
- package/dist/{index-8fae9850-BrJpYy1U.js.map → index-8fae9850-LWne7Y_5.js.map} +1 -1
- package/dist/{index-BdQ-n4gH.js → index-H0_TiiZ2.js} +24 -24
- package/dist/{index-BdQ-n4gH.js.map → index-H0_TiiZ2.js.map} +1 -1
- package/dist/{infoDiagram-db7b18fc-D02OQKc3.js → infoDiagram-db7b18fc-BUwIw4xq.js} +2 -2
- package/dist/{infoDiagram-db7b18fc-D02OQKc3.js.map → infoDiagram-db7b18fc-BUwIw4xq.js.map} +1 -1
- package/dist/{journeyDiagram-d5636530-DthrqUFi.js → journeyDiagram-d5636530-BcAzfkwS.js} +4 -4
- package/dist/{journeyDiagram-d5636530-DthrqUFi.js.map → journeyDiagram-d5636530-BcAzfkwS.js.map} +1 -1
- package/dist/kong-markdown.es.js +1 -1
- package/dist/kong-markdown.umd.js +1 -1
- package/dist/{layout-OFztbzEY.js → layout-ZVjoo1C9.js} +3 -3
- package/dist/{layout-OFztbzEY.js.map → layout-ZVjoo1C9.js.map} +1 -1
- package/dist/{line-BSAYYjII.js → line-Cw7WGRye.js} +2 -2
- package/dist/{line-BSAYYjII.js.map → line-Cw7WGRye.js.map} +1 -1
- package/dist/{linear-D6IIV3ES.js → linear-CM8CQPYx.js} +2 -2
- package/dist/{linear-D6IIV3ES.js.map → linear-CM8CQPYx.js.map} +1 -1
- package/dist/{mindmap-definition-377f8f1f-CP5Ij5zq.js → mindmap-definition-377f8f1f-CZ-84IMz.js} +3 -3
- package/dist/{mindmap-definition-377f8f1f-CP5Ij5zq.js.map → mindmap-definition-377f8f1f-CZ-84IMz.js.map} +1 -1
- package/dist/{pieDiagram-b0208e96-CEy_a3qY.js → pieDiagram-b0208e96-DWGdunAA.js} +3 -3
- package/dist/{pieDiagram-b0208e96-CEy_a3qY.js.map → pieDiagram-b0208e96-DWGdunAA.js.map} +1 -1
- package/dist/{quadrantDiagram-0332be45-D1m3bfLE.js → quadrantDiagram-0332be45-CcjioNyx.js} +3 -3
- package/dist/{quadrantDiagram-0332be45-D1m3bfLE.js.map → quadrantDiagram-0332be45-CcjioNyx.js.map} +1 -1
- package/dist/{requirementDiagram-bf7890df-BXOuPT18.js → requirementDiagram-bf7890df-Bhse_3cX.js} +5 -5
- package/dist/{requirementDiagram-bf7890df-BXOuPT18.js.map → requirementDiagram-bf7890df-Bhse_3cX.js.map} +1 -1
- package/dist/{sankeyDiagram-0acdec17-C_WfLS-d.js → sankeyDiagram-0acdec17-mp2WREQF.js} +2 -2
- package/dist/{sankeyDiagram-0acdec17-C_WfLS-d.js.map → sankeyDiagram-0acdec17-mp2WREQF.js.map} +1 -1
- package/dist/{sequenceDiagram-c18d009d-xoFAj6ID.js → sequenceDiagram-c18d009d-C2BOoE0J.js} +3 -3
- package/dist/{sequenceDiagram-c18d009d-xoFAj6ID.js.map → sequenceDiagram-c18d009d-C2BOoE0J.js.map} +1 -1
- package/dist/{stateDiagram-43596fc0-Dm1AkWdr.js → stateDiagram-43596fc0-DcFmBqVD.js} +6 -6
- package/dist/{stateDiagram-43596fc0-Dm1AkWdr.js.map → stateDiagram-43596fc0-DcFmBqVD.js.map} +1 -1
- package/dist/{stateDiagram-v2-2ead4f9c-X0XO1e_0.js → stateDiagram-v2-2ead4f9c-B0kAUaOw.js} +6 -6
- package/dist/{stateDiagram-v2-2ead4f9c-X0XO1e_0.js.map → stateDiagram-v2-2ead4f9c-B0kAUaOw.js.map} +1 -1
- package/dist/style.css +1 -1
- package/dist/{styles-6860f46c-g9ltY6y9.js → styles-6860f46c-CCfIsYmF.js} +2 -2
- package/dist/{styles-6860f46c-g9ltY6y9.js.map → styles-6860f46c-CCfIsYmF.js.map} +1 -1
- package/dist/{styles-7383a064-D9pZsmll.js → styles-7383a064-Z66HBsPQ.js} +5 -5
- package/dist/{styles-7383a064-D9pZsmll.js.map → styles-7383a064-Z66HBsPQ.js.map} +1 -1
- package/dist/{styles-b2c874b6-2MSTrrjT.js → styles-b2c874b6-vUP-zip8.js} +2 -2
- package/dist/{styles-b2c874b6-2MSTrrjT.js.map → styles-b2c874b6-vUP-zip8.js.map} +1 -1
- package/dist/{svgDrawCommon-0ee1b4e9-BiqdHuRv.js → svgDrawCommon-0ee1b4e9-BN89CkAa.js} +2 -2
- package/dist/{svgDrawCommon-0ee1b4e9-BiqdHuRv.js.map → svgDrawCommon-0ee1b4e9-BN89CkAa.js.map} +1 -1
- package/dist/{timeline-definition-d977decf-J4adcb4f.js → timeline-definition-d977decf-hPFfx-Ol.js} +3 -3
- package/dist/{timeline-definition-d977decf-J4adcb4f.js.map → timeline-definition-d977decf-hPFfx-Ol.js.map} +1 -1
- package/dist/{xychartDiagram-e50adddc-COrJQ_9O.js → xychartDiagram-e50adddc-rKOcwKj9.js} +5 -5
- package/dist/{xychartDiagram-e50adddc-COrJQ_9O.js.map → xychartDiagram-e50adddc-rKOcwKj9.js.map} +1 -1
- package/package.json +1 -1
- package/dist/channel-AStNV-TO.js +0 -6
- package/dist/clone-BEwR0ae8.js +0 -9
package/dist/{sankeyDiagram-0acdec17-C_WfLS-d.js.map → sankeyDiagram-0acdec17-mp2WREQF.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sankeyDiagram-0acdec17-C_WfLS-d.js","sources":["../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/max.js","../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/min.js","../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/sum.js","../node_modules/.pnpm/d3-sankey@0.12.3/node_modules/d3-sankey/src/align.js","../node_modules/.pnpm/d3-sankey@0.12.3/node_modules/d3-sankey/src/constant.js","../node_modules/.pnpm/d3-sankey@0.12.3/node_modules/d3-sankey/src/sankey.js","../node_modules/.pnpm/d3-path@1.0.9/node_modules/d3-path/src/path.js","../node_modules/.pnpm/d3-shape@1.3.7/node_modules/d3-shape/src/constant.js","../node_modules/.pnpm/d3-shape@1.3.7/node_modules/d3-shape/src/point.js","../node_modules/.pnpm/d3-shape@1.3.7/node_modules/d3-shape/src/array.js","../node_modules/.pnpm/d3-shape@1.3.7/node_modules/d3-shape/src/link/index.js","../node_modules/.pnpm/d3-sankey@0.12.3/node_modules/d3-sankey/src/sankeyLinkHorizontal.js","../node_modules/.pnpm/mermaid@10.8.0/node_modules/mermaid/dist/sankeyDiagram-0acdec17.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, r as getDiagramTitle, q as setDiagramTitle, t as clear$1, e as common, H as defaultConfig, o as setupGraphViewbox } from \"./mermaid-0603ccf8.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: { \"easy_keword_rules\": 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)/, /^(?:$)/, /^(?:((\\u000D\\u000A)|(\\u000A)))/, /^(?:(\\u002C))/, /^(?:(\\u0022))/, /^(?:([\\u0020-\\u0021\\u0023-\\u002B\\u002D-\\u007E])*)/, /^(?:(\\u0022)(?!(\\u0022)))/, /^(?:(([\\u0020-\\u0021\\u0023-\\u002B\\u002D-\\u007E])|(\\u002C)|(\\u000D)|(\\u000A)|(\\u0022)(\\u0022))*)/],\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","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","n","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]}
|
|
1
|
+
{"version":3,"file":"sankeyDiagram-0acdec17-mp2WREQF.js","sources":["../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/max.js","../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/min.js","../node_modules/.pnpm/d3-array@2.12.1/node_modules/d3-array/src/sum.js","../node_modules/.pnpm/d3-sankey@0.12.3/node_modules/d3-sankey/src/align.js","../node_modules/.pnpm/d3-sankey@0.12.3/node_modules/d3-sankey/src/constant.js","../node_modules/.pnpm/d3-sankey@0.12.3/node_modules/d3-sankey/src/sankey.js","../node_modules/.pnpm/d3-path@1.0.9/node_modules/d3-path/src/path.js","../node_modules/.pnpm/d3-shape@1.3.7/node_modules/d3-shape/src/constant.js","../node_modules/.pnpm/d3-shape@1.3.7/node_modules/d3-shape/src/point.js","../node_modules/.pnpm/d3-shape@1.3.7/node_modules/d3-shape/src/array.js","../node_modules/.pnpm/d3-shape@1.3.7/node_modules/d3-shape/src/link/index.js","../node_modules/.pnpm/d3-sankey@0.12.3/node_modules/d3-sankey/src/sankeyLinkHorizontal.js","../node_modules/.pnpm/mermaid@10.8.0/node_modules/mermaid/dist/sankeyDiagram-0acdec17.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, r as getDiagramTitle, q as setDiagramTitle, t as clear$1, e as common, H as defaultConfig, o as setupGraphViewbox } from \"./mermaid-0603ccf8.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: { \"easy_keword_rules\": 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)/, /^(?:$)/, /^(?:((\\u000D\\u000A)|(\\u000A)))/, /^(?:(\\u002C))/, /^(?:(\\u0022))/, /^(?:([\\u0020-\\u0021\\u0023-\\u002B\\u002D-\\u007E])*)/, /^(?:(\\u0022)(?!(\\u0022)))/, /^(?:(([\\u0020-\\u0021\\u0023-\\u002B\\u002D-\\u007E])|(\\u002C)|(\\u000D)|(\\u000A)|(\\u0022)(\\u0022))*)/],\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","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","n","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]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { g as Te, D as ye, C as Ee, c as lt, s as Jt, b as be, a as me, E as we, l as K, d as Pt, j as v, e as ve, h as kt, i as _e, z as B, m as Zt, Y as Qt, a4 as ke } from "./index-
|
|
2
|
-
import { d as Pe, a as Le, g as Lt, b as Ie, c as Ae, e as Yt } from "./svgDrawCommon-0ee1b4e9-
|
|
1
|
+
import { g as Te, D as ye, C as Ee, c as lt, s as Jt, b as be, a as me, E as we, l as K, d as Pt, j as v, e as ve, h as kt, i as _e, z as B, m as Zt, Y as Qt, a4 as ke } from "./index-H0_TiiZ2.js";
|
|
2
|
+
import { d as Pe, a as Le, g as Lt, b as Ie, c as Ae, e as Yt } from "./svgDrawCommon-0ee1b4e9-BN89CkAa.js";
|
|
3
3
|
var Ct = function() {
|
|
4
4
|
var t = function(ct, w, k, L) {
|
|
5
5
|
for (k = k || {}, L = ct.length; L--; k[ct[L]] = w)
|
|
@@ -2199,4 +2199,4 @@ const N0 = function(t, e, o) {
|
|
|
2199
2199
|
export {
|
|
2200
2200
|
V0 as diagram
|
|
2201
2201
|
};
|
|
2202
|
-
//# sourceMappingURL=sequenceDiagram-c18d009d-
|
|
2202
|
+
//# sourceMappingURL=sequenceDiagram-c18d009d-C2BOoE0J.js.map
|