@plumile/ui 0.1.83 → 0.1.84

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 (111) hide show
  1. package/lib/esm/BackofficeJsonViewerAsync-B_YPyubK.js +10 -0
  2. package/lib/esm/{BackofficeJsonViewerAsync-Czd9VhUz.js.map → BackofficeJsonViewerAsync-B_YPyubK.js.map} +1 -1
  3. package/lib/esm/{MarkdownCodeBlock-B3PblX3D.js → MarkdownCodeBlock-B__tyIcc.js} +2 -2
  4. package/lib/esm/{MarkdownCodeBlock-B3PblX3D.js.map → MarkdownCodeBlock-B__tyIcc.js.map} +1 -1
  5. package/lib/esm/{MarkdownRenderer-RgELUK6t.js → MarkdownRenderer-w1EzXVlv.js} +2 -2
  6. package/lib/esm/{MarkdownRenderer-RgELUK6t.js.map → MarkdownRenderer-w1EzXVlv.js.map} +1 -1
  7. package/lib/esm/{architectureDiagram-2XIMDMQ5-BUhb7PkG.js → architectureDiagram-2XIMDMQ5-D9W3hi1n.js} +5 -5
  8. package/lib/esm/{architectureDiagram-2XIMDMQ5-BUhb7PkG.js.map → architectureDiagram-2XIMDMQ5-D9W3hi1n.js.map} +1 -1
  9. package/lib/esm/{blockDiagram-WCTKOSBZ-C8Ohzdg3.js → blockDiagram-WCTKOSBZ-0tOAzLGT.js} +7 -7
  10. package/lib/esm/{blockDiagram-WCTKOSBZ-C8Ohzdg3.js.map → blockDiagram-WCTKOSBZ-0tOAzLGT.js.map} +1 -1
  11. package/lib/esm/{c4Diagram-IC4MRINW-CQUp6kiC.js → c4Diagram-IC4MRINW-BfvUsZKR.js} +4 -4
  12. package/lib/esm/{c4Diagram-IC4MRINW-CQUp6kiC.js.map → c4Diagram-IC4MRINW-BfvUsZKR.js.map} +1 -1
  13. package/lib/esm/{channel-BBzlf3l-.js → channel-BevqKLlC.js} +2 -2
  14. package/lib/esm/{channel-BBzlf3l-.js.map → channel-BevqKLlC.js.map} +1 -1
  15. package/lib/esm/{chunk-7R4GIKGN-Cg9-qmu5.js → chunk-7R4GIKGN-tSw2Wb9z.js} +2 -2
  16. package/lib/esm/{chunk-7R4GIKGN-Cg9-qmu5.js.map → chunk-7R4GIKGN-tSw2Wb9z.js.map} +1 -1
  17. package/lib/esm/{chunk-GEFDOKGD-Dkux3ZgH.js → chunk-GEFDOKGD-CWu-rFVf.js} +2 -2
  18. package/lib/esm/{chunk-GEFDOKGD-Dkux3ZgH.js.map → chunk-GEFDOKGD-CWu-rFVf.js.map} +1 -1
  19. package/lib/esm/{chunk-GLR3WWYH-BBakjhtu.js → chunk-GLR3WWYH-Dy7JAiPZ.js} +6 -6
  20. package/lib/esm/{chunk-GLR3WWYH-BBakjhtu.js.map → chunk-GLR3WWYH-Dy7JAiPZ.js.map} +1 -1
  21. package/lib/esm/{chunk-HHEYEP7N-BRntQHI9.js → chunk-HHEYEP7N-CwMxvvqW.js} +2 -2
  22. package/lib/esm/{chunk-HHEYEP7N-BRntQHI9.js.map → chunk-HHEYEP7N-CwMxvvqW.js.map} +1 -1
  23. package/lib/esm/{chunk-JSJVCQXG-DuVavFA7.js → chunk-JSJVCQXG-BhZagW93.js} +2 -2
  24. package/lib/esm/{chunk-JSJVCQXG-DuVavFA7.js.map → chunk-JSJVCQXG-BhZagW93.js.map} +1 -1
  25. package/lib/esm/{chunk-KX2RTZJC-BEZu4ePM.js → chunk-KX2RTZJC-BfnFx2cA.js} +2 -2
  26. package/lib/esm/{chunk-KX2RTZJC-BEZu4ePM.js.map → chunk-KX2RTZJC-BfnFx2cA.js.map} +1 -1
  27. package/lib/esm/{chunk-KYZI473N-DeJhj0TI.js → chunk-KYZI473N-BwYBBC73.js} +6 -6
  28. package/lib/esm/{chunk-KYZI473N-DeJhj0TI.js.map → chunk-KYZI473N-BwYBBC73.js.map} +1 -1
  29. package/lib/esm/{chunk-NQ4KR5QH-pcyIZSOf.js → chunk-NQ4KR5QH-CtcoAyde.js} +5 -5
  30. package/lib/esm/{chunk-NQ4KR5QH-pcyIZSOf.js.map → chunk-NQ4KR5QH-CtcoAyde.js.map} +1 -1
  31. package/lib/esm/{chunk-O4XLMI2P-B49RDRA_.js → chunk-O4XLMI2P-DxPipWrP.js} +8 -8
  32. package/lib/esm/{chunk-O4XLMI2P-B49RDRA_.js.map → chunk-O4XLMI2P-DxPipWrP.js.map} +1 -1
  33. package/lib/esm/{chunk-PQ6SQG4A-BJO_yF6z.js → chunk-PQ6SQG4A-DlekIw0F.js} +2 -2
  34. package/lib/esm/{chunk-PQ6SQG4A-BJO_yF6z.js.map → chunk-PQ6SQG4A-DlekIw0F.js.map} +1 -1
  35. package/lib/esm/{chunk-PU5JKC2W-BzaL_NH3.js → chunk-PU5JKC2W-nnfoXdoB.js} +3 -3
  36. package/lib/esm/{chunk-PU5JKC2W-BzaL_NH3.js.map → chunk-PU5JKC2W-nnfoXdoB.js.map} +1 -1
  37. package/lib/esm/{chunk-WL4C6EOR-CtRNKYmt.js → chunk-WL4C6EOR-CepZqrvG.js} +6 -6
  38. package/lib/esm/{chunk-WL4C6EOR-CtRNKYmt.js.map → chunk-WL4C6EOR-CepZqrvG.js.map} +1 -1
  39. package/lib/esm/{chunk-YBOYWFTD-BL_YEnkQ.js → chunk-YBOYWFTD-DQeJ-Crn.js} +3 -3
  40. package/lib/esm/{chunk-YBOYWFTD-BL_YEnkQ.js.map → chunk-YBOYWFTD-DQeJ-Crn.js.map} +1 -1
  41. package/lib/esm/{classDiagram-VBA2DB6C-BT1J_4pK.js → classDiagram-VBA2DB6C-Cz661asi.js} +12 -12
  42. package/lib/esm/{classDiagram-VBA2DB6C-BT1J_4pK.js.map → classDiagram-VBA2DB6C-Cz661asi.js.map} +1 -1
  43. package/lib/esm/{classDiagram-v2-RAHNMMFH-CKSbfgdS.js → classDiagram-v2-RAHNMMFH-gl-L4tD0.js} +12 -12
  44. package/lib/esm/{classDiagram-v2-RAHNMMFH-CKSbfgdS.js.map → classDiagram-v2-RAHNMMFH-gl-L4tD0.js.map} +1 -1
  45. package/lib/esm/{dagre-D6grMmmr.js → dagre-CUvGkXru.js} +2 -2
  46. package/lib/esm/{dagre-D6grMmmr.js.map → dagre-CUvGkXru.js.map} +1 -1
  47. package/lib/esm/{dagre-KLK3FWXG-CT3GGyXF.js → dagre-KLK3FWXG-CfNc9pEH.js} +9 -9
  48. package/lib/esm/{dagre-KLK3FWXG-CT3GGyXF.js.map → dagre-KLK3FWXG-CfNc9pEH.js.map} +1 -1
  49. package/lib/esm/{diagram-E7M64L7V-RIQNonUo.js → diagram-E7M64L7V-owGUX1SK.js} +6 -6
  50. package/lib/esm/{diagram-E7M64L7V-RIQNonUo.js.map → diagram-E7M64L7V-owGUX1SK.js.map} +1 -1
  51. package/lib/esm/{diagram-IFDJBPK2-D1Vwi5RU.js → diagram-IFDJBPK2-BNNr6py0.js} +4 -4
  52. package/lib/esm/{diagram-IFDJBPK2-D1Vwi5RU.js.map → diagram-IFDJBPK2-BNNr6py0.js.map} +1 -1
  53. package/lib/esm/{diagram-P4PSJMXO-B84-dlrB.js → diagram-P4PSJMXO-DYqpdLub.js} +4 -4
  54. package/lib/esm/{diagram-P4PSJMXO-B84-dlrB.js.map → diagram-P4PSJMXO-DYqpdLub.js.map} +1 -1
  55. package/lib/esm/{erDiagram-INFDFZHY-DMLpjzc4.js → erDiagram-INFDFZHY-Bg0Cs5pu.js} +11 -11
  56. package/lib/esm/{erDiagram-INFDFZHY-DMLpjzc4.js.map → erDiagram-INFDFZHY-Bg0Cs5pu.js.map} +1 -1
  57. package/lib/esm/{flowDiagram-PKNHOUZH-Ce1-VA32.js → flowDiagram-PKNHOUZH-TkU27ZFV.js} +12 -12
  58. package/lib/esm/{flowDiagram-PKNHOUZH-Ce1-VA32.js.map → flowDiagram-PKNHOUZH-TkU27ZFV.js.map} +1 -1
  59. package/lib/esm/{ganttDiagram-A5KZAMGK-BAmfVCUC.js → ganttDiagram-A5KZAMGK-C3eQMnaD.js} +3 -3
  60. package/lib/esm/{ganttDiagram-A5KZAMGK-BAmfVCUC.js.map → ganttDiagram-A5KZAMGK-C3eQMnaD.js.map} +1 -1
  61. package/lib/esm/{gitGraphDiagram-K3NZZRJ6-CR62Izxa.js → gitGraphDiagram-K3NZZRJ6-CeYQZRvp.js} +3 -3
  62. package/lib/esm/{gitGraphDiagram-K3NZZRJ6-CR62Izxa.js.map → gitGraphDiagram-K3NZZRJ6-CeYQZRvp.js.map} +1 -1
  63. package/lib/esm/{infoDiagram-LFFYTUFH-CEaM6i7D.js → infoDiagram-LFFYTUFH-rYfR0LAG.js} +3 -3
  64. package/lib/esm/{infoDiagram-LFFYTUFH-CEaM6i7D.js.map → infoDiagram-LFFYTUFH-rYfR0LAG.js.map} +1 -1
  65. package/lib/esm/{ishikawaDiagram-PHBUUO56-DPmaeRZg.js → ishikawaDiagram-PHBUUO56-Cv42PfHQ.js} +4 -4
  66. package/lib/esm/{ishikawaDiagram-PHBUUO56-DPmaeRZg.js.map → ishikawaDiagram-PHBUUO56-Cv42PfHQ.js.map} +1 -1
  67. package/lib/esm/{journeyDiagram-4ABVD52K-CIkELGB9.js → journeyDiagram-4ABVD52K-TAtGE2GU.js} +3 -3
  68. package/lib/esm/{journeyDiagram-4ABVD52K-CIkELGB9.js.map → journeyDiagram-4ABVD52K-TAtGE2GU.js.map} +1 -1
  69. package/lib/esm/{kanban-definition-K7BYSVSG-CzRVcKjg.js → kanban-definition-K7BYSVSG-iey_6CC1.js} +8 -8
  70. package/lib/esm/{kanban-definition-K7BYSVSG-CzRVcKjg.js.map → kanban-definition-K7BYSVSG-iey_6CC1.js.map} +1 -1
  71. package/lib/esm/{katex-C5br0dxW.js → katex-W0_-X3Wb.js} +4 -4
  72. package/lib/esm/katex-W0_-X3Wb.js.map +1 -0
  73. package/lib/esm/{line-CNKkQ82B.js → line-AZ-MMAnt.js} +2 -2
  74. package/lib/esm/{line-CNKkQ82B.js.map → line-AZ-MMAnt.js.map} +1 -1
  75. package/lib/esm/{mermaid.core-CgCa7Y6s.js → mermaid.core-Ckiof3bn.js} +39 -39
  76. package/lib/esm/{mermaid.core-CgCa7Y6s.js.map → mermaid.core-Ckiof3bn.js.map} +1 -1
  77. package/lib/esm/{mindmap-definition-YRQLILUH-B7c3ueCh.js → mindmap-definition-YRQLILUH-DttP-UXP.js} +10 -10
  78. package/lib/esm/{mindmap-definition-YRQLILUH-B7c3ueCh.js.map → mindmap-definition-YRQLILUH-DttP-UXP.js.map} +1 -1
  79. package/lib/esm/{pieDiagram-SKSYHLDU-BKf7D_uz.js → pieDiagram-SKSYHLDU-BuVky6TE.js} +4 -4
  80. package/lib/esm/{pieDiagram-SKSYHLDU-BKf7D_uz.js.map → pieDiagram-SKSYHLDU-BuVky6TE.js.map} +1 -1
  81. package/lib/esm/{quadrantDiagram-337W2JSQ-CZMVpQuF.js → quadrantDiagram-337W2JSQ-COnmLuk_.js} +2 -2
  82. package/lib/esm/{quadrantDiagram-337W2JSQ-CZMVpQuF.js.map → quadrantDiagram-337W2JSQ-COnmLuk_.js.map} +1 -1
  83. package/lib/esm/{requirementDiagram-Z7DCOOCP-CXxLUHMG.js → requirementDiagram-Z7DCOOCP-ChSklNBb.js} +10 -10
  84. package/lib/esm/{requirementDiagram-Z7DCOOCP-CXxLUHMG.js.map → requirementDiagram-Z7DCOOCP-ChSklNBb.js.map} +1 -1
  85. package/lib/esm/{sankeyDiagram-WA2Y5GQK-BauuH8-1.js → sankeyDiagram-WA2Y5GQK-tI6Eo-LD.js} +2 -2
  86. package/lib/esm/{sankeyDiagram-WA2Y5GQK-BauuH8-1.js.map → sankeyDiagram-WA2Y5GQK-tI6Eo-LD.js.map} +1 -1
  87. package/lib/esm/{sequenceDiagram-2WXFIKYE-AWPjBivx.js → sequenceDiagram-2WXFIKYE-C7KV1rxZ.js} +4 -4
  88. package/lib/esm/{sequenceDiagram-2WXFIKYE-AWPjBivx.js.map → sequenceDiagram-2WXFIKYE-C7KV1rxZ.js.map} +1 -1
  89. package/lib/esm/{src-D6nEpsqe.js → src-5_DIXRl3.js} +747 -583
  90. package/lib/esm/src-5_DIXRl3.js.map +1 -0
  91. package/lib/esm/{stateDiagram-RAJIS63D-CXgEabgV.js → stateDiagram-RAJIS63D-BFn7Uwqt.js} +13 -13
  92. package/lib/esm/{stateDiagram-RAJIS63D-CXgEabgV.js.map → stateDiagram-RAJIS63D-BFn7Uwqt.js.map} +1 -1
  93. package/lib/esm/{stateDiagram-v2-FVOUBMTO-CahcZ8-y.js → stateDiagram-v2-FVOUBMTO-DDke9x6W.js} +11 -11
  94. package/lib/esm/{stateDiagram-v2-FVOUBMTO-CahcZ8-y.js.map → stateDiagram-v2-FVOUBMTO-DDke9x6W.js.map} +1 -1
  95. package/lib/esm/{timeline-definition-YZTLITO2-Dk8ByuG8.js → timeline-definition-YZTLITO2-BxLV7tzr.js} +2 -2
  96. package/lib/esm/{timeline-definition-YZTLITO2-Dk8ByuG8.js.map → timeline-definition-YZTLITO2-BxLV7tzr.js.map} +1 -1
  97. package/lib/esm/ui.js +5 -5
  98. package/lib/esm/{vennDiagram-LZ73GAT5-BcIblXz3.js → vennDiagram-LZ73GAT5-BciD5X0b.js} +4 -4
  99. package/lib/esm/{vennDiagram-LZ73GAT5-BcIblXz3.js.map → vennDiagram-LZ73GAT5-BciD5X0b.js.map} +1 -1
  100. package/lib/esm/{xychartDiagram-JWTSCODW-Csn18jU4.js → xychartDiagram-JWTSCODW-yIaPAmwy.js} +6 -6
  101. package/lib/esm/{xychartDiagram-JWTSCODW-Csn18jU4.js.map → xychartDiagram-JWTSCODW-yIaPAmwy.js.map} +1 -1
  102. package/lib/types/components/charts/MetricHistoryChart.d.ts +22 -0
  103. package/lib/types/components/charts/MetricHistoryChart.d.ts.map +1 -0
  104. package/lib/types/components/charts/metricHistoryChart.css.d.ts +8 -0
  105. package/lib/types/components/charts/metricHistoryChart.css.d.ts.map +1 -0
  106. package/lib/types/index.d.ts +1 -0
  107. package/lib/types/index.d.ts.map +1 -1
  108. package/package.json +2 -2
  109. package/lib/esm/BackofficeJsonViewerAsync-Czd9VhUz.js +0 -10
  110. package/lib/esm/katex-C5br0dxW.js.map +0 -1
  111. package/lib/esm/src-D6nEpsqe.js.map +0 -1
