@render-harness/ui 0.1.2 → 0.1.4

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 (97) hide show
  1. package/dist/static/assets/{architectureDiagram-3BPJPVTR-DLNRxqTW.js → architectureDiagram-3BPJPVTR-CFD3Y1kc.js} +2 -2
  2. package/dist/static/assets/{architectureDiagram-3BPJPVTR-DLNRxqTW.js.map → architectureDiagram-3BPJPVTR-CFD3Y1kc.js.map} +1 -1
  3. package/dist/static/assets/{blockDiagram-GPEHLZMM-CCWTkWe6.js → blockDiagram-GPEHLZMM-Elf3j5Yp.js} +3 -3
  4. package/dist/static/assets/{blockDiagram-GPEHLZMM-CCWTkWe6.js.map → blockDiagram-GPEHLZMM-Elf3j5Yp.js.map} +1 -1
  5. package/dist/static/assets/{c4Diagram-AAUBKEIU-qO0tZRXO.js → c4Diagram-AAUBKEIU-COPyA4Y2.js} +2 -2
  6. package/dist/static/assets/{c4Diagram-AAUBKEIU-qO0tZRXO.js.map → c4Diagram-AAUBKEIU-COPyA4Y2.js.map} +1 -1
  7. package/dist/static/assets/{chunk-3OPIFGDE-xcRWDOrg.js → chunk-3OPIFGDE-P0oLihOV.js} +2 -2
  8. package/dist/static/assets/{chunk-3OPIFGDE-xcRWDOrg.js.map → chunk-3OPIFGDE-P0oLihOV.js.map} +1 -1
  9. package/dist/static/assets/{chunk-5ZQYHXKU-B_3UEJ_q.js → chunk-5ZQYHXKU-CCVDVWrS.js} +2 -2
  10. package/dist/static/assets/{chunk-5ZQYHXKU-B_3UEJ_q.js.map → chunk-5ZQYHXKU-CCVDVWrS.js.map} +1 -1
  11. package/dist/static/assets/{chunk-727SXJPM-c1bbIj6N.js → chunk-727SXJPM-CNNkFQDE.js} +2 -2
  12. package/dist/static/assets/{chunk-727SXJPM-c1bbIj6N.js.map → chunk-727SXJPM-CNNkFQDE.js.map} +1 -1
  13. package/dist/static/assets/{chunk-AQP2D5EJ-Wv0w6wvH.js → chunk-AQP2D5EJ-BmW_1ljM.js} +2 -2
  14. package/dist/static/assets/{chunk-AQP2D5EJ-Wv0w6wvH.js.map → chunk-AQP2D5EJ-BmW_1ljM.js.map} +1 -1
  15. package/dist/static/assets/{chunk-KSCS5N6A-BZrceHGX.js → chunk-KSCS5N6A-B2emJsw5.js} +3 -3
  16. package/dist/static/assets/{chunk-KSCS5N6A-BZrceHGX.js.map → chunk-KSCS5N6A-B2emJsw5.js.map} +1 -1
  17. package/dist/static/assets/{chunk-L5ZTLDWV-BAcjEn3C.js → chunk-L5ZTLDWV-DZfwPtSD.js} +2 -2
  18. package/dist/static/assets/{chunk-L5ZTLDWV-BAcjEn3C.js.map → chunk-L5ZTLDWV-DZfwPtSD.js.map} +1 -1
  19. package/dist/static/assets/{chunk-O5CBEL6O-KRO56hHQ.js → chunk-O5CBEL6O-CNfA3Ek9.js} +2 -2
  20. package/dist/static/assets/{chunk-O5CBEL6O-KRO56hHQ.js.map → chunk-O5CBEL6O-CNfA3Ek9.js.map} +1 -1
  21. package/dist/static/assets/classDiagram-4FO5ZUOK-BRBJdDvt.js +2 -0
  22. package/dist/static/assets/{classDiagram-4FO5ZUOK-oexPF7ww.js.map → classDiagram-4FO5ZUOK-BRBJdDvt.js.map} +1 -1
  23. package/dist/static/assets/classDiagram-v2-Q7XG4LA2-CQjk9kLc.js +2 -0
  24. package/dist/static/assets/{classDiagram-v2-Q7XG4LA2-Dc4jeSLj.js.map → classDiagram-v2-Q7XG4LA2-CQjk9kLc.js.map} +1 -1
  25. package/dist/static/assets/{dagre-BM42HDAG-au4dCVgC.js → dagre-BM42HDAG-DovnSGTF.js} +2 -2
  26. package/dist/static/assets/{dagre-BM42HDAG-au4dCVgC.js.map → dagre-BM42HDAG-DovnSGTF.js.map} +1 -1
  27. package/dist/static/assets/{diagram-2AECGRRQ-rJMnDhBW.js → diagram-2AECGRRQ-DL9VAGtd.js} +2 -2
  28. package/dist/static/assets/{diagram-2AECGRRQ-rJMnDhBW.js.map → diagram-2AECGRRQ-DL9VAGtd.js.map} +1 -1
  29. package/dist/static/assets/{diagram-5GNKFQAL-diIxjA-v.js → diagram-5GNKFQAL-Crr9YjF6.js} +2 -2
  30. package/dist/static/assets/{diagram-5GNKFQAL-diIxjA-v.js.map → diagram-5GNKFQAL-Crr9YjF6.js.map} +1 -1
  31. package/dist/static/assets/{diagram-KO2AKTUF-D9IYocVR.js → diagram-KO2AKTUF-B3yOnGTs.js} +2 -2
  32. package/dist/static/assets/{diagram-KO2AKTUF-D9IYocVR.js.map → diagram-KO2AKTUF-B3yOnGTs.js.map} +1 -1
  33. package/dist/static/assets/{diagram-LMA3HP47-BtdvpqaH.js → diagram-LMA3HP47-KALO7OjG.js} +2 -2
  34. package/dist/static/assets/{diagram-LMA3HP47-BtdvpqaH.js.map → diagram-LMA3HP47-KALO7OjG.js.map} +1 -1
  35. package/dist/static/assets/{diagram-OG6HWLK6-CaRkxDoj.js → diagram-OG6HWLK6-D0GPjAxV.js} +2 -2
  36. package/dist/static/assets/{diagram-OG6HWLK6-CaRkxDoj.js.map → diagram-OG6HWLK6-D0GPjAxV.js.map} +1 -1
  37. package/dist/static/assets/{erDiagram-TEJ5UH35-CgifrqeZ.js → erDiagram-TEJ5UH35-ksCvepnP.js} +2 -2
  38. package/dist/static/assets/{erDiagram-TEJ5UH35-CgifrqeZ.js.map → erDiagram-TEJ5UH35-ksCvepnP.js.map} +1 -1
  39. package/dist/static/assets/{flowDiagram-I6XJVG4X-DaguIeM_.js → flowDiagram-I6XJVG4X-BT1bpfq2.js} +2 -2
  40. package/dist/static/assets/{flowDiagram-I6XJVG4X-DaguIeM_.js.map → flowDiagram-I6XJVG4X-BT1bpfq2.js.map} +1 -1
  41. package/dist/static/assets/ganttDiagram-6RSMTGT7-Cg3QTIl7.js +293 -0
  42. package/dist/static/assets/ganttDiagram-6RSMTGT7-Cg3QTIl7.js.map +1 -0
  43. package/dist/static/assets/{gitGraphDiagram-PVQCEYII-Ht-SDjxh.js → gitGraphDiagram-PVQCEYII-AW-DbGHw.js} +2 -2
  44. package/dist/static/assets/{gitGraphDiagram-PVQCEYII-Ht-SDjxh.js.map → gitGraphDiagram-PVQCEYII-AW-DbGHw.js.map} +1 -1
  45. package/dist/static/assets/index-B1CSiQFH.js +260 -0
  46. package/dist/static/assets/index-B1CSiQFH.js.map +1 -0
  47. package/dist/static/assets/{index-luXiT-gK.css → index-BJZaWHUt.css} +1 -1
  48. package/dist/static/assets/{infoDiagram-5YYISTIA-CwLGA7Zu.js → infoDiagram-5YYISTIA-DZzRjoNy.js} +2 -2
  49. package/dist/static/assets/{infoDiagram-5YYISTIA-CwLGA7Zu.js.map → infoDiagram-5YYISTIA-DZzRjoNy.js.map} +1 -1
  50. package/dist/static/assets/init-D6CV0rqX.js +2 -0
  51. package/dist/static/assets/{init-Dfd1k18d.js.map → init-D6CV0rqX.js.map} +1 -1
  52. package/dist/static/assets/{ishikawaDiagram-YF4QCWOH-CaZCrUUR.js → ishikawaDiagram-YF4QCWOH-A-bX4Zu0.js} +2 -2
  53. package/dist/static/assets/{ishikawaDiagram-YF4QCWOH-CaZCrUUR.js.map → ishikawaDiagram-YF4QCWOH-A-bX4Zu0.js.map} +1 -1
  54. package/dist/static/assets/{kanban-definition-UN3LZRKU-DlYha85J.js → kanban-definition-UN3LZRKU-ibATe6sx.js} +2 -2
  55. package/dist/static/assets/{kanban-definition-UN3LZRKU-DlYha85J.js.map → kanban-definition-UN3LZRKU-ibATe6sx.js.map} +1 -1
  56. package/dist/static/assets/{line-GCwXS1Fi.js → line-DvIoplHa.js} +2 -2
  57. package/dist/static/assets/{line-GCwXS1Fi.js.map → line-DvIoplHa.js.map} +1 -1
  58. package/dist/static/assets/linear-D0P02-YR.js +2 -0
  59. package/dist/static/assets/{linear-CTnL8jvu.js.map → linear-D0P02-YR.js.map} +1 -1
  60. package/dist/static/assets/{mindmap-definition-RKZ34NQL-CPJIWJdQ.js → mindmap-definition-RKZ34NQL-BYhA5Frb.js} +2 -2
  61. package/dist/static/assets/{mindmap-definition-RKZ34NQL-CPJIWJdQ.js.map → mindmap-definition-RKZ34NQL-BYhA5Frb.js.map} +1 -1
  62. package/dist/static/assets/{ordinal-DjeI0KOh.js → ordinal-D-PEDSg4.js} +2 -2
  63. package/dist/static/assets/{ordinal-DjeI0KOh.js.map → ordinal-D-PEDSg4.js.map} +1 -1
  64. package/dist/static/assets/{pieDiagram-4H26LBE5-DTVmF_CH.js → pieDiagram-4H26LBE5-qud9ZeDs.js} +2 -2
  65. package/dist/static/assets/{pieDiagram-4H26LBE5-DTVmF_CH.js.map → pieDiagram-4H26LBE5-qud9ZeDs.js.map} +1 -1
  66. package/dist/static/assets/{quadrantDiagram-W4KKPZXB-Bho6zy_y.js → quadrantDiagram-W4KKPZXB-B5lPA7rJ.js} +2 -2
  67. package/dist/static/assets/{quadrantDiagram-W4KKPZXB-Bho6zy_y.js.map → quadrantDiagram-W4KKPZXB-B5lPA7rJ.js.map} +1 -1
  68. package/dist/static/assets/{requirementDiagram-4Y6WPE33-CLyoVwlh.js → requirementDiagram-4Y6WPE33-C0mLADne.js} +2 -2
  69. package/dist/static/assets/{requirementDiagram-4Y6WPE33-CLyoVwlh.js.map → requirementDiagram-4Y6WPE33-C0mLADne.js.map} +1 -1
  70. package/dist/static/assets/{sankeyDiagram-5OEKKPKP-V2yvk-0Z.js → sankeyDiagram-5OEKKPKP-vwfoPxTH.js} +2 -2
  71. package/dist/static/assets/{sankeyDiagram-5OEKKPKP-V2yvk-0Z.js.map → sankeyDiagram-5OEKKPKP-vwfoPxTH.js.map} +1 -1
  72. package/dist/static/assets/{sequenceDiagram-3UESZ5HK-Dp03aXVk.js → sequenceDiagram-3UESZ5HK-DtPUE6ba.js} +2 -2
  73. package/dist/static/assets/{sequenceDiagram-3UESZ5HK-Dp03aXVk.js.map → sequenceDiagram-3UESZ5HK-DtPUE6ba.js.map} +1 -1
  74. package/dist/static/assets/{stateDiagram-AJRCARHV-BEJW-_HK.js → stateDiagram-AJRCARHV-BaeNtGLJ.js} +2 -2
  75. package/dist/static/assets/{stateDiagram-AJRCARHV-BEJW-_HK.js.map → stateDiagram-AJRCARHV-BaeNtGLJ.js.map} +1 -1
  76. package/dist/static/assets/stateDiagram-v2-BHNVJYJU-DbTX_m6G.js +2 -0
  77. package/dist/static/assets/{stateDiagram-v2-BHNVJYJU-Bo19-vKE.js.map → stateDiagram-v2-BHNVJYJU-DbTX_m6G.js.map} +1 -1
  78. package/dist/static/assets/{timeline-definition-PNZ67QCA-C4KTq0mQ.js → timeline-definition-PNZ67QCA-C9H1UzNY.js} +2 -2
  79. package/dist/static/assets/{timeline-definition-PNZ67QCA-C4KTq0mQ.js.map → timeline-definition-PNZ67QCA-C9H1UzNY.js.map} +1 -1
  80. package/dist/static/assets/{vennDiagram-CIIHVFJN-1jmBZPSZ.js → vennDiagram-CIIHVFJN-BpQ2qCN5.js} +2 -2
  81. package/dist/static/assets/{vennDiagram-CIIHVFJN-1jmBZPSZ.js.map → vennDiagram-CIIHVFJN-BpQ2qCN5.js.map} +1 -1
  82. package/dist/static/assets/{wardleyDiagram-YWT4CUSO-A8XYzYTW.js → wardleyDiagram-YWT4CUSO-CQ8dLujr.js} +2 -2
  83. package/dist/static/assets/{wardleyDiagram-YWT4CUSO-A8XYzYTW.js.map → wardleyDiagram-YWT4CUSO-CQ8dLujr.js.map} +1 -1
  84. package/dist/static/assets/{xychartDiagram-2RQKCTM6-CuyUQvFt.js → xychartDiagram-2RQKCTM6-BCRK_Cs-.js} +4 -4
  85. package/dist/static/assets/xychartDiagram-2RQKCTM6-BCRK_Cs-.js.map +1 -0
  86. package/dist/static/index.html +14 -10
  87. package/package.json +14 -13
  88. package/dist/static/assets/classDiagram-4FO5ZUOK-oexPF7ww.js +0 -2
  89. package/dist/static/assets/classDiagram-v2-Q7XG4LA2-Dc4jeSLj.js +0 -2
  90. package/dist/static/assets/ganttDiagram-6RSMTGT7-DIFubQTa.js +0 -293
  91. package/dist/static/assets/ganttDiagram-6RSMTGT7-DIFubQTa.js.map +0 -1
  92. package/dist/static/assets/index-D5tmHkO_.js +0 -228
  93. package/dist/static/assets/index-D5tmHkO_.js.map +0 -1
  94. package/dist/static/assets/init-Dfd1k18d.js +0 -2
  95. package/dist/static/assets/linear-CTnL8jvu.js +0 -2
  96. package/dist/static/assets/stateDiagram-v2-BHNVJYJU-Bo19-vKE.js +0 -2
  97. package/dist/static/assets/xychartDiagram-2RQKCTM6-CuyUQvFt.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-KSCS5N6A-BZrceHGX.js","names":["select","curveLinear","curveBasis","curveCardinal","curveBumpX","curveBumpY","curveCatmullRom","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","line","rough"],"sources":["../../../../../node_modules/.pnpm/mermaid@11.15.0/node_modules/mermaid/dist/chunks/mermaid.core/chunk-KSCS5N6A.mjs"],"sourcesContent":["import {\n computeLabelTransform,\n getLineFunctionsWithOffset,\n markerOffsets,\n markerOffsets2\n} from \"./chunk-BSJP7CBP.mjs\";\nimport {\n createLabel_default\n} from \"./chunk-3OPIFGDE.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-L5ZTLDWV.mjs\";\nimport {\n isLabelStyle,\n styles2String\n} from \"./chunk-NZK2D7GU.mjs\";\nimport {\n createText\n} from \"./chunk-O5CBEL6O.mjs\";\nimport {\n handleUndefinedAttr,\n utils_default\n} from \"./chunk-5ZQYHXKU.mjs\";\nimport {\n getConfig,\n getConfig2,\n getEffectiveHtmlLabels\n} from \"./chunk-CSCIHK7Q.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/rendering-elements/edges.js\nimport {\n curveBasis,\n curveLinear,\n curveCardinal,\n curveBumpX,\n curveBumpY,\n curveCatmullRom,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore,\n line,\n select\n} from \"d3\";\nimport rough from \"roughjs\";\n\n// src/rendering-util/rendering-elements/edgeMarker.ts\nvar addEdgeMarkers = /* @__PURE__ */ __name((svgPath, edge, url, id, diagramType, useMargin = false, strokeColor) => {\n if (edge.arrowTypeStart) {\n addEdgeMarker(\n svgPath,\n \"start\",\n edge.arrowTypeStart,\n url,\n id,\n diagramType,\n useMargin,\n strokeColor\n );\n }\n if (edge.arrowTypeEnd) {\n addEdgeMarker(svgPath, \"end\", edge.arrowTypeEnd, url, id, diagramType, useMargin, strokeColor);\n }\n}, \"addEdgeMarkers\");\nvar arrowTypesMap = {\n arrow_cross: { type: \"cross\", fill: false },\n arrow_point: { type: \"point\", fill: true },\n arrow_barb: { type: \"barb\", fill: true },\n arrow_barb_neo: { type: \"barb\", fill: true },\n arrow_circle: { type: \"circle\", fill: false },\n aggregation: { type: \"aggregation\", fill: false },\n extension: { type: \"extension\", fill: false },\n composition: { type: \"composition\", fill: true },\n dependency: { type: \"dependency\", fill: true },\n lollipop: { type: \"lollipop\", fill: false },\n only_one: { type: \"onlyOne\", fill: false },\n zero_or_one: { type: \"zeroOrOne\", fill: false },\n one_or_more: { type: \"oneOrMore\", fill: false },\n zero_or_more: { type: \"zeroOrMore\", fill: false },\n requirement_arrow: { type: \"requirement_arrow\", fill: false },\n requirement_contains: { type: \"requirement_contains\", fill: false }\n};\nvar arrowTypesWithMarginSupport = [\n \"cross\",\n \"point\",\n \"circle\",\n \"lollipop\",\n \"aggregation\",\n \"extension\",\n \"composition\",\n \"dependency\",\n \"barb\"\n];\nvar addEdgeMarker = /* @__PURE__ */ __name((svgPath, position, arrowType, url, id, diagramType, useMargin = false, strokeColor) => {\n const arrowTypeInfo = arrowTypesMap[arrowType];\n const marginSupport = arrowTypeInfo && arrowTypesWithMarginSupport.includes(arrowTypeInfo.type);\n if (!arrowTypeInfo) {\n log.warn(`Unknown arrow type: ${arrowType}`);\n return;\n }\n const endMarkerType = arrowTypeInfo.type;\n const suffix = position === \"start\" ? \"Start\" : \"End\";\n const offset = useMargin && marginSupport ? \"-margin\" : \"\";\n const originalMarkerId = `${id}_${diagramType}-${endMarkerType}${suffix}${offset}`;\n if (strokeColor && strokeColor.trim() !== \"\") {\n const colorId = strokeColor.replace(/[^\\dA-Za-z]/g, \"_\");\n const coloredMarkerId = `${originalMarkerId}_${colorId}`;\n if (!document.getElementById(coloredMarkerId)) {\n const originalMarker = document.getElementById(originalMarkerId);\n if (originalMarker) {\n const coloredMarker = originalMarker.cloneNode(true);\n coloredMarker.id = coloredMarkerId;\n const paths = coloredMarker.querySelectorAll(\"path, circle, line\");\n paths.forEach((path) => {\n path.setAttribute(\"stroke\", strokeColor);\n if (arrowTypeInfo.fill) {\n path.setAttribute(\"fill\", strokeColor);\n }\n });\n originalMarker.parentNode?.appendChild(coloredMarker);\n }\n }\n svgPath.attr(`marker-${position}`, `url(${url}#${coloredMarkerId})`);\n } else {\n svgPath.attr(`marker-${position}`, `url(${url}#${originalMarkerId})`);\n }\n}, \"addEdgeMarker\");\n\n// src/rendering-util/rendering-elements/edges.js\nvar resolveEdgeCurveType = /* @__PURE__ */ __name((edgeCurve) => {\n return typeof edgeCurve === \"string\" ? edgeCurve : getConfig2()?.flowchart?.curve;\n}, \"resolveEdgeCurveType\");\nvar edgeLabels = /* @__PURE__ */ new Map();\nvar terminalLabels = /* @__PURE__ */ new Map();\nvar clear = /* @__PURE__ */ __name(() => {\n edgeLabels.clear();\n terminalLabels.clear();\n}, \"clear\");\nvar getLabelStyles = /* @__PURE__ */ __name((styleArray) => {\n if (!styleArray) {\n return \"\";\n }\n if (typeof styleArray === \"string\") {\n return styleArray;\n }\n return styleArray.reduce((acc, style) => acc + \";\" + style, \"\");\n}, \"getLabelStyles\");\nvar insertEdgeLabel = /* @__PURE__ */ __name(async (elem, edge) => {\n const config = getConfig2();\n let useHtmlLabels = getEffectiveHtmlLabels(config);\n const { labelStyles } = styles2String(edge);\n edge.labelStyle = labelStyles;\n const edgeLabel = elem.insert(\"g\").attr(\"class\", \"edgeLabel\");\n const label = edgeLabel.insert(\"g\").attr(\"class\", \"label\").attr(\"data-id\", edge.id);\n const isMarkdown = edge.labelType === \"markdown\";\n const markdownWidth = void 0;\n const labelElement = await createText(\n elem,\n edge.label,\n {\n style: getLabelStyles(edge.labelStyle),\n useHtmlLabels,\n addSvgBackground: true,\n isNode: false,\n markdown: isMarkdown,\n // Plain text edge labels should auto-wrap, markdown edge labels respect markdownAutoWrap config\n width: isMarkdown ? markdownWidth : void 0\n },\n config\n );\n label.node().appendChild(labelElement);\n log.info(\"abc82\", edge, edge.labelType);\n let bbox = labelElement.getBBox();\n let transformBbox = bbox;\n if (useHtmlLabels) {\n const div = labelElement.children[0];\n const dv = select(labelElement);\n bbox = div.getBoundingClientRect();\n transformBbox = bbox;\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n } else {\n const textEl = select(labelElement).select(\"text\").node();\n if (textEl && typeof textEl.getBBox === \"function\") {\n transformBbox = textEl.getBBox();\n }\n }\n label.attr(\"transform\", computeLabelTransform(transformBbox, useHtmlLabels));\n edgeLabels.set(edge.id, edgeLabel);\n edge.width = bbox.width;\n edge.height = bbox.height;\n let fo;\n if (edge.startLabelLeft) {\n const startEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n const startLabelElement = await createLabel_default(\n inner,\n edge.startLabelLeft,\n getLabelStyles(edge.labelStyle) || \"\",\n false,\n false\n );\n fo = startLabelElement;\n let slBox = startLabelElement.getBBox();\n if (useHtmlLabels) {\n const div = startLabelElement.children[0];\n const dv = select(startLabelElement);\n slBox = div.getBoundingClientRect();\n dv.attr(\"width\", slBox.width);\n dv.attr(\"height\", slBox.height);\n }\n inner.attr(\"transform\", computeLabelTransform(slBox, useHtmlLabels));\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).startLeft = startEdgeLabelLeft;\n setTerminalWidth(fo, edge.startLabelLeft);\n }\n if (edge.startLabelRight) {\n const startEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n const startLabelElement = await createLabel_default(\n inner,\n edge.startLabelRight,\n getLabelStyles(edge.labelStyle) || \"\",\n false,\n false\n );\n fo = startLabelElement;\n let slBox = startLabelElement.getBBox();\n if (useHtmlLabels) {\n const div = startLabelElement.children[0];\n const dv = select(startLabelElement);\n slBox = div.getBoundingClientRect();\n dv.attr(\"width\", slBox.width);\n dv.attr(\"height\", slBox.height);\n }\n inner.attr(\"transform\", computeLabelTransform(slBox, useHtmlLabels));\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).startRight = startEdgeLabelRight;\n setTerminalWidth(fo, edge.startLabelRight);\n }\n if (edge.endLabelLeft) {\n const endEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n const endLabelElement = await createLabel_default(\n endEdgeLabelLeft,\n edge.endLabelLeft,\n getLabelStyles(edge.labelStyle) || \"\",\n false,\n false\n );\n fo = endLabelElement;\n let slBox = endLabelElement.getBBox();\n if (useHtmlLabels) {\n const div = endLabelElement.children[0];\n const dv = select(endLabelElement);\n slBox = div.getBoundingClientRect();\n dv.attr(\"width\", slBox.width);\n dv.attr(\"height\", slBox.height);\n }\n inner.attr(\"transform\", computeLabelTransform(slBox, useHtmlLabels));\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).endLeft = endEdgeLabelLeft;\n setTerminalWidth(fo, edge.endLabelLeft);\n }\n if (edge.endLabelRight) {\n const endEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n const endLabelElement = await createLabel_default(\n endEdgeLabelRight,\n edge.endLabelRight,\n getLabelStyles(edge.labelStyle) || \"\",\n false,\n false\n );\n fo = endLabelElement;\n let slBox = endLabelElement.getBBox();\n if (useHtmlLabels) {\n const div = endLabelElement.children[0];\n const dv = select(endLabelElement);\n slBox = div.getBoundingClientRect();\n dv.attr(\"width\", slBox.width);\n dv.attr(\"height\", slBox.height);\n }\n inner.attr(\"transform\", computeLabelTransform(slBox, useHtmlLabels));\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).endRight = endEdgeLabelRight;\n setTerminalWidth(fo, edge.endLabelRight);\n }\n return labelElement;\n}, \"insertEdgeLabel\");\nfunction setTerminalWidth(fo, value) {\n if (getEffectiveHtmlLabels(getConfig2()) && fo) {\n fo.style.width = value.length * 9 + \"px\";\n fo.style.height = \"12px\";\n }\n}\n__name(setTerminalWidth, \"setTerminalWidth\");\nvar positionEdgeLabel = /* @__PURE__ */ __name((edge, paths) => {\n log.debug(\"Moving label abc88 \", edge.id, edge.label, edgeLabels.get(edge.id), paths);\n let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n const siteConfig = getConfig2();\n const { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);\n if (edge.label) {\n const el = edgeLabels.get(edge.id);\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcLabelPosition(path);\n log.debug(\n \"Moving label \" + edge.label + \" from (\",\n x,\n \",\",\n y,\n \") to (\",\n pos.x,\n \",\",\n pos.y,\n \") abc88\"\n );\n if (paths.updatedPath) {\n x = pos.x;\n y = pos.y;\n }\n }\n el.attr(\"transform\", `translate(${x}, ${y + subGraphTitleTotalMargin / 2})`);\n }\n if (edge.startLabelLeft) {\n const el = terminalLabels.get(edge.id).startLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, \"start_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.startLabelRight) {\n const el = terminalLabels.get(edge.id).startRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(\n edge.arrowTypeStart ? 10 : 0,\n \"start_right\",\n path\n );\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelLeft) {\n const el = terminalLabels.get(edge.id).endLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelRight) {\n const el = terminalLabels.get(edge.id).endRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_right\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n}, \"positionEdgeLabel\");\nvar outsideNode = /* @__PURE__ */ __name((node, point2) => {\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(point2.x - x);\n const dy = Math.abs(point2.y - y);\n const w = node.width / 2;\n const h = node.height / 2;\n return dx >= w || dy >= h;\n}, \"outsideNode\");\nvar intersection = /* @__PURE__ */ __name((node, outsidePoint, insidePoint) => {\n log.debug(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(outsidePoint)}\n insidePoint : ${JSON.stringify(insidePoint)}\n node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(x - insidePoint.x);\n const w = node.width / 2;\n let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;\n const h = node.height / 2;\n const Q = Math.abs(outsidePoint.y - insidePoint.y);\n const R = Math.abs(outsidePoint.x - insidePoint.x);\n if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) {\n let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n r = R * q / Q;\n const res = {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q\n };\n if (r === 0) {\n res.x = outsidePoint.x;\n res.y = outsidePoint.y;\n }\n if (R === 0) {\n res.x = outsidePoint.x;\n }\n if (Q === 0) {\n res.y = outsidePoint.y;\n }\n log.debug(`abc89 top/bottom calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);\n return res;\n } else {\n if (insidePoint.x < outsidePoint.x) {\n r = outsidePoint.x - w - x;\n } else {\n r = x - w - outsidePoint.x;\n }\n let q = Q * r / R;\n let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;\n let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;\n log.debug(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });\n if (r === 0) {\n _x = outsidePoint.x;\n _y = outsidePoint.y;\n }\n if (R === 0) {\n _x = outsidePoint.x;\n }\n if (Q === 0) {\n _y = outsidePoint.y;\n }\n return { x: _x, y: _y };\n }\n}, \"intersection\");\nvar cutPathAtIntersect = /* @__PURE__ */ __name((_points, boundaryNode) => {\n log.warn(\"abc88 cutPathAtIntersect\", _points, boundaryNode);\n let points = [];\n let lastPointOutside = _points[0];\n let isInside = false;\n _points.forEach((point2) => {\n log.info(\"abc88 checking point\", point2, boundaryNode);\n if (!outsideNode(boundaryNode, point2) && !isInside) {\n const inter = intersection(boundaryNode, lastPointOutside, point2);\n log.debug(\"abc88 inside\", point2, lastPointOutside, inter);\n log.debug(\"abc88 intersection\", inter, boundaryNode);\n let pointPresent = false;\n points.forEach((p) => {\n pointPresent = pointPresent || p.x === inter.x && p.y === inter.y;\n });\n if (!points.some((e) => e.x === inter.x && e.y === inter.y)) {\n points.push(inter);\n } else {\n log.warn(\"abc88 no intersect\", inter, points);\n }\n isInside = true;\n } else {\n log.warn(\"abc88 outside\", point2, lastPointOutside);\n lastPointOutside = point2;\n if (!isInside) {\n points.push(point2);\n }\n }\n });\n log.debug(\"returning points\", points);\n return points;\n}, \"cutPathAtIntersect\");\nfunction extractCornerPoints(points) {\n const cornerPoints = [];\n const cornerPointPositions = [];\n for (let i = 1; i < points.length - 1; i++) {\n const prev = points[i - 1];\n const curr = points[i];\n const next = points[i + 1];\n if (prev.x === curr.x && curr.y === next.y && Math.abs(curr.x - next.x) > 5 && Math.abs(curr.y - prev.y) > 5) {\n cornerPoints.push(curr);\n cornerPointPositions.push(i);\n } else if (prev.y === curr.y && curr.x === next.x && Math.abs(curr.x - prev.x) > 5 && Math.abs(curr.y - next.y) > 5) {\n cornerPoints.push(curr);\n cornerPointPositions.push(i);\n }\n }\n return { cornerPoints, cornerPointPositions };\n}\n__name(extractCornerPoints, \"extractCornerPoints\");\nvar findAdjacentPoint = /* @__PURE__ */ __name(function(pointA, pointB, distance) {\n const xDiff = pointB.x - pointA.x;\n const yDiff = pointB.y - pointA.y;\n const length = Math.sqrt(xDiff * xDiff + yDiff * yDiff);\n const ratio = distance / length;\n return { x: pointB.x - ratio * xDiff, y: pointB.y - ratio * yDiff };\n}, \"findAdjacentPoint\");\nvar fixCorners = /* @__PURE__ */ __name(function(lineData) {\n const { cornerPointPositions } = extractCornerPoints(lineData);\n const newLineData = [];\n for (let i = 0; i < lineData.length; i++) {\n if (cornerPointPositions.includes(i)) {\n const prevPoint = lineData[i - 1];\n const nextPoint = lineData[i + 1];\n const cornerPoint = lineData[i];\n const newPrevPoint = findAdjacentPoint(prevPoint, cornerPoint, 5);\n const newNextPoint = findAdjacentPoint(nextPoint, cornerPoint, 5);\n const xDiff = newNextPoint.x - newPrevPoint.x;\n const yDiff = newNextPoint.y - newPrevPoint.y;\n newLineData.push(newPrevPoint);\n const a = Math.sqrt(2) * 2;\n let newCornerPoint = { x: cornerPoint.x, y: cornerPoint.y };\n if (Math.abs(nextPoint.x - prevPoint.x) > 10 && Math.abs(nextPoint.y - prevPoint.y) >= 10) {\n log.debug(\n \"Corner point fixing\",\n Math.abs(nextPoint.x - prevPoint.x),\n Math.abs(nextPoint.y - prevPoint.y)\n );\n const r = 5;\n if (cornerPoint.x === newPrevPoint.x) {\n newCornerPoint = {\n x: xDiff < 0 ? newPrevPoint.x - r + a : newPrevPoint.x + r - a,\n y: yDiff < 0 ? newPrevPoint.y - a : newPrevPoint.y + a\n };\n } else {\n newCornerPoint = {\n x: xDiff < 0 ? newPrevPoint.x - a : newPrevPoint.x + a,\n y: yDiff < 0 ? newPrevPoint.y - r + a : newPrevPoint.y + r - a\n };\n }\n } else {\n log.debug(\n \"Corner point skipping fixing\",\n Math.abs(nextPoint.x - prevPoint.x),\n Math.abs(nextPoint.y - prevPoint.y)\n );\n }\n newLineData.push(newCornerPoint, newNextPoint);\n } else {\n newLineData.push(lineData[i]);\n }\n }\n return newLineData;\n}, \"fixCorners\");\nvar generateDashArray = /* @__PURE__ */ __name((len, oValueS, oValueE) => {\n const middleLength = len - oValueS - oValueE;\n const dashLength = 2;\n const gapLength = 2;\n const dashGapPairLength = dashLength + gapLength;\n const numberOfPairs = Math.floor(middleLength / dashGapPairLength);\n const middlePattern = Array(numberOfPairs).fill(`${dashLength} ${gapLength}`).join(\" \");\n const dashArray = `0 ${oValueS} ${middlePattern} ${oValueE}`;\n return dashArray;\n}, \"generateDashArray\");\nvar insertEdge = /* @__PURE__ */ __name(function(elem, edge, clusterDb, diagramType, startNode, endNode, diagramId, skipIntersect = false) {\n if (!diagramId) {\n throw new Error(\n `insertEdge: missing diagramId for edge \"${edge.id}\" \\u2014 edge IDs require a diagram prefix for uniqueness`\n );\n }\n const { handDrawnSeed } = getConfig2();\n let points = edge.points;\n let pointsHasChanged = false;\n const tail = startNode;\n var head = endNode;\n const edgeClassStyles = [];\n for (const key in edge.cssCompiledStyles) {\n if (isLabelStyle(key)) {\n continue;\n }\n edgeClassStyles.push(edge.cssCompiledStyles[key]);\n }\n log.debug(\"UIO intersect check\", edge.points, head.x, tail.x);\n if (head.intersect && tail.intersect && !skipIntersect) {\n points = points.slice(1, edge.points.length - 1);\n points.unshift(tail.intersect(points[0]));\n log.debug(\n \"Last point UIO\",\n edge.start,\n \"-->\",\n edge.end,\n points[points.length - 1],\n head,\n head.intersect(points[points.length - 1])\n );\n points.push(head.intersect(points[points.length - 1]));\n }\n const pointsStr = btoa(JSON.stringify(points));\n if (edge.toCluster) {\n log.info(\"to cluster abc88\", clusterDb.get(edge.toCluster));\n points = cutPathAtIntersect(edge.points, clusterDb.get(edge.toCluster).node);\n pointsHasChanged = true;\n }\n if (edge.fromCluster) {\n log.debug(\n \"from cluster abc88\",\n clusterDb.get(edge.fromCluster),\n JSON.stringify(points, null, 2)\n );\n points = cutPathAtIntersect(points.reverse(), clusterDb.get(edge.fromCluster).node).reverse();\n pointsHasChanged = true;\n }\n let lineData = points.filter((p) => !Number.isNaN(p.y));\n const edgeCurveType = resolveEdgeCurveType(edge.curve);\n if (edgeCurveType !== \"rounded\") {\n lineData = fixCorners(lineData);\n }\n let curve = curveLinear;\n switch (edgeCurveType) {\n case \"linear\":\n curve = curveLinear;\n break;\n case \"basis\":\n curve = curveBasis;\n break;\n case \"cardinal\":\n curve = curveCardinal;\n break;\n case \"bumpX\":\n curve = curveBumpX;\n break;\n case \"bumpY\":\n curve = curveBumpY;\n break;\n case \"catmullRom\":\n curve = curveCatmullRom;\n break;\n case \"monotoneX\":\n curve = curveMonotoneX;\n break;\n case \"monotoneY\":\n curve = curveMonotoneY;\n break;\n case \"natural\":\n curve = curveNatural;\n break;\n case \"step\":\n curve = curveStep;\n break;\n case \"stepAfter\":\n curve = curveStepAfter;\n break;\n case \"stepBefore\":\n curve = curveStepBefore;\n break;\n case \"rounded\":\n curve = curveLinear;\n break;\n default:\n curve = curveBasis;\n }\n const { x, y } = getLineFunctionsWithOffset(edge);\n const lineFunction = line().x(x).y(y).curve(curve);\n let strokeClasses;\n switch (edge.thickness) {\n case \"normal\":\n strokeClasses = \"edge-thickness-normal\";\n break;\n case \"thick\":\n strokeClasses = \"edge-thickness-thick\";\n break;\n case \"invisible\":\n strokeClasses = \"edge-thickness-invisible\";\n break;\n default:\n strokeClasses = \"edge-thickness-normal\";\n }\n switch (edge.pattern) {\n case \"solid\":\n strokeClasses += \" edge-pattern-solid\";\n break;\n case \"dotted\":\n strokeClasses += \" edge-pattern-dotted\";\n break;\n case \"dashed\":\n strokeClasses += \" edge-pattern-dashed\";\n break;\n default:\n strokeClasses += \" edge-pattern-solid\";\n }\n let svgPath;\n let linePath = edgeCurveType === \"rounded\" ? generateRoundedPath(applyMarkerOffsetsToPoints(lineData, edge), 5) : lineFunction(lineData);\n const edgeStyles = Array.isArray(edge.style) ? edge.style : [edge.style];\n let strokeColor = edgeStyles.find((style) => style?.startsWith(\"stroke:\"));\n let animationClass = \"\";\n if (edge.animate) {\n animationClass = \"edge-animation-fast\";\n }\n if (edge.animation) {\n animationClass = \"edge-animation-\" + edge.animation;\n }\n let animatedEdge = false;\n if (edge.look === \"handDrawn\") {\n const rc = rough.svg(elem);\n Object.assign([], lineData);\n const svgPathNode = rc.path(linePath, {\n roughness: 0.3,\n seed: handDrawnSeed\n });\n strokeClasses += \" transition\";\n svgPath = select(svgPathNode).select(\"path\").attr(\"id\", `${diagramId}-${edge.id}`).attr(\n \"class\",\n \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\") + (animationClass ? \" \" + animationClass : \"\")\n ).attr(\"style\", edgeStyles ? edgeStyles.reduce((acc, style) => acc + \";\" + style, \"\") : \"\");\n let d = svgPath.attr(\"d\");\n svgPath.attr(\"d\", d);\n elem.node().appendChild(svgPath.node());\n } else {\n const stylesFromClasses = edgeClassStyles.join(\";\");\n const styles = edgeStyles ? edgeStyles.reduce((acc, style) => acc + style + \";\", \"\") : \"\";\n const pathStyle = (stylesFromClasses ? stylesFromClasses + \";\" + styles + \";\" : styles) + \";\" + (edgeStyles ? edgeStyles.reduce((acc, style) => acc + \";\" + style, \"\") : \"\");\n svgPath = elem.append(\"path\").attr(\"d\", linePath).attr(\"id\", `${diagramId}-${edge.id}`).attr(\n \"class\",\n \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\") + (animationClass ? \" \" + animationClass : \"\")\n ).attr(\"style\", pathStyle);\n strokeColor = pathStyle.match(/stroke:([^;]+)/)?.[1];\n animatedEdge = edge.animate === true || !!edge.animation || stylesFromClasses.includes(\"animation\");\n const pathNode = svgPath.node();\n const len = typeof pathNode.getTotalLength === \"function\" ? pathNode.getTotalLength() : 0;\n const oValueS = markerOffsets2[edge.arrowTypeStart] || 0;\n const oValueE = markerOffsets2[edge.arrowTypeEnd] || 0;\n if (edge.look === \"neo\" && !animatedEdge) {\n const dashArray = edge.pattern === \"dotted\" || edge.pattern === \"dashed\" ? generateDashArray(len, oValueS, oValueE) : `0 ${oValueS} ${len - oValueS - oValueE} ${oValueE}`;\n const mOffset = `stroke-dasharray: ${dashArray}; stroke-dashoffset: 0;`;\n svgPath.attr(\"style\", mOffset + svgPath.attr(\"style\"));\n }\n }\n svgPath.attr(\"data-edge\", true);\n svgPath.attr(\"data-et\", \"edge\");\n svgPath.attr(\"data-id\", edge.id);\n svgPath.attr(\"data-points\", pointsStr);\n svgPath.attr(\"data-look\", handleUndefinedAttr(edge.look));\n if (edge.showPoints) {\n lineData.forEach((point3) => {\n elem.append(\"circle\").style(\"stroke\", \"red\").style(\"fill\", \"red\").attr(\"r\", 1).attr(\"cx\", point3.x).attr(\"cy\", point3.y);\n });\n }\n let url = \"\";\n if (getConfig2().flowchart.arrowMarkerAbsolute || getConfig2().state.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\").replace(/\\)/g, \"\\\\)\");\n }\n log.info(\"arrowTypeStart\", edge.arrowTypeStart);\n log.info(\"arrowTypeEnd\", edge.arrowTypeEnd);\n const useMargin = !animatedEdge && edge?.look === \"neo\";\n addEdgeMarkers(svgPath, edge, url, diagramId, diagramType, useMargin, strokeColor);\n const midIndex = Math.floor(points.length / 2);\n const point2 = points[midIndex];\n if (!utils_default.isLabelCoordinateInPath(point2, svgPath.attr(\"d\"))) {\n pointsHasChanged = true;\n }\n let paths = {};\n if (pointsHasChanged) {\n paths.updatedPath = points;\n }\n paths.originalPath = edge.points;\n return paths;\n}, \"insertEdge\");\nfunction generateRoundedPath(points, radius) {\n if (points.length < 2) {\n return \"\";\n }\n let path = \"\";\n const size = points.length;\n const epsilon = 1e-5;\n for (let i = 0; i < size; i++) {\n const currPoint = points[i];\n const prevPoint = points[i - 1];\n const nextPoint = points[i + 1];\n if (i === 0) {\n path += `M${currPoint.x},${currPoint.y}`;\n } else if (i === size - 1) {\n path += `L${currPoint.x},${currPoint.y}`;\n } else {\n const dx1 = currPoint.x - prevPoint.x;\n const dy1 = currPoint.y - prevPoint.y;\n const dx2 = nextPoint.x - currPoint.x;\n const dy2 = nextPoint.y - currPoint.y;\n const len1 = Math.hypot(dx1, dy1);\n const len2 = Math.hypot(dx2, dy2);\n if (len1 < epsilon || len2 < epsilon) {\n path += `L${currPoint.x},${currPoint.y}`;\n continue;\n }\n const nx1 = dx1 / len1;\n const ny1 = dy1 / len1;\n const nx2 = dx2 / len2;\n const ny2 = dy2 / len2;\n const dot = nx1 * nx2 + ny1 * ny2;\n const clampedDot = Math.max(-1, Math.min(1, dot));\n const angle = Math.acos(clampedDot);\n if (angle < epsilon || Math.abs(Math.PI - angle) < epsilon) {\n path += `L${currPoint.x},${currPoint.y}`;\n continue;\n }\n const cutLen = Math.min(radius / Math.sin(angle / 2), len1 / 2, len2 / 2);\n const startX = currPoint.x - nx1 * cutLen;\n const startY = currPoint.y - ny1 * cutLen;\n const endX = currPoint.x + nx2 * cutLen;\n const endY = currPoint.y + ny2 * cutLen;\n path += `L${startX},${startY}`;\n path += `Q${currPoint.x},${currPoint.y} ${endX},${endY}`;\n }\n }\n return path;\n}\n__name(generateRoundedPath, \"generateRoundedPath\");\nfunction calculateDeltaAndAngle(point1, point2) {\n if (!point1 || !point2) {\n return { angle: 0, deltaX: 0, deltaY: 0 };\n }\n const deltaX = point2.x - point1.x;\n const deltaY = point2.y - point1.y;\n const angle = Math.atan2(deltaY, deltaX);\n return { angle, deltaX, deltaY };\n}\n__name(calculateDeltaAndAngle, \"calculateDeltaAndAngle\");\nfunction applyMarkerOffsetsToPoints(points, edge) {\n const newPoints = points.map((point2) => ({ ...point2 }));\n if (points.length >= 2 && markerOffsets[edge.arrowTypeStart]) {\n const offsetValue = markerOffsets[edge.arrowTypeStart];\n const point1 = points[0];\n const point2 = points[1];\n const { angle } = calculateDeltaAndAngle(point1, point2);\n const offsetX = offsetValue * Math.cos(angle);\n const offsetY = offsetValue * Math.sin(angle);\n newPoints[0].x = point1.x + offsetX;\n newPoints[0].y = point1.y + offsetY;\n }\n const n = points.length;\n if (n >= 2 && markerOffsets[edge.arrowTypeEnd]) {\n const offsetValue = markerOffsets[edge.arrowTypeEnd];\n const point1 = points[n - 1];\n const point2 = points[n - 2];\n const { angle } = calculateDeltaAndAngle(point2, point1);\n const offsetX = offsetValue * Math.cos(angle);\n const offsetY = offsetValue * Math.sin(angle);\n newPoints[n - 1].x = point1.x - offsetX;\n newPoints[n - 1].y = point1.y - offsetY;\n }\n return newPoints;\n}\n__name(applyMarkerOffsetsToPoints, \"applyMarkerOffsetsToPoints\");\n\n// src/rendering-util/rendering-elements/markers.js\nvar insertMarkers = /* @__PURE__ */ __name((elem, markerArray, type, id) => {\n markerArray.forEach((markerName) => {\n markers[markerName](elem, type, id);\n });\n}, \"insertMarkers\");\nvar extension = /* @__PURE__ */ __name((elem, type, id) => {\n log.trace(\"Making markers for \", id);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionStart\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"path\").attr(\"d\", \"M 1,7 L18,13 V 1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionEnd\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 V 13 L18,7 Z\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionStart-margin\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"viewBox\", \"0 0 20 14\").append(\"polygon\").attr(\"points\", \"10,7 18,13 18,1\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"0\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionEnd-margin\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 9).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"viewBox\", \"0 0 20 14\").append(\"polygon\").attr(\"points\", \"10,1 10,13 18,7\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"0\");\n}, \"extension\");\nvar composition = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionStart\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionEnd\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionStart-margin\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 15).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"path\").style(\"stroke-width\", 0).attr(\"viewBox\", \"0 0 15 15\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionEnd-margin\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 3.5).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"path\").style(\"stroke-width\", 0).attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n}, \"composition\");\nvar aggregation = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationStart\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationEnd\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationStart-margin\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 15).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"path\").style(\"stroke-width\", 2).attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationEnd-margin\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"path\").style(\"stroke-width\", 2).attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n}, \"aggregation\");\nvar dependency = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyStart\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 6).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 5,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyEnd\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 13).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L14,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyStart-margin\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 4).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"path\").style(\"stroke-width\", 0).attr(\"d\", \"M 5,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyEnd-margin\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 16).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"path\").style(\"stroke-width\", 0).attr(\"d\", \"M 18,7 L9,13 L14,7 L9,1 Z\");\n}, \"dependency\");\nvar lollipop = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopStart\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 13).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"circle\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopEnd\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"circle\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopStart-margin\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 13).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"circle\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6).attr(\"stroke-width\", 2);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopEnd-margin\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"circle\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6).attr(\"stroke-width\", 2);\n}, \"lollipop\");\nvar point = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointEnd\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 5).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointStart\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 4.5).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 5 L 10 10 L 10 0 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointEnd-margin\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 11.5 14\").attr(\"refX\", 11.5).attr(\"refY\", 7).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 10.5).attr(\"markerHeight\", 14).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 0 L 11.5 7 L 0 14 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 0).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointStart-margin\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 11.5 14\").attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11.5).attr(\"markerHeight\", 14).attr(\"orient\", \"auto\").append(\"polygon\").attr(\"points\", \"0,7 11.5,14 11.5,0\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 0).style(\"stroke-dasharray\", \"1,0\");\n}, \"point\");\nvar circle = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleEnd\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 11).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleStart\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", -1).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleEnd-margin\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refY\", 5).attr(\"refX\", 12.25).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 14).attr(\"markerHeight\", 14).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 0).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleStart-margin\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", -2).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 14).attr(\"markerHeight\", 14).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 0).style(\"stroke-dasharray\", \"1,0\");\n}, \"circle\");\nvar cross = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossEnd\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 11 11\").attr(\"refX\", 12).attr(\"refY\", 5.2).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossStart\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 11 11\").attr(\"refX\", -1).attr(\"refY\", 5.2).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossEnd-margin\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 15 15\").attr(\"refX\", 17.7).attr(\"refY\", 7.5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 12).attr(\"markerHeight\", 12).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 L 14,14 M 1,14 L 14,1\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2.5);\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossStart-margin\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 15 15\").attr(\"refX\", -3.5).attr(\"refY\", 7.5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 12).attr(\"markerHeight\", 12).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 L 14,14 M 1,14 L 14,1\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2.5).style(\"stroke-dasharray\", \"1,0\");\n}, \"cross\");\nvar barb = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-barbEnd\").attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 14).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 19,7 L9,13 L14,7 L9,1 Z\");\n}, \"barb\");\nvar barbNeo = /* @__PURE__ */ __name((elem, type, id) => {\n const config = getConfig();\n const { themeVariables } = config;\n const { transitionColor } = themeVariables;\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-barbEnd\").attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 14).attr(\"markerUnits\", \"strokeWidth\").attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 19,7 L11,14 L13,7 L11,0 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-barbEnd-margin\").attr(\"refX\", 17).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 14).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 19,7 L11,14 L13,7 L11,0 Z\").attr(\"fill\", `${transitionColor}`);\n}, \"barbNeo\");\nvar only_one = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-onlyOneStart\").attr(\"class\", \"marker onlyOne \" + type).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M9,0 L9,18 M15,0 L15,18\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-onlyOneEnd\").attr(\"class\", \"marker onlyOne \" + type).attr(\"refX\", 18).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M3,0 L3,18 M9,0 L9,18\");\n}, \"only_one\");\nvar zero_or_one = /* @__PURE__ */ __name((elem, type, id) => {\n const startMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrOneStart\").attr(\"class\", \"marker zeroOrOne \" + type).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n startMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 21).attr(\"cy\", 9).attr(\"r\", 6);\n startMarker.append(\"path\").attr(\"d\", \"M9,0 L9,18\");\n const endMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrOneEnd\").attr(\"class\", \"marker zeroOrOne \" + type).attr(\"refX\", 30).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n endMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 9).attr(\"r\", 6);\n endMarker.append(\"path\").attr(\"d\", \"M21,0 L21,18\");\n}, \"zero_or_one\");\nvar one_or_more = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-oneOrMoreStart\").attr(\"class\", \"marker oneOrMore \" + type).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-oneOrMoreEnd\").attr(\"class\", \"marker oneOrMore \" + type).attr(\"refX\", 27).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18\");\n}, \"one_or_more\");\nvar zero_or_more = /* @__PURE__ */ __name((elem, type, id) => {\n const startMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrMoreStart\").attr(\"class\", \"marker zeroOrMore \" + type).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n startMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 48).attr(\"cy\", 18).attr(\"r\", 6);\n startMarker.append(\"path\").attr(\"d\", \"M0,18 Q18,0 36,18 Q18,36 0,18\");\n const endMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrMoreEnd\").attr(\"class\", \"marker zeroOrMore \" + type).attr(\"refX\", 39).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n endMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 18).attr(\"r\", 6);\n endMarker.append(\"path\").attr(\"d\", \"M21,18 Q39,0 57,18 Q39,36 21,18\");\n}, \"zero_or_more\");\nvar only_one_neo = /* @__PURE__ */ __name((elem, type, id) => {\n const config = getConfig();\n const { themeVariables } = config;\n const { strokeWidth } = themeVariables;\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-onlyOneStart\").attr(\"class\", \"marker onlyOne \" + type).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"path\").attr(\"d\", \"M9,0 L9,18 M15,0 L15,18\").attr(\"stroke-width\", `${strokeWidth}`);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-onlyOneEnd\").attr(\"class\", \"marker onlyOne \" + type).attr(\"refX\", 18).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"path\").attr(\"d\", \"M3,0 L3,18 M9,0 L9,18\").attr(\"stroke-width\", `${strokeWidth}`);\n}, \"only_one_neo\");\nvar zero_or_one_neo = /* @__PURE__ */ __name((elem, type, id) => {\n const config = getConfig();\n const { themeVariables } = config;\n const { strokeWidth, mainBkg } = themeVariables;\n const startMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrOneStart\").attr(\"class\", \"marker zeroOrOne \" + type).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\");\n startMarker.append(\"circle\").attr(\"fill\", mainBkg ?? \"white\").attr(\"cx\", 21).attr(\"cy\", 9).attr(\"stroke-width\", `${strokeWidth}`).attr(\"r\", 6);\n startMarker.append(\"path\").attr(\"d\", \"M9,0 L9,18\").attr(\"stroke-width\", `${strokeWidth}`);\n const endMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrOneEnd\").attr(\"class\", \"marker zeroOrOne \" + type).attr(\"refX\", 30).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"orient\", \"auto\");\n endMarker.append(\"circle\").attr(\"fill\", mainBkg ?? \"white\").attr(\"cx\", 9).attr(\"cy\", 9).attr(\"stroke-width\", `${strokeWidth}`).attr(\"r\", 6);\n endMarker.append(\"path\").attr(\"d\", \"M21,0 L21,18\").attr(\"stroke-width\", `${strokeWidth}`);\n}, \"zero_or_one_neo\");\nvar one_or_more_neo = /* @__PURE__ */ __name((elem, type, id) => {\n const config = getConfig();\n const { themeVariables } = config;\n const { strokeWidth } = themeVariables;\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-oneOrMoreStart\").attr(\"class\", \"marker oneOrMore \" + type).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"path\").attr(\"d\", \"M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27\").attr(\"stroke-width\", `${strokeWidth}`);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-oneOrMoreEnd\").attr(\"class\", \"marker oneOrMore \" + type).attr(\"refX\", 27).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18\").attr(\"stroke-width\", `${strokeWidth}`);\n}, \"one_or_more_neo\");\nvar zero_or_more_neo = /* @__PURE__ */ __name((elem, type, id) => {\n const config = getConfig();\n const { themeVariables } = config;\n const { strokeWidth, mainBkg } = themeVariables;\n const startMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrMoreStart\").attr(\"class\", \"marker zeroOrMore \" + type).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"orient\", \"auto\");\n startMarker.append(\"circle\").attr(\"fill\", mainBkg ?? \"white\").attr(\"cx\", 45.5).attr(\"cy\", 18).attr(\"r\", 6).attr(\"stroke-width\", `${strokeWidth}`);\n startMarker.append(\"path\").attr(\"d\", \"M0,18 Q18,0 36,18 Q18,36 0,18\").attr(\"stroke-width\", `${strokeWidth}`);\n const endMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrMoreEnd\").attr(\"class\", \"marker zeroOrMore \" + type).attr(\"refX\", 39).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\");\n endMarker.append(\"circle\").attr(\"fill\", mainBkg ?? \"white\").attr(\"cx\", 11).attr(\"cy\", 18).attr(\"r\", 6).attr(\"stroke-width\", `${strokeWidth}`);\n endMarker.append(\"path\").attr(\"d\", \"M21,18 Q39,0 57,18 Q39,36 21,18\").attr(\"stroke-width\", `${strokeWidth}`);\n}, \"zero_or_more_neo\");\nvar requirement_arrow = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-requirement_arrowEnd\").attr(\"refX\", 20).attr(\"refY\", 10).attr(\"markerWidth\", 20).attr(\"markerHeight\", 20).attr(\"orient\", \"auto\").append(\"path\").attr(\n \"d\",\n `M0,0\n L20,10\n M20,10\n L0,20`\n );\n}, \"requirement_arrow\");\nvar requirement_arrow_neo = /* @__PURE__ */ __name((elem, type, id) => {\n const config = getConfig();\n const { themeVariables } = config;\n const { strokeWidth } = themeVariables;\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-requirement_arrowEnd\").attr(\"refX\", 20).attr(\"refY\", 10).attr(\"markerWidth\", 20).attr(\"markerHeight\", 20).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"stroke-width\", `${strokeWidth}`).attr(\"viewBox\", \"0 0 25 20\").append(\"path\").attr(\n \"d\",\n `M0,0\n L20,10\n M20,10\n L0,20`\n ).attr(\"stroke-linejoin\", \"miter\");\n}, \"requirement_arrow_neo\");\nvar requirement_contains = /* @__PURE__ */ __name((elem, type, id) => {\n const containsNode = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-requirement_containsStart\").attr(\"refX\", 0).attr(\"refY\", 10).attr(\"markerWidth\", 20).attr(\"markerHeight\", 20).attr(\"orient\", \"auto\").append(\"g\");\n containsNode.append(\"circle\").attr(\"cx\", 10).attr(\"cy\", 10).attr(\"r\", 9).attr(\"fill\", \"none\");\n containsNode.append(\"line\").attr(\"x1\", 1).attr(\"x2\", 19).attr(\"y1\", 10).attr(\"y2\", 10);\n containsNode.append(\"line\").attr(\"y1\", 1).attr(\"y2\", 19).attr(\"x1\", 10).attr(\"x2\", 10);\n}, \"requirement_contains\");\nvar requirement_contains_neo = /* @__PURE__ */ __name((elem, type, id) => {\n const config = getConfig();\n const { themeVariables } = config;\n const { strokeWidth } = themeVariables;\n const containsNode = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-requirement_containsStart\").attr(\"refX\", 0).attr(\"refY\", 10).attr(\"markerWidth\", 20).attr(\"markerHeight\", 20).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"g\");\n containsNode.append(\"circle\").attr(\"cx\", 10).attr(\"cy\", 10).attr(\"r\", 9).attr(\"fill\", \"none\");\n containsNode.append(\"line\").attr(\"x1\", 1).attr(\"x2\", 19).attr(\"y1\", 10).attr(\"y2\", 10);\n containsNode.append(\"line\").attr(\"y1\", 1).attr(\"y2\", 19).attr(\"x1\", 10).attr(\"x2\", 10);\n containsNode.selectAll(\"*\").attr(\"stroke-width\", `${strokeWidth}`);\n}, \"requirement_contains_neo\");\nvar markers = {\n extension,\n composition,\n aggregation,\n dependency,\n lollipop,\n point,\n circle,\n cross,\n barb,\n barbNeo,\n only_one,\n zero_or_one,\n one_or_more,\n zero_or_more,\n only_one_neo,\n zero_or_one_neo,\n one_or_more_neo,\n zero_or_more_neo,\n requirement_arrow,\n requirement_contains,\n requirement_arrow_neo,\n requirement_contains_neo\n};\nvar markers_default = insertMarkers;\n\nexport {\n clear,\n insertEdgeLabel,\n positionEdgeLabel,\n insertEdge,\n markers_default\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"chunk-KSCS5N6A-B2emJsw5.js","names":["select","curveLinear","curveBasis","curveCardinal","curveBumpX","curveBumpY","curveCatmullRom","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","line","rough"],"sources":["../../../../../node_modules/.pnpm/mermaid@11.15.0/node_modules/mermaid/dist/chunks/mermaid.core/chunk-KSCS5N6A.mjs"],"sourcesContent":["import {\n computeLabelTransform,\n getLineFunctionsWithOffset,\n markerOffsets,\n markerOffsets2\n} from \"./chunk-BSJP7CBP.mjs\";\nimport {\n createLabel_default\n} from \"./chunk-3OPIFGDE.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-L5ZTLDWV.mjs\";\nimport {\n isLabelStyle,\n styles2String\n} from \"./chunk-NZK2D7GU.mjs\";\nimport {\n createText\n} from \"./chunk-O5CBEL6O.mjs\";\nimport {\n handleUndefinedAttr,\n utils_default\n} from \"./chunk-5ZQYHXKU.mjs\";\nimport {\n getConfig,\n getConfig2,\n getEffectiveHtmlLabels\n} from \"./chunk-CSCIHK7Q.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/rendering-elements/edges.js\nimport {\n curveBasis,\n curveLinear,\n curveCardinal,\n curveBumpX,\n curveBumpY,\n curveCatmullRom,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore,\n line,\n select\n} from \"d3\";\nimport rough from \"roughjs\";\n\n// src/rendering-util/rendering-elements/edgeMarker.ts\nvar addEdgeMarkers = /* @__PURE__ */ __name((svgPath, edge, url, id, diagramType, useMargin = false, strokeColor) => {\n if (edge.arrowTypeStart) {\n addEdgeMarker(\n svgPath,\n \"start\",\n edge.arrowTypeStart,\n url,\n id,\n diagramType,\n useMargin,\n strokeColor\n );\n }\n if (edge.arrowTypeEnd) {\n addEdgeMarker(svgPath, \"end\", edge.arrowTypeEnd, url, id, diagramType, useMargin, strokeColor);\n }\n}, \"addEdgeMarkers\");\nvar arrowTypesMap = {\n arrow_cross: { type: \"cross\", fill: false },\n arrow_point: { type: \"point\", fill: true },\n arrow_barb: { type: \"barb\", fill: true },\n arrow_barb_neo: { type: \"barb\", fill: true },\n arrow_circle: { type: \"circle\", fill: false },\n aggregation: { type: \"aggregation\", fill: false },\n extension: { type: \"extension\", fill: false },\n composition: { type: \"composition\", fill: true },\n dependency: { type: \"dependency\", fill: true },\n lollipop: { type: \"lollipop\", fill: false },\n only_one: { type: \"onlyOne\", fill: false },\n zero_or_one: { type: \"zeroOrOne\", fill: false },\n one_or_more: { type: \"oneOrMore\", fill: false },\n zero_or_more: { type: \"zeroOrMore\", fill: false },\n requirement_arrow: { type: \"requirement_arrow\", fill: false },\n requirement_contains: { type: \"requirement_contains\", fill: false }\n};\nvar arrowTypesWithMarginSupport = [\n \"cross\",\n \"point\",\n \"circle\",\n \"lollipop\",\n \"aggregation\",\n \"extension\",\n \"composition\",\n \"dependency\",\n \"barb\"\n];\nvar addEdgeMarker = /* @__PURE__ */ __name((svgPath, position, arrowType, url, id, diagramType, useMargin = false, strokeColor) => {\n const arrowTypeInfo = arrowTypesMap[arrowType];\n const marginSupport = arrowTypeInfo && arrowTypesWithMarginSupport.includes(arrowTypeInfo.type);\n if (!arrowTypeInfo) {\n log.warn(`Unknown arrow type: ${arrowType}`);\n return;\n }\n const endMarkerType = arrowTypeInfo.type;\n const suffix = position === \"start\" ? \"Start\" : \"End\";\n const offset = useMargin && marginSupport ? \"-margin\" : \"\";\n const originalMarkerId = `${id}_${diagramType}-${endMarkerType}${suffix}${offset}`;\n if (strokeColor && strokeColor.trim() !== \"\") {\n const colorId = strokeColor.replace(/[^\\dA-Za-z]/g, \"_\");\n const coloredMarkerId = `${originalMarkerId}_${colorId}`;\n if (!document.getElementById(coloredMarkerId)) {\n const originalMarker = document.getElementById(originalMarkerId);\n if (originalMarker) {\n const coloredMarker = originalMarker.cloneNode(true);\n coloredMarker.id = coloredMarkerId;\n const paths = coloredMarker.querySelectorAll(\"path, circle, line\");\n paths.forEach((path) => {\n path.setAttribute(\"stroke\", strokeColor);\n if (arrowTypeInfo.fill) {\n path.setAttribute(\"fill\", strokeColor);\n }\n });\n originalMarker.parentNode?.appendChild(coloredMarker);\n }\n }\n svgPath.attr(`marker-${position}`, `url(${url}#${coloredMarkerId})`);\n } else {\n svgPath.attr(`marker-${position}`, `url(${url}#${originalMarkerId})`);\n }\n}, \"addEdgeMarker\");\n\n// src/rendering-util/rendering-elements/edges.js\nvar resolveEdgeCurveType = /* @__PURE__ */ __name((edgeCurve) => {\n return typeof edgeCurve === \"string\" ? edgeCurve : getConfig2()?.flowchart?.curve;\n}, \"resolveEdgeCurveType\");\nvar edgeLabels = /* @__PURE__ */ new Map();\nvar terminalLabels = /* @__PURE__ */ new Map();\nvar clear = /* @__PURE__ */ __name(() => {\n edgeLabels.clear();\n terminalLabels.clear();\n}, \"clear\");\nvar getLabelStyles = /* @__PURE__ */ __name((styleArray) => {\n if (!styleArray) {\n return \"\";\n }\n if (typeof styleArray === \"string\") {\n return styleArray;\n }\n return styleArray.reduce((acc, style) => acc + \";\" + style, \"\");\n}, \"getLabelStyles\");\nvar insertEdgeLabel = /* @__PURE__ */ __name(async (elem, edge) => {\n const config = getConfig2();\n let useHtmlLabels = getEffectiveHtmlLabels(config);\n const { labelStyles } = styles2String(edge);\n edge.labelStyle = labelStyles;\n const edgeLabel = elem.insert(\"g\").attr(\"class\", \"edgeLabel\");\n const label = edgeLabel.insert(\"g\").attr(\"class\", \"label\").attr(\"data-id\", edge.id);\n const isMarkdown = edge.labelType === \"markdown\";\n const markdownWidth = void 0;\n const labelElement = await createText(\n elem,\n edge.label,\n {\n style: getLabelStyles(edge.labelStyle),\n useHtmlLabels,\n addSvgBackground: true,\n isNode: false,\n markdown: isMarkdown,\n // Plain text edge labels should auto-wrap, markdown edge labels respect markdownAutoWrap config\n width: isMarkdown ? markdownWidth : void 0\n },\n config\n );\n label.node().appendChild(labelElement);\n log.info(\"abc82\", edge, edge.labelType);\n let bbox = labelElement.getBBox();\n let transformBbox = bbox;\n if (useHtmlLabels) {\n const div = labelElement.children[0];\n const dv = select(labelElement);\n bbox = div.getBoundingClientRect();\n transformBbox = bbox;\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n } else {\n const textEl = select(labelElement).select(\"text\").node();\n if (textEl && typeof textEl.getBBox === \"function\") {\n transformBbox = textEl.getBBox();\n }\n }\n label.attr(\"transform\", computeLabelTransform(transformBbox, useHtmlLabels));\n edgeLabels.set(edge.id, edgeLabel);\n edge.width = bbox.width;\n edge.height = bbox.height;\n let fo;\n if (edge.startLabelLeft) {\n const startEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n const startLabelElement = await createLabel_default(\n inner,\n edge.startLabelLeft,\n getLabelStyles(edge.labelStyle) || \"\",\n false,\n false\n );\n fo = startLabelElement;\n let slBox = startLabelElement.getBBox();\n if (useHtmlLabels) {\n const div = startLabelElement.children[0];\n const dv = select(startLabelElement);\n slBox = div.getBoundingClientRect();\n dv.attr(\"width\", slBox.width);\n dv.attr(\"height\", slBox.height);\n }\n inner.attr(\"transform\", computeLabelTransform(slBox, useHtmlLabels));\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).startLeft = startEdgeLabelLeft;\n setTerminalWidth(fo, edge.startLabelLeft);\n }\n if (edge.startLabelRight) {\n const startEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n const startLabelElement = await createLabel_default(\n inner,\n edge.startLabelRight,\n getLabelStyles(edge.labelStyle) || \"\",\n false,\n false\n );\n fo = startLabelElement;\n let slBox = startLabelElement.getBBox();\n if (useHtmlLabels) {\n const div = startLabelElement.children[0];\n const dv = select(startLabelElement);\n slBox = div.getBoundingClientRect();\n dv.attr(\"width\", slBox.width);\n dv.attr(\"height\", slBox.height);\n }\n inner.attr(\"transform\", computeLabelTransform(slBox, useHtmlLabels));\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).startRight = startEdgeLabelRight;\n setTerminalWidth(fo, edge.startLabelRight);\n }\n if (edge.endLabelLeft) {\n const endEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n const endLabelElement = await createLabel_default(\n endEdgeLabelLeft,\n edge.endLabelLeft,\n getLabelStyles(edge.labelStyle) || \"\",\n false,\n false\n );\n fo = endLabelElement;\n let slBox = endLabelElement.getBBox();\n if (useHtmlLabels) {\n const div = endLabelElement.children[0];\n const dv = select(endLabelElement);\n slBox = div.getBoundingClientRect();\n dv.attr(\"width\", slBox.width);\n dv.attr(\"height\", slBox.height);\n }\n inner.attr(\"transform\", computeLabelTransform(slBox, useHtmlLabels));\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).endLeft = endEdgeLabelLeft;\n setTerminalWidth(fo, edge.endLabelLeft);\n }\n if (edge.endLabelRight) {\n const endEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n const endLabelElement = await createLabel_default(\n endEdgeLabelRight,\n edge.endLabelRight,\n getLabelStyles(edge.labelStyle) || \"\",\n false,\n false\n );\n fo = endLabelElement;\n let slBox = endLabelElement.getBBox();\n if (useHtmlLabels) {\n const div = endLabelElement.children[0];\n const dv = select(endLabelElement);\n slBox = div.getBoundingClientRect();\n dv.attr(\"width\", slBox.width);\n dv.attr(\"height\", slBox.height);\n }\n inner.attr(\"transform\", computeLabelTransform(slBox, useHtmlLabels));\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).endRight = endEdgeLabelRight;\n setTerminalWidth(fo, edge.endLabelRight);\n }\n return labelElement;\n}, \"insertEdgeLabel\");\nfunction setTerminalWidth(fo, value) {\n if (getEffectiveHtmlLabels(getConfig2()) && fo) {\n fo.style.width = value.length * 9 + \"px\";\n fo.style.height = \"12px\";\n }\n}\n__name(setTerminalWidth, \"setTerminalWidth\");\nvar positionEdgeLabel = /* @__PURE__ */ __name((edge, paths) => {\n log.debug(\"Moving label abc88 \", edge.id, edge.label, edgeLabels.get(edge.id), paths);\n let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n const siteConfig = getConfig2();\n const { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);\n if (edge.label) {\n const el = edgeLabels.get(edge.id);\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcLabelPosition(path);\n log.debug(\n \"Moving label \" + edge.label + \" from (\",\n x,\n \",\",\n y,\n \") to (\",\n pos.x,\n \",\",\n pos.y,\n \") abc88\"\n );\n if (paths.updatedPath) {\n x = pos.x;\n y = pos.y;\n }\n }\n el.attr(\"transform\", `translate(${x}, ${y + subGraphTitleTotalMargin / 2})`);\n }\n if (edge.startLabelLeft) {\n const el = terminalLabels.get(edge.id).startLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, \"start_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.startLabelRight) {\n const el = terminalLabels.get(edge.id).startRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(\n edge.arrowTypeStart ? 10 : 0,\n \"start_right\",\n path\n );\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelLeft) {\n const el = terminalLabels.get(edge.id).endLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelRight) {\n const el = terminalLabels.get(edge.id).endRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_right\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n}, \"positionEdgeLabel\");\nvar outsideNode = /* @__PURE__ */ __name((node, point2) => {\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(point2.x - x);\n const dy = Math.abs(point2.y - y);\n const w = node.width / 2;\n const h = node.height / 2;\n return dx >= w || dy >= h;\n}, \"outsideNode\");\nvar intersection = /* @__PURE__ */ __name((node, outsidePoint, insidePoint) => {\n log.debug(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(outsidePoint)}\n insidePoint : ${JSON.stringify(insidePoint)}\n node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(x - insidePoint.x);\n const w = node.width / 2;\n let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;\n const h = node.height / 2;\n const Q = Math.abs(outsidePoint.y - insidePoint.y);\n const R = Math.abs(outsidePoint.x - insidePoint.x);\n if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) {\n let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n r = R * q / Q;\n const res = {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q\n };\n if (r === 0) {\n res.x = outsidePoint.x;\n res.y = outsidePoint.y;\n }\n if (R === 0) {\n res.x = outsidePoint.x;\n }\n if (Q === 0) {\n res.y = outsidePoint.y;\n }\n log.debug(`abc89 top/bottom calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);\n return res;\n } else {\n if (insidePoint.x < outsidePoint.x) {\n r = outsidePoint.x - w - x;\n } else {\n r = x - w - outsidePoint.x;\n }\n let q = Q * r / R;\n let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;\n let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;\n log.debug(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });\n if (r === 0) {\n _x = outsidePoint.x;\n _y = outsidePoint.y;\n }\n if (R === 0) {\n _x = outsidePoint.x;\n }\n if (Q === 0) {\n _y = outsidePoint.y;\n }\n return { x: _x, y: _y };\n }\n}, \"intersection\");\nvar cutPathAtIntersect = /* @__PURE__ */ __name((_points, boundaryNode) => {\n log.warn(\"abc88 cutPathAtIntersect\", _points, boundaryNode);\n let points = [];\n let lastPointOutside = _points[0];\n let isInside = false;\n _points.forEach((point2) => {\n log.info(\"abc88 checking point\", point2, boundaryNode);\n if (!outsideNode(boundaryNode, point2) && !isInside) {\n const inter = intersection(boundaryNode, lastPointOutside, point2);\n log.debug(\"abc88 inside\", point2, lastPointOutside, inter);\n log.debug(\"abc88 intersection\", inter, boundaryNode);\n let pointPresent = false;\n points.forEach((p) => {\n pointPresent = pointPresent || p.x === inter.x && p.y === inter.y;\n });\n if (!points.some((e) => e.x === inter.x && e.y === inter.y)) {\n points.push(inter);\n } else {\n log.warn(\"abc88 no intersect\", inter, points);\n }\n isInside = true;\n } else {\n log.warn(\"abc88 outside\", point2, lastPointOutside);\n lastPointOutside = point2;\n if (!isInside) {\n points.push(point2);\n }\n }\n });\n log.debug(\"returning points\", points);\n return points;\n}, \"cutPathAtIntersect\");\nfunction extractCornerPoints(points) {\n const cornerPoints = [];\n const cornerPointPositions = [];\n for (let i = 1; i < points.length - 1; i++) {\n const prev = points[i - 1];\n const curr = points[i];\n const next = points[i + 1];\n if (prev.x === curr.x && curr.y === next.y && Math.abs(curr.x - next.x) > 5 && Math.abs(curr.y - prev.y) > 5) {\n cornerPoints.push(curr);\n cornerPointPositions.push(i);\n } else if (prev.y === curr.y && curr.x === next.x && Math.abs(curr.x - prev.x) > 5 && Math.abs(curr.y - next.y) > 5) {\n cornerPoints.push(curr);\n cornerPointPositions.push(i);\n }\n }\n return { cornerPoints, cornerPointPositions };\n}\n__name(extractCornerPoints, \"extractCornerPoints\");\nvar findAdjacentPoint = /* @__PURE__ */ __name(function(pointA, pointB, distance) {\n const xDiff = pointB.x - pointA.x;\n const yDiff = pointB.y - pointA.y;\n const length = Math.sqrt(xDiff * xDiff + yDiff * yDiff);\n const ratio = distance / length;\n return { x: pointB.x - ratio * xDiff, y: pointB.y - ratio * yDiff };\n}, \"findAdjacentPoint\");\nvar fixCorners = /* @__PURE__ */ __name(function(lineData) {\n const { cornerPointPositions } = extractCornerPoints(lineData);\n const newLineData = [];\n for (let i = 0; i < lineData.length; i++) {\n if (cornerPointPositions.includes(i)) {\n const prevPoint = lineData[i - 1];\n const nextPoint = lineData[i + 1];\n const cornerPoint = lineData[i];\n const newPrevPoint = findAdjacentPoint(prevPoint, cornerPoint, 5);\n const newNextPoint = findAdjacentPoint(nextPoint, cornerPoint, 5);\n const xDiff = newNextPoint.x - newPrevPoint.x;\n const yDiff = newNextPoint.y - newPrevPoint.y;\n newLineData.push(newPrevPoint);\n const a = Math.sqrt(2) * 2;\n let newCornerPoint = { x: cornerPoint.x, y: cornerPoint.y };\n if (Math.abs(nextPoint.x - prevPoint.x) > 10 && Math.abs(nextPoint.y - prevPoint.y) >= 10) {\n log.debug(\n \"Corner point fixing\",\n Math.abs(nextPoint.x - prevPoint.x),\n Math.abs(nextPoint.y - prevPoint.y)\n );\n const r = 5;\n if (cornerPoint.x === newPrevPoint.x) {\n newCornerPoint = {\n x: xDiff < 0 ? newPrevPoint.x - r + a : newPrevPoint.x + r - a,\n y: yDiff < 0 ? newPrevPoint.y - a : newPrevPoint.y + a\n };\n } else {\n newCornerPoint = {\n x: xDiff < 0 ? newPrevPoint.x - a : newPrevPoint.x + a,\n y: yDiff < 0 ? newPrevPoint.y - r + a : newPrevPoint.y + r - a\n };\n }\n } else {\n log.debug(\n \"Corner point skipping fixing\",\n Math.abs(nextPoint.x - prevPoint.x),\n Math.abs(nextPoint.y - prevPoint.y)\n );\n }\n newLineData.push(newCornerPoint, newNextPoint);\n } else {\n newLineData.push(lineData[i]);\n }\n }\n return newLineData;\n}, \"fixCorners\");\nvar generateDashArray = /* @__PURE__ */ __name((len, oValueS, oValueE) => {\n const middleLength = len - oValueS - oValueE;\n const dashLength = 2;\n const gapLength = 2;\n const dashGapPairLength = dashLength + gapLength;\n const numberOfPairs = Math.floor(middleLength / dashGapPairLength);\n const middlePattern = Array(numberOfPairs).fill(`${dashLength} ${gapLength}`).join(\" \");\n const dashArray = `0 ${oValueS} ${middlePattern} ${oValueE}`;\n return dashArray;\n}, \"generateDashArray\");\nvar insertEdge = /* @__PURE__ */ __name(function(elem, edge, clusterDb, diagramType, startNode, endNode, diagramId, skipIntersect = false) {\n if (!diagramId) {\n throw new Error(\n `insertEdge: missing diagramId for edge \"${edge.id}\" \\u2014 edge IDs require a diagram prefix for uniqueness`\n );\n }\n const { handDrawnSeed } = getConfig2();\n let points = edge.points;\n let pointsHasChanged = false;\n const tail = startNode;\n var head = endNode;\n const edgeClassStyles = [];\n for (const key in edge.cssCompiledStyles) {\n if (isLabelStyle(key)) {\n continue;\n }\n edgeClassStyles.push(edge.cssCompiledStyles[key]);\n }\n log.debug(\"UIO intersect check\", edge.points, head.x, tail.x);\n if (head.intersect && tail.intersect && !skipIntersect) {\n points = points.slice(1, edge.points.length - 1);\n points.unshift(tail.intersect(points[0]));\n log.debug(\n \"Last point UIO\",\n edge.start,\n \"-->\",\n edge.end,\n points[points.length - 1],\n head,\n head.intersect(points[points.length - 1])\n );\n points.push(head.intersect(points[points.length - 1]));\n }\n const pointsStr = btoa(JSON.stringify(points));\n if (edge.toCluster) {\n log.info(\"to cluster abc88\", clusterDb.get(edge.toCluster));\n points = cutPathAtIntersect(edge.points, clusterDb.get(edge.toCluster).node);\n pointsHasChanged = true;\n }\n if (edge.fromCluster) {\n log.debug(\n \"from cluster abc88\",\n clusterDb.get(edge.fromCluster),\n JSON.stringify(points, null, 2)\n );\n points = cutPathAtIntersect(points.reverse(), clusterDb.get(edge.fromCluster).node).reverse();\n pointsHasChanged = true;\n }\n let lineData = points.filter((p) => !Number.isNaN(p.y));\n const edgeCurveType = resolveEdgeCurveType(edge.curve);\n if (edgeCurveType !== \"rounded\") {\n lineData = fixCorners(lineData);\n }\n let curve = curveLinear;\n switch (edgeCurveType) {\n case \"linear\":\n curve = curveLinear;\n break;\n case \"basis\":\n curve = curveBasis;\n break;\n case \"cardinal\":\n curve = curveCardinal;\n break;\n case \"bumpX\":\n curve = curveBumpX;\n break;\n case \"bumpY\":\n curve = curveBumpY;\n break;\n case \"catmullRom\":\n curve = curveCatmullRom;\n break;\n case \"monotoneX\":\n curve = curveMonotoneX;\n break;\n case \"monotoneY\":\n curve = curveMonotoneY;\n break;\n case \"natural\":\n curve = curveNatural;\n break;\n case \"step\":\n curve = curveStep;\n break;\n case \"stepAfter\":\n curve = curveStepAfter;\n break;\n case \"stepBefore\":\n curve = curveStepBefore;\n break;\n case \"rounded\":\n curve = curveLinear;\n break;\n default:\n curve = curveBasis;\n }\n const { x, y } = getLineFunctionsWithOffset(edge);\n const lineFunction = line().x(x).y(y).curve(curve);\n let strokeClasses;\n switch (edge.thickness) {\n case \"normal\":\n strokeClasses = \"edge-thickness-normal\";\n break;\n case \"thick\":\n strokeClasses = \"edge-thickness-thick\";\n break;\n case \"invisible\":\n strokeClasses = \"edge-thickness-invisible\";\n break;\n default:\n strokeClasses = \"edge-thickness-normal\";\n }\n switch (edge.pattern) {\n case \"solid\":\n strokeClasses += \" edge-pattern-solid\";\n break;\n case \"dotted\":\n strokeClasses += \" edge-pattern-dotted\";\n break;\n case \"dashed\":\n strokeClasses += \" edge-pattern-dashed\";\n break;\n default:\n strokeClasses += \" edge-pattern-solid\";\n }\n let svgPath;\n let linePath = edgeCurveType === \"rounded\" ? generateRoundedPath(applyMarkerOffsetsToPoints(lineData, edge), 5) : lineFunction(lineData);\n const edgeStyles = Array.isArray(edge.style) ? edge.style : [edge.style];\n let strokeColor = edgeStyles.find((style) => style?.startsWith(\"stroke:\"));\n let animationClass = \"\";\n if (edge.animate) {\n animationClass = \"edge-animation-fast\";\n }\n if (edge.animation) {\n animationClass = \"edge-animation-\" + edge.animation;\n }\n let animatedEdge = false;\n if (edge.look === \"handDrawn\") {\n const rc = rough.svg(elem);\n Object.assign([], lineData);\n const svgPathNode = rc.path(linePath, {\n roughness: 0.3,\n seed: handDrawnSeed\n });\n strokeClasses += \" transition\";\n svgPath = select(svgPathNode).select(\"path\").attr(\"id\", `${diagramId}-${edge.id}`).attr(\n \"class\",\n \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\") + (animationClass ? \" \" + animationClass : \"\")\n ).attr(\"style\", edgeStyles ? edgeStyles.reduce((acc, style) => acc + \";\" + style, \"\") : \"\");\n let d = svgPath.attr(\"d\");\n svgPath.attr(\"d\", d);\n elem.node().appendChild(svgPath.node());\n } else {\n const stylesFromClasses = edgeClassStyles.join(\";\");\n const styles = edgeStyles ? edgeStyles.reduce((acc, style) => acc + style + \";\", \"\") : \"\";\n const pathStyle = (stylesFromClasses ? stylesFromClasses + \";\" + styles + \";\" : styles) + \";\" + (edgeStyles ? edgeStyles.reduce((acc, style) => acc + \";\" + style, \"\") : \"\");\n svgPath = elem.append(\"path\").attr(\"d\", linePath).attr(\"id\", `${diagramId}-${edge.id}`).attr(\n \"class\",\n \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\") + (animationClass ? \" \" + animationClass : \"\")\n ).attr(\"style\", pathStyle);\n strokeColor = pathStyle.match(/stroke:([^;]+)/)?.[1];\n animatedEdge = edge.animate === true || !!edge.animation || stylesFromClasses.includes(\"animation\");\n const pathNode = svgPath.node();\n const len = typeof pathNode.getTotalLength === \"function\" ? pathNode.getTotalLength() : 0;\n const oValueS = markerOffsets2[edge.arrowTypeStart] || 0;\n const oValueE = markerOffsets2[edge.arrowTypeEnd] || 0;\n if (edge.look === \"neo\" && !animatedEdge) {\n const dashArray = edge.pattern === \"dotted\" || edge.pattern === \"dashed\" ? generateDashArray(len, oValueS, oValueE) : `0 ${oValueS} ${len - oValueS - oValueE} ${oValueE}`;\n const mOffset = `stroke-dasharray: ${dashArray}; stroke-dashoffset: 0;`;\n svgPath.attr(\"style\", mOffset + svgPath.attr(\"style\"));\n }\n }\n svgPath.attr(\"data-edge\", true);\n svgPath.attr(\"data-et\", \"edge\");\n svgPath.attr(\"data-id\", edge.id);\n svgPath.attr(\"data-points\", pointsStr);\n svgPath.attr(\"data-look\", handleUndefinedAttr(edge.look));\n if (edge.showPoints) {\n lineData.forEach((point3) => {\n elem.append(\"circle\").style(\"stroke\", \"red\").style(\"fill\", \"red\").attr(\"r\", 1).attr(\"cx\", point3.x).attr(\"cy\", point3.y);\n });\n }\n let url = \"\";\n if (getConfig2().flowchart.arrowMarkerAbsolute || getConfig2().state.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\").replace(/\\)/g, \"\\\\)\");\n }\n log.info(\"arrowTypeStart\", edge.arrowTypeStart);\n log.info(\"arrowTypeEnd\", edge.arrowTypeEnd);\n const useMargin = !animatedEdge && edge?.look === \"neo\";\n addEdgeMarkers(svgPath, edge, url, diagramId, diagramType, useMargin, strokeColor);\n const midIndex = Math.floor(points.length / 2);\n const point2 = points[midIndex];\n if (!utils_default.isLabelCoordinateInPath(point2, svgPath.attr(\"d\"))) {\n pointsHasChanged = true;\n }\n let paths = {};\n if (pointsHasChanged) {\n paths.updatedPath = points;\n }\n paths.originalPath = edge.points;\n return paths;\n}, \"insertEdge\");\nfunction generateRoundedPath(points, radius) {\n if (points.length < 2) {\n return \"\";\n }\n let path = \"\";\n const size = points.length;\n const epsilon = 1e-5;\n for (let i = 0; i < size; i++) {\n const currPoint = points[i];\n const prevPoint = points[i - 1];\n const nextPoint = points[i + 1];\n if (i === 0) {\n path += `M${currPoint.x},${currPoint.y}`;\n } else if (i === size - 1) {\n path += `L${currPoint.x},${currPoint.y}`;\n } else {\n const dx1 = currPoint.x - prevPoint.x;\n const dy1 = currPoint.y - prevPoint.y;\n const dx2 = nextPoint.x - currPoint.x;\n const dy2 = nextPoint.y - currPoint.y;\n const len1 = Math.hypot(dx1, dy1);\n const len2 = Math.hypot(dx2, dy2);\n if (len1 < epsilon || len2 < epsilon) {\n path += `L${currPoint.x},${currPoint.y}`;\n continue;\n }\n const nx1 = dx1 / len1;\n const ny1 = dy1 / len1;\n const nx2 = dx2 / len2;\n const ny2 = dy2 / len2;\n const dot = nx1 * nx2 + ny1 * ny2;\n const clampedDot = Math.max(-1, Math.min(1, dot));\n const angle = Math.acos(clampedDot);\n if (angle < epsilon || Math.abs(Math.PI - angle) < epsilon) {\n path += `L${currPoint.x},${currPoint.y}`;\n continue;\n }\n const cutLen = Math.min(radius / Math.sin(angle / 2), len1 / 2, len2 / 2);\n const startX = currPoint.x - nx1 * cutLen;\n const startY = currPoint.y - ny1 * cutLen;\n const endX = currPoint.x + nx2 * cutLen;\n const endY = currPoint.y + ny2 * cutLen;\n path += `L${startX},${startY}`;\n path += `Q${currPoint.x},${currPoint.y} ${endX},${endY}`;\n }\n }\n return path;\n}\n__name(generateRoundedPath, \"generateRoundedPath\");\nfunction calculateDeltaAndAngle(point1, point2) {\n if (!point1 || !point2) {\n return { angle: 0, deltaX: 0, deltaY: 0 };\n }\n const deltaX = point2.x - point1.x;\n const deltaY = point2.y - point1.y;\n const angle = Math.atan2(deltaY, deltaX);\n return { angle, deltaX, deltaY };\n}\n__name(calculateDeltaAndAngle, \"calculateDeltaAndAngle\");\nfunction applyMarkerOffsetsToPoints(points, edge) {\n const newPoints = points.map((point2) => ({ ...point2 }));\n if (points.length >= 2 && markerOffsets[edge.arrowTypeStart]) {\n const offsetValue = markerOffsets[edge.arrowTypeStart];\n const point1 = points[0];\n const point2 = points[1];\n const { angle } = calculateDeltaAndAngle(point1, point2);\n const offsetX = offsetValue * Math.cos(angle);\n const offsetY = offsetValue * Math.sin(angle);\n newPoints[0].x = point1.x + offsetX;\n newPoints[0].y = point1.y + offsetY;\n }\n const n = points.length;\n if (n >= 2 && markerOffsets[edge.arrowTypeEnd]) {\n const offsetValue = markerOffsets[edge.arrowTypeEnd];\n const point1 = points[n - 1];\n const point2 = points[n - 2];\n const { angle } = calculateDeltaAndAngle(point2, point1);\n const offsetX = offsetValue * Math.cos(angle);\n const offsetY = offsetValue * Math.sin(angle);\n newPoints[n - 1].x = point1.x - offsetX;\n newPoints[n - 1].y = point1.y - offsetY;\n }\n return newPoints;\n}\n__name(applyMarkerOffsetsToPoints, \"applyMarkerOffsetsToPoints\");\n\n// src/rendering-util/rendering-elements/markers.js\nvar insertMarkers = /* @__PURE__ */ __name((elem, markerArray, type, id) => {\n markerArray.forEach((markerName) => {\n markers[markerName](elem, type, id);\n });\n}, \"insertMarkers\");\nvar extension = /* @__PURE__ */ __name((elem, type, id) => {\n log.trace(\"Making markers for \", id);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionStart\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"path\").attr(\"d\", \"M 1,7 L18,13 V 1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionEnd\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 V 13 L18,7 Z\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionStart-margin\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"viewBox\", \"0 0 20 14\").append(\"polygon\").attr(\"points\", \"10,7 18,13 18,1\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"0\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionEnd-margin\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 9).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"viewBox\", \"0 0 20 14\").append(\"polygon\").attr(\"points\", \"10,1 10,13 18,7\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"0\");\n}, \"extension\");\nvar composition = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionStart\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionEnd\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionStart-margin\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 15).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"path\").style(\"stroke-width\", 0).attr(\"viewBox\", \"0 0 15 15\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionEnd-margin\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 3.5).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"path\").style(\"stroke-width\", 0).attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n}, \"composition\");\nvar aggregation = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationStart\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationEnd\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationStart-margin\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 15).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"path\").style(\"stroke-width\", 2).attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationEnd-margin\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"path\").style(\"stroke-width\", 2).attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n}, \"aggregation\");\nvar dependency = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyStart\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 6).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 5,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyEnd\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 13).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L14,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyStart-margin\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 4).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"path\").style(\"stroke-width\", 0).attr(\"d\", \"M 5,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyEnd-margin\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 16).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"path\").style(\"stroke-width\", 0).attr(\"d\", \"M 18,7 L9,13 L14,7 L9,1 Z\");\n}, \"dependency\");\nvar lollipop = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopStart\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 13).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"circle\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopEnd\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"circle\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopStart-margin\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 13).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"circle\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6).attr(\"stroke-width\", 2);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopEnd-margin\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"circle\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6).attr(\"stroke-width\", 2);\n}, \"lollipop\");\nvar point = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointEnd\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 5).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointStart\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 4.5).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 5 L 10 10 L 10 0 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointEnd-margin\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 11.5 14\").attr(\"refX\", 11.5).attr(\"refY\", 7).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 10.5).attr(\"markerHeight\", 14).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 0 L 11.5 7 L 0 14 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 0).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointStart-margin\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 11.5 14\").attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11.5).attr(\"markerHeight\", 14).attr(\"orient\", \"auto\").append(\"polygon\").attr(\"points\", \"0,7 11.5,14 11.5,0\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 0).style(\"stroke-dasharray\", \"1,0\");\n}, \"point\");\nvar circle = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleEnd\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 11).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleStart\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", -1).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleEnd-margin\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refY\", 5).attr(\"refX\", 12.25).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 14).attr(\"markerHeight\", 14).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 0).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleStart-margin\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", -2).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 14).attr(\"markerHeight\", 14).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 0).style(\"stroke-dasharray\", \"1,0\");\n}, \"circle\");\nvar cross = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossEnd\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 11 11\").attr(\"refX\", 12).attr(\"refY\", 5.2).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossStart\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 11 11\").attr(\"refX\", -1).attr(\"refY\", 5.2).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossEnd-margin\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 15 15\").attr(\"refX\", 17.7).attr(\"refY\", 7.5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 12).attr(\"markerHeight\", 12).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 L 14,14 M 1,14 L 14,1\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2.5);\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossStart-margin\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 15 15\").attr(\"refX\", -3.5).attr(\"refY\", 7.5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 12).attr(\"markerHeight\", 12).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 L 14,14 M 1,14 L 14,1\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2.5).style(\"stroke-dasharray\", \"1,0\");\n}, \"cross\");\nvar barb = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-barbEnd\").attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 14).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 19,7 L9,13 L14,7 L9,1 Z\");\n}, \"barb\");\nvar barbNeo = /* @__PURE__ */ __name((elem, type, id) => {\n const config = getConfig();\n const { themeVariables } = config;\n const { transitionColor } = themeVariables;\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-barbEnd\").attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 14).attr(\"markerUnits\", \"strokeWidth\").attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 19,7 L11,14 L13,7 L11,0 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-barbEnd-margin\").attr(\"refX\", 17).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 14).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 19,7 L11,14 L13,7 L11,0 Z\").attr(\"fill\", `${transitionColor}`);\n}, \"barbNeo\");\nvar only_one = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-onlyOneStart\").attr(\"class\", \"marker onlyOne \" + type).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M9,0 L9,18 M15,0 L15,18\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-onlyOneEnd\").attr(\"class\", \"marker onlyOne \" + type).attr(\"refX\", 18).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M3,0 L3,18 M9,0 L9,18\");\n}, \"only_one\");\nvar zero_or_one = /* @__PURE__ */ __name((elem, type, id) => {\n const startMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrOneStart\").attr(\"class\", \"marker zeroOrOne \" + type).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n startMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 21).attr(\"cy\", 9).attr(\"r\", 6);\n startMarker.append(\"path\").attr(\"d\", \"M9,0 L9,18\");\n const endMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrOneEnd\").attr(\"class\", \"marker zeroOrOne \" + type).attr(\"refX\", 30).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n endMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 9).attr(\"r\", 6);\n endMarker.append(\"path\").attr(\"d\", \"M21,0 L21,18\");\n}, \"zero_or_one\");\nvar one_or_more = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-oneOrMoreStart\").attr(\"class\", \"marker oneOrMore \" + type).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-oneOrMoreEnd\").attr(\"class\", \"marker oneOrMore \" + type).attr(\"refX\", 27).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18\");\n}, \"one_or_more\");\nvar zero_or_more = /* @__PURE__ */ __name((elem, type, id) => {\n const startMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrMoreStart\").attr(\"class\", \"marker zeroOrMore \" + type).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n startMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 48).attr(\"cy\", 18).attr(\"r\", 6);\n startMarker.append(\"path\").attr(\"d\", \"M0,18 Q18,0 36,18 Q18,36 0,18\");\n const endMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrMoreEnd\").attr(\"class\", \"marker zeroOrMore \" + type).attr(\"refX\", 39).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n endMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 18).attr(\"r\", 6);\n endMarker.append(\"path\").attr(\"d\", \"M21,18 Q39,0 57,18 Q39,36 21,18\");\n}, \"zero_or_more\");\nvar only_one_neo = /* @__PURE__ */ __name((elem, type, id) => {\n const config = getConfig();\n const { themeVariables } = config;\n const { strokeWidth } = themeVariables;\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-onlyOneStart\").attr(\"class\", \"marker onlyOne \" + type).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"path\").attr(\"d\", \"M9,0 L9,18 M15,0 L15,18\").attr(\"stroke-width\", `${strokeWidth}`);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-onlyOneEnd\").attr(\"class\", \"marker onlyOne \" + type).attr(\"refX\", 18).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"path\").attr(\"d\", \"M3,0 L3,18 M9,0 L9,18\").attr(\"stroke-width\", `${strokeWidth}`);\n}, \"only_one_neo\");\nvar zero_or_one_neo = /* @__PURE__ */ __name((elem, type, id) => {\n const config = getConfig();\n const { themeVariables } = config;\n const { strokeWidth, mainBkg } = themeVariables;\n const startMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrOneStart\").attr(\"class\", \"marker zeroOrOne \" + type).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\");\n startMarker.append(\"circle\").attr(\"fill\", mainBkg ?? \"white\").attr(\"cx\", 21).attr(\"cy\", 9).attr(\"stroke-width\", `${strokeWidth}`).attr(\"r\", 6);\n startMarker.append(\"path\").attr(\"d\", \"M9,0 L9,18\").attr(\"stroke-width\", `${strokeWidth}`);\n const endMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrOneEnd\").attr(\"class\", \"marker zeroOrOne \" + type).attr(\"refX\", 30).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"orient\", \"auto\");\n endMarker.append(\"circle\").attr(\"fill\", mainBkg ?? \"white\").attr(\"cx\", 9).attr(\"cy\", 9).attr(\"stroke-width\", `${strokeWidth}`).attr(\"r\", 6);\n endMarker.append(\"path\").attr(\"d\", \"M21,0 L21,18\").attr(\"stroke-width\", `${strokeWidth}`);\n}, \"zero_or_one_neo\");\nvar one_or_more_neo = /* @__PURE__ */ __name((elem, type, id) => {\n const config = getConfig();\n const { themeVariables } = config;\n const { strokeWidth } = themeVariables;\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-oneOrMoreStart\").attr(\"class\", \"marker oneOrMore \" + type).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"path\").attr(\"d\", \"M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27\").attr(\"stroke-width\", `${strokeWidth}`);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-oneOrMoreEnd\").attr(\"class\", \"marker oneOrMore \" + type).attr(\"refX\", 27).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18\").attr(\"stroke-width\", `${strokeWidth}`);\n}, \"one_or_more_neo\");\nvar zero_or_more_neo = /* @__PURE__ */ __name((elem, type, id) => {\n const config = getConfig();\n const { themeVariables } = config;\n const { strokeWidth, mainBkg } = themeVariables;\n const startMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrMoreStart\").attr(\"class\", \"marker zeroOrMore \" + type).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"orient\", \"auto\");\n startMarker.append(\"circle\").attr(\"fill\", mainBkg ?? \"white\").attr(\"cx\", 45.5).attr(\"cy\", 18).attr(\"r\", 6).attr(\"stroke-width\", `${strokeWidth}`);\n startMarker.append(\"path\").attr(\"d\", \"M0,18 Q18,0 36,18 Q18,36 0,18\").attr(\"stroke-width\", `${strokeWidth}`);\n const endMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrMoreEnd\").attr(\"class\", \"marker zeroOrMore \" + type).attr(\"refX\", 39).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\");\n endMarker.append(\"circle\").attr(\"fill\", mainBkg ?? \"white\").attr(\"cx\", 11).attr(\"cy\", 18).attr(\"r\", 6).attr(\"stroke-width\", `${strokeWidth}`);\n endMarker.append(\"path\").attr(\"d\", \"M21,18 Q39,0 57,18 Q39,36 21,18\").attr(\"stroke-width\", `${strokeWidth}`);\n}, \"zero_or_more_neo\");\nvar requirement_arrow = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-requirement_arrowEnd\").attr(\"refX\", 20).attr(\"refY\", 10).attr(\"markerWidth\", 20).attr(\"markerHeight\", 20).attr(\"orient\", \"auto\").append(\"path\").attr(\n \"d\",\n `M0,0\n L20,10\n M20,10\n L0,20`\n );\n}, \"requirement_arrow\");\nvar requirement_arrow_neo = /* @__PURE__ */ __name((elem, type, id) => {\n const config = getConfig();\n const { themeVariables } = config;\n const { strokeWidth } = themeVariables;\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-requirement_arrowEnd\").attr(\"refX\", 20).attr(\"refY\", 10).attr(\"markerWidth\", 20).attr(\"markerHeight\", 20).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"stroke-width\", `${strokeWidth}`).attr(\"viewBox\", \"0 0 25 20\").append(\"path\").attr(\n \"d\",\n `M0,0\n L20,10\n M20,10\n L0,20`\n ).attr(\"stroke-linejoin\", \"miter\");\n}, \"requirement_arrow_neo\");\nvar requirement_contains = /* @__PURE__ */ __name((elem, type, id) => {\n const containsNode = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-requirement_containsStart\").attr(\"refX\", 0).attr(\"refY\", 10).attr(\"markerWidth\", 20).attr(\"markerHeight\", 20).attr(\"orient\", \"auto\").append(\"g\");\n containsNode.append(\"circle\").attr(\"cx\", 10).attr(\"cy\", 10).attr(\"r\", 9).attr(\"fill\", \"none\");\n containsNode.append(\"line\").attr(\"x1\", 1).attr(\"x2\", 19).attr(\"y1\", 10).attr(\"y2\", 10);\n containsNode.append(\"line\").attr(\"y1\", 1).attr(\"y2\", 19).attr(\"x1\", 10).attr(\"x2\", 10);\n}, \"requirement_contains\");\nvar requirement_contains_neo = /* @__PURE__ */ __name((elem, type, id) => {\n const config = getConfig();\n const { themeVariables } = config;\n const { strokeWidth } = themeVariables;\n const containsNode = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-requirement_containsStart\").attr(\"refX\", 0).attr(\"refY\", 10).attr(\"markerWidth\", 20).attr(\"markerHeight\", 20).attr(\"orient\", \"auto\").attr(\"markerUnits\", \"userSpaceOnUse\").append(\"g\");\n containsNode.append(\"circle\").attr(\"cx\", 10).attr(\"cy\", 10).attr(\"r\", 9).attr(\"fill\", \"none\");\n containsNode.append(\"line\").attr(\"x1\", 1).attr(\"x2\", 19).attr(\"y1\", 10).attr(\"y2\", 10);\n containsNode.append(\"line\").attr(\"y1\", 1).attr(\"y2\", 19).attr(\"x1\", 10).attr(\"x2\", 10);\n containsNode.selectAll(\"*\").attr(\"stroke-width\", `${strokeWidth}`);\n}, \"requirement_contains_neo\");\nvar markers = {\n extension,\n composition,\n aggregation,\n dependency,\n lollipop,\n point,\n circle,\n cross,\n barb,\n barbNeo,\n only_one,\n zero_or_one,\n one_or_more,\n zero_or_more,\n only_one_neo,\n zero_or_one_neo,\n one_or_more_neo,\n zero_or_more_neo,\n requirement_arrow,\n requirement_contains,\n requirement_arrow_neo,\n requirement_contains_neo\n};\nvar markers_default = insertMarkers;\n\nexport {\n clear,\n insertEdgeLabel,\n positionEdgeLabel,\n insertEdge,\n markers_default\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{h as e}from"./src-DoMhBUqV.js";import{f as t,x as n}from"./chunk-CSCIHK7Q-BBzr5U3o.js";import{p as r}from"./chunk-5ZQYHXKU-B_3UEJ_q.js";var i=e(({flowchart:e})=>{let t=e?.subGraphTitleMargin?.top??0,n=e?.subGraphTitleMargin?.bottom??0;return{subGraphTitleTopMargin:t,subGraphTitleBottomMargin:n,subGraphTitleTotalMargin:t+n}},`getSubGraphTitleMargins`);async function a(i,a){let o=i.getElementsByTagName(`img`);if(!o||o.length===0)return;let s=a.replace(/<img[^>]*>/g,``).trim()===``;await Promise.all([...o].map(i=>new Promise(a=>{function o(){if(i.style.display=`flex`,i.style.flexDirection=`column`,s){let[e=t.fontSize]=r(n().fontSize?n().fontSize:window.getComputedStyle(document.body).fontSize),a=e*5+`px`;i.style.minWidth=a,i.style.maxWidth=a}else i.style.width=`100%`;a(i)}e(o,`setupImage`),setTimeout(()=>{i.complete&&o()}),i.addEventListener(`error`,o),i.addEventListener(`load`,o)})))}e(a,`configureLabelImages`);export{i as n,a as t};
2
- //# sourceMappingURL=chunk-L5ZTLDWV-BAcjEn3C.js.map
1
+ import{h as e}from"./src-DoMhBUqV.js";import{f as t,x as n}from"./chunk-CSCIHK7Q-BBzr5U3o.js";import{p as r}from"./chunk-5ZQYHXKU-CCVDVWrS.js";var i=e(({flowchart:e})=>{let t=e?.subGraphTitleMargin?.top??0,n=e?.subGraphTitleMargin?.bottom??0;return{subGraphTitleTopMargin:t,subGraphTitleBottomMargin:n,subGraphTitleTotalMargin:t+n}},`getSubGraphTitleMargins`);async function a(i,a){let o=i.getElementsByTagName(`img`);if(!o||o.length===0)return;let s=a.replace(/<img[^>]*>/g,``).trim()===``;await Promise.all([...o].map(i=>new Promise(a=>{function o(){if(i.style.display=`flex`,i.style.flexDirection=`column`,s){let[e=t.fontSize]=r(n().fontSize?n().fontSize:window.getComputedStyle(document.body).fontSize),a=e*5+`px`;i.style.minWidth=a,i.style.maxWidth=a}else i.style.width=`100%`;a(i)}e(o,`setupImage`),setTimeout(()=>{i.complete&&o()}),i.addEventListener(`error`,o),i.addEventListener(`load`,o)})))}e(a,`configureLabelImages`);export{i as n,a as t};
2
+ //# sourceMappingURL=chunk-L5ZTLDWV-DZfwPtSD.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-L5ZTLDWV-BAcjEn3C.js","names":["getConfig"],"sources":["../../../../../node_modules/.pnpm/mermaid@11.15.0/node_modules/mermaid/dist/chunks/mermaid.core/chunk-L5ZTLDWV.mjs"],"sourcesContent":["import {\n parseFontSize\n} from \"./chunk-5ZQYHXKU.mjs\";\nimport {\n defaultConfig_default,\n getConfig2 as getConfig\n} from \"./chunk-CSCIHK7Q.mjs\";\nimport {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/utils/subGraphTitleMargins.ts\nvar getSubGraphTitleMargins = /* @__PURE__ */ __name(({\n flowchart\n}) => {\n const subGraphTitleTopMargin = flowchart?.subGraphTitleMargin?.top ?? 0;\n const subGraphTitleBottomMargin = flowchart?.subGraphTitleMargin?.bottom ?? 0;\n const subGraphTitleTotalMargin = subGraphTitleTopMargin + subGraphTitleBottomMargin;\n return {\n subGraphTitleTopMargin,\n subGraphTitleBottomMargin,\n subGraphTitleTotalMargin\n };\n}, \"getSubGraphTitleMargins\");\n\n// src/rendering-util/rendering-elements/shapes/labelImageUtils.ts\nasync function configureLabelImages(container, labelText) {\n const images = container.getElementsByTagName(\"img\");\n if (!images || images.length === 0) {\n return;\n }\n const noImgText = labelText.replace(/<img[^>]*>/g, \"\").trim() === \"\";\n await Promise.all(\n [...images].map(\n (img) => new Promise((res) => {\n function setupImage() {\n img.style.display = \"flex\";\n img.style.flexDirection = \"column\";\n if (noImgText) {\n const bodyFontSize = getConfig().fontSize ? getConfig().fontSize : window.getComputedStyle(document.body).fontSize;\n const enlargingFactor = 5;\n const [parsedBodyFontSize = defaultConfig_default.fontSize] = parseFontSize(bodyFontSize);\n const width = parsedBodyFontSize * enlargingFactor + \"px\";\n img.style.minWidth = width;\n img.style.maxWidth = width;\n } else {\n img.style.width = \"100%\";\n }\n res(img);\n }\n __name(setupImage, \"setupImage\");\n setTimeout(() => {\n if (img.complete) {\n setupImage();\n }\n });\n img.addEventListener(\"error\", setupImage);\n img.addEventListener(\"load\", setupImage);\n })\n )\n );\n}\n__name(configureLabelImages, \"configureLabelImages\");\n\nexport {\n configureLabelImages,\n getSubGraphTitleMargins\n};\n"],"x_google_ignoreList":[0],"mappings":"+IAYA,IAAI,EAA0C,GAAQ,CACpD,eACI,CACJ,IAAM,EAAyB,GAAW,qBAAqB,KAAO,EAChE,EAA4B,GAAW,qBAAqB,QAAU,EAE5E,MAAO,CACL,yBACA,4BACA,yBAJ+B,EAAyB,EAKzD,EACA,0BAA0B,CAG7B,eAAe,EAAqB,EAAW,EAAW,CACxD,IAAM,EAAS,EAAU,qBAAqB,MAAM,CACpD,GAAI,CAAC,GAAU,EAAO,SAAW,EAC/B,OAEF,IAAM,EAAY,EAAU,QAAQ,cAAe,GAAG,CAAC,MAAM,GAAK,GAClE,MAAM,QAAQ,IACZ,CAAC,GAAG,EAAO,CAAC,IACT,GAAQ,IAAI,QAAS,GAAQ,CAC5B,SAAS,GAAa,CAGpB,GAFA,EAAI,MAAM,QAAU,OACpB,EAAI,MAAM,cAAgB,SACtB,EAAW,CACb,GAEM,CAAC,EAAqB,EAAsB,UAAY,EAFzCA,GAAW,CAAC,SAAWA,GAAW,CAAC,SAAW,OAAO,iBAAiB,SAAS,KAAK,CAAC,SAEjB,CACnF,EAAQ,EAAqB,EAAkB,KACrD,EAAI,MAAM,SAAW,EACrB,EAAI,MAAM,SAAW,OAErB,EAAI,MAAM,MAAQ,OAEpB,EAAI,EAAI,CAEV,EAAO,EAAY,aAAa,CAChC,eAAiB,CACX,EAAI,UACN,GAAY,EAEd,CACF,EAAI,iBAAiB,QAAS,EAAW,CACzC,EAAI,iBAAiB,OAAQ,EAAW,EACxC,CACH,CACF,CAEH,EAAO,EAAsB,uBAAuB"}
1
+ {"version":3,"file":"chunk-L5ZTLDWV-DZfwPtSD.js","names":["getConfig"],"sources":["../../../../../node_modules/.pnpm/mermaid@11.15.0/node_modules/mermaid/dist/chunks/mermaid.core/chunk-L5ZTLDWV.mjs"],"sourcesContent":["import {\n parseFontSize\n} from \"./chunk-5ZQYHXKU.mjs\";\nimport {\n defaultConfig_default,\n getConfig2 as getConfig\n} from \"./chunk-CSCIHK7Q.mjs\";\nimport {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/utils/subGraphTitleMargins.ts\nvar getSubGraphTitleMargins = /* @__PURE__ */ __name(({\n flowchart\n}) => {\n const subGraphTitleTopMargin = flowchart?.subGraphTitleMargin?.top ?? 0;\n const subGraphTitleBottomMargin = flowchart?.subGraphTitleMargin?.bottom ?? 0;\n const subGraphTitleTotalMargin = subGraphTitleTopMargin + subGraphTitleBottomMargin;\n return {\n subGraphTitleTopMargin,\n subGraphTitleBottomMargin,\n subGraphTitleTotalMargin\n };\n}, \"getSubGraphTitleMargins\");\n\n// src/rendering-util/rendering-elements/shapes/labelImageUtils.ts\nasync function configureLabelImages(container, labelText) {\n const images = container.getElementsByTagName(\"img\");\n if (!images || images.length === 0) {\n return;\n }\n const noImgText = labelText.replace(/<img[^>]*>/g, \"\").trim() === \"\";\n await Promise.all(\n [...images].map(\n (img) => new Promise((res) => {\n function setupImage() {\n img.style.display = \"flex\";\n img.style.flexDirection = \"column\";\n if (noImgText) {\n const bodyFontSize = getConfig().fontSize ? getConfig().fontSize : window.getComputedStyle(document.body).fontSize;\n const enlargingFactor = 5;\n const [parsedBodyFontSize = defaultConfig_default.fontSize] = parseFontSize(bodyFontSize);\n const width = parsedBodyFontSize * enlargingFactor + \"px\";\n img.style.minWidth = width;\n img.style.maxWidth = width;\n } else {\n img.style.width = \"100%\";\n }\n res(img);\n }\n __name(setupImage, \"setupImage\");\n setTimeout(() => {\n if (img.complete) {\n setupImage();\n }\n });\n img.addEventListener(\"error\", setupImage);\n img.addEventListener(\"load\", setupImage);\n })\n )\n );\n}\n__name(configureLabelImages, \"configureLabelImages\");\n\nexport {\n configureLabelImages,\n getSubGraphTitleMargins\n};\n"],"x_google_ignoreList":[0],"mappings":"+IAYA,IAAI,EAA0C,GAAQ,CACpD,eACI,CACJ,IAAM,EAAyB,GAAW,qBAAqB,KAAO,EAChE,EAA4B,GAAW,qBAAqB,QAAU,EAE5E,MAAO,CACL,yBACA,4BACA,yBAJ+B,EAAyB,EAKzD,EACA,0BAA0B,CAG7B,eAAe,EAAqB,EAAW,EAAW,CACxD,IAAM,EAAS,EAAU,qBAAqB,MAAM,CACpD,GAAI,CAAC,GAAU,EAAO,SAAW,EAC/B,OAEF,IAAM,EAAY,EAAU,QAAQ,cAAe,GAAG,CAAC,MAAM,GAAK,GAClE,MAAM,QAAQ,IACZ,CAAC,GAAG,EAAO,CAAC,IACT,GAAQ,IAAI,QAAS,GAAQ,CAC5B,SAAS,GAAa,CAGpB,GAFA,EAAI,MAAM,QAAU,OACpB,EAAI,MAAM,cAAgB,SACtB,EAAW,CACb,GAEM,CAAC,EAAqB,EAAsB,UAAY,EAFzCA,GAAW,CAAC,SAAWA,GAAW,CAAC,SAAW,OAAO,iBAAiB,SAAS,KAAK,CAAC,SAEjB,CACnF,EAAQ,EAAqB,EAAkB,KACrD,EAAI,MAAM,SAAW,EACrB,EAAI,MAAM,SAAW,OAErB,EAAI,MAAM,MAAQ,OAEpB,EAAI,EAAI,CAEV,EAAO,EAAY,aAAa,CAChC,eAAiB,CACX,EAAI,UACN,GAAY,EAEd,CACF,EAAI,iBAAiB,QAAS,EAAW,CACzC,EAAI,iBAAiB,OAAQ,EAAW,EACxC,CACH,CACF,CAEH,EAAO,EAAsB,uBAAuB"}