@aiquants/markdown 1.17.4 → 2.0.0

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 (247) hide show
  1. package/dist/{abnfDiagram-VRR7QNED-DA16g2La.cjs → abnfDiagram-VRR7QNED-BBmog1I4.cjs} +2 -2
  2. package/dist/{abnfDiagram-VRR7QNED-DA16g2La.cjs.map → abnfDiagram-VRR7QNED-BBmog1I4.cjs.map} +1 -1
  3. package/dist/{abnfDiagram-VRR7QNED-DX13PCMc.js → abnfDiagram-VRR7QNED-CxfTrgXf.js} +4 -4
  4. package/dist/{abnfDiagram-VRR7QNED-DX13PCMc.js.map → abnfDiagram-VRR7QNED-CxfTrgXf.js.map} +1 -1
  5. package/dist/{arc-6qASHEoU.js → arc-ClGqtl_2.js} +33 -33
  6. package/dist/{arc-6qASHEoU.js.map → arc-ClGqtl_2.js.map} +1 -1
  7. package/dist/{arc-wW7j3gvo.cjs → arc-DKsAswGe.cjs} +2 -2
  8. package/dist/{arc-wW7j3gvo.cjs.map → arc-DKsAswGe.cjs.map} +1 -1
  9. package/dist/{architectureDiagram-ZJ3FMSHR-D5kaurkM.cjs → architectureDiagram-ZJ3FMSHR-BLhnaJyB.cjs} +2 -2
  10. package/dist/{architectureDiagram-ZJ3FMSHR-D5kaurkM.cjs.map → architectureDiagram-ZJ3FMSHR-BLhnaJyB.cjs.map} +1 -1
  11. package/dist/{architectureDiagram-ZJ3FMSHR-COTmquXj.js → architectureDiagram-ZJ3FMSHR-Dild3kjN.js} +3 -3
  12. package/dist/{architectureDiagram-ZJ3FMSHR-COTmquXj.js.map → architectureDiagram-ZJ3FMSHR-Dild3kjN.js.map} +1 -1
  13. package/dist/{blockDiagram-677ZJIJ3-BK0UI-j7.cjs → blockDiagram-677ZJIJ3-D72bpMhN.cjs} +2 -2
  14. package/dist/{blockDiagram-677ZJIJ3-BK0UI-j7.cjs.map → blockDiagram-677ZJIJ3-D72bpMhN.cjs.map} +1 -1
  15. package/dist/{blockDiagram-677ZJIJ3-CJIR-mk3.js → blockDiagram-677ZJIJ3-DD1l8WOn.js} +167 -167
  16. package/dist/{blockDiagram-677ZJIJ3-CJIR-mk3.js.map → blockDiagram-677ZJIJ3-DD1l8WOn.js.map} +1 -1
  17. package/dist/{c4Diagram-LMCZKHZV-D9nMfRhz.js → c4Diagram-LMCZKHZV-BJkJh-kC.js} +3 -3
  18. package/dist/{c4Diagram-LMCZKHZV-D9nMfRhz.js.map → c4Diagram-LMCZKHZV-BJkJh-kC.js.map} +1 -1
  19. package/dist/{c4Diagram-LMCZKHZV-DEvjxLqy.cjs → c4Diagram-LMCZKHZV-D3d1d4zO.cjs} +2 -2
  20. package/dist/{c4Diagram-LMCZKHZV-DEvjxLqy.cjs.map → c4Diagram-LMCZKHZV-D3d1d4zO.cjs.map} +1 -1
  21. package/dist/channel-DE5LXIMm.cjs +2 -0
  22. package/dist/{channel-BpIdowqO.cjs.map → channel-DE5LXIMm.cjs.map} +1 -1
  23. package/dist/channel-DaGDswnD.js +6 -0
  24. package/dist/{channel-DGDNA7RK.js.map → channel-DaGDswnD.js.map} +1 -1
  25. package/dist/{chunk-2Q5K7J3B-C9tb4Ct7.cjs → chunk-2Q5K7J3B-BrnUlAaZ.cjs} +2 -2
  26. package/dist/{chunk-2Q5K7J3B-C9tb4Ct7.cjs.map → chunk-2Q5K7J3B-BrnUlAaZ.cjs.map} +1 -1
  27. package/dist/{chunk-2Q5K7J3B-CXoKJ2zL.js → chunk-2Q5K7J3B-DejpXtzn.js} +2 -2
  28. package/dist/{chunk-2Q5K7J3B-CXoKJ2zL.js.map → chunk-2Q5K7J3B-DejpXtzn.js.map} +1 -1
  29. package/dist/{chunk-32BRIVSS-BsmIXWWd.js → chunk-32BRIVSS-BCAuSjpE.js} +2 -2
  30. package/dist/{chunk-32BRIVSS-BsmIXWWd.js.map → chunk-32BRIVSS-BCAuSjpE.js.map} +1 -1
  31. package/dist/{chunk-32BRIVSS-C2deE16j.cjs → chunk-32BRIVSS-CDxbP_I9.cjs} +2 -2
  32. package/dist/{chunk-32BRIVSS-C2deE16j.cjs.map → chunk-32BRIVSS-CDxbP_I9.cjs.map} +1 -1
  33. package/dist/{chunk-5VM5RSS4-BB5C4pQd.cjs → chunk-5VM5RSS4-C-cBAbST.cjs} +2 -2
  34. package/dist/{chunk-5VM5RSS4-BB5C4pQd.cjs.map → chunk-5VM5RSS4-C-cBAbST.cjs.map} +1 -1
  35. package/dist/{chunk-5VM5RSS4-8uhmWNYU.js → chunk-5VM5RSS4-DI1kbCYB.js} +2 -2
  36. package/dist/{chunk-5VM5RSS4-8uhmWNYU.js.map → chunk-5VM5RSS4-DI1kbCYB.js.map} +1 -1
  37. package/dist/{chunk-EX3LRPZG-BU7kj60F.js → chunk-EX3LRPZG-CVTsVkLX.js} +38 -38
  38. package/dist/{chunk-EX3LRPZG-BU7kj60F.js.map → chunk-EX3LRPZG-CVTsVkLX.js.map} +1 -1
  39. package/dist/{chunk-EX3LRPZG-DiJSOd35.cjs → chunk-EX3LRPZG-uKd75-FB.cjs} +2 -2
  40. package/dist/{chunk-EX3LRPZG-DiJSOd35.cjs.map → chunk-EX3LRPZG-uKd75-FB.cjs.map} +1 -1
  41. package/dist/{chunk-JWPE2WC7-CF2MvshB.cjs → chunk-JWPE2WC7-CNFRDah7.cjs} +2 -2
  42. package/dist/{chunk-JWPE2WC7-CF2MvshB.cjs.map → chunk-JWPE2WC7-CNFRDah7.cjs.map} +1 -1
  43. package/dist/{chunk-JWPE2WC7-CMI2UtKP.js → chunk-JWPE2WC7-Cu3ql0Gi.js} +2 -2
  44. package/dist/{chunk-JWPE2WC7-CMI2UtKP.js.map → chunk-JWPE2WC7-Cu3ql0Gi.js.map} +1 -1
  45. package/dist/{chunk-MOJQB5TN-1fb215ZL.js → chunk-MOJQB5TN-BZ0Sok4l.js} +12 -12
  46. package/dist/{chunk-MOJQB5TN-1fb215ZL.js.map → chunk-MOJQB5TN-BZ0Sok4l.js.map} +1 -1
  47. package/dist/{chunk-MOJQB5TN-DLz0IiiD.cjs → chunk-MOJQB5TN-Bs5Jj3Zh.cjs} +2 -2
  48. package/dist/{chunk-MOJQB5TN-DLz0IiiD.cjs.map → chunk-MOJQB5TN-Bs5Jj3Zh.cjs.map} +1 -1
  49. package/dist/{chunk-PUDLZKDR-BwE-M2dR.js → chunk-PUDLZKDR-3RVC5ezN.js} +7 -7
  50. package/dist/{chunk-PUDLZKDR-BwE-M2dR.js.map → chunk-PUDLZKDR-3RVC5ezN.js.map} +1 -1
  51. package/dist/{chunk-PUDLZKDR-C8mkuWDP.cjs → chunk-PUDLZKDR-DisfuynB.cjs} +2 -2
  52. package/dist/{chunk-PUDLZKDR-C8mkuWDP.cjs.map → chunk-PUDLZKDR-DisfuynB.cjs.map} +1 -1
  53. package/dist/{chunk-RYQCIY6F-Bje2GI9K.js → chunk-RYQCIY6F-CSpf1fBI.js} +13 -13
  54. package/dist/{chunk-RYQCIY6F-Bje2GI9K.js.map → chunk-RYQCIY6F-CSpf1fBI.js.map} +1 -1
  55. package/dist/{chunk-RYQCIY6F-C-CFpAHC.cjs → chunk-RYQCIY6F-xFTrTO6v.cjs} +2 -2
  56. package/dist/{chunk-RYQCIY6F-C-CFpAHC.cjs.map → chunk-RYQCIY6F-xFTrTO6v.cjs.map} +1 -1
  57. package/dist/{chunk-V7JOEXUC-7qyR9Bsr.js → chunk-V7JOEXUC-BnwuCkOT.js} +13 -13
  58. package/dist/{chunk-V7JOEXUC-7qyR9Bsr.js.map → chunk-V7JOEXUC-BnwuCkOT.js.map} +1 -1
  59. package/dist/{chunk-V7JOEXUC-D0cvK7qG.cjs → chunk-V7JOEXUC-BvkxRSjK.cjs} +2 -2
  60. package/dist/{chunk-V7JOEXUC-D0cvK7qG.cjs.map → chunk-V7JOEXUC-BvkxRSjK.cjs.map} +1 -1
  61. package/dist/{chunk-VR4S4FIN-D5ATG3nh.cjs → chunk-VR4S4FIN-DAwCjhU3.cjs} +2 -2
  62. package/dist/{chunk-VR4S4FIN-D5ATG3nh.cjs.map → chunk-VR4S4FIN-DAwCjhU3.cjs.map} +1 -1
  63. package/dist/{chunk-VR4S4FIN-B50Vp5sn.js → chunk-VR4S4FIN-DSW2sQDL.js} +4 -4
  64. package/dist/{chunk-VR4S4FIN-B50Vp5sn.js.map → chunk-VR4S4FIN-DSW2sQDL.js.map} +1 -1
  65. package/dist/{chunk-XXDRQBXY-Csz5m9Q0.cjs → chunk-XXDRQBXY-B7vX1DJv.cjs} +2 -2
  66. package/dist/{chunk-XXDRQBXY-Csz5m9Q0.cjs.map → chunk-XXDRQBXY-B7vX1DJv.cjs.map} +1 -1
  67. package/dist/{chunk-XXDRQBXY-C5GJuDGM.js → chunk-XXDRQBXY-DrE4gFtL.js} +2 -2
  68. package/dist/{chunk-XXDRQBXY-C5GJuDGM.js.map → chunk-XXDRQBXY-DrE4gFtL.js.map} +1 -1
  69. package/dist/{classDiagram-OUVF2IWQ-haL9UyE3.cjs → classDiagram-OUVF2IWQ-BxIt89EK.cjs} +2 -2
  70. package/dist/{classDiagram-OUVF2IWQ-haL9UyE3.cjs.map → classDiagram-OUVF2IWQ-BxIt89EK.cjs.map} +1 -1
  71. package/dist/{classDiagram-OUVF2IWQ-JmvsYqNb.js → classDiagram-OUVF2IWQ-DlER_wIi.js} +3 -3
  72. package/dist/{classDiagram-OUVF2IWQ-JmvsYqNb.js.map → classDiagram-OUVF2IWQ-DlER_wIi.js.map} +1 -1
  73. package/dist/{classDiagram-v2-EOCWNBFH-haL9UyE3.cjs → classDiagram-v2-EOCWNBFH-BxIt89EK.cjs} +2 -2
  74. package/dist/{classDiagram-v2-EOCWNBFH-haL9UyE3.cjs.map → classDiagram-v2-EOCWNBFH-BxIt89EK.cjs.map} +1 -1
  75. package/dist/{classDiagram-v2-EOCWNBFH-JmvsYqNb.js → classDiagram-v2-EOCWNBFH-DlER_wIi.js} +3 -3
  76. package/dist/{classDiagram-v2-EOCWNBFH-JmvsYqNb.js.map → classDiagram-v2-EOCWNBFH-DlER_wIi.js.map} +1 -1
  77. package/dist/{cose-bilkent-JH36ORCC-dEzYTN0Y.js → cose-bilkent-JH36ORCC-BvnlFiZm.js} +2 -2
  78. package/dist/{cose-bilkent-JH36ORCC-dEzYTN0Y.js.map → cose-bilkent-JH36ORCC-BvnlFiZm.js.map} +1 -1
  79. package/dist/{cose-bilkent-JH36ORCC-CctQ6RmA.cjs → cose-bilkent-JH36ORCC-BzL-a0Zv.cjs} +2 -2
  80. package/dist/{cose-bilkent-JH36ORCC-CctQ6RmA.cjs.map → cose-bilkent-JH36ORCC-BzL-a0Zv.cjs.map} +1 -1
  81. package/dist/{cynefinDiagram-TSTJHNR4-Dc593JI7.cjs → cynefinDiagram-TSTJHNR4-B1lNDIu_.cjs} +2 -2
  82. package/dist/{cynefinDiagram-TSTJHNR4-Dc593JI7.cjs.map → cynefinDiagram-TSTJHNR4-B1lNDIu_.cjs.map} +1 -1
  83. package/dist/{cynefinDiagram-TSTJHNR4-DA0IbaOf.js → cynefinDiagram-TSTJHNR4-CUwuCyMp.js} +14 -14
  84. package/dist/{cynefinDiagram-TSTJHNR4-DA0IbaOf.js.map → cynefinDiagram-TSTJHNR4-CUwuCyMp.js.map} +1 -1
  85. package/dist/{dagre-VKFMJZFB-UlVWPHEF.cjs → dagre-VKFMJZFB-COYURQTh.cjs} +2 -2
  86. package/dist/{dagre-VKFMJZFB-UlVWPHEF.cjs.map → dagre-VKFMJZFB-COYURQTh.cjs.map} +1 -1
  87. package/dist/{dagre-VKFMJZFB-BZ4KqiTp.js → dagre-VKFMJZFB-Ct0vbIs9.js} +3 -3
  88. package/dist/{dagre-VKFMJZFB-BZ4KqiTp.js.map → dagre-VKFMJZFB-Ct0vbIs9.js.map} +1 -1
  89. package/dist/{diagram-FQU43EPY-BUkX2dwX.js → diagram-FQU43EPY-B5HmiJPw.js} +89 -89
  90. package/dist/{diagram-FQU43EPY-BUkX2dwX.js.map → diagram-FQU43EPY-B5HmiJPw.js.map} +1 -1
  91. package/dist/{diagram-FQU43EPY-Cz9HQsDB.cjs → diagram-FQU43EPY-DkgdwwAT.cjs} +2 -2
  92. package/dist/{diagram-FQU43EPY-Cz9HQsDB.cjs.map → diagram-FQU43EPY-DkgdwwAT.cjs.map} +1 -1
  93. package/dist/{diagram-G47NLZAW-BHYy7jE3.js → diagram-G47NLZAW-C-nfBNGF.js} +131 -131
  94. package/dist/{diagram-G47NLZAW-BHYy7jE3.js.map → diagram-G47NLZAW-C-nfBNGF.js.map} +1 -1
  95. package/dist/{diagram-G47NLZAW-BCRCFiSM.cjs → diagram-G47NLZAW-CcXcBx81.cjs} +2 -2
  96. package/dist/{diagram-G47NLZAW-BCRCFiSM.cjs.map → diagram-G47NLZAW-CcXcBx81.cjs.map} +1 -1
  97. package/dist/{diagram-NH7WQ7WH-CerCbpUu.cjs → diagram-NH7WQ7WH-BMYzS0pm.cjs} +2 -2
  98. package/dist/{diagram-NH7WQ7WH-CerCbpUu.cjs.map → diagram-NH7WQ7WH-BMYzS0pm.cjs.map} +1 -1
  99. package/dist/{diagram-NH7WQ7WH-IhqPJd1s.js → diagram-NH7WQ7WH-yu8B8Q4y.js} +7 -7
  100. package/dist/{diagram-NH7WQ7WH-IhqPJd1s.js.map → diagram-NH7WQ7WH-yu8B8Q4y.js.map} +1 -1
  101. package/dist/{diagram-OA4YK3LP-C3WyYBi_.js → diagram-OA4YK3LP-CROsfore.js} +16 -16
  102. package/dist/{diagram-OA4YK3LP-C3WyYBi_.js.map → diagram-OA4YK3LP-CROsfore.js.map} +1 -1
  103. package/dist/{diagram-OA4YK3LP-B8TMBlbb.cjs → diagram-OA4YK3LP-DSeI6RLe.cjs} +2 -2
  104. package/dist/{diagram-OA4YK3LP-B8TMBlbb.cjs.map → diagram-OA4YK3LP-DSeI6RLe.cjs.map} +1 -1
  105. package/dist/{diagram-WEI45ONY-Be4piikM.cjs → diagram-WEI45ONY-CCJwQ42c.cjs} +2 -2
  106. package/dist/{diagram-WEI45ONY-Be4piikM.cjs.map → diagram-WEI45ONY-CCJwQ42c.cjs.map} +1 -1
  107. package/dist/{diagram-WEI45ONY-DIwaS9Jo.js → diagram-WEI45ONY-DmPpMglv.js} +21 -21
  108. package/dist/{diagram-WEI45ONY-DIwaS9Jo.js.map → diagram-WEI45ONY-DmPpMglv.js.map} +1 -1
  109. package/dist/{ebnfDiagram-CCIWWBDH-BjmRWGfS.js → ebnfDiagram-CCIWWBDH-B2ck9j39.js} +6 -6
  110. package/dist/{ebnfDiagram-CCIWWBDH-BjmRWGfS.js.map → ebnfDiagram-CCIWWBDH-B2ck9j39.js.map} +1 -1
  111. package/dist/{ebnfDiagram-CCIWWBDH-C5MvxXmd.cjs → ebnfDiagram-CCIWWBDH-D_nz1FvR.cjs} +2 -2
  112. package/dist/{ebnfDiagram-CCIWWBDH-C5MvxXmd.cjs.map → ebnfDiagram-CCIWWBDH-D_nz1FvR.cjs.map} +1 -1
  113. package/dist/{erDiagram-Q63AITRT-CGL15E8G.cjs → erDiagram-Q63AITRT-2r-lfgSt.cjs} +2 -2
  114. package/dist/{erDiagram-Q63AITRT-CGL15E8G.cjs.map → erDiagram-Q63AITRT-2r-lfgSt.cjs.map} +1 -1
  115. package/dist/{erDiagram-Q63AITRT-DxHlesHD.js → erDiagram-Q63AITRT-BfpyxqAV.js} +13 -13
  116. package/dist/{erDiagram-Q63AITRT-DxHlesHD.js.map → erDiagram-Q63AITRT-BfpyxqAV.js.map} +1 -1
  117. package/dist/{extractHeadings-DLMipVtZ.cjs → extractHeadings-BrLI2qQF.cjs} +57 -57
  118. package/dist/extractHeadings-BrLI2qQF.cjs.map +1 -0
  119. package/dist/{extractHeadings-DXqyEdSz.js → extractHeadings-Dgzd324l.js} +4982 -5024
  120. package/dist/extractHeadings-Dgzd324l.js.map +1 -0
  121. package/dist/flowDiagram-23GEKE2U-D3w55eDA.cjs +2 -0
  122. package/dist/flowDiagram-23GEKE2U-D3w55eDA.cjs.map +1 -0
  123. package/dist/flowDiagram-23GEKE2U-LZTzy0Rx.js +8 -0
  124. package/dist/flowDiagram-23GEKE2U-LZTzy0Rx.js.map +1 -0
  125. package/dist/{ganttDiagram-NO4QXBWP-DJ3jv8Rd.cjs → ganttDiagram-NO4QXBWP-CNhgpKSH.cjs} +2 -2
  126. package/dist/{ganttDiagram-NO4QXBWP-DJ3jv8Rd.cjs.map → ganttDiagram-NO4QXBWP-CNhgpKSH.cjs.map} +1 -1
  127. package/dist/{ganttDiagram-NO4QXBWP-Cr3YBegW.js → ganttDiagram-NO4QXBWP-DR3YQ-Kd.js} +3 -3
  128. package/dist/{ganttDiagram-NO4QXBWP-Cr3YBegW.js.map → ganttDiagram-NO4QXBWP-DR3YQ-Kd.js.map} +1 -1
  129. package/dist/{gitGraphDiagram-IHSO6WYX-DLtw9G3h.js → gitGraphDiagram-IHSO6WYX-CzLNLS8W.js} +15 -15
  130. package/dist/{gitGraphDiagram-IHSO6WYX-DLtw9G3h.js.map → gitGraphDiagram-IHSO6WYX-CzLNLS8W.js.map} +1 -1
  131. package/dist/{gitGraphDiagram-IHSO6WYX-DfeTcKQn.cjs → gitGraphDiagram-IHSO6WYX-D5IYosEF.cjs} +2 -2
  132. package/dist/{gitGraphDiagram-IHSO6WYX-DfeTcKQn.cjs.map → gitGraphDiagram-IHSO6WYX-D5IYosEF.cjs.map} +1 -1
  133. package/dist/index.cjs +1 -1
  134. package/dist/index.client.cjs +1 -1
  135. package/dist/index.client.d.ts +1 -2
  136. package/dist/index.client.d.ts.map +1 -1
  137. package/dist/index.client.js +37 -39
  138. package/dist/index.js +37 -39
  139. package/dist/index.server.cjs +1 -1
  140. package/dist/index.server.cjs.map +1 -1
  141. package/dist/index.server.d.ts +11 -3
  142. package/dist/index.server.d.ts.map +1 -1
  143. package/dist/index.server.js +159 -220
  144. package/dist/index.server.js.map +1 -1
  145. package/dist/{infoDiagram-FWYZ7A6U-Ce8j8jph.js → infoDiagram-FWYZ7A6U-CBcx5GhE.js} +6 -6
  146. package/dist/{infoDiagram-FWYZ7A6U-Ce8j8jph.js.map → infoDiagram-FWYZ7A6U-CBcx5GhE.js.map} +1 -1
  147. package/dist/{infoDiagram-FWYZ7A6U-CW4-d4rX.cjs → infoDiagram-FWYZ7A6U-U2OiliOP.cjs} +2 -2
  148. package/dist/{infoDiagram-FWYZ7A6U-CW4-d4rX.cjs.map → infoDiagram-FWYZ7A6U-U2OiliOP.cjs.map} +1 -1
  149. package/dist/{ishikawaDiagram-FXEZZL3T-L8-waBZb.js → ishikawaDiagram-FXEZZL3T-CWXT_3xh.js} +29 -29
  150. package/dist/{ishikawaDiagram-FXEZZL3T-L8-waBZb.js.map → ishikawaDiagram-FXEZZL3T-CWXT_3xh.js.map} +1 -1
  151. package/dist/{ishikawaDiagram-FXEZZL3T-B12HxQJc.cjs → ishikawaDiagram-FXEZZL3T-DK3M6wrz.cjs} +2 -2
  152. package/dist/{ishikawaDiagram-FXEZZL3T-B12HxQJc.cjs.map → ishikawaDiagram-FXEZZL3T-DK3M6wrz.cjs.map} +1 -1
  153. package/dist/{journeyDiagram-5HDEW3XC-D8Grjliz.cjs → journeyDiagram-5HDEW3XC-B-BfhPr4.cjs} +2 -2
  154. package/dist/{journeyDiagram-5HDEW3XC-D8Grjliz.cjs.map → journeyDiagram-5HDEW3XC-B-BfhPr4.cjs.map} +1 -1
  155. package/dist/{journeyDiagram-5HDEW3XC-DT-oySwM.js → journeyDiagram-5HDEW3XC-DRbAj2Yz.js} +21 -21
  156. package/dist/{journeyDiagram-5HDEW3XC-DT-oySwM.js.map → journeyDiagram-5HDEW3XC-DRbAj2Yz.js.map} +1 -1
  157. package/dist/{kanban-definition-HUTT4EX6-CPeA5sWR.cjs → kanban-definition-HUTT4EX6-BvnLv2HN.cjs} +2 -2
  158. package/dist/{kanban-definition-HUTT4EX6-CPeA5sWR.cjs.map → kanban-definition-HUTT4EX6-BvnLv2HN.cjs.map} +1 -1
  159. package/dist/{kanban-definition-HUTT4EX6-Cu3hSZTf.js → kanban-definition-HUTT4EX6-DtRSv2_P.js} +122 -122
  160. package/dist/{kanban-definition-HUTT4EX6-Cu3hSZTf.js.map → kanban-definition-HUTT4EX6-DtRSv2_P.js.map} +1 -1
  161. package/dist/{linear-Dva-3TNI.cjs → linear-B9JMAP1U.cjs} +2 -2
  162. package/dist/{linear-Dva-3TNI.cjs.map → linear-B9JMAP1U.cjs.map} +1 -1
  163. package/dist/{linear-Cxhgo9L6.js → linear-HTaGrbQh.js} +16 -16
  164. package/dist/{linear-Cxhgo9L6.js.map → linear-HTaGrbQh.js.map} +1 -1
  165. package/dist/{mindmap-definition-LN4V7U3C-C6J9DUEU.js → mindmap-definition-LN4V7U3C-4cN-VjxO.js} +12 -12
  166. package/dist/{mindmap-definition-LN4V7U3C-C6J9DUEU.js.map → mindmap-definition-LN4V7U3C-4cN-VjxO.js.map} +1 -1
  167. package/dist/{mindmap-definition-LN4V7U3C-DA8vudfE.cjs → mindmap-definition-LN4V7U3C-asDDR5DU.cjs} +2 -2
  168. package/dist/{mindmap-definition-LN4V7U3C-DA8vudfE.cjs.map → mindmap-definition-LN4V7U3C-asDDR5DU.cjs.map} +1 -1
  169. package/dist/{pegDiagram-2B236MQR-Co6RWobn.cjs → pegDiagram-2B236MQR-C3qJlDiV.cjs} +2 -2
  170. package/dist/{pegDiagram-2B236MQR-Co6RWobn.cjs.map → pegDiagram-2B236MQR-C3qJlDiV.cjs.map} +1 -1
  171. package/dist/{pegDiagram-2B236MQR-SWh4hb5t.js → pegDiagram-2B236MQR-cMLC3Ggy.js} +6 -6
  172. package/dist/{pegDiagram-2B236MQR-SWh4hb5t.js.map → pegDiagram-2B236MQR-cMLC3Ggy.js.map} +1 -1
  173. package/dist/{pieDiagram-ENE6RG2P-B7DL32tJ.cjs → pieDiagram-ENE6RG2P-D5-meW-_.cjs} +2 -2
  174. package/dist/{pieDiagram-ENE6RG2P-B7DL32tJ.cjs.map → pieDiagram-ENE6RG2P-D5-meW-_.cjs.map} +1 -1
  175. package/dist/{pieDiagram-ENE6RG2P-CF-fsN5x.js → pieDiagram-ENE6RG2P-nk_3VO3x.js} +51 -51
  176. package/dist/{pieDiagram-ENE6RG2P-CF-fsN5x.js.map → pieDiagram-ENE6RG2P-nk_3VO3x.js.map} +1 -1
  177. package/dist/{quadrantDiagram-ABIIQ3AL-DwC6GYSw.cjs → quadrantDiagram-ABIIQ3AL-CmqrHJ4C.cjs} +2 -2
  178. package/dist/{quadrantDiagram-ABIIQ3AL-DwC6GYSw.cjs.map → quadrantDiagram-ABIIQ3AL-CmqrHJ4C.cjs.map} +1 -1
  179. package/dist/{quadrantDiagram-ABIIQ3AL-Bb9z5l9a.js → quadrantDiagram-ABIIQ3AL-Ctdfu4Qk.js} +3 -3
  180. package/dist/{quadrantDiagram-ABIIQ3AL-Bb9z5l9a.js.map → quadrantDiagram-ABIIQ3AL-Ctdfu4Qk.js.map} +1 -1
  181. package/dist/{railroadDiagram-RFXS5EU6-JArFWsDe.js → railroadDiagram-RFXS5EU6-2rLqmvj_.js} +4 -4
  182. package/dist/{railroadDiagram-RFXS5EU6-JArFWsDe.js.map → railroadDiagram-RFXS5EU6-2rLqmvj_.js.map} +1 -1
  183. package/dist/{railroadDiagram-RFXS5EU6-cKqfMCU4.cjs → railroadDiagram-RFXS5EU6-a-pSoUg2.cjs} +2 -2
  184. package/dist/{railroadDiagram-RFXS5EU6-cKqfMCU4.cjs.map → railroadDiagram-RFXS5EU6-a-pSoUg2.cjs.map} +1 -1
  185. package/dist/{requirementDiagram-TGXJPOKE-ADs_L_fO.cjs → requirementDiagram-TGXJPOKE-BaKLflmx.cjs} +2 -2
  186. package/dist/{requirementDiagram-TGXJPOKE-ADs_L_fO.cjs.map → requirementDiagram-TGXJPOKE-BaKLflmx.cjs.map} +1 -1
  187. package/dist/{requirementDiagram-TGXJPOKE-DhRBCdRa.js → requirementDiagram-TGXJPOKE-BlCu380H.js} +4 -4
  188. package/dist/{requirementDiagram-TGXJPOKE-DhRBCdRa.js.map → requirementDiagram-TGXJPOKE-BlCu380H.js.map} +1 -1
  189. package/dist/{sankeyDiagram-HTMAVEWB-BOS4mbGH.js → sankeyDiagram-HTMAVEWB-6lNyI55x.js} +24 -24
  190. package/dist/{sankeyDiagram-HTMAVEWB-BOS4mbGH.js.map → sankeyDiagram-HTMAVEWB-6lNyI55x.js.map} +1 -1
  191. package/dist/{sankeyDiagram-HTMAVEWB-DgIU2lNe.cjs → sankeyDiagram-HTMAVEWB-DuUzdIP0.cjs} +2 -2
  192. package/dist/{sankeyDiagram-HTMAVEWB-DgIU2lNe.cjs.map → sankeyDiagram-HTMAVEWB-DuUzdIP0.cjs.map} +1 -1
  193. package/dist/{sequenceDiagram-DBY2YBRQ-Dw2RmEIK.cjs → sequenceDiagram-DBY2YBRQ-B29fl34a.cjs} +2 -2
  194. package/dist/{sequenceDiagram-DBY2YBRQ-Dw2RmEIK.cjs.map → sequenceDiagram-DBY2YBRQ-B29fl34a.cjs.map} +1 -1
  195. package/dist/{sequenceDiagram-DBY2YBRQ-Digq5Uh2.js → sequenceDiagram-DBY2YBRQ-sgwpzZWi.js} +87 -87
  196. package/dist/{sequenceDiagram-DBY2YBRQ-Digq5Uh2.js.map → sequenceDiagram-DBY2YBRQ-sgwpzZWi.js.map} +1 -1
  197. package/dist/{sizeCapture-X5ZJPWSS-B-_sHCun.cjs → sizeCapture-X5ZJPWSS-DAiqtb_j.cjs} +2 -2
  198. package/dist/{sizeCapture-X5ZJPWSS-B-_sHCun.cjs.map → sizeCapture-X5ZJPWSS-DAiqtb_j.cjs.map} +1 -1
  199. package/dist/{sizeCapture-X5ZJPWSS-DrnV9G4V.js → sizeCapture-X5ZJPWSS-DMDy-RCU.js} +2 -2
  200. package/dist/{sizeCapture-X5ZJPWSS-DrnV9G4V.js.map → sizeCapture-X5ZJPWSS-DMDy-RCU.js.map} +1 -1
  201. package/dist/{stateDiagram-2N3HPSRC-BT1p37Yr.cjs → stateDiagram-2N3HPSRC-BXIH2aOp.cjs} +2 -2
  202. package/dist/{stateDiagram-2N3HPSRC-BT1p37Yr.cjs.map → stateDiagram-2N3HPSRC-BXIH2aOp.cjs.map} +1 -1
  203. package/dist/{stateDiagram-2N3HPSRC-z0szyb-H.js → stateDiagram-2N3HPSRC-DAN7ei1t.js} +25 -25
  204. package/dist/{stateDiagram-2N3HPSRC-z0szyb-H.js.map → stateDiagram-2N3HPSRC-DAN7ei1t.js.map} +1 -1
  205. package/dist/{stateDiagram-v2-6OUMAXLB-CrvSrtvg.js → stateDiagram-v2-6OUMAXLB--pCo5CzX.js} +5 -5
  206. package/dist/{stateDiagram-v2-6OUMAXLB-CrvSrtvg.js.map → stateDiagram-v2-6OUMAXLB--pCo5CzX.js.map} +1 -1
  207. package/dist/{stateDiagram-v2-6OUMAXLB-B_8yre-X.cjs → stateDiagram-v2-6OUMAXLB-8XTokhrn.cjs} +2 -2
  208. package/dist/{stateDiagram-v2-6OUMAXLB-B_8yre-X.cjs.map → stateDiagram-v2-6OUMAXLB-8XTokhrn.cjs.map} +1 -1
  209. package/dist/{swimlanes-5IMT3BWC-BlFH2q78.js → swimlanes-5IMT3BWC-B-sXtUgS.js} +4 -4
  210. package/dist/{swimlanes-5IMT3BWC-BlFH2q78.js.map → swimlanes-5IMT3BWC-B-sXtUgS.js.map} +1 -1
  211. package/dist/{swimlanes-5IMT3BWC-CoZRjeam.cjs → swimlanes-5IMT3BWC-BnT290KL.cjs} +2 -2
  212. package/dist/{swimlanes-5IMT3BWC-CoZRjeam.cjs.map → swimlanes-5IMT3BWC-BnT290KL.cjs.map} +1 -1
  213. package/dist/{swimlanesDiagram-G3AALYLV-k0jDcHWE.cjs → swimlanesDiagram-G3AALYLV-CAEjADeH.cjs} +2 -2
  214. package/dist/{swimlanesDiagram-G3AALYLV-k0jDcHWE.cjs.map → swimlanesDiagram-G3AALYLV-CAEjADeH.cjs.map} +1 -1
  215. package/dist/{swimlanesDiagram-G3AALYLV-DODB_7JB.js → swimlanesDiagram-G3AALYLV-CkxURj6O.js} +3 -3
  216. package/dist/{swimlanesDiagram-G3AALYLV-DODB_7JB.js.map → swimlanesDiagram-G3AALYLV-CkxURj6O.js.map} +1 -1
  217. package/dist/{timeline-definition-FHXFAJF6-Bf643DeG.js → timeline-definition-FHXFAJF6-D47CoBOm.js} +26 -26
  218. package/dist/{timeline-definition-FHXFAJF6-Bf643DeG.js.map → timeline-definition-FHXFAJF6-D47CoBOm.js.map} +1 -1
  219. package/dist/{timeline-definition-FHXFAJF6-CQpVzyuC.cjs → timeline-definition-FHXFAJF6-Dqdftl5b.cjs} +2 -2
  220. package/dist/{timeline-definition-FHXFAJF6-CQpVzyuC.cjs.map → timeline-definition-FHXFAJF6-Dqdftl5b.cjs.map} +1 -1
  221. package/dist/{vennDiagram-L72KCM5P-C0Qj1Ye9.cjs → vennDiagram-L72KCM5P-BxjgXNwH.cjs} +2 -2
  222. package/dist/{vennDiagram-L72KCM5P-C0Qj1Ye9.cjs.map → vennDiagram-L72KCM5P-BxjgXNwH.cjs.map} +1 -1
  223. package/dist/{vennDiagram-L72KCM5P-BHnPQYAv.js → vennDiagram-L72KCM5P-DzcOxkzh.js} +58 -58
  224. package/dist/{vennDiagram-L72KCM5P-BHnPQYAv.js.map → vennDiagram-L72KCM5P-DzcOxkzh.js.map} +1 -1
  225. package/dist/{wardleyDiagram-EHGQE667-BhRakVW4.cjs → wardleyDiagram-EHGQE667-CurWRCjn.cjs} +2 -2
  226. package/dist/{wardleyDiagram-EHGQE667-BhRakVW4.cjs.map → wardleyDiagram-EHGQE667-CurWRCjn.cjs.map} +1 -1
  227. package/dist/{wardleyDiagram-EHGQE667-QDSPpILj.js → wardleyDiagram-EHGQE667-tZJBiyrP.js} +87 -87
  228. package/dist/{wardleyDiagram-EHGQE667-QDSPpILj.js.map → wardleyDiagram-EHGQE667-tZJBiyrP.js.map} +1 -1
  229. package/dist/{xychartDiagram-FW5EYKEG-C7LGE11p.cjs → xychartDiagram-FW5EYKEG-D0ltrZo8.cjs} +2 -2
  230. package/dist/{xychartDiagram-FW5EYKEG-C7LGE11p.cjs.map → xychartDiagram-FW5EYKEG-D0ltrZo8.cjs.map} +1 -1
  231. package/dist/{xychartDiagram-FW5EYKEG-8socgV_y.js → xychartDiagram-FW5EYKEG-DRQ_o9WV.js} +20 -20
  232. package/dist/{xychartDiagram-FW5EYKEG-8socgV_y.js.map → xychartDiagram-FW5EYKEG-DRQ_o9WV.js.map} +1 -1
  233. package/package.json +7 -9
  234. package/dist/channel-BpIdowqO.cjs +0 -2
  235. package/dist/channel-DGDNA7RK.js +0 -6
  236. package/dist/extractHeadings-DLMipVtZ.cjs.map +0 -1
  237. package/dist/extractHeadings-DXqyEdSz.js.map +0 -1
  238. package/dist/flowDiagram-23GEKE2U-B4xwo9xK.cjs +0 -2
  239. package/dist/flowDiagram-23GEKE2U-B4xwo9xK.cjs.map +0 -1
  240. package/dist/flowDiagram-23GEKE2U-DdN3jXSO.js +0 -8
  241. package/dist/flowDiagram-23GEKE2U-DdN3jXSO.js.map +0 -1
  242. package/dist/plugins/remark-import-directive.async.server.d.ts +0 -16
  243. package/dist/plugins/remark-import-directive.async.server.d.ts.map +0 -1
  244. package/dist/plugins/remark-resolve-uri.async.d.ts +0 -13
  245. package/dist/plugins/remark-resolve-uri.async.d.ts.map +0 -1
  246. package/dist/plugins/transformUri.async.server.d.ts +0 -13
  247. package/dist/plugins/transformUri.async.server.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"wardleyDiagram-EHGQE667-QDSPpILj.js","sources":["../../../node_modules/.pnpm/mermaid@11.16.0/node_modules/mermaid/dist/chunks/mermaid.core/wardleyDiagram-EHGQE667.mjs"],"sourcesContent":["import {\n populateCommonDb\n} from \"./chunk-JWPE2WC7.mjs\";\nimport {\n selectSvgElement\n} from \"./chunk-VAUOI2AC.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-ICXQ74PX.mjs\";\nimport {\n clear,\n configureSvgSize,\n getAccDescription,\n getAccTitle,\n getConfig,\n getConfig2,\n getDiagramTitle,\n getThemeVariables,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-WYO6CB5R.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/wardley/wardleyParser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar toPercent = /* @__PURE__ */ __name((value, context) => {\n const normalized = value <= 1 ? value * 100 : value;\n if (normalized < 0 || normalized > 100) {\n throw new Error(\n `${context} must be between 0-1 (decimal) or 0-100 (percentage). Received: ${value}`\n );\n }\n return normalized;\n}, \"toPercent\");\nvar toCoordinates = /* @__PURE__ */ __name((visibility, evolution, context) => {\n return {\n x: toPercent(evolution, `${context} evolution`),\n y: toPercent(visibility, `${context} visibility`)\n };\n}, \"toCoordinates\");\nvar getFlowFromPort = /* @__PURE__ */ __name((port) => {\n if (!port) {\n return void 0;\n }\n if (port === \"+<>\") {\n return \"bidirectional\";\n }\n if (port === \"+<\") {\n return \"backward\";\n }\n if (port === \"+>\") {\n return \"forward\";\n }\n return void 0;\n}, \"getFlowFromPort\");\nvar extractFlowFromArrow = /* @__PURE__ */ __name((arrow) => {\n if (!arrow?.startsWith(\"+\")) {\n return {};\n }\n const labelMatch = /^\\+'([^']*)'/.exec(arrow);\n const flowLabel = labelMatch?.[1];\n if (arrow.includes(\"<>\")) {\n return { flow: \"bidirectional\", label: flowLabel };\n }\n if (arrow.includes(\"<\")) {\n return { flow: \"backward\", label: flowLabel };\n }\n if (arrow.includes(\">\")) {\n return { flow: \"forward\", label: flowLabel };\n }\n return { label: flowLabel };\n}, \"extractFlowFromArrow\");\nvar populateDb = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n if (ast.size) {\n db.setSize(ast.size.width, ast.size.height);\n }\n if (ast.evolution) {\n const stages = ast.evolution.stages.map((stage) => {\n if (stage.secondName) {\n return `${stage.name.trim()} / ${stage.secondName.trim()}`;\n }\n return stage.name.trim();\n });\n const stageBoundaries = ast.evolution.stages.filter((stage) => stage.boundary !== void 0).map((stage) => stage.boundary);\n db.updateAxes({ stages, stageBoundaries });\n }\n ast.anchors.forEach((anchor) => {\n const coords = toCoordinates(anchor.visibility, anchor.evolution, `Anchor \"${anchor.name}\"`);\n db.addNode(anchor.name, anchor.name, coords.x, coords.y, \"anchor\");\n });\n ast.components.forEach((component) => {\n const coords = toCoordinates(\n component.visibility,\n component.evolution,\n `Component \"${component.name}\"`\n );\n const labelOffsetX = component.label ? (component.label.negX ? -1 : 1) * component.label.offsetX : void 0;\n const labelOffsetY = component.label ? (component.label.negY ? -1 : 1) * component.label.offsetY : void 0;\n const sourceStrategy = component.decorator?.strategy;\n db.addNode(\n component.name,\n component.name,\n coords.x,\n coords.y,\n \"component\",\n labelOffsetX,\n labelOffsetY,\n component.inertia,\n sourceStrategy\n );\n });\n ast.notes.forEach((note) => {\n const coords = toCoordinates(note.visibility, note.evolution, `Note \"${note.text}\"`);\n db.addNote(note.text, coords.x, coords.y);\n });\n ast.pipelines.forEach((pipeline) => {\n const parentNode = db.getNode(pipeline.parent);\n if (!parentNode || typeof parentNode.y !== \"number\") {\n throw new Error(\n `Pipeline \"${pipeline.parent}\" must reference an existing component with coordinates.`\n );\n }\n const parentY = parentNode.y;\n db.startPipeline(pipeline.parent);\n pipeline.components.forEach((component) => {\n const componentId = `${pipeline.parent}_${component.name}`;\n const labelOffsetX = component.label ? (component.label.negX ? -1 : 1) * component.label.offsetX : void 0;\n const labelOffsetY = component.label ? (component.label.negY ? -1 : 1) * component.label.offsetY : void 0;\n const x = toPercent(component.evolution, `Pipeline component \"${component.name}\" evolution`);\n db.addNode(\n componentId,\n component.name,\n x,\n parentY,\n \"pipeline-component\",\n labelOffsetX,\n labelOffsetY\n );\n db.addPipelineComponent(pipeline.parent, componentId);\n });\n });\n ast.links.forEach((link) => {\n const isDashed = !!link.arrow && (link.arrow.includes(\"-.->\") || link.arrow.includes(\".-.\"));\n let flow = getFlowFromPort(link.fromPort) ?? getFlowFromPort(link.toPort);\n const { flow: arrowFlow, label: flowLabel } = extractFlowFromArrow(link.arrow);\n if (!flow && arrowFlow) {\n flow = arrowFlow;\n }\n const annotation = link.linkLabel;\n const label = flowLabel ?? annotation;\n db.addLink(db.resolveNodeId(link.from), db.resolveNodeId(link.to), isDashed, label, flow);\n });\n ast.evolves.forEach((evolve) => {\n const node = db.getNode(evolve.component);\n if (node?.y !== void 0) {\n const target = toPercent(evolve.target, `Evolve target for \"${evolve.component}\"`);\n db.addTrend(evolve.component, target, node.y);\n }\n });\n if (ast.annotations.length > 0) {\n const annotationsBox = ast.annotations[0];\n const coords = toCoordinates(annotationsBox.x, annotationsBox.y, \"Annotations box\");\n db.setAnnotationsBox(coords.x, coords.y);\n }\n ast.annotation.forEach((annotation) => {\n const coords = toCoordinates(annotation.x, annotation.y, `Annotation ${annotation.number}`);\n db.addAnnotation(annotation.number, [{ x: coords.x, y: coords.y }], annotation.text);\n });\n ast.accelerators.forEach((accelerator) => {\n const coords = toCoordinates(accelerator.x, accelerator.y, `Accelerator \"${accelerator.name}\"`);\n db.addAccelerator(accelerator.name, coords.x, coords.y);\n });\n ast.deaccelerators.forEach((deaccelerator) => {\n const coords = toCoordinates(\n deaccelerator.x,\n deaccelerator.y,\n `Deaccelerator \"${deaccelerator.name}\"`\n );\n db.addDeaccelerator(deaccelerator.name, coords.x, coords.y);\n });\n}, \"populateDb\");\nvar parser = {\n parser: {\n // @ts-expect-error - WardleyDB is not assignable to DiagramDB\n yy: void 0\n },\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"wardley\", input);\n log.debug(ast);\n const db = parser.parser?.yy;\n if (!db || typeof db.addNode !== \"function\") {\n throw new Error(\n \"parser.parser?.yy was not a WardleyDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.\"\n );\n }\n populateDb(ast, db);\n }, \"parse\")\n};\n\n// src/diagrams/wardley/wardleyBuilder.ts\nvar WardleyBuilder = class {\n constructor() {\n this.nodes = /* @__PURE__ */ new Map();\n this.links = [];\n this.trends = /* @__PURE__ */ new Map();\n this.pipelines = /* @__PURE__ */ new Map();\n this.annotations = [];\n this.notes = [];\n this.accelerators = [];\n this.deaccelerators = [];\n this.axes = {};\n }\n static {\n __name(this, \"WardleyBuilder\");\n }\n addNode(node) {\n const existing = this.nodes.get(node.id) ?? { id: node.id, label: node.label };\n const merged = {\n ...existing,\n ...node,\n className: node.className ?? existing.className,\n labelOffsetX: node.labelOffsetX ?? existing.labelOffsetX,\n labelOffsetY: node.labelOffsetY ?? existing.labelOffsetY\n };\n this.nodes.set(node.id, merged);\n }\n addLink(link) {\n this.links.push(link);\n }\n addTrend(trend) {\n this.trends.set(trend.nodeId, trend);\n }\n startPipeline(nodeId) {\n this.pipelines.set(nodeId, { nodeId, componentIds: [] });\n const node = this.nodes.get(nodeId);\n if (node) {\n node.isPipelineParent = true;\n }\n }\n addPipelineComponent(pipelineNodeId, componentId) {\n const pipeline = this.pipelines.get(pipelineNodeId);\n if (pipeline) {\n pipeline.componentIds.push(componentId);\n }\n const node = this.nodes.get(componentId);\n if (node) {\n node.inPipeline = true;\n }\n }\n addAnnotation(annotation) {\n this.annotations.push(annotation);\n }\n addNote(note) {\n this.notes.push(note);\n }\n addAccelerator(accelerator) {\n this.accelerators.push(accelerator);\n }\n addDeaccelerator(deaccelerator) {\n this.deaccelerators.push(deaccelerator);\n }\n setAnnotationsBox(x, y) {\n this.annotationsBox = { x, y };\n }\n setAxes(partial) {\n this.axes = {\n ...this.axes,\n ...partial\n };\n }\n setSize(width, height) {\n this.size = { width, height };\n }\n getNode(id) {\n return this.nodes.get(id);\n }\n /**\n * Resolve a name to a node ID. Tries exact ID match first,\n * then falls back to finding a node whose label matches the name\n * (handles pipeline components which have synthetic IDs like \"Parent_Child\").\n */\n resolveNodeId(name) {\n if (this.nodes.has(name)) {\n return name;\n }\n for (const [id, node] of this.nodes) {\n if (node.label === name) {\n return id;\n }\n }\n return name;\n }\n build() {\n const nodes = [];\n for (const node of this.nodes.values()) {\n if (typeof node.x !== \"number\" || typeof node.y !== \"number\") {\n throw new Error(`Node \"${node.label}\" is missing coordinates`);\n }\n nodes.push(node);\n }\n return {\n nodes,\n links: [...this.links],\n trends: [...this.trends.values()],\n pipelines: [...this.pipelines.values()],\n annotations: [...this.annotations],\n notes: [...this.notes],\n accelerators: [...this.accelerators],\n deaccelerators: [...this.deaccelerators],\n annotationsBox: this.annotationsBox,\n axes: { ...this.axes },\n size: this.size\n };\n }\n clear() {\n this.nodes.clear();\n this.links = [];\n this.trends.clear();\n this.pipelines.clear();\n this.annotations = [];\n this.notes = [];\n this.accelerators = [];\n this.deaccelerators = [];\n this.annotationsBox = void 0;\n this.axes = {};\n this.size = void 0;\n }\n};\n\n// src/diagrams/wardley/wardleyDb.ts\nvar builder = new WardleyBuilder();\nfunction getConfig3() {\n return getConfig2()[\"wardley-beta\"];\n}\n__name(getConfig3, \"getConfig\");\nfunction addNode(id, label, x, y, className, labelOffsetX, labelOffsetY, inertia, sourceStrategy) {\n builder.addNode({\n id,\n label,\n x,\n y,\n className,\n labelOffsetX,\n labelOffsetY,\n inertia,\n sourceStrategy\n });\n}\n__name(addNode, \"addNode\");\nfunction addLink(sourceId, targetId, dashed = false, label, flow) {\n builder.addLink({\n source: sourceId,\n target: targetId,\n dashed,\n label,\n flow\n });\n}\n__name(addLink, \"addLink\");\nfunction addTrend(nodeId, targetX, targetY) {\n builder.addTrend({ nodeId, targetX, targetY });\n}\n__name(addTrend, \"addTrend\");\nfunction addAnnotation(number, coordinates, text) {\n builder.addAnnotation({\n number,\n coordinates,\n text\n });\n}\n__name(addAnnotation, \"addAnnotation\");\nfunction addNote(text, x, y) {\n builder.addNote({\n text,\n x,\n y\n });\n}\n__name(addNote, \"addNote\");\nfunction addAccelerator(name, x, y) {\n builder.addAccelerator({\n name,\n x,\n y\n });\n}\n__name(addAccelerator, \"addAccelerator\");\nfunction addDeaccelerator(name, x, y) {\n builder.addDeaccelerator({\n name,\n x,\n y\n });\n}\n__name(addDeaccelerator, \"addDeaccelerator\");\nfunction setAnnotationsBox(x, y) {\n builder.setAnnotationsBox(x, y);\n}\n__name(setAnnotationsBox, \"setAnnotationsBox\");\nfunction setSize(width, height) {\n builder.setSize(width, height);\n}\n__name(setSize, \"setSize\");\nfunction startPipeline(nodeId) {\n builder.startPipeline(nodeId);\n}\n__name(startPipeline, \"startPipeline\");\nfunction addPipelineComponent(pipelineNodeId, componentId) {\n builder.addPipelineComponent(pipelineNodeId, componentId);\n}\n__name(addPipelineComponent, \"addPipelineComponent\");\nfunction updateAxes(partial) {\n builder.setAxes(partial);\n}\n__name(updateAxes, \"updateAxes\");\nfunction getNode(id) {\n return builder.getNode(id);\n}\n__name(getNode, \"getNode\");\nfunction resolveNodeId(name) {\n return builder.resolveNodeId(name);\n}\n__name(resolveNodeId, \"resolveNodeId\");\nfunction getWardleyData() {\n return builder.build();\n}\n__name(getWardleyData, \"getWardleyData\");\nfunction clear2() {\n builder.clear();\n clear();\n}\n__name(clear2, \"clear\");\nvar wardleyDb_default = {\n getConfig: getConfig3,\n addNode,\n addLink,\n addTrend,\n addAnnotation,\n addNote,\n addAccelerator,\n addDeaccelerator,\n setAnnotationsBox,\n setSize,\n startPipeline,\n addPipelineComponent,\n updateAxes,\n getNode,\n resolveNodeId,\n getWardleyData,\n clear: clear2,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n getAccDescription,\n setAccDescription\n};\n\n// src/diagrams/wardley/wardleyRenderer.ts\nvar DEFAULT_STAGES = [\"Genesis\", \"Custom Built\", \"Product\", \"Commodity\"];\nvar getTheme = /* @__PURE__ */ __name(() => {\n const { themeVariables } = getConfig2();\n return {\n backgroundColor: themeVariables.wardley?.backgroundColor ?? themeVariables.background ?? \"#fff\",\n axisColor: themeVariables.wardley?.axisColor ?? \"#000\",\n axisTextColor: themeVariables.wardley?.axisTextColor ?? themeVariables.primaryTextColor ?? \"#222\",\n gridColor: themeVariables.wardley?.gridColor ?? \"rgba(100, 100, 100, 0.2)\",\n componentFill: themeVariables.wardley?.componentFill ?? \"#fff\",\n componentStroke: themeVariables.wardley?.componentStroke ?? \"#000\",\n componentLabelColor: themeVariables.wardley?.componentLabelColor ?? themeVariables.primaryTextColor ?? \"#222\",\n linkStroke: themeVariables.wardley?.linkStroke ?? \"#000\",\n evolutionStroke: themeVariables.wardley?.evolutionStroke ?? \"#dc3545\",\n annotationStroke: themeVariables.wardley?.annotationStroke ?? \"#000\",\n annotationTextColor: themeVariables.wardley?.annotationTextColor ?? themeVariables.primaryTextColor ?? \"#222\",\n annotationFill: themeVariables.wardley?.annotationFill ?? themeVariables.background ?? \"#fff\"\n };\n}, \"getTheme\");\nvar getConfigValues = /* @__PURE__ */ __name(() => {\n const wardleyConfig = getConfig2()[\"wardley-beta\"];\n return {\n width: wardleyConfig?.width ?? 900,\n height: wardleyConfig?.height ?? 600,\n padding: wardleyConfig?.padding ?? 48,\n nodeRadius: wardleyConfig?.nodeRadius ?? 6,\n nodeLabelOffset: wardleyConfig?.nodeLabelOffset ?? 8,\n axisFontSize: wardleyConfig?.axisFontSize ?? 12,\n labelFontSize: wardleyConfig?.labelFontSize ?? 10,\n showGrid: wardleyConfig?.showGrid ?? false,\n useMaxWidth: wardleyConfig?.useMaxWidth ?? true\n };\n}, \"getConfigValues\");\nvar draw = /* @__PURE__ */ __name((text, id, _version, diagObj) => {\n log.debug(\"Rendering Wardley map\\n\" + text);\n const configValues = getConfigValues();\n const theme = getTheme();\n const squareSize = configValues.nodeRadius * 1.6;\n const db = diagObj.db;\n const data = db.getWardleyData();\n const title = db.getDiagramTitle();\n const width = data.size?.width ?? configValues.width;\n const height = data.size?.height ?? configValues.height;\n const svg = selectSvgElement(id);\n svg.selectAll(\"*\").remove();\n configureSvgSize(svg, height, width, configValues.useMaxWidth);\n svg.attr(\"viewBox\", `0 0 ${width} ${height}`);\n const root = svg.append(\"g\").attr(\"class\", \"wardley-map\");\n const defs = svg.append(\"defs\");\n defs.append(\"marker\").attr(\"id\", `arrow-${id}`).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 9).attr(\"refY\", 5).attr(\"markerWidth\", 6).attr(\"markerHeight\", 6).attr(\"orient\", \"auto-start-reverse\").append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\").attr(\"fill\", theme.evolutionStroke).attr(\"stroke\", \"none\");\n defs.append(\"marker\").attr(\"id\", `link-arrow-end-${id}`).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 9).attr(\"refY\", 5).attr(\"markerWidth\", 5).attr(\"markerHeight\", 5).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\").attr(\"fill\", theme.linkStroke).attr(\"stroke\", \"none\");\n defs.append(\"marker\").attr(\"id\", `link-arrow-start-${id}`).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 1).attr(\"refY\", 5).attr(\"markerWidth\", 5).attr(\"markerHeight\", 5).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 10 0 L 0 5 L 10 10 z\").attr(\"fill\", theme.linkStroke).attr(\"stroke\", \"none\");\n root.append(\"rect\").attr(\"class\", \"wardley-background\").attr(\"width\", width).attr(\"height\", height).attr(\"fill\", theme.backgroundColor);\n const chartWidth = width - configValues.padding * 2;\n const chartHeight = height - configValues.padding * 2;\n if (title) {\n root.append(\"text\").attr(\"class\", \"wardley-title\").attr(\"x\", width / 2).attr(\"y\", configValues.padding / 2).attr(\"fill\", theme.axisTextColor).attr(\"font-size\", configValues.axisFontSize * 1.05).attr(\"font-weight\", \"bold\").attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").text(title);\n }\n const projectX = /* @__PURE__ */ __name((value) => configValues.padding + value / 100 * chartWidth, \"projectX\");\n const projectY = /* @__PURE__ */ __name((value) => height - configValues.padding - value / 100 * chartHeight, \"projectY\");\n const axisGroup = root.append(\"g\").attr(\"class\", \"wardley-axes\");\n axisGroup.append(\"line\").attr(\"x1\", configValues.padding).attr(\"x2\", width - configValues.padding).attr(\"y1\", height - configValues.padding).attr(\"y2\", height - configValues.padding).attr(\"stroke\", theme.axisColor).attr(\"stroke-width\", 1);\n axisGroup.append(\"line\").attr(\"x1\", configValues.padding).attr(\"x2\", configValues.padding).attr(\"y1\", configValues.padding).attr(\"y2\", height - configValues.padding).attr(\"stroke\", theme.axisColor).attr(\"stroke-width\", 1);\n const xLabel = data.axes.xLabel ?? \"Evolution\";\n const yLabel = data.axes.yLabel ?? \"Visibility\";\n axisGroup.append(\"text\").attr(\"class\", \"wardley-axis-label wardley-axis-label-x\").attr(\"x\", configValues.padding + chartWidth / 2).attr(\"y\", height - configValues.padding / 4).attr(\"fill\", theme.axisTextColor).attr(\"font-size\", configValues.axisFontSize).attr(\"font-weight\", \"bold\").attr(\"text-anchor\", \"middle\").text(xLabel);\n axisGroup.append(\"text\").attr(\"class\", \"wardley-axis-label wardley-axis-label-y\").attr(\"x\", configValues.padding / 3).attr(\"y\", configValues.padding + chartHeight / 2).attr(\"fill\", theme.axisTextColor).attr(\"font-size\", configValues.axisFontSize).attr(\"font-weight\", \"bold\").attr(\"text-anchor\", \"middle\").attr(\n \"transform\",\n `rotate(-90 ${configValues.padding / 3} ${configValues.padding + chartHeight / 2})`\n ).text(yLabel);\n const stages = data.axes.stages && data.axes.stages.length > 0 ? data.axes.stages : DEFAULT_STAGES;\n if (stages.length > 0) {\n const stageGroup = root.append(\"g\").attr(\"class\", \"wardley-stages\");\n const boundaries = data.axes.stageBoundaries;\n const stagePositions = [];\n if (boundaries && boundaries.length === stages.length) {\n let prevBoundary = 0;\n boundaries.forEach((boundary) => {\n stagePositions.push({ start: prevBoundary, end: boundary });\n prevBoundary = boundary;\n });\n } else {\n const stageWidth = 1 / stages.length;\n stages.forEach((_, index) => {\n stagePositions.push({\n start: index * stageWidth,\n end: (index + 1) * stageWidth\n });\n });\n }\n stages.forEach((stage, index) => {\n const pos = stagePositions[index];\n const startX = configValues.padding + pos.start * chartWidth;\n const endX = configValues.padding + pos.end * chartWidth;\n const centerX = (startX + endX) / 2;\n if (index > 0) {\n stageGroup.append(\"line\").attr(\"x1\", startX).attr(\"x2\", startX).attr(\"y1\", configValues.padding).attr(\"y2\", height - configValues.padding).attr(\"stroke\", \"#000\").attr(\"stroke-width\", 1).attr(\"stroke-dasharray\", \"5 5\").attr(\"opacity\", 0.8);\n }\n stageGroup.append(\"text\").attr(\"class\", \"wardley-stage-label\").attr(\"x\", centerX).attr(\"y\", height - configValues.padding / 1.5).attr(\"fill\", theme.axisTextColor).attr(\"font-size\", configValues.axisFontSize - 2).attr(\"text-anchor\", \"middle\").text(stage);\n });\n }\n if (configValues.showGrid) {\n const gridGroup = root.append(\"g\").attr(\"class\", \"wardley-grid\");\n for (let i = 1; i < 4; i++) {\n const ratio = i / 4;\n const x = configValues.padding + chartWidth * ratio;\n gridGroup.append(\"line\").attr(\"x1\", x).attr(\"x2\", x).attr(\"y1\", configValues.padding).attr(\"y2\", height - configValues.padding).attr(\"stroke\", theme.gridColor).attr(\"stroke-dasharray\", \"2 6\");\n gridGroup.append(\"line\").attr(\"x1\", configValues.padding).attr(\"x2\", width - configValues.padding).attr(\"y1\", height - configValues.padding - chartHeight * ratio).attr(\"y2\", height - configValues.padding - chartHeight * ratio).attr(\"stroke\", theme.gridColor).attr(\"stroke-dasharray\", \"2 6\");\n }\n }\n const positions = /* @__PURE__ */ new Map();\n data.nodes.forEach((node) => {\n positions.set(node.id, {\n x: projectX(node.x),\n y: projectY(node.y),\n node\n });\n });\n if (data.pipelines.length > 0) {\n const pipelineGroup = root.append(\"g\").attr(\"class\", \"wardley-pipelines\");\n const pipelineLinksGroup = root.append(\"g\").attr(\"class\", \"wardley-pipeline-links\");\n data.pipelines.forEach((pipeline) => {\n if (pipeline.componentIds.length === 0) {\n return;\n }\n const sortedComponents = pipeline.componentIds.map((id2) => ({ id: id2, pos: positions.get(id2), node: data.nodes.find((n) => n.id === id2) })).filter((c) => c.pos && c.node).sort((a, b) => a.node.x - b.node.x);\n for (let i = 0; i < sortedComponents.length - 1; i++) {\n const current = sortedComponents[i];\n const next = sortedComponents[i + 1];\n pipelineLinksGroup.append(\"line\").attr(\"class\", \"wardley-pipeline-evolution-link\").attr(\"x1\", current.pos.x).attr(\"y1\", current.pos.y).attr(\"x2\", next.pos.x).attr(\"y2\", next.pos.y).attr(\"stroke\", theme.linkStroke).attr(\"stroke-width\", 1).attr(\"stroke-dasharray\", \"4 4\");\n }\n let minX = Infinity;\n let maxX = -Infinity;\n let y = 0;\n pipeline.componentIds.forEach((componentId) => {\n const pos = positions.get(componentId);\n if (pos) {\n minX = Math.min(minX, pos.x);\n maxX = Math.max(maxX, pos.x);\n y = pos.y;\n }\n });\n if (minX !== Infinity && maxX !== -Infinity) {\n const padding = 15;\n const height2 = configValues.nodeRadius * 4;\n const boxTop = y - height2 / 2;\n const parentPos = positions.get(pipeline.nodeId);\n if (parentPos) {\n const centerX = (minX + maxX) / 2;\n parentPos.x = centerX;\n parentPos.y = boxTop - squareSize / 6;\n }\n pipelineGroup.append(\"rect\").attr(\"class\", \"wardley-pipeline-box\").attr(\"x\", minX - padding).attr(\"y\", boxTop).attr(\"width\", maxX - minX + padding * 2).attr(\"height\", height2).attr(\"fill\", \"none\").attr(\"stroke\", theme.axisColor).attr(\"stroke-width\", 1.5).attr(\"rx\", 4).attr(\"ry\", 4);\n }\n });\n }\n const linksGroup = root.append(\"g\").attr(\"class\", \"wardley-links\");\n const pipelineMap = /* @__PURE__ */ new Map();\n data.pipelines.forEach((pipeline) => {\n pipelineMap.set(pipeline.nodeId, new Set(pipeline.componentIds));\n });\n const validLinks = data.links.filter((link) => {\n if (!positions.has(link.source) || !positions.has(link.target)) {\n return false;\n }\n const pipelineComponents = pipelineMap.get(link.target);\n if (pipelineComponents?.has(link.source)) {\n return false;\n }\n return true;\n });\n linksGroup.selectAll(\"line\").data(validLinks).enter().append(\"line\").attr(\"class\", (link) => `wardley-link${link.dashed ? \" wardley-link--dashed\" : \"\"}`).attr(\"x1\", (link) => {\n const sourcePos = positions.get(link.source);\n const targetPos = positions.get(link.target);\n const sourceNode = data.nodes.find((n) => n.id === link.source);\n const radius = sourceNode.isPipelineParent ? squareSize / Math.sqrt(2) : configValues.nodeRadius;\n const dx = targetPos.x - sourcePos.x;\n const dy = targetPos.y - sourcePos.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n return sourcePos.x + dx / distance * radius;\n }).attr(\"y1\", (link) => {\n const sourcePos = positions.get(link.source);\n const targetPos = positions.get(link.target);\n const sourceNode = data.nodes.find((n) => n.id === link.source);\n const radius = sourceNode.isPipelineParent ? squareSize / Math.sqrt(2) : configValues.nodeRadius;\n const dx = targetPos.x - sourcePos.x;\n const dy = targetPos.y - sourcePos.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n return sourcePos.y + dy / distance * radius;\n }).attr(\"x2\", (link) => {\n const sourcePos = positions.get(link.source);\n const targetPos = positions.get(link.target);\n const targetNode = data.nodes.find((n) => n.id === link.target);\n const radius = targetNode.isPipelineParent ? squareSize / Math.sqrt(2) : configValues.nodeRadius;\n const dx = sourcePos.x - targetPos.x;\n const dy = sourcePos.y - targetPos.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n return targetPos.x + dx / distance * radius;\n }).attr(\"y2\", (link) => {\n const sourcePos = positions.get(link.source);\n const targetPos = positions.get(link.target);\n const targetNode = data.nodes.find((n) => n.id === link.target);\n const radius = targetNode.isPipelineParent ? squareSize / Math.sqrt(2) : configValues.nodeRadius;\n const dx = sourcePos.x - targetPos.x;\n const dy = sourcePos.y - targetPos.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n return targetPos.y + dy / distance * radius;\n }).attr(\"stroke\", theme.linkStroke).attr(\"stroke-width\", 1).attr(\"stroke-dasharray\", (link) => link.dashed ? \"6 6\" : null).attr(\"marker-end\", (link) => {\n if (link.flow === \"forward\" || link.flow === \"bidirectional\") {\n return `url(#link-arrow-end-${id})`;\n }\n return null;\n }).attr(\"marker-start\", (link) => {\n if (link.flow === \"backward\" || link.flow === \"bidirectional\") {\n return `url(#link-arrow-start-${id})`;\n }\n return null;\n });\n linksGroup.selectAll(\"text\").data(validLinks.filter((link) => link.label)).enter().append(\"text\").attr(\"class\", \"wardley-link-label\").attr(\"x\", (link) => {\n const sourcePos = positions.get(link.source);\n const targetPos = positions.get(link.target);\n const midX = (sourcePos.x + targetPos.x) / 2;\n const dy = targetPos.y - sourcePos.y;\n const dx = targetPos.x - sourcePos.x;\n const distance = Math.sqrt(dx * dx + dy * dy);\n const offset = 8;\n const perpX = dy / distance;\n return midX + perpX * offset;\n }).attr(\"y\", (link) => {\n const sourcePos = positions.get(link.source);\n const targetPos = positions.get(link.target);\n const midY = (sourcePos.y + targetPos.y) / 2;\n const dx = targetPos.x - sourcePos.x;\n const dy = targetPos.y - sourcePos.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n const offset = 8;\n const perpY = -dx / distance;\n return midY + perpY * offset;\n }).attr(\"fill\", theme.axisTextColor).attr(\"font-size\", configValues.labelFontSize).attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").attr(\"transform\", (link) => {\n const sourcePos = positions.get(link.source);\n const targetPos = positions.get(link.target);\n const midX = (sourcePos.x + targetPos.x) / 2;\n const midY = (sourcePos.y + targetPos.y) / 2;\n const dx = targetPos.x - sourcePos.x;\n const dy = targetPos.y - sourcePos.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n const offset = 8;\n const perpX = dy / distance;\n const perpY = -dx / distance;\n const labelX = midX + perpX * offset;\n const labelY = midY + perpY * offset;\n let angle = Math.atan2(dy, dx) * 180 / Math.PI;\n if (angle > 90 || angle < -90) {\n angle += 180;\n }\n return `rotate(${angle} ${labelX} ${labelY})`;\n }).text((link) => link.label);\n const trendGroup = root.append(\"g\").attr(\"class\", \"wardley-trends\");\n const trendsWithPositions = data.trends.map((trend) => {\n const origin = positions.get(trend.nodeId);\n if (!origin) {\n return null;\n }\n const targetX = projectX(trend.targetX);\n const targetY = projectY(trend.targetY);\n const dx = targetX - origin.x;\n const dy = targetY - origin.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n const shortenBy = configValues.nodeRadius + 2;\n const adjustedX2 = distance > shortenBy ? targetX - dx / distance * shortenBy : targetX;\n const adjustedY2 = distance > shortenBy ? targetY - dy / distance * shortenBy : targetY;\n return {\n origin,\n targetX,\n targetY,\n adjustedX2,\n adjustedY2\n };\n }).filter((trend) => trend !== null);\n trendGroup.selectAll(\"line\").data(trendsWithPositions).enter().append(\"line\").attr(\"class\", \"wardley-trend\").attr(\"x1\", (trend) => trend.origin.x).attr(\"y1\", (trend) => trend.origin.y).attr(\"x2\", (trend) => trend.adjustedX2).attr(\"y2\", (trend) => trend.adjustedY2).attr(\"stroke\", theme.evolutionStroke).attr(\"stroke-width\", 1).attr(\"stroke-dasharray\", \"4 4\").attr(\"marker-end\", `url(#arrow-${id})`);\n const nodesGroup = root.append(\"g\").attr(\"class\", \"wardley-nodes\");\n const nodeEnter = nodesGroup.selectAll(\"g\").data(data.nodes).enter().append(\"g\").attr(\n \"class\",\n (node) => [\"wardley-node\", node.className ? `wardley-node--${node.className}` : \"\"].filter(Boolean).join(\" \")\n );\n nodeEnter.filter((node) => node.sourceStrategy === \"outsource\").append(\"circle\").attr(\"class\", \"wardley-outsource-overlay\").attr(\"cx\", (node) => positions.get(node.id).x).attr(\"cy\", (node) => positions.get(node.id).y).attr(\"r\", configValues.nodeRadius * 2).attr(\"fill\", \"#666\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n nodeEnter.filter((node) => node.sourceStrategy === \"buy\").append(\"circle\").attr(\"class\", \"wardley-buy-overlay\").attr(\"cx\", (node) => positions.get(node.id).x).attr(\"cy\", (node) => positions.get(node.id).y).attr(\"r\", configValues.nodeRadius * 2).attr(\"fill\", \"#ccc\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n nodeEnter.filter((node) => node.sourceStrategy === \"build\").append(\"circle\").attr(\"class\", \"wardley-build-overlay\").attr(\"cx\", (node) => positions.get(node.id).x).attr(\"cy\", (node) => positions.get(node.id).y).attr(\"r\", configValues.nodeRadius * 2).attr(\"fill\", \"#eee\").attr(\"stroke\", \"#000\").attr(\"stroke-width\", 1);\n const marketNodes = nodeEnter.filter((node) => node.sourceStrategy === \"market\");\n marketNodes.append(\"circle\").attr(\"class\", \"wardley-market-overlay\").attr(\"cx\", (node) => positions.get(node.id).x).attr(\"cy\", (node) => positions.get(node.id).y).attr(\"r\", configValues.nodeRadius * 2).attr(\"fill\", \"white\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n nodeEnter.filter(\n (node) => !node.isPipelineParent && node.sourceStrategy !== \"market\" && node.className !== \"anchor\"\n ).append(\"circle\").attr(\"cx\", (node) => positions.get(node.id).x).attr(\"cy\", (node) => positions.get(node.id).y).attr(\"r\", configValues.nodeRadius).attr(\"fill\", theme.componentFill).attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n const smallCircleRadius = configValues.nodeRadius * 0.7;\n const triangleRadius = configValues.nodeRadius * 1.2;\n marketNodes.append(\"line\").attr(\"class\", \"wardley-market-line\").attr(\"x1\", (node) => positions.get(node.id).x).attr(\"y1\", (node) => positions.get(node.id).y - triangleRadius).attr(\"x2\", (node) => positions.get(node.id).x - triangleRadius * Math.cos(Math.PI / 6)).attr(\"y2\", (node) => positions.get(node.id).y + triangleRadius * Math.sin(Math.PI / 6)).attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n marketNodes.append(\"line\").attr(\"class\", \"wardley-market-line\").attr(\"x1\", (node) => positions.get(node.id).x - triangleRadius * Math.cos(Math.PI / 6)).attr(\"y1\", (node) => positions.get(node.id).y + triangleRadius * Math.sin(Math.PI / 6)).attr(\"x2\", (node) => positions.get(node.id).x + triangleRadius * Math.cos(Math.PI / 6)).attr(\"y2\", (node) => positions.get(node.id).y + triangleRadius * Math.sin(Math.PI / 6)).attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n marketNodes.append(\"line\").attr(\"class\", \"wardley-market-line\").attr(\"x1\", (node) => positions.get(node.id).x + triangleRadius * Math.cos(Math.PI / 6)).attr(\"y1\", (node) => positions.get(node.id).y + triangleRadius * Math.sin(Math.PI / 6)).attr(\"x2\", (node) => positions.get(node.id).x).attr(\"y2\", (node) => positions.get(node.id).y - triangleRadius).attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n marketNodes.append(\"circle\").attr(\"class\", \"wardley-market-dot\").attr(\"cx\", (node) => positions.get(node.id).x).attr(\"cy\", (node) => positions.get(node.id).y - triangleRadius).attr(\"r\", smallCircleRadius).attr(\"fill\", \"white\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 2);\n marketNodes.append(\"circle\").attr(\"class\", \"wardley-market-dot\").attr(\"cx\", (node) => positions.get(node.id).x - triangleRadius * Math.cos(Math.PI / 6)).attr(\"cy\", (node) => positions.get(node.id).y + triangleRadius * Math.sin(Math.PI / 6)).attr(\"r\", smallCircleRadius).attr(\"fill\", \"white\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 2);\n marketNodes.append(\"circle\").attr(\"class\", \"wardley-market-dot\").attr(\"cx\", (node) => positions.get(node.id).x + triangleRadius * Math.cos(Math.PI / 6)).attr(\"cy\", (node) => positions.get(node.id).y + triangleRadius * Math.sin(Math.PI / 6)).attr(\"r\", smallCircleRadius).attr(\"fill\", \"white\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 2);\n nodeEnter.filter((node) => node.isPipelineParent === true).append(\"rect\").attr(\"x\", (node) => positions.get(node.id).x - squareSize / 2).attr(\"y\", (node) => positions.get(node.id).y - squareSize / 2).attr(\"width\", squareSize).attr(\"height\", squareSize).attr(\"fill\", theme.componentFill).attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n nodeEnter.filter((node) => node.inertia === true).append(\"line\").attr(\"class\", \"wardley-inertia\").attr(\"x1\", (node) => {\n const pos = positions.get(node.id);\n let offset = node.isPipelineParent ? squareSize / 2 + 15 : configValues.nodeRadius + 15;\n if (node.sourceStrategy) {\n offset += configValues.nodeRadius + 10;\n }\n return pos.x + offset;\n }).attr(\"y1\", (node) => {\n const pos = positions.get(node.id);\n const lineHeight = node.isPipelineParent ? squareSize : configValues.nodeRadius * 2;\n return pos.y - lineHeight / 2;\n }).attr(\"x2\", (node) => {\n const pos = positions.get(node.id);\n let offset = node.isPipelineParent ? squareSize / 2 + 15 : configValues.nodeRadius + 15;\n if (node.sourceStrategy) {\n offset += configValues.nodeRadius + 10;\n }\n return pos.x + offset;\n }).attr(\"y2\", (node) => {\n const pos = positions.get(node.id);\n const lineHeight = node.isPipelineParent ? squareSize : configValues.nodeRadius * 2;\n return pos.y + lineHeight / 2;\n }).attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 6);\n nodeEnter.append(\"text\").attr(\"x\", (node) => {\n const pos = positions.get(node.id);\n if (node.className === \"anchor\") {\n return node.labelOffsetX !== void 0 ? pos.x + node.labelOffsetX : pos.x;\n }\n let defaultOffset = configValues.nodeLabelOffset;\n if (node.sourceStrategy && node.labelOffsetX === void 0) {\n defaultOffset += 10;\n }\n const customOffset = node.labelOffsetX ?? defaultOffset;\n return pos.x + customOffset;\n }).attr(\"y\", (node) => {\n const pos = positions.get(node.id);\n if (node.className === \"anchor\") {\n return node.labelOffsetY !== void 0 ? pos.y + node.labelOffsetY : pos.y - 3;\n }\n let defaultOffset = -configValues.nodeLabelOffset;\n if (node.sourceStrategy && node.labelOffsetY === void 0) {\n defaultOffset -= 10;\n }\n const customOffset = node.labelOffsetY ?? defaultOffset;\n return pos.y + customOffset;\n }).attr(\"class\", \"wardley-node-label\").attr(\"fill\", (node) => {\n if (node.className === \"evolved\") {\n return theme.evolutionStroke;\n }\n if (node.className === \"anchor\") {\n return \"#000\";\n }\n return theme.componentLabelColor;\n }).attr(\"font-size\", configValues.labelFontSize).attr(\"font-weight\", (node) => node.className === \"anchor\" ? \"bold\" : \"normal\").attr(\"text-anchor\", (node) => node.className === \"anchor\" ? \"middle\" : \"start\").attr(\"dominant-baseline\", (node) => node.className === \"anchor\" ? \"middle\" : \"auto\").text((node) => node.label);\n if (data.annotations.length > 0) {\n const annotationsGroup = root.append(\"g\").attr(\"class\", \"wardley-annotations\");\n data.annotations.forEach((annotation) => {\n const projectedCoords = annotation.coordinates.map((coord) => ({\n x: projectX(coord.x),\n y: projectY(coord.y)\n }));\n if (projectedCoords.length > 1) {\n for (let i = 0; i < projectedCoords.length - 1; i++) {\n annotationsGroup.append(\"line\").attr(\"class\", \"wardley-annotation-line\").attr(\"x1\", projectedCoords[i].x).attr(\"y1\", projectedCoords[i].y).attr(\"x2\", projectedCoords[i + 1].x).attr(\"y2\", projectedCoords[i + 1].y).attr(\"stroke\", theme.axisColor).attr(\"stroke-width\", 1.5).attr(\"stroke-dasharray\", \"4 4\");\n }\n }\n projectedCoords.forEach((coord) => {\n const annotationNode = annotationsGroup.append(\"g\").attr(\"class\", \"wardley-annotation\");\n annotationNode.append(\"circle\").attr(\"cx\", coord.x).attr(\"cy\", coord.y).attr(\"r\", 10).attr(\"fill\", \"white\").attr(\"stroke\", theme.axisColor).attr(\"stroke-width\", 1.5);\n annotationNode.append(\"text\").attr(\"x\", coord.x).attr(\"y\", coord.y).attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"central\").attr(\"font-size\", 10).attr(\"fill\", theme.axisTextColor).attr(\"font-weight\", \"bold\").text(annotation.number);\n });\n });\n if (data.annotationsBox) {\n let boxX = projectX(data.annotationsBox.x);\n let boxY = projectY(data.annotationsBox.y);\n const padding = 10;\n const lineHeight = 16;\n const fontSize = 11;\n const textBoxGroup = annotationsGroup.append(\"g\").attr(\"class\", \"wardley-annotations-box\");\n const sortedAnnotations = [...data.annotations].filter((a) => a.text).sort((a, b) => a.number - b.number);\n const textElements = [];\n sortedAnnotations.forEach((annotation, idx) => {\n const text2 = textBoxGroup.append(\"text\").attr(\"x\", boxX + padding).attr(\"y\", boxY + padding + (idx + 1) * lineHeight).attr(\"font-size\", fontSize).attr(\"fill\", theme.axisTextColor).attr(\"text-anchor\", \"start\").attr(\"dominant-baseline\", \"middle\").text(`${annotation.number}. ${annotation.text}`);\n textElements.push(text2);\n });\n if (textElements.length > 0) {\n let maxWidth = 0;\n let maxHeight = 0;\n textElements.forEach((text2) => {\n const textNode = text2.node();\n const textWidth = textNode.getComputedTextLength();\n maxWidth = Math.max(maxWidth, textWidth);\n const bbox = textNode.getBBox();\n maxHeight = Math.max(maxHeight, bbox.height);\n });\n const boxWidth = maxWidth + padding * 2 + 105;\n const boxHeight = sortedAnnotations.length * lineHeight + padding * 2 + maxHeight / 2;\n const minX = configValues.padding;\n const maxX = width - configValues.padding - boxWidth;\n const minY = configValues.padding;\n const maxY = height - configValues.padding - boxHeight;\n boxX = Math.max(minX, Math.min(boxX, maxX));\n boxY = Math.max(minY, Math.min(boxY, maxY));\n textElements.forEach((text2, idx) => {\n text2.attr(\"x\", boxX + padding).attr(\"y\", boxY + padding + (idx + 1) * lineHeight);\n });\n textBoxGroup.insert(\"rect\", \"text\").attr(\"x\", boxX).attr(\"y\", boxY).attr(\"width\", boxWidth).attr(\"height\", boxHeight).attr(\"fill\", \"white\").attr(\"stroke\", theme.axisColor).attr(\"stroke-width\", 1.5).attr(\"rx\", 4).attr(\"ry\", 4);\n }\n }\n }\n if (data.notes.length > 0) {\n const notesGroup = root.append(\"g\").attr(\"class\", \"wardley-notes\");\n data.notes.forEach((note) => {\n const noteX = projectX(note.x);\n const noteY = projectY(note.y);\n notesGroup.append(\"text\").attr(\"x\", noteX).attr(\"y\", noteY).attr(\"text-anchor\", \"start\").attr(\"font-size\", 11).attr(\"fill\", theme.axisTextColor).attr(\"font-weight\", \"bold\").text(note.text);\n });\n }\n if (data.accelerators.length > 0) {\n const acceleratorsGroup = root.append(\"g\").attr(\"class\", \"wardley-accelerators\");\n data.accelerators.forEach((accelerator) => {\n const accX = projectX(accelerator.x);\n const accY = projectY(accelerator.y);\n const arrowWidth = 60;\n const arrowHeight = 30;\n const arrowHeadWidth = 20;\n const arrowPath = `\n M ${accX} ${accY - arrowHeight / 2}\n L ${accX + arrowWidth - arrowHeadWidth} ${accY - arrowHeight / 2}\n L ${accX + arrowWidth - arrowHeadWidth} ${accY - arrowHeight / 2 - 8}\n L ${accX + arrowWidth} ${accY}\n L ${accX + arrowWidth - arrowHeadWidth} ${accY + arrowHeight / 2 + 8}\n L ${accX + arrowWidth - arrowHeadWidth} ${accY + arrowHeight / 2}\n L ${accX} ${accY + arrowHeight / 2}\n Z\n `;\n acceleratorsGroup.append(\"path\").attr(\"d\", arrowPath).attr(\"fill\", \"white\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n acceleratorsGroup.append(\"text\").attr(\"x\", accX + arrowWidth / 2).attr(\"y\", accY + arrowHeight / 2 + 15).attr(\"text-anchor\", \"middle\").attr(\"font-size\", 10).attr(\"fill\", theme.axisTextColor).attr(\"font-weight\", \"bold\").text(accelerator.name);\n });\n }\n if (data.deaccelerators.length > 0) {\n const deacceleratorsGroup = root.append(\"g\").attr(\"class\", \"wardley-deaccelerators\");\n data.deaccelerators.forEach((deaccelerator) => {\n const decX = projectX(deaccelerator.x);\n const decY = projectY(deaccelerator.y);\n const arrowWidth = 60;\n const arrowHeight = 30;\n const arrowHeadWidth = 20;\n const arrowPath = `\n M ${decX + arrowWidth} ${decY - arrowHeight / 2}\n L ${decX + arrowHeadWidth} ${decY - arrowHeight / 2}\n L ${decX + arrowHeadWidth} ${decY - arrowHeight / 2 - 8}\n L ${decX} ${decY}\n L ${decX + arrowHeadWidth} ${decY + arrowHeight / 2 + 8}\n L ${decX + arrowHeadWidth} ${decY + arrowHeight / 2}\n L ${decX + arrowWidth} ${decY + arrowHeight / 2}\n Z\n `;\n deacceleratorsGroup.append(\"path\").attr(\"d\", arrowPath).attr(\"fill\", \"white\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n deacceleratorsGroup.append(\"text\").attr(\"x\", decX + arrowWidth / 2).attr(\"y\", decY + arrowHeight / 2 + 15).attr(\"text-anchor\", \"middle\").attr(\"font-size\", 10).attr(\"fill\", theme.axisTextColor).attr(\"font-weight\", \"bold\").text(deaccelerator.name);\n });\n }\n}, \"draw\");\nvar wardleyRenderer_default = {\n draw\n};\n\n// src/diagrams/wardley/styles.ts\nvar styles = /* @__PURE__ */ __name(({\n wardley\n} = {}) => {\n const defaultThemeVariables = getThemeVariables();\n const currentConfig = getConfig();\n const themeVariables = cleanAndMerge(defaultThemeVariables, currentConfig.themeVariables);\n const w = cleanAndMerge(themeVariables.wardley, wardley);\n return `\n .wardley-background {\n fill: ${w.backgroundColor};\n }\n .wardley-axes line, .wardley-axes path {\n stroke: ${w.axisColor};\n }\n .wardley-axis-label {\n fill: ${w.axisTextColor};\n }\n .wardley-stage-label {\n fill: ${w.axisTextColor};\n }\n .wardley-grid line {\n stroke: ${w.gridColor};\n }\n .wardley-node circle {\n fill: ${w.componentFill};\n stroke: ${w.componentStroke};\n }\n .wardley-node-label {\n fill: ${w.componentLabelColor};\n }\n .wardley-link {\n stroke: ${w.linkStroke};\n }\n .wardley-link--dashed {\n stroke-dasharray: 4 4;\n }\n .wardley-link-label {\n fill: ${w.axisTextColor};\n }\n .wardley-trend line {\n stroke: ${w.evolutionStroke};\n }\n .wardley-annotation-line {\n stroke: ${w.annotationStroke};\n }\n .wardley-annotation circle {\n fill: ${w.annotationFill};\n stroke: ${w.annotationStroke};\n }\n .wardley-annotation text {\n fill: ${w.annotationTextColor};\n }\n .wardley-annotations-box rect {\n fill: ${w.annotationFill};\n stroke: ${w.annotationStroke};\n }\n .wardley-annotations-box text {\n fill: ${w.annotationTextColor};\n }\n .wardley-pipeline-box {\n stroke: ${w.componentStroke};\n }\n .wardley-notes text {\n fill: ${w.axisTextColor};\n }\n `;\n}, \"styles\");\n\n// src/diagrams/wardley/wardleyDiagram.ts\nvar diagram = {\n parser,\n db: wardleyDb_default,\n renderer: wardleyRenderer_default,\n styles\n};\nexport {\n diagram\n};\n"],"names":["toPercent","__name","value","context","normalized","toCoordinates","visibility","evolution","getFlowFromPort","port","extractFlowFromArrow","arrow","flowLabel","populateDb","ast","db","populateCommonDb","stages","stage","stageBoundaries","anchor","coords","component","labelOffsetX","labelOffsetY","sourceStrategy","note","pipeline","parentNode","parentY","componentId","x","link","isDashed","flow","arrowFlow","annotation","label","evolve","node","target","annotationsBox","accelerator","deaccelerator","parser","input","parse","log","WardleyBuilder","_a","existing","merged","trend","nodeId","pipelineNodeId","y","partial","width","height","id","name","nodes","builder","getConfig3","getConfig2","addNode","className","inertia","addLink","sourceId","targetId","dashed","addTrend","targetX","targetY","addAnnotation","number","coordinates","text","addNote","addAccelerator","addDeaccelerator","setAnnotationsBox","setSize","startPipeline","addPipelineComponent","updateAxes","getNode","resolveNodeId","getWardleyData","clear2","clear","wardleyDb_default","setAccTitle","getAccTitle","setDiagramTitle","getDiagramTitle","getAccDescription","setAccDescription","DEFAULT_STAGES","getTheme","themeVariables","getConfigValues","wardleyConfig","draw","_version","diagObj","configValues","theme","squareSize","data","title","svg","selectSvgElement","configureSvgSize","root","defs","chartWidth","chartHeight","projectX","projectY","axisGroup","xLabel","yLabel","stageGroup","boundaries","stagePositions","prevBoundary","boundary","stageWidth","_","index","pos","startX","endX","centerX","gridGroup","i","ratio","positions","pipelineGroup","pipelineLinksGroup","sortedComponents","id2","n","c","a","b","current","next","minX","maxX","height2","boxTop","parentPos","linksGroup","pipelineMap","validLinks","sourcePos","targetPos","radius","dx","dy","distance","midX","offset","perpX","midY","perpY","labelX","labelY","angle","trendGroup","trendsWithPositions","origin","shortenBy","adjustedX2","adjustedY2","nodeEnter","marketNodes","smallCircleRadius","triangleRadius","lineHeight","defaultOffset","customOffset","annotationsGroup","projectedCoords","coord","annotationNode","boxX","boxY","padding","fontSize","textBoxGroup","sortedAnnotations","textElements","idx","text2","maxWidth","maxHeight","textNode","textWidth","bbox","boxWidth","boxHeight","minY","maxY","notesGroup","noteX","noteY","acceleratorsGroup","accX","accY","arrowWidth","arrowHeight","arrowHeadWidth","arrowPath","deacceleratorsGroup","decX","decY","wardleyRenderer_default","styles","wardley","defaultThemeVariables","getThemeVariables","currentConfig","getConfig","cleanAndMerge","w","diagram"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"wardleyDiagram-EHGQE667-tZJBiyrP.js","sources":["../../../node_modules/.pnpm/mermaid@11.16.0/node_modules/mermaid/dist/chunks/mermaid.core/wardleyDiagram-EHGQE667.mjs"],"sourcesContent":["import {\n populateCommonDb\n} from \"./chunk-JWPE2WC7.mjs\";\nimport {\n selectSvgElement\n} from \"./chunk-VAUOI2AC.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-ICXQ74PX.mjs\";\nimport {\n clear,\n configureSvgSize,\n getAccDescription,\n getAccTitle,\n getConfig,\n getConfig2,\n getDiagramTitle,\n getThemeVariables,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-WYO6CB5R.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/wardley/wardleyParser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar toPercent = /* @__PURE__ */ __name((value, context) => {\n const normalized = value <= 1 ? value * 100 : value;\n if (normalized < 0 || normalized > 100) {\n throw new Error(\n `${context} must be between 0-1 (decimal) or 0-100 (percentage). Received: ${value}`\n );\n }\n return normalized;\n}, \"toPercent\");\nvar toCoordinates = /* @__PURE__ */ __name((visibility, evolution, context) => {\n return {\n x: toPercent(evolution, `${context} evolution`),\n y: toPercent(visibility, `${context} visibility`)\n };\n}, \"toCoordinates\");\nvar getFlowFromPort = /* @__PURE__ */ __name((port) => {\n if (!port) {\n return void 0;\n }\n if (port === \"+<>\") {\n return \"bidirectional\";\n }\n if (port === \"+<\") {\n return \"backward\";\n }\n if (port === \"+>\") {\n return \"forward\";\n }\n return void 0;\n}, \"getFlowFromPort\");\nvar extractFlowFromArrow = /* @__PURE__ */ __name((arrow) => {\n if (!arrow?.startsWith(\"+\")) {\n return {};\n }\n const labelMatch = /^\\+'([^']*)'/.exec(arrow);\n const flowLabel = labelMatch?.[1];\n if (arrow.includes(\"<>\")) {\n return { flow: \"bidirectional\", label: flowLabel };\n }\n if (arrow.includes(\"<\")) {\n return { flow: \"backward\", label: flowLabel };\n }\n if (arrow.includes(\">\")) {\n return { flow: \"forward\", label: flowLabel };\n }\n return { label: flowLabel };\n}, \"extractFlowFromArrow\");\nvar populateDb = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n if (ast.size) {\n db.setSize(ast.size.width, ast.size.height);\n }\n if (ast.evolution) {\n const stages = ast.evolution.stages.map((stage) => {\n if (stage.secondName) {\n return `${stage.name.trim()} / ${stage.secondName.trim()}`;\n }\n return stage.name.trim();\n });\n const stageBoundaries = ast.evolution.stages.filter((stage) => stage.boundary !== void 0).map((stage) => stage.boundary);\n db.updateAxes({ stages, stageBoundaries });\n }\n ast.anchors.forEach((anchor) => {\n const coords = toCoordinates(anchor.visibility, anchor.evolution, `Anchor \"${anchor.name}\"`);\n db.addNode(anchor.name, anchor.name, coords.x, coords.y, \"anchor\");\n });\n ast.components.forEach((component) => {\n const coords = toCoordinates(\n component.visibility,\n component.evolution,\n `Component \"${component.name}\"`\n );\n const labelOffsetX = component.label ? (component.label.negX ? -1 : 1) * component.label.offsetX : void 0;\n const labelOffsetY = component.label ? (component.label.negY ? -1 : 1) * component.label.offsetY : void 0;\n const sourceStrategy = component.decorator?.strategy;\n db.addNode(\n component.name,\n component.name,\n coords.x,\n coords.y,\n \"component\",\n labelOffsetX,\n labelOffsetY,\n component.inertia,\n sourceStrategy\n );\n });\n ast.notes.forEach((note) => {\n const coords = toCoordinates(note.visibility, note.evolution, `Note \"${note.text}\"`);\n db.addNote(note.text, coords.x, coords.y);\n });\n ast.pipelines.forEach((pipeline) => {\n const parentNode = db.getNode(pipeline.parent);\n if (!parentNode || typeof parentNode.y !== \"number\") {\n throw new Error(\n `Pipeline \"${pipeline.parent}\" must reference an existing component with coordinates.`\n );\n }\n const parentY = parentNode.y;\n db.startPipeline(pipeline.parent);\n pipeline.components.forEach((component) => {\n const componentId = `${pipeline.parent}_${component.name}`;\n const labelOffsetX = component.label ? (component.label.negX ? -1 : 1) * component.label.offsetX : void 0;\n const labelOffsetY = component.label ? (component.label.negY ? -1 : 1) * component.label.offsetY : void 0;\n const x = toPercent(component.evolution, `Pipeline component \"${component.name}\" evolution`);\n db.addNode(\n componentId,\n component.name,\n x,\n parentY,\n \"pipeline-component\",\n labelOffsetX,\n labelOffsetY\n );\n db.addPipelineComponent(pipeline.parent, componentId);\n });\n });\n ast.links.forEach((link) => {\n const isDashed = !!link.arrow && (link.arrow.includes(\"-.->\") || link.arrow.includes(\".-.\"));\n let flow = getFlowFromPort(link.fromPort) ?? getFlowFromPort(link.toPort);\n const { flow: arrowFlow, label: flowLabel } = extractFlowFromArrow(link.arrow);\n if (!flow && arrowFlow) {\n flow = arrowFlow;\n }\n const annotation = link.linkLabel;\n const label = flowLabel ?? annotation;\n db.addLink(db.resolveNodeId(link.from), db.resolveNodeId(link.to), isDashed, label, flow);\n });\n ast.evolves.forEach((evolve) => {\n const node = db.getNode(evolve.component);\n if (node?.y !== void 0) {\n const target = toPercent(evolve.target, `Evolve target for \"${evolve.component}\"`);\n db.addTrend(evolve.component, target, node.y);\n }\n });\n if (ast.annotations.length > 0) {\n const annotationsBox = ast.annotations[0];\n const coords = toCoordinates(annotationsBox.x, annotationsBox.y, \"Annotations box\");\n db.setAnnotationsBox(coords.x, coords.y);\n }\n ast.annotation.forEach((annotation) => {\n const coords = toCoordinates(annotation.x, annotation.y, `Annotation ${annotation.number}`);\n db.addAnnotation(annotation.number, [{ x: coords.x, y: coords.y }], annotation.text);\n });\n ast.accelerators.forEach((accelerator) => {\n const coords = toCoordinates(accelerator.x, accelerator.y, `Accelerator \"${accelerator.name}\"`);\n db.addAccelerator(accelerator.name, coords.x, coords.y);\n });\n ast.deaccelerators.forEach((deaccelerator) => {\n const coords = toCoordinates(\n deaccelerator.x,\n deaccelerator.y,\n `Deaccelerator \"${deaccelerator.name}\"`\n );\n db.addDeaccelerator(deaccelerator.name, coords.x, coords.y);\n });\n}, \"populateDb\");\nvar parser = {\n parser: {\n // @ts-expect-error - WardleyDB is not assignable to DiagramDB\n yy: void 0\n },\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"wardley\", input);\n log.debug(ast);\n const db = parser.parser?.yy;\n if (!db || typeof db.addNode !== \"function\") {\n throw new Error(\n \"parser.parser?.yy was not a WardleyDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.\"\n );\n }\n populateDb(ast, db);\n }, \"parse\")\n};\n\n// src/diagrams/wardley/wardleyBuilder.ts\nvar WardleyBuilder = class {\n constructor() {\n this.nodes = /* @__PURE__ */ new Map();\n this.links = [];\n this.trends = /* @__PURE__ */ new Map();\n this.pipelines = /* @__PURE__ */ new Map();\n this.annotations = [];\n this.notes = [];\n this.accelerators = [];\n this.deaccelerators = [];\n this.axes = {};\n }\n static {\n __name(this, \"WardleyBuilder\");\n }\n addNode(node) {\n const existing = this.nodes.get(node.id) ?? { id: node.id, label: node.label };\n const merged = {\n ...existing,\n ...node,\n className: node.className ?? existing.className,\n labelOffsetX: node.labelOffsetX ?? existing.labelOffsetX,\n labelOffsetY: node.labelOffsetY ?? existing.labelOffsetY\n };\n this.nodes.set(node.id, merged);\n }\n addLink(link) {\n this.links.push(link);\n }\n addTrend(trend) {\n this.trends.set(trend.nodeId, trend);\n }\n startPipeline(nodeId) {\n this.pipelines.set(nodeId, { nodeId, componentIds: [] });\n const node = this.nodes.get(nodeId);\n if (node) {\n node.isPipelineParent = true;\n }\n }\n addPipelineComponent(pipelineNodeId, componentId) {\n const pipeline = this.pipelines.get(pipelineNodeId);\n if (pipeline) {\n pipeline.componentIds.push(componentId);\n }\n const node = this.nodes.get(componentId);\n if (node) {\n node.inPipeline = true;\n }\n }\n addAnnotation(annotation) {\n this.annotations.push(annotation);\n }\n addNote(note) {\n this.notes.push(note);\n }\n addAccelerator(accelerator) {\n this.accelerators.push(accelerator);\n }\n addDeaccelerator(deaccelerator) {\n this.deaccelerators.push(deaccelerator);\n }\n setAnnotationsBox(x, y) {\n this.annotationsBox = { x, y };\n }\n setAxes(partial) {\n this.axes = {\n ...this.axes,\n ...partial\n };\n }\n setSize(width, height) {\n this.size = { width, height };\n }\n getNode(id) {\n return this.nodes.get(id);\n }\n /**\n * Resolve a name to a node ID. Tries exact ID match first,\n * then falls back to finding a node whose label matches the name\n * (handles pipeline components which have synthetic IDs like \"Parent_Child\").\n */\n resolveNodeId(name) {\n if (this.nodes.has(name)) {\n return name;\n }\n for (const [id, node] of this.nodes) {\n if (node.label === name) {\n return id;\n }\n }\n return name;\n }\n build() {\n const nodes = [];\n for (const node of this.nodes.values()) {\n if (typeof node.x !== \"number\" || typeof node.y !== \"number\") {\n throw new Error(`Node \"${node.label}\" is missing coordinates`);\n }\n nodes.push(node);\n }\n return {\n nodes,\n links: [...this.links],\n trends: [...this.trends.values()],\n pipelines: [...this.pipelines.values()],\n annotations: [...this.annotations],\n notes: [...this.notes],\n accelerators: [...this.accelerators],\n deaccelerators: [...this.deaccelerators],\n annotationsBox: this.annotationsBox,\n axes: { ...this.axes },\n size: this.size\n };\n }\n clear() {\n this.nodes.clear();\n this.links = [];\n this.trends.clear();\n this.pipelines.clear();\n this.annotations = [];\n this.notes = [];\n this.accelerators = [];\n this.deaccelerators = [];\n this.annotationsBox = void 0;\n this.axes = {};\n this.size = void 0;\n }\n};\n\n// src/diagrams/wardley/wardleyDb.ts\nvar builder = new WardleyBuilder();\nfunction getConfig3() {\n return getConfig2()[\"wardley-beta\"];\n}\n__name(getConfig3, \"getConfig\");\nfunction addNode(id, label, x, y, className, labelOffsetX, labelOffsetY, inertia, sourceStrategy) {\n builder.addNode({\n id,\n label,\n x,\n y,\n className,\n labelOffsetX,\n labelOffsetY,\n inertia,\n sourceStrategy\n });\n}\n__name(addNode, \"addNode\");\nfunction addLink(sourceId, targetId, dashed = false, label, flow) {\n builder.addLink({\n source: sourceId,\n target: targetId,\n dashed,\n label,\n flow\n });\n}\n__name(addLink, \"addLink\");\nfunction addTrend(nodeId, targetX, targetY) {\n builder.addTrend({ nodeId, targetX, targetY });\n}\n__name(addTrend, \"addTrend\");\nfunction addAnnotation(number, coordinates, text) {\n builder.addAnnotation({\n number,\n coordinates,\n text\n });\n}\n__name(addAnnotation, \"addAnnotation\");\nfunction addNote(text, x, y) {\n builder.addNote({\n text,\n x,\n y\n });\n}\n__name(addNote, \"addNote\");\nfunction addAccelerator(name, x, y) {\n builder.addAccelerator({\n name,\n x,\n y\n });\n}\n__name(addAccelerator, \"addAccelerator\");\nfunction addDeaccelerator(name, x, y) {\n builder.addDeaccelerator({\n name,\n x,\n y\n });\n}\n__name(addDeaccelerator, \"addDeaccelerator\");\nfunction setAnnotationsBox(x, y) {\n builder.setAnnotationsBox(x, y);\n}\n__name(setAnnotationsBox, \"setAnnotationsBox\");\nfunction setSize(width, height) {\n builder.setSize(width, height);\n}\n__name(setSize, \"setSize\");\nfunction startPipeline(nodeId) {\n builder.startPipeline(nodeId);\n}\n__name(startPipeline, \"startPipeline\");\nfunction addPipelineComponent(pipelineNodeId, componentId) {\n builder.addPipelineComponent(pipelineNodeId, componentId);\n}\n__name(addPipelineComponent, \"addPipelineComponent\");\nfunction updateAxes(partial) {\n builder.setAxes(partial);\n}\n__name(updateAxes, \"updateAxes\");\nfunction getNode(id) {\n return builder.getNode(id);\n}\n__name(getNode, \"getNode\");\nfunction resolveNodeId(name) {\n return builder.resolveNodeId(name);\n}\n__name(resolveNodeId, \"resolveNodeId\");\nfunction getWardleyData() {\n return builder.build();\n}\n__name(getWardleyData, \"getWardleyData\");\nfunction clear2() {\n builder.clear();\n clear();\n}\n__name(clear2, \"clear\");\nvar wardleyDb_default = {\n getConfig: getConfig3,\n addNode,\n addLink,\n addTrend,\n addAnnotation,\n addNote,\n addAccelerator,\n addDeaccelerator,\n setAnnotationsBox,\n setSize,\n startPipeline,\n addPipelineComponent,\n updateAxes,\n getNode,\n resolveNodeId,\n getWardleyData,\n clear: clear2,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n getAccDescription,\n setAccDescription\n};\n\n// src/diagrams/wardley/wardleyRenderer.ts\nvar DEFAULT_STAGES = [\"Genesis\", \"Custom Built\", \"Product\", \"Commodity\"];\nvar getTheme = /* @__PURE__ */ __name(() => {\n const { themeVariables } = getConfig2();\n return {\n backgroundColor: themeVariables.wardley?.backgroundColor ?? themeVariables.background ?? \"#fff\",\n axisColor: themeVariables.wardley?.axisColor ?? \"#000\",\n axisTextColor: themeVariables.wardley?.axisTextColor ?? themeVariables.primaryTextColor ?? \"#222\",\n gridColor: themeVariables.wardley?.gridColor ?? \"rgba(100, 100, 100, 0.2)\",\n componentFill: themeVariables.wardley?.componentFill ?? \"#fff\",\n componentStroke: themeVariables.wardley?.componentStroke ?? \"#000\",\n componentLabelColor: themeVariables.wardley?.componentLabelColor ?? themeVariables.primaryTextColor ?? \"#222\",\n linkStroke: themeVariables.wardley?.linkStroke ?? \"#000\",\n evolutionStroke: themeVariables.wardley?.evolutionStroke ?? \"#dc3545\",\n annotationStroke: themeVariables.wardley?.annotationStroke ?? \"#000\",\n annotationTextColor: themeVariables.wardley?.annotationTextColor ?? themeVariables.primaryTextColor ?? \"#222\",\n annotationFill: themeVariables.wardley?.annotationFill ?? themeVariables.background ?? \"#fff\"\n };\n}, \"getTheme\");\nvar getConfigValues = /* @__PURE__ */ __name(() => {\n const wardleyConfig = getConfig2()[\"wardley-beta\"];\n return {\n width: wardleyConfig?.width ?? 900,\n height: wardleyConfig?.height ?? 600,\n padding: wardleyConfig?.padding ?? 48,\n nodeRadius: wardleyConfig?.nodeRadius ?? 6,\n nodeLabelOffset: wardleyConfig?.nodeLabelOffset ?? 8,\n axisFontSize: wardleyConfig?.axisFontSize ?? 12,\n labelFontSize: wardleyConfig?.labelFontSize ?? 10,\n showGrid: wardleyConfig?.showGrid ?? false,\n useMaxWidth: wardleyConfig?.useMaxWidth ?? true\n };\n}, \"getConfigValues\");\nvar draw = /* @__PURE__ */ __name((text, id, _version, diagObj) => {\n log.debug(\"Rendering Wardley map\\n\" + text);\n const configValues = getConfigValues();\n const theme = getTheme();\n const squareSize = configValues.nodeRadius * 1.6;\n const db = diagObj.db;\n const data = db.getWardleyData();\n const title = db.getDiagramTitle();\n const width = data.size?.width ?? configValues.width;\n const height = data.size?.height ?? configValues.height;\n const svg = selectSvgElement(id);\n svg.selectAll(\"*\").remove();\n configureSvgSize(svg, height, width, configValues.useMaxWidth);\n svg.attr(\"viewBox\", `0 0 ${width} ${height}`);\n const root = svg.append(\"g\").attr(\"class\", \"wardley-map\");\n const defs = svg.append(\"defs\");\n defs.append(\"marker\").attr(\"id\", `arrow-${id}`).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 9).attr(\"refY\", 5).attr(\"markerWidth\", 6).attr(\"markerHeight\", 6).attr(\"orient\", \"auto-start-reverse\").append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\").attr(\"fill\", theme.evolutionStroke).attr(\"stroke\", \"none\");\n defs.append(\"marker\").attr(\"id\", `link-arrow-end-${id}`).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 9).attr(\"refY\", 5).attr(\"markerWidth\", 5).attr(\"markerHeight\", 5).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\").attr(\"fill\", theme.linkStroke).attr(\"stroke\", \"none\");\n defs.append(\"marker\").attr(\"id\", `link-arrow-start-${id}`).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 1).attr(\"refY\", 5).attr(\"markerWidth\", 5).attr(\"markerHeight\", 5).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 10 0 L 0 5 L 10 10 z\").attr(\"fill\", theme.linkStroke).attr(\"stroke\", \"none\");\n root.append(\"rect\").attr(\"class\", \"wardley-background\").attr(\"width\", width).attr(\"height\", height).attr(\"fill\", theme.backgroundColor);\n const chartWidth = width - configValues.padding * 2;\n const chartHeight = height - configValues.padding * 2;\n if (title) {\n root.append(\"text\").attr(\"class\", \"wardley-title\").attr(\"x\", width / 2).attr(\"y\", configValues.padding / 2).attr(\"fill\", theme.axisTextColor).attr(\"font-size\", configValues.axisFontSize * 1.05).attr(\"font-weight\", \"bold\").attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").text(title);\n }\n const projectX = /* @__PURE__ */ __name((value) => configValues.padding + value / 100 * chartWidth, \"projectX\");\n const projectY = /* @__PURE__ */ __name((value) => height - configValues.padding - value / 100 * chartHeight, \"projectY\");\n const axisGroup = root.append(\"g\").attr(\"class\", \"wardley-axes\");\n axisGroup.append(\"line\").attr(\"x1\", configValues.padding).attr(\"x2\", width - configValues.padding).attr(\"y1\", height - configValues.padding).attr(\"y2\", height - configValues.padding).attr(\"stroke\", theme.axisColor).attr(\"stroke-width\", 1);\n axisGroup.append(\"line\").attr(\"x1\", configValues.padding).attr(\"x2\", configValues.padding).attr(\"y1\", configValues.padding).attr(\"y2\", height - configValues.padding).attr(\"stroke\", theme.axisColor).attr(\"stroke-width\", 1);\n const xLabel = data.axes.xLabel ?? \"Evolution\";\n const yLabel = data.axes.yLabel ?? \"Visibility\";\n axisGroup.append(\"text\").attr(\"class\", \"wardley-axis-label wardley-axis-label-x\").attr(\"x\", configValues.padding + chartWidth / 2).attr(\"y\", height - configValues.padding / 4).attr(\"fill\", theme.axisTextColor).attr(\"font-size\", configValues.axisFontSize).attr(\"font-weight\", \"bold\").attr(\"text-anchor\", \"middle\").text(xLabel);\n axisGroup.append(\"text\").attr(\"class\", \"wardley-axis-label wardley-axis-label-y\").attr(\"x\", configValues.padding / 3).attr(\"y\", configValues.padding + chartHeight / 2).attr(\"fill\", theme.axisTextColor).attr(\"font-size\", configValues.axisFontSize).attr(\"font-weight\", \"bold\").attr(\"text-anchor\", \"middle\").attr(\n \"transform\",\n `rotate(-90 ${configValues.padding / 3} ${configValues.padding + chartHeight / 2})`\n ).text(yLabel);\n const stages = data.axes.stages && data.axes.stages.length > 0 ? data.axes.stages : DEFAULT_STAGES;\n if (stages.length > 0) {\n const stageGroup = root.append(\"g\").attr(\"class\", \"wardley-stages\");\n const boundaries = data.axes.stageBoundaries;\n const stagePositions = [];\n if (boundaries && boundaries.length === stages.length) {\n let prevBoundary = 0;\n boundaries.forEach((boundary) => {\n stagePositions.push({ start: prevBoundary, end: boundary });\n prevBoundary = boundary;\n });\n } else {\n const stageWidth = 1 / stages.length;\n stages.forEach((_, index) => {\n stagePositions.push({\n start: index * stageWidth,\n end: (index + 1) * stageWidth\n });\n });\n }\n stages.forEach((stage, index) => {\n const pos = stagePositions[index];\n const startX = configValues.padding + pos.start * chartWidth;\n const endX = configValues.padding + pos.end * chartWidth;\n const centerX = (startX + endX) / 2;\n if (index > 0) {\n stageGroup.append(\"line\").attr(\"x1\", startX).attr(\"x2\", startX).attr(\"y1\", configValues.padding).attr(\"y2\", height - configValues.padding).attr(\"stroke\", \"#000\").attr(\"stroke-width\", 1).attr(\"stroke-dasharray\", \"5 5\").attr(\"opacity\", 0.8);\n }\n stageGroup.append(\"text\").attr(\"class\", \"wardley-stage-label\").attr(\"x\", centerX).attr(\"y\", height - configValues.padding / 1.5).attr(\"fill\", theme.axisTextColor).attr(\"font-size\", configValues.axisFontSize - 2).attr(\"text-anchor\", \"middle\").text(stage);\n });\n }\n if (configValues.showGrid) {\n const gridGroup = root.append(\"g\").attr(\"class\", \"wardley-grid\");\n for (let i = 1; i < 4; i++) {\n const ratio = i / 4;\n const x = configValues.padding + chartWidth * ratio;\n gridGroup.append(\"line\").attr(\"x1\", x).attr(\"x2\", x).attr(\"y1\", configValues.padding).attr(\"y2\", height - configValues.padding).attr(\"stroke\", theme.gridColor).attr(\"stroke-dasharray\", \"2 6\");\n gridGroup.append(\"line\").attr(\"x1\", configValues.padding).attr(\"x2\", width - configValues.padding).attr(\"y1\", height - configValues.padding - chartHeight * ratio).attr(\"y2\", height - configValues.padding - chartHeight * ratio).attr(\"stroke\", theme.gridColor).attr(\"stroke-dasharray\", \"2 6\");\n }\n }\n const positions = /* @__PURE__ */ new Map();\n data.nodes.forEach((node) => {\n positions.set(node.id, {\n x: projectX(node.x),\n y: projectY(node.y),\n node\n });\n });\n if (data.pipelines.length > 0) {\n const pipelineGroup = root.append(\"g\").attr(\"class\", \"wardley-pipelines\");\n const pipelineLinksGroup = root.append(\"g\").attr(\"class\", \"wardley-pipeline-links\");\n data.pipelines.forEach((pipeline) => {\n if (pipeline.componentIds.length === 0) {\n return;\n }\n const sortedComponents = pipeline.componentIds.map((id2) => ({ id: id2, pos: positions.get(id2), node: data.nodes.find((n) => n.id === id2) })).filter((c) => c.pos && c.node).sort((a, b) => a.node.x - b.node.x);\n for (let i = 0; i < sortedComponents.length - 1; i++) {\n const current = sortedComponents[i];\n const next = sortedComponents[i + 1];\n pipelineLinksGroup.append(\"line\").attr(\"class\", \"wardley-pipeline-evolution-link\").attr(\"x1\", current.pos.x).attr(\"y1\", current.pos.y).attr(\"x2\", next.pos.x).attr(\"y2\", next.pos.y).attr(\"stroke\", theme.linkStroke).attr(\"stroke-width\", 1).attr(\"stroke-dasharray\", \"4 4\");\n }\n let minX = Infinity;\n let maxX = -Infinity;\n let y = 0;\n pipeline.componentIds.forEach((componentId) => {\n const pos = positions.get(componentId);\n if (pos) {\n minX = Math.min(minX, pos.x);\n maxX = Math.max(maxX, pos.x);\n y = pos.y;\n }\n });\n if (minX !== Infinity && maxX !== -Infinity) {\n const padding = 15;\n const height2 = configValues.nodeRadius * 4;\n const boxTop = y - height2 / 2;\n const parentPos = positions.get(pipeline.nodeId);\n if (parentPos) {\n const centerX = (minX + maxX) / 2;\n parentPos.x = centerX;\n parentPos.y = boxTop - squareSize / 6;\n }\n pipelineGroup.append(\"rect\").attr(\"class\", \"wardley-pipeline-box\").attr(\"x\", minX - padding).attr(\"y\", boxTop).attr(\"width\", maxX - minX + padding * 2).attr(\"height\", height2).attr(\"fill\", \"none\").attr(\"stroke\", theme.axisColor).attr(\"stroke-width\", 1.5).attr(\"rx\", 4).attr(\"ry\", 4);\n }\n });\n }\n const linksGroup = root.append(\"g\").attr(\"class\", \"wardley-links\");\n const pipelineMap = /* @__PURE__ */ new Map();\n data.pipelines.forEach((pipeline) => {\n pipelineMap.set(pipeline.nodeId, new Set(pipeline.componentIds));\n });\n const validLinks = data.links.filter((link) => {\n if (!positions.has(link.source) || !positions.has(link.target)) {\n return false;\n }\n const pipelineComponents = pipelineMap.get(link.target);\n if (pipelineComponents?.has(link.source)) {\n return false;\n }\n return true;\n });\n linksGroup.selectAll(\"line\").data(validLinks).enter().append(\"line\").attr(\"class\", (link) => `wardley-link${link.dashed ? \" wardley-link--dashed\" : \"\"}`).attr(\"x1\", (link) => {\n const sourcePos = positions.get(link.source);\n const targetPos = positions.get(link.target);\n const sourceNode = data.nodes.find((n) => n.id === link.source);\n const radius = sourceNode.isPipelineParent ? squareSize / Math.sqrt(2) : configValues.nodeRadius;\n const dx = targetPos.x - sourcePos.x;\n const dy = targetPos.y - sourcePos.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n return sourcePos.x + dx / distance * radius;\n }).attr(\"y1\", (link) => {\n const sourcePos = positions.get(link.source);\n const targetPos = positions.get(link.target);\n const sourceNode = data.nodes.find((n) => n.id === link.source);\n const radius = sourceNode.isPipelineParent ? squareSize / Math.sqrt(2) : configValues.nodeRadius;\n const dx = targetPos.x - sourcePos.x;\n const dy = targetPos.y - sourcePos.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n return sourcePos.y + dy / distance * radius;\n }).attr(\"x2\", (link) => {\n const sourcePos = positions.get(link.source);\n const targetPos = positions.get(link.target);\n const targetNode = data.nodes.find((n) => n.id === link.target);\n const radius = targetNode.isPipelineParent ? squareSize / Math.sqrt(2) : configValues.nodeRadius;\n const dx = sourcePos.x - targetPos.x;\n const dy = sourcePos.y - targetPos.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n return targetPos.x + dx / distance * radius;\n }).attr(\"y2\", (link) => {\n const sourcePos = positions.get(link.source);\n const targetPos = positions.get(link.target);\n const targetNode = data.nodes.find((n) => n.id === link.target);\n const radius = targetNode.isPipelineParent ? squareSize / Math.sqrt(2) : configValues.nodeRadius;\n const dx = sourcePos.x - targetPos.x;\n const dy = sourcePos.y - targetPos.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n return targetPos.y + dy / distance * radius;\n }).attr(\"stroke\", theme.linkStroke).attr(\"stroke-width\", 1).attr(\"stroke-dasharray\", (link) => link.dashed ? \"6 6\" : null).attr(\"marker-end\", (link) => {\n if (link.flow === \"forward\" || link.flow === \"bidirectional\") {\n return `url(#link-arrow-end-${id})`;\n }\n return null;\n }).attr(\"marker-start\", (link) => {\n if (link.flow === \"backward\" || link.flow === \"bidirectional\") {\n return `url(#link-arrow-start-${id})`;\n }\n return null;\n });\n linksGroup.selectAll(\"text\").data(validLinks.filter((link) => link.label)).enter().append(\"text\").attr(\"class\", \"wardley-link-label\").attr(\"x\", (link) => {\n const sourcePos = positions.get(link.source);\n const targetPos = positions.get(link.target);\n const midX = (sourcePos.x + targetPos.x) / 2;\n const dy = targetPos.y - sourcePos.y;\n const dx = targetPos.x - sourcePos.x;\n const distance = Math.sqrt(dx * dx + dy * dy);\n const offset = 8;\n const perpX = dy / distance;\n return midX + perpX * offset;\n }).attr(\"y\", (link) => {\n const sourcePos = positions.get(link.source);\n const targetPos = positions.get(link.target);\n const midY = (sourcePos.y + targetPos.y) / 2;\n const dx = targetPos.x - sourcePos.x;\n const dy = targetPos.y - sourcePos.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n const offset = 8;\n const perpY = -dx / distance;\n return midY + perpY * offset;\n }).attr(\"fill\", theme.axisTextColor).attr(\"font-size\", configValues.labelFontSize).attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").attr(\"transform\", (link) => {\n const sourcePos = positions.get(link.source);\n const targetPos = positions.get(link.target);\n const midX = (sourcePos.x + targetPos.x) / 2;\n const midY = (sourcePos.y + targetPos.y) / 2;\n const dx = targetPos.x - sourcePos.x;\n const dy = targetPos.y - sourcePos.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n const offset = 8;\n const perpX = dy / distance;\n const perpY = -dx / distance;\n const labelX = midX + perpX * offset;\n const labelY = midY + perpY * offset;\n let angle = Math.atan2(dy, dx) * 180 / Math.PI;\n if (angle > 90 || angle < -90) {\n angle += 180;\n }\n return `rotate(${angle} ${labelX} ${labelY})`;\n }).text((link) => link.label);\n const trendGroup = root.append(\"g\").attr(\"class\", \"wardley-trends\");\n const trendsWithPositions = data.trends.map((trend) => {\n const origin = positions.get(trend.nodeId);\n if (!origin) {\n return null;\n }\n const targetX = projectX(trend.targetX);\n const targetY = projectY(trend.targetY);\n const dx = targetX - origin.x;\n const dy = targetY - origin.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n const shortenBy = configValues.nodeRadius + 2;\n const adjustedX2 = distance > shortenBy ? targetX - dx / distance * shortenBy : targetX;\n const adjustedY2 = distance > shortenBy ? targetY - dy / distance * shortenBy : targetY;\n return {\n origin,\n targetX,\n targetY,\n adjustedX2,\n adjustedY2\n };\n }).filter((trend) => trend !== null);\n trendGroup.selectAll(\"line\").data(trendsWithPositions).enter().append(\"line\").attr(\"class\", \"wardley-trend\").attr(\"x1\", (trend) => trend.origin.x).attr(\"y1\", (trend) => trend.origin.y).attr(\"x2\", (trend) => trend.adjustedX2).attr(\"y2\", (trend) => trend.adjustedY2).attr(\"stroke\", theme.evolutionStroke).attr(\"stroke-width\", 1).attr(\"stroke-dasharray\", \"4 4\").attr(\"marker-end\", `url(#arrow-${id})`);\n const nodesGroup = root.append(\"g\").attr(\"class\", \"wardley-nodes\");\n const nodeEnter = nodesGroup.selectAll(\"g\").data(data.nodes).enter().append(\"g\").attr(\n \"class\",\n (node) => [\"wardley-node\", node.className ? `wardley-node--${node.className}` : \"\"].filter(Boolean).join(\" \")\n );\n nodeEnter.filter((node) => node.sourceStrategy === \"outsource\").append(\"circle\").attr(\"class\", \"wardley-outsource-overlay\").attr(\"cx\", (node) => positions.get(node.id).x).attr(\"cy\", (node) => positions.get(node.id).y).attr(\"r\", configValues.nodeRadius * 2).attr(\"fill\", \"#666\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n nodeEnter.filter((node) => node.sourceStrategy === \"buy\").append(\"circle\").attr(\"class\", \"wardley-buy-overlay\").attr(\"cx\", (node) => positions.get(node.id).x).attr(\"cy\", (node) => positions.get(node.id).y).attr(\"r\", configValues.nodeRadius * 2).attr(\"fill\", \"#ccc\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n nodeEnter.filter((node) => node.sourceStrategy === \"build\").append(\"circle\").attr(\"class\", \"wardley-build-overlay\").attr(\"cx\", (node) => positions.get(node.id).x).attr(\"cy\", (node) => positions.get(node.id).y).attr(\"r\", configValues.nodeRadius * 2).attr(\"fill\", \"#eee\").attr(\"stroke\", \"#000\").attr(\"stroke-width\", 1);\n const marketNodes = nodeEnter.filter((node) => node.sourceStrategy === \"market\");\n marketNodes.append(\"circle\").attr(\"class\", \"wardley-market-overlay\").attr(\"cx\", (node) => positions.get(node.id).x).attr(\"cy\", (node) => positions.get(node.id).y).attr(\"r\", configValues.nodeRadius * 2).attr(\"fill\", \"white\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n nodeEnter.filter(\n (node) => !node.isPipelineParent && node.sourceStrategy !== \"market\" && node.className !== \"anchor\"\n ).append(\"circle\").attr(\"cx\", (node) => positions.get(node.id).x).attr(\"cy\", (node) => positions.get(node.id).y).attr(\"r\", configValues.nodeRadius).attr(\"fill\", theme.componentFill).attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n const smallCircleRadius = configValues.nodeRadius * 0.7;\n const triangleRadius = configValues.nodeRadius * 1.2;\n marketNodes.append(\"line\").attr(\"class\", \"wardley-market-line\").attr(\"x1\", (node) => positions.get(node.id).x).attr(\"y1\", (node) => positions.get(node.id).y - triangleRadius).attr(\"x2\", (node) => positions.get(node.id).x - triangleRadius * Math.cos(Math.PI / 6)).attr(\"y2\", (node) => positions.get(node.id).y + triangleRadius * Math.sin(Math.PI / 6)).attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n marketNodes.append(\"line\").attr(\"class\", \"wardley-market-line\").attr(\"x1\", (node) => positions.get(node.id).x - triangleRadius * Math.cos(Math.PI / 6)).attr(\"y1\", (node) => positions.get(node.id).y + triangleRadius * Math.sin(Math.PI / 6)).attr(\"x2\", (node) => positions.get(node.id).x + triangleRadius * Math.cos(Math.PI / 6)).attr(\"y2\", (node) => positions.get(node.id).y + triangleRadius * Math.sin(Math.PI / 6)).attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n marketNodes.append(\"line\").attr(\"class\", \"wardley-market-line\").attr(\"x1\", (node) => positions.get(node.id).x + triangleRadius * Math.cos(Math.PI / 6)).attr(\"y1\", (node) => positions.get(node.id).y + triangleRadius * Math.sin(Math.PI / 6)).attr(\"x2\", (node) => positions.get(node.id).x).attr(\"y2\", (node) => positions.get(node.id).y - triangleRadius).attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n marketNodes.append(\"circle\").attr(\"class\", \"wardley-market-dot\").attr(\"cx\", (node) => positions.get(node.id).x).attr(\"cy\", (node) => positions.get(node.id).y - triangleRadius).attr(\"r\", smallCircleRadius).attr(\"fill\", \"white\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 2);\n marketNodes.append(\"circle\").attr(\"class\", \"wardley-market-dot\").attr(\"cx\", (node) => positions.get(node.id).x - triangleRadius * Math.cos(Math.PI / 6)).attr(\"cy\", (node) => positions.get(node.id).y + triangleRadius * Math.sin(Math.PI / 6)).attr(\"r\", smallCircleRadius).attr(\"fill\", \"white\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 2);\n marketNodes.append(\"circle\").attr(\"class\", \"wardley-market-dot\").attr(\"cx\", (node) => positions.get(node.id).x + triangleRadius * Math.cos(Math.PI / 6)).attr(\"cy\", (node) => positions.get(node.id).y + triangleRadius * Math.sin(Math.PI / 6)).attr(\"r\", smallCircleRadius).attr(\"fill\", \"white\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 2);\n nodeEnter.filter((node) => node.isPipelineParent === true).append(\"rect\").attr(\"x\", (node) => positions.get(node.id).x - squareSize / 2).attr(\"y\", (node) => positions.get(node.id).y - squareSize / 2).attr(\"width\", squareSize).attr(\"height\", squareSize).attr(\"fill\", theme.componentFill).attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n nodeEnter.filter((node) => node.inertia === true).append(\"line\").attr(\"class\", \"wardley-inertia\").attr(\"x1\", (node) => {\n const pos = positions.get(node.id);\n let offset = node.isPipelineParent ? squareSize / 2 + 15 : configValues.nodeRadius + 15;\n if (node.sourceStrategy) {\n offset += configValues.nodeRadius + 10;\n }\n return pos.x + offset;\n }).attr(\"y1\", (node) => {\n const pos = positions.get(node.id);\n const lineHeight = node.isPipelineParent ? squareSize : configValues.nodeRadius * 2;\n return pos.y - lineHeight / 2;\n }).attr(\"x2\", (node) => {\n const pos = positions.get(node.id);\n let offset = node.isPipelineParent ? squareSize / 2 + 15 : configValues.nodeRadius + 15;\n if (node.sourceStrategy) {\n offset += configValues.nodeRadius + 10;\n }\n return pos.x + offset;\n }).attr(\"y2\", (node) => {\n const pos = positions.get(node.id);\n const lineHeight = node.isPipelineParent ? squareSize : configValues.nodeRadius * 2;\n return pos.y + lineHeight / 2;\n }).attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 6);\n nodeEnter.append(\"text\").attr(\"x\", (node) => {\n const pos = positions.get(node.id);\n if (node.className === \"anchor\") {\n return node.labelOffsetX !== void 0 ? pos.x + node.labelOffsetX : pos.x;\n }\n let defaultOffset = configValues.nodeLabelOffset;\n if (node.sourceStrategy && node.labelOffsetX === void 0) {\n defaultOffset += 10;\n }\n const customOffset = node.labelOffsetX ?? defaultOffset;\n return pos.x + customOffset;\n }).attr(\"y\", (node) => {\n const pos = positions.get(node.id);\n if (node.className === \"anchor\") {\n return node.labelOffsetY !== void 0 ? pos.y + node.labelOffsetY : pos.y - 3;\n }\n let defaultOffset = -configValues.nodeLabelOffset;\n if (node.sourceStrategy && node.labelOffsetY === void 0) {\n defaultOffset -= 10;\n }\n const customOffset = node.labelOffsetY ?? defaultOffset;\n return pos.y + customOffset;\n }).attr(\"class\", \"wardley-node-label\").attr(\"fill\", (node) => {\n if (node.className === \"evolved\") {\n return theme.evolutionStroke;\n }\n if (node.className === \"anchor\") {\n return \"#000\";\n }\n return theme.componentLabelColor;\n }).attr(\"font-size\", configValues.labelFontSize).attr(\"font-weight\", (node) => node.className === \"anchor\" ? \"bold\" : \"normal\").attr(\"text-anchor\", (node) => node.className === \"anchor\" ? \"middle\" : \"start\").attr(\"dominant-baseline\", (node) => node.className === \"anchor\" ? \"middle\" : \"auto\").text((node) => node.label);\n if (data.annotations.length > 0) {\n const annotationsGroup = root.append(\"g\").attr(\"class\", \"wardley-annotations\");\n data.annotations.forEach((annotation) => {\n const projectedCoords = annotation.coordinates.map((coord) => ({\n x: projectX(coord.x),\n y: projectY(coord.y)\n }));\n if (projectedCoords.length > 1) {\n for (let i = 0; i < projectedCoords.length - 1; i++) {\n annotationsGroup.append(\"line\").attr(\"class\", \"wardley-annotation-line\").attr(\"x1\", projectedCoords[i].x).attr(\"y1\", projectedCoords[i].y).attr(\"x2\", projectedCoords[i + 1].x).attr(\"y2\", projectedCoords[i + 1].y).attr(\"stroke\", theme.axisColor).attr(\"stroke-width\", 1.5).attr(\"stroke-dasharray\", \"4 4\");\n }\n }\n projectedCoords.forEach((coord) => {\n const annotationNode = annotationsGroup.append(\"g\").attr(\"class\", \"wardley-annotation\");\n annotationNode.append(\"circle\").attr(\"cx\", coord.x).attr(\"cy\", coord.y).attr(\"r\", 10).attr(\"fill\", \"white\").attr(\"stroke\", theme.axisColor).attr(\"stroke-width\", 1.5);\n annotationNode.append(\"text\").attr(\"x\", coord.x).attr(\"y\", coord.y).attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"central\").attr(\"font-size\", 10).attr(\"fill\", theme.axisTextColor).attr(\"font-weight\", \"bold\").text(annotation.number);\n });\n });\n if (data.annotationsBox) {\n let boxX = projectX(data.annotationsBox.x);\n let boxY = projectY(data.annotationsBox.y);\n const padding = 10;\n const lineHeight = 16;\n const fontSize = 11;\n const textBoxGroup = annotationsGroup.append(\"g\").attr(\"class\", \"wardley-annotations-box\");\n const sortedAnnotations = [...data.annotations].filter((a) => a.text).sort((a, b) => a.number - b.number);\n const textElements = [];\n sortedAnnotations.forEach((annotation, idx) => {\n const text2 = textBoxGroup.append(\"text\").attr(\"x\", boxX + padding).attr(\"y\", boxY + padding + (idx + 1) * lineHeight).attr(\"font-size\", fontSize).attr(\"fill\", theme.axisTextColor).attr(\"text-anchor\", \"start\").attr(\"dominant-baseline\", \"middle\").text(`${annotation.number}. ${annotation.text}`);\n textElements.push(text2);\n });\n if (textElements.length > 0) {\n let maxWidth = 0;\n let maxHeight = 0;\n textElements.forEach((text2) => {\n const textNode = text2.node();\n const textWidth = textNode.getComputedTextLength();\n maxWidth = Math.max(maxWidth, textWidth);\n const bbox = textNode.getBBox();\n maxHeight = Math.max(maxHeight, bbox.height);\n });\n const boxWidth = maxWidth + padding * 2 + 105;\n const boxHeight = sortedAnnotations.length * lineHeight + padding * 2 + maxHeight / 2;\n const minX = configValues.padding;\n const maxX = width - configValues.padding - boxWidth;\n const minY = configValues.padding;\n const maxY = height - configValues.padding - boxHeight;\n boxX = Math.max(minX, Math.min(boxX, maxX));\n boxY = Math.max(minY, Math.min(boxY, maxY));\n textElements.forEach((text2, idx) => {\n text2.attr(\"x\", boxX + padding).attr(\"y\", boxY + padding + (idx + 1) * lineHeight);\n });\n textBoxGroup.insert(\"rect\", \"text\").attr(\"x\", boxX).attr(\"y\", boxY).attr(\"width\", boxWidth).attr(\"height\", boxHeight).attr(\"fill\", \"white\").attr(\"stroke\", theme.axisColor).attr(\"stroke-width\", 1.5).attr(\"rx\", 4).attr(\"ry\", 4);\n }\n }\n }\n if (data.notes.length > 0) {\n const notesGroup = root.append(\"g\").attr(\"class\", \"wardley-notes\");\n data.notes.forEach((note) => {\n const noteX = projectX(note.x);\n const noteY = projectY(note.y);\n notesGroup.append(\"text\").attr(\"x\", noteX).attr(\"y\", noteY).attr(\"text-anchor\", \"start\").attr(\"font-size\", 11).attr(\"fill\", theme.axisTextColor).attr(\"font-weight\", \"bold\").text(note.text);\n });\n }\n if (data.accelerators.length > 0) {\n const acceleratorsGroup = root.append(\"g\").attr(\"class\", \"wardley-accelerators\");\n data.accelerators.forEach((accelerator) => {\n const accX = projectX(accelerator.x);\n const accY = projectY(accelerator.y);\n const arrowWidth = 60;\n const arrowHeight = 30;\n const arrowHeadWidth = 20;\n const arrowPath = `\n M ${accX} ${accY - arrowHeight / 2}\n L ${accX + arrowWidth - arrowHeadWidth} ${accY - arrowHeight / 2}\n L ${accX + arrowWidth - arrowHeadWidth} ${accY - arrowHeight / 2 - 8}\n L ${accX + arrowWidth} ${accY}\n L ${accX + arrowWidth - arrowHeadWidth} ${accY + arrowHeight / 2 + 8}\n L ${accX + arrowWidth - arrowHeadWidth} ${accY + arrowHeight / 2}\n L ${accX} ${accY + arrowHeight / 2}\n Z\n `;\n acceleratorsGroup.append(\"path\").attr(\"d\", arrowPath).attr(\"fill\", \"white\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n acceleratorsGroup.append(\"text\").attr(\"x\", accX + arrowWidth / 2).attr(\"y\", accY + arrowHeight / 2 + 15).attr(\"text-anchor\", \"middle\").attr(\"font-size\", 10).attr(\"fill\", theme.axisTextColor).attr(\"font-weight\", \"bold\").text(accelerator.name);\n });\n }\n if (data.deaccelerators.length > 0) {\n const deacceleratorsGroup = root.append(\"g\").attr(\"class\", \"wardley-deaccelerators\");\n data.deaccelerators.forEach((deaccelerator) => {\n const decX = projectX(deaccelerator.x);\n const decY = projectY(deaccelerator.y);\n const arrowWidth = 60;\n const arrowHeight = 30;\n const arrowHeadWidth = 20;\n const arrowPath = `\n M ${decX + arrowWidth} ${decY - arrowHeight / 2}\n L ${decX + arrowHeadWidth} ${decY - arrowHeight / 2}\n L ${decX + arrowHeadWidth} ${decY - arrowHeight / 2 - 8}\n L ${decX} ${decY}\n L ${decX + arrowHeadWidth} ${decY + arrowHeight / 2 + 8}\n L ${decX + arrowHeadWidth} ${decY + arrowHeight / 2}\n L ${decX + arrowWidth} ${decY + arrowHeight / 2}\n Z\n `;\n deacceleratorsGroup.append(\"path\").attr(\"d\", arrowPath).attr(\"fill\", \"white\").attr(\"stroke\", theme.componentStroke).attr(\"stroke-width\", 1);\n deacceleratorsGroup.append(\"text\").attr(\"x\", decX + arrowWidth / 2).attr(\"y\", decY + arrowHeight / 2 + 15).attr(\"text-anchor\", \"middle\").attr(\"font-size\", 10).attr(\"fill\", theme.axisTextColor).attr(\"font-weight\", \"bold\").text(deaccelerator.name);\n });\n }\n}, \"draw\");\nvar wardleyRenderer_default = {\n draw\n};\n\n// src/diagrams/wardley/styles.ts\nvar styles = /* @__PURE__ */ __name(({\n wardley\n} = {}) => {\n const defaultThemeVariables = getThemeVariables();\n const currentConfig = getConfig();\n const themeVariables = cleanAndMerge(defaultThemeVariables, currentConfig.themeVariables);\n const w = cleanAndMerge(themeVariables.wardley, wardley);\n return `\n .wardley-background {\n fill: ${w.backgroundColor};\n }\n .wardley-axes line, .wardley-axes path {\n stroke: ${w.axisColor};\n }\n .wardley-axis-label {\n fill: ${w.axisTextColor};\n }\n .wardley-stage-label {\n fill: ${w.axisTextColor};\n }\n .wardley-grid line {\n stroke: ${w.gridColor};\n }\n .wardley-node circle {\n fill: ${w.componentFill};\n stroke: ${w.componentStroke};\n }\n .wardley-node-label {\n fill: ${w.componentLabelColor};\n }\n .wardley-link {\n stroke: ${w.linkStroke};\n }\n .wardley-link--dashed {\n stroke-dasharray: 4 4;\n }\n .wardley-link-label {\n fill: ${w.axisTextColor};\n }\n .wardley-trend line {\n stroke: ${w.evolutionStroke};\n }\n .wardley-annotation-line {\n stroke: ${w.annotationStroke};\n }\n .wardley-annotation circle {\n fill: ${w.annotationFill};\n stroke: ${w.annotationStroke};\n }\n .wardley-annotation text {\n fill: ${w.annotationTextColor};\n }\n .wardley-annotations-box rect {\n fill: ${w.annotationFill};\n stroke: ${w.annotationStroke};\n }\n .wardley-annotations-box text {\n fill: ${w.annotationTextColor};\n }\n .wardley-pipeline-box {\n stroke: ${w.componentStroke};\n }\n .wardley-notes text {\n fill: ${w.axisTextColor};\n }\n `;\n}, \"styles\");\n\n// src/diagrams/wardley/wardleyDiagram.ts\nvar diagram = {\n parser,\n db: wardleyDb_default,\n renderer: wardleyRenderer_default,\n styles\n};\nexport {\n diagram\n};\n"],"names":["toPercent","__name","value","context","normalized","toCoordinates","visibility","evolution","getFlowFromPort","port","extractFlowFromArrow","arrow","flowLabel","populateDb","ast","db","populateCommonDb","stages","stage","stageBoundaries","anchor","coords","component","labelOffsetX","labelOffsetY","sourceStrategy","note","pipeline","parentNode","parentY","componentId","x","link","isDashed","flow","arrowFlow","annotation","label","evolve","node","target","annotationsBox","accelerator","deaccelerator","parser","input","parse","log","WardleyBuilder","_a","existing","merged","trend","nodeId","pipelineNodeId","y","partial","width","height","id","name","nodes","builder","getConfig3","getConfig2","addNode","className","inertia","addLink","sourceId","targetId","dashed","addTrend","targetX","targetY","addAnnotation","number","coordinates","text","addNote","addAccelerator","addDeaccelerator","setAnnotationsBox","setSize","startPipeline","addPipelineComponent","updateAxes","getNode","resolveNodeId","getWardleyData","clear2","clear","wardleyDb_default","setAccTitle","getAccTitle","setDiagramTitle","getDiagramTitle","getAccDescription","setAccDescription","DEFAULT_STAGES","getTheme","themeVariables","getConfigValues","wardleyConfig","draw","_version","diagObj","configValues","theme","squareSize","data","title","svg","selectSvgElement","configureSvgSize","root","defs","chartWidth","chartHeight","projectX","projectY","axisGroup","xLabel","yLabel","stageGroup","boundaries","stagePositions","prevBoundary","boundary","stageWidth","_","index","pos","startX","endX","centerX","gridGroup","i","ratio","positions","pipelineGroup","pipelineLinksGroup","sortedComponents","id2","n","c","a","b","current","next","minX","maxX","height2","boxTop","parentPos","linksGroup","pipelineMap","validLinks","sourcePos","targetPos","radius","dx","dy","distance","midX","offset","perpX","midY","perpY","labelX","labelY","angle","trendGroup","trendsWithPositions","origin","shortenBy","adjustedX2","adjustedY2","nodeEnter","marketNodes","smallCircleRadius","triangleRadius","lineHeight","defaultOffset","customOffset","annotationsGroup","projectedCoords","coord","annotationNode","boxX","boxY","padding","fontSize","textBoxGroup","sortedAnnotations","textElements","idx","text2","maxWidth","maxHeight","textNode","textWidth","bbox","boxWidth","boxHeight","minY","maxY","notesGroup","noteX","noteY","acceleratorsGroup","accX","accY","arrowWidth","arrowHeight","arrowHeadWidth","arrowPath","deacceleratorsGroup","decX","decY","wardleyRenderer_default","styles","wardley","defaultThemeVariables","getThemeVariables","currentConfig","getConfig","cleanAndMerge","w","diagram"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,8 +1,8 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./extractHeadings-DLMipVtZ.cjs"),he=require("./init-CHZsXQcr.cjs"),le=require("./ordinal-CagbB1m8.cjs"),Bt=require("./linear-Dva-3TNI.cjs");function ce(i,t,e){i=+i,t=+t,e=(n=arguments.length)<2?(t=i,i=0,1):n<3?1:+e;for(var s=-1,n=Math.max(0,Math.ceil((t-i)/e))|0,o=new Array(n);++s<n;)o[s]=i+s*e;return o}function At(){var i=le.ordinal().unknown(void 0),t=i.domain,e=i.range,s=0,n=1,o,l,f=!1,d=0,k=0,T=.5;delete i.unknown;function R(){var _=t().length,E=n<s,L=E?n:s,P=E?s:n;o=(P-L)/Math.max(1,_-d+k*2),f&&(o=Math.floor(o)),L+=(P-L-o*(_-d))*T,l=o*(1-d),f&&(L=Math.round(L),l=Math.round(l));var M=ce(_).map(function(m){return L+o*m});return e(E?M.reverse():M)}return i.domain=function(_){return arguments.length?(t(_),R()):t()},i.range=function(_){return arguments.length?([s,n]=_,s=+s,n=+n,R()):[s,n]},i.rangeRound=function(_){return[s,n]=_,s=+s,n=+n,f=!0,R()},i.bandwidth=function(){return l},i.step=function(){return o},i.round=function(_){return arguments.length?(f=!!_,R()):f},i.padding=function(_){return arguments.length?(d=Math.min(1,k=+_),R()):d},i.paddingInner=function(_){return arguments.length?(d=Math.min(1,_),R()):d},i.paddingOuter=function(_){return arguments.length?(k=+_,R()):k},i.align=function(_){return arguments.length?(T=Math.max(0,Math.min(1,_)),R()):T},i.copy=function(){return At(t(),[s,n]).round(f).paddingInner(d).paddingOuter(k).align(T)},he.initRange.apply(R(),arguments)}var wt=(function(){var i=a.__name(function(F,h,u,g){for(u=u||{},g=F.length;g--;u[F[g]]=h);return u},"o"),t=[1,10,12,14,16,18,19,21,23],e=[2,6],s=[1,3],n=[1,5],o=[1,6],l=[1,7],f=[1,5,10,12,14,16,18,19,21,23,36,37,38],d=[1,25],k=[1,26],T=[1,28],R=[1,29],_=[1,30],E=[1,31],L=[1,32],P=[1,33],M=[1,34],m=[1,35],D=[1,36],c=[1,37],V=[1,43],W=[1,42],X=[1,47],Y=[1,50],C=[1,10,12,14,16,18,19,21,23,36,37,38],H=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38],b=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38,42,43,44,45,46,47,48,49,50,51],A=[1,65],B=[26,28],S={trace:a.__name(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,dataPoints:25,SQUARE_BRACES_END:26,dataPoint:27,COMMA:28,NUMBER_WITH_DECIMAL:29,STR:30,xAxisData:31,bandData:32,ARROW_DELIMITER:33,commaSeparatedTexts:34,yAxisData:35,NEWLINE:36,SEMI:37,EOF:38,alphaNum:39,MD_STR:40,alphaNumToken:41,AMP:42,NUM:43,ALPHA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,MINUS:50,UNDERSCORE:51,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",28:"COMMA",29:"NUMBER_WITH_DECIMAL",30:"STR",33:"ARROW_DELIMITER",36:"NEWLINE",37:"SEMI",38:"EOF",40:"MD_STR",42:"AMP",43:"NUM",44:"ALPHA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"MINUS",51:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[27,2],[27,1],[13,1],[13,2],[13,1],[31,1],[31,3],[32,3],[34,3],[34,1],[15,1],[15,2],[15,1],[35,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[39,1],[39,2],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1]],performAction:a.__name(function(h,u,g,x,w,r,rt){var p=r.length-1;switch(w){case 5:x.setOrientation(r[p]);break;case 9:x.setDiagramTitle(r[p].text.trim());break;case 12:x.setLineData({text:"",type:"text"},r[p]);break;case 13:x.setLineData(r[p-1],r[p]);break;case 14:x.setBarData({text:"",type:"text"},r[p]);break;case 15:x.setBarData(r[p-1],r[p]);break;case 16:this.$=r[p].trim(),x.setAccTitle(this.$);break;case 17:case 18:this.$=r[p].trim(),x.setAccDescription(this.$);break;case 19:this.$=r[p-1];break;case 20:case 30:this.$=[r[p-2],...r[p]];break;case 21:case 31:this.$=[r[p]];break;case 22:this.$={value:Number(r[p-1]),label:r[p]};break;case 23:this.$={value:Number(r[p]),label:""};break;case 24:x.setXAxisTitle(r[p]);break;case 25:x.setXAxisTitle(r[p-1]);break;case 26:x.setXAxisTitle({type:"text",text:""});break;case 27:x.setXAxisBand(r[p]);break;case 28:x.setXAxisRangeData(Number(r[p-2]),Number(r[p]));break;case 29:this.$=r[p-1];break;case 32:x.setYAxisTitle(r[p]);break;case 33:x.setYAxisTitle(r[p-1]);break;case 34:x.setYAxisTitle({type:"text",text:""});break;case 35:x.setYAxisRangeData(Number(r[p-2]),Number(r[p]));break;case 39:this.$={text:r[p],type:"text"};break;case 40:this.$={text:r[p],type:"text"};break;case 41:this.$={text:r[p],type:"markdown"};break;case 42:this.$=r[p];break;case 43:this.$=r[p-1]+""+r[p];break}},"anonymous"),table:[i(t,e,{3:1,4:2,7:4,5:s,36:n,37:o,38:l}),{1:[3]},i(t,e,{4:2,7:4,3:8,5:s,36:n,37:o,38:l}),i(t,e,{4:2,7:4,6:9,3:10,5:s,8:[1,11],36:n,37:o,38:l}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},i(f,[2,36]),i(f,[2,37]),i(f,[2,38]),{1:[2,1]},i(t,e,{4:2,7:4,3:21,5:s,36:n,37:o,38:l}),{1:[2,3]},i(f,[2,5]),i(t,[2,7],{4:22,36:n,37:o,38:l}),{11:23,30:d,39:24,40:k,41:27,42:T,43:R,44:_,45:E,46:L,47:P,48:M,49:m,50:D,51:c},{11:39,13:38,24:V,29:W,30:d,31:40,32:41,39:24,40:k,41:27,42:T,43:R,44:_,45:E,46:L,47:P,48:M,49:m,50:D,51:c},{11:45,15:44,29:X,30:d,35:46,39:24,40:k,41:27,42:T,43:R,44:_,45:E,46:L,47:P,48:M,49:m,50:D,51:c},{11:49,17:48,24:Y,30:d,39:24,40:k,41:27,42:T,43:R,44:_,45:E,46:L,47:P,48:M,49:m,50:D,51:c},{11:52,17:51,24:Y,30:d,39:24,40:k,41:27,42:T,43:R,44:_,45:E,46:L,47:P,48:M,49:m,50:D,51:c},{20:[1,53]},{22:[1,54]},i(C,[2,18]),{1:[2,2]},i(C,[2,8]),i(C,[2,9]),i(H,[2,39],{41:55,42:T,43:R,44:_,45:E,46:L,47:P,48:M,49:m,50:D,51:c}),i(H,[2,40]),i(H,[2,41]),i(b,[2,42]),i(b,[2,44]),i(b,[2,45]),i(b,[2,46]),i(b,[2,47]),i(b,[2,48]),i(b,[2,49]),i(b,[2,50]),i(b,[2,51]),i(b,[2,52]),i(b,[2,53]),i(C,[2,10]),i(C,[2,24],{32:41,31:56,24:V,29:W}),i(C,[2,26]),i(C,[2,27]),{33:[1,57]},{11:59,30:d,34:58,39:24,40:k,41:27,42:T,43:R,44:_,45:E,46:L,47:P,48:M,49:m,50:D,51:c},i(C,[2,11]),i(C,[2,32],{35:60,29:X}),i(C,[2,34]),{33:[1,61]},i(C,[2,12]),{17:62,24:Y},{25:63,27:64,29:A},i(C,[2,14]),{17:66,24:Y},i(C,[2,16]),i(C,[2,17]),i(b,[2,43]),i(C,[2,25]),{29:[1,67]},{26:[1,68]},{26:[2,31],28:[1,69]},i(C,[2,33]),{29:[1,70]},i(C,[2,13]),{26:[1,71]},{26:[2,21],28:[1,72]},i(B,[2,23],{30:[1,73]}),i(C,[2,15]),i(C,[2,28]),i(C,[2,29]),{11:59,30:d,34:74,39:24,40:k,41:27,42:T,43:R,44:_,45:E,46:L,47:P,48:M,49:m,50:D,51:c},i(C,[2,35]),i(C,[2,19]),{25:75,27:64,29:A},i(B,[2,22]),{26:[2,30]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],74:[2,30],75:[2,20]},parseError:a.__name(function(h,u){if(u.recoverable)this.trace(h);else{var g=new Error(h);throw g.hash=u,g}},"parseError"),parse:a.__name(function(h){var u=this,g=[0],x=[],w=[null],r=[],rt=this.table,p="",gt=0,Mt=0,ne=2,It=1,ae=r.slice.call(arguments,1),v=Object.create(this.lexer),U={yy:{}};for(var mt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,mt)&&(U.yy[mt]=this.yy[mt]);v.setInput(h,U.yy),U.yy.lexer=v,U.yy.parser=this,typeof v.yylloc>"u"&&(v.yylloc={});var yt=v.yylloc;r.push(yt);var oe=v.options&&v.options.ranges;typeof U.yy.parseError=="function"?this.parseError=U.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function re(z){g.length=g.length-2*z,w.length=w.length-z,r.length=r.length-z}a.__name(re,"popStack");function zt(){var z;return z=x.pop()||v.lex()||It,typeof z!="number"&&(z instanceof Array&&(x=z,z=x.pop()),z=u.symbols_[z]||z),z}a.__name(zt,"lex");for(var I,$,O,_t,j={},xt,N,Vt,dt;;){if($=g[g.length-1],this.defaultActions[$]?O=this.defaultActions[$]:((I===null||typeof I>"u")&&(I=zt()),O=rt[$]&&rt[$][I]),typeof O>"u"||!O.length||!O[0]){var bt="";dt=[];for(xt in rt[$])this.terminals_[xt]&&xt>ne&&dt.push("'"+this.terminals_[xt]+"'");v.showPosition?bt="Parse error on line "+(gt+1)+`:
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./extractHeadings-BrLI2qQF.cjs"),he=require("./init-CHZsXQcr.cjs"),le=require("./ordinal-CagbB1m8.cjs"),Bt=require("./linear-B9JMAP1U.cjs");function ce(i,t,e){i=+i,t=+t,e=(n=arguments.length)<2?(t=i,i=0,1):n<3?1:+e;for(var s=-1,n=Math.max(0,Math.ceil((t-i)/e))|0,o=new Array(n);++s<n;)o[s]=i+s*e;return o}function At(){var i=le.ordinal().unknown(void 0),t=i.domain,e=i.range,s=0,n=1,o,l,f=!1,d=0,k=0,T=.5;delete i.unknown;function R(){var _=t().length,E=n<s,L=E?n:s,P=E?s:n;o=(P-L)/Math.max(1,_-d+k*2),f&&(o=Math.floor(o)),L+=(P-L-o*(_-d))*T,l=o*(1-d),f&&(L=Math.round(L),l=Math.round(l));var M=ce(_).map(function(m){return L+o*m});return e(E?M.reverse():M)}return i.domain=function(_){return arguments.length?(t(_),R()):t()},i.range=function(_){return arguments.length?([s,n]=_,s=+s,n=+n,R()):[s,n]},i.rangeRound=function(_){return[s,n]=_,s=+s,n=+n,f=!0,R()},i.bandwidth=function(){return l},i.step=function(){return o},i.round=function(_){return arguments.length?(f=!!_,R()):f},i.padding=function(_){return arguments.length?(d=Math.min(1,k=+_),R()):d},i.paddingInner=function(_){return arguments.length?(d=Math.min(1,_),R()):d},i.paddingOuter=function(_){return arguments.length?(k=+_,R()):k},i.align=function(_){return arguments.length?(T=Math.max(0,Math.min(1,_)),R()):T},i.copy=function(){return At(t(),[s,n]).round(f).paddingInner(d).paddingOuter(k).align(T)},he.initRange.apply(R(),arguments)}var wt=(function(){var i=a.__name(function(F,h,u,g){for(u=u||{},g=F.length;g--;u[F[g]]=h);return u},"o"),t=[1,10,12,14,16,18,19,21,23],e=[2,6],s=[1,3],n=[1,5],o=[1,6],l=[1,7],f=[1,5,10,12,14,16,18,19,21,23,36,37,38],d=[1,25],k=[1,26],T=[1,28],R=[1,29],_=[1,30],E=[1,31],L=[1,32],P=[1,33],M=[1,34],m=[1,35],D=[1,36],c=[1,37],V=[1,43],W=[1,42],X=[1,47],Y=[1,50],C=[1,10,12,14,16,18,19,21,23,36,37,38],H=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38],b=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38,42,43,44,45,46,47,48,49,50,51],A=[1,65],B=[26,28],S={trace:a.__name(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,dataPoints:25,SQUARE_BRACES_END:26,dataPoint:27,COMMA:28,NUMBER_WITH_DECIMAL:29,STR:30,xAxisData:31,bandData:32,ARROW_DELIMITER:33,commaSeparatedTexts:34,yAxisData:35,NEWLINE:36,SEMI:37,EOF:38,alphaNum:39,MD_STR:40,alphaNumToken:41,AMP:42,NUM:43,ALPHA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,MINUS:50,UNDERSCORE:51,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",28:"COMMA",29:"NUMBER_WITH_DECIMAL",30:"STR",33:"ARROW_DELIMITER",36:"NEWLINE",37:"SEMI",38:"EOF",40:"MD_STR",42:"AMP",43:"NUM",44:"ALPHA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"MINUS",51:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[27,2],[27,1],[13,1],[13,2],[13,1],[31,1],[31,3],[32,3],[34,3],[34,1],[15,1],[15,2],[15,1],[35,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[39,1],[39,2],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1]],performAction:a.__name(function(h,u,g,x,w,r,rt){var p=r.length-1;switch(w){case 5:x.setOrientation(r[p]);break;case 9:x.setDiagramTitle(r[p].text.trim());break;case 12:x.setLineData({text:"",type:"text"},r[p]);break;case 13:x.setLineData(r[p-1],r[p]);break;case 14:x.setBarData({text:"",type:"text"},r[p]);break;case 15:x.setBarData(r[p-1],r[p]);break;case 16:this.$=r[p].trim(),x.setAccTitle(this.$);break;case 17:case 18:this.$=r[p].trim(),x.setAccDescription(this.$);break;case 19:this.$=r[p-1];break;case 20:case 30:this.$=[r[p-2],...r[p]];break;case 21:case 31:this.$=[r[p]];break;case 22:this.$={value:Number(r[p-1]),label:r[p]};break;case 23:this.$={value:Number(r[p]),label:""};break;case 24:x.setXAxisTitle(r[p]);break;case 25:x.setXAxisTitle(r[p-1]);break;case 26:x.setXAxisTitle({type:"text",text:""});break;case 27:x.setXAxisBand(r[p]);break;case 28:x.setXAxisRangeData(Number(r[p-2]),Number(r[p]));break;case 29:this.$=r[p-1];break;case 32:x.setYAxisTitle(r[p]);break;case 33:x.setYAxisTitle(r[p-1]);break;case 34:x.setYAxisTitle({type:"text",text:""});break;case 35:x.setYAxisRangeData(Number(r[p-2]),Number(r[p]));break;case 39:this.$={text:r[p],type:"text"};break;case 40:this.$={text:r[p],type:"text"};break;case 41:this.$={text:r[p],type:"markdown"};break;case 42:this.$=r[p];break;case 43:this.$=r[p-1]+""+r[p];break}},"anonymous"),table:[i(t,e,{3:1,4:2,7:4,5:s,36:n,37:o,38:l}),{1:[3]},i(t,e,{4:2,7:4,3:8,5:s,36:n,37:o,38:l}),i(t,e,{4:2,7:4,6:9,3:10,5:s,8:[1,11],36:n,37:o,38:l}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},i(f,[2,36]),i(f,[2,37]),i(f,[2,38]),{1:[2,1]},i(t,e,{4:2,7:4,3:21,5:s,36:n,37:o,38:l}),{1:[2,3]},i(f,[2,5]),i(t,[2,7],{4:22,36:n,37:o,38:l}),{11:23,30:d,39:24,40:k,41:27,42:T,43:R,44:_,45:E,46:L,47:P,48:M,49:m,50:D,51:c},{11:39,13:38,24:V,29:W,30:d,31:40,32:41,39:24,40:k,41:27,42:T,43:R,44:_,45:E,46:L,47:P,48:M,49:m,50:D,51:c},{11:45,15:44,29:X,30:d,35:46,39:24,40:k,41:27,42:T,43:R,44:_,45:E,46:L,47:P,48:M,49:m,50:D,51:c},{11:49,17:48,24:Y,30:d,39:24,40:k,41:27,42:T,43:R,44:_,45:E,46:L,47:P,48:M,49:m,50:D,51:c},{11:52,17:51,24:Y,30:d,39:24,40:k,41:27,42:T,43:R,44:_,45:E,46:L,47:P,48:M,49:m,50:D,51:c},{20:[1,53]},{22:[1,54]},i(C,[2,18]),{1:[2,2]},i(C,[2,8]),i(C,[2,9]),i(H,[2,39],{41:55,42:T,43:R,44:_,45:E,46:L,47:P,48:M,49:m,50:D,51:c}),i(H,[2,40]),i(H,[2,41]),i(b,[2,42]),i(b,[2,44]),i(b,[2,45]),i(b,[2,46]),i(b,[2,47]),i(b,[2,48]),i(b,[2,49]),i(b,[2,50]),i(b,[2,51]),i(b,[2,52]),i(b,[2,53]),i(C,[2,10]),i(C,[2,24],{32:41,31:56,24:V,29:W}),i(C,[2,26]),i(C,[2,27]),{33:[1,57]},{11:59,30:d,34:58,39:24,40:k,41:27,42:T,43:R,44:_,45:E,46:L,47:P,48:M,49:m,50:D,51:c},i(C,[2,11]),i(C,[2,32],{35:60,29:X}),i(C,[2,34]),{33:[1,61]},i(C,[2,12]),{17:62,24:Y},{25:63,27:64,29:A},i(C,[2,14]),{17:66,24:Y},i(C,[2,16]),i(C,[2,17]),i(b,[2,43]),i(C,[2,25]),{29:[1,67]},{26:[1,68]},{26:[2,31],28:[1,69]},i(C,[2,33]),{29:[1,70]},i(C,[2,13]),{26:[1,71]},{26:[2,21],28:[1,72]},i(B,[2,23],{30:[1,73]}),i(C,[2,15]),i(C,[2,28]),i(C,[2,29]),{11:59,30:d,34:74,39:24,40:k,41:27,42:T,43:R,44:_,45:E,46:L,47:P,48:M,49:m,50:D,51:c},i(C,[2,35]),i(C,[2,19]),{25:75,27:64,29:A},i(B,[2,22]),{26:[2,30]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],74:[2,30],75:[2,20]},parseError:a.__name(function(h,u){if(u.recoverable)this.trace(h);else{var g=new Error(h);throw g.hash=u,g}},"parseError"),parse:a.__name(function(h){var u=this,g=[0],x=[],w=[null],r=[],rt=this.table,p="",gt=0,Mt=0,ne=2,It=1,ae=r.slice.call(arguments,1),v=Object.create(this.lexer),U={yy:{}};for(var mt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,mt)&&(U.yy[mt]=this.yy[mt]);v.setInput(h,U.yy),U.yy.lexer=v,U.yy.parser=this,typeof v.yylloc>"u"&&(v.yylloc={});var yt=v.yylloc;r.push(yt);var oe=v.options&&v.options.ranges;typeof U.yy.parseError=="function"?this.parseError=U.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function re(z){g.length=g.length-2*z,w.length=w.length-z,r.length=r.length-z}a.__name(re,"popStack");function zt(){var z;return z=x.pop()||v.lex()||It,typeof z!="number"&&(z instanceof Array&&(x=z,z=x.pop()),z=u.symbols_[z]||z),z}a.__name(zt,"lex");for(var I,$,O,_t,j={},xt,N,Vt,dt;;){if($=g[g.length-1],this.defaultActions[$]?O=this.defaultActions[$]:((I===null||typeof I>"u")&&(I=zt()),O=rt[$]&&rt[$][I]),typeof O>"u"||!O.length||!O[0]){var bt="";dt=[];for(xt in rt[$])this.terminals_[xt]&&xt>ne&&dt.push("'"+this.terminals_[xt]+"'");v.showPosition?bt="Parse error on line "+(gt+1)+`:
2
2
  `+v.showPosition()+`
3
3
  Expecting `+dt.join(", ")+", got '"+(this.terminals_[I]||I)+"'":bt="Parse error on line "+(gt+1)+": Unexpected "+(I==It?"end of input":"'"+(this.terminals_[I]||I)+"'"),this.parseError(bt,{text:v.match,token:this.terminals_[I]||I,line:v.yylineno,loc:yt,expected:dt})}if(O[0]instanceof Array&&O.length>1)throw new Error("Parse Error: multiple actions possible at state: "+$+", token: "+I);switch(O[0]){case 1:g.push(I),w.push(v.yytext),r.push(v.yylloc),g.push(O[1]),I=null,Mt=v.yyleng,p=v.yytext,gt=v.yylineno,yt=v.yylloc;break;case 2:if(N=this.productions_[O[1]][1],j.$=w[w.length-N],j._$={first_line:r[r.length-(N||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(N||1)].first_column,last_column:r[r.length-1].last_column},oe&&(j._$.range=[r[r.length-(N||1)].range[0],r[r.length-1].range[1]]),_t=this.performAction.apply(j,[p,Mt,gt,U.yy,O[1],w,r].concat(ae)),typeof _t<"u")return _t;N&&(g=g.slice(0,-1*N*2),w=w.slice(0,-1*N),r=r.slice(0,-1*N)),g.push(this.productions_[O[1]][0]),w.push(j.$),r.push(j._$),Vt=rt[g[g.length-2]][g[g.length-1]],g.push(Vt);break;case 3:return!0}}return!0},"parse")},ot=(function(){var F={EOF:1,parseError:a.__name(function(u,g){if(this.yy.parser)this.yy.parser.parseError(u,g);else throw new Error(u)},"parseError"),setInput:a.__name(function(h,u){return this.yy=u||this.yy||{},this._input=h,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:a.__name(function(){var h=this._input[0];this.yytext+=h,this.yyleng++,this.offset++,this.match+=h,this.matched+=h;var u=h.match(/(?:\r\n?|\n).*/g);return u?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),h},"input"),unput:a.__name(function(h){var u=h.length,g=h.split(/(?:\r\n?|\n)/g);this._input=h+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-u),this.offset-=u;var x=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),g.length-1&&(this.yylineno-=g.length-1);var w=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:g?(g.length===x.length?this.yylloc.first_column:0)+x[x.length-g.length].length-g[0].length:this.yylloc.first_column-u},this.options.ranges&&(this.yylloc.range=[w[0],w[0]+this.yyleng-u]),this.yyleng=this.yytext.length,this},"unput"),more:a.__name(function(){return this._more=!0,this},"more"),reject:a.__name(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:a.__name(function(h){this.unput(this.match.slice(h))},"less"),pastInput:a.__name(function(){var h=this.matched.substr(0,this.matched.length-this.match.length);return(h.length>20?"...":"")+h.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:a.__name(function(){var h=this.match;return h.length<20&&(h+=this._input.substr(0,20-h.length)),(h.substr(0,20)+(h.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:a.__name(function(){var h=this.pastInput(),u=new Array(h.length+1).join("-");return h+this.upcomingInput()+`
5
5
  `+u+"^"},"showPosition"),test_match:a.__name(function(h,u){var g,x,w;if(this.options.backtrack_lexer&&(w={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(w.yylloc.range=this.yylloc.range.slice(0))),x=h[0].match(/(?:\r\n?|\n).*/g),x&&(this.yylineno+=x.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:x?x[x.length-1].length-x[x.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+h[0].length},this.yytext+=h[0],this.match+=h[0],this.matches=h,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(h[0].length),this.matched+=h[0],g=this.performAction.call(this,this.yy,this,u,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),g)return g;if(this._backtrack){for(var r in w)this[r]=w[r];return!1}return!1},"test_match"),next:a.__name(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var h,u,g,x;this._more||(this.yytext="",this.match="");for(var w=this._currentRules(),r=0;r<w.length;r++)if(g=this._input.match(this.rules[w[r]]),g&&(!u||g[0].length>u[0].length)){if(u=g,x=r,this.options.backtrack_lexer){if(h=this.test_match(g,w[r]),h!==!1)return h;if(this._backtrack){u=!1;continue}else return!1}else if(!this.options.flex)break}return u?(h=this.test_match(u,w[x]),h!==!1?h:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
6
6
  `+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:a.__name(function(){var u=this.next();return u||this.lex()},"lex"),begin:a.__name(function(u){this.conditionStack.push(u)},"begin"),popState:a.__name(function(){var u=this.conditionStack.length-1;return u>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:a.__name(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:a.__name(function(u){return u=this.conditionStack.length-1-Math.abs(u||0),u>=0?this.conditionStack[u]:"INITIAL"},"topState"),pushState:a.__name(function(u){this.begin(u)},"pushState"),stateStackSize:a.__name(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:a.__name(function(u,g,x,w){switch(x){case 0:break;case 1:break;case 2:return this.popState(),36;case 3:return this.popState(),36;case 4:return 36;case 5:break;case 6:return 10;case 7:return this.pushState("acc_title"),19;case 8:return this.popState(),"acc_title_value";case 9:return this.pushState("acc_descr"),21;case 10:return this.popState(),"acc_descr_value";case 11:this.pushState("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 5;case 16:return 8;case 17:return this.pushState("axis_data"),"X_AXIS";case 18:return this.pushState("axis_data"),"Y_AXIS";case 19:return this.pushState("axis_band_data"),24;case 20:return 33;case 21:return this.pushState("data"),16;case 22:return this.pushState("data"),18;case 23:return this.pushState("data_inner"),24;case 24:return 29;case 25:return this.popState(),26;case 26:this.popState();break;case 27:this.pushState("string");break;case 28:this.popState();break;case 29:return"STR";case 30:return 24;case 31:return 26;case 32:return 44;case 33:return"COLON";case 34:return 45;case 35:return 28;case 36:return 46;case 37:return 47;case 38:return 49;case 39:return 51;case 40:return 48;case 41:return 42;case 42:return 50;case 43:return 43;case 44:break;case 45:return 37;case 46:return 38}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\})/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:xychart\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n<md_string>\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n<md_string>\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,24,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,18,21,22,23,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,22,24,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[28,29],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0}}};return F})();S.lexer=ot;function q(){this.yy={}}return a.__name(q,"Parser"),q.prototype=S,S.Parser=q,new q})();wt.parser=wt;var ue=wt;function Ct(i){return i.type==="bar"}a.__name(Ct,"isBarPlot");function ft(i){return i.type==="band"}a.__name(ft,"isBandAxisData");function G(i){return i.type==="linear"}a.__name(G,"isLinearAxisData");var Q,Ft=(Q=class{constructor(t){this.parentGroup=t}getMaxDimension(t,e){if(!this.parentGroup)return{width:t.reduce((o,l)=>Math.max(l.length,o),0)*e,height:e};const s={width:0,height:0},n=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",e);for(const o of t){const l=a.computeDimensionOfText(n,1,o),f=l?l.width:o.length*e,d=l?l.height:e;s.width=Math.max(s.width,f),s.height=Math.max(s.height,d)}return n.remove(),s}},a.__name(Q,"TextDimensionCalculatorWithFont"),Q),Ot=.7,Wt=.2,K,Xt=(K=class{constructor(t,e,s,n){this.axisConfig=t,this.title=e,this.textDimensionCalculator=s,this.axisThemeConfig=n,this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.showTitle=!1,this.showLabel=!1,this.showTick=!1,this.showAxisLine=!1,this.outerPadding=0,this.titleTextHeight=0,this.labelTextHeight=0,this.normalizedLabelRotationInRad=0,this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.normalizedLabelRotationInRad=this.axisConfig.labelRotation>=-90&&this.axisConfig.labelRotation<=90?this.axisConfig.labelRotation*Math.PI/180:0}setRange(t){this.range=t,this.axisPosition==="left"||this.axisPosition==="right"?this.boundingRect.height=t[1]-t[0]:this.boundingRect.width=t[1]-t[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(t){this.axisPosition=t,this.setRange(this.range)}getTickDistance(){const t=this.getRange();return Math.abs(t[0]-t[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(t=>t.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){Ot*this.getTickDistance()>this.outerPadding*2&&(this.outerPadding=Math.floor(Ot*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(t){let e=t.height;if(this.axisConfig.showAxisLine&&e>this.axisConfig.axisLineWidth&&(e-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const s=this.getLabelDimension(),n=Wt*t.width;this.outerPadding=Math.min(s.width/2,n);let o=s.height;this.axisPosition==="bottom"&&this.normalizedLabelRotationInRad!==0&&(o=Math.max(o,Math.abs(Math.sin(this.normalizedLabelRotationInRad)*s.width)+Math.abs(Math.cos(this.normalizedLabelRotationInRad)*s.height))),o+=this.axisConfig.labelPadding*2,this.labelTextHeight=s.height,o<=e&&(e-=o,this.showLabel=!0)}if(this.axisConfig.showTick&&e>=this.axisConfig.tickLength&&(this.showTick=!0,e-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const s=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),n=s.height+this.axisConfig.titlePadding*2;this.titleTextHeight=s.height,n<=e&&(e-=n,this.showTitle=!0)}this.boundingRect.width=t.width,this.boundingRect.height=t.height-e}calculateSpaceIfDrawnVertical(t){let e=t.width;if(this.axisConfig.showAxisLine&&e>this.axisConfig.axisLineWidth&&(e-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const s=this.getLabelDimension(),n=Wt*t.height;this.outerPadding=Math.min(s.height/2,n);const o=s.width+this.axisConfig.labelPadding*2;o<=e&&(e-=o,this.showLabel=!0)}if(this.axisConfig.showTick&&e>=this.axisConfig.tickLength&&(this.showTick=!0,e-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const s=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),n=s.height+this.axisConfig.titlePadding*2;this.titleTextHeight=s.height,n<=e&&(e-=n,this.showTitle=!0)}this.boundingRect.width=t.width-e,this.boundingRect.height=t.height}calculateSpace(t){return this.axisPosition==="left"||this.axisPosition==="right"?this.calculateSpaceIfDrawnVertical(t):this.calculateSpaceIfDrawnHorizontally(t),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateOffsetByRotation(t){const e=this.normalizedLabelRotationInRad;return e===0?0:Math.sin(e)*this.getLabelDimension()[t]/2}getDrawableElementsForLeftAxis(){const t=[];if(this.showAxisLine){const e=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${e},${this.boundingRect.y} L ${e},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(e=>({text:e.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(e),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){const e=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(s=>({path:`M ${e},${this.getScaleValue(s)} L ${e-this.axisConfig.tickLength},${this.getScaleValue(s)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForBottomAxis(){const t=[];if(this.showAxisLine){const e=this.boundingRect.y+this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${e} L ${this.boundingRect.x+this.boundingRect.width},${e}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(e=>({text:e.toString(),x:this.getScaleValue(e)+this.calculateOffsetByRotation("height"),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0)+Math.abs(this.calculateOffsetByRotation("width")),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:this.normalizedLabelRotationInRad*180/Math.PI,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){const e=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(s=>({path:`M ${this.getScaleValue(s)},${e} L ${this.getScaleValue(s)},${e+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForTopAxis(){const t=[];if(this.showAxisLine){const e=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${e} L ${this.boundingRect.x+this.boundingRect.width},${e}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(e=>({text:e.toString(),x:this.getScaleValue(e),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+this.axisConfig.titlePadding*2:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){const e=this.boundingRect.y;t.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(s=>({path:`M ${this.getScaleValue(s)},${e+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(s)},${e+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElements(){if(this.axisPosition==="left")return this.getDrawableElementsForLeftAxis();if(this.axisPosition==="right")throw Error("Drawing of right axis is not implemented");return this.axisPosition==="bottom"?this.getDrawableElementsForBottomAxis():this.axisPosition==="top"?this.getDrawableElementsForTopAxis():[]}},a.__name(K,"BaseAxis"),K),Z,ge=(Z=class extends Xt{constructor(t,e,s,n,o){super(t,n,o,e),this.categories=s,this.scale=At().domain(this.categories).range(this.getRange())}setRange(t){super.setRange(t)}recalculateScale(){this.scale=At().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),a.log.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(t){return this.scale(t)??this.getRange()[0]}},a.__name(Z,"BandAxis"),Z),J,xe=(J=class extends Xt{constructor(t,e,s,n,o){super(t,n,o,e),this.domain=s,this.scale=Bt.linear().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){const t=[...this.domain];this.axisPosition==="left"&&t.reverse(),this.scale=Bt.linear().domain(t).range(this.getRange())}getScaleValue(t){return this.scale(t)}},a.__name(J,"LinearAxis"),J);function St(i,t,e,s){const n=new Ft(s);return ft(i)?new ge(t,e,i.categories,i.title,n):new xe(t,e,[i.min,i.max],i.title,n)}a.__name(St,"getAxis");var tt,de=(tt=class{constructor(t,e,s,n){this.textDimensionCalculator=t,this.chartConfig=e,this.chartData=s,this.chartThemeConfig=n,this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){const e=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),s=Math.max(e.width,t.width),n=e.height+2*this.chartConfig.titlePadding;return e.width<=s&&e.height<=n&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=s,this.boundingRect.height=n,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){const t=[];return this.showChartTitle&&t.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),t}},a.__name(tt,"ChartTitle"),tt);function Yt(i,t,e,s){const n=new Ft(s);return new de(n,i,t,e)}a.__name(Yt,"getChartTitleComponent");var et,fe=(et=class{constructor(t,e,s,n,o){this.plotData=t,this.xAxis=e,this.yAxis=s,this.orientation=n,this.plotIndex=o}getDrawableElement(){const t=this.plotData.data.map(n=>[this.xAxis.getScaleValue(n[0]),this.yAxis.getScaleValue(n[1])]);let e;if(this.orientation==="horizontal"?e=a.line().y(n=>n[0]).x(n=>n[1])(t):e=a.line().x(n=>n[0]).y(n=>n[1])(t),!e)return[];const s=[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:e,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}];if(this.plotData.pointLabels&&this.plotData.pointLabels.length>0){const l=[];for(const[f,[d,k]]of t.entries()){const T=this.plotData.pointLabels[f];T&&(this.orientation==="horizontal"?l.push({x:k+10,y:d,text:T,fill:this.plotData.strokeFill,verticalPos:"middle",horizontalPos:"left",fontSize:12,rotation:0}):l.push({x:d,y:k-10,text:T,fill:this.plotData.strokeFill,verticalPos:"middle",horizontalPos:"center",fontSize:12,rotation:0}))}l.length>0&&s.push({groupTexts:["plot",`line-plot-${this.plotIndex}`,"labels"],type:"text",data:l})}return s}},a.__name(et,"LinePlot"),et),it,pe=(it=class{constructor(t,e,s,n,o,l){this.barData=t,this.boundingRect=e,this.xAxis=s,this.yAxis=n,this.orientation=o,this.plotIndex=l}getDrawableElement(){const t=this.barData.data.map(o=>[this.xAxis.getScaleValue(o[0]),this.yAxis.getScaleValue(o[1])]),s=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*(1-.05),n=s/2;return this.orientation==="horizontal"?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(o=>({x:this.boundingRect.x,y:o[0]-n,height:s,width:o[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(o=>({x:o[0]-n,y:o[1],width:s,height:this.boundingRect.y+this.boundingRect.height-o[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}},a.__name(it,"BarPlot"),it),st,me=(st=class{constructor(t,e,s){this.chartConfig=t,this.chartData=e,this.chartThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0}}setAxes(t,e){this.xAxis=t,this.yAxis=e}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){return this.boundingRect.width=t.width,this.boundingRect.height=t.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");const t=[];for(const[e,s]of this.chartData.plots.entries())switch(s.type){case"line":{const n=new fe(s,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,e);t.push(...n.getDrawableElement())}break;case"bar":{const n=new pe(s,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,e);t.push(...n.getDrawableElement())}break}return t}},a.__name(st,"BasePlot"),st);function Nt(i,t,e){return new me(i,t,e)}a.__name(Nt,"getPlotComponent");var nt,ye=(nt=class{constructor(t,e,s,n){this.chartConfig=t,this.chartData=e,this.componentStore={title:Yt(t,e,s,n),plot:Nt(t,e,s),xAxis:St(e.xAxis,t.xAxis,{titleColor:s.xAxisTitleColor,labelColor:s.xAxisLabelColor,tickColor:s.xAxisTickColor,axisLineColor:s.xAxisLineColor},n),yAxis:St(e.yAxis,t.yAxis,{titleColor:s.yAxisTitleColor,labelColor:s.yAxisLabelColor,tickColor:s.yAxisTickColor,axisLineColor:s.yAxisLineColor},n)}}calculateVerticalSpace(){let t=this.chartConfig.width,e=this.chartConfig.height,s=0,n=0,o=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),l=Math.floor(e*this.chartConfig.plotReservedSpacePercent/100),f=this.componentStore.plot.calculateSpace({width:o,height:l});t-=f.width,e-=f.height,f=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:e}),n=f.height,e-=f.height,this.componentStore.xAxis.setAxisPosition("bottom"),f=this.componentStore.xAxis.calculateSpace({width:t,height:e}),e-=f.height,this.componentStore.yAxis.setAxisPosition("left"),f=this.componentStore.yAxis.calculateSpace({width:t,height:e}),s=f.width,t-=f.width,t>0&&(o+=t,t=0),e>0&&(l+=e,e=0),this.componentStore.plot.calculateSpace({width:o,height:l}),this.componentStore.plot.setBoundingBoxXY({x:s,y:n}),this.componentStore.xAxis.setRange([s,s+o]),this.componentStore.xAxis.setBoundingBoxXY({x:s,y:n+l}),this.componentStore.yAxis.setRange([n,n+l]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:n}),this.chartData.plots.some(d=>Ct(d))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let t=this.chartConfig.width,e=this.chartConfig.height,s=0,n=0,o=0,l=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),f=Math.floor(e*this.chartConfig.plotReservedSpacePercent/100),d=this.componentStore.plot.calculateSpace({width:l,height:f});t-=d.width,e-=d.height,d=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:e}),s=d.height,e-=d.height,this.componentStore.xAxis.setAxisPosition("left"),d=this.componentStore.xAxis.calculateSpace({width:t,height:e}),t-=d.width,n=d.width,this.componentStore.yAxis.setAxisPosition("top"),d=this.componentStore.yAxis.calculateSpace({width:t,height:e}),e-=d.height,o=s+d.height,t>0&&(l+=t,t=0),e>0&&(f+=e,e=0),this.componentStore.plot.calculateSpace({width:l,height:f}),this.componentStore.plot.setBoundingBoxXY({x:n,y:o}),this.componentStore.yAxis.setRange([n,n+l]),this.componentStore.yAxis.setBoundingBoxXY({x:n,y:s}),this.componentStore.xAxis.setRange([o,o+f]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:o}),this.chartData.plots.some(k=>Ct(k))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){this.chartConfig.chartOrientation==="horizontal"?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();const t=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(const e of Object.values(this.componentStore))t.push(...e.getDrawableElements());return t}},a.__name(nt,"Orchestrator"),nt),at,_e=(at=class{static build(t,e,s,n){return new ye(t,e,s,n).getDrawableElement()}},a.__name(at,"XYChartBuilder"),at),ht=0,Ht,lt=Dt(),ct=Tt(),y=vt(),Rt=ct.plotColorPalette.split(",").map(i=>i.trim()),pt=!1,kt=!1;function Tt(){const i=a.getThemeVariables3(),t=a.getConfig();return a.cleanAndMerge(i.xyChart,t.themeVariables.xyChart)}a.__name(Tt,"getChartDefaultThemeConfig");function Dt(){const i=a.getConfig();return a.cleanAndMerge(a.defaultConfig_default.xyChart,i.xyChart)}a.__name(Dt,"getChartDefaultConfig");function vt(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}a.__name(vt,"getChartDefaultData");function ut(i){const t=a.getConfig();return a.sanitizeText(i.trim(),t)}a.__name(ut,"textSanitizer");function Ut(i){Ht=i}a.__name(Ut,"setTmpSVGG");function $t(i){i==="horizontal"?lt.chartOrientation="horizontal":lt.chartOrientation="vertical"}a.__name($t,"setOrientation");function qt(i){y.xAxis.title=ut(i.text)}a.__name(qt,"setXAxisTitle");function Lt(i,t){y.xAxis={type:"linear",title:y.xAxis.title,min:i,max:t},pt=!0}a.__name(Lt,"setXAxisRangeData");function jt(i){y.xAxis={type:"band",title:y.xAxis.title,categories:i.map(t=>ut(t.text))},pt=!0}a.__name(jt,"setXAxisBand");function Gt(i){y.yAxis.title=ut(i.text)}a.__name(Gt,"setYAxisTitle");function Qt(i,t){y.yAxis={type:"linear",title:y.yAxis.title,min:i,max:t},kt=!0}a.__name(Qt,"setYAxisRangeData");function Kt(i){const t=Math.min(...i),e=Math.max(...i),s=G(y.yAxis)?y.yAxis.min:1/0,n=G(y.yAxis)?y.yAxis.max:-1/0;y.yAxis={type:"linear",title:y.yAxis.title,min:Math.min(s,t),max:Math.max(n,e)}}a.__name(Kt,"setYAxisRangeFromPlotData");function Pt(i){let t=[];if(i.length===0)return t;if(!pt){const e=G(y.xAxis)?y.xAxis.min:1/0,s=G(y.xAxis)?y.xAxis.max:-1/0;Lt(Math.min(e,1),Math.max(s,i.length))}if(ft(y.xAxis)&&i.length>y.xAxis.categories.length&&(i=i.slice(0,y.xAxis.categories.length)),kt||Kt(i),ft(y.xAxis)&&(t=y.xAxis.categories.map((e,s)=>[e,i[s]])),G(y.xAxis)){const e=y.xAxis.min,s=y.xAxis.max,n=(s-e)/(i.length-1),o=[];for(let l=e;l<=s;l+=n)o.push(`${l}`);t=o.map((l,f)=>[l,i[f]])}return t}a.__name(Pt,"transformDataWithoutCategory");function Et(i){return Rt[i===0?0:i%Rt.length]}a.__name(Et,"getPlotColorFromPalette");function Zt(i,t){const e=t.map(l=>l.value),s=t.map(l=>l.label?ut(l.label):""),n=Pt(e),o=s.some(l=>l!=="");y.plots.push({type:"line",strokeFill:Et(ht),strokeWidth:2,data:n,...o?{pointLabels:s}:{}}),ht++}a.__name(Zt,"setLineData");function Jt(i,t){const e=t.map(n=>n.value),s=Pt(e);y.plots.push({type:"bar",fill:Et(ht),data:s}),ht++}a.__name(Jt,"setBarData");function te(){if(y.plots.length===0)throw Error("No Plot to render, please provide a plot with some data");return y.title=a.getDiagramTitle(),_e.build(lt,y,ct,Ht)}a.__name(te,"getDrawableElem");function ee(){return ct}a.__name(ee,"getChartThemeConfig");function ie(){return lt}a.__name(ie,"getChartConfig");function se(){return y}a.__name(se,"getXYChartData");var be=a.__name(function(){a.clear(),ht=0,lt=Dt(),y=vt(),ct=Tt(),Rt=ct.plotColorPalette.split(",").map(i=>i.trim()),pt=!1,kt=!1},"clear"),Ae={getDrawableElem:te,clear:be,setAccTitle:a.setAccTitle,getAccTitle:a.getAccTitle,setDiagramTitle:a.setDiagramTitle,getDiagramTitle:a.getDiagramTitle,getAccDescription:a.getAccDescription,setAccDescription:a.setAccDescription,setOrientation:$t,setXAxisTitle:qt,setXAxisRangeData:Lt,setXAxisBand:jt,setYAxisTitle:Gt,setYAxisRangeData:Qt,setLineData:Zt,setBarData:Jt,setTmpSVGG:Ut,getChartThemeConfig:ee,getChartConfig:ie,getXYChartData:se},we=a.__name((i,t,e,s)=>{const n=s.db,o=n.getChartThemeConfig(),l=n.getChartConfig(),f=n.getXYChartData().plots[0].data.map(m=>m[1]);function d(m){return m==="top"?"text-before-edge":"middle"}a.__name(d,"getDominantBaseLine");function k(m){return m==="left"?"start":m==="right"?"end":"middle"}a.__name(k,"getTextAnchor");function T(m){return`translate(${m.x}, ${m.y}) rotate(${m.rotation||0})`}a.__name(T,"getTextTransformation"),a.log.debug(`Rendering xychart chart
7
7
  `+i);const R=a.selectSvgElement(t),_=R.append("g").attr("class","main"),E=_.append("rect").attr("width",l.width).attr("height",l.height).attr("class","background");a.configureSvgSize(R,l.height,l.width,!0),R.attr("viewBox",`0 0 ${l.width} ${l.height}`),E.attr("fill",o.backgroundColor),n.setTmpSVGG(R.append("g").attr("class","mermaid-tmp-group"));const L=n.getDrawableElem(),P={};function M(m){let D=_,c="";for(const[V]of m.entries()){let W=_;V>0&&P[c]&&(W=P[c]),c+=m[V],D=P[c],D||(D=P[c]=W.append("g").attr("class",m[V]))}return D}a.__name(M,"getGroup");for(const m of L){if(m.data.length===0)continue;const D=M(m.groupTexts);switch(m.type){case"rect":if(D.selectAll("rect").data(m.data).enter().append("rect").attr("x",c=>c.x).attr("y",c=>c.y).attr("width",c=>c.width).attr("height",c=>c.height).attr("fill",c=>c.fill).attr("stroke",c=>c.strokeFill).attr("stroke-width",c=>c.strokeWidth),l.showDataLabel){const c=l.showDataLabelOutsideBar;if(l.chartOrientation==="horizontal"){let V=function(A,B){const{data:S,label:ot}=A;return B*ot.length*W<=S.width-X};a.__name(V,"fitsHorizontally");const W=.7,X=10,Y=m.data.map((A,B)=>({data:A,label:f[B].toString()})).filter(A=>A.data.width>0&&A.data.height>0),C=Y.map(A=>{const{data:B}=A;let S=B.height*.7;for(;!V(A,S)&&S>0;)S-=1;return S}),H=Math.floor(Math.min(...C)),b=a.__name(A=>c?A.data.x+A.data.width+X:A.data.x+A.data.width-X,"determineLabelXPosition");D.selectAll("text").data(Y).enter().append("text").attr("x",b).attr("y",A=>A.data.y+A.data.height/2).attr("text-anchor",c?"start":"end").attr("dominant-baseline","middle").attr("fill",o.dataLabelColor).attr("font-size",`${H}px`).text(A=>A.label)}else{let V=function(b,A,B){const{data:S,label:ot}=b,F=A*ot.length*.7,h=S.x+S.width/2,u=h-F/2,g=h+F/2,x=u>=S.x&&g<=S.x+S.width,w=S.y+B+A<=S.y+S.height;return x&&w};a.__name(V,"fitsInBar");const W=10,X=m.data.map((b,A)=>({data:b,label:f[A].toString()})).filter(b=>b.data.width>0&&b.data.height>0),Y=X.map(b=>{const{data:A,label:B}=b;let S=A.width/(B.length*.7);for(;!V(b,S,W)&&S>0;)S-=1;return S}),C=Math.floor(Math.min(...Y)),H=a.__name(b=>c?b.data.y-W:b.data.y+W,"determineLabelYPosition");D.selectAll("text").data(X).enter().append("text").attr("x",b=>b.data.x+b.data.width/2).attr("y",H).attr("text-anchor","middle").attr("dominant-baseline",c?"auto":"hanging").attr("fill",o.dataLabelColor).attr("font-size",`${C}px`).text(b=>b.label)}}break;case"text":D.selectAll("text").data(m.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",c=>c.fill).attr("font-size",c=>c.fontSize).attr("dominant-baseline",c=>d(c.verticalPos)).attr("text-anchor",c=>k(c.horizontalPos)).attr("transform",c=>T(c)).text(c=>c.text);break;case"path":D.selectAll("path").data(m.data).enter().append("path").attr("d",c=>c.path).attr("fill",c=>c.fill?c.fill:"none").attr("stroke",c=>c.strokeFill).attr("stroke-width",c=>c.strokeWidth);break}}},"draw"),Ce={draw:we},Se={parser:ue,db:Ae,renderer:Ce};exports.diagram=Se;
8
- //# sourceMappingURL=xychartDiagram-FW5EYKEG-C7LGE11p.cjs.map
8
+ //# sourceMappingURL=xychartDiagram-FW5EYKEG-D0ltrZo8.cjs.map