@@ -1,13 +1,13 @@
1
- import { C as e, D as t, E as n, O as r, S as i, T as a, _ as o, b as s, h as c, v as l, w as u, x as d, y as f } from "./chunk-GEFDOKGD-Dkux3ZgH.js";
1
+ import { C as e, D as t, E as n, O as r, S as i, T as a, _ as o, b as s, h as c, v as l, w as u, x as d, y as f } from "./chunk-GEFDOKGD-CWu-rFVf.js";
2
2
  import { g as p, h as m, p as h } from "./src-CSwi_PyL.js";
3
- import { b as g, w as _ } from "./chunk-7R4GIKGN-Cg9-qmu5.js";
4
- import { t as v } from "./line-CNKkQ82B.js";
5
- import { n as y } from "./chunk-PU5JKC2W-BzaL_NH3.js";
3
+ import { b as g, w as _ } from "./chunk-7R4GIKGN-tSw2Wb9z.js";
4
+ import { t as v } from "./line-AZ-MMAnt.js";
5
+ import { n as y } from "./chunk-PU5JKC2W-nnfoXdoB.js";
6
6
  import { i as b, n as x, r as S, t as C } from "./chunk-MX3YWQON-Bplci7iD.js";
7
- import { n as w } from "./chunk-YBOYWFTD-BL_YEnkQ.js";
8
- import { i as T, n as E } from "./chunk-PQ6SQG4A-BJO_yF6z.js";
7
+ import { n as w } from "./chunk-YBOYWFTD-DQeJ-Crn.js";
8
+ import { i as T, n as E } from "./chunk-PQ6SQG4A-DlekIw0F.js";
9
9
  import { t as ee } from "./rough.esm-BC5a17Ab.js";
