jekyll-ham 1.0.2 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (369) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +15 -6
  3. data/_layouts/default.html +6 -0
  4. data/_layouts/page.html +1 -1
  5. data/assets/bootstrap-icons.min.css +3 -3
  6. data/assets/fonts/bootstrap-icons.woff +0 -0
  7. data/assets/fonts/bootstrap-icons.woff2 +0 -0
  8. data/assets/mermaid/Diagram.d.ts +33 -0
  9. data/assets/mermaid/Tableau10-31042135.js +10 -0
  10. data/assets/mermaid/Tableau10-558cc280.js +9 -0
  11. data/assets/mermaid/__mocks__/mermaidAPI.d.ts +13 -0
  12. data/assets/mermaid/accessibility.d.ts +27 -0
  13. data/assets/mermaid/accessibility.spec.d.ts +1 -0
  14. data/assets/mermaid/arc-c0f908ab.js +148 -0
  15. data/assets/mermaid/arc-d1f6357e.js +86 -0
  16. data/assets/mermaid/array-2ff2c7a6.js +6 -0
  17. data/assets/mermaid/array-b7dcf730.js +6 -0
  18. data/assets/mermaid/assignWithDepth.d.ts +30 -0
  19. data/assets/mermaid/blockDiagram-5dc23a45.js +1230 -0
  20. data/assets/mermaid/blockDiagram-9f4a6865.js +1822 -0
  21. data/assets/mermaid/blockDiagram-efe38566.js +1818 -0
  22. data/assets/mermaid/c4Diagram-1e775db3.js +1579 -0
  23. data/assets/mermaid/c4Diagram-ae766693.js +2473 -0
  24. data/assets/mermaid/c4Diagram-af207393.js +2463 -0
  25. data/assets/mermaid/channel-ebbc4130.js +5 -0
  26. data/assets/mermaid/channel-f9001828.js +8 -0
  27. data/assets/mermaid/classDiagram-72b9c71d.js +356 -0
  28. data/assets/mermaid/classDiagram-f52caa06.js +220 -0
  29. data/assets/mermaid/classDiagram-fb54d2a0.js +363 -0
  30. data/assets/mermaid/classDiagram-v2-640c694e.js +206 -0
  31. data/assets/mermaid/classDiagram-v2-a2b738ad.js +298 -0
  32. data/assets/mermaid/classDiagram-v2-fedb80f6.js +290 -0
  33. data/assets/mermaid/clone-9ea6bfeb.js +8 -0
  34. data/assets/mermaid/clone-afc2f047.js +8 -0
  35. data/assets/mermaid/config.d.ts +98 -0
  36. data/assets/mermaid/config.spec.d.ts +1 -0
  37. data/assets/mermaid/config.type.d.ts +1534 -0
  38. data/assets/mermaid/createText-03b82060.js +2966 -0
  39. data/assets/mermaid/createText-b70fe78a.js +4929 -0
  40. data/assets/mermaid/createText-ca0c5216.js +251 -0
  41. data/assets/mermaid/dagre-wrapper/blockArrowHelper.d.ts +8 -0
  42. data/assets/mermaid/dagre-wrapper/clusters.d.ts +4 -0
  43. data/assets/mermaid/dagre-wrapper/createLabel.d.ts +9 -0
  44. data/assets/mermaid/dagre-wrapper/edgeMarker.d.ts +12 -0
  45. data/assets/mermaid/dagre-wrapper/edgeMarker.spec.d.ts +1 -0
  46. data/assets/mermaid/dagre-wrapper/edges.d.ts +14 -0
  47. data/assets/mermaid/dagre-wrapper/index.d.ts +1 -0
  48. data/assets/mermaid/dagre-wrapper/intersect/index.d.ts +13 -0
  49. data/assets/mermaid/dagre-wrapper/intersect/intersect-circle.d.ts +10 -0
  50. data/assets/mermaid/dagre-wrapper/intersect/intersect-ellipse.d.ts +11 -0
  51. data/assets/mermaid/dagre-wrapper/intersect/intersect-line.d.ts +13 -0
  52. data/assets/mermaid/dagre-wrapper/intersect/intersect-node.d.ts +6 -0
  53. data/assets/mermaid/dagre-wrapper/intersect/intersect-polygon.d.ts +10 -0
  54. data/assets/mermaid/dagre-wrapper/intersect/intersect-rect.d.ts +5 -0
  55. data/assets/mermaid/dagre-wrapper/markers.d.ts +2 -0
  56. data/assets/mermaid/dagre-wrapper/mermaid-graphlib.d.ts +8 -0
  57. data/assets/mermaid/dagre-wrapper/nodes.d.ts +4 -0
  58. data/assets/mermaid/dagre-wrapper/shapes/note.d.ts +2 -0
  59. data/assets/mermaid/dagre-wrapper/shapes/util.d.ts +14 -0
  60. data/assets/mermaid/defaultConfig.d.ts +12 -0
  61. data/assets/mermaid/diagram-api/comments.d.ts +6 -0
  62. data/assets/mermaid/diagram-api/comments.spec.d.ts +1 -0
  63. data/assets/mermaid/diagram-api/detectType.d.ts +42 -0
  64. data/assets/mermaid/diagram-api/diagram-orchestration.d.ts +1 -0
  65. data/assets/mermaid/diagram-api/diagram-orchestration.spec.d.ts +1 -0
  66. data/assets/mermaid/diagram-api/diagramAPI.d.ts +31 -0
  67. data/assets/mermaid/diagram-api/diagramAPI.spec.d.ts +1 -0
  68. data/assets/mermaid/diagram-api/frontmatter.d.ts +18 -0
  69. data/assets/mermaid/diagram-api/frontmatter.spec.d.ts +1 -0
  70. data/assets/mermaid/diagram-api/loadDiagram.d.ts +1 -0
  71. data/assets/mermaid/diagram-api/regexes.d.ts +3 -0
  72. data/assets/mermaid/diagram-api/types.d.ts +84 -0
  73. data/assets/mermaid/diagram.spec.d.ts +1 -0
  74. data/assets/mermaid/diagrams/block/blockDB.d.ts +54 -0
  75. data/assets/mermaid/diagrams/block/blockDetector.d.ts +3 -0
  76. data/assets/mermaid/diagrams/block/blockDiagram.d.ts +2 -0
  77. data/assets/mermaid/diagrams/block/blockRenderer.d.ts +15 -0
  78. data/assets/mermaid/diagrams/block/blockTypes.d.ts +36 -0
  79. data/assets/mermaid/diagrams/block/blockUtils.d.ts +1 -0
  80. data/assets/mermaid/diagrams/block/layout.d.ts +13 -0
  81. data/assets/mermaid/diagrams/block/layout.spec.d.ts +1 -0
  82. data/assets/mermaid/diagrams/block/parser/block.spec.d.ts +1 -0
  83. data/assets/mermaid/diagrams/block/renderHelpers.d.ts +10 -0
  84. data/assets/mermaid/diagrams/block/styles.d.ts +18 -0
  85. data/assets/mermaid/diagrams/c4/c4Db.d.ts +127 -0
  86. data/assets/mermaid/diagrams/c4/c4Detector.d.ts +3 -0
  87. data/assets/mermaid/diagrams/c4/c4Diagram.d.ts +2 -0
  88. data/assets/mermaid/diagrams/c4/c4Renderer.d.ts +12 -0
  89. data/assets/mermaid/diagrams/c4/styles.d.ts +2 -0
  90. data/assets/mermaid/diagrams/c4/svgDraw.d.ts +36 -0
  91. data/assets/mermaid/diagrams/class/classDb.d.ts +144 -0
  92. data/assets/mermaid/diagrams/class/classDetector-V2.d.ts +3 -0
  93. data/assets/mermaid/diagrams/class/classDetector.d.ts +3 -0
  94. data/assets/mermaid/diagrams/class/classDiagram-v2.d.ts +2 -0
  95. data/assets/mermaid/diagrams/class/classDiagram.d.ts +2 -0
  96. data/assets/mermaid/diagrams/class/classDiagram.spec.d.ts +1 -0
  97. data/assets/mermaid/diagrams/class/classRenderer-v2.d.ts +57 -0
  98. data/assets/mermaid/diagrams/class/classRenderer.d.ts +5 -0
  99. data/assets/mermaid/diagrams/class/classTypes.d.ts +78 -0
  100. data/assets/mermaid/diagrams/class/classTypes.spec.d.ts +1 -0
  101. data/assets/mermaid/diagrams/class/styles.d.ts +2 -0
  102. data/assets/mermaid/diagrams/class/svgDraw.d.ts +25 -0
  103. data/assets/mermaid/diagrams/common/common.d.ts +110 -0
  104. data/assets/mermaid/diagrams/common/common.spec.d.ts +1 -0
  105. data/assets/mermaid/diagrams/common/commonDb.d.ts +7 -0
  106. data/assets/mermaid/diagrams/common/commonTypes.d.ts +51 -0
  107. data/assets/mermaid/diagrams/common/svgDrawCommon.d.ts +15 -0
  108. data/assets/mermaid/diagrams/er/erDb.d.ts +49 -0
  109. data/assets/mermaid/diagrams/er/erDetector.d.ts +3 -0
  110. data/assets/mermaid/diagrams/er/erDiagram.d.ts +34 -0
  111. data/assets/mermaid/diagrams/er/erMarkers.d.ts +24 -0
  112. data/assets/mermaid/diagrams/er/erRenderer.d.ts +19 -0
  113. data/assets/mermaid/diagrams/er/erRenderer.spec.d.ts +1 -0
  114. data/assets/mermaid/diagrams/er/styles.d.ts +2 -0
  115. data/assets/mermaid/diagrams/error/errorDiagram.d.ts +3 -0
  116. data/assets/mermaid/diagrams/error/errorRenderer.d.ts +12 -0
  117. data/assets/mermaid/diagrams/flowchart/elk/detector.d.ts +3 -0
  118. data/assets/mermaid/diagrams/flowchart/elk/detector.spec.d.ts +1 -0
  119. data/assets/mermaid/diagrams/flowchart/elk/flowRenderer-elk.d.ts +10 -0
  120. data/assets/mermaid/diagrams/flowchart/elk/flowchart-elk-definition.d.ts +10 -0
  121. data/assets/mermaid/diagrams/flowchart/elk/render-utils.d.ts +5 -0
  122. data/assets/mermaid/diagrams/flowchart/elk/render-utils.spec.d.ts +1 -0
  123. data/assets/mermaid/diagrams/flowchart/elk/styles.d.ts +19 -0
  124. data/assets/mermaid/diagrams/flowchart/flowChartShapes.d.ts +9 -0
  125. data/assets/mermaid/diagrams/flowchart/flowDb.d.ts +87 -0
  126. data/assets/mermaid/diagrams/flowchart/flowDetector-v2.d.ts +3 -0
  127. data/assets/mermaid/diagrams/flowchart/flowDetector.d.ts +3 -0
  128. data/assets/mermaid/diagrams/flowchart/flowDiagram-v2.d.ts +57 -0
  129. data/assets/mermaid/diagrams/flowchart/flowDiagram.d.ts +57 -0
  130. data/assets/mermaid/diagrams/flowchart/flowRenderer-v2.d.ts +13 -0
  131. data/assets/mermaid/diagrams/flowchart/flowRenderer.d.ts +13 -0
  132. data/assets/mermaid/diagrams/flowchart/styles.d.ts +18 -0
  133. data/assets/mermaid/diagrams/gantt/ganttDb.d.ts +106 -0
  134. data/assets/mermaid/diagrams/gantt/ganttDb.spec.d.ts +1 -0
  135. data/assets/mermaid/diagrams/gantt/ganttDetector.d.ts +3 -0
  136. data/assets/mermaid/diagrams/gantt/ganttDiagram.d.ts +2 -0
  137. data/assets/mermaid/diagrams/gantt/ganttRenderer.d.ts +7 -0
  138. data/assets/mermaid/diagrams/gantt/styles.d.ts +2 -0
  139. data/assets/mermaid/diagrams/git/gitGraphAst.d.ts +61 -0
  140. data/assets/mermaid/diagrams/git/gitGraphDetector.d.ts +3 -0
  141. data/assets/mermaid/diagrams/git/gitGraphDiagram.d.ts +2 -0
  142. data/assets/mermaid/diagrams/git/gitGraphRenderer.d.ts +5 -0
  143. data/assets/mermaid/diagrams/git/styles.d.ts +2 -0
  144. data/assets/mermaid/diagrams/info/info.spec.d.ts +1 -0
  145. data/assets/mermaid/diagrams/info/infoDb.d.ts +5 -0
  146. data/assets/mermaid/diagrams/info/infoDetector.d.ts +2 -0
  147. data/assets/mermaid/diagrams/info/infoDiagram.d.ts +2 -0
  148. data/assets/mermaid/diagrams/info/infoRenderer.d.ts +4 -0
  149. data/assets/mermaid/diagrams/info/infoTypes.d.ts +9 -0
  150. data/assets/mermaid/diagrams/mindmap/detector.d.ts +3 -0
  151. data/assets/mermaid/diagrams/mindmap/mindmap-definition.d.ts +2 -0
  152. data/assets/mermaid/diagrams/mindmap/mindmap.spec.d.ts +1 -0
  153. data/assets/mermaid/diagrams/mindmap/mindmapDb.d.ts +30 -0
  154. data/assets/mermaid/diagrams/mindmap/mindmapRenderer.d.ts +21 -0
  155. data/assets/mermaid/diagrams/mindmap/mindmapTypes.d.ts +20 -0
  156. data/assets/mermaid/diagrams/mindmap/styles.d.ts +3 -0
  157. data/assets/mermaid/diagrams/mindmap/svgDraw.d.ts +13 -0
  158. data/assets/mermaid/diagrams/pie/pie.spec.d.ts +1 -0
  159. data/assets/mermaid/diagrams/pie/pieDb.d.ts +6 -0
  160. data/assets/mermaid/diagrams/pie/pieDetector.d.ts +2 -0
  161. data/assets/mermaid/diagrams/pie/pieDiagram.d.ts +2 -0
  162. data/assets/mermaid/diagrams/pie/pieRenderer.d.ts +13 -0
  163. data/assets/mermaid/diagrams/pie/pieStyles.d.ts +3 -0
  164. data/assets/mermaid/diagrams/pie/pieTypes.d.ts +53 -0
  165. data/assets/mermaid/diagrams/quadrant-chart/parser/quadrant.jison.spec.d.ts +1 -0
  166. data/assets/mermaid/diagrams/quadrant-chart/quadrantBuilder.d.ts +118 -0
  167. data/assets/mermaid/diagrams/quadrant-chart/quadrantDb.d.ts +38 -0
  168. data/assets/mermaid/diagrams/quadrant-chart/quadrantDetector.d.ts +3 -0
  169. data/assets/mermaid/diagrams/quadrant-chart/quadrantDiagram.d.ts +2 -0
  170. data/assets/mermaid/diagrams/quadrant-chart/quadrantRenderer.d.ts +6 -0
  171. data/assets/mermaid/diagrams/requirement/requirementDb.d.ts +70 -0
  172. data/assets/mermaid/diagrams/requirement/requirementDetector.d.ts +3 -0
  173. data/assets/mermaid/diagrams/requirement/requirementDiagram.d.ts +2 -0
  174. data/assets/mermaid/diagrams/requirement/requirementMarkers.d.ts +10 -0
  175. data/assets/mermaid/diagrams/requirement/requirementRenderer.d.ts +7 -0
  176. data/assets/mermaid/diagrams/requirement/styles.d.ts +2 -0
  177. data/assets/mermaid/diagrams/sankey/parser/sankey.spec.d.ts +1 -0
  178. data/assets/mermaid/diagrams/sankey/sankeyDB.d.ts +36 -0
  179. data/assets/mermaid/diagrams/sankey/sankeyDetector.d.ts +3 -0
  180. data/assets/mermaid/diagrams/sankey/sankeyDiagram.d.ts +2 -0
  181. data/assets/mermaid/diagrams/sankey/sankeyRenderer.d.ts +14 -0
  182. data/assets/mermaid/diagrams/sankey/sankeyUtils.d.ts +1 -0
  183. data/assets/mermaid/diagrams/sequence/sequenceDb.d.ts +153 -0
  184. data/assets/mermaid/diagrams/sequence/sequenceDetector.d.ts +3 -0
  185. data/assets/mermaid/diagrams/sequence/sequenceDiagram.d.ts +2 -0
  186. data/assets/mermaid/diagrams/sequence/sequenceRenderer.d.ts +202 -0
  187. data/assets/mermaid/diagrams/sequence/styles.d.ts +2 -0
  188. data/assets/mermaid/diagrams/sequence/svgDraw.d.ts +73 -0
  189. data/assets/mermaid/diagrams/state/id-cache.d.ts +11 -0
  190. data/assets/mermaid/diagrams/state/shapes.d.ts +14 -0
  191. data/assets/mermaid/diagrams/state/stateCommon.d.ts +22 -0
  192. data/assets/mermaid/diagrams/state/stateDb.d.ts +91 -0
  193. data/assets/mermaid/diagrams/state/stateDetector-V2.d.ts +3 -0
  194. data/assets/mermaid/diagrams/state/stateDetector.d.ts +3 -0
  195. data/assets/mermaid/diagrams/state/stateDiagram-v2.d.ts +2 -0
  196. data/assets/mermaid/diagrams/state/stateDiagram.d.ts +2 -0
  197. data/assets/mermaid/diagrams/state/stateRenderer-v2.d.ts +20 -0
  198. data/assets/mermaid/diagrams/state/stateRenderer.d.ts +7 -0
  199. data/assets/mermaid/diagrams/state/styles.d.ts +2 -0
  200. data/assets/mermaid/diagrams/timeline/detector.d.ts +3 -0
  201. data/assets/mermaid/diagrams/timeline/styles.d.ts +2 -0
  202. data/assets/mermaid/diagrams/timeline/svgDraw.d.ts +46 -0
  203. data/assets/mermaid/diagrams/timeline/timeline-definition.d.ts +10 -0
  204. data/assets/mermaid/diagrams/timeline/timelineDb.d.ts +20 -0
  205. data/assets/mermaid/diagrams/timeline/timelineRenderer.d.ts +19 -0
  206. data/assets/mermaid/diagrams/user-journey/journeyDb.d.ts +30 -0
  207. data/assets/mermaid/diagrams/user-journey/journeyDetector.d.ts +3 -0
  208. data/assets/mermaid/diagrams/user-journey/journeyDiagram.d.ts +2 -0
  209. data/assets/mermaid/diagrams/user-journey/journeyRenderer.d.ts +30 -0
  210. data/assets/mermaid/diagrams/user-journey/styles.d.ts +2 -0
  211. data/assets/mermaid/diagrams/user-journey/svgDraw.d.ts +20 -0
  212. data/assets/mermaid/diagrams/xychart/chartBuilder/components/axis/bandAxis.d.ts +12 -0
  213. data/assets/mermaid/diagrams/xychart/chartBuilder/components/axis/baseAxis.d.ts +38 -0
  214. data/assets/mermaid/diagrams/xychart/chartBuilder/components/axis/index.d.ts +12 -0
  215. data/assets/mermaid/diagrams/xychart/chartBuilder/components/axis/linearAxis.d.ts +11 -0
  216. data/assets/mermaid/diagrams/xychart/chartBuilder/components/chartTitle.d.ts +16 -0
  217. data/assets/mermaid/diagrams/xychart/chartBuilder/components/plot/barPlot.d.ts +12 -0
  218. data/assets/mermaid/diagrams/xychart/chartBuilder/components/plot/index.d.ts +20 -0
  219. data/assets/mermaid/diagrams/xychart/chartBuilder/components/plot/linePlot.d.ts +11 -0
  220. data/assets/mermaid/diagrams/xychart/chartBuilder/index.d.ts +5 -0
  221. data/assets/mermaid/diagrams/xychart/chartBuilder/interfaces.d.ts +132 -0
  222. data/assets/mermaid/diagrams/xychart/chartBuilder/orchestrator.d.ts +12 -0
  223. data/assets/mermaid/diagrams/xychart/chartBuilder/textDimensionCalculator.d.ts +10 -0
  224. data/assets/mermaid/diagrams/xychart/parser/xychart.jison.spec.d.ts +1 -0
  225. data/assets/mermaid/diagrams/xychart/xychartDb.d.ts +40 -0
  226. data/assets/mermaid/diagrams/xychart/xychartDetector.d.ts +3 -0
  227. data/assets/mermaid/diagrams/xychart/xychartDiagram.d.ts +2 -0
  228. data/assets/mermaid/diagrams/xychart/xychartRenderer.d.ts +6 -0
  229. data/assets/mermaid/docs/vite.config.d.ts +2 -0
  230. data/assets/mermaid/edges-066a5561.js +1840 -0
  231. data/assets/mermaid/edges-16357fde.js +1083 -0
  232. data/assets/mermaid/edges-ce5cfb7c.js +1840 -0
  233. data/assets/mermaid/erDiagram-09d1c15f.js +1176 -0
  234. data/assets/mermaid/erDiagram-543717f2.js +1321 -0
  235. data/assets/mermaid/erDiagram-c7ff1bec.js +931 -0
  236. data/assets/mermaid/errors.d.ts +3 -0
  237. data/assets/mermaid/flowDb-9a89ea33.js +1126 -0
  238. data/assets/mermaid/flowDb-ba9bd7fa.js +1713 -0
  239. data/assets/mermaid/flowDb-c1833063.js +1714 -0
  240. data/assets/mermaid/flowDiagram-aadb13b0.js +797 -0
  241. data/assets/mermaid/flowDiagram-b222e15a.js +614 -0
  242. data/assets/mermaid/flowDiagram-b5e7ba30.js +1278 -0
  243. data/assets/mermaid/flowDiagram-v2-13329dc7.js +40 -0
  244. data/assets/mermaid/flowDiagram-v2-54711e03.js +32 -0
  245. data/assets/mermaid/flowDiagram-v2-f2119625.js +25 -0
  246. data/assets/mermaid/flowchart-elk-definition-2d49707c.js +93397 -0
  247. data/assets/mermaid/flowchart-elk-definition-ae0efee6.js +814 -0
  248. data/assets/mermaid/flowchart-elk-definition-cf813a97.js +48407 -0
  249. data/assets/mermaid/ganttDiagram-12cf43db.js +3445 -0
  250. data/assets/mermaid/ganttDiagram-3c2fde2b.js +2501 -0
  251. data/assets/mermaid/ganttDiagram-b62c793e.js +2061 -0
  252. data/assets/mermaid/gitGraphDiagram-942e62fe.js +1800 -0
  253. data/assets/mermaid/gitGraphDiagram-b9392a12.js +1790 -0
  254. data/assets/mermaid/gitGraphDiagram-c3a0619c.js +1264 -0
  255. data/assets/mermaid/graph-0ee63739.js +881 -0
  256. data/assets/mermaid/graph-fe24fab6.js +1285 -0
  257. data/assets/mermaid/index-01f381cb.js +622 -0
  258. data/assets/mermaid/index-bb6d8841.js +373 -0
  259. data/assets/mermaid/index-fc479858.js +663 -0
  260. data/assets/mermaid/infoDiagram-2f5c50c0.js +319 -0
  261. data/assets/mermaid/infoDiagram-94cd232f.js +520 -0
  262. data/assets/mermaid/infoDiagram-d0d5c9bd.js +510 -0
  263. data/assets/mermaid/init-cc95ec8e.js +16 -0
  264. data/assets/mermaid/init-f9637058.js +16 -0
  265. data/assets/mermaid/interactionDb.d.ts +2 -0
  266. data/assets/mermaid/journeyDiagram-14fe341a.js +804 -0
  267. data/assets/mermaid/journeyDiagram-6625b456.js +1191 -0
  268. data/assets/mermaid/journeyDiagram-b56e6921.js +1183 -0
  269. data/assets/mermaid/katex-d90b6d29.js +11624 -0
  270. data/assets/mermaid/katex-ffb0e8f1.js +14432 -0
  271. data/assets/mermaid/layout-163b9689.js +2314 -0
  272. data/assets/mermaid/layout-fd473db2.js +1536 -0
  273. data/assets/mermaid/line-24d93f1b.js +34 -0
  274. data/assets/mermaid/line-87f517ef.js +50 -0
  275. data/assets/mermaid/linear-0ad15847.js +595 -0
  276. data/assets/mermaid/linear-9bcf74c4.js +447 -0
  277. data/assets/mermaid/logger.d.ts +9 -0
  278. data/assets/mermaid/mermaid-6dc72991.js +6461 -0
  279. data/assets/mermaid/mermaid-9f2aa176.js +8112 -0
  280. data/assets/mermaid/mermaid-dcacb631.js +12793 -0
  281. data/assets/mermaid/mermaid.core.mjs +14 -0
  282. data/assets/mermaid/mermaid.d.ts +146 -0
  283. data/assets/mermaid/mermaid.esm.min.mjs +4 -0
  284. data/assets/mermaid/mermaid.esm.mjs +4 -0
  285. data/assets/mermaid/mermaid.js +195755 -0
  286. data/assets/mermaid/mermaid.min.js +2029 -0
  287. data/assets/mermaid/mermaid.spec.d.ts +1 -0
  288. data/assets/mermaid/mermaidAPI.d.ts +170 -0
  289. data/assets/mermaid/mermaidAPI.spec.d.ts +1 -0
  290. data/assets/mermaid/mindmap-definition-307c710a.js +1177 -0
  291. data/assets/mermaid/mindmap-definition-696ddea4.js +32342 -0
  292. data/assets/mermaid/mindmap-definition-9399c7e6.js +18760 -0
  293. data/assets/mermaid/ordinal-475e0c0c.js +82 -0
  294. data/assets/mermaid/ordinal-5695958c.js +65 -0
  295. data/assets/mermaid/path-39bad7e2.js +118 -0
  296. data/assets/mermaid/path-428ebac9.js +91 -0
  297. data/assets/mermaid/pieDiagram-828dae43.js +502 -0
  298. data/assets/mermaid/pieDiagram-bb1d19e5.js +722 -0
  299. data/assets/mermaid/pieDiagram-e854eaf0.js +772 -0
  300. data/assets/mermaid/preprocess.d.ts +10 -0
  301. data/assets/mermaid/quadrantDiagram-25a9848b.js +1199 -0
  302. data/assets/mermaid/quadrantDiagram-5fa00455.js +904 -0
  303. data/assets/mermaid/quadrantDiagram-c759a472.js +1207 -0
  304. data/assets/mermaid/rendering-util/createText.d.ts +11 -0
  305. data/assets/mermaid/rendering-util/handle-markdown-text.d.ts +6 -0
  306. data/assets/mermaid/rendering-util/handle-markdown-text.spec.d.ts +1 -0
  307. data/assets/mermaid/rendering-util/selectSvgElement.d.ts +8 -0
  308. data/assets/mermaid/rendering-util/splitText.d.ts +24 -0
  309. data/assets/mermaid/rendering-util/splitText.spec.d.ts +1 -0
  310. data/assets/mermaid/rendering-util/uid.d.ts +8 -0
  311. data/assets/mermaid/requirementDiagram-03163dc4.js +769 -0
  312. data/assets/mermaid/requirementDiagram-87253d64.js +1098 -0
  313. data/assets/mermaid/requirementDiagram-a721e157.js +1091 -0
  314. data/assets/mermaid/sankeyDiagram-33525efb.js +1198 -0
  315. data/assets/mermaid/sankeyDiagram-52ec8976.js +818 -0
  316. data/assets/mermaid/sankeyDiagram-707fac0f.js +660 -0
  317. data/assets/mermaid/sequenceDiagram-6894f283.js +3346 -0
  318. data/assets/mermaid/sequenceDiagram-9813c129.js +3336 -0
  319. data/assets/mermaid/sequenceDiagram-b517d154.js +2234 -0
  320. data/assets/mermaid/setupGraphViewbox.d.ts +3 -0
  321. data/assets/mermaid/stateDiagram-5dee940d.js +474 -0
  322. data/assets/mermaid/stateDiagram-5ec31577.js +467 -0
  323. data/assets/mermaid/stateDiagram-fca82b5b.js +275 -0
  324. data/assets/mermaid/stateDiagram-v2-1992cada.js +333 -0
  325. data/assets/mermaid/stateDiagram-v2-992e82a1.js +325 -0
  326. data/assets/mermaid/stateDiagram-v2-ed04200a.js +190 -0
  327. data/assets/mermaid/styles-0784dbeb.js +1363 -0
  328. data/assets/mermaid/styles-11e81fdd.js +1089 -0
  329. data/assets/mermaid/styles-36a1a2e8.js +1483 -0
  330. data/assets/mermaid/styles-483fbfea.js +509 -0
  331. data/assets/mermaid/styles-727cdd61.js +571 -0
  332. data/assets/mermaid/styles-b83b31c9.js +1484 -0
  333. data/assets/mermaid/styles-cacbff60.js +960 -0
  334. data/assets/mermaid/styles-e75131e4.js +433 -0
  335. data/assets/mermaid/styles-f80da881.js +1363 -0
  336. data/assets/mermaid/styles.d.ts +12 -0
  337. data/assets/mermaid/styles.spec.d.ts +1 -0
  338. data/assets/mermaid/svgDrawCommon-5e1cfd1d.js +101 -0
  339. data/assets/mermaid/svgDrawCommon-d6ab583c.js +100 -0
  340. data/assets/mermaid/svgDrawCommon-ecc5f780.js +64 -0
  341. data/assets/mermaid/tests/MockedD3.d.ts +45 -0
  342. data/assets/mermaid/tests/setup.d.ts +1 -0
  343. data/assets/mermaid/tests/util.d.ts +3 -0
  344. data/assets/mermaid/themes/erDiagram-oldHardcodedValues.d.ts +7 -0
  345. data/assets/mermaid/themes/index.d.ts +24 -0
  346. data/assets/mermaid/themes/theme-base.d.ts +189 -0
  347. data/assets/mermaid/themes/theme-dark.d.ts +177 -0
  348. data/assets/mermaid/themes/theme-default.d.ts +188 -0
  349. data/assets/mermaid/themes/theme-forest.d.ts +185 -0
  350. data/assets/mermaid/themes/theme-helpers.d.ts +1 -0
  351. data/assets/mermaid/themes/theme-neutral.d.ts +182 -0
  352. data/assets/mermaid/timeline-definition-23ce0e2e.js +1211 -0
  353. data/assets/mermaid/timeline-definition-4ee9bff4.js +795 -0
  354. data/assets/mermaid/timeline-definition-bf702344.js +1219 -0
  355. data/assets/mermaid/types.d.ts +31 -0
  356. data/assets/mermaid/utils/imperativeState.d.ts +32 -0
  357. data/assets/mermaid/utils/imperativeState.spec.d.ts +1 -0
  358. data/assets/mermaid/utils/lineWithOffset.d.ts +5 -0
  359. data/assets/mermaid/utils/sanitizeDirective.d.ts +7 -0
  360. data/assets/mermaid/utils/subGraphTitleMargins.d.ts +8 -0
  361. data/assets/mermaid/utils/subGraphTitleMargins.spec.d.ts +1 -0
  362. data/assets/mermaid/utils.d.ts +286 -0
  363. data/assets/mermaid/utils.spec.d.ts +1 -0
  364. data/assets/mermaid/xychartDiagram-de2e5521.js +1800 -0
  365. data/assets/mermaid/xychartDiagram-e5e6b652.js +1284 -0
  366. data/assets/mermaid/xychartDiagram-f11f50a6.js +1745 -0
  367. data/assets/tables.css +23 -0
  368. data/assets/toURI.js +142 -0
  369. metadata +368 -7
