@blueking/ai-blueking 2.0.0-dev.2 → 2.0.0-dev.3

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 (183) hide show
  1. package/dist/vue2/_baseFor-DAbrc8SN.js +309 -0
  2. package/dist/vue2/arc-BqlAOiZb.js +78 -0
  3. package/dist/vue2/architecture-U656AL7Q-Dtuq8BzO.js +7 -0
  4. package/dist/vue2/architectureDiagram-VXUJARFQ-BQS5Ixrn.js +4052 -0
  5. package/dist/vue2/array-TB8zN_HT.js +5 -0
  6. package/dist/vue2/blockDiagram-VD42YOAC-Bp6L6c6e.js +3013 -0
  7. package/dist/vue2/c4Diagram-YG6GDRKO-B15ZDn3Z.js +2956 -0
  8. package/dist/vue2/channel-edTl5mpN.js +3 -0
  9. package/dist/vue2/chunk-4BX2VUAB-eAYYj1bL.js +6 -0
  10. package/dist/vue2/chunk-55IACEB6-CTzuTcHv.js +6 -0
  11. package/dist/vue2/chunk-76Q3JFCE-BrJX66ha.js +19 -0
  12. package/dist/vue2/chunk-ABZYJK2D-gsx40GnJ.js +1971 -0
  13. package/dist/vue2/chunk-ATLVNIR6-CTTwtx-5.js +65 -0
  14. package/dist/vue2/chunk-B4BG7PRW-D8o7VxRH.js +3108 -0
  15. package/dist/vue2/chunk-CVBHYZKI-Cs8lCw3u.js +10 -0
  16. package/dist/vue2/chunk-DI55MBZ5-Dl59YBtR.js +1994 -0
  17. package/dist/vue2/chunk-DNh5sLlG.js +18 -0
  18. package/dist/vue2/chunk-EXTU4WIE-BPc8ye_N.js +7 -0
  19. package/dist/vue2/chunk-FMBD7UC4-PFlLPz_s.js +3 -0
  20. package/dist/vue2/chunk-FPAJGGOC-DPvjUKQ8.js +13428 -0
  21. package/dist/vue2/chunk-FWNWRKHM-BlUTFsPK.js +56 -0
  22. package/dist/vue2/chunk-HN2XXSSU-DueSY85P.js +74 -0
  23. package/dist/vue2/chunk-JA3XYJ7Z-CRet4f6a.js +1845 -0
  24. package/dist/vue2/chunk-JZLCHNYA-Df0-MseJ.js +4861 -0
  25. package/dist/vue2/chunk-LBM3YZW2-B0-w2HZs.js +19 -0
  26. package/dist/vue2/chunk-LHMN2FUI-BOH3yE2u.js +19 -0
  27. package/dist/vue2/chunk-MI3HLSF2-6-T1J0MS.js +1140 -0
  28. package/dist/vue2/chunk-N4CR4FBY-jNnt5D3v.js +39 -0
  29. package/dist/vue2/chunk-O7ZBX7Z2-BEP34BEE.js +26 -0
  30. package/dist/vue2/chunk-QN33PNHL-DsC-XeM9.js +23 -0
  31. package/dist/vue2/chunk-QXUST7PY-DxFRymyS.js +486 -0
  32. package/dist/vue2/chunk-QZHKN3VN-D9B5jQvg.js +11 -0
  33. package/dist/vue2/chunk-S3R3BYOJ-Bs_r55Kk.js +1222 -0
  34. package/dist/vue2/chunk-S6J4BHB3-XXfWHJvh.js +19 -0
  35. package/dist/vue2/chunk-T53DSG4Q-CNvqP6Iy.js +24 -0
  36. package/dist/vue2/chunk-TZMSLE5B-C5ccYWGN.js +55 -0
  37. package/dist/vue2/chunk-XAJISQIX-XsDvU4jW.js +135 -0
  38. package/dist/vue2/classDiagram-2ON5EDUG-Cgf9yVXj.js +33 -0
  39. package/dist/vue2/classDiagram-v2-WZHVMYZB-BtF1_0UK.js +33 -0
  40. package/dist/vue2/clone-Bbr3WSpg.js +7 -0
  41. package/dist/vue2/cose-bilkent-S5V4N54A-Cmf6WLkk.js +2250 -0
  42. package/dist/vue2/cytoscape.esm-nrcriBSO.js +18100 -0
  43. package/dist/vue2/dagre-6UL2VRFP-CTl_U96l.js +298 -0
  44. package/dist/vue2/dagre-DUjlMe_B.js +1496 -0
  45. package/dist/vue2/defaultLocale-BLATqOV5.js +177 -0
  46. package/dist/vue2/diagram-PSM6KHXK-Bl7brR-1.js +497 -0
  47. package/dist/vue2/diagram-QEK2KX5R-CAeywSxy.js +226 -0
  48. package/dist/vue2/diagram-S2PKOQOG-6I6J4WRC.js +144 -0
  49. package/dist/vue2/dist-xWJvauxf.js +49 -0
  50. package/dist/vue2/erDiagram-Q2GNP2WA-C8EbfuTj.js +1603 -0
  51. package/dist/vue2/flatten-CfPhNHUL.js +34 -0
  52. package/dist/vue2/flowDiagram-NV44I4VS-lFr4G2WN.js +4132 -0
  53. package/dist/vue2/ganttDiagram-JELNMOA3-Bvtip7yn.js +3010 -0
  54. package/dist/vue2/gitGraph-F6HP7TQM-OQvD95bN.js +7 -0
  55. package/dist/vue2/gitGraphDiagram-NY62KEGX-Cjvy4fHM.js +634 -0
  56. package/dist/vue2/graphlib-KDKEjVHX.js +344 -0
  57. package/dist/vue2/index.es.min.js +26703 -786
  58. package/dist/vue2/index.umd.min.js +2796 -9
  59. package/dist/vue2/info-NVLQJR56-DBsOnIKy.js +7 -0
  60. package/dist/vue2/infoDiagram-WHAUD3N6-D_isj7oC.js +31 -0
  61. package/dist/vue2/init-hAkIK9Bd.js +13 -0
  62. package/dist/vue2/isEmpty-z27q3o-D.js +32 -0
  63. package/dist/vue2/journeyDiagram-XKPGCS4Q-DlXHMS3v.js +885 -0
  64. package/dist/vue2/kanban-definition-3W4ZIXB7-CV6572lv.js +971 -0
  65. package/dist/vue2/katex-CEAw-xiA.js +22097 -0
  66. package/dist/vue2/katex-D8o5-F7C.js +2 -0
  67. package/dist/vue2/line-wvheYP7S.js +30 -0
  68. package/dist/vue2/linear-STTevhnH.js +250 -0
  69. package/dist/vue2/math-DF_v6dOl.js +8 -0
  70. package/dist/vue2/mermaid-parser.core-VAa8Vi1g.js +48 -0
  71. package/dist/vue2/mermaid.core-vqI6KB9k.js +895 -0
  72. package/dist/vue2/mindmap-definition-VGOIOE7T-gtjvHqQ-.js +960 -0
  73. package/dist/vue2/ordinal-DOM6Fa9P.js +61 -0
  74. package/dist/vue2/packet-BFZMPI3H-CG049KmZ.js +7 -0
  75. package/dist/vue2/path-CW_-_Ti7.js +79 -0
  76. package/dist/vue2/pie-7BOR55EZ-BHq0KcLP.js +7 -0
  77. package/dist/vue2/pieDiagram-ADFJNKIX-CTUoM-kp.js +172 -0
  78. package/dist/vue2/purify.es-Cm_tUMzZ.js +547 -0
  79. package/dist/vue2/quadrantDiagram-AYHSOK5B-Njl7BMW7.js +1971 -0
  80. package/dist/vue2/radar-NHE76QYJ-CUoVtrAx.js +7 -0
  81. package/dist/vue2/reduce-BFKSG9Rs.js +451 -0
  82. package/dist/vue2/requirementDiagram-UZGBJVZJ-DKjE3cDK.js +2194 -0
  83. package/dist/vue2/sankeyDiagram-TZEHDZUN-DW2ap3zY.js +885 -0
  84. package/dist/vue2/sequenceDiagram-WL72ISMW-BjMq4OjH.js +3561 -0
  85. package/dist/vue2/src-VlKYSsxJ.js +1975 -0
  86. package/dist/vue2/stateDiagram-FKZM4ZOC-CnvtGM9U.js +224 -0
  87. package/dist/vue2/stateDiagram-v2-4FDKWEC3-C15xi-04.js +32 -0
  88. package/dist/vue2/style.css +1 -1
  89. package/dist/vue2/timeline-definition-IT6M3QCI-C7q6jdLA.js +831 -0
  90. package/dist/vue2/treemap-KMMF4GRG--FdijCcy.js +7 -0
  91. package/dist/vue2/xychartDiagram-PRI3JC2R-UcfQmj72.js +2022 -0
  92. package/dist/vue3/_baseFor-DAbrc8SN.js +309 -0
  93. package/dist/vue3/arc-BqlAOiZb.js +78 -0
  94. package/dist/vue3/architecture-U656AL7Q-Dtuq8BzO.js +7 -0
  95. package/dist/vue3/architectureDiagram-VXUJARFQ-BQS5Ixrn.js +4052 -0
  96. package/dist/vue3/array-TB8zN_HT.js +5 -0
  97. package/dist/vue3/blockDiagram-VD42YOAC-Bp6L6c6e.js +3013 -0
  98. package/dist/vue3/c4Diagram-YG6GDRKO-B15ZDn3Z.js +2956 -0
  99. package/dist/vue3/channel-edTl5mpN.js +3 -0
  100. package/dist/vue3/chunk-4BX2VUAB-eAYYj1bL.js +6 -0
  101. package/dist/vue3/chunk-55IACEB6-CTzuTcHv.js +6 -0
  102. package/dist/vue3/chunk-76Q3JFCE-BrJX66ha.js +19 -0
  103. package/dist/vue3/chunk-ABZYJK2D-gsx40GnJ.js +1971 -0
  104. package/dist/vue3/chunk-ATLVNIR6-CTTwtx-5.js +65 -0
  105. package/dist/vue3/chunk-B4BG7PRW-D8o7VxRH.js +3108 -0
  106. package/dist/vue3/chunk-CVBHYZKI-Cs8lCw3u.js +10 -0
  107. package/dist/vue3/chunk-DI55MBZ5-Dl59YBtR.js +1994 -0
  108. package/dist/vue3/chunk-DNh5sLlG.js +18 -0
  109. package/dist/vue3/chunk-EXTU4WIE-BPc8ye_N.js +7 -0
  110. package/dist/vue3/chunk-FMBD7UC4-PFlLPz_s.js +3 -0
  111. package/dist/vue3/chunk-FPAJGGOC-DPvjUKQ8.js +13428 -0
  112. package/dist/vue3/chunk-FWNWRKHM-BlUTFsPK.js +56 -0
  113. package/dist/vue3/chunk-HN2XXSSU-DueSY85P.js +74 -0
  114. package/dist/vue3/chunk-JA3XYJ7Z-CRet4f6a.js +1845 -0
  115. package/dist/vue3/chunk-JZLCHNYA-Df0-MseJ.js +4861 -0
  116. package/dist/vue3/chunk-LBM3YZW2-B0-w2HZs.js +19 -0
  117. package/dist/vue3/chunk-LHMN2FUI-BOH3yE2u.js +19 -0
  118. package/dist/vue3/chunk-MI3HLSF2-6-T1J0MS.js +1140 -0
  119. package/dist/vue3/chunk-N4CR4FBY-jNnt5D3v.js +39 -0
  120. package/dist/vue3/chunk-O7ZBX7Z2-BEP34BEE.js +26 -0
  121. package/dist/vue3/chunk-QN33PNHL-DsC-XeM9.js +23 -0
  122. package/dist/vue3/chunk-QXUST7PY-DxFRymyS.js +486 -0
  123. package/dist/vue3/chunk-QZHKN3VN-D9B5jQvg.js +11 -0
  124. package/dist/vue3/chunk-S3R3BYOJ-Bs_r55Kk.js +1222 -0
  125. package/dist/vue3/chunk-S6J4BHB3-XXfWHJvh.js +19 -0
  126. package/dist/vue3/chunk-T53DSG4Q-CNvqP6Iy.js +24 -0
  127. package/dist/vue3/chunk-TZMSLE5B-C5ccYWGN.js +55 -0
  128. package/dist/vue3/chunk-XAJISQIX-XsDvU4jW.js +135 -0
  129. package/dist/vue3/classDiagram-2ON5EDUG-Cgf9yVXj.js +33 -0
  130. package/dist/vue3/classDiagram-v2-WZHVMYZB-BtF1_0UK.js +33 -0
  131. package/dist/vue3/clone-Bbr3WSpg.js +7 -0
  132. package/dist/vue3/cose-bilkent-S5V4N54A-Cmf6WLkk.js +2250 -0
  133. package/dist/vue3/cytoscape.esm-nrcriBSO.js +18100 -0
  134. package/dist/vue3/dagre-6UL2VRFP-CTl_U96l.js +298 -0
  135. package/dist/vue3/dagre-DUjlMe_B.js +1496 -0
  136. package/dist/vue3/defaultLocale-BLATqOV5.js +177 -0
  137. package/dist/vue3/diagram-PSM6KHXK-Bl7brR-1.js +497 -0
  138. package/dist/vue3/diagram-QEK2KX5R-CAeywSxy.js +226 -0
  139. package/dist/vue3/diagram-S2PKOQOG-6I6J4WRC.js +144 -0
  140. package/dist/vue3/dist-xWJvauxf.js +49 -0
  141. package/dist/vue3/erDiagram-Q2GNP2WA-C8EbfuTj.js +1603 -0
  142. package/dist/vue3/flatten-CfPhNHUL.js +34 -0
  143. package/dist/vue3/flowDiagram-NV44I4VS-lFr4G2WN.js +4132 -0
  144. package/dist/vue3/ganttDiagram-JELNMOA3-Bvtip7yn.js +3010 -0
  145. package/dist/vue3/gitGraph-F6HP7TQM-OQvD95bN.js +7 -0
  146. package/dist/vue3/gitGraphDiagram-NY62KEGX-Cjvy4fHM.js +634 -0
  147. package/dist/vue3/graphlib-KDKEjVHX.js +344 -0
  148. package/dist/vue3/index.es.min.js +26730 -813
  149. package/dist/vue3/index.umd.min.js +2796 -9
  150. package/dist/vue3/info-NVLQJR56-DBsOnIKy.js +7 -0
  151. package/dist/vue3/infoDiagram-WHAUD3N6-D_isj7oC.js +31 -0
  152. package/dist/vue3/init-hAkIK9Bd.js +13 -0
  153. package/dist/vue3/isEmpty-z27q3o-D.js +32 -0
  154. package/dist/vue3/journeyDiagram-XKPGCS4Q-DlXHMS3v.js +885 -0
  155. package/dist/vue3/kanban-definition-3W4ZIXB7-CV6572lv.js +971 -0
  156. package/dist/vue3/katex-CEAw-xiA.js +22097 -0
  157. package/dist/vue3/katex-D8o5-F7C.js +2 -0
  158. package/dist/vue3/line-wvheYP7S.js +30 -0
  159. package/dist/vue3/linear-STTevhnH.js +250 -0
  160. package/dist/vue3/math-DF_v6dOl.js +8 -0
  161. package/dist/vue3/mermaid-parser.core-VAa8Vi1g.js +48 -0
  162. package/dist/vue3/mermaid.core-vqI6KB9k.js +895 -0
  163. package/dist/vue3/mindmap-definition-VGOIOE7T-gtjvHqQ-.js +960 -0
  164. package/dist/vue3/ordinal-DOM6Fa9P.js +61 -0
  165. package/dist/vue3/packet-BFZMPI3H-CG049KmZ.js +7 -0
  166. package/dist/vue3/path-CW_-_Ti7.js +79 -0
  167. package/dist/vue3/pie-7BOR55EZ-BHq0KcLP.js +7 -0
  168. package/dist/vue3/pieDiagram-ADFJNKIX-CTUoM-kp.js +172 -0
  169. package/dist/vue3/purify.es-Cm_tUMzZ.js +547 -0
  170. package/dist/vue3/quadrantDiagram-AYHSOK5B-Njl7BMW7.js +1971 -0
  171. package/dist/vue3/radar-NHE76QYJ-CUoVtrAx.js +7 -0
  172. package/dist/vue3/reduce-BFKSG9Rs.js +451 -0
  173. package/dist/vue3/requirementDiagram-UZGBJVZJ-DKjE3cDK.js +2194 -0
  174. package/dist/vue3/sankeyDiagram-TZEHDZUN-DW2ap3zY.js +885 -0
  175. package/dist/vue3/sequenceDiagram-WL72ISMW-BjMq4OjH.js +3561 -0
  176. package/dist/vue3/src-VlKYSsxJ.js +1975 -0
  177. package/dist/vue3/stateDiagram-FKZM4ZOC-CnvtGM9U.js +224 -0
  178. package/dist/vue3/stateDiagram-v2-4FDKWEC3-C15xi-04.js +32 -0
  179. package/dist/vue3/style.css +1 -1
  180. package/dist/vue3/timeline-definition-IT6M3QCI-C7q6jdLA.js +831 -0
  181. package/dist/vue3/treemap-KMMF4GRG--FdijCcy.js +7 -0
  182. package/dist/vue3/xychartDiagram-PRI3JC2R-UcfQmj72.js +2022 -0
  183. package/package.json +1 -1
@@ -0,0 +1,3013 @@
1
+ import "./purify.es-Cm_tUMzZ.js";
2
+ import "./reduce-BFKSG9Rs.js";
3
+ import "./_baseFor-DAbrc8SN.js";
4
+ import "./isEmpty-z27q3o-D.js";
5
+ import { g as log, h as __name, p as select_default } from "./src-VlKYSsxJ.js";
6
+ import { $ as rgba_default, E as getUrl, I as sanitizeText, a as clear, b as getConfig2, c as configureSvgSize, h as evaluate, s as common_default, y as getConfig } from "./chunk-ABZYJK2D-gsx40GnJ.js";
7
+ import { t as channel_default } from "./channel-edTl5mpN.js";
8
+ import "./path-CW_-_Ti7.js";
9
+ import "./math-DF_v6dOl.js";
10
+ import "./array-TB8zN_HT.js";
11
+ import { U as basis_default, a as decodeEntities, g as utils_default, l as getStylesFromArray } from "./chunk-S3R3BYOJ-Bs_r55Kk.js";
12
+ import { t as line_default } from "./line-wvheYP7S.js";
13
+ import "./dist-xWJvauxf.js";
14
+ import { a as replaceIconSubstring, n as createText } from "./chunk-JA3XYJ7Z-CRet4f6a.js";
15
+ import { t as getIconStyles } from "./chunk-FMBD7UC4-PFlLPz_s.js";
16
+ import { t as getLineFunctionsWithOffset } from "./chunk-HN2XXSSU-DueSY85P.js";
17
+ import { t as getSubGraphTitleMargins } from "./chunk-CVBHYZKI-Cs8lCw3u.js";
18
+ import { t as Graph } from "./graphlib-KDKEjVHX.js";
19
+ import { t as clone_default } from "./clone-Bbr3WSpg.js";
20
+ var parser = (function() {
21
+ var e = /* @__PURE__ */ __name(function(e, S, C, w) {
22
+ for (C ||= {}, w = e.length; w--; C[e[w]] = S);
23
+ return C;
24
+ }, "o"), C = [1, 15], w = [1, 7], T = [1, 13], E = [1, 14], D = [1, 19], O = [1, 16], k = [1, 17], A = [1, 18], j = [8, 30], M = [
25
+ 8,
26
+ 10,
27
+ 21,
28
+ 28,
29
+ 29,
30
+ 30,
31
+ 31,
32
+ 39,
33
+ 43,
34
+ 46
35
+ ], N = [1, 23], P = [1, 24], F = [
36
+ 8,
37
+ 10,
38
+ 15,
39
+ 16,
40
+ 21,
41
+ 28,
42
+ 29,
43
+ 30,
44
+ 31,
45
+ 39,
46
+ 43,
47
+ 46
48
+ ], I = [
49
+ 8,
50
+ 10,
51
+ 15,
52
+ 16,
53
+ 21,
54
+ 27,
55
+ 28,
56
+ 29,
57
+ 30,
58
+ 31,
59
+ 39,
60
+ 43,
61
+ 46
62
+ ], L = [1, 49], R = {
63
+ trace: /* @__PURE__ */ __name(function() {}, "trace"),
64
+ yy: {},
65
+ symbols_: {
66
+ error: 2,
67
+ spaceLines: 3,
68
+ SPACELINE: 4,
69
+ NL: 5,
70
+ separator: 6,
71
+ SPACE: 7,
72
+ EOF: 8,
73
+ start: 9,
74
+ BLOCK_DIAGRAM_KEY: 10,
75
+ document: 11,
76
+ stop: 12,
77
+ statement: 13,
78
+ link: 14,
79
+ LINK: 15,
80
+ START_LINK: 16,
81
+ LINK_LABEL: 17,
82
+ STR: 18,
83
+ nodeStatement: 19,
84
+ columnsStatement: 20,
85
+ SPACE_BLOCK: 21,
86
+ blockStatement: 22,
87
+ classDefStatement: 23,
88
+ cssClassStatement: 24,
89
+ styleStatement: 25,
90
+ node: 26,
91
+ SIZE: 27,
92
+ COLUMNS: 28,
93
+ "id-block": 29,
94
+ end: 30,
95
+ NODE_ID: 31,
96
+ nodeShapeNLabel: 32,
97
+ dirList: 33,
98
+ DIR: 34,
99
+ NODE_DSTART: 35,
100
+ NODE_DEND: 36,
101
+ BLOCK_ARROW_START: 37,
102
+ BLOCK_ARROW_END: 38,
103
+ classDef: 39,
104
+ CLASSDEF_ID: 40,
105
+ CLASSDEF_STYLEOPTS: 41,
106
+ DEFAULT: 42,
107
+ class: 43,
108
+ CLASSENTITY_IDS: 44,
109
+ STYLECLASS: 45,
110
+ style: 46,
111
+ STYLE_ENTITY_IDS: 47,
112
+ STYLE_DEFINITION_DATA: 48,
113
+ $accept: 0,
114
+ $end: 1
115
+ },
116
+ terminals_: {
117
+ 2: "error",
118
+ 4: "SPACELINE",
119
+ 5: "NL",
120
+ 7: "SPACE",
121
+ 8: "EOF",
122
+ 10: "BLOCK_DIAGRAM_KEY",
123
+ 15: "LINK",
124
+ 16: "START_LINK",
125
+ 17: "LINK_LABEL",
126
+ 18: "STR",
127
+ 21: "SPACE_BLOCK",
128
+ 27: "SIZE",
129
+ 28: "COLUMNS",
130
+ 29: "id-block",
131
+ 30: "end",
132
+ 31: "NODE_ID",
133
+ 34: "DIR",
134
+ 35: "NODE_DSTART",
135
+ 36: "NODE_DEND",
136
+ 37: "BLOCK_ARROW_START",
137
+ 38: "BLOCK_ARROW_END",
138
+ 39: "classDef",
139
+ 40: "CLASSDEF_ID",
140
+ 41: "CLASSDEF_STYLEOPTS",
141
+ 42: "DEFAULT",
142
+ 43: "class",
143
+ 44: "CLASSENTITY_IDS",
144
+ 45: "STYLECLASS",
145
+ 46: "style",
146
+ 47: "STYLE_ENTITY_IDS",
147
+ 48: "STYLE_DEFINITION_DATA"
148
+ },
149
+ productions_: [
150
+ 0,
151
+ [3, 1],
152
+ [3, 2],
153
+ [3, 2],
154
+ [6, 1],
155
+ [6, 1],
156
+ [6, 1],
157
+ [9, 3],
158
+ [12, 1],
159
+ [12, 1],
160
+ [12, 2],
161
+ [12, 2],
162
+ [11, 1],
163
+ [11, 2],
164
+ [14, 1],
165
+ [14, 4],
166
+ [13, 1],
167
+ [13, 1],
168
+ [13, 1],
169
+ [13, 1],
170
+ [13, 1],
171
+ [13, 1],
172
+ [13, 1],
173
+ [19, 3],
174
+ [19, 2],
175
+ [19, 1],
176
+ [20, 1],
177
+ [22, 4],
178
+ [22, 3],
179
+ [26, 1],
180
+ [26, 2],
181
+ [33, 1],
182
+ [33, 2],
183
+ [32, 3],
184
+ [32, 4],
185
+ [23, 3],
186
+ [23, 3],
187
+ [24, 3],
188
+ [25, 3]
189
+ ],
190
+ performAction: /* @__PURE__ */ __name(function(e, S, C, w, T, E, D) {
191
+ var O = E.length - 1;
192
+ switch (T) {
193
+ case 4:
194
+ w.getLogger().debug("Rule: separator (NL) ");
195
+ break;
196
+ case 5:
197
+ w.getLogger().debug("Rule: separator (Space) ");
198
+ break;
199
+ case 6:
200
+ w.getLogger().debug("Rule: separator (EOF) ");
201
+ break;
202
+ case 7:
203
+ w.getLogger().debug("Rule: hierarchy: ", E[O - 1]), w.setHierarchy(E[O - 1]);
204
+ break;
205
+ case 8:
206
+ w.getLogger().debug("Stop NL ");
207
+ break;
208
+ case 9:
209
+ w.getLogger().debug("Stop EOF ");
210
+ break;
211
+ case 10:
212
+ w.getLogger().debug("Stop NL2 ");
213
+ break;
214
+ case 11:
215
+ w.getLogger().debug("Stop EOF2 ");
216
+ break;
217
+ case 12:
218
+ w.getLogger().debug("Rule: statement: ", E[O]), typeof E[O].length == "number" ? this.$ = E[O] : this.$ = [E[O]];
219
+ break;
220
+ case 13:
221
+ w.getLogger().debug("Rule: statement #2: ", E[O - 1]), this.$ = [E[O - 1]].concat(E[O]);
222
+ break;
223
+ case 14:
224
+ w.getLogger().debug("Rule: link: ", E[O], e), this.$ = {
225
+ edgeTypeStr: E[O],
226
+ label: ""
227
+ };
228
+ break;
229
+ case 15:
230
+ w.getLogger().debug("Rule: LABEL link: ", E[O - 3], E[O - 1], E[O]), this.$ = {
231
+ edgeTypeStr: E[O],
232
+ label: E[O - 1]
233
+ };
234
+ break;
235
+ case 18:
236
+ let S = parseInt(E[O]);
237
+ this.$ = {
238
+ id: w.generateId(),
239
+ type: "space",
240
+ label: "",
241
+ width: S,
242
+ children: []
243
+ };
244
+ break;
245
+ case 23:
246
+ w.getLogger().debug("Rule: (nodeStatement link node) ", E[O - 2], E[O - 1], E[O], " typestr: ", E[O - 1].edgeTypeStr);
247
+ let C = w.edgeStrToEdgeData(E[O - 1].edgeTypeStr);
248
+ this.$ = [
249
+ {
250
+ id: E[O - 2].id,
251
+ label: E[O - 2].label,
252
+ type: E[O - 2].type,
253
+ directions: E[O - 2].directions
254
+ },
255
+ {
256
+ id: E[O - 2].id + "-" + E[O].id,
257
+ start: E[O - 2].id,
258
+ end: E[O].id,
259
+ label: E[O - 1].label,
260
+ type: "edge",
261
+ directions: E[O].directions,
262
+ arrowTypeEnd: C,
263
+ arrowTypeStart: "arrow_open"
264
+ },
265
+ {
266
+ id: E[O].id,
267
+ label: E[O].label,
268
+ type: w.typeStr2Type(E[O].typeStr),
269
+ directions: E[O].directions
270
+ }
271
+ ];
272
+ break;
273
+ case 24:
274
+ w.getLogger().debug("Rule: nodeStatement (abc88 node size) ", E[O - 1], E[O]), this.$ = {
275
+ id: E[O - 1].id,
276
+ label: E[O - 1].label,
277
+ type: w.typeStr2Type(E[O - 1].typeStr),
278
+ directions: E[O - 1].directions,
279
+ widthInColumns: parseInt(E[O], 10)
280
+ };
281
+ break;
282
+ case 25:
283
+ w.getLogger().debug("Rule: nodeStatement (node) ", E[O]), this.$ = {
284
+ id: E[O].id,
285
+ label: E[O].label,
286
+ type: w.typeStr2Type(E[O].typeStr),
287
+ directions: E[O].directions,
288
+ widthInColumns: 1
289
+ };
290
+ break;
291
+ case 26:
292
+ w.getLogger().debug("APA123", this ? this : "na"), w.getLogger().debug("COLUMNS: ", E[O]), this.$ = {
293
+ type: "column-setting",
294
+ columns: E[O] === "auto" ? -1 : parseInt(E[O])
295
+ };
296
+ break;
297
+ case 27:
298
+ w.getLogger().debug("Rule: id-block statement : ", E[O - 2], E[O - 1]), w.generateId(), this.$ = {
299
+ ...E[O - 2],
300
+ type: "composite",
301
+ children: E[O - 1]
302
+ };
303
+ break;
304
+ case 28:
305
+ w.getLogger().debug("Rule: blockStatement : ", E[O - 2], E[O - 1], E[O]), this.$ = {
306
+ id: w.generateId(),
307
+ type: "composite",
308
+ label: "",
309
+ children: E[O - 1]
310
+ };
311
+ break;
312
+ case 29:
313
+ w.getLogger().debug("Rule: node (NODE_ID separator): ", E[O]), this.$ = { id: E[O] };
314
+ break;
315
+ case 30:
316
+ w.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ", E[O - 1], E[O]), this.$ = {
317
+ id: E[O - 1],
318
+ label: E[O].label,
319
+ typeStr: E[O].typeStr,
320
+ directions: E[O].directions
321
+ };
322
+ break;
323
+ case 31:
324
+ w.getLogger().debug("Rule: dirList: ", E[O]), this.$ = [E[O]];
325
+ break;
326
+ case 32:
327
+ w.getLogger().debug("Rule: dirList: ", E[O - 1], E[O]), this.$ = [E[O - 1]].concat(E[O]);
328
+ break;
329
+ case 33:
330
+ w.getLogger().debug("Rule: nodeShapeNLabel: ", E[O - 2], E[O - 1], E[O]), this.$ = {
331
+ typeStr: E[O - 2] + E[O],
332
+ label: E[O - 1]
333
+ };
334
+ break;
335
+ case 34:
336
+ w.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ", E[O - 3], E[O - 2], " #3:", E[O - 1], E[O]), this.$ = {
337
+ typeStr: E[O - 3] + E[O],
338
+ label: E[O - 2],
339
+ directions: E[O - 1]
340
+ };
341
+ break;
342
+ case 35:
343
+ case 36:
344
+ this.$ = {
345
+ type: "classDef",
346
+ id: E[O - 1].trim(),
347
+ css: E[O].trim()
348
+ };
349
+ break;
350
+ case 37:
351
+ this.$ = {
352
+ type: "applyClass",
353
+ id: E[O - 1].trim(),
354
+ styleClass: E[O].trim()
355
+ };
356
+ break;
357
+ case 38:
358
+ this.$ = {
359
+ type: "applyStyles",
360
+ id: E[O - 1].trim(),
361
+ stylesStr: E[O].trim()
362
+ };
363
+ break;
364
+ }
365
+ }, "anonymous"),
366
+ table: [
367
+ {
368
+ 9: 1,
369
+ 10: [1, 2]
370
+ },
371
+ { 1: [3] },
372
+ {
373
+ 10: C,
374
+ 11: 3,
375
+ 13: 4,
376
+ 19: 5,
377
+ 20: 6,
378
+ 21: w,
379
+ 22: 8,
380
+ 23: 9,
381
+ 24: 10,
382
+ 25: 11,
383
+ 26: 12,
384
+ 28: T,
385
+ 29: E,
386
+ 31: D,
387
+ 39: O,
388
+ 43: k,
389
+ 46: A
390
+ },
391
+ { 8: [1, 20] },
392
+ e(j, [2, 12], {
393
+ 13: 4,
394
+ 19: 5,
395
+ 20: 6,
396
+ 22: 8,
397
+ 23: 9,
398
+ 24: 10,
399
+ 25: 11,
400
+ 26: 12,
401
+ 11: 21,
402
+ 10: C,
403
+ 21: w,
404
+ 28: T,
405
+ 29: E,
406
+ 31: D,
407
+ 39: O,
408
+ 43: k,
409
+ 46: A
410
+ }),
411
+ e(M, [2, 16], {
412
+ 14: 22,
413
+ 15: N,
414
+ 16: P
415
+ }),
416
+ e(M, [2, 17]),
417
+ e(M, [2, 18]),
418
+ e(M, [2, 19]),
419
+ e(M, [2, 20]),
420
+ e(M, [2, 21]),
421
+ e(M, [2, 22]),
422
+ e(F, [2, 25], { 27: [1, 25] }),
423
+ e(M, [2, 26]),
424
+ {
425
+ 19: 26,
426
+ 26: 12,
427
+ 31: D
428
+ },
429
+ {
430
+ 10: C,
431
+ 11: 27,
432
+ 13: 4,
433
+ 19: 5,
434
+ 20: 6,
435
+ 21: w,
436
+ 22: 8,
437
+ 23: 9,
438
+ 24: 10,
439
+ 25: 11,
440
+ 26: 12,
441
+ 28: T,
442
+ 29: E,
443
+ 31: D,
444
+ 39: O,
445
+ 43: k,
446
+ 46: A
447
+ },
448
+ {
449
+ 40: [1, 28],
450
+ 42: [1, 29]
451
+ },
452
+ { 44: [1, 30] },
453
+ { 47: [1, 31] },
454
+ e(I, [2, 29], {
455
+ 32: 32,
456
+ 35: [1, 33],
457
+ 37: [1, 34]
458
+ }),
459
+ { 1: [2, 7] },
460
+ e(j, [2, 13]),
461
+ {
462
+ 26: 35,
463
+ 31: D
464
+ },
465
+ { 31: [2, 14] },
466
+ { 17: [1, 36] },
467
+ e(F, [2, 24]),
468
+ {
469
+ 10: C,
470
+ 11: 37,
471
+ 13: 4,
472
+ 14: 22,
473
+ 15: N,
474
+ 16: P,
475
+ 19: 5,
476
+ 20: 6,
477
+ 21: w,
478
+ 22: 8,
479
+ 23: 9,
480
+ 24: 10,
481
+ 25: 11,
482
+ 26: 12,
483
+ 28: T,
484
+ 29: E,
485
+ 31: D,
486
+ 39: O,
487
+ 43: k,
488
+ 46: A
489
+ },
490
+ { 30: [1, 38] },
491
+ { 41: [1, 39] },
492
+ { 41: [1, 40] },
493
+ { 45: [1, 41] },
494
+ { 48: [1, 42] },
495
+ e(I, [2, 30]),
496
+ { 18: [1, 43] },
497
+ { 18: [1, 44] },
498
+ e(F, [2, 23]),
499
+ { 18: [1, 45] },
500
+ { 30: [1, 46] },
501
+ e(M, [2, 28]),
502
+ e(M, [2, 35]),
503
+ e(M, [2, 36]),
504
+ e(M, [2, 37]),
505
+ e(M, [2, 38]),
506
+ { 36: [1, 47] },
507
+ {
508
+ 33: 48,
509
+ 34: L
510
+ },
511
+ { 15: [1, 50] },
512
+ e(M, [2, 27]),
513
+ e(I, [2, 33]),
514
+ { 38: [1, 51] },
515
+ {
516
+ 33: 52,
517
+ 34: L,
518
+ 38: [2, 31]
519
+ },
520
+ { 31: [2, 15] },
521
+ e(I, [2, 34]),
522
+ { 38: [2, 32] }
523
+ ],
524
+ defaultActions: {
525
+ 20: [2, 7],
526
+ 23: [2, 14],
527
+ 50: [2, 15],
528
+ 52: [2, 32]
529
+ },
530
+ parseError: /* @__PURE__ */ __name(function(e, S) {
531
+ if (S.recoverable) this.trace(e);
532
+ else {
533
+ var C = Error(e);
534
+ throw C.hash = S, C;
535
+ }
536
+ }, "parseError"),
537
+ parse: /* @__PURE__ */ __name(function(e) {
538
+ var C = this, w = [0], T = [], E = [null], D = [], O = this.table, k = "", A = 0, j = 0, M = 0, N = 2, P = 1, F = D.slice.call(arguments, 1), I = Object.create(this.lexer), L = { yy: {} };
539
+ for (var R in this.yy) Object.prototype.hasOwnProperty.call(this.yy, R) && (L.yy[R] = this.yy[R]);
540
+ I.setInput(e, L.yy), L.yy.lexer = I, L.yy.parser = this, I.yylloc === void 0 && (I.yylloc = {});
541
+ var z = I.yylloc;
542
+ D.push(z);
543
+ var B = I.options && I.options.ranges;
544
+ typeof L.yy.parseError == "function" ? this.parseError = L.yy.parseError : this.parseError = Object.getPrototypeOf(this).parseError;
545
+ function V(e) {
546
+ w.length -= 2 * e, E.length -= e, D.length -= e;
547
+ }
548
+ __name(V, "popStack");
549
+ function H() {
550
+ var e = T.pop() || I.lex() || P;
551
+ return typeof e != "number" && (e instanceof Array && (T = e, e = T.pop()), e = C.symbols_[e] || e), e;
552
+ }
553
+ __name(H, "lex");
554
+ for (var U, W, G, K, q, J = {}, Y, X, Z, Q;;) {
555
+ if (G = w[w.length - 1], this.defaultActions[G] ? K = this.defaultActions[G] : (U ??= H(), K = O[G] && O[G][U]), K === void 0 || !K.length || !K[0]) {
556
+ var $ = "";
557
+ for (Y in Q = [], O[G]) this.terminals_[Y] && Y > N && Q.push("'" + this.terminals_[Y] + "'");
558
+ $ = I.showPosition ? "Parse error on line " + (A + 1) + ":\n" + I.showPosition() + "\nExpecting " + Q.join(", ") + ", got '" + (this.terminals_[U] || U) + "'" : "Parse error on line " + (A + 1) + ": Unexpected " + (U == P ? "end of input" : "'" + (this.terminals_[U] || U) + "'"), this.parseError($, {
559
+ text: I.match,
560
+ token: this.terminals_[U] || U,
561
+ line: I.yylineno,
562
+ loc: z,
563
+ expected: Q
564
+ });
565
+ }
566
+ if (K[0] instanceof Array && K.length > 1) throw Error("Parse Error: multiple actions possible at state: " + G + ", token: " + U);
567
+ switch (K[0]) {
568
+ case 1:
569
+ w.push(U), E.push(I.yytext), D.push(I.yylloc), w.push(K[1]), U = null, W ? (U = W, W = null) : (j = I.yyleng, k = I.yytext, A = I.yylineno, z = I.yylloc, M > 0 && M--);
570
+ break;
571
+ case 2:
572
+ if (X = this.productions_[K[1]][1], J.$ = E[E.length - X], J._$ = {
573
+ first_line: D[D.length - (X || 1)].first_line,
574
+ last_line: D[D.length - 1].last_line,
575
+ first_column: D[D.length - (X || 1)].first_column,
576
+ last_column: D[D.length - 1].last_column
577
+ }, B && (J._$.range = [D[D.length - (X || 1)].range[0], D[D.length - 1].range[1]]), q = this.performAction.apply(J, [
578
+ k,
579
+ j,
580
+ A,
581
+ L.yy,
582
+ K[1],
583
+ E,
584
+ D
585
+ ].concat(F)), q !== void 0) return q;
586
+ X && (w = w.slice(0, -1 * X * 2), E = E.slice(0, -1 * X), D = D.slice(0, -1 * X)), w.push(this.productions_[K[1]][0]), E.push(J.$), D.push(J._$), Z = O[w[w.length - 2]][w[w.length - 1]], w.push(Z);
587
+ break;
588
+ case 3: return !0;
589
+ }
590
+ }
591
+ return !0;
592
+ }, "parse")
593
+ };
594
+ R.lexer = /* @__PURE__ */ (function() {
595
+ return {
596
+ EOF: 1,
597
+ parseError: /* @__PURE__ */ __name(function(e, S) {
598
+ if (this.yy.parser) this.yy.parser.parseError(e, S);
599
+ else throw Error(e);
600
+ }, "parseError"),
601
+ setInput: /* @__PURE__ */ __name(function(e, S) {
602
+ return this.yy = S || this.yy || {}, this._input = e, this._more = this._backtrack = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = "", this.conditionStack = ["INITIAL"], this.yylloc = {
603
+ first_line: 1,
604
+ first_column: 0,
605
+ last_line: 1,
606
+ last_column: 0
607
+ }, this.options.ranges && (this.yylloc.range = [0, 0]), this.offset = 0, this;
608
+ }, "setInput"),
609
+ input: /* @__PURE__ */ __name(function() {
610
+ var e = this._input[0];
611
+ return this.yytext += e, this.yyleng++, this.offset++, this.match += e, this.matched += e, e.match(/(?:\r\n?|\n).*/g) ? (this.yylineno++, this.yylloc.last_line++) : this.yylloc.last_column++, this.options.ranges && this.yylloc.range[1]++, this._input = this._input.slice(1), e;
612
+ }, "input"),
613
+ unput: /* @__PURE__ */ __name(function(e) {
614
+ var S = e.length, C = e.split(/(?:\r\n?|\n)/g);
615
+ this._input = e + this._input, this.yytext = this.yytext.substr(0, this.yytext.length - S), this.offset -= S;
616
+ var w = this.match.split(/(?:\r\n?|\n)/g);
617
+ this.match = this.match.substr(0, this.match.length - 1), this.matched = this.matched.substr(0, this.matched.length - 1), C.length - 1 && (this.yylineno -= C.length - 1);
618
+ var T = this.yylloc.range;
619
+ return this.yylloc = {
620
+ first_line: this.yylloc.first_line,
621
+ last_line: this.yylineno + 1,
622
+ first_column: this.yylloc.first_column,
623
+ last_column: C ? (C.length === w.length ? this.yylloc.first_column : 0) + w[w.length - C.length].length - C[0].length : this.yylloc.first_column - S
624
+ }, this.options.ranges && (this.yylloc.range = [T[0], T[0] + this.yyleng - S]), this.yyleng = this.yytext.length, this;
625
+ }, "unput"),
626
+ more: /* @__PURE__ */ __name(function() {
627
+ return this._more = !0, this;
628
+ }, "more"),
629
+ reject: /* @__PURE__ */ __name(function() {
630
+ if (this.options.backtrack_lexer) this._backtrack = !0;
631
+ else return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
632
+ text: "",
633
+ token: null,
634
+ line: this.yylineno
635
+ });
636
+ return this;
637
+ }, "reject"),
638
+ less: /* @__PURE__ */ __name(function(e) {
639
+ this.unput(this.match.slice(e));
640
+ }, "less"),
641
+ pastInput: /* @__PURE__ */ __name(function() {
642
+ var e = this.matched.substr(0, this.matched.length - this.match.length);
643
+ return (e.length > 20 ? "..." : "") + e.substr(-20).replace(/\n/g, "");
644
+ }, "pastInput"),
645
+ upcomingInput: /* @__PURE__ */ __name(function() {
646
+ var e = this.match;
647
+ return e.length < 20 && (e += this._input.substr(0, 20 - e.length)), (e.substr(0, 20) + (e.length > 20 ? "..." : "")).replace(/\n/g, "");
648
+ }, "upcomingInput"),
649
+ showPosition: /* @__PURE__ */ __name(function() {
650
+ var e = this.pastInput(), S = Array(e.length + 1).join("-");
651
+ return e + this.upcomingInput() + "\n" + S + "^";
652
+ }, "showPosition"),
653
+ test_match: /* @__PURE__ */ __name(function(e, S) {
654
+ var C, w, T;
655
+ if (this.options.backtrack_lexer && (T = {
656
+ yylineno: this.yylineno,
657
+ yylloc: {
658
+ first_line: this.yylloc.first_line,
659
+ last_line: this.last_line,
660
+ first_column: this.yylloc.first_column,
661
+ last_column: this.yylloc.last_column
662
+ },
663
+ yytext: this.yytext,
664
+ match: this.match,
665
+ matches: this.matches,
666
+ matched: this.matched,
667
+ yyleng: this.yyleng,
668
+ offset: this.offset,
669
+ _more: this._more,
670
+ _input: this._input,
671
+ yy: this.yy,
672
+ conditionStack: this.conditionStack.slice(0),
673
+ done: this.done
674
+ }, this.options.ranges && (T.yylloc.range = this.yylloc.range.slice(0))), w = e[0].match(/(?:\r\n?|\n).*/g), w && (this.yylineno += w.length), this.yylloc = {
675
+ first_line: this.yylloc.last_line,
676
+ last_line: this.yylineno + 1,
677
+ first_column: this.yylloc.last_column,
678
+ last_column: w ? w[w.length - 1].length - w[w.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + e[0].length
679
+ }, this.yytext += e[0], this.match += e[0], this.matches = e, this.yyleng = this.yytext.length, this.options.ranges && (this.yylloc.range = [this.offset, this.offset += this.yyleng]), this._more = !1, this._backtrack = !1, this._input = this._input.slice(e[0].length), this.matched += e[0], C = this.performAction.call(this, this.yy, this, S, this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1), C) return C;
680
+ if (this._backtrack) {
681
+ for (var E in T) this[E] = T[E];
682
+ return !1;
683
+ }
684
+ return !1;
685
+ }, "test_match"),
686
+ next: /* @__PURE__ */ __name(function() {
687
+ if (this.done) return this.EOF;
688
+ this._input || (this.done = !0);
689
+ var e, S, C, w;
690
+ this._more || (this.yytext = "", this.match = "");
691
+ for (var T = this._currentRules(), E = 0; E < T.length; E++) if (C = this._input.match(this.rules[T[E]]), C && (!S || C[0].length > S[0].length)) {
692
+ if (S = C, w = E, this.options.backtrack_lexer) {
693
+ if (e = this.test_match(C, T[E]), e !== !1) return e;
694
+ if (this._backtrack) {
695
+ S = !1;
696
+ continue;
697
+ } else return !1;
698
+ } else if (!this.options.flex) break;
699
+ }
700
+ return S ? (e = this.test_match(S, T[w]), e === !1 ? !1 : e) : this._input === "" ? this.EOF : this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
701
+ text: "",
702
+ token: null,
703
+ line: this.yylineno
704
+ });
705
+ }, "next"),
706
+ lex: /* @__PURE__ */ __name(function() {
707
+ return this.next() || this.lex();
708
+ }, "lex"),
709
+ begin: /* @__PURE__ */ __name(function(e) {
710
+ this.conditionStack.push(e);
711
+ }, "begin"),
712
+ popState: /* @__PURE__ */ __name(function() {
713
+ return this.conditionStack.length - 1 > 0 ? this.conditionStack.pop() : this.conditionStack[0];
714
+ }, "popState"),
715
+ _currentRules: /* @__PURE__ */ __name(function() {
716
+ return this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1] ? this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules : this.conditions.INITIAL.rules;
717
+ }, "_currentRules"),
718
+ topState: /* @__PURE__ */ __name(function(e) {
719
+ return e = this.conditionStack.length - 1 - Math.abs(e || 0), e >= 0 ? this.conditionStack[e] : "INITIAL";
720
+ }, "topState"),
721
+ pushState: /* @__PURE__ */ __name(function(e) {
722
+ this.begin(e);
723
+ }, "pushState"),
724
+ stateStackSize: /* @__PURE__ */ __name(function() {
725
+ return this.conditionStack.length;
726
+ }, "stateStackSize"),
727
+ options: {},
728
+ performAction: /* @__PURE__ */ __name(function(e, S, C, w) {
729
+ switch (C) {
730
+ case 0: return e.getLogger().debug("Found block-beta"), 10;
731
+ case 1: return e.getLogger().debug("Found id-block"), 29;
732
+ case 2: return e.getLogger().debug("Found block"), 10;
733
+ case 3:
734
+ e.getLogger().debug(".", S.yytext);
735
+ break;
736
+ case 4:
737
+ e.getLogger().debug("_", S.yytext);
738
+ break;
739
+ case 5: return 5;
740
+ case 6: return S.yytext = -1, 28;
741
+ case 7: return S.yytext = S.yytext.replace(/columns\s+/, ""), e.getLogger().debug("COLUMNS (LEX)", S.yytext), 28;
742
+ case 8:
743
+ this.pushState("md_string");
744
+ break;
745
+ case 9: return "MD_STR";
746
+ case 10:
747
+ this.popState();
748
+ break;
749
+ case 11:
750
+ this.pushState("string");
751
+ break;
752
+ case 12:
753
+ e.getLogger().debug("LEX: POPPING STR:", S.yytext), this.popState();
754
+ break;
755
+ case 13: return e.getLogger().debug("LEX: STR end:", S.yytext), "STR";
756
+ case 14: return S.yytext = S.yytext.replace(/space\:/, ""), e.getLogger().debug("SPACE NUM (LEX)", S.yytext), 21;
757
+ case 15: return S.yytext = "1", e.getLogger().debug("COLUMNS (LEX)", S.yytext), 21;
758
+ case 16: return 42;
759
+ case 17: return "LINKSTYLE";
760
+ case 18: return "INTERPOLATE";
761
+ case 19: return this.pushState("CLASSDEF"), 39;
762
+ case 20: return this.popState(), this.pushState("CLASSDEFID"), "DEFAULT_CLASSDEF_ID";
763
+ case 21: return this.popState(), this.pushState("CLASSDEFID"), 40;
764
+ case 22: return this.popState(), 41;
765
+ case 23: return this.pushState("CLASS"), 43;
766
+ case 24: return this.popState(), this.pushState("CLASS_STYLE"), 44;
767
+ case 25: return this.popState(), 45;
768
+ case 26: return this.pushState("STYLE_STMNT"), 46;
769
+ case 27: return this.popState(), this.pushState("STYLE_DEFINITION"), 47;
770
+ case 28: return this.popState(), 48;
771
+ case 29: return this.pushState("acc_title"), "acc_title";
772
+ case 30: return this.popState(), "acc_title_value";
773
+ case 31: return this.pushState("acc_descr"), "acc_descr";
774
+ case 32: return this.popState(), "acc_descr_value";
775
+ case 33:
776
+ this.pushState("acc_descr_multiline");
777
+ break;
778
+ case 34:
779
+ this.popState();
780
+ break;
781
+ case 35: return "acc_descr_multiline_value";
782
+ case 36: return 30;
783
+ case 37: return this.popState(), e.getLogger().debug("Lex: (("), "NODE_DEND";
784
+ case 38: return this.popState(), e.getLogger().debug("Lex: (("), "NODE_DEND";
785
+ case 39: return this.popState(), e.getLogger().debug("Lex: ))"), "NODE_DEND";
786
+ case 40: return this.popState(), e.getLogger().debug("Lex: (("), "NODE_DEND";
787
+ case 41: return this.popState(), e.getLogger().debug("Lex: (("), "NODE_DEND";
788
+ case 42: return this.popState(), e.getLogger().debug("Lex: (-"), "NODE_DEND";
789
+ case 43: return this.popState(), e.getLogger().debug("Lex: -)"), "NODE_DEND";
790
+ case 44: return this.popState(), e.getLogger().debug("Lex: (("), "NODE_DEND";
791
+ case 45: return this.popState(), e.getLogger().debug("Lex: ]]"), "NODE_DEND";
792
+ case 46: return this.popState(), e.getLogger().debug("Lex: ("), "NODE_DEND";
793
+ case 47: return this.popState(), e.getLogger().debug("Lex: ])"), "NODE_DEND";
794
+ case 48: return this.popState(), e.getLogger().debug("Lex: /]"), "NODE_DEND";
795
+ case 49: return this.popState(), e.getLogger().debug("Lex: /]"), "NODE_DEND";
796
+ case 50: return this.popState(), e.getLogger().debug("Lex: )]"), "NODE_DEND";
797
+ case 51: return this.popState(), e.getLogger().debug("Lex: )"), "NODE_DEND";
798
+ case 52: return this.popState(), e.getLogger().debug("Lex: ]>"), "NODE_DEND";
799
+ case 53: return this.popState(), e.getLogger().debug("Lex: ]"), "NODE_DEND";
800
+ case 54: return e.getLogger().debug("Lexa: -)"), this.pushState("NODE"), 35;
801
+ case 55: return e.getLogger().debug("Lexa: (-"), this.pushState("NODE"), 35;
802
+ case 56: return e.getLogger().debug("Lexa: ))"), this.pushState("NODE"), 35;
803
+ case 57: return e.getLogger().debug("Lexa: )"), this.pushState("NODE"), 35;
804
+ case 58: return e.getLogger().debug("Lex: ((("), this.pushState("NODE"), 35;
805
+ case 59: return e.getLogger().debug("Lexa: )"), this.pushState("NODE"), 35;
806
+ case 60: return e.getLogger().debug("Lexa: )"), this.pushState("NODE"), 35;
807
+ case 61: return e.getLogger().debug("Lexa: )"), this.pushState("NODE"), 35;
808
+ case 62: return e.getLogger().debug("Lexc: >"), this.pushState("NODE"), 35;
809
+ case 63: return e.getLogger().debug("Lexa: (["), this.pushState("NODE"), 35;
810
+ case 64: return e.getLogger().debug("Lexa: )"), this.pushState("NODE"), 35;
811
+ case 65: return this.pushState("NODE"), 35;
812
+ case 66: return this.pushState("NODE"), 35;
813
+ case 67: return this.pushState("NODE"), 35;
814
+ case 68: return this.pushState("NODE"), 35;
815
+ case 69: return this.pushState("NODE"), 35;
816
+ case 70: return this.pushState("NODE"), 35;
817
+ case 71: return this.pushState("NODE"), 35;
818
+ case 72: return e.getLogger().debug("Lexa: ["), this.pushState("NODE"), 35;
819
+ case 73: return this.pushState("BLOCK_ARROW"), e.getLogger().debug("LEX ARR START"), 37;
820
+ case 74: return e.getLogger().debug("Lex: NODE_ID", S.yytext), 31;
821
+ case 75: return e.getLogger().debug("Lex: EOF", S.yytext), 8;
822
+ case 76:
823
+ this.pushState("md_string");
824
+ break;
825
+ case 77:
826
+ this.pushState("md_string");
827
+ break;
828
+ case 78: return "NODE_DESCR";
829
+ case 79:
830
+ this.popState();
831
+ break;
832
+ case 80:
833
+ e.getLogger().debug("Lex: Starting string"), this.pushState("string");
834
+ break;
835
+ case 81:
836
+ e.getLogger().debug("LEX ARR: Starting string"), this.pushState("string");
837
+ break;
838
+ case 82: return e.getLogger().debug("LEX: NODE_DESCR:", S.yytext), "NODE_DESCR";
839
+ case 83:
840
+ e.getLogger().debug("LEX POPPING"), this.popState();
841
+ break;
842
+ case 84:
843
+ e.getLogger().debug("Lex: =>BAE"), this.pushState("ARROW_DIR");
844
+ break;
845
+ case 85: return S.yytext = S.yytext.replace(/^,\s*/, ""), e.getLogger().debug("Lex (right): dir:", S.yytext), "DIR";
846
+ case 86: return S.yytext = S.yytext.replace(/^,\s*/, ""), e.getLogger().debug("Lex (left):", S.yytext), "DIR";
847
+ case 87: return S.yytext = S.yytext.replace(/^,\s*/, ""), e.getLogger().debug("Lex (x):", S.yytext), "DIR";
848
+ case 88: return S.yytext = S.yytext.replace(/^,\s*/, ""), e.getLogger().debug("Lex (y):", S.yytext), "DIR";
849
+ case 89: return S.yytext = S.yytext.replace(/^,\s*/, ""), e.getLogger().debug("Lex (up):", S.yytext), "DIR";
850
+ case 90: return S.yytext = S.yytext.replace(/^,\s*/, ""), e.getLogger().debug("Lex (down):", S.yytext), "DIR";
851
+ case 91: return S.yytext = "]>", e.getLogger().debug("Lex (ARROW_DIR end):", S.yytext), this.popState(), this.popState(), "BLOCK_ARROW_END";
852
+ case 92: return e.getLogger().debug("Lex: LINK", "#" + S.yytext + "#"), 15;
853
+ case 93: return e.getLogger().debug("Lex: LINK", S.yytext), 15;
854
+ case 94: return e.getLogger().debug("Lex: LINK", S.yytext), 15;
855
+ case 95: return e.getLogger().debug("Lex: LINK", S.yytext), 15;
856
+ case 96: return e.getLogger().debug("Lex: START_LINK", S.yytext), this.pushState("LLABEL"), 16;
857
+ case 97: return e.getLogger().debug("Lex: START_LINK", S.yytext), this.pushState("LLABEL"), 16;
858
+ case 98: return e.getLogger().debug("Lex: START_LINK", S.yytext), this.pushState("LLABEL"), 16;
859
+ case 99:
860
+ this.pushState("md_string");
861
+ break;
862
+ case 100: return e.getLogger().debug("Lex: Starting string"), this.pushState("string"), "LINK_LABEL";
863
+ case 101: return this.popState(), e.getLogger().debug("Lex: LINK", "#" + S.yytext + "#"), 15;
864
+ case 102: return this.popState(), e.getLogger().debug("Lex: LINK", S.yytext), 15;
865
+ case 103: return this.popState(), e.getLogger().debug("Lex: LINK", S.yytext), 15;
866
+ case 104: return e.getLogger().debug("Lex: COLON", S.yytext), S.yytext = S.yytext.slice(1), 27;
867
+ }
868
+ }, "anonymous"),
869
+ rules: [
870
+ /^(?:block-beta\b)/,
871
+ /^(?:block:)/,
872
+ /^(?:block\b)/,
873
+ /^(?:[\s]+)/,
874
+ /^(?:[\n]+)/,
875
+ /^(?:((\u000D\u000A)|(\u000A)))/,
876
+ /^(?:columns\s+auto\b)/,
877
+ /^(?:columns\s+[\d]+)/,
878
+ /^(?:["][`])/,
879
+ /^(?:[^`"]+)/,
880
+ /^(?:[`]["])/,
881
+ /^(?:["])/,
882
+ /^(?:["])/,
883
+ /^(?:[^"]*)/,
884
+ /^(?:space[:]\d+)/,
885
+ /^(?:space\b)/,
886
+ /^(?:default\b)/,
887
+ /^(?:linkStyle\b)/,
888
+ /^(?:interpolate\b)/,
889
+ /^(?:classDef\s+)/,
890
+ /^(?:DEFAULT\s+)/,
891
+ /^(?:\w+\s+)/,
892
+ /^(?:[^\n]*)/,
893
+ /^(?:class\s+)/,
894
+ /^(?:(\w+)+((,\s*\w+)*))/,
895
+ /^(?:[^\n]*)/,
896
+ /^(?:style\s+)/,
897
+ /^(?:(\w+)+((,\s*\w+)*))/,
898
+ /^(?:[^\n]*)/,
899
+ /^(?:accTitle\s*:\s*)/,
900
+ /^(?:(?!\n||)*[^\n]*)/,
901
+ /^(?:accDescr\s*:\s*)/,
902
+ /^(?:(?!\n||)*[^\n]*)/,
903
+ /^(?:accDescr\s*\{\s*)/,
904
+ /^(?:[\}])/,
905
+ /^(?:[^\}]*)/,
906
+ /^(?:end\b\s*)/,
907
+ /^(?:\(\(\()/,
908
+ /^(?:\)\)\))/,
909
+ /^(?:[\)]\))/,
910
+ /^(?:\}\})/,
911
+ /^(?:\})/,
912
+ /^(?:\(-)/,
913
+ /^(?:-\))/,
914
+ /^(?:\(\()/,
915
+ /^(?:\]\])/,
916
+ /^(?:\()/,
917
+ /^(?:\]\))/,
918
+ /^(?:\\\])/,
919
+ /^(?:\/\])/,
920
+ /^(?:\)\])/,
921
+ /^(?:[\)])/,
922
+ /^(?:\]>)/,
923
+ /^(?:[\]])/,
924
+ /^(?:-\))/,
925
+ /^(?:\(-)/,
926
+ /^(?:\)\))/,
927
+ /^(?:\))/,
928
+ /^(?:\(\(\()/,
929
+ /^(?:\(\()/,
930
+ /^(?:\{\{)/,
931
+ /^(?:\{)/,
932
+ /^(?:>)/,
933
+ /^(?:\(\[)/,
934
+ /^(?:\()/,
935
+ /^(?:\[\[)/,
936
+ /^(?:\[\|)/,
937
+ /^(?:\[\()/,
938
+ /^(?:\)\)\))/,
939
+ /^(?:\[\\)/,
940
+ /^(?:\[\/)/,
941
+ /^(?:\[\\)/,
942
+ /^(?:\[)/,
943
+ /^(?:<\[)/,
944
+ /^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,
945
+ /^(?:$)/,
946
+ /^(?:["][`])/,
947
+ /^(?:["][`])/,
948
+ /^(?:[^`"]+)/,
949
+ /^(?:[`]["])/,
950
+ /^(?:["])/,
951
+ /^(?:["])/,
952
+ /^(?:[^"]+)/,
953
+ /^(?:["])/,
954
+ /^(?:\]>\s*\()/,
955
+ /^(?:,?\s*right\s*)/,
956
+ /^(?:,?\s*left\s*)/,
957
+ /^(?:,?\s*x\s*)/,
958
+ /^(?:,?\s*y\s*)/,
959
+ /^(?:,?\s*up\s*)/,
960
+ /^(?:,?\s*down\s*)/,
961
+ /^(?:\)\s*)/,
962
+ /^(?:\s*[xo<]?--+[-xo>]\s*)/,
963
+ /^(?:\s*[xo<]?==+[=xo>]\s*)/,
964
+ /^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,
965
+ /^(?:\s*~~[\~]+\s*)/,
966
+ /^(?:\s*[xo<]?--\s*)/,
967
+ /^(?:\s*[xo<]?==\s*)/,
968
+ /^(?:\s*[xo<]?-\.\s*)/,
969
+ /^(?:["][`])/,
970
+ /^(?:["])/,
971
+ /^(?:\s*[xo<]?--+[-xo>]\s*)/,
972
+ /^(?:\s*[xo<]?==+[=xo>]\s*)/,
973
+ /^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,
974
+ /^(?::\d+)/
975
+ ],
976
+ conditions: {
977
+ STYLE_DEFINITION: {
978
+ rules: [28],
979
+ inclusive: !1
980
+ },
981
+ STYLE_STMNT: {
982
+ rules: [27],
983
+ inclusive: !1
984
+ },
985
+ CLASSDEFID: {
986
+ rules: [22],
987
+ inclusive: !1
988
+ },
989
+ CLASSDEF: {
990
+ rules: [20, 21],
991
+ inclusive: !1
992
+ },
993
+ CLASS_STYLE: {
994
+ rules: [25],
995
+ inclusive: !1
996
+ },
997
+ CLASS: {
998
+ rules: [24],
999
+ inclusive: !1
1000
+ },
1001
+ LLABEL: {
1002
+ rules: [
1003
+ 99,
1004
+ 100,
1005
+ 101,
1006
+ 102,
1007
+ 103
1008
+ ],
1009
+ inclusive: !1
1010
+ },
1011
+ ARROW_DIR: {
1012
+ rules: [
1013
+ 85,
1014
+ 86,
1015
+ 87,
1016
+ 88,
1017
+ 89,
1018
+ 90,
1019
+ 91
1020
+ ],
1021
+ inclusive: !1
1022
+ },
1023
+ BLOCK_ARROW: {
1024
+ rules: [
1025
+ 76,
1026
+ 81,
1027
+ 84
1028
+ ],
1029
+ inclusive: !1
1030
+ },
1031
+ NODE: {
1032
+ rules: [
1033
+ 37,
1034
+ 38,
1035
+ 39,
1036
+ 40,
1037
+ 41,
1038
+ 42,
1039
+ 43,
1040
+ 44,
1041
+ 45,
1042
+ 46,
1043
+ 47,
1044
+ 48,
1045
+ 49,
1046
+ 50,
1047
+ 51,
1048
+ 52,
1049
+ 53,
1050
+ 77,
1051
+ 80
1052
+ ],
1053
+ inclusive: !1
1054
+ },
1055
+ md_string: {
1056
+ rules: [
1057
+ 9,
1058
+ 10,
1059
+ 78,
1060
+ 79
1061
+ ],
1062
+ inclusive: !1
1063
+ },
1064
+ space: {
1065
+ rules: [],
1066
+ inclusive: !1
1067
+ },
1068
+ string: {
1069
+ rules: [
1070
+ 12,
1071
+ 13,
1072
+ 82,
1073
+ 83
1074
+ ],
1075
+ inclusive: !1
1076
+ },
1077
+ acc_descr_multiline: {
1078
+ rules: [34, 35],
1079
+ inclusive: !1
1080
+ },
1081
+ acc_descr: {
1082
+ rules: [32],
1083
+ inclusive: !1
1084
+ },
1085
+ acc_title: {
1086
+ rules: [30],
1087
+ inclusive: !1
1088
+ },
1089
+ INITIAL: {
1090
+ rules: [
1091
+ 0,
1092
+ 1,
1093
+ 2,
1094
+ 3,
1095
+ 4,
1096
+ 5,
1097
+ 6,
1098
+ 7,
1099
+ 8,
1100
+ 11,
1101
+ 14,
1102
+ 15,
1103
+ 16,
1104
+ 17,
1105
+ 18,
1106
+ 19,
1107
+ 23,
1108
+ 26,
1109
+ 29,
1110
+ 31,
1111
+ 33,
1112
+ 36,
1113
+ 54,
1114
+ 55,
1115
+ 56,
1116
+ 57,
1117
+ 58,
1118
+ 59,
1119
+ 60,
1120
+ 61,
1121
+ 62,
1122
+ 63,
1123
+ 64,
1124
+ 65,
1125
+ 66,
1126
+ 67,
1127
+ 68,
1128
+ 69,
1129
+ 70,
1130
+ 71,
1131
+ 72,
1132
+ 73,
1133
+ 74,
1134
+ 75,
1135
+ 92,
1136
+ 93,
1137
+ 94,
1138
+ 95,
1139
+ 96,
1140
+ 97,
1141
+ 98,
1142
+ 104
1143
+ ],
1144
+ inclusive: !0
1145
+ }
1146
+ }
1147
+ };
1148
+ })();
1149
+ function z() {
1150
+ this.yy = {};
1151
+ }
1152
+ return __name(z, "Parser"), z.prototype = R, R.Parser = z, new z();
1153
+ })();
1154
+ parser.parser = parser;
1155
+ var block_default = parser, blockDatabase = /* @__PURE__ */ new Map(), edgeList = [], edgeCount = /* @__PURE__ */ new Map(), COLOR_KEYWORD = "color", FILL_KEYWORD = "fill", BG_FILL = "bgFill", STYLECLASS_SEP = ",", config = getConfig2(), classes = /* @__PURE__ */ new Map(), sanitizeText2 = /* @__PURE__ */ __name((e) => common_default.sanitizeText(e, config), "sanitizeText"), addStyleClass = /* @__PURE__ */ __name(function(e, S = "") {
1156
+ let C = classes.get(e);
1157
+ C || (C = {
1158
+ id: e,
1159
+ styles: [],
1160
+ textStyles: []
1161
+ }, classes.set(e, C)), S?.split(STYLECLASS_SEP).forEach((e) => {
1162
+ let S = e.replace(/([^;]*);/, "$1").trim();
1163
+ if (RegExp(COLOR_KEYWORD).exec(e)) {
1164
+ let e = S.replace(FILL_KEYWORD, BG_FILL).replace(COLOR_KEYWORD, FILL_KEYWORD);
1165
+ C.textStyles.push(e);
1166
+ }
1167
+ C.styles.push(S);
1168
+ });
1169
+ }, "addStyleClass"), addStyle2Node = /* @__PURE__ */ __name(function(e, S = "") {
1170
+ let C = blockDatabase.get(e);
1171
+ S != null && (C.styles = S.split(STYLECLASS_SEP));
1172
+ }, "addStyle2Node"), setCssClass = /* @__PURE__ */ __name(function(e, S) {
1173
+ e.split(",").forEach(function(e) {
1174
+ let C = blockDatabase.get(e);
1175
+ if (C === void 0) {
1176
+ let S = e.trim();
1177
+ C = {
1178
+ id: S,
1179
+ type: "na",
1180
+ children: []
1181
+ }, blockDatabase.set(S, C);
1182
+ }
1183
+ C.classes ||= [], C.classes.push(S);
1184
+ });
1185
+ }, "setCssClass"), populateBlockDatabase = /* @__PURE__ */ __name((S, C) => {
1186
+ let w = S.flat(), T = [], E = w.find((e) => e?.type === "column-setting")?.columns ?? -1;
1187
+ for (let S of w) {
1188
+ if (typeof E == "number" && E > 0 && S.type !== "column-setting" && typeof S.widthInColumns == "number" && S.widthInColumns > E && log.warn(`Block ${S.id} width ${S.widthInColumns} exceeds configured column width ${E}`), S.label &&= sanitizeText2(S.label), S.type === "classDef") {
1189
+ addStyleClass(S.id, S.css);
1190
+ continue;
1191
+ }
1192
+ if (S.type === "applyClass") {
1193
+ setCssClass(S.id, S?.styleClass ?? "");
1194
+ continue;
1195
+ }
1196
+ if (S.type === "applyStyles") {
1197
+ S?.stylesStr && addStyle2Node(S.id, S?.stylesStr);
1198
+ continue;
1199
+ }
1200
+ if (S.type === "column-setting") C.columns = S.columns ?? -1;
1201
+ else if (S.type === "edge") {
1202
+ let e = (edgeCount.get(S.id) ?? 0) + 1;
1203
+ edgeCount.set(S.id, e), S.id = e + "-" + S.id, edgeList.push(S);
1204
+ } else {
1205
+ S.label || (S.type === "composite" ? S.label = "" : S.label = S.id);
1206
+ let e = blockDatabase.get(S.id);
1207
+ if (e === void 0 ? blockDatabase.set(S.id, S) : (S.type !== "na" && (e.type = S.type), S.label !== S.id && (e.label = S.label)), S.children && populateBlockDatabase(S.children, S), S.type === "space") {
1208
+ let e = S.width ?? 1;
1209
+ for (let C = 0; C < e; C++) {
1210
+ let e = clone_default(S);
1211
+ e.id = e.id + "-" + C, blockDatabase.set(e.id, e), T.push(e);
1212
+ }
1213
+ } else e === void 0 && T.push(S);
1214
+ }
1215
+ }
1216
+ C.children = T;
1217
+ }, "populateBlockDatabase"), blocks = [], rootBlock = {
1218
+ id: "root",
1219
+ type: "composite",
1220
+ children: [],
1221
+ columns: -1
1222
+ }, clear2 = /* @__PURE__ */ __name(() => {
1223
+ log.debug("Clear called"), clear(), rootBlock = {
1224
+ id: "root",
1225
+ type: "composite",
1226
+ children: [],
1227
+ columns: -1
1228
+ }, blockDatabase = /* @__PURE__ */ new Map([["root", rootBlock]]), blocks = [], classes = /* @__PURE__ */ new Map(), edgeList = [], edgeCount = /* @__PURE__ */ new Map();
1229
+ }, "clear");
1230
+ function typeStr2Type(S) {
1231
+ switch (log.debug("typeStr2Type", S), S) {
1232
+ case "[]": return "square";
1233
+ case "()": return log.debug("we have a round"), "round";
1234
+ case "(())": return "circle";
1235
+ case ">]": return "rect_left_inv_arrow";
1236
+ case "{}": return "diamond";
1237
+ case "{{}}": return "hexagon";
1238
+ case "([])": return "stadium";
1239
+ case "[[]]": return "subroutine";
1240
+ case "[()]": return "cylinder";
1241
+ case "((()))": return "doublecircle";
1242
+ case "[//]": return "lean_right";
1243
+ case "[\\\\]": return "lean_left";
1244
+ case "[/\\]": return "trapezoid";
1245
+ case "[\\/]": return "inv_trapezoid";
1246
+ case "<[]>": return "block_arrow";
1247
+ default: return "na";
1248
+ }
1249
+ }
1250
+ __name(typeStr2Type, "typeStr2Type");
1251
+ function edgeTypeStr2Type(S) {
1252
+ switch (log.debug("typeStr2Type", S), S) {
1253
+ case "==": return "thick";
1254
+ default: return "normal";
1255
+ }
1256
+ }
1257
+ __name(edgeTypeStr2Type, "edgeTypeStr2Type");
1258
+ function edgeStrToEdgeData(e) {
1259
+ switch (e.replace(/^[\s-]+|[\s-]+$/g, "")) {
1260
+ case "x": return "arrow_cross";
1261
+ case "o": return "arrow_circle";
1262
+ case ">": return "arrow_point";
1263
+ default: return "";
1264
+ }
1265
+ }
1266
+ __name(edgeStrToEdgeData, "edgeStrToEdgeData");
1267
+ var cnt = 0, blockDB_default = {
1268
+ getConfig: /* @__PURE__ */ __name(() => getConfig().block, "getConfig"),
1269
+ typeStr2Type,
1270
+ edgeTypeStr2Type,
1271
+ edgeStrToEdgeData,
1272
+ getLogger: /* @__PURE__ */ __name(() => log, "getLogger"),
1273
+ getBlocksFlat: /* @__PURE__ */ __name(() => [...blockDatabase.values()], "getBlocksFlat"),
1274
+ getBlocks: /* @__PURE__ */ __name(() => blocks || [], "getBlocks"),
1275
+ getEdges: /* @__PURE__ */ __name(() => edgeList, "getEdges"),
1276
+ setHierarchy: /* @__PURE__ */ __name((e) => {
1277
+ rootBlock.children = e, populateBlockDatabase(e, rootBlock), blocks = rootBlock.children;
1278
+ }, "setHierarchy"),
1279
+ getBlock: /* @__PURE__ */ __name((e) => blockDatabase.get(e), "getBlock"),
1280
+ setBlock: /* @__PURE__ */ __name((e) => {
1281
+ blockDatabase.set(e.id, e);
1282
+ }, "setBlock"),
1283
+ getColumns: /* @__PURE__ */ __name((e) => {
1284
+ let S = blockDatabase.get(e);
1285
+ return S ? S.columns ? S.columns : S.children ? S.children.length : -1 : -1;
1286
+ }, "getColumns"),
1287
+ getClasses: /* @__PURE__ */ __name(function() {
1288
+ return classes;
1289
+ }, "getClasses"),
1290
+ clear: clear2,
1291
+ generateId: /* @__PURE__ */ __name(() => (cnt++, "id-" + Math.random().toString(36).substr(2, 12) + "-" + cnt), "generateId")
1292
+ }, fade = /* @__PURE__ */ __name((e, S) => {
1293
+ let C = channel_default;
1294
+ return rgba_default(C(e, "r"), C(e, "g"), C(e, "b"), S);
1295
+ }, "fade"), styles_default = /* @__PURE__ */ __name((e) => `.label {
1296
+ font-family: ${e.fontFamily};
1297
+ color: ${e.nodeTextColor || e.textColor};
1298
+ }
1299
+ .cluster-label text {
1300
+ fill: ${e.titleColor};
1301
+ }
1302
+ .cluster-label span,p {
1303
+ color: ${e.titleColor};
1304
+ }
1305
+
1306
+
1307
+
1308
+ .label text,span,p {
1309
+ fill: ${e.nodeTextColor || e.textColor};
1310
+ color: ${e.nodeTextColor || e.textColor};
1311
+ }
1312
+
1313
+ .node rect,
1314
+ .node circle,
1315
+ .node ellipse,
1316
+ .node polygon,
1317
+ .node path {
1318
+ fill: ${e.mainBkg};
1319
+ stroke: ${e.nodeBorder};
1320
+ stroke-width: 1px;
1321
+ }
1322
+ .flowchart-label text {
1323
+ text-anchor: middle;
1324
+ }
1325
+ // .flowchart-label .text-outer-tspan {
1326
+ // text-anchor: middle;
1327
+ // }
1328
+ // .flowchart-label .text-inner-tspan {
1329
+ // text-anchor: start;
1330
+ // }
1331
+
1332
+ .node .label {
1333
+ text-align: center;
1334
+ }
1335
+ .node.clickable {
1336
+ cursor: pointer;
1337
+ }
1338
+
1339
+ .arrowheadPath {
1340
+ fill: ${e.arrowheadColor};
1341
+ }
1342
+
1343
+ .edgePath .path {
1344
+ stroke: ${e.lineColor};
1345
+ stroke-width: 2.0px;
1346
+ }
1347
+
1348
+ .flowchart-link {
1349
+ stroke: ${e.lineColor};
1350
+ fill: none;
1351
+ }
1352
+
1353
+ .edgeLabel {
1354
+ background-color: ${e.edgeLabelBackground};
1355
+ rect {
1356
+ opacity: 0.5;
1357
+ background-color: ${e.edgeLabelBackground};
1358
+ fill: ${e.edgeLabelBackground};
1359
+ }
1360
+ text-align: center;
1361
+ }
1362
+
1363
+ /* For html labels only */
1364
+ .labelBkg {
1365
+ background-color: ${fade(e.edgeLabelBackground, .5)};
1366
+ // background-color:
1367
+ }
1368
+
1369
+ .node .cluster {
1370
+ // fill: ${fade(e.mainBkg, .5)};
1371
+ fill: ${fade(e.clusterBkg, .5)};
1372
+ stroke: ${fade(e.clusterBorder, .2)};
1373
+ box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px;
1374
+ stroke-width: 1px;
1375
+ }
1376
+
1377
+ .cluster text {
1378
+ fill: ${e.titleColor};
1379
+ }
1380
+
1381
+ .cluster span,p {
1382
+ color: ${e.titleColor};
1383
+ }
1384
+ /* .cluster div {
1385
+ color: ${e.titleColor};
1386
+ } */
1387
+
1388
+ div.mermaidTooltip {
1389
+ position: absolute;
1390
+ text-align: center;
1391
+ max-width: 200px;
1392
+ padding: 2px;
1393
+ font-family: ${e.fontFamily};
1394
+ font-size: 12px;
1395
+ background: ${e.tertiaryColor};
1396
+ border: 1px solid ${e.border2};
1397
+ border-radius: 2px;
1398
+ pointer-events: none;
1399
+ z-index: 100;
1400
+ }
1401
+
1402
+ .flowchartTitleText {
1403
+ text-anchor: middle;
1404
+ font-size: 18px;
1405
+ fill: ${e.textColor};
1406
+ }
1407
+ ${getIconStyles()}
1408
+ `, "getStyles"), insertMarkers = /* @__PURE__ */ __name((e, S, C, w) => {
1409
+ S.forEach((S) => {
1410
+ markers[S](e, C, w);
1411
+ });
1412
+ }, "insertMarkers"), markers = {
1413
+ extension: /* @__PURE__ */ __name((S, C, w) => {
1414
+ log.trace("Making markers for ", w), S.append("defs").append("marker").attr("id", w + "_" + C + "-extensionStart").attr("class", "marker extension " + C).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"), S.append("defs").append("marker").attr("id", w + "_" + C + "-extensionEnd").attr("class", "marker extension " + C).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");
1415
+ }, "extension"),
1416
+ composition: /* @__PURE__ */ __name((e, S, C) => {
1417
+ e.append("defs").append("marker").attr("id", C + "_" + S + "-compositionStart").attr("class", "marker composition " + S).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"), e.append("defs").append("marker").attr("id", C + "_" + S + "-compositionEnd").attr("class", "marker composition " + S).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");
1418
+ }, "composition"),
1419
+ aggregation: /* @__PURE__ */ __name((e, S, C) => {
1420
+ e.append("defs").append("marker").attr("id", C + "_" + S + "-aggregationStart").attr("class", "marker aggregation " + S).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"), e.append("defs").append("marker").attr("id", C + "_" + S + "-aggregationEnd").attr("class", "marker aggregation " + S).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");
1421
+ }, "aggregation"),
1422
+ dependency: /* @__PURE__ */ __name((e, S, C) => {
1423
+ e.append("defs").append("marker").attr("id", C + "_" + S + "-dependencyStart").attr("class", "marker dependency " + S).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"), e.append("defs").append("marker").attr("id", C + "_" + S + "-dependencyEnd").attr("class", "marker dependency " + S).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");
1424
+ }, "dependency"),
1425
+ lollipop: /* @__PURE__ */ __name((e, S, C) => {
1426
+ e.append("defs").append("marker").attr("id", C + "_" + S + "-lollipopStart").attr("class", "marker lollipop " + S).attr("refX", 13).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("stroke", "black").attr("fill", "transparent").attr("cx", 7).attr("cy", 7).attr("r", 6), e.append("defs").append("marker").attr("id", C + "_" + S + "-lollipopEnd").attr("class", "marker lollipop " + S).attr("refX", 1).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("stroke", "black").attr("fill", "transparent").attr("cx", 7).attr("cy", 7).attr("r", 6);
1427
+ }, "lollipop"),
1428
+ point: /* @__PURE__ */ __name((e, S, C) => {
1429
+ e.append("marker").attr("id", C + "_" + S + "-pointEnd").attr("class", "marker " + S).attr("viewBox", "0 0 10 10").attr("refX", 6).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).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"), e.append("marker").attr("id", C + "_" + S + "-pointStart").attr("class", "marker " + S).attr("viewBox", "0 0 10 10").attr("refX", 4.5).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).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");
1430
+ }, "point"),
1431
+ circle: /* @__PURE__ */ __name((e, S, C) => {
1432
+ e.append("marker").attr("id", C + "_" + S + "-circleEnd").attr("class", "marker " + S).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"), e.append("marker").attr("id", C + "_" + S + "-circleStart").attr("class", "marker " + S).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");
1433
+ }, "circle"),
1434
+ cross: /* @__PURE__ */ __name((e, S, C) => {
1435
+ e.append("marker").attr("id", C + "_" + S + "-crossEnd").attr("class", "marker cross " + S).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"), e.append("marker").attr("id", C + "_" + S + "-crossStart").attr("class", "marker cross " + S).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");
1436
+ }, "cross"),
1437
+ barb: /* @__PURE__ */ __name((e, S, C) => {
1438
+ e.append("defs").append("marker").attr("id", C + "_" + S + "-barbEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 14).attr("markerUnits", "strokeWidth").attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z");
1439
+ }, "barb")
1440
+ }, markers_default = insertMarkers, padding = getConfig2()?.block?.padding ?? 8;
1441
+ function calculateBlockPosition(e, S) {
1442
+ if (e === 0 || !Number.isInteger(e)) throw Error("Columns must be an integer !== 0.");
1443
+ if (S < 0 || !Number.isInteger(S)) throw Error("Position must be a non-negative integer." + S);
1444
+ return e < 0 ? {
1445
+ px: S,
1446
+ py: 0
1447
+ } : e === 1 ? {
1448
+ px: 0,
1449
+ py: S
1450
+ } : {
1451
+ px: S % e,
1452
+ py: Math.floor(S / e)
1453
+ };
1454
+ }
1455
+ __name(calculateBlockPosition, "calculateBlockPosition");
1456
+ var getMaxChildSize = /* @__PURE__ */ __name((S) => {
1457
+ let C = 0, w = 0;
1458
+ for (let T of S.children) {
1459
+ let { width: E, height: D, x: O, y: k } = T.size ?? {
1460
+ width: 0,
1461
+ height: 0,
1462
+ x: 0,
1463
+ y: 0
1464
+ };
1465
+ log.debug("getMaxChildSize abc95 child:", T.id, "width:", E, "height:", D, "x:", O, "y:", k, T.type), T.type !== "space" && (E > C && (C = E / (S.widthInColumns ?? 1)), D > w && (w = D));
1466
+ }
1467
+ return {
1468
+ width: C,
1469
+ height: w
1470
+ };
1471
+ }, "getMaxChildSize");
1472
+ function setBlockSizes(S, C, w = 0, T = 0) {
1473
+ log.debug("setBlockSizes abc95 (start)", S.id, S?.size?.x, "block width =", S?.size, "siblingWidth", w), S?.size?.width || (S.size = {
1474
+ width: w,
1475
+ height: T,
1476
+ x: 0,
1477
+ y: 0
1478
+ });
1479
+ let E = 0, D = 0;
1480
+ if (S.children?.length > 0) {
1481
+ for (let e of S.children) setBlockSizes(e, C);
1482
+ let O = getMaxChildSize(S);
1483
+ E = O.width, D = O.height, log.debug("setBlockSizes abc95 maxWidth of", S.id, ":s children is ", E, D);
1484
+ for (let C of S.children) C.size && (log.debug(`abc95 Setting size of children of ${S.id} id=${C.id} ${E} ${D} ${JSON.stringify(C.size)}`), C.size.width = E * (C.widthInColumns ?? 1) + padding * ((C.widthInColumns ?? 1) - 1), C.size.height = D, C.size.x = 0, C.size.y = 0, log.debug(`abc95 updating size of ${S.id} children child:${C.id} maxWidth:${E} maxHeight:${D}`));
1485
+ for (let e of S.children) setBlockSizes(e, C, E, D);
1486
+ let k = S.columns ?? -1, A = 0;
1487
+ for (let e of S.children) A += e.widthInColumns ?? 1;
1488
+ let j = S.children.length;
1489
+ k > 0 && k < A && (j = k);
1490
+ let M = Math.ceil(A / j), N = j * (E + padding) + padding, P = M * (D + padding) + padding;
1491
+ if (N < w) {
1492
+ log.debug(`Detected to small sibling: abc95 ${S.id} siblingWidth ${w} siblingHeight ${T} width ${N}`), N = w, P = T;
1493
+ let C = (w - j * padding - padding) / j, O = (T - M * padding - padding) / M;
1494
+ log.debug("Size indata abc88", S.id, "childWidth", C, "maxWidth", E), log.debug("Size indata abc88", S.id, "childHeight", O, "maxHeight", D), log.debug("Size indata abc88 xSize", j, "padding", padding);
1495
+ for (let e of S.children) e.size && (e.size.width = C, e.size.height = O, e.size.x = 0, e.size.y = 0);
1496
+ }
1497
+ if (log.debug(`abc95 (finale calc) ${S.id} xSize ${j} ySize ${M} columns ${k}${S.children.length} width=${Math.max(N, S.size?.width || 0)}`), N < (S?.size?.width || 0)) {
1498
+ N = S?.size?.width || 0;
1499
+ let C = k > 0 ? Math.min(S.children.length, k) : S.children.length;
1500
+ if (C > 0) {
1501
+ let w = (N - C * padding - padding) / C;
1502
+ log.debug("abc95 (growing to fit) width", S.id, N, S.size?.width, w);
1503
+ for (let e of S.children) e.size && (e.size.width = w);
1504
+ }
1505
+ }
1506
+ S.size = {
1507
+ width: N,
1508
+ height: P,
1509
+ x: 0,
1510
+ y: 0
1511
+ };
1512
+ }
1513
+ log.debug("setBlockSizes abc94 (done)", S.id, S?.size?.x, S?.size?.width, S?.size?.y, S?.size?.height);
1514
+ }
1515
+ __name(setBlockSizes, "setBlockSizes");
1516
+ function layoutBlocks(S, C) {
1517
+ log.debug(`abc85 layout blocks (=>layoutBlocks) ${S.id} x: ${S?.size?.x} y: ${S?.size?.y} width: ${S?.size?.width}`);
1518
+ let w = S.columns ?? -1;
1519
+ if (log.debug("layoutBlocks columns abc95", S.id, "=>", w, S), S.children && S.children.length > 0) {
1520
+ let T = S?.children[0]?.size?.width ?? 0, E = S.children.length * T + (S.children.length - 1) * padding;
1521
+ log.debug("widthOfChildren 88", E, "posX");
1522
+ let D = 0;
1523
+ log.debug("abc91 block?.size?.x", S.id, S?.size?.x);
1524
+ let O = S?.size?.x ? S?.size?.x + (-S?.size?.width / 2 || 0) : -padding, k = 0;
1525
+ for (let T of S.children) {
1526
+ let E = S;
1527
+ if (!T.size) continue;
1528
+ let { width: A, height: j } = T.size, { px: M, py: N } = calculateBlockPosition(w, D);
1529
+ if (N != k && (k = N, O = S?.size?.x ? S?.size?.x + (-S?.size?.width / 2 || 0) : -padding, log.debug("New row in layout for block", S.id, " and child ", T.id, k)), log.debug(`abc89 layout blocks (child) id: ${T.id} Pos: ${D} (px, py) ${M},${N} (${E?.size?.x},${E?.size?.y}) parent: ${E.id} width: ${A}${padding}`), E.size) {
1530
+ let S = A / 2;
1531
+ T.size.x = O + padding + S, log.debug(`abc91 layout blocks (calc) px, pyid:${T.id} startingPos=X${O} new startingPosX${T.size.x} ${S} padding=${padding} width=${A} halfWidth=${S} => x:${T.size.x} y:${T.size.y} ${T.widthInColumns} (width * (child?.w || 1)) / 2 ${A * (T?.widthInColumns ?? 1) / 2}`), O = T.size.x + S, T.size.y = E.size.y - E.size.height / 2 + N * (j + padding) + j / 2 + padding, log.debug(`abc88 layout blocks (calc) px, pyid:${T.id}startingPosX${O}${padding}${S}=>x:${T.size.x}y:${T.size.y}${T.widthInColumns}(width * (child?.w || 1)) / 2${A * (T?.widthInColumns ?? 1) / 2}`);
1532
+ }
1533
+ T.children && layoutBlocks(T, C);
1534
+ let P = T?.widthInColumns ?? 1;
1535
+ w > 0 && (P = Math.min(P, w - D % w)), D += P, log.debug("abc88 columnsPos", T, D);
1536
+ }
1537
+ }
1538
+ log.debug(`layout blocks (<==layoutBlocks) ${S.id} x: ${S?.size?.x} y: ${S?.size?.y} width: ${S?.size?.width}`);
1539
+ }
1540
+ __name(layoutBlocks, "layoutBlocks");
1541
+ function findBounds(e, { minX: S, minY: C, maxX: w, maxY: T } = {
1542
+ minX: 0,
1543
+ minY: 0,
1544
+ maxX: 0,
1545
+ maxY: 0
1546
+ }) {
1547
+ if (e.size && e.id !== "root") {
1548
+ let { x: E, y: D, width: O, height: k } = e.size;
1549
+ E - O / 2 < S && (S = E - O / 2), D - k / 2 < C && (C = D - k / 2), E + O / 2 > w && (w = E + O / 2), D + k / 2 > T && (T = D + k / 2);
1550
+ }
1551
+ if (e.children) for (let E of e.children) ({minX: S, minY: C, maxX: w, maxY: T} = findBounds(E, {
1552
+ minX: S,
1553
+ minY: C,
1554
+ maxX: w,
1555
+ maxY: T
1556
+ }));
1557
+ return {
1558
+ minX: S,
1559
+ minY: C,
1560
+ maxX: w,
1561
+ maxY: T
1562
+ };
1563
+ }
1564
+ __name(findBounds, "findBounds");
1565
+ function layout(S) {
1566
+ let C = S.getBlock("root");
1567
+ if (!C) return;
1568
+ setBlockSizes(C, S, 0, 0), layoutBlocks(C, S), log.debug("getBlocks", JSON.stringify(C, null, 2));
1569
+ let { minX: w, minY: T, maxX: E, maxY: D } = findBounds(C), O = D - T;
1570
+ return {
1571
+ x: w,
1572
+ y: T,
1573
+ width: E - w,
1574
+ height: O
1575
+ };
1576
+ }
1577
+ __name(layout, "layout");
1578
+ function applyStyle(e, S) {
1579
+ S && e.attr("style", S);
1580
+ }
1581
+ __name(applyStyle, "applyStyle");
1582
+ function addHtmlLabel(e, S) {
1583
+ let w = select_default(document.createElementNS("http://www.w3.org/2000/svg", "foreignObject")), T = w.append("xhtml:div"), D = e.label, O = e.isNode ? "nodeLabel" : "edgeLabel", k = T.append("span");
1584
+ return k.html(sanitizeText(D, S)), applyStyle(k, e.labelStyle), k.attr("class", O), applyStyle(T, e.labelStyle), T.style("display", "inline-block"), T.style("white-space", "nowrap"), T.attr("xmlns", "http://www.w3.org/1999/xhtml"), w.node();
1585
+ }
1586
+ __name(addHtmlLabel, "addHtmlLabel");
1587
+ var createLabel_default = /* @__PURE__ */ __name(async (S, C, w, T) => {
1588
+ let E = S || "";
1589
+ typeof E == "object" && (E = E[0]);
1590
+ let D = getConfig2();
1591
+ if (evaluate(D.flowchart.htmlLabels)) return E = E.replace(/\\n|\n/g, "<br />"), log.debug("vertexText" + E), addHtmlLabel({
1592
+ isNode: T,
1593
+ label: await replaceIconSubstring(decodeEntities(E)),
1594
+ labelStyle: C.replace("fill:", "color:")
1595
+ }, D);
1596
+ {
1597
+ let e = document.createElementNS("http://www.w3.org/2000/svg", "text");
1598
+ e.setAttribute("style", C.replace("color:", "fill:"));
1599
+ let S = [];
1600
+ S = typeof E == "string" ? E.split(/\\n|\n|<br\s*\/?>/gi) : Array.isArray(E) ? E : [];
1601
+ for (let C of S) {
1602
+ let S = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
1603
+ S.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"), S.setAttribute("dy", "1em"), S.setAttribute("x", "0"), w ? S.setAttribute("class", "title-row") : S.setAttribute("class", "row"), S.textContent = C.trim(), e.appendChild(S);
1604
+ }
1605
+ return e;
1606
+ }
1607
+ }, "createLabel"), addEdgeMarkers = /* @__PURE__ */ __name((e, S, C, w, T) => {
1608
+ S.arrowTypeStart && addEdgeMarker(e, "start", S.arrowTypeStart, C, w, T), S.arrowTypeEnd && addEdgeMarker(e, "end", S.arrowTypeEnd, C, w, T);
1609
+ }, "addEdgeMarkers"), arrowTypesMap = {
1610
+ arrow_cross: "cross",
1611
+ arrow_point: "point",
1612
+ arrow_barb: "barb",
1613
+ arrow_circle: "circle",
1614
+ aggregation: "aggregation",
1615
+ extension: "extension",
1616
+ composition: "composition",
1617
+ dependency: "dependency",
1618
+ lollipop: "lollipop"
1619
+ }, addEdgeMarker = /* @__PURE__ */ __name((S, C, w, T, E, D) => {
1620
+ let O = arrowTypesMap[w];
1621
+ if (!O) {
1622
+ log.warn(`Unknown arrow type: ${w}`);
1623
+ return;
1624
+ }
1625
+ let k = C === "start" ? "Start" : "End";
1626
+ S.attr(`marker-${C}`, `url(${T}#${E}_${D}-${O}${k})`);
1627
+ }, "addEdgeMarker"), edgeLabels = {}, terminalLabels = {}, insertEdgeLabel = /* @__PURE__ */ __name(async (e, S) => {
1628
+ let w = getConfig2(), T = evaluate(w.flowchart.htmlLabels), E = S.labelType === "markdown" ? createText(e, S.label, {
1629
+ style: S.labelStyle,
1630
+ useHtmlLabels: T,
1631
+ addSvgBackground: !0
1632
+ }, w) : await createLabel_default(S.label, S.labelStyle), D = e.insert("g").attr("class", "edgeLabel"), k = D.insert("g").attr("class", "label");
1633
+ k.node().appendChild(E);
1634
+ let j = E.getBBox();
1635
+ if (T) {
1636
+ let e = E.children[0], S = select_default(E);
1637
+ j = e.getBoundingClientRect(), S.attr("width", j.width), S.attr("height", j.height);
1638
+ }
1639
+ k.attr("transform", "translate(" + -j.width / 2 + ", " + -j.height / 2 + ")"), edgeLabels[S.id] = D, S.width = j.width, S.height = j.height;
1640
+ let M;
1641
+ if (S.startLabelLeft) {
1642
+ let C = await createLabel_default(S.startLabelLeft, S.labelStyle), w = e.insert("g").attr("class", "edgeTerminals"), T = w.insert("g").attr("class", "inner");
1643
+ M = T.node().appendChild(C);
1644
+ let E = C.getBBox();
1645
+ T.attr("transform", "translate(" + -E.width / 2 + ", " + -E.height / 2 + ")"), terminalLabels[S.id] || (terminalLabels[S.id] = {}), terminalLabels[S.id].startLeft = w, setTerminalWidth(M, S.startLabelLeft);
1646
+ }
1647
+ if (S.startLabelRight) {
1648
+ let C = await createLabel_default(S.startLabelRight, S.labelStyle), w = e.insert("g").attr("class", "edgeTerminals"), T = w.insert("g").attr("class", "inner");
1649
+ M = w.node().appendChild(C), T.node().appendChild(C);
1650
+ let E = C.getBBox();
1651
+ T.attr("transform", "translate(" + -E.width / 2 + ", " + -E.height / 2 + ")"), terminalLabels[S.id] || (terminalLabels[S.id] = {}), terminalLabels[S.id].startRight = w, setTerminalWidth(M, S.startLabelRight);
1652
+ }
1653
+ if (S.endLabelLeft) {
1654
+ let C = await createLabel_default(S.endLabelLeft, S.labelStyle), w = e.insert("g").attr("class", "edgeTerminals"), T = w.insert("g").attr("class", "inner");
1655
+ M = T.node().appendChild(C);
1656
+ let E = C.getBBox();
1657
+ T.attr("transform", "translate(" + -E.width / 2 + ", " + -E.height / 2 + ")"), w.node().appendChild(C), terminalLabels[S.id] || (terminalLabels[S.id] = {}), terminalLabels[S.id].endLeft = w, setTerminalWidth(M, S.endLabelLeft);
1658
+ }
1659
+ if (S.endLabelRight) {
1660
+ let C = await createLabel_default(S.endLabelRight, S.labelStyle), w = e.insert("g").attr("class", "edgeTerminals"), T = w.insert("g").attr("class", "inner");
1661
+ M = T.node().appendChild(C);
1662
+ let E = C.getBBox();
1663
+ T.attr("transform", "translate(" + -E.width / 2 + ", " + -E.height / 2 + ")"), w.node().appendChild(C), terminalLabels[S.id] || (terminalLabels[S.id] = {}), terminalLabels[S.id].endRight = w, setTerminalWidth(M, S.endLabelRight);
1664
+ }
1665
+ return E;
1666
+ }, "insertEdgeLabel");
1667
+ function setTerminalWidth(e, S) {
1668
+ getConfig2().flowchart.htmlLabels && e && (e.style.width = S.length * 9 + "px", e.style.height = "12px");
1669
+ }
1670
+ __name(setTerminalWidth, "setTerminalWidth");
1671
+ var positionEdgeLabel = /* @__PURE__ */ __name((S, C) => {
1672
+ log.debug("Moving label abc88 ", S.id, S.label, edgeLabels[S.id], C);
1673
+ let w = C.updatedPath ? C.updatedPath : C.originalPath, { subGraphTitleTotalMargin: T } = getSubGraphTitleMargins(getConfig2());
1674
+ if (S.label) {
1675
+ let E = edgeLabels[S.id], D = S.x, O = S.y;
1676
+ if (w) {
1677
+ let T = utils_default.calcLabelPosition(w);
1678
+ log.debug("Moving label " + S.label + " from (", D, ",", O, ") to (", T.x, ",", T.y, ") abc88"), C.updatedPath && (D = T.x, O = T.y);
1679
+ }
1680
+ E.attr("transform", `translate(${D}, ${O + T / 2})`);
1681
+ }
1682
+ if (S.startLabelLeft) {
1683
+ let e = terminalLabels[S.id].startLeft, C = S.x, T = S.y;
1684
+ if (w) {
1685
+ let e = utils_default.calcTerminalLabelPosition(S.arrowTypeStart ? 10 : 0, "start_left", w);
1686
+ C = e.x, T = e.y;
1687
+ }
1688
+ e.attr("transform", `translate(${C}, ${T})`);
1689
+ }
1690
+ if (S.startLabelRight) {
1691
+ let e = terminalLabels[S.id].startRight, C = S.x, T = S.y;
1692
+ if (w) {
1693
+ let e = utils_default.calcTerminalLabelPosition(S.arrowTypeStart ? 10 : 0, "start_right", w);
1694
+ C = e.x, T = e.y;
1695
+ }
1696
+ e.attr("transform", `translate(${C}, ${T})`);
1697
+ }
1698
+ if (S.endLabelLeft) {
1699
+ let e = terminalLabels[S.id].endLeft, C = S.x, T = S.y;
1700
+ if (w) {
1701
+ let e = utils_default.calcTerminalLabelPosition(S.arrowTypeEnd ? 10 : 0, "end_left", w);
1702
+ C = e.x, T = e.y;
1703
+ }
1704
+ e.attr("transform", `translate(${C}, ${T})`);
1705
+ }
1706
+ if (S.endLabelRight) {
1707
+ let e = terminalLabels[S.id].endRight, C = S.x, T = S.y;
1708
+ if (w) {
1709
+ let e = utils_default.calcTerminalLabelPosition(S.arrowTypeEnd ? 10 : 0, "end_right", w);
1710
+ C = e.x, T = e.y;
1711
+ }
1712
+ e.attr("transform", `translate(${C}, ${T})`);
1713
+ }
1714
+ }, "positionEdgeLabel"), outsideNode = /* @__PURE__ */ __name((e, S) => {
1715
+ let C = e.x, w = e.y, T = Math.abs(S.x - C), E = Math.abs(S.y - w), D = e.width / 2, O = e.height / 2;
1716
+ return T >= D || E >= O;
1717
+ }, "outsideNode"), intersection = /* @__PURE__ */ __name((S, C, w) => {
1718
+ log.debug(`intersection calc abc89:
1719
+ outsidePoint: ${JSON.stringify(C)}
1720
+ insidePoint : ${JSON.stringify(w)}
1721
+ node : x:${S.x} y:${S.y} w:${S.width} h:${S.height}`);
1722
+ let T = S.x, E = S.y, D = Math.abs(T - w.x), O = S.width / 2, k = w.x < C.x ? O - D : O + D, A = S.height / 2, j = Math.abs(C.y - w.y), M = Math.abs(C.x - w.x);
1723
+ if (Math.abs(E - C.y) * O > Math.abs(T - C.x) * A) {
1724
+ let S = w.y < C.y ? C.y - A - E : E - A - C.y;
1725
+ k = M * S / j;
1726
+ let T = {
1727
+ x: w.x < C.x ? w.x + k : w.x - M + k,
1728
+ y: w.y < C.y ? w.y + j - S : w.y - j + S
1729
+ };
1730
+ return k === 0 && (T.x = C.x, T.y = C.y), M === 0 && (T.x = C.x), j === 0 && (T.y = C.y), log.debug(`abc89 topp/bott calc, Q ${j}, q ${S}, R ${M}, r ${k}`, T), T;
1731
+ } else {
1732
+ k = w.x < C.x ? C.x - O - T : T - O - C.x;
1733
+ let S = j * k / M, E = w.x < C.x ? w.x + M - k : w.x - M + k, D = w.y < C.y ? w.y + S : w.y - S;
1734
+ return log.debug(`sides calc abc89, Q ${j}, q ${S}, R ${M}, r ${k}`, {
1735
+ _x: E,
1736
+ _y: D
1737
+ }), k === 0 && (E = C.x, D = C.y), M === 0 && (E = C.x), j === 0 && (D = C.y), {
1738
+ x: E,
1739
+ y: D
1740
+ };
1741
+ }
1742
+ }, "intersection"), cutPathAtIntersect = /* @__PURE__ */ __name((S, C) => {
1743
+ log.debug("abc88 cutPathAtIntersect", S, C);
1744
+ let w = [], T = S[0], E = !1;
1745
+ return S.forEach((e) => {
1746
+ if (!outsideNode(C, e) && !E) {
1747
+ let S = intersection(C, T, e), D = !1;
1748
+ w.forEach((e) => {
1749
+ D ||= e.x === S.x && e.y === S.y;
1750
+ }), w.some((e) => e.x === S.x && e.y === S.y) || w.push(S), E = !0;
1751
+ } else T = e, E || w.push(e);
1752
+ }), w;
1753
+ }, "cutPathAtIntersect"), insertEdge = /* @__PURE__ */ __name(function(S, C, w, E, D, k, A) {
1754
+ let j = w.points;
1755
+ log.debug("abc88 InsertEdge: edge=", w, "e=", C);
1756
+ let M = !1, N = k.node(C.v);
1757
+ var F = k.node(C.w);
1758
+ F?.intersect && N?.intersect && (j = j.slice(1, w.points.length - 1), j.unshift(N.intersect(j[0])), j.push(F.intersect(j[j.length - 1]))), w.toCluster && (log.debug("to cluster abc88", E[w.toCluster]), j = cutPathAtIntersect(w.points, E[w.toCluster].node), M = !0), w.fromCluster && (log.debug("from cluster abc88", E[w.fromCluster]), j = cutPathAtIntersect(j.reverse(), E[w.fromCluster].node).reverse(), M = !0);
1759
+ let I = j.filter((e) => !Number.isNaN(e.y)), L = basis_default;
1760
+ w.curve && (D === "graph" || D === "flowchart") && (L = w.curve);
1761
+ let { x: z, y: B } = getLineFunctionsWithOffset(w), V = line_default().x(z).y(B).curve(L), U;
1762
+ switch (w.thickness) {
1763
+ case "normal":
1764
+ U = "edge-thickness-normal";
1765
+ break;
1766
+ case "thick":
1767
+ U = "edge-thickness-thick";
1768
+ break;
1769
+ case "invisible":
1770
+ U = "edge-thickness-thick";
1771
+ break;
1772
+ default: U = "";
1773
+ }
1774
+ switch (w.pattern) {
1775
+ case "solid":
1776
+ U += " edge-pattern-solid";
1777
+ break;
1778
+ case "dotted":
1779
+ U += " edge-pattern-dotted";
1780
+ break;
1781
+ case "dashed":
1782
+ U += " edge-pattern-dashed";
1783
+ break;
1784
+ }
1785
+ let W = S.append("path").attr("d", V(I)).attr("id", w.id).attr("class", " " + U + (w.classes ? " " + w.classes : "")).attr("style", w.style), G = "";
1786
+ (getConfig2().flowchart.arrowMarkerAbsolute || getConfig2().state.arrowMarkerAbsolute) && (G = getUrl(!0)), addEdgeMarkers(W, w, G, A, D);
1787
+ let K = {};
1788
+ return M && (K.updatedPath = j), K.originalPath = w.points, K;
1789
+ }, "insertEdge"), expandAndDeduplicateDirections = /* @__PURE__ */ __name((e) => {
1790
+ let S = /* @__PURE__ */ new Set();
1791
+ for (let C of e) switch (C) {
1792
+ case "x":
1793
+ S.add("right"), S.add("left");
1794
+ break;
1795
+ case "y":
1796
+ S.add("up"), S.add("down");
1797
+ break;
1798
+ default:
1799
+ S.add(C);
1800
+ break;
1801
+ }
1802
+ return S;
1803
+ }, "expandAndDeduplicateDirections"), getArrowPoints = /* @__PURE__ */ __name((e, S, C) => {
1804
+ let w = expandAndDeduplicateDirections(e), T = S.height + 2 * C.padding, E = T / 2, D = S.width + 2 * E + C.padding, O = C.padding / 2;
1805
+ return w.has("right") && w.has("left") && w.has("up") && w.has("down") ? [
1806
+ {
1807
+ x: 0,
1808
+ y: 0
1809
+ },
1810
+ {
1811
+ x: E,
1812
+ y: 0
1813
+ },
1814
+ {
1815
+ x: D / 2,
1816
+ y: 2 * O
1817
+ },
1818
+ {
1819
+ x: D - E,
1820
+ y: 0
1821
+ },
1822
+ {
1823
+ x: D,
1824
+ y: 0
1825
+ },
1826
+ {
1827
+ x: D,
1828
+ y: -T / 3
1829
+ },
1830
+ {
1831
+ x: D + 2 * O,
1832
+ y: -T / 2
1833
+ },
1834
+ {
1835
+ x: D,
1836
+ y: -2 * T / 3
1837
+ },
1838
+ {
1839
+ x: D,
1840
+ y: -T
1841
+ },
1842
+ {
1843
+ x: D - E,
1844
+ y: -T
1845
+ },
1846
+ {
1847
+ x: D / 2,
1848
+ y: -T - 2 * O
1849
+ },
1850
+ {
1851
+ x: E,
1852
+ y: -T
1853
+ },
1854
+ {
1855
+ x: 0,
1856
+ y: -T
1857
+ },
1858
+ {
1859
+ x: 0,
1860
+ y: -2 * T / 3
1861
+ },
1862
+ {
1863
+ x: -2 * O,
1864
+ y: -T / 2
1865
+ },
1866
+ {
1867
+ x: 0,
1868
+ y: -T / 3
1869
+ }
1870
+ ] : w.has("right") && w.has("left") && w.has("up") ? [
1871
+ {
1872
+ x: E,
1873
+ y: 0
1874
+ },
1875
+ {
1876
+ x: D - E,
1877
+ y: 0
1878
+ },
1879
+ {
1880
+ x: D,
1881
+ y: -T / 2
1882
+ },
1883
+ {
1884
+ x: D - E,
1885
+ y: -T
1886
+ },
1887
+ {
1888
+ x: E,
1889
+ y: -T
1890
+ },
1891
+ {
1892
+ x: 0,
1893
+ y: -T / 2
1894
+ }
1895
+ ] : w.has("right") && w.has("left") && w.has("down") ? [
1896
+ {
1897
+ x: 0,
1898
+ y: 0
1899
+ },
1900
+ {
1901
+ x: E,
1902
+ y: -T
1903
+ },
1904
+ {
1905
+ x: D - E,
1906
+ y: -T
1907
+ },
1908
+ {
1909
+ x: D,
1910
+ y: 0
1911
+ }
1912
+ ] : w.has("right") && w.has("up") && w.has("down") ? [
1913
+ {
1914
+ x: 0,
1915
+ y: 0
1916
+ },
1917
+ {
1918
+ x: D,
1919
+ y: -E
1920
+ },
1921
+ {
1922
+ x: D,
1923
+ y: -T + E
1924
+ },
1925
+ {
1926
+ x: 0,
1927
+ y: -T
1928
+ }
1929
+ ] : w.has("left") && w.has("up") && w.has("down") ? [
1930
+ {
1931
+ x: D,
1932
+ y: 0
1933
+ },
1934
+ {
1935
+ x: 0,
1936
+ y: -E
1937
+ },
1938
+ {
1939
+ x: 0,
1940
+ y: -T + E
1941
+ },
1942
+ {
1943
+ x: D,
1944
+ y: -T
1945
+ }
1946
+ ] : w.has("right") && w.has("left") ? [
1947
+ {
1948
+ x: E,
1949
+ y: 0
1950
+ },
1951
+ {
1952
+ x: E,
1953
+ y: -O
1954
+ },
1955
+ {
1956
+ x: D - E,
1957
+ y: -O
1958
+ },
1959
+ {
1960
+ x: D - E,
1961
+ y: 0
1962
+ },
1963
+ {
1964
+ x: D,
1965
+ y: -T / 2
1966
+ },
1967
+ {
1968
+ x: D - E,
1969
+ y: -T
1970
+ },
1971
+ {
1972
+ x: D - E,
1973
+ y: -T + O
1974
+ },
1975
+ {
1976
+ x: E,
1977
+ y: -T + O
1978
+ },
1979
+ {
1980
+ x: E,
1981
+ y: -T
1982
+ },
1983
+ {
1984
+ x: 0,
1985
+ y: -T / 2
1986
+ }
1987
+ ] : w.has("up") && w.has("down") ? [
1988
+ {
1989
+ x: D / 2,
1990
+ y: 0
1991
+ },
1992
+ {
1993
+ x: 0,
1994
+ y: -O
1995
+ },
1996
+ {
1997
+ x: E,
1998
+ y: -O
1999
+ },
2000
+ {
2001
+ x: E,
2002
+ y: -T + O
2003
+ },
2004
+ {
2005
+ x: 0,
2006
+ y: -T + O
2007
+ },
2008
+ {
2009
+ x: D / 2,
2010
+ y: -T
2011
+ },
2012
+ {
2013
+ x: D,
2014
+ y: -T + O
2015
+ },
2016
+ {
2017
+ x: D - E,
2018
+ y: -T + O
2019
+ },
2020
+ {
2021
+ x: D - E,
2022
+ y: -O
2023
+ },
2024
+ {
2025
+ x: D,
2026
+ y: -O
2027
+ }
2028
+ ] : w.has("right") && w.has("up") ? [
2029
+ {
2030
+ x: 0,
2031
+ y: 0
2032
+ },
2033
+ {
2034
+ x: D,
2035
+ y: -E
2036
+ },
2037
+ {
2038
+ x: 0,
2039
+ y: -T
2040
+ }
2041
+ ] : w.has("right") && w.has("down") ? [
2042
+ {
2043
+ x: 0,
2044
+ y: 0
2045
+ },
2046
+ {
2047
+ x: D,
2048
+ y: 0
2049
+ },
2050
+ {
2051
+ x: 0,
2052
+ y: -T
2053
+ }
2054
+ ] : w.has("left") && w.has("up") ? [
2055
+ {
2056
+ x: D,
2057
+ y: 0
2058
+ },
2059
+ {
2060
+ x: 0,
2061
+ y: -E
2062
+ },
2063
+ {
2064
+ x: D,
2065
+ y: -T
2066
+ }
2067
+ ] : w.has("left") && w.has("down") ? [
2068
+ {
2069
+ x: D,
2070
+ y: 0
2071
+ },
2072
+ {
2073
+ x: 0,
2074
+ y: 0
2075
+ },
2076
+ {
2077
+ x: D,
2078
+ y: -T
2079
+ }
2080
+ ] : w.has("right") ? [
2081
+ {
2082
+ x: E,
2083
+ y: -O
2084
+ },
2085
+ {
2086
+ x: E,
2087
+ y: -O
2088
+ },
2089
+ {
2090
+ x: D - E,
2091
+ y: -O
2092
+ },
2093
+ {
2094
+ x: D - E,
2095
+ y: 0
2096
+ },
2097
+ {
2098
+ x: D,
2099
+ y: -T / 2
2100
+ },
2101
+ {
2102
+ x: D - E,
2103
+ y: -T
2104
+ },
2105
+ {
2106
+ x: D - E,
2107
+ y: -T + O
2108
+ },
2109
+ {
2110
+ x: E,
2111
+ y: -T + O
2112
+ },
2113
+ {
2114
+ x: E,
2115
+ y: -T + O
2116
+ }
2117
+ ] : w.has("left") ? [
2118
+ {
2119
+ x: E,
2120
+ y: 0
2121
+ },
2122
+ {
2123
+ x: E,
2124
+ y: -O
2125
+ },
2126
+ {
2127
+ x: D - E,
2128
+ y: -O
2129
+ },
2130
+ {
2131
+ x: D - E,
2132
+ y: -T + O
2133
+ },
2134
+ {
2135
+ x: E,
2136
+ y: -T + O
2137
+ },
2138
+ {
2139
+ x: E,
2140
+ y: -T
2141
+ },
2142
+ {
2143
+ x: 0,
2144
+ y: -T / 2
2145
+ }
2146
+ ] : w.has("up") ? [
2147
+ {
2148
+ x: E,
2149
+ y: -O
2150
+ },
2151
+ {
2152
+ x: E,
2153
+ y: -T + O
2154
+ },
2155
+ {
2156
+ x: 0,
2157
+ y: -T + O
2158
+ },
2159
+ {
2160
+ x: D / 2,
2161
+ y: -T
2162
+ },
2163
+ {
2164
+ x: D,
2165
+ y: -T + O
2166
+ },
2167
+ {
2168
+ x: D - E,
2169
+ y: -T + O
2170
+ },
2171
+ {
2172
+ x: D - E,
2173
+ y: -O
2174
+ }
2175
+ ] : w.has("down") ? [
2176
+ {
2177
+ x: D / 2,
2178
+ y: 0
2179
+ },
2180
+ {
2181
+ x: 0,
2182
+ y: -O
2183
+ },
2184
+ {
2185
+ x: E,
2186
+ y: -O
2187
+ },
2188
+ {
2189
+ x: E,
2190
+ y: -T + O
2191
+ },
2192
+ {
2193
+ x: D - E,
2194
+ y: -T + O
2195
+ },
2196
+ {
2197
+ x: D - E,
2198
+ y: -O
2199
+ },
2200
+ {
2201
+ x: D,
2202
+ y: -O
2203
+ }
2204
+ ] : [{
2205
+ x: 0,
2206
+ y: 0
2207
+ }];
2208
+ }, "getArrowPoints");
2209
+ function intersectNode(e, S) {
2210
+ return e.intersect(S);
2211
+ }
2212
+ __name(intersectNode, "intersectNode");
2213
+ var intersect_node_default = intersectNode;
2214
+ function intersectEllipse(e, S, C, w) {
2215
+ var T = e.x, E = e.y, D = T - w.x, O = E - w.y, k = Math.sqrt(S * S * O * O + C * C * D * D), A = Math.abs(S * C * D / k);
2216
+ w.x < T && (A = -A);
2217
+ var j = Math.abs(S * C * O / k);
2218
+ return w.y < E && (j = -j), {
2219
+ x: T + A,
2220
+ y: E + j
2221
+ };
2222
+ }
2223
+ __name(intersectEllipse, "intersectEllipse");
2224
+ var intersect_ellipse_default = intersectEllipse;
2225
+ function intersectCircle(e, S, C) {
2226
+ return intersect_ellipse_default(e, S, S, C);
2227
+ }
2228
+ __name(intersectCircle, "intersectCircle");
2229
+ var intersect_circle_default = intersectCircle;
2230
+ function intersectLine(e, S, C, w) {
2231
+ var T = S.y - e.y, E, D = e.x - S.x, O, k = S.x * e.y - e.x * S.y, A, j, M, N = T * C.x + D * C.y + k, P = T * w.x + D * w.y + k, F, I, L, R, z;
2232
+ if (!(N !== 0 && P !== 0 && sameSign(N, P)) && (E = w.y - C.y, O = C.x - w.x, A = w.x * C.y - C.x * w.y, j = E * e.x + O * e.y + A, M = E * S.x + O * S.y + A, !(j !== 0 && M !== 0 && sameSign(j, M)) && (F = T * O - E * D, F !== 0))) return I = Math.abs(F / 2), L = D * A - O * k, R = L < 0 ? (L - I) / F : (L + I) / F, L = E * k - T * A, z = L < 0 ? (L - I) / F : (L + I) / F, {
2233
+ x: R,
2234
+ y: z
2235
+ };
2236
+ }
2237
+ __name(intersectLine, "intersectLine");
2238
+ function sameSign(e, S) {
2239
+ return e * S > 0;
2240
+ }
2241
+ __name(sameSign, "sameSign");
2242
+ var intersect_line_default = intersectLine, intersect_polygon_default = intersectPolygon;
2243
+ function intersectPolygon(e, S, C) {
2244
+ var w = e.x, T = e.y, E = [], D = Infinity, O = Infinity;
2245
+ typeof S.forEach == "function" ? S.forEach(function(e) {
2246
+ D = Math.min(D, e.x), O = Math.min(O, e.y);
2247
+ }) : (D = Math.min(D, S.x), O = Math.min(O, S.y));
2248
+ for (var k = w - e.width / 2 - D, A = T - e.height / 2 - O, j = 0; j < S.length; j++) {
2249
+ var M = S[j], N = S[j < S.length - 1 ? j + 1 : 0], P = intersect_line_default(e, C, {
2250
+ x: k + M.x,
2251
+ y: A + M.y
2252
+ }, {
2253
+ x: k + N.x,
2254
+ y: A + N.y
2255
+ });
2256
+ P && E.push(P);
2257
+ }
2258
+ return E.length ? (E.length > 1 && E.sort(function(e, S) {
2259
+ var w = e.x - C.x, T = e.y - C.y, E = Math.sqrt(w * w + T * T), D = S.x - C.x, O = S.y - C.y, k = Math.sqrt(D * D + O * O);
2260
+ return E < k ? -1 : E === k ? 0 : 1;
2261
+ }), E[0]) : e;
2262
+ }
2263
+ __name(intersectPolygon, "intersectPolygon");
2264
+ var intersect_default = {
2265
+ node: intersect_node_default,
2266
+ circle: intersect_circle_default,
2267
+ ellipse: intersect_ellipse_default,
2268
+ polygon: intersect_polygon_default,
2269
+ rect: /* @__PURE__ */ __name((e, S) => {
2270
+ var C = e.x, w = e.y, T = S.x - C, E = S.y - w, D = e.width / 2, O = e.height / 2, k, A;
2271
+ return Math.abs(E) * D > Math.abs(T) * O ? (E < 0 && (O = -O), k = E === 0 ? 0 : O * T / E, A = O) : (T < 0 && (D = -D), k = D, A = T === 0 ? 0 : D * E / T), {
2272
+ x: C + k,
2273
+ y: w + A
2274
+ };
2275
+ }, "intersectRect")
2276
+ }, labelHelper = /* @__PURE__ */ __name(async (e, w, T, D) => {
2277
+ let k = getConfig2(), j, M = w.useHtmlLabels || evaluate(k.flowchart.htmlLabels);
2278
+ j = T || "node default";
2279
+ let N = e.insert("g").attr("class", j).attr("id", w.domId || w.id), P = N.insert("g").attr("class", "label").attr("style", w.labelStyle), I;
2280
+ I = w.labelText === void 0 ? "" : typeof w.labelText == "string" ? w.labelText : w.labelText[0];
2281
+ let L = P.node(), R;
2282
+ R = w.labelType === "markdown" ? createText(P, sanitizeText(decodeEntities(I), k), {
2283
+ useHtmlLabels: M,
2284
+ width: w.width || k.flowchart.wrappingWidth,
2285
+ classes: "markdown-node-label"
2286
+ }, k) : L.appendChild(await createLabel_default(sanitizeText(decodeEntities(I), k), w.labelStyle, !1, D));
2287
+ let z = R.getBBox(), V = w.padding / 2;
2288
+ if (evaluate(k.flowchart.htmlLabels)) {
2289
+ let e = R.children[0], w = select_default(R), T = e.getElementsByTagName("img");
2290
+ if (T) {
2291
+ let e = I.replace(/<img[^>]*>/g, "").trim() === "";
2292
+ await Promise.all([...T].map((C) => new Promise((w) => {
2293
+ function T() {
2294
+ if (C.style.display = "flex", C.style.flexDirection = "column", e) {
2295
+ let e = k.fontSize ? k.fontSize : window.getComputedStyle(document.body).fontSize, S = parseInt(e, 10) * 5 + "px";
2296
+ C.style.minWidth = S, C.style.maxWidth = S;
2297
+ } else C.style.width = "100%";
2298
+ w(C);
2299
+ }
2300
+ __name(T, "setupImage"), setTimeout(() => {
2301
+ C.complete && T();
2302
+ }), C.addEventListener("error", T), C.addEventListener("load", T);
2303
+ })));
2304
+ }
2305
+ z = e.getBoundingClientRect(), w.attr("width", z.width), w.attr("height", z.height);
2306
+ }
2307
+ return M ? P.attr("transform", "translate(" + -z.width / 2 + ", " + -z.height / 2 + ")") : P.attr("transform", "translate(0, " + -z.height / 2 + ")"), w.centerLabel && P.attr("transform", "translate(" + -z.width / 2 + ", " + -z.height / 2 + ")"), P.insert("rect", ":first-child"), {
2308
+ shapeSvg: N,
2309
+ bbox: z,
2310
+ halfPadding: V,
2311
+ label: P
2312
+ };
2313
+ }, "labelHelper"), updateNodeBounds = /* @__PURE__ */ __name((e, S) => {
2314
+ let C = S.node().getBBox();
2315
+ e.width = C.width, e.height = C.height;
2316
+ }, "updateNodeBounds");
2317
+ function insertPolygonShape(e, S, C, w) {
2318
+ return e.insert("polygon", ":first-child").attr("points", w.map(function(e) {
2319
+ return e.x + "," + e.y;
2320
+ }).join(" ")).attr("class", "label-container").attr("transform", "translate(" + -S / 2 + "," + C / 2 + ")");
2321
+ }
2322
+ __name(insertPolygonShape, "insertPolygonShape");
2323
+ var note_default = /* @__PURE__ */ __name(async (S, C) => {
2324
+ C.useHtmlLabels || getConfig2().flowchart.htmlLabels || (C.centerLabel = !0);
2325
+ let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(S, C, "node " + C.classes, !0);
2326
+ log.info("Classes = ", C.classes);
2327
+ let D = w.insert("rect", ":first-child");
2328
+ return D.attr("rx", C.rx).attr("ry", C.ry).attr("x", -T.width / 2 - E).attr("y", -T.height / 2 - E).attr("width", T.width + C.padding).attr("height", T.height + C.padding), updateNodeBounds(C, D), C.intersect = function(e) {
2329
+ return intersect_default.rect(C, e);
2330
+ }, w;
2331
+ }, "note"), formatClass = /* @__PURE__ */ __name((e) => e ? " " + e : "", "formatClass"), getClassesFromNode = /* @__PURE__ */ __name((e, S) => `${S || "node default"}${formatClass(e.classes)} ${formatClass(e.class)}`, "getClassesFromNode"), question = /* @__PURE__ */ __name(async (S, C) => {
2332
+ let { shapeSvg: w, bbox: T } = await labelHelper(S, C, getClassesFromNode(C, void 0), !0), E = T.width + C.padding + (T.height + C.padding), D = [
2333
+ {
2334
+ x: E / 2,
2335
+ y: 0
2336
+ },
2337
+ {
2338
+ x: E,
2339
+ y: -E / 2
2340
+ },
2341
+ {
2342
+ x: E / 2,
2343
+ y: -E
2344
+ },
2345
+ {
2346
+ x: 0,
2347
+ y: -E / 2
2348
+ }
2349
+ ];
2350
+ log.info("Question main (Circle)");
2351
+ let O = insertPolygonShape(w, E, E, D);
2352
+ return O.attr("style", C.style), updateNodeBounds(C, O), C.intersect = function(S) {
2353
+ return log.warn("Intersect called"), intersect_default.polygon(C, D, S);
2354
+ }, w;
2355
+ }, "question"), choice = /* @__PURE__ */ __name((e, S) => {
2356
+ let C = e.insert("g").attr("class", "node default").attr("id", S.domId || S.id);
2357
+ return C.insert("polygon", ":first-child").attr("points", [
2358
+ {
2359
+ x: 0,
2360
+ y: 28 / 2
2361
+ },
2362
+ {
2363
+ x: 28 / 2,
2364
+ y: 0
2365
+ },
2366
+ {
2367
+ x: 0,
2368
+ y: -28 / 2
2369
+ },
2370
+ {
2371
+ x: -28 / 2,
2372
+ y: 0
2373
+ }
2374
+ ].map(function(e) {
2375
+ return e.x + "," + e.y;
2376
+ }).join(" ")).attr("class", "state-start").attr("r", 7).attr("width", 28).attr("height", 28), S.width = 28, S.height = 28, S.intersect = function(e) {
2377
+ return intersect_default.circle(S, 14, e);
2378
+ }, C;
2379
+ }, "choice"), hexagon = /* @__PURE__ */ __name(async (e, S) => {
2380
+ let { shapeSvg: C, bbox: w } = await labelHelper(e, S, getClassesFromNode(S, void 0), !0), T = w.height + S.padding, E = T / 4, D = w.width + 2 * E + S.padding, O = [
2381
+ {
2382
+ x: E,
2383
+ y: 0
2384
+ },
2385
+ {
2386
+ x: D - E,
2387
+ y: 0
2388
+ },
2389
+ {
2390
+ x: D,
2391
+ y: -T / 2
2392
+ },
2393
+ {
2394
+ x: D - E,
2395
+ y: -T
2396
+ },
2397
+ {
2398
+ x: E,
2399
+ y: -T
2400
+ },
2401
+ {
2402
+ x: 0,
2403
+ y: -T / 2
2404
+ }
2405
+ ], k = insertPolygonShape(C, D, T, O);
2406
+ return k.attr("style", S.style), updateNodeBounds(S, k), S.intersect = function(e) {
2407
+ return intersect_default.polygon(S, O, e);
2408
+ }, C;
2409
+ }, "hexagon"), block_arrow = /* @__PURE__ */ __name(async (e, S) => {
2410
+ let { shapeSvg: C, bbox: w } = await labelHelper(e, S, void 0, !0), T = w.height + 2 * S.padding, E = T / 2, D = w.width + 2 * E + S.padding, O = getArrowPoints(S.directions, w, S), k = insertPolygonShape(C, D, T, O);
2411
+ return k.attr("style", S.style), updateNodeBounds(S, k), S.intersect = function(e) {
2412
+ return intersect_default.polygon(S, O, e);
2413
+ }, C;
2414
+ }, "block_arrow"), rect_left_inv_arrow = /* @__PURE__ */ __name(async (e, S) => {
2415
+ let { shapeSvg: C, bbox: w } = await labelHelper(e, S, getClassesFromNode(S, void 0), !0), T = w.width + S.padding, E = w.height + S.padding, D = [
2416
+ {
2417
+ x: -E / 2,
2418
+ y: 0
2419
+ },
2420
+ {
2421
+ x: T,
2422
+ y: 0
2423
+ },
2424
+ {
2425
+ x: T,
2426
+ y: -E
2427
+ },
2428
+ {
2429
+ x: -E / 2,
2430
+ y: -E
2431
+ },
2432
+ {
2433
+ x: 0,
2434
+ y: -E / 2
2435
+ }
2436
+ ];
2437
+ return insertPolygonShape(C, T, E, D).attr("style", S.style), S.width = T + E, S.height = E, S.intersect = function(e) {
2438
+ return intersect_default.polygon(S, D, e);
2439
+ }, C;
2440
+ }, "rect_left_inv_arrow"), lean_right = /* @__PURE__ */ __name(async (e, S) => {
2441
+ let { shapeSvg: C, bbox: w } = await labelHelper(e, S, getClassesFromNode(S), !0), T = w.width + S.padding, E = w.height + S.padding, D = [
2442
+ {
2443
+ x: -2 * E / 6,
2444
+ y: 0
2445
+ },
2446
+ {
2447
+ x: T - E / 6,
2448
+ y: 0
2449
+ },
2450
+ {
2451
+ x: T + 2 * E / 6,
2452
+ y: -E
2453
+ },
2454
+ {
2455
+ x: E / 6,
2456
+ y: -E
2457
+ }
2458
+ ], O = insertPolygonShape(C, T, E, D);
2459
+ return O.attr("style", S.style), updateNodeBounds(S, O), S.intersect = function(e) {
2460
+ return intersect_default.polygon(S, D, e);
2461
+ }, C;
2462
+ }, "lean_right"), lean_left = /* @__PURE__ */ __name(async (e, S) => {
2463
+ let { shapeSvg: C, bbox: w } = await labelHelper(e, S, getClassesFromNode(S, void 0), !0), T = w.width + S.padding, E = w.height + S.padding, D = [
2464
+ {
2465
+ x: 2 * E / 6,
2466
+ y: 0
2467
+ },
2468
+ {
2469
+ x: T + E / 6,
2470
+ y: 0
2471
+ },
2472
+ {
2473
+ x: T - 2 * E / 6,
2474
+ y: -E
2475
+ },
2476
+ {
2477
+ x: -E / 6,
2478
+ y: -E
2479
+ }
2480
+ ], O = insertPolygonShape(C, T, E, D);
2481
+ return O.attr("style", S.style), updateNodeBounds(S, O), S.intersect = function(e) {
2482
+ return intersect_default.polygon(S, D, e);
2483
+ }, C;
2484
+ }, "lean_left"), trapezoid = /* @__PURE__ */ __name(async (e, S) => {
2485
+ let { shapeSvg: C, bbox: w } = await labelHelper(e, S, getClassesFromNode(S, void 0), !0), T = w.width + S.padding, E = w.height + S.padding, D = [
2486
+ {
2487
+ x: -2 * E / 6,
2488
+ y: 0
2489
+ },
2490
+ {
2491
+ x: T + 2 * E / 6,
2492
+ y: 0
2493
+ },
2494
+ {
2495
+ x: T - E / 6,
2496
+ y: -E
2497
+ },
2498
+ {
2499
+ x: E / 6,
2500
+ y: -E
2501
+ }
2502
+ ], O = insertPolygonShape(C, T, E, D);
2503
+ return O.attr("style", S.style), updateNodeBounds(S, O), S.intersect = function(e) {
2504
+ return intersect_default.polygon(S, D, e);
2505
+ }, C;
2506
+ }, "trapezoid"), inv_trapezoid = /* @__PURE__ */ __name(async (e, S) => {
2507
+ let { shapeSvg: C, bbox: w } = await labelHelper(e, S, getClassesFromNode(S, void 0), !0), T = w.width + S.padding, E = w.height + S.padding, D = [
2508
+ {
2509
+ x: E / 6,
2510
+ y: 0
2511
+ },
2512
+ {
2513
+ x: T - E / 6,
2514
+ y: 0
2515
+ },
2516
+ {
2517
+ x: T + 2 * E / 6,
2518
+ y: -E
2519
+ },
2520
+ {
2521
+ x: -2 * E / 6,
2522
+ y: -E
2523
+ }
2524
+ ], O = insertPolygonShape(C, T, E, D);
2525
+ return O.attr("style", S.style), updateNodeBounds(S, O), S.intersect = function(e) {
2526
+ return intersect_default.polygon(S, D, e);
2527
+ }, C;
2528
+ }, "inv_trapezoid"), rect_right_inv_arrow = /* @__PURE__ */ __name(async (e, S) => {
2529
+ let { shapeSvg: C, bbox: w } = await labelHelper(e, S, getClassesFromNode(S, void 0), !0), T = w.width + S.padding, E = w.height + S.padding, D = [
2530
+ {
2531
+ x: 0,
2532
+ y: 0
2533
+ },
2534
+ {
2535
+ x: T + E / 2,
2536
+ y: 0
2537
+ },
2538
+ {
2539
+ x: T,
2540
+ y: -E / 2
2541
+ },
2542
+ {
2543
+ x: T + E / 2,
2544
+ y: -E
2545
+ },
2546
+ {
2547
+ x: 0,
2548
+ y: -E
2549
+ }
2550
+ ], O = insertPolygonShape(C, T, E, D);
2551
+ return O.attr("style", S.style), updateNodeBounds(S, O), S.intersect = function(e) {
2552
+ return intersect_default.polygon(S, D, e);
2553
+ }, C;
2554
+ }, "rect_right_inv_arrow"), cylinder = /* @__PURE__ */ __name(async (e, S) => {
2555
+ let { shapeSvg: C, bbox: w } = await labelHelper(e, S, getClassesFromNode(S, void 0), !0), T = w.width + S.padding, E = T / 2, D = E / (2.5 + T / 50), O = w.height + D + S.padding, k = "M 0," + D + " a " + E + "," + D + " 0,0,0 " + T + " 0 a " + E + "," + D + " 0,0,0 " + -T + " 0 l 0," + O + " a " + E + "," + D + " 0,0,0 " + T + " 0 l 0," + -O;
2556
+ return updateNodeBounds(S, C.attr("label-offset-y", D).insert("path", ":first-child").attr("style", S.style).attr("d", k).attr("transform", "translate(" + -T / 2 + "," + -(O / 2 + D) + ")")), S.intersect = function(e) {
2557
+ let C = intersect_default.rect(S, e), w = C.x - S.x;
2558
+ if (E != 0 && (Math.abs(w) < S.width / 2 || Math.abs(w) == S.width / 2 && Math.abs(C.y - S.y) > S.height / 2 - D)) {
2559
+ let T = D * D * (1 - w * w / (E * E));
2560
+ T != 0 && (T = Math.sqrt(T)), T = D - T, e.y - S.y > 0 && (T = -T), C.y += T;
2561
+ }
2562
+ return C;
2563
+ }, C;
2564
+ }, "cylinder"), rect = /* @__PURE__ */ __name(async (S, C) => {
2565
+ let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(S, C, "node " + C.classes + " " + C.class, !0), D = w.insert("rect", ":first-child"), O = C.positioned ? C.width : T.width + C.padding, k = C.positioned ? C.height : T.height + C.padding, A = C.positioned ? -O / 2 : -T.width / 2 - E, j = C.positioned ? -k / 2 : -T.height / 2 - E;
2566
+ if (D.attr("class", "basic label-container").attr("style", C.style).attr("rx", C.rx).attr("ry", C.ry).attr("x", A).attr("y", j).attr("width", O).attr("height", k), C.props) {
2567
+ let S = new Set(Object.keys(C.props));
2568
+ C.props.borders && (applyNodePropertyBorders(D, C.props.borders, O, k), S.delete("borders")), S.forEach((S) => {
2569
+ log.warn(`Unknown node property ${S}`);
2570
+ });
2571
+ }
2572
+ return updateNodeBounds(C, D), C.intersect = function(e) {
2573
+ return intersect_default.rect(C, e);
2574
+ }, w;
2575
+ }, "rect"), composite = /* @__PURE__ */ __name(async (S, C) => {
2576
+ let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(S, C, "node " + C.classes, !0), D = w.insert("rect", ":first-child"), O = C.positioned ? C.width : T.width + C.padding, k = C.positioned ? C.height : T.height + C.padding, A = C.positioned ? -O / 2 : -T.width / 2 - E, j = C.positioned ? -k / 2 : -T.height / 2 - E;
2577
+ if (D.attr("class", "basic cluster composite label-container").attr("style", C.style).attr("rx", C.rx).attr("ry", C.ry).attr("x", A).attr("y", j).attr("width", O).attr("height", k), C.props) {
2578
+ let S = new Set(Object.keys(C.props));
2579
+ C.props.borders && (applyNodePropertyBorders(D, C.props.borders, O, k), S.delete("borders")), S.forEach((S) => {
2580
+ log.warn(`Unknown node property ${S}`);
2581
+ });
2582
+ }
2583
+ return updateNodeBounds(C, D), C.intersect = function(e) {
2584
+ return intersect_default.rect(C, e);
2585
+ }, w;
2586
+ }, "composite"), labelRect = /* @__PURE__ */ __name(async (S, C) => {
2587
+ let { shapeSvg: w } = await labelHelper(S, C, "label", !0);
2588
+ log.trace("Classes = ", C.class);
2589
+ let T = w.insert("rect", ":first-child");
2590
+ if (T.attr("width", 0).attr("height", 0), w.attr("class", "label edgeLabel"), C.props) {
2591
+ let S = new Set(Object.keys(C.props));
2592
+ C.props.borders && (applyNodePropertyBorders(T, C.props.borders, 0, 0), S.delete("borders")), S.forEach((S) => {
2593
+ log.warn(`Unknown node property ${S}`);
2594
+ });
2595
+ }
2596
+ return updateNodeBounds(C, T), C.intersect = function(e) {
2597
+ return intersect_default.rect(C, e);
2598
+ }, w;
2599
+ }, "labelRect");
2600
+ function applyNodePropertyBorders(C, w, T, E) {
2601
+ let D = [], O = /* @__PURE__ */ __name((e) => {
2602
+ D.push(e, 0);
2603
+ }, "addBorder"), k = /* @__PURE__ */ __name((e) => {
2604
+ D.push(0, e);
2605
+ }, "skipBorder");
2606
+ w.includes("t") ? (log.debug("add top border"), O(T)) : k(T), w.includes("r") ? (log.debug("add right border"), O(E)) : k(E), w.includes("b") ? (log.debug("add bottom border"), O(T)) : k(T), w.includes("l") ? (log.debug("add left border"), O(E)) : k(E), C.attr("stroke-dasharray", D.join(" "));
2607
+ }
2608
+ __name(applyNodePropertyBorders, "applyNodePropertyBorders");
2609
+ var rectWithTitle = /* @__PURE__ */ __name(async (S, w) => {
2610
+ let T;
2611
+ T = w.classes ? "node " + w.classes : "node default";
2612
+ let E = S.insert("g").attr("class", T).attr("id", w.domId || w.id), D = E.insert("rect", ":first-child"), k = E.insert("line"), j = E.insert("g").attr("class", "label"), M = w.labelText.flat ? w.labelText.flat() : w.labelText, N = "";
2613
+ N = typeof M == "object" ? M[0] : M, log.info("Label text abc79", N, M, typeof M == "object");
2614
+ let P = j.node().appendChild(await createLabel_default(N, w.labelStyle, !0, !0)), F = {
2615
+ width: 0,
2616
+ height: 0
2617
+ };
2618
+ if (evaluate(getConfig2().flowchart.htmlLabels)) {
2619
+ let e = P.children[0], S = select_default(P);
2620
+ F = e.getBoundingClientRect(), S.attr("width", F.width), S.attr("height", F.height);
2621
+ }
2622
+ log.info("Text 2", M);
2623
+ let I = M.slice(1, M.length), L = P.getBBox(), R = j.node().appendChild(await createLabel_default(I.join ? I.join("<br/>") : I, w.labelStyle, !0, !0));
2624
+ if (evaluate(getConfig2().flowchart.htmlLabels)) {
2625
+ let e = R.children[0], S = select_default(R);
2626
+ F = e.getBoundingClientRect(), S.attr("width", F.width), S.attr("height", F.height);
2627
+ }
2628
+ let z = w.padding / 2;
2629
+ return select_default(R).attr("transform", "translate( " + (F.width > L.width ? 0 : (L.width - F.width) / 2) + ", " + (L.height + z + 5) + ")"), select_default(P).attr("transform", "translate( " + (F.width < L.width ? 0 : -(L.width - F.width) / 2) + ", 0)"), F = j.node().getBBox(), j.attr("transform", "translate(" + -F.width / 2 + ", " + (-F.height / 2 - z + 3) + ")"), D.attr("class", "outer title-state").attr("x", -F.width / 2 - z).attr("y", -F.height / 2 - z).attr("width", F.width + w.padding).attr("height", F.height + w.padding), k.attr("class", "divider").attr("x1", -F.width / 2 - z).attr("x2", F.width / 2 + z).attr("y1", -F.height / 2 - z + L.height + z).attr("y2", -F.height / 2 - z + L.height + z), updateNodeBounds(w, D), w.intersect = function(e) {
2630
+ return intersect_default.rect(w, e);
2631
+ }, E;
2632
+ }, "rectWithTitle"), stadium = /* @__PURE__ */ __name(async (e, S) => {
2633
+ let { shapeSvg: C, bbox: w } = await labelHelper(e, S, getClassesFromNode(S, void 0), !0), T = w.height + S.padding, E = w.width + T / 4 + S.padding;
2634
+ return updateNodeBounds(S, C.insert("rect", ":first-child").attr("style", S.style).attr("rx", T / 2).attr("ry", T / 2).attr("x", -E / 2).attr("y", -T / 2).attr("width", E).attr("height", T)), S.intersect = function(e) {
2635
+ return intersect_default.rect(S, e);
2636
+ }, C;
2637
+ }, "stadium"), circle2 = /* @__PURE__ */ __name(async (S, C) => {
2638
+ let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(S, C, getClassesFromNode(C, void 0), !0), D = w.insert("circle", ":first-child");
2639
+ return D.attr("style", C.style).attr("rx", C.rx).attr("ry", C.ry).attr("r", T.width / 2 + E).attr("width", T.width + C.padding).attr("height", T.height + C.padding), log.info("Circle main"), updateNodeBounds(C, D), C.intersect = function(S) {
2640
+ return log.info("Circle intersect", C, T.width / 2 + E, S), intersect_default.circle(C, T.width / 2 + E, S);
2641
+ }, w;
2642
+ }, "circle"), doublecircle = /* @__PURE__ */ __name(async (S, C) => {
2643
+ let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(S, C, getClassesFromNode(C, void 0), !0), D = w.insert("g", ":first-child"), O = D.insert("circle"), k = D.insert("circle");
2644
+ return D.attr("class", C.class), O.attr("style", C.style).attr("rx", C.rx).attr("ry", C.ry).attr("r", T.width / 2 + E + 5).attr("width", T.width + C.padding + 10).attr("height", T.height + C.padding + 10), k.attr("style", C.style).attr("rx", C.rx).attr("ry", C.ry).attr("r", T.width / 2 + E).attr("width", T.width + C.padding).attr("height", T.height + C.padding), log.info("DoubleCircle main"), updateNodeBounds(C, O), C.intersect = function(S) {
2645
+ return log.info("DoubleCircle intersect", C, T.width / 2 + E + 5, S), intersect_default.circle(C, T.width / 2 + E + 5, S);
2646
+ }, w;
2647
+ }, "doublecircle"), subroutine = /* @__PURE__ */ __name(async (e, S) => {
2648
+ let { shapeSvg: C, bbox: w } = await labelHelper(e, S, getClassesFromNode(S, void 0), !0), T = w.width + S.padding, E = w.height + S.padding, D = [
2649
+ {
2650
+ x: 0,
2651
+ y: 0
2652
+ },
2653
+ {
2654
+ x: T,
2655
+ y: 0
2656
+ },
2657
+ {
2658
+ x: T,
2659
+ y: -E
2660
+ },
2661
+ {
2662
+ x: 0,
2663
+ y: -E
2664
+ },
2665
+ {
2666
+ x: 0,
2667
+ y: 0
2668
+ },
2669
+ {
2670
+ x: -8,
2671
+ y: 0
2672
+ },
2673
+ {
2674
+ x: T + 8,
2675
+ y: 0
2676
+ },
2677
+ {
2678
+ x: T + 8,
2679
+ y: -E
2680
+ },
2681
+ {
2682
+ x: -8,
2683
+ y: -E
2684
+ },
2685
+ {
2686
+ x: -8,
2687
+ y: 0
2688
+ }
2689
+ ], O = insertPolygonShape(C, T, E, D);
2690
+ return O.attr("style", S.style), updateNodeBounds(S, O), S.intersect = function(e) {
2691
+ return intersect_default.polygon(S, D, e);
2692
+ }, C;
2693
+ }, "subroutine"), start = /* @__PURE__ */ __name((e, S) => {
2694
+ let C = e.insert("g").attr("class", "node default").attr("id", S.domId || S.id), w = C.insert("circle", ":first-child");
2695
+ return w.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14), updateNodeBounds(S, w), S.intersect = function(e) {
2696
+ return intersect_default.circle(S, 7, e);
2697
+ }, C;
2698
+ }, "start"), forkJoin = /* @__PURE__ */ __name((e, S, C) => {
2699
+ let w = e.insert("g").attr("class", "node default").attr("id", S.domId || S.id), T = 70, E = 10;
2700
+ return C === "LR" && (T = 10, E = 70), updateNodeBounds(S, w.append("rect").attr("x", -1 * T / 2).attr("y", -1 * E / 2).attr("width", T).attr("height", E).attr("class", "fork-join")), S.height += S.padding / 2, S.width += S.padding / 2, S.intersect = function(e) {
2701
+ return intersect_default.rect(S, e);
2702
+ }, w;
2703
+ }, "forkJoin"), shapes = {
2704
+ rhombus: question,
2705
+ composite,
2706
+ question,
2707
+ rect,
2708
+ labelRect,
2709
+ rectWithTitle,
2710
+ choice,
2711
+ circle: circle2,
2712
+ doublecircle,
2713
+ stadium,
2714
+ hexagon,
2715
+ block_arrow,
2716
+ rect_left_inv_arrow,
2717
+ lean_right,
2718
+ lean_left,
2719
+ trapezoid,
2720
+ inv_trapezoid,
2721
+ rect_right_inv_arrow,
2722
+ cylinder,
2723
+ start,
2724
+ end: /* @__PURE__ */ __name((e, S) => {
2725
+ let C = e.insert("g").attr("class", "node default").attr("id", S.domId || S.id), w = C.insert("circle", ":first-child"), T = C.insert("circle", ":first-child");
2726
+ return T.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14), w.attr("class", "state-end").attr("r", 5).attr("width", 10).attr("height", 10), updateNodeBounds(S, T), S.intersect = function(e) {
2727
+ return intersect_default.circle(S, 7, e);
2728
+ }, C;
2729
+ }, "end"),
2730
+ note: note_default,
2731
+ subroutine,
2732
+ fork: forkJoin,
2733
+ join: forkJoin,
2734
+ class_box: /* @__PURE__ */ __name(async (e, S) => {
2735
+ let w = S.padding / 2, T;
2736
+ T = S.classes ? "node " + S.classes : "node default";
2737
+ let E = e.insert("g").attr("class", T).attr("id", S.domId || S.id), D = E.insert("rect", ":first-child"), k = E.insert("line"), j = E.insert("line"), M = 0, N = 4, P = E.insert("g").attr("class", "label"), F = 0, I = S.classData.annotations?.[0], L = S.classData.annotations[0] ? "«" + S.classData.annotations[0] + "»" : "", R = P.node().appendChild(await createLabel_default(L, S.labelStyle, !0, !0)), z = R.getBBox();
2738
+ if (evaluate(getConfig2().flowchart.htmlLabels)) {
2739
+ let e = R.children[0], S = select_default(R);
2740
+ z = e.getBoundingClientRect(), S.attr("width", z.width), S.attr("height", z.height);
2741
+ }
2742
+ S.classData.annotations[0] && (N += z.height + 4, M += z.width);
2743
+ let B = S.classData.label;
2744
+ S.classData.type !== void 0 && S.classData.type !== "" && (getConfig2().flowchart.htmlLabels ? B += "&lt;" + S.classData.type + "&gt;" : B += "<" + S.classData.type + ">");
2745
+ let V = P.node().appendChild(await createLabel_default(B, S.labelStyle, !0, !0));
2746
+ select_default(V).attr("class", "classTitle");
2747
+ let H = V.getBBox();
2748
+ if (evaluate(getConfig2().flowchart.htmlLabels)) {
2749
+ let e = V.children[0], S = select_default(V);
2750
+ H = e.getBoundingClientRect(), S.attr("width", H.width), S.attr("height", H.height);
2751
+ }
2752
+ N += H.height + 4, H.width > M && (M = H.width);
2753
+ let U = [];
2754
+ S.classData.members.forEach(async (e) => {
2755
+ let w = e.getDisplayDetails(), T = w.displayText;
2756
+ getConfig2().flowchart.htmlLabels && (T = T.replace(/</g, "&lt;").replace(/>/g, "&gt;"));
2757
+ let E = P.node().appendChild(await createLabel_default(T, w.cssStyle ? w.cssStyle : S.labelStyle, !0, !0)), D = E.getBBox();
2758
+ if (evaluate(getConfig2().flowchart.htmlLabels)) {
2759
+ let e = E.children[0], S = select_default(E);
2760
+ D = e.getBoundingClientRect(), S.attr("width", D.width), S.attr("height", D.height);
2761
+ }
2762
+ D.width > M && (M = D.width), N += D.height + 4, U.push(E);
2763
+ }), N += 8;
2764
+ let W = [];
2765
+ if (S.classData.methods.forEach(async (e) => {
2766
+ let w = e.getDisplayDetails(), T = w.displayText;
2767
+ getConfig2().flowchart.htmlLabels && (T = T.replace(/</g, "&lt;").replace(/>/g, "&gt;"));
2768
+ let E = P.node().appendChild(await createLabel_default(T, w.cssStyle ? w.cssStyle : S.labelStyle, !0, !0)), D = E.getBBox();
2769
+ if (evaluate(getConfig2().flowchart.htmlLabels)) {
2770
+ let e = E.children[0], S = select_default(E);
2771
+ D = e.getBoundingClientRect(), S.attr("width", D.width), S.attr("height", D.height);
2772
+ }
2773
+ D.width > M && (M = D.width), N += D.height + 4, W.push(E);
2774
+ }), N += 8, I) {
2775
+ let e = (M - z.width) / 2;
2776
+ select_default(R).attr("transform", "translate( " + (-1 * M / 2 + e) + ", " + -1 * N / 2 + ")"), F = z.height + 4;
2777
+ }
2778
+ let G = (M - H.width) / 2;
2779
+ return select_default(V).attr("transform", "translate( " + (-1 * M / 2 + G) + ", " + (-1 * N / 2 + F) + ")"), F += H.height + 4, k.attr("class", "divider").attr("x1", -M / 2 - w).attr("x2", M / 2 + w).attr("y1", -N / 2 - w + 8 + F).attr("y2", -N / 2 - w + 8 + F), F += 8, U.forEach((e) => {
2780
+ select_default(e).attr("transform", "translate( " + -M / 2 + ", " + (-1 * N / 2 + F + 8 / 2) + ")");
2781
+ let S = e?.getBBox();
2782
+ F += (S?.height ?? 0) + 4;
2783
+ }), F += 8, j.attr("class", "divider").attr("x1", -M / 2 - w).attr("x2", M / 2 + w).attr("y1", -N / 2 - w + 8 + F).attr("y2", -N / 2 - w + 8 + F), F += 8, W.forEach((e) => {
2784
+ select_default(e).attr("transform", "translate( " + -M / 2 + ", " + (-1 * N / 2 + F) + ")");
2785
+ let S = e?.getBBox();
2786
+ F += (S?.height ?? 0) + 4;
2787
+ }), D.attr("style", S.style).attr("class", "outer title-state").attr("x", -M / 2 - w).attr("y", -(N / 2) - w).attr("width", M + S.padding).attr("height", N + S.padding), updateNodeBounds(S, D), S.intersect = function(e) {
2788
+ return intersect_default.rect(S, e);
2789
+ }, E;
2790
+ }, "class_box")
2791
+ }, nodeElems = {}, insertNode = /* @__PURE__ */ __name(async (e, S, C) => {
2792
+ let w, T;
2793
+ if (S.link) {
2794
+ let E;
2795
+ getConfig2().securityLevel === "sandbox" ? E = "_top" : S.linkTarget && (E = S.linkTarget || "_blank"), w = e.insert("svg:a").attr("xlink:href", S.link).attr("target", E), T = await shapes[S.shape](w, S, C);
2796
+ } else T = await shapes[S.shape](e, S, C), w = T;
2797
+ return S.tooltip && T.attr("title", S.tooltip), S.class && T.attr("class", "node default " + S.class), nodeElems[S.id] = w, S.haveCallback && nodeElems[S.id].attr("class", nodeElems[S.id].attr("class") + " clickable"), w;
2798
+ }, "insertNode"), positionNode = /* @__PURE__ */ __name((S) => {
2799
+ let C = nodeElems[S.id];
2800
+ log.trace("Transforming node", S.diff, S, "translate(" + (S.x - S.width / 2 - 5) + ", " + S.width / 2 + ")");
2801
+ let w = S.diff || 0;
2802
+ return S.clusterNode ? C.attr("transform", "translate(" + (S.x + w - S.width / 2) + ", " + (S.y - S.height / 2 - 8) + ")") : C.attr("transform", "translate(" + S.x + ", " + S.y + ")"), w;
2803
+ }, "positionNode");
2804
+ function getNodeFromBlock(e, S, C = !1) {
2805
+ let w = e, T = "default";
2806
+ (w?.classes?.length || 0) > 0 && (T = (w?.classes ?? []).join(" ")), T += " flowchart-label";
2807
+ let E = 0, D = "", O;
2808
+ switch (w.type) {
2809
+ case "round":
2810
+ E = 5, D = "rect";
2811
+ break;
2812
+ case "composite":
2813
+ E = 0, D = "composite", O = 0;
2814
+ break;
2815
+ case "square":
2816
+ D = "rect";
2817
+ break;
2818
+ case "diamond":
2819
+ D = "question";
2820
+ break;
2821
+ case "hexagon":
2822
+ D = "hexagon";
2823
+ break;
2824
+ case "block_arrow":
2825
+ D = "block_arrow";
2826
+ break;
2827
+ case "odd":
2828
+ D = "rect_left_inv_arrow";
2829
+ break;
2830
+ case "lean_right":
2831
+ D = "lean_right";
2832
+ break;
2833
+ case "lean_left":
2834
+ D = "lean_left";
2835
+ break;
2836
+ case "trapezoid":
2837
+ D = "trapezoid";
2838
+ break;
2839
+ case "inv_trapezoid":
2840
+ D = "inv_trapezoid";
2841
+ break;
2842
+ case "rect_left_inv_arrow":
2843
+ D = "rect_left_inv_arrow";
2844
+ break;
2845
+ case "circle":
2846
+ D = "circle";
2847
+ break;
2848
+ case "ellipse":
2849
+ D = "ellipse";
2850
+ break;
2851
+ case "stadium":
2852
+ D = "stadium";
2853
+ break;
2854
+ case "subroutine":
2855
+ D = "subroutine";
2856
+ break;
2857
+ case "cylinder":
2858
+ D = "cylinder";
2859
+ break;
2860
+ case "group":
2861
+ D = "rect";
2862
+ break;
2863
+ case "doublecircle":
2864
+ D = "doublecircle";
2865
+ break;
2866
+ default: D = "rect";
2867
+ }
2868
+ let k = getStylesFromArray(w?.styles ?? []), A = w.label, j = w.size ?? {
2869
+ width: 0,
2870
+ height: 0,
2871
+ x: 0,
2872
+ y: 0
2873
+ };
2874
+ return {
2875
+ labelStyle: k.labelStyle,
2876
+ shape: D,
2877
+ labelText: A,
2878
+ rx: E,
2879
+ ry: E,
2880
+ class: T,
2881
+ style: k.style,
2882
+ id: w.id,
2883
+ directions: w.directions,
2884
+ width: j.width,
2885
+ height: j.height,
2886
+ x: j.x,
2887
+ y: j.y,
2888
+ positioned: C,
2889
+ intersect: void 0,
2890
+ type: w.type,
2891
+ padding: O ?? getConfig()?.block?.padding ?? 0
2892
+ };
2893
+ }
2894
+ __name(getNodeFromBlock, "getNodeFromBlock");
2895
+ async function calculateBlockSize(e, S, C) {
2896
+ let w = getNodeFromBlock(S, C, !1);
2897
+ if (w.type === "group") return;
2898
+ let T = await insertNode(e, w, { config: getConfig() }), E = T.node().getBBox(), D = C.getBlock(w.id);
2899
+ D.size = {
2900
+ width: E.width,
2901
+ height: E.height,
2902
+ x: 0,
2903
+ y: 0,
2904
+ node: T
2905
+ }, C.setBlock(D), T.remove();
2906
+ }
2907
+ __name(calculateBlockSize, "calculateBlockSize");
2908
+ async function insertBlockPositioned(e, S, C) {
2909
+ let w = getNodeFromBlock(S, C, !0);
2910
+ C.getBlock(w.id).type !== "space" && (await insertNode(e, w, { config: getConfig() }), S.intersect = w?.intersect, positionNode(w));
2911
+ }
2912
+ __name(insertBlockPositioned, "insertBlockPositioned");
2913
+ async function performOperations(e, S, C, w) {
2914
+ for (let T of S) await w(e, T, C), T.children && await performOperations(e, T.children, C, w);
2915
+ }
2916
+ __name(performOperations, "performOperations");
2917
+ async function calculateBlockSizes(e, S, C) {
2918
+ await performOperations(e, S, C, calculateBlockSize);
2919
+ }
2920
+ __name(calculateBlockSizes, "calculateBlockSizes");
2921
+ async function insertBlocks(e, S, C) {
2922
+ await performOperations(e, S, C, insertBlockPositioned);
2923
+ }
2924
+ __name(insertBlocks, "insertBlocks");
2925
+ async function insertEdges(e, S, C, w, T) {
2926
+ let E = new Graph({
2927
+ multigraph: !0,
2928
+ compound: !0
2929
+ });
2930
+ E.setGraph({
2931
+ rankdir: "TB",
2932
+ nodesep: 10,
2933
+ ranksep: 10,
2934
+ marginx: 8,
2935
+ marginy: 8
2936
+ });
2937
+ for (let e of C) e.size && E.setNode(e.id, {
2938
+ width: e.size.width,
2939
+ height: e.size.height,
2940
+ intersect: e.intersect
2941
+ });
2942
+ for (let C of S) if (C.start && C.end) {
2943
+ let S = w.getBlock(C.start), D = w.getBlock(C.end);
2944
+ if (S?.size && D?.size) {
2945
+ let w = S.size, O = D.size, k = [
2946
+ {
2947
+ x: w.x,
2948
+ y: w.y
2949
+ },
2950
+ {
2951
+ x: w.x + (O.x - w.x) / 2,
2952
+ y: w.y + (O.y - w.y) / 2
2953
+ },
2954
+ {
2955
+ x: O.x,
2956
+ y: O.y
2957
+ }
2958
+ ];
2959
+ insertEdge(e, {
2960
+ v: C.start,
2961
+ w: C.end,
2962
+ name: C.id
2963
+ }, {
2964
+ ...C,
2965
+ arrowTypeEnd: C.arrowTypeEnd,
2966
+ arrowTypeStart: C.arrowTypeStart,
2967
+ points: k,
2968
+ classes: "edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"
2969
+ }, void 0, "block", E, T), C.label && (await insertEdgeLabel(e, {
2970
+ ...C,
2971
+ label: C.label,
2972
+ labelStyle: "stroke: #333; stroke-width: 1.5px;fill:none;",
2973
+ arrowTypeEnd: C.arrowTypeEnd,
2974
+ arrowTypeStart: C.arrowTypeStart,
2975
+ points: k,
2976
+ classes: "edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"
2977
+ }), positionEdgeLabel({
2978
+ ...C,
2979
+ x: k[1].x,
2980
+ y: k[1].y
2981
+ }, { originalPath: k }));
2982
+ }
2983
+ }
2984
+ }
2985
+ __name(insertEdges, "insertEdges");
2986
+ var diagram = {
2987
+ parser: block_default,
2988
+ db: blockDB_default,
2989
+ renderer: {
2990
+ draw: /* @__PURE__ */ __name(async function(S, w, T, E) {
2991
+ let { securityLevel: D, block: O } = getConfig(), A = E.db, j;
2992
+ D === "sandbox" && (j = select_default("#i" + w));
2993
+ let N = select_default(D === "sandbox" ? j.nodes()[0].contentDocument.body : "body"), P = D === "sandbox" ? N.select(`[id="${w}"]`) : select_default(`[id="${w}"]`);
2994
+ markers_default(P, [
2995
+ "point",
2996
+ "circle",
2997
+ "cross"
2998
+ ], E.type, w);
2999
+ let F = A.getBlocks(), I = A.getBlocksFlat(), L = A.getEdges(), R = P.insert("g").attr("class", "block");
3000
+ await calculateBlockSizes(R, F, A);
3001
+ let z = layout(A);
3002
+ if (await insertBlocks(R, F, A), await insertEdges(R, L, I, A, w), z) {
3003
+ let S = z, C = Math.max(1, Math.round(.125 * (S.width / S.height))), w = S.height + C + 10, T = S.width + 10, { useMaxWidth: E } = O;
3004
+ configureSvgSize(P, w, T, !!E), log.debug("Here Bounds", z, S), P.attr("viewBox", `${S.x - 5} ${S.y - 5} ${S.width + 10} ${S.height + 10}`);
3005
+ }
3006
+ }, "draw"),
3007
+ getClasses: /* @__PURE__ */ __name(function(e, S) {
3008
+ return S.db.getClasses();
3009
+ }, "getClasses")
3010
+ },
3011
+ styles: styles_default
3012
+ };
3013
+ export { diagram };