@aiquants/markdown 1.11.0 → 1.14.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.
- package/README.md +45 -3
- package/dist/{abnfDiagram-VRR7QNED-B-z-xQDd.js → abnfDiagram-VRR7QNED-BQ20Rpd9.js} +4 -4
- package/dist/{abnfDiagram-VRR7QNED-B-z-xQDd.js.map → abnfDiagram-VRR7QNED-BQ20Rpd9.js.map} +1 -1
- package/dist/{abnfDiagram-VRR7QNED-CiccE9Dh.cjs → abnfDiagram-VRR7QNED-DXbiql1c.cjs} +2 -2
- package/dist/{abnfDiagram-VRR7QNED-CiccE9Dh.cjs.map → abnfDiagram-VRR7QNED-DXbiql1c.cjs.map} +1 -1
- package/dist/{arc-2IUtxpgY.cjs → arc-CBvogfHH.cjs} +2 -2
- package/dist/{arc-2IUtxpgY.cjs.map → arc-CBvogfHH.cjs.map} +1 -1
- package/dist/{arc-C1qs8DDn.js → arc-xMVBdqQn.js} +2 -2
- package/dist/{arc-C1qs8DDn.js.map → arc-xMVBdqQn.js.map} +1 -1
- package/dist/{architectureDiagram-ZJ3FMSHR-Bu8bp5PS.cjs → architectureDiagram-ZJ3FMSHR-BpT6mBK5.cjs} +2 -2
- package/dist/{architectureDiagram-ZJ3FMSHR-Bu8bp5PS.cjs.map → architectureDiagram-ZJ3FMSHR-BpT6mBK5.cjs.map} +1 -1
- package/dist/{architectureDiagram-ZJ3FMSHR-DMAqsHwH.js → architectureDiagram-ZJ3FMSHR-DLa31UWc.js} +3 -3
- package/dist/{architectureDiagram-ZJ3FMSHR-DMAqsHwH.js.map → architectureDiagram-ZJ3FMSHR-DLa31UWc.js.map} +1 -1
- package/dist/{blockDiagram-677ZJIJ3-jCcaJq2a.js → blockDiagram-677ZJIJ3-041yX0FM.js} +4 -4
- package/dist/{blockDiagram-677ZJIJ3-jCcaJq2a.js.map → blockDiagram-677ZJIJ3-041yX0FM.js.map} +1 -1
- package/dist/{blockDiagram-677ZJIJ3-MoxFCasQ.cjs → blockDiagram-677ZJIJ3-Dz6y7puB.cjs} +2 -2
- package/dist/{blockDiagram-677ZJIJ3-MoxFCasQ.cjs.map → blockDiagram-677ZJIJ3-Dz6y7puB.cjs.map} +1 -1
- package/dist/{c4Diagram-LMCZKHZV-Ce6ig06u.cjs → c4Diagram-LMCZKHZV-DkGXIoOO.cjs} +2 -2
- package/dist/{c4Diagram-LMCZKHZV-Ce6ig06u.cjs.map → c4Diagram-LMCZKHZV-DkGXIoOO.cjs.map} +1 -1
- package/dist/{c4Diagram-LMCZKHZV-CqAl5q32.js → c4Diagram-LMCZKHZV-zI4AGK5P.js} +3 -3
- package/dist/{c4Diagram-LMCZKHZV-CqAl5q32.js.map → c4Diagram-LMCZKHZV-zI4AGK5P.js.map} +1 -1
- package/dist/channel-BcZa3FxI.cjs +2 -0
- package/dist/{channel-Y185eoRi.cjs.map → channel-BcZa3FxI.cjs.map} +1 -1
- package/dist/channel-D-9RLPfN.js +6 -0
- package/dist/{channel-DE38-vXn.js.map → channel-D-9RLPfN.js.map} +1 -1
- package/dist/{chunk-2Q5K7J3B-CUeeE8Rt.cjs → chunk-2Q5K7J3B-CFt_Nv0P.cjs} +2 -2
- package/dist/{chunk-2Q5K7J3B-CUeeE8Rt.cjs.map → chunk-2Q5K7J3B-CFt_Nv0P.cjs.map} +1 -1
- package/dist/{chunk-2Q5K7J3B-CZx8YU1q.js → chunk-2Q5K7J3B-D7d0n786.js} +2 -2
- package/dist/{chunk-2Q5K7J3B-CZx8YU1q.js.map → chunk-2Q5K7J3B-D7d0n786.js.map} +1 -1
- package/dist/{chunk-32BRIVSS-E7rtICR_.js → chunk-32BRIVSS-CqgDRgE_.js} +2 -2
- package/dist/{chunk-32BRIVSS-E7rtICR_.js.map → chunk-32BRIVSS-CqgDRgE_.js.map} +1 -1
- package/dist/{chunk-32BRIVSS-6NUu3pur.cjs → chunk-32BRIVSS-CyRN3ENZ.cjs} +2 -2
- package/dist/{chunk-32BRIVSS-6NUu3pur.cjs.map → chunk-32BRIVSS-CyRN3ENZ.cjs.map} +1 -1
- package/dist/{chunk-5VM5RSS4-BBd3GG10.js → chunk-5VM5RSS4-CYLLsvXq.js} +2 -2
- package/dist/{chunk-5VM5RSS4-BBd3GG10.js.map → chunk-5VM5RSS4-CYLLsvXq.js.map} +1 -1
- package/dist/{chunk-5VM5RSS4-CLh00kAT.cjs → chunk-5VM5RSS4-Dnsn1NCH.cjs} +2 -2
- package/dist/{chunk-5VM5RSS4-CLh00kAT.cjs.map → chunk-5VM5RSS4-Dnsn1NCH.cjs.map} +1 -1
- package/dist/{chunk-EX3LRPZG-CIUdYJfN.js → chunk-EX3LRPZG-DJvO-9bX.js} +5 -5
- package/dist/{chunk-EX3LRPZG-CIUdYJfN.js.map → chunk-EX3LRPZG-DJvO-9bX.js.map} +1 -1
- package/dist/{chunk-EX3LRPZG-DP4w662u.cjs → chunk-EX3LRPZG-NbTYWi98.cjs} +2 -2
- package/dist/{chunk-EX3LRPZG-DP4w662u.cjs.map → chunk-EX3LRPZG-NbTYWi98.cjs.map} +1 -1
- package/dist/{chunk-JWPE2WC7-B9A2BpdU.js → chunk-JWPE2WC7-DuVveRXZ.js} +2 -2
- package/dist/{chunk-JWPE2WC7-B9A2BpdU.js.map → chunk-JWPE2WC7-DuVveRXZ.js.map} +1 -1
- package/dist/{chunk-JWPE2WC7-B2hQCXGJ.cjs → chunk-JWPE2WC7-zoOgS5u9.cjs} +2 -2
- package/dist/{chunk-JWPE2WC7-B2hQCXGJ.cjs.map → chunk-JWPE2WC7-zoOgS5u9.cjs.map} +1 -1
- package/dist/{chunk-MOJQB5TN-uc6Tpcza.js → chunk-MOJQB5TN-C3rAriR0.js} +2 -2
- package/dist/{chunk-MOJQB5TN-uc6Tpcza.js.map → chunk-MOJQB5TN-C3rAriR0.js.map} +1 -1
- package/dist/{chunk-MOJQB5TN-B9k7Bi6O.cjs → chunk-MOJQB5TN-nhexYepW.cjs} +2 -2
- package/dist/{chunk-MOJQB5TN-B9k7Bi6O.cjs.map → chunk-MOJQB5TN-nhexYepW.cjs.map} +1 -1
- package/dist/{chunk-PUDLZKDR-DP-764cy.js → chunk-PUDLZKDR-Bbejhl-5.js} +7 -7
- package/dist/{chunk-PUDLZKDR-DP-764cy.js.map → chunk-PUDLZKDR-Bbejhl-5.js.map} +1 -1
- package/dist/{chunk-PUDLZKDR-DC8YYVco.cjs → chunk-PUDLZKDR-Eircwert.cjs} +2 -2
- package/dist/{chunk-PUDLZKDR-DC8YYVco.cjs.map → chunk-PUDLZKDR-Eircwert.cjs.map} +1 -1
- package/dist/{chunk-RYQCIY6F-CnVNieyH.js → chunk-RYQCIY6F-CK0xCpaZ.js} +2 -2
- package/dist/{chunk-RYQCIY6F-CnVNieyH.js.map → chunk-RYQCIY6F-CK0xCpaZ.js.map} +1 -1
- package/dist/{chunk-RYQCIY6F-CTZYTf8k.cjs → chunk-RYQCIY6F-CZfHzKoN.cjs} +2 -2
- package/dist/{chunk-RYQCIY6F-CTZYTf8k.cjs.map → chunk-RYQCIY6F-CZfHzKoN.cjs.map} +1 -1
- package/dist/{chunk-V7JOEXUC-CxfPvQqf.js → chunk-V7JOEXUC-CV1kVAxo.js} +6 -6
- package/dist/{chunk-V7JOEXUC-CxfPvQqf.js.map → chunk-V7JOEXUC-CV1kVAxo.js.map} +1 -1
- package/dist/{chunk-V7JOEXUC-Bg0BmJYe.cjs → chunk-V7JOEXUC-DdpIiu9X.cjs} +2 -2
- package/dist/{chunk-V7JOEXUC-Bg0BmJYe.cjs.map → chunk-V7JOEXUC-DdpIiu9X.cjs.map} +1 -1
- package/dist/{chunk-VR4S4FIN-BC8LoE8F.js → chunk-VR4S4FIN-4jDL-QKj.js} +2 -2
- package/dist/{chunk-VR4S4FIN-BC8LoE8F.js.map → chunk-VR4S4FIN-4jDL-QKj.js.map} +1 -1
- package/dist/{chunk-VR4S4FIN-x1hG3E6D.cjs → chunk-VR4S4FIN-IWf-fx8G.cjs} +2 -2
- package/dist/{chunk-VR4S4FIN-x1hG3E6D.cjs.map → chunk-VR4S4FIN-IWf-fx8G.cjs.map} +1 -1
- package/dist/{chunk-XXDRQBXY-4p-LcxlZ.cjs → chunk-XXDRQBXY-DXvqbMKA.cjs} +2 -2
- package/dist/{chunk-XXDRQBXY-4p-LcxlZ.cjs.map → chunk-XXDRQBXY-DXvqbMKA.cjs.map} +1 -1
- package/dist/{chunk-XXDRQBXY-CrqV-Y-W.js → chunk-XXDRQBXY-OsB0vyxH.js} +2 -2
- package/dist/{chunk-XXDRQBXY-CrqV-Y-W.js.map → chunk-XXDRQBXY-OsB0vyxH.js.map} +1 -1
- package/dist/{classDiagram-OUVF2IWQ-CY6xTOe7.js → classDiagram-OUVF2IWQ-Byz5-eQE.js} +3 -3
- package/dist/{classDiagram-OUVF2IWQ-CY6xTOe7.js.map → classDiagram-OUVF2IWQ-Byz5-eQE.js.map} +1 -1
- package/dist/{classDiagram-OUVF2IWQ-D_Rw9UKt.cjs → classDiagram-OUVF2IWQ-C9Zj8XrO.cjs} +2 -2
- package/dist/{classDiagram-OUVF2IWQ-D_Rw9UKt.cjs.map → classDiagram-OUVF2IWQ-C9Zj8XrO.cjs.map} +1 -1
- package/dist/{classDiagram-v2-EOCWNBFH-CY6xTOe7.js → classDiagram-v2-EOCWNBFH-Byz5-eQE.js} +3 -3
- package/dist/{classDiagram-v2-EOCWNBFH-CY6xTOe7.js.map → classDiagram-v2-EOCWNBFH-Byz5-eQE.js.map} +1 -1
- package/dist/{classDiagram-v2-EOCWNBFH-D_Rw9UKt.cjs → classDiagram-v2-EOCWNBFH-C9Zj8XrO.cjs} +2 -2
- package/dist/{classDiagram-v2-EOCWNBFH-D_Rw9UKt.cjs.map → classDiagram-v2-EOCWNBFH-C9Zj8XrO.cjs.map} +1 -1
- package/dist/{cose-bilkent-JH36ORCC-CCPjlG3l.cjs → cose-bilkent-JH36ORCC-B_b-_8U5.cjs} +2 -2
- package/dist/{cose-bilkent-JH36ORCC-CCPjlG3l.cjs.map → cose-bilkent-JH36ORCC-B_b-_8U5.cjs.map} +1 -1
- package/dist/{cose-bilkent-JH36ORCC-DZXWm3b4.js → cose-bilkent-JH36ORCC-CCqB1qiX.js} +2 -2
- package/dist/{cose-bilkent-JH36ORCC-DZXWm3b4.js.map → cose-bilkent-JH36ORCC-CCqB1qiX.js.map} +1 -1
- package/dist/{cynefinDiagram-TSTJHNR4-DArSGzt5.cjs → cynefinDiagram-TSTJHNR4-BGsQELZI.cjs} +2 -2
- package/dist/{cynefinDiagram-TSTJHNR4-DArSGzt5.cjs.map → cynefinDiagram-TSTJHNR4-BGsQELZI.cjs.map} +1 -1
- package/dist/{cynefinDiagram-TSTJHNR4-C_jLr8OF.js → cynefinDiagram-TSTJHNR4-BmxTcdFW.js} +3 -3
- package/dist/{cynefinDiagram-TSTJHNR4-C_jLr8OF.js.map → cynefinDiagram-TSTJHNR4-BmxTcdFW.js.map} +1 -1
- package/dist/{dagre-VKFMJZFB-CDLGY9Bv.cjs → dagre-VKFMJZFB-BMJn8PTf.cjs} +2 -2
- package/dist/{dagre-VKFMJZFB-CDLGY9Bv.cjs.map → dagre-VKFMJZFB-BMJn8PTf.cjs.map} +1 -1
- package/dist/{dagre-VKFMJZFB-CtUCyCpT.js → dagre-VKFMJZFB-T0EpCTvx.js} +3 -3
- package/dist/{dagre-VKFMJZFB-CtUCyCpT.js.map → dagre-VKFMJZFB-T0EpCTvx.js.map} +1 -1
- package/dist/{diagram-FQU43EPY-Dbadtgzw.js → diagram-FQU43EPY-BqlZFcVg.js} +3 -3
- package/dist/{diagram-FQU43EPY-Dbadtgzw.js.map → diagram-FQU43EPY-BqlZFcVg.js.map} +1 -1
- package/dist/{diagram-FQU43EPY-BAaJ0d4P.cjs → diagram-FQU43EPY-ogw45cxB.cjs} +2 -2
- package/dist/{diagram-FQU43EPY-BAaJ0d4P.cjs.map → diagram-FQU43EPY-ogw45cxB.cjs.map} +1 -1
- package/dist/{diagram-G47NLZAW-Cy4F56i2.js → diagram-G47NLZAW-BKEHdu5F.js} +4 -4
- package/dist/{diagram-G47NLZAW-Cy4F56i2.js.map → diagram-G47NLZAW-BKEHdu5F.js.map} +1 -1
- package/dist/{diagram-G47NLZAW-CGuDuG2a.cjs → diagram-G47NLZAW-YfpzfmMk.cjs} +2 -2
- package/dist/{diagram-G47NLZAW-CGuDuG2a.cjs.map → diagram-G47NLZAW-YfpzfmMk.cjs.map} +1 -1
- package/dist/{diagram-NH7WQ7WH-Cmzx4_kK.js → diagram-NH7WQ7WH-BB78MPum.js} +3 -3
- package/dist/{diagram-NH7WQ7WH-Cmzx4_kK.js.map → diagram-NH7WQ7WH-BB78MPum.js.map} +1 -1
- package/dist/{diagram-NH7WQ7WH-CYHJ_YsO.cjs → diagram-NH7WQ7WH-uXWQSyUK.cjs} +2 -2
- package/dist/{diagram-NH7WQ7WH-CYHJ_YsO.cjs.map → diagram-NH7WQ7WH-uXWQSyUK.cjs.map} +1 -1
- package/dist/{diagram-OA4YK3LP-U41B3NZl.cjs → diagram-OA4YK3LP-BNY_Gt2v.cjs} +2 -2
- package/dist/{diagram-OA4YK3LP-U41B3NZl.cjs.map → diagram-OA4YK3LP-BNY_Gt2v.cjs.map} +1 -1
- package/dist/{diagram-OA4YK3LP-BQkPy1gL.js → diagram-OA4YK3LP-CPynpf0h.js} +4 -4
- package/dist/{diagram-OA4YK3LP-BQkPy1gL.js.map → diagram-OA4YK3LP-CPynpf0h.js.map} +1 -1
- package/dist/{diagram-WEI45ONY-CqYKIPbE.cjs → diagram-WEI45ONY-C1jbWTWA.cjs} +2 -2
- package/dist/{diagram-WEI45ONY-CqYKIPbE.cjs.map → diagram-WEI45ONY-C1jbWTWA.cjs.map} +1 -1
- package/dist/{diagram-WEI45ONY-DCYXnsL3.js → diagram-WEI45ONY-CfxXnEBp.js} +3 -3
- package/dist/{diagram-WEI45ONY-DCYXnsL3.js.map → diagram-WEI45ONY-CfxXnEBp.js.map} +1 -1
- package/dist/{ebnfDiagram-CCIWWBDH-CDdS5aKT.cjs → ebnfDiagram-CCIWWBDH-CKgI2cvY.cjs} +2 -2
- package/dist/{ebnfDiagram-CCIWWBDH-CDdS5aKT.cjs.map → ebnfDiagram-CCIWWBDH-CKgI2cvY.cjs.map} +1 -1
- package/dist/{ebnfDiagram-CCIWWBDH-D0HtPvdW.js → ebnfDiagram-CCIWWBDH-DP4bvDHl.js} +4 -4
- package/dist/{ebnfDiagram-CCIWWBDH-D0HtPvdW.js.map → ebnfDiagram-CCIWWBDH-DP4bvDHl.js.map} +1 -1
- package/dist/{erDiagram-Q63AITRT-DYV2_G4O.cjs → erDiagram-Q63AITRT-B4rtHiL0.cjs} +2 -2
- package/dist/{erDiagram-Q63AITRT-DYV2_G4O.cjs.map → erDiagram-Q63AITRT-B4rtHiL0.cjs.map} +1 -1
- package/dist/{erDiagram-Q63AITRT-DSHmVsfi.js → erDiagram-Q63AITRT-Cg6xCVR_.js} +5 -5
- package/dist/{erDiagram-Q63AITRT-DSHmVsfi.js.map → erDiagram-Q63AITRT-Cg6xCVR_.js.map} +1 -1
- package/dist/{extractHeadings-C8-uflNg.js → extractHeadings-B9zWU8Hp.js} +49 -44
- package/dist/{extractHeadings-C8-uflNg.js.map → extractHeadings-B9zWU8Hp.js.map} +1 -1
- package/dist/{extractHeadings-D0L5hMHB.cjs → extractHeadings-D0Yt1_JR.cjs} +4 -4
- package/dist/{extractHeadings-D0L5hMHB.cjs.map → extractHeadings-D0Yt1_JR.cjs.map} +1 -1
- package/dist/flowDiagram-23GEKE2U-BEXMT81S.js +8 -0
- package/dist/flowDiagram-23GEKE2U-BEXMT81S.js.map +1 -0
- package/dist/flowDiagram-23GEKE2U-DOgzSs1K.cjs +2 -0
- package/dist/flowDiagram-23GEKE2U-DOgzSs1K.cjs.map +1 -0
- package/dist/{ganttDiagram-NO4QXBWP-Dzp77-Og.cjs → ganttDiagram-NO4QXBWP-DtRUI9CI.cjs} +2 -2
- package/dist/{ganttDiagram-NO4QXBWP-Dzp77-Og.cjs.map → ganttDiagram-NO4QXBWP-DtRUI9CI.cjs.map} +1 -1
- package/dist/{ganttDiagram-NO4QXBWP-D1yn3qF6.js → ganttDiagram-NO4QXBWP-DytKD5ib.js} +3 -3
- package/dist/{ganttDiagram-NO4QXBWP-D1yn3qF6.js.map → ganttDiagram-NO4QXBWP-DytKD5ib.js.map} +1 -1
- package/dist/{gitGraphDiagram-IHSO6WYX-Bjjt_fvH.js → gitGraphDiagram-IHSO6WYX-BO23TPQ8.js} +4 -4
- package/dist/{gitGraphDiagram-IHSO6WYX-Bjjt_fvH.js.map → gitGraphDiagram-IHSO6WYX-BO23TPQ8.js.map} +1 -1
- package/dist/{gitGraphDiagram-IHSO6WYX-Bav20D09.cjs → gitGraphDiagram-IHSO6WYX-DnErhH_Y.cjs} +2 -2
- package/dist/{gitGraphDiagram-IHSO6WYX-Bav20D09.cjs.map → gitGraphDiagram-IHSO6WYX-DnErhH_Y.cjs.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.client.cjs +1 -1
- package/dist/index.client.js +1 -1
- package/dist/index.js +1 -1
- package/dist/index.server.cjs +1 -1
- package/dist/index.server.cjs.map +1 -1
- package/dist/index.server.js +178 -169
- package/dist/index.server.js.map +1 -1
- package/dist/{infoDiagram-FWYZ7A6U-CmMedEcN.cjs → infoDiagram-FWYZ7A6U-4syrAmyj.cjs} +2 -2
- package/dist/{infoDiagram-FWYZ7A6U-CmMedEcN.cjs.map → infoDiagram-FWYZ7A6U-4syrAmyj.cjs.map} +1 -1
- package/dist/{infoDiagram-FWYZ7A6U-B2fQgHuK.js → infoDiagram-FWYZ7A6U-B9uxXFIw.js} +2 -2
- package/dist/{infoDiagram-FWYZ7A6U-B2fQgHuK.js.map → infoDiagram-FWYZ7A6U-B9uxXFIw.js.map} +1 -1
- package/dist/{ishikawaDiagram-FXEZZL3T-CzCEw_Ul.js → ishikawaDiagram-FXEZZL3T-BYwWtePo.js} +2 -2
- package/dist/{ishikawaDiagram-FXEZZL3T-CzCEw_Ul.js.map → ishikawaDiagram-FXEZZL3T-BYwWtePo.js.map} +1 -1
- package/dist/{ishikawaDiagram-FXEZZL3T-DJyX5Gha.cjs → ishikawaDiagram-FXEZZL3T-BiUwMJgc.cjs} +2 -2
- package/dist/{ishikawaDiagram-FXEZZL3T-DJyX5Gha.cjs.map → ishikawaDiagram-FXEZZL3T-BiUwMJgc.cjs.map} +1 -1
- package/dist/{journeyDiagram-5HDEW3XC-BGN5aU4q.js → journeyDiagram-5HDEW3XC-Boew_-SU.js} +5 -5
- package/dist/{journeyDiagram-5HDEW3XC-BGN5aU4q.js.map → journeyDiagram-5HDEW3XC-Boew_-SU.js.map} +1 -1
- package/dist/{journeyDiagram-5HDEW3XC-CIvJdEj0.cjs → journeyDiagram-5HDEW3XC-GCMUbSH7.cjs} +2 -2
- package/dist/{journeyDiagram-5HDEW3XC-CIvJdEj0.cjs.map → journeyDiagram-5HDEW3XC-GCMUbSH7.cjs.map} +1 -1
- package/dist/{kanban-definition-HUTT4EX6-iEIg5sKs.cjs → kanban-definition-HUTT4EX6-ByqPSoS4.cjs} +2 -2
- package/dist/{kanban-definition-HUTT4EX6-iEIg5sKs.cjs.map → kanban-definition-HUTT4EX6-ByqPSoS4.cjs.map} +1 -1
- package/dist/{kanban-definition-HUTT4EX6-D35VyFf4.js → kanban-definition-HUTT4EX6-QtPgRFBx.js} +3 -3
- package/dist/{kanban-definition-HUTT4EX6-D35VyFf4.js.map → kanban-definition-HUTT4EX6-QtPgRFBx.js.map} +1 -1
- package/dist/{linear-l2OX_Le7.cjs → linear-C6OlRBoL.cjs} +2 -2
- package/dist/{linear-l2OX_Le7.cjs.map → linear-C6OlRBoL.cjs.map} +1 -1
- package/dist/{linear-Cmh-DOwR.js → linear-D-NvxS9T.js} +2 -2
- package/dist/{linear-Cmh-DOwR.js.map → linear-D-NvxS9T.js.map} +1 -1
- package/dist/{mindmap-definition-LN4V7U3C-BgHuUUsq.js → mindmap-definition-LN4V7U3C-AuDA6bik.js} +4 -4
- package/dist/{mindmap-definition-LN4V7U3C-BgHuUUsq.js.map → mindmap-definition-LN4V7U3C-AuDA6bik.js.map} +1 -1
- package/dist/{mindmap-definition-LN4V7U3C-Btqpo9UV.cjs → mindmap-definition-LN4V7U3C-BXEmhige.cjs} +2 -2
- package/dist/{mindmap-definition-LN4V7U3C-Btqpo9UV.cjs.map → mindmap-definition-LN4V7U3C-BXEmhige.cjs.map} +1 -1
- package/dist/{pegDiagram-2B236MQR-DLJzscb9.js → pegDiagram-2B236MQR-BRedOzpf.js} +4 -4
- package/dist/{pegDiagram-2B236MQR-DLJzscb9.js.map → pegDiagram-2B236MQR-BRedOzpf.js.map} +1 -1
- package/dist/{pegDiagram-2B236MQR-roiPWRiH.cjs → pegDiagram-2B236MQR-D9yxMYRK.cjs} +2 -2
- package/dist/{pegDiagram-2B236MQR-roiPWRiH.cjs.map → pegDiagram-2B236MQR-D9yxMYRK.cjs.map} +1 -1
- package/dist/{pieDiagram-ENE6RG2P-Z0Tr5rLS.js → pieDiagram-ENE6RG2P-CYHOjNgc.js} +4 -4
- package/dist/{pieDiagram-ENE6RG2P-Z0Tr5rLS.js.map → pieDiagram-ENE6RG2P-CYHOjNgc.js.map} +1 -1
- package/dist/{pieDiagram-ENE6RG2P-CGlCA23u.cjs → pieDiagram-ENE6RG2P-CfMAyyLr.cjs} +2 -2
- package/dist/{pieDiagram-ENE6RG2P-CGlCA23u.cjs.map → pieDiagram-ENE6RG2P-CfMAyyLr.cjs.map} +1 -1
- package/dist/{quadrantDiagram-ABIIQ3AL-DorNYvMy.cjs → quadrantDiagram-ABIIQ3AL-CLJfxi7Q.cjs} +2 -2
- package/dist/{quadrantDiagram-ABIIQ3AL-DorNYvMy.cjs.map → quadrantDiagram-ABIIQ3AL-CLJfxi7Q.cjs.map} +1 -1
- package/dist/{quadrantDiagram-ABIIQ3AL-CJ1ISOQ0.js → quadrantDiagram-ABIIQ3AL-n6QV6adE.js} +3 -3
- package/dist/{quadrantDiagram-ABIIQ3AL-CJ1ISOQ0.js.map → quadrantDiagram-ABIIQ3AL-n6QV6adE.js.map} +1 -1
- package/dist/{railroadDiagram-RFXS5EU6-B_4eQzNx.cjs → railroadDiagram-RFXS5EU6-CZoR0XYh.cjs} +2 -2
- package/dist/{railroadDiagram-RFXS5EU6-B_4eQzNx.cjs.map → railroadDiagram-RFXS5EU6-CZoR0XYh.cjs.map} +1 -1
- package/dist/{railroadDiagram-RFXS5EU6-D7btuBis.js → railroadDiagram-RFXS5EU6-Dum26NsB.js} +4 -4
- package/dist/{railroadDiagram-RFXS5EU6-D7btuBis.js.map → railroadDiagram-RFXS5EU6-Dum26NsB.js.map} +1 -1
- package/dist/{requirementDiagram-TGXJPOKE-Coq4TPEH.cjs → requirementDiagram-TGXJPOKE-1fza5CDh.cjs} +2 -2
- package/dist/{requirementDiagram-TGXJPOKE-Coq4TPEH.cjs.map → requirementDiagram-TGXJPOKE-1fza5CDh.cjs.map} +1 -1
- package/dist/{requirementDiagram-TGXJPOKE-Bn0TBPZZ.js → requirementDiagram-TGXJPOKE-8lWqfUou.js} +4 -4
- package/dist/{requirementDiagram-TGXJPOKE-Bn0TBPZZ.js.map → requirementDiagram-TGXJPOKE-8lWqfUou.js.map} +1 -1
- package/dist/{sankeyDiagram-HTMAVEWB-uvKU8Z1V.cjs → sankeyDiagram-HTMAVEWB-BLRRlYIu.cjs} +2 -2
- package/dist/{sankeyDiagram-HTMAVEWB-uvKU8Z1V.cjs.map → sankeyDiagram-HTMAVEWB-BLRRlYIu.cjs.map} +1 -1
- package/dist/{sankeyDiagram-HTMAVEWB-BrZE6B7z.js → sankeyDiagram-HTMAVEWB-C4NdHXvR.js} +2 -2
- package/dist/{sankeyDiagram-HTMAVEWB-BrZE6B7z.js.map → sankeyDiagram-HTMAVEWB-C4NdHXvR.js.map} +1 -1
- package/dist/{sequenceDiagram-DBY2YBRQ-Ld9DjEAL.js → sequenceDiagram-DBY2YBRQ-CORurNjC.js} +4 -4
- package/dist/{sequenceDiagram-DBY2YBRQ-Ld9DjEAL.js.map → sequenceDiagram-DBY2YBRQ-CORurNjC.js.map} +1 -1
- package/dist/{sequenceDiagram-DBY2YBRQ-DYLA-hiX.cjs → sequenceDiagram-DBY2YBRQ-DtVYcAp0.cjs} +2 -2
- package/dist/{sequenceDiagram-DBY2YBRQ-DYLA-hiX.cjs.map → sequenceDiagram-DBY2YBRQ-DtVYcAp0.cjs.map} +1 -1
- package/dist/{sizeCapture-X5ZJPWSS-DekqMlF3.cjs → sizeCapture-X5ZJPWSS-DVickuSI.cjs} +2 -2
- package/dist/{sizeCapture-X5ZJPWSS-DekqMlF3.cjs.map → sizeCapture-X5ZJPWSS-DVickuSI.cjs.map} +1 -1
- package/dist/{sizeCapture-X5ZJPWSS-COd46XYA.js → sizeCapture-X5ZJPWSS-DWkG146w.js} +2 -2
- package/dist/{sizeCapture-X5ZJPWSS-COd46XYA.js.map → sizeCapture-X5ZJPWSS-DWkG146w.js.map} +1 -1
- package/dist/src/components/MarkdownRenderer.d.ts.map +1 -1
- package/dist/src/index.server.d.ts +1 -1
- package/dist/src/index.server.d.ts.map +1 -1
- package/dist/src/remarkProcessor.server.d.ts +17 -4
- package/dist/src/remarkProcessor.server.d.ts.map +1 -1
- package/dist/{stateDiagram-2N3HPSRC-CqFpcc2E.cjs → stateDiagram-2N3HPSRC-BknEdRtj.cjs} +2 -2
- package/dist/{stateDiagram-2N3HPSRC-CqFpcc2E.cjs.map → stateDiagram-2N3HPSRC-BknEdRtj.cjs.map} +1 -1
- package/dist/{stateDiagram-2N3HPSRC-c5IFARv9.js → stateDiagram-2N3HPSRC-Cfx8fgeN.js} +3 -3
- package/dist/{stateDiagram-2N3HPSRC-c5IFARv9.js.map → stateDiagram-2N3HPSRC-Cfx8fgeN.js.map} +1 -1
- package/dist/{stateDiagram-v2-6OUMAXLB-Y2OIOAuG.cjs → stateDiagram-v2-6OUMAXLB-C45X7LJs.cjs} +2 -2
- package/dist/{stateDiagram-v2-6OUMAXLB-Y2OIOAuG.cjs.map → stateDiagram-v2-6OUMAXLB-C45X7LJs.cjs.map} +1 -1
- package/dist/{stateDiagram-v2-6OUMAXLB-DE5qVbne.js → stateDiagram-v2-6OUMAXLB-DeDkN5NL.js} +3 -3
- package/dist/{stateDiagram-v2-6OUMAXLB-DE5qVbne.js.map → stateDiagram-v2-6OUMAXLB-DeDkN5NL.js.map} +1 -1
- package/dist/{swimlanes-5IMT3BWC-D9QsN5z9.cjs → swimlanes-5IMT3BWC-CcosnJe6.cjs} +2 -2
- package/dist/{swimlanes-5IMT3BWC-D9QsN5z9.cjs.map → swimlanes-5IMT3BWC-CcosnJe6.cjs.map} +1 -1
- package/dist/{swimlanes-5IMT3BWC-Dk5rHErR.js → swimlanes-5IMT3BWC-CjWgy5Nl.js} +4 -4
- package/dist/{swimlanes-5IMT3BWC-Dk5rHErR.js.map → swimlanes-5IMT3BWC-CjWgy5Nl.js.map} +1 -1
- package/dist/{swimlanesDiagram-G3AALYLV-Bv7kKcuh.js → swimlanesDiagram-G3AALYLV-C7K0ECob.js} +3 -3
- package/dist/{swimlanesDiagram-G3AALYLV-Bv7kKcuh.js.map → swimlanesDiagram-G3AALYLV-C7K0ECob.js.map} +1 -1
- package/dist/{swimlanesDiagram-G3AALYLV-CYI3Y5AN.cjs → swimlanesDiagram-G3AALYLV-CQ4pFZ7c.cjs} +2 -2
- package/dist/{swimlanesDiagram-G3AALYLV-CYI3Y5AN.cjs.map → swimlanesDiagram-G3AALYLV-CQ4pFZ7c.cjs.map} +1 -1
- package/dist/{timeline-definition-FHXFAJF6-BjtmBcJ0.cjs → timeline-definition-FHXFAJF6-BhUes2U0.cjs} +2 -2
- package/dist/{timeline-definition-FHXFAJF6-BjtmBcJ0.cjs.map → timeline-definition-FHXFAJF6-BhUes2U0.cjs.map} +1 -1
- package/dist/{timeline-definition-FHXFAJF6-neQ5HF9O.js → timeline-definition-FHXFAJF6-BpHq7pCq.js} +3 -3
- package/dist/{timeline-definition-FHXFAJF6-neQ5HF9O.js.map → timeline-definition-FHXFAJF6-BpHq7pCq.js.map} +1 -1
- package/dist/{vennDiagram-L72KCM5P-BWCx0JWU.js → vennDiagram-L72KCM5P-CViCZQE_.js} +2 -2
- package/dist/{vennDiagram-L72KCM5P-BWCx0JWU.js.map → vennDiagram-L72KCM5P-CViCZQE_.js.map} +1 -1
- package/dist/{vennDiagram-L72KCM5P-CmbNlDXz.cjs → vennDiagram-L72KCM5P-MipLCwdh.cjs} +2 -2
- package/dist/{vennDiagram-L72KCM5P-CmbNlDXz.cjs.map → vennDiagram-L72KCM5P-MipLCwdh.cjs.map} +1 -1
- package/dist/vite.config.d.ts.map +1 -1
- package/dist/{wardleyDiagram-EHGQE667-BSQjKey2.js → wardleyDiagram-EHGQE667-BE-NasW6.js} +3 -3
- package/dist/{wardleyDiagram-EHGQE667-BSQjKey2.js.map → wardleyDiagram-EHGQE667-BE-NasW6.js.map} +1 -1
- package/dist/{wardleyDiagram-EHGQE667-D9Skt5ER.cjs → wardleyDiagram-EHGQE667-fp0RsUhv.cjs} +2 -2
- package/dist/{wardleyDiagram-EHGQE667-D9Skt5ER.cjs.map → wardleyDiagram-EHGQE667-fp0RsUhv.cjs.map} +1 -1
- package/dist/{xychartDiagram-FW5EYKEG-Bb1p0f9X.js → xychartDiagram-FW5EYKEG-BqgTl_sX.js} +3 -3
- package/dist/{xychartDiagram-FW5EYKEG-Bb1p0f9X.js.map → xychartDiagram-FW5EYKEG-BqgTl_sX.js.map} +1 -1
- package/dist/{xychartDiagram-FW5EYKEG-Bo1zygix.cjs → xychartDiagram-FW5EYKEG-crv7LyAW.cjs} +2 -2
- package/dist/{xychartDiagram-FW5EYKEG-Bo1zygix.cjs.map → xychartDiagram-FW5EYKEG-crv7LyAW.cjs.map} +1 -1
- package/package.json +30 -7
- package/dist/channel-DE38-vXn.js +0 -6
- package/dist/channel-Y185eoRi.cjs +0 -2
- package/dist/flowDiagram-23GEKE2U-Cf-gVgCQ.cjs +0 -2
- package/dist/flowDiagram-23GEKE2U-Cf-gVgCQ.cjs.map +0 -1
- package/dist/flowDiagram-23GEKE2U-V8nxVw67.js +0 -8
- package/dist/flowDiagram-23GEKE2U-V8nxVw67.js.map +0 -1
- package/dist/markdown-api +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dagre-VKFMJZFB-CDLGY9Bv.cjs","sources":["../../../node_modules/.pnpm/mermaid@11.16.0/node_modules/mermaid/dist/chunks/mermaid.core/dagre-VKFMJZFB.mjs"],"sourcesContent":["import {\n adjustClustersAndEdges,\n clear as clear4,\n clusterDb,\n findNonClusterChild,\n sortNodesByHierarchy\n} from \"./chunk-RYQCIY6F.mjs\";\nimport {\n clear as clear2,\n insertEdge,\n insertEdgeLabel,\n markers_default,\n positionEdgeLabel\n} from \"./chunk-52WLFC77.mjs\";\nimport {\n clear,\n clear2 as clear3,\n insertCluster,\n insertNode,\n positionNode,\n setNodeElem,\n updateNodeBounds\n} from \"./chunk-ZGVPDNZ5.mjs\";\nimport \"./chunk-C7G6YPKG.mjs\";\nimport \"./chunk-7BUUIJ7U.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-OGEWGWER.mjs\";\nimport \"./chunk-Q4XR5HBZ.mjs\";\nimport \"./chunk-HOUHSVGY.mjs\";\nimport \"./chunk-ICXQ74PX.mjs\";\nimport {\n getConfig2 as getConfig\n} from \"./chunk-WYO6CB5R.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/rendering-util/layout-algorithms/dagre/index.js\nimport { layout as dagreLayout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlibJson from \"dagre-d3-es/src/graphlib/json.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nvar clamp = /* @__PURE__ */ __name((value, min, max) => Math.max(min, Math.min(max, value)), \"clamp\");\nvar getDefaultSelfLoopSide = /* @__PURE__ */ __name((rankdir = \"TB\") => {\n switch (rankdir) {\n case \"BT\":\n return \"bottom\";\n case \"LR\":\n return \"right\";\n case \"RL\":\n return \"left\";\n case \"TB\":\n default:\n return \"top\";\n }\n}, \"getDefaultSelfLoopSide\");\nvar shouldMergeSelfLoopSegments = /* @__PURE__ */ __name((diagramType) => diagramType === \"flowchart\" || diagramType === \"flowchart-v2\" || diagramType === \"stateDiagram\", \"shouldMergeSelfLoopSegments\");\nvar getSelfLoopSide = /* @__PURE__ */ __name((graph, node, segments, originalNodeId, rankdir) => {\n const layoutHints = [];\n const dummyNodeIds = /* @__PURE__ */ new Set();\n segments.forEach(({ start, end }) => {\n if (start !== originalNodeId) {\n dummyNodeIds.add(start);\n }\n if (end !== originalNodeId) {\n dummyNodeIds.add(end);\n }\n });\n dummyNodeIds.forEach((id) => {\n const dummyNode = graph.node(id);\n if (typeof dummyNode?.x === \"number\" && typeof dummyNode?.y === \"number\") {\n layoutHints.push(dummyNode);\n }\n });\n if (layoutHints.length === 0) {\n segments.forEach(({ edge }) => {\n (edge.points ?? []).forEach((point) => {\n if (typeof point?.x === \"number\" && typeof point?.y === \"number\") {\n layoutHints.push(point);\n }\n });\n });\n }\n if (layoutHints.length === 0) {\n return getDefaultSelfLoopSide(rankdir);\n }\n const center = layoutHints.reduce(\n (acc, point) => ({\n x: acc.x + point.x / layoutHints.length,\n y: acc.y + point.y / layoutHints.length\n }),\n { x: 0, y: 0 }\n );\n const dx = center.x - node.x;\n const dy = center.y - node.y;\n if (Math.abs(dx) > Math.abs(dy)) {\n return dx > 0 ? \"right\" : \"left\";\n }\n if (Math.abs(dy) > 0) {\n return dy > 0 ? \"bottom\" : \"top\";\n }\n return getDefaultSelfLoopSide(rankdir);\n}, \"getSelfLoopSide\");\nvar getSelfLoopPoints = /* @__PURE__ */ __name((node, side = \"top\", yOffset = 0, labelWidth = 0) => {\n const x = node.x;\n const y = node.y - yOffset;\n const halfWidth = node.width / 2;\n const halfHeight = node.height / 2;\n const maxSpan = Math.max(36, Math.min(100, node.width * 0.8));\n const span = clamp(Math.max(labelWidth, node.width * 0.35), 36, maxSpan);\n const depth = clamp(Math.min(node.width, node.height) * 0.45, 24, 48);\n switch (side) {\n case \"bottom\": {\n const bottom = y + halfHeight;\n return [\n { x: x - span / 2, y: bottom },\n { x: x - span / 2, y: bottom + depth },\n { x: x + span / 2, y: bottom + depth },\n { x: x + span / 2, y: bottom }\n ];\n }\n case \"right\": {\n const right = x + halfWidth;\n return [\n { x: right, y: y - span / 2 },\n { x: right + depth, y: y - span / 2 },\n { x: right + depth, y: y + span / 2 },\n { x: right, y: y + span / 2 }\n ];\n }\n case \"left\": {\n const left = x - halfWidth;\n return [\n { x: left, y: y - span / 2 },\n { x: left - depth, y: y - span / 2 },\n { x: left - depth, y: y + span / 2 },\n { x: left, y: y + span / 2 }\n ];\n }\n case \"top\":\n default: {\n const top = y - halfHeight;\n return [\n { x: x - span / 2, y: top },\n { x: x - span / 2, y: top - depth },\n { x: x + span / 2, y: top - depth },\n { x: x + span / 2, y: top }\n ];\n }\n }\n}, \"getSelfLoopPoints\");\nvar getSelfLoopLabelPosition = /* @__PURE__ */ __name((node, points, side = \"top\", yOffset = 0, label = {}) => {\n const gap = 4;\n const x = node.x;\n const y = node.y - yOffset;\n const labelWidth = label.width ?? 0;\n const labelHeight = label.height ?? 0;\n switch (side) {\n case \"bottom\":\n return { x, y: Math.max(...points.map((point) => point.y)) + labelHeight / 2 + gap };\n case \"right\":\n return { x: Math.max(...points.map((point) => point.x)) + labelWidth / 2 + gap, y };\n case \"left\":\n return { x: Math.min(...points.map((point) => point.x)) - labelWidth / 2 - gap, y };\n case \"top\":\n default:\n return { x, y: Math.min(...points.map((point) => point.y)) - labelHeight / 2 - gap };\n }\n}, \"getSelfLoopLabelPosition\");\nvar getEdgesToRender = /* @__PURE__ */ __name((graph, yOffset = 0, { mergeSelfLoops = true } = {}) => {\n const selfLoopEdgeGroups = /* @__PURE__ */ new Map();\n const edgesToRender = [];\n const rankdir = graph.graph()?.rankdir;\n graph.edges().forEach((e) => {\n const edge = graph.edge(e);\n if (mergeSelfLoops && edge.selfLoop) {\n const key = edge.selfLoop.id;\n if (!selfLoopEdgeGroups.has(key)) {\n selfLoopEdgeGroups.set(key, []);\n }\n selfLoopEdgeGroups.get(key).push({ edge, start: e.v, end: e.w });\n } else {\n edgesToRender.push({ edge, start: e.v, end: e.w });\n }\n });\n selfLoopEdgeGroups.forEach((segments) => {\n if (segments.length !== 3) {\n segments.forEach((segment) => edgesToRender.push(segment));\n return;\n }\n segments.sort((a, b) => a.edge.selfLoop.order - b.edge.selfLoop.order);\n const [firstSegment, middleSegment, lastSegment] = segments;\n const originalEdge = firstSegment.edge.originalEdge ?? middleSegment.edge.originalEdge ?? lastSegment.edge.originalEdge ?? middleSegment.edge;\n const node = graph.node(originalEdge.start);\n if (!node) {\n segments.forEach((segment) => edgesToRender.push(segment));\n return;\n }\n const label = {\n width: middleSegment.edge.width,\n height: middleSegment.edge.height\n };\n const side = getSelfLoopSide(graph, node, segments, originalEdge.start, rankdir);\n const points = getSelfLoopPoints(node, side, yOffset, label.width ?? 0);\n const labelPosition = getSelfLoopLabelPosition(node, points, side, yOffset, label);\n const mergedEdge = {\n ...middleSegment.edge,\n ...originalEdge,\n id: originalEdge.id,\n points,\n start: originalEdge.start,\n end: originalEdge.end,\n x: labelPosition.x,\n y: labelPosition.y,\n width: label.width,\n height: label.height,\n labelStyle: middleSegment.edge.labelStyle,\n fromCluster: firstSegment.edge.fromCluster ?? middleSegment.edge.fromCluster ?? lastSegment.edge.fromCluster,\n toCluster: firstSegment.edge.toCluster ?? middleSegment.edge.toCluster ?? lastSegment.edge.toCluster\n };\n delete mergedEdge.selfLoop;\n delete mergedEdge.originalEdge;\n edgesToRender.push({ edge: mergedEdge, start: mergedEdge.start, end: mergedEdge.end });\n });\n return edgesToRender;\n}, \"getEdgesToRender\");\nvar recursiveRender = /* @__PURE__ */ __name(async (_elem, graph, diagramType, id, parentCluster, siteConfig) => {\n log.warn(\"Graph in recursive render:XAX\", graphlibJson.write(graph), parentCluster);\n const dir = graph.graph().rankdir;\n log.trace(\"Dir in recursive render - dir:\", dir);\n const elem = _elem.insert(\"g\").attr(\"class\", \"root\");\n if (!graph.nodes()) {\n log.info(\"No nodes found for\", graph);\n } else {\n log.info(\"Recursive render XXX\", graph.nodes());\n }\n if (graph.edges().length > 0) {\n log.info(\"Recursive edges\", graph.edge(graph.edges()[0]));\n }\n const clusters = elem.insert(\"g\").attr(\"class\", \"clusters\");\n const edgePaths = elem.insert(\"g\").attr(\"class\", \"edgePaths\");\n const edgeLabels = elem.insert(\"g\").attr(\"class\", \"edgeLabels\");\n const nodes = elem.insert(\"g\").attr(\"class\", \"nodes\");\n const mergeSelfLoops = shouldMergeSelfLoopSegments(diagramType);\n await Promise.all(\n graph.nodes().map(async function(v) {\n const node = graph.node(v);\n if (parentCluster !== void 0) {\n const data = JSON.parse(JSON.stringify(parentCluster.clusterData));\n log.trace(\n \"Setting data for parent cluster XXX\\n Node.id = \",\n v,\n \"\\n data=\",\n data.height,\n \"\\nParent cluster\",\n parentCluster.height\n );\n graph.setNode(parentCluster.id, data);\n if (!graph.parent(v)) {\n log.trace(\"Setting parent\", v, parentCluster.id);\n graph.setParent(v, parentCluster.id, data);\n }\n }\n log.info(\"(Insert) Node XXX\" + v + \": \" + JSON.stringify(graph.node(v)));\n if (node?.clusterNode) {\n log.info(\"Cluster identified XBX\", v, node.width, graph.node(v));\n const { ranksep, nodesep } = graph.graph();\n node.graph.setGraph({\n ...node.graph.graph(),\n ranksep: ranksep + 25,\n nodesep\n });\n const o = await recursiveRender(\n nodes,\n node.graph,\n diagramType,\n id,\n graph.node(v),\n siteConfig\n );\n const newEl = o.elem;\n updateNodeBounds(node, newEl);\n node.diff = o.diff || 0;\n log.info(\n \"New compound node after recursive render XAX\",\n v,\n \"width\",\n // node,\n node.width,\n \"height\",\n node.height\n // node.x,\n // node.y\n );\n setNodeElem(newEl, node);\n } else {\n if (graph.children(v).length > 0) {\n log.trace(\n \"Cluster - the non recursive path XBX\",\n v,\n node.id,\n node,\n node.width,\n \"Graph:\",\n graph\n );\n log.trace(findNonClusterChild(node.id, graph));\n clusterDb.set(node.id, { id: findNonClusterChild(node.id, graph), node });\n } else {\n log.trace(\"Node - the non recursive path XAX\", v, nodes, graph.node(v), dir);\n await insertNode(nodes, graph.node(v), { config: siteConfig, dir });\n }\n }\n })\n );\n const processEdges = /* @__PURE__ */ __name(async () => {\n const edgePromises = graph.edges().map(async function(e) {\n const edge = graph.edge(e.v, e.w, e.name);\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \", e, \" \", JSON.stringify(graph.edge(e)));\n log.info(\n \"Fix\",\n clusterDb,\n \"ids:\",\n e.v,\n e.w,\n \"Translating: \",\n clusterDb.get(e.v),\n clusterDb.get(e.w)\n );\n if (mergeSelfLoops && edge.selfLoop) {\n if (edge.selfLoop.order !== 1) {\n return;\n }\n const segmentId = edge.id;\n edge.id = edge.selfLoop.id;\n await insertEdgeLabel(edgeLabels, edge);\n edge.id = segmentId;\n return;\n }\n await insertEdgeLabel(edgeLabels, edge);\n });\n await Promise.all(edgePromises);\n }, \"processEdges\");\n await processEdges();\n log.info(\"Graph before layout:\", JSON.stringify(graphlibJson.write(graph)));\n log.info(\"############################################# XXX\");\n log.info(\"### Layout ### XXX\");\n log.info(\"############################################# XXX\");\n dagreLayout(graph);\n log.info(\"Graph after layout:\", JSON.stringify(graphlibJson.write(graph)));\n let diff = 0;\n let { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);\n await Promise.all(\n sortNodesByHierarchy(graph).map(async function(v) {\n const node = graph.node(v);\n log.info(\n \"Position XBX => \" + v + \": (\" + node.x,\n \",\" + node.y,\n \") width: \",\n node.width,\n \" height: \",\n node.height\n );\n if (node?.clusterNode) {\n node.y += subGraphTitleTotalMargin;\n log.info(\n \"A tainted cluster node XBX1\",\n v,\n node.id,\n node.width,\n node.height,\n node.x,\n node.y,\n graph.parent(v)\n );\n clusterDb.get(node.id).node = node;\n positionNode(node);\n } else {\n if (graph.children(v).length > 0) {\n log.info(\n \"A pure cluster node XBX1\",\n v,\n node.id,\n node.x,\n node.y,\n node.width,\n node.height,\n graph.parent(v)\n );\n node.height += subGraphTitleTotalMargin;\n graph.node(node.parentId);\n const halfPadding = node?.padding / 2 || 0;\n const labelHeight = node?.labelBBox?.height || 0;\n const offsetY = labelHeight - halfPadding || 0;\n log.debug(\"OffsetY\", offsetY, \"labelHeight\", labelHeight, \"halfPadding\", halfPadding);\n await insertCluster(clusters, node);\n clusterDb.get(node.id).node = node;\n } else {\n const parent = graph.node(node.parentId);\n node.y += subGraphTitleTotalMargin / 2;\n log.info(\n \"A regular node XBX1 - using the padding\",\n node.id,\n \"parent\",\n node.parentId,\n node.width,\n node.height,\n node.x,\n node.y,\n \"offsetY\",\n node.offsetY,\n \"parent\",\n parent,\n parent?.offsetY,\n node\n );\n positionNode(node);\n }\n }\n })\n );\n const edgeOffsetY = subGraphTitleTotalMargin / 2;\n const edgesToRender = getEdgesToRender(graph, edgeOffsetY, { mergeSelfLoops });\n edgesToRender.forEach(function({ edge, start, end }) {\n log.info(\"Edge \" + start + \" -> \" + end + \": \" + JSON.stringify(edge), edge);\n edge.points.forEach((point) => point.y += edgeOffsetY);\n const startNode = graph.node(start);\n const endNode = graph.node(end);\n const paths = insertEdge(edgePaths, edge, clusterDb, diagramType, startNode, endNode, id);\n positionEdgeLabel(edge, paths);\n });\n graph.nodes().forEach(function(v) {\n const n = graph.node(v);\n log.info(v, n.type, n.diff);\n if (n.isGroup) {\n diff = n.diff;\n }\n });\n log.warn(\"Returning from recursive render XAX\", elem, diff);\n return { elem, diff };\n}, \"recursiveRender\");\nvar render = /* @__PURE__ */ __name(async (data4Layout, svg) => {\n const graph = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: data4Layout.direction,\n nodesep: data4Layout.config?.nodeSpacing || data4Layout.config?.flowchart?.nodeSpacing || data4Layout.nodeSpacing,\n ranksep: data4Layout.config?.rankSpacing || data4Layout.config?.flowchart?.rankSpacing || data4Layout.rankSpacing,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n const element = svg.select(\"g\");\n markers_default(element, data4Layout.markers, data4Layout.type, data4Layout.diagramId);\n clear3();\n clear2();\n clear();\n clear4();\n data4Layout.nodes.forEach((node) => {\n graph.setNode(node.id, { ...node });\n if (node.parentId) {\n graph.setParent(node.id, node.parentId);\n }\n });\n log.debug(\"Edges:\", data4Layout.edges);\n data4Layout.edges.forEach((edge) => {\n if (edge.start === edge.end) {\n const nodeId = edge.start;\n const specialId1 = nodeId + \"---\" + nodeId + \"---1\";\n const specialId2 = nodeId + \"---\" + nodeId + \"---2\";\n const node = graph.node(nodeId);\n graph.setNode(specialId1, {\n domId: specialId1,\n id: specialId1,\n parentId: node.parentId,\n labelStyle: \"\",\n label: \"\",\n padding: 0,\n shape: \"labelRect\",\n // shape: 'rect',\n style: \"\",\n width: 10,\n height: 10\n });\n graph.setParent(specialId1, node.parentId);\n graph.setNode(specialId2, {\n domId: specialId2,\n id: specialId2,\n parentId: node.parentId,\n labelStyle: \"\",\n padding: 0,\n // shape: 'rect',\n shape: \"labelRect\",\n label: \"\",\n style: \"\",\n width: 10,\n height: 10\n });\n graph.setParent(specialId2, node.parentId);\n const originalEdge = structuredClone(edge);\n const edge1 = structuredClone(edge);\n const edgeMid = structuredClone(edge);\n const edge2 = structuredClone(edge);\n edge1.originalEdge = originalEdge;\n edge1.selfLoop = { id: originalEdge.id, order: 0 };\n edgeMid.originalEdge = originalEdge;\n edgeMid.selfLoop = { id: originalEdge.id, order: 1 };\n edge2.originalEdge = originalEdge;\n edge2.selfLoop = { id: originalEdge.id, order: 2 };\n edge1.label = \"\";\n edge1.arrowTypeEnd = \"none\";\n edge1.endLabelLeft = \"\";\n edge1.endLabelRight = \"\";\n edge1.startLabelLeft = \"\";\n edge1.id = nodeId + \"-cyclic-special-1\";\n edgeMid.startLabelRight = \"\";\n edgeMid.startLabelLeft = \"\";\n edgeMid.endLabelLeft = \"\";\n edgeMid.endLabelRight = \"\";\n edgeMid.arrowTypeStart = \"none\";\n edgeMid.arrowTypeEnd = \"none\";\n edgeMid.id = nodeId + \"-cyclic-special-mid\";\n edge2.label = \"\";\n edge2.startLabelRight = \"\";\n edge2.startLabelLeft = \"\";\n edge2.arrowTypeStart = \"none\";\n if (node.isGroup) {\n edge1.fromCluster = nodeId;\n edge2.toCluster = nodeId;\n }\n edge2.id = nodeId + \"-cyclic-special-2\";\n edge2.arrowTypeStart = \"none\";\n graph.setEdge(nodeId, specialId1, edge1, nodeId + \"-cyclic-special-0\");\n graph.setEdge(specialId1, specialId2, edgeMid, nodeId + \"-cyclic-special-1\");\n graph.setEdge(specialId2, nodeId, edge2, nodeId + \"-cyclic-special-2\");\n } else {\n graph.setEdge(edge.start, edge.end, { ...edge }, edge.id);\n }\n });\n log.warn(\"Graph at first:\", JSON.stringify(graphlibJson.write(graph)));\n adjustClustersAndEdges(graph);\n log.warn(\"Graph after XAX:\", JSON.stringify(graphlibJson.write(graph)));\n const siteConfig = getConfig();\n await recursiveRender(\n element,\n graph,\n data4Layout.type,\n data4Layout.diagramId,\n void 0,\n siteConfig\n );\n}, \"render\");\nexport {\n getEdgesToRender,\n render\n};\n"],"names":["clamp","__name","value","min","max","getDefaultSelfLoopSide","rankdir","shouldMergeSelfLoopSegments","diagramType","getSelfLoopSide","graph","node","segments","originalNodeId","layoutHints","dummyNodeIds","start","end","id","dummyNode","edge","point","center","acc","dx","dy","getSelfLoopPoints","side","yOffset","labelWidth","x","y","halfWidth","halfHeight","maxSpan","span","depth","bottom","right","left","top","getSelfLoopLabelPosition","points","label","labelHeight","getEdgesToRender","mergeSelfLoops","selfLoopEdgeGroups","edgesToRender","e","key","segment","a","b","firstSegment","middleSegment","lastSegment","originalEdge","labelPosition","mergedEdge","recursiveRender","_elem","parentCluster","siteConfig","log","graphlibJson.write","dir","elem","clusters","edgePaths","edgeLabels","nodes","v","data","ranksep","nodesep","o","newEl","updateNodeBounds","setNodeElem","findNonClusterChild","clusterDb","insertNode","edgePromises","segmentId","insertEdgeLabel","dagreLayout","diff","subGraphTitleTotalMargin","getSubGraphTitleMargins","sortNodesByHierarchy","positionNode","halfPadding","offsetY","insertCluster","parent","edgeOffsetY","startNode","endNode","paths","insertEdge","positionEdgeLabel","n","render","data4Layout","svg","graphlib.Graph","element","markers_default","clear3","clear2","clear","clear4","nodeId","specialId1","specialId2","edge1","edgeMid","edge2","adjustClustersAndEdges","getConfig"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"dagre-VKFMJZFB-BMJn8PTf.cjs","sources":["../../../node_modules/.pnpm/mermaid@11.16.0/node_modules/mermaid/dist/chunks/mermaid.core/dagre-VKFMJZFB.mjs"],"sourcesContent":["import {\n adjustClustersAndEdges,\n clear as clear4,\n clusterDb,\n findNonClusterChild,\n sortNodesByHierarchy\n} from \"./chunk-RYQCIY6F.mjs\";\nimport {\n clear as clear2,\n insertEdge,\n insertEdgeLabel,\n markers_default,\n positionEdgeLabel\n} from \"./chunk-52WLFC77.mjs\";\nimport {\n clear,\n clear2 as clear3,\n insertCluster,\n insertNode,\n positionNode,\n setNodeElem,\n updateNodeBounds\n} from \"./chunk-ZGVPDNZ5.mjs\";\nimport \"./chunk-C7G6YPKG.mjs\";\nimport \"./chunk-7BUUIJ7U.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-OGEWGWER.mjs\";\nimport \"./chunk-Q4XR5HBZ.mjs\";\nimport \"./chunk-HOUHSVGY.mjs\";\nimport \"./chunk-ICXQ74PX.mjs\";\nimport {\n getConfig2 as getConfig\n} from \"./chunk-WYO6CB5R.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/rendering-util/layout-algorithms/dagre/index.js\nimport { layout as dagreLayout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlibJson from \"dagre-d3-es/src/graphlib/json.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nvar clamp = /* @__PURE__ */ __name((value, min, max) => Math.max(min, Math.min(max, value)), \"clamp\");\nvar getDefaultSelfLoopSide = /* @__PURE__ */ __name((rankdir = \"TB\") => {\n switch (rankdir) {\n case \"BT\":\n return \"bottom\";\n case \"LR\":\n return \"right\";\n case \"RL\":\n return \"left\";\n case \"TB\":\n default:\n return \"top\";\n }\n}, \"getDefaultSelfLoopSide\");\nvar shouldMergeSelfLoopSegments = /* @__PURE__ */ __name((diagramType) => diagramType === \"flowchart\" || diagramType === \"flowchart-v2\" || diagramType === \"stateDiagram\", \"shouldMergeSelfLoopSegments\");\nvar getSelfLoopSide = /* @__PURE__ */ __name((graph, node, segments, originalNodeId, rankdir) => {\n const layoutHints = [];\n const dummyNodeIds = /* @__PURE__ */ new Set();\n segments.forEach(({ start, end }) => {\n if (start !== originalNodeId) {\n dummyNodeIds.add(start);\n }\n if (end !== originalNodeId) {\n dummyNodeIds.add(end);\n }\n });\n dummyNodeIds.forEach((id) => {\n const dummyNode = graph.node(id);\n if (typeof dummyNode?.x === \"number\" && typeof dummyNode?.y === \"number\") {\n layoutHints.push(dummyNode);\n }\n });\n if (layoutHints.length === 0) {\n segments.forEach(({ edge }) => {\n (edge.points ?? []).forEach((point) => {\n if (typeof point?.x === \"number\" && typeof point?.y === \"number\") {\n layoutHints.push(point);\n }\n });\n });\n }\n if (layoutHints.length === 0) {\n return getDefaultSelfLoopSide(rankdir);\n }\n const center = layoutHints.reduce(\n (acc, point) => ({\n x: acc.x + point.x / layoutHints.length,\n y: acc.y + point.y / layoutHints.length\n }),\n { x: 0, y: 0 }\n );\n const dx = center.x - node.x;\n const dy = center.y - node.y;\n if (Math.abs(dx) > Math.abs(dy)) {\n return dx > 0 ? \"right\" : \"left\";\n }\n if (Math.abs(dy) > 0) {\n return dy > 0 ? \"bottom\" : \"top\";\n }\n return getDefaultSelfLoopSide(rankdir);\n}, \"getSelfLoopSide\");\nvar getSelfLoopPoints = /* @__PURE__ */ __name((node, side = \"top\", yOffset = 0, labelWidth = 0) => {\n const x = node.x;\n const y = node.y - yOffset;\n const halfWidth = node.width / 2;\n const halfHeight = node.height / 2;\n const maxSpan = Math.max(36, Math.min(100, node.width * 0.8));\n const span = clamp(Math.max(labelWidth, node.width * 0.35), 36, maxSpan);\n const depth = clamp(Math.min(node.width, node.height) * 0.45, 24, 48);\n switch (side) {\n case \"bottom\": {\n const bottom = y + halfHeight;\n return [\n { x: x - span / 2, y: bottom },\n { x: x - span / 2, y: bottom + depth },\n { x: x + span / 2, y: bottom + depth },\n { x: x + span / 2, y: bottom }\n ];\n }\n case \"right\": {\n const right = x + halfWidth;\n return [\n { x: right, y: y - span / 2 },\n { x: right + depth, y: y - span / 2 },\n { x: right + depth, y: y + span / 2 },\n { x: right, y: y + span / 2 }\n ];\n }\n case \"left\": {\n const left = x - halfWidth;\n return [\n { x: left, y: y - span / 2 },\n { x: left - depth, y: y - span / 2 },\n { x: left - depth, y: y + span / 2 },\n { x: left, y: y + span / 2 }\n ];\n }\n case \"top\":\n default: {\n const top = y - halfHeight;\n return [\n { x: x - span / 2, y: top },\n { x: x - span / 2, y: top - depth },\n { x: x + span / 2, y: top - depth },\n { x: x + span / 2, y: top }\n ];\n }\n }\n}, \"getSelfLoopPoints\");\nvar getSelfLoopLabelPosition = /* @__PURE__ */ __name((node, points, side = \"top\", yOffset = 0, label = {}) => {\n const gap = 4;\n const x = node.x;\n const y = node.y - yOffset;\n const labelWidth = label.width ?? 0;\n const labelHeight = label.height ?? 0;\n switch (side) {\n case \"bottom\":\n return { x, y: Math.max(...points.map((point) => point.y)) + labelHeight / 2 + gap };\n case \"right\":\n return { x: Math.max(...points.map((point) => point.x)) + labelWidth / 2 + gap, y };\n case \"left\":\n return { x: Math.min(...points.map((point) => point.x)) - labelWidth / 2 - gap, y };\n case \"top\":\n default:\n return { x, y: Math.min(...points.map((point) => point.y)) - labelHeight / 2 - gap };\n }\n}, \"getSelfLoopLabelPosition\");\nvar getEdgesToRender = /* @__PURE__ */ __name((graph, yOffset = 0, { mergeSelfLoops = true } = {}) => {\n const selfLoopEdgeGroups = /* @__PURE__ */ new Map();\n const edgesToRender = [];\n const rankdir = graph.graph()?.rankdir;\n graph.edges().forEach((e) => {\n const edge = graph.edge(e);\n if (mergeSelfLoops && edge.selfLoop) {\n const key = edge.selfLoop.id;\n if (!selfLoopEdgeGroups.has(key)) {\n selfLoopEdgeGroups.set(key, []);\n }\n selfLoopEdgeGroups.get(key).push({ edge, start: e.v, end: e.w });\n } else {\n edgesToRender.push({ edge, start: e.v, end: e.w });\n }\n });\n selfLoopEdgeGroups.forEach((segments) => {\n if (segments.length !== 3) {\n segments.forEach((segment) => edgesToRender.push(segment));\n return;\n }\n segments.sort((a, b) => a.edge.selfLoop.order - b.edge.selfLoop.order);\n const [firstSegment, middleSegment, lastSegment] = segments;\n const originalEdge = firstSegment.edge.originalEdge ?? middleSegment.edge.originalEdge ?? lastSegment.edge.originalEdge ?? middleSegment.edge;\n const node = graph.node(originalEdge.start);\n if (!node) {\n segments.forEach((segment) => edgesToRender.push(segment));\n return;\n }\n const label = {\n width: middleSegment.edge.width,\n height: middleSegment.edge.height\n };\n const side = getSelfLoopSide(graph, node, segments, originalEdge.start, rankdir);\n const points = getSelfLoopPoints(node, side, yOffset, label.width ?? 0);\n const labelPosition = getSelfLoopLabelPosition(node, points, side, yOffset, label);\n const mergedEdge = {\n ...middleSegment.edge,\n ...originalEdge,\n id: originalEdge.id,\n points,\n start: originalEdge.start,\n end: originalEdge.end,\n x: labelPosition.x,\n y: labelPosition.y,\n width: label.width,\n height: label.height,\n labelStyle: middleSegment.edge.labelStyle,\n fromCluster: firstSegment.edge.fromCluster ?? middleSegment.edge.fromCluster ?? lastSegment.edge.fromCluster,\n toCluster: firstSegment.edge.toCluster ?? middleSegment.edge.toCluster ?? lastSegment.edge.toCluster\n };\n delete mergedEdge.selfLoop;\n delete mergedEdge.originalEdge;\n edgesToRender.push({ edge: mergedEdge, start: mergedEdge.start, end: mergedEdge.end });\n });\n return edgesToRender;\n}, \"getEdgesToRender\");\nvar recursiveRender = /* @__PURE__ */ __name(async (_elem, graph, diagramType, id, parentCluster, siteConfig) => {\n log.warn(\"Graph in recursive render:XAX\", graphlibJson.write(graph), parentCluster);\n const dir = graph.graph().rankdir;\n log.trace(\"Dir in recursive render - dir:\", dir);\n const elem = _elem.insert(\"g\").attr(\"class\", \"root\");\n if (!graph.nodes()) {\n log.info(\"No nodes found for\", graph);\n } else {\n log.info(\"Recursive render XXX\", graph.nodes());\n }\n if (graph.edges().length > 0) {\n log.info(\"Recursive edges\", graph.edge(graph.edges()[0]));\n }\n const clusters = elem.insert(\"g\").attr(\"class\", \"clusters\");\n const edgePaths = elem.insert(\"g\").attr(\"class\", \"edgePaths\");\n const edgeLabels = elem.insert(\"g\").attr(\"class\", \"edgeLabels\");\n const nodes = elem.insert(\"g\").attr(\"class\", \"nodes\");\n const mergeSelfLoops = shouldMergeSelfLoopSegments(diagramType);\n await Promise.all(\n graph.nodes().map(async function(v) {\n const node = graph.node(v);\n if (parentCluster !== void 0) {\n const data = JSON.parse(JSON.stringify(parentCluster.clusterData));\n log.trace(\n \"Setting data for parent cluster XXX\\n Node.id = \",\n v,\n \"\\n data=\",\n data.height,\n \"\\nParent cluster\",\n parentCluster.height\n );\n graph.setNode(parentCluster.id, data);\n if (!graph.parent(v)) {\n log.trace(\"Setting parent\", v, parentCluster.id);\n graph.setParent(v, parentCluster.id, data);\n }\n }\n log.info(\"(Insert) Node XXX\" + v + \": \" + JSON.stringify(graph.node(v)));\n if (node?.clusterNode) {\n log.info(\"Cluster identified XBX\", v, node.width, graph.node(v));\n const { ranksep, nodesep } = graph.graph();\n node.graph.setGraph({\n ...node.graph.graph(),\n ranksep: ranksep + 25,\n nodesep\n });\n const o = await recursiveRender(\n nodes,\n node.graph,\n diagramType,\n id,\n graph.node(v),\n siteConfig\n );\n const newEl = o.elem;\n updateNodeBounds(node, newEl);\n node.diff = o.diff || 0;\n log.info(\n \"New compound node after recursive render XAX\",\n v,\n \"width\",\n // node,\n node.width,\n \"height\",\n node.height\n // node.x,\n // node.y\n );\n setNodeElem(newEl, node);\n } else {\n if (graph.children(v).length > 0) {\n log.trace(\n \"Cluster - the non recursive path XBX\",\n v,\n node.id,\n node,\n node.width,\n \"Graph:\",\n graph\n );\n log.trace(findNonClusterChild(node.id, graph));\n clusterDb.set(node.id, { id: findNonClusterChild(node.id, graph), node });\n } else {\n log.trace(\"Node - the non recursive path XAX\", v, nodes, graph.node(v), dir);\n await insertNode(nodes, graph.node(v), { config: siteConfig, dir });\n }\n }\n })\n );\n const processEdges = /* @__PURE__ */ __name(async () => {\n const edgePromises = graph.edges().map(async function(e) {\n const edge = graph.edge(e.v, e.w, e.name);\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \", e, \" \", JSON.stringify(graph.edge(e)));\n log.info(\n \"Fix\",\n clusterDb,\n \"ids:\",\n e.v,\n e.w,\n \"Translating: \",\n clusterDb.get(e.v),\n clusterDb.get(e.w)\n );\n if (mergeSelfLoops && edge.selfLoop) {\n if (edge.selfLoop.order !== 1) {\n return;\n }\n const segmentId = edge.id;\n edge.id = edge.selfLoop.id;\n await insertEdgeLabel(edgeLabels, edge);\n edge.id = segmentId;\n return;\n }\n await insertEdgeLabel(edgeLabels, edge);\n });\n await Promise.all(edgePromises);\n }, \"processEdges\");\n await processEdges();\n log.info(\"Graph before layout:\", JSON.stringify(graphlibJson.write(graph)));\n log.info(\"############################################# XXX\");\n log.info(\"### Layout ### XXX\");\n log.info(\"############################################# XXX\");\n dagreLayout(graph);\n log.info(\"Graph after layout:\", JSON.stringify(graphlibJson.write(graph)));\n let diff = 0;\n let { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);\n await Promise.all(\n sortNodesByHierarchy(graph).map(async function(v) {\n const node = graph.node(v);\n log.info(\n \"Position XBX => \" + v + \": (\" + node.x,\n \",\" + node.y,\n \") width: \",\n node.width,\n \" height: \",\n node.height\n );\n if (node?.clusterNode) {\n node.y += subGraphTitleTotalMargin;\n log.info(\n \"A tainted cluster node XBX1\",\n v,\n node.id,\n node.width,\n node.height,\n node.x,\n node.y,\n graph.parent(v)\n );\n clusterDb.get(node.id).node = node;\n positionNode(node);\n } else {\n if (graph.children(v).length > 0) {\n log.info(\n \"A pure cluster node XBX1\",\n v,\n node.id,\n node.x,\n node.y,\n node.width,\n node.height,\n graph.parent(v)\n );\n node.height += subGraphTitleTotalMargin;\n graph.node(node.parentId);\n const halfPadding = node?.padding / 2 || 0;\n const labelHeight = node?.labelBBox?.height || 0;\n const offsetY = labelHeight - halfPadding || 0;\n log.debug(\"OffsetY\", offsetY, \"labelHeight\", labelHeight, \"halfPadding\", halfPadding);\n await insertCluster(clusters, node);\n clusterDb.get(node.id).node = node;\n } else {\n const parent = graph.node(node.parentId);\n node.y += subGraphTitleTotalMargin / 2;\n log.info(\n \"A regular node XBX1 - using the padding\",\n node.id,\n \"parent\",\n node.parentId,\n node.width,\n node.height,\n node.x,\n node.y,\n \"offsetY\",\n node.offsetY,\n \"parent\",\n parent,\n parent?.offsetY,\n node\n );\n positionNode(node);\n }\n }\n })\n );\n const edgeOffsetY = subGraphTitleTotalMargin / 2;\n const edgesToRender = getEdgesToRender(graph, edgeOffsetY, { mergeSelfLoops });\n edgesToRender.forEach(function({ edge, start, end }) {\n log.info(\"Edge \" + start + \" -> \" + end + \": \" + JSON.stringify(edge), edge);\n edge.points.forEach((point) => point.y += edgeOffsetY);\n const startNode = graph.node(start);\n const endNode = graph.node(end);\n const paths = insertEdge(edgePaths, edge, clusterDb, diagramType, startNode, endNode, id);\n positionEdgeLabel(edge, paths);\n });\n graph.nodes().forEach(function(v) {\n const n = graph.node(v);\n log.info(v, n.type, n.diff);\n if (n.isGroup) {\n diff = n.diff;\n }\n });\n log.warn(\"Returning from recursive render XAX\", elem, diff);\n return { elem, diff };\n}, \"recursiveRender\");\nvar render = /* @__PURE__ */ __name(async (data4Layout, svg) => {\n const graph = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: data4Layout.direction,\n nodesep: data4Layout.config?.nodeSpacing || data4Layout.config?.flowchart?.nodeSpacing || data4Layout.nodeSpacing,\n ranksep: data4Layout.config?.rankSpacing || data4Layout.config?.flowchart?.rankSpacing || data4Layout.rankSpacing,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n const element = svg.select(\"g\");\n markers_default(element, data4Layout.markers, data4Layout.type, data4Layout.diagramId);\n clear3();\n clear2();\n clear();\n clear4();\n data4Layout.nodes.forEach((node) => {\n graph.setNode(node.id, { ...node });\n if (node.parentId) {\n graph.setParent(node.id, node.parentId);\n }\n });\n log.debug(\"Edges:\", data4Layout.edges);\n data4Layout.edges.forEach((edge) => {\n if (edge.start === edge.end) {\n const nodeId = edge.start;\n const specialId1 = nodeId + \"---\" + nodeId + \"---1\";\n const specialId2 = nodeId + \"---\" + nodeId + \"---2\";\n const node = graph.node(nodeId);\n graph.setNode(specialId1, {\n domId: specialId1,\n id: specialId1,\n parentId: node.parentId,\n labelStyle: \"\",\n label: \"\",\n padding: 0,\n shape: \"labelRect\",\n // shape: 'rect',\n style: \"\",\n width: 10,\n height: 10\n });\n graph.setParent(specialId1, node.parentId);\n graph.setNode(specialId2, {\n domId: specialId2,\n id: specialId2,\n parentId: node.parentId,\n labelStyle: \"\",\n padding: 0,\n // shape: 'rect',\n shape: \"labelRect\",\n label: \"\",\n style: \"\",\n width: 10,\n height: 10\n });\n graph.setParent(specialId2, node.parentId);\n const originalEdge = structuredClone(edge);\n const edge1 = structuredClone(edge);\n const edgeMid = structuredClone(edge);\n const edge2 = structuredClone(edge);\n edge1.originalEdge = originalEdge;\n edge1.selfLoop = { id: originalEdge.id, order: 0 };\n edgeMid.originalEdge = originalEdge;\n edgeMid.selfLoop = { id: originalEdge.id, order: 1 };\n edge2.originalEdge = originalEdge;\n edge2.selfLoop = { id: originalEdge.id, order: 2 };\n edge1.label = \"\";\n edge1.arrowTypeEnd = \"none\";\n edge1.endLabelLeft = \"\";\n edge1.endLabelRight = \"\";\n edge1.startLabelLeft = \"\";\n edge1.id = nodeId + \"-cyclic-special-1\";\n edgeMid.startLabelRight = \"\";\n edgeMid.startLabelLeft = \"\";\n edgeMid.endLabelLeft = \"\";\n edgeMid.endLabelRight = \"\";\n edgeMid.arrowTypeStart = \"none\";\n edgeMid.arrowTypeEnd = \"none\";\n edgeMid.id = nodeId + \"-cyclic-special-mid\";\n edge2.label = \"\";\n edge2.startLabelRight = \"\";\n edge2.startLabelLeft = \"\";\n edge2.arrowTypeStart = \"none\";\n if (node.isGroup) {\n edge1.fromCluster = nodeId;\n edge2.toCluster = nodeId;\n }\n edge2.id = nodeId + \"-cyclic-special-2\";\n edge2.arrowTypeStart = \"none\";\n graph.setEdge(nodeId, specialId1, edge1, nodeId + \"-cyclic-special-0\");\n graph.setEdge(specialId1, specialId2, edgeMid, nodeId + \"-cyclic-special-1\");\n graph.setEdge(specialId2, nodeId, edge2, nodeId + \"-cyclic-special-2\");\n } else {\n graph.setEdge(edge.start, edge.end, { ...edge }, edge.id);\n }\n });\n log.warn(\"Graph at first:\", JSON.stringify(graphlibJson.write(graph)));\n adjustClustersAndEdges(graph);\n log.warn(\"Graph after XAX:\", JSON.stringify(graphlibJson.write(graph)));\n const siteConfig = getConfig();\n await recursiveRender(\n element,\n graph,\n data4Layout.type,\n data4Layout.diagramId,\n void 0,\n siteConfig\n );\n}, \"render\");\nexport {\n getEdgesToRender,\n render\n};\n"],"names":["clamp","__name","value","min","max","getDefaultSelfLoopSide","rankdir","shouldMergeSelfLoopSegments","diagramType","getSelfLoopSide","graph","node","segments","originalNodeId","layoutHints","dummyNodeIds","start","end","id","dummyNode","edge","point","center","acc","dx","dy","getSelfLoopPoints","side","yOffset","labelWidth","x","y","halfWidth","halfHeight","maxSpan","span","depth","bottom","right","left","top","getSelfLoopLabelPosition","points","label","labelHeight","getEdgesToRender","mergeSelfLoops","selfLoopEdgeGroups","edgesToRender","e","key","segment","a","b","firstSegment","middleSegment","lastSegment","originalEdge","labelPosition","mergedEdge","recursiveRender","_elem","parentCluster","siteConfig","log","graphlibJson.write","dir","elem","clusters","edgePaths","edgeLabels","nodes","v","data","ranksep","nodesep","o","newEl","updateNodeBounds","setNodeElem","findNonClusterChild","clusterDb","insertNode","edgePromises","segmentId","insertEdgeLabel","dagreLayout","diff","subGraphTitleTotalMargin","getSubGraphTitleMargins","sortNodesByHierarchy","positionNode","halfPadding","offsetY","insertCluster","parent","edgeOffsetY","startNode","endNode","paths","insertEdge","positionEdgeLabel","n","render","data4Layout","svg","graphlib.Graph","element","markers_default","clear3","clear2","clear","clear4","nodeId","specialId1","specialId2","edge1","edgeMid","edge2","adjustClustersAndEdges","getConfig"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as O, w as I, a as J, f as P, b as E, s as A } from "./chunk-RYQCIY6F-
|
|
2
|
-
import { _ as b, b8 as v, b9 as D, ba as H, bb as Y, a1 as l, $ as _, bc as $, bd as W, b0 as j, be as F, b1 as R, a$ as q, bf as z, bg as K, bh as G } from "./extractHeadings-
|
|
1
|
+
import { c as O, w as I, a as J, f as P, b as E, s as A } from "./chunk-RYQCIY6F-CK0xCpaZ.js";
|
|
2
|
+
import { _ as b, b8 as v, b9 as D, ba as H, bb as Y, a1 as l, $ as _, bc as $, bd as W, b0 as j, be as F, b1 as R, a$ as q, bf as z, bg as K, bh as G } from "./extractHeadings-B9zWU8Hp.js";
|
|
3
3
|
import { G as Q } from "./graph-DAHC4kPm.js";
|
|
4
4
|
import { l as U } from "./layout-DBbo_M5I.js";
|
|
5
5
|
var C = /* @__PURE__ */ b((s, t, g) => Math.max(t, Math.min(g, s)), "clamp"), B = /* @__PURE__ */ b((s = "TB") => {
|
|
@@ -338,4 +338,4 @@ export {
|
|
|
338
338
|
ne as getEdgesToRender,
|
|
339
339
|
de as render
|
|
340
340
|
};
|
|
341
|
-
//# sourceMappingURL=dagre-VKFMJZFB-
|
|
341
|
+
//# sourceMappingURL=dagre-VKFMJZFB-T0EpCTvx.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dagre-VKFMJZFB-CtUCyCpT.js","sources":["../../../node_modules/.pnpm/mermaid@11.16.0/node_modules/mermaid/dist/chunks/mermaid.core/dagre-VKFMJZFB.mjs"],"sourcesContent":["import {\n adjustClustersAndEdges,\n clear as clear4,\n clusterDb,\n findNonClusterChild,\n sortNodesByHierarchy\n} from \"./chunk-RYQCIY6F.mjs\";\nimport {\n clear as clear2,\n insertEdge,\n insertEdgeLabel,\n markers_default,\n positionEdgeLabel\n} from \"./chunk-52WLFC77.mjs\";\nimport {\n clear,\n clear2 as clear3,\n insertCluster,\n insertNode,\n positionNode,\n setNodeElem,\n updateNodeBounds\n} from \"./chunk-ZGVPDNZ5.mjs\";\nimport \"./chunk-C7G6YPKG.mjs\";\nimport \"./chunk-7BUUIJ7U.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-OGEWGWER.mjs\";\nimport \"./chunk-Q4XR5HBZ.mjs\";\nimport \"./chunk-HOUHSVGY.mjs\";\nimport \"./chunk-ICXQ74PX.mjs\";\nimport {\n getConfig2 as getConfig\n} from \"./chunk-WYO6CB5R.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/rendering-util/layout-algorithms/dagre/index.js\nimport { layout as dagreLayout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlibJson from \"dagre-d3-es/src/graphlib/json.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nvar clamp = /* @__PURE__ */ __name((value, min, max) => Math.max(min, Math.min(max, value)), \"clamp\");\nvar getDefaultSelfLoopSide = /* @__PURE__ */ __name((rankdir = \"TB\") => {\n switch (rankdir) {\n case \"BT\":\n return \"bottom\";\n case \"LR\":\n return \"right\";\n case \"RL\":\n return \"left\";\n case \"TB\":\n default:\n return \"top\";\n }\n}, \"getDefaultSelfLoopSide\");\nvar shouldMergeSelfLoopSegments = /* @__PURE__ */ __name((diagramType) => diagramType === \"flowchart\" || diagramType === \"flowchart-v2\" || diagramType === \"stateDiagram\", \"shouldMergeSelfLoopSegments\");\nvar getSelfLoopSide = /* @__PURE__ */ __name((graph, node, segments, originalNodeId, rankdir) => {\n const layoutHints = [];\n const dummyNodeIds = /* @__PURE__ */ new Set();\n segments.forEach(({ start, end }) => {\n if (start !== originalNodeId) {\n dummyNodeIds.add(start);\n }\n if (end !== originalNodeId) {\n dummyNodeIds.add(end);\n }\n });\n dummyNodeIds.forEach((id) => {\n const dummyNode = graph.node(id);\n if (typeof dummyNode?.x === \"number\" && typeof dummyNode?.y === \"number\") {\n layoutHints.push(dummyNode);\n }\n });\n if (layoutHints.length === 0) {\n segments.forEach(({ edge }) => {\n (edge.points ?? []).forEach((point) => {\n if (typeof point?.x === \"number\" && typeof point?.y === \"number\") {\n layoutHints.push(point);\n }\n });\n });\n }\n if (layoutHints.length === 0) {\n return getDefaultSelfLoopSide(rankdir);\n }\n const center = layoutHints.reduce(\n (acc, point) => ({\n x: acc.x + point.x / layoutHints.length,\n y: acc.y + point.y / layoutHints.length\n }),\n { x: 0, y: 0 }\n );\n const dx = center.x - node.x;\n const dy = center.y - node.y;\n if (Math.abs(dx) > Math.abs(dy)) {\n return dx > 0 ? \"right\" : \"left\";\n }\n if (Math.abs(dy) > 0) {\n return dy > 0 ? \"bottom\" : \"top\";\n }\n return getDefaultSelfLoopSide(rankdir);\n}, \"getSelfLoopSide\");\nvar getSelfLoopPoints = /* @__PURE__ */ __name((node, side = \"top\", yOffset = 0, labelWidth = 0) => {\n const x = node.x;\n const y = node.y - yOffset;\n const halfWidth = node.width / 2;\n const halfHeight = node.height / 2;\n const maxSpan = Math.max(36, Math.min(100, node.width * 0.8));\n const span = clamp(Math.max(labelWidth, node.width * 0.35), 36, maxSpan);\n const depth = clamp(Math.min(node.width, node.height) * 0.45, 24, 48);\n switch (side) {\n case \"bottom\": {\n const bottom = y + halfHeight;\n return [\n { x: x - span / 2, y: bottom },\n { x: x - span / 2, y: bottom + depth },\n { x: x + span / 2, y: bottom + depth },\n { x: x + span / 2, y: bottom }\n ];\n }\n case \"right\": {\n const right = x + halfWidth;\n return [\n { x: right, y: y - span / 2 },\n { x: right + depth, y: y - span / 2 },\n { x: right + depth, y: y + span / 2 },\n { x: right, y: y + span / 2 }\n ];\n }\n case \"left\": {\n const left = x - halfWidth;\n return [\n { x: left, y: y - span / 2 },\n { x: left - depth, y: y - span / 2 },\n { x: left - depth, y: y + span / 2 },\n { x: left, y: y + span / 2 }\n ];\n }\n case \"top\":\n default: {\n const top = y - halfHeight;\n return [\n { x: x - span / 2, y: top },\n { x: x - span / 2, y: top - depth },\n { x: x + span / 2, y: top - depth },\n { x: x + span / 2, y: top }\n ];\n }\n }\n}, \"getSelfLoopPoints\");\nvar getSelfLoopLabelPosition = /* @__PURE__ */ __name((node, points, side = \"top\", yOffset = 0, label = {}) => {\n const gap = 4;\n const x = node.x;\n const y = node.y - yOffset;\n const labelWidth = label.width ?? 0;\n const labelHeight = label.height ?? 0;\n switch (side) {\n case \"bottom\":\n return { x, y: Math.max(...points.map((point) => point.y)) + labelHeight / 2 + gap };\n case \"right\":\n return { x: Math.max(...points.map((point) => point.x)) + labelWidth / 2 + gap, y };\n case \"left\":\n return { x: Math.min(...points.map((point) => point.x)) - labelWidth / 2 - gap, y };\n case \"top\":\n default:\n return { x, y: Math.min(...points.map((point) => point.y)) - labelHeight / 2 - gap };\n }\n}, \"getSelfLoopLabelPosition\");\nvar getEdgesToRender = /* @__PURE__ */ __name((graph, yOffset = 0, { mergeSelfLoops = true } = {}) => {\n const selfLoopEdgeGroups = /* @__PURE__ */ new Map();\n const edgesToRender = [];\n const rankdir = graph.graph()?.rankdir;\n graph.edges().forEach((e) => {\n const edge = graph.edge(e);\n if (mergeSelfLoops && edge.selfLoop) {\n const key = edge.selfLoop.id;\n if (!selfLoopEdgeGroups.has(key)) {\n selfLoopEdgeGroups.set(key, []);\n }\n selfLoopEdgeGroups.get(key).push({ edge, start: e.v, end: e.w });\n } else {\n edgesToRender.push({ edge, start: e.v, end: e.w });\n }\n });\n selfLoopEdgeGroups.forEach((segments) => {\n if (segments.length !== 3) {\n segments.forEach((segment) => edgesToRender.push(segment));\n return;\n }\n segments.sort((a, b) => a.edge.selfLoop.order - b.edge.selfLoop.order);\n const [firstSegment, middleSegment, lastSegment] = segments;\n const originalEdge = firstSegment.edge.originalEdge ?? middleSegment.edge.originalEdge ?? lastSegment.edge.originalEdge ?? middleSegment.edge;\n const node = graph.node(originalEdge.start);\n if (!node) {\n segments.forEach((segment) => edgesToRender.push(segment));\n return;\n }\n const label = {\n width: middleSegment.edge.width,\n height: middleSegment.edge.height\n };\n const side = getSelfLoopSide(graph, node, segments, originalEdge.start, rankdir);\n const points = getSelfLoopPoints(node, side, yOffset, label.width ?? 0);\n const labelPosition = getSelfLoopLabelPosition(node, points, side, yOffset, label);\n const mergedEdge = {\n ...middleSegment.edge,\n ...originalEdge,\n id: originalEdge.id,\n points,\n start: originalEdge.start,\n end: originalEdge.end,\n x: labelPosition.x,\n y: labelPosition.y,\n width: label.width,\n height: label.height,\n labelStyle: middleSegment.edge.labelStyle,\n fromCluster: firstSegment.edge.fromCluster ?? middleSegment.edge.fromCluster ?? lastSegment.edge.fromCluster,\n toCluster: firstSegment.edge.toCluster ?? middleSegment.edge.toCluster ?? lastSegment.edge.toCluster\n };\n delete mergedEdge.selfLoop;\n delete mergedEdge.originalEdge;\n edgesToRender.push({ edge: mergedEdge, start: mergedEdge.start, end: mergedEdge.end });\n });\n return edgesToRender;\n}, \"getEdgesToRender\");\nvar recursiveRender = /* @__PURE__ */ __name(async (_elem, graph, diagramType, id, parentCluster, siteConfig) => {\n log.warn(\"Graph in recursive render:XAX\", graphlibJson.write(graph), parentCluster);\n const dir = graph.graph().rankdir;\n log.trace(\"Dir in recursive render - dir:\", dir);\n const elem = _elem.insert(\"g\").attr(\"class\", \"root\");\n if (!graph.nodes()) {\n log.info(\"No nodes found for\", graph);\n } else {\n log.info(\"Recursive render XXX\", graph.nodes());\n }\n if (graph.edges().length > 0) {\n log.info(\"Recursive edges\", graph.edge(graph.edges()[0]));\n }\n const clusters = elem.insert(\"g\").attr(\"class\", \"clusters\");\n const edgePaths = elem.insert(\"g\").attr(\"class\", \"edgePaths\");\n const edgeLabels = elem.insert(\"g\").attr(\"class\", \"edgeLabels\");\n const nodes = elem.insert(\"g\").attr(\"class\", \"nodes\");\n const mergeSelfLoops = shouldMergeSelfLoopSegments(diagramType);\n await Promise.all(\n graph.nodes().map(async function(v) {\n const node = graph.node(v);\n if (parentCluster !== void 0) {\n const data = JSON.parse(JSON.stringify(parentCluster.clusterData));\n log.trace(\n \"Setting data for parent cluster XXX\\n Node.id = \",\n v,\n \"\\n data=\",\n data.height,\n \"\\nParent cluster\",\n parentCluster.height\n );\n graph.setNode(parentCluster.id, data);\n if (!graph.parent(v)) {\n log.trace(\"Setting parent\", v, parentCluster.id);\n graph.setParent(v, parentCluster.id, data);\n }\n }\n log.info(\"(Insert) Node XXX\" + v + \": \" + JSON.stringify(graph.node(v)));\n if (node?.clusterNode) {\n log.info(\"Cluster identified XBX\", v, node.width, graph.node(v));\n const { ranksep, nodesep } = graph.graph();\n node.graph.setGraph({\n ...node.graph.graph(),\n ranksep: ranksep + 25,\n nodesep\n });\n const o = await recursiveRender(\n nodes,\n node.graph,\n diagramType,\n id,\n graph.node(v),\n siteConfig\n );\n const newEl = o.elem;\n updateNodeBounds(node, newEl);\n node.diff = o.diff || 0;\n log.info(\n \"New compound node after recursive render XAX\",\n v,\n \"width\",\n // node,\n node.width,\n \"height\",\n node.height\n // node.x,\n // node.y\n );\n setNodeElem(newEl, node);\n } else {\n if (graph.children(v).length > 0) {\n log.trace(\n \"Cluster - the non recursive path XBX\",\n v,\n node.id,\n node,\n node.width,\n \"Graph:\",\n graph\n );\n log.trace(findNonClusterChild(node.id, graph));\n clusterDb.set(node.id, { id: findNonClusterChild(node.id, graph), node });\n } else {\n log.trace(\"Node - the non recursive path XAX\", v, nodes, graph.node(v), dir);\n await insertNode(nodes, graph.node(v), { config: siteConfig, dir });\n }\n }\n })\n );\n const processEdges = /* @__PURE__ */ __name(async () => {\n const edgePromises = graph.edges().map(async function(e) {\n const edge = graph.edge(e.v, e.w, e.name);\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \", e, \" \", JSON.stringify(graph.edge(e)));\n log.info(\n \"Fix\",\n clusterDb,\n \"ids:\",\n e.v,\n e.w,\n \"Translating: \",\n clusterDb.get(e.v),\n clusterDb.get(e.w)\n );\n if (mergeSelfLoops && edge.selfLoop) {\n if (edge.selfLoop.order !== 1) {\n return;\n }\n const segmentId = edge.id;\n edge.id = edge.selfLoop.id;\n await insertEdgeLabel(edgeLabels, edge);\n edge.id = segmentId;\n return;\n }\n await insertEdgeLabel(edgeLabels, edge);\n });\n await Promise.all(edgePromises);\n }, \"processEdges\");\n await processEdges();\n log.info(\"Graph before layout:\", JSON.stringify(graphlibJson.write(graph)));\n log.info(\"############################################# XXX\");\n log.info(\"### Layout ### XXX\");\n log.info(\"############################################# XXX\");\n dagreLayout(graph);\n log.info(\"Graph after layout:\", JSON.stringify(graphlibJson.write(graph)));\n let diff = 0;\n let { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);\n await Promise.all(\n sortNodesByHierarchy(graph).map(async function(v) {\n const node = graph.node(v);\n log.info(\n \"Position XBX => \" + v + \": (\" + node.x,\n \",\" + node.y,\n \") width: \",\n node.width,\n \" height: \",\n node.height\n );\n if (node?.clusterNode) {\n node.y += subGraphTitleTotalMargin;\n log.info(\n \"A tainted cluster node XBX1\",\n v,\n node.id,\n node.width,\n node.height,\n node.x,\n node.y,\n graph.parent(v)\n );\n clusterDb.get(node.id).node = node;\n positionNode(node);\n } else {\n if (graph.children(v).length > 0) {\n log.info(\n \"A pure cluster node XBX1\",\n v,\n node.id,\n node.x,\n node.y,\n node.width,\n node.height,\n graph.parent(v)\n );\n node.height += subGraphTitleTotalMargin;\n graph.node(node.parentId);\n const halfPadding = node?.padding / 2 || 0;\n const labelHeight = node?.labelBBox?.height || 0;\n const offsetY = labelHeight - halfPadding || 0;\n log.debug(\"OffsetY\", offsetY, \"labelHeight\", labelHeight, \"halfPadding\", halfPadding);\n await insertCluster(clusters, node);\n clusterDb.get(node.id).node = node;\n } else {\n const parent = graph.node(node.parentId);\n node.y += subGraphTitleTotalMargin / 2;\n log.info(\n \"A regular node XBX1 - using the padding\",\n node.id,\n \"parent\",\n node.parentId,\n node.width,\n node.height,\n node.x,\n node.y,\n \"offsetY\",\n node.offsetY,\n \"parent\",\n parent,\n parent?.offsetY,\n node\n );\n positionNode(node);\n }\n }\n })\n );\n const edgeOffsetY = subGraphTitleTotalMargin / 2;\n const edgesToRender = getEdgesToRender(graph, edgeOffsetY, { mergeSelfLoops });\n edgesToRender.forEach(function({ edge, start, end }) {\n log.info(\"Edge \" + start + \" -> \" + end + \": \" + JSON.stringify(edge), edge);\n edge.points.forEach((point) => point.y += edgeOffsetY);\n const startNode = graph.node(start);\n const endNode = graph.node(end);\n const paths = insertEdge(edgePaths, edge, clusterDb, diagramType, startNode, endNode, id);\n positionEdgeLabel(edge, paths);\n });\n graph.nodes().forEach(function(v) {\n const n = graph.node(v);\n log.info(v, n.type, n.diff);\n if (n.isGroup) {\n diff = n.diff;\n }\n });\n log.warn(\"Returning from recursive render XAX\", elem, diff);\n return { elem, diff };\n}, \"recursiveRender\");\nvar render = /* @__PURE__ */ __name(async (data4Layout, svg) => {\n const graph = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: data4Layout.direction,\n nodesep: data4Layout.config?.nodeSpacing || data4Layout.config?.flowchart?.nodeSpacing || data4Layout.nodeSpacing,\n ranksep: data4Layout.config?.rankSpacing || data4Layout.config?.flowchart?.rankSpacing || data4Layout.rankSpacing,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n const element = svg.select(\"g\");\n markers_default(element, data4Layout.markers, data4Layout.type, data4Layout.diagramId);\n clear3();\n clear2();\n clear();\n clear4();\n data4Layout.nodes.forEach((node) => {\n graph.setNode(node.id, { ...node });\n if (node.parentId) {\n graph.setParent(node.id, node.parentId);\n }\n });\n log.debug(\"Edges:\", data4Layout.edges);\n data4Layout.edges.forEach((edge) => {\n if (edge.start === edge.end) {\n const nodeId = edge.start;\n const specialId1 = nodeId + \"---\" + nodeId + \"---1\";\n const specialId2 = nodeId + \"---\" + nodeId + \"---2\";\n const node = graph.node(nodeId);\n graph.setNode(specialId1, {\n domId: specialId1,\n id: specialId1,\n parentId: node.parentId,\n labelStyle: \"\",\n label: \"\",\n padding: 0,\n shape: \"labelRect\",\n // shape: 'rect',\n style: \"\",\n width: 10,\n height: 10\n });\n graph.setParent(specialId1, node.parentId);\n graph.setNode(specialId2, {\n domId: specialId2,\n id: specialId2,\n parentId: node.parentId,\n labelStyle: \"\",\n padding: 0,\n // shape: 'rect',\n shape: \"labelRect\",\n label: \"\",\n style: \"\",\n width: 10,\n height: 10\n });\n graph.setParent(specialId2, node.parentId);\n const originalEdge = structuredClone(edge);\n const edge1 = structuredClone(edge);\n const edgeMid = structuredClone(edge);\n const edge2 = structuredClone(edge);\n edge1.originalEdge = originalEdge;\n edge1.selfLoop = { id: originalEdge.id, order: 0 };\n edgeMid.originalEdge = originalEdge;\n edgeMid.selfLoop = { id: originalEdge.id, order: 1 };\n edge2.originalEdge = originalEdge;\n edge2.selfLoop = { id: originalEdge.id, order: 2 };\n edge1.label = \"\";\n edge1.arrowTypeEnd = \"none\";\n edge1.endLabelLeft = \"\";\n edge1.endLabelRight = \"\";\n edge1.startLabelLeft = \"\";\n edge1.id = nodeId + \"-cyclic-special-1\";\n edgeMid.startLabelRight = \"\";\n edgeMid.startLabelLeft = \"\";\n edgeMid.endLabelLeft = \"\";\n edgeMid.endLabelRight = \"\";\n edgeMid.arrowTypeStart = \"none\";\n edgeMid.arrowTypeEnd = \"none\";\n edgeMid.id = nodeId + \"-cyclic-special-mid\";\n edge2.label = \"\";\n edge2.startLabelRight = \"\";\n edge2.startLabelLeft = \"\";\n edge2.arrowTypeStart = \"none\";\n if (node.isGroup) {\n edge1.fromCluster = nodeId;\n edge2.toCluster = nodeId;\n }\n edge2.id = nodeId + \"-cyclic-special-2\";\n edge2.arrowTypeStart = \"none\";\n graph.setEdge(nodeId, specialId1, edge1, nodeId + \"-cyclic-special-0\");\n graph.setEdge(specialId1, specialId2, edgeMid, nodeId + \"-cyclic-special-1\");\n graph.setEdge(specialId2, nodeId, edge2, nodeId + \"-cyclic-special-2\");\n } else {\n graph.setEdge(edge.start, edge.end, { ...edge }, edge.id);\n }\n });\n log.warn(\"Graph at first:\", JSON.stringify(graphlibJson.write(graph)));\n adjustClustersAndEdges(graph);\n log.warn(\"Graph after XAX:\", JSON.stringify(graphlibJson.write(graph)));\n const siteConfig = getConfig();\n await recursiveRender(\n element,\n graph,\n data4Layout.type,\n data4Layout.diagramId,\n void 0,\n siteConfig\n );\n}, \"render\");\nexport {\n getEdgesToRender,\n render\n};\n"],"names":["clamp","__name","value","min","max","getDefaultSelfLoopSide","rankdir","shouldMergeSelfLoopSegments","diagramType","getSelfLoopSide","graph","node","segments","originalNodeId","layoutHints","dummyNodeIds","start","end","id","dummyNode","edge","point","center","acc","dx","dy","getSelfLoopPoints","side","yOffset","labelWidth","x","y","halfWidth","halfHeight","maxSpan","span","depth","bottom","right","left","top","getSelfLoopLabelPosition","points","label","labelHeight","getEdgesToRender","mergeSelfLoops","selfLoopEdgeGroups","edgesToRender","e","key","segment","a","b","firstSegment","middleSegment","lastSegment","originalEdge","labelPosition","mergedEdge","recursiveRender","_elem","parentCluster","siteConfig","log","graphlibJson.write","dir","elem","clusters","edgePaths","edgeLabels","nodes","v","data","ranksep","nodesep","o","newEl","updateNodeBounds","setNodeElem","findNonClusterChild","clusterDb","insertNode","edgePromises","segmentId","insertEdgeLabel","dagreLayout","diff","subGraphTitleTotalMargin","getSubGraphTitleMargins","sortNodesByHierarchy","positionNode","halfPadding","offsetY","insertCluster","parent","edgeOffsetY","startNode","endNode","paths","insertEdge","positionEdgeLabel","n","render","data4Layout","svg","graphlib.Graph","element","markers_default","clear3","clear2","clear","clear4","nodeId","specialId1","specialId2","edge1","edgeMid","edge2","adjustClustersAndEdges","getConfig"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"dagre-VKFMJZFB-T0EpCTvx.js","sources":["../../../node_modules/.pnpm/mermaid@11.16.0/node_modules/mermaid/dist/chunks/mermaid.core/dagre-VKFMJZFB.mjs"],"sourcesContent":["import {\n adjustClustersAndEdges,\n clear as clear4,\n clusterDb,\n findNonClusterChild,\n sortNodesByHierarchy\n} from \"./chunk-RYQCIY6F.mjs\";\nimport {\n clear as clear2,\n insertEdge,\n insertEdgeLabel,\n markers_default,\n positionEdgeLabel\n} from \"./chunk-52WLFC77.mjs\";\nimport {\n clear,\n clear2 as clear3,\n insertCluster,\n insertNode,\n positionNode,\n setNodeElem,\n updateNodeBounds\n} from \"./chunk-ZGVPDNZ5.mjs\";\nimport \"./chunk-C7G6YPKG.mjs\";\nimport \"./chunk-7BUUIJ7U.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-OGEWGWER.mjs\";\nimport \"./chunk-Q4XR5HBZ.mjs\";\nimport \"./chunk-HOUHSVGY.mjs\";\nimport \"./chunk-ICXQ74PX.mjs\";\nimport {\n getConfig2 as getConfig\n} from \"./chunk-WYO6CB5R.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/rendering-util/layout-algorithms/dagre/index.js\nimport { layout as dagreLayout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlibJson from \"dagre-d3-es/src/graphlib/json.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nvar clamp = /* @__PURE__ */ __name((value, min, max) => Math.max(min, Math.min(max, value)), \"clamp\");\nvar getDefaultSelfLoopSide = /* @__PURE__ */ __name((rankdir = \"TB\") => {\n switch (rankdir) {\n case \"BT\":\n return \"bottom\";\n case \"LR\":\n return \"right\";\n case \"RL\":\n return \"left\";\n case \"TB\":\n default:\n return \"top\";\n }\n}, \"getDefaultSelfLoopSide\");\nvar shouldMergeSelfLoopSegments = /* @__PURE__ */ __name((diagramType) => diagramType === \"flowchart\" || diagramType === \"flowchart-v2\" || diagramType === \"stateDiagram\", \"shouldMergeSelfLoopSegments\");\nvar getSelfLoopSide = /* @__PURE__ */ __name((graph, node, segments, originalNodeId, rankdir) => {\n const layoutHints = [];\n const dummyNodeIds = /* @__PURE__ */ new Set();\n segments.forEach(({ start, end }) => {\n if (start !== originalNodeId) {\n dummyNodeIds.add(start);\n }\n if (end !== originalNodeId) {\n dummyNodeIds.add(end);\n }\n });\n dummyNodeIds.forEach((id) => {\n const dummyNode = graph.node(id);\n if (typeof dummyNode?.x === \"number\" && typeof dummyNode?.y === \"number\") {\n layoutHints.push(dummyNode);\n }\n });\n if (layoutHints.length === 0) {\n segments.forEach(({ edge }) => {\n (edge.points ?? []).forEach((point) => {\n if (typeof point?.x === \"number\" && typeof point?.y === \"number\") {\n layoutHints.push(point);\n }\n });\n });\n }\n if (layoutHints.length === 0) {\n return getDefaultSelfLoopSide(rankdir);\n }\n const center = layoutHints.reduce(\n (acc, point) => ({\n x: acc.x + point.x / layoutHints.length,\n y: acc.y + point.y / layoutHints.length\n }),\n { x: 0, y: 0 }\n );\n const dx = center.x - node.x;\n const dy = center.y - node.y;\n if (Math.abs(dx) > Math.abs(dy)) {\n return dx > 0 ? \"right\" : \"left\";\n }\n if (Math.abs(dy) > 0) {\n return dy > 0 ? \"bottom\" : \"top\";\n }\n return getDefaultSelfLoopSide(rankdir);\n}, \"getSelfLoopSide\");\nvar getSelfLoopPoints = /* @__PURE__ */ __name((node, side = \"top\", yOffset = 0, labelWidth = 0) => {\n const x = node.x;\n const y = node.y - yOffset;\n const halfWidth = node.width / 2;\n const halfHeight = node.height / 2;\n const maxSpan = Math.max(36, Math.min(100, node.width * 0.8));\n const span = clamp(Math.max(labelWidth, node.width * 0.35), 36, maxSpan);\n const depth = clamp(Math.min(node.width, node.height) * 0.45, 24, 48);\n switch (side) {\n case \"bottom\": {\n const bottom = y + halfHeight;\n return [\n { x: x - span / 2, y: bottom },\n { x: x - span / 2, y: bottom + depth },\n { x: x + span / 2, y: bottom + depth },\n { x: x + span / 2, y: bottom }\n ];\n }\n case \"right\": {\n const right = x + halfWidth;\n return [\n { x: right, y: y - span / 2 },\n { x: right + depth, y: y - span / 2 },\n { x: right + depth, y: y + span / 2 },\n { x: right, y: y + span / 2 }\n ];\n }\n case \"left\": {\n const left = x - halfWidth;\n return [\n { x: left, y: y - span / 2 },\n { x: left - depth, y: y - span / 2 },\n { x: left - depth, y: y + span / 2 },\n { x: left, y: y + span / 2 }\n ];\n }\n case \"top\":\n default: {\n const top = y - halfHeight;\n return [\n { x: x - span / 2, y: top },\n { x: x - span / 2, y: top - depth },\n { x: x + span / 2, y: top - depth },\n { x: x + span / 2, y: top }\n ];\n }\n }\n}, \"getSelfLoopPoints\");\nvar getSelfLoopLabelPosition = /* @__PURE__ */ __name((node, points, side = \"top\", yOffset = 0, label = {}) => {\n const gap = 4;\n const x = node.x;\n const y = node.y - yOffset;\n const labelWidth = label.width ?? 0;\n const labelHeight = label.height ?? 0;\n switch (side) {\n case \"bottom\":\n return { x, y: Math.max(...points.map((point) => point.y)) + labelHeight / 2 + gap };\n case \"right\":\n return { x: Math.max(...points.map((point) => point.x)) + labelWidth / 2 + gap, y };\n case \"left\":\n return { x: Math.min(...points.map((point) => point.x)) - labelWidth / 2 - gap, y };\n case \"top\":\n default:\n return { x, y: Math.min(...points.map((point) => point.y)) - labelHeight / 2 - gap };\n }\n}, \"getSelfLoopLabelPosition\");\nvar getEdgesToRender = /* @__PURE__ */ __name((graph, yOffset = 0, { mergeSelfLoops = true } = {}) => {\n const selfLoopEdgeGroups = /* @__PURE__ */ new Map();\n const edgesToRender = [];\n const rankdir = graph.graph()?.rankdir;\n graph.edges().forEach((e) => {\n const edge = graph.edge(e);\n if (mergeSelfLoops && edge.selfLoop) {\n const key = edge.selfLoop.id;\n if (!selfLoopEdgeGroups.has(key)) {\n selfLoopEdgeGroups.set(key, []);\n }\n selfLoopEdgeGroups.get(key).push({ edge, start: e.v, end: e.w });\n } else {\n edgesToRender.push({ edge, start: e.v, end: e.w });\n }\n });\n selfLoopEdgeGroups.forEach((segments) => {\n if (segments.length !== 3) {\n segments.forEach((segment) => edgesToRender.push(segment));\n return;\n }\n segments.sort((a, b) => a.edge.selfLoop.order - b.edge.selfLoop.order);\n const [firstSegment, middleSegment, lastSegment] = segments;\n const originalEdge = firstSegment.edge.originalEdge ?? middleSegment.edge.originalEdge ?? lastSegment.edge.originalEdge ?? middleSegment.edge;\n const node = graph.node(originalEdge.start);\n if (!node) {\n segments.forEach((segment) => edgesToRender.push(segment));\n return;\n }\n const label = {\n width: middleSegment.edge.width,\n height: middleSegment.edge.height\n };\n const side = getSelfLoopSide(graph, node, segments, originalEdge.start, rankdir);\n const points = getSelfLoopPoints(node, side, yOffset, label.width ?? 0);\n const labelPosition = getSelfLoopLabelPosition(node, points, side, yOffset, label);\n const mergedEdge = {\n ...middleSegment.edge,\n ...originalEdge,\n id: originalEdge.id,\n points,\n start: originalEdge.start,\n end: originalEdge.end,\n x: labelPosition.x,\n y: labelPosition.y,\n width: label.width,\n height: label.height,\n labelStyle: middleSegment.edge.labelStyle,\n fromCluster: firstSegment.edge.fromCluster ?? middleSegment.edge.fromCluster ?? lastSegment.edge.fromCluster,\n toCluster: firstSegment.edge.toCluster ?? middleSegment.edge.toCluster ?? lastSegment.edge.toCluster\n };\n delete mergedEdge.selfLoop;\n delete mergedEdge.originalEdge;\n edgesToRender.push({ edge: mergedEdge, start: mergedEdge.start, end: mergedEdge.end });\n });\n return edgesToRender;\n}, \"getEdgesToRender\");\nvar recursiveRender = /* @__PURE__ */ __name(async (_elem, graph, diagramType, id, parentCluster, siteConfig) => {\n log.warn(\"Graph in recursive render:XAX\", graphlibJson.write(graph), parentCluster);\n const dir = graph.graph().rankdir;\n log.trace(\"Dir in recursive render - dir:\", dir);\n const elem = _elem.insert(\"g\").attr(\"class\", \"root\");\n if (!graph.nodes()) {\n log.info(\"No nodes found for\", graph);\n } else {\n log.info(\"Recursive render XXX\", graph.nodes());\n }\n if (graph.edges().length > 0) {\n log.info(\"Recursive edges\", graph.edge(graph.edges()[0]));\n }\n const clusters = elem.insert(\"g\").attr(\"class\", \"clusters\");\n const edgePaths = elem.insert(\"g\").attr(\"class\", \"edgePaths\");\n const edgeLabels = elem.insert(\"g\").attr(\"class\", \"edgeLabels\");\n const nodes = elem.insert(\"g\").attr(\"class\", \"nodes\");\n const mergeSelfLoops = shouldMergeSelfLoopSegments(diagramType);\n await Promise.all(\n graph.nodes().map(async function(v) {\n const node = graph.node(v);\n if (parentCluster !== void 0) {\n const data = JSON.parse(JSON.stringify(parentCluster.clusterData));\n log.trace(\n \"Setting data for parent cluster XXX\\n Node.id = \",\n v,\n \"\\n data=\",\n data.height,\n \"\\nParent cluster\",\n parentCluster.height\n );\n graph.setNode(parentCluster.id, data);\n if (!graph.parent(v)) {\n log.trace(\"Setting parent\", v, parentCluster.id);\n graph.setParent(v, parentCluster.id, data);\n }\n }\n log.info(\"(Insert) Node XXX\" + v + \": \" + JSON.stringify(graph.node(v)));\n if (node?.clusterNode) {\n log.info(\"Cluster identified XBX\", v, node.width, graph.node(v));\n const { ranksep, nodesep } = graph.graph();\n node.graph.setGraph({\n ...node.graph.graph(),\n ranksep: ranksep + 25,\n nodesep\n });\n const o = await recursiveRender(\n nodes,\n node.graph,\n diagramType,\n id,\n graph.node(v),\n siteConfig\n );\n const newEl = o.elem;\n updateNodeBounds(node, newEl);\n node.diff = o.diff || 0;\n log.info(\n \"New compound node after recursive render XAX\",\n v,\n \"width\",\n // node,\n node.width,\n \"height\",\n node.height\n // node.x,\n // node.y\n );\n setNodeElem(newEl, node);\n } else {\n if (graph.children(v).length > 0) {\n log.trace(\n \"Cluster - the non recursive path XBX\",\n v,\n node.id,\n node,\n node.width,\n \"Graph:\",\n graph\n );\n log.trace(findNonClusterChild(node.id, graph));\n clusterDb.set(node.id, { id: findNonClusterChild(node.id, graph), node });\n } else {\n log.trace(\"Node - the non recursive path XAX\", v, nodes, graph.node(v), dir);\n await insertNode(nodes, graph.node(v), { config: siteConfig, dir });\n }\n }\n })\n );\n const processEdges = /* @__PURE__ */ __name(async () => {\n const edgePromises = graph.edges().map(async function(e) {\n const edge = graph.edge(e.v, e.w, e.name);\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \", e, \" \", JSON.stringify(graph.edge(e)));\n log.info(\n \"Fix\",\n clusterDb,\n \"ids:\",\n e.v,\n e.w,\n \"Translating: \",\n clusterDb.get(e.v),\n clusterDb.get(e.w)\n );\n if (mergeSelfLoops && edge.selfLoop) {\n if (edge.selfLoop.order !== 1) {\n return;\n }\n const segmentId = edge.id;\n edge.id = edge.selfLoop.id;\n await insertEdgeLabel(edgeLabels, edge);\n edge.id = segmentId;\n return;\n }\n await insertEdgeLabel(edgeLabels, edge);\n });\n await Promise.all(edgePromises);\n }, \"processEdges\");\n await processEdges();\n log.info(\"Graph before layout:\", JSON.stringify(graphlibJson.write(graph)));\n log.info(\"############################################# XXX\");\n log.info(\"### Layout ### XXX\");\n log.info(\"############################################# XXX\");\n dagreLayout(graph);\n log.info(\"Graph after layout:\", JSON.stringify(graphlibJson.write(graph)));\n let diff = 0;\n let { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);\n await Promise.all(\n sortNodesByHierarchy(graph).map(async function(v) {\n const node = graph.node(v);\n log.info(\n \"Position XBX => \" + v + \": (\" + node.x,\n \",\" + node.y,\n \") width: \",\n node.width,\n \" height: \",\n node.height\n );\n if (node?.clusterNode) {\n node.y += subGraphTitleTotalMargin;\n log.info(\n \"A tainted cluster node XBX1\",\n v,\n node.id,\n node.width,\n node.height,\n node.x,\n node.y,\n graph.parent(v)\n );\n clusterDb.get(node.id).node = node;\n positionNode(node);\n } else {\n if (graph.children(v).length > 0) {\n log.info(\n \"A pure cluster node XBX1\",\n v,\n node.id,\n node.x,\n node.y,\n node.width,\n node.height,\n graph.parent(v)\n );\n node.height += subGraphTitleTotalMargin;\n graph.node(node.parentId);\n const halfPadding = node?.padding / 2 || 0;\n const labelHeight = node?.labelBBox?.height || 0;\n const offsetY = labelHeight - halfPadding || 0;\n log.debug(\"OffsetY\", offsetY, \"labelHeight\", labelHeight, \"halfPadding\", halfPadding);\n await insertCluster(clusters, node);\n clusterDb.get(node.id).node = node;\n } else {\n const parent = graph.node(node.parentId);\n node.y += subGraphTitleTotalMargin / 2;\n log.info(\n \"A regular node XBX1 - using the padding\",\n node.id,\n \"parent\",\n node.parentId,\n node.width,\n node.height,\n node.x,\n node.y,\n \"offsetY\",\n node.offsetY,\n \"parent\",\n parent,\n parent?.offsetY,\n node\n );\n positionNode(node);\n }\n }\n })\n );\n const edgeOffsetY = subGraphTitleTotalMargin / 2;\n const edgesToRender = getEdgesToRender(graph, edgeOffsetY, { mergeSelfLoops });\n edgesToRender.forEach(function({ edge, start, end }) {\n log.info(\"Edge \" + start + \" -> \" + end + \": \" + JSON.stringify(edge), edge);\n edge.points.forEach((point) => point.y += edgeOffsetY);\n const startNode = graph.node(start);\n const endNode = graph.node(end);\n const paths = insertEdge(edgePaths, edge, clusterDb, diagramType, startNode, endNode, id);\n positionEdgeLabel(edge, paths);\n });\n graph.nodes().forEach(function(v) {\n const n = graph.node(v);\n log.info(v, n.type, n.diff);\n if (n.isGroup) {\n diff = n.diff;\n }\n });\n log.warn(\"Returning from recursive render XAX\", elem, diff);\n return { elem, diff };\n}, \"recursiveRender\");\nvar render = /* @__PURE__ */ __name(async (data4Layout, svg) => {\n const graph = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: data4Layout.direction,\n nodesep: data4Layout.config?.nodeSpacing || data4Layout.config?.flowchart?.nodeSpacing || data4Layout.nodeSpacing,\n ranksep: data4Layout.config?.rankSpacing || data4Layout.config?.flowchart?.rankSpacing || data4Layout.rankSpacing,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n const element = svg.select(\"g\");\n markers_default(element, data4Layout.markers, data4Layout.type, data4Layout.diagramId);\n clear3();\n clear2();\n clear();\n clear4();\n data4Layout.nodes.forEach((node) => {\n graph.setNode(node.id, { ...node });\n if (node.parentId) {\n graph.setParent(node.id, node.parentId);\n }\n });\n log.debug(\"Edges:\", data4Layout.edges);\n data4Layout.edges.forEach((edge) => {\n if (edge.start === edge.end) {\n const nodeId = edge.start;\n const specialId1 = nodeId + \"---\" + nodeId + \"---1\";\n const specialId2 = nodeId + \"---\" + nodeId + \"---2\";\n const node = graph.node(nodeId);\n graph.setNode(specialId1, {\n domId: specialId1,\n id: specialId1,\n parentId: node.parentId,\n labelStyle: \"\",\n label: \"\",\n padding: 0,\n shape: \"labelRect\",\n // shape: 'rect',\n style: \"\",\n width: 10,\n height: 10\n });\n graph.setParent(specialId1, node.parentId);\n graph.setNode(specialId2, {\n domId: specialId2,\n id: specialId2,\n parentId: node.parentId,\n labelStyle: \"\",\n padding: 0,\n // shape: 'rect',\n shape: \"labelRect\",\n label: \"\",\n style: \"\",\n width: 10,\n height: 10\n });\n graph.setParent(specialId2, node.parentId);\n const originalEdge = structuredClone(edge);\n const edge1 = structuredClone(edge);\n const edgeMid = structuredClone(edge);\n const edge2 = structuredClone(edge);\n edge1.originalEdge = originalEdge;\n edge1.selfLoop = { id: originalEdge.id, order: 0 };\n edgeMid.originalEdge = originalEdge;\n edgeMid.selfLoop = { id: originalEdge.id, order: 1 };\n edge2.originalEdge = originalEdge;\n edge2.selfLoop = { id: originalEdge.id, order: 2 };\n edge1.label = \"\";\n edge1.arrowTypeEnd = \"none\";\n edge1.endLabelLeft = \"\";\n edge1.endLabelRight = \"\";\n edge1.startLabelLeft = \"\";\n edge1.id = nodeId + \"-cyclic-special-1\";\n edgeMid.startLabelRight = \"\";\n edgeMid.startLabelLeft = \"\";\n edgeMid.endLabelLeft = \"\";\n edgeMid.endLabelRight = \"\";\n edgeMid.arrowTypeStart = \"none\";\n edgeMid.arrowTypeEnd = \"none\";\n edgeMid.id = nodeId + \"-cyclic-special-mid\";\n edge2.label = \"\";\n edge2.startLabelRight = \"\";\n edge2.startLabelLeft = \"\";\n edge2.arrowTypeStart = \"none\";\n if (node.isGroup) {\n edge1.fromCluster = nodeId;\n edge2.toCluster = nodeId;\n }\n edge2.id = nodeId + \"-cyclic-special-2\";\n edge2.arrowTypeStart = \"none\";\n graph.setEdge(nodeId, specialId1, edge1, nodeId + \"-cyclic-special-0\");\n graph.setEdge(specialId1, specialId2, edgeMid, nodeId + \"-cyclic-special-1\");\n graph.setEdge(specialId2, nodeId, edge2, nodeId + \"-cyclic-special-2\");\n } else {\n graph.setEdge(edge.start, edge.end, { ...edge }, edge.id);\n }\n });\n log.warn(\"Graph at first:\", JSON.stringify(graphlibJson.write(graph)));\n adjustClustersAndEdges(graph);\n log.warn(\"Graph after XAX:\", JSON.stringify(graphlibJson.write(graph)));\n const siteConfig = getConfig();\n await recursiveRender(\n element,\n graph,\n data4Layout.type,\n data4Layout.diagramId,\n void 0,\n siteConfig\n );\n}, \"render\");\nexport {\n getEdgesToRender,\n render\n};\n"],"names":["clamp","__name","value","min","max","getDefaultSelfLoopSide","rankdir","shouldMergeSelfLoopSegments","diagramType","getSelfLoopSide","graph","node","segments","originalNodeId","layoutHints","dummyNodeIds","start","end","id","dummyNode","edge","point","center","acc","dx","dy","getSelfLoopPoints","side","yOffset","labelWidth","x","y","halfWidth","halfHeight","maxSpan","span","depth","bottom","right","left","top","getSelfLoopLabelPosition","points","label","labelHeight","getEdgesToRender","mergeSelfLoops","selfLoopEdgeGroups","edgesToRender","e","key","segment","a","b","firstSegment","middleSegment","lastSegment","originalEdge","labelPosition","mergedEdge","recursiveRender","_elem","parentCluster","siteConfig","log","graphlibJson.write","dir","elem","clusters","edgePaths","edgeLabels","nodes","v","data","ranksep","nodesep","o","newEl","updateNodeBounds","setNodeElem","findNonClusterChild","clusterDb","insertNode","edgePromises","segmentId","insertEdgeLabel","dagreLayout","diff","subGraphTitleTotalMargin","getSubGraphTitleMargins","sortNodesByHierarchy","positionNode","halfPadding","offsetY","insertCluster","parent","edgeOffsetY","startNode","endNode","paths","insertEdge","positionEdgeLabel","n","render","data4Layout","svg","graphlib.Graph","element","markers_default","clear3","clear2","clear","clear4","nodeId","specialId1","specialId2","edge1","edgeMid","edge2","adjustClustersAndEdges","getConfig"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { p as re } from "./chunk-JWPE2WC7-
|
|
2
|
-
import { ag as oe, af as se, U as de, V as le, W as ce, X as me, _ as o, a1 as g, $, a0 as ue, aq as xe, al as fe, ar as ge, ap as M, as as he, a5 as y, a7 as P, b6 as pe } from "./extractHeadings-
|
|
1
|
+
import { p as re } from "./chunk-JWPE2WC7-DuVveRXZ.js";
|
|
2
|
+
import { ag as oe, af as se, U as de, V as le, W as ce, X as me, _ as o, a1 as g, $, a0 as ue, aq as xe, al as fe, ar as ge, ap as M, as as he, a5 as y, a7 as P, b6 as pe } from "./extractHeadings-B9zWU8Hp.js";
|
|
3
3
|
import { p as be, i as ve } from "./cynefin-VYW2F7L2-Bkk-F_Js.js";
|
|
4
4
|
var T = "position frame", D = "frame positioned", S = "position relation", N = "relation positioned", we = /* @__PURE__ */ o(function(e) {
|
|
5
5
|
g.debug("options str", e);
|
|
@@ -459,4 +459,4 @@ var $e = /* @__PURE__ */ o(function(e, n, t, i) {
|
|
|
459
459
|
export {
|
|
460
460
|
Ie as diagram
|
|
461
461
|
};
|
|
462
|
-
//# sourceMappingURL=diagram-FQU43EPY-
|
|
462
|
+
//# sourceMappingURL=diagram-FQU43EPY-BqlZFcVg.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagram-FQU43EPY-Dbadtgzw.js","sources":["../../../node_modules/.pnpm/mermaid@11.16.0/node_modules/mermaid/dist/chunks/mermaid.core/diagram-FQU43EPY.mjs"],"sourcesContent":["import {\n populateCommonDb\n} from \"./chunk-JWPE2WC7.mjs\";\nimport {\n calculateTextDimensions,\n cleanAndMerge,\n wrapLabel\n} from \"./chunk-ICXQ74PX.mjs\";\nimport {\n clear,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getConfig2,\n getDiagramTitle,\n sanitizeText,\n setAccDescription,\n setAccTitle,\n setDiagramTitle,\n setupGraphViewbox2 as setupGraphViewbox\n} from \"./chunk-WYO6CB5R.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/eventmodeling/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\n\n// src/diagrams/eventmodeling/db.ts\nimport { isEmResetFrame } from \"@mermaid-js/parser\";\n\n// src/diagrams/eventmodeling/types.ts\nvar PositionFrameKind = \"position frame\";\nvar FramePositionedKind = \"frame positioned\";\nvar PositionRelationKind = \"position relation\";\nvar RelationPositionedKind = \"relation positioned\";\n\n// src/diagrams/eventmodeling/db.ts\nvar setOptions = /* @__PURE__ */ __name(function(_rawOptString) {\n log.debug(\"options str\", _rawOptString);\n}, \"setOptions\");\nvar getOptions = /* @__PURE__ */ __name(function() {\n return {};\n}, \"getOptions\");\nvar clear2 = /* @__PURE__ */ __name(function() {\n reset();\n clear();\n}, \"clear\");\nfunction reset() {\n store = {};\n}\n__name(reset, \"reset\");\nvar DEFAULT_EVENTMODELING_CONFIG = defaultConfig_default.eventmodeling;\nvar getConfig3 = /* @__PURE__ */ __name(() => {\n const config = cleanAndMerge({\n ...DEFAULT_EVENTMODELING_CONFIG,\n ...getConfig().eventmodeling\n });\n return config;\n}, \"getConfig\");\nvar store = {};\nfunction getState() {\n let state = initial;\n const { ast } = store;\n const diagramProps2 = getDiagramProps();\n if (!ast) {\n throw new Error(\"No data for EventModel\");\n }\n ast.frames.forEach((frame, index) => {\n const textProps = calculateTextProps(frame, ast.dataEntities, diagramProps2);\n state = dispatch(state, {\n $kind: PositionFrameKind,\n index,\n frame,\n textProps\n });\n let sourceFrames = void 0;\n if (hasSourceFrame(frame)) {\n log.debug(`source frame`, frame.sourceFrames);\n sourceFrames = ast.frames.filter((currentFrame) => {\n return frame.sourceFrames.some((sf) => sf.$refText === currentFrame.name);\n });\n sourceFrames.forEach((sourceFrame) => {\n state = dispatch(state, {\n $kind: PositionRelationKind,\n index,\n frame,\n sourceFrame\n });\n });\n } else {\n state = dispatch(state, {\n $kind: PositionRelationKind,\n index,\n frame\n });\n }\n });\n state = {\n ...state,\n sortedSwimlanesArray: sortedSwimlanesArray(state.swimlanes)\n };\n return state;\n}\n__name(getState, \"getState\");\nfunction setAst(ast) {\n store.ast = ast;\n}\n__name(setAst, \"setAst\");\nvar diagramProps = {\n swimlaneMinHeight: 70,\n swimlanePadding: 15,\n swimlaneGap: 10,\n boxPadding: 10,\n boxOverlap: 90,\n boxDefaultY: 0,\n boxMinWidth: 80,\n boxMaxWidth: 450,\n boxMinHeight: 80,\n boxMaxHeight: 750,\n contentStartX: 250,\n textMaxWidth: 450 - 2 * 10,\n boxTextFontWeight: \"bold\",\n boxTextPadding: 10,\n swimlaneTextFontWeight: \"bold\",\n labelUiAutomation: \"UI/Automation\",\n labelUiAutomationPrefix: \"UI/A: \",\n labelCommandReadModel: \"Command/Read Model\",\n labelCommandReadModelPrefix: \"C/RM: \",\n labelEvents: \"Events\",\n labelEventsPrefix: \"Stream: \"\n};\nfunction getDiagramProps() {\n return diagramProps;\n}\n__name(getDiagramProps, \"getDiagramProps\");\nvar initial = {\n boxes: [],\n swimlanes: {},\n relations: [],\n maxR: 0,\n sortedSwimlanesArray: []\n};\nfunction extractNamespace(entityIdentifier) {\n const spl = entityIdentifier.split(\".\");\n if (spl.length === 2) {\n return spl[0];\n }\n return void 0;\n}\n__name(extractNamespace, \"extractNamespace\");\nfunction extractName(entityIdentifier) {\n const spl = entityIdentifier.split(\".\");\n if (spl.length === 2) {\n return spl[1];\n }\n return entityIdentifier;\n}\n__name(extractName, \"extractName\");\nfunction findSwimlaneByNamespace(swimlanes, namespace) {\n if (!namespace || namespace.length === 0) {\n return void 0;\n }\n return Object.values(swimlanes).find((swimlane) => swimlane.namespace === namespace);\n}\n__name(findSwimlaneByNamespace, \"findSwimlaneByNamespace\");\nfunction findNextAvailableIndex(swimlanes, boundaryMin, boundaryMax) {\n return Math.max(\n boundaryMin,\n ...Object.keys(swimlanes).filter((key) => {\n const index = Number.parseInt(key);\n return index > boundaryMin && index < boundaryMax;\n }).map((key) => Number.parseInt(key))\n ) + 1;\n}\n__name(findNextAvailableIndex, \"findNextAvailableIndex\");\nfunction calculateSwimlaneProps(frame, swimlanes) {\n const namespace = extractNamespace(frame.entityIdentifier);\n const sw = findSwimlaneByNamespace(swimlanes, namespace);\n switch (frame.modelEntityType) {\n case \"ui\":\n case \"pcr\":\n case \"processor\":\n if (sw) {\n return {\n index: sw.index,\n label: sw.namespace || diagramProps.labelUiAutomation\n };\n } else if (namespace) {\n return {\n index: findNextAvailableIndex(swimlanes, 0, 100),\n label: diagramProps.labelUiAutomationPrefix + namespace\n };\n }\n return { index: 0, label: diagramProps.labelUiAutomation };\n case \"rmo\":\n case \"readmodel\":\n case \"cmd\":\n case \"command\":\n if (sw) {\n return {\n index: sw.index,\n label: sw.namespace || diagramProps.labelCommandReadModel\n };\n } else if (namespace) {\n return {\n index: findNextAvailableIndex(swimlanes, 100, 200),\n label: diagramProps.labelCommandReadModelPrefix + namespace\n };\n }\n return { index: 100, label: diagramProps.labelCommandReadModel };\n case \"evt\":\n case \"event\":\n default:\n if (sw) {\n return {\n index: sw.index,\n label: sw.namespace || diagramProps.labelEvents\n };\n } else if (namespace) {\n return {\n index: findNextAvailableIndex(swimlanes, 200, 300),\n label: diagramProps.labelEventsPrefix + namespace\n };\n }\n return { index: 200, label: diagramProps.labelEvents };\n }\n}\n__name(calculateSwimlaneProps, \"calculateSwimlaneProps\");\nfunction calculateEntityVisualProps(frame) {\n const { themeVariables } = getConfig();\n switch (frame.modelEntityType) {\n case \"ui\":\n return {\n fill: themeVariables.emUiFill ?? \"white\",\n stroke: themeVariables.emUiStroke ?? \"#dbdada\"\n };\n case \"pcr\":\n case \"processor\":\n return {\n fill: themeVariables.emProcessorFill ?? \"#edb3f6\",\n stroke: themeVariables.emProcessorStroke ?? \"#b88cbf\"\n };\n case \"rmo\":\n case \"readmodel\":\n return {\n fill: themeVariables.emReadModelFill ?? \"#d3f1a2\",\n stroke: themeVariables.emReadModelStroke ?? \"#a3b732\"\n };\n case \"cmd\":\n case \"command\":\n return {\n fill: themeVariables.emCommandFill ?? \"#bcd6fe\",\n stroke: themeVariables.emCommandStroke ?? \"#679ac3\"\n };\n case \"evt\":\n case \"event\":\n return {\n fill: themeVariables.emEventFill ?? \"#ffb778\",\n stroke: themeVariables.emEventStroke ?? \"#c19a0f\"\n };\n default:\n return {\n fill: \"red\",\n stroke: \"black\"\n };\n }\n}\n__name(calculateEntityVisualProps, \"calculateEntityVisualProps\");\nfunction calculateTextProps(frame, dataEntities, diagramProps2) {\n const config = getConfig();\n const name = sanitizeText(extractName(frame.entityIdentifier) ?? \"\", config);\n let toHtml;\n const wrapLabelConfig = {\n fontSize: 16,\n fontWeight: 700,\n fontFamily: '\"trebuchet ms\", verdana, arial, sans-serif',\n joinWith: \"<br/>\"\n };\n const wrappedName = wrapLabel(name, diagramProps2.textMaxWidth, wrapLabelConfig);\n let content = `<b>${wrappedName}</b>`;\n if (frame.dataInlineValue) {\n toHtml = frame.dataInlineValue;\n toHtml = toHtml.substring(toHtml.indexOf(\"{\") + 1);\n toHtml = toHtml.substring(0, toHtml.lastIndexOf(\"}\") - 1);\n toHtml = sanitizeText(toHtml, config);\n toHtml = wrapLabel(toHtml, diagramProps2.textMaxWidth, wrapLabelConfig);\n toHtml = toHtml.replaceAll(\" \", \" \");\n }\n if (frame.dataReference) {\n const dataEntity = dataEntities.find(\n (dataEntity2) => dataEntity2.name === frame.dataReference?.$refText\n );\n if (dataEntity) {\n toHtml = dataEntity.dataBlockValue;\n toHtml = toHtml.substring(toHtml.indexOf(\"{\\n\") + 2);\n toHtml = toHtml.substring(0, toHtml.lastIndexOf(\"}\") - 1);\n toHtml = sanitizeText(toHtml, config);\n toHtml = wrapLabel(toHtml, diagramProps2.textMaxWidth, wrapLabelConfig);\n toHtml = toHtml.replaceAll(\" \", \" \");\n toHtml += `<br/>`;\n }\n }\n const hasRenderedData = toHtml !== void 0;\n if (hasRenderedData) {\n content += `<br/><br/><code style=\"text-align: left; display: block;max-width:${diagramProps2.textMaxWidth}px\">${toHtml}</code>`;\n }\n const textDimensionConfig = {\n fontSize: wrapLabelConfig.fontSize,\n fontWeight: wrapLabelConfig.fontWeight,\n fontFamily: wrapLabelConfig.fontFamily\n };\n const dimensions = calculateTextDimensions(content, textDimensionConfig);\n const calculatedWidthFix = hasRenderedData ? dimensions.width / 3 : dimensions.width;\n const props = {\n content,\n width: calculatedWidthFix,\n height: dimensions.height\n };\n log.debug(`[${frame.name}] ${frame.entityIdentifier} text`, props);\n return props;\n}\n__name(calculateTextProps, \"calculateTextProps\");\nfunction decidePositionFrame(state, _command) {\n const command = _command;\n const visual = calculateEntityVisualProps(command.frame);\n const dimension = {\n width: command.textProps.width + 2 * diagramProps.boxTextPadding,\n height: command.textProps.height + 2 * diagramProps.boxTextPadding\n };\n const event = {\n $kind: FramePositionedKind,\n frame: command.frame,\n index: command.index,\n visual,\n dimension,\n textProps: command.textProps\n };\n return [event];\n}\n__name(decidePositionFrame, \"decidePositionFrame\");\nfunction calculateX(swimlane, previousSwimlane, lastBox) {\n if (previousSwimlane === void 0) {\n return diagramProps.contentStartX;\n }\n if (previousSwimlane.index === swimlane.index && swimlane.r) {\n return swimlane.r + diagramProps.boxPadding;\n }\n if (lastBox === void 0) {\n return diagramProps.contentStartX;\n }\n return lastBox.r - diagramProps.boxOverlap + diagramProps.boxPadding;\n}\n__name(calculateX, \"calculateX\");\nfunction calculateMaxRight(swimlanes, swimlaneR) {\n const rs = [...swimlanes.map((s) => s.r), swimlaneR];\n return Math.max(...rs);\n}\n__name(calculateMaxRight, \"calculateMaxRight\");\nfunction sortedSwimlanesArray(swimlanes) {\n return Object.values(swimlanes).sort((a, b) => a.index - b.index);\n}\n__name(sortedSwimlanesArray, \"sortedSwimlanesArray\");\nfunction evolveFramePositioned(state, _event) {\n const event = _event;\n const swimlaneProps = calculateSwimlaneProps(event.frame, state.swimlanes);\n let swimlane;\n if (swimlaneProps.index in state.swimlanes) {\n swimlane = state.swimlanes[swimlaneProps.index];\n } else {\n swimlane = {\n index: swimlaneProps.index,\n label: swimlaneProps.label,\n r: 0,\n y: swimlaneProps.index * diagramProps.swimlaneMinHeight + diagramProps.swimlaneGap,\n height: diagramProps.swimlaneMinHeight,\n maxHeight: diagramProps.swimlaneMinHeight\n };\n }\n const lastBox = state.boxes.length > 0 ? state.boxes[state.boxes.length - 1] : void 0;\n const previousSwimlane = state.previousSwimlaneNumber !== void 0 ? state.swimlanes[state.previousSwimlaneNumber] : void 0;\n const dimension = {\n width: Math.max(\n diagramProps.boxMinWidth,\n Math.min(diagramProps.boxMaxWidth, event.dimension.width)\n ) + 2 * diagramProps.boxPadding,\n height: Math.max(\n diagramProps.boxMinHeight,\n Math.min(diagramProps.boxMaxHeight, event.dimension.height)\n ) + 2 * diagramProps.boxPadding\n };\n const x = calculateX(swimlane, previousSwimlane, lastBox);\n const r = x + dimension.width + diagramProps.boxPadding;\n const maxR = calculateMaxRight(Object.values(state.swimlanes), r);\n swimlane.r = x + dimension.width;\n swimlane.maxHeight = Math.max(swimlane.maxHeight, dimension.height);\n swimlane.height = Math.max(diagramProps.swimlaneMinHeight, swimlane.maxHeight) + 2 * diagramProps.swimlanePadding;\n const box = {\n x,\n y: diagramProps.swimlanePadding + swimlane.y,\n // y: diagramProps.swimlanePadding + (swimlane.y || diagramProps.boxDefaultY),\n r,\n dimension,\n leftSibling: false,\n swimlane,\n visual: event.visual,\n text: event.textProps.content,\n frame: event.frame,\n index: event.index\n };\n const newState = {\n ...state,\n boxes: [...state.boxes, box],\n swimlanes: {\n ...state.swimlanes,\n [`${swimlane.index}`]: swimlane\n },\n previousSwimlaneNumber: swimlaneProps.index,\n previousFrame: event.frame,\n maxR\n };\n const swimlanes = sortedSwimlanesArray(newState.swimlanes);\n if (swimlanes.length > 0) {\n swimlanes[0].y = 0;\n }\n for (let i = 1; i < swimlanes.length; i++) {\n const sw = swimlanes[i];\n const prevSw = swimlanes[i - 1];\n sw.y = prevSw.y + prevSw.height + diagramProps.swimlaneGap;\n }\n return newState;\n}\n__name(evolveFramePositioned, \"evolveFramePositioned\");\nfunction isFirstFrame(index, frame) {\n if (index === 0 && frame.sourceFrames.length === 0) {\n return true;\n }\n return false;\n}\n__name(isFirstFrame, \"isFirstFrame\");\nfunction hasSourceFrame(frame) {\n return frame.sourceFrames !== void 0 && frame.sourceFrames !== null && frame.sourceFrames.length > 0;\n}\n__name(hasSourceFrame, \"hasSourceFrame\");\nfunction findBoxByFrame(boxes, frame) {\n if (frame === void 0 || frame === null) {\n return void 0;\n }\n return boxes.find((box) => box.frame.name === frame.name);\n}\n__name(findBoxByFrame, \"findBoxByFrame\");\nfunction findBoxByLineIndex(boxes, targetSwimlane, lineIndex) {\n if (lineIndex < 0) {\n return void 0;\n }\n for (let i = lineIndex; i >= 0; i--) {\n const box = boxes[i];\n if (box.swimlane.index !== targetSwimlane) {\n return box;\n }\n }\n return void 0;\n}\n__name(findBoxByLineIndex, \"findBoxByLineIndex\");\nfunction decidePositionRelation(state, _command) {\n const command = _command;\n if (isEmResetFrame(command.frame) || isFirstFrame(command.index, command.frame)) {\n return [];\n }\n const targetBox = findBoxByFrame(state.boxes, command.frame);\n if (targetBox === void 0) {\n throw new Error(`Target box not found for frame ${command.frame.name}`);\n }\n let sourceBox;\n if (command.sourceFrame) {\n sourceBox = findBoxByFrame(state.boxes, command.sourceFrame);\n } else {\n sourceBox = findBoxByLineIndex(state.boxes, targetBox.swimlane.index, command.index - 1);\n }\n if (sourceBox === void 0) {\n return [];\n }\n const event = {\n $kind: RelationPositionedKind,\n frame: command.frame,\n index: command.index,\n sourceBox,\n targetBox\n };\n return [event];\n}\n__name(decidePositionRelation, \"decidePositionRelation\");\nfunction evolveRelationPositioned(state, _event) {\n const event = _event;\n const relation = {\n visual: {\n fill: \"none\",\n stroke: \"#000\"\n },\n source: {\n x: event.sourceBox.x,\n y: event.sourceBox.y\n },\n target: {\n x: event.targetBox.x,\n y: event.targetBox.y\n },\n sourceBox: event.sourceBox,\n targetBox: event.targetBox\n };\n const newState = {\n ...state,\n relations: [...state.relations, relation]\n };\n return newState;\n}\n__name(evolveRelationPositioned, \"evolveRelationPositioned\");\nvar deciders = {\n [PositionFrameKind]: decidePositionFrame,\n [PositionRelationKind]: decidePositionRelation\n};\nvar evolvers = {\n [FramePositionedKind]: evolveFramePositioned,\n [RelationPositionedKind]: evolveRelationPositioned\n};\nfunction decide(state, command) {\n const fn = deciders[command.$kind];\n if (fn === void 0 || fn === null) {\n return [];\n }\n const events = fn(state, command);\n log.debug(`decided events`, events);\n return events;\n}\n__name(decide, \"decide\");\nfunction evolve(state, events) {\n const newState = events.reduce((previousState, event) => {\n const fn = evolvers[event.$kind];\n if (fn === void 0 || fn === null) {\n return previousState;\n }\n return fn(previousState, event);\n }, state);\n log.debug(`evolve events`, { state, newState, events });\n return newState;\n}\n__name(evolve, \"evolve\");\nfunction dispatch(state, command) {\n const events = decide(state, command);\n const newState = evolve(state, events);\n return newState;\n}\n__name(dispatch, \"dispatch\");\nvar db = {\n getConfig: getConfig3,\n setOptions,\n getOptions,\n clear: clear2,\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n setDiagramTitle,\n getDiagramTitle,\n setAst,\n getDiagramProps,\n getState\n};\n\n// src/diagrams/eventmodeling/parser.ts\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"eventmodeling\", input);\n log.debug(ast);\n db.setAst(ast);\n populateCommonDb(ast, db);\n }, \"parse\")\n};\nif (void 0) {\n const { it, expect, describe } = void 0;\n describe(\"EventModeling Parser\", () => {\n it(\"should parse simple model\", () => {\n const result = parser.parse(`eventmodeling\n tf 01 evt Start\n\n `);\n expect(result !== void 0);\n });\n });\n}\n\n// src/diagrams/eventmodeling/renderer.ts\nimport { select } from \"d3\";\nvar DEFAULT_CONFIG = getConfig2();\nvar DEFAULT_EVENTMODELING_CONFIG2 = DEFAULT_CONFIG?.eventmodeling;\nfunction renderD3Box(diagram2, diagramProps2) {\n return (box) => {\n const y = box.swimlane.y + diagramProps2.swimlanePadding;\n const g = diagram2.append(\"g\").attr(\"class\", \"em-box\");\n g.append(\"rect\").attr(\"x\", box.x).attr(\"y\", y).attr(\"rx\", \"3\").attr(\"width\", box.dimension.width).attr(\"height\", box.dimension.height).attr(\"stroke\", box.visual.stroke).attr(\"fill\", box.visual.fill);\n const f = g.append(\"foreignObject\").attr(\"x\", box.x + diagramProps2.boxPadding).attr(\"y\", y + 10).attr(\"width\", box.dimension.width - 2 * diagramProps2.boxPadding).attr(\"height\", box.dimension.height - 2 * diagramProps2.boxPadding);\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"span\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").html(box.text);\n };\n}\n__name(renderD3Box, \"renderD3Box\");\nfunction dirUpwards(sourceY, targetY) {\n return sourceY > targetY;\n}\n__name(dirUpwards, \"dirUpwards\");\nfunction renderD3Relation(diagram2, diagramProps2, arrowheadId, themeVariables) {\n return (relation) => {\n const sourceBoxY = relation.sourceBox.swimlane.y + diagramProps2.swimlanePadding;\n const targetBoxY = relation.targetBox.swimlane.y + diagramProps2.swimlanePadding;\n const upwards = dirUpwards(sourceBoxY, targetBoxY);\n const sourceX = relation.sourceBox.x + relation.sourceBox.dimension.width * 2 / 3;\n const targetX = relation.targetBox.x + relation.targetBox.dimension.width / 3;\n let sourceY;\n let targetY;\n log.debug(`rendering relation up=${upwards} for `, {\n sourceBox: relation.sourceBox,\n targetBox: relation.targetBox\n });\n if (upwards) {\n sourceY = sourceBoxY;\n targetY = targetBoxY + relation.targetBox.dimension.height;\n } else {\n sourceY = sourceBoxY + relation.sourceBox.dimension.height;\n targetY = targetBoxY;\n }\n const relationStroke = themeVariables.emRelationStroke ?? relation.visual.stroke;\n diagram2.append(\"path\").attr(\"class\", \"em-relation\").attr(\"fill\", relation.visual.fill).attr(\"stroke\", relationStroke).attr(\"stroke-width\", \"1\").attr(\"marker-end\", `url(#${arrowheadId})`).attr(\"d\", `M${sourceX} ${sourceY} L${targetX} ${targetY}`);\n };\n}\n__name(renderD3Relation, \"renderD3Relation\");\nfunction renderD3Swimlane(diagram2, maxR, diagramProps2, themeVariables) {\n return (swimlane) => {\n const g = diagram2.append(\"g\").attr(\"class\", \"em-swimlane\");\n const oddBackground = themeVariables.emSwimlaneBackgroundOdd ?? \"rgb(250,250,250)\";\n const backgroundStroke = themeVariables.emSwimlaneBackgroundStroke ?? \"rgb(240,240,240)\";\n g.append(\"rect\").attr(\"x\", 0).attr(\"y\", swimlane.y).attr(\"rx\", \"3\").attr(\"width\", maxR + diagramProps2.swimlanePadding).attr(\"height\", swimlane.height).attr(\"fill\", oddBackground).attr(\"stroke\", backgroundStroke);\n g.append(\"text\").attr(\"font-weight\", diagramProps2.swimlaneTextFontWeight).attr(\"x\", 30).attr(\"y\", swimlane.y + 30).text(swimlane.label);\n };\n}\n__name(renderD3Swimlane, \"renderD3Swimlane\");\nvar draw = /* @__PURE__ */ __name(function(txt, id, ver, diagObj) {\n log.debug(\"in eventmodeling renderer\", txt + \"\\n\", \"id:\", id, ver);\n if (!DEFAULT_EVENTMODELING_CONFIG2) {\n throw new Error(\"EventModeling config not found\");\n }\n const db2 = diagObj.db;\n const { themeVariables, eventmodeling: config } = getConfig2();\n const diagram2 = select(`[id=\"${id}\"]`);\n const diagramProps2 = db2.getDiagramProps();\n const state = db2.getState();\n const arrowheadId = `em-arrowhead-${id}`;\n const arrowheadColor = themeVariables.emArrowhead ?? \"#000000\";\n state.sortedSwimlanesArray.forEach(\n renderD3Swimlane(diagram2, state.maxR, diagramProps2, themeVariables)\n );\n state.boxes.forEach(renderD3Box(diagram2, diagramProps2));\n state.relations.forEach(renderD3Relation(diagram2, diagramProps2, arrowheadId, themeVariables));\n const marker = diagram2.append(\"defs\").append(\"marker\").attr(\"id\", arrowheadId).attr(\"markerWidth\", \"10\").attr(\"markerHeight\", \"7\").attr(\"refX\", \"10\").attr(\"refY\", \"3.5\").attr(\"orient\", \"auto\");\n marker.append(\"polygon\").attr(\"points\", \"0 0, 10 3.5, 0 7\").attr(\"fill\", arrowheadColor);\n setupGraphViewbox(void 0, diagram2, config?.padding ?? 30, config?.useMaxWidth);\n}, \"draw\");\nvar renderer_default = {\n draw\n};\n\n// src/diagrams/eventmodeling/styles.js\nvar getStyles = /* @__PURE__ */ __name((_options) => ``, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/eventmodeling/diagram.ts\nvar diagram = {\n parser,\n db,\n renderer: renderer_default,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"names":["PositionFrameKind","FramePositionedKind","PositionRelationKind","RelationPositionedKind","setOptions","__name","_rawOptString","log","getOptions","clear2","reset","clear","store","DEFAULT_EVENTMODELING_CONFIG","defaultConfig_default","getConfig3","cleanAndMerge","getConfig","getState","state","initial","ast","diagramProps2","getDiagramProps","frame","index","textProps","calculateTextProps","dispatch","sourceFrames","hasSourceFrame","currentFrame","sf","sourceFrame","sortedSwimlanesArray","setAst","diagramProps","extractNamespace","entityIdentifier","spl","extractName","findSwimlaneByNamespace","swimlanes","namespace","swimlane","findNextAvailableIndex","boundaryMin","boundaryMax","key","calculateSwimlaneProps","sw","calculateEntityVisualProps","themeVariables","dataEntities","config","name","sanitizeText","toHtml","wrapLabelConfig","content","wrapLabel","dataEntity","dataEntity2","hasRenderedData","textDimensionConfig","dimensions","calculateTextDimensions","calculatedWidthFix","props","decidePositionFrame","_command","command","visual","dimension","calculateX","previousSwimlane","lastBox","calculateMaxRight","swimlaneR","rs","s","a","b","evolveFramePositioned","_event","event","swimlaneProps","x","r","maxR","box","newState","i","prevSw","isFirstFrame","findBoxByFrame","boxes","findBoxByLineIndex","targetSwimlane","lineIndex","decidePositionRelation","isEmResetFrame","targetBox","sourceBox","evolveRelationPositioned","relation","deciders","evolvers","decide","fn","events","evolve","previousState","db","setAccTitle","getAccTitle","getAccDescription","setAccDescription","setDiagramTitle","getDiagramTitle","parser","input","parse","populateCommonDb","DEFAULT_CONFIG","getConfig2","DEFAULT_EVENTMODELING_CONFIG2","renderD3Box","diagram2","y","g","dirUpwards","sourceY","targetY","renderD3Relation","arrowheadId","sourceBoxY","targetBoxY","upwards","sourceX","targetX","relationStroke","renderD3Swimlane","oddBackground","backgroundStroke","draw","txt","id","ver","diagObj","db2","select","arrowheadColor","setupGraphViewbox","renderer_default","getStyles","_options","styles_default","diagram"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"diagram-FQU43EPY-BqlZFcVg.js","sources":["../../../node_modules/.pnpm/mermaid@11.16.0/node_modules/mermaid/dist/chunks/mermaid.core/diagram-FQU43EPY.mjs"],"sourcesContent":["import {\n populateCommonDb\n} from \"./chunk-JWPE2WC7.mjs\";\nimport {\n calculateTextDimensions,\n cleanAndMerge,\n wrapLabel\n} from \"./chunk-ICXQ74PX.mjs\";\nimport {\n clear,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getConfig2,\n getDiagramTitle,\n sanitizeText,\n setAccDescription,\n setAccTitle,\n setDiagramTitle,\n setupGraphViewbox2 as setupGraphViewbox\n} from \"./chunk-WYO6CB5R.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/eventmodeling/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\n\n// src/diagrams/eventmodeling/db.ts\nimport { isEmResetFrame } from \"@mermaid-js/parser\";\n\n// src/diagrams/eventmodeling/types.ts\nvar PositionFrameKind = \"position frame\";\nvar FramePositionedKind = \"frame positioned\";\nvar PositionRelationKind = \"position relation\";\nvar RelationPositionedKind = \"relation positioned\";\n\n// src/diagrams/eventmodeling/db.ts\nvar setOptions = /* @__PURE__ */ __name(function(_rawOptString) {\n log.debug(\"options str\", _rawOptString);\n}, \"setOptions\");\nvar getOptions = /* @__PURE__ */ __name(function() {\n return {};\n}, \"getOptions\");\nvar clear2 = /* @__PURE__ */ __name(function() {\n reset();\n clear();\n}, \"clear\");\nfunction reset() {\n store = {};\n}\n__name(reset, \"reset\");\nvar DEFAULT_EVENTMODELING_CONFIG = defaultConfig_default.eventmodeling;\nvar getConfig3 = /* @__PURE__ */ __name(() => {\n const config = cleanAndMerge({\n ...DEFAULT_EVENTMODELING_CONFIG,\n ...getConfig().eventmodeling\n });\n return config;\n}, \"getConfig\");\nvar store = {};\nfunction getState() {\n let state = initial;\n const { ast } = store;\n const diagramProps2 = getDiagramProps();\n if (!ast) {\n throw new Error(\"No data for EventModel\");\n }\n ast.frames.forEach((frame, index) => {\n const textProps = calculateTextProps(frame, ast.dataEntities, diagramProps2);\n state = dispatch(state, {\n $kind: PositionFrameKind,\n index,\n frame,\n textProps\n });\n let sourceFrames = void 0;\n if (hasSourceFrame(frame)) {\n log.debug(`source frame`, frame.sourceFrames);\n sourceFrames = ast.frames.filter((currentFrame) => {\n return frame.sourceFrames.some((sf) => sf.$refText === currentFrame.name);\n });\n sourceFrames.forEach((sourceFrame) => {\n state = dispatch(state, {\n $kind: PositionRelationKind,\n index,\n frame,\n sourceFrame\n });\n });\n } else {\n state = dispatch(state, {\n $kind: PositionRelationKind,\n index,\n frame\n });\n }\n });\n state = {\n ...state,\n sortedSwimlanesArray: sortedSwimlanesArray(state.swimlanes)\n };\n return state;\n}\n__name(getState, \"getState\");\nfunction setAst(ast) {\n store.ast = ast;\n}\n__name(setAst, \"setAst\");\nvar diagramProps = {\n swimlaneMinHeight: 70,\n swimlanePadding: 15,\n swimlaneGap: 10,\n boxPadding: 10,\n boxOverlap: 90,\n boxDefaultY: 0,\n boxMinWidth: 80,\n boxMaxWidth: 450,\n boxMinHeight: 80,\n boxMaxHeight: 750,\n contentStartX: 250,\n textMaxWidth: 450 - 2 * 10,\n boxTextFontWeight: \"bold\",\n boxTextPadding: 10,\n swimlaneTextFontWeight: \"bold\",\n labelUiAutomation: \"UI/Automation\",\n labelUiAutomationPrefix: \"UI/A: \",\n labelCommandReadModel: \"Command/Read Model\",\n labelCommandReadModelPrefix: \"C/RM: \",\n labelEvents: \"Events\",\n labelEventsPrefix: \"Stream: \"\n};\nfunction getDiagramProps() {\n return diagramProps;\n}\n__name(getDiagramProps, \"getDiagramProps\");\nvar initial = {\n boxes: [],\n swimlanes: {},\n relations: [],\n maxR: 0,\n sortedSwimlanesArray: []\n};\nfunction extractNamespace(entityIdentifier) {\n const spl = entityIdentifier.split(\".\");\n if (spl.length === 2) {\n return spl[0];\n }\n return void 0;\n}\n__name(extractNamespace, \"extractNamespace\");\nfunction extractName(entityIdentifier) {\n const spl = entityIdentifier.split(\".\");\n if (spl.length === 2) {\n return spl[1];\n }\n return entityIdentifier;\n}\n__name(extractName, \"extractName\");\nfunction findSwimlaneByNamespace(swimlanes, namespace) {\n if (!namespace || namespace.length === 0) {\n return void 0;\n }\n return Object.values(swimlanes).find((swimlane) => swimlane.namespace === namespace);\n}\n__name(findSwimlaneByNamespace, \"findSwimlaneByNamespace\");\nfunction findNextAvailableIndex(swimlanes, boundaryMin, boundaryMax) {\n return Math.max(\n boundaryMin,\n ...Object.keys(swimlanes).filter((key) => {\n const index = Number.parseInt(key);\n return index > boundaryMin && index < boundaryMax;\n }).map((key) => Number.parseInt(key))\n ) + 1;\n}\n__name(findNextAvailableIndex, \"findNextAvailableIndex\");\nfunction calculateSwimlaneProps(frame, swimlanes) {\n const namespace = extractNamespace(frame.entityIdentifier);\n const sw = findSwimlaneByNamespace(swimlanes, namespace);\n switch (frame.modelEntityType) {\n case \"ui\":\n case \"pcr\":\n case \"processor\":\n if (sw) {\n return {\n index: sw.index,\n label: sw.namespace || diagramProps.labelUiAutomation\n };\n } else if (namespace) {\n return {\n index: findNextAvailableIndex(swimlanes, 0, 100),\n label: diagramProps.labelUiAutomationPrefix + namespace\n };\n }\n return { index: 0, label: diagramProps.labelUiAutomation };\n case \"rmo\":\n case \"readmodel\":\n case \"cmd\":\n case \"command\":\n if (sw) {\n return {\n index: sw.index,\n label: sw.namespace || diagramProps.labelCommandReadModel\n };\n } else if (namespace) {\n return {\n index: findNextAvailableIndex(swimlanes, 100, 200),\n label: diagramProps.labelCommandReadModelPrefix + namespace\n };\n }\n return { index: 100, label: diagramProps.labelCommandReadModel };\n case \"evt\":\n case \"event\":\n default:\n if (sw) {\n return {\n index: sw.index,\n label: sw.namespace || diagramProps.labelEvents\n };\n } else if (namespace) {\n return {\n index: findNextAvailableIndex(swimlanes, 200, 300),\n label: diagramProps.labelEventsPrefix + namespace\n };\n }\n return { index: 200, label: diagramProps.labelEvents };\n }\n}\n__name(calculateSwimlaneProps, \"calculateSwimlaneProps\");\nfunction calculateEntityVisualProps(frame) {\n const { themeVariables } = getConfig();\n switch (frame.modelEntityType) {\n case \"ui\":\n return {\n fill: themeVariables.emUiFill ?? \"white\",\n stroke: themeVariables.emUiStroke ?? \"#dbdada\"\n };\n case \"pcr\":\n case \"processor\":\n return {\n fill: themeVariables.emProcessorFill ?? \"#edb3f6\",\n stroke: themeVariables.emProcessorStroke ?? \"#b88cbf\"\n };\n case \"rmo\":\n case \"readmodel\":\n return {\n fill: themeVariables.emReadModelFill ?? \"#d3f1a2\",\n stroke: themeVariables.emReadModelStroke ?? \"#a3b732\"\n };\n case \"cmd\":\n case \"command\":\n return {\n fill: themeVariables.emCommandFill ?? \"#bcd6fe\",\n stroke: themeVariables.emCommandStroke ?? \"#679ac3\"\n };\n case \"evt\":\n case \"event\":\n return {\n fill: themeVariables.emEventFill ?? \"#ffb778\",\n stroke: themeVariables.emEventStroke ?? \"#c19a0f\"\n };\n default:\n return {\n fill: \"red\",\n stroke: \"black\"\n };\n }\n}\n__name(calculateEntityVisualProps, \"calculateEntityVisualProps\");\nfunction calculateTextProps(frame, dataEntities, diagramProps2) {\n const config = getConfig();\n const name = sanitizeText(extractName(frame.entityIdentifier) ?? \"\", config);\n let toHtml;\n const wrapLabelConfig = {\n fontSize: 16,\n fontWeight: 700,\n fontFamily: '\"trebuchet ms\", verdana, arial, sans-serif',\n joinWith: \"<br/>\"\n };\n const wrappedName = wrapLabel(name, diagramProps2.textMaxWidth, wrapLabelConfig);\n let content = `<b>${wrappedName}</b>`;\n if (frame.dataInlineValue) {\n toHtml = frame.dataInlineValue;\n toHtml = toHtml.substring(toHtml.indexOf(\"{\") + 1);\n toHtml = toHtml.substring(0, toHtml.lastIndexOf(\"}\") - 1);\n toHtml = sanitizeText(toHtml, config);\n toHtml = wrapLabel(toHtml, diagramProps2.textMaxWidth, wrapLabelConfig);\n toHtml = toHtml.replaceAll(\" \", \" \");\n }\n if (frame.dataReference) {\n const dataEntity = dataEntities.find(\n (dataEntity2) => dataEntity2.name === frame.dataReference?.$refText\n );\n if (dataEntity) {\n toHtml = dataEntity.dataBlockValue;\n toHtml = toHtml.substring(toHtml.indexOf(\"{\\n\") + 2);\n toHtml = toHtml.substring(0, toHtml.lastIndexOf(\"}\") - 1);\n toHtml = sanitizeText(toHtml, config);\n toHtml = wrapLabel(toHtml, diagramProps2.textMaxWidth, wrapLabelConfig);\n toHtml = toHtml.replaceAll(\" \", \" \");\n toHtml += `<br/>`;\n }\n }\n const hasRenderedData = toHtml !== void 0;\n if (hasRenderedData) {\n content += `<br/><br/><code style=\"text-align: left; display: block;max-width:${diagramProps2.textMaxWidth}px\">${toHtml}</code>`;\n }\n const textDimensionConfig = {\n fontSize: wrapLabelConfig.fontSize,\n fontWeight: wrapLabelConfig.fontWeight,\n fontFamily: wrapLabelConfig.fontFamily\n };\n const dimensions = calculateTextDimensions(content, textDimensionConfig);\n const calculatedWidthFix = hasRenderedData ? dimensions.width / 3 : dimensions.width;\n const props = {\n content,\n width: calculatedWidthFix,\n height: dimensions.height\n };\n log.debug(`[${frame.name}] ${frame.entityIdentifier} text`, props);\n return props;\n}\n__name(calculateTextProps, \"calculateTextProps\");\nfunction decidePositionFrame(state, _command) {\n const command = _command;\n const visual = calculateEntityVisualProps(command.frame);\n const dimension = {\n width: command.textProps.width + 2 * diagramProps.boxTextPadding,\n height: command.textProps.height + 2 * diagramProps.boxTextPadding\n };\n const event = {\n $kind: FramePositionedKind,\n frame: command.frame,\n index: command.index,\n visual,\n dimension,\n textProps: command.textProps\n };\n return [event];\n}\n__name(decidePositionFrame, \"decidePositionFrame\");\nfunction calculateX(swimlane, previousSwimlane, lastBox) {\n if (previousSwimlane === void 0) {\n return diagramProps.contentStartX;\n }\n if (previousSwimlane.index === swimlane.index && swimlane.r) {\n return swimlane.r + diagramProps.boxPadding;\n }\n if (lastBox === void 0) {\n return diagramProps.contentStartX;\n }\n return lastBox.r - diagramProps.boxOverlap + diagramProps.boxPadding;\n}\n__name(calculateX, \"calculateX\");\nfunction calculateMaxRight(swimlanes, swimlaneR) {\n const rs = [...swimlanes.map((s) => s.r), swimlaneR];\n return Math.max(...rs);\n}\n__name(calculateMaxRight, \"calculateMaxRight\");\nfunction sortedSwimlanesArray(swimlanes) {\n return Object.values(swimlanes).sort((a, b) => a.index - b.index);\n}\n__name(sortedSwimlanesArray, \"sortedSwimlanesArray\");\nfunction evolveFramePositioned(state, _event) {\n const event = _event;\n const swimlaneProps = calculateSwimlaneProps(event.frame, state.swimlanes);\n let swimlane;\n if (swimlaneProps.index in state.swimlanes) {\n swimlane = state.swimlanes[swimlaneProps.index];\n } else {\n swimlane = {\n index: swimlaneProps.index,\n label: swimlaneProps.label,\n r: 0,\n y: swimlaneProps.index * diagramProps.swimlaneMinHeight + diagramProps.swimlaneGap,\n height: diagramProps.swimlaneMinHeight,\n maxHeight: diagramProps.swimlaneMinHeight\n };\n }\n const lastBox = state.boxes.length > 0 ? state.boxes[state.boxes.length - 1] : void 0;\n const previousSwimlane = state.previousSwimlaneNumber !== void 0 ? state.swimlanes[state.previousSwimlaneNumber] : void 0;\n const dimension = {\n width: Math.max(\n diagramProps.boxMinWidth,\n Math.min(diagramProps.boxMaxWidth, event.dimension.width)\n ) + 2 * diagramProps.boxPadding,\n height: Math.max(\n diagramProps.boxMinHeight,\n Math.min(diagramProps.boxMaxHeight, event.dimension.height)\n ) + 2 * diagramProps.boxPadding\n };\n const x = calculateX(swimlane, previousSwimlane, lastBox);\n const r = x + dimension.width + diagramProps.boxPadding;\n const maxR = calculateMaxRight(Object.values(state.swimlanes), r);\n swimlane.r = x + dimension.width;\n swimlane.maxHeight = Math.max(swimlane.maxHeight, dimension.height);\n swimlane.height = Math.max(diagramProps.swimlaneMinHeight, swimlane.maxHeight) + 2 * diagramProps.swimlanePadding;\n const box = {\n x,\n y: diagramProps.swimlanePadding + swimlane.y,\n // y: diagramProps.swimlanePadding + (swimlane.y || diagramProps.boxDefaultY),\n r,\n dimension,\n leftSibling: false,\n swimlane,\n visual: event.visual,\n text: event.textProps.content,\n frame: event.frame,\n index: event.index\n };\n const newState = {\n ...state,\n boxes: [...state.boxes, box],\n swimlanes: {\n ...state.swimlanes,\n [`${swimlane.index}`]: swimlane\n },\n previousSwimlaneNumber: swimlaneProps.index,\n previousFrame: event.frame,\n maxR\n };\n const swimlanes = sortedSwimlanesArray(newState.swimlanes);\n if (swimlanes.length > 0) {\n swimlanes[0].y = 0;\n }\n for (let i = 1; i < swimlanes.length; i++) {\n const sw = swimlanes[i];\n const prevSw = swimlanes[i - 1];\n sw.y = prevSw.y + prevSw.height + diagramProps.swimlaneGap;\n }\n return newState;\n}\n__name(evolveFramePositioned, \"evolveFramePositioned\");\nfunction isFirstFrame(index, frame) {\n if (index === 0 && frame.sourceFrames.length === 0) {\n return true;\n }\n return false;\n}\n__name(isFirstFrame, \"isFirstFrame\");\nfunction hasSourceFrame(frame) {\n return frame.sourceFrames !== void 0 && frame.sourceFrames !== null && frame.sourceFrames.length > 0;\n}\n__name(hasSourceFrame, \"hasSourceFrame\");\nfunction findBoxByFrame(boxes, frame) {\n if (frame === void 0 || frame === null) {\n return void 0;\n }\n return boxes.find((box) => box.frame.name === frame.name);\n}\n__name(findBoxByFrame, \"findBoxByFrame\");\nfunction findBoxByLineIndex(boxes, targetSwimlane, lineIndex) {\n if (lineIndex < 0) {\n return void 0;\n }\n for (let i = lineIndex; i >= 0; i--) {\n const box = boxes[i];\n if (box.swimlane.index !== targetSwimlane) {\n return box;\n }\n }\n return void 0;\n}\n__name(findBoxByLineIndex, \"findBoxByLineIndex\");\nfunction decidePositionRelation(state, _command) {\n const command = _command;\n if (isEmResetFrame(command.frame) || isFirstFrame(command.index, command.frame)) {\n return [];\n }\n const targetBox = findBoxByFrame(state.boxes, command.frame);\n if (targetBox === void 0) {\n throw new Error(`Target box not found for frame ${command.frame.name}`);\n }\n let sourceBox;\n if (command.sourceFrame) {\n sourceBox = findBoxByFrame(state.boxes, command.sourceFrame);\n } else {\n sourceBox = findBoxByLineIndex(state.boxes, targetBox.swimlane.index, command.index - 1);\n }\n if (sourceBox === void 0) {\n return [];\n }\n const event = {\n $kind: RelationPositionedKind,\n frame: command.frame,\n index: command.index,\n sourceBox,\n targetBox\n };\n return [event];\n}\n__name(decidePositionRelation, \"decidePositionRelation\");\nfunction evolveRelationPositioned(state, _event) {\n const event = _event;\n const relation = {\n visual: {\n fill: \"none\",\n stroke: \"#000\"\n },\n source: {\n x: event.sourceBox.x,\n y: event.sourceBox.y\n },\n target: {\n x: event.targetBox.x,\n y: event.targetBox.y\n },\n sourceBox: event.sourceBox,\n targetBox: event.targetBox\n };\n const newState = {\n ...state,\n relations: [...state.relations, relation]\n };\n return newState;\n}\n__name(evolveRelationPositioned, \"evolveRelationPositioned\");\nvar deciders = {\n [PositionFrameKind]: decidePositionFrame,\n [PositionRelationKind]: decidePositionRelation\n};\nvar evolvers = {\n [FramePositionedKind]: evolveFramePositioned,\n [RelationPositionedKind]: evolveRelationPositioned\n};\nfunction decide(state, command) {\n const fn = deciders[command.$kind];\n if (fn === void 0 || fn === null) {\n return [];\n }\n const events = fn(state, command);\n log.debug(`decided events`, events);\n return events;\n}\n__name(decide, \"decide\");\nfunction evolve(state, events) {\n const newState = events.reduce((previousState, event) => {\n const fn = evolvers[event.$kind];\n if (fn === void 0 || fn === null) {\n return previousState;\n }\n return fn(previousState, event);\n }, state);\n log.debug(`evolve events`, { state, newState, events });\n return newState;\n}\n__name(evolve, \"evolve\");\nfunction dispatch(state, command) {\n const events = decide(state, command);\n const newState = evolve(state, events);\n return newState;\n}\n__name(dispatch, \"dispatch\");\nvar db = {\n getConfig: getConfig3,\n setOptions,\n getOptions,\n clear: clear2,\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n setDiagramTitle,\n getDiagramTitle,\n setAst,\n getDiagramProps,\n getState\n};\n\n// src/diagrams/eventmodeling/parser.ts\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"eventmodeling\", input);\n log.debug(ast);\n db.setAst(ast);\n populateCommonDb(ast, db);\n }, \"parse\")\n};\nif (void 0) {\n const { it, expect, describe } = void 0;\n describe(\"EventModeling Parser\", () => {\n it(\"should parse simple model\", () => {\n const result = parser.parse(`eventmodeling\n tf 01 evt Start\n\n `);\n expect(result !== void 0);\n });\n });\n}\n\n// src/diagrams/eventmodeling/renderer.ts\nimport { select } from \"d3\";\nvar DEFAULT_CONFIG = getConfig2();\nvar DEFAULT_EVENTMODELING_CONFIG2 = DEFAULT_CONFIG?.eventmodeling;\nfunction renderD3Box(diagram2, diagramProps2) {\n return (box) => {\n const y = box.swimlane.y + diagramProps2.swimlanePadding;\n const g = diagram2.append(\"g\").attr(\"class\", \"em-box\");\n g.append(\"rect\").attr(\"x\", box.x).attr(\"y\", y).attr(\"rx\", \"3\").attr(\"width\", box.dimension.width).attr(\"height\", box.dimension.height).attr(\"stroke\", box.visual.stroke).attr(\"fill\", box.visual.fill);\n const f = g.append(\"foreignObject\").attr(\"x\", box.x + diagramProps2.boxPadding).attr(\"y\", y + 10).attr(\"width\", box.dimension.width - 2 * diagramProps2.boxPadding).attr(\"height\", box.dimension.height - 2 * diagramProps2.boxPadding);\n const text = f.append(\"xhtml:div\").style(\"display\", \"table\").style(\"height\", \"100%\").style(\"width\", \"100%\");\n text.append(\"span\").style(\"display\", \"table-cell\").style(\"text-align\", \"center\").style(\"vertical-align\", \"middle\").html(box.text);\n };\n}\n__name(renderD3Box, \"renderD3Box\");\nfunction dirUpwards(sourceY, targetY) {\n return sourceY > targetY;\n}\n__name(dirUpwards, \"dirUpwards\");\nfunction renderD3Relation(diagram2, diagramProps2, arrowheadId, themeVariables) {\n return (relation) => {\n const sourceBoxY = relation.sourceBox.swimlane.y + diagramProps2.swimlanePadding;\n const targetBoxY = relation.targetBox.swimlane.y + diagramProps2.swimlanePadding;\n const upwards = dirUpwards(sourceBoxY, targetBoxY);\n const sourceX = relation.sourceBox.x + relation.sourceBox.dimension.width * 2 / 3;\n const targetX = relation.targetBox.x + relation.targetBox.dimension.width / 3;\n let sourceY;\n let targetY;\n log.debug(`rendering relation up=${upwards} for `, {\n sourceBox: relation.sourceBox,\n targetBox: relation.targetBox\n });\n if (upwards) {\n sourceY = sourceBoxY;\n targetY = targetBoxY + relation.targetBox.dimension.height;\n } else {\n sourceY = sourceBoxY + relation.sourceBox.dimension.height;\n targetY = targetBoxY;\n }\n const relationStroke = themeVariables.emRelationStroke ?? relation.visual.stroke;\n diagram2.append(\"path\").attr(\"class\", \"em-relation\").attr(\"fill\", relation.visual.fill).attr(\"stroke\", relationStroke).attr(\"stroke-width\", \"1\").attr(\"marker-end\", `url(#${arrowheadId})`).attr(\"d\", `M${sourceX} ${sourceY} L${targetX} ${targetY}`);\n };\n}\n__name(renderD3Relation, \"renderD3Relation\");\nfunction renderD3Swimlane(diagram2, maxR, diagramProps2, themeVariables) {\n return (swimlane) => {\n const g = diagram2.append(\"g\").attr(\"class\", \"em-swimlane\");\n const oddBackground = themeVariables.emSwimlaneBackgroundOdd ?? \"rgb(250,250,250)\";\n const backgroundStroke = themeVariables.emSwimlaneBackgroundStroke ?? \"rgb(240,240,240)\";\n g.append(\"rect\").attr(\"x\", 0).attr(\"y\", swimlane.y).attr(\"rx\", \"3\").attr(\"width\", maxR + diagramProps2.swimlanePadding).attr(\"height\", swimlane.height).attr(\"fill\", oddBackground).attr(\"stroke\", backgroundStroke);\n g.append(\"text\").attr(\"font-weight\", diagramProps2.swimlaneTextFontWeight).attr(\"x\", 30).attr(\"y\", swimlane.y + 30).text(swimlane.label);\n };\n}\n__name(renderD3Swimlane, \"renderD3Swimlane\");\nvar draw = /* @__PURE__ */ __name(function(txt, id, ver, diagObj) {\n log.debug(\"in eventmodeling renderer\", txt + \"\\n\", \"id:\", id, ver);\n if (!DEFAULT_EVENTMODELING_CONFIG2) {\n throw new Error(\"EventModeling config not found\");\n }\n const db2 = diagObj.db;\n const { themeVariables, eventmodeling: config } = getConfig2();\n const diagram2 = select(`[id=\"${id}\"]`);\n const diagramProps2 = db2.getDiagramProps();\n const state = db2.getState();\n const arrowheadId = `em-arrowhead-${id}`;\n const arrowheadColor = themeVariables.emArrowhead ?? \"#000000\";\n state.sortedSwimlanesArray.forEach(\n renderD3Swimlane(diagram2, state.maxR, diagramProps2, themeVariables)\n );\n state.boxes.forEach(renderD3Box(diagram2, diagramProps2));\n state.relations.forEach(renderD3Relation(diagram2, diagramProps2, arrowheadId, themeVariables));\n const marker = diagram2.append(\"defs\").append(\"marker\").attr(\"id\", arrowheadId).attr(\"markerWidth\", \"10\").attr(\"markerHeight\", \"7\").attr(\"refX\", \"10\").attr(\"refY\", \"3.5\").attr(\"orient\", \"auto\");\n marker.append(\"polygon\").attr(\"points\", \"0 0, 10 3.5, 0 7\").attr(\"fill\", arrowheadColor);\n setupGraphViewbox(void 0, diagram2, config?.padding ?? 30, config?.useMaxWidth);\n}, \"draw\");\nvar renderer_default = {\n draw\n};\n\n// src/diagrams/eventmodeling/styles.js\nvar getStyles = /* @__PURE__ */ __name((_options) => ``, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/eventmodeling/diagram.ts\nvar diagram = {\n parser,\n db,\n renderer: renderer_default,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"names":["PositionFrameKind","FramePositionedKind","PositionRelationKind","RelationPositionedKind","setOptions","__name","_rawOptString","log","getOptions","clear2","reset","clear","store","DEFAULT_EVENTMODELING_CONFIG","defaultConfig_default","getConfig3","cleanAndMerge","getConfig","getState","state","initial","ast","diagramProps2","getDiagramProps","frame","index","textProps","calculateTextProps","dispatch","sourceFrames","hasSourceFrame","currentFrame","sf","sourceFrame","sortedSwimlanesArray","setAst","diagramProps","extractNamespace","entityIdentifier","spl","extractName","findSwimlaneByNamespace","swimlanes","namespace","swimlane","findNextAvailableIndex","boundaryMin","boundaryMax","key","calculateSwimlaneProps","sw","calculateEntityVisualProps","themeVariables","dataEntities","config","name","sanitizeText","toHtml","wrapLabelConfig","content","wrapLabel","dataEntity","dataEntity2","hasRenderedData","textDimensionConfig","dimensions","calculateTextDimensions","calculatedWidthFix","props","decidePositionFrame","_command","command","visual","dimension","calculateX","previousSwimlane","lastBox","calculateMaxRight","swimlaneR","rs","s","a","b","evolveFramePositioned","_event","event","swimlaneProps","x","r","maxR","box","newState","i","prevSw","isFirstFrame","findBoxByFrame","boxes","findBoxByLineIndex","targetSwimlane","lineIndex","decidePositionRelation","isEmResetFrame","targetBox","sourceBox","evolveRelationPositioned","relation","deciders","evolvers","decide","fn","events","evolve","previousState","db","setAccTitle","getAccTitle","getAccDescription","setAccDescription","setDiagramTitle","getDiagramTitle","parser","input","parse","populateCommonDb","DEFAULT_CONFIG","getConfig2","DEFAULT_EVENTMODELING_CONFIG2","renderD3Box","diagram2","y","g","dirUpwards","sourceY","targetY","renderD3Relation","arrowheadId","sourceBoxY","targetBoxY","upwards","sourceX","targetX","relationStroke","renderD3Swimlane","oddBackground","backgroundStroke","draw","txt","id","ver","diagObj","db2","select","arrowheadColor","setupGraphViewbox","renderer_default","getStyles","_options","styles_default","diagram"],"mappings":"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","x_google_ignoreList":[0]}
|