@@ -0,0 +1,622 @@
1
+ import { layout } from "dagre-d3-es/src/dagre/index.js";
2
+ import * as graphlibJson from "dagre-d3-es/src/graphlib/json.js";
3
+ import { c as createLabel, g as getSubGraphTitleMargins, i as intersectRect, a as insertMarkers, b as clear$2, d as clear$3, u as updateNodeBounds, s as setNodeElem, e as insertNode, f as insertEdgeLabel, p as positionNode, h as insertEdge, j as positionEdgeLabel } from "./edges-066a5561.js";
4
+ import { l as log, c as getConfig, m as evaluate } from "./mermaid-6dc72991.js";
5
+ import * as graphlib from "dagre-d3-es/src/graphlib/index.js";
6
+ import { a as createText } from "./createText-ca0c5216.js";
7
+ import { select } from "d3";
8
+ let clusterDb = {};
9
+ let descendants = {};
10
+ let parents = {};
11
+ const clear$1 = () => {
12
+ descendants = {};
13
+ parents = {};
14
+ clusterDb = {};
15
+ };
16
+ const isDescendant = (id, ancestorId) => {
17
+ log.trace("In isDescendant", ancestorId, " ", id, " = ", descendants[ancestorId].includes(id));
18
+ if (descendants[ancestorId].includes(id)) {
19
+ return true;
20
+ }
21
+ return false;
22
+ };
23
+ const edgeInCluster = (edge, clusterId) => {
24
+ log.info("Descendants of ", clusterId, " is ", descendants[clusterId]);
25
+ log.info("Edge is ", edge);
26
+ if (edge.v === clusterId) {
27
+ return false;
28
+ }
29
+ if (edge.w === clusterId) {
30
+ return false;
31
+ }
32
+ if (!descendants[clusterId]) {
33
+ log.debug("Tilt, ", clusterId, ",not in descendants");
34
+ return false;
35
+ }
36
+ return descendants[clusterId].includes(edge.v) || isDescendant(edge.v, clusterId) || isDescendant(edge.w, clusterId) || descendants[clusterId].includes(edge.w);
37
+ };
38
+ const copy = (clusterId, graph, newGraph, rootId) => {
39
+ log.warn(
40
+ "Copying children of ",
41
+ clusterId,
42
+ "root",
43
+ rootId,
44
+ "data",
45
+ graph.node(clusterId),
46
+ rootId
47
+ );
48
+ const nodes = graph.children(clusterId) || [];
49
+ if (clusterId !== rootId) {
50
+ nodes.push(clusterId);
51
+ }
52
+ log.warn("Copying (nodes) clusterId", clusterId, "nodes", nodes);
53
+ nodes.forEach((node) => {
54
+ if (graph.children(node).length > 0) {
55
+ copy(node, graph, newGraph, rootId);
56
+ } else {
57
+ const data = graph.node(node);
58
+ log.info("cp ", node, " to ", rootId, " with parent ", clusterId);
59
+ newGraph.setNode(node, data);
60
+ if (rootId !== graph.parent(node)) {
61
+ log.warn("Setting parent", node, graph.parent(node));
62
+ newGraph.setParent(node, graph.parent(node));
63
+ }
64
+ if (clusterId !== rootId && node !== clusterId) {
65
+ log.debug("Setting parent", node, clusterId);
66
+ newGraph.setParent(node, clusterId);
67
+ } else {
68
+ log.info("In copy ", clusterId, "root", rootId, "data", graph.node(clusterId), rootId);
69
+ log.debug(
70
+ "Not Setting parent for node=",
71
+ node,
72
+ "cluster!==rootId",
73
+ clusterId !== rootId,
74
+ "node!==clusterId",
75
+ node !== clusterId
76
+ );
77
+ }
78
+ const edges = graph.edges(node);
79
+ log.debug("Copying Edges", edges);
80
+ edges.forEach((edge) => {
81
+ log.info("Edge", edge);
82
+ const data2 = graph.edge(edge.v, edge.w, edge.name);
83
+ log.info("Edge data", data2, rootId);
84
+ try {
85
+ if (edgeInCluster(edge, rootId)) {
86
+ log.info("Copying as ", edge.v, edge.w, data2, edge.name);
87
+ newGraph.setEdge(edge.v, edge.w, data2, edge.name);
88
+ log.info("newGraph edges ", newGraph.edges(), newGraph.edge(newGraph.edges()[0]));
89
+ } else {
90
+ log.info(
91
+ "Skipping copy of edge ",
92
+ edge.v,
93
+ "-->",
94
+ edge.w,
95
+ " rootId: ",
96
+ rootId,
97
+ " clusterId:",
98
+ clusterId
99
+ );
100
+ }
101
+ } catch (e) {
102
+ log.error(e);
103
+ }
104
+ });
105
+ }
106
+ log.debug("Removing node", node);
107
+ graph.removeNode(node);
108
+ });
109
+ };
110
+ const extractDescendants = (id, graph) => {
111
+ const children = graph.children(id);
112
+ let res = [...children];
113
+ for (const child of children) {
114
+ parents[child] = id;
115
+ res = [...res, ...extractDescendants(child, graph)];
116
+ }
117
+ return res;
118
+ };
119
+ const findNonClusterChild = (id, graph) => {
120
+ log.trace("Searching", id);
121
+ const children = graph.children(id);
122
+ log.trace("Searching children of id ", id, children);
123
+ if (children.length < 1) {
124
+ log.trace("This is a valid node", id);
125
+ return id;
126
+ }
127
+ for (const child of children) {
128
+ const _id = findNonClusterChild(child, graph);
129
+ if (_id) {
130
+ log.trace("Found replacement for", id, " => ", _id);
131
+ return _id;
132
+ }
133
+ }
134
+ };
135
+ const getAnchorId = (id) => {
136
+ if (!clusterDb[id]) {
137
+ return id;
138
+ }
139
+ if (!clusterDb[id].externalConnections) {
140
+ return id;
141
+ }
142
+ if (clusterDb[id]) {
143
+ return clusterDb[id].id;
144
+ }
145
+ return id;
146
+ };
147
+ const adjustClustersAndEdges = (graph, depth) => {
148
+ if (!graph || depth > 10) {
149
+ log.debug("Opting out, no graph ");
150
+ return;
151
+ } else {
152
+ log.debug("Opting in, graph ");
153
+ }
154
+ graph.nodes().forEach(function(id) {
155
+ const children = graph.children(id);
156
+ if (children.length > 0) {
157
+ log.warn(
158
+ "Cluster identified",
159
+ id,
160
+ " Replacement id in edges: ",
161
+ findNonClusterChild(id, graph)
162
+ );
163
+ descendants[id] = extractDescendants(id, graph);
164
+ clusterDb[id] = { id: findNonClusterChild(id, graph), clusterData: graph.node(id) };
165
+ }
166
+ });
167
+ graph.nodes().forEach(function(id) {
168
+ const children = graph.children(id);
169
+ const edges = graph.edges();
170
+ if (children.length > 0) {
171
+ log.debug("Cluster identified", id, descendants);
172
+ edges.forEach((edge) => {
173
+ if (edge.v !== id && edge.w !== id) {
174
+ const d1 = isDescendant(edge.v, id);
175
+ const d2 = isDescendant(edge.w, id);
176
+ if (d1 ^ d2) {
177
+ log.warn("Edge: ", edge, " leaves cluster ", id);
178
+ log.warn("Descendants of XXX ", id, ": ", descendants[id]);
179
+ clusterDb[id].externalConnections = true;
180
+ }
181
+ }
182
+ });
183
+ } else {
184
+ log.debug("Not a cluster ", id, descendants);
185
+ }
186
+ });
187
+ for (let id of Object.keys(clusterDb)) {
188
+ const nonClusterChild = clusterDb[id].id;
189
+ const parent = graph.parent(nonClusterChild);
190
+ if (parent !== id && clusterDb[parent] && !clusterDb[parent].externalConnections) {
191
+ clusterDb[id].id = parent;
192
+ }
193
+ }
194
+ graph.edges().forEach(function(e) {
195
+ const edge = graph.edge(e);
196
+ log.warn("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e));
197
+ log.warn("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(graph.edge(e)));
198
+ let v = e.v;
199
+ let w = e.w;
200
+ log.warn(
201
+ "Fix XXX",
202
+ clusterDb,
203
+ "ids:",
204
+ e.v,
205
+ e.w,
206
+ "Translating: ",
207
+ clusterDb[e.v],
208
+ " --- ",
209
+ clusterDb[e.w]
210
+ );
211
+ if (clusterDb[e.v] && clusterDb[e.w] && clusterDb[e.v] === clusterDb[e.w]) {
212
+ log.warn("Fixing and trixing link to self - removing XXX", e.v, e.w, e.name);
213
+ log.warn("Fixing and trixing - removing XXX", e.v, e.w, e.name);
214
+ v = getAnchorId(e.v);
215
+ w = getAnchorId(e.w);
216
+ graph.removeEdge(e.v, e.w, e.name);
217
+ const specialId = e.w + "---" + e.v;
218
+ graph.setNode(specialId, {
219
+ domId: specialId,
220
+ id: specialId,
221
+ labelStyle: "",
222
+ labelText: edge.label,
223
+ padding: 0,
224
+ shape: "labelRect",
225
+ style: ""
226
+ });
227
+ const edge1 = structuredClone(edge);
228
+ const edge2 = structuredClone(edge);
229
+ edge1.label = "";
230
+ edge1.arrowTypeEnd = "none";
231
+ edge2.label = "";
232
+ edge1.fromCluster = e.v;
233
+ edge2.toCluster = e.v;
234
+ graph.setEdge(v, specialId, edge1, e.name + "-cyclic-special");
235
+ graph.setEdge(specialId, w, edge2, e.name + "-cyclic-special");
236
+ } else if (clusterDb[e.v] || clusterDb[e.w]) {
237
+ log.warn("Fixing and trixing - removing XXX", e.v, e.w, e.name);
238
+ v = getAnchorId(e.v);
239
+ w = getAnchorId(e.w);
240
+ graph.removeEdge(e.v, e.w, e.name);
241
+ if (v !== e.v) {
242
+ const parent = graph.parent(v);
243
+ clusterDb[parent].externalConnections = true;
244
+ edge.fromCluster = e.v;
245
+ }
246
+ if (w !== e.w) {
247
+ const parent = graph.parent(w);
248
+ clusterDb[parent].externalConnections = true;
249
+ edge.toCluster = e.w;
250
+ }
251
+ log.warn("Fix Replacing with XXX", v, w, e.name);
252
+ graph.setEdge(v, w, edge, e.name);
253
+ }
254
+ });
255
+ log.warn("Adjusted Graph", graphlibJson.write(graph));
256
+ extractor(graph, 0);
257
+ log.trace(clusterDb);
258
+ };
259
+ const extractor = (graph, depth) => {
260
+ log.warn("extractor - ", depth, graphlibJson.write(graph), graph.children("D"));
261
+ if (depth > 10) {
262
+ log.error("Bailing out");
263
+ return;
264
+ }
265
+ let nodes = graph.nodes();
266
+ let hasChildren = false;
267
+ for (const node of nodes) {
268
+ const children = graph.children(node);
269
+ hasChildren = hasChildren || children.length > 0;
270
+ }
271
+ if (!hasChildren) {
272
+ log.debug("Done, no node has children", graph.nodes());
273
+ return;
274
+ }
275
+ log.debug("Nodes = ", nodes, depth);
276
+ for (const node of nodes) {
277
+ log.debug(
278
+ "Extracting node",
279
+ node,
280
+ clusterDb,
281
+ clusterDb[node] && !clusterDb[node].externalConnections,
282
+ !graph.parent(node),
283
+ graph.node(node),
284
+ graph.children("D"),
285
+ " Depth ",
286
+ depth
287
+ );
288
+ if (!clusterDb[node]) {
289
+ log.debug("Not a cluster", node, depth);
290
+ } else if (!clusterDb[node].externalConnections && // !graph.parent(node) &&
291
+ graph.children(node) && graph.children(node).length > 0) {
292
+ log.warn(
293
+ "Cluster without external connections, without a parent and with children",
294
+ node,
295
+ depth
296
+ );
297
+ const graphSettings = graph.graph();
298
+ let dir = graphSettings.rankdir === "TB" ? "LR" : "TB";
299
+ if (clusterDb[node] && clusterDb[node].clusterData && clusterDb[node].clusterData.dir) {
300
+ dir = clusterDb[node].clusterData.dir;
301
+ log.warn("Fixing dir", clusterDb[node].clusterData.dir, dir);
302
+ }
303
+ const clusterGraph = new graphlib.Graph({
304
+ multigraph: true,
305
+ compound: true
306
+ }).setGraph({
307
+ rankdir: dir,
308
+ // Todo: set proper spacing
309
+ nodesep: 50,
310
+ ranksep: 50,
311
+ marginx: 8,
312
+ marginy: 8
313
+ }).setDefaultEdgeLabel(function() {
314
+ return {};
315
+ });
316
+ log.warn("Old graph before copy", graphlibJson.write(graph));
317
+ copy(node, graph, clusterGraph, node);
318
+ graph.setNode(node, {
319
+ clusterNode: true,
320
+ id: node,
321
+ clusterData: clusterDb[node].clusterData,
322
+ labelText: clusterDb[node].labelText,
323
+ graph: clusterGraph
324
+ });
325
+ log.warn("New graph after copy node: (", node, ")", graphlibJson.write(clusterGraph));
326
+ log.debug("Old graph after copy", graphlibJson.write(graph));
327
+ } else {
328
+ log.warn(
329
+ "Cluster ** ",
330
+ node,
331
+ " **not meeting the criteria !externalConnections:",
332
+ !clusterDb[node].externalConnections,
333
+ " no parent: ",
334
+ !graph.parent(node),
335
+ " children ",
336
+ graph.children(node) && graph.children(node).length > 0,
337
+ graph.children("D"),
338
+ depth
339
+ );
340
+ log.debug(clusterDb);
341
+ }
342
+ }
343
+ nodes = graph.nodes();
344
+ log.warn("New list of nodes", nodes);
345
+ for (const node of nodes) {
346
+ const data = graph.node(node);
347
+ log.warn(" Now next level", node, data);
348
+ if (data.clusterNode) {
349
+ extractor(data.graph, depth + 1);
350
+ }
351
+ }
352
+ };
353
+ const sorter = (graph, nodes) => {
354
+ if (nodes.length === 0) {
355
+ return [];
356
+ }
357
+ let result = Object.assign(nodes);
358
+ nodes.forEach((node) => {
359
+ const children = graph.children(node);
360
+ const sorted = sorter(graph, children);
361
+ result = [...result, ...sorted];
362
+ });
363
+ return result;
364
+ };
365
+ const sortNodesByHierarchy = (graph) => sorter(graph, graph.children());
366
+ const rect = (parent, node) => {
367
+ log.info("Creating subgraph rect for ", node.id, node);
368
+ const siteConfig = getConfig();
369
+ const shapeSvg = parent.insert("g").attr("class", "cluster" + (node.class ? " " + node.class : "")).attr("id", node.id);
370
+ const rect2 = shapeSvg.insert("rect", ":first-child");
371
+ const useHtmlLabels = evaluate(siteConfig.flowchart.htmlLabels);
372
+ const label = shapeSvg.insert("g").attr("class", "cluster-label");
373
+ const text = node.labelType === "markdown" ? createText(label, node.labelText, { style: node.labelStyle, useHtmlLabels }) : label.node().appendChild(createLabel(node.labelText, node.labelStyle, void 0, true));
374
+ let bbox = text.getBBox();
375
+ if (evaluate(siteConfig.flowchart.htmlLabels)) {
376
+ const div = text.children[0];
377
+ const dv = select(text);
378
+ bbox = div.getBoundingClientRect();
379
+ dv.attr("width", bbox.width);
380
+ dv.attr("height", bbox.height);
381
+ }
382
+ const padding = 0 * node.padding;
383
+ const halfPadding = padding / 2;
384
+ const width = node.width <= bbox.width + padding ? bbox.width + padding : node.width;
385
+ if (node.width <= bbox.width + padding) {
386
+ node.diff = (bbox.width - node.width) / 2 - node.padding / 2;
387
+ } else {
388
+ node.diff = -node.padding / 2;
389
+ }
390
+ log.trace("Data ", node, JSON.stringify(node));
391
+ rect2.attr("style", node.style).attr("rx", node.rx).attr("ry", node.ry).attr("x", node.x - width / 2).attr("y", node.y - node.height / 2 - halfPadding).attr("width", width).attr("height", node.height + padding);
392
+ const { subGraphTitleTopMargin } = getSubGraphTitleMargins(siteConfig);
393
+ if (useHtmlLabels) {
394
+ label.attr(
395
+ "transform",
396
+ // This puts the label on top of the box instead of inside it
397
+ `translate(${node.x - bbox.width / 2}, ${node.y - node.height / 2 + subGraphTitleTopMargin})`
398
+ );
399
+ } else {
400
+ label.attr(
401
+ "transform",
402
+ // This puts the label on top of the box instead of inside it
403
+ `translate(${node.x}, ${node.y - node.height / 2 + subGraphTitleTopMargin})`
404
+ );
405
+ }
406
+ const rectBox = rect2.node().getBBox();
407
+ node.width = rectBox.width;
408
+ node.height = rectBox.height;
409
+ node.intersect = function(point) {
410
+ return intersectRect(node, point);
411
+ };
412
+ return shapeSvg;
413
+ };
414
+ const noteGroup = (parent, node) => {
415
+ const shapeSvg = parent.insert("g").attr("class", "note-cluster").attr("id", node.id);
416
+ const rect2 = shapeSvg.insert("rect", ":first-child");
417
+ const padding = 0 * node.padding;
418
+ const halfPadding = padding / 2;
419
+ rect2.attr("rx", node.rx).attr("ry", node.ry).attr("x", node.x - node.width / 2 - halfPadding).attr("y", node.y - node.height / 2 - halfPadding).attr("width", node.width + padding).attr("height", node.height + padding).attr("fill", "none");
420
+ const rectBox = rect2.node().getBBox();
421
+ node.width = rectBox.width;
422
+ node.height = rectBox.height;
423
+ node.intersect = function(point) {
424
+ return intersectRect(node, point);
425
+ };
426
+ return shapeSvg;
427
+ };
428
+ const roundedWithTitle = (parent, node) => {
429
+ const siteConfig = getConfig();
430
+ const shapeSvg = parent.insert("g").attr("class", node.classes).attr("id", node.id);
431
+ const rect2 = shapeSvg.insert("rect", ":first-child");
432
+ const label = shapeSvg.insert("g").attr("class", "cluster-label");
433
+ const innerRect = shapeSvg.append("rect");
434
+ const text = label.node().appendChild(createLabel(node.labelText, node.labelStyle, void 0, true));
435
+ let bbox = text.getBBox();
436
+ if (evaluate(siteConfig.flowchart.htmlLabels)) {
437
+ const div = text.children[0];
438
+ const dv = select(text);
439
+ bbox = div.getBoundingClientRect();
440
+ dv.attr("width", bbox.width);
441
+ dv.attr("height", bbox.height);
442
+ }
443
+ bbox = text.getBBox();
444
+ const padding = 0 * node.padding;
445
+ const halfPadding = padding / 2;
446
+ const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width;
447
+ if (node.width <= bbox.width + node.padding) {
448
+ node.diff = (bbox.width + node.padding * 0 - node.width) / 2;
449
+ } else {
450
+ node.diff = -node.padding / 2;
451
+ }
452
+ rect2.attr("class", "outer").attr("x", node.x - width / 2 - halfPadding).attr("y", node.y - node.height / 2 - halfPadding).attr("width", width + padding).attr("height", node.height + padding);
453
+ innerRect.attr("class", "inner").attr("x", node.x - width / 2 - halfPadding).attr("y", node.y - node.height / 2 - halfPadding + bbox.height - 1).attr("width", width + padding).attr("height", node.height + padding - bbox.height - 3);
454
+ const { subGraphTitleTopMargin } = getSubGraphTitleMargins(siteConfig);
455
+ label.attr(
456
+ "transform",
457
+ `translate(${node.x - bbox.width / 2}, ${node.y - node.height / 2 - node.padding / 3 + (evaluate(siteConfig.flowchart.htmlLabels) ? 5 : 3) + subGraphTitleTopMargin})`
458
+ );
459
+ const rectBox = rect2.node().getBBox();
460
+ node.height = rectBox.height;
461
+ node.intersect = function(point) {
462
+ return intersectRect(node, point);
463
+ };
464
+ return shapeSvg;
465
+ };
466
+ const divider = (parent, node) => {
467
+ const shapeSvg = parent.insert("g").attr("class", node.classes).attr("id", node.id);
468
+ const rect2 = shapeSvg.insert("rect", ":first-child");
469
+ const padding = 0 * node.padding;
470
+ const halfPadding = padding / 2;
471
+ rect2.attr("class", "divider").attr("x", node.x - node.width / 2 - halfPadding).attr("y", node.y - node.height / 2).attr("width", node.width + padding).attr("height", node.height + padding);
472
+ const rectBox = rect2.node().getBBox();
473
+ node.width = rectBox.width;
474
+ node.height = rectBox.height;
475
+ node.diff = -node.padding / 2;
476
+ node.intersect = function(point) {
477
+ return intersectRect(node, point);
478
+ };
479
+ return shapeSvg;
480
+ };
481
+ const shapes = { rect, roundedWithTitle, noteGroup, divider };
482
+ let clusterElems = {};
483
+ const insertCluster = (elem, node) => {
484
+ log.trace("Inserting cluster");
485
+ const shape = node.shape || "rect";
486
+ clusterElems[node.id] = shapes[shape](elem, node);
487
+ };
488
+ const clear = () => {
489
+ clusterElems = {};
490
+ };
491
+ const recursiveRender = async (_elem, graph, diagramType, id, parentCluster, siteConfig) => {
492
+ log.info("Graph in recursive render: XXX", graphlibJson.write(graph), parentCluster);
493
+ const dir = graph.graph().rankdir;
494
+ log.trace("Dir in recursive render - dir:", dir);
495
+ const elem = _elem.insert("g").attr("class", "root");
496
+ if (!graph.nodes()) {
497
+ log.info("No nodes found for", graph);
498
+ } else {
499
+ log.info("Recursive render XXX", graph.nodes());
500
+ }
501
+ if (graph.edges().length > 0) {
502
+ log.trace("Recursive edges", graph.edge(graph.edges()[0]));
503
+ }
504
+ const clusters = elem.insert("g").attr("class", "clusters");
505
+ const edgePaths = elem.insert("g").attr("class", "edgePaths");
506
+ const edgeLabels = elem.insert("g").attr("class", "edgeLabels");
507
+ const nodes = elem.insert("g").attr("class", "nodes");
508
+ await Promise.all(
509
+ graph.nodes().map(async function(v) {
510
+ const node = graph.node(v);
511
+ if (parentCluster !== void 0) {
512
+ const data = JSON.parse(JSON.stringify(parentCluster.clusterData));
513
+ log.info("Setting data for cluster XXX (", v, ") ", data, parentCluster);
514
+ graph.setNode(parentCluster.id, data);
515
+ if (!graph.parent(v)) {
516
+ log.trace("Setting parent", v, parentCluster.id);
517
+ graph.setParent(v, parentCluster.id, data);
518
+ }
519
+ }
520
+ log.info("(Insert) Node XXX" + v + ": " + JSON.stringify(graph.node(v)));
521
+ if (node && node.clusterNode) {
522
+ log.info("Cluster identified", v, node.width, graph.node(v));
523
+ const o = await recursiveRender(
524
+ nodes,
525
+ node.graph,
526
+ diagramType,
527
+ id,
528
+ graph.node(v),
529
+ siteConfig
530
+ );
531
+ const newEl = o.elem;
532
+ updateNodeBounds(node, newEl);
533
+ node.diff = o.diff || 0;
534
+ log.info("Node bounds (abc123)", v, node, node.width, node.x, node.y);
535
+ setNodeElem(newEl, node);
536
+ log.warn("Recursive render complete ", newEl, node);
537
+ } else {
538
+ if (graph.children(v).length > 0) {
539
+ log.info("Cluster - the non recursive path XXX", v, node.id, node, graph);
540
+ log.info(findNonClusterChild(node.id, graph));
541
+ clusterDb[node.id] = { id: findNonClusterChild(node.id, graph), node };
542
+ } else {
543
+ log.info("Node - the non recursive path", v, node.id, node);
544
+ await insertNode(nodes, graph.node(v), dir);
545
+ }
546
+ }
547
+ })
548
+ );
549
+ graph.edges().forEach(function(e) {
550
+ const edge = graph.edge(e.v, e.w, e.name);
551
+ log.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e));
552
+ log.info("Edge " + e.v + " -> " + e.w + ": ", e, " ", JSON.stringify(graph.edge(e)));
553
+ log.info("Fix", clusterDb, "ids:", e.v, e.w, "Translating: ", clusterDb[e.v], clusterDb[e.w]);
554
+ insertEdgeLabel(edgeLabels, edge);
555
+ });
556
+ graph.edges().forEach(function(e) {
557
+ log.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e));
558
+ });
559
+ log.info("#############################################");
560
+ log.info("### Layout ###");
561
+ log.info("#############################################");
562
+ log.info(graph);
563
+ layout(graph);
564
+ log.info("Graph after layout:", graphlibJson.write(graph));
565
+ let diff = 0;
566
+ const { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);
567
+ sortNodesByHierarchy(graph).forEach(function(v) {
568
+ const node = graph.node(v);
569
+ log.info("Position " + v + ": " + JSON.stringify(graph.node(v)));
570
+ log.info(
571
+ "Position " + v + ": (" + node.x,
572
+ "," + node.y,
573
+ ") width: ",
574
+ node.width,
575
+ " height: ",
576
+ node.height
577
+ );
578
+ if (node && node.clusterNode) {
579
+ node.y += subGraphTitleTotalMargin;
580
+ positionNode(node);
581
+ } else {
582
+ if (graph.children(v).length > 0) {
583
+ node.height += subGraphTitleTotalMargin;
584
+ insertCluster(clusters, node);
585
+ clusterDb[node.id].node = node;
586
+ } else {
587
+ node.y += subGraphTitleTotalMargin / 2;
588
+ positionNode(node);
589
+ }
590
+ }
591
+ });
592
+ graph.edges().forEach(function(e) {
593
+ const edge = graph.edge(e);
594
+ log.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(edge), edge);
595
+ edge.points.forEach((point) => point.y += subGraphTitleTotalMargin / 2);
596
+ const paths = insertEdge(edgePaths, e, edge, clusterDb, diagramType, graph, id);
597
+ positionEdgeLabel(edge, paths);
598
+ });
599
+ graph.nodes().forEach(function(v) {
600
+ const n = graph.node(v);
601
+ log.info(v, n.type, n.diff);
602
+ if (n.type === "group") {
603
+ diff = n.diff;
604
+ }
605
+ });
606
+ return { elem, diff };
607
+ };
608
+ const render = async (elem, graph, markers, diagramType, id) => {
609
+ insertMarkers(elem, markers, diagramType, id);
610
+ clear$2();
611
+ clear$3();
612
+ clear();
613
+ clear$1();
614
+ log.warn("Graph at first:", JSON.stringify(graphlibJson.write(graph)));
615
+ adjustClustersAndEdges(graph);
616
+ log.warn("Graph after:", JSON.stringify(graphlibJson.write(graph)));
617
+ const siteConfig = getConfig();
618
+ await recursiveRender(elem, graph, diagramType, id, void 0, siteConfig);
619
+ };
620
+ export {
621
+ render as r
622
+ };