@plumile/ui 0.1.99 → 0.1.102

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.
Files changed (122) hide show
  1. package/lib/esm/{BackofficeJsonViewerAsync-GenasLA-.js → BackofficeJsonViewerAsync-niwHe9is.js} +2 -2
  2. package/lib/esm/{BackofficeJsonViewerAsync-GenasLA-.js.map → BackofficeJsonViewerAsync-niwHe9is.js.map} +1 -1
  3. package/lib/esm/HighlightCode-KpWSo7Zx.js.map +1 -1
  4. package/lib/esm/{MarkdownCodeBlock-DZRdzjJ9.js → MarkdownCodeBlock-CLK5KJgU.js} +3 -3
  5. package/lib/esm/{MarkdownCodeBlock-DZRdzjJ9.js.map → MarkdownCodeBlock-CLK5KJgU.js.map} +1 -1
  6. package/lib/esm/{MarkdownRenderer-DBpMvD98.js → MarkdownRenderer-c_Ic29c2.js} +2 -2
  7. package/lib/esm/{MarkdownRenderer-DBpMvD98.js.map → MarkdownRenderer-c_Ic29c2.js.map} +1 -1
  8. package/lib/esm/{MarkdownShikiCodeBlock-BhdpnKJo.js → MarkdownShikiCodeBlock-CbaOKfZO.js} +1180 -1175
  9. package/lib/esm/MarkdownShikiCodeBlock-CbaOKfZO.js.map +1 -0
  10. package/lib/esm/_baseFor-Z--4BB_X.js.map +1 -1
  11. package/lib/esm/arc-BUZ4igwO.js.map +1 -1
  12. package/lib/esm/architectureDiagram-Q4EWVU46-DpoNV55s.js.map +1 -1
  13. package/lib/esm/array-CTFiDRBi.js.map +1 -1
  14. package/lib/esm/blockDiagram-DXYQGD6D-DJxDffAk.js.map +1 -1
  15. package/lib/esm/c4Diagram-AHTNJAMY-DxAt6CyF.js.map +1 -1
  16. package/lib/esm/chunk-2KRD3SAO-C5ZUgIak.js.map +1 -1
  17. package/lib/esm/{chunk-336JU56O-24m8cXIL.js → chunk-336JU56O-BsMYboJR.js} +3 -3
  18. package/lib/esm/{chunk-336JU56O-24m8cXIL.js.map → chunk-336JU56O-BsMYboJR.js.map} +1 -1
  19. package/lib/esm/chunk-426QAEUC-b2PRuT9o.js.map +1 -1
  20. package/lib/esm/chunk-4BX2VUAB-BkyyJ41z.js.map +1 -1
  21. package/lib/esm/{chunk-4TB4RGXK-CsiupxiO.js → chunk-4TB4RGXK-LzOZn6e3.js} +2 -2
  22. package/lib/esm/{chunk-4TB4RGXK-CsiupxiO.js.map → chunk-4TB4RGXK-LzOZn6e3.js.map} +1 -1
  23. package/lib/esm/chunk-55IACEB6-CZ1WMXNv.js.map +1 -1
  24. package/lib/esm/chunk-5FUZZQ4R-Hp5ZXYAE.js.map +1 -1
  25. package/lib/esm/chunk-5PVQY5BW-CQdr0IGy.js.map +1 -1
  26. package/lib/esm/chunk-67CJDMHE-DQCJ08Vv.js.map +1 -1
  27. package/lib/esm/chunk-7N4EOEYR-CTdQRezU.js.map +1 -1
  28. package/lib/esm/chunk-AA7GKIK3-x61iJxkf.js.map +1 -1
  29. package/lib/esm/chunk-BSJP7CBP-BRqWaFD3.js.map +1 -1
  30. package/lib/esm/chunk-CIAEETIT-Dm4nDheA.js.map +1 -1
  31. package/lib/esm/chunk-EDXVE4YY-CyZVAPxl.js.map +1 -1
  32. package/lib/esm/chunk-ENJZ2VHE-D1RBdOy4.js.map +1 -1
  33. package/lib/esm/chunk-FOC6F5B3-DTxKWzfh.js.map +1 -1
  34. package/lib/esm/chunk-ICPOFSXX-BQ7-Poft.js.map +1 -1
  35. package/lib/esm/chunk-K5T4RW27-BZbwqbnj.js.map +1 -1
  36. package/lib/esm/chunk-KGLVRYIC-DGO8PqNS.js.map +1 -1
  37. package/lib/esm/chunk-LIHQZDEY-DRQpYuDY.js.map +1 -1
  38. package/lib/esm/chunk-ORNJ4GCN-BWnkQx42.js.map +1 -1
  39. package/lib/esm/{chunk-OYMX7WX6-C3qIK5JJ.js → chunk-OYMX7WX6-C3p3qx9s.js} +2 -2
  40. package/lib/esm/{chunk-OYMX7WX6-C3qIK5JJ.js.map → chunk-OYMX7WX6-C3p3qx9s.js.map} +1 -1
  41. package/lib/esm/chunk-QZHKN3VN-BIoC_CBh.js.map +1 -1
  42. package/lib/esm/chunk-U2HBQHQK-CNpf2t7b.js.map +1 -1
  43. package/lib/esm/chunk-X2U36JSP-Dh9T66Fy.js.map +1 -1
  44. package/lib/esm/chunk-XPW4576I-CdsuZylH.js.map +1 -1
  45. package/lib/esm/chunk-YZCP3GAM-D-LQWFJc.js.map +1 -1
  46. package/lib/esm/chunk-ZZ45TVLE-CP_4OsJR.js.map +1 -1
  47. package/lib/esm/{classDiagram-6PBFFD2Q-CfClLEok.js → classDiagram-6PBFFD2Q-CfucyocV.js} +3 -3
  48. package/lib/esm/{classDiagram-6PBFFD2Q-CfClLEok.js.map → classDiagram-6PBFFD2Q-CfucyocV.js.map} +1 -1
  49. package/lib/esm/{classDiagram-v2-HSJHXN6E-BlbDAEH6.js → classDiagram-v2-HSJHXN6E-BcU6iB1L.js} +3 -3
  50. package/lib/esm/{classDiagram-v2-HSJHXN6E-BlbDAEH6.js.map → classDiagram-v2-HSJHXN6E-BcU6iB1L.js.map} +1 -1
  51. package/lib/esm/clone-DhB5s2T9.js.map +1 -1
  52. package/lib/esm/cose-bilkent-S5V4N54A-BdVqhM8C.js.map +1 -1
  53. package/lib/esm/cytoscape.esm-CT-fsRss.js.map +1 -1
  54. package/lib/esm/dagre-BQULeUjQ.js.map +1 -1
  55. package/lib/esm/dagre-KV5264BT-DTy5YJ5_.js.map +1 -1
  56. package/lib/esm/diagram-5BDNPKRD-w19gCTBw.js.map +1 -1
  57. package/lib/esm/diagram-G4DWMVQ6-EfJtDPEB.js.map +1 -1
  58. package/lib/esm/diagram-MMDJMWI5-DsPB2uYP.js.map +1 -1
  59. package/lib/esm/diagram-TYMM5635-D3ecq7oF.js.map +1 -1
  60. package/lib/esm/dist-CZs_brJz.js.map +1 -1
  61. package/lib/esm/{erDiagram-SMLLAGMA-sgCGzaHO.js → erDiagram-SMLLAGMA-DsYSva8K.js} +2 -2
  62. package/lib/esm/{erDiagram-SMLLAGMA-sgCGzaHO.js.map → erDiagram-SMLLAGMA-DsYSva8K.js.map} +1 -1
  63. package/lib/esm/flatten-CRDGWjhS.js.map +1 -1
  64. package/lib/esm/{flowDiagram-DWJPFMVM-BlOft6GA.js → flowDiagram-DWJPFMVM-BkxIhdyA.js} +2 -2
  65. package/lib/esm/{flowDiagram-DWJPFMVM-BlOft6GA.js.map → flowDiagram-DWJPFMVM-BkxIhdyA.js.map} +1 -1
  66. package/lib/esm/ganttDiagram-T4ZO3ILL-BGrn6yEi.js.map +1 -1
  67. package/lib/esm/gitGraphDiagram-UUTBAWPF-BV73nor5.js.map +1 -1
  68. package/lib/esm/graphlib-B76sPwTV.js.map +1 -1
  69. package/lib/esm/infoDiagram-42DDH7IO-CYONnQuR.js.map +1 -1
  70. package/lib/esm/init-DcYXQL-k.js.map +1 -1
  71. package/lib/esm/isEmpty-DLTQgX7m.js.map +1 -1
  72. package/lib/esm/ishikawaDiagram-UXIWVN3A-B2ISni0r.js.map +1 -1
  73. package/lib/esm/journeyDiagram-VCZTEJTY-CjNMX7wx.js.map +1 -1
  74. package/lib/esm/kanban-definition-6JOO6SKY-BNsv25Cl.js.map +1 -1
  75. package/lib/esm/katex-DpumU0Fc.js.map +1 -1
  76. package/lib/esm/line-Dyv5of1r.js.map +1 -1
  77. package/lib/esm/linear-LpGdIFrk.js.map +1 -1
  78. package/lib/esm/mermaid-parser.core-D5sUsnWF.js.map +1 -1
  79. package/lib/esm/{mermaid.core-o6lwF-Gt.js → mermaid.core-i12yADTp.js} +12 -12
  80. package/lib/esm/{mermaid.core-o6lwF-Gt.js.map → mermaid.core-i12yADTp.js.map} +1 -1
  81. package/lib/esm/{mindmap-definition-QFDTVHPH-C63UTb48.js → mindmap-definition-QFDTVHPH-BfrBPDUJ.js} +2 -2
  82. package/lib/esm/{mindmap-definition-QFDTVHPH-C63UTb48.js.map → mindmap-definition-QFDTVHPH-BfrBPDUJ.js.map} +1 -1
  83. package/lib/esm/ordinal-B2RGggQH.js.map +1 -1
  84. package/lib/esm/path-Bg_3NlDP.js.map +1 -1
  85. package/lib/esm/pieDiagram-DEJITSTG-YByZ__0R.js.map +1 -1
  86. package/lib/esm/quadrantDiagram-34T5L4WZ-DLFKZc02.js.map +1 -1
  87. package/lib/esm/reduce-0ekdtexD.js.map +1 -1
  88. package/lib/esm/{requirementDiagram-MS252O5E-CJXcr8r4.js → requirementDiagram-MS252O5E-CulfPmse.js} +2 -2
  89. package/lib/esm/{requirementDiagram-MS252O5E-CJXcr8r4.js.map → requirementDiagram-MS252O5E-CulfPmse.js.map} +1 -1
  90. package/lib/esm/rough.esm-IQz7gRXZ.js.map +1 -1
  91. package/lib/esm/sankeyDiagram-XADWPNL6-DMByY6gK.js.map +1 -1
  92. package/lib/esm/sequenceDiagram-FGHM5R23-vJC9cjdX.js.map +1 -1
  93. package/lib/esm/src-BZm6Awwh.js.map +1 -1
  94. package/lib/esm/{src-C5doNKmD.js → src-DT2iBPF8.js} +629 -541
  95. package/lib/esm/src-DT2iBPF8.js.map +1 -0
  96. package/lib/esm/{stateDiagram-FHFEXIEX-G9WWEBGm.js → stateDiagram-FHFEXIEX-CofVLBPX.js} +3 -3
  97. package/lib/esm/{stateDiagram-FHFEXIEX-G9WWEBGm.js.map → stateDiagram-FHFEXIEX-CofVLBPX.js.map} +1 -1
  98. package/lib/esm/{stateDiagram-v2-QKLJ7IA2-BSg62pbb.js → stateDiagram-v2-QKLJ7IA2-DTXym7Y8.js} +3 -3
  99. package/lib/esm/{stateDiagram-v2-QKLJ7IA2-BSg62pbb.js.map → stateDiagram-v2-QKLJ7IA2-DTXym7Y8.js.map} +1 -1
  100. package/lib/esm/style.css +1 -1
  101. package/lib/esm/timeline-definition-GMOUNBTQ-DeWjV_e-.js.map +1 -1
  102. package/lib/esm/ui.js +4 -4
  103. package/lib/esm/vennDiagram-DHZGUBPP-CKdXCzw7.js.map +1 -1
  104. package/lib/esm/wardleyDiagram-NUSXRM2D-BzD8LDJv.js.map +1 -1
  105. package/lib/esm/xychartDiagram-5P7HB3ND-C2ITEA5J.js.map +1 -1
  106. package/lib/types/backoffice/molecules/backoffice_load_more/BackofficeLoadMore.d.ts +2 -1
  107. package/lib/types/backoffice/molecules/backoffice_load_more/BackofficeLoadMore.d.ts.map +1 -1
  108. package/lib/types/backoffice/molecules/backoffice_load_more/backofficeLoadMore.css.d.ts +1 -0
  109. package/lib/types/backoffice/molecules/backoffice_load_more/backofficeLoadMore.css.d.ts.map +1 -1
  110. package/lib/types/backoffice/molecules/sidebar_nav_section/SidebarNavSection.d.ts +1 -1
  111. package/lib/types/backoffice/molecules/sidebar_nav_section/SidebarNavSection.d.ts.map +1 -1
  112. package/lib/types/components/data-table/DataTable.d.ts +2 -0
  113. package/lib/types/components/data-table/DataTable.d.ts.map +1 -1
  114. package/lib/types/components/data-table/ResponsiveRecordList.css.d.ts +21 -0
  115. package/lib/types/components/data-table/ResponsiveRecordList.css.d.ts.map +1 -0
  116. package/lib/types/components/data-table/ResponsiveRecordList.d.ts +17 -0
  117. package/lib/types/components/data-table/ResponsiveRecordList.d.ts.map +1 -0
  118. package/lib/types/index.d.ts +2 -0
  119. package/lib/types/index.d.ts.map +1 -1
  120. package/package.json +12 -12
  121. package/lib/esm/MarkdownShikiCodeBlock-BhdpnKJo.js.map +0 -1
  122. package/lib/esm/src-C5doNKmD.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"dagre-KV5264BT-DTy5YJ5_.js","names":["_.isUndefined","_.clone","_.map","graphlibJson.write","graphlib.Graph","graphlibJson2.write","graphlib2.Graph","getConfig"],"sources":["../../../../node_modules/dagre-d3-es/src/graphlib/json.js","../../../../node_modules/mermaid/dist/chunks/mermaid.core/dagre-KV5264BT.mjs"],"sourcesContent":["import * as _ from 'lodash-es';\nimport { Graph } from './graph.js';\n\n/**\n * @import { NodeID, EdgeObj, GraphOptions } from './graph.js';\n */\n\nexport { write, read };\n\n/**\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * @template [EdgeLabel=any] - Label of an edge.\n *\n * @typedef {object} GraphJSON\n * @property {Required<GraphOptions>} options - The options used to create the graph.\n * @property {Array<{ v: NodeID; value?: NodeLabel; parent?: NodeID }>} nodes - The nodes in the graph.\n * @property {Array<EdgeObj & { value?: EdgeLabel }>} edges - The edges in the graph.\n * @property {GraphLabel} [value] - The graph's value, if any.\n */\n\n/**\n * Creates a JSON representation of the graph that can be serialized to a\n * string with\n * [JSON.stringify](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify).\n * The graph can later be restored using {@link read}.\n *\n * @example\n *\n * ```js\n * var g = new graphlib.Graph();\n * g.setNode(\"a\", { label: \"node a\" });\n * g.setNode(\"b\", { label: \"node b\" });\n * g.setEdge(\"a\", \"b\", { label: \"edge a->b\" });\n * graphlib.json.write(g);\n * // Returns the object:\n * //\n * // {\n * // \"options\": {\n * // \"directed\": true,\n * // \"multigraph\": false,\n * // \"compound\": false\n * // },\n * // \"nodes\": [\n * // { \"v\": \"a\", \"value\": { \"label\": \"node a\" } },\n * // { \"v\": \"b\", \"value\": { \"label\": \"node b\" } }\n * // ],\n * // \"edges\": [\n * // { \"v\": \"a\", \"w\": \"b\", \"value\": { \"label\": \"edge a->b\" } }\n * // ]\n * // }\n * ```\n *\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * @template [EdgeLabel=any] - Label of an edge.\n * @param {Graph<GraphLabel, NodeLabel, EdgeLabel>} g - The graph to serialize.\n * @returns {GraphJSON<GraphLabel, NodeLabel, EdgeLabel>} The JSON representation of the graph.\n */\nfunction write(g) {\n /** @type {GraphJSON<GraphLabel, NodeLabel, EdgeLabel>} */\n var json = {\n options: {\n directed: g.isDirected(),\n multigraph: g.isMultigraph(),\n compound: g.isCompound(),\n },\n nodes: writeNodes(g),\n edges: writeEdges(g),\n };\n if (!_.isUndefined(g.graph())) {\n json.value = _.clone(g.graph());\n }\n return json;\n}\n\n/**\n * @template NodeLabel - Label of a node.\n *\n * @param {Graph<unknown, NodeLabel, unknown>} g - The graph to serialize.\n * @returns {Array<{ v: NodeID; value?: NodeLabel; parent?: NodeID }>} The nodes in the graph.\n */\nfunction writeNodes(g) {\n return _.map(g.nodes(), function (v) {\n var nodeValue = g.node(v);\n var parent = g.parent(v);\n /** @type {{ v: NodeID; value?: NodeLabel; parent?: NodeID }} */\n var node = { v: v };\n if (!_.isUndefined(nodeValue)) {\n node.value = nodeValue;\n }\n if (!_.isUndefined(parent)) {\n node.parent = parent;\n }\n return node;\n });\n}\n\n/**\n * @template EdgeLabel - Label of a node.\n *\n * @param {Graph<unknown, unknown, EdgeLabel>} g - The graph to serialize.\n * @returns {Array<EdgeObj & { value?: EdgeLabel }>} The edges in the graph.\n */\nfunction writeEdges(g) {\n return _.map(g.edges(), function (e) {\n var edgeValue = g.edge(e);\n /** @type {EdgeObj & { value?: EdgeLabel }} */\n var edge = { v: e.v, w: e.w };\n if (!_.isUndefined(e.name)) {\n edge.name = e.name;\n }\n if (!_.isUndefined(edgeValue)) {\n edge.value = edgeValue;\n }\n return edge;\n });\n}\n\n/**\n * Takes JSON as input and returns the graph representation.\n *\n * @example\n *\n * For example, if we have serialized the graph in {@link write}\n * to a string named `str`, we can restore it to a graph as follows:\n *\n * ```js\n * var g2 = graphlib.json.read(JSON.parse(str));\n * // or, in order to copy the graph\n * var g3 = graphlib.json.read(graphlib.json.write(g))\n *\n * g2.nodes();\n * // ['a', 'b']\n * g2.edges()\n * // [ { v: 'a', w: 'b' } ]\n * ```\n *\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * @template [EdgeLabel=any] - Label of an edge.\n * @param {GraphJSON<GraphLabel, NodeLabel, EdgeLabel>} json - The JSON representation of the graph.\n * @returns {Graph<GraphLabel, NodeLabel, EdgeLabel>} The restored graph.\n */\nfunction read(json) {\n var g = new Graph(json.options).setGraph(json.value);\n _.each(json.nodes, function (entry) {\n g.setNode(entry.v, entry.value);\n if (entry.parent) {\n g.setParent(entry.v, entry.parent);\n }\n });\n _.each(json.edges, function (entry) {\n g.setEdge({ v: entry.v, w: entry.w, name: entry.name }, entry.value);\n });\n return g;\n}\n","import {\n clear as clear2,\n insertEdge,\n insertEdgeLabel,\n markers_default,\n positionEdgeLabel\n} from \"./chunk-ENJZ2VHE.mjs\";\nimport \"./chunk-BSJP7CBP.mjs\";\nimport {\n clear,\n clear2 as clear3,\n insertCluster,\n insertNode,\n positionNode,\n setNodeElem,\n updateNodeBounds\n} from \"./chunk-5FUZZQ4R.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-ZZ45TVLE.mjs\";\nimport \"./chunk-X2U36JSP.mjs\";\nimport \"./chunk-U2HBQHQK.mjs\";\nimport \"./chunk-5PVQY5BW.mjs\";\nimport {\n getConfig2 as getConfig\n} from \"./chunk-ICPOFSXX.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/layout-algorithms/dagre/index.js\nimport { layout as dagreLayout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlibJson2 from \"dagre-d3-es/src/graphlib/json.js\";\nimport * as graphlib2 from \"dagre-d3-es/src/graphlib/index.js\";\n\n// src/rendering-util/layout-algorithms/dagre/mermaid-graphlib.js\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport * as graphlibJson from \"dagre-d3-es/src/graphlib/json.js\";\nvar clusterDb = /* @__PURE__ */ new Map();\nvar descendants = /* @__PURE__ */ new Map();\nvar parents = /* @__PURE__ */ new Map();\nvar clear4 = /* @__PURE__ */ __name(() => {\n descendants.clear();\n parents.clear();\n clusterDb.clear();\n}, \"clear\");\nvar isDescendant = /* @__PURE__ */ __name((id, ancestorId) => {\n const ancestorDescendants = descendants.get(ancestorId) || [];\n log.trace(\"In isDescendant\", ancestorId, \" \", id, \" = \", ancestorDescendants.includes(id));\n return ancestorDescendants.includes(id);\n}, \"isDescendant\");\nvar edgeInCluster = /* @__PURE__ */ __name((edge, clusterId) => {\n const clusterDescendants = descendants.get(clusterId) || [];\n log.info(\"Descendants of \", clusterId, \" is \", clusterDescendants);\n log.info(\"Edge is \", edge);\n if (edge.v === clusterId || edge.w === clusterId) {\n return false;\n }\n if (!clusterDescendants) {\n log.debug(\"Tilt, \", clusterId, \",not in descendants\");\n return false;\n }\n return clusterDescendants.includes(edge.v) || isDescendant(edge.v, clusterId) || isDescendant(edge.w, clusterId) || clusterDescendants.includes(edge.w);\n}, \"edgeInCluster\");\nvar copy = /* @__PURE__ */ __name((clusterId, graph, newGraph, rootId) => {\n log.warn(\n \"Copying children of \",\n clusterId,\n \"root\",\n rootId,\n \"data\",\n graph.node(clusterId),\n rootId\n );\n const nodes = graph.children(clusterId) || [];\n if (clusterId !== rootId) {\n nodes.push(clusterId);\n }\n log.warn(\"Copying (nodes) clusterId\", clusterId, \"nodes\", nodes);\n nodes.forEach((node) => {\n if (graph.children(node).length > 0) {\n copy(node, graph, newGraph, rootId);\n } else {\n const data = graph.node(node);\n log.info(\"cp \", node, \" to \", rootId, \" with parent \", clusterId);\n newGraph.setNode(node, data);\n if (rootId !== graph.parent(node)) {\n log.warn(\"Setting parent\", node, graph.parent(node));\n newGraph.setParent(node, graph.parent(node));\n }\n if (clusterId !== rootId && node !== clusterId) {\n log.debug(\"Setting parent\", node, clusterId);\n newGraph.setParent(node, clusterId);\n } else {\n log.info(\"In copy \", clusterId, \"root\", rootId, \"data\", graph.node(clusterId), rootId);\n log.debug(\n \"Not Setting parent for node=\",\n node,\n \"cluster!==rootId\",\n clusterId !== rootId,\n \"node!==clusterId\",\n node !== clusterId\n );\n }\n const edges = graph.edges(node);\n log.debug(\"Copying Edges\", edges);\n edges.forEach((edge) => {\n log.info(\"Edge\", edge);\n const data2 = graph.edge(edge.v, edge.w, edge.name);\n log.info(\"Edge data\", data2, rootId);\n try {\n if (edgeInCluster(edge, rootId)) {\n log.info(\"Copying as \", edge.v, edge.w, data2, edge.name);\n newGraph.setEdge(edge.v, edge.w, data2, edge.name);\n log.info(\"newGraph edges \", newGraph.edges(), newGraph.edge(newGraph.edges()[0]));\n } else {\n log.info(\n \"Skipping copy of edge \",\n edge.v,\n \"-->\",\n edge.w,\n \" rootId: \",\n rootId,\n \" clusterId:\",\n clusterId\n );\n }\n } catch (e) {\n log.error(e);\n }\n });\n }\n log.debug(\"Removing node\", node);\n graph.removeNode(node);\n });\n}, \"copy\");\nvar extractDescendants = /* @__PURE__ */ __name((id, graph) => {\n const children = graph.children(id);\n let res = [...children];\n for (const child of children) {\n parents.set(child, id);\n res = [...res, ...extractDescendants(child, graph)];\n }\n return res;\n}, \"extractDescendants\");\nvar findCommonEdges = /* @__PURE__ */ __name((graph, id1, id2) => {\n const edges1 = graph.edges().filter((edge) => edge.v === id1 || edge.w === id1);\n const edges2 = graph.edges().filter((edge) => edge.v === id2 || edge.w === id2);\n const edges1Prim = edges1.map((edge) => {\n return { v: edge.v === id1 ? id2 : edge.v, w: edge.w === id1 ? id1 : edge.w };\n });\n const edges2Prim = edges2.map((edge) => {\n return { v: edge.v, w: edge.w };\n });\n const result = edges1Prim.filter((edgeIn1) => {\n return edges2Prim.some((edge) => edgeIn1.v === edge.v && edgeIn1.w === edge.w);\n });\n return result;\n}, \"findCommonEdges\");\nvar findNonClusterChild = /* @__PURE__ */ __name((id, graph, clusterId) => {\n const children = graph.children(id);\n log.trace(\"Searching children of id \", id, children);\n if (children.length < 1) {\n return id;\n }\n let reserve;\n for (const child of children) {\n const _id = findNonClusterChild(child, graph, clusterId);\n const commonEdges = findCommonEdges(graph, clusterId, _id);\n if (_id) {\n if (commonEdges.length > 0) {\n reserve = _id;\n } else {\n return _id;\n }\n }\n }\n return reserve;\n}, \"findNonClusterChild\");\nvar getAnchorId = /* @__PURE__ */ __name((id) => {\n if (!clusterDb.has(id)) {\n return id;\n }\n if (!clusterDb.get(id).externalConnections) {\n return id;\n }\n if (clusterDb.has(id)) {\n return clusterDb.get(id).id;\n }\n return id;\n}, \"getAnchorId\");\nvar adjustClustersAndEdges = /* @__PURE__ */ __name((graph, depth) => {\n if (!graph || depth > 10) {\n log.debug(\"Opting out, no graph \");\n return;\n } else {\n log.debug(\"Opting in, graph \");\n }\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n if (children.length > 0) {\n log.warn(\n \"Cluster identified\",\n id,\n \" Replacement id in edges: \",\n findNonClusterChild(id, graph, id)\n );\n descendants.set(id, extractDescendants(id, graph));\n clusterDb.set(id, { id: findNonClusterChild(id, graph, id), clusterData: graph.node(id) });\n }\n });\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n const edges = graph.edges();\n if (children.length > 0) {\n log.debug(\"Cluster identified\", id, descendants);\n edges.forEach((edge) => {\n const d1 = isDescendant(edge.v, id);\n const d2 = isDescendant(edge.w, id);\n if (d1 ^ d2) {\n log.warn(\"Edge: \", edge, \" leaves cluster \", id);\n log.warn(\"Descendants of XXX \", id, \": \", descendants.get(id));\n clusterDb.get(id).externalConnections = true;\n }\n });\n } else {\n log.debug(\"Not a cluster \", id, descendants);\n }\n });\n for (let id of clusterDb.keys()) {\n const nonClusterChild = clusterDb.get(id).id;\n const parent = graph.parent(nonClusterChild);\n if (parent !== id && clusterDb.has(parent) && !clusterDb.get(parent).externalConnections) {\n clusterDb.get(id).id = parent;\n }\n }\n graph.edges().forEach(function(e) {\n const edge = graph.edge(e);\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(graph.edge(e)));\n let v = e.v;\n let w = e.w;\n log.warn(\n \"Fix XXX\",\n clusterDb,\n \"ids:\",\n e.v,\n e.w,\n \"Translating: \",\n clusterDb.get(e.v),\n \" --- \",\n clusterDb.get(e.w)\n );\n if (clusterDb.get(e.v) || clusterDb.get(e.w)) {\n log.warn(\"Fixing and trying - removing XXX\", e.v, e.w, e.name);\n v = getAnchorId(e.v);\n w = getAnchorId(e.w);\n graph.removeEdge(e.v, e.w, e.name);\n if (v !== e.v) {\n const parent = graph.parent(v);\n clusterDb.get(parent).externalConnections = true;\n edge.fromCluster = e.v;\n }\n if (w !== e.w) {\n const parent = graph.parent(w);\n clusterDb.get(parent).externalConnections = true;\n edge.toCluster = e.w;\n }\n log.warn(\"Fix Replacing with XXX\", v, w, e.name);\n graph.setEdge(v, w, edge, e.name);\n }\n });\n log.warn(\"Adjusted Graph\", graphlibJson.write(graph));\n extractor(graph, 0);\n log.trace(clusterDb);\n}, \"adjustClustersAndEdges\");\nvar extractor = /* @__PURE__ */ __name((graph, depth) => {\n log.warn(\"extractor - \", depth, graphlibJson.write(graph), graph.children(\"D\"));\n if (depth > 10) {\n log.error(\"Bailing out\");\n return;\n }\n let nodes = graph.nodes();\n let hasChildren = false;\n for (const node of nodes) {\n const children = graph.children(node);\n hasChildren = hasChildren || children.length > 0;\n }\n if (!hasChildren) {\n log.debug(\"Done, no node has children\", graph.nodes());\n return;\n }\n log.debug(\"Nodes = \", nodes, depth);\n for (const node of nodes) {\n log.debug(\n \"Extracting node\",\n node,\n clusterDb,\n clusterDb.has(node) && !clusterDb.get(node).externalConnections,\n !graph.parent(node),\n graph.node(node),\n graph.children(\"D\"),\n \" Depth \",\n depth\n );\n if (!clusterDb.has(node)) {\n log.debug(\"Not a cluster\", node, depth);\n } else if (!clusterDb.get(node).externalConnections && graph.children(node) && graph.children(node).length > 0) {\n log.warn(\n \"Cluster without external connections, without a parent and with children\",\n node,\n depth\n );\n const graphSettings = graph.graph();\n let dir = graphSettings.rankdir === \"TB\" ? \"LR\" : \"TB\";\n if (clusterDb.get(node)?.clusterData?.dir) {\n dir = clusterDb.get(node).clusterData.dir;\n log.warn(\"Fixing dir\", clusterDb.get(node).clusterData.dir, dir);\n }\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: dir,\n nodesep: 50,\n ranksep: 50,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n log.warn(\"Old graph before copy\", graphlibJson.write(graph));\n copy(node, graph, clusterGraph, node);\n graph.setNode(node, {\n clusterNode: true,\n id: node,\n clusterData: clusterDb.get(node).clusterData,\n label: clusterDb.get(node).label,\n graph: clusterGraph\n });\n log.warn(\"New graph after copy node: (\", node, \")\", graphlibJson.write(clusterGraph));\n log.debug(\"Old graph after copy\", graphlibJson.write(graph));\n } else {\n log.warn(\n \"Cluster ** \",\n node,\n \" **not meeting the criteria !externalConnections:\",\n !clusterDb.get(node).externalConnections,\n \" no parent: \",\n !graph.parent(node),\n \" children \",\n graph.children(node) && graph.children(node).length > 0,\n graph.children(\"D\"),\n depth\n );\n log.debug(clusterDb);\n }\n }\n nodes = graph.nodes();\n log.warn(\"New list of nodes\", nodes);\n for (const node of nodes) {\n const data = graph.node(node);\n log.warn(\" Now next level\", node, data);\n if (data?.clusterNode) {\n extractor(data.graph, depth + 1);\n }\n }\n}, \"extractor\");\nvar sorter = /* @__PURE__ */ __name((graph, nodes) => {\n if (nodes.length === 0) {\n return [];\n }\n let result = Object.assign([], nodes);\n nodes.forEach((node) => {\n const children = graph.children(node);\n const sorted = sorter(graph, children);\n result = [...result, ...sorted];\n });\n return result;\n}, \"sorter\");\nvar sortNodesByHierarchy = /* @__PURE__ */ __name((graph) => sorter(graph, graph.children()), \"sortNodesByHierarchy\");\n\n// src/rendering-util/layout-algorithms/dagre/index.js\nvar recursiveRender = /* @__PURE__ */ __name(async (_elem, graph, diagramType, id, parentCluster, siteConfig) => {\n log.warn(\"Graph in recursive render:XAX\", graphlibJson2.write(graph), parentCluster);\n const dir = graph.graph().rankdir;\n log.trace(\"Dir in recursive render - dir:\", dir);\n const elem = _elem.insert(\"g\").attr(\"class\", \"root\");\n if (!graph.nodes()) {\n log.info(\"No nodes found for\", graph);\n } else {\n log.info(\"Recursive render XXX\", graph.nodes());\n }\n if (graph.edges().length > 0) {\n log.info(\"Recursive edges\", graph.edge(graph.edges()[0]));\n }\n const clusters = elem.insert(\"g\").attr(\"class\", \"clusters\");\n const edgePaths = elem.insert(\"g\").attr(\"class\", \"edgePaths\");\n const edgeLabels = elem.insert(\"g\").attr(\"class\", \"edgeLabels\");\n const nodes = elem.insert(\"g\").attr(\"class\", \"nodes\");\n await Promise.all(\n graph.nodes().map(async function(v) {\n const node = graph.node(v);\n if (parentCluster !== void 0) {\n const data = JSON.parse(JSON.stringify(parentCluster.clusterData));\n log.trace(\n \"Setting data for parent cluster XXX\\n Node.id = \",\n v,\n \"\\n data=\",\n data.height,\n \"\\nParent cluster\",\n parentCluster.height\n );\n graph.setNode(parentCluster.id, data);\n if (!graph.parent(v)) {\n log.trace(\"Setting parent\", v, parentCluster.id);\n graph.setParent(v, parentCluster.id, data);\n }\n }\n log.info(\"(Insert) Node XXX\" + v + \": \" + JSON.stringify(graph.node(v)));\n if (node?.clusterNode) {\n log.info(\"Cluster identified XBX\", v, node.width, graph.node(v));\n const { ranksep, nodesep } = graph.graph();\n node.graph.setGraph({\n ...node.graph.graph(),\n ranksep: ranksep + 25,\n nodesep\n });\n const o = await recursiveRender(\n nodes,\n node.graph,\n diagramType,\n id,\n graph.node(v),\n siteConfig\n );\n const newEl = o.elem;\n updateNodeBounds(node, newEl);\n node.diff = o.diff || 0;\n log.info(\n \"New compound node after recursive render XAX\",\n v,\n \"width\",\n // node,\n node.width,\n \"height\",\n node.height\n // node.x,\n // node.y\n );\n setNodeElem(newEl, node);\n } else {\n if (graph.children(v).length > 0) {\n log.trace(\n \"Cluster - the non recursive path XBX\",\n v,\n node.id,\n node,\n node.width,\n \"Graph:\",\n graph\n );\n log.trace(findNonClusterChild(node.id, graph));\n clusterDb.set(node.id, { id: findNonClusterChild(node.id, graph), node });\n } else {\n log.trace(\"Node - the non recursive path XAX\", v, nodes, graph.node(v), dir);\n await insertNode(nodes, graph.node(v), { config: siteConfig, dir });\n }\n }\n })\n );\n const processEdges = /* @__PURE__ */ __name(async () => {\n const edgePromises = graph.edges().map(async function(e) {\n const edge = graph.edge(e.v, e.w, e.name);\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \", e, \" \", JSON.stringify(graph.edge(e)));\n log.info(\n \"Fix\",\n clusterDb,\n \"ids:\",\n e.v,\n e.w,\n \"Translating: \",\n clusterDb.get(e.v),\n clusterDb.get(e.w)\n );\n await insertEdgeLabel(edgeLabels, edge);\n });\n await Promise.all(edgePromises);\n }, \"processEdges\");\n await processEdges();\n log.info(\"Graph before layout:\", JSON.stringify(graphlibJson2.write(graph)));\n log.info(\"############################################# XXX\");\n log.info(\"### Layout ### XXX\");\n log.info(\"############################################# XXX\");\n dagreLayout(graph);\n log.info(\"Graph after layout:\", JSON.stringify(graphlibJson2.write(graph)));\n let diff = 0;\n let { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);\n await Promise.all(\n sortNodesByHierarchy(graph).map(async function(v) {\n const node = graph.node(v);\n log.info(\n \"Position XBX => \" + v + \": (\" + node.x,\n \",\" + node.y,\n \") width: \",\n node.width,\n \" height: \",\n node.height\n );\n if (node?.clusterNode) {\n node.y += subGraphTitleTotalMargin;\n log.info(\n \"A tainted cluster node XBX1\",\n v,\n node.id,\n node.width,\n node.height,\n node.x,\n node.y,\n graph.parent(v)\n );\n clusterDb.get(node.id).node = node;\n positionNode(node);\n } else {\n if (graph.children(v).length > 0) {\n log.info(\n \"A pure cluster node XBX1\",\n v,\n node.id,\n node.x,\n node.y,\n node.width,\n node.height,\n graph.parent(v)\n );\n node.height += subGraphTitleTotalMargin;\n graph.node(node.parentId);\n const halfPadding = node?.padding / 2 || 0;\n const labelHeight = node?.labelBBox?.height || 0;\n const offsetY = labelHeight - halfPadding || 0;\n log.debug(\"OffsetY\", offsetY, \"labelHeight\", labelHeight, \"halfPadding\", halfPadding);\n await insertCluster(clusters, node);\n clusterDb.get(node.id).node = node;\n } else {\n const parent = graph.node(node.parentId);\n node.y += subGraphTitleTotalMargin / 2;\n log.info(\n \"A regular node XBX1 - using the padding\",\n node.id,\n \"parent\",\n node.parentId,\n node.width,\n node.height,\n node.x,\n node.y,\n \"offsetY\",\n node.offsetY,\n \"parent\",\n parent,\n parent?.offsetY,\n node\n );\n positionNode(node);\n }\n }\n })\n );\n graph.edges().forEach(function(e) {\n const edge = graph.edge(e);\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(edge), edge);\n edge.points.forEach((point) => point.y += subGraphTitleTotalMargin / 2);\n const startNode = graph.node(e.v);\n var endNode = graph.node(e.w);\n const paths = insertEdge(edgePaths, edge, clusterDb, diagramType, startNode, endNode, id);\n positionEdgeLabel(edge, paths);\n });\n graph.nodes().forEach(function(v) {\n const n = graph.node(v);\n log.info(v, n.type, n.diff);\n if (n.isGroup) {\n diff = n.diff;\n }\n });\n log.warn(\"Returning from recursive render XAX\", elem, diff);\n return { elem, diff };\n}, \"recursiveRender\");\nvar render = /* @__PURE__ */ __name(async (data4Layout, svg) => {\n const graph = new graphlib2.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: data4Layout.direction,\n nodesep: data4Layout.config?.nodeSpacing || data4Layout.config?.flowchart?.nodeSpacing || data4Layout.nodeSpacing,\n ranksep: data4Layout.config?.rankSpacing || data4Layout.config?.flowchart?.rankSpacing || data4Layout.rankSpacing,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n const element = svg.select(\"g\");\n markers_default(element, data4Layout.markers, data4Layout.type, data4Layout.diagramId);\n clear3();\n clear2();\n clear();\n clear4();\n data4Layout.nodes.forEach((node) => {\n graph.setNode(node.id, { ...node });\n if (node.parentId) {\n graph.setParent(node.id, node.parentId);\n }\n });\n log.debug(\"Edges:\", data4Layout.edges);\n data4Layout.edges.forEach((edge) => {\n if (edge.start === edge.end) {\n const nodeId = edge.start;\n const specialId1 = nodeId + \"---\" + nodeId + \"---1\";\n const specialId2 = nodeId + \"---\" + nodeId + \"---2\";\n const node = graph.node(nodeId);\n graph.setNode(specialId1, {\n domId: specialId1,\n id: specialId1,\n parentId: node.parentId,\n labelStyle: \"\",\n label: \"\",\n padding: 0,\n shape: \"labelRect\",\n // shape: 'rect',\n style: \"\",\n width: 10,\n height: 10\n });\n graph.setParent(specialId1, node.parentId);\n graph.setNode(specialId2, {\n domId: specialId2,\n id: specialId2,\n parentId: node.parentId,\n labelStyle: \"\",\n padding: 0,\n // shape: 'rect',\n shape: \"labelRect\",\n label: \"\",\n style: \"\",\n width: 10,\n height: 10\n });\n graph.setParent(specialId2, node.parentId);\n const edge1 = structuredClone(edge);\n const edgeMid = structuredClone(edge);\n const edge2 = structuredClone(edge);\n edge1.label = \"\";\n edge1.arrowTypeEnd = \"none\";\n edge1.id = nodeId + \"-cyclic-special-1\";\n edgeMid.arrowTypeStart = \"none\";\n edgeMid.arrowTypeEnd = \"none\";\n edgeMid.id = nodeId + \"-cyclic-special-mid\";\n edge2.label = \"\";\n if (node.isGroup) {\n edge1.fromCluster = nodeId;\n edge2.toCluster = nodeId;\n }\n edge2.id = nodeId + \"-cyclic-special-2\";\n edge2.arrowTypeStart = \"none\";\n graph.setEdge(nodeId, specialId1, edge1, nodeId + \"-cyclic-special-0\");\n graph.setEdge(specialId1, specialId2, edgeMid, nodeId + \"-cyclic-special-1\");\n graph.setEdge(specialId2, nodeId, edge2, nodeId + \"-cyc<lic-special-2\");\n } else {\n graph.setEdge(edge.start, edge.end, { ...edge }, edge.id);\n }\n });\n log.warn(\"Graph at first:\", JSON.stringify(graphlibJson2.write(graph)));\n adjustClustersAndEdges(graph);\n log.warn(\"Graph after XAX:\", JSON.stringify(graphlibJson2.write(graph)));\n const siteConfig = getConfig();\n await recursiveRender(\n element,\n graph,\n data4Layout.type,\n data4Layout.diagramId,\n void 0,\n siteConfig\n );\n}, \"render\");\nexport {\n render\n};\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
1
+ {"version":3,"file":"dagre-KV5264BT-DTy5YJ5_.js","names":["_.isUndefined","_.clone","_.map","graphlibJson.write","graphlib.Graph","graphlibJson2.write","graphlib2.Graph","getConfig"],"sources":["../../../../node_modules/dagre-d3-es/src/graphlib/json.js","../../../../node_modules/mermaid/dist/chunks/mermaid.core/dagre-KV5264BT.mjs"],"sourcesContent":["import * as _ from 'lodash-es';\nimport { Graph } from './graph.js';\n\n/**\n * @import { NodeID, EdgeObj, GraphOptions } from './graph.js';\n */\n\nexport { write, read };\n\n/**\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * @template [EdgeLabel=any] - Label of an edge.\n *\n * @typedef {object} GraphJSON\n * @property {Required<GraphOptions>} options - The options used to create the graph.\n * @property {Array<{ v: NodeID; value?: NodeLabel; parent?: NodeID }>} nodes - The nodes in the graph.\n * @property {Array<EdgeObj & { value?: EdgeLabel }>} edges - The edges in the graph.\n * @property {GraphLabel} [value] - The graph's value, if any.\n */\n\n/**\n * Creates a JSON representation of the graph that can be serialized to a\n * string with\n * [JSON.stringify](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify).\n * The graph can later be restored using {@link read}.\n *\n * @example\n *\n * ```js\n * var g = new graphlib.Graph();\n * g.setNode(\"a\", { label: \"node a\" });\n * g.setNode(\"b\", { label: \"node b\" });\n * g.setEdge(\"a\", \"b\", { label: \"edge a->b\" });\n * graphlib.json.write(g);\n * // Returns the object:\n * //\n * // {\n * // \"options\": {\n * // \"directed\": true,\n * // \"multigraph\": false,\n * // \"compound\": false\n * // },\n * // \"nodes\": [\n * // { \"v\": \"a\", \"value\": { \"label\": \"node a\" } },\n * // { \"v\": \"b\", \"value\": { \"label\": \"node b\" } }\n * // ],\n * // \"edges\": [\n * // { \"v\": \"a\", \"w\": \"b\", \"value\": { \"label\": \"edge a->b\" } }\n * // ]\n * // }\n * ```\n *\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * @template [EdgeLabel=any] - Label of an edge.\n * @param {Graph<GraphLabel, NodeLabel, EdgeLabel>} g - The graph to serialize.\n * @returns {GraphJSON<GraphLabel, NodeLabel, EdgeLabel>} The JSON representation of the graph.\n */\nfunction write(g) {\n /** @type {GraphJSON<GraphLabel, NodeLabel, EdgeLabel>} */\n var json = {\n options: {\n directed: g.isDirected(),\n multigraph: g.isMultigraph(),\n compound: g.isCompound(),\n },\n nodes: writeNodes(g),\n edges: writeEdges(g),\n };\n if (!_.isUndefined(g.graph())) {\n json.value = _.clone(g.graph());\n }\n return json;\n}\n\n/**\n * @template NodeLabel - Label of a node.\n *\n * @param {Graph<unknown, NodeLabel, unknown>} g - The graph to serialize.\n * @returns {Array<{ v: NodeID; value?: NodeLabel; parent?: NodeID }>} The nodes in the graph.\n */\nfunction writeNodes(g) {\n return _.map(g.nodes(), function (v) {\n var nodeValue = g.node(v);\n var parent = g.parent(v);\n /** @type {{ v: NodeID; value?: NodeLabel; parent?: NodeID }} */\n var node = { v: v };\n if (!_.isUndefined(nodeValue)) {\n node.value = nodeValue;\n }\n if (!_.isUndefined(parent)) {\n node.parent = parent;\n }\n return node;\n });\n}\n\n/**\n * @template EdgeLabel - Label of a node.\n *\n * @param {Graph<unknown, unknown, EdgeLabel>} g - The graph to serialize.\n * @returns {Array<EdgeObj & { value?: EdgeLabel }>} The edges in the graph.\n */\nfunction writeEdges(g) {\n return _.map(g.edges(), function (e) {\n var edgeValue = g.edge(e);\n /** @type {EdgeObj & { value?: EdgeLabel }} */\n var edge = { v: e.v, w: e.w };\n if (!_.isUndefined(e.name)) {\n edge.name = e.name;\n }\n if (!_.isUndefined(edgeValue)) {\n edge.value = edgeValue;\n }\n return edge;\n });\n}\n\n/**\n * Takes JSON as input and returns the graph representation.\n *\n * @example\n *\n * For example, if we have serialized the graph in {@link write}\n * to a string named `str`, we can restore it to a graph as follows:\n *\n * ```js\n * var g2 = graphlib.json.read(JSON.parse(str));\n * // or, in order to copy the graph\n * var g3 = graphlib.json.read(graphlib.json.write(g))\n *\n * g2.nodes();\n * // ['a', 'b']\n * g2.edges()\n * // [ { v: 'a', w: 'b' } ]\n * ```\n *\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * @template [EdgeLabel=any] - Label of an edge.\n * @param {GraphJSON<GraphLabel, NodeLabel, EdgeLabel>} json - The JSON representation of the graph.\n * @returns {Graph<GraphLabel, NodeLabel, EdgeLabel>} The restored graph.\n */\nfunction read(json) {\n var g = new Graph(json.options).setGraph(json.value);\n _.each(json.nodes, function (entry) {\n g.setNode(entry.v, entry.value);\n if (entry.parent) {\n g.setParent(entry.v, entry.parent);\n }\n });\n _.each(json.edges, function (entry) {\n g.setEdge({ v: entry.v, w: entry.w, name: entry.name }, entry.value);\n });\n return g;\n}\n","import {\n clear as clear2,\n insertEdge,\n insertEdgeLabel,\n markers_default,\n positionEdgeLabel\n} from \"./chunk-ENJZ2VHE.mjs\";\nimport \"./chunk-BSJP7CBP.mjs\";\nimport {\n clear,\n clear2 as clear3,\n insertCluster,\n insertNode,\n positionNode,\n setNodeElem,\n updateNodeBounds\n} from \"./chunk-5FUZZQ4R.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-ZZ45TVLE.mjs\";\nimport \"./chunk-X2U36JSP.mjs\";\nimport \"./chunk-U2HBQHQK.mjs\";\nimport \"./chunk-5PVQY5BW.mjs\";\nimport {\n getConfig2 as getConfig\n} from \"./chunk-ICPOFSXX.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/layout-algorithms/dagre/index.js\nimport { layout as dagreLayout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlibJson2 from \"dagre-d3-es/src/graphlib/json.js\";\nimport * as graphlib2 from \"dagre-d3-es/src/graphlib/index.js\";\n\n// src/rendering-util/layout-algorithms/dagre/mermaid-graphlib.js\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport * as graphlibJson from \"dagre-d3-es/src/graphlib/json.js\";\nvar clusterDb = /* @__PURE__ */ new Map();\nvar descendants = /* @__PURE__ */ new Map();\nvar parents = /* @__PURE__ */ new Map();\nvar clear4 = /* @__PURE__ */ __name(() => {\n descendants.clear();\n parents.clear();\n clusterDb.clear();\n}, \"clear\");\nvar isDescendant = /* @__PURE__ */ __name((id, ancestorId) => {\n const ancestorDescendants = descendants.get(ancestorId) || [];\n log.trace(\"In isDescendant\", ancestorId, \" \", id, \" = \", ancestorDescendants.includes(id));\n return ancestorDescendants.includes(id);\n}, \"isDescendant\");\nvar edgeInCluster = /* @__PURE__ */ __name((edge, clusterId) => {\n const clusterDescendants = descendants.get(clusterId) || [];\n log.info(\"Descendants of \", clusterId, \" is \", clusterDescendants);\n log.info(\"Edge is \", edge);\n if (edge.v === clusterId || edge.w === clusterId) {\n return false;\n }\n if (!clusterDescendants) {\n log.debug(\"Tilt, \", clusterId, \",not in descendants\");\n return false;\n }\n return clusterDescendants.includes(edge.v) || isDescendant(edge.v, clusterId) || isDescendant(edge.w, clusterId) || clusterDescendants.includes(edge.w);\n}, \"edgeInCluster\");\nvar copy = /* @__PURE__ */ __name((clusterId, graph, newGraph, rootId) => {\n log.warn(\n \"Copying children of \",\n clusterId,\n \"root\",\n rootId,\n \"data\",\n graph.node(clusterId),\n rootId\n );\n const nodes = graph.children(clusterId) || [];\n if (clusterId !== rootId) {\n nodes.push(clusterId);\n }\n log.warn(\"Copying (nodes) clusterId\", clusterId, \"nodes\", nodes);\n nodes.forEach((node) => {\n if (graph.children(node).length > 0) {\n copy(node, graph, newGraph, rootId);\n } else {\n const data = graph.node(node);\n log.info(\"cp \", node, \" to \", rootId, \" with parent \", clusterId);\n newGraph.setNode(node, data);\n if (rootId !== graph.parent(node)) {\n log.warn(\"Setting parent\", node, graph.parent(node));\n newGraph.setParent(node, graph.parent(node));\n }\n if (clusterId !== rootId && node !== clusterId) {\n log.debug(\"Setting parent\", node, clusterId);\n newGraph.setParent(node, clusterId);\n } else {\n log.info(\"In copy \", clusterId, \"root\", rootId, \"data\", graph.node(clusterId), rootId);\n log.debug(\n \"Not Setting parent for node=\",\n node,\n \"cluster!==rootId\",\n clusterId !== rootId,\n \"node!==clusterId\",\n node !== clusterId\n );\n }\n const edges = graph.edges(node);\n log.debug(\"Copying Edges\", edges);\n edges.forEach((edge) => {\n log.info(\"Edge\", edge);\n const data2 = graph.edge(edge.v, edge.w, edge.name);\n log.info(\"Edge data\", data2, rootId);\n try {\n if (edgeInCluster(edge, rootId)) {\n log.info(\"Copying as \", edge.v, edge.w, data2, edge.name);\n newGraph.setEdge(edge.v, edge.w, data2, edge.name);\n log.info(\"newGraph edges \", newGraph.edges(), newGraph.edge(newGraph.edges()[0]));\n } else {\n log.info(\n \"Skipping copy of edge \",\n edge.v,\n \"-->\",\n edge.w,\n \" rootId: \",\n rootId,\n \" clusterId:\",\n clusterId\n );\n }\n } catch (e) {\n log.error(e);\n }\n });\n }\n log.debug(\"Removing node\", node);\n graph.removeNode(node);\n });\n}, \"copy\");\nvar extractDescendants = /* @__PURE__ */ __name((id, graph) => {\n const children = graph.children(id);\n let res = [...children];\n for (const child of children) {\n parents.set(child, id);\n res = [...res, ...extractDescendants(child, graph)];\n }\n return res;\n}, \"extractDescendants\");\nvar findCommonEdges = /* @__PURE__ */ __name((graph, id1, id2) => {\n const edges1 = graph.edges().filter((edge) => edge.v === id1 || edge.w === id1);\n const edges2 = graph.edges().filter((edge) => edge.v === id2 || edge.w === id2);\n const edges1Prim = edges1.map((edge) => {\n return { v: edge.v === id1 ? id2 : edge.v, w: edge.w === id1 ? id1 : edge.w };\n });\n const edges2Prim = edges2.map((edge) => {\n return { v: edge.v, w: edge.w };\n });\n const result = edges1Prim.filter((edgeIn1) => {\n return edges2Prim.some((edge) => edgeIn1.v === edge.v && edgeIn1.w === edge.w);\n });\n return result;\n}, \"findCommonEdges\");\nvar findNonClusterChild = /* @__PURE__ */ __name((id, graph, clusterId) => {\n const children = graph.children(id);\n log.trace(\"Searching children of id \", id, children);\n if (children.length < 1) {\n return id;\n }\n let reserve;\n for (const child of children) {\n const _id = findNonClusterChild(child, graph, clusterId);\n const commonEdges = findCommonEdges(graph, clusterId, _id);\n if (_id) {\n if (commonEdges.length > 0) {\n reserve = _id;\n } else {\n return _id;\n }\n }\n }\n return reserve;\n}, \"findNonClusterChild\");\nvar getAnchorId = /* @__PURE__ */ __name((id) => {\n if (!clusterDb.has(id)) {\n return id;\n }\n if (!clusterDb.get(id).externalConnections) {\n return id;\n }\n if (clusterDb.has(id)) {\n return clusterDb.get(id).id;\n }\n return id;\n}, \"getAnchorId\");\nvar adjustClustersAndEdges = /* @__PURE__ */ __name((graph, depth) => {\n if (!graph || depth > 10) {\n log.debug(\"Opting out, no graph \");\n return;\n } else {\n log.debug(\"Opting in, graph \");\n }\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n if (children.length > 0) {\n log.warn(\n \"Cluster identified\",\n id,\n \" Replacement id in edges: \",\n findNonClusterChild(id, graph, id)\n );\n descendants.set(id, extractDescendants(id, graph));\n clusterDb.set(id, { id: findNonClusterChild(id, graph, id), clusterData: graph.node(id) });\n }\n });\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n const edges = graph.edges();\n if (children.length > 0) {\n log.debug(\"Cluster identified\", id, descendants);\n edges.forEach((edge) => {\n const d1 = isDescendant(edge.v, id);\n const d2 = isDescendant(edge.w, id);\n if (d1 ^ d2) {\n log.warn(\"Edge: \", edge, \" leaves cluster \", id);\n log.warn(\"Descendants of XXX \", id, \": \", descendants.get(id));\n clusterDb.get(id).externalConnections = true;\n }\n });\n } else {\n log.debug(\"Not a cluster \", id, descendants);\n }\n });\n for (let id of clusterDb.keys()) {\n const nonClusterChild = clusterDb.get(id).id;\n const parent = graph.parent(nonClusterChild);\n if (parent !== id && clusterDb.has(parent) && !clusterDb.get(parent).externalConnections) {\n clusterDb.get(id).id = parent;\n }\n }\n graph.edges().forEach(function(e) {\n const edge = graph.edge(e);\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(graph.edge(e)));\n let v = e.v;\n let w = e.w;\n log.warn(\n \"Fix XXX\",\n clusterDb,\n \"ids:\",\n e.v,\n e.w,\n \"Translating: \",\n clusterDb.get(e.v),\n \" --- \",\n clusterDb.get(e.w)\n );\n if (clusterDb.get(e.v) || clusterDb.get(e.w)) {\n log.warn(\"Fixing and trying - removing XXX\", e.v, e.w, e.name);\n v = getAnchorId(e.v);\n w = getAnchorId(e.w);\n graph.removeEdge(e.v, e.w, e.name);\n if (v !== e.v) {\n const parent = graph.parent(v);\n clusterDb.get(parent).externalConnections = true;\n edge.fromCluster = e.v;\n }\n if (w !== e.w) {\n const parent = graph.parent(w);\n clusterDb.get(parent).externalConnections = true;\n edge.toCluster = e.w;\n }\n log.warn(\"Fix Replacing with XXX\", v, w, e.name);\n graph.setEdge(v, w, edge, e.name);\n }\n });\n log.warn(\"Adjusted Graph\", graphlibJson.write(graph));\n extractor(graph, 0);\n log.trace(clusterDb);\n}, \"adjustClustersAndEdges\");\nvar extractor = /* @__PURE__ */ __name((graph, depth) => {\n log.warn(\"extractor - \", depth, graphlibJson.write(graph), graph.children(\"D\"));\n if (depth > 10) {\n log.error(\"Bailing out\");\n return;\n }\n let nodes = graph.nodes();\n let hasChildren = false;\n for (const node of nodes) {\n const children = graph.children(node);\n hasChildren = hasChildren || children.length > 0;\n }\n if (!hasChildren) {\n log.debug(\"Done, no node has children\", graph.nodes());\n return;\n }\n log.debug(\"Nodes = \", nodes, depth);\n for (const node of nodes) {\n log.debug(\n \"Extracting node\",\n node,\n clusterDb,\n clusterDb.has(node) && !clusterDb.get(node).externalConnections,\n !graph.parent(node),\n graph.node(node),\n graph.children(\"D\"),\n \" Depth \",\n depth\n );\n if (!clusterDb.has(node)) {\n log.debug(\"Not a cluster\", node, depth);\n } else if (!clusterDb.get(node).externalConnections && graph.children(node) && graph.children(node).length > 0) {\n log.warn(\n \"Cluster without external connections, without a parent and with children\",\n node,\n depth\n );\n const graphSettings = graph.graph();\n let dir = graphSettings.rankdir === \"TB\" ? \"LR\" : \"TB\";\n if (clusterDb.get(node)?.clusterData?.dir) {\n dir = clusterDb.get(node).clusterData.dir;\n log.warn(\"Fixing dir\", clusterDb.get(node).clusterData.dir, dir);\n }\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: dir,\n nodesep: 50,\n ranksep: 50,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n log.warn(\"Old graph before copy\", graphlibJson.write(graph));\n copy(node, graph, clusterGraph, node);\n graph.setNode(node, {\n clusterNode: true,\n id: node,\n clusterData: clusterDb.get(node).clusterData,\n label: clusterDb.get(node).label,\n graph: clusterGraph\n });\n log.warn(\"New graph after copy node: (\", node, \")\", graphlibJson.write(clusterGraph));\n log.debug(\"Old graph after copy\", graphlibJson.write(graph));\n } else {\n log.warn(\n \"Cluster ** \",\n node,\n \" **not meeting the criteria !externalConnections:\",\n !clusterDb.get(node).externalConnections,\n \" no parent: \",\n !graph.parent(node),\n \" children \",\n graph.children(node) && graph.children(node).length > 0,\n graph.children(\"D\"),\n depth\n );\n log.debug(clusterDb);\n }\n }\n nodes = graph.nodes();\n log.warn(\"New list of nodes\", nodes);\n for (const node of nodes) {\n const data = graph.node(node);\n log.warn(\" Now next level\", node, data);\n if (data?.clusterNode) {\n extractor(data.graph, depth + 1);\n }\n }\n}, \"extractor\");\nvar sorter = /* @__PURE__ */ __name((graph, nodes) => {\n if (nodes.length === 0) {\n return [];\n }\n let result = Object.assign([], nodes);\n nodes.forEach((node) => {\n const children = graph.children(node);\n const sorted = sorter(graph, children);\n result = [...result, ...sorted];\n });\n return result;\n}, \"sorter\");\nvar sortNodesByHierarchy = /* @__PURE__ */ __name((graph) => sorter(graph, graph.children()), \"sortNodesByHierarchy\");\n\n// src/rendering-util/layout-algorithms/dagre/index.js\nvar recursiveRender = /* @__PURE__ */ __name(async (_elem, graph, diagramType, id, parentCluster, siteConfig) => {\n log.warn(\"Graph in recursive render:XAX\", graphlibJson2.write(graph), parentCluster);\n const dir = graph.graph().rankdir;\n log.trace(\"Dir in recursive render - dir:\", dir);\n const elem = _elem.insert(\"g\").attr(\"class\", \"root\");\n if (!graph.nodes()) {\n log.info(\"No nodes found for\", graph);\n } else {\n log.info(\"Recursive render XXX\", graph.nodes());\n }\n if (graph.edges().length > 0) {\n log.info(\"Recursive edges\", graph.edge(graph.edges()[0]));\n }\n const clusters = elem.insert(\"g\").attr(\"class\", \"clusters\");\n const edgePaths = elem.insert(\"g\").attr(\"class\", \"edgePaths\");\n const edgeLabels = elem.insert(\"g\").attr(\"class\", \"edgeLabels\");\n const nodes = elem.insert(\"g\").attr(\"class\", \"nodes\");\n await Promise.all(\n graph.nodes().map(async function(v) {\n const node = graph.node(v);\n if (parentCluster !== void 0) {\n const data = JSON.parse(JSON.stringify(parentCluster.clusterData));\n log.trace(\n \"Setting data for parent cluster XXX\\n Node.id = \",\n v,\n \"\\n data=\",\n data.height,\n \"\\nParent cluster\",\n parentCluster.height\n );\n graph.setNode(parentCluster.id, data);\n if (!graph.parent(v)) {\n log.trace(\"Setting parent\", v, parentCluster.id);\n graph.setParent(v, parentCluster.id, data);\n }\n }\n log.info(\"(Insert) Node XXX\" + v + \": \" + JSON.stringify(graph.node(v)));\n if (node?.clusterNode) {\n log.info(\"Cluster identified XBX\", v, node.width, graph.node(v));\n const { ranksep, nodesep } = graph.graph();\n node.graph.setGraph({\n ...node.graph.graph(),\n ranksep: ranksep + 25,\n nodesep\n });\n const o = await recursiveRender(\n nodes,\n node.graph,\n diagramType,\n id,\n graph.node(v),\n siteConfig\n );\n const newEl = o.elem;\n updateNodeBounds(node, newEl);\n node.diff = o.diff || 0;\n log.info(\n \"New compound node after recursive render XAX\",\n v,\n \"width\",\n // node,\n node.width,\n \"height\",\n node.height\n // node.x,\n // node.y\n );\n setNodeElem(newEl, node);\n } else {\n if (graph.children(v).length > 0) {\n log.trace(\n \"Cluster - the non recursive path XBX\",\n v,\n node.id,\n node,\n node.width,\n \"Graph:\",\n graph\n );\n log.trace(findNonClusterChild(node.id, graph));\n clusterDb.set(node.id, { id: findNonClusterChild(node.id, graph), node });\n } else {\n log.trace(\"Node - the non recursive path XAX\", v, nodes, graph.node(v), dir);\n await insertNode(nodes, graph.node(v), { config: siteConfig, dir });\n }\n }\n })\n );\n const processEdges = /* @__PURE__ */ __name(async () => {\n const edgePromises = graph.edges().map(async function(e) {\n const edge = graph.edge(e.v, e.w, e.name);\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \", e, \" \", JSON.stringify(graph.edge(e)));\n log.info(\n \"Fix\",\n clusterDb,\n \"ids:\",\n e.v,\n e.w,\n \"Translating: \",\n clusterDb.get(e.v),\n clusterDb.get(e.w)\n );\n await insertEdgeLabel(edgeLabels, edge);\n });\n await Promise.all(edgePromises);\n }, \"processEdges\");\n await processEdges();\n log.info(\"Graph before layout:\", JSON.stringify(graphlibJson2.write(graph)));\n log.info(\"############################################# XXX\");\n log.info(\"### Layout ### XXX\");\n log.info(\"############################################# XXX\");\n dagreLayout(graph);\n log.info(\"Graph after layout:\", JSON.stringify(graphlibJson2.write(graph)));\n let diff = 0;\n let { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);\n await Promise.all(\n sortNodesByHierarchy(graph).map(async function(v) {\n const node = graph.node(v);\n log.info(\n \"Position XBX => \" + v + \": (\" + node.x,\n \",\" + node.y,\n \") width: \",\n node.width,\n \" height: \",\n node.height\n );\n if (node?.clusterNode) {\n node.y += subGraphTitleTotalMargin;\n log.info(\n \"A tainted cluster node XBX1\",\n v,\n node.id,\n node.width,\n node.height,\n node.x,\n node.y,\n graph.parent(v)\n );\n clusterDb.get(node.id).node = node;\n positionNode(node);\n } else {\n if (graph.children(v).length > 0) {\n log.info(\n \"A pure cluster node XBX1\",\n v,\n node.id,\n node.x,\n node.y,\n node.width,\n node.height,\n graph.parent(v)\n );\n node.height += subGraphTitleTotalMargin;\n graph.node(node.parentId);\n const halfPadding = node?.padding / 2 || 0;\n const labelHeight = node?.labelBBox?.height || 0;\n const offsetY = labelHeight - halfPadding || 0;\n log.debug(\"OffsetY\", offsetY, \"labelHeight\", labelHeight, \"halfPadding\", halfPadding);\n await insertCluster(clusters, node);\n clusterDb.get(node.id).node = node;\n } else {\n const parent = graph.node(node.parentId);\n node.y += subGraphTitleTotalMargin / 2;\n log.info(\n \"A regular node XBX1 - using the padding\",\n node.id,\n \"parent\",\n node.parentId,\n node.width,\n node.height,\n node.x,\n node.y,\n \"offsetY\",\n node.offsetY,\n \"parent\",\n parent,\n parent?.offsetY,\n node\n );\n positionNode(node);\n }\n }\n })\n );\n graph.edges().forEach(function(e) {\n const edge = graph.edge(e);\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(edge), edge);\n edge.points.forEach((point) => point.y += subGraphTitleTotalMargin / 2);\n const startNode = graph.node(e.v);\n var endNode = graph.node(e.w);\n const paths = insertEdge(edgePaths, edge, clusterDb, diagramType, startNode, endNode, id);\n positionEdgeLabel(edge, paths);\n });\n graph.nodes().forEach(function(v) {\n const n = graph.node(v);\n log.info(v, n.type, n.diff);\n if (n.isGroup) {\n diff = n.diff;\n }\n });\n log.warn(\"Returning from recursive render XAX\", elem, diff);\n return { elem, diff };\n}, \"recursiveRender\");\nvar render = /* @__PURE__ */ __name(async (data4Layout, svg) => {\n const graph = new graphlib2.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: data4Layout.direction,\n nodesep: data4Layout.config?.nodeSpacing || data4Layout.config?.flowchart?.nodeSpacing || data4Layout.nodeSpacing,\n ranksep: data4Layout.config?.rankSpacing || data4Layout.config?.flowchart?.rankSpacing || data4Layout.rankSpacing,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n const element = svg.select(\"g\");\n markers_default(element, data4Layout.markers, data4Layout.type, data4Layout.diagramId);\n clear3();\n clear2();\n clear();\n clear4();\n data4Layout.nodes.forEach((node) => {\n graph.setNode(node.id, { ...node });\n if (node.parentId) {\n graph.setParent(node.id, node.parentId);\n }\n });\n log.debug(\"Edges:\", data4Layout.edges);\n data4Layout.edges.forEach((edge) => {\n if (edge.start === edge.end) {\n const nodeId = edge.start;\n const specialId1 = nodeId + \"---\" + nodeId + \"---1\";\n const specialId2 = nodeId + \"---\" + nodeId + \"---2\";\n const node = graph.node(nodeId);\n graph.setNode(specialId1, {\n domId: specialId1,\n id: specialId1,\n parentId: node.parentId,\n labelStyle: \"\",\n label: \"\",\n padding: 0,\n shape: \"labelRect\",\n // shape: 'rect',\n style: \"\",\n width: 10,\n height: 10\n });\n graph.setParent(specialId1, node.parentId);\n graph.setNode(specialId2, {\n domId: specialId2,\n id: specialId2,\n parentId: node.parentId,\n labelStyle: \"\",\n padding: 0,\n // shape: 'rect',\n shape: \"labelRect\",\n label: \"\",\n style: \"\",\n width: 10,\n height: 10\n });\n graph.setParent(specialId2, node.parentId);\n const edge1 = structuredClone(edge);\n const edgeMid = structuredClone(edge);\n const edge2 = structuredClone(edge);\n edge1.label = \"\";\n edge1.arrowTypeEnd = \"none\";\n edge1.id = nodeId + \"-cyclic-special-1\";\n edgeMid.arrowTypeStart = \"none\";\n edgeMid.arrowTypeEnd = \"none\";\n edgeMid.id = nodeId + \"-cyclic-special-mid\";\n edge2.label = \"\";\n if (node.isGroup) {\n edge1.fromCluster = nodeId;\n edge2.toCluster = nodeId;\n }\n edge2.id = nodeId + \"-cyclic-special-2\";\n edge2.arrowTypeStart = \"none\";\n graph.setEdge(nodeId, specialId1, edge1, nodeId + \"-cyclic-special-0\");\n graph.setEdge(specialId1, specialId2, edgeMid, nodeId + \"-cyclic-special-1\");\n graph.setEdge(specialId2, nodeId, edge2, nodeId + \"-cyc<lic-special-2\");\n } else {\n graph.setEdge(edge.start, edge.end, { ...edge }, edge.id);\n }\n });\n log.warn(\"Graph at first:\", JSON.stringify(graphlibJson2.write(graph)));\n adjustClustersAndEdges(graph);\n log.warn(\"Graph after XAX:\", JSON.stringify(graphlibJson2.write(graph)));\n const siteConfig = getConfig();\n await recursiveRender(\n element,\n graph,\n data4Layout.type,\n data4Layout.diagramId,\n void 0,\n siteConfig\n );\n}, \"render\");\nexport {\n render\n};\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"diagram-5BDNPKRD-w19gCTBw.js","names":[],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/diagram-5BDNPKRD.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-426QAEUC.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n ImperativeState\n} from \"./chunk-QZHKN3VN.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-5PVQY5BW.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ICPOFSXX.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/treeView/db.ts\nvar state = new ImperativeState(() => ({\n cnt: 1,\n stack: [\n {\n id: 0,\n level: -1,\n name: \"/\",\n children: []\n }\n ]\n}));\nvar clear2 = /* @__PURE__ */ __name(() => {\n state.reset();\n clear();\n}, \"clear\");\nvar getRoot = /* @__PURE__ */ __name(() => {\n return state.records.stack[0];\n}, \"getRoot\");\nvar getCount = /* @__PURE__ */ __name(() => state.records.cnt, \"getCount\");\nvar defaultConfig = defaultConfig_default.treeView;\nvar getConfig2 = /* @__PURE__ */ __name(() => {\n return cleanAndMerge(defaultConfig, getConfig().treeView);\n}, \"getConfig\");\nvar addNode = /* @__PURE__ */ __name((level, name) => {\n while (level <= state.records.stack[state.records.stack.length - 1].level) {\n state.records.stack.pop();\n }\n const node = {\n id: state.records.cnt++,\n level,\n name,\n children: []\n };\n state.records.stack[state.records.stack.length - 1].children.push(node);\n state.records.stack.push(node);\n}, \"addNode\");\nvar db = {\n clear: clear2,\n addNode,\n getRoot,\n getCount,\n getConfig: getConfig2,\n getAccTitle,\n getAccDescription,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n};\nvar db_default = db;\n\n// src/diagrams/treeView/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar populate = /* @__PURE__ */ __name((ast) => {\n populateCommonDb(ast, db_default);\n ast.nodes.map((node) => db_default.addNode(node.indent ? parseInt(node.indent) : 0, node.name));\n}, \"populate\");\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"treeView\", input);\n log.debug(ast);\n populate(ast);\n }, \"parse\")\n};\n\n// src/diagrams/treeView/renderer.ts\nvar positionLabel = /* @__PURE__ */ __name((x, y, node, domElem, config) => {\n const label = domElem.append(\"text\").text(node.name).attr(\"dominant-baseline\", \"middle\").attr(\"class\", \"treeView-node-label\");\n const { height: labelHeight, width: labelWidth } = label.node().getBBox();\n const height = labelHeight + config.paddingY * 2;\n const width = labelWidth + config.paddingX * 2;\n label.attr(\"x\", x + config.paddingX);\n label.attr(\"y\", y + height / 2);\n node.BBox = {\n x,\n y,\n width,\n height\n };\n}, \"positionLabel\");\nvar positionLine = /* @__PURE__ */ __name((domElem, x1, y1, x2, y2, lineThickness) => {\n return domElem.append(\"line\").attr(\"x1\", x1).attr(\"y1\", y1).attr(\"x2\", x2).attr(\"y2\", y2).attr(\"stroke-width\", lineThickness).attr(\"class\", \"treeView-node-line\");\n}, \"positionLine\");\nvar drawTree = /* @__PURE__ */ __name((elem, root, config) => {\n let totalHeight = 0;\n let totalWidth = 0;\n const drawNode = /* @__PURE__ */ __name((elem2, node, config2, depth) => {\n const indent = depth * (config2.rowIndent + config2.paddingX);\n positionLabel(indent, totalHeight, node, elem2, config2);\n const { height, width } = node.BBox;\n positionLine(\n elem2,\n indent - config2.rowIndent,\n totalHeight + height / 2,\n indent,\n totalHeight + height / 2,\n config2.lineThickness\n );\n totalWidth = Math.max(totalWidth, indent + width);\n totalHeight += height;\n }, \"drawNode\");\n const processNode = /* @__PURE__ */ __name((node, depth = 0) => {\n drawNode(elem, node, config, depth);\n node.children.forEach((child) => {\n processNode(child, depth + 1);\n });\n const { x, y, height } = node.BBox;\n if (node.children.length) {\n const { y: endY, height: endHeight } = node.children[node.children.length - 1].BBox;\n positionLine(\n elem,\n x + config.paddingX,\n y + height,\n x + config.paddingX,\n endY + endHeight / 2 + config.lineThickness / 2,\n config.lineThickness\n );\n }\n }, \"processNode\");\n processNode(root);\n return { totalHeight, totalWidth };\n}, \"drawTree\");\nvar draw = /* @__PURE__ */ __name((text, id, _ver, diagObj) => {\n log.debug(\"Rendering treeView diagram\\n\" + text);\n const db2 = diagObj.db;\n const root = db2.getRoot();\n const config = db2.getConfig();\n const svg = selectSvgElement(id);\n const treeElem = svg.append(\"g\");\n treeElem.attr(\"class\", \"tree-view\");\n const { totalHeight, totalWidth } = drawTree(treeElem, root, config);\n svg.attr(\"viewBox\", `-${config.lineThickness / 2} 0 ${totalWidth} ${totalHeight}`);\n configureSvgSize(svg, totalHeight, totalWidth, config.useMaxWidth);\n}, \"draw\");\nvar renderer = {\n draw\n};\nvar renderer_default = renderer;\n\n// src/diagrams/treeView/styles.ts\nvar defaultTreeViewDiagramStyles = {\n labelFontSize: \"16px\",\n labelColor: \"black\",\n lineColor: \"black\"\n};\nvar styles = /* @__PURE__ */ __name(({\n treeView\n}) => {\n const { labelFontSize, labelColor, lineColor } = cleanAndMerge(\n defaultTreeViewDiagramStyles,\n treeView\n );\n return `\n .treeView-node-label {\n font-size: ${labelFontSize};\n fill: ${labelColor};\n }\n .treeView-node-line {\n stroke: ${lineColor};\n }\n `;\n}, \"styles\");\nvar styles_default = styles;\n\n// src/diagrams/treeView/diagram.ts\nvar diagram = {\n db: db_default,\n renderer: renderer_default,\n parser,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"diagram-5BDNPKRD-w19gCTBw.js","names":[],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/diagram-5BDNPKRD.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-426QAEUC.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n ImperativeState\n} from \"./chunk-QZHKN3VN.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-5PVQY5BW.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ICPOFSXX.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/treeView/db.ts\nvar state = new ImperativeState(() => ({\n cnt: 1,\n stack: [\n {\n id: 0,\n level: -1,\n name: \"/\",\n children: []\n }\n ]\n}));\nvar clear2 = /* @__PURE__ */ __name(() => {\n state.reset();\n clear();\n}, \"clear\");\nvar getRoot = /* @__PURE__ */ __name(() => {\n return state.records.stack[0];\n}, \"getRoot\");\nvar getCount = /* @__PURE__ */ __name(() => state.records.cnt, \"getCount\");\nvar defaultConfig = defaultConfig_default.treeView;\nvar getConfig2 = /* @__PURE__ */ __name(() => {\n return cleanAndMerge(defaultConfig, getConfig().treeView);\n}, \"getConfig\");\nvar addNode = /* @__PURE__ */ __name((level, name) => {\n while (level <= state.records.stack[state.records.stack.length - 1].level) {\n state.records.stack.pop();\n }\n const node = {\n id: state.records.cnt++,\n level,\n name,\n children: []\n };\n state.records.stack[state.records.stack.length - 1].children.push(node);\n state.records.stack.push(node);\n}, \"addNode\");\nvar db = {\n clear: clear2,\n addNode,\n getRoot,\n getCount,\n getConfig: getConfig2,\n getAccTitle,\n getAccDescription,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n};\nvar db_default = db;\n\n// src/diagrams/treeView/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar populate = /* @__PURE__ */ __name((ast) => {\n populateCommonDb(ast, db_default);\n ast.nodes.map((node) => db_default.addNode(node.indent ? parseInt(node.indent) : 0, node.name));\n}, \"populate\");\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"treeView\", input);\n log.debug(ast);\n populate(ast);\n }, \"parse\")\n};\n\n// src/diagrams/treeView/renderer.ts\nvar positionLabel = /* @__PURE__ */ __name((x, y, node, domElem, config) => {\n const label = domElem.append(\"text\").text(node.name).attr(\"dominant-baseline\", \"middle\").attr(\"class\", \"treeView-node-label\");\n const { height: labelHeight, width: labelWidth } = label.node().getBBox();\n const height = labelHeight + config.paddingY * 2;\n const width = labelWidth + config.paddingX * 2;\n label.attr(\"x\", x + config.paddingX);\n label.attr(\"y\", y + height / 2);\n node.BBox = {\n x,\n y,\n width,\n height\n };\n}, \"positionLabel\");\nvar positionLine = /* @__PURE__ */ __name((domElem, x1, y1, x2, y2, lineThickness) => {\n return domElem.append(\"line\").attr(\"x1\", x1).attr(\"y1\", y1).attr(\"x2\", x2).attr(\"y2\", y2).attr(\"stroke-width\", lineThickness).attr(\"class\", \"treeView-node-line\");\n}, \"positionLine\");\nvar drawTree = /* @__PURE__ */ __name((elem, root, config) => {\n let totalHeight = 0;\n let totalWidth = 0;\n const drawNode = /* @__PURE__ */ __name((elem2, node, config2, depth) => {\n const indent = depth * (config2.rowIndent + config2.paddingX);\n positionLabel(indent, totalHeight, node, elem2, config2);\n const { height, width } = node.BBox;\n positionLine(\n elem2,\n indent - config2.rowIndent,\n totalHeight + height / 2,\n indent,\n totalHeight + height / 2,\n config2.lineThickness\n );\n totalWidth = Math.max(totalWidth, indent + width);\n totalHeight += height;\n }, \"drawNode\");\n const processNode = /* @__PURE__ */ __name((node, depth = 0) => {\n drawNode(elem, node, config, depth);\n node.children.forEach((child) => {\n processNode(child, depth + 1);\n });\n const { x, y, height } = node.BBox;\n if (node.children.length) {\n const { y: endY, height: endHeight } = node.children[node.children.length - 1].BBox;\n positionLine(\n elem,\n x + config.paddingX,\n y + height,\n x + config.paddingX,\n endY + endHeight / 2 + config.lineThickness / 2,\n config.lineThickness\n );\n }\n }, \"processNode\");\n processNode(root);\n return { totalHeight, totalWidth };\n}, \"drawTree\");\nvar draw = /* @__PURE__ */ __name((text, id, _ver, diagObj) => {\n log.debug(\"Rendering treeView diagram\\n\" + text);\n const db2 = diagObj.db;\n const root = db2.getRoot();\n const config = db2.getConfig();\n const svg = selectSvgElement(id);\n const treeElem = svg.append(\"g\");\n treeElem.attr(\"class\", \"tree-view\");\n const { totalHeight, totalWidth } = drawTree(treeElem, root, config);\n svg.attr(\"viewBox\", `-${config.lineThickness / 2} 0 ${totalWidth} ${totalHeight}`);\n configureSvgSize(svg, totalHeight, totalWidth, config.useMaxWidth);\n}, \"draw\");\nvar renderer = {\n draw\n};\nvar renderer_default = renderer;\n\n// src/diagrams/treeView/styles.ts\nvar defaultTreeViewDiagramStyles = {\n labelFontSize: \"16px\",\n labelColor: \"black\",\n lineColor: \"black\"\n};\nvar styles = /* @__PURE__ */ __name(({\n treeView\n}) => {\n const { labelFontSize, labelColor, lineColor } = cleanAndMerge(\n defaultTreeViewDiagramStyles,\n treeView\n );\n return `\n .treeView-node-label {\n font-size: ${labelFontSize};\n fill: ${labelColor};\n }\n .treeView-node-line {\n stroke: ${lineColor};\n }\n `;\n}, \"styles\");\nvar styles_default = styles;\n\n// src/diagrams/treeView/diagram.ts\nvar diagram = {\n db: db_default,\n renderer: renderer_default,\n parser,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"x_google_ignoreList":[0],"mappings":";;;;;;;;AA8BA,IAAI,IAAQ,IAAI,SAAuB;CACrC,KAAK;CACL,OAAO,CACL;EACE,IAAI;EACJ,OAAO;EACP,MAAM;EACN,UAAU,EAAE;EACb,CACF;CACF,EAAE,EACC,IAAyB,wBAAa;CAExC,AADA,EAAM,OAAO,EACb,GAAO;GACN,QAAQ,EACP,IAA0B,wBACrB,EAAM,QAAQ,MAAM,IAC1B,UAAU,EACT,IAA2B,wBAAa,EAAM,QAAQ,KAAK,WAAW,EACtE,IAAgB,EAAsB,UA8BtC,IAAa;CAZf,OAAO;CACP,SAf4B,mBAAQ,GAAO,MAAS;EACpD,OAAO,KAAS,EAAM,QAAQ,MAAM,EAAM,QAAQ,MAAM,SAAS,GAAG,QAClE,EAAM,QAAQ,MAAM,KAAK;EAE3B,IAAM,IAAO;GACX,IAAI,EAAM,QAAQ;GAClB;GACA;GACA,UAAU,EAAE;GACb;EAED,AADA,EAAM,QAAQ,MAAM,EAAM,QAAQ,MAAM,SAAS,GAAG,SAAS,KAAK,EAAK,EACvE,EAAM,QAAQ,MAAM,KAAK,EAAK;IAC7B,UAGM;CACP;CACA;CACA,WArB+B,wBACxB,EAAc,GAAe,GAAW,CAAC,SAAS,EACxD,YAmBoB;CACrB;CACA;CACA;CACA;CACA;CACA;CAEiB,EAIf,IAA2B,mBAAQ,MAAQ;CAE7C,AADA,EAAiB,GAAK,EAAW,EACjC,EAAI,MAAM,KAAK,MAAS,EAAW,QAAQ,EAAK,SAAS,SAAS,EAAK,OAAO,GAAG,GAAG,EAAK,KAAK,CAAC;GAC9F,WAAW,EACV,IAAS,EACX,OAAuB,kBAAO,OAAO,MAAU;CAC7C,IAAM,IAAM,MAAM,EAAM,YAAY,EAAM;CAE1C,AADA,EAAI,MAAM,EAAI,EACd,EAAS,EAAI;GACZ,QAAQ,EACZ,EAGG,IAAgC,mBAAQ,GAAG,GAAG,GAAM,GAAS,MAAW;CAC1E,IAAM,IAAQ,EAAQ,OAAO,OAAO,CAAC,KAAK,EAAK,KAAK,CAAC,KAAK,qBAAqB,SAAS,CAAC,KAAK,SAAS,sBAAsB,EACvH,EAAE,QAAQ,GAAa,OAAO,MAAe,EAAM,MAAM,CAAC,SAAS,EACnE,IAAS,IAAc,EAAO,WAAW,GACzC,IAAQ,IAAa,EAAO,WAAW;CAG7C,AAFA,EAAM,KAAK,KAAK,IAAI,EAAO,SAAS,EACpC,EAAM,KAAK,KAAK,IAAI,IAAS,EAAE,EAC/B,EAAK,OAAO;EACV;EACA;EACA;EACA;EACD;GACA,gBAAgB,EACf,IAA+B,mBAAQ,GAAS,GAAI,GAAI,GAAI,GAAI,MAC3D,EAAQ,OAAO,OAAO,CAAC,KAAK,MAAM,EAAG,CAAC,KAAK,MAAM,EAAG,CAAC,KAAK,MAAM,EAAG,CAAC,KAAK,MAAM,EAAG,CAAC,KAAK,gBAAgB,EAAc,CAAC,KAAK,SAAS,qBAAqB,EAChK,eAAe,EACd,IAA2B,mBAAQ,GAAM,GAAM,MAAW;CAC5D,IAAI,IAAc,GACd,IAAa,GACX,IAA2B,mBAAQ,GAAO,GAAM,GAAS,MAAU;EACvE,IAAM,IAAS,KAAS,EAAQ,YAAY,EAAQ;EACpD,EAAc,GAAQ,GAAa,GAAM,GAAO,EAAQ;EACxD,IAAM,EAAE,WAAQ,aAAU,EAAK;EAU/B,AATA,EACE,GACA,IAAS,EAAQ,WACjB,IAAc,IAAS,GACvB,GACA,IAAc,IAAS,GACvB,EAAQ,cACT,EACD,IAAa,KAAK,IAAI,GAAY,IAAS,EAAM,EACjD,KAAe;IACd,WAAW,EACR,IAA8B,mBAAQ,GAAM,IAAQ,MAAM;EAE9D,AADA,EAAS,GAAM,GAAM,GAAQ,EAAM,EACnC,EAAK,SAAS,SAAS,MAAU;GAC/B,EAAY,GAAO,IAAQ,EAAE;IAC7B;EACF,IAAM,EAAE,MAAG,MAAG,cAAW,EAAK;EAC9B,IAAI,EAAK,SAAS,QAAQ;GACxB,IAAM,EAAE,GAAG,GAAM,QAAQ,MAAc,EAAK,SAAS,EAAK,SAAS,SAAS,GAAG;GAC/E,EACE,GACA,IAAI,EAAO,UACX,IAAI,GACJ,IAAI,EAAO,UACX,IAAO,IAAY,IAAI,EAAO,gBAAgB,GAC9C,EAAO,cACR;;IAEF,cAAc;CAEjB,OADA,EAAY,EAAK,EACV;EAAE;EAAa;EAAY;GACjC,WAAW,EAgBV,IAAmB,EAFrB,MAbyB,mBAAQ,GAAM,GAAI,GAAM,MAAY;CAC7D,EAAI,MAAM,iCAAiC,EAAK;CAChD,IAAM,IAAM,EAAQ,IACd,IAAO,EAAI,SAAS,EACpB,IAAS,EAAI,WAAW,EACxB,IAAM,EAAiB,EAAG,EAC1B,IAAW,EAAI,OAAO,IAAI;CAChC,EAAS,KAAK,SAAS,YAAY;CACnC,IAAM,EAAE,gBAAa,kBAAe,EAAS,GAAU,GAAM,EAAO;CAEpE,AADA,EAAI,KAAK,WAAW,IAAI,EAAO,gBAAgB,EAAE,KAAK,EAAW,GAAG,IAAc,EAClF,EAAiB,GAAK,GAAa,GAAY,EAAO,YAAY;GACjE,OAEG,EAEyB,EAG3B,IAA+B;CACjC,eAAe;CACf,YAAY;CACZ,WAAW;CACZ,EAqBG,IAAU;CACZ,IAAI;CACJ,UAAU;CACV;CACA,QAxB2B,mBAAQ,EACnC,kBACI;EACJ,IAAM,EAAE,kBAAe,eAAY,iBAAc,EAC/C,GACA,EACD;EACD,OAAO;;qBAEY,EAAc;gBACnB,EAAW;;;kBAGT,EAAU;;;IAGzB,SAQqB;CACvB"}