10
- import { r as D } from "./chunk-KYZI473N-DeJhj0TI.js";
10
+ import { r as D } from "./chunk-KYZI473N-BwYBBC73.js";
11
11
  //#region ../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-O4XLMI2P.mjs
12
12
  var O = /* @__PURE__ */ m((e, t, n, r, i, a) => {
13
13
  t.arrowTypeStart && A(e, "start", t.arrowTypeStart, n, r, i, a), t.arrowTypeEnd && A(e, "end", t.arrowTypeEnd, n, r, i, a);
@@ -510,4 +510,4 @@ var q = /* @__PURE__ */ m((e, t, n, r) => {
510
510
  //#endregion
511
511
  export { L as a, Y as i, U as n, F as r, N as t };
512
512
 
513
- //# sourceMappingURL=chunk-O4XLMI2P-B49RDRA_.js.map
513
+ //# sourceMappingURL=chunk-O4XLMI2P-DxPipWrP.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-O4XLMI2P-B49RDRA_.js","names":["getConfig","select","curveLinear","curveBasis","curveCardinal","curveBumpX","curveBumpY","curveCatmullRom","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","line","rough"],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-O4XLMI2P.mjs"],"sourcesContent":["import {\n computeLabelTransform,\n getLineFunctionsWithOffset,\n markerOffsets,\n markerOffsets2\n} from \"./chunk-MX3YWQON.mjs\";\nimport {\n createLabel_default\n} from \"./chunk-KYZI473N.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-YBOYWFTD.mjs\";\nimport {\n isLabelStyle,\n styles2String\n} from \"./chunk-PQ6SQG4A.mjs\";\nimport {\n createText\n} from \"./chunk-PU5JKC2W.mjs\";\nimport {\n utils_default\n} from \"./chunk-GEFDOKGD.mjs\";\nimport {\n getConfig2 as getConfig,\n getEffectiveHtmlLabels\n} from \"./chunk-7R4GIKGN.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, strokeColor) => {\n if (edge.arrowTypeStart) {\n addEdgeMarker(svgPath, \"start\", edge.arrowTypeStart, url, id, diagramType, strokeColor);\n }\n if (edge.arrowTypeEnd) {\n addEdgeMarker(svgPath, \"end\", edge.arrowTypeEnd, url, id, diagramType, 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_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 addEdgeMarker = /* @__PURE__ */ __name((svgPath, position, arrowType, url, id, diagramType, strokeColor) => {\n const arrowTypeInfo = arrowTypesMap[arrowType];\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 originalMarkerId = `${id}_${diagramType}-${endMarkerType}${suffix}`;\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 : getConfig()?.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 = getConfig();\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(getConfig()) && 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 = getConfig();\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, id, skipIntersect = false) {\n const { handDrawnSeed } = getConfig();\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\", 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\", 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 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 (getConfig().flowchart.arrowMarkerAbsolute || getConfig().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 addEdgeMarkers(svgPath, edge, url, id, diagramType, 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\").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}, \"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}, \"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}, \"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}, \"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}, \"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}, \"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}, \"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}, \"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 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 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_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 markers = {\n extension,\n composition,\n aggregation,\n dependency,\n lollipop,\n point,\n circle,\n cross,\n barb,\n only_one,\n zero_or_one,\n one_or_more,\n zero_or_more,\n requirement_arrow,\n requirement_contains\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-O4XLMI2P-DxPipWrP.js","names":["getConfig","select","curveLinear","curveBasis","curveCardinal","curveBumpX","curveBumpY","curveCatmullRom","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","line","rough"],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-O4XLMI2P.mjs"],"sourcesContent":["import {\n computeLabelTransform,\n getLineFunctionsWithOffset,\n markerOffsets,\n markerOffsets2\n} from \"./chunk-MX3YWQON.mjs\";\nimport {\n createLabel_default\n} from \"./chunk-KYZI473N.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-YBOYWFTD.mjs\";\nimport {\n isLabelStyle,\n styles2String\n} from \"./chunk-PQ6SQG4A.mjs\";\nimport {\n createText\n} from \"./chunk-PU5JKC2W.mjs\";\nimport {\n utils_default\n} from \"./chunk-GEFDOKGD.mjs\";\nimport {\n getConfig2 as getConfig,\n getEffectiveHtmlLabels\n} from \"./chunk-7R4GIKGN.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, strokeColor) => {\n if (edge.arrowTypeStart) {\n addEdgeMarker(svgPath, \"start\", edge.arrowTypeStart, url, id, diagramType, strokeColor);\n }\n if (edge.arrowTypeEnd) {\n addEdgeMarker(svgPath, \"end\", edge.arrowTypeEnd, url, id, diagramType, 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_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 addEdgeMarker = /* @__PURE__ */ __name((svgPath, position, arrowType, url, id, diagramType, strokeColor) => {\n const arrowTypeInfo = arrowTypesMap[arrowType];\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 originalMarkerId = `${id}_${diagramType}-${endMarkerType}${suffix}`;\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 : getConfig()?.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 = getConfig();\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(getConfig()) && 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 = getConfig();\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, id, skipIntersect = false) {\n const { handDrawnSeed } = getConfig();\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\", 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\", 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 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 (getConfig().flowchart.arrowMarkerAbsolute || getConfig().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 addEdgeMarkers(svgPath, edge, url, id, diagramType, 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\").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}, \"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}, \"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}, \"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}, \"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}, \"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}, \"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}, \"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}, \"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 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 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_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 markers = {\n extension,\n composition,\n aggregation,\n dependency,\n lollipop,\n point,\n circle,\n cross,\n barb,\n only_one,\n zero_or_one,\n one_or_more,\n zero_or_more,\n requirement_arrow,\n requirement_contains\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,5 +1,5 @@
1
1
  import { h as e } from "./src-CSwi_PyL.js";
2
- import { b as t } from "./chunk-7R4GIKGN-Cg9-qmu5.js";
2
+ import { b as t } from "./chunk-7R4GIKGN-tSw2Wb9z.js";
3
3
  //#region ../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-PQ6SQG4A.mjs
4
4
  var n = /* @__PURE__ */ e((e) => {
5
5
  let { handDrawnSeed: n } = t();
@@ -66,4 +66,4 @@ var n = /* @__PURE__ */ e((e) => {
66
66
  //#endregion
67
67
  export { s as a, o as i, a as n, n as r, r as t };
68
68
 
69
- //# sourceMappingURL=chunk-PQ6SQG4A-BJO_yF6z.js.map
69
+ //# sourceMappingURL=chunk-PQ6SQG4A-DlekIw0F.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-PQ6SQG4A-BJO_yF6z.js","names":["getConfig"],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-PQ6SQG4A.mjs"],"sourcesContent":["import {\n getConfig2 as getConfig\n} from \"./chunk-7R4GIKGN.mjs\";\nimport {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/rendering-elements/shapes/handDrawnShapeStyles.ts\nvar solidStateFill = /* @__PURE__ */ __name((color) => {\n const { handDrawnSeed } = getConfig();\n return {\n fill: color,\n hachureAngle: 120,\n // angle of hachure,\n hachureGap: 4,\n fillWeight: 2,\n roughness: 0.7,\n stroke: color,\n seed: handDrawnSeed\n };\n}, \"solidStateFill\");\nvar compileStyles = /* @__PURE__ */ __name((node) => {\n const stylesMap = styles2Map([\n ...node.cssCompiledStyles || [],\n ...node.cssStyles || [],\n ...node.labelStyle || []\n ]);\n return { stylesMap, stylesArray: [...stylesMap] };\n}, \"compileStyles\");\nvar styles2Map = /* @__PURE__ */ __name((styles) => {\n const styleMap = /* @__PURE__ */ new Map();\n styles.forEach((style) => {\n const [key, value] = style.split(\":\");\n styleMap.set(key.trim(), value?.trim());\n });\n return styleMap;\n}, \"styles2Map\");\nvar isLabelStyle = /* @__PURE__ */ __name((key) => {\n return key === \"color\" || key === \"font-size\" || key === \"font-family\" || key === \"font-weight\" || key === \"font-style\" || key === \"text-decoration\" || key === \"text-align\" || key === \"text-transform\" || key === \"line-height\" || key === \"letter-spacing\" || key === \"word-spacing\" || key === \"text-shadow\" || key === \"text-overflow\" || key === \"white-space\" || key === \"word-wrap\" || key === \"word-break\" || key === \"overflow-wrap\" || key === \"hyphens\";\n}, \"isLabelStyle\");\nvar styles2String = /* @__PURE__ */ __name((node) => {\n const { stylesArray } = compileStyles(node);\n const labelStyles = [];\n const nodeStyles = [];\n const borderStyles = [];\n const backgroundStyles = [];\n stylesArray.forEach((style) => {\n const key = style[0];\n if (isLabelStyle(key)) {\n labelStyles.push(style.join(\":\") + \" !important\");\n } else {\n nodeStyles.push(style.join(\":\") + \" !important\");\n if (key.includes(\"stroke\")) {\n borderStyles.push(style.join(\":\") + \" !important\");\n }\n if (key === \"fill\") {\n backgroundStyles.push(style.join(\":\") + \" !important\");\n }\n }\n });\n return {\n labelStyles: labelStyles.join(\";\"),\n nodeStyles: nodeStyles.join(\";\"),\n stylesArray,\n borderStyles,\n backgroundStyles\n };\n}, \"styles2String\");\nvar userNodeOverrides = /* @__PURE__ */ __name((node, options) => {\n const { themeVariables, handDrawnSeed } = getConfig();\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const result = Object.assign(\n {\n roughness: 0.7,\n fill: stylesMap.get(\"fill\") || mainBkg,\n fillStyle: \"hachure\",\n // solid fill\n fillWeight: 4,\n hachureGap: 5.2,\n stroke: stylesMap.get(\"stroke\") || nodeBorder,\n seed: handDrawnSeed,\n strokeWidth: stylesMap.get(\"stroke-width\")?.replace(\"px\", \"\") || 1.3,\n fillLineDash: [0, 0],\n strokeLineDash: getStrokeDashArray(stylesMap.get(\"stroke-dasharray\"))\n },\n options\n );\n return result;\n}, \"userNodeOverrides\");\nvar getStrokeDashArray = /* @__PURE__ */ __name((strokeDasharrayStyle) => {\n if (!strokeDasharrayStyle) {\n return [0, 0];\n }\n const dashArray = strokeDasharrayStyle.trim().split(/\\s+/).map(Number);\n if (dashArray.length === 1) {\n const val = isNaN(dashArray[0]) ? 0 : dashArray[0];\n return [val, val];\n }\n const first = isNaN(dashArray[0]) ? 0 : dashArray[0];\n const second = isNaN(dashArray[1]) ? 0 : dashArray[1];\n return [first, second];\n}, \"getStrokeDashArray\");\n\nexport {\n solidStateFill,\n compileStyles,\n isLabelStyle,\n styles2String,\n userNodeOverrides\n};\n"],"x_google_ignoreList":[0],"mappings":";;;AAQA,IAAI,IAAiC,mBAAQ,MAAU;CACrD,IAAM,EAAE,qBAAkBA,GAAW;AACrC,QAAO;EACL,MAAM;EACN,cAAc;EAEd,YAAY;EACZ,YAAY;EACZ,WAAW;EACX,QAAQ;EACR,MAAM;EACP;GACA,iBAAiB,EAChB,IAAgC,mBAAQ,MAAS;CACnD,IAAM,IAAY,EAAW;EAC3B,GAAG,EAAK,qBAAqB,EAAE;EAC/B,GAAG,EAAK,aAAa,EAAE;EACvB,GAAG,EAAK,cAAc,EAAE;EACzB,CAAC;AACF,QAAO;EAAE;EAAW,aAAa,CAAC,GAAG,EAAU;EAAE;GAChD,gBAAgB,EACf,IAA6B,mBAAQ,MAAW;CAClD,IAAM,oBAA2B,IAAI,KAAK;AAK1C,QAJA,EAAO,SAAS,MAAU;EACxB,IAAM,CAAC,GAAK,KAAS,EAAM,MAAM,IAAI;AACrC,IAAS,IAAI,EAAI,MAAM,EAAE,GAAO,MAAM,CAAC;GACvC,EACK;GACN,aAAa,EACZ,IAA+B,mBAAQ,MAClC,MAAQ,WAAW,MAAQ,eAAe,MAAQ,iBAAiB,MAAQ,iBAAiB,MAAQ,gBAAgB,MAAQ,qBAAqB,MAAQ,gBAAgB,MAAQ,oBAAoB,MAAQ,iBAAiB,MAAQ,oBAAoB,MAAQ,kBAAkB,MAAQ,iBAAiB,MAAQ,mBAAmB,MAAQ,iBAAiB,MAAQ,eAAe,MAAQ,gBAAgB,MAAQ,mBAAmB,MAAQ,WACzb,eAAe,EACd,IAAgC,mBAAQ,MAAS;CACnD,IAAM,EAAE,mBAAgB,EAAc,EAAK,EACrC,IAAc,EAAE,EAChB,IAAa,EAAE,EACf,IAAe,EAAE,EACjB,IAAmB,EAAE;AAe3B,QAdA,EAAY,SAAS,MAAU;EAC7B,IAAM,IAAM,EAAM;AAClB,EAAI,EAAa,EAAI,GACnB,EAAY,KAAK,EAAM,KAAK,IAAI,GAAG,cAAc,IAEjD,EAAW,KAAK,EAAM,KAAK,IAAI,GAAG,cAAc,EAC5C,EAAI,SAAS,SAAS,IACxB,EAAa,KAAK,EAAM,KAAK,IAAI,GAAG,cAAc,EAEhD,MAAQ,UACV,EAAiB,KAAK,EAAM,KAAK,IAAI,GAAG,cAAc;GAG1D,EACK;EACL,aAAa,EAAY,KAAK,IAAI;EAClC,YAAY,EAAW,KAAK,IAAI;EAChC;EACA;EACA;EACD;GACA,gBAAgB,EACf,IAAoC,mBAAQ,GAAM,MAAY;CAChE,IAAM,EAAE,mBAAgB,qBAAkBA,GAAW,EAC/C,EAAE,eAAY,eAAY,GAC1B,EAAE,iBAAc,EAAc,EAAK;AAiBzC,QAhBe,OAAO,OACpB;EACE,WAAW;EACX,MAAM,EAAU,IAAI,OAAO,IAAI;EAC/B,WAAW;EAEX,YAAY;EACZ,YAAY;EACZ,QAAQ,EAAU,IAAI,SAAS,IAAI;EACnC,MAAM;EACN,aAAa,EAAU,IAAI,eAAe,EAAE,QAAQ,MAAM,GAAG,IAAI;EACjE,cAAc,CAAC,GAAG,EAAE;EACpB,gBAAgB,EAAmB,EAAU,IAAI,mBAAmB,CAAC;EACtE,EACD,EACD;GAEA,oBAAoB,EACnB,IAAqC,mBAAQ,MAAyB;AACxE,KAAI,CAAC,EACH,QAAO,CAAC,GAAG,EAAE;CAEf,IAAM,IAAY,EAAqB,MAAM,CAAC,MAAM,MAAM,CAAC,IAAI,OAAO;AACtE,KAAI,EAAU,WAAW,GAAG;EAC1B,IAAM,IAAM,MAAM,EAAU,GAAG,GAAG,IAAI,EAAU;AAChD,SAAO,CAAC,GAAK,EAAI;;AAInB,QAAO,CAFO,MAAM,EAAU,GAAG,GAAG,IAAI,EAAU,IACnC,MAAM,EAAU,GAAG,GAAG,IAAI,EAAU,GAC7B;GACrB,qBAAqB"}
1
+ {"version":3,"file":"chunk-PQ6SQG4A-DlekIw0F.js","names":["getConfig"],"sources":["../../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-PQ6SQG4A.mjs"],"sourcesContent":["import {\n getConfig2 as getConfig\n} from \"./chunk-7R4GIKGN.mjs\";\nimport {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/rendering-elements/shapes/handDrawnShapeStyles.ts\nvar solidStateFill = /* @__PURE__ */ __name((color) => {\n const { handDrawnSeed } = getConfig();\n return {\n fill: color,\n hachureAngle: 120,\n // angle of hachure,\n hachureGap: 4,\n fillWeight: 2,\n roughness: 0.7,\n stroke: color,\n seed: handDrawnSeed\n };\n}, \"solidStateFill\");\nvar compileStyles = /* @__PURE__ */ __name((node) => {\n const stylesMap = styles2Map([\n ...node.cssCompiledStyles || [],\n ...node.cssStyles || [],\n ...node.labelStyle || []\n ]);\n return { stylesMap, stylesArray: [...stylesMap] };\n}, \"compileStyles\");\nvar styles2Map = /* @__PURE__ */ __name((styles) => {\n const styleMap = /* @__PURE__ */ new Map();\n styles.forEach((style) => {\n const [key, value] = style.split(\":\");\n styleMap.set(key.trim(), value?.trim());\n });\n return styleMap;\n}, \"styles2Map\");\nvar isLabelStyle = /* @__PURE__ */ __name((key) => {\n return key === \"color\" || key === \"font-size\" || key === \"font-family\" || key === \"font-weight\" || key === \"font-style\" || key === \"text-decoration\" || key === \"text-align\" || key === \"text-transform\" || key === \"line-height\" || key === \"letter-spacing\" || key === \"word-spacing\" || key === \"text-shadow\" || key === \"text-overflow\" || key === \"white-space\" || key === \"word-wrap\" || key === \"word-break\" || key === \"overflow-wrap\" || key === \"hyphens\";\n}, \"isLabelStyle\");\nvar styles2String = /* @__PURE__ */ __name((node) => {\n const { stylesArray } = compileStyles(node);\n const labelStyles = [];\n const nodeStyles = [];\n const borderStyles = [];\n const backgroundStyles = [];\n stylesArray.forEach((style) => {\n const key = style[0];\n if (isLabelStyle(key)) {\n labelStyles.push(style.join(\":\") + \" !important\");\n } else {\n nodeStyles.push(style.join(\":\") + \" !important\");\n if (key.includes(\"stroke\")) {\n borderStyles.push(style.join(\":\") + \" !important\");\n }\n if (key === \"fill\") {\n backgroundStyles.push(style.join(\":\") + \" !important\");\n }\n }\n });\n return {\n labelStyles: labelStyles.join(\";\"),\n nodeStyles: nodeStyles.join(\";\"),\n stylesArray,\n borderStyles,\n backgroundStyles\n };\n}, \"styles2String\");\nvar userNodeOverrides = /* @__PURE__ */ __name((node, options) => {\n const { themeVariables, handDrawnSeed } = getConfig();\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const result = Object.assign(\n {\n roughness: 0.7,\n fill: stylesMap.get(\"fill\") || mainBkg,\n fillStyle: \"hachure\",\n // solid fill\n fillWeight: 4,\n hachureGap: 5.2,\n stroke: stylesMap.get(\"stroke\") || nodeBorder,\n seed: handDrawnSeed,\n strokeWidth: stylesMap.get(\"stroke-width\")?.replace(\"px\", \"\") || 1.3,\n fillLineDash: [0, 0],\n strokeLineDash: getStrokeDashArray(stylesMap.get(\"stroke-dasharray\"))\n },\n options\n );\n return result;\n}, \"userNodeOverrides\");\nvar getStrokeDashArray = /* @__PURE__ */ __name((strokeDasharrayStyle) => {\n if (!strokeDasharrayStyle) {\n return [0, 0];\n }\n const dashArray = strokeDasharrayStyle.trim().split(/\\s+/).map(Number);\n if (dashArray.length === 1) {\n const val = isNaN(dashArray[0]) ? 0 : dashArray[0];\n return [val, val];\n }\n const first = isNaN(dashArray[0]) ? 0 : dashArray[0];\n const second = isNaN(dashArray[1]) ? 0 : dashArray[1];\n return [first, second];\n}, \"getStrokeDashArray\");\n\nexport {\n solidStateFill,\n compileStyles,\n isLabelStyle,\n styles2String,\n userNodeOverrides\n};\n"],"x_google_ignoreList":[0],"mappings":";;;AAQA,IAAI,IAAiC,mBAAQ,MAAU;CACrD,IAAM,EAAE,qBAAkBA,GAAW;AACrC,QAAO;EACL,MAAM;EACN,cAAc;EAEd,YAAY;EACZ,YAAY;EACZ,WAAW;EACX,QAAQ;EACR,MAAM;EACP;GACA,iBAAiB,EAChB,IAAgC,mBAAQ,MAAS;CACnD,IAAM,IAAY,EAAW;EAC3B,GAAG,EAAK,qBAAqB,EAAE;EAC/B,GAAG,EAAK,aAAa,EAAE;EACvB,GAAG,EAAK,cAAc,EAAE;EACzB,CAAC;AACF,QAAO;EAAE;EAAW,aAAa,CAAC,GAAG,EAAU;EAAE;GAChD,gBAAgB,EACf,IAA6B,mBAAQ,MAAW;CAClD,IAAM,oBAA2B,IAAI,KAAK;AAK1C,QAJA,EAAO,SAAS,MAAU;EACxB,IAAM,CAAC,GAAK,KAAS,EAAM,MAAM,IAAI;AACrC,IAAS,IAAI,EAAI,MAAM,EAAE,GAAO,MAAM,CAAC;GACvC,EACK;GACN,aAAa,EACZ,IAA+B,mBAAQ,MAClC,MAAQ,WAAW,MAAQ,eAAe,MAAQ,iBAAiB,MAAQ,iBAAiB,MAAQ,gBAAgB,MAAQ,qBAAqB,MAAQ,gBAAgB,MAAQ,oBAAoB,MAAQ,iBAAiB,MAAQ,oBAAoB,MAAQ,kBAAkB,MAAQ,iBAAiB,MAAQ,mBAAmB,MAAQ,iBAAiB,MAAQ,eAAe,MAAQ,gBAAgB,MAAQ,mBAAmB,MAAQ,WACzb,eAAe,EACd,IAAgC,mBAAQ,MAAS;CACnD,IAAM,EAAE,mBAAgB,EAAc,EAAK,EACrC,IAAc,EAAE,EAChB,IAAa,EAAE,EACf,IAAe,EAAE,EACjB,IAAmB,EAAE;AAe3B,QAdA,EAAY,SAAS,MAAU;EAC7B,IAAM,IAAM,EAAM;AAClB,EAAI,EAAa,EAAI,GACnB,EAAY,KAAK,EAAM,KAAK,IAAI,GAAG,cAAc,IAEjD,EAAW,KAAK,EAAM,KAAK,IAAI,GAAG,cAAc,EAC5C,EAAI,SAAS,SAAS,IACxB,EAAa,KAAK,EAAM,KAAK,IAAI,GAAG,cAAc,EAEhD,MAAQ,UACV,EAAiB,KAAK,EAAM,KAAK,IAAI,GAAG,cAAc;GAG1D,EACK;EACL,aAAa,EAAY,KAAK,IAAI;EAClC,YAAY,EAAW,KAAK,IAAI;EAChC;EACA;EACA;EACD;GACA,gBAAgB,EACf,IAAoC,mBAAQ,GAAM,MAAY;CAChE,IAAM,EAAE,mBAAgB,qBAAkBA,GAAW,EAC/C,EAAE,eAAY,eAAY,GAC1B,EAAE,iBAAc,EAAc,EAAK;AAiBzC,QAhBe,OAAO,OACpB;EACE,WAAW;EACX,MAAM,EAAU,IAAI,OAAO,IAAI;EAC/B,WAAW;EAEX,YAAY;EACZ,YAAY;EACZ,QAAQ,EAAU,IAAI,SAAS,IAAI;EACnC,MAAM;EACN,aAAa,EAAU,IAAI,eAAe,EAAE,QAAQ,MAAM,GAAG,IAAI;EACjE,cAAc,CAAC,GAAG,EAAE;EACpB,gBAAgB,EAAmB,EAAU,IAAI,mBAAmB,CAAC;EACtE,EACD,EACD;GAEA,oBAAoB,EACnB,IAAqC,mBAAQ,MAAyB;AACxE,KAAI,CAAC,EACH,QAAO,CAAC,GAAG,EAAE;CAEf,IAAM,IAAY,EAAqB,MAAM,CAAC,MAAM,MAAM,CAAC,IAAI,OAAO;AACtE,KAAI,EAAU,WAAW,GAAG;EAC1B,IAAM,IAAM,MAAM,EAAU,GAAG,GAAG,IAAI,EAAU;AAChD,SAAO,CAAC,GAAK,EAAI;;AAInB,QAAO,CAFO,MAAM,EAAU,GAAG,GAAG,IAAI,EAAU,IACnC,MAAM,EAAU,GAAG,GAAG,IAAI,EAAU,GAC7B;GACrB,qBAAqB"}
@@ -1,6 +1,6 @@
1
- import { i as e } from "./chunk-GEFDOKGD-Dkux3ZgH.js";
1
+ import { i as e } from "./chunk-GEFDOKGD-CWu-rFVf.js";
2
2
  import { g as t, h as n, p as r } from "./src-CSwi_PyL.js";
3
- import { L as i, P as a, k as o, s, y as c } from "./chunk-7R4GIKGN-Cg9-qmu5.js";
3
+ import { L as i, P as a, k as o, s, y as c } from "./chunk-7R4GIKGN-tSw2Wb9z.js";
4
4
  //#region ../../node_modules/@iconify/utils/lib/icon/defaults.js
5
5
  var l = Object.freeze({
6
6
  left: 0,
@@ -1884,4 +1884,4 @@ var Ft = /* @__PURE__ */ n(async (n, i = "", { style: a = "", isTitle: s = !1, c
1884
1884
  //#endregion
1885
1885
  export { _t as a, yt as i, Ft as n, gt as o, St as r, Pt as t };
1886
1886
 
1887
- //# sourceMappingURL=chunk-PU5JKC2W-BzaL_NH3.js.map
1887
+ //# sourceMappingURL=chunk-PU5JKC2W-nnfoXdoB.js.map