@plumile/ui 0.1.99 → 0.1.101

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/lib/esm/{BackofficeJsonViewerAsync-GenasLA-.js → BackofficeJsonViewerAsync-niwHe9is.js} +2 -2
  2. package/lib/esm/{BackofficeJsonViewerAsync-GenasLA-.js.map → BackofficeJsonViewerAsync-niwHe9is.js.map} +1 -1
  3. package/lib/esm/HighlightCode-KpWSo7Zx.js.map +1 -1
  4. package/lib/esm/{MarkdownCodeBlock-DZRdzjJ9.js → MarkdownCodeBlock-CLK5KJgU.js} +3 -3
  5. package/lib/esm/{MarkdownCodeBlock-DZRdzjJ9.js.map → MarkdownCodeBlock-CLK5KJgU.js.map} +1 -1
  6. package/lib/esm/{MarkdownRenderer-DBpMvD98.js → MarkdownRenderer-c_Ic29c2.js} +2 -2
  7. package/lib/esm/{MarkdownRenderer-DBpMvD98.js.map → MarkdownRenderer-c_Ic29c2.js.map} +1 -1
  8. package/lib/esm/{MarkdownShikiCodeBlock-BhdpnKJo.js → MarkdownShikiCodeBlock-CbaOKfZO.js} +1180 -1175
  9. package/lib/esm/MarkdownShikiCodeBlock-CbaOKfZO.js.map +1 -0
  10. package/lib/esm/_baseFor-Z--4BB_X.js.map +1 -1
  11. package/lib/esm/arc-BUZ4igwO.js.map +1 -1
  12. package/lib/esm/architectureDiagram-Q4EWVU46-DpoNV55s.js.map +1 -1
  13. package/lib/esm/array-CTFiDRBi.js.map +1 -1
  14. package/lib/esm/blockDiagram-DXYQGD6D-DJxDffAk.js.map +1 -1
  15. package/lib/esm/c4Diagram-AHTNJAMY-DxAt6CyF.js.map +1 -1
  16. package/lib/esm/chunk-2KRD3SAO-C5ZUgIak.js.map +1 -1
  17. package/lib/esm/{chunk-336JU56O-24m8cXIL.js → chunk-336JU56O-BsMYboJR.js} +3 -3
  18. package/lib/esm/{chunk-336JU56O-24m8cXIL.js.map → chunk-336JU56O-BsMYboJR.js.map} +1 -1
  19. package/lib/esm/chunk-426QAEUC-b2PRuT9o.js.map +1 -1
  20. package/lib/esm/chunk-4BX2VUAB-BkyyJ41z.js.map +1 -1
  21. package/lib/esm/{chunk-4TB4RGXK-CsiupxiO.js → chunk-4TB4RGXK-LzOZn6e3.js} +2 -2
  22. package/lib/esm/{chunk-4TB4RGXK-CsiupxiO.js.map → chunk-4TB4RGXK-LzOZn6e3.js.map} +1 -1
  23. package/lib/esm/chunk-55IACEB6-CZ1WMXNv.js.map +1 -1
  24. package/lib/esm/chunk-5FUZZQ4R-Hp5ZXYAE.js.map +1 -1
  25. package/lib/esm/chunk-5PVQY5BW-CQdr0IGy.js.map +1 -1
  26. package/lib/esm/chunk-67CJDMHE-DQCJ08Vv.js.map +1 -1
  27. package/lib/esm/chunk-7N4EOEYR-CTdQRezU.js.map +1 -1
  28. package/lib/esm/chunk-AA7GKIK3-x61iJxkf.js.map +1 -1
  29. package/lib/esm/chunk-BSJP7CBP-BRqWaFD3.js.map +1 -1
  30. package/lib/esm/chunk-CIAEETIT-Dm4nDheA.js.map +1 -1
  31. package/lib/esm/chunk-EDXVE4YY-CyZVAPxl.js.map +1 -1
  32. package/lib/esm/chunk-ENJZ2VHE-D1RBdOy4.js.map +1 -1
  33. package/lib/esm/chunk-FOC6F5B3-DTxKWzfh.js.map +1 -1
  34. package/lib/esm/chunk-ICPOFSXX-BQ7-Poft.js.map +1 -1
  35. package/lib/esm/chunk-K5T4RW27-BZbwqbnj.js.map +1 -1
  36. package/lib/esm/chunk-KGLVRYIC-DGO8PqNS.js.map +1 -1
  37. package/lib/esm/chunk-LIHQZDEY-DRQpYuDY.js.map +1 -1
  38. package/lib/esm/chunk-ORNJ4GCN-BWnkQx42.js.map +1 -1
  39. package/lib/esm/{chunk-OYMX7WX6-C3qIK5JJ.js → chunk-OYMX7WX6-C3p3qx9s.js} +2 -2
  40. package/lib/esm/{chunk-OYMX7WX6-C3qIK5JJ.js.map → chunk-OYMX7WX6-C3p3qx9s.js.map} +1 -1
  41. package/lib/esm/chunk-QZHKN3VN-BIoC_CBh.js.map +1 -1
  42. package/lib/esm/chunk-U2HBQHQK-CNpf2t7b.js.map +1 -1
  43. package/lib/esm/chunk-X2U36JSP-Dh9T66Fy.js.map +1 -1
  44. package/lib/esm/chunk-XPW4576I-CdsuZylH.js.map +1 -1
  45. package/lib/esm/chunk-YZCP3GAM-D-LQWFJc.js.map +1 -1
  46. package/lib/esm/chunk-ZZ45TVLE-CP_4OsJR.js.map +1 -1
  47. package/lib/esm/{classDiagram-6PBFFD2Q-CfClLEok.js → classDiagram-6PBFFD2Q-CfucyocV.js} +3 -3
  48. package/lib/esm/{classDiagram-6PBFFD2Q-CfClLEok.js.map → classDiagram-6PBFFD2Q-CfucyocV.js.map} +1 -1
  49. package/lib/esm/{classDiagram-v2-HSJHXN6E-BlbDAEH6.js → classDiagram-v2-HSJHXN6E-BcU6iB1L.js} +3 -3
  50. package/lib/esm/{classDiagram-v2-HSJHXN6E-BlbDAEH6.js.map → classDiagram-v2-HSJHXN6E-BcU6iB1L.js.map} +1 -1
  51. package/lib/esm/clone-DhB5s2T9.js.map +1 -1
  52. package/lib/esm/cose-bilkent-S5V4N54A-BdVqhM8C.js.map +1 -1
  53. package/lib/esm/cytoscape.esm-CT-fsRss.js.map +1 -1
  54. package/lib/esm/dagre-BQULeUjQ.js.map +1 -1
  55. package/lib/esm/dagre-KV5264BT-DTy5YJ5_.js.map +1 -1
  56. package/lib/esm/diagram-5BDNPKRD-w19gCTBw.js.map +1 -1
  57. package/lib/esm/diagram-G4DWMVQ6-EfJtDPEB.js.map +1 -1
  58. package/lib/esm/diagram-MMDJMWI5-DsPB2uYP.js.map +1 -1
  59. package/lib/esm/diagram-TYMM5635-D3ecq7oF.js.map +1 -1
  60. package/lib/esm/dist-CZs_brJz.js.map +1 -1
  61. package/lib/esm/{erDiagram-SMLLAGMA-sgCGzaHO.js → erDiagram-SMLLAGMA-DsYSva8K.js} +2 -2
  62. package/lib/esm/{erDiagram-SMLLAGMA-sgCGzaHO.js.map → erDiagram-SMLLAGMA-DsYSva8K.js.map} +1 -1
  63. package/lib/esm/flatten-CRDGWjhS.js.map +1 -1
  64. package/lib/esm/{flowDiagram-DWJPFMVM-BlOft6GA.js → flowDiagram-DWJPFMVM-BkxIhdyA.js} +2 -2
  65. package/lib/esm/{flowDiagram-DWJPFMVM-BlOft6GA.js.map → flowDiagram-DWJPFMVM-BkxIhdyA.js.map} +1 -1
  66. package/lib/esm/ganttDiagram-T4ZO3ILL-BGrn6yEi.js.map +1 -1
  67. package/lib/esm/gitGraphDiagram-UUTBAWPF-BV73nor5.js.map +1 -1
  68. package/lib/esm/graphlib-B76sPwTV.js.map +1 -1
  69. package/lib/esm/infoDiagram-42DDH7IO-CYONnQuR.js.map +1 -1
  70. package/lib/esm/init-DcYXQL-k.js.map +1 -1
  71. package/lib/esm/isEmpty-DLTQgX7m.js.map +1 -1
  72. package/lib/esm/ishikawaDiagram-UXIWVN3A-B2ISni0r.js.map +1 -1
  73. package/lib/esm/journeyDiagram-VCZTEJTY-CjNMX7wx.js.map +1 -1
  74. package/lib/esm/kanban-definition-6JOO6SKY-BNsv25Cl.js.map +1 -1
  75. package/lib/esm/katex-DpumU0Fc.js.map +1 -1
  76. package/lib/esm/line-Dyv5of1r.js.map +1 -1
  77. package/lib/esm/linear-LpGdIFrk.js.map +1 -1
  78. package/lib/esm/mermaid-parser.core-D5sUsnWF.js.map +1 -1
  79. package/lib/esm/{mermaid.core-o6lwF-Gt.js → mermaid.core-i12yADTp.js} +12 -12
  80. package/lib/esm/{mermaid.core-o6lwF-Gt.js.map → mermaid.core-i12yADTp.js.map} +1 -1
  81. package/lib/esm/{mindmap-definition-QFDTVHPH-C63UTb48.js → mindmap-definition-QFDTVHPH-BfrBPDUJ.js} +2 -2
  82. package/lib/esm/{mindmap-definition-QFDTVHPH-C63UTb48.js.map → mindmap-definition-QFDTVHPH-BfrBPDUJ.js.map} +1 -1
  83. package/lib/esm/ordinal-B2RGggQH.js.map +1 -1
  84. package/lib/esm/path-Bg_3NlDP.js.map +1 -1
  85. package/lib/esm/pieDiagram-DEJITSTG-YByZ__0R.js.map +1 -1
  86. package/lib/esm/quadrantDiagram-34T5L4WZ-DLFKZc02.js.map +1 -1
  87. package/lib/esm/reduce-0ekdtexD.js.map +1 -1
  88. package/lib/esm/{requirementDiagram-MS252O5E-CJXcr8r4.js → requirementDiagram-MS252O5E-CulfPmse.js} +2 -2
  89. package/lib/esm/{requirementDiagram-MS252O5E-CJXcr8r4.js.map → requirementDiagram-MS252O5E-CulfPmse.js.map} +1 -1
  90. package/lib/esm/rough.esm-IQz7gRXZ.js.map +1 -1
  91. package/lib/esm/sankeyDiagram-XADWPNL6-DMByY6gK.js.map +1 -1
  92. package/lib/esm/sequenceDiagram-FGHM5R23-vJC9cjdX.js.map +1 -1
  93. package/lib/esm/src-BZm6Awwh.js.map +1 -1
  94. package/lib/esm/{src-C5doNKmD.js → src-DT2iBPF8.js} +629 -541
  95. package/lib/esm/src-DT2iBPF8.js.map +1 -0
  96. package/lib/esm/{stateDiagram-FHFEXIEX-G9WWEBGm.js → stateDiagram-FHFEXIEX-CofVLBPX.js} +3 -3
  97. package/lib/esm/{stateDiagram-FHFEXIEX-G9WWEBGm.js.map → stateDiagram-FHFEXIEX-CofVLBPX.js.map} +1 -1
  98. package/lib/esm/{stateDiagram-v2-QKLJ7IA2-BSg62pbb.js → stateDiagram-v2-QKLJ7IA2-DTXym7Y8.js} +3 -3
  99. package/lib/esm/{stateDiagram-v2-QKLJ7IA2-BSg62pbb.js.map → stateDiagram-v2-QKLJ7IA2-DTXym7Y8.js.map} +1 -1
  100. package/lib/esm/style.css +1 -1
  101. package/lib/esm/timeline-definition-GMOUNBTQ-DeWjV_e-.js.map +1 -1
  102. package/lib/esm/ui.js +4 -4
  103. package/lib/esm/vennDiagram-DHZGUBPP-CKdXCzw7.js.map +1 -1
  104. package/lib/esm/wardleyDiagram-NUSXRM2D-BzD8LDJv.js.map +1 -1
  105. package/lib/esm/xychartDiagram-5P7HB3ND-C2ITEA5J.js.map +1 -1
  106. package/lib/types/backoffice/molecules/backoffice_load_more/BackofficeLoadMore.d.ts +2 -1
  107. package/lib/types/backoffice/molecules/backoffice_load_more/BackofficeLoadMore.d.ts.map +1 -1
  108. package/lib/types/backoffice/molecules/backoffice_load_more/backofficeLoadMore.css.d.ts +1 -0
  109. package/lib/types/backoffice/molecules/backoffice_load_more/backofficeLoadMore.css.d.ts.map +1 -1
  110. package/lib/types/backoffice/molecules/sidebar_nav_section/SidebarNavSection.d.ts +1 -1
  111. package/lib/types/backoffice/molecules/sidebar_nav_section/SidebarNavSection.d.ts.map +1 -1
  112. package/lib/types/components/data-table/DataTable.d.ts +2 -0
  113. package/lib/types/components/data-table/DataTable.d.ts.map +1 -1
  114. package/lib/types/components/data-table/ResponsiveRecordList.css.d.ts +21 -0
  115. package/lib/types/components/data-table/ResponsiveRecordList.css.d.ts.map +1 -0
  116. package/lib/types/components/data-table/ResponsiveRecordList.d.ts +17 -0
  117. package/lib/types/components/data-table/ResponsiveRecordList.d.ts.map +1 -0
  118. package/lib/types/index.d.ts +2 -0
  119. package/lib/types/index.d.ts.map +1 -1
  120. package/package.json +12 -12
  121. package/lib/esm/MarkdownShikiCodeBlock-BhdpnKJo.js.map +0 -1
  122. package/lib/esm/src-C5doNKmD.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-ENJZ2VHE-D1RBdOy4.js","names":["select","curveLinear","curveBasis","curveCardinal","curveBumpX","curveBumpY","curveCatmullRom","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","line","rough"],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-ENJZ2VHE.mjs"],"sourcesContent":["import {\n computeLabelTransform,\n getLineFunctionsWithOffset,\n markerOffsets,\n markerOffsets2\n} from \"./chunk-BSJP7CBP.mjs\";\nimport {\n createLabel_default\n} from \"./chunk-5FUZZQ4R.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-ZZ45TVLE.mjs\";\nimport {\n isLabelStyle,\n styles2String\n} from \"./chunk-X2U36JSP.mjs\";\nimport {\n createText\n} from \"./chunk-U2HBQHQK.mjs\";\nimport {\n handleUndefinedAttr,\n utils_default\n} from \"./chunk-5PVQY5BW.mjs\";\nimport {\n getConfig,\n getConfig2,\n getEffectiveHtmlLabels\n} from \"./chunk-ICPOFSXX.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 inner.node().appendChild(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 inner,\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 endEdgeLabelLeft.node().appendChild(endLabelElement);\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 inner,\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 endEdgeLabelRight.node().appendChild(endLabelElement);\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\", 190).attr(\"markerHeight\", 240).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-ENJZ2VHE-D1RBdOy4.js","names":["select","curveLinear","curveBasis","curveCardinal","curveBumpX","curveBumpY","curveCatmullRom","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","line","rough"],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-ENJZ2VHE.mjs"],"sourcesContent":["import {\n computeLabelTransform,\n getLineFunctionsWithOffset,\n markerOffsets,\n markerOffsets2\n} from \"./chunk-BSJP7CBP.mjs\";\nimport {\n createLabel_default\n} from \"./chunk-5FUZZQ4R.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-ZZ45TVLE.mjs\";\nimport {\n isLabelStyle,\n styles2String\n} from \"./chunk-X2U36JSP.mjs\";\nimport {\n createText\n} from \"./chunk-U2HBQHQK.mjs\";\nimport {\n handleUndefinedAttr,\n utils_default\n} from \"./chunk-5PVQY5BW.mjs\";\nimport {\n getConfig,\n getConfig2,\n getEffectiveHtmlLabels\n} from \"./chunk-ICPOFSXX.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 inner.node().appendChild(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 inner,\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 endEdgeLabelLeft.node().appendChild(endLabelElement);\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 inner,\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 endEdgeLabelRight.node().appendChild(endLabelElement);\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\", 190).attr(\"markerHeight\", 240).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 +1 @@
1
- {"version":3,"file":"chunk-FOC6F5B3-DTxKWzfh.js","names":[],"sources":["../../../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-FOC6F5B3.mjs"],"sourcesContent":["import {\n AbstractMermaidTokenBuilder,\n CommonValueConverter,\n MermaidGeneratedSharedModule,\n PacketGrammarGeneratedModule,\n __name\n} from \"./chunk-K5T4RW27.mjs\";\n\n// src/language/packet/module.ts\nimport {\n EmptyFileSystem,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n inject\n} from \"langium\";\n\n// src/language/packet/tokenBuilder.ts\nvar PacketTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"PacketTokenBuilder\");\n }\n constructor() {\n super([\"packet\"]);\n }\n};\n\n// src/language/packet/module.ts\nvar PacketModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new PacketTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new CommonValueConverter(), \"ValueConverter\")\n }\n};\nfunction createPacketServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const Packet = inject(\n createDefaultCoreModule({ shared }),\n PacketGrammarGeneratedModule,\n PacketModule\n );\n shared.ServiceRegistry.register(Packet);\n return { shared, Packet };\n}\n__name(createPacketServices, \"createPacketServices\");\n\nexport {\n PacketModule,\n createPacketServices\n};\n"],"x_google_ignoreList":[0],"mappings":";;AAiBA,IAAI,IAAqB,cAAc,EAA4B;CACjE;AACE,IAAO,MAAM,qBAAqB;;CAEpC,cAAc;AACZ,QAAM,CAAC,SAAS,CAAC;;GAKjB,IAAe,EACjB,QAAQ;CACN,cAA8B,wBAAa,IAAI,GAAoB,EAAE,eAAe;CACpF,gBAAgC,wBAAa,IAAI,GAAsB,EAAE,iBAAiB;CAC3F,EACF;AACD,SAAS,EAAqB,IAAU,GAAiB;CACvD,IAAM,IAAS,EACb,EAA8B,EAAQ,EACtC,EACD,EACK,IAAS,EACb,EAAwB,EAAE,WAAQ,CAAC,EACnC,GACA,EACD;AAED,QADA,EAAO,gBAAgB,SAAS,EAAO,EAChC;EAAE;EAAQ;EAAQ;;AAE3B,EAAO,GAAsB,uBAAuB"}
1
+ {"version":3,"file":"chunk-FOC6F5B3-DTxKWzfh.js","names":[],"sources":["../../../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-FOC6F5B3.mjs"],"sourcesContent":["import {\n AbstractMermaidTokenBuilder,\n CommonValueConverter,\n MermaidGeneratedSharedModule,\n PacketGrammarGeneratedModule,\n __name\n} from \"./chunk-K5T4RW27.mjs\";\n\n// src/language/packet/module.ts\nimport {\n EmptyFileSystem,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n inject\n} from \"langium\";\n\n// src/language/packet/tokenBuilder.ts\nvar PacketTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"PacketTokenBuilder\");\n }\n constructor() {\n super([\"packet\"]);\n }\n};\n\n// src/language/packet/module.ts\nvar PacketModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new PacketTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new CommonValueConverter(), \"ValueConverter\")\n }\n};\nfunction createPacketServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const Packet = inject(\n createDefaultCoreModule({ shared }),\n PacketGrammarGeneratedModule,\n PacketModule\n );\n shared.ServiceRegistry.register(Packet);\n return { shared, Packet };\n}\n__name(createPacketServices, \"createPacketServices\");\n\nexport {\n PacketModule,\n createPacketServices\n};\n"],"x_google_ignoreList":[0],"mappings":";;AAiBA,IAAI,IAAqB,cAAc,EAA4B;CACjE;EACE,EAAO,MAAM,qBAAqB;;CAEpC,cAAc;EACZ,MAAM,CAAC,SAAS,CAAC;;GAKjB,IAAe,EACjB,QAAQ;CACN,cAA8B,wBAAa,IAAI,GAAoB,EAAE,eAAe;CACpF,gBAAgC,wBAAa,IAAI,GAAsB,EAAE,iBAAiB;CAC3F,EACF;AACD,SAAS,EAAqB,IAAU,GAAiB;CACvD,IAAM,IAAS,EACb,EAA8B,EAAQ,EACtC,EACD,EACK,IAAS,EACb,EAAwB,EAAE,WAAQ,CAAC,EACnC,GACA,EACD;CAED,OADA,EAAO,gBAAgB,SAAS,EAAO,EAChC;EAAE;EAAQ;EAAQ;;AAE3B,EAAO,GAAsB,uBAAuB"}