@ours.network/messenger-server 1.0.26 → 1.0.27

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 (129) hide show
  1. package/dist/chunks/{chunk-MEQ5E356.js → chunk-57ATYRSM.js} +1 -1
  2. package/dist/chunks/{server-5BGVFYYE.js → server-4AGPXARB.js} +1 -1
  3. package/dist/cli.js +2 -2
  4. package/dist/web/assets/{abnfDiagram-N423BO3Z-bqnK4YOC.js → abnfDiagram-N423BO3Z-BwZpfEGF.js} +2 -2
  5. package/dist/web/assets/{abnfDiagram-N423BO3Z-bqnK4YOC.js.map → abnfDiagram-N423BO3Z-BwZpfEGF.js.map} +1 -1
  6. package/dist/web/assets/{arc-DjGIt3BG.js → arc-BFaE218e.js} +2 -2
  7. package/dist/web/assets/{arc-DjGIt3BG.js.map → arc-BFaE218e.js.map} +1 -1
  8. package/dist/web/assets/{architectureDiagram-T3A2C74G-I4gVGUSn.js → architectureDiagram-T3A2C74G-C5THhoig.js} +2 -2
  9. package/dist/web/assets/{architectureDiagram-T3A2C74G-I4gVGUSn.js.map → architectureDiagram-T3A2C74G-C5THhoig.js.map} +1 -1
  10. package/dist/web/assets/{blockDiagram-VBNYF7ZC-B0VmVirY.js → blockDiagram-VBNYF7ZC-DnCtG56-.js} +2 -2
  11. package/dist/web/assets/{blockDiagram-VBNYF7ZC-B0VmVirY.js.map → blockDiagram-VBNYF7ZC-DnCtG56-.js.map} +1 -1
  12. package/dist/web/assets/{browser-DThvWPee.js → browser-ByIBVK5q.js} +2 -2
  13. package/dist/web/assets/{browser-DThvWPee.js.map → browser-ByIBVK5q.js.map} +1 -1
  14. package/dist/web/assets/{c4Diagram-5PPSVZJV-Dj0yWM90.js → c4Diagram-5PPSVZJV-DwQkOksn.js} +2 -2
  15. package/dist/web/assets/{c4Diagram-5PPSVZJV-Dj0yWM90.js.map → c4Diagram-5PPSVZJV-DwQkOksn.js.map} +1 -1
  16. package/dist/web/assets/channel-CeQIUqXs.js +2 -0
  17. package/dist/web/assets/{channel-qDsnjLTa.js.map → channel-CeQIUqXs.js.map} +1 -1
  18. package/dist/web/assets/{chunk-2GRJ4B5K-BvcZvduT.js → chunk-2GRJ4B5K-BC7cfF0z.js} +2 -2
  19. package/dist/web/assets/{chunk-2GRJ4B5K-BvcZvduT.js.map → chunk-2GRJ4B5K-BC7cfF0z.js.map} +1 -1
  20. package/dist/web/assets/{chunk-2Q5K7J3B-sve7p0NV.js → chunk-2Q5K7J3B-DSl8ovDM.js} +2 -2
  21. package/dist/web/assets/{chunk-2Q5K7J3B-sve7p0NV.js.map → chunk-2Q5K7J3B-DSl8ovDM.js.map} +1 -1
  22. package/dist/web/assets/{chunk-5RXB4S5H-CkAR-zTz.js → chunk-5RXB4S5H-DEuB2ZNu.js} +2 -2
  23. package/dist/web/assets/{chunk-5RXB4S5H-CkAR-zTz.js.map → chunk-5RXB4S5H-DEuB2ZNu.js.map} +1 -1
  24. package/dist/web/assets/{chunk-5VM5RSS4-Ch1WCith.js → chunk-5VM5RSS4-G2C_wvpZ.js} +2 -2
  25. package/dist/web/assets/{chunk-5VM5RSS4-Ch1WCith.js.map → chunk-5VM5RSS4-G2C_wvpZ.js.map} +1 -1
  26. package/dist/web/assets/{chunk-6Q2QTUOP-C4-zGQ3z.js → chunk-6Q2QTUOP-n48Dn6tF.js} +2 -2
  27. package/dist/web/assets/{chunk-6Q2QTUOP-C4-zGQ3z.js.map → chunk-6Q2QTUOP-n48Dn6tF.js.map} +1 -1
  28. package/dist/web/assets/{chunk-GF5L2VYU-CzZYOdx6.js → chunk-GF5L2VYU-0cDRfE0v.js} +2 -2
  29. package/dist/web/assets/{chunk-GF5L2VYU-CzZYOdx6.js.map → chunk-GF5L2VYU-0cDRfE0v.js.map} +1 -1
  30. package/dist/web/assets/{chunk-JWPE2WC7-DO9iwi6J.js → chunk-JWPE2WC7-B-sIaUe_.js} +2 -2
  31. package/dist/web/assets/{chunk-JWPE2WC7-DO9iwi6J.js.map → chunk-JWPE2WC7-B-sIaUe_.js.map} +1 -1
  32. package/dist/web/assets/{chunk-KBJHAD2P-BPPtvPBo.js → chunk-KBJHAD2P-CJdfxI0W.js} +2 -2
  33. package/dist/web/assets/{chunk-KBJHAD2P-BPPtvPBo.js.map → chunk-KBJHAD2P-CJdfxI0W.js.map} +1 -1
  34. package/dist/web/assets/{chunk-RYQCIY6F-CkfxakyT.js → chunk-RYQCIY6F-B-bC01qp.js} +2 -2
  35. package/dist/web/assets/{chunk-RYQCIY6F-CkfxakyT.js.map → chunk-RYQCIY6F-B-bC01qp.js.map} +1 -1
  36. package/dist/web/assets/{chunk-XXDRQBXY-C5cYxQrY.js → chunk-XXDRQBXY-B2zsroXX.js} +2 -2
  37. package/dist/web/assets/{chunk-XXDRQBXY-C5cYxQrY.js.map → chunk-XXDRQBXY-B2zsroXX.js.map} +1 -1
  38. package/dist/web/assets/classDiagram-JCYQIIEL-CkjBLoHE.js +2 -0
  39. package/dist/web/assets/{classDiagram-JCYQIIEL-D6QSunf-.js.map → classDiagram-JCYQIIEL-CkjBLoHE.js.map} +1 -1
  40. package/dist/web/assets/classDiagram-v2-OCEON4UE-CkjBLoHE.js +2 -0
  41. package/dist/web/assets/{classDiagram-v2-OCEON4UE-D6QSunf-.js.map → classDiagram-v2-OCEON4UE-CkjBLoHE.js.map} +1 -1
  42. package/dist/web/assets/{cose-bilkent-JH36ORCC-CDS01wHW.js → cose-bilkent-JH36ORCC-DDphJuHu.js} +2 -2
  43. package/dist/web/assets/{cose-bilkent-JH36ORCC-CDS01wHW.js.map → cose-bilkent-JH36ORCC-DDphJuHu.js.map} +1 -1
  44. package/dist/web/assets/{cynefin-VYW2F7L2-Bs1x5Hdp.js → cynefin-VYW2F7L2-BoKcfef3.js} +2 -2
  45. package/dist/web/assets/{cynefin-VYW2F7L2-Bs1x5Hdp.js.map → cynefin-VYW2F7L2-BoKcfef3.js.map} +1 -1
  46. package/dist/web/assets/{cynefinDiagram-MW4NZA55-BdK-Gc8j.js → cynefinDiagram-MW4NZA55-C0L9ol2q.js} +2 -2
  47. package/dist/web/assets/{cynefinDiagram-MW4NZA55-BdK-Gc8j.js.map → cynefinDiagram-MW4NZA55-C0L9ol2q.js.map} +1 -1
  48. package/dist/web/assets/{dagre-VZM6K2ZE-DHA2ivcw.js → dagre-VZM6K2ZE-CeDDh-x1.js} +2 -2
  49. package/dist/web/assets/{dagre-VZM6K2ZE-DHA2ivcw.js.map → dagre-VZM6K2ZE-CeDDh-x1.js.map} +1 -1
  50. package/dist/web/assets/{diagram-7IWD3JNH-DIVtPE3t.js → diagram-7IWD3JNH-D_tUp0VL.js} +2 -2
  51. package/dist/web/assets/{diagram-7IWD3JNH-DIVtPE3t.js.map → diagram-7IWD3JNH-D_tUp0VL.js.map} +1 -1
  52. package/dist/web/assets/{diagram-B4RE2ZJO-DUbP1jlq.js → diagram-B4RE2ZJO-DZDYOecW.js} +2 -2
  53. package/dist/web/assets/{diagram-B4RE2ZJO-DUbP1jlq.js.map → diagram-B4RE2ZJO-DZDYOecW.js.map} +1 -1
  54. package/dist/web/assets/{diagram-LBJQPF4R-Uf0SV5Oa.js → diagram-LBJQPF4R-Cpc35PFW.js} +2 -2
  55. package/dist/web/assets/{diagram-LBJQPF4R-Uf0SV5Oa.js.map → diagram-LBJQPF4R-Cpc35PFW.js.map} +1 -1
  56. package/dist/web/assets/{diagram-Q27KOJAE-fnNTxd1b.js → diagram-Q27KOJAE-BOz6TqHv.js} +2 -2
  57. package/dist/web/assets/{diagram-Q27KOJAE-fnNTxd1b.js.map → diagram-Q27KOJAE-BOz6TqHv.js.map} +1 -1
  58. package/dist/web/assets/{diagram-UB23O5K3-DDqZawju.js → diagram-UB23O5K3-Ds6nWxHH.js} +2 -2
  59. package/dist/web/assets/{diagram-UB23O5K3-DDqZawju.js.map → diagram-UB23O5K3-Ds6nWxHH.js.map} +1 -1
  60. package/dist/web/assets/{ebnfDiagram-BXEA7PRR-BCaUK5eF.js → ebnfDiagram-BXEA7PRR-CCFR7qwF.js} +2 -2
  61. package/dist/web/assets/{ebnfDiagram-BXEA7PRR-BCaUK5eF.js.map → ebnfDiagram-BXEA7PRR-CCFR7qwF.js.map} +1 -1
  62. package/dist/web/assets/{erDiagram-JOGREHBK-BKrRBZ8v.js → erDiagram-JOGREHBK-Dy3fKeW1.js} +2 -2
  63. package/dist/web/assets/{erDiagram-JOGREHBK-BKrRBZ8v.js.map → erDiagram-JOGREHBK-Dy3fKeW1.js.map} +1 -1
  64. package/dist/web/assets/{flowDiagram-UKHOOZJN-BnZS06hc.js → flowDiagram-UKHOOZJN-DmGXUo_i.js} +2 -2
  65. package/dist/web/assets/{flowDiagram-UKHOOZJN-BnZS06hc.js.map → flowDiagram-UKHOOZJN-DmGXUo_i.js.map} +1 -1
  66. package/dist/web/assets/{ganttDiagram-PKOTCBZU-MlPWl_7U.js → ganttDiagram-PKOTCBZU-DRlsIr-9.js} +2 -2
  67. package/dist/web/assets/{ganttDiagram-PKOTCBZU-MlPWl_7U.js.map → ganttDiagram-PKOTCBZU-DRlsIr-9.js.map} +1 -1
  68. package/dist/web/assets/{gitGraphDiagram-DS77QQ5N-DmQ7grmW.js → gitGraphDiagram-DS77QQ5N-BF8sMWrB.js} +2 -2
  69. package/dist/web/assets/{gitGraphDiagram-DS77QQ5N-DmQ7grmW.js.map → gitGraphDiagram-DS77QQ5N-BF8sMWrB.js.map} +1 -1
  70. package/dist/web/assets/{index-zEjyXfYx.js → index-BWJKsro0.js} +10 -10
  71. package/dist/web/assets/index-BWJKsro0.js.map +1 -0
  72. package/dist/web/assets/{infoDiagram-6WML65LV-DnQLhWz5.js → infoDiagram-6WML65LV-C2ziOwwF.js} +2 -2
  73. package/dist/web/assets/{infoDiagram-6WML65LV-DnQLhWz5.js.map → infoDiagram-6WML65LV-C2ziOwwF.js.map} +1 -1
  74. package/dist/web/assets/{ishikawaDiagram-WSZJBQD7-DrmsJJLQ.js → ishikawaDiagram-WSZJBQD7-Dj6G7tMI.js} +2 -2
  75. package/dist/web/assets/{ishikawaDiagram-WSZJBQD7-DrmsJJLQ.js.map → ishikawaDiagram-WSZJBQD7-Dj6G7tMI.js.map} +1 -1
  76. package/dist/web/assets/{journeyDiagram-NVQOT4AX-CSXPLegv.js → journeyDiagram-NVQOT4AX-YHJIDkiw.js} +2 -2
  77. package/dist/web/assets/{journeyDiagram-NVQOT4AX-CSXPLegv.js.map → journeyDiagram-NVQOT4AX-YHJIDkiw.js.map} +1 -1
  78. package/dist/web/assets/{jsQR-D4Lkm6eX.js → jsQR-Ck2KRhtk.js} +2 -2
  79. package/dist/web/assets/{jsQR-D4Lkm6eX.js.map → jsQR-Ck2KRhtk.js.map} +1 -1
  80. package/dist/web/assets/{kanban-definition-27J2QSJJ-DLoixRJV.js → kanban-definition-27J2QSJJ-CR6vkjK8.js} +2 -2
  81. package/dist/web/assets/{kanban-definition-27J2QSJJ-DLoixRJV.js.map → kanban-definition-27J2QSJJ-CR6vkjK8.js.map} +1 -1
  82. package/dist/web/assets/{linear-BPoG-jmO.js → linear-B80VHMM1.js} +2 -2
  83. package/dist/web/assets/{linear-BPoG-jmO.js.map → linear-B80VHMM1.js.map} +1 -1
  84. package/dist/web/assets/{mermaid.core-ZtqQ8zsB.js → mermaid.core-Bo5ITjWV.js} +5 -5
  85. package/dist/web/assets/{mermaid.core-ZtqQ8zsB.js.map → mermaid.core-Bo5ITjWV.js.map} +1 -1
  86. package/dist/web/assets/{mindmap-definition-FAOFIHXS-Dy4r-CaI.js → mindmap-definition-FAOFIHXS-BzBemuVP.js} +2 -2
  87. package/dist/web/assets/{mindmap-definition-FAOFIHXS-Dy4r-CaI.js.map → mindmap-definition-FAOFIHXS-BzBemuVP.js.map} +1 -1
  88. package/dist/web/assets/{pegDiagram-VL7TDLO6-C16cg9P3.js → pegDiagram-VL7TDLO6-DdouWlYr.js} +2 -2
  89. package/dist/web/assets/{pegDiagram-VL7TDLO6-C16cg9P3.js.map → pegDiagram-VL7TDLO6-DdouWlYr.js.map} +1 -1
  90. package/dist/web/assets/{pieDiagram-7S7Q4E2Y-CMvKs4-p.js → pieDiagram-7S7Q4E2Y-C5fE7edx.js} +2 -2
  91. package/dist/web/assets/{pieDiagram-7S7Q4E2Y-CMvKs4-p.js.map → pieDiagram-7S7Q4E2Y-C5fE7edx.js.map} +1 -1
  92. package/dist/web/assets/{quadrantDiagram-CIZ2JOQS-DA7_M3R0.js → quadrantDiagram-CIZ2JOQS-fB-F7K1O.js} +2 -2
  93. package/dist/web/assets/{quadrantDiagram-CIZ2JOQS-DA7_M3R0.js.map → quadrantDiagram-CIZ2JOQS-fB-F7K1O.js.map} +1 -1
  94. package/dist/web/assets/{railroadDiagram-AXF67PYL--Shm95FE.js → railroadDiagram-AXF67PYL-DUAfsiQL.js} +2 -2
  95. package/dist/web/assets/{railroadDiagram-AXF67PYL--Shm95FE.js.map → railroadDiagram-AXF67PYL-DUAfsiQL.js.map} +1 -1
  96. package/dist/web/assets/{requirementDiagram-LRYGKXZP-DNFEY8Mb.js → requirementDiagram-LRYGKXZP-DqY0pzOx.js} +2 -2
  97. package/dist/web/assets/{requirementDiagram-LRYGKXZP-DNFEY8Mb.js.map → requirementDiagram-LRYGKXZP-DqY0pzOx.js.map} +1 -1
  98. package/dist/web/assets/{sankeyDiagram-W5VNT64P-DFHaPJPk.js → sankeyDiagram-W5VNT64P-vrR_C7WB.js} +2 -2
  99. package/dist/web/assets/{sankeyDiagram-W5VNT64P-DFHaPJPk.js.map → sankeyDiagram-W5VNT64P-vrR_C7WB.js.map} +1 -1
  100. package/dist/web/assets/{sequenceDiagram-SI44F4Z6-Bt3pTAA0.js → sequenceDiagram-SI44F4Z6-CHym7nQT.js} +2 -2
  101. package/dist/web/assets/{sequenceDiagram-SI44F4Z6-Bt3pTAA0.js.map → sequenceDiagram-SI44F4Z6-CHym7nQT.js.map} +1 -1
  102. package/dist/web/assets/{sizeCapture-X5ZJPWSS-CzolchdE.js → sizeCapture-X5ZJPWSS-DaDxWiPk.js} +2 -2
  103. package/dist/web/assets/{sizeCapture-X5ZJPWSS-CzolchdE.js.map → sizeCapture-X5ZJPWSS-DaDxWiPk.js.map} +1 -1
  104. package/dist/web/assets/{stateDiagram-OKZ733FA-DYmkQolZ.js → stateDiagram-OKZ733FA-CoZ6mTYC.js} +2 -2
  105. package/dist/web/assets/{stateDiagram-OKZ733FA-DYmkQolZ.js.map → stateDiagram-OKZ733FA-CoZ6mTYC.js.map} +1 -1
  106. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-J-MJucj5.js +2 -0
  107. package/dist/web/assets/{stateDiagram-v2-UEYNNEHI-BsDm8e4d.js.map → stateDiagram-v2-UEYNNEHI-J-MJucj5.js.map} +1 -1
  108. package/dist/web/assets/{swimlanes-SLNWSIFB-Kr8FvnEp.js → swimlanes-SLNWSIFB-CYNnaMLq.js} +3 -3
  109. package/dist/web/assets/{swimlanes-SLNWSIFB-Kr8FvnEp.js.map → swimlanes-SLNWSIFB-CYNnaMLq.js.map} +1 -1
  110. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-CkkSw8Sw.js +9 -0
  111. package/dist/web/assets/{swimlanesDiagram-ULZ7WXOC-B6tsVVP8.js.map → swimlanesDiagram-ULZ7WXOC-CkkSw8Sw.js.map} +1 -1
  112. package/dist/web/assets/{timeline-definition-Z64GVDOM-CKQQh7ke.js → timeline-definition-Z64GVDOM-DZ1Y1cvh.js} +2 -2
  113. package/dist/web/assets/{timeline-definition-Z64GVDOM-CKQQh7ke.js.map → timeline-definition-Z64GVDOM-DZ1Y1cvh.js.map} +1 -1
  114. package/dist/web/assets/{vennDiagram-T6HMQDX7-BUVOiP60.js → vennDiagram-T6HMQDX7-jmfMoaEa.js} +2 -2
  115. package/dist/web/assets/{vennDiagram-T6HMQDX7-BUVOiP60.js.map → vennDiagram-T6HMQDX7-jmfMoaEa.js.map} +1 -1
  116. package/dist/web/assets/{wardleyDiagram-T6FBY63Y-YFCU116Z.js → wardleyDiagram-T6FBY63Y-Kt8p2YSi.js} +2 -2
  117. package/dist/web/assets/{wardleyDiagram-T6FBY63Y-YFCU116Z.js.map → wardleyDiagram-T6FBY63Y-Kt8p2YSi.js.map} +1 -1
  118. package/dist/web/assets/{xychartDiagram-ELKLHX3M-BidhLB_2.js → xychartDiagram-ELKLHX3M-CSD7wGPG.js} +2 -2
  119. package/dist/web/assets/{xychartDiagram-ELKLHX3M-BidhLB_2.js.map → xychartDiagram-ELKLHX3M-CSD7wGPG.js.map} +1 -1
  120. package/dist/web/index.html +1 -1
  121. package/dist/web/sw.js +1 -1
  122. package/dist/web/version.json +1 -1
  123. package/package.json +2 -2
  124. package/dist/web/assets/channel-qDsnjLTa.js +0 -2
  125. package/dist/web/assets/classDiagram-JCYQIIEL-D6QSunf-.js +0 -2
  126. package/dist/web/assets/classDiagram-v2-OCEON4UE-D6QSunf-.js +0 -2
  127. package/dist/web/assets/index-zEjyXfYx.js.map +0 -1
  128. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-BsDm8e4d.js +0 -2
  129. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-B6tsVVP8.js +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"diagram-7IWD3JNH-DIVtPE3t.js","sources":["../../../node_modules/mermaid/dist/chunks/mermaid.core/diagram-7IWD3JNH.mjs"],"sourcesContent":["import {\n ImperativeState\n} from \"./chunk-2Q5K7J3B.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-JWPE2WC7.mjs\";\nimport {\n selectSvgElement\n} from \"./chunk-3NCLNEKW.mjs\";\nimport {\n getIconSVG,\n registerIconPacks\n} from \"./chunk-4I5QYGJK.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-NSK5VX7P.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n sanitizeText,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-I66GZJ75.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/treeView/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\n\n// src/diagrams/treeView/boxDrawingPreprocessor.ts\nvar ALL_BOX_CHARS = /[─━│┃└┗├┣]/;\nvar BRANCH_CHAR = /[└┗├┣]/;\nvar DASH_CHAR = /[─━]/;\nvar DECORATION_ONLY = /^[\\s│┃]+$/;\nvar METADATA_LINE = /^\\s*(title[\\t ]|accTitle[\\t ]*:|accDescr[\\t ]*[:{])/;\nvar COMMENT_LINE = /^\\s*%%/;\nvar INDENT_UNIT = \" \";\nfunction isBoxDrawingFormat(lines) {\n return lines.some((line) => ALL_BOX_CHARS.test(line));\n}\n__name(isBoxDrawingFormat, \"isBoxDrawingFormat\");\nfunction inferSegmentWidth(contentLines) {\n for (const line of contentLines) {\n const match = BRANCH_CHAR.exec(line);\n if (match?.index && match.index > 0) {\n return match.index;\n }\n }\n return 4;\n}\n__name(inferSegmentWidth, \"inferSegmentWidth\");\nfunction remapErrorLines(message, lineMap) {\n return message.replace(/\\bline\\s+(\\d+)\\b/gi, (match, lineStr) => {\n const line = parseInt(lineStr, 10);\n const original = lineMap.get(line);\n return original ? `line ${original}` : match;\n });\n}\n__name(remapErrorLines, \"remapErrorLines\");\nfunction preprocessBoxDrawing(input) {\n const lines = input.split(\"\\n\");\n const lineMap = /* @__PURE__ */ new Map();\n let keywordIdx = -1;\n for (const [i, line] of lines.entries()) {\n if (line.trim() === \"treeView-beta\") {\n keywordIdx = i;\n break;\n }\n }\n if (keywordIdx === -1) {\n return { text: input, lineMap };\n }\n const contentLineTexts = [];\n for (let i = keywordIdx + 1; i < lines.length; i++) {\n const line = lines[i];\n const trimmed = line.trim();\n if (trimmed === \"\" || COMMENT_LINE.test(line) || METADATA_LINE.test(line)) {\n continue;\n }\n if (DECORATION_ONLY.test(line)) {\n continue;\n }\n contentLineTexts.push(line.replace(/\\t/g, \" \"));\n }\n if (!isBoxDrawingFormat(contentLineTexts)) {\n return { text: input, lineMap };\n }\n const segmentWidth = inferSegmentWidth(contentLineTexts);\n const outputLines = [];\n let outLineNo = 0;\n for (let i = 0; i <= keywordIdx; i++) {\n outputLines.push(lines[i]);\n outLineNo++;\n lineMap.set(outLineNo, i + 1);\n }\n for (let i = keywordIdx + 1; i < lines.length; i++) {\n const line = lines[i];\n const trimmed = line.trim();\n const origLineNo = i + 1;\n if (trimmed === \"\") {\n outputLines.push(line);\n outLineNo++;\n lineMap.set(outLineNo, origLineNo);\n continue;\n }\n if (COMMENT_LINE.test(line)) {\n outputLines.push(line);\n outLineNo++;\n lineMap.set(outLineNo, origLineNo);\n continue;\n }\n if (METADATA_LINE.test(line)) {\n outputLines.push(line);\n outLineNo++;\n lineMap.set(outLineNo, origLineNo);\n continue;\n }\n if (DECORATION_ONLY.test(line)) {\n continue;\n }\n const normalized = line.replace(/\\t/g, \" \");\n const branchMatch = BRANCH_CHAR.exec(normalized);\n if (branchMatch?.index !== void 0) {\n const branchCol = branchMatch.index;\n const depth = Math.round(branchCol / segmentWidth) + 1;\n let pos = branchCol + 1;\n while (pos < normalized.length && DASH_CHAR.test(normalized[pos])) {\n pos++;\n }\n while (pos < normalized.length && normalized[pos] === \" \") {\n pos++;\n }\n const content = normalized.slice(pos).trimEnd();\n if (!content) {\n throw new Error(\n `Line ${origLineNo}: Empty node \\u2014 expected a filename or directory name after the box-drawing prefix`\n );\n }\n const indent = INDENT_UNIT.repeat(depth);\n outputLines.push(indent + content);\n outLineNo++;\n lineMap.set(outLineNo, origLineNo);\n } else if (/^[\\s─━│┃└┗├┣]+$/.test(normalized)) {\n continue;\n } else if (ALL_BOX_CHARS.test(normalized)) {\n outputLines.push(line);\n outLineNo++;\n lineMap.set(outLineNo, origLineNo);\n } else if (/^\\s+/.test(normalized)) {\n throw new Error(\n `Line ${origLineNo}: Unexpected indentation without box-drawing characters. In box-drawing format, use \\u251C\\u2500\\u2500 or \\u2514\\u2500\\u2500 prefixes for indented nodes.`\n );\n } else {\n outputLines.push(line);\n outLineNo++;\n lineMap.set(outLineNo, origLineNo);\n }\n }\n return { text: outputLines.join(\"\\n\"), lineMap };\n}\n__name(preprocessBoxDrawing, \"preprocessBoxDrawing\");\n\n// src/diagrams/treeView/db.ts\nvar state = new ImperativeState(() => ({\n cnt: 1,\n stack: [\n {\n id: 0,\n level: -1,\n name: \"/\",\n nodeType: \"directory\",\n children: []\n }\n ]\n}));\nvar clear2 = /* @__PURE__ */ __name(() => {\n state.reset();\n clear();\n}, \"clear\");\nvar getRoot = /* @__PURE__ */ __name(() => {\n return state.records.stack[0];\n}, \"getRoot\");\nvar getCount = /* @__PURE__ */ __name(() => state.records.cnt, \"getCount\");\nvar defaultConfig = defaultConfig_default.treeView;\nvar getConfig2 = /* @__PURE__ */ __name(() => {\n return cleanAndMerge(defaultConfig, getConfig().treeView);\n}, \"getConfig\");\nvar addNode = /* @__PURE__ */ __name((level, name, nodeType, cssClass, icon, description) => {\n while (level <= state.records.stack[state.records.stack.length - 1].level) {\n state.records.stack.pop();\n }\n const node = {\n id: state.records.cnt++,\n level,\n name,\n nodeType,\n icon,\n cssClass,\n description,\n children: []\n };\n state.records.stack[state.records.stack.length - 1].children.push(node);\n state.records.stack.push(node);\n}, \"addNode\");\nvar db = {\n clear: clear2,\n addNode,\n getRoot,\n getCount,\n getConfig: getConfig2,\n getAccTitle,\n getAccDescription,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n};\nvar db_default = db;\n\n// src/diagrams/treeView/parser.ts\nvar populate = /* @__PURE__ */ __name((ast) => {\n populateCommonDb(ast, db_default);\n for (const node of ast.nodes) {\n const level = typeof node.indent === \"number\" ? node.indent : 0;\n let name = node.name;\n const isDirectory = name.endsWith(\"/\");\n if (isDirectory) {\n name = name.slice(0, -1);\n }\n const nodeType = isDirectory ? \"directory\" : \"file\";\n const cssClass = node.classAnnotation || void 0;\n const rawIcon = node.iconAnnotation;\n const icon = rawIcon !== void 0 ? rawIcon || \"none\" : void 0;\n const rawDesc = node.descAnnotation || void 0;\n const description = rawDesc ? sanitizeText(rawDesc, getConfig()) : void 0;\n db_default.addNode(level, name, nodeType, cssClass, icon, description);\n }\n}, \"populate\");\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const { text, lineMap } = preprocessBoxDrawing(input);\n try {\n const ast = await parse(\"treeView\", text);\n log.debug(ast);\n populate(ast);\n } catch (error) {\n if (lineMap.size > 0 && error instanceof Error) {\n error.message = remapErrorLines(error.message, lineMap);\n }\n throw error;\n }\n }, \"parse\")\n};\n\n// src/diagrams/treeView/icons.ts\nvar treeViewIcons = {\n prefix: \"mermaid-treeview\",\n height: 24,\n width: 24,\n icons: {\n folder: {\n body: '<path fill=\"currentColor\" d=\"M10.59 4.59A2 2 0 0 0 9.17 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.17z\"/>'\n },\n file: {\n body: '<path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8.83a2 2 0 0 0-.59-1.42l-4.82-4.82A2 2 0 0 0 13.17 2H6Zm7.5 1.9l4.6 4.6h-3.6a1 1 0 0 1-1-1V3.9Z\" clip-rule=\"evenodd\"/>'\n }\n }\n};\nfunction detectIcon(name, config) {\n const filenameIcon = config?.filenameIcons?.[name];\n if (filenameIcon) {\n return filenameIcon;\n }\n const dotIdx = name.lastIndexOf(\".\");\n if (dotIdx > 0) {\n const ext = name.substring(dotIdx).toLowerCase();\n const extensionIcons = config?.extensionIcons;\n return extensionIcons?.[ext] ?? extensionIcons?.[ext.slice(1)];\n }\n return void 0;\n}\n__name(detectIcon, \"detectIcon\");\nfunction qualifyIcon(icon, defaultIconPack) {\n if (icon.includes(\":\")) {\n return icon;\n }\n if (icon in treeViewIcons.icons || !defaultIconPack) {\n return `${treeViewIcons.prefix}:${icon}`;\n }\n return `${defaultIconPack}:${icon}`;\n}\n__name(qualifyIcon, \"qualifyIcon\");\nfunction getNodeIcon(node, config) {\n if (node.icon === \"none\") {\n return void 0;\n }\n if (node.icon) {\n return qualifyIcon(node.icon, config.defaultIconPack);\n }\n if (!config.showIcons) {\n return void 0;\n }\n if (node.nodeType === \"file\") {\n const detected = detectIcon(node.name, config);\n if (detected === \"none\") {\n return void 0;\n }\n if (detected) {\n return qualifyIcon(detected, config.defaultIconPack);\n }\n }\n return `${treeViewIcons.prefix}:${node.nodeType === \"directory\" ? \"folder\" : \"file\"}`;\n}\n__name(getNodeIcon, \"getNodeIcon\");\n\n// src/diagrams/treeView/renderer.ts\nregisterIconPacks([\n {\n name: treeViewIcons.prefix,\n icons: treeViewIcons\n }\n]);\nvar ICON_SIZE = 14;\nvar ICON_GAP = 4;\nvar DESC_GAP = 16;\nvar iconSymbolId = /* @__PURE__ */ __name((diagramId, icon) => `tv-icon-${diagramId}-${icon.replace(/[^\\w-]/g, \"-\")}`, \"iconSymbolId\");\nvar injectIconDefs = /* @__PURE__ */ __name(async (svg, root, config, diagramId) => {\n const usedIcons = /* @__PURE__ */ new Set();\n const collect = /* @__PURE__ */ __name((node) => {\n const icon = getNodeIcon(node, config);\n if (icon) {\n usedIcons.add(icon);\n }\n node.children.forEach(collect);\n }, \"collect\");\n collect(root);\n if (usedIcons.size === 0) {\n return;\n }\n const iconSVGs = await Promise.all(\n [...usedIcons].map(async (icon) => ({\n icon,\n svg: await getIconSVG(icon, {\n height: ICON_SIZE,\n width: ICON_SIZE\n })\n }))\n );\n const defs = svg.append(\"defs\");\n for (const { icon, svg: iconSVG } of iconSVGs) {\n defs.append(\"g\").attr(\"id\", iconSymbolId(diagramId, icon)).html(iconSVG);\n }\n}, \"injectIconDefs\");\nvar positionLabel = /* @__PURE__ */ __name((x, y, node, domElem, config, diagramId) => {\n const nodeGroup = domElem.append(\"g\");\n let cssClasses = \"treeView-node-label\";\n if (node.nodeType === \"directory\") {\n cssClasses += \" treeView-node-dir\";\n }\n if (node.cssClass) {\n cssClasses += ` ${node.cssClass}`;\n }\n const iconOffset = ICON_SIZE + ICON_GAP;\n const icon = getNodeIcon(node, config);\n const showIcon = icon !== void 0;\n if (icon) {\n nodeGroup.append(\"use\").attr(\"xlink:href\", `#${iconSymbolId(diagramId, icon)}`).attr(\"x\", x + config.paddingX).attr(\"y\", y + config.paddingY).attr(\"class\", \"treeView-node-icon\");\n }\n const label = nodeGroup.append(\"text\").text(node.name).attr(\"dominant-baseline\", \"middle\").attr(\"class\", cssClasses);\n const { height: labelHeight, width: labelWidth } = label.node().getBBox();\n const height = labelHeight + config.paddingY * 2;\n const labelX = x + config.paddingX + (showIcon ? iconOffset : 0);\n label.attr(\"x\", labelX);\n label.attr(\"y\", y + height / 2);\n const labelRightEdge = labelX + labelWidth;\n const width = labelWidth + config.paddingX * 2 + (showIcon ? iconOffset : 0);\n node.BBox = { x, y, width, height };\n if (node.cssClass?.split(/\\s+/).includes(\"highlight\")) {\n nodeGroup.insert(\"rect\", \":first-child\").attr(\"x\", x).attr(\"y\", y + 1).attr(\"width\", 0).attr(\"height\", height - 2).attr(\"rx\", 3).attr(\"class\", \"treeView-highlight-bg\");\n }\n return { node, nodeGroup, labelRightEdge, centerY: y + height / 2 };\n}, \"positionLabel\");\nvar positionLine = /* @__PURE__ */ __name((domElem, x1, y1, x2, y2, lineThickness) => {\n return domElem.append(\"line\").attr(\"x1\", x1).attr(\"y1\", y1).attr(\"x2\", x2).attr(\"y2\", y2).attr(\"stroke-width\", lineThickness).attr(\"class\", \"treeView-node-line\");\n}, \"positionLine\");\nvar drawTree = /* @__PURE__ */ __name((elem, root, config, diagramId) => {\n let totalHeight = 0;\n let totalWidth = 0;\n const renderInfos = [];\n const drawNode = /* @__PURE__ */ __name((elem2, node, config2, depth) => {\n const indent = depth * (config2.rowIndent + config2.paddingX);\n const info = positionLabel(indent, totalHeight, node, elem2, config2, diagramId);\n renderInfos.push(info);\n const { height, width } = node.BBox;\n positionLine(\n elem2,\n indent - config2.rowIndent,\n totalHeight + height / 2,\n indent,\n totalHeight + height / 2,\n config2.lineThickness\n );\n totalWidth = Math.max(totalWidth, indent + width);\n totalHeight += height;\n }, \"drawNode\");\n const processNode = /* @__PURE__ */ __name((node, depth = 0) => {\n drawNode(elem, node, config, depth);\n node.children.forEach((child) => {\n processNode(child, depth + 1);\n });\n const { x, y, height } = node.BBox;\n if (node.children.length) {\n const { y: endY, height: endHeight } = node.children[node.children.length - 1].BBox;\n positionLine(\n elem,\n x + config.paddingX,\n y + height,\n x + config.paddingX,\n endY + endHeight / 2 + config.lineThickness / 2,\n config.lineThickness\n );\n }\n }, \"processNode\");\n processNode(root);\n const nodesWithDesc = renderInfos.filter((ri) => ri.node.description);\n if (nodesWithDesc.length > 0) {\n const maxLabelRight = Math.max(...renderInfos.map((ri) => ri.labelRightEdge));\n const descX = maxLabelRight + DESC_GAP;\n for (const ri of nodesWithDesc) {\n const desc = ri.nodeGroup.append(\"text\").text(ri.node.description).attr(\"dominant-baseline\", \"middle\").attr(\"class\", \"treeView-node-description\").attr(\"x\", descX).attr(\"y\", ri.centerY);\n const descBBox = desc.node().getBBox();\n totalWidth = Math.max(totalWidth, descX + descBBox.width + config.paddingX);\n }\n }\n for (const ri of renderInfos) {\n if (ri.node.cssClass?.split(/\\s+/).includes(\"highlight\")) {\n const rect = ri.nodeGroup.select(\".treeView-highlight-bg\");\n if (!rect.empty()) {\n const rectWidth = totalWidth - ri.node.BBox.x + 8;\n rect.attr(\"width\", rectWidth);\n totalWidth = Math.max(totalWidth, ri.node.BBox.x + rectWidth + 2);\n }\n }\n }\n return { totalHeight, totalWidth };\n}, \"drawTree\");\nvar draw = /* @__PURE__ */ __name(async (text, id, _ver, diagObj) => {\n log.debug(\"Rendering treeView diagram\\n\" + text);\n const db2 = diagObj.db;\n const root = db2.getRoot();\n const config = db2.getConfig();\n const svg = selectSvgElement(id);\n await injectIconDefs(svg, root, config, id);\n const treeElem = svg.append(\"g\");\n treeElem.attr(\"class\", \"tree-view\");\n const { totalHeight, totalWidth } = drawTree(treeElem, root, config, id);\n svg.attr(\"viewBox\", `-${config.lineThickness / 2} 0 ${totalWidth} ${totalHeight}`);\n configureSvgSize(svg, totalHeight, totalWidth, config.useMaxWidth);\n}, \"draw\");\nvar renderer = {\n draw\n};\nvar renderer_default = renderer;\n\n// src/diagrams/treeView/styles.ts\nvar defaultTreeViewDiagramStyles = {\n labelFontSize: \"16px\",\n labelColor: \"black\",\n lineColor: \"black\",\n iconColor: \"#546e7a\",\n descriptionColor: \"#6a9955\",\n highlightBg: \"rgba(255, 193, 7, 0.15)\",\n highlightStroke: \"#ffc107\"\n};\nvar styles = /* @__PURE__ */ __name(({\n treeView\n}) => {\n const {\n labelFontSize,\n labelColor,\n lineColor,\n iconColor,\n descriptionColor,\n highlightBg,\n highlightStroke\n } = cleanAndMerge(defaultTreeViewDiagramStyles, treeView);\n return `\n .treeView-node-label {\n font-size: ${labelFontSize};\n fill: ${labelColor};\n white-space: pre;\n }\n .treeView-node-dir {\n font-weight: bold;\n }\n .treeView-node-line {\n stroke: ${lineColor};\n }\n .treeView-node-icon {\n color: ${iconColor};\n }\n .treeView-node-description {\n font-size: ${labelFontSize};\n fill: ${descriptionColor};\n font-style: italic;\n white-space: pre;\n }\n .treeView-highlight-bg {\n fill: ${highlightBg};\n stroke: ${highlightStroke};\n stroke-width: 1;\n }\n `;\n}, \"styles\");\nvar styles_default = styles;\n\n// src/diagrams/treeView/diagram.ts\nvar diagram = {\n db: db_default,\n renderer: renderer_default,\n parser,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"names":["ALL_BOX_CHARS","BRANCH_CHAR","DASH_CHAR","DECORATION_ONLY","METADATA_LINE","COMMENT_LINE","INDENT_UNIT","isBoxDrawingFormat","lines","line","__name","inferSegmentWidth","contentLines","match","remapErrorLines","message","lineMap","lineStr","original","preprocessBoxDrawing","input","keywordIdx","i","contentLineTexts","segmentWidth","outputLines","outLineNo","trimmed","origLineNo","normalized","branchMatch","branchCol","depth","pos","content","indent","state","ImperativeState","clear2","clear","getRoot","getCount","defaultConfig","defaultConfig_default","getConfig2","cleanAndMerge","getConfig","addNode","level","name","nodeType","cssClass","icon","description","node","db","getAccTitle","getAccDescription","getDiagramTitle","setAccDescription","setAccTitle","setDiagramTitle","db_default","populate","ast","populateCommonDb","isDirectory","rawIcon","rawDesc","sanitizeText","parser","text","parse","log","error","treeViewIcons","detectIcon","config","filenameIcon","dotIdx","ext","extensionIcons","qualifyIcon","defaultIconPack","getNodeIcon","detected","registerIconPacks","ICON_SIZE","ICON_GAP","DESC_GAP","iconSymbolId","diagramId","injectIconDefs","svg","root","usedIcons","collect","iconSVGs","getIconSVG","defs","iconSVG","positionLabel","x","y","domElem","nodeGroup","cssClasses","iconOffset","showIcon","label","labelHeight","labelWidth","height","labelX","labelRightEdge","width","positionLine","x1","y1","x2","y2","lineThickness","drawTree","elem","totalHeight","totalWidth","renderInfos","drawNode","elem2","config2","info","processNode","child","endY","endHeight","nodesWithDesc","ri","descX","descBBox","rect","rectWidth","draw","id","_ver","diagObj","db2","selectSvgElement","treeElem","configureSvgSize","renderer","renderer_default","defaultTreeViewDiagramStyles","styles","treeView","labelFontSize","labelColor","lineColor","iconColor","descriptionColor","highlightBg","highlightStroke","styles_default","diagram"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"diagram-7IWD3JNH-D_tUp0VL.js","sources":["../../../node_modules/mermaid/dist/chunks/mermaid.core/diagram-7IWD3JNH.mjs"],"sourcesContent":["import {\n ImperativeState\n} from \"./chunk-2Q5K7J3B.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-JWPE2WC7.mjs\";\nimport {\n selectSvgElement\n} from \"./chunk-3NCLNEKW.mjs\";\nimport {\n getIconSVG,\n registerIconPacks\n} from \"./chunk-4I5QYGJK.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-NSK5VX7P.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n sanitizeText,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-I66GZJ75.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/treeView/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\n\n// src/diagrams/treeView/boxDrawingPreprocessor.ts\nvar ALL_BOX_CHARS = /[─━│┃└┗├┣]/;\nvar BRANCH_CHAR = /[└┗├┣]/;\nvar DASH_CHAR = /[─━]/;\nvar DECORATION_ONLY = /^[\\s│┃]+$/;\nvar METADATA_LINE = /^\\s*(title[\\t ]|accTitle[\\t ]*:|accDescr[\\t ]*[:{])/;\nvar COMMENT_LINE = /^\\s*%%/;\nvar INDENT_UNIT = \" \";\nfunction isBoxDrawingFormat(lines) {\n return lines.some((line) => ALL_BOX_CHARS.test(line));\n}\n__name(isBoxDrawingFormat, \"isBoxDrawingFormat\");\nfunction inferSegmentWidth(contentLines) {\n for (const line of contentLines) {\n const match = BRANCH_CHAR.exec(line);\n if (match?.index && match.index > 0) {\n return match.index;\n }\n }\n return 4;\n}\n__name(inferSegmentWidth, \"inferSegmentWidth\");\nfunction remapErrorLines(message, lineMap) {\n return message.replace(/\\bline\\s+(\\d+)\\b/gi, (match, lineStr) => {\n const line = parseInt(lineStr, 10);\n const original = lineMap.get(line);\n return original ? `line ${original}` : match;\n });\n}\n__name(remapErrorLines, \"remapErrorLines\");\nfunction preprocessBoxDrawing(input) {\n const lines = input.split(\"\\n\");\n const lineMap = /* @__PURE__ */ new Map();\n let keywordIdx = -1;\n for (const [i, line] of lines.entries()) {\n if (line.trim() === \"treeView-beta\") {\n keywordIdx = i;\n break;\n }\n }\n if (keywordIdx === -1) {\n return { text: input, lineMap };\n }\n const contentLineTexts = [];\n for (let i = keywordIdx + 1; i < lines.length; i++) {\n const line = lines[i];\n const trimmed = line.trim();\n if (trimmed === \"\" || COMMENT_LINE.test(line) || METADATA_LINE.test(line)) {\n continue;\n }\n if (DECORATION_ONLY.test(line)) {\n continue;\n }\n contentLineTexts.push(line.replace(/\\t/g, \" \"));\n }\n if (!isBoxDrawingFormat(contentLineTexts)) {\n return { text: input, lineMap };\n }\n const segmentWidth = inferSegmentWidth(contentLineTexts);\n const outputLines = [];\n let outLineNo = 0;\n for (let i = 0; i <= keywordIdx; i++) {\n outputLines.push(lines[i]);\n outLineNo++;\n lineMap.set(outLineNo, i + 1);\n }\n for (let i = keywordIdx + 1; i < lines.length; i++) {\n const line = lines[i];\n const trimmed = line.trim();\n const origLineNo = i + 1;\n if (trimmed === \"\") {\n outputLines.push(line);\n outLineNo++;\n lineMap.set(outLineNo, origLineNo);\n continue;\n }\n if (COMMENT_LINE.test(line)) {\n outputLines.push(line);\n outLineNo++;\n lineMap.set(outLineNo, origLineNo);\n continue;\n }\n if (METADATA_LINE.test(line)) {\n outputLines.push(line);\n outLineNo++;\n lineMap.set(outLineNo, origLineNo);\n continue;\n }\n if (DECORATION_ONLY.test(line)) {\n continue;\n }\n const normalized = line.replace(/\\t/g, \" \");\n const branchMatch = BRANCH_CHAR.exec(normalized);\n if (branchMatch?.index !== void 0) {\n const branchCol = branchMatch.index;\n const depth = Math.round(branchCol / segmentWidth) + 1;\n let pos = branchCol + 1;\n while (pos < normalized.length && DASH_CHAR.test(normalized[pos])) {\n pos++;\n }\n while (pos < normalized.length && normalized[pos] === \" \") {\n pos++;\n }\n const content = normalized.slice(pos).trimEnd();\n if (!content) {\n throw new Error(\n `Line ${origLineNo}: Empty node \\u2014 expected a filename or directory name after the box-drawing prefix`\n );\n }\n const indent = INDENT_UNIT.repeat(depth);\n outputLines.push(indent + content);\n outLineNo++;\n lineMap.set(outLineNo, origLineNo);\n } else if (/^[\\s─━│┃└┗├┣]+$/.test(normalized)) {\n continue;\n } else if (ALL_BOX_CHARS.test(normalized)) {\n outputLines.push(line);\n outLineNo++;\n lineMap.set(outLineNo, origLineNo);\n } else if (/^\\s+/.test(normalized)) {\n throw new Error(\n `Line ${origLineNo}: Unexpected indentation without box-drawing characters. In box-drawing format, use \\u251C\\u2500\\u2500 or \\u2514\\u2500\\u2500 prefixes for indented nodes.`\n );\n } else {\n outputLines.push(line);\n outLineNo++;\n lineMap.set(outLineNo, origLineNo);\n }\n }\n return { text: outputLines.join(\"\\n\"), lineMap };\n}\n__name(preprocessBoxDrawing, \"preprocessBoxDrawing\");\n\n// src/diagrams/treeView/db.ts\nvar state = new ImperativeState(() => ({\n cnt: 1,\n stack: [\n {\n id: 0,\n level: -1,\n name: \"/\",\n nodeType: \"directory\",\n children: []\n }\n ]\n}));\nvar clear2 = /* @__PURE__ */ __name(() => {\n state.reset();\n clear();\n}, \"clear\");\nvar getRoot = /* @__PURE__ */ __name(() => {\n return state.records.stack[0];\n}, \"getRoot\");\nvar getCount = /* @__PURE__ */ __name(() => state.records.cnt, \"getCount\");\nvar defaultConfig = defaultConfig_default.treeView;\nvar getConfig2 = /* @__PURE__ */ __name(() => {\n return cleanAndMerge(defaultConfig, getConfig().treeView);\n}, \"getConfig\");\nvar addNode = /* @__PURE__ */ __name((level, name, nodeType, cssClass, icon, description) => {\n while (level <= state.records.stack[state.records.stack.length - 1].level) {\n state.records.stack.pop();\n }\n const node = {\n id: state.records.cnt++,\n level,\n name,\n nodeType,\n icon,\n cssClass,\n description,\n children: []\n };\n state.records.stack[state.records.stack.length - 1].children.push(node);\n state.records.stack.push(node);\n}, \"addNode\");\nvar db = {\n clear: clear2,\n addNode,\n getRoot,\n getCount,\n getConfig: getConfig2,\n getAccTitle,\n getAccDescription,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n};\nvar db_default = db;\n\n// src/diagrams/treeView/parser.ts\nvar populate = /* @__PURE__ */ __name((ast) => {\n populateCommonDb(ast, db_default);\n for (const node of ast.nodes) {\n const level = typeof node.indent === \"number\" ? node.indent : 0;\n let name = node.name;\n const isDirectory = name.endsWith(\"/\");\n if (isDirectory) {\n name = name.slice(0, -1);\n }\n const nodeType = isDirectory ? \"directory\" : \"file\";\n const cssClass = node.classAnnotation || void 0;\n const rawIcon = node.iconAnnotation;\n const icon = rawIcon !== void 0 ? rawIcon || \"none\" : void 0;\n const rawDesc = node.descAnnotation || void 0;\n const description = rawDesc ? sanitizeText(rawDesc, getConfig()) : void 0;\n db_default.addNode(level, name, nodeType, cssClass, icon, description);\n }\n}, \"populate\");\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const { text, lineMap } = preprocessBoxDrawing(input);\n try {\n const ast = await parse(\"treeView\", text);\n log.debug(ast);\n populate(ast);\n } catch (error) {\n if (lineMap.size > 0 && error instanceof Error) {\n error.message = remapErrorLines(error.message, lineMap);\n }\n throw error;\n }\n }, \"parse\")\n};\n\n// src/diagrams/treeView/icons.ts\nvar treeViewIcons = {\n prefix: \"mermaid-treeview\",\n height: 24,\n width: 24,\n icons: {\n folder: {\n body: '<path fill=\"currentColor\" d=\"M10.59 4.59A2 2 0 0 0 9.17 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.17z\"/>'\n },\n file: {\n body: '<path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8.83a2 2 0 0 0-.59-1.42l-4.82-4.82A2 2 0 0 0 13.17 2H6Zm7.5 1.9l4.6 4.6h-3.6a1 1 0 0 1-1-1V3.9Z\" clip-rule=\"evenodd\"/>'\n }\n }\n};\nfunction detectIcon(name, config) {\n const filenameIcon = config?.filenameIcons?.[name];\n if (filenameIcon) {\n return filenameIcon;\n }\n const dotIdx = name.lastIndexOf(\".\");\n if (dotIdx > 0) {\n const ext = name.substring(dotIdx).toLowerCase();\n const extensionIcons = config?.extensionIcons;\n return extensionIcons?.[ext] ?? extensionIcons?.[ext.slice(1)];\n }\n return void 0;\n}\n__name(detectIcon, \"detectIcon\");\nfunction qualifyIcon(icon, defaultIconPack) {\n if (icon.includes(\":\")) {\n return icon;\n }\n if (icon in treeViewIcons.icons || !defaultIconPack) {\n return `${treeViewIcons.prefix}:${icon}`;\n }\n return `${defaultIconPack}:${icon}`;\n}\n__name(qualifyIcon, \"qualifyIcon\");\nfunction getNodeIcon(node, config) {\n if (node.icon === \"none\") {\n return void 0;\n }\n if (node.icon) {\n return qualifyIcon(node.icon, config.defaultIconPack);\n }\n if (!config.showIcons) {\n return void 0;\n }\n if (node.nodeType === \"file\") {\n const detected = detectIcon(node.name, config);\n if (detected === \"none\") {\n return void 0;\n }\n if (detected) {\n return qualifyIcon(detected, config.defaultIconPack);\n }\n }\n return `${treeViewIcons.prefix}:${node.nodeType === \"directory\" ? \"folder\" : \"file\"}`;\n}\n__name(getNodeIcon, \"getNodeIcon\");\n\n// src/diagrams/treeView/renderer.ts\nregisterIconPacks([\n {\n name: treeViewIcons.prefix,\n icons: treeViewIcons\n }\n]);\nvar ICON_SIZE = 14;\nvar ICON_GAP = 4;\nvar DESC_GAP = 16;\nvar iconSymbolId = /* @__PURE__ */ __name((diagramId, icon) => `tv-icon-${diagramId}-${icon.replace(/[^\\w-]/g, \"-\")}`, \"iconSymbolId\");\nvar injectIconDefs = /* @__PURE__ */ __name(async (svg, root, config, diagramId) => {\n const usedIcons = /* @__PURE__ */ new Set();\n const collect = /* @__PURE__ */ __name((node) => {\n const icon = getNodeIcon(node, config);\n if (icon) {\n usedIcons.add(icon);\n }\n node.children.forEach(collect);\n }, \"collect\");\n collect(root);\n if (usedIcons.size === 0) {\n return;\n }\n const iconSVGs = await Promise.all(\n [...usedIcons].map(async (icon) => ({\n icon,\n svg: await getIconSVG(icon, {\n height: ICON_SIZE,\n width: ICON_SIZE\n })\n }))\n );\n const defs = svg.append(\"defs\");\n for (const { icon, svg: iconSVG } of iconSVGs) {\n defs.append(\"g\").attr(\"id\", iconSymbolId(diagramId, icon)).html(iconSVG);\n }\n}, \"injectIconDefs\");\nvar positionLabel = /* @__PURE__ */ __name((x, y, node, domElem, config, diagramId) => {\n const nodeGroup = domElem.append(\"g\");\n let cssClasses = \"treeView-node-label\";\n if (node.nodeType === \"directory\") {\n cssClasses += \" treeView-node-dir\";\n }\n if (node.cssClass) {\n cssClasses += ` ${node.cssClass}`;\n }\n const iconOffset = ICON_SIZE + ICON_GAP;\n const icon = getNodeIcon(node, config);\n const showIcon = icon !== void 0;\n if (icon) {\n nodeGroup.append(\"use\").attr(\"xlink:href\", `#${iconSymbolId(diagramId, icon)}`).attr(\"x\", x + config.paddingX).attr(\"y\", y + config.paddingY).attr(\"class\", \"treeView-node-icon\");\n }\n const label = nodeGroup.append(\"text\").text(node.name).attr(\"dominant-baseline\", \"middle\").attr(\"class\", cssClasses);\n const { height: labelHeight, width: labelWidth } = label.node().getBBox();\n const height = labelHeight + config.paddingY * 2;\n const labelX = x + config.paddingX + (showIcon ? iconOffset : 0);\n label.attr(\"x\", labelX);\n label.attr(\"y\", y + height / 2);\n const labelRightEdge = labelX + labelWidth;\n const width = labelWidth + config.paddingX * 2 + (showIcon ? iconOffset : 0);\n node.BBox = { x, y, width, height };\n if (node.cssClass?.split(/\\s+/).includes(\"highlight\")) {\n nodeGroup.insert(\"rect\", \":first-child\").attr(\"x\", x).attr(\"y\", y + 1).attr(\"width\", 0).attr(\"height\", height - 2).attr(\"rx\", 3).attr(\"class\", \"treeView-highlight-bg\");\n }\n return { node, nodeGroup, labelRightEdge, centerY: y + height / 2 };\n}, \"positionLabel\");\nvar positionLine = /* @__PURE__ */ __name((domElem, x1, y1, x2, y2, lineThickness) => {\n return domElem.append(\"line\").attr(\"x1\", x1).attr(\"y1\", y1).attr(\"x2\", x2).attr(\"y2\", y2).attr(\"stroke-width\", lineThickness).attr(\"class\", \"treeView-node-line\");\n}, \"positionLine\");\nvar drawTree = /* @__PURE__ */ __name((elem, root, config, diagramId) => {\n let totalHeight = 0;\n let totalWidth = 0;\n const renderInfos = [];\n const drawNode = /* @__PURE__ */ __name((elem2, node, config2, depth) => {\n const indent = depth * (config2.rowIndent + config2.paddingX);\n const info = positionLabel(indent, totalHeight, node, elem2, config2, diagramId);\n renderInfos.push(info);\n const { height, width } = node.BBox;\n positionLine(\n elem2,\n indent - config2.rowIndent,\n totalHeight + height / 2,\n indent,\n totalHeight + height / 2,\n config2.lineThickness\n );\n totalWidth = Math.max(totalWidth, indent + width);\n totalHeight += height;\n }, \"drawNode\");\n const processNode = /* @__PURE__ */ __name((node, depth = 0) => {\n drawNode(elem, node, config, depth);\n node.children.forEach((child) => {\n processNode(child, depth + 1);\n });\n const { x, y, height } = node.BBox;\n if (node.children.length) {\n const { y: endY, height: endHeight } = node.children[node.children.length - 1].BBox;\n positionLine(\n elem,\n x + config.paddingX,\n y + height,\n x + config.paddingX,\n endY + endHeight / 2 + config.lineThickness / 2,\n config.lineThickness\n );\n }\n }, \"processNode\");\n processNode(root);\n const nodesWithDesc = renderInfos.filter((ri) => ri.node.description);\n if (nodesWithDesc.length > 0) {\n const maxLabelRight = Math.max(...renderInfos.map((ri) => ri.labelRightEdge));\n const descX = maxLabelRight + DESC_GAP;\n for (const ri of nodesWithDesc) {\n const desc = ri.nodeGroup.append(\"text\").text(ri.node.description).attr(\"dominant-baseline\", \"middle\").attr(\"class\", \"treeView-node-description\").attr(\"x\", descX).attr(\"y\", ri.centerY);\n const descBBox = desc.node().getBBox();\n totalWidth = Math.max(totalWidth, descX + descBBox.width + config.paddingX);\n }\n }\n for (const ri of renderInfos) {\n if (ri.node.cssClass?.split(/\\s+/).includes(\"highlight\")) {\n const rect = ri.nodeGroup.select(\".treeView-highlight-bg\");\n if (!rect.empty()) {\n const rectWidth = totalWidth - ri.node.BBox.x + 8;\n rect.attr(\"width\", rectWidth);\n totalWidth = Math.max(totalWidth, ri.node.BBox.x + rectWidth + 2);\n }\n }\n }\n return { totalHeight, totalWidth };\n}, \"drawTree\");\nvar draw = /* @__PURE__ */ __name(async (text, id, _ver, diagObj) => {\n log.debug(\"Rendering treeView diagram\\n\" + text);\n const db2 = diagObj.db;\n const root = db2.getRoot();\n const config = db2.getConfig();\n const svg = selectSvgElement(id);\n await injectIconDefs(svg, root, config, id);\n const treeElem = svg.append(\"g\");\n treeElem.attr(\"class\", \"tree-view\");\n const { totalHeight, totalWidth } = drawTree(treeElem, root, config, id);\n svg.attr(\"viewBox\", `-${config.lineThickness / 2} 0 ${totalWidth} ${totalHeight}`);\n configureSvgSize(svg, totalHeight, totalWidth, config.useMaxWidth);\n}, \"draw\");\nvar renderer = {\n draw\n};\nvar renderer_default = renderer;\n\n// src/diagrams/treeView/styles.ts\nvar defaultTreeViewDiagramStyles = {\n labelFontSize: \"16px\",\n labelColor: \"black\",\n lineColor: \"black\",\n iconColor: \"#546e7a\",\n descriptionColor: \"#6a9955\",\n highlightBg: \"rgba(255, 193, 7, 0.15)\",\n highlightStroke: \"#ffc107\"\n};\nvar styles = /* @__PURE__ */ __name(({\n treeView\n}) => {\n const {\n labelFontSize,\n labelColor,\n lineColor,\n iconColor,\n descriptionColor,\n highlightBg,\n highlightStroke\n } = cleanAndMerge(defaultTreeViewDiagramStyles, treeView);\n return `\n .treeView-node-label {\n font-size: ${labelFontSize};\n fill: ${labelColor};\n white-space: pre;\n }\n .treeView-node-dir {\n font-weight: bold;\n }\n .treeView-node-line {\n stroke: ${lineColor};\n }\n .treeView-node-icon {\n color: ${iconColor};\n }\n .treeView-node-description {\n font-size: ${labelFontSize};\n fill: ${descriptionColor};\n font-style: italic;\n white-space: pre;\n }\n .treeView-highlight-bg {\n fill: ${highlightBg};\n stroke: ${highlightStroke};\n stroke-width: 1;\n }\n `;\n}, \"styles\");\nvar styles_default = styles;\n\n// src/diagrams/treeView/diagram.ts\nvar diagram = {\n db: db_default,\n renderer: renderer_default,\n parser,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"names":["ALL_BOX_CHARS","BRANCH_CHAR","DASH_CHAR","DECORATION_ONLY","METADATA_LINE","COMMENT_LINE","INDENT_UNIT","isBoxDrawingFormat","lines","line","__name","inferSegmentWidth","contentLines","match","remapErrorLines","message","lineMap","lineStr","original","preprocessBoxDrawing","input","keywordIdx","i","contentLineTexts","segmentWidth","outputLines","outLineNo","trimmed","origLineNo","normalized","branchMatch","branchCol","depth","pos","content","indent","state","ImperativeState","clear2","clear","getRoot","getCount","defaultConfig","defaultConfig_default","getConfig2","cleanAndMerge","getConfig","addNode","level","name","nodeType","cssClass","icon","description","node","db","getAccTitle","getAccDescription","getDiagramTitle","setAccDescription","setAccTitle","setDiagramTitle","db_default","populate","ast","populateCommonDb","isDirectory","rawIcon","rawDesc","sanitizeText","parser","text","parse","log","error","treeViewIcons","detectIcon","config","filenameIcon","dotIdx","ext","extensionIcons","qualifyIcon","defaultIconPack","getNodeIcon","detected","registerIconPacks","ICON_SIZE","ICON_GAP","DESC_GAP","iconSymbolId","diagramId","injectIconDefs","svg","root","usedIcons","collect","iconSVGs","getIconSVG","defs","iconSVG","positionLabel","x","y","domElem","nodeGroup","cssClasses","iconOffset","showIcon","label","labelHeight","labelWidth","height","labelX","labelRightEdge","width","positionLine","x1","y1","x2","y2","lineThickness","drawTree","elem","totalHeight","totalWidth","renderInfos","drawNode","elem2","config2","info","processNode","child","endY","endHeight","nodesWithDesc","ri","descX","descBBox","rect","rectWidth","draw","id","_ver","diagObj","db2","selectSvgElement","treeElem","configureSvgSize","renderer","renderer_default","defaultTreeViewDiagramStyles","styles","treeView","labelFontSize","labelColor","lineColor","iconColor","descriptionColor","highlightBg","highlightStroke","styles_default","diagram"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,4 +1,4 @@
1
- import{p as re}from"./chunk-JWPE2WC7-DO9iwi6J.js";import{o as oe,n as se,s as de,g as le,a as ce,b as me,_ as o,l as g,c as T,d as ue,z as xe,p as fe,A as ge,y as M,B as he,i as y,w as P,ak as pe}from"./mermaid.core-ZtqQ8zsB.js";import{p as be,i as ve}from"./cynefin-VYW2F7L2-Bs1x5Hdp.js";import"./index-zEjyXfYx.js";var $="position frame",D="frame positioned",S="position relation",N="relation positioned",we=o(function(e){g.debug("options str",e)},"setOptions"),ye=o(function(){return{}},"getOptions"),Pe=o(function(){C(),fe()},"clear");function C(){B={}}o(C,"reset");var Se=he.eventmodeling,ke=o(()=>ge({...Se,...M().eventmodeling}),"getConfig"),B={};function O(){let e=Fe;const{ast:n}=B,t=E();if(!n)throw new Error("No data for EventModel");return n.frames.forEach((i,a)=>{const r=G(i,n.dataEntities,t);e=v(e,{$kind:$,index:a,frame:i,textProps:r});let d;K(i)?(g.debug("source frame",i.sourceFrames),d=n.frames.filter(l=>i.sourceFrames.some(c=>c.$refText===l.name)),d.forEach(l=>{e=v(e,{$kind:S,index:a,frame:i,sourceFrame:l})})):e=v(e,{$kind:S,index:a,frame:i})}),e={...e,sortedSwimlanesArray:A(e.swimlanes)},e}o(O,"getState");function I(e){B.ast=e}o(I,"setAst");var s={swimlaneMinHeight:70,swimlanePadding:15,swimlaneGap:10,boxPadding:10,boxOverlap:90,boxDefaultY:0,boxMinWidth:80,boxMaxWidth:450,boxMinHeight:80,boxMaxHeight:750,contentStartX:250,textMaxWidth:450-2*10,boxTextFontWeight:"bold",boxTextPadding:10,swimlaneTextFontWeight:"bold",labelUiAutomation:"UI/Automation",labelUiAutomationPrefix:"UI/A: ",labelCommandReadModel:"Command/Read Model",labelCommandReadModelPrefix:"C/RM: ",labelEvents:"Events",labelEventsPrefix:"Stream: "};function E(){return s}o(E,"getDiagramProps");var Fe={boxes:[],swimlanes:{},relations:[],maxR:0,sortedSwimlanesArray:[]};function W(e){const n=e.split(".");if(n.length===2)return n[0]}o(W,"extractNamespace");function H(e){const n=e.split(".");return n.length===2?n[1]:e}o(H,"extractName");function U(e,n){if(!(!n||n.length===0))return Object.values(e).find(t=>t.namespace===n)}o(U,"findSwimlaneByNamespace");function b(e,n,t){return Math.max(n,...Object.keys(e).filter(i=>{const a=Number.parseInt(i);return a>n&&a<t}).map(i=>Number.parseInt(i)))+1}o(b,"findNextAvailableIndex");function _(e,n){const t=W(e.entityIdentifier),i=U(n,t);switch(e.modelEntityType){case"ui":case"pcr":case"processor":return i?{index:i.index,label:i.namespace||s.labelUiAutomation}:t?{index:b(n,0,100),label:s.labelUiAutomationPrefix+t}:{index:0,label:s.labelUiAutomation};case"rmo":case"readmodel":case"cmd":case"command":return i?{index:i.index,label:i.namespace||s.labelCommandReadModel}:t?{index:b(n,100,200),label:s.labelCommandReadModelPrefix+t}:{index:100,label:s.labelCommandReadModel};case"evt":case"event":default:return i?{index:i.index,label:i.namespace||s.labelEvents}:t?{index:b(n,200,300),label:s.labelEventsPrefix+t}:{index:200,label:s.labelEvents}}}o(_,"calculateSwimlaneProps");function L(e){const{themeVariables:n}=M();switch(e.modelEntityType){case"ui":return{fill:n.emUiFill??"white",stroke:n.emUiStroke??"#dbdada"};case"pcr":case"processor":return{fill:n.emProcessorFill??"#edb3f6",stroke:n.emProcessorStroke??"#b88cbf"};case"rmo":case"readmodel":return{fill:n.emReadModelFill??"#d3f1a2",stroke:n.emReadModelStroke??"#a3b732"};case"cmd":case"command":return{fill:n.emCommandFill??"#bcd6fe",stroke:n.emCommandStroke??"#679ac3"};case"evt":case"event":return{fill:n.emEventFill??"#ffb778",stroke:n.emEventStroke??"#c19a0f"};default:return{fill:"red",stroke:"black"}}}o(L,"calculateEntityVisualProps");function G(e,n,t){const i=M(),a=y(H(e.entityIdentifier)??"",i);let r;const d={fontSize:16,fontWeight:700,fontFamily:'"trebuchet ms", verdana, arial, sans-serif',joinWith:"<br/>"};let c=`<b>${P(a,t.textMaxWidth,d)}</b>`;if(e.dataInlineValue&&(r=e.dataInlineValue,r=r.substring(r.indexOf("{")+1),r=r.substring(0,r.lastIndexOf("}")-1),r=y(r,i),r=P(r,t.textMaxWidth,d),r=r.replaceAll(" ","&nbsp;")),e.dataReference){const p=n.find(w=>w.name===e.dataReference?.$refText);p&&(r=p.dataBlockValue,r=r.substring(r.indexOf(`{
1
+ import{p as re}from"./chunk-JWPE2WC7-B-sIaUe_.js";import{o as oe,n as se,s as de,g as le,a as ce,b as me,_ as o,l as g,c as T,d as ue,z as xe,p as fe,A as ge,y as M,B as he,i as y,w as P,ak as pe}from"./mermaid.core-Bo5ITjWV.js";import{p as be,i as ve}from"./cynefin-VYW2F7L2-BoKcfef3.js";import"./index-BWJKsro0.js";var $="position frame",D="frame positioned",S="position relation",N="relation positioned",we=o(function(e){g.debug("options str",e)},"setOptions"),ye=o(function(){return{}},"getOptions"),Pe=o(function(){C(),fe()},"clear");function C(){B={}}o(C,"reset");var Se=he.eventmodeling,ke=o(()=>ge({...Se,...M().eventmodeling}),"getConfig"),B={};function O(){let e=Fe;const{ast:n}=B,t=E();if(!n)throw new Error("No data for EventModel");return n.frames.forEach((i,a)=>{const r=G(i,n.dataEntities,t);e=v(e,{$kind:$,index:a,frame:i,textProps:r});let d;K(i)?(g.debug("source frame",i.sourceFrames),d=n.frames.filter(l=>i.sourceFrames.some(c=>c.$refText===l.name)),d.forEach(l=>{e=v(e,{$kind:S,index:a,frame:i,sourceFrame:l})})):e=v(e,{$kind:S,index:a,frame:i})}),e={...e,sortedSwimlanesArray:A(e.swimlanes)},e}o(O,"getState");function I(e){B.ast=e}o(I,"setAst");var s={swimlaneMinHeight:70,swimlanePadding:15,swimlaneGap:10,boxPadding:10,boxOverlap:90,boxDefaultY:0,boxMinWidth:80,boxMaxWidth:450,boxMinHeight:80,boxMaxHeight:750,contentStartX:250,textMaxWidth:450-2*10,boxTextFontWeight:"bold",boxTextPadding:10,swimlaneTextFontWeight:"bold",labelUiAutomation:"UI/Automation",labelUiAutomationPrefix:"UI/A: ",labelCommandReadModel:"Command/Read Model",labelCommandReadModelPrefix:"C/RM: ",labelEvents:"Events",labelEventsPrefix:"Stream: "};function E(){return s}o(E,"getDiagramProps");var Fe={boxes:[],swimlanes:{},relations:[],maxR:0,sortedSwimlanesArray:[]};function W(e){const n=e.split(".");if(n.length===2)return n[0]}o(W,"extractNamespace");function H(e){const n=e.split(".");return n.length===2?n[1]:e}o(H,"extractName");function U(e,n){if(!(!n||n.length===0))return Object.values(e).find(t=>t.namespace===n)}o(U,"findSwimlaneByNamespace");function b(e,n,t){return Math.max(n,...Object.keys(e).filter(i=>{const a=Number.parseInt(i);return a>n&&a<t}).map(i=>Number.parseInt(i)))+1}o(b,"findNextAvailableIndex");function _(e,n){const t=W(e.entityIdentifier),i=U(n,t);switch(e.modelEntityType){case"ui":case"pcr":case"processor":return i?{index:i.index,label:i.namespace||s.labelUiAutomation}:t?{index:b(n,0,100),label:s.labelUiAutomationPrefix+t}:{index:0,label:s.labelUiAutomation};case"rmo":case"readmodel":case"cmd":case"command":return i?{index:i.index,label:i.namespace||s.labelCommandReadModel}:t?{index:b(n,100,200),label:s.labelCommandReadModelPrefix+t}:{index:100,label:s.labelCommandReadModel};case"evt":case"event":default:return i?{index:i.index,label:i.namespace||s.labelEvents}:t?{index:b(n,200,300),label:s.labelEventsPrefix+t}:{index:200,label:s.labelEvents}}}o(_,"calculateSwimlaneProps");function L(e){const{themeVariables:n}=M();switch(e.modelEntityType){case"ui":return{fill:n.emUiFill??"white",stroke:n.emUiStroke??"#dbdada"};case"pcr":case"processor":return{fill:n.emProcessorFill??"#edb3f6",stroke:n.emProcessorStroke??"#b88cbf"};case"rmo":case"readmodel":return{fill:n.emReadModelFill??"#d3f1a2",stroke:n.emReadModelStroke??"#a3b732"};case"cmd":case"command":return{fill:n.emCommandFill??"#bcd6fe",stroke:n.emCommandStroke??"#679ac3"};case"evt":case"event":return{fill:n.emEventFill??"#ffb778",stroke:n.emEventStroke??"#c19a0f"};default:return{fill:"red",stroke:"black"}}}o(L,"calculateEntityVisualProps");function G(e,n,t){const i=M(),a=y(H(e.entityIdentifier)??"",i);let r;const d={fontSize:16,fontWeight:700,fontFamily:'"trebuchet ms", verdana, arial, sans-serif',joinWith:"<br/>"};let c=`<b>${P(a,t.textMaxWidth,d)}</b>`;if(e.dataInlineValue&&(r=e.dataInlineValue,r=r.substring(r.indexOf("{")+1),r=r.substring(0,r.lastIndexOf("}")-1),r=y(r,i),r=P(r,t.textMaxWidth,d),r=r.replaceAll(" ","&nbsp;")),e.dataReference){const p=n.find(w=>w.name===e.dataReference?.$refText);p&&(r=p.dataBlockValue,r=r.substring(r.indexOf(`{
2
2
  `)+2),r=r.substring(0,r.lastIndexOf("}")-1),r=y(r,i),r=P(r,t.textMaxWidth,d),r=r.replaceAll(" ","&nbsp;"),r+="<br/>")}const m=r!==void 0;m&&(c+=`<br/><br/><code style="text-align: left; display: block;max-width:${t.textMaxWidth}px">${r}</code>`);const x={fontSize:d.fontSize,fontWeight:d.fontWeight,fontFamily:d.fontFamily},u=pe(c,x),h=m?u.width/3:u.width,f={content:c,width:h,height:u.height};return g.debug(`[${e.name}] ${e.entityIdentifier} text`,f),f}o(G,"calculateTextProps");function V(e,n){const t=n,i=L(t.frame),a={width:t.textProps.width+2*s.boxTextPadding,height:t.textProps.height+2*s.boxTextPadding};return[{$kind:D,frame:t.frame,index:t.index,visual:i,dimension:a,textProps:t.textProps}]}o(V,"decidePositionFrame");function X(e,n,t){return n===void 0?s.contentStartX:n.index===e.index&&e.r?e.r+s.boxPadding:t===void 0?s.contentStartX:t.r-s.boxOverlap+s.boxPadding}o(X,"calculateX");function j(e,n){const t=[...e.map(i=>i.r),n];return Math.max(...t)}o(j,"calculateMaxRight");function A(e){return Object.values(e).sort((n,t)=>n.index-t.index)}o(A,"sortedSwimlanesArray");function Y(e,n){const t=n,i=_(t.frame,e.swimlanes);let a;i.index in e.swimlanes?a=e.swimlanes[i.index]:a={index:i.index,label:i.label,r:0,y:i.index*s.swimlaneMinHeight+s.swimlaneGap,height:s.swimlaneMinHeight,maxHeight:s.swimlaneMinHeight};const r=e.boxes.length>0?e.boxes[e.boxes.length-1]:void 0,d=e.previousSwimlaneNumber!==void 0?e.swimlanes[e.previousSwimlaneNumber]:void 0,l={width:Math.max(s.boxMinWidth,Math.min(s.boxMaxWidth,t.dimension.width))+2*s.boxPadding,height:Math.max(s.boxMinHeight,Math.min(s.boxMaxHeight,t.dimension.height))+2*s.boxPadding},c=X(a,d,r),m=c+l.width+s.boxPadding,x=j(Object.values(e.swimlanes),m);a.r=c+l.width,a.maxHeight=Math.max(a.maxHeight,l.height),a.height=Math.max(s.swimlaneMinHeight,a.maxHeight)+2*s.swimlanePadding;const u={x:c,y:s.swimlanePadding+a.y,r:m,dimension:l,leftSibling:!1,swimlane:a,visual:t.visual,text:t.textProps.content,frame:t.frame,index:t.index},h={...e,boxes:[...e.boxes,u],swimlanes:{...e.swimlanes,[`${a.index}`]:a},previousSwimlaneNumber:i.index,previousFrame:t.frame,maxR:x},f=A(h.swimlanes);f.length>0&&(f[0].y=0);for(let p=1;p<f.length;p++){const w=f[p],R=f[p-1];w.y=R.y+R.height+s.swimlaneGap}return h}o(Y,"evolveFramePositioned");function z(e,n){return e===0&&n.sourceFrames.length===0}o(z,"isFirstFrame");function K(e){return e.sourceFrames!==void 0&&e.sourceFrames!==null&&e.sourceFrames.length>0}o(K,"hasSourceFrame");function k(e,n){if(n!=null)return e.find(t=>t.frame.name===n.name)}o(k,"findBoxByFrame");function q(e,n,t){if(!(t<0))for(let i=t;i>=0;i--){const a=e[i];if(a.swimlane.index!==n)return a}}o(q,"findBoxByLineIndex");function J(e,n){const t=n;if(ve(t.frame)||z(t.index,t.frame))return[];const i=k(e.boxes,t.frame);if(i===void 0)throw new Error(`Target box not found for frame ${t.frame.name}`);let a;return t.sourceFrame?a=k(e.boxes,t.sourceFrame):a=q(e.boxes,i.swimlane.index,t.index-1),a===void 0?[]:[{$kind:N,frame:t.frame,index:t.index,sourceBox:a,targetBox:i}]}o(J,"decidePositionRelation");function Q(e,n){const t=n,i={visual:{fill:"none",stroke:"#000"},source:{x:t.sourceBox.x,y:t.sourceBox.y},target:{x:t.targetBox.x,y:t.targetBox.y},sourceBox:t.sourceBox,targetBox:t.targetBox};return{...e,relations:[...e.relations,i]}}o(Q,"evolveRelationPositioned");var Me={[$]:V,[S]:J},Be={[D]:Y,[N]:Q};function Z(e,n){const t=Me[n.$kind];if(t==null)return[];const i=t(e,n);return g.debug("decided events",i),i}o(Z,"decide");function ee(e,n){const t=n.reduce((i,a)=>{const r=Be[a.$kind];return r==null?i:r(i,a)},e);return g.debug("evolve events",{state:e,newState:t,events:n}),t}o(ee,"evolve");function v(e,n){const t=Z(e,n);return ee(e,t)}o(v,"dispatch");var F={getConfig:ke,setOptions:we,getOptions:ye,clear:Pe,setAccTitle:me,getAccTitle:ce,getAccDescription:le,setAccDescription:de,setDiagramTitle:se,getDiagramTitle:oe,setAst:I,getDiagramProps:E,getState:O},Ee={parse:o(async e=>{const n=await be("eventmodeling",e);g.debug(n),F.setAst(n),re(n,F)},"parse")},Ae=T(),Re=Ae?.eventmodeling;function te(e,n){return t=>{const i=t.swimlane.y+n.swimlanePadding,a=e.append("g").attr("class","em-box");a.append("rect").attr("x",t.x).attr("y",i).attr("rx","3").attr("width",t.dimension.width).attr("height",t.dimension.height).attr("stroke",t.visual.stroke).attr("fill",t.visual.fill),a.append("foreignObject").attr("x",t.x+n.boxPadding).attr("y",i+10).attr("width",t.dimension.width-2*n.boxPadding).attr("height",t.dimension.height-2*n.boxPadding).append("xhtml:div").style("display","table").style("height","100%").style("width","100%").append("span").style("display","table-cell").style("text-align","center").style("vertical-align","middle").html(t.text)}}o(te,"renderD3Box");function ne(e,n){return e>n}o(ne,"dirUpwards");function ie(e,n,t,i){return a=>{const r=a.sourceBox.swimlane.y+n.swimlanePadding,d=a.targetBox.swimlane.y+n.swimlanePadding,l=ne(r,d),c=a.sourceBox.x+a.sourceBox.dimension.width*2/3,m=a.targetBox.x+a.targetBox.dimension.width/3;let x,u;g.debug(`rendering relation up=${l} for `,{sourceBox:a.sourceBox,targetBox:a.targetBox}),l?(x=r,u=d+a.targetBox.dimension.height):(x=r+a.sourceBox.dimension.height,u=d);const h=i.emRelationStroke??a.visual.stroke;e.append("path").attr("class","em-relation").attr("fill",a.visual.fill).attr("stroke",h).attr("stroke-width","1").attr("marker-end",`url(#${t})`).attr("d",`M${c} ${x} L${m} ${u}`)}}o(ie,"renderD3Relation");function ae(e,n,t,i){return a=>{const r=e.append("g").attr("class","em-swimlane"),d=i.emSwimlaneBackgroundOdd??"rgb(250,250,250)",l=i.emSwimlaneBackgroundStroke??"rgb(240,240,240)";r.append("rect").attr("x",0).attr("y",a.y).attr("rx","3").attr("width",n+t.swimlanePadding).attr("height",a.height).attr("fill",d).attr("stroke",l),r.append("text").attr("font-weight",t.swimlaneTextFontWeight).attr("x",30).attr("y",a.y+30).text(a.label)}}o(ae,"renderD3Swimlane");var Te=o(function(e,n,t,i){if(g.debug("in eventmodeling renderer",e+`
3
3
  `,"id:",n,t),!Re)throw new Error("EventModeling config not found");const a=i.db,{themeVariables:r,eventmodeling:d}=T(),l=ue(`[id="${n}"]`),c=a.getDiagramProps(),m=a.getState(),x=`em-arrowhead-${n}`,u=r.emArrowhead??"#000000";m.sortedSwimlanesArray.forEach(ae(l,m.maxR,c,r)),m.boxes.forEach(te(l,c)),m.relations.forEach(ie(l,c,x,r)),l.append("defs").append("marker").attr("id",x).attr("markerWidth","10").attr("markerHeight","7").attr("refX","10").attr("refY","3.5").attr("orient","auto").append("polygon").attr("points","0 0, 10 3.5, 0 7").attr("fill",u),xe(void 0,l,d?.padding??30,d?.useMaxWidth)},"draw"),$e={draw:Te},De=o(e=>"","getStyles"),Ne=De,He={parser:Ee,db:F,renderer:$e,styles:Ne};export{He as diagram};
4
- //# sourceMappingURL=diagram-B4RE2ZJO-DUbP1jlq.js.map
4
+ //# sourceMappingURL=diagram-B4RE2ZJO-DZDYOecW.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagram-B4RE2ZJO-DUbP1jlq.js","sources":["../../../node_modules/mermaid/dist/chunks/mermaid.core/diagram-B4RE2ZJO.mjs"],"sourcesContent":["import {\n populateCommonDb\n} from \"./chunk-JWPE2WC7.mjs\";\nimport {\n calculateTextDimensions,\n cleanAndMerge,\n wrapLabel\n} from \"./chunk-NSK5VX7P.mjs\";\nimport {\n clear,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getConfig2,\n getDiagramTitle,\n sanitizeText,\n setAccDescription,\n setAccTitle,\n setDiagramTitle,\n setupGraphViewbox2 as setupGraphViewbox\n} from \"./chunk-I66GZJ75.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/eventmodeling/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\n\n// src/diagrams/eventmodeling/db.ts\nimport { isEmResetFrame } from \"@mermaid-js/parser\";\n\n// src/diagrams/eventmodeling/types.ts\nvar PositionFrameKind = \"position frame\";\nvar FramePositionedKind = \"frame positioned\";\nvar PositionRelationKind = \"position relation\";\nvar RelationPositionedKind = \"relation positioned\";\n\n// src/diagrams/eventmodeling/db.ts\nvar setOptions = /* @__PURE__ */ __name(function(_rawOptString) {\n log.debug(\"options str\", _rawOptString);\n}, \"setOptions\");\nvar getOptions = /* @__PURE__ */ __name(function() {\n return {};\n}, \"getOptions\");\nvar clear2 = /* @__PURE__ */ __name(function() {\n reset();\n clear();\n}, \"clear\");\nfunction reset() {\n store = {};\n}\n__name(reset, \"reset\");\nvar DEFAULT_EVENTMODELING_CONFIG = defaultConfig_default.eventmodeling;\nvar getConfig3 = /* @__PURE__ */ __name(() => {\n const config = cleanAndMerge({\n ...DEFAULT_EVENTMODELING_CONFIG,\n ...getConfig().eventmodeling\n });\n return config;\n}, \"getConfig\");\nvar store = {};\nfunction getState() {\n let state = initial;\n const { ast } = store;\n const diagramProps2 = getDiagramProps();\n if (!ast) {\n throw new Error(\"No data for EventModel\");\n }\n ast.frames.forEach((frame, index) => {\n const textProps = calculateTextProps(frame, ast.dataEntities, diagramProps2);\n state = dispatch(state, {\n $kind: PositionFrameKind,\n index,\n frame,\n textProps\n });\n let sourceFrames = void 0;\n if (hasSourceFrame(frame)) {\n log.debug(`source frame`, frame.sourceFrames);\n sourceFrames = ast.frames.filter((currentFrame) => {\n return frame.sourceFrames.some((sf) => sf.$refText === currentFrame.name);\n });\n sourceFrames.forEach((sourceFrame) => {\n state = dispatch(state, {\n $kind: PositionRelationKind,\n index,\n frame,\n sourceFrame\n });\n });\n } else {\n state = dispatch(state, {\n $kind: PositionRelationKind,\n index,\n frame\n });\n }\n });\n state = {\n ...state,\n sortedSwimlanesArray: sortedSwimlanesArray(state.swimlanes)\n };\n return state;\n}\n__name(getState, \"getState\");\nfunction setAst(ast) {\n store.ast = ast;\n}\n__name(setAst, \"setAst\");\nvar diagramProps = {\n swimlaneMinHeight: 70,\n swimlanePadding: 15,\n swimlaneGap: 10,\n boxPadding: 10,\n boxOverlap: 90,\n boxDefaultY: 0,\n boxMinWidth: 80,\n boxMaxWidth: 450,\n boxMinHeight: 80,\n boxMaxHeight: 750,\n contentStartX: 250,\n textMaxWidth: 450 - 2 * 10,\n boxTextFontWeight: \"bold\",\n boxTextPadding: 10,\n swimlaneTextFontWeight: \"bold\",\n labelUiAutomation: \"UI/Automation\",\n labelUiAutomationPrefix: \"UI/A: \",\n labelCommandReadModel: \"Command/Read Model\",\n labelCommandReadModelPrefix: \"C/RM: \",\n labelEvents: \"Events\",\n labelEventsPrefix: \"Stream: \"\n};\nfunction getDiagramProps() {\n return diagramProps;\n}\n__name(getDiagramProps, \"getDiagramProps\");\nvar initial = {\n boxes: [],\n swimlanes: {},\n relations: [],\n maxR: 0,\n sortedSwimlanesArray: []\n};\nfunction extractNamespace(entityIdentifier) {\n const spl = entityIdentifier.split(\".\");\n if (spl.length === 2) {\n return spl[0];\n }\n return void 0;\n}\n__name(extractNamespace, \"extractNamespace\");\nfunction extractName(entityIdentifier) {\n const spl = entityIdentifier.split(\".\");\n if (spl.length === 2) {\n return spl[1];\n }\n return entityIdentifier;\n}\n__name(extractName, \"extractName\");\nfunction findSwimlaneByNamespace(swimlanes, namespace) {\n if (!namespace || namespace.length === 0) {\n return void 0;\n }\n return Object.values(swimlanes).find((swimlane) => swimlane.namespace === namespace);\n}\n__name(findSwimlaneByNamespace, \"findSwimlaneByNamespace\");\nfunction findNextAvailableIndex(swimlanes, boundaryMin, boundaryMax) {\n return Math.max(\n boundaryMin,\n ...Object.keys(swimlanes).filter((key) => {\n const index = Number.parseInt(key);\n return index > boundaryMin && index < boundaryMax;\n }).map((key) => Number.parseInt(key))\n ) + 1;\n}\n__name(findNextAvailableIndex, \"findNextAvailableIndex\");\nfunction calculateSwimlaneProps(frame, swimlanes) {\n const namespace = extractNamespace(frame.entityIdentifier);\n const sw = findSwimlaneByNamespace(swimlanes, namespace);\n switch (frame.modelEntityType) {\n case \"ui\":\n case \"pcr\":\n case \"processor\":\n if (sw) {\n return {\n index: sw.index,\n label: sw.namespace || diagramProps.labelUiAutomation\n };\n } else if (namespace) {\n return {\n index: findNextAvailableIndex(swimlanes, 0, 100),\n label: diagramProps.labelUiAutomationPrefix + namespace\n };\n }\n return { index: 0, label: diagramProps.labelUiAutomation };\n case \"rmo\":\n case \"readmodel\":\n case \"cmd\":\n case \"command\":\n if (sw) {\n return {\n index: sw.index,\n label: sw.namespace || diagramProps.labelCommandReadModel\n };\n } else if (namespace) {\n return {\n index: findNextAvailableIndex(swimlanes, 100, 200),\n label: diagramProps.labelCommandReadModelPrefix + namespace\n };\n }\n return { index: 100, label: diagramProps.labelCommandReadModel };\n case \"evt\":\n case \"event\":\n default:\n if (sw) {\n return {\n index: sw.index,\n label: sw.namespace || diagramProps.labelEvents\n };\n } else if (namespace) {\n return {\n index: findNextAvailableIndex(swimlanes, 200, 300),\n label: diagramProps.labelEventsPrefix + namespace\n };\n }\n return { index: 200, label: diagramProps.labelEvents };\n }\n}\n__name(calculateSwimlaneProps, \"calculateSwimlaneProps\");\nfunction calculateEntityVisualProps(frame) {\n const { themeVariables } = getConfig();\n switch (frame.modelEntityType) {\n case \"ui\":\n return {\n fill: themeVariables.emUiFill ?? \"white\",\n stroke: themeVariables.emUiStroke ?? \"#dbdada\"\n };\n case \"pcr\":\n case \"processor\":\n return {\n fill: themeVariables.emProcessorFill ?? \"#edb3f6\",\n stroke: themeVariables.emProcessorStroke ?? \"#b88cbf\"\n };\n case \"rmo\":\n case \"readmodel\":\n return {\n fill: themeVariables.emReadModelFill ?? \"#d3f1a2\",\n stroke: themeVariables.emReadModelStroke ?? \"#a3b732\"\n };\n case \"cmd\":\n case \"command\":\n return {\n fill: themeVariables.emCommandFill ?? \"#bcd6fe\",\n stroke: themeVariables.emCommandStroke ?? \"#679ac3\"\n };\n case \"evt\":\n case \"event\":\n return {\n fill: themeVariables.emEventFill ?? \"#ffb778\",\n stroke: themeVariables.emEventStroke ?? \"#c19a0f\"\n };\n default:\n return {\n fill: \"red\",\n stroke: \"black\"\n };\n }\n}\n__name(calculateEntityVisualProps, \"calculateEntityVisualProps\");\nfunction calculateTextProps(frame, dataEntities, diagramProps2) {\n const config = getConfig();\n const name = sanitizeText(extractName(frame.entityIdentifier) ?? \"\", config);\n let toHtml;\n const wrapLabelConfig = {\n fontSize: 16,\n fontWeight: 700,\n fontFamily: '\"trebuchet ms\", verdana, arial, sans-serif',\n joinWith: \"<br/>\"\n };\n const wrappedName = wrapLabel(name, diagramProps2.textMaxWidth, wrapLabelConfig);\n let content = `<b>${wrappedName}</b>`;\n if (frame.dataInlineValue) {\n toHtml = frame.dataInlineValue;\n toHtml = toHtml.substring(toHtml.indexOf(\"{\") + 1);\n toHtml = toHtml.substring(0, toHtml.lastIndexOf(\"}\") - 1);\n toHtml = sanitizeText(toHtml, config);\n toHtml = wrapLabel(toHtml, diagramProps2.textMaxWidth, wrapLabelConfig);\n toHtml = toHtml.replaceAll(\" \", \"&nbsp;\");\n }\n if (frame.dataReference) {\n const dataEntity = dataEntities.find(\n (dataEntity2) => dataEntity2.name === frame.dataReference?.$refText\n );\n if (dataEntity) {\n toHtml = dataEntity.dataBlockValue;\n toHtml = toHtml.substring(toHtml.indexOf(\"{\\n\") + 2);\n toHtml = toHtml.substring(0, toHtml.lastIndexOf(\"}\") - 1);\n toHtml = sanitizeText(toHtml, config);\n toHtml = wrapLabel(toHtml, diagramProps2.textMaxWidth, wrapLabelConfig);\n toHtml = toHtml.replaceAll(\" \", \"&nbsp;\");\n toHtml += `<br/>`;\n }\n }\n const hasRenderedData = toHtml !== void 0;\n if (hasRenderedData) {\n content += `<br/><br/><code style=\"text-align: left; display: block;max-width:${diagramProps2.textMaxWidth}px\">${toHtml}</code>`;\n }\n const textDimensionConfig = {\n fontSize: wrapLabelConfig.fontSize,\n fontWeight: wrapLabelConfig.fontWeight,\n fontFamily: wrapLabelConfig.fontFamily\n };\n const dimensions = calculateTextDimensions(content, textDimensionConfig);\n const calculatedWidthFix = hasRenderedData ? dimensions.width / 3 : dimensions.width;\n const props = {\n content,\n width: calculatedWidthFix,\n height: dimensions.height\n };\n log.debug(`[${frame.name}] ${frame.entityIdentifier} text`, props);\n return props;\n}\n__name(calculateTextProps, \"calculateTextProps\");\nfunction decidePositionFrame(state, _command) {\n const command = _command;\n const visual = calculateEntityVisualProps(command.frame);\n const dimension = {\n width: command.textProps.width + 2 * diagramProps.boxTextPadding,\n height: command.textProps.height + 2 * diagramProps.boxTextPadding\n };\n const event = {\n $kind: FramePositionedKind,\n frame: command.frame,\n index: command.index,\n visual,\n dimension,\n textProps: command.textProps\n };\n return [event];\n}\n__name(decidePositionFrame, \"decidePositionFrame\");\nfunction calculateX(swimlane, previousSwimlane, lastBox) {\n if (previousSwimlane === void 0) {\n return diagramProps.contentStartX;\n }\n if (previousSwimlane.index === swimlane.index && swimlane.r) {\n return swimlane.r + diagramProps.boxPadding;\n }\n if (lastBox === void 0) {\n return diagramProps.contentStartX;\n }\n return lastBox.r - diagramProps.boxOverlap + diagramProps.boxPadding;\n}\n__name(calculateX, \"calculateX\");\nfunction calculateMaxRight(swimlanes, swimlaneR) {\n const rs = [...swimlanes.map((s) => s.r), swimlaneR];\n return Math.max(...rs);\n}\n__name(calculateMaxRight, \"calculateMaxRight\");\nfunction sortedSwimlanesArray(swimlanes) {\n return Object.values(swimlanes).sort((a, b) => a.index - b.index);\n}\n__name(sortedSwimlanesArray, \"sortedSwimlanesArray\");\nfunction evolveFramePositioned(state, _event) {\n const event = _event;\n const swimlaneProps = calculateSwimlaneProps(event.frame, state.swimlanes);\n let swimlane;\n if (swimlaneProps.index in state.swimlanes) {\n swimlane = state.swimlanes[swimlaneProps.index];\n } else {\n swimlane = {\n index: swimlaneProps.index,\n label: swimlaneProps.label,\n r: 0,\n y: swimlaneProps.index * diagramProps.swimlaneMinHeight + diagramProps.swimlaneGap,\n height: diagramProps.swimlaneMinHeight,\n maxHeight: diagramProps.swimlaneMinHeight\n };\n }\n const lastBox = state.boxes.length > 0 ? state.boxes[state.boxes.length - 1] : void 0;\n const previousSwimlane = state.previousSwimlaneNumber !== void 0 ? state.swimlanes[state.previousSwimlaneNumber] : void 0;\n const dimension = {\n width: Math.max(\n diagramProps.boxMinWidth,\n Math.min(diagramProps.boxMaxWidth, event.dimension.width)\n ) + 2 * diagramProps.boxPadding,\n height: Math.max(\n diagramProps.boxMinHeight,\n Math.min(diagramProps.boxMaxHeight, event.dimension.height)\n ) + 2 * diagramProps.boxPadding\n };\n const x = calculateX(swimlane, previousSwimlane, lastBox);\n const r = x + dimension.width + diagramProps.boxPadding;\n const maxR = calculateMaxRight(Object.values(state.swimlanes), r);\n swimlane.r = x + dimension.width;\n swimlane.maxHeight = Math.max(swimlane.maxHeight, dimension.height);\n swimlane.height = Math.max(diagramProps.swimlaneMinHeight, swimlane.maxHeight) + 2 * diagramProps.swimlanePadding;\n const box = {\n x,\n y: diagramProps.swimlanePadding + swimlane.y,\n // y: diagramProps.swimlanePadding + (swimlane.y || diagramProps.boxDefaultY),\n r,\n dimension,\n leftSibling: false,\n swimlane,\n visual: event.visual,\n text: event.textProps.content,\n frame: event.frame,\n index: event.index\n };\n const newState = {\n ...state,\n boxes: [...state.boxes, box],\n swimlanes: {\n ...state.swimlanes,\n [`${swimlane.index}`]: swimlane\n },\n previousSwimlaneNumber: swimlaneProps.index,\n previousFrame: event.frame,\n maxR\n };\n const swimlanes = sortedSwimlanesArray(newState.swimlanes);\n if (swimlanes.length > 0) {\n swimlanes[0].y = 0;\n }\n for (let i = 1; i < swimlanes.length; i++) {\n const sw = swimlanes[i];\n const prevSw = swimlanes[i - 1];\n sw.y = prevSw.y + prevSw.height + diagramProps.swimlaneGap;\n }\n return newState;\n}\n__name(evolveFramePositioned, \"evolveFramePositioned\");\nfunction isFirstFrame(index, frame) {\n if (index === 0 && frame.sourceFrames.length === 0) {\n return true;\n }\n return false;\n}\n__name(isFirstFrame, \"isFirstFrame\");\nfunction hasSourceFrame(frame) {\n return frame.sourceFrames !== void 0 && frame.sourceFrames !== null && frame.sourceFrames.length > 0;\n}\n__name(hasSourceFrame, \"hasSourceFrame\");\nfunction findBoxByFrame(boxes, frame) {\n if (frame === void 0 || frame === null) {\n return void 0;\n }\n return boxes.find((box) => box.frame.name === frame.name);\n}\n__name(findBoxByFrame, \"findBoxByFrame\");\nfunction findBoxByLineIndex(boxes, targetSwimlane, lineIndex) {\n if (lineIndex < 0) {\n return void 0;\n }\n for (let i = lineIndex; i >= 0; i--) {\n const box = boxes[i];\n if (box.swimlane.index !== targetSwimlane) {\n return box;\n }\n }\n return void 0;\n}\n__name(findBoxByLineIndex, \"findBoxByLineIndex\");\nfunction decidePositionRelation(state, _command) {\n const command = _command;\n if (isEmResetFrame(command.frame) || isFirstFrame(command.index, command.frame)) {\n return [];\n }\n const targetBox = findBoxByFrame(state.boxes, command.frame);\n if (targetBox === void 0) {\n throw new Error(`Target box not found for frame ${command.frame.name}`);\n }\n let sourceBox;\n if (command.sourceFrame) {\n sourceBox = findBoxByFrame(state.boxes, command.sourceFrame);\n } else {\n sourceBox = findBoxByLineIndex(state.boxes, targetBox.swimlane.index, command.index - 1);\n }\n if (sourceBox === void 0) {\n return [];\n }\n const event = {\n $kind: RelationPositionedKind,\n frame: command.frame,\n index: command.index,\n sourceBox,\n targetBox\n };\n return [event];\n}\n__name(decidePositionRelation, \"decidePositionRelation\");\nfunction evolveRelationPositioned(state, _event) {\n const event = _event;\n const relation = {\n visual: {\n fill: \"none\",\n stroke: \"#000\"\n },\n source: {\n x: event.sourceBox.x,\n y: event.sourceBox.y\n },\n target: {\n x: event.targetBox.x,\n y: event.targetBox.y\n },\n sourceBox: event.sourceBox,\n targetBox: event.targetBox\n };\n const newState = {\n ...state,\n relations: [...state.relations, relation]\n };\n return newState;\n}\n__name(evolveRelationPositioned, \"evolveRelationPositioned\");\nvar deciders = {\n [PositionFrameKind]: decidePositionFrame,\n [PositionRelationKind]: decidePositionRelation\n};\nvar evolvers = {\n [FramePositionedKind]: evolveFramePositioned,\n [RelationPositionedKind]: evolveRelationPositioned\n};\nfunction decide(state, command) {\n const fn = deciders[command.$kind];\n if (fn === void 0 || fn === null) {\n return [];\n }\n const events = fn(state, command);\n log.debug(`decided events`, events);\n return events;\n}\n__name(decide, \"decide\");\nfunction evolve(state, events) {\n const newState = events.reduce((previousState, event) => {\n const fn = evolvers[event.$kind];\n if (fn === void 0 || fn === null) {\n return previousState;\n }\n return fn(previousState, event);\n }, state);\n log.debug(`evolve events`, { state, newState, events });\n return newState;\n}\n__name(evolve, \"evolve\");\nfunction dispatch(state, command) {\n const events = decide(state, command);\n const newState = evolve(state, events);\n return newState;\n}\n__name(dispatch, \"dispatch\");\nvar db = {\n getConfig: getConfig3,\n setOptions,\n getOptions,\n clear: clear2,\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n setDiagramTitle,\n getDiagramTitle,\n setAst,\n getDiagramProps,\n getState\n};\n\n// src/diagrams/eventmodeling/parser.ts\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"eventmodeling\", input);\n log.debug(ast);\n db.setAst(ast);\n populateCommonDb(ast, db);\n }, \"parse\")\n};\nif (void 0) {\n const { it, expect, describe } = void 0;\n describe(\"EventModeling Parser\", () => {\n it(\"should parse simple model\", () => {\n const result = parser.parse(`eventmodeling\n tf 01 evt Start\n\n `);\n expect(result !== void 0);\n });\n });\n}\n\n// src/diagrams/eventmodeling/renderer.ts\nimport { select } from \"d3\";\nvar DEFAULT_CONFIG = getConfig2();\nvar DEFAULT_EVENTMODELING_CONFIG2 = DEFAULT_CONFIG?.eventmodeling;\nfunction renderD3Box(diagram2, diagramProps2) {\n return (box) => {\n const y = box.swimlane.y + diagramProps2.swimlanePadding;\n const g = diagram2.append(\"g\").attr(\"class\", \"em-box\");\n g.append(\"rect\").attr(\"x\", box.x).attr(\"y\", y).attr(\"rx\", \"3\").attr(\"width\", box.dimension.width).attr(\"height\", box.dimension.height).attr(\"stroke\", box.visual.stroke).attr(\"fill\", box.visual.fill);\n const f = g.append(\"foreignObject\").attr(\"x\", box.x + diagramProps2.boxPadding).attr(\"y\", y + 10).attr(\"width\", box.dimension.width - 2 * diagramProps2.boxPadding).attr(\"height\", box.dimension.height - 2 * diagramProps2.boxPadding);\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"span\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").html(box.text);\n };\n}\n__name(renderD3Box, \"renderD3Box\");\nfunction dirUpwards(sourceY, targetY) {\n return sourceY > targetY;\n}\n__name(dirUpwards, \"dirUpwards\");\nfunction renderD3Relation(diagram2, diagramProps2, arrowheadId, themeVariables) {\n return (relation) => {\n const sourceBoxY = relation.sourceBox.swimlane.y + diagramProps2.swimlanePadding;\n const targetBoxY = relation.targetBox.swimlane.y + diagramProps2.swimlanePadding;\n const upwards = dirUpwards(sourceBoxY, targetBoxY);\n const sourceX = relation.sourceBox.x + relation.sourceBox.dimension.width * 2 / 3;\n const targetX = relation.targetBox.x + relation.targetBox.dimension.width / 3;\n let sourceY;\n let targetY;\n log.debug(`rendering relation up=${upwards} for `, {\n sourceBox: relation.sourceBox,\n targetBox: relation.targetBox\n });\n if (upwards) {\n sourceY = sourceBoxY;\n targetY = targetBoxY + relation.targetBox.dimension.height;\n } else {\n sourceY = sourceBoxY + relation.sourceBox.dimension.height;\n targetY = targetBoxY;\n }\n const relationStroke = themeVariables.emRelationStroke ?? relation.visual.stroke;\n diagram2.append(\"path\").attr(\"class\", \"em-relation\").attr(\"fill\", relation.visual.fill).attr(\"stroke\", relationStroke).attr(\"stroke-width\", \"1\").attr(\"marker-end\", `url(#${arrowheadId})`).attr(\"d\", `M${sourceX} ${sourceY} L${targetX} ${targetY}`);\n };\n}\n__name(renderD3Relation, \"renderD3Relation\");\nfunction renderD3Swimlane(diagram2, maxR, diagramProps2, themeVariables) {\n return (swimlane) => {\n const g = diagram2.append(\"g\").attr(\"class\", \"em-swimlane\");\n const oddBackground = themeVariables.emSwimlaneBackgroundOdd ?? \"rgb(250,250,250)\";\n const backgroundStroke = themeVariables.emSwimlaneBackgroundStroke ?? \"rgb(240,240,240)\";\n g.append(\"rect\").attr(\"x\", 0).attr(\"y\", swimlane.y).attr(\"rx\", \"3\").attr(\"width\", maxR + diagramProps2.swimlanePadding).attr(\"height\", swimlane.height).attr(\"fill\", oddBackground).attr(\"stroke\", backgroundStroke);\n g.append(\"text\").attr(\"font-weight\", diagramProps2.swimlaneTextFontWeight).attr(\"x\", 30).attr(\"y\", swimlane.y + 30).text(swimlane.label);\n };\n}\n__name(renderD3Swimlane, \"renderD3Swimlane\");\nvar draw = /* @__PURE__ */ __name(function(txt, id, ver, diagObj) {\n log.debug(\"in eventmodeling renderer\", txt + \"\\n\", \"id:\", id, ver);\n if (!DEFAULT_EVENTMODELING_CONFIG2) {\n throw new Error(\"EventModeling config not found\");\n }\n const db2 = diagObj.db;\n const { themeVariables, eventmodeling: config } = getConfig2();\n const diagram2 = select(`[id=\"${id}\"]`);\n const diagramProps2 = db2.getDiagramProps();\n const state = db2.getState();\n const arrowheadId = `em-arrowhead-${id}`;\n const arrowheadColor = themeVariables.emArrowhead ?? \"#000000\";\n state.sortedSwimlanesArray.forEach(\n renderD3Swimlane(diagram2, state.maxR, diagramProps2, themeVariables)\n );\n state.boxes.forEach(renderD3Box(diagram2, diagramProps2));\n state.relations.forEach(renderD3Relation(diagram2, diagramProps2, arrowheadId, themeVariables));\n const marker = diagram2.append(\"defs\").append(\"marker\").attr(\"id\", arrowheadId).attr(\"markerWidth\", \"10\").attr(\"markerHeight\", \"7\").attr(\"refX\", \"10\").attr(\"refY\", \"3.5\").attr(\"orient\", \"auto\");\n marker.append(\"polygon\").attr(\"points\", \"0 0, 10 3.5, 0 7\").attr(\"fill\", arrowheadColor);\n setupGraphViewbox(void 0, diagram2, config?.padding ?? 30, config?.useMaxWidth);\n}, \"draw\");\nvar renderer_default = {\n draw\n};\n\n// src/diagrams/eventmodeling/styles.js\nvar getStyles = /* @__PURE__ */ __name((_options) => ``, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/eventmodeling/diagram.ts\nvar diagram = {\n parser,\n db,\n renderer: renderer_default,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"names":["PositionFrameKind","FramePositionedKind","PositionRelationKind","RelationPositionedKind","setOptions","__name","_rawOptString","log","getOptions","clear2","reset","clear","store","DEFAULT_EVENTMODELING_CONFIG","defaultConfig_default","getConfig3","cleanAndMerge","getConfig","getState","state","initial","ast","diagramProps2","getDiagramProps","frame","index","textProps","calculateTextProps","dispatch","sourceFrames","hasSourceFrame","currentFrame","sf","sourceFrame","sortedSwimlanesArray","setAst","diagramProps","extractNamespace","entityIdentifier","spl","extractName","findSwimlaneByNamespace","swimlanes","namespace","swimlane","findNextAvailableIndex","boundaryMin","boundaryMax","key","calculateSwimlaneProps","sw","calculateEntityVisualProps","themeVariables","dataEntities","config","name","sanitizeText","toHtml","wrapLabelConfig","content","wrapLabel","dataEntity","dataEntity2","hasRenderedData","textDimensionConfig","dimensions","calculateTextDimensions","calculatedWidthFix","props","decidePositionFrame","_command","command","visual","dimension","calculateX","previousSwimlane","lastBox","calculateMaxRight","swimlaneR","rs","s","a","b","evolveFramePositioned","_event","event","swimlaneProps","x","r","maxR","box","newState","i","prevSw","isFirstFrame","findBoxByFrame","boxes","findBoxByLineIndex","targetSwimlane","lineIndex","decidePositionRelation","isEmResetFrame","targetBox","sourceBox","evolveRelationPositioned","relation","deciders","evolvers","decide","fn","events","evolve","previousState","db","setAccTitle","getAccTitle","getAccDescription","setAccDescription","setDiagramTitle","getDiagramTitle","parser","input","parse","populateCommonDb","DEFAULT_CONFIG","getConfig2","DEFAULT_EVENTMODELING_CONFIG2","renderD3Box","diagram2","y","g","dirUpwards","sourceY","targetY","renderD3Relation","arrowheadId","sourceBoxY","targetBoxY","upwards","sourceX","targetX","relationStroke","renderD3Swimlane","oddBackground","backgroundStroke","draw","txt","id","ver","diagObj","db2","select","arrowheadColor","setupGraphViewbox","renderer_default","getStyles","_options","styles_default","diagram"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"diagram-B4RE2ZJO-DZDYOecW.js","sources":["../../../node_modules/mermaid/dist/chunks/mermaid.core/diagram-B4RE2ZJO.mjs"],"sourcesContent":["import {\n populateCommonDb\n} from \"./chunk-JWPE2WC7.mjs\";\nimport {\n calculateTextDimensions,\n cleanAndMerge,\n wrapLabel\n} from \"./chunk-NSK5VX7P.mjs\";\nimport {\n clear,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getConfig2,\n getDiagramTitle,\n sanitizeText,\n setAccDescription,\n setAccTitle,\n setDiagramTitle,\n setupGraphViewbox2 as setupGraphViewbox\n} from \"./chunk-I66GZJ75.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/eventmodeling/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\n\n// src/diagrams/eventmodeling/db.ts\nimport { isEmResetFrame } from \"@mermaid-js/parser\";\n\n// src/diagrams/eventmodeling/types.ts\nvar PositionFrameKind = \"position frame\";\nvar FramePositionedKind = \"frame positioned\";\nvar PositionRelationKind = \"position relation\";\nvar RelationPositionedKind = \"relation positioned\";\n\n// src/diagrams/eventmodeling/db.ts\nvar setOptions = /* @__PURE__ */ __name(function(_rawOptString) {\n log.debug(\"options str\", _rawOptString);\n}, \"setOptions\");\nvar getOptions = /* @__PURE__ */ __name(function() {\n return {};\n}, \"getOptions\");\nvar clear2 = /* @__PURE__ */ __name(function() {\n reset();\n clear();\n}, \"clear\");\nfunction reset() {\n store = {};\n}\n__name(reset, \"reset\");\nvar DEFAULT_EVENTMODELING_CONFIG = defaultConfig_default.eventmodeling;\nvar getConfig3 = /* @__PURE__ */ __name(() => {\n const config = cleanAndMerge({\n ...DEFAULT_EVENTMODELING_CONFIG,\n ...getConfig().eventmodeling\n });\n return config;\n}, \"getConfig\");\nvar store = {};\nfunction getState() {\n let state = initial;\n const { ast } = store;\n const diagramProps2 = getDiagramProps();\n if (!ast) {\n throw new Error(\"No data for EventModel\");\n }\n ast.frames.forEach((frame, index) => {\n const textProps = calculateTextProps(frame, ast.dataEntities, diagramProps2);\n state = dispatch(state, {\n $kind: PositionFrameKind,\n index,\n frame,\n textProps\n });\n let sourceFrames = void 0;\n if (hasSourceFrame(frame)) {\n log.debug(`source frame`, frame.sourceFrames);\n sourceFrames = ast.frames.filter((currentFrame) => {\n return frame.sourceFrames.some((sf) => sf.$refText === currentFrame.name);\n });\n sourceFrames.forEach((sourceFrame) => {\n state = dispatch(state, {\n $kind: PositionRelationKind,\n index,\n frame,\n sourceFrame\n });\n });\n } else {\n state = dispatch(state, {\n $kind: PositionRelationKind,\n index,\n frame\n });\n }\n });\n state = {\n ...state,\n sortedSwimlanesArray: sortedSwimlanesArray(state.swimlanes)\n };\n return state;\n}\n__name(getState, \"getState\");\nfunction setAst(ast) {\n store.ast = ast;\n}\n__name(setAst, \"setAst\");\nvar diagramProps = {\n swimlaneMinHeight: 70,\n swimlanePadding: 15,\n swimlaneGap: 10,\n boxPadding: 10,\n boxOverlap: 90,\n boxDefaultY: 0,\n boxMinWidth: 80,\n boxMaxWidth: 450,\n boxMinHeight: 80,\n boxMaxHeight: 750,\n contentStartX: 250,\n textMaxWidth: 450 - 2 * 10,\n boxTextFontWeight: \"bold\",\n boxTextPadding: 10,\n swimlaneTextFontWeight: \"bold\",\n labelUiAutomation: \"UI/Automation\",\n labelUiAutomationPrefix: \"UI/A: \",\n labelCommandReadModel: \"Command/Read Model\",\n labelCommandReadModelPrefix: \"C/RM: \",\n labelEvents: \"Events\",\n labelEventsPrefix: \"Stream: \"\n};\nfunction getDiagramProps() {\n return diagramProps;\n}\n__name(getDiagramProps, \"getDiagramProps\");\nvar initial = {\n boxes: [],\n swimlanes: {},\n relations: [],\n maxR: 0,\n sortedSwimlanesArray: []\n};\nfunction extractNamespace(entityIdentifier) {\n const spl = entityIdentifier.split(\".\");\n if (spl.length === 2) {\n return spl[0];\n }\n return void 0;\n}\n__name(extractNamespace, \"extractNamespace\");\nfunction extractName(entityIdentifier) {\n const spl = entityIdentifier.split(\".\");\n if (spl.length === 2) {\n return spl[1];\n }\n return entityIdentifier;\n}\n__name(extractName, \"extractName\");\nfunction findSwimlaneByNamespace(swimlanes, namespace) {\n if (!namespace || namespace.length === 0) {\n return void 0;\n }\n return Object.values(swimlanes).find((swimlane) => swimlane.namespace === namespace);\n}\n__name(findSwimlaneByNamespace, \"findSwimlaneByNamespace\");\nfunction findNextAvailableIndex(swimlanes, boundaryMin, boundaryMax) {\n return Math.max(\n boundaryMin,\n ...Object.keys(swimlanes).filter((key) => {\n const index = Number.parseInt(key);\n return index > boundaryMin && index < boundaryMax;\n }).map((key) => Number.parseInt(key))\n ) + 1;\n}\n__name(findNextAvailableIndex, \"findNextAvailableIndex\");\nfunction calculateSwimlaneProps(frame, swimlanes) {\n const namespace = extractNamespace(frame.entityIdentifier);\n const sw = findSwimlaneByNamespace(swimlanes, namespace);\n switch (frame.modelEntityType) {\n case \"ui\":\n case \"pcr\":\n case \"processor\":\n if (sw) {\n return {\n index: sw.index,\n label: sw.namespace || diagramProps.labelUiAutomation\n };\n } else if (namespace) {\n return {\n index: findNextAvailableIndex(swimlanes, 0, 100),\n label: diagramProps.labelUiAutomationPrefix + namespace\n };\n }\n return { index: 0, label: diagramProps.labelUiAutomation };\n case \"rmo\":\n case \"readmodel\":\n case \"cmd\":\n case \"command\":\n if (sw) {\n return {\n index: sw.index,\n label: sw.namespace || diagramProps.labelCommandReadModel\n };\n } else if (namespace) {\n return {\n index: findNextAvailableIndex(swimlanes, 100, 200),\n label: diagramProps.labelCommandReadModelPrefix + namespace\n };\n }\n return { index: 100, label: diagramProps.labelCommandReadModel };\n case \"evt\":\n case \"event\":\n default:\n if (sw) {\n return {\n index: sw.index,\n label: sw.namespace || diagramProps.labelEvents\n };\n } else if (namespace) {\n return {\n index: findNextAvailableIndex(swimlanes, 200, 300),\n label: diagramProps.labelEventsPrefix + namespace\n };\n }\n return { index: 200, label: diagramProps.labelEvents };\n }\n}\n__name(calculateSwimlaneProps, \"calculateSwimlaneProps\");\nfunction calculateEntityVisualProps(frame) {\n const { themeVariables } = getConfig();\n switch (frame.modelEntityType) {\n case \"ui\":\n return {\n fill: themeVariables.emUiFill ?? \"white\",\n stroke: themeVariables.emUiStroke ?? \"#dbdada\"\n };\n case \"pcr\":\n case \"processor\":\n return {\n fill: themeVariables.emProcessorFill ?? \"#edb3f6\",\n stroke: themeVariables.emProcessorStroke ?? \"#b88cbf\"\n };\n case \"rmo\":\n case \"readmodel\":\n return {\n fill: themeVariables.emReadModelFill ?? \"#d3f1a2\",\n stroke: themeVariables.emReadModelStroke ?? \"#a3b732\"\n };\n case \"cmd\":\n case \"command\":\n return {\n fill: themeVariables.emCommandFill ?? \"#bcd6fe\",\n stroke: themeVariables.emCommandStroke ?? \"#679ac3\"\n };\n case \"evt\":\n case \"event\":\n return {\n fill: themeVariables.emEventFill ?? \"#ffb778\",\n stroke: themeVariables.emEventStroke ?? \"#c19a0f\"\n };\n default:\n return {\n fill: \"red\",\n stroke: \"black\"\n };\n }\n}\n__name(calculateEntityVisualProps, \"calculateEntityVisualProps\");\nfunction calculateTextProps(frame, dataEntities, diagramProps2) {\n const config = getConfig();\n const name = sanitizeText(extractName(frame.entityIdentifier) ?? \"\", config);\n let toHtml;\n const wrapLabelConfig = {\n fontSize: 16,\n fontWeight: 700,\n fontFamily: '\"trebuchet ms\", verdana, arial, sans-serif',\n joinWith: \"<br/>\"\n };\n const wrappedName = wrapLabel(name, diagramProps2.textMaxWidth, wrapLabelConfig);\n let content = `<b>${wrappedName}</b>`;\n if (frame.dataInlineValue) {\n toHtml = frame.dataInlineValue;\n toHtml = toHtml.substring(toHtml.indexOf(\"{\") + 1);\n toHtml = toHtml.substring(0, toHtml.lastIndexOf(\"}\") - 1);\n toHtml = sanitizeText(toHtml, config);\n toHtml = wrapLabel(toHtml, diagramProps2.textMaxWidth, wrapLabelConfig);\n toHtml = toHtml.replaceAll(\" \", \"&nbsp;\");\n }\n if (frame.dataReference) {\n const dataEntity = dataEntities.find(\n (dataEntity2) => dataEntity2.name === frame.dataReference?.$refText\n );\n if (dataEntity) {\n toHtml = dataEntity.dataBlockValue;\n toHtml = toHtml.substring(toHtml.indexOf(\"{\\n\") + 2);\n toHtml = toHtml.substring(0, toHtml.lastIndexOf(\"}\") - 1);\n toHtml = sanitizeText(toHtml, config);\n toHtml = wrapLabel(toHtml, diagramProps2.textMaxWidth, wrapLabelConfig);\n toHtml = toHtml.replaceAll(\" \", \"&nbsp;\");\n toHtml += `<br/>`;\n }\n }\n const hasRenderedData = toHtml !== void 0;\n if (hasRenderedData) {\n content += `<br/><br/><code style=\"text-align: left; display: block;max-width:${diagramProps2.textMaxWidth}px\">${toHtml}</code>`;\n }\n const textDimensionConfig = {\n fontSize: wrapLabelConfig.fontSize,\n fontWeight: wrapLabelConfig.fontWeight,\n fontFamily: wrapLabelConfig.fontFamily\n };\n const dimensions = calculateTextDimensions(content, textDimensionConfig);\n const calculatedWidthFix = hasRenderedData ? dimensions.width / 3 : dimensions.width;\n const props = {\n content,\n width: calculatedWidthFix,\n height: dimensions.height\n };\n log.debug(`[${frame.name}] ${frame.entityIdentifier} text`, props);\n return props;\n}\n__name(calculateTextProps, \"calculateTextProps\");\nfunction decidePositionFrame(state, _command) {\n const command = _command;\n const visual = calculateEntityVisualProps(command.frame);\n const dimension = {\n width: command.textProps.width + 2 * diagramProps.boxTextPadding,\n height: command.textProps.height + 2 * diagramProps.boxTextPadding\n };\n const event = {\n $kind: FramePositionedKind,\n frame: command.frame,\n index: command.index,\n visual,\n dimension,\n textProps: command.textProps\n };\n return [event];\n}\n__name(decidePositionFrame, \"decidePositionFrame\");\nfunction calculateX(swimlane, previousSwimlane, lastBox) {\n if (previousSwimlane === void 0) {\n return diagramProps.contentStartX;\n }\n if (previousSwimlane.index === swimlane.index && swimlane.r) {\n return swimlane.r + diagramProps.boxPadding;\n }\n if (lastBox === void 0) {\n return diagramProps.contentStartX;\n }\n return lastBox.r - diagramProps.boxOverlap + diagramProps.boxPadding;\n}\n__name(calculateX, \"calculateX\");\nfunction calculateMaxRight(swimlanes, swimlaneR) {\n const rs = [...swimlanes.map((s) => s.r), swimlaneR];\n return Math.max(...rs);\n}\n__name(calculateMaxRight, \"calculateMaxRight\");\nfunction sortedSwimlanesArray(swimlanes) {\n return Object.values(swimlanes).sort((a, b) => a.index - b.index);\n}\n__name(sortedSwimlanesArray, \"sortedSwimlanesArray\");\nfunction evolveFramePositioned(state, _event) {\n const event = _event;\n const swimlaneProps = calculateSwimlaneProps(event.frame, state.swimlanes);\n let swimlane;\n if (swimlaneProps.index in state.swimlanes) {\n swimlane = state.swimlanes[swimlaneProps.index];\n } else {\n swimlane = {\n index: swimlaneProps.index,\n label: swimlaneProps.label,\n r: 0,\n y: swimlaneProps.index * diagramProps.swimlaneMinHeight + diagramProps.swimlaneGap,\n height: diagramProps.swimlaneMinHeight,\n maxHeight: diagramProps.swimlaneMinHeight\n };\n }\n const lastBox = state.boxes.length > 0 ? state.boxes[state.boxes.length - 1] : void 0;\n const previousSwimlane = state.previousSwimlaneNumber !== void 0 ? state.swimlanes[state.previousSwimlaneNumber] : void 0;\n const dimension = {\n width: Math.max(\n diagramProps.boxMinWidth,\n Math.min(diagramProps.boxMaxWidth, event.dimension.width)\n ) + 2 * diagramProps.boxPadding,\n height: Math.max(\n diagramProps.boxMinHeight,\n Math.min(diagramProps.boxMaxHeight, event.dimension.height)\n ) + 2 * diagramProps.boxPadding\n };\n const x = calculateX(swimlane, previousSwimlane, lastBox);\n const r = x + dimension.width + diagramProps.boxPadding;\n const maxR = calculateMaxRight(Object.values(state.swimlanes), r);\n swimlane.r = x + dimension.width;\n swimlane.maxHeight = Math.max(swimlane.maxHeight, dimension.height);\n swimlane.height = Math.max(diagramProps.swimlaneMinHeight, swimlane.maxHeight) + 2 * diagramProps.swimlanePadding;\n const box = {\n x,\n y: diagramProps.swimlanePadding + swimlane.y,\n // y: diagramProps.swimlanePadding + (swimlane.y || diagramProps.boxDefaultY),\n r,\n dimension,\n leftSibling: false,\n swimlane,\n visual: event.visual,\n text: event.textProps.content,\n frame: event.frame,\n index: event.index\n };\n const newState = {\n ...state,\n boxes: [...state.boxes, box],\n swimlanes: {\n ...state.swimlanes,\n [`${swimlane.index}`]: swimlane\n },\n previousSwimlaneNumber: swimlaneProps.index,\n previousFrame: event.frame,\n maxR\n };\n const swimlanes = sortedSwimlanesArray(newState.swimlanes);\n if (swimlanes.length > 0) {\n swimlanes[0].y = 0;\n }\n for (let i = 1; i < swimlanes.length; i++) {\n const sw = swimlanes[i];\n const prevSw = swimlanes[i - 1];\n sw.y = prevSw.y + prevSw.height + diagramProps.swimlaneGap;\n }\n return newState;\n}\n__name(evolveFramePositioned, \"evolveFramePositioned\");\nfunction isFirstFrame(index, frame) {\n if (index === 0 && frame.sourceFrames.length === 0) {\n return true;\n }\n return false;\n}\n__name(isFirstFrame, \"isFirstFrame\");\nfunction hasSourceFrame(frame) {\n return frame.sourceFrames !== void 0 && frame.sourceFrames !== null && frame.sourceFrames.length > 0;\n}\n__name(hasSourceFrame, \"hasSourceFrame\");\nfunction findBoxByFrame(boxes, frame) {\n if (frame === void 0 || frame === null) {\n return void 0;\n }\n return boxes.find((box) => box.frame.name === frame.name);\n}\n__name(findBoxByFrame, \"findBoxByFrame\");\nfunction findBoxByLineIndex(boxes, targetSwimlane, lineIndex) {\n if (lineIndex < 0) {\n return void 0;\n }\n for (let i = lineIndex; i >= 0; i--) {\n const box = boxes[i];\n if (box.swimlane.index !== targetSwimlane) {\n return box;\n }\n }\n return void 0;\n}\n__name(findBoxByLineIndex, \"findBoxByLineIndex\");\nfunction decidePositionRelation(state, _command) {\n const command = _command;\n if (isEmResetFrame(command.frame) || isFirstFrame(command.index, command.frame)) {\n return [];\n }\n const targetBox = findBoxByFrame(state.boxes, command.frame);\n if (targetBox === void 0) {\n throw new Error(`Target box not found for frame ${command.frame.name}`);\n }\n let sourceBox;\n if (command.sourceFrame) {\n sourceBox = findBoxByFrame(state.boxes, command.sourceFrame);\n } else {\n sourceBox = findBoxByLineIndex(state.boxes, targetBox.swimlane.index, command.index - 1);\n }\n if (sourceBox === void 0) {\n return [];\n }\n const event = {\n $kind: RelationPositionedKind,\n frame: command.frame,\n index: command.index,\n sourceBox,\n targetBox\n };\n return [event];\n}\n__name(decidePositionRelation, \"decidePositionRelation\");\nfunction evolveRelationPositioned(state, _event) {\n const event = _event;\n const relation = {\n visual: {\n fill: \"none\",\n stroke: \"#000\"\n },\n source: {\n x: event.sourceBox.x,\n y: event.sourceBox.y\n },\n target: {\n x: event.targetBox.x,\n y: event.targetBox.y\n },\n sourceBox: event.sourceBox,\n targetBox: event.targetBox\n };\n const newState = {\n ...state,\n relations: [...state.relations, relation]\n };\n return newState;\n}\n__name(evolveRelationPositioned, \"evolveRelationPositioned\");\nvar deciders = {\n [PositionFrameKind]: decidePositionFrame,\n [PositionRelationKind]: decidePositionRelation\n};\nvar evolvers = {\n [FramePositionedKind]: evolveFramePositioned,\n [RelationPositionedKind]: evolveRelationPositioned\n};\nfunction decide(state, command) {\n const fn = deciders[command.$kind];\n if (fn === void 0 || fn === null) {\n return [];\n }\n const events = fn(state, command);\n log.debug(`decided events`, events);\n return events;\n}\n__name(decide, \"decide\");\nfunction evolve(state, events) {\n const newState = events.reduce((previousState, event) => {\n const fn = evolvers[event.$kind];\n if (fn === void 0 || fn === null) {\n return previousState;\n }\n return fn(previousState, event);\n }, state);\n log.debug(`evolve events`, { state, newState, events });\n return newState;\n}\n__name(evolve, \"evolve\");\nfunction dispatch(state, command) {\n const events = decide(state, command);\n const newState = evolve(state, events);\n return newState;\n}\n__name(dispatch, \"dispatch\");\nvar db = {\n getConfig: getConfig3,\n setOptions,\n getOptions,\n clear: clear2,\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n setDiagramTitle,\n getDiagramTitle,\n setAst,\n getDiagramProps,\n getState\n};\n\n// src/diagrams/eventmodeling/parser.ts\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"eventmodeling\", input);\n log.debug(ast);\n db.setAst(ast);\n populateCommonDb(ast, db);\n }, \"parse\")\n};\nif (void 0) {\n const { it, expect, describe } = void 0;\n describe(\"EventModeling Parser\", () => {\n it(\"should parse simple model\", () => {\n const result = parser.parse(`eventmodeling\n tf 01 evt Start\n\n `);\n expect(result !== void 0);\n });\n });\n}\n\n// src/diagrams/eventmodeling/renderer.ts\nimport { select } from \"d3\";\nvar DEFAULT_CONFIG = getConfig2();\nvar DEFAULT_EVENTMODELING_CONFIG2 = DEFAULT_CONFIG?.eventmodeling;\nfunction renderD3Box(diagram2, diagramProps2) {\n return (box) => {\n const y = box.swimlane.y + diagramProps2.swimlanePadding;\n const g = diagram2.append(\"g\").attr(\"class\", \"em-box\");\n g.append(\"rect\").attr(\"x\", box.x).attr(\"y\", y).attr(\"rx\", \"3\").attr(\"width\", box.dimension.width).attr(\"height\", box.dimension.height).attr(\"stroke\", box.visual.stroke).attr(\"fill\", box.visual.fill);\n const f = g.append(\"foreignObject\").attr(\"x\", box.x + diagramProps2.boxPadding).attr(\"y\", y + 10).attr(\"width\", box.dimension.width - 2 * diagramProps2.boxPadding).attr(\"height\", box.dimension.height - 2 * diagramProps2.boxPadding);\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"span\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").html(box.text);\n };\n}\n__name(renderD3Box, \"renderD3Box\");\nfunction dirUpwards(sourceY, targetY) {\n return sourceY > targetY;\n}\n__name(dirUpwards, \"dirUpwards\");\nfunction renderD3Relation(diagram2, diagramProps2, arrowheadId, themeVariables) {\n return (relation) => {\n const sourceBoxY = relation.sourceBox.swimlane.y + diagramProps2.swimlanePadding;\n const targetBoxY = relation.targetBox.swimlane.y + diagramProps2.swimlanePadding;\n const upwards = dirUpwards(sourceBoxY, targetBoxY);\n const sourceX = relation.sourceBox.x + relation.sourceBox.dimension.width * 2 / 3;\n const targetX = relation.targetBox.x + relation.targetBox.dimension.width / 3;\n let sourceY;\n let targetY;\n log.debug(`rendering relation up=${upwards} for `, {\n sourceBox: relation.sourceBox,\n targetBox: relation.targetBox\n });\n if (upwards) {\n sourceY = sourceBoxY;\n targetY = targetBoxY + relation.targetBox.dimension.height;\n } else {\n sourceY = sourceBoxY + relation.sourceBox.dimension.height;\n targetY = targetBoxY;\n }\n const relationStroke = themeVariables.emRelationStroke ?? relation.visual.stroke;\n diagram2.append(\"path\").attr(\"class\", \"em-relation\").attr(\"fill\", relation.visual.fill).attr(\"stroke\", relationStroke).attr(\"stroke-width\", \"1\").attr(\"marker-end\", `url(#${arrowheadId})`).attr(\"d\", `M${sourceX} ${sourceY} L${targetX} ${targetY}`);\n };\n}\n__name(renderD3Relation, \"renderD3Relation\");\nfunction renderD3Swimlane(diagram2, maxR, diagramProps2, themeVariables) {\n return (swimlane) => {\n const g = diagram2.append(\"g\").attr(\"class\", \"em-swimlane\");\n const oddBackground = themeVariables.emSwimlaneBackgroundOdd ?? \"rgb(250,250,250)\";\n const backgroundStroke = themeVariables.emSwimlaneBackgroundStroke ?? \"rgb(240,240,240)\";\n g.append(\"rect\").attr(\"x\", 0).attr(\"y\", swimlane.y).attr(\"rx\", \"3\").attr(\"width\", maxR + diagramProps2.swimlanePadding).attr(\"height\", swimlane.height).attr(\"fill\", oddBackground).attr(\"stroke\", backgroundStroke);\n g.append(\"text\").attr(\"font-weight\", diagramProps2.swimlaneTextFontWeight).attr(\"x\", 30).attr(\"y\", swimlane.y + 30).text(swimlane.label);\n };\n}\n__name(renderD3Swimlane, \"renderD3Swimlane\");\nvar draw = /* @__PURE__ */ __name(function(txt, id, ver, diagObj) {\n log.debug(\"in eventmodeling renderer\", txt + \"\\n\", \"id:\", id, ver);\n if (!DEFAULT_EVENTMODELING_CONFIG2) {\n throw new Error(\"EventModeling config not found\");\n }\n const db2 = diagObj.db;\n const { themeVariables, eventmodeling: config } = getConfig2();\n const diagram2 = select(`[id=\"${id}\"]`);\n const diagramProps2 = db2.getDiagramProps();\n const state = db2.getState();\n const arrowheadId = `em-arrowhead-${id}`;\n const arrowheadColor = themeVariables.emArrowhead ?? \"#000000\";\n state.sortedSwimlanesArray.forEach(\n renderD3Swimlane(diagram2, state.maxR, diagramProps2, themeVariables)\n );\n state.boxes.forEach(renderD3Box(diagram2, diagramProps2));\n state.relations.forEach(renderD3Relation(diagram2, diagramProps2, arrowheadId, themeVariables));\n const marker = diagram2.append(\"defs\").append(\"marker\").attr(\"id\", arrowheadId).attr(\"markerWidth\", \"10\").attr(\"markerHeight\", \"7\").attr(\"refX\", \"10\").attr(\"refY\", \"3.5\").attr(\"orient\", \"auto\");\n marker.append(\"polygon\").attr(\"points\", \"0 0, 10 3.5, 0 7\").attr(\"fill\", arrowheadColor);\n setupGraphViewbox(void 0, diagram2, config?.padding ?? 30, config?.useMaxWidth);\n}, \"draw\");\nvar renderer_default = {\n draw\n};\n\n// src/diagrams/eventmodeling/styles.js\nvar getStyles = /* @__PURE__ */ __name((_options) => ``, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/eventmodeling/diagram.ts\nvar diagram = {\n parser,\n db,\n renderer: renderer_default,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"names":["PositionFrameKind","FramePositionedKind","PositionRelationKind","RelationPositionedKind","setOptions","__name","_rawOptString","log","getOptions","clear2","reset","clear","store","DEFAULT_EVENTMODELING_CONFIG","defaultConfig_default","getConfig3","cleanAndMerge","getConfig","getState","state","initial","ast","diagramProps2","getDiagramProps","frame","index","textProps","calculateTextProps","dispatch","sourceFrames","hasSourceFrame","currentFrame","sf","sourceFrame","sortedSwimlanesArray","setAst","diagramProps","extractNamespace","entityIdentifier","spl","extractName","findSwimlaneByNamespace","swimlanes","namespace","swimlane","findNextAvailableIndex","boundaryMin","boundaryMax","key","calculateSwimlaneProps","sw","calculateEntityVisualProps","themeVariables","dataEntities","config","name","sanitizeText","toHtml","wrapLabelConfig","content","wrapLabel","dataEntity","dataEntity2","hasRenderedData","textDimensionConfig","dimensions","calculateTextDimensions","calculatedWidthFix","props","decidePositionFrame","_command","command","visual","dimension","calculateX","previousSwimlane","lastBox","calculateMaxRight","swimlaneR","rs","s","a","b","evolveFramePositioned","_event","event","swimlaneProps","x","r","maxR","box","newState","i","prevSw","isFirstFrame","findBoxByFrame","boxes","findBoxByLineIndex","targetSwimlane","lineIndex","decidePositionRelation","isEmResetFrame","targetBox","sourceBox","evolveRelationPositioned","relation","deciders","evolvers","decide","fn","events","evolve","previousState","db","setAccTitle","getAccTitle","getAccDescription","setAccDescription","setDiagramTitle","getDiagramTitle","parser","input","parse","populateCommonDb","DEFAULT_CONFIG","getConfig2","DEFAULT_EVENTMODELING_CONFIG2","renderD3Box","diagram2","y","g","dirUpwards","sourceY","targetY","renderD3Relation","arrowheadId","sourceBoxY","targetBoxY","upwards","sourceX","targetX","relationStroke","renderD3Swimlane","oddBackground","backgroundStroke","draw","txt","id","ver","diagObj","db2","select","arrowheadColor","setupGraphViewbox","renderer_default","getStyles","_options","styles_default","diagram"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,4 +1,4 @@
1
- import{p as B}from"./chunk-JWPE2WC7-DO9iwi6J.js";import{_ as b,A as u,D as $,e as C,l as m,b as S,a as D,n as T,o as P,g as z,s as A,y as E,B as F,p as W}from"./mermaid.core-ZtqQ8zsB.js";import{p as _}from"./cynefin-VYW2F7L2-Bs1x5Hdp.js";import"./index-zEjyXfYx.js";var N=F.packet,w=class{constructor(){this.packet=[],this.setAccTitle=S,this.getAccTitle=D,this.setDiagramTitle=T,this.getDiagramTitle=P,this.getAccDescription=z,this.setAccDescription=A}static{b(this,"PacketDB")}getConfig(){const t=u({...N,...E().packet});return t.showBits&&(t.paddingY+=10),t}getPacket(){return this.packet}pushWord(t){t.length>0&&this.packet.push(t)}clear(){W(),this.packet=[]}},L=1e4,M=b((t,e)=>{B(t,e);let r=-1,s=[],n=1;const{bitsPerRow:l}=e.getConfig();for(let{start:a,end:i,bits:d,label:c}of t.blocks){if(a!==void 0&&i!==void 0&&i<a)throw new Error(`Packet block ${a} - ${i} is invalid. End must be greater than start.`);if(a??=r+1,a!==r+1)throw new Error(`Packet block ${a} - ${i??a} is not contiguous. It should start from ${r+1}.`);if(d===0)throw new Error(`Packet block ${a} is invalid. Cannot have a zero bit field.`);for(i??=a+(d??1)-1,d??=i-a+1,r=i,m.debug(`Packet block ${a} - ${r} with label ${c}`);s.length<=l+1&&e.getPacket().length<L;){const[p,o]=Y({start:a,end:i,bits:d,label:c},n,l);if(s.push(p),p.end+1===n*l&&(e.pushWord(s),s=[],n++),!o)break;({start:a,end:i,bits:d,label:c}=o)}}e.pushWord(s)},"populate"),Y=b((t,e,r)=>{if(t.start===void 0)throw new Error("start should have been set during first phase");if(t.end===void 0)throw new Error("end should have been set during first phase");if(t.start>t.end)throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`);if(t.end+1<=e*r)return[t,void 0];const s=e*r-1,n=e*r;return[{start:t.start,end:s,label:t.label,bits:s-t.start},{start:n,end:t.end,label:t.label,bits:t.end-n}]},"getNextFittingBlock"),v={parser:{yy:void 0},parse:b(async t=>{const e=await _("packet",t),r=v.parser?.yy;if(!(r instanceof w))throw new Error("parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");m.debug(e),M(e,r)},"parse")},I=b((t,e,r,s)=>{const n=s.db,l=n.getConfig(),{rowHeight:a,paddingY:i,bitWidth:d,bitsPerRow:c}=l,p=n.getPacket(),o=n.getDiagramTitle(),h=a+i,g=h*(p.length+1)-(o?0:a),k=d*c+2,f=$(e);f.attr("viewBox",`0 0 ${k} ${g}`),C(f,g,k,l.useMaxWidth);for(const[x,y]of p.entries())O(f,y,x,l);f.append("text").text(o).attr("x",k/2).attr("y",g-h/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),O=b((t,e,r,{rowHeight:s,paddingX:n,paddingY:l,bitWidth:a,bitsPerRow:i,showBits:d})=>{const c=t.append("g"),p=r*(s+l)+l;for(const o of e){const h=o.start%i*a+1,g=(o.end-o.start+1)*a-n;if(c.append("rect").attr("x",h).attr("y",p).attr("width",g).attr("height",s).attr("class","packetBlock"),c.append("text").attr("x",h+g/2).attr("y",p+s/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(o.label),!d)continue;const k=o.end===o.start,f=p-2;c.append("text").attr("x",h+(k?g/2:0)).attr("y",f).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",k?"middle":"start").text(o.start),k||c.append("text").attr("x",h+g).attr("y",f).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(o.end)}},"drawWord"),j={draw:I},G={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},H=b(({packet:t}={})=>{const e=u(G,t);return`
1
+ import{p as B}from"./chunk-JWPE2WC7-B-sIaUe_.js";import{_ as b,A as u,D as $,e as C,l as m,b as S,a as D,n as T,o as P,g as z,s as A,y as E,B as F,p as W}from"./mermaid.core-Bo5ITjWV.js";import{p as _}from"./cynefin-VYW2F7L2-BoKcfef3.js";import"./index-BWJKsro0.js";var N=F.packet,w=class{constructor(){this.packet=[],this.setAccTitle=S,this.getAccTitle=D,this.setDiagramTitle=T,this.getDiagramTitle=P,this.getAccDescription=z,this.setAccDescription=A}static{b(this,"PacketDB")}getConfig(){const t=u({...N,...E().packet});return t.showBits&&(t.paddingY+=10),t}getPacket(){return this.packet}pushWord(t){t.length>0&&this.packet.push(t)}clear(){W(),this.packet=[]}},L=1e4,M=b((t,e)=>{B(t,e);let r=-1,s=[],n=1;const{bitsPerRow:l}=e.getConfig();for(let{start:a,end:i,bits:d,label:c}of t.blocks){if(a!==void 0&&i!==void 0&&i<a)throw new Error(`Packet block ${a} - ${i} is invalid. End must be greater than start.`);if(a??=r+1,a!==r+1)throw new Error(`Packet block ${a} - ${i??a} is not contiguous. It should start from ${r+1}.`);if(d===0)throw new Error(`Packet block ${a} is invalid. Cannot have a zero bit field.`);for(i??=a+(d??1)-1,d??=i-a+1,r=i,m.debug(`Packet block ${a} - ${r} with label ${c}`);s.length<=l+1&&e.getPacket().length<L;){const[p,o]=Y({start:a,end:i,bits:d,label:c},n,l);if(s.push(p),p.end+1===n*l&&(e.pushWord(s),s=[],n++),!o)break;({start:a,end:i,bits:d,label:c}=o)}}e.pushWord(s)},"populate"),Y=b((t,e,r)=>{if(t.start===void 0)throw new Error("start should have been set during first phase");if(t.end===void 0)throw new Error("end should have been set during first phase");if(t.start>t.end)throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`);if(t.end+1<=e*r)return[t,void 0];const s=e*r-1,n=e*r;return[{start:t.start,end:s,label:t.label,bits:s-t.start},{start:n,end:t.end,label:t.label,bits:t.end-n}]},"getNextFittingBlock"),v={parser:{yy:void 0},parse:b(async t=>{const e=await _("packet",t),r=v.parser?.yy;if(!(r instanceof w))throw new Error("parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");m.debug(e),M(e,r)},"parse")},I=b((t,e,r,s)=>{const n=s.db,l=n.getConfig(),{rowHeight:a,paddingY:i,bitWidth:d,bitsPerRow:c}=l,p=n.getPacket(),o=n.getDiagramTitle(),h=a+i,g=h*(p.length+1)-(o?0:a),k=d*c+2,f=$(e);f.attr("viewBox",`0 0 ${k} ${g}`),C(f,g,k,l.useMaxWidth);for(const[x,y]of p.entries())O(f,y,x,l);f.append("text").text(o).attr("x",k/2).attr("y",g-h/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),O=b((t,e,r,{rowHeight:s,paddingX:n,paddingY:l,bitWidth:a,bitsPerRow:i,showBits:d})=>{const c=t.append("g"),p=r*(s+l)+l;for(const o of e){const h=o.start%i*a+1,g=(o.end-o.start+1)*a-n;if(c.append("rect").attr("x",h).attr("y",p).attr("width",g).attr("height",s).attr("class","packetBlock"),c.append("text").attr("x",h+g/2).attr("y",p+s/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(o.label),!d)continue;const k=o.end===o.start,f=p-2;c.append("text").attr("x",h+(k?g/2:0)).attr("y",f).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",k?"middle":"start").text(o.start),k||c.append("text").attr("x",h+g).attr("y",f).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(o.end)}},"drawWord"),j={draw:I},G={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},H=b(({packet:t}={})=>{const e=u(G,t);return`
2
2
  .packetByte {
3
3
  font-size: ${e.byteFontSize};
4
4
  }
@@ -22,4 +22,4 @@ import{p as B}from"./chunk-JWPE2WC7-DO9iwi6J.js";import{_ as b,A as u,D as $,e a
22
22
  fill: ${e.blockFillColor};
23
23
  }
24
24
  `},"styles"),q={parser:v,get db(){return new w},renderer:j,styles:H};export{q as diagram};
25
- //# sourceMappingURL=diagram-LBJQPF4R-Uf0SV5Oa.js.map
25
+ //# sourceMappingURL=diagram-LBJQPF4R-Cpc35PFW.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagram-LBJQPF4R-Uf0SV5Oa.js","sources":["../../../node_modules/mermaid/dist/chunks/mermaid.core/diagram-LBJQPF4R.mjs"],"sourcesContent":["import {\n populateCommonDb\n} from \"./chunk-JWPE2WC7.mjs\";\nimport {\n selectSvgElement\n} from \"./chunk-3NCLNEKW.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-NSK5VX7P.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-I66GZJ75.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/packet/db.ts\nvar DEFAULT_PACKET_CONFIG = defaultConfig_default.packet;\nvar PacketDB = class {\n constructor() {\n this.packet = [];\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getAccDescription = getAccDescription;\n this.setAccDescription = setAccDescription;\n }\n static {\n __name(this, \"PacketDB\");\n }\n getConfig() {\n const config = cleanAndMerge({\n ...DEFAULT_PACKET_CONFIG,\n ...getConfig().packet\n });\n if (config.showBits) {\n config.paddingY += 10;\n }\n return config;\n }\n getPacket() {\n return this.packet;\n }\n pushWord(word) {\n if (word.length > 0) {\n this.packet.push(word);\n }\n }\n clear() {\n clear();\n this.packet = [];\n }\n};\n\n// src/diagrams/packet/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar maxPacketSize = 1e4;\nvar populate = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n let lastBit = -1;\n let word = [];\n let row = 1;\n const { bitsPerRow } = db.getConfig();\n for (let { start, end, bits, label } of ast.blocks) {\n if (start !== void 0 && end !== void 0 && end < start) {\n throw new Error(`Packet block ${start} - ${end} is invalid. End must be greater than start.`);\n }\n start ??= lastBit + 1;\n if (start !== lastBit + 1) {\n throw new Error(\n `Packet block ${start} - ${end ?? start} is not contiguous. It should start from ${lastBit + 1}.`\n );\n }\n if (bits === 0) {\n throw new Error(`Packet block ${start} is invalid. Cannot have a zero bit field.`);\n }\n end ??= start + (bits ?? 1) - 1;\n bits ??= end - start + 1;\n lastBit = end;\n log.debug(`Packet block ${start} - ${lastBit} with label ${label}`);\n while (word.length <= bitsPerRow + 1 && db.getPacket().length < maxPacketSize) {\n const [block, nextBlock] = getNextFittingBlock({ start, end, bits, label }, row, bitsPerRow);\n word.push(block);\n if (block.end + 1 === row * bitsPerRow) {\n db.pushWord(word);\n word = [];\n row++;\n }\n if (!nextBlock) {\n break;\n }\n ({ start, end, bits, label } = nextBlock);\n }\n }\n db.pushWord(word);\n}, \"populate\");\nvar getNextFittingBlock = /* @__PURE__ */ __name((block, row, bitsPerRow) => {\n if (block.start === void 0) {\n throw new Error(\"start should have been set during first phase\");\n }\n if (block.end === void 0) {\n throw new Error(\"end should have been set during first phase\");\n }\n if (block.start > block.end) {\n throw new Error(`Block start ${block.start} is greater than block end ${block.end}.`);\n }\n if (block.end + 1 <= row * bitsPerRow) {\n return [block, void 0];\n }\n const rowEnd = row * bitsPerRow - 1;\n const rowStart = row * bitsPerRow;\n return [\n {\n start: block.start,\n end: rowEnd,\n label: block.label,\n bits: rowEnd - block.start\n },\n {\n start: rowStart,\n end: block.end,\n label: block.label,\n bits: block.end - rowStart\n }\n ];\n}, \"getNextFittingBlock\");\nvar parser = {\n // @ts-expect-error - PacketDB is not assignable to DiagramDB\n parser: { yy: void 0 },\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"packet\", input);\n const db = parser.parser?.yy;\n if (!(db instanceof PacketDB)) {\n throw new Error(\n \"parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.\"\n );\n }\n log.debug(ast);\n populate(ast, db);\n }, \"parse\")\n};\n\n// src/diagrams/packet/renderer.ts\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const db = diagram2.db;\n const config = db.getConfig();\n const { rowHeight, paddingY, bitWidth, bitsPerRow } = config;\n const words = db.getPacket();\n const title = db.getDiagramTitle();\n const totalRowHeight = rowHeight + paddingY;\n const svgHeight = totalRowHeight * (words.length + 1) - (title ? 0 : rowHeight);\n const svgWidth = bitWidth * bitsPerRow + 2;\n const svg = selectSvgElement(id);\n svg.attr(\"viewBox\", `0 0 ${svgWidth} ${svgHeight}`);\n configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);\n for (const [word, packet] of words.entries()) {\n drawWord(svg, packet, word, config);\n }\n svg.append(\"text\").text(title).attr(\"x\", svgWidth / 2).attr(\"y\", svgHeight - totalRowHeight / 2).attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").attr(\"class\", \"packetTitle\");\n}, \"draw\");\nvar drawWord = /* @__PURE__ */ __name((svg, word, rowNumber, { rowHeight, paddingX, paddingY, bitWidth, bitsPerRow, showBits }) => {\n const group = svg.append(\"g\");\n const wordY = rowNumber * (rowHeight + paddingY) + paddingY;\n for (const block of word) {\n const blockX = block.start % bitsPerRow * bitWidth + 1;\n const width = (block.end - block.start + 1) * bitWidth - paddingX;\n group.append(\"rect\").attr(\"x\", blockX).attr(\"y\", wordY).attr(\"width\", width).attr(\"height\", rowHeight).attr(\"class\", \"packetBlock\");\n group.append(\"text\").attr(\"x\", blockX + width / 2).attr(\"y\", wordY + rowHeight / 2).attr(\"class\", \"packetLabel\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").text(block.label);\n if (!showBits) {\n continue;\n }\n const isSingleBlock = block.end === block.start;\n const bitNumberY = wordY - 2;\n group.append(\"text\").attr(\"x\", blockX + (isSingleBlock ? width / 2 : 0)).attr(\"y\", bitNumberY).attr(\"class\", \"packetByte start\").attr(\"dominant-baseline\", \"auto\").attr(\"text-anchor\", isSingleBlock ? \"middle\" : \"start\").text(block.start);\n if (!isSingleBlock) {\n group.append(\"text\").attr(\"x\", blockX + width).attr(\"y\", bitNumberY).attr(\"class\", \"packetByte end\").attr(\"dominant-baseline\", \"auto\").attr(\"text-anchor\", \"end\").text(block.end);\n }\n }\n}, \"drawWord\");\nvar renderer = { draw };\n\n// src/diagrams/packet/styles.ts\nvar defaultPacketStyleOptions = {\n byteFontSize: \"10px\",\n startByteColor: \"black\",\n endByteColor: \"black\",\n labelColor: \"black\",\n labelFontSize: \"12px\",\n titleColor: \"black\",\n titleFontSize: \"14px\",\n blockStrokeColor: \"black\",\n blockStrokeWidth: \"1\",\n blockFillColor: \"#efefef\"\n};\nvar styles = /* @__PURE__ */ __name(({ packet } = {}) => {\n const options = cleanAndMerge(defaultPacketStyleOptions, packet);\n return `\n\t.packetByte {\n\t\tfont-size: ${options.byteFontSize};\n\t}\n\t.packetByte.start {\n\t\tfill: ${options.startByteColor};\n\t}\n\t.packetByte.end {\n\t\tfill: ${options.endByteColor};\n\t}\n\t.packetLabel {\n\t\tfill: ${options.labelColor};\n\t\tfont-size: ${options.labelFontSize};\n\t}\n\t.packetTitle {\n\t\tfill: ${options.titleColor};\n\t\tfont-size: ${options.titleFontSize};\n\t}\n\t.packetBlock {\n\t\tstroke: ${options.blockStrokeColor};\n\t\tstroke-width: ${options.blockStrokeWidth};\n\t\tfill: ${options.blockFillColor};\n\t}\n\t`;\n}, \"styles\");\n\n// src/diagrams/packet/diagram.ts\nvar diagram = {\n parser,\n get db() {\n return new PacketDB();\n },\n renderer,\n styles\n};\nexport {\n diagram\n};\n"],"names":["DEFAULT_PACKET_CONFIG","defaultConfig_default","PacketDB","setAccTitle","getAccTitle","setDiagramTitle","getDiagramTitle","getAccDescription","setAccDescription","__name","config","cleanAndMerge","getConfig","word","clear","maxPacketSize","populate","ast","db","populateCommonDb","lastBit","row","bitsPerRow","start","end","bits","label","log","block","nextBlock","getNextFittingBlock","rowEnd","rowStart","parser","input","parse","draw","_text","id","_version","diagram2","rowHeight","paddingY","bitWidth","words","title","totalRowHeight","svgHeight","svgWidth","svg","selectSvgElement","configureSvgSize","packet","drawWord","rowNumber","paddingX","showBits","group","wordY","blockX","width","isSingleBlock","bitNumberY","renderer","defaultPacketStyleOptions","styles","options","diagram"],"mappings":"0QA6BA,IAAIA,EAAwBC,EAAsB,OAC9CC,EAAW,KAAM,CACnB,aAAc,CACZ,KAAK,OAAS,CAAA,EACd,KAAK,YAAcC,EACnB,KAAK,YAAcC,EACnB,KAAK,gBAAkBC,EACvB,KAAK,gBAAkBC,EACvB,KAAK,kBAAoBC,EACzB,KAAK,kBAAoBC,CAC3B,CACA,MAAA,CACEC,EAAO,KAAM,UAAU,CAC3B,CACE,WAAY,CACV,MAAMC,EAASC,EAAc,CAC3B,GAAGX,EACH,GAAGY,EAAS,EAAG,MACrB,CAAK,EACD,OAAIF,EAAO,WACTA,EAAO,UAAY,IAEdA,CACT,CACA,WAAY,CACV,OAAO,KAAK,MACd,CACA,SAASG,EAAM,CACTA,EAAK,OAAS,GAChB,KAAK,OAAO,KAAKA,CAAI,CAEzB,CACA,OAAQ,CACNC,EAAK,EACL,KAAK,OAAS,CAAA,CAChB,CACF,EAIIC,EAAgB,IAChBC,EAA2BP,EAAO,CAACQ,EAAKC,IAAO,CACjDC,EAAiBF,EAAKC,CAAE,EACxB,IAAIE,EAAU,GACVP,EAAO,CAAA,EACPQ,EAAM,EACV,KAAM,CAAE,WAAAC,CAAU,EAAKJ,EAAG,UAAS,EACnC,OAAS,CAAE,MAAAK,EAAO,IAAAC,EAAK,KAAAC,EAAM,MAAAC,CAAK,IAAMT,EAAI,OAAQ,CAClD,GAAIM,IAAU,QAAUC,IAAQ,QAAUA,EAAMD,EAC9C,MAAM,IAAI,MAAM,gBAAgBA,CAAK,MAAMC,CAAG,8CAA8C,EAG9F,GADAD,IAAUH,EAAU,EAChBG,IAAUH,EAAU,EACtB,MAAM,IAAI,MACR,gBAAgBG,CAAK,MAAMC,GAAOD,CAAK,4CAA4CH,EAAU,CAAC,GACtG,EAEI,GAAIK,IAAS,EACX,MAAM,IAAI,MAAM,gBAAgBF,CAAK,4CAA4C,EAMnF,IAJAC,IAAQD,GAASE,GAAQ,GAAK,EAC9BA,IAASD,EAAMD,EAAQ,EACvBH,EAAUI,EACVG,EAAI,MAAM,gBAAgBJ,CAAK,MAAMH,CAAO,eAAeM,CAAK,EAAE,EAC3Db,EAAK,QAAUS,EAAa,GAAKJ,EAAG,UAAS,EAAG,OAASH,GAAe,CAC7E,KAAM,CAACa,EAAOC,CAAS,EAAIC,EAAoB,CAAE,MAAAP,EAAO,IAAAC,EAAK,KAAAC,EAAM,MAAAC,GAASL,EAAKC,CAAU,EAO3F,GANAT,EAAK,KAAKe,CAAK,EACXA,EAAM,IAAM,IAAMP,EAAMC,IAC1BJ,EAAG,SAASL,CAAI,EAChBA,EAAO,CAAA,EACPQ,KAEE,CAACQ,EACH,OAED,CAAE,MAAAN,EAAO,IAAAC,EAAK,KAAAC,EAAM,MAAAC,CAAK,EAAKG,EACjC,CACF,CACAX,EAAG,SAASL,CAAI,CAClB,EAAG,UAAU,EACTiB,EAAsCrB,EAAO,CAACmB,EAAOP,EAAKC,IAAe,CAC3E,GAAIM,EAAM,QAAU,OAClB,MAAM,IAAI,MAAM,+CAA+C,EAEjE,GAAIA,EAAM,MAAQ,OAChB,MAAM,IAAI,MAAM,6CAA6C,EAE/D,GAAIA,EAAM,MAAQA,EAAM,IACtB,MAAM,IAAI,MAAM,eAAeA,EAAM,KAAK,8BAA8BA,EAAM,GAAG,GAAG,EAEtF,GAAIA,EAAM,IAAM,GAAKP,EAAMC,EACzB,MAAO,CAACM,EAAO,MAAM,EAEvB,MAAMG,EAASV,EAAMC,EAAa,EAC5BU,EAAWX,EAAMC,EACvB,MAAO,CACL,CACE,MAAOM,EAAM,MACb,IAAKG,EACL,MAAOH,EAAM,MACb,KAAMG,EAASH,EAAM,KAC3B,EACI,CACE,MAAOI,EACP,IAAKJ,EAAM,IACX,MAAOA,EAAM,MACb,KAAMA,EAAM,IAAMI,CACxB,CACA,CACA,EAAG,qBAAqB,EACpBC,EAAS,CAEX,OAAQ,CAAE,GAAI,MAAM,EACpB,MAAuBxB,EAAO,MAAOyB,GAAU,CAC7C,MAAMjB,EAAM,MAAMkB,EAAM,SAAUD,CAAK,EACjChB,EAAKe,EAAO,QAAQ,GAC1B,GAAI,EAAEf,aAAchB,GAClB,MAAM,IAAI,MACR,sJACR,EAEIyB,EAAI,MAAMV,CAAG,EACbD,EAASC,EAAKC,CAAE,CAClB,EAAG,OAAO,CACZ,EAGIkB,EAAuB3B,EAAO,CAAC4B,EAAOC,EAAIC,EAAUC,IAAa,CACnE,MAAMtB,EAAKsB,EAAS,GACd9B,EAASQ,EAAG,UAAS,EACrB,CAAE,UAAAuB,EAAW,SAAAC,EAAU,SAAAC,EAAU,WAAArB,CAAU,EAAKZ,EAChDkC,EAAQ1B,EAAG,UAAS,EACpB2B,EAAQ3B,EAAG,gBAAe,EAC1B4B,EAAiBL,EAAYC,EAC7BK,EAAYD,GAAkBF,EAAM,OAAS,IAAMC,EAAQ,EAAIJ,GAC/DO,EAAWL,EAAWrB,EAAa,EACnC2B,EAAMC,EAAiBZ,CAAE,EAC/BW,EAAI,KAAK,UAAW,OAAOD,CAAQ,IAAID,CAAS,EAAE,EAClDI,EAAiBF,EAAKF,EAAWC,EAAUtC,EAAO,WAAW,EAC7D,SAAW,CAACG,EAAMuC,CAAM,IAAKR,EAAM,QAAO,EACxCS,EAASJ,EAAKG,EAAQvC,EAAMH,CAAM,EAEpCuC,EAAI,OAAO,MAAM,EAAE,KAAKJ,CAAK,EAAE,KAAK,IAAKG,EAAW,CAAC,EAAE,KAAK,IAAKD,EAAYD,EAAiB,CAAC,EAAE,KAAK,oBAAqB,QAAQ,EAAE,KAAK,cAAe,QAAQ,EAAE,KAAK,QAAS,aAAa,CAChM,EAAG,MAAM,EACLO,EAA2B5C,EAAO,CAACwC,EAAKpC,EAAMyC,EAAW,CAAE,UAAAb,EAAW,SAAAc,EAAU,SAAAb,EAAU,SAAAC,EAAU,WAAArB,EAAY,SAAAkC,CAAQ,IAAO,CACjI,MAAMC,EAAQR,EAAI,OAAO,GAAG,EACtBS,EAAQJ,GAAab,EAAYC,GAAYA,EACnD,UAAWd,KAASf,EAAM,CACxB,MAAM8C,EAAS/B,EAAM,MAAQN,EAAaqB,EAAW,EAC/CiB,GAAShC,EAAM,IAAMA,EAAM,MAAQ,GAAKe,EAAWY,EAGzD,GAFAE,EAAM,OAAO,MAAM,EAAE,KAAK,IAAKE,CAAM,EAAE,KAAK,IAAKD,CAAK,EAAE,KAAK,QAASE,CAAK,EAAE,KAAK,SAAUnB,CAAS,EAAE,KAAK,QAAS,aAAa,EAClIgB,EAAM,OAAO,MAAM,EAAE,KAAK,IAAKE,EAASC,EAAQ,CAAC,EAAE,KAAK,IAAKF,EAAQjB,EAAY,CAAC,EAAE,KAAK,QAAS,aAAa,EAAE,KAAK,oBAAqB,QAAQ,EAAE,KAAK,cAAe,QAAQ,EAAE,KAAKb,EAAM,KAAK,EAC/L,CAAC4B,EACH,SAEF,MAAMK,EAAgBjC,EAAM,MAAQA,EAAM,MACpCkC,EAAaJ,EAAQ,EAC3BD,EAAM,OAAO,MAAM,EAAE,KAAK,IAAKE,GAAUE,EAAgBD,EAAQ,EAAI,EAAE,EAAE,KAAK,IAAKE,CAAU,EAAE,KAAK,QAAS,kBAAkB,EAAE,KAAK,oBAAqB,MAAM,EAAE,KAAK,cAAeD,EAAgB,SAAW,OAAO,EAAE,KAAKjC,EAAM,KAAK,EACtOiC,GACHJ,EAAM,OAAO,MAAM,EAAE,KAAK,IAAKE,EAASC,CAAK,EAAE,KAAK,IAAKE,CAAU,EAAE,KAAK,QAAS,gBAAgB,EAAE,KAAK,oBAAqB,MAAM,EAAE,KAAK,cAAe,KAAK,EAAE,KAAKlC,EAAM,GAAG,CAEpL,CACF,EAAG,UAAU,EACTmC,EAAW,CAAE,KAAA3B,CAAI,EAGjB4B,EAA4B,CAC9B,aAAc,OACd,eAAgB,QAChB,aAAc,QACd,WAAY,QACZ,cAAe,OACf,WAAY,QACZ,cAAe,OACf,iBAAkB,QAClB,iBAAkB,IAClB,eAAgB,SAClB,EACIC,EAAyBxD,EAAO,CAAC,CAAE,OAAA2C,CAAM,EAAK,CAAA,IAAO,CACvD,MAAMc,EAAUvD,EAAcqD,EAA2BZ,CAAM,EAC/D,MAAO;AAAA;AAAA,eAEMc,EAAQ,YAAY;AAAA;AAAA;AAAA,UAGzBA,EAAQ,cAAc;AAAA;AAAA;AAAA,UAGtBA,EAAQ,YAAY;AAAA;AAAA;AAAA,UAGpBA,EAAQ,UAAU;AAAA,eACbA,EAAQ,aAAa;AAAA;AAAA;AAAA,UAG1BA,EAAQ,UAAU;AAAA,eACbA,EAAQ,aAAa;AAAA;AAAA;AAAA,YAGxBA,EAAQ,gBAAgB;AAAA,kBAClBA,EAAQ,gBAAgB;AAAA,UAChCA,EAAQ,cAAc;AAAA;AAAA,EAGhC,EAAG,QAAQ,EAGPC,EAAU,CACZ,OAAAlC,EACA,IAAI,IAAK,CACP,OAAO,IAAI/B,CACb,EACA,SAAA6D,EACA,OAAAE,CACF","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"diagram-LBJQPF4R-Cpc35PFW.js","sources":["../../../node_modules/mermaid/dist/chunks/mermaid.core/diagram-LBJQPF4R.mjs"],"sourcesContent":["import {\n populateCommonDb\n} from \"./chunk-JWPE2WC7.mjs\";\nimport {\n selectSvgElement\n} from \"./chunk-3NCLNEKW.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-NSK5VX7P.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-I66GZJ75.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/packet/db.ts\nvar DEFAULT_PACKET_CONFIG = defaultConfig_default.packet;\nvar PacketDB = class {\n constructor() {\n this.packet = [];\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getAccDescription = getAccDescription;\n this.setAccDescription = setAccDescription;\n }\n static {\n __name(this, \"PacketDB\");\n }\n getConfig() {\n const config = cleanAndMerge({\n ...DEFAULT_PACKET_CONFIG,\n ...getConfig().packet\n });\n if (config.showBits) {\n config.paddingY += 10;\n }\n return config;\n }\n getPacket() {\n return this.packet;\n }\n pushWord(word) {\n if (word.length > 0) {\n this.packet.push(word);\n }\n }\n clear() {\n clear();\n this.packet = [];\n }\n};\n\n// src/diagrams/packet/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar maxPacketSize = 1e4;\nvar populate = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n let lastBit = -1;\n let word = [];\n let row = 1;\n const { bitsPerRow } = db.getConfig();\n for (let { start, end, bits, label } of ast.blocks) {\n if (start !== void 0 && end !== void 0 && end < start) {\n throw new Error(`Packet block ${start} - ${end} is invalid. End must be greater than start.`);\n }\n start ??= lastBit + 1;\n if (start !== lastBit + 1) {\n throw new Error(\n `Packet block ${start} - ${end ?? start} is not contiguous. It should start from ${lastBit + 1}.`\n );\n }\n if (bits === 0) {\n throw new Error(`Packet block ${start} is invalid. Cannot have a zero bit field.`);\n }\n end ??= start + (bits ?? 1) - 1;\n bits ??= end - start + 1;\n lastBit = end;\n log.debug(`Packet block ${start} - ${lastBit} with label ${label}`);\n while (word.length <= bitsPerRow + 1 && db.getPacket().length < maxPacketSize) {\n const [block, nextBlock] = getNextFittingBlock({ start, end, bits, label }, row, bitsPerRow);\n word.push(block);\n if (block.end + 1 === row * bitsPerRow) {\n db.pushWord(word);\n word = [];\n row++;\n }\n if (!nextBlock) {\n break;\n }\n ({ start, end, bits, label } = nextBlock);\n }\n }\n db.pushWord(word);\n}, \"populate\");\nvar getNextFittingBlock = /* @__PURE__ */ __name((block, row, bitsPerRow) => {\n if (block.start === void 0) {\n throw new Error(\"start should have been set during first phase\");\n }\n if (block.end === void 0) {\n throw new Error(\"end should have been set during first phase\");\n }\n if (block.start > block.end) {\n throw new Error(`Block start ${block.start} is greater than block end ${block.end}.`);\n }\n if (block.end + 1 <= row * bitsPerRow) {\n return [block, void 0];\n }\n const rowEnd = row * bitsPerRow - 1;\n const rowStart = row * bitsPerRow;\n return [\n {\n start: block.start,\n end: rowEnd,\n label: block.label,\n bits: rowEnd - block.start\n },\n {\n start: rowStart,\n end: block.end,\n label: block.label,\n bits: block.end - rowStart\n }\n ];\n}, \"getNextFittingBlock\");\nvar parser = {\n // @ts-expect-error - PacketDB is not assignable to DiagramDB\n parser: { yy: void 0 },\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"packet\", input);\n const db = parser.parser?.yy;\n if (!(db instanceof PacketDB)) {\n throw new Error(\n \"parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.\"\n );\n }\n log.debug(ast);\n populate(ast, db);\n }, \"parse\")\n};\n\n// src/diagrams/packet/renderer.ts\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const db = diagram2.db;\n const config = db.getConfig();\n const { rowHeight, paddingY, bitWidth, bitsPerRow } = config;\n const words = db.getPacket();\n const title = db.getDiagramTitle();\n const totalRowHeight = rowHeight + paddingY;\n const svgHeight = totalRowHeight * (words.length + 1) - (title ? 0 : rowHeight);\n const svgWidth = bitWidth * bitsPerRow + 2;\n const svg = selectSvgElement(id);\n svg.attr(\"viewBox\", `0 0 ${svgWidth} ${svgHeight}`);\n configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);\n for (const [word, packet] of words.entries()) {\n drawWord(svg, packet, word, config);\n }\n svg.append(\"text\").text(title).attr(\"x\", svgWidth / 2).attr(\"y\", svgHeight - totalRowHeight / 2).attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").attr(\"class\", \"packetTitle\");\n}, \"draw\");\nvar drawWord = /* @__PURE__ */ __name((svg, word, rowNumber, { rowHeight, paddingX, paddingY, bitWidth, bitsPerRow, showBits }) => {\n const group = svg.append(\"g\");\n const wordY = rowNumber * (rowHeight + paddingY) + paddingY;\n for (const block of word) {\n const blockX = block.start % bitsPerRow * bitWidth + 1;\n const width = (block.end - block.start + 1) * bitWidth - paddingX;\n group.append(\"rect\").attr(\"x\", blockX).attr(\"y\", wordY).attr(\"width\", width).attr(\"height\", rowHeight).attr(\"class\", \"packetBlock\");\n group.append(\"text\").attr(\"x\", blockX + width / 2).attr(\"y\", wordY + rowHeight / 2).attr(\"class\", \"packetLabel\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").text(block.label);\n if (!showBits) {\n continue;\n }\n const isSingleBlock = block.end === block.start;\n const bitNumberY = wordY - 2;\n group.append(\"text\").attr(\"x\", blockX + (isSingleBlock ? width / 2 : 0)).attr(\"y\", bitNumberY).attr(\"class\", \"packetByte start\").attr(\"dominant-baseline\", \"auto\").attr(\"text-anchor\", isSingleBlock ? \"middle\" : \"start\").text(block.start);\n if (!isSingleBlock) {\n group.append(\"text\").attr(\"x\", blockX + width).attr(\"y\", bitNumberY).attr(\"class\", \"packetByte end\").attr(\"dominant-baseline\", \"auto\").attr(\"text-anchor\", \"end\").text(block.end);\n }\n }\n}, \"drawWord\");\nvar renderer = { draw };\n\n// src/diagrams/packet/styles.ts\nvar defaultPacketStyleOptions = {\n byteFontSize: \"10px\",\n startByteColor: \"black\",\n endByteColor: \"black\",\n labelColor: \"black\",\n labelFontSize: \"12px\",\n titleColor: \"black\",\n titleFontSize: \"14px\",\n blockStrokeColor: \"black\",\n blockStrokeWidth: \"1\",\n blockFillColor: \"#efefef\"\n};\nvar styles = /* @__PURE__ */ __name(({ packet } = {}) => {\n const options = cleanAndMerge(defaultPacketStyleOptions, packet);\n return `\n\t.packetByte {\n\t\tfont-size: ${options.byteFontSize};\n\t}\n\t.packetByte.start {\n\t\tfill: ${options.startByteColor};\n\t}\n\t.packetByte.end {\n\t\tfill: ${options.endByteColor};\n\t}\n\t.packetLabel {\n\t\tfill: ${options.labelColor};\n\t\tfont-size: ${options.labelFontSize};\n\t}\n\t.packetTitle {\n\t\tfill: ${options.titleColor};\n\t\tfont-size: ${options.titleFontSize};\n\t}\n\t.packetBlock {\n\t\tstroke: ${options.blockStrokeColor};\n\t\tstroke-width: ${options.blockStrokeWidth};\n\t\tfill: ${options.blockFillColor};\n\t}\n\t`;\n}, \"styles\");\n\n// src/diagrams/packet/diagram.ts\nvar diagram = {\n parser,\n get db() {\n return new PacketDB();\n },\n renderer,\n styles\n};\nexport {\n diagram\n};\n"],"names":["DEFAULT_PACKET_CONFIG","defaultConfig_default","PacketDB","setAccTitle","getAccTitle","setDiagramTitle","getDiagramTitle","getAccDescription","setAccDescription","__name","config","cleanAndMerge","getConfig","word","clear","maxPacketSize","populate","ast","db","populateCommonDb","lastBit","row","bitsPerRow","start","end","bits","label","log","block","nextBlock","getNextFittingBlock","rowEnd","rowStart","parser","input","parse","draw","_text","id","_version","diagram2","rowHeight","paddingY","bitWidth","words","title","totalRowHeight","svgHeight","svgWidth","svg","selectSvgElement","configureSvgSize","packet","drawWord","rowNumber","paddingX","showBits","group","wordY","blockX","width","isSingleBlock","bitNumberY","renderer","defaultPacketStyleOptions","styles","options","diagram"],"mappings":"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","x_google_ignoreList":[0]}