@aiquants/markdown 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/dist/{_basePickBy-DGJ-oAbP.js → _basePickBy-BAf9TBeP.js} +3 -3
  2. package/dist/{_basePickBy-DGJ-oAbP.js.map → _basePickBy-BAf9TBeP.js.map} +1 -1
  3. package/dist/{_basePickBy-CJeGUXFc.cjs → _basePickBy-DJNTCiEl.cjs} +2 -2
  4. package/dist/{_basePickBy-CJeGUXFc.cjs.map → _basePickBy-DJNTCiEl.cjs.map} +1 -1
  5. package/dist/{_baseUniq-DmmwqgFi.cjs → _baseUniq-oBgpBLxN.cjs} +2 -2
  6. package/dist/{_baseUniq-DmmwqgFi.cjs.map → _baseUniq-oBgpBLxN.cjs.map} +1 -1
  7. package/dist/{_baseUniq-zkWo_1rp.js → _baseUniq-xpz62V3M.js} +2 -2
  8. package/dist/{_baseUniq-zkWo_1rp.js.map → _baseUniq-xpz62V3M.js.map} +1 -1
  9. package/dist/{arc-Do8CANbr.js → arc-Cdp6A92J.js} +2 -2
  10. package/dist/{arc-Do8CANbr.js.map → arc-Cdp6A92J.js.map} +1 -1
  11. package/dist/{arc-DAUA8YnG.cjs → arc-Df6554Se.cjs} +2 -2
  12. package/dist/{arc-DAUA8YnG.cjs.map → arc-Df6554Se.cjs.map} +1 -1
  13. package/dist/architecture-U656AL7Q-BFneEPaI.js +6 -0
  14. package/dist/architecture-U656AL7Q-BFneEPaI.js.map +1 -0
  15. package/dist/{architecture-U656AL7Q-Bk_BCN3G.cjs → architecture-U656AL7Q-DXWeTGXD.cjs} +2 -2
  16. package/dist/architecture-U656AL7Q-DXWeTGXD.cjs.map +1 -0
  17. package/dist/{architectureDiagram-VXUJARFQ-C3_AqxrC.js → architectureDiagram-VXUJARFQ-DrV8Y7rq.js} +4 -4
  18. package/dist/{architectureDiagram-VXUJARFQ-C3_AqxrC.js.map → architectureDiagram-VXUJARFQ-DrV8Y7rq.js.map} +1 -1
  19. package/dist/{architectureDiagram-VXUJARFQ-eU-3tnCG.cjs → architectureDiagram-VXUJARFQ-fEGjFbVc.cjs} +2 -2
  20. package/dist/{architectureDiagram-VXUJARFQ-eU-3tnCG.cjs.map → architectureDiagram-VXUJARFQ-fEGjFbVc.cjs.map} +1 -1
  21. package/dist/{blockDiagram-VD42YOAC-DI0rOR-X.js → blockDiagram-VD42YOAC-Dj9PGaUA.js} +6 -6
  22. package/dist/{blockDiagram-VD42YOAC-DI0rOR-X.js.map → blockDiagram-VD42YOAC-Dj9PGaUA.js.map} +1 -1
  23. package/dist/{blockDiagram-VD42YOAC-CnsJKAH7.cjs → blockDiagram-VD42YOAC-DnIarP1n.cjs} +2 -2
  24. package/dist/{blockDiagram-VD42YOAC-CnsJKAH7.cjs.map → blockDiagram-VD42YOAC-DnIarP1n.cjs.map} +1 -1
  25. package/dist/{c4Diagram-YG6GDRKO-CCs9MC7P.cjs → c4Diagram-YG6GDRKO-B1rWXPSq.cjs} +2 -2
  26. package/dist/{c4Diagram-YG6GDRKO-CCs9MC7P.cjs.map → c4Diagram-YG6GDRKO-B1rWXPSq.cjs.map} +1 -1
  27. package/dist/{c4Diagram-YG6GDRKO-D51PeXS6.js → c4Diagram-YG6GDRKO-DT2-syeR.js} +3 -3
  28. package/dist/{c4Diagram-YG6GDRKO-D51PeXS6.js.map → c4Diagram-YG6GDRKO-DT2-syeR.js.map} +1 -1
  29. package/dist/channel-BIIdftI1.js +6 -0
  30. package/dist/{channel-KAvJVFiL.js.map → channel-BIIdftI1.js.map} +1 -1
  31. package/dist/channel-BOYh8w_6.cjs +2 -0
  32. package/dist/{channel-BaCsO_0A.cjs.map → channel-BOYh8w_6.cjs.map} +1 -1
  33. package/dist/{chunk-4BX2VUAB-RTUYNJ4N.js → chunk-4BX2VUAB-3m-kTV7c.js} +2 -2
  34. package/dist/{chunk-4BX2VUAB-RTUYNJ4N.js.map → chunk-4BX2VUAB-3m-kTV7c.js.map} +1 -1
  35. package/dist/{chunk-4BX2VUAB-CNm_p9u2.cjs → chunk-4BX2VUAB-Ccl0XCCb.cjs} +2 -2
  36. package/dist/{chunk-4BX2VUAB-CNm_p9u2.cjs.map → chunk-4BX2VUAB-Ccl0XCCb.cjs.map} +1 -1
  37. package/dist/{chunk-55IACEB6-Dw6JfE_R.js → chunk-55IACEB6-DFPiIUqS.js} +2 -2
  38. package/dist/{chunk-55IACEB6-Dw6JfE_R.js.map → chunk-55IACEB6-DFPiIUqS.js.map} +1 -1
  39. package/dist/{chunk-55IACEB6-yuqRdS6I.cjs → chunk-55IACEB6-DF_nOrnG.cjs} +2 -2
  40. package/dist/{chunk-55IACEB6-yuqRdS6I.cjs.map → chunk-55IACEB6-DF_nOrnG.cjs.map} +1 -1
  41. package/dist/{chunk-B4BG7PRW-Cu2KwVXL.js → chunk-B4BG7PRW--ytg5kTi.js} +5 -5
  42. package/dist/{chunk-B4BG7PRW-Cu2KwVXL.js.map → chunk-B4BG7PRW--ytg5kTi.js.map} +1 -1
  43. package/dist/{chunk-B4BG7PRW-5i9HWRdu.cjs → chunk-B4BG7PRW-YJstgnSU.cjs} +2 -2
  44. package/dist/{chunk-B4BG7PRW-5i9HWRdu.cjs.map → chunk-B4BG7PRW-YJstgnSU.cjs.map} +1 -1
  45. package/dist/{chunk-DI55MBZ5-D9r0NVIn.js → chunk-DI55MBZ5-BmCH9GqB.js} +4 -4
  46. package/dist/{chunk-DI55MBZ5-D9r0NVIn.js.map → chunk-DI55MBZ5-BmCH9GqB.js.map} +1 -1
  47. package/dist/{chunk-DI55MBZ5-RM4QxlLs.cjs → chunk-DI55MBZ5-Caqpkdhr.cjs} +2 -2
  48. package/dist/{chunk-DI55MBZ5-RM4QxlLs.cjs.map → chunk-DI55MBZ5-Caqpkdhr.cjs.map} +1 -1
  49. package/dist/{chunk-FMBD7UC4-BF1L4E3r.cjs → chunk-FMBD7UC4-BzNDH5v8.cjs} +2 -2
  50. package/dist/{chunk-FMBD7UC4-BF1L4E3r.cjs.map → chunk-FMBD7UC4-BzNDH5v8.cjs.map} +1 -1
  51. package/dist/{chunk-FMBD7UC4-DCOkUt8T.js → chunk-FMBD7UC4-C-LfOPnM.js} +2 -2
  52. package/dist/{chunk-FMBD7UC4-DCOkUt8T.js.map → chunk-FMBD7UC4-C-LfOPnM.js.map} +1 -1
  53. package/dist/{chunk-QN33PNHL-D02O-uMO.cjs → chunk-QN33PNHL-CTPfHl1X.cjs} +2 -2
  54. package/dist/{chunk-QN33PNHL-D02O-uMO.cjs.map → chunk-QN33PNHL-CTPfHl1X.cjs.map} +1 -1
  55. package/dist/{chunk-QN33PNHL-hzQ0yPiA.js → chunk-QN33PNHL-DusPZf-g.js} +2 -2
  56. package/dist/{chunk-QN33PNHL-hzQ0yPiA.js.map → chunk-QN33PNHL-DusPZf-g.js.map} +1 -1
  57. package/dist/{chunk-QZHKN3VN-BmkTtKro.cjs → chunk-QZHKN3VN-CmkPBu4c.cjs} +2 -2
  58. package/dist/{chunk-QZHKN3VN-BmkTtKro.cjs.map → chunk-QZHKN3VN-CmkPBu4c.cjs.map} +1 -1
  59. package/dist/{chunk-QZHKN3VN-B6f2M6cP.js → chunk-QZHKN3VN-rE0ieZJm.js} +2 -2
  60. package/dist/{chunk-QZHKN3VN-B6f2M6cP.js.map → chunk-QZHKN3VN-rE0ieZJm.js.map} +1 -1
  61. package/dist/{chunk-TZMSLE5B-kcQjV4u6.cjs → chunk-TZMSLE5B-BTD_Ddmh.cjs} +2 -2
  62. package/dist/{chunk-TZMSLE5B-kcQjV4u6.cjs.map → chunk-TZMSLE5B-BTD_Ddmh.cjs.map} +1 -1
  63. package/dist/{chunk-TZMSLE5B-CMgHccah.js → chunk-TZMSLE5B-J8F8d3GW.js} +2 -2
  64. package/dist/{chunk-TZMSLE5B-CMgHccah.js.map → chunk-TZMSLE5B-J8F8d3GW.js.map} +1 -1
  65. package/dist/{classDiagram-2ON5EDUG-Cr5EKsK5.js → classDiagram-2ON5EDUG-Br3OQG53.js} +3 -3
  66. package/dist/{classDiagram-2ON5EDUG-Cr5EKsK5.js.map → classDiagram-2ON5EDUG-Br3OQG53.js.map} +1 -1
  67. package/dist/{classDiagram-2ON5EDUG-D8v286nZ.cjs → classDiagram-2ON5EDUG-Ce7MrBcE.cjs} +2 -2
  68. package/dist/{classDiagram-2ON5EDUG-D8v286nZ.cjs.map → classDiagram-2ON5EDUG-Ce7MrBcE.cjs.map} +1 -1
  69. package/dist/{classDiagram-v2-WZHVMYZB-Cr5EKsK5.js → classDiagram-v2-WZHVMYZB-Br3OQG53.js} +3 -3
  70. package/dist/{classDiagram-v2-WZHVMYZB-Cr5EKsK5.js.map → classDiagram-v2-WZHVMYZB-Br3OQG53.js.map} +1 -1
  71. package/dist/{classDiagram-v2-WZHVMYZB-D8v286nZ.cjs → classDiagram-v2-WZHVMYZB-Ce7MrBcE.cjs} +2 -2
  72. package/dist/{classDiagram-v2-WZHVMYZB-D8v286nZ.cjs.map → classDiagram-v2-WZHVMYZB-Ce7MrBcE.cjs.map} +1 -1
  73. package/dist/clone-CCIqcM5Y.js +9 -0
  74. package/dist/{clone-BxPvQEOl.js.map → clone-CCIqcM5Y.js.map} +1 -1
  75. package/dist/clone-CvQKcI6r.cjs +2 -0
  76. package/dist/{clone-Qa8ZMMKU.cjs.map → clone-CvQKcI6r.cjs.map} +1 -1
  77. package/dist/{cose-bilkent-S5V4N54A-BJ3wg7KS.cjs → cose-bilkent-S5V4N54A-CYDFYlZ6.cjs} +2 -2
  78. package/dist/{cose-bilkent-S5V4N54A-BJ3wg7KS.cjs.map → cose-bilkent-S5V4N54A-CYDFYlZ6.cjs.map} +1 -1
  79. package/dist/{cose-bilkent-S5V4N54A-B0RvLg-Z.js → cose-bilkent-S5V4N54A-fU3j-gz-.js} +2 -2
  80. package/dist/{cose-bilkent-S5V4N54A-B0RvLg-Z.js.map → cose-bilkent-S5V4N54A-fU3j-gz-.js.map} +1 -1
  81. package/dist/{dagre-6UL2VRFP--PuHyvOJ.js → dagre-6UL2VRFP-BkkuZmWn.js} +7 -7
  82. package/dist/{dagre-6UL2VRFP--PuHyvOJ.js.map → dagre-6UL2VRFP-BkkuZmWn.js.map} +1 -1
  83. package/dist/{dagre-6UL2VRFP-BDyQ7zKw.cjs → dagre-6UL2VRFP-CrTlcO8O.cjs} +2 -2
  84. package/dist/{dagre-6UL2VRFP-BDyQ7zKw.cjs.map → dagre-6UL2VRFP-CrTlcO8O.cjs.map} +1 -1
  85. package/dist/{diagram-PSM6KHXK-u5RdYoub.cjs → diagram-PSM6KHXK-9wHp_OsU.cjs} +2 -2
  86. package/dist/{diagram-PSM6KHXK-u5RdYoub.cjs.map → diagram-PSM6KHXK-9wHp_OsU.cjs.map} +1 -1
  87. package/dist/{diagram-PSM6KHXK-B57QodqD.js → diagram-PSM6KHXK-CumMPbYj.js} +5 -5
  88. package/dist/{diagram-PSM6KHXK-B57QodqD.js.map → diagram-PSM6KHXK-CumMPbYj.js.map} +1 -1
  89. package/dist/{diagram-QEK2KX5R-Da-pT7Ux.js → diagram-QEK2KX5R-BX73KNSg.js} +4 -4
  90. package/dist/{diagram-QEK2KX5R-Da-pT7Ux.js.map → diagram-QEK2KX5R-BX73KNSg.js.map} +1 -1
  91. package/dist/{diagram-QEK2KX5R-D1cueJAA.cjs → diagram-QEK2KX5R-BYqdFTnq.cjs} +2 -2
  92. package/dist/{diagram-QEK2KX5R-D1cueJAA.cjs.map → diagram-QEK2KX5R-BYqdFTnq.cjs.map} +1 -1
  93. package/dist/{diagram-S2PKOQOG-BvfG2rAS.js → diagram-S2PKOQOG-DJ-724qx.js} +4 -4
  94. package/dist/{diagram-S2PKOQOG-BvfG2rAS.js.map → diagram-S2PKOQOG-DJ-724qx.js.map} +1 -1
  95. package/dist/{diagram-S2PKOQOG-DpAD-cB_.cjs → diagram-S2PKOQOG-DonScLpF.cjs} +2 -2
  96. package/dist/{diagram-S2PKOQOG-DpAD-cB_.cjs.map → diagram-S2PKOQOG-DonScLpF.cjs.map} +1 -1
  97. package/dist/{erDiagram-Q2GNP2WA-WM-jEF2o.js → erDiagram-Q2GNP2WA-C4m3Pm5f.js} +5 -5
  98. package/dist/{erDiagram-Q2GNP2WA-WM-jEF2o.js.map → erDiagram-Q2GNP2WA-C4m3Pm5f.js.map} +1 -1
  99. package/dist/{erDiagram-Q2GNP2WA-ohQILmdi.cjs → erDiagram-Q2GNP2WA-DC-tMGdk.cjs} +2 -2
  100. package/dist/{erDiagram-Q2GNP2WA-ohQILmdi.cjs.map → erDiagram-Q2GNP2WA-DC-tMGdk.cjs.map} +1 -1
  101. package/dist/{flowDiagram-NV44I4VS-C_bxgg0e.cjs → flowDiagram-NV44I4VS-9k1QiKz5.cjs} +2 -2
  102. package/dist/{flowDiagram-NV44I4VS-C_bxgg0e.cjs.map → flowDiagram-NV44I4VS-9k1QiKz5.cjs.map} +1 -1
  103. package/dist/{flowDiagram-NV44I4VS-BCumxy_A.js → flowDiagram-NV44I4VS-DkG0D9cg.js} +6 -6
  104. package/dist/{flowDiagram-NV44I4VS-BCumxy_A.js.map → flowDiagram-NV44I4VS-DkG0D9cg.js.map} +1 -1
  105. package/dist/{ganttDiagram-JELNMOA3-Geq6x747.cjs → ganttDiagram-JELNMOA3-C1nojL1z.cjs} +2 -2
  106. package/dist/{ganttDiagram-JELNMOA3-Geq6x747.cjs.map → ganttDiagram-JELNMOA3-C1nojL1z.cjs.map} +1 -1
  107. package/dist/{ganttDiagram-JELNMOA3-Dr1NLren.js → ganttDiagram-JELNMOA3-gKhAoiqV.js} +3 -3
  108. package/dist/{ganttDiagram-JELNMOA3-Dr1NLren.js.map → ganttDiagram-JELNMOA3-gKhAoiqV.js.map} +1 -1
  109. package/dist/{gitGraph-F6HP7TQM-BeOJ-IAj.cjs → gitGraph-F6HP7TQM-Bo0E-pHW.cjs} +2 -2
  110. package/dist/gitGraph-F6HP7TQM-Bo0E-pHW.cjs.map +1 -0
  111. package/dist/gitGraph-F6HP7TQM-CHoN29cY.js +6 -0
  112. package/dist/gitGraph-F6HP7TQM-CHoN29cY.js.map +1 -0
  113. package/dist/{gitGraphDiagram-NY62KEGX-BLjyc1Wj.js → gitGraphDiagram-NY62KEGX-D3XBs94x.js} +5 -5
  114. package/dist/{gitGraphDiagram-NY62KEGX-BLjyc1Wj.js.map → gitGraphDiagram-NY62KEGX-D3XBs94x.js.map} +1 -1
  115. package/dist/{gitGraphDiagram-NY62KEGX-DzsNlXbq.cjs → gitGraphDiagram-NY62KEGX-YDRakP-_.cjs} +2 -2
  116. package/dist/{gitGraphDiagram-NY62KEGX-DzsNlXbq.cjs.map → gitGraphDiagram-NY62KEGX-YDRakP-_.cjs.map} +1 -1
  117. package/dist/{graph-BlkDovJY.js → graph-BasevfV_.js} +3 -3
  118. package/dist/{graph-BlkDovJY.js.map → graph-BasevfV_.js.map} +1 -1
  119. package/dist/{graph-afCf5ZM1.cjs → graph-rSA-aI4s.cjs} +2 -2
  120. package/dist/{graph-afCf5ZM1.cjs.map → graph-rSA-aI4s.cjs.map} +1 -1
  121. package/dist/{index-CPFTnxie.cjs → index-BDajGLDt.cjs} +50 -50
  122. package/dist/index-BDajGLDt.cjs.map +1 -0
  123. package/dist/{index-DBVR6GYe.js → index-caKpab-1.js} +2423 -2408
  124. package/dist/index-caKpab-1.js.map +1 -0
  125. package/dist/index.cjs +1 -1
  126. package/dist/index.js +1 -1
  127. package/dist/{info-NVLQJR56-zgrtE1eV.cjs → info-NVLQJR56-C-3b-i8R.cjs} +2 -2
  128. package/dist/info-NVLQJR56-C-3b-i8R.cjs.map +1 -0
  129. package/dist/info-NVLQJR56-Ce9da4xt.js +6 -0
  130. package/dist/info-NVLQJR56-Ce9da4xt.js.map +1 -0
  131. package/dist/{infoDiagram-WHAUD3N6-e_6Fu7A3.cjs → infoDiagram-WHAUD3N6-BfyHsG_R.cjs} +2 -2
  132. package/dist/{infoDiagram-WHAUD3N6-e_6Fu7A3.cjs.map → infoDiagram-WHAUD3N6-BfyHsG_R.cjs.map} +1 -1
  133. package/dist/{infoDiagram-WHAUD3N6-DZlGk8Eu.js → infoDiagram-WHAUD3N6-DVElQ6XQ.js} +3 -3
  134. package/dist/{infoDiagram-WHAUD3N6-DZlGk8Eu.js.map → infoDiagram-WHAUD3N6-DVElQ6XQ.js.map} +1 -1
  135. package/dist/{journeyDiagram-XKPGCS4Q-FOnZHY81.js → journeyDiagram-XKPGCS4Q-BEyBxLEE.js} +5 -5
  136. package/dist/{journeyDiagram-XKPGCS4Q-FOnZHY81.js.map → journeyDiagram-XKPGCS4Q-BEyBxLEE.js.map} +1 -1
  137. package/dist/{journeyDiagram-XKPGCS4Q-DWNhUx2B.cjs → journeyDiagram-XKPGCS4Q-DfM_UFvc.cjs} +2 -2
  138. package/dist/{journeyDiagram-XKPGCS4Q-DWNhUx2B.cjs.map → journeyDiagram-XKPGCS4Q-DfM_UFvc.cjs.map} +1 -1
  139. package/dist/{kanban-definition-3W4ZIXB7-BKCGrp4d.js → kanban-definition-3W4ZIXB7-C1c6hUl-.js} +3 -3
  140. package/dist/{kanban-definition-3W4ZIXB7-BKCGrp4d.js.map → kanban-definition-3W4ZIXB7-C1c6hUl-.js.map} +1 -1
  141. package/dist/{kanban-definition-3W4ZIXB7-DmXZ76_s.cjs → kanban-definition-3W4ZIXB7-mqwusAZJ.cjs} +2 -2
  142. package/dist/{kanban-definition-3W4ZIXB7-DmXZ76_s.cjs.map → kanban-definition-3W4ZIXB7-mqwusAZJ.cjs.map} +1 -1
  143. package/dist/{layout-CQ55vGEs.cjs → layout-C9eO5Nxr.cjs} +2 -2
  144. package/dist/{layout-CQ55vGEs.cjs.map → layout-C9eO5Nxr.cjs.map} +1 -1
  145. package/dist/{layout-BM8fgH_I.js → layout-DR8dbrKj.js} +5 -5
  146. package/dist/{layout-BM8fgH_I.js.map → layout-DR8dbrKj.js.map} +1 -1
  147. package/dist/{linear-rySziqxM.js → linear-DKLfd3Ph.js} +2 -2
  148. package/dist/{linear-rySziqxM.js.map → linear-DKLfd3Ph.js.map} +1 -1
  149. package/dist/{linear-Ck5hTmin.cjs → linear-jbmUvWu5.cjs} +2 -2
  150. package/dist/{linear-Ck5hTmin.cjs.map → linear-jbmUvWu5.cjs.map} +1 -1
  151. package/dist/{mermaid-parser.core-DdgAu_8I.js → mermaid-parser.core-CJwfr-Rn.js} +12 -12
  152. package/dist/{mermaid-parser.core-DdgAu_8I.js.map → mermaid-parser.core-CJwfr-Rn.js.map} +1 -1
  153. package/dist/{mermaid-parser.core-5P84tW26.cjs → mermaid-parser.core-vI3z9vjp.cjs} +3 -3
  154. package/dist/{mermaid-parser.core-5P84tW26.cjs.map → mermaid-parser.core-vI3z9vjp.cjs.map} +1 -1
  155. package/dist/{mindmap-definition-VGOIOE7T-DRqIC1aB.cjs → mindmap-definition-VGOIOE7T-BqeRBDHB.cjs} +2 -2
  156. package/dist/{mindmap-definition-VGOIOE7T-DRqIC1aB.cjs.map → mindmap-definition-VGOIOE7T-BqeRBDHB.cjs.map} +1 -1
  157. package/dist/{mindmap-definition-VGOIOE7T-DUR7ZFmn.js → mindmap-definition-VGOIOE7T-Bxh4mvAa.js} +4 -4
  158. package/dist/{mindmap-definition-VGOIOE7T-DUR7ZFmn.js.map → mindmap-definition-VGOIOE7T-Bxh4mvAa.js.map} +1 -1
  159. package/dist/packet-BFZMPI3H-DTLQ86Yd.js +6 -0
  160. package/dist/packet-BFZMPI3H-DTLQ86Yd.js.map +1 -0
  161. package/dist/{packet-BFZMPI3H--8xo99vs.cjs → packet-BFZMPI3H-UUkqxMwx.cjs} +2 -2
  162. package/dist/packet-BFZMPI3H-UUkqxMwx.cjs.map +1 -0
  163. package/dist/{pie-7BOR55EZ-DMvSDGfH.cjs → pie-7BOR55EZ-6cd-l72R.cjs} +2 -2
  164. package/dist/pie-7BOR55EZ-6cd-l72R.cjs.map +1 -0
  165. package/dist/pie-7BOR55EZ-BPhniwXQ.js +6 -0
  166. package/dist/pie-7BOR55EZ-BPhniwXQ.js.map +1 -0
  167. package/dist/{pieDiagram-ADFJNKIX-BHrTl2Ns.js → pieDiagram-ADFJNKIX-E7NP2mWM.js} +5 -5
  168. package/dist/{pieDiagram-ADFJNKIX-BHrTl2Ns.js.map → pieDiagram-ADFJNKIX-E7NP2mWM.js.map} +1 -1
  169. package/dist/{pieDiagram-ADFJNKIX-D3u8fH01.cjs → pieDiagram-ADFJNKIX-oBQctDBF.cjs} +2 -2
  170. package/dist/{pieDiagram-ADFJNKIX-D3u8fH01.cjs.map → pieDiagram-ADFJNKIX-oBQctDBF.cjs.map} +1 -1
  171. package/dist/{quadrantDiagram-AYHSOK5B-Dbi7OKEt.js → quadrantDiagram-AYHSOK5B-BI6EBqf1.js} +3 -3
  172. package/dist/{quadrantDiagram-AYHSOK5B-Dbi7OKEt.js.map → quadrantDiagram-AYHSOK5B-BI6EBqf1.js.map} +1 -1
  173. package/dist/{quadrantDiagram-AYHSOK5B-C2Bzy_90.cjs → quadrantDiagram-AYHSOK5B-BdynjtBz.cjs} +2 -2
  174. package/dist/{quadrantDiagram-AYHSOK5B-C2Bzy_90.cjs.map → quadrantDiagram-AYHSOK5B-BdynjtBz.cjs.map} +1 -1
  175. package/dist/{radar-NHE76QYJ-Cc5Nvs_h.cjs → radar-NHE76QYJ-BEdxIU3J.cjs} +2 -2
  176. package/dist/radar-NHE76QYJ-BEdxIU3J.cjs.map +1 -0
  177. package/dist/radar-NHE76QYJ-BGiQ-836.js +6 -0
  178. package/dist/radar-NHE76QYJ-BGiQ-836.js.map +1 -0
  179. package/dist/{requirementDiagram-UZGBJVZJ-B7DlOlwl.js → requirementDiagram-UZGBJVZJ-BaCeaYOD.js} +4 -4
  180. package/dist/{requirementDiagram-UZGBJVZJ-B7DlOlwl.js.map → requirementDiagram-UZGBJVZJ-BaCeaYOD.js.map} +1 -1
  181. package/dist/{requirementDiagram-UZGBJVZJ-CC6A_LQI.cjs → requirementDiagram-UZGBJVZJ-DRt-Beuk.cjs} +2 -2
  182. package/dist/{requirementDiagram-UZGBJVZJ-CC6A_LQI.cjs.map → requirementDiagram-UZGBJVZJ-DRt-Beuk.cjs.map} +1 -1
  183. package/dist/{sankeyDiagram-TZEHDZUN-BnHCo-Mn.cjs → sankeyDiagram-TZEHDZUN-BRlPGxPq.cjs} +2 -2
  184. package/dist/{sankeyDiagram-TZEHDZUN-BnHCo-Mn.cjs.map → sankeyDiagram-TZEHDZUN-BRlPGxPq.cjs.map} +1 -1
  185. package/dist/{sankeyDiagram-TZEHDZUN-DpEUf9Vo.js → sankeyDiagram-TZEHDZUN-adBXJ70i.js} +2 -2
  186. package/dist/{sankeyDiagram-TZEHDZUN-DpEUf9Vo.js.map → sankeyDiagram-TZEHDZUN-adBXJ70i.js.map} +1 -1
  187. package/dist/{sequenceDiagram-WL72ISMW-CjEh0r36.js → sequenceDiagram-WL72ISMW-BjjmX7GP.js} +4 -4
  188. package/dist/{sequenceDiagram-WL72ISMW-CjEh0r36.js.map → sequenceDiagram-WL72ISMW-BjjmX7GP.js.map} +1 -1
  189. package/dist/{sequenceDiagram-WL72ISMW-Bl6_BUzR.cjs → sequenceDiagram-WL72ISMW-Dc4K__VG.cjs} +2 -2
  190. package/dist/{sequenceDiagram-WL72ISMW-Bl6_BUzR.cjs.map → sequenceDiagram-WL72ISMW-Dc4K__VG.cjs.map} +1 -1
  191. package/dist/{stateDiagram-FKZM4ZOC-DSb4cefI.js → stateDiagram-FKZM4ZOC-Dvbcwtvr.js} +5 -5
  192. package/dist/{stateDiagram-FKZM4ZOC-DSb4cefI.js.map → stateDiagram-FKZM4ZOC-Dvbcwtvr.js.map} +1 -1
  193. package/dist/{stateDiagram-FKZM4ZOC-DKdLEfTU.cjs → stateDiagram-FKZM4ZOC-Er8_CIvC.cjs} +2 -2
  194. package/dist/{stateDiagram-FKZM4ZOC-DKdLEfTU.cjs.map → stateDiagram-FKZM4ZOC-Er8_CIvC.cjs.map} +1 -1
  195. package/dist/{stateDiagram-v2-4FDKWEC3-BYtBH478.cjs → stateDiagram-v2-4FDKWEC3-BYc_jC0C.cjs} +2 -2
  196. package/dist/{stateDiagram-v2-4FDKWEC3-BYtBH478.cjs.map → stateDiagram-v2-4FDKWEC3-BYc_jC0C.cjs.map} +1 -1
  197. package/dist/{stateDiagram-v2-4FDKWEC3-ByfhcH6w.js → stateDiagram-v2-4FDKWEC3-Cpy_Ydpw.js} +3 -3
  198. package/dist/{stateDiagram-v2-4FDKWEC3-ByfhcH6w.js.map → stateDiagram-v2-4FDKWEC3-Cpy_Ydpw.js.map} +1 -1
  199. package/dist/{timeline-definition-IT6M3QCI-D_WhTqG-.js → timeline-definition-IT6M3QCI-4iCfKsS1.js} +3 -3
  200. package/dist/{timeline-definition-IT6M3QCI-D_WhTqG-.js.map → timeline-definition-IT6M3QCI-4iCfKsS1.js.map} +1 -1
  201. package/dist/{timeline-definition-IT6M3QCI-B1leptlP.cjs → timeline-definition-IT6M3QCI-DE5g5JfV.cjs} +2 -2
  202. package/dist/{timeline-definition-IT6M3QCI-B1leptlP.cjs.map → timeline-definition-IT6M3QCI-DE5g5JfV.cjs.map} +1 -1
  203. package/dist/{treemap-KMMF4GRG-C3kLUDBv.cjs → treemap-KMMF4GRG-YLlgu5sk.cjs} +2 -2
  204. package/dist/treemap-KMMF4GRG-YLlgu5sk.cjs.map +1 -0
  205. package/dist/treemap-KMMF4GRG-xH3W-9YM.js +6 -0
  206. package/dist/treemap-KMMF4GRG-xH3W-9YM.js.map +1 -0
  207. package/dist/{xychartDiagram-PRI3JC2R-ClYujusC.cjs → xychartDiagram-PRI3JC2R-B83XR1RX.cjs} +2 -2
  208. package/dist/{xychartDiagram-PRI3JC2R-ClYujusC.cjs.map → xychartDiagram-PRI3JC2R-B83XR1RX.cjs.map} +1 -1
  209. package/dist/{xychartDiagram-PRI3JC2R-DavmnzBp.js → xychartDiagram-PRI3JC2R-By_sU7ew.js} +3 -3
  210. package/dist/{xychartDiagram-PRI3JC2R-DavmnzBp.js.map → xychartDiagram-PRI3JC2R-By_sU7ew.js.map} +1 -1
  211. package/package.json +26 -27
  212. package/dist/architecture-U656AL7Q-Bk_BCN3G.cjs.map +0 -1
  213. package/dist/architecture-U656AL7Q-Brw03iK0.js +0 -6
  214. package/dist/architecture-U656AL7Q-Brw03iK0.js.map +0 -1
  215. package/dist/channel-BaCsO_0A.cjs +0 -2
  216. package/dist/channel-KAvJVFiL.js +0 -6
  217. package/dist/clone-BxPvQEOl.js +0 -9
  218. package/dist/clone-Qa8ZMMKU.cjs +0 -2
  219. package/dist/gitGraph-F6HP7TQM-BeOJ-IAj.cjs.map +0 -1
  220. package/dist/gitGraph-F6HP7TQM-CxoMWXoZ.js +0 -6
  221. package/dist/gitGraph-F6HP7TQM-CxoMWXoZ.js.map +0 -1
  222. package/dist/index-CPFTnxie.cjs.map +0 -1
  223. package/dist/index-DBVR6GYe.js.map +0 -1
  224. package/dist/info-NVLQJR56-BkEWtnrf.js +0 -6
  225. package/dist/info-NVLQJR56-BkEWtnrf.js.map +0 -1
  226. package/dist/info-NVLQJR56-zgrtE1eV.cjs.map +0 -1
  227. package/dist/packet-BFZMPI3H--8xo99vs.cjs.map +0 -1
  228. package/dist/packet-BFZMPI3H-BiLhYuSA.js +0 -6
  229. package/dist/packet-BFZMPI3H-BiLhYuSA.js.map +0 -1
  230. package/dist/pie-7BOR55EZ-DMvSDGfH.cjs.map +0 -1
  231. package/dist/pie-7BOR55EZ-Dsi8HblZ.js +0 -6
  232. package/dist/pie-7BOR55EZ-Dsi8HblZ.js.map +0 -1
  233. package/dist/radar-NHE76QYJ-Cc5Nvs_h.cjs.map +0 -1
  234. package/dist/radar-NHE76QYJ-tUFyopn8.js +0 -6
  235. package/dist/radar-NHE76QYJ-tUFyopn8.js.map +0 -1
  236. package/dist/treemap-KMMF4GRG-C3kLUDBv.cjs.map +0 -1
  237. package/dist/treemap-KMMF4GRG-Dp0HUz7N.js +0 -6
  238. package/dist/treemap-KMMF4GRG-Dp0HUz7N.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-CPFTnxie.cjs","sources":["../../../node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react-jsx-runtime.production.js","../../../node_modules/.pnpm/react@19.2.3/node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/.pnpm/react@19.2.3/node_modules/react/jsx-runtime.js","../src/utils/getFaviconUrl.ts","../src/components/mdastNodes/RichLinkCard.tsx","../src/components/mdastNodes/BlockLinkNode.tsx","../src/components/mdastNodes/BlockquoteNode.tsx","../../../node_modules/.pnpm/@panzoom+panzoom@4.6.1/node_modules/@panzoom/panzoom/dist/panzoom.es.js","../../../node_modules/.pnpm/lucide-react@0.473.0_react@19.2.3/node_modules/lucide-react/dist/esm/shared/src/utils.js","../../../node_modules/.pnpm/lucide-react@0.473.0_react@19.2.3/node_modules/lucide-react/dist/esm/defaultAttributes.js","../../../node_modules/.pnpm/lucide-react@0.473.0_react@19.2.3/node_modules/lucide-react/dist/esm/Icon.js","../../../node_modules/.pnpm/lucide-react@0.473.0_react@19.2.3/node_modules/lucide-react/dist/esm/createLucideIcon.js","../../../node_modules/.pnpm/lucide-react@0.473.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/refresh-cw.js","../../../node_modules/.pnpm/lucide-react@0.473.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/zoom-in.js","../../../node_modules/.pnpm/lucide-react@0.473.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/zoom-out.js","../../../node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-XAJISQIX.mjs","../../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/dayjs.min.js","../../../node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-AGHRB4JF.mjs","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/utils/channel.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/utils/lang.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/utils/unit.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/utils/index.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/constants.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/channels/type.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/channels/index.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/channels/reusable.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/color/hex.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/color/hsl.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/color/keyword.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/color/rgb.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/color/index.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/change.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/rgba.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/luminance.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/is_light.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/is_dark.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/adjust_channel.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/lighten.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/darken.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/adjust.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/mix.js","../../../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/invert.js","../../../node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ABZYJK2D.mjs","../../../node_modules/.pnpm/d3-dispatch@3.0.1/node_modules/d3-dispatch/src/dispatch.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/namespaces.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/namespace.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/creator.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selector.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/select.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/array.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selectorAll.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/selectAll.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/matcher.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/selectChild.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/selectChildren.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/filter.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/sparse.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/enter.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/constant.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/data.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/exit.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/join.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/merge.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/order.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/sort.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/call.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/nodes.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/node.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/size.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/empty.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/each.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/attr.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/window.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/style.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/property.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/classed.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/text.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/html.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/raise.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/lower.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/append.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/insert.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/remove.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/clone.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/datum.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/on.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/dispatch.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/iterator.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/index.js","../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/select.js","../../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/define.js","../../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/color.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/constant.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/color.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/rgb.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/number.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/string.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/decompose.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/parse.js","../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/index.js","../../../node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timer.js","../../../node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timeout.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/schedule.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/interrupt.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/interrupt.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/tween.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/interpolate.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/attr.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/attrTween.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/delay.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/duration.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/ease.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/easeVarying.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/filter.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/merge.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/on.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/remove.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/select.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/selectAll.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/selection.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/style.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/styleTween.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/text.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/textTween.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/transition.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/end.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/index.js","../../../node_modules/.pnpm/d3-ease@3.0.1/node_modules/d3-ease/src/cubic.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/transition.js","../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/index.js","../../../node_modules/.pnpm/d3-path@3.1.0/node_modules/d3-path/src/path.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/constant.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/math.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/path.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/array.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/linear.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/point.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/line.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/bump.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/noop.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basis.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basisClosed.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basisOpen.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/bundle.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/cardinal.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/cardinalClosed.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/cardinalOpen.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/catmullRom.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/catmullRomClosed.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/catmullRomOpen.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/linearClosed.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/monotone.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/natural.js","../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/step.js","../../../node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/transform.js","../../../node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-EXTU4WIE.mjs","../../../node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-MI3HLSF2.mjs","../../../node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-HN2XXSSU.mjs","../../../node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-CVBHYZKI.mjs","../../../node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ATLVNIR6.mjs","../../../node_modules/.pnpm/@braintree+sanitize-url@7.1.1/node_modules/@braintree/sanitize-url/dist/constants.js","../../../node_modules/.pnpm/@braintree+sanitize-url@7.1.1/node_modules/@braintree/sanitize-url/dist/index.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_freeGlobal.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_root.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Symbol.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getRawTag.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_objectToString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetTag.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isFunction.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_coreJsData.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isMasked.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toSource.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNative.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getValue.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getNative.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeCreate.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashClear.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashDelete.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Hash.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheClear.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/eq.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assocIndexOf.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheDelete.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_ListCache.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Map.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheClear.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKeyable.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMapData.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheDelete.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_MapCache.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/memoize.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackClear.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackDelete.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackHas.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackSet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Stack.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_defineProperty.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignValue.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignMergeValue.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createBaseFor.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFor.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneBuffer.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Uint8Array.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneArrayBuffer.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneTypedArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseCreate.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overArg.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getPrototype.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isPrototype.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsArguments.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArguments.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isLength.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLike.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLikeObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubFalse.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isBuffer.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isPlainObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsTypedArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUnary.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nodeUtil.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isTypedArray.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_safeGet.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignValue.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTimes.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIndex.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayLikeKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeysIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeysIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keysIn.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toPlainObject.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMergeDeep.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMerge.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/identity.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_apply.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overRest.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/constant.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseSetToString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_shortOut.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToString.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseRest.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIterateeCall.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createAssigner.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/merge.js","../../../node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-S3R3BYOJ.mjs","../../../node_modules/.pnpm/@iconify+utils@3.1.0/node_modules/@iconify/utils/lib/icon/defaults.js","../../../node_modules/.pnpm/@iconify+utils@3.1.0/node_modules/@iconify/utils/lib/customisations/defaults.js","../../../node_modules/.pnpm/@iconify+utils@3.1.0/node_modules/@iconify/utils/lib/icon/name.js","../../../node_modules/.pnpm/@iconify+utils@3.1.0/node_modules/@iconify/utils/lib/icon/transformations.js","../../../node_modules/.pnpm/@iconify+utils@3.1.0/node_modules/@iconify/utils/lib/icon/merge.js","../../../node_modules/.pnpm/@iconify+utils@3.1.0/node_modules/@iconify/utils/lib/icon-set/tree.js","../../../node_modules/.pnpm/@iconify+utils@3.1.0/node_modules/@iconify/utils/lib/icon-set/get-icon.js","../../../node_modules/.pnpm/@iconify+utils@3.1.0/node_modules/@iconify/utils/lib/svg/size.js","../../../node_modules/.pnpm/@iconify+utils@3.1.0/node_modules/@iconify/utils/lib/svg/defs.js","../../../node_modules/.pnpm/@iconify+utils@3.1.0/node_modules/@iconify/utils/lib/svg/build.js","../../../node_modules/.pnpm/@iconify+utils@3.1.0/node_modules/@iconify/utils/lib/svg/id.js","../../../node_modules/.pnpm/@iconify+utils@3.1.0/node_modules/@iconify/utils/lib/svg/html.js","../../../node_modules/.pnpm/marked@16.4.2/node_modules/marked/lib/marked.esm.js","../../../node_modules/.pnpm/ts-dedent@2.2.0/node_modules/ts-dedent/esm/index.js","../../../node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-JA3XYJ7Z.mjs","../../../node_modules/.pnpm/roughjs@4.6.6/node_modules/roughjs/bundled/rough.esm.js","../../../node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-JZLCHNYA.mjs","../../../node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-QXUST7PY.mjs","../../../node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/chunk-N4CR4FBY.mjs","../../../node_modules/.pnpm/stylis@4.3.6/node_modules/stylis/src/Enum.js","../../../node_modules/.pnpm/stylis@4.3.6/node_modules/stylis/src/Utility.js","../../../node_modules/.pnpm/stylis@4.3.6/node_modules/stylis/src/Tokenizer.js","../../../node_modules/.pnpm/stylis@4.3.6/node_modules/stylis/src/Parser.js","../../../node_modules/.pnpm/stylis@4.3.6/node_modules/stylis/src/Serializer.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeys.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_DataView.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Promise.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Set.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_WeakMap.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getTag.js","../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEmpty.js","../../../node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/mermaid.core.mjs","../src/components/MermaidDiagram.tsx","../src/components/mdastNodes/CodeNode.tsx","../src/components/mdastNodes/DeleteNode.tsx","../src/components/mdastNodes/EmphasisNode.tsx","../src/components/mdastNodes/HeadingNode.tsx","../src/components/plugins/DifyIFramePlugin.tsx","../src/components/plugins/IFramePluginRegistry.ts","../src/components/mdastNodes/HTMLNode.tsx","../src/components/mdastNodes/ImageNode.tsx","../src/components/mdastNodes/InlineCodeNode.tsx","../src/components/mdastNodes/InlineMathNode.tsx","../src/components/mdastNodes/LinkNode.tsx","../src/components/mdastNodes/ListItemNode.tsx","../src/components/mdastNodes/ListNode.tsx","../src/components/mdastNodes/MathNode.tsx","../src/components/mdastNodes/ParagraphNode.tsx","../src/components/mdastNodes/StrongNode.tsx","../src/components/mdastNodes/TableNode.tsx","../src/components/mdastNodes/TextNode.tsx","../src/components/mdastNodes/ThematicBreakNode.tsx","../src/components/mdastNodes/TwitterEmbedNode.tsx","../src/components/mdastNodes/YouTubeEmbedNode.tsx","../src/components/mdastNodes/ZennDetailsNode.tsx","../src/components/mdastNodes/ZennMessageNode.tsx","../src/components/NodesRenderer.tsx","../src/components/mdastNodes/FootnoteBackLinkNode.tsx","../src/components/MarkdownRenderer.tsx","../src/plugins/createIntentTweetLink.ts","../src/plugins/extractYouTubeVideoId.ts","../src/plugins/fetchSiteMetadata.ts","../src/plugins/remark-block-link.ts","../src/plugins/remark-block-link-metadata.ts","../src/plugins/remark-custom-heading-id.ts","../src/plugins/remark-footnote-back-link.ts","../src/plugins/remark-html-anchor-to-link.ts","../src/plugins/remark-html-in-html.ts","../src/plugins/remark-image-size.ts","../src/plugins/remark-import-directive.async.ts","../src/plugins/remark-parent-node.ts","../src/plugins/transformUri.async.server.ts","../src/plugins/remark-resolve-uri.async.ts","../src/plugins/remark-twitter-embed.ts","../src/plugins/remark-youtube-embed.ts","../src/plugins/remark-zenn-message.ts","../src/remarkProcessor.server.ts"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * Get favicon URL from page URL using Google's favicon service.\n * Google のファビコンサービスを使用してページ URL からファビコン URL を取得する。\n */\nexport const getFaviconUrl = (pageUrl: string, size: 16 | 32 | 64 = 64): string => {\n return `https://www.google.com/s2/favicons?domain=${encodeURIComponent(pageUrl)}&size=${size}`\n}\n","import { Suspense, use, useMemo } from \"react\"\nimport type { SiteMetadata } from \"../../plugins/fetchSiteMetadata.ts\"\nimport { getFaviconUrl } from \"../../utils/getFaviconUrl.ts\"\n\ntype Props = {\n href: string\n isExternal: boolean\n /**\n * Pre-fetched metadata from mdast node data.\n * mdast ノードデータから事前取得されたメタデータ。\n */\n metadata?: SiteMetadata\n}\n\nexport const RichLinkCard: React.FC<Props> = ({ href, isExternal, metadata: preFetchedMetadata }) => {\n // 事前取得されたメタデータのみを使用\n const metadataPromise = useMemo<Promise<SiteMetadata | null>>(() => Promise.resolve(preFetchedMetadata || null), [preFetchedMetadata])\n\n return (\n <Suspense fallback={<RichLinkCardSkeleton />}>\n <RichLinkCardInner metadataPromise={metadataPromise} href={href} isExternal={isExternal} />\n </Suspense>\n )\n}\n\nconst RichLinkCardInner: React.FC<Props & { metadataPromise: Promise<SiteMetadata | null> }> = ({ metadataPromise, href }) => {\n const metadata = use(metadataPromise)\n\n if (metadata === null) {\n return <RichLinkCardError href={href} />\n }\n\n const urlObj = new URL(href)\n\n if (metadata === null) {\n return <RichLinkCardError href={href} />\n }\n\n return (\n <a\n className=\"flex h-36 w-full gap-2 overflow-hidden rounded-lg border border-gray-300 bg-transparent transition-colors duration-200 hover:border-gray-600 hover:bg-gray-50 dark:border-neutral-600 dark:hover:border-neutral-200 dark:hover:bg-neutral-950\"\n href={metadata.url || href}\n target=\"_blank\"\n rel=\"noreferrer\">\n <div className=\"flex flex-1 flex-col p-2 px-4\">\n <div className=\"break-words font-medium text-gray-900 dark:text-gray-100\">{metadata.title || metadata.site_name || href}</div>\n <div className=\"mt-2 flex-1\">\n <div className=\"break-words text-gray-600 text-sm dark:text-gray-400\">{metadata.description}</div>\n </div>\n <div className=\"flex items-center gap-2\">\n <img src={getFaviconUrl(href, 16)} alt=\"\" width={16} height={16} />\n <span className=\"line-clamp-1 text-gray-600 text-sm dark:text-gray-400\">{metadata.site_name || urlObj.hostname}</span>\n </div>\n </div>\n\n <div className=\"h-36 max-w-[40%]\">{metadata.image ? <img className=\"h-full w-full object-cover\" src={metadata.image} alt=\"\" /> : <div className=\"h-full w-full bg-gray-200 object-cover dark:bg-neutral-800\" />}</div>\n </a>\n )\n}\n\nconst RichLinkCardError: React.FC<{ href: string }> = ({ href }) => {\n return (\n <a\n className=\"flex gap-2 rounded-lg border border-gray-200 bg-transparent p-4 text-gray-900 transition-colors duration-200 hover:border-gray-300 hover:bg-gray-100 dark:border-neutral-800 dark:text-gray-100 dark:hover:border-neutral-700\"\n href={href}\n target=\"_blank\"\n rel=\"noreferrer\">\n <div className=\"text-gray-600 text-sm dark:text-gray-400\">{href}</div>\n </a>\n )\n}\n\nconst RichLinkCardSkeleton: React.FC = () => {\n return (\n <div className=\"flex h-36 w-full gap-2 overflow-hidden rounded-lg border border-gray-200 dark:border-neutral-800\">\n <div className=\"flex flex-1 flex-col p-2 px-4\">\n <div className=\"flex flex-col gap-2\">\n <div className=\"h-4 w-full animate-pulse rounded bg-gray-300 dark:bg-neutral-700\" />\n <div className=\"h-4 w-4/5 animate-pulse rounded bg-gray-300 dark:bg-neutral-700\" />\n </div>\n <div className=\"mt-6 flex flex-1 flex-col gap-2\">\n <div className=\"h-4 w-full animate-pulse rounded bg-gray-300 dark:bg-neutral-700\" />\n <div className=\"h-4 w-4/5 animate-pulse rounded bg-gray-300 dark:bg-neutral-700\" />\n </div>\n <div className=\"mt-auto h-4 w-4 animate-pulse rounded-sm bg-gray-300 dark:bg-neutral-700\" />\n </div>\n <div className=\"h-full w-64 max-w-[40%] animate-pulse bg-gray-300 dark:bg-neutral-700\" />\n </div>\n )\n}\n","import type { RootContentMap } from \"mdast\"\nimport type { EnrichedBlockLink } from \"../../plugins/remark-block-link-metadata.ts\"\nimport { RichLinkCard } from \"./RichLinkCard.tsx\"\n\nexport const BlockLinkNode: React.FC<{ node: RootContentMap[\"block-link\"] | EnrichedBlockLink }> = ({ node }) => {\n // remark-block-link-metadata プラグインから取得したメタデータを抽出\n const enrichedNode = node as EnrichedBlockLink\n const siteMetadata = enrichedNode.data?.siteMetadata\n\n return (\n <div className=\"mt-6 mb-6\">\n <RichLinkCard href={node.url} isExternal={true} metadata={siteMetadata} />\n </div>\n )\n}\n","import type { RootContentMap } from \"mdast\"\nimport { NodesRenderer } from \"../NodesRenderer.tsx\"\n\nexport const BlockquoteNode: React.FC<{ node: RootContentMap[\"blockquote\"] }> = ({ node }) => {\n return (\n <blockquote className=\"my-4 border-gray-300 border-l-4 bg-gray-50 p-4 italic dark:border-gray-500 dark:bg-gray-800 dark:text-gray-300\">\n <NodesRenderer nodes={node.children} />\n </blockquote>\n )\n}\n","/**\n* Panzoom 4.6.1 for panning and zooming elements using CSS transforms\n* Copyright Timmy Willison and other contributors\n* https://github.com/timmywil/panzoom/blob/main/MIT-License.txt\n*/\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nif (typeof window !== 'undefined') {\n // Support: IE11 only\n if (window.NodeList && !NodeList.prototype.forEach) {\n NodeList.prototype.forEach = Array.prototype.forEach;\n }\n // Support: IE11 only\n // CustomEvent is an object instead of a constructor\n if (typeof window.CustomEvent !== 'function') {\n window.CustomEvent = function CustomEvent(event, params) {\n params = params || { bubbles: false, cancelable: false, detail: null };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt\n };\n }\n}\n\nvar isIE = typeof document !== 'undefined' && !!document.documentMode;\n/**\n * Lazy creation of a CSS style declaration\n */\nvar divStyle;\nfunction createStyle() {\n if (divStyle) {\n return divStyle;\n }\n return (divStyle = document.createElement('div').style);\n}\n/**\n * Proper prefixing for cross-browser compatibility\n */\nvar prefixes = ['webkit', 'moz', 'ms'];\nvar prefixCache = {};\nfunction getPrefixedName(name) {\n if (prefixCache[name]) {\n return prefixCache[name];\n }\n var divStyle = createStyle();\n if (name in divStyle) {\n return (prefixCache[name] = name);\n }\n var capName = name[0].toUpperCase() + name.slice(1);\n var i = prefixes.length;\n while (i--) {\n var prefixedName = \"\".concat(prefixes[i]).concat(capName);\n if (prefixedName in divStyle) {\n return (prefixCache[name] = prefixedName);\n }\n }\n}\n/**\n * Gets a style value expected to be a number\n */\nfunction getCSSNum(name, style) {\n return parseFloat(style[getPrefixedName(name)]) || 0;\n}\nfunction getBoxStyle(elem, name, style) {\n if (style === void 0) { style = window.getComputedStyle(elem); }\n // Support: FF 68+\n // Firefox requires specificity for border\n var suffix = name === 'border' ? 'Width' : '';\n return {\n left: getCSSNum(\"\".concat(name, \"Left\").concat(suffix), style),\n right: getCSSNum(\"\".concat(name, \"Right\").concat(suffix), style),\n top: getCSSNum(\"\".concat(name, \"Top\").concat(suffix), style),\n bottom: getCSSNum(\"\".concat(name, \"Bottom\").concat(suffix), style)\n };\n}\n/**\n * Set a style using the properly prefixed name\n */\nfunction setStyle(elem, name, value) {\n elem.style[getPrefixedName(name)] = value;\n}\n/**\n * Constructs the transition from panzoom options\n * and takes care of prefixing the transition and transform\n */\nfunction setTransition(elem, options) {\n var transform = getPrefixedName('transform');\n setStyle(elem, 'transition', \"\".concat(transform, \" \").concat(options.duration, \"ms \").concat(options.easing));\n}\n/**\n * Set the transform using the proper prefix\n *\n * Override the transform setter.\n * This is exposed mostly so the user could\n * set other parts of a transform\n * aside from scale and translate.\n * Default is defined in src/css.ts.\n *\n * ```js\n * // This example always sets a rotation\n * // when setting the scale and translation\n * const panzoom = Panzoom(elem, {\n * setTransform: (elem, { scale, x, y }) => {\n * panzoom.setStyle('transform', `rotate(0.5turn) scale(${scale}) translate(${x}px, ${y}px)`)\n * }\n * })\n * ```\n */\nfunction setTransform(elem, _a, _options) {\n var x = _a.x, y = _a.y, scale = _a.scale, isSVG = _a.isSVG;\n setStyle(elem, 'transform', \"scale(\".concat(scale, \") translate(\").concat(x, \"px, \").concat(y, \"px)\"));\n if (isSVG && isIE) {\n var matrixValue = window.getComputedStyle(elem).getPropertyValue('transform');\n elem.setAttribute('transform', matrixValue);\n }\n}\n/**\n * Dimensions used in containment and focal point zooming\n */\nfunction getDimensions(elem) {\n var parent = elem.parentNode;\n var style = window.getComputedStyle(elem);\n var parentStyle = window.getComputedStyle(parent);\n var rectElem = elem.getBoundingClientRect();\n var rectParent = parent.getBoundingClientRect();\n return {\n elem: {\n style: style,\n width: rectElem.width,\n height: rectElem.height,\n top: rectElem.top,\n bottom: rectElem.bottom,\n left: rectElem.left,\n right: rectElem.right,\n margin: getBoxStyle(elem, 'margin', style),\n border: getBoxStyle(elem, 'border', style)\n },\n parent: {\n style: parentStyle,\n width: rectParent.width,\n height: rectParent.height,\n top: rectParent.top,\n bottom: rectParent.bottom,\n left: rectParent.left,\n right: rectParent.right,\n padding: getBoxStyle(parent, 'padding', parentStyle),\n border: getBoxStyle(parent, 'border', parentStyle)\n }\n };\n}\n\nvar events = {\n down: 'mousedown',\n move: 'mousemove',\n up: 'mouseup mouseleave'\n};\nif (typeof window !== 'undefined') {\n if (typeof window.PointerEvent === 'function') {\n events = {\n down: 'pointerdown',\n move: 'pointermove',\n up: 'pointerup pointerleave pointercancel'\n };\n }\n else if (typeof window.TouchEvent === 'function') {\n events = {\n down: 'touchstart',\n move: 'touchmove',\n up: 'touchend touchcancel'\n };\n }\n}\nfunction onPointer(event, elem, handler, eventOpts) {\n events[event].split(' ').forEach(function (name) {\n elem.addEventListener(name, handler, eventOpts);\n });\n}\nfunction destroyPointer(event, elem, handler) {\n events[event].split(' ').forEach(function (name) {\n elem.removeEventListener(name, handler);\n });\n}\n\n/**\n * Utilites for working with multiple pointer events\n */\nfunction findEventIndex(pointers, event) {\n var i = pointers.length;\n while (i--) {\n if (pointers[i].pointerId === event.pointerId) {\n return i;\n }\n }\n return -1;\n}\nfunction addPointer(pointers, event) {\n var i;\n // Add touches if applicable\n if (event.touches) {\n i = 0;\n for (var _i = 0, _a = event.touches; _i < _a.length; _i++) {\n var touch = _a[_i];\n touch.pointerId = i++;\n addPointer(pointers, touch);\n }\n return;\n }\n i = findEventIndex(pointers, event);\n // Update if already present\n if (i > -1) {\n pointers.splice(i, 1);\n }\n pointers.push(event);\n}\nfunction removePointer(pointers, event) {\n // Add touches if applicable\n if (event.touches) {\n // Remove all touches\n while (pointers.length) {\n pointers.pop();\n }\n return;\n }\n var i = findEventIndex(pointers, event);\n if (i > -1) {\n pointers.splice(i, 1);\n }\n}\n/**\n * Calculates a center point between\n * the given pointer events, for panning\n * with multiple pointers.\n */\nfunction getMiddle(pointers) {\n // Copy to avoid changing by reference\n pointers = pointers.slice(0);\n var event1 = pointers.pop();\n var event2;\n while ((event2 = pointers.pop())) {\n event1 = {\n clientX: (event2.clientX - event1.clientX) / 2 + event1.clientX,\n clientY: (event2.clientY - event1.clientY) / 2 + event1.clientY\n };\n }\n return event1;\n}\n/**\n * Calculates the distance between two points\n * for pinch zooming.\n * Limits to the first 2\n */\nfunction getDistance(pointers) {\n if (pointers.length < 2) {\n return 0;\n }\n var event1 = pointers[0];\n var event2 = pointers[1];\n return Math.sqrt(Math.pow(Math.abs(event2.clientX - event1.clientX), 2) +\n Math.pow(Math.abs(event2.clientY - event1.clientY), 2));\n}\n\n/**\n * Determine if an element is attached to the DOM\n * Panzoom requires this so events work properly\n */\nfunction isAttached(node) {\n var currentNode = node;\n while (currentNode && currentNode.parentNode) {\n if (currentNode.parentNode === document)\n return true;\n currentNode =\n currentNode.parentNode instanceof ShadowRoot\n ? currentNode.parentNode.host\n : currentNode.parentNode;\n }\n return false;\n}\n\nfunction getClass(elem) {\n return (elem.getAttribute('class') || '').trim();\n}\nfunction hasClass(elem, className) {\n return elem.nodeType === 1 && \" \".concat(getClass(elem), \" \").indexOf(\" \".concat(className, \" \")) > -1;\n}\nfunction isExcluded(elem, options) {\n for (var cur = elem; cur != null; cur = cur.parentNode) {\n if (hasClass(cur, options.excludeClass) || options.exclude.indexOf(cur) > -1) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Determine if an element is SVG by checking the namespace\n * Exception: the <svg> element itself should be treated like HTML\n */\nvar rsvg = /^http:[\\w\\.\\/]+svg$/;\nfunction isSVGElement(elem) {\n return rsvg.test(elem.namespaceURI) && elem.nodeName.toLowerCase() !== 'svg';\n}\n\nfunction shallowClone(obj) {\n var clone = {};\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n clone[key] = obj[key];\n }\n }\n return clone;\n}\n\nvar defaultOptions = {\n animate: false,\n canvas: false,\n cursor: 'move',\n disablePan: false,\n disableZoom: false,\n disableXAxis: false,\n disableYAxis: false,\n duration: 200,\n easing: 'ease-in-out',\n exclude: [],\n excludeClass: 'panzoom-exclude',\n handleStartEvent: function (e) {\n e.preventDefault();\n e.stopPropagation();\n },\n maxScale: 4,\n minScale: 0.125,\n overflow: 'hidden',\n panOnlyWhenZoomed: false,\n pinchAndPan: false,\n relative: false,\n setTransform: setTransform,\n startX: 0,\n startY: 0,\n startScale: 1,\n step: 0.3,\n touchAction: 'none'\n};\nfunction Panzoom(elem, options) {\n if (!elem) {\n throw new Error('Panzoom requires an element as an argument');\n }\n if (elem.nodeType !== 1) {\n throw new Error('Panzoom requires an element with a nodeType of 1');\n }\n if (!isAttached(elem)) {\n throw new Error('Panzoom should be called on elements that have been attached to the DOM');\n }\n options = __assign(__assign({}, defaultOptions), options);\n var isSVG = isSVGElement(elem);\n var parent = elem.parentNode;\n // Set parent styles\n parent.style.overflow = options.overflow;\n parent.style.userSelect = 'none';\n // This is important for mobile to\n // prevent scrolling while panning\n parent.style.touchAction = options.touchAction;\n (options.canvas ? parent : elem).style.cursor = options.cursor;\n // Set element styles\n elem.style.userSelect = 'none';\n elem.style.touchAction = options.touchAction;\n // The default for HTML is '50% 50%'\n // The default for SVG is '0 0'\n // SVG can't be changed in IE\n setStyle(elem, 'transformOrigin', typeof options.origin === 'string' ? options.origin : isSVG ? '0 0' : '50% 50%');\n function resetStyle() {\n parent.style.overflow = '';\n parent.style.userSelect = '';\n parent.style.touchAction = '';\n parent.style.cursor = '';\n elem.style.cursor = '';\n elem.style.userSelect = '';\n elem.style.touchAction = '';\n setStyle(elem, 'transformOrigin', '');\n }\n function setOptions(opts) {\n if (opts === void 0) { opts = {}; }\n for (var key in opts) {\n if (opts.hasOwnProperty(key)) {\n options[key] = opts[key];\n }\n }\n // Handle option side-effects\n if (opts.hasOwnProperty('cursor') || opts.hasOwnProperty('canvas')) {\n parent.style.cursor = elem.style.cursor = '';\n (options.canvas ? parent : elem).style.cursor = options.cursor;\n }\n if (opts.hasOwnProperty('overflow')) {\n parent.style.overflow = opts.overflow;\n }\n if (opts.hasOwnProperty('touchAction')) {\n parent.style.touchAction = opts.touchAction;\n elem.style.touchAction = opts.touchAction;\n }\n }\n var x = 0;\n var y = 0;\n var scale = 1;\n var isPanning = false;\n zoom(options.startScale, { animate: false, force: true });\n // Wait for scale to update\n // for accurate dimensions\n // to constrain initial values\n setTimeout(function () {\n pan(options.startX, options.startY, { animate: false, force: true });\n });\n function trigger(eventName, detail, opts) {\n if (opts.silent) {\n return;\n }\n var event = new CustomEvent(eventName, { detail: detail });\n elem.dispatchEvent(event);\n }\n function setTransformWithEvent(eventName, opts, originalEvent) {\n var value = { x: x, y: y, scale: scale, isSVG: isSVG, originalEvent: originalEvent };\n requestAnimationFrame(function () {\n if (typeof opts.animate === 'boolean') {\n if (opts.animate) {\n setTransition(elem, opts);\n }\n else {\n setStyle(elem, 'transition', 'none');\n }\n }\n opts.setTransform(elem, value, opts);\n trigger(eventName, value, opts);\n trigger('panzoomchange', value, opts);\n });\n return value;\n }\n function constrainXY(toX, toY, toScale, panOptions) {\n var opts = __assign(__assign({}, options), panOptions);\n var result = { x: x, y: y, opts: opts };\n if (!(panOptions === null || panOptions === void 0 ? void 0 : panOptions.force) &&\n (opts.disablePan || (opts.panOnlyWhenZoomed && scale === opts.startScale))) {\n return result;\n }\n toX = parseFloat(toX);\n toY = parseFloat(toY);\n if (!opts.disableXAxis) {\n result.x = (opts.relative ? x : 0) + toX;\n }\n if (!opts.disableYAxis) {\n result.y = (opts.relative ? y : 0) + toY;\n }\n if (opts.contain) {\n var dims = getDimensions(elem);\n var realWidth = dims.elem.width / scale;\n var realHeight = dims.elem.height / scale;\n var scaledWidth = realWidth * toScale;\n var scaledHeight = realHeight * toScale;\n var diffHorizontal = (scaledWidth - realWidth) / 2;\n var diffVertical = (scaledHeight - realHeight) / 2;\n if (opts.contain === 'inside') {\n var minX = (-dims.elem.margin.left - dims.parent.padding.left + diffHorizontal) / toScale;\n var maxX = (dims.parent.width -\n scaledWidth -\n dims.parent.padding.left -\n dims.elem.margin.left -\n dims.parent.border.left -\n dims.parent.border.right +\n diffHorizontal) /\n toScale;\n result.x = Math.max(Math.min(result.x, maxX), minX);\n var minY = (-dims.elem.margin.top - dims.parent.padding.top + diffVertical) / toScale;\n var maxY = (dims.parent.height -\n scaledHeight -\n dims.parent.padding.top -\n dims.elem.margin.top -\n dims.parent.border.top -\n dims.parent.border.bottom +\n diffVertical) /\n toScale;\n result.y = Math.max(Math.min(result.y, maxY), minY);\n }\n else if (opts.contain === 'outside') {\n var minX = (-(scaledWidth - dims.parent.width) -\n dims.parent.padding.left -\n dims.parent.border.left -\n dims.parent.border.right +\n diffHorizontal) /\n toScale;\n var maxX = (diffHorizontal - dims.parent.padding.left) / toScale;\n result.x = Math.max(Math.min(result.x, maxX), minX);\n var minY = (-(scaledHeight - dims.parent.height) -\n dims.parent.padding.top -\n dims.parent.border.top -\n dims.parent.border.bottom +\n diffVertical) /\n toScale;\n var maxY = (diffVertical - dims.parent.padding.top) / toScale;\n result.y = Math.max(Math.min(result.y, maxY), minY);\n }\n }\n if (opts.roundPixels) {\n result.x = Math.round(result.x);\n result.y = Math.round(result.y);\n }\n return result;\n }\n function constrainScale(toScale, zoomOptions) {\n var opts = __assign(__assign({}, options), zoomOptions);\n var result = { scale: scale, opts: opts };\n if (!(zoomOptions === null || zoomOptions === void 0 ? void 0 : zoomOptions.force) && opts.disableZoom) {\n return result;\n }\n var minScale = options.minScale;\n var maxScale = options.maxScale;\n if (opts.contain) {\n var dims = getDimensions(elem);\n var elemWidth = dims.elem.width / scale;\n var elemHeight = dims.elem.height / scale;\n if (elemWidth > 1 && elemHeight > 1) {\n var parentWidth = dims.parent.width - dims.parent.border.left - dims.parent.border.right;\n var parentHeight = dims.parent.height - dims.parent.border.top - dims.parent.border.bottom;\n var elemScaledWidth = parentWidth / elemWidth;\n var elemScaledHeight = parentHeight / elemHeight;\n if (options.contain === 'inside') {\n maxScale = Math.min(maxScale, elemScaledWidth, elemScaledHeight);\n }\n else if (options.contain === 'outside') {\n minScale = Math.max(minScale, elemScaledWidth, elemScaledHeight);\n }\n }\n }\n result.scale = Math.min(Math.max(toScale, minScale), maxScale);\n return result;\n }\n function pan(toX, toY, panOptions, originalEvent) {\n var result = constrainXY(toX, toY, scale, panOptions);\n // Only try to set if the result is somehow different\n if (x !== result.x || y !== result.y) {\n x = result.x;\n y = result.y;\n return setTransformWithEvent('panzoompan', result.opts, originalEvent);\n }\n return { x: x, y: y, scale: scale, isSVG: isSVG, originalEvent: originalEvent };\n }\n function zoom(toScale, zoomOptions, originalEvent) {\n var result = constrainScale(toScale, zoomOptions);\n var opts = result.opts;\n if (!(zoomOptions === null || zoomOptions === void 0 ? void 0 : zoomOptions.force) && opts.disableZoom) {\n return;\n }\n toScale = result.scale;\n var toX = x;\n var toY = y;\n if (opts.focal) {\n // The difference between the point after the scale and the point before the scale\n // plus the current translation after the scale\n // neutralized to no scale (as the transform scale will apply to the translation)\n var focal = opts.focal;\n toX = (focal.x / toScale - focal.x / scale + x * toScale) / toScale;\n toY = (focal.y / toScale - focal.y / scale + y * toScale) / toScale;\n }\n var panResult = constrainXY(toX, toY, toScale, { relative: false, force: true });\n x = panResult.x;\n y = panResult.y;\n scale = toScale;\n return setTransformWithEvent('panzoomzoom', opts, originalEvent);\n }\n function zoomInOut(isIn, zoomOptions) {\n var opts = __assign(__assign(__assign({}, options), { animate: true }), zoomOptions);\n return zoom(scale * Math.exp((isIn ? 1 : -1) * opts.step), opts);\n }\n function zoomIn(zoomOptions) {\n return zoomInOut(true, zoomOptions);\n }\n function zoomOut(zoomOptions) {\n return zoomInOut(false, zoomOptions);\n }\n function zoomToPoint(toScale, point, zoomOptions, originalEvent) {\n var dims = getDimensions(elem);\n // Instead of thinking of operating on the panzoom element,\n // think of operating on the area inside the panzoom\n // element's parent\n // Subtract padding and border\n var effectiveArea = {\n width: dims.parent.width -\n dims.parent.padding.left -\n dims.parent.padding.right -\n dims.parent.border.left -\n dims.parent.border.right,\n height: dims.parent.height -\n dims.parent.padding.top -\n dims.parent.padding.bottom -\n dims.parent.border.top -\n dims.parent.border.bottom\n };\n // Adjust the clientX/clientY to ignore the area\n // outside the effective area\n var clientX = point.clientX -\n dims.parent.left -\n dims.parent.padding.left -\n dims.parent.border.left -\n dims.elem.margin.left;\n var clientY = point.clientY -\n dims.parent.top -\n dims.parent.padding.top -\n dims.parent.border.top -\n dims.elem.margin.top;\n // Adjust the clientX/clientY for HTML elements,\n // because they have a transform-origin of 50% 50%\n if (!isSVG) {\n clientX -= dims.elem.width / scale / 2;\n clientY -= dims.elem.height / scale / 2;\n }\n // Convert the mouse point from it's position over the\n // effective area before the scale to the position\n // over the effective area after the scale.\n var focal = {\n x: (clientX / effectiveArea.width) * (effectiveArea.width * toScale),\n y: (clientY / effectiveArea.height) * (effectiveArea.height * toScale)\n };\n return zoom(toScale, __assign(__assign({}, zoomOptions), { animate: false, focal: focal }), originalEvent);\n }\n function zoomWithWheel(event, zoomOptions) {\n // Need to prevent the default here\n // or it conflicts with regular page scroll\n event.preventDefault();\n var opts = __assign(__assign(__assign({}, options), zoomOptions), { animate: false });\n // Normalize to deltaX in case shift modifier is used on Mac\n var delta = event.deltaY === 0 && event.deltaX ? event.deltaX : event.deltaY;\n var wheel = delta < 0 ? 1 : -1;\n var toScale = constrainScale(scale * Math.exp((wheel * opts.step) / 3), opts).scale;\n return zoomToPoint(toScale, event, opts, event);\n }\n function reset(resetOptions) {\n var opts = __assign(__assign(__assign({}, options), { animate: true, force: true }), resetOptions);\n scale = constrainScale(opts.startScale, opts).scale;\n var panResult = constrainXY(opts.startX, opts.startY, scale, opts);\n x = panResult.x;\n y = panResult.y;\n return setTransformWithEvent('panzoomreset', opts);\n }\n var origX;\n var origY;\n var startClientX;\n var startClientY;\n var startScale;\n var startDistance;\n var pointers = [];\n function handleDown(event) {\n // Don't handle this event if the target is excluded\n if (isExcluded(event.target, options)) {\n return;\n }\n addPointer(pointers, event);\n isPanning = true;\n options.handleStartEvent(event);\n origX = x;\n origY = y;\n trigger('panzoomstart', { x: x, y: y, scale: scale, isSVG: isSVG, originalEvent: event }, options);\n // This works whether there are multiple\n // pointers or not\n var point = getMiddle(pointers);\n startClientX = point.clientX;\n startClientY = point.clientY;\n startScale = scale;\n startDistance = getDistance(pointers);\n }\n function handleMove(event) {\n if (!isPanning ||\n origX === undefined ||\n origY === undefined ||\n startClientX === undefined ||\n startClientY === undefined) {\n return;\n }\n addPointer(pointers, event);\n var current = getMiddle(pointers);\n var hasMultiple = pointers.length > 1;\n var toScale = scale;\n if (hasMultiple) {\n // A startDistance of 0 means\n // that there weren't 2 pointers\n // handled on start\n if (startDistance === 0) {\n startDistance = getDistance(pointers);\n }\n // Use the distance between the first 2 pointers\n // to determine the current scale\n var diff = getDistance(pointers) - startDistance;\n toScale = constrainScale((diff * options.step) / 80 + startScale).scale;\n zoomToPoint(toScale, current, { animate: false }, event);\n }\n // Pan during pinch if pinchAndPan is true.\n // Note: some calculations may be off because the zoom\n // above has not yet rendered. However, the behavior\n // was removed before the new scale was used in the following\n // pan calculation.\n // See https://github.com/timmywil/panzoom/issues/512\n // and https://github.com/timmywil/panzoom/issues/606\n if (!hasMultiple || options.pinchAndPan) {\n pan(origX + (current.clientX - startClientX) / toScale, origY + (current.clientY - startClientY) / toScale, { animate: false }, event);\n }\n }\n function handleUp(event) {\n // Don't call panzoomend when panning with 2 touches\n // until both touches end\n if (pointers.length === 1) {\n trigger('panzoomend', { x: x, y: y, scale: scale, isSVG: isSVG, originalEvent: event }, options);\n }\n // Note: don't remove all pointers\n // Can restart without having to reinitiate all of them\n // Remove the pointer regardless of the isPanning state\n removePointer(pointers, event);\n if (!isPanning) {\n return;\n }\n isPanning = false;\n origX = origY = startClientX = startClientY = undefined;\n }\n var bound = false;\n function bind() {\n if (bound) {\n return;\n }\n bound = true;\n onPointer('down', options.canvas ? parent : elem, handleDown);\n onPointer('move', document, handleMove, { passive: true });\n onPointer('up', document, handleUp, { passive: true });\n }\n function destroy() {\n bound = false;\n destroyPointer('down', options.canvas ? parent : elem, handleDown);\n destroyPointer('move', document, handleMove);\n destroyPointer('up', document, handleUp);\n }\n if (!options.noBind) {\n bind();\n }\n return {\n bind: bind,\n destroy: destroy,\n eventNames: events,\n getPan: function () { return ({ x: x, y: y }); },\n getScale: function () { return scale; },\n getOptions: function () { return shallowClone(options); },\n handleDown: handleDown,\n handleMove: handleMove,\n handleUp: handleUp,\n pan: pan,\n reset: reset,\n resetStyle: resetStyle,\n setOptions: setOptions,\n setStyle: function (name, value) { return setStyle(elem, name, value); },\n zoom: zoom,\n zoomIn: zoomIn,\n zoomOut: zoomOut,\n zoomToPoint: zoomToPoint,\n zoomWithWheel: zoomWithWheel\n };\n}\nPanzoom.defaultOptions = defaultOptions;\n\nexport { Panzoom as default };\n","/**\n * @license lucide-react v0.473.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\n\nexport { mergeClasses, toKebabCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.473.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.473.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => {\n return createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n );\n }\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.473.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className),\n ...props\n })\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.473.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\", key: \"v9h5vc\" }],\n [\"path\", { d: \"M21 3v5h-5\", key: \"1q7to0\" }],\n [\"path\", { d: \"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\", key: \"3uifl3\" }],\n [\"path\", { d: \"M8 16H3v5\", key: \"1cv678\" }]\n];\nconst RefreshCw = createLucideIcon(\"RefreshCw\", __iconNode);\n\nexport { __iconNode, RefreshCw as default };\n//# sourceMappingURL=refresh-cw.js.map\n","/**\n * @license lucide-react v0.473.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"11\", cy: \"11\", r: \"8\", key: \"4ej97u\" }],\n [\"line\", { x1: \"21\", x2: \"16.65\", y1: \"21\", y2: \"16.65\", key: \"13gj7c\" }],\n [\"line\", { x1: \"11\", x2: \"11\", y1: \"8\", y2: \"14\", key: \"1vmskp\" }],\n [\"line\", { x1: \"8\", x2: \"14\", y1: \"11\", y2: \"11\", key: \"durymu\" }]\n];\nconst ZoomIn = createLucideIcon(\"ZoomIn\", __iconNode);\n\nexport { __iconNode, ZoomIn as default };\n//# sourceMappingURL=zoom-in.js.map\n","/**\n * @license lucide-react v0.473.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"11\", cy: \"11\", r: \"8\", key: \"4ej97u\" }],\n [\"line\", { x1: \"21\", x2: \"16.65\", y1: \"21\", y2: \"16.65\", key: \"13gj7c\" }],\n [\"line\", { x1: \"8\", x2: \"14\", y1: \"11\", y2: \"11\", key: \"durymu\" }]\n];\nconst ZoomOut = createLucideIcon(\"ZoomOut\", __iconNode);\n\nexport { __iconNode, ZoomOut as default };\n//# sourceMappingURL=zoom-out.js.map\n","// package.json\nvar package_default = {\n name: \"mermaid\",\n version: \"11.12.2\",\n description: \"Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.\",\n type: \"module\",\n module: \"./dist/mermaid.core.mjs\",\n types: \"./dist/mermaid.d.ts\",\n exports: {\n \".\": {\n types: \"./dist/mermaid.d.ts\",\n import: \"./dist/mermaid.core.mjs\",\n default: \"./dist/mermaid.core.mjs\"\n },\n \"./*\": \"./*\"\n },\n keywords: [\n \"diagram\",\n \"markdown\",\n \"flowchart\",\n \"sequence diagram\",\n \"gantt\",\n \"class diagram\",\n \"git graph\",\n \"mindmap\",\n \"packet diagram\",\n \"c4 diagram\",\n \"er diagram\",\n \"pie chart\",\n \"pie diagram\",\n \"quadrant chart\",\n \"requirement diagram\",\n \"graph\"\n ],\n scripts: {\n clean: \"rimraf dist\",\n dev: \"pnpm -w dev\",\n \"docs:code\": \"typedoc src/defaultConfig.ts src/config.ts src/mermaid.ts && prettier --write ./src/docs/config/setup\",\n \"docs:build\": \"rimraf ../../docs && pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts\",\n \"docs:verify\": \"pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts --verify\",\n \"docs:pre:vitepress\": \"pnpm --filter ./src/docs prefetch && rimraf src/vitepress && pnpm docs:code && tsx scripts/docs.cli.mts --vitepress && pnpm --filter ./src/vitepress install --no-frozen-lockfile --ignore-scripts\",\n \"docs:build:vitepress\": \"pnpm docs:pre:vitepress && (cd src/vitepress && pnpm run build) && cpy --flat src/docs/landing/ ./src/vitepress/.vitepress/dist/landing\",\n \"docs:dev\": 'pnpm docs:pre:vitepress && concurrently \"pnpm --filter ./src/vitepress dev\" \"tsx scripts/docs.cli.mts --watch --vitepress\"',\n \"docs:dev:docker\": 'pnpm docs:pre:vitepress && concurrently \"pnpm --filter ./src/vitepress dev:docker\" \"tsx scripts/docs.cli.mts --watch --vitepress\"',\n \"docs:serve\": \"pnpm docs:build:vitepress && vitepress serve src/vitepress\",\n \"docs:spellcheck\": 'cspell \"src/docs/**/*.md\"',\n \"docs:release-version\": \"tsx scripts/update-release-version.mts\",\n \"docs:verify-version\": \"tsx scripts/update-release-version.mts --verify\",\n \"types:build-config\": \"tsx scripts/create-types-from-json-schema.mts\",\n \"types:verify-config\": \"tsx scripts/create-types-from-json-schema.mts --verify\",\n checkCircle: \"npx madge --circular ./src\",\n prepublishOnly: \"pnpm docs:verify-version\"\n },\n repository: {\n type: \"git\",\n url: \"https://github.com/mermaid-js/mermaid\"\n },\n author: \"Knut Sveidqvist\",\n license: \"MIT\",\n standard: {\n ignore: [\n \"**/parser/*.js\",\n \"dist/**/*.js\",\n \"cypress/**/*.js\"\n ],\n globals: [\n \"page\"\n ]\n },\n dependencies: {\n \"@braintree/sanitize-url\": \"^7.1.1\",\n \"@iconify/utils\": \"^3.0.1\",\n \"@mermaid-js/parser\": \"workspace:^\",\n \"@types/d3\": \"^7.4.3\",\n cytoscape: \"^3.29.3\",\n \"cytoscape-cose-bilkent\": \"^4.1.0\",\n \"cytoscape-fcose\": \"^2.2.0\",\n d3: \"^7.9.0\",\n \"d3-sankey\": \"^0.12.3\",\n \"dagre-d3-es\": \"7.0.13\",\n dayjs: \"^1.11.18\",\n dompurify: \"^3.2.5\",\n katex: \"^0.16.22\",\n khroma: \"^2.1.0\",\n \"lodash-es\": \"^4.17.21\",\n marked: \"^16.2.1\",\n roughjs: \"^4.6.6\",\n stylis: \"^4.3.6\",\n \"ts-dedent\": \"^2.2.0\",\n uuid: \"^11.1.0\"\n },\n devDependencies: {\n \"@adobe/jsonschema2md\": \"^8.0.5\",\n \"@iconify/types\": \"^2.0.0\",\n \"@types/cytoscape\": \"^3.21.9\",\n \"@types/cytoscape-fcose\": \"^2.2.4\",\n \"@types/d3-sankey\": \"^0.12.4\",\n \"@types/d3-scale\": \"^4.0.9\",\n \"@types/d3-scale-chromatic\": \"^3.1.0\",\n \"@types/d3-selection\": \"^3.0.11\",\n \"@types/d3-shape\": \"^3.1.7\",\n \"@types/jsdom\": \"^21.1.7\",\n \"@types/katex\": \"^0.16.7\",\n \"@types/lodash-es\": \"^4.17.12\",\n \"@types/micromatch\": \"^4.0.9\",\n \"@types/stylis\": \"^4.2.7\",\n \"@types/uuid\": \"^10.0.0\",\n ajv: \"^8.17.1\",\n canvas: \"^3.1.2\",\n chokidar: \"3.6.0\",\n concurrently: \"^9.1.2\",\n \"csstree-validator\": \"^4.0.1\",\n globby: \"^14.1.0\",\n jison: \"^0.4.18\",\n \"js-base64\": \"^3.7.8\",\n jsdom: \"^26.1.0\",\n \"json-schema-to-typescript\": \"^15.0.4\",\n micromatch: \"^4.0.8\",\n \"path-browserify\": \"^1.0.1\",\n prettier: \"^3.5.3\",\n remark: \"^15.0.1\",\n \"remark-frontmatter\": \"^5.0.0\",\n \"remark-gfm\": \"^4.0.1\",\n rimraf: \"^6.0.1\",\n \"start-server-and-test\": \"^2.0.13\",\n \"type-fest\": \"^4.35.0\",\n typedoc: \"^0.28.12\",\n \"typedoc-plugin-markdown\": \"^4.8.1\",\n typescript: \"~5.7.3\",\n \"unist-util-flatmap\": \"^1.0.0\",\n \"unist-util-visit\": \"^5.0.0\",\n vitepress: \"^1.6.4\",\n \"vitepress-plugin-search\": \"1.0.4-alpha.22\"\n },\n files: [\n \"dist/\",\n \"README.md\"\n ],\n publishConfig: {\n access: \"public\"\n }\n};\n\nexport {\n package_default\n};\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/logger.ts\nimport dayjs from \"dayjs\";\nvar LEVELS = {\n trace: 0,\n debug: 1,\n info: 2,\n warn: 3,\n error: 4,\n fatal: 5\n};\nvar log = {\n trace: /* @__PURE__ */ __name((..._args) => {\n }, \"trace\"),\n debug: /* @__PURE__ */ __name((..._args) => {\n }, \"debug\"),\n info: /* @__PURE__ */ __name((..._args) => {\n }, \"info\"),\n warn: /* @__PURE__ */ __name((..._args) => {\n }, \"warn\"),\n error: /* @__PURE__ */ __name((..._args) => {\n }, \"error\"),\n fatal: /* @__PURE__ */ __name((..._args) => {\n }, \"fatal\")\n};\nvar setLogLevel = /* @__PURE__ */ __name(function(level = \"fatal\") {\n let numericLevel = LEVELS.fatal;\n if (typeof level === \"string\") {\n if (level.toLowerCase() in LEVELS) {\n numericLevel = LEVELS[level];\n }\n } else if (typeof level === \"number\") {\n numericLevel = level;\n }\n log.trace = () => {\n };\n log.debug = () => {\n };\n log.info = () => {\n };\n log.warn = () => {\n };\n log.error = () => {\n };\n log.fatal = () => {\n };\n if (numericLevel <= LEVELS.fatal) {\n log.fatal = console.error ? console.error.bind(console, format(\"FATAL\"), \"color: orange\") : console.log.bind(console, \"\\x1B[35m\", format(\"FATAL\"));\n }\n if (numericLevel <= LEVELS.error) {\n log.error = console.error ? console.error.bind(console, format(\"ERROR\"), \"color: orange\") : console.log.bind(console, \"\\x1B[31m\", format(\"ERROR\"));\n }\n if (numericLevel <= LEVELS.warn) {\n log.warn = console.warn ? console.warn.bind(console, format(\"WARN\"), \"color: orange\") : console.log.bind(console, `\\x1B[33m`, format(\"WARN\"));\n }\n if (numericLevel <= LEVELS.info) {\n log.info = console.info ? console.info.bind(console, format(\"INFO\"), \"color: lightblue\") : console.log.bind(console, \"\\x1B[34m\", format(\"INFO\"));\n }\n if (numericLevel <= LEVELS.debug) {\n log.debug = console.debug ? console.debug.bind(console, format(\"DEBUG\"), \"color: lightgreen\") : console.log.bind(console, \"\\x1B[32m\", format(\"DEBUG\"));\n }\n if (numericLevel <= LEVELS.trace) {\n log.trace = console.debug ? console.debug.bind(console, format(\"TRACE\"), \"color: lightgreen\") : console.log.bind(console, \"\\x1B[32m\", format(\"TRACE\"));\n }\n}, \"setLogLevel\");\nvar format = /* @__PURE__ */ __name((level) => {\n const time = dayjs().format(\"ss.SSS\");\n return `%c${time} : ${level} : `;\n}, \"format\");\n\nexport {\n __name,\n __export,\n log,\n setLogLevel\n};\n","/* IMPORT */\n/* MAIN */\nconst Channel = {\n /* CLAMP */\n min: {\n r: 0,\n g: 0,\n b: 0,\n s: 0,\n l: 0,\n a: 0\n },\n max: {\n r: 255,\n g: 255,\n b: 255,\n h: 360,\n s: 100,\n l: 100,\n a: 1\n },\n clamp: {\n r: (r) => r >= 255 ? 255 : (r < 0 ? 0 : r),\n g: (g) => g >= 255 ? 255 : (g < 0 ? 0 : g),\n b: (b) => b >= 255 ? 255 : (b < 0 ? 0 : b),\n h: (h) => h % 360,\n s: (s) => s >= 100 ? 100 : (s < 0 ? 0 : s),\n l: (l) => l >= 100 ? 100 : (l < 0 ? 0 : l),\n a: (a) => a >= 1 ? 1 : (a < 0 ? 0 : a)\n },\n /* CONVERSION */\n //SOURCE: https://planetcalc.com/7779\n toLinear: (c) => {\n const n = c / 255;\n return c > .03928 ? Math.pow(((n + .055) / 1.055), 2.4) : n / 12.92;\n },\n //SOURCE: https://gist.github.com/mjackson/5311256\n hue2rgb: (p, q, t) => {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n },\n hsl2rgb: ({ h, s, l }, channel) => {\n if (!s)\n return l * 2.55; // Achromatic\n h /= 360;\n s /= 100;\n l /= 100;\n const q = (l < .5) ? l * (1 + s) : (l + s) - (l * s);\n const p = 2 * l - q;\n switch (channel) {\n case 'r': return Channel.hue2rgb(p, q, h + 1 / 3) * 255;\n case 'g': return Channel.hue2rgb(p, q, h) * 255;\n case 'b': return Channel.hue2rgb(p, q, h - 1 / 3) * 255;\n }\n },\n rgb2hsl: ({ r, g, b }, channel) => {\n r /= 255;\n g /= 255;\n b /= 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n if (channel === 'l')\n return l * 100;\n if (max === min)\n return 0; // Achromatic\n const d = max - min;\n const s = (l > .5) ? d / (2 - max - min) : d / (max + min);\n if (channel === 's')\n return s * 100;\n switch (max) {\n case r: return ((g - b) / d + (g < b ? 6 : 0)) * 60;\n case g: return ((b - r) / d + 2) * 60;\n case b: return ((r - g) / d + 4) * 60;\n default: return -1; //TSC: TypeScript is stupid and complains if there isn't this useless default statement\n }\n }\n};\n/* EXPORT */\nexport default Channel;\n","/* MAIN */\nconst Lang = {\n /* API */\n clamp: (number, lower, upper) => {\n if (lower > upper)\n return Math.min(lower, Math.max(upper, number));\n return Math.min(upper, Math.max(lower, number));\n },\n round: (number) => {\n return Math.round(number * 10000000000) / 10000000000;\n }\n};\n/* EXPORT */\nexport default Lang;\n","/* MAIN */\nconst Unit = {\n /* API */\n dec2hex: (dec) => {\n const hex = Math.round(dec).toString(16);\n return hex.length > 1 ? hex : `0${hex}`;\n }\n};\n/* EXPORT */\nexport default Unit;\n","/* IMPORT */\nimport channel from './channel.js';\nimport lang from './lang.js';\nimport unit from './unit.js';\n/* MAIN */\nconst Utils = {\n channel,\n lang,\n unit\n};\n/* EXPORT */\nexport default Utils;\n","/* IMPORT */\nimport _ from './utils/index.js';\n/* MAIN */\nconst DEC2HEX = {};\nfor (let i = 0; i <= 255; i++)\n DEC2HEX[i] = _.unit.dec2hex(i); // Populating dynamically, striking a balance between code size and performance\nconst TYPE = {\n ALL: 0,\n RGB: 1,\n HSL: 2\n};\n/* EXPORT */\nexport { DEC2HEX, TYPE };\n","/* IMPORT */\nimport { TYPE } from '../constants.js';\n/* MAIN */\nclass Type {\n constructor() {\n /* VARIABLES */\n this.type = TYPE.ALL;\n }\n /* API */\n get() {\n return this.type;\n }\n set(type) {\n if (this.type && this.type !== type)\n throw new Error('Cannot change both RGB and HSL channels at the same time');\n this.type = type;\n }\n reset() {\n this.type = TYPE.ALL;\n }\n is(type) {\n return this.type === type;\n }\n}\n/* EXPORT */\nexport default Type;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Type from './type.js';\nimport { TYPE } from '../constants.js';\n/* MAIN */\nclass Channels {\n /* CONSTRUCTOR */\n constructor(data, color) {\n this.color = color;\n this.changed = false;\n this.data = data; //TSC\n this.type = new Type();\n }\n /* API */\n set(data, color) {\n this.color = color;\n this.changed = false;\n this.data = data; //TSC\n this.type.type = TYPE.ALL;\n return this;\n }\n /* HELPERS */\n _ensureHSL() {\n const data = this.data;\n const { h, s, l } = data;\n if (h === undefined)\n data.h = _.channel.rgb2hsl(data, 'h');\n if (s === undefined)\n data.s = _.channel.rgb2hsl(data, 's');\n if (l === undefined)\n data.l = _.channel.rgb2hsl(data, 'l');\n }\n _ensureRGB() {\n const data = this.data;\n const { r, g, b } = data;\n if (r === undefined)\n data.r = _.channel.hsl2rgb(data, 'r');\n if (g === undefined)\n data.g = _.channel.hsl2rgb(data, 'g');\n if (b === undefined)\n data.b = _.channel.hsl2rgb(data, 'b');\n }\n /* GETTERS */\n get r() {\n const data = this.data;\n const r = data.r;\n if (!this.type.is(TYPE.HSL) && r !== undefined)\n return r;\n this._ensureHSL();\n return _.channel.hsl2rgb(data, 'r');\n }\n get g() {\n const data = this.data;\n const g = data.g;\n if (!this.type.is(TYPE.HSL) && g !== undefined)\n return g;\n this._ensureHSL();\n return _.channel.hsl2rgb(data, 'g');\n }\n get b() {\n const data = this.data;\n const b = data.b;\n if (!this.type.is(TYPE.HSL) && b !== undefined)\n return b;\n this._ensureHSL();\n return _.channel.hsl2rgb(data, 'b');\n }\n get h() {\n const data = this.data;\n const h = data.h;\n if (!this.type.is(TYPE.RGB) && h !== undefined)\n return h;\n this._ensureRGB();\n return _.channel.rgb2hsl(data, 'h');\n }\n get s() {\n const data = this.data;\n const s = data.s;\n if (!this.type.is(TYPE.RGB) && s !== undefined)\n return s;\n this._ensureRGB();\n return _.channel.rgb2hsl(data, 's');\n }\n get l() {\n const data = this.data;\n const l = data.l;\n if (!this.type.is(TYPE.RGB) && l !== undefined)\n return l;\n this._ensureRGB();\n return _.channel.rgb2hsl(data, 'l');\n }\n get a() {\n return this.data.a;\n }\n /* SETTERS */\n set r(r) {\n this.type.set(TYPE.RGB);\n this.changed = true;\n this.data.r = r;\n }\n set g(g) {\n this.type.set(TYPE.RGB);\n this.changed = true;\n this.data.g = g;\n }\n set b(b) {\n this.type.set(TYPE.RGB);\n this.changed = true;\n this.data.b = b;\n }\n set h(h) {\n this.type.set(TYPE.HSL);\n this.changed = true;\n this.data.h = h;\n }\n set s(s) {\n this.type.set(TYPE.HSL);\n this.changed = true;\n this.data.s = s;\n }\n set l(l) {\n this.type.set(TYPE.HSL);\n this.changed = true;\n this.data.l = l;\n }\n set a(a) {\n this.changed = true;\n this.data.a = a;\n }\n}\n/* EXPORT */\nexport default Channels;\n","/* IMPORT */\nimport Channels from './/index.js';\n/* MAIN */\nconst channels = new Channels({ r: 0, g: 0, b: 0, a: 0 }, 'transparent');\n/* EXPORT */\nexport default channels;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\nimport { DEC2HEX } from '../constants.js';\n/* MAIN */\nconst Hex = {\n /* VARIABLES */\n re: /^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,\n /* API */\n parse: (color) => {\n if (color.charCodeAt(0) !== 35)\n return; // '#'\n const match = color.match(Hex.re);\n if (!match)\n return;\n const hex = match[1];\n const dec = parseInt(hex, 16);\n const length = hex.length;\n const hasAlpha = length % 4 === 0;\n const isFullLength = length > 4;\n const multiplier = isFullLength ? 1 : 17;\n const bits = isFullLength ? 8 : 4;\n const bitsOffset = hasAlpha ? 0 : -1;\n const mask = isFullLength ? 255 : 15;\n return ChannelsReusable.set({\n r: ((dec >> (bits * (bitsOffset + 3))) & mask) * multiplier,\n g: ((dec >> (bits * (bitsOffset + 2))) & mask) * multiplier,\n b: ((dec >> (bits * (bitsOffset + 1))) & mask) * multiplier,\n a: hasAlpha ? (dec & mask) * multiplier / 255 : 1\n }, color);\n },\n stringify: (channels) => {\n const { r, g, b, a } = channels;\n if (a < 1) { // #RRGGBBAA\n return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}${DEC2HEX[Math.round(a * 255)]}`;\n }\n else { // #RRGGBB\n return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}`;\n }\n }\n};\n/* EXPORT */\nexport default Hex;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\n/* MAIN */\nconst HSL = {\n /* VARIABLES */\n re: /^hsla?\\(\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?(?:deg|grad|rad|turn)?)\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?%)\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?%)(?:\\s*?(?:,|\\/)\\s*?\\+?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?(%)?))?\\s*?\\)$/i,\n hueRe: /^(.+?)(deg|grad|rad|turn)$/i,\n /* HELPERS */\n _hue2deg: (hue) => {\n const match = hue.match(HSL.hueRe);\n if (match) {\n const [, number, unit] = match;\n switch (unit) {\n case 'grad': return _.channel.clamp.h(parseFloat(number) * .9);\n case 'rad': return _.channel.clamp.h(parseFloat(number) * 180 / Math.PI);\n case 'turn': return _.channel.clamp.h(parseFloat(number) * 360);\n }\n }\n return _.channel.clamp.h(parseFloat(hue));\n },\n /* API */\n parse: (color) => {\n const charCode = color.charCodeAt(0);\n if (charCode !== 104 && charCode !== 72)\n return; // 'h'/'H'\n const match = color.match(HSL.re);\n if (!match)\n return;\n const [, h, s, l, a, isAlphaPercentage] = match;\n return ChannelsReusable.set({\n h: HSL._hue2deg(h),\n s: _.channel.clamp.s(parseFloat(s)),\n l: _.channel.clamp.l(parseFloat(l)),\n a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1\n }, color);\n },\n stringify: (channels) => {\n const { h, s, l, a } = channels;\n if (a < 1) { // HSLA\n return `hsla(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%, ${a})`;\n }\n else { // HSL\n return `hsl(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%)`;\n }\n }\n};\n/* EXPORT */\nexport default HSL;\n","/* IMPORT */\nimport Hex from './hex.js';\n/* MAIN */\nconst Keyword = {\n /* VARIABLES */\n colors: {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyanaqua: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n gold: '#ffd700',\n goldenrod: '#daa520',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavender: '#e6e6fa',\n lavenderblush: '#fff0f5',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n transparent: '#00000000',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32'\n },\n /* API */\n parse: (color) => {\n color = color.toLowerCase();\n const hex = Keyword.colors[color];\n if (!hex)\n return;\n return Hex.parse(hex);\n },\n stringify: (channels) => {\n const hex = Hex.stringify(channels);\n for (const name in Keyword.colors) {\n if (Keyword.colors[name] === hex)\n return name;\n }\n return;\n }\n};\n/* EXPORT */\nexport default Keyword;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\n/* MAIN */\nconst RGB = {\n /* VARIABLES */\n re: /^rgba?\\(\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?))\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?))\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?))(?:\\s*?(?:,|\\/)\\s*?\\+?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?)))?\\s*?\\)$/i,\n /* API */\n parse: (color) => {\n const charCode = color.charCodeAt(0);\n if (charCode !== 114 && charCode !== 82)\n return; // 'r'/'R'\n const match = color.match(RGB.re);\n if (!match)\n return;\n const [, r, isRedPercentage, g, isGreenPercentage, b, isBluePercentage, a, isAlphaPercentage] = match;\n return ChannelsReusable.set({\n r: _.channel.clamp.r(isRedPercentage ? parseFloat(r) * 2.55 : parseFloat(r)),\n g: _.channel.clamp.g(isGreenPercentage ? parseFloat(g) * 2.55 : parseFloat(g)),\n b: _.channel.clamp.b(isBluePercentage ? parseFloat(b) * 2.55 : parseFloat(b)),\n a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1\n }, color);\n },\n stringify: (channels) => {\n const { r, g, b, a } = channels;\n if (a < 1) { // RGBA\n return `rgba(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)}, ${_.lang.round(a)})`;\n }\n else { // RGB\n return `rgb(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)})`;\n }\n }\n};\n/* EXPORT */\nexport default RGB;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Hex from './hex.js';\nimport HSL from './hsl.js';\nimport Keyword from './keyword.js';\nimport RGB from './rgb.js';\nimport { TYPE } from '../constants.js';\n/* MAIN */\nconst Color = {\n /* VARIABLES */\n format: {\n keyword: Keyword,\n hex: Hex,\n rgb: RGB,\n rgba: RGB,\n hsl: HSL,\n hsla: HSL\n },\n /* API */\n parse: (color) => {\n if (typeof color !== 'string')\n return color;\n const channels = Hex.parse(color) || RGB.parse(color) || HSL.parse(color) || Keyword.parse(color); // Color providers ordered with performance in mind\n if (channels)\n return channels;\n throw new Error(`Unsupported color format: \"${color}\"`);\n },\n stringify: (channels) => {\n // SASS returns a keyword if possible, but we avoid doing that as it's slower and doesn't really add any value\n if (!channels.changed && channels.color)\n return channels.color;\n if (channels.type.is(TYPE.HSL) || channels.data.r === undefined) {\n return HSL.stringify(channels);\n }\n else if (channels.a < 1 || !Number.isInteger(channels.r) || !Number.isInteger(channels.g) || !Number.isInteger(channels.b)) {\n return RGB.stringify(channels);\n }\n else {\n return Hex.stringify(channels);\n }\n }\n};\n/* EXPORT */\nexport default Color;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\nconst change = (color, channels) => {\n const ch = Color.parse(color);\n for (const c in channels) {\n ch[c] = _.channel.clamp[c](channels[c]);\n }\n return Color.stringify(ch);\n};\n/* EXPORT */\nexport default change;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\nimport Color from '../color/index.js';\nimport change from './change.js';\n/* MAIN */\nconst rgba = (r, g, b = 0, a = 1) => {\n if (typeof r !== 'number')\n return change(r, { a: g });\n const channels = ChannelsReusable.set({\n r: _.channel.clamp.r(r),\n g: _.channel.clamp.g(g),\n b: _.channel.clamp.b(b),\n a: _.channel.clamp.a(a)\n });\n return Color.stringify(channels);\n};\n/* EXPORT */\nexport default rgba;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\n//SOURCE: https://planetcalc.com/7779\nconst luminance = (color) => {\n const { r, g, b } = Color.parse(color);\n const luminance = .2126 * _.channel.toLinear(r) + .7152 * _.channel.toLinear(g) + .0722 * _.channel.toLinear(b);\n return _.lang.round(luminance);\n};\n/* EXPORT */\nexport default luminance;\n","/* IMPORT */\nimport luminance from './luminance.js';\n/* MAIN */\nconst isLight = (color) => {\n return luminance(color) >= .5;\n};\n/* EXPORT */\nexport default isLight;\n","/* IMPORT */\nimport isLight from './is_light.js';\n/* MAIN */\nconst isDark = (color) => {\n return !isLight(color);\n};\n/* EXPORT */\nexport default isDark;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Color from '../color/index.js';\n/* MAIN */\nconst adjustChannel = (color, channel, amount) => {\n const channels = Color.parse(color);\n const amountCurrent = channels[channel];\n const amountNext = _.channel.clamp[channel](amountCurrent + amount);\n if (amountCurrent !== amountNext)\n channels[channel] = amountNext;\n return Color.stringify(channels);\n};\n/* EXPORT */\nexport default adjustChannel;\n","/* IMPORT */\nimport adjustChannel from './adjust_channel.js';\n/* MAIN */\nconst lighten = (color, amount) => {\n return adjustChannel(color, 'l', amount);\n};\n/* EXPORT */\nexport default lighten;\n","/* IMPORT */\nimport adjustChannel from './adjust_channel.js';\n/* MAIN */\nconst darken = (color, amount) => {\n return adjustChannel(color, 'l', -amount);\n};\n/* EXPORT */\nexport default darken;\n","/* IMPORT */\nimport Color from '../color/index.js';\nimport change from './change.js';\n/* MAIN */\nconst adjust = (color, channels) => {\n const ch = Color.parse(color);\n const changes = {};\n for (const c in channels) {\n if (!channels[c])\n continue;\n changes[c] = ch[c] + channels[c];\n }\n return change(color, changes);\n};\n/* EXPORT */\nexport default adjust;\n","/* IMPORT */\nimport Color from '../color/index.js';\nimport rgba from './rgba.js';\n/* MAIN */\n//SOURCE: https://github.com/sass/dart-sass/blob/7457d2e9e7e623d9844ffd037a070cf32d39c348/lib/src/functions/color.dart#L718-L756\nconst mix = (color1, color2, weight = 50) => {\n const { r: r1, g: g1, b: b1, a: a1 } = Color.parse(color1);\n const { r: r2, g: g2, b: b2, a: a2 } = Color.parse(color2);\n const weightScale = weight / 100;\n const weightNormalized = (weightScale * 2) - 1;\n const alphaDelta = a1 - a2;\n const weight1combined = ((weightNormalized * alphaDelta) === -1) ? weightNormalized : (weightNormalized + alphaDelta) / (1 + weightNormalized * alphaDelta);\n const weight1 = (weight1combined + 1) / 2;\n const weight2 = 1 - weight1;\n const r = (r1 * weight1) + (r2 * weight2);\n const g = (g1 * weight1) + (g2 * weight2);\n const b = (b1 * weight1) + (b2 * weight2);\n const a = (a1 * weightScale) + (a2 * (1 - weightScale));\n return rgba(r, g, b, a);\n};\n/* EXPORT */\nexport default mix;\n","/* IMPORT */\nimport Color from '../color/index.js';\nimport mix from './mix.js';\n/* MAIN */\nconst invert = (color, weight = 100) => {\n const inverse = Color.parse(color);\n inverse.r = 255 - inverse.r;\n inverse.g = 255 - inverse.g;\n inverse.b = 255 - inverse.b;\n return mix(inverse, color, weight);\n};\n/* EXPORT */\nexport default invert;\n","import {\n __export,\n __name,\n log,\n setLogLevel\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagram-api/regexes.ts\nvar frontMatterRegex = /^-{3}\\s*[\\n\\r](.*?)[\\n\\r]-{3}\\s*[\\n\\r]+/s;\nvar directiveRegex = /%{2}{\\s*(?:(\\w+)\\s*:|(\\w+))\\s*(?:(\\w+)|((?:(?!}%{2}).|\\r?\\n)*))?\\s*(?:}%{2})?/gi;\nvar anyCommentRegex = /\\s*%%.*\\n/gm;\n\n// src/errors.ts\nvar UnknownDiagramError = class extends Error {\n static {\n __name(this, \"UnknownDiagramError\");\n }\n constructor(message) {\n super(message);\n this.name = \"UnknownDiagramError\";\n }\n};\n\n// src/diagram-api/detectType.ts\nvar detectors = {};\nvar detectType = /* @__PURE__ */ __name(function(text, config2) {\n text = text.replace(frontMatterRegex, \"\").replace(directiveRegex, \"\").replace(anyCommentRegex, \"\\n\");\n for (const [key, { detector }] of Object.entries(detectors)) {\n const diagram = detector(text, config2);\n if (diagram) {\n return key;\n }\n }\n throw new UnknownDiagramError(\n `No diagram type detected matching given configuration for text: ${text}`\n );\n}, \"detectType\");\nvar registerLazyLoadedDiagrams = /* @__PURE__ */ __name((...diagrams2) => {\n for (const { id, detector, loader } of diagrams2) {\n addDetector(id, detector, loader);\n }\n}, \"registerLazyLoadedDiagrams\");\nvar addDetector = /* @__PURE__ */ __name((key, detector, loader) => {\n if (detectors[key]) {\n log.warn(`Detector with key ${key} already exists. Overwriting.`);\n }\n detectors[key] = { detector, loader };\n log.debug(`Detector with key ${key} added${loader ? \" with loader\" : \"\"}`);\n}, \"addDetector\");\nvar getDiagramLoader = /* @__PURE__ */ __name((key) => {\n return detectors[key].loader;\n}, \"getDiagramLoader\");\n\n// src/assignWithDepth.ts\nvar assignWithDepth = /* @__PURE__ */ __name((dst, src, { depth = 2, clobber = false } = {}) => {\n const config2 = { depth, clobber };\n if (Array.isArray(src) && !Array.isArray(dst)) {\n src.forEach((s) => assignWithDepth(dst, s, config2));\n return dst;\n } else if (Array.isArray(src) && Array.isArray(dst)) {\n src.forEach((s) => {\n if (!dst.includes(s)) {\n dst.push(s);\n }\n });\n return dst;\n }\n if (dst === void 0 || depth <= 0) {\n if (dst !== void 0 && dst !== null && typeof dst === \"object\" && typeof src === \"object\") {\n return Object.assign(dst, src);\n } else {\n return src;\n }\n }\n if (src !== void 0 && typeof dst === \"object\" && typeof src === \"object\") {\n Object.keys(src).forEach((key) => {\n if (typeof src[key] === \"object\" && (dst[key] === void 0 || typeof dst[key] === \"object\")) {\n if (dst[key] === void 0) {\n dst[key] = Array.isArray(src[key]) ? [] : {};\n }\n dst[key] = assignWithDepth(dst[key], src[key], { depth: depth - 1, clobber });\n } else if (clobber || typeof dst[key] !== \"object\" && typeof src[key] !== \"object\") {\n dst[key] = src[key];\n }\n });\n }\n return dst;\n}, \"assignWithDepth\");\nvar assignWithDepth_default = assignWithDepth;\n\n// src/themes/theme-base.js\nimport { adjust as adjust2, darken, invert, isDark, lighten } from \"khroma\";\n\n// src/themes/erDiagram-oldHardcodedValues.ts\nvar oldAttributeBackgroundColorOdd = \"#ffffff\";\nvar oldAttributeBackgroundColorEven = \"#f2f2f2\";\n\n// src/themes/theme-helpers.js\nimport { adjust } from \"khroma\";\nvar mkBorder = /* @__PURE__ */ __name((col, darkMode) => darkMode ? adjust(col, { s: -40, l: 10 }) : adjust(col, { s: -40, l: -10 }), \"mkBorder\");\n\n// src/themes/theme-base.js\nvar Theme = class {\n static {\n __name(this, \"Theme\");\n }\n constructor() {\n this.background = \"#f4f4f4\";\n this.primaryColor = \"#fff4dd\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"#333\";\n this.THEME_COLOR_LIMIT = 12;\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n }\n updateColors() {\n this.primaryTextColor = this.primaryTextColor || (this.darkMode ? \"#eee\" : \"#333\");\n this.secondaryColor = this.secondaryColor || adjust2(this.primaryColor, { h: -120 });\n this.tertiaryColor = this.tertiaryColor || adjust2(this.primaryColor, { h: 180, l: 5 });\n this.primaryBorderColor = this.primaryBorderColor || mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = this.secondaryBorderColor || mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = this.tertiaryBorderColor || mkBorder(this.tertiaryColor, this.darkMode);\n this.noteBorderColor = this.noteBorderColor || mkBorder(this.noteBkgColor, this.darkMode);\n this.noteBkgColor = this.noteBkgColor || \"#fff5ad\";\n this.noteTextColor = this.noteTextColor || \"#333\";\n this.secondaryTextColor = this.secondaryTextColor || invert(this.secondaryColor);\n this.tertiaryTextColor = this.tertiaryTextColor || invert(this.tertiaryColor);\n this.lineColor = this.lineColor || invert(this.background);\n this.arrowheadColor = this.arrowheadColor || invert(this.background);\n this.textColor = this.textColor || this.primaryTextColor;\n this.border2 = this.border2 || this.tertiaryBorderColor;\n this.nodeBkg = this.nodeBkg || this.primaryColor;\n this.mainBkg = this.mainBkg || this.primaryColor;\n this.nodeBorder = this.nodeBorder || this.primaryBorderColor;\n this.clusterBkg = this.clusterBkg || this.tertiaryColor;\n this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor;\n this.defaultLinkColor = this.defaultLinkColor || this.lineColor;\n this.titleColor = this.titleColor || this.tertiaryTextColor;\n this.edgeLabelBackground = this.edgeLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.nodeTextColor = this.nodeTextColor || this.primaryTextColor;\n this.actorBorder = this.actorBorder || this.primaryBorderColor;\n this.actorBkg = this.actorBkg || this.mainBkg;\n this.actorTextColor = this.actorTextColor || this.primaryTextColor;\n this.actorLineColor = this.actorLineColor || this.actorBorder;\n this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg;\n this.signalColor = this.signalColor || this.textColor;\n this.signalTextColor = this.signalTextColor || this.textColor;\n this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder;\n this.labelTextColor = this.labelTextColor || this.actorTextColor;\n this.loopTextColor = this.loopTextColor || this.actorTextColor;\n this.activationBorderColor = this.activationBorderColor || darken(this.secondaryColor, 10);\n this.activationBkgColor = this.activationBkgColor || this.secondaryColor;\n this.sequenceNumberColor = this.sequenceNumberColor || invert(this.lineColor);\n this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor;\n this.altSectionBkgColor = this.altSectionBkgColor || \"white\";\n this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor;\n this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor;\n this.excludeBkgColor = this.excludeBkgColor || \"#eeeeee\";\n this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor;\n this.taskBkgColor = this.taskBkgColor || this.primaryColor;\n this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor;\n this.activeTaskBkgColor = this.activeTaskBkgColor || lighten(this.primaryColor, 23);\n this.gridColor = this.gridColor || \"lightgrey\";\n this.doneTaskBkgColor = this.doneTaskBkgColor || \"lightgrey\";\n this.doneTaskBorderColor = this.doneTaskBorderColor || \"grey\";\n this.critBorderColor = this.critBorderColor || \"#ff8888\";\n this.critBkgColor = this.critBkgColor || \"red\";\n this.todayLineColor = this.todayLineColor || \"red\";\n this.vertLineColor = this.vertLineColor || \"navy\";\n this.taskTextColor = this.taskTextColor || this.textColor;\n this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor;\n this.taskTextLightColor = this.taskTextLightColor || this.textColor;\n this.taskTextColor = this.taskTextColor || this.primaryTextColor;\n this.taskTextDarkColor = this.taskTextDarkColor || this.textColor;\n this.taskTextClickableColor = this.taskTextClickableColor || \"#003163\";\n this.personBorder = this.personBorder || this.primaryBorderColor;\n this.personBkg = this.personBkg || this.mainBkg;\n if (this.darkMode) {\n this.rowOdd = this.rowOdd || darken(this.mainBkg, 5) || \"#ffffff\";\n this.rowEven = this.rowEven || darken(this.mainBkg, 10);\n } else {\n this.rowOdd = this.rowOdd || lighten(this.mainBkg, 75) || \"#ffffff\";\n this.rowEven = this.rowEven || lighten(this.mainBkg, 5);\n }\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || this.tertiaryColor;\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.nodeBorder;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.specialStateColor = this.lineColor;\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust2(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust2(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust2(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust2(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust2(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust2(this.primaryColor, { h: 210, l: 150 });\n this.cScale9 = this.cScale9 || adjust2(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust2(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust2(this.primaryColor, { h: 330 });\n if (this.darkMode) {\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken(this[\"cScale\" + i], 75);\n }\n } else {\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken(this[\"cScale\" + i], 25);\n }\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || invert(this[\"cScale\" + i]);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n if (this.darkMode) {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || lighten(this[\"cScale\" + i], 10);\n } else {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken(this[\"cScale\" + i], 10);\n }\n }\n this.scaleLabelColor = this.scaleLabelColor || this.labelTextColor;\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n const multiplier = this.darkMode ? -4 : -1;\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust2(this.mainBkg, { h: 180, s: -15, l: multiplier * (5 + i * 3) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust2(this.mainBkg, { h: 180, s: -15, l: multiplier * (8 + i * 3) });\n }\n this.classText = this.classText || this.textColor;\n this.fillType0 = this.fillType0 || this.primaryColor;\n this.fillType1 = this.fillType1 || this.secondaryColor;\n this.fillType2 = this.fillType2 || adjust2(this.primaryColor, { h: 64 });\n this.fillType3 = this.fillType3 || adjust2(this.secondaryColor, { h: 64 });\n this.fillType4 = this.fillType4 || adjust2(this.primaryColor, { h: -64 });\n this.fillType5 = this.fillType5 || adjust2(this.secondaryColor, { h: -64 });\n this.fillType6 = this.fillType6 || adjust2(this.primaryColor, { h: 128 });\n this.fillType7 = this.fillType7 || adjust2(this.secondaryColor, { h: 128 });\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || this.tertiaryColor;\n this.pie4 = this.pie4 || adjust2(this.primaryColor, { l: -10 });\n this.pie5 = this.pie5 || adjust2(this.secondaryColor, { l: -10 });\n this.pie6 = this.pie6 || adjust2(this.tertiaryColor, { l: -10 });\n this.pie7 = this.pie7 || adjust2(this.primaryColor, { h: 60, l: -10 });\n this.pie8 = this.pie8 || adjust2(this.primaryColor, { h: -60, l: -10 });\n this.pie9 = this.pie9 || adjust2(this.primaryColor, { h: 120, l: 0 });\n this.pie10 = this.pie10 || adjust2(this.primaryColor, { h: 60, l: -20 });\n this.pie11 = this.pie11 || adjust2(this.primaryColor, { h: -60, l: -20 });\n this.pie12 = this.pie12 || adjust2(this.primaryColor, { h: 120, l: -10 });\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.radar = {\n axisColor: this.radar?.axisColor || this.lineColor,\n axisStrokeWidth: this.radar?.axisStrokeWidth || 2,\n axisLabelFontSize: this.radar?.axisLabelFontSize || 12,\n curveOpacity: this.radar?.curveOpacity || 0.5,\n curveStrokeWidth: this.radar?.curveStrokeWidth || 2,\n graticuleColor: this.radar?.graticuleColor || \"#DEDEDE\",\n graticuleStrokeWidth: this.radar?.graticuleStrokeWidth || 1,\n graticuleOpacity: this.radar?.graticuleOpacity || 0.3,\n legendBoxSize: this.radar?.legendBoxSize || 12,\n legendFontSize: this.radar?.legendFontSize || 12\n };\n this.archEdgeColor = this.archEdgeColor || \"#777\";\n this.archEdgeArrowColor = this.archEdgeArrowColor || \"#777\";\n this.archEdgeWidth = this.archEdgeWidth || \"3\";\n this.archGroupBorderColor = this.archGroupBorderColor || \"#000\";\n this.archGroupBorderWidth = this.archGroupBorderWidth || \"2px\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust2(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust2(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust2(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust2(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust2(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust2(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.xyChart = {\n backgroundColor: this.xyChart?.backgroundColor || this.background,\n titleColor: this.xyChart?.titleColor || this.primaryTextColor,\n xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,\n xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,\n xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,\n xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,\n yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,\n yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,\n yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,\n yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,\n plotColorPalette: this.xyChart?.plotColorPalette || \"#FFF4DD,#FFD8B1,#FFA07A,#ECEFF1,#D6DBDF,#C3E0A8,#FFB6A4,#FFD74D,#738FA7,#FFFFF0\"\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust2(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust2(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust2(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust2(this.primaryColor, { h: 60 });\n this.git7 = this.git7 || adjust2(this.primaryColor, { h: 120 });\n if (this.darkMode) {\n this.git0 = lighten(this.git0, 25);\n this.git1 = lighten(this.git1, 25);\n this.git2 = lighten(this.git2, 25);\n this.git3 = lighten(this.git3, 25);\n this.git4 = lighten(this.git4, 25);\n this.git5 = lighten(this.git5, 25);\n this.git6 = lighten(this.git6, 25);\n this.git7 = lighten(this.git7, 25);\n } else {\n this.git0 = darken(this.git0, 25);\n this.git1 = darken(this.git1, 25);\n this.git2 = darken(this.git2, 25);\n this.git3 = darken(this.git3, 25);\n this.git4 = darken(this.git4, 25);\n this.git5 = darken(this.git5, 25);\n this.git6 = darken(this.git6, 25);\n this.git7 = darken(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || invert(this.git0);\n this.gitInv1 = this.gitInv1 || invert(this.git1);\n this.gitInv2 = this.gitInv2 || invert(this.git2);\n this.gitInv3 = this.gitInv3 || invert(this.git3);\n this.gitInv4 = this.gitInv4 || invert(this.git4);\n this.gitInv5 = this.gitInv5 || invert(this.git5);\n this.gitInv6 = this.gitInv6 || invert(this.git6);\n this.gitInv7 = this.gitInv7 || invert(this.git7);\n this.branchLabelColor = this.branchLabelColor || (this.darkMode ? \"black\" : this.labelTextColor);\n this.gitBranchLabel0 = this.gitBranchLabel0 || this.branchLabelColor;\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.branchLabelColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.branchLabelColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || this.branchLabelColor;\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.branchLabelColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.branchLabelColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.branchLabelColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.branchLabelColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nvar getThemeVariables = /* @__PURE__ */ __name((userOverrides) => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n return theme;\n}, \"getThemeVariables\");\n\n// src/themes/theme-dark.js\nimport { adjust as adjust3, darken as darken2, invert as invert2, isDark as isDark2, lighten as lighten2, rgba } from \"khroma\";\nvar Theme2 = class {\n static {\n __name(this, \"Theme\");\n }\n constructor() {\n this.background = \"#333\";\n this.primaryColor = \"#1f2020\";\n this.secondaryColor = lighten2(this.primaryColor, 16);\n this.tertiaryColor = adjust3(this.primaryColor, { h: -160 });\n this.primaryBorderColor = invert2(this.background);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert2(this.primaryColor);\n this.secondaryTextColor = invert2(this.secondaryColor);\n this.tertiaryTextColor = invert2(this.tertiaryColor);\n this.lineColor = invert2(this.background);\n this.textColor = invert2(this.background);\n this.mainBkg = \"#1f2020\";\n this.secondBkg = \"calculated\";\n this.mainContrastColor = \"lightgrey\";\n this.darkTextColor = lighten2(invert2(\"#323D47\"), 10);\n this.lineColor = \"calculated\";\n this.border1 = \"#ccc\";\n this.border2 = rgba(255, 255, 255, 0.25);\n this.arrowheadColor = \"calculated\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.labelBackground = \"#181818\";\n this.textColor = \"#ccc\";\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"#F9FFFE\";\n this.edgeLabelBackground = \"calculated\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"calculated\";\n this.actorLineColor = \"calculated\";\n this.signalColor = \"calculated\";\n this.signalTextColor = \"calculated\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"calculated\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"calculated\";\n this.activationBkgColor = \"calculated\";\n this.sequenceNumberColor = \"black\";\n this.sectionBkgColor = darken2(\"#EAE8D9\", 30);\n this.altSectionBkgColor = \"calculated\";\n this.sectionBkgColor2 = \"#EAE8D9\";\n this.excludeBkgColor = darken2(this.sectionBkgColor, 10);\n this.taskBorderColor = rgba(255, 255, 255, 70);\n this.taskBkgColor = \"calculated\";\n this.taskTextColor = \"calculated\";\n this.taskTextLightColor = \"calculated\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = rgba(255, 255, 255, 50);\n this.activeTaskBkgColor = \"#81B1DB\";\n this.gridColor = \"calculated\";\n this.doneTaskBkgColor = \"calculated\";\n this.doneTaskBorderColor = \"grey\";\n this.critBorderColor = \"#E83737\";\n this.critBkgColor = \"#E83737\";\n this.taskTextDarkColor = \"calculated\";\n this.todayLineColor = \"#DB5757\";\n this.vertLineColor = \"#00BFFF\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.archEdgeColor = \"calculated\";\n this.archEdgeArrowColor = \"calculated\";\n this.archEdgeWidth = \"3\";\n this.archGroupBorderColor = this.primaryBorderColor;\n this.archGroupBorderWidth = \"2px\";\n this.rowOdd = this.rowOdd || lighten2(this.mainBkg, 5) || \"#ffffff\";\n this.rowEven = this.rowEven || darken2(this.mainBkg, 10);\n this.labelColor = \"calculated\";\n this.errorBkgColor = \"#a44141\";\n this.errorTextColor = \"#ddd\";\n }\n updateColors() {\n this.secondBkg = lighten2(this.mainBkg, 16);\n this.lineColor = this.mainContrastColor;\n this.arrowheadColor = this.mainContrastColor;\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.edgeLabelBackground = lighten2(this.labelBackground, 25);\n this.actorBorder = this.border1;\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.mainContrastColor;\n this.actorLineColor = this.actorBorder;\n this.signalColor = this.mainContrastColor;\n this.signalTextColor = this.mainContrastColor;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.mainContrastColor;\n this.loopTextColor = this.mainContrastColor;\n this.noteBorderColor = this.secondaryBorderColor;\n this.noteBkgColor = this.secondBkg;\n this.noteTextColor = this.secondaryTextColor;\n this.activationBorderColor = this.border1;\n this.activationBkgColor = this.secondBkg;\n this.altSectionBkgColor = this.background;\n this.taskBkgColor = lighten2(this.mainBkg, 23);\n this.taskTextColor = this.darkTextColor;\n this.taskTextLightColor = this.mainContrastColor;\n this.taskTextOutsideColor = this.taskTextLightColor;\n this.gridColor = this.mainContrastColor;\n this.doneTaskBkgColor = this.mainContrastColor;\n this.taskTextDarkColor = this.darkTextColor;\n this.archEdgeColor = this.lineColor;\n this.archEdgeArrowColor = this.lineColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#555\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = \"#f4f4f4\";\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust3(this.primaryColor, { h: 64 });\n this.fillType3 = adjust3(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust3(this.primaryColor, { h: -64 });\n this.fillType5 = adjust3(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust3(this.primaryColor, { h: 128 });\n this.fillType7 = adjust3(this.secondaryColor, { h: 128 });\n this.cScale1 = this.cScale1 || \"#0b0000\";\n this.cScale2 = this.cScale2 || \"#4d1037\";\n this.cScale3 = this.cScale3 || \"#3f5258\";\n this.cScale4 = this.cScale4 || \"#4f2f1b\";\n this.cScale5 = this.cScale5 || \"#6e0a0a\";\n this.cScale6 = this.cScale6 || \"#3b0048\";\n this.cScale7 = this.cScale7 || \"#995a01\";\n this.cScale8 = this.cScale8 || \"#154706\";\n this.cScale9 = this.cScale9 || \"#161722\";\n this.cScale10 = this.cScale10 || \"#00296f\";\n this.cScale11 = this.cScale11 || \"#01629c\";\n this.cScale12 = this.cScale12 || \"#010029\";\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust3(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust3(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust3(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust3(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust3(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust3(this.primaryColor, { h: 210 });\n this.cScale9 = this.cScale9 || adjust3(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust3(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust3(this.primaryColor, { h: 330 });\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || invert2(this[\"cScale\" + i]);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || lighten2(this[\"cScale\" + i], 10);\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust3(this.mainBkg, { h: 30, s: -30, l: -(-10 + i * 4) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust3(this.mainBkg, { h: 30, s: -30, l: -(-7 + i * 4) });\n }\n this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? \"black\" : this.labelTextColor);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"pie\" + i] = this[\"cScale\" + i];\n }\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust3(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust3(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust3(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust3(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust3(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust3(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark2(this.quadrant1Fill) ? lighten2(this.quadrant1Fill) : darken2(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.xyChart = {\n backgroundColor: this.xyChart?.backgroundColor || this.background,\n titleColor: this.xyChart?.titleColor || this.primaryTextColor,\n xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,\n xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,\n xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,\n xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,\n yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,\n yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,\n yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,\n yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,\n plotColorPalette: this.xyChart?.plotColorPalette || \"#3498db,#2ecc71,#e74c3c,#f1c40f,#bdc3c7,#ffffff,#34495e,#9b59b6,#1abc9c,#e67e22\"\n };\n this.packet = {\n startByteColor: this.primaryTextColor,\n endByteColor: this.primaryTextColor,\n labelColor: this.primaryTextColor,\n titleColor: this.primaryTextColor,\n blockStrokeColor: this.primaryTextColor,\n blockFillColor: this.background\n };\n this.radar = {\n axisColor: this.radar?.axisColor || this.lineColor,\n axisStrokeWidth: this.radar?.axisStrokeWidth || 2,\n axisLabelFontSize: this.radar?.axisLabelFontSize || 12,\n curveOpacity: this.radar?.curveOpacity || 0.5,\n curveStrokeWidth: this.radar?.curveStrokeWidth || 2,\n graticuleColor: this.radar?.graticuleColor || \"#DEDEDE\",\n graticuleStrokeWidth: this.radar?.graticuleStrokeWidth || 1,\n graticuleOpacity: this.radar?.graticuleOpacity || 0.3,\n legendBoxSize: this.radar?.legendBoxSize || 12,\n legendFontSize: this.radar?.legendFontSize || 12\n };\n this.classText = this.primaryTextColor;\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken2(this.secondaryColor, 30) : this.secondaryColor);\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = lighten2(this.secondaryColor, 20);\n this.git1 = lighten2(this.pie2 || this.secondaryColor, 20);\n this.git2 = lighten2(this.pie3 || this.tertiaryColor, 20);\n this.git3 = lighten2(this.pie4 || adjust3(this.primaryColor, { h: -30 }), 20);\n this.git4 = lighten2(this.pie5 || adjust3(this.primaryColor, { h: -60 }), 20);\n this.git5 = lighten2(this.pie6 || adjust3(this.primaryColor, { h: -90 }), 10);\n this.git6 = lighten2(this.pie7 || adjust3(this.primaryColor, { h: 60 }), 10);\n this.git7 = lighten2(this.pie8 || adjust3(this.primaryColor, { h: 120 }), 20);\n this.gitInv0 = this.gitInv0 || invert2(this.git0);\n this.gitInv1 = this.gitInv1 || invert2(this.git1);\n this.gitInv2 = this.gitInv2 || invert2(this.git2);\n this.gitInv3 = this.gitInv3 || invert2(this.git3);\n this.gitInv4 = this.gitInv4 || invert2(this.git4);\n this.gitInv5 = this.gitInv5 || invert2(this.git5);\n this.gitInv6 = this.gitInv6 || invert2(this.git6);\n this.gitInv7 = this.gitInv7 || invert2(this.git7);\n this.gitBranchLabel0 = this.gitBranchLabel0 || invert2(this.labelTextColor);\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || invert2(this.labelTextColor);\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || lighten2(this.background, 12);\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || lighten2(this.background, 2);\n this.nodeBorder = this.nodeBorder || \"#999\";\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nvar getThemeVariables2 = /* @__PURE__ */ __name((userOverrides) => {\n const theme = new Theme2();\n theme.calculate(userOverrides);\n return theme;\n}, \"getThemeVariables\");\n\n// src/themes/theme-default.js\nimport { invert as invert3, lighten as lighten3, rgba as rgba2, adjust as adjust4, darken as darken3, isDark as isDark3 } from \"khroma\";\nvar Theme3 = class {\n static {\n __name(this, \"Theme\");\n }\n constructor() {\n this.background = \"#f4f4f4\";\n this.primaryColor = \"#ECECFF\";\n this.secondaryColor = adjust4(this.primaryColor, { h: 120 });\n this.secondaryColor = \"#ffffde\";\n this.tertiaryColor = adjust4(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert3(this.primaryColor);\n this.secondaryTextColor = invert3(this.secondaryColor);\n this.tertiaryTextColor = invert3(this.tertiaryColor);\n this.lineColor = invert3(this.background);\n this.textColor = invert3(this.background);\n this.background = \"white\";\n this.mainBkg = \"#ECECFF\";\n this.secondBkg = \"#ffffde\";\n this.lineColor = \"#333333\";\n this.border1 = \"#9370DB\";\n this.border2 = \"#aaaa33\";\n this.arrowheadColor = \"#333333\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.labelBackground = \"rgba(232,232,232, 0.8)\";\n this.textColor = \"#333\";\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"calculated\";\n this.edgeLabelBackground = \"calculated\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"black\";\n this.actorLineColor = \"calculated\";\n this.signalColor = \"calculated\";\n this.signalTextColor = \"calculated\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"calculated\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"#666\";\n this.activationBkgColor = \"#f4f4f4\";\n this.sequenceNumberColor = \"white\";\n this.sectionBkgColor = \"calculated\";\n this.altSectionBkgColor = \"calculated\";\n this.sectionBkgColor2 = \"calculated\";\n this.excludeBkgColor = \"#eeeeee\";\n this.taskBorderColor = \"calculated\";\n this.taskBkgColor = \"calculated\";\n this.taskTextLightColor = \"calculated\";\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = \"calculated\";\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.taskTextClickableColor = \"calculated\";\n this.activeTaskBorderColor = \"calculated\";\n this.activeTaskBkgColor = \"calculated\";\n this.gridColor = \"calculated\";\n this.doneTaskBkgColor = \"calculated\";\n this.doneTaskBorderColor = \"calculated\";\n this.critBorderColor = \"calculated\";\n this.critBkgColor = \"calculated\";\n this.todayLineColor = \"calculated\";\n this.vertLineColor = \"calculated\";\n this.sectionBkgColor = rgba2(102, 102, 255, 0.49);\n this.altSectionBkgColor = \"white\";\n this.sectionBkgColor2 = \"#fff400\";\n this.taskBorderColor = \"#534fbc\";\n this.taskBkgColor = \"#8a90dd\";\n this.taskTextLightColor = \"white\";\n this.taskTextColor = \"calculated\";\n this.taskTextDarkColor = \"black\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = \"#534fbc\";\n this.activeTaskBkgColor = \"#bfc7ff\";\n this.gridColor = \"lightgrey\";\n this.doneTaskBkgColor = \"lightgrey\";\n this.doneTaskBorderColor = \"grey\";\n this.critBorderColor = \"#ff8888\";\n this.critBkgColor = \"red\";\n this.todayLineColor = \"red\";\n this.vertLineColor = \"navy\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.archEdgeColor = \"calculated\";\n this.archEdgeArrowColor = \"calculated\";\n this.archEdgeWidth = \"3\";\n this.archGroupBorderColor = this.primaryBorderColor;\n this.archGroupBorderWidth = \"2px\";\n this.rowOdd = \"calculated\";\n this.rowEven = \"calculated\";\n this.labelColor = \"black\";\n this.errorBkgColor = \"#552222\";\n this.errorTextColor = \"#552222\";\n this.updateColors();\n }\n updateColors() {\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust4(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust4(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust4(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust4(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust4(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust4(this.primaryColor, { h: 210 });\n this.cScale9 = this.cScale9 || adjust4(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust4(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust4(this.primaryColor, { h: 330 });\n this[\"cScalePeer1\"] = this[\"cScalePeer1\"] || darken3(this.secondaryColor, 45);\n this[\"cScalePeer2\"] = this[\"cScalePeer2\"] || darken3(this.tertiaryColor, 40);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken3(this[\"cScale\" + i], 10);\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken3(this[\"cScale\" + i], 25);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || adjust4(this[\"cScale\" + i], { h: 180 });\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust4(this.mainBkg, { h: 30, l: -(5 + i * 5) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust4(this.mainBkg, { h: 30, l: -(7 + i * 5) });\n }\n this.scaleLabelColor = this.scaleLabelColor !== \"calculated\" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;\n if (this.labelTextColor !== \"calculated\") {\n this.cScaleLabel0 = this.cScaleLabel0 || invert3(this.labelTextColor);\n this.cScaleLabel3 = this.cScaleLabel3 || invert3(this.labelTextColor);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.labelTextColor;\n }\n }\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.textColor;\n this.edgeLabelBackground = this.labelBackground;\n this.actorBorder = lighten3(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.signalColor = this.textColor;\n this.signalTextColor = this.textColor;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n this.actorLineColor = this.actorBorder;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.archEdgeColor = this.lineColor;\n this.archEdgeArrowColor = this.lineColor;\n this.rowOdd = this.rowOdd || lighten3(this.primaryColor, 75) || \"#ffffff\";\n this.rowEven = this.rowEven || lighten3(this.primaryColor, 1);\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#f0f0f0\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.nodeBorder;\n this.specialStateColor = this.lineColor;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.classText = this.primaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust4(this.primaryColor, { h: 64 });\n this.fillType3 = adjust4(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust4(this.primaryColor, { h: -64 });\n this.fillType5 = adjust4(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust4(this.primaryColor, { h: 128 });\n this.fillType7 = adjust4(this.secondaryColor, { h: 128 });\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || adjust4(this.tertiaryColor, { l: -40 });\n this.pie4 = this.pie4 || adjust4(this.primaryColor, { l: -10 });\n this.pie5 = this.pie5 || adjust4(this.secondaryColor, { l: -30 });\n this.pie6 = this.pie6 || adjust4(this.tertiaryColor, { l: -20 });\n this.pie7 = this.pie7 || adjust4(this.primaryColor, { h: 60, l: -20 });\n this.pie8 = this.pie8 || adjust4(this.primaryColor, { h: -60, l: -40 });\n this.pie9 = this.pie9 || adjust4(this.primaryColor, { h: 120, l: -40 });\n this.pie10 = this.pie10 || adjust4(this.primaryColor, { h: 60, l: -40 });\n this.pie11 = this.pie11 || adjust4(this.primaryColor, { h: -90, l: -40 });\n this.pie12 = this.pie12 || adjust4(this.primaryColor, { h: 120, l: -30 });\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust4(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust4(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust4(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust4(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust4(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust4(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark3(this.quadrant1Fill) ? lighten3(this.quadrant1Fill) : darken3(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.radar = {\n axisColor: this.radar?.axisColor || this.lineColor,\n axisStrokeWidth: this.radar?.axisStrokeWidth || 2,\n axisLabelFontSize: this.radar?.axisLabelFontSize || 12,\n curveOpacity: this.radar?.curveOpacity || 0.5,\n curveStrokeWidth: this.radar?.curveStrokeWidth || 2,\n graticuleColor: this.radar?.graticuleColor || \"#DEDEDE\",\n graticuleStrokeWidth: this.radar?.graticuleStrokeWidth || 1,\n graticuleOpacity: this.radar?.graticuleOpacity || 0.3,\n legendBoxSize: this.radar?.legendBoxSize || 12,\n legendFontSize: this.radar?.legendFontSize || 12\n };\n this.xyChart = {\n backgroundColor: this.xyChart?.backgroundColor || this.background,\n titleColor: this.xyChart?.titleColor || this.primaryTextColor,\n xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,\n xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,\n xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,\n xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,\n yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,\n yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,\n yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,\n yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,\n plotColorPalette: this.xyChart?.plotColorPalette || \"#ECECFF,#8493A6,#FFC3A0,#DCDDE1,#B8E994,#D1A36F,#C3CDE6,#FFB6C1,#496078,#F8F3E3\"\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.labelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust4(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust4(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust4(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust4(this.primaryColor, { h: 60 });\n this.git7 = this.git7 || adjust4(this.primaryColor, { h: 120 });\n if (this.darkMode) {\n this.git0 = lighten3(this.git0, 25);\n this.git1 = lighten3(this.git1, 25);\n this.git2 = lighten3(this.git2, 25);\n this.git3 = lighten3(this.git3, 25);\n this.git4 = lighten3(this.git4, 25);\n this.git5 = lighten3(this.git5, 25);\n this.git6 = lighten3(this.git6, 25);\n this.git7 = lighten3(this.git7, 25);\n } else {\n this.git0 = darken3(this.git0, 25);\n this.git1 = darken3(this.git1, 25);\n this.git2 = darken3(this.git2, 25);\n this.git3 = darken3(this.git3, 25);\n this.git4 = darken3(this.git4, 25);\n this.git5 = darken3(this.git5, 25);\n this.git6 = darken3(this.git6, 25);\n this.git7 = darken3(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || darken3(invert3(this.git0), 25);\n this.gitInv1 = this.gitInv1 || invert3(this.git1);\n this.gitInv2 = this.gitInv2 || invert3(this.git2);\n this.gitInv3 = this.gitInv3 || invert3(this.git3);\n this.gitInv4 = this.gitInv4 || invert3(this.git4);\n this.gitInv5 = this.gitInv5 || invert3(this.git5);\n this.gitInv6 = this.gitInv6 || invert3(this.git6);\n this.gitInv7 = this.gitInv7 || invert3(this.git7);\n this.gitBranchLabel0 = this.gitBranchLabel0 || invert3(this.labelTextColor);\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || invert3(this.labelTextColor);\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n Object.keys(this).forEach((k) => {\n if (this[k] === \"calculated\") {\n this[k] = void 0;\n }\n });\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nvar getThemeVariables3 = /* @__PURE__ */ __name((userOverrides) => {\n const theme = new Theme3();\n theme.calculate(userOverrides);\n return theme;\n}, \"getThemeVariables\");\n\n// src/themes/theme-forest.js\nimport { adjust as adjust5, darken as darken4, invert as invert4, isDark as isDark4, lighten as lighten4 } from \"khroma\";\nvar Theme4 = class {\n static {\n __name(this, \"Theme\");\n }\n constructor() {\n this.background = \"#f4f4f4\";\n this.primaryColor = \"#cde498\";\n this.secondaryColor = \"#cdffb2\";\n this.background = \"white\";\n this.mainBkg = \"#cde498\";\n this.secondBkg = \"#cdffb2\";\n this.lineColor = \"green\";\n this.border1 = \"#13540c\";\n this.border2 = \"#6eaa49\";\n this.arrowheadColor = \"green\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.tertiaryColor = lighten4(\"#cde498\", 10);\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert4(this.primaryColor);\n this.secondaryTextColor = invert4(this.secondaryColor);\n this.tertiaryTextColor = invert4(this.primaryColor);\n this.lineColor = invert4(this.background);\n this.textColor = invert4(this.background);\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"#333\";\n this.edgeLabelBackground = \"#e8e8e8\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"black\";\n this.actorLineColor = \"calculated\";\n this.signalColor = \"#333\";\n this.signalTextColor = \"#333\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"#326932\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"#fff5ad\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"#666\";\n this.activationBkgColor = \"#f4f4f4\";\n this.sequenceNumberColor = \"white\";\n this.sectionBkgColor = \"#6eaa49\";\n this.altSectionBkgColor = \"white\";\n this.sectionBkgColor2 = \"#6eaa49\";\n this.excludeBkgColor = \"#eeeeee\";\n this.taskBorderColor = \"calculated\";\n this.taskBkgColor = \"#487e3a\";\n this.taskTextLightColor = \"white\";\n this.taskTextColor = \"calculated\";\n this.taskTextDarkColor = \"black\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = \"calculated\";\n this.activeTaskBkgColor = \"calculated\";\n this.gridColor = \"lightgrey\";\n this.doneTaskBkgColor = \"lightgrey\";\n this.doneTaskBorderColor = \"grey\";\n this.critBorderColor = \"#ff8888\";\n this.critBkgColor = \"red\";\n this.todayLineColor = \"red\";\n this.vertLineColor = \"#00BFFF\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.archEdgeColor = \"calculated\";\n this.archEdgeArrowColor = \"calculated\";\n this.archEdgeWidth = \"3\";\n this.archGroupBorderColor = this.primaryBorderColor;\n this.archGroupBorderWidth = \"2px\";\n this.labelColor = \"black\";\n this.errorBkgColor = \"#552222\";\n this.errorTextColor = \"#552222\";\n }\n updateColors() {\n this.actorBorder = darken4(this.mainBkg, 20);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n this.actorLineColor = this.actorBorder;\n this.cScale0 = this.cScale0 || this.primaryColor;\n this.cScale1 = this.cScale1 || this.secondaryColor;\n this.cScale2 = this.cScale2 || this.tertiaryColor;\n this.cScale3 = this.cScale3 || adjust5(this.primaryColor, { h: 30 });\n this.cScale4 = this.cScale4 || adjust5(this.primaryColor, { h: 60 });\n this.cScale5 = this.cScale5 || adjust5(this.primaryColor, { h: 90 });\n this.cScale6 = this.cScale6 || adjust5(this.primaryColor, { h: 120 });\n this.cScale7 = this.cScale7 || adjust5(this.primaryColor, { h: 150 });\n this.cScale8 = this.cScale8 || adjust5(this.primaryColor, { h: 210 });\n this.cScale9 = this.cScale9 || adjust5(this.primaryColor, { h: 270 });\n this.cScale10 = this.cScale10 || adjust5(this.primaryColor, { h: 300 });\n this.cScale11 = this.cScale11 || adjust5(this.primaryColor, { h: 330 });\n this[\"cScalePeer1\"] = this[\"cScalePeer1\"] || darken4(this.secondaryColor, 45);\n this[\"cScalePeer2\"] = this[\"cScalePeer2\"] || darken4(this.tertiaryColor, 40);\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScale\" + i] = darken4(this[\"cScale\" + i], 10);\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken4(this[\"cScale\" + i], 25);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || adjust5(this[\"cScale\" + i], { h: 180 });\n }\n this.scaleLabelColor = this.scaleLabelColor !== \"calculated\" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust5(this.mainBkg, { h: 30, s: -30, l: -(5 + i * 5) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust5(this.mainBkg, { h: 30, s: -30, l: -(8 + i * 5) });\n }\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.taskBorderColor = this.border1;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n this.archEdgeColor = this.lineColor;\n this.archEdgeArrowColor = this.lineColor;\n this.rowOdd = this.rowOdd || lighten4(this.mainBkg, 75) || \"#ffffff\";\n this.rowEven = this.rowEven || lighten4(this.mainBkg, 20);\n this.transitionColor = this.transitionColor || this.lineColor;\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#f0f0f0\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.compositeBorder = this.compositeBorder || this.nodeBorder;\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = this.lineColor;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.transitionColor = this.transitionColor || this.lineColor;\n this.classText = this.primaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust5(this.primaryColor, { h: 64 });\n this.fillType3 = adjust5(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust5(this.primaryColor, { h: -64 });\n this.fillType5 = adjust5(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust5(this.primaryColor, { h: 128 });\n this.fillType7 = adjust5(this.secondaryColor, { h: 128 });\n this.pie1 = this.pie1 || this.primaryColor;\n this.pie2 = this.pie2 || this.secondaryColor;\n this.pie3 = this.pie3 || this.tertiaryColor;\n this.pie4 = this.pie4 || adjust5(this.primaryColor, { l: -30 });\n this.pie5 = this.pie5 || adjust5(this.secondaryColor, { l: -30 });\n this.pie6 = this.pie6 || adjust5(this.tertiaryColor, { h: 40, l: -40 });\n this.pie7 = this.pie7 || adjust5(this.primaryColor, { h: 60, l: -10 });\n this.pie8 = this.pie8 || adjust5(this.primaryColor, { h: -60, l: -10 });\n this.pie9 = this.pie9 || adjust5(this.primaryColor, { h: 120, l: 0 });\n this.pie10 = this.pie10 || adjust5(this.primaryColor, { h: 60, l: -50 });\n this.pie11 = this.pie11 || adjust5(this.primaryColor, { h: -60, l: -50 });\n this.pie12 = this.pie12 || adjust5(this.primaryColor, { h: 120, l: -50 });\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust5(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust5(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust5(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust5(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust5(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust5(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark4(this.quadrant1Fill) ? lighten4(this.quadrant1Fill) : darken4(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.packet = {\n startByteColor: this.primaryTextColor,\n endByteColor: this.primaryTextColor,\n labelColor: this.primaryTextColor,\n titleColor: this.primaryTextColor,\n blockStrokeColor: this.primaryTextColor,\n blockFillColor: this.mainBkg\n };\n this.radar = {\n axisColor: this.radar?.axisColor || this.lineColor,\n axisStrokeWidth: this.radar?.axisStrokeWidth || 2,\n axisLabelFontSize: this.radar?.axisLabelFontSize || 12,\n curveOpacity: this.radar?.curveOpacity || 0.5,\n curveStrokeWidth: this.radar?.curveStrokeWidth || 2,\n graticuleColor: this.radar?.graticuleColor || \"#DEDEDE\",\n graticuleStrokeWidth: this.radar?.graticuleStrokeWidth || 1,\n graticuleOpacity: this.radar?.graticuleOpacity || 0.3,\n legendBoxSize: this.radar?.legendBoxSize || 12,\n legendFontSize: this.radar?.legendFontSize || 12\n };\n this.xyChart = {\n backgroundColor: this.xyChart?.backgroundColor || this.background,\n titleColor: this.xyChart?.titleColor || this.primaryTextColor,\n xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,\n xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,\n xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,\n xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,\n yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,\n yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,\n yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,\n yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,\n plotColorPalette: this.xyChart?.plotColorPalette || \"#CDE498,#FF6B6B,#A0D2DB,#D7BDE2,#F0F0F0,#FFC3A0,#7FD8BE,#FF9A8B,#FAF3E0,#FFF176\"\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = this.git0 || this.primaryColor;\n this.git1 = this.git1 || this.secondaryColor;\n this.git2 = this.git2 || this.tertiaryColor;\n this.git3 = this.git3 || adjust5(this.primaryColor, { h: -30 });\n this.git4 = this.git4 || adjust5(this.primaryColor, { h: -60 });\n this.git5 = this.git5 || adjust5(this.primaryColor, { h: -90 });\n this.git6 = this.git6 || adjust5(this.primaryColor, { h: 60 });\n this.git7 = this.git7 || adjust5(this.primaryColor, { h: 120 });\n if (this.darkMode) {\n this.git0 = lighten4(this.git0, 25);\n this.git1 = lighten4(this.git1, 25);\n this.git2 = lighten4(this.git2, 25);\n this.git3 = lighten4(this.git3, 25);\n this.git4 = lighten4(this.git4, 25);\n this.git5 = lighten4(this.git5, 25);\n this.git6 = lighten4(this.git6, 25);\n this.git7 = lighten4(this.git7, 25);\n } else {\n this.git0 = darken4(this.git0, 25);\n this.git1 = darken4(this.git1, 25);\n this.git2 = darken4(this.git2, 25);\n this.git3 = darken4(this.git3, 25);\n this.git4 = darken4(this.git4, 25);\n this.git5 = darken4(this.git5, 25);\n this.git6 = darken4(this.git6, 25);\n this.git7 = darken4(this.git7, 25);\n }\n this.gitInv0 = this.gitInv0 || invert4(this.git0);\n this.gitInv1 = this.gitInv1 || invert4(this.git1);\n this.gitInv2 = this.gitInv2 || invert4(this.git2);\n this.gitInv3 = this.gitInv3 || invert4(this.git3);\n this.gitInv4 = this.gitInv4 || invert4(this.git4);\n this.gitInv5 = this.gitInv5 || invert4(this.git5);\n this.gitInv6 = this.gitInv6 || invert4(this.git6);\n this.gitInv7 = this.gitInv7 || invert4(this.git7);\n this.gitBranchLabel0 = this.gitBranchLabel0 || invert4(this.labelTextColor);\n this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;\n this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;\n this.gitBranchLabel3 = this.gitBranchLabel3 || invert4(this.labelTextColor);\n this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;\n this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;\n this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;\n this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nvar getThemeVariables4 = /* @__PURE__ */ __name((userOverrides) => {\n const theme = new Theme4();\n theme.calculate(userOverrides);\n return theme;\n}, \"getThemeVariables\");\n\n// src/themes/theme-neutral.js\nimport { invert as invert5, darken as darken5, lighten as lighten5, adjust as adjust6, isDark as isDark5 } from \"khroma\";\nvar Theme5 = class {\n static {\n __name(this, \"Theme\");\n }\n constructor() {\n this.primaryColor = \"#eee\";\n this.contrast = \"#707070\";\n this.secondaryColor = lighten5(this.contrast, 55);\n this.background = \"#ffffff\";\n this.tertiaryColor = adjust6(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert5(this.primaryColor);\n this.secondaryTextColor = invert5(this.secondaryColor);\n this.tertiaryTextColor = invert5(this.tertiaryColor);\n this.lineColor = invert5(this.background);\n this.textColor = invert5(this.background);\n this.mainBkg = \"#eee\";\n this.secondBkg = \"calculated\";\n this.lineColor = \"#666\";\n this.border1 = \"#999\";\n this.border2 = \"calculated\";\n this.note = \"#ffa\";\n this.text = \"#333\";\n this.critical = \"#d42\";\n this.done = \"#bbb\";\n this.arrowheadColor = \"#333333\";\n this.fontFamily = '\"trebuchet ms\", verdana, arial, sans-serif';\n this.fontSize = \"16px\";\n this.THEME_COLOR_LIMIT = 12;\n this.nodeBkg = \"calculated\";\n this.nodeBorder = \"calculated\";\n this.clusterBkg = \"calculated\";\n this.clusterBorder = \"calculated\";\n this.defaultLinkColor = \"calculated\";\n this.titleColor = \"calculated\";\n this.edgeLabelBackground = \"white\";\n this.actorBorder = \"calculated\";\n this.actorBkg = \"calculated\";\n this.actorTextColor = \"calculated\";\n this.actorLineColor = this.actorBorder;\n this.signalColor = \"calculated\";\n this.signalTextColor = \"calculated\";\n this.labelBoxBkgColor = \"calculated\";\n this.labelBoxBorderColor = \"calculated\";\n this.labelTextColor = \"calculated\";\n this.loopTextColor = \"calculated\";\n this.noteBorderColor = \"calculated\";\n this.noteBkgColor = \"calculated\";\n this.noteTextColor = \"calculated\";\n this.activationBorderColor = \"#666\";\n this.activationBkgColor = \"#f4f4f4\";\n this.sequenceNumberColor = \"white\";\n this.sectionBkgColor = \"calculated\";\n this.altSectionBkgColor = \"white\";\n this.sectionBkgColor2 = \"calculated\";\n this.excludeBkgColor = \"#eeeeee\";\n this.taskBorderColor = \"calculated\";\n this.taskBkgColor = \"calculated\";\n this.taskTextLightColor = \"white\";\n this.taskTextColor = \"calculated\";\n this.taskTextDarkColor = \"calculated\";\n this.taskTextOutsideColor = \"calculated\";\n this.taskTextClickableColor = \"#003163\";\n this.activeTaskBorderColor = \"calculated\";\n this.activeTaskBkgColor = \"calculated\";\n this.gridColor = \"calculated\";\n this.doneTaskBkgColor = \"calculated\";\n this.doneTaskBorderColor = \"calculated\";\n this.critBkgColor = \"calculated\";\n this.critBorderColor = \"calculated\";\n this.todayLineColor = \"calculated\";\n this.vertLineColor = \"calculated\";\n this.personBorder = this.primaryBorderColor;\n this.personBkg = this.mainBkg;\n this.archEdgeColor = \"calculated\";\n this.archEdgeArrowColor = \"calculated\";\n this.archEdgeWidth = \"3\";\n this.archGroupBorderColor = this.primaryBorderColor;\n this.archGroupBorderWidth = \"2px\";\n this.rowOdd = this.rowOdd || lighten5(this.mainBkg, 75) || \"#ffffff\";\n this.rowEven = this.rowEven || \"#f4f4f4\";\n this.labelColor = \"black\";\n this.errorBkgColor = \"#552222\";\n this.errorTextColor = \"#552222\";\n }\n updateColors() {\n this.secondBkg = lighten5(this.contrast, 55);\n this.border2 = this.contrast;\n this.actorBorder = lighten5(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.text;\n this.actorLineColor = this.actorBorder;\n this.signalColor = this.text;\n this.signalTextColor = this.text;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.text;\n this.loopTextColor = this.text;\n this.noteBorderColor = \"#999\";\n this.noteBkgColor = \"#666\";\n this.noteTextColor = \"#fff\";\n this.cScale0 = this.cScale0 || \"#555\";\n this.cScale1 = this.cScale1 || \"#F4F4F4\";\n this.cScale2 = this.cScale2 || \"#555\";\n this.cScale3 = this.cScale3 || \"#BBB\";\n this.cScale4 = this.cScale4 || \"#777\";\n this.cScale5 = this.cScale5 || \"#999\";\n this.cScale6 = this.cScale6 || \"#DDD\";\n this.cScale7 = this.cScale7 || \"#FFF\";\n this.cScale8 = this.cScale8 || \"#DDD\";\n this.cScale9 = this.cScale9 || \"#BBB\";\n this.cScale10 = this.cScale10 || \"#999\";\n this.cScale11 = this.cScale11 || \"#777\";\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleInv\" + i] = this[\"cScaleInv\" + i] || invert5(this[\"cScale\" + i]);\n }\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n if (this.darkMode) {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || lighten5(this[\"cScale\" + i], 10);\n } else {\n this[\"cScalePeer\" + i] = this[\"cScalePeer\" + i] || darken5(this[\"cScale\" + i], 10);\n }\n }\n this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? \"black\" : this.labelTextColor);\n this.cScaleLabel0 = this.cScaleLabel0 || this.cScale1;\n this.cScaleLabel2 = this.cScaleLabel2 || this.cScale1;\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"cScaleLabel\" + i] = this[\"cScaleLabel\" + i] || this.scaleLabelColor;\n }\n for (let i = 0; i < 5; i++) {\n this[\"surface\" + i] = this[\"surface\" + i] || adjust6(this.mainBkg, { l: -(5 + i * 5) });\n this[\"surfacePeer\" + i] = this[\"surfacePeer\" + i] || adjust6(this.mainBkg, { l: -(8 + i * 5) });\n }\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.text;\n this.sectionBkgColor = lighten5(this.contrast, 30);\n this.sectionBkgColor2 = lighten5(this.contrast, 30);\n this.taskBorderColor = darken5(this.contrast, 10);\n this.taskBkgColor = this.contrast;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = this.text;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n this.gridColor = lighten5(this.border1, 30);\n this.doneTaskBkgColor = this.done;\n this.doneTaskBorderColor = this.lineColor;\n this.critBkgColor = this.critical;\n this.critBorderColor = darken5(this.critBkgColor, 10);\n this.todayLineColor = this.critBkgColor;\n this.vertLineColor = this.critBkgColor;\n this.archEdgeColor = this.lineColor;\n this.archEdgeArrowColor = this.lineColor;\n this.transitionColor = this.transitionColor || \"#000\";\n this.transitionLabelColor = this.transitionLabelColor || this.textColor;\n this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;\n this.stateBkg = this.stateBkg || this.mainBkg;\n this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;\n this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;\n this.altBackground = this.altBackground || \"#f4f4f4\";\n this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;\n this.stateBorder = this.stateBorder || \"#000\";\n this.innerEndBackground = this.primaryBorderColor;\n this.specialStateColor = \"#222\";\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n this.classText = this.primaryTextColor;\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust6(this.primaryColor, { h: 64 });\n this.fillType3 = adjust6(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust6(this.primaryColor, { h: -64 });\n this.fillType5 = adjust6(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust6(this.primaryColor, { h: 128 });\n this.fillType7 = adjust6(this.secondaryColor, { h: 128 });\n for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {\n this[\"pie\" + i] = this[\"cScale\" + i];\n }\n this.pie12 = this.pie0;\n this.pieTitleTextSize = this.pieTitleTextSize || \"25px\";\n this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;\n this.pieSectionTextSize = this.pieSectionTextSize || \"17px\";\n this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;\n this.pieLegendTextSize = this.pieLegendTextSize || \"17px\";\n this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;\n this.pieStrokeColor = this.pieStrokeColor || \"black\";\n this.pieStrokeWidth = this.pieStrokeWidth || \"2px\";\n this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || \"2px\";\n this.pieOuterStrokeColor = this.pieOuterStrokeColor || \"black\";\n this.pieOpacity = this.pieOpacity || \"0.7\";\n this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;\n this.quadrant2Fill = this.quadrant2Fill || adjust6(this.primaryColor, { r: 5, g: 5, b: 5 });\n this.quadrant3Fill = this.quadrant3Fill || adjust6(this.primaryColor, { r: 10, g: 10, b: 10 });\n this.quadrant4Fill = this.quadrant4Fill || adjust6(this.primaryColor, { r: 15, g: 15, b: 15 });\n this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;\n this.quadrant2TextFill = this.quadrant2TextFill || adjust6(this.primaryTextColor, { r: -5, g: -5, b: -5 });\n this.quadrant3TextFill = this.quadrant3TextFill || adjust6(this.primaryTextColor, { r: -10, g: -10, b: -10 });\n this.quadrant4TextFill = this.quadrant4TextFill || adjust6(this.primaryTextColor, { r: -15, g: -15, b: -15 });\n this.quadrantPointFill = this.quadrantPointFill || isDark5(this.quadrant1Fill) ? lighten5(this.quadrant1Fill) : darken5(this.quadrant1Fill);\n this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;\n this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;\n this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;\n this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;\n this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;\n this.xyChart = {\n backgroundColor: this.xyChart?.backgroundColor || this.background,\n titleColor: this.xyChart?.titleColor || this.primaryTextColor,\n xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,\n xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,\n xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,\n xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,\n yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,\n yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,\n yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,\n yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,\n plotColorPalette: this.xyChart?.plotColorPalette || \"#EEE,#6BB8E4,#8ACB88,#C7ACD6,#E8DCC2,#FFB2A8,#FFF380,#7E8D91,#FFD8B1,#FAF3E0\"\n };\n this.radar = {\n axisColor: this.radar?.axisColor || this.lineColor,\n axisStrokeWidth: this.radar?.axisStrokeWidth || 2,\n axisLabelFontSize: this.radar?.axisLabelFontSize || 12,\n curveOpacity: this.radar?.curveOpacity || 0.5,\n curveStrokeWidth: this.radar?.curveStrokeWidth || 2,\n graticuleColor: this.radar?.graticuleColor || \"#DEDEDE\",\n graticuleStrokeWidth: this.radar?.graticuleStrokeWidth || 1,\n graticuleOpacity: this.radar?.graticuleOpacity || 0.3,\n legendBoxSize: this.radar?.legendBoxSize || 12,\n legendFontSize: this.radar?.legendFontSize || 12\n };\n this.requirementBackground = this.requirementBackground || this.primaryColor;\n this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;\n this.requirementBorderSize = this.requirementBorderSize || \"1\";\n this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;\n this.relationColor = this.relationColor || this.lineColor;\n this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;\n this.relationLabelColor = this.relationLabelColor || this.actorTextColor;\n this.git0 = darken5(this.pie1, 25) || this.primaryColor;\n this.git1 = this.pie2 || this.secondaryColor;\n this.git2 = this.pie3 || this.tertiaryColor;\n this.git3 = this.pie4 || adjust6(this.primaryColor, { h: -30 });\n this.git4 = this.pie5 || adjust6(this.primaryColor, { h: -60 });\n this.git5 = this.pie6 || adjust6(this.primaryColor, { h: -90 });\n this.git6 = this.pie7 || adjust6(this.primaryColor, { h: 60 });\n this.git7 = this.pie8 || adjust6(this.primaryColor, { h: 120 });\n this.gitInv0 = this.gitInv0 || invert5(this.git0);\n this.gitInv1 = this.gitInv1 || invert5(this.git1);\n this.gitInv2 = this.gitInv2 || invert5(this.git2);\n this.gitInv3 = this.gitInv3 || invert5(this.git3);\n this.gitInv4 = this.gitInv4 || invert5(this.git4);\n this.gitInv5 = this.gitInv5 || invert5(this.git5);\n this.gitInv6 = this.gitInv6 || invert5(this.git6);\n this.gitInv7 = this.gitInv7 || invert5(this.git7);\n this.branchLabelColor = this.branchLabelColor || this.labelTextColor;\n this.gitBranchLabel0 = this.branchLabelColor;\n this.gitBranchLabel1 = \"white\";\n this.gitBranchLabel2 = this.branchLabelColor;\n this.gitBranchLabel3 = \"white\";\n this.gitBranchLabel4 = this.branchLabelColor;\n this.gitBranchLabel5 = this.branchLabelColor;\n this.gitBranchLabel6 = this.branchLabelColor;\n this.gitBranchLabel7 = this.branchLabelColor;\n this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;\n this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;\n this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;\n this.tagLabelFontSize = this.tagLabelFontSize || \"10px\";\n this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;\n this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;\n this.commitLabelFontSize = this.commitLabelFontSize || \"10px\";\n this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;\n this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;\n }\n calculate(overrides) {\n if (typeof overrides !== \"object\") {\n this.updateColors();\n return;\n }\n const keys = Object.keys(overrides);\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n this.updateColors();\n keys.forEach((k) => {\n this[k] = overrides[k];\n });\n }\n};\nvar getThemeVariables5 = /* @__PURE__ */ __name((userOverrides) => {\n const theme = new Theme5();\n theme.calculate(userOverrides);\n return theme;\n}, \"getThemeVariables\");\n\n// src/themes/index.js\nvar themes_default = {\n base: {\n getThemeVariables\n },\n dark: {\n getThemeVariables: getThemeVariables2\n },\n default: {\n getThemeVariables: getThemeVariables3\n },\n forest: {\n getThemeVariables: getThemeVariables4\n },\n neutral: {\n getThemeVariables: getThemeVariables5\n }\n};\n\n// src/schemas/config.schema.yaml?only-defaults=true\nvar config_schema_default = {\n \"flowchart\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"subGraphTitleMargin\": {\n \"top\": 0,\n \"bottom\": 0\n },\n \"diagramPadding\": 8,\n \"htmlLabels\": true,\n \"nodeSpacing\": 50,\n \"rankSpacing\": 50,\n \"curve\": \"basis\",\n \"padding\": 15,\n \"defaultRenderer\": \"dagre-wrapper\",\n \"wrappingWidth\": 200,\n \"inheritDir\": false\n },\n \"sequence\": {\n \"useMaxWidth\": true,\n \"hideUnusedParticipants\": false,\n \"activationWidth\": 10,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"actorMargin\": 50,\n \"width\": 150,\n \"height\": 65,\n \"boxMargin\": 10,\n \"boxTextMargin\": 5,\n \"noteMargin\": 10,\n \"messageMargin\": 35,\n \"messageAlign\": \"center\",\n \"mirrorActors\": true,\n \"forceMenus\": false,\n \"bottomMarginAdj\": 1,\n \"rightAngles\": false,\n \"showSequenceNumbers\": false,\n \"actorFontSize\": 14,\n \"actorFontFamily\": '\"Open Sans\", sans-serif',\n \"actorFontWeight\": 400,\n \"noteFontSize\": 14,\n \"noteFontFamily\": '\"trebuchet ms\", verdana, arial, sans-serif',\n \"noteFontWeight\": 400,\n \"noteAlign\": \"center\",\n \"messageFontSize\": 16,\n \"messageFontFamily\": '\"trebuchet ms\", verdana, arial, sans-serif',\n \"messageFontWeight\": 400,\n \"wrap\": false,\n \"wrapPadding\": 10,\n \"labelBoxWidth\": 50,\n \"labelBoxHeight\": 20\n },\n \"gantt\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"barHeight\": 20,\n \"barGap\": 4,\n \"topPadding\": 50,\n \"rightPadding\": 75,\n \"leftPadding\": 75,\n \"gridLineStartPadding\": 35,\n \"fontSize\": 11,\n \"sectionFontSize\": 11,\n \"numberSectionStyles\": 4,\n \"axisFormat\": \"%Y-%m-%d\",\n \"topAxis\": false,\n \"displayMode\": \"\",\n \"weekday\": \"sunday\"\n },\n \"journey\": {\n \"useMaxWidth\": true,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"leftMargin\": 150,\n \"maxLabelWidth\": 360,\n \"width\": 150,\n \"height\": 50,\n \"boxMargin\": 10,\n \"boxTextMargin\": 5,\n \"noteMargin\": 10,\n \"messageMargin\": 35,\n \"messageAlign\": \"center\",\n \"bottomMarginAdj\": 1,\n \"rightAngles\": false,\n \"taskFontSize\": 14,\n \"taskFontFamily\": '\"Open Sans\", sans-serif',\n \"taskMargin\": 50,\n \"activationWidth\": 10,\n \"textPlacement\": \"fo\",\n \"actorColours\": [\n \"#8FBC8F\",\n \"#7CFC00\",\n \"#00FFFF\",\n \"#20B2AA\",\n \"#B0E0E6\",\n \"#FFFFE0\"\n ],\n \"sectionFills\": [\n \"#191970\",\n \"#8B008B\",\n \"#4B0082\",\n \"#2F4F4F\",\n \"#800000\",\n \"#8B4513\",\n \"#00008B\"\n ],\n \"sectionColours\": [\n \"#fff\"\n ],\n \"titleColor\": \"\",\n \"titleFontFamily\": '\"trebuchet ms\", verdana, arial, sans-serif',\n \"titleFontSize\": \"4ex\"\n },\n \"class\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"arrowMarkerAbsolute\": false,\n \"dividerMargin\": 10,\n \"padding\": 5,\n \"textHeight\": 10,\n \"defaultRenderer\": \"dagre-wrapper\",\n \"htmlLabels\": false,\n \"hideEmptyMembersBox\": false\n },\n \"state\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"dividerMargin\": 10,\n \"sizeUnit\": 5,\n \"padding\": 8,\n \"textHeight\": 10,\n \"titleShift\": -15,\n \"noteMargin\": 10,\n \"forkWidth\": 70,\n \"forkHeight\": 7,\n \"miniPadding\": 2,\n \"fontSizeFactor\": 5.02,\n \"fontSize\": 24,\n \"labelHeight\": 16,\n \"edgeLengthFactor\": \"20\",\n \"compositTitleSize\": 35,\n \"radius\": 5,\n \"defaultRenderer\": \"dagre-wrapper\"\n },\n \"er\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"diagramPadding\": 20,\n \"layoutDirection\": \"TB\",\n \"minEntityWidth\": 100,\n \"minEntityHeight\": 75,\n \"entityPadding\": 15,\n \"nodeSpacing\": 140,\n \"rankSpacing\": 80,\n \"stroke\": \"gray\",\n \"fill\": \"honeydew\",\n \"fontSize\": 12\n },\n \"pie\": {\n \"useMaxWidth\": true,\n \"textPosition\": 0.75\n },\n \"quadrantChart\": {\n \"useMaxWidth\": true,\n \"chartWidth\": 500,\n \"chartHeight\": 500,\n \"titleFontSize\": 20,\n \"titlePadding\": 10,\n \"quadrantPadding\": 5,\n \"xAxisLabelPadding\": 5,\n \"yAxisLabelPadding\": 5,\n \"xAxisLabelFontSize\": 16,\n \"yAxisLabelFontSize\": 16,\n \"quadrantLabelFontSize\": 16,\n \"quadrantTextTopPadding\": 5,\n \"pointTextPadding\": 5,\n \"pointLabelFontSize\": 12,\n \"pointRadius\": 5,\n \"xAxisPosition\": \"top\",\n \"yAxisPosition\": \"left\",\n \"quadrantInternalBorderStrokeWidth\": 1,\n \"quadrantExternalBorderStrokeWidth\": 2\n },\n \"xyChart\": {\n \"useMaxWidth\": true,\n \"width\": 700,\n \"height\": 500,\n \"titleFontSize\": 20,\n \"titlePadding\": 10,\n \"showDataLabel\": false,\n \"showTitle\": true,\n \"xAxis\": {\n \"$ref\": \"#/$defs/XYChartAxisConfig\",\n \"showLabel\": true,\n \"labelFontSize\": 14,\n \"labelPadding\": 5,\n \"showTitle\": true,\n \"titleFontSize\": 16,\n \"titlePadding\": 5,\n \"showTick\": true,\n \"tickLength\": 5,\n \"tickWidth\": 2,\n \"showAxisLine\": true,\n \"axisLineWidth\": 2\n },\n \"yAxis\": {\n \"$ref\": \"#/$defs/XYChartAxisConfig\",\n \"showLabel\": true,\n \"labelFontSize\": 14,\n \"labelPadding\": 5,\n \"showTitle\": true,\n \"titleFontSize\": 16,\n \"titlePadding\": 5,\n \"showTick\": true,\n \"tickLength\": 5,\n \"tickWidth\": 2,\n \"showAxisLine\": true,\n \"axisLineWidth\": 2\n },\n \"chartOrientation\": \"vertical\",\n \"plotReservedSpacePercent\": 50\n },\n \"requirement\": {\n \"useMaxWidth\": true,\n \"rect_fill\": \"#f9f9f9\",\n \"text_color\": \"#333\",\n \"rect_border_size\": \"0.5px\",\n \"rect_border_color\": \"#bbb\",\n \"rect_min_width\": 200,\n \"rect_min_height\": 200,\n \"fontSize\": 14,\n \"rect_padding\": 10,\n \"line_height\": 20\n },\n \"mindmap\": {\n \"useMaxWidth\": true,\n \"padding\": 10,\n \"maxNodeWidth\": 200,\n \"layoutAlgorithm\": \"cose-bilkent\"\n },\n \"kanban\": {\n \"useMaxWidth\": true,\n \"padding\": 8,\n \"sectionWidth\": 200,\n \"ticketBaseUrl\": \"\"\n },\n \"timeline\": {\n \"useMaxWidth\": true,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"leftMargin\": 150,\n \"width\": 150,\n \"height\": 50,\n \"boxMargin\": 10,\n \"boxTextMargin\": 5,\n \"noteMargin\": 10,\n \"messageMargin\": 35,\n \"messageAlign\": \"center\",\n \"bottomMarginAdj\": 1,\n \"rightAngles\": false,\n \"taskFontSize\": 14,\n \"taskFontFamily\": '\"Open Sans\", sans-serif',\n \"taskMargin\": 50,\n \"activationWidth\": 10,\n \"textPlacement\": \"fo\",\n \"actorColours\": [\n \"#8FBC8F\",\n \"#7CFC00\",\n \"#00FFFF\",\n \"#20B2AA\",\n \"#B0E0E6\",\n \"#FFFFE0\"\n ],\n \"sectionFills\": [\n \"#191970\",\n \"#8B008B\",\n \"#4B0082\",\n \"#2F4F4F\",\n \"#800000\",\n \"#8B4513\",\n \"#00008B\"\n ],\n \"sectionColours\": [\n \"#fff\"\n ],\n \"disableMulticolor\": false\n },\n \"gitGraph\": {\n \"useMaxWidth\": true,\n \"titleTopMargin\": 25,\n \"diagramPadding\": 8,\n \"nodeLabel\": {\n \"width\": 75,\n \"height\": 100,\n \"x\": -25,\n \"y\": 0\n },\n \"mainBranchName\": \"main\",\n \"mainBranchOrder\": 0,\n \"showCommitLabel\": true,\n \"showBranches\": true,\n \"rotateCommitLabel\": true,\n \"parallelCommits\": false,\n \"arrowMarkerAbsolute\": false\n },\n \"c4\": {\n \"useMaxWidth\": true,\n \"diagramMarginX\": 50,\n \"diagramMarginY\": 10,\n \"c4ShapeMargin\": 50,\n \"c4ShapePadding\": 20,\n \"width\": 216,\n \"height\": 60,\n \"boxMargin\": 10,\n \"c4ShapeInRow\": 4,\n \"nextLinePaddingX\": 0,\n \"c4BoundaryInRow\": 2,\n \"personFontSize\": 14,\n \"personFontFamily\": '\"Open Sans\", sans-serif',\n \"personFontWeight\": \"normal\",\n \"external_personFontSize\": 14,\n \"external_personFontFamily\": '\"Open Sans\", sans-serif',\n \"external_personFontWeight\": \"normal\",\n \"systemFontSize\": 14,\n \"systemFontFamily\": '\"Open Sans\", sans-serif',\n \"systemFontWeight\": \"normal\",\n \"external_systemFontSize\": 14,\n \"external_systemFontFamily\": '\"Open Sans\", sans-serif',\n \"external_systemFontWeight\": \"normal\",\n \"system_dbFontSize\": 14,\n \"system_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"system_dbFontWeight\": \"normal\",\n \"external_system_dbFontSize\": 14,\n \"external_system_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"external_system_dbFontWeight\": \"normal\",\n \"system_queueFontSize\": 14,\n \"system_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"system_queueFontWeight\": \"normal\",\n \"external_system_queueFontSize\": 14,\n \"external_system_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"external_system_queueFontWeight\": \"normal\",\n \"boundaryFontSize\": 14,\n \"boundaryFontFamily\": '\"Open Sans\", sans-serif',\n \"boundaryFontWeight\": \"normal\",\n \"messageFontSize\": 12,\n \"messageFontFamily\": '\"Open Sans\", sans-serif',\n \"messageFontWeight\": \"normal\",\n \"containerFontSize\": 14,\n \"containerFontFamily\": '\"Open Sans\", sans-serif',\n \"containerFontWeight\": \"normal\",\n \"external_containerFontSize\": 14,\n \"external_containerFontFamily\": '\"Open Sans\", sans-serif',\n \"external_containerFontWeight\": \"normal\",\n \"container_dbFontSize\": 14,\n \"container_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"container_dbFontWeight\": \"normal\",\n \"external_container_dbFontSize\": 14,\n \"external_container_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"external_container_dbFontWeight\": \"normal\",\n \"container_queueFontSize\": 14,\n \"container_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"container_queueFontWeight\": \"normal\",\n \"external_container_queueFontSize\": 14,\n \"external_container_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"external_container_queueFontWeight\": \"normal\",\n \"componentFontSize\": 14,\n \"componentFontFamily\": '\"Open Sans\", sans-serif',\n \"componentFontWeight\": \"normal\",\n \"external_componentFontSize\": 14,\n \"external_componentFontFamily\": '\"Open Sans\", sans-serif',\n \"external_componentFontWeight\": \"normal\",\n \"component_dbFontSize\": 14,\n \"component_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"component_dbFontWeight\": \"normal\",\n \"external_component_dbFontSize\": 14,\n \"external_component_dbFontFamily\": '\"Open Sans\", sans-serif',\n \"external_component_dbFontWeight\": \"normal\",\n \"component_queueFontSize\": 14,\n \"component_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"component_queueFontWeight\": \"normal\",\n \"external_component_queueFontSize\": 14,\n \"external_component_queueFontFamily\": '\"Open Sans\", sans-serif',\n \"external_component_queueFontWeight\": \"normal\",\n \"wrap\": true,\n \"wrapPadding\": 10,\n \"person_bg_color\": \"#08427B\",\n \"person_border_color\": \"#073B6F\",\n \"external_person_bg_color\": \"#686868\",\n \"external_person_border_color\": \"#8A8A8A\",\n \"system_bg_color\": \"#1168BD\",\n \"system_border_color\": \"#3C7FC0\",\n \"system_db_bg_color\": \"#1168BD\",\n \"system_db_border_color\": \"#3C7FC0\",\n \"system_queue_bg_color\": \"#1168BD\",\n \"system_queue_border_color\": \"#3C7FC0\",\n \"external_system_bg_color\": \"#999999\",\n \"external_system_border_color\": \"#8A8A8A\",\n \"external_system_db_bg_color\": \"#999999\",\n \"external_system_db_border_color\": \"#8A8A8A\",\n \"external_system_queue_bg_color\": \"#999999\",\n \"external_system_queue_border_color\": \"#8A8A8A\",\n \"container_bg_color\": \"#438DD5\",\n \"container_border_color\": \"#3C7FC0\",\n \"container_db_bg_color\": \"#438DD5\",\n \"container_db_border_color\": \"#3C7FC0\",\n \"container_queue_bg_color\": \"#438DD5\",\n \"container_queue_border_color\": \"#3C7FC0\",\n \"external_container_bg_color\": \"#B3B3B3\",\n \"external_container_border_color\": \"#A6A6A6\",\n \"external_container_db_bg_color\": \"#B3B3B3\",\n \"external_container_db_border_color\": \"#A6A6A6\",\n \"external_container_queue_bg_color\": \"#B3B3B3\",\n \"external_container_queue_border_color\": \"#A6A6A6\",\n \"component_bg_color\": \"#85BBF0\",\n \"component_border_color\": \"#78A8D8\",\n \"component_db_bg_color\": \"#85BBF0\",\n \"component_db_border_color\": \"#78A8D8\",\n \"component_queue_bg_color\": \"#85BBF0\",\n \"component_queue_border_color\": \"#78A8D8\",\n \"external_component_bg_color\": \"#CCCCCC\",\n \"external_component_border_color\": \"#BFBFBF\",\n \"external_component_db_bg_color\": \"#CCCCCC\",\n \"external_component_db_border_color\": \"#BFBFBF\",\n \"external_component_queue_bg_color\": \"#CCCCCC\",\n \"external_component_queue_border_color\": \"#BFBFBF\"\n },\n \"sankey\": {\n \"useMaxWidth\": true,\n \"width\": 600,\n \"height\": 400,\n \"linkColor\": \"gradient\",\n \"nodeAlignment\": \"justify\",\n \"showValues\": true,\n \"prefix\": \"\",\n \"suffix\": \"\"\n },\n \"block\": {\n \"useMaxWidth\": true,\n \"padding\": 8\n },\n \"packet\": {\n \"useMaxWidth\": true,\n \"rowHeight\": 32,\n \"bitWidth\": 32,\n \"bitsPerRow\": 32,\n \"showBits\": true,\n \"paddingX\": 5,\n \"paddingY\": 5\n },\n \"architecture\": {\n \"useMaxWidth\": true,\n \"padding\": 40,\n \"iconSize\": 80,\n \"fontSize\": 16\n },\n \"radar\": {\n \"useMaxWidth\": true,\n \"width\": 600,\n \"height\": 600,\n \"marginTop\": 50,\n \"marginRight\": 50,\n \"marginBottom\": 50,\n \"marginLeft\": 50,\n \"axisScaleFactor\": 1,\n \"axisLabelFactor\": 1.05,\n \"curveTension\": 0.17\n },\n \"theme\": \"default\",\n \"look\": \"classic\",\n \"handDrawnSeed\": 0,\n \"layout\": \"dagre\",\n \"maxTextSize\": 5e4,\n \"maxEdges\": 500,\n \"darkMode\": false,\n \"fontFamily\": '\"trebuchet ms\", verdana, arial, sans-serif;',\n \"logLevel\": 5,\n \"securityLevel\": \"strict\",\n \"startOnLoad\": true,\n \"arrowMarkerAbsolute\": false,\n \"secure\": [\n \"secure\",\n \"securityLevel\",\n \"startOnLoad\",\n \"maxTextSize\",\n \"suppressErrorRendering\",\n \"maxEdges\"\n ],\n \"legacyMathML\": false,\n \"forceLegacyMathML\": false,\n \"deterministicIds\": false,\n \"fontSize\": 16,\n \"markdownAutoWrap\": true,\n \"suppressErrorRendering\": false\n};\n\n// src/defaultConfig.ts\nvar config = {\n ...config_schema_default,\n // Set, even though they're `undefined` so that `configKeys` finds these keys\n // TODO: Should we replace these with `null` so that they can go in the JSON Schema?\n deterministicIDSeed: void 0,\n elk: {\n // mergeEdges is needed here to be considered\n mergeEdges: false,\n nodePlacementStrategy: \"BRANDES_KOEPF\",\n forceNodeModelOrder: false,\n considerModelOrder: \"NODES_AND_EDGES\"\n },\n themeCSS: void 0,\n // add non-JSON default config values\n themeVariables: themes_default.default.getThemeVariables(),\n sequence: {\n ...config_schema_default.sequence,\n messageFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.messageFontFamily,\n fontSize: this.messageFontSize,\n fontWeight: this.messageFontWeight\n };\n }, \"messageFont\"),\n noteFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.noteFontFamily,\n fontSize: this.noteFontSize,\n fontWeight: this.noteFontWeight\n };\n }, \"noteFont\"),\n actorFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.actorFontFamily,\n fontSize: this.actorFontSize,\n fontWeight: this.actorFontWeight\n };\n }, \"actorFont\")\n },\n class: {\n hideEmptyMembersBox: false\n },\n gantt: {\n ...config_schema_default.gantt,\n tickInterval: void 0,\n useWidth: void 0\n // can probably be removed since `configKeys` already includes this\n },\n c4: {\n ...config_schema_default.c4,\n useWidth: void 0,\n personFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.personFontFamily,\n fontSize: this.personFontSize,\n fontWeight: this.personFontWeight\n };\n }, \"personFont\"),\n flowchart: {\n ...config_schema_default.flowchart,\n inheritDir: false\n // default to legacy behavior\n },\n external_personFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_personFontFamily,\n fontSize: this.external_personFontSize,\n fontWeight: this.external_personFontWeight\n };\n }, \"external_personFont\"),\n systemFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.systemFontFamily,\n fontSize: this.systemFontSize,\n fontWeight: this.systemFontWeight\n };\n }, \"systemFont\"),\n external_systemFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_systemFontFamily,\n fontSize: this.external_systemFontSize,\n fontWeight: this.external_systemFontWeight\n };\n }, \"external_systemFont\"),\n system_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.system_dbFontFamily,\n fontSize: this.system_dbFontSize,\n fontWeight: this.system_dbFontWeight\n };\n }, \"system_dbFont\"),\n external_system_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_system_dbFontFamily,\n fontSize: this.external_system_dbFontSize,\n fontWeight: this.external_system_dbFontWeight\n };\n }, \"external_system_dbFont\"),\n system_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.system_queueFontFamily,\n fontSize: this.system_queueFontSize,\n fontWeight: this.system_queueFontWeight\n };\n }, \"system_queueFont\"),\n external_system_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_system_queueFontFamily,\n fontSize: this.external_system_queueFontSize,\n fontWeight: this.external_system_queueFontWeight\n };\n }, \"external_system_queueFont\"),\n containerFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.containerFontFamily,\n fontSize: this.containerFontSize,\n fontWeight: this.containerFontWeight\n };\n }, \"containerFont\"),\n external_containerFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_containerFontFamily,\n fontSize: this.external_containerFontSize,\n fontWeight: this.external_containerFontWeight\n };\n }, \"external_containerFont\"),\n container_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.container_dbFontFamily,\n fontSize: this.container_dbFontSize,\n fontWeight: this.container_dbFontWeight\n };\n }, \"container_dbFont\"),\n external_container_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_container_dbFontFamily,\n fontSize: this.external_container_dbFontSize,\n fontWeight: this.external_container_dbFontWeight\n };\n }, \"external_container_dbFont\"),\n container_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.container_queueFontFamily,\n fontSize: this.container_queueFontSize,\n fontWeight: this.container_queueFontWeight\n };\n }, \"container_queueFont\"),\n external_container_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_container_queueFontFamily,\n fontSize: this.external_container_queueFontSize,\n fontWeight: this.external_container_queueFontWeight\n };\n }, \"external_container_queueFont\"),\n componentFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.componentFontFamily,\n fontSize: this.componentFontSize,\n fontWeight: this.componentFontWeight\n };\n }, \"componentFont\"),\n external_componentFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_componentFontFamily,\n fontSize: this.external_componentFontSize,\n fontWeight: this.external_componentFontWeight\n };\n }, \"external_componentFont\"),\n component_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.component_dbFontFamily,\n fontSize: this.component_dbFontSize,\n fontWeight: this.component_dbFontWeight\n };\n }, \"component_dbFont\"),\n external_component_dbFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_component_dbFontFamily,\n fontSize: this.external_component_dbFontSize,\n fontWeight: this.external_component_dbFontWeight\n };\n }, \"external_component_dbFont\"),\n component_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.component_queueFontFamily,\n fontSize: this.component_queueFontSize,\n fontWeight: this.component_queueFontWeight\n };\n }, \"component_queueFont\"),\n external_component_queueFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.external_component_queueFontFamily,\n fontSize: this.external_component_queueFontSize,\n fontWeight: this.external_component_queueFontWeight\n };\n }, \"external_component_queueFont\"),\n boundaryFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.boundaryFontFamily,\n fontSize: this.boundaryFontSize,\n fontWeight: this.boundaryFontWeight\n };\n }, \"boundaryFont\"),\n messageFont: /* @__PURE__ */ __name(function() {\n return {\n fontFamily: this.messageFontFamily,\n fontSize: this.messageFontSize,\n fontWeight: this.messageFontWeight\n };\n }, \"messageFont\")\n },\n pie: {\n ...config_schema_default.pie,\n useWidth: 984\n },\n xyChart: {\n ...config_schema_default.xyChart,\n useWidth: void 0\n },\n requirement: {\n ...config_schema_default.requirement,\n useWidth: void 0\n },\n packet: {\n ...config_schema_default.packet\n },\n radar: {\n ...config_schema_default.radar\n },\n treemap: {\n useMaxWidth: true,\n padding: 10,\n diagramPadding: 8,\n showValues: true,\n nodeWidth: 100,\n nodeHeight: 40,\n borderWidth: 1,\n valueFontSize: 12,\n labelFontSize: 14,\n valueFormat: \",\"\n }\n};\nvar keyify = /* @__PURE__ */ __name((obj, prefix = \"\") => Object.keys(obj).reduce((res, el) => {\n if (Array.isArray(obj[el])) {\n return res;\n } else if (typeof obj[el] === \"object\" && obj[el] !== null) {\n return [...res, prefix + el, ...keyify(obj[el], \"\")];\n }\n return [...res, prefix + el];\n}, []), \"keyify\");\nvar configKeys = new Set(keyify(config, \"\"));\nvar defaultConfig_default = config;\n\n// src/utils/sanitizeDirective.ts\nvar sanitizeDirective = /* @__PURE__ */ __name((args) => {\n log.debug(\"sanitizeDirective called with\", args);\n if (typeof args !== \"object\" || args == null) {\n return;\n }\n if (Array.isArray(args)) {\n args.forEach((arg) => sanitizeDirective(arg));\n return;\n }\n for (const key of Object.keys(args)) {\n log.debug(\"Checking key\", key);\n if (key.startsWith(\"__\") || key.includes(\"proto\") || key.includes(\"constr\") || !configKeys.has(key) || args[key] == null) {\n log.debug(\"sanitize deleting key: \", key);\n delete args[key];\n continue;\n }\n if (typeof args[key] === \"object\") {\n log.debug(\"sanitizing object\", key);\n sanitizeDirective(args[key]);\n continue;\n }\n const cssMatchers = [\"themeCSS\", \"fontFamily\", \"altFontFamily\"];\n for (const cssKey of cssMatchers) {\n if (key.includes(cssKey)) {\n log.debug(\"sanitizing css option\", key);\n args[key] = sanitizeCss(args[key]);\n }\n }\n }\n if (args.themeVariables) {\n for (const k of Object.keys(args.themeVariables)) {\n const val = args.themeVariables[k];\n if (val?.match && !val.match(/^[\\d \"#%(),.;A-Za-z]+$/)) {\n args.themeVariables[k] = \"\";\n }\n }\n }\n log.debug(\"After sanitization\", args);\n}, \"sanitizeDirective\");\nvar sanitizeCss = /* @__PURE__ */ __name((str) => {\n let startCnt = 0;\n let endCnt = 0;\n for (const element of str) {\n if (startCnt < endCnt) {\n return \"{ /* ERROR: Unbalanced CSS */ }\";\n }\n if (element === \"{\") {\n startCnt++;\n } else if (element === \"}\") {\n endCnt++;\n }\n }\n if (startCnt !== endCnt) {\n return \"{ /* ERROR: Unbalanced CSS */ }\";\n }\n return str;\n}, \"sanitizeCss\");\n\n// src/config.ts\nvar defaultConfig = Object.freeze(defaultConfig_default);\nvar siteConfig = assignWithDepth_default({}, defaultConfig);\nvar configFromInitialize;\nvar directives = [];\nvar currentConfig = assignWithDepth_default({}, defaultConfig);\nvar updateCurrentConfig = /* @__PURE__ */ __name((siteCfg, _directives) => {\n let cfg = assignWithDepth_default({}, siteCfg);\n let sumOfDirectives = {};\n for (const d of _directives) {\n sanitize(d);\n sumOfDirectives = assignWithDepth_default(sumOfDirectives, d);\n }\n cfg = assignWithDepth_default(cfg, sumOfDirectives);\n if (sumOfDirectives.theme && sumOfDirectives.theme in themes_default) {\n const tmpConfigFromInitialize = assignWithDepth_default({}, configFromInitialize);\n const themeVariables = assignWithDepth_default(\n tmpConfigFromInitialize.themeVariables || {},\n sumOfDirectives.themeVariables\n );\n if (cfg.theme && cfg.theme in themes_default) {\n cfg.themeVariables = themes_default[cfg.theme].getThemeVariables(themeVariables);\n }\n }\n currentConfig = cfg;\n checkConfig(currentConfig);\n return currentConfig;\n}, \"updateCurrentConfig\");\nvar setSiteConfig = /* @__PURE__ */ __name((conf) => {\n siteConfig = assignWithDepth_default({}, defaultConfig);\n siteConfig = assignWithDepth_default(siteConfig, conf);\n if (conf.theme && themes_default[conf.theme]) {\n siteConfig.themeVariables = themes_default[conf.theme].getThemeVariables(conf.themeVariables);\n }\n updateCurrentConfig(siteConfig, directives);\n return siteConfig;\n}, \"setSiteConfig\");\nvar saveConfigFromInitialize = /* @__PURE__ */ __name((conf) => {\n configFromInitialize = assignWithDepth_default({}, conf);\n}, \"saveConfigFromInitialize\");\nvar updateSiteConfig = /* @__PURE__ */ __name((conf) => {\n siteConfig = assignWithDepth_default(siteConfig, conf);\n updateCurrentConfig(siteConfig, directives);\n return siteConfig;\n}, \"updateSiteConfig\");\nvar getSiteConfig = /* @__PURE__ */ __name(() => {\n return assignWithDepth_default({}, siteConfig);\n}, \"getSiteConfig\");\nvar setConfig = /* @__PURE__ */ __name((conf) => {\n checkConfig(conf);\n assignWithDepth_default(currentConfig, conf);\n return getConfig();\n}, \"setConfig\");\nvar getConfig = /* @__PURE__ */ __name(() => {\n return assignWithDepth_default({}, currentConfig);\n}, \"getConfig\");\nvar sanitize = /* @__PURE__ */ __name((options) => {\n if (!options) {\n return;\n }\n [\"secure\", ...siteConfig.secure ?? []].forEach((key) => {\n if (Object.hasOwn(options, key)) {\n log.debug(`Denied attempt to modify a secure key ${key}`, options[key]);\n delete options[key];\n }\n });\n Object.keys(options).forEach((key) => {\n if (key.startsWith(\"__\")) {\n delete options[key];\n }\n });\n Object.keys(options).forEach((key) => {\n if (typeof options[key] === \"string\" && (options[key].includes(\"<\") || options[key].includes(\">\") || options[key].includes(\"url(data:\"))) {\n delete options[key];\n }\n if (typeof options[key] === \"object\") {\n sanitize(options[key]);\n }\n });\n}, \"sanitize\");\nvar addDirective = /* @__PURE__ */ __name((directive) => {\n sanitizeDirective(directive);\n if (directive.fontFamily && !directive.themeVariables?.fontFamily) {\n directive.themeVariables = {\n ...directive.themeVariables,\n fontFamily: directive.fontFamily\n };\n }\n directives.push(directive);\n updateCurrentConfig(siteConfig, directives);\n}, \"addDirective\");\nvar reset = /* @__PURE__ */ __name((config2 = siteConfig) => {\n directives = [];\n updateCurrentConfig(config2, directives);\n}, \"reset\");\nvar ConfigWarning = {\n LAZY_LOAD_DEPRECATED: \"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.\"\n};\nvar issuedWarnings = {};\nvar issueWarning = /* @__PURE__ */ __name((warning) => {\n if (issuedWarnings[warning]) {\n return;\n }\n log.warn(ConfigWarning[warning]);\n issuedWarnings[warning] = true;\n}, \"issueWarning\");\nvar checkConfig = /* @__PURE__ */ __name((config2) => {\n if (!config2) {\n return;\n }\n if (config2.lazyLoadedDiagrams || config2.loadExternalDiagramsAtStartup) {\n issueWarning(\"LAZY_LOAD_DEPRECATED\");\n }\n}, \"checkConfig\");\nvar getUserDefinedConfig = /* @__PURE__ */ __name(() => {\n let userConfig = {};\n if (configFromInitialize) {\n userConfig = assignWithDepth_default(userConfig, configFromInitialize);\n }\n for (const d of directives) {\n userConfig = assignWithDepth_default(userConfig, d);\n }\n return userConfig;\n}, \"getUserDefinedConfig\");\n\n// src/diagrams/common/common.ts\nimport DOMPurify from \"dompurify\";\nvar lineBreakRegex = /<br\\s*\\/?>/gi;\nvar getRows = /* @__PURE__ */ __name((s) => {\n if (!s) {\n return [\"\"];\n }\n const str = breakToPlaceholder(s).replace(/\\\\n/g, \"#br#\");\n return str.split(\"#br#\");\n}, \"getRows\");\nvar setupDompurifyHooksIfNotSetup = /* @__PURE__ */ (() => {\n let setup = false;\n return () => {\n if (!setup) {\n setupDompurifyHooks();\n setup = true;\n }\n };\n})();\nfunction setupDompurifyHooks() {\n const TEMPORARY_ATTRIBUTE = \"data-temp-href-target\";\n DOMPurify.addHook(\"beforeSanitizeAttributes\", (node) => {\n if (node.tagName === \"A\" && node.hasAttribute(\"target\")) {\n node.setAttribute(TEMPORARY_ATTRIBUTE, node.getAttribute(\"target\") ?? \"\");\n }\n });\n DOMPurify.addHook(\"afterSanitizeAttributes\", (node) => {\n if (node.tagName === \"A\" && node.hasAttribute(TEMPORARY_ATTRIBUTE)) {\n node.setAttribute(\"target\", node.getAttribute(TEMPORARY_ATTRIBUTE) ?? \"\");\n node.removeAttribute(TEMPORARY_ATTRIBUTE);\n if (node.getAttribute(\"target\") === \"_blank\") {\n node.setAttribute(\"rel\", \"noopener\");\n }\n }\n });\n}\n__name(setupDompurifyHooks, \"setupDompurifyHooks\");\nvar removeScript = /* @__PURE__ */ __name((txt) => {\n setupDompurifyHooksIfNotSetup();\n const sanitizedText = DOMPurify.sanitize(txt);\n return sanitizedText;\n}, \"removeScript\");\nvar sanitizeMore = /* @__PURE__ */ __name((text, config2) => {\n if (config2.flowchart?.htmlLabels !== false) {\n const level = config2.securityLevel;\n if (level === \"antiscript\" || level === \"strict\") {\n text = removeScript(text);\n } else if (level !== \"loose\") {\n text = breakToPlaceholder(text);\n text = text.replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\");\n text = text.replace(/=/g, \"&equals;\");\n text = placeholderToBreak(text);\n }\n }\n return text;\n}, \"sanitizeMore\");\nvar sanitizeText = /* @__PURE__ */ __name((text, config2) => {\n if (!text) {\n return text;\n }\n if (config2.dompurifyConfig) {\n text = DOMPurify.sanitize(sanitizeMore(text, config2), config2.dompurifyConfig).toString();\n } else {\n text = DOMPurify.sanitize(sanitizeMore(text, config2), {\n FORBID_TAGS: [\"style\"]\n }).toString();\n }\n return text;\n}, \"sanitizeText\");\nvar sanitizeTextOrArray = /* @__PURE__ */ __name((a, config2) => {\n if (typeof a === \"string\") {\n return sanitizeText(a, config2);\n }\n return a.flat().map((x) => sanitizeText(x, config2));\n}, \"sanitizeTextOrArray\");\nvar hasBreaks = /* @__PURE__ */ __name((text) => {\n return lineBreakRegex.test(text);\n}, \"hasBreaks\");\nvar splitBreaks = /* @__PURE__ */ __name((text) => {\n return text.split(lineBreakRegex);\n}, \"splitBreaks\");\nvar placeholderToBreak = /* @__PURE__ */ __name((s) => {\n return s.replace(/#br#/g, \"<br/>\");\n}, \"placeholderToBreak\");\nvar breakToPlaceholder = /* @__PURE__ */ __name((s) => {\n return s.replace(lineBreakRegex, \"#br#\");\n}, \"breakToPlaceholder\");\nvar getUrl = /* @__PURE__ */ __name((useAbsolute) => {\n let url = \"\";\n if (useAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = CSS.escape(url);\n }\n return url;\n}, \"getUrl\");\nvar evaluate = /* @__PURE__ */ __name((val) => val === false || [\"false\", \"null\", \"0\"].includes(String(val).trim().toLowerCase()) ? false : true, \"evaluate\");\nvar getMax = /* @__PURE__ */ __name(function(...values) {\n const newValues = values.filter((value) => {\n return !isNaN(value);\n });\n return Math.max(...newValues);\n}, \"getMax\");\nvar getMin = /* @__PURE__ */ __name(function(...values) {\n const newValues = values.filter((value) => {\n return !isNaN(value);\n });\n return Math.min(...newValues);\n}, \"getMin\");\nvar parseGenericTypes = /* @__PURE__ */ __name(function(input) {\n const inputSets = input.split(/(,)/);\n const output = [];\n for (let i = 0; i < inputSets.length; i++) {\n let thisSet = inputSets[i];\n if (thisSet === \",\" && i > 0 && i + 1 < inputSets.length) {\n const previousSet = inputSets[i - 1];\n const nextSet = inputSets[i + 1];\n if (shouldCombineSets(previousSet, nextSet)) {\n thisSet = previousSet + \",\" + nextSet;\n i++;\n output.pop();\n }\n }\n output.push(processSet(thisSet));\n }\n return output.join(\"\");\n}, \"parseGenericTypes\");\nvar countOccurrence = /* @__PURE__ */ __name((string, substring) => {\n return Math.max(0, string.split(substring).length - 1);\n}, \"countOccurrence\");\nvar shouldCombineSets = /* @__PURE__ */ __name((previousSet, nextSet) => {\n const prevCount = countOccurrence(previousSet, \"~\");\n const nextCount = countOccurrence(nextSet, \"~\");\n return prevCount === 1 && nextCount === 1;\n}, \"shouldCombineSets\");\nvar processSet = /* @__PURE__ */ __name((input) => {\n const tildeCount = countOccurrence(input, \"~\");\n let hasStartingTilde = false;\n if (tildeCount <= 1) {\n return input;\n }\n if (tildeCount % 2 !== 0 && input.startsWith(\"~\")) {\n input = input.substring(1);\n hasStartingTilde = true;\n }\n const chars = [...input];\n let first = chars.indexOf(\"~\");\n let last = chars.lastIndexOf(\"~\");\n while (first !== -1 && last !== -1 && first !== last) {\n chars[first] = \"<\";\n chars[last] = \">\";\n first = chars.indexOf(\"~\");\n last = chars.lastIndexOf(\"~\");\n }\n if (hasStartingTilde) {\n chars.unshift(\"~\");\n }\n return chars.join(\"\");\n}, \"processSet\");\nvar isMathMLSupported = /* @__PURE__ */ __name(() => window.MathMLElement !== void 0, \"isMathMLSupported\");\nvar katexRegex = /\\$\\$(.*)\\$\\$/g;\nvar hasKatex = /* @__PURE__ */ __name((text) => (text.match(katexRegex)?.length ?? 0) > 0, \"hasKatex\");\nvar calculateMathMLDimensions = /* @__PURE__ */ __name(async (text, config2) => {\n const divElem = document.createElement(\"div\");\n divElem.innerHTML = await renderKatexSanitized(text, config2);\n divElem.id = \"katex-temp\";\n divElem.style.visibility = \"hidden\";\n divElem.style.position = \"absolute\";\n divElem.style.top = \"0\";\n const body = document.querySelector(\"body\");\n body?.insertAdjacentElement(\"beforeend\", divElem);\n const dim = { width: divElem.clientWidth, height: divElem.clientHeight };\n divElem.remove();\n return dim;\n}, \"calculateMathMLDimensions\");\nvar renderKatexUnsanitized = /* @__PURE__ */ __name(async (text, config2) => {\n if (!hasKatex(text)) {\n return text;\n }\n if (!(isMathMLSupported() || config2.legacyMathML || config2.forceLegacyMathML)) {\n return text.replace(katexRegex, \"MathML is unsupported in this environment.\");\n }\n if (true) {\n const { default: katex } = await import(\"katex\");\n const outputMode = config2.forceLegacyMathML || !isMathMLSupported() && config2.legacyMathML ? \"htmlAndMathml\" : \"mathml\";\n return text.split(lineBreakRegex).map(\n (line) => hasKatex(line) ? `<div style=\"display: flex; align-items: center; justify-content: center; white-space: nowrap;\">${line}</div>` : `<div>${line}</div>`\n ).join(\"\").replace(\n katexRegex,\n (_, c) => katex.renderToString(c, {\n throwOnError: true,\n displayMode: true,\n output: outputMode\n }).replace(/\\n/g, \" \").replace(/<annotation.*<\\/annotation>/g, \"\")\n );\n }\n return text.replace(\n katexRegex,\n \"Katex is not supported in @mermaid-js/tiny. Please use the full mermaid library.\"\n );\n}, \"renderKatexUnsanitized\");\nvar renderKatexSanitized = /* @__PURE__ */ __name(async (text, config2) => {\n return sanitizeText(await renderKatexUnsanitized(text, config2), config2);\n}, \"renderKatexSanitized\");\nvar common_default = {\n getRows,\n sanitizeText,\n sanitizeTextOrArray,\n hasBreaks,\n splitBreaks,\n lineBreakRegex,\n removeScript,\n getUrl,\n evaluate,\n getMax,\n getMin\n};\n\n// src/setupGraphViewbox.js\nvar d3Attrs = /* @__PURE__ */ __name(function(d3Elem, attrs) {\n for (let attr of attrs) {\n d3Elem.attr(attr[0], attr[1]);\n }\n}, \"d3Attrs\");\nvar calculateSvgSizeAttrs = /* @__PURE__ */ __name(function(height, width, useMaxWidth) {\n let attrs = /* @__PURE__ */ new Map();\n if (useMaxWidth) {\n attrs.set(\"width\", \"100%\");\n attrs.set(\"style\", `max-width: ${width}px;`);\n } else {\n attrs.set(\"height\", height);\n attrs.set(\"width\", width);\n }\n return attrs;\n}, \"calculateSvgSizeAttrs\");\nvar configureSvgSize = /* @__PURE__ */ __name(function(svgElem, height, width, useMaxWidth) {\n const attrs = calculateSvgSizeAttrs(height, width, useMaxWidth);\n d3Attrs(svgElem, attrs);\n}, \"configureSvgSize\");\nvar setupGraphViewbox = /* @__PURE__ */ __name(function(graph, svgElem, padding, useMaxWidth) {\n const svgBounds = svgElem.node().getBBox();\n const sWidth = svgBounds.width;\n const sHeight = svgBounds.height;\n log.info(`SVG bounds: ${sWidth}x${sHeight}`, svgBounds);\n let width = 0;\n let height = 0;\n log.info(`Graph bounds: ${width}x${height}`, graph);\n width = sWidth + padding * 2;\n height = sHeight + padding * 2;\n log.info(`Calculated bounds: ${width}x${height}`);\n configureSvgSize(svgElem, height, width, useMaxWidth);\n const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${svgBounds.width + 2 * padding} ${svgBounds.height + 2 * padding}`;\n svgElem.attr(\"viewBox\", vBox);\n}, \"setupGraphViewbox\");\n\n// src/styles.ts\nvar themes = {};\nvar getStyles = /* @__PURE__ */ __name((type, userStyles, options) => {\n let diagramStyles = \"\";\n if (type in themes && themes[type]) {\n diagramStyles = themes[type](options);\n } else {\n log.warn(`No theme found for ${type}`);\n }\n return ` & {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n fill: ${options.textColor}\n }\n @keyframes edge-animation-frame {\n from {\n stroke-dashoffset: 0;\n }\n }\n @keyframes dash {\n to {\n stroke-dashoffset: 0;\n }\n }\n & .edge-animation-slow {\n stroke-dasharray: 9,5 !important;\n stroke-dashoffset: 900;\n animation: dash 50s linear infinite;\n stroke-linecap: round;\n }\n & .edge-animation-fast {\n stroke-dasharray: 9,5 !important;\n stroke-dashoffset: 900;\n animation: dash 20s linear infinite;\n stroke-linecap: round;\n }\n /* Classes common for multiple diagrams */\n\n & .error-icon {\n fill: ${options.errorBkgColor};\n }\n & .error-text {\n fill: ${options.errorTextColor};\n stroke: ${options.errorTextColor};\n }\n\n & .edge-thickness-normal {\n stroke-width: 1px;\n }\n & .edge-thickness-thick {\n stroke-width: 3.5px\n }\n & .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n & .edge-thickness-invisible {\n stroke-width: 0;\n fill: none;\n }\n & .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n & .marker {\n fill: ${options.lineColor};\n stroke: ${options.lineColor};\n }\n & .marker.cross {\n stroke: ${options.lineColor};\n }\n\n & svg {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n }\n & p {\n margin: 0\n }\n\n ${diagramStyles}\n\n ${userStyles}\n`;\n}, \"getStyles\");\nvar addStylesForDiagram = /* @__PURE__ */ __name((type, diagramTheme) => {\n if (diagramTheme !== void 0) {\n themes[type] = diagramTheme;\n }\n}, \"addStylesForDiagram\");\nvar styles_default = getStyles;\n\n// src/diagrams/common/commonDb.ts\nvar commonDb_exports = {};\n__export(commonDb_exports, {\n clear: () => clear,\n getAccDescription: () => getAccDescription,\n getAccTitle: () => getAccTitle,\n getDiagramTitle: () => getDiagramTitle,\n setAccDescription: () => setAccDescription,\n setAccTitle: () => setAccTitle,\n setDiagramTitle: () => setDiagramTitle\n});\nvar accTitle = \"\";\nvar diagramTitle = \"\";\nvar accDescription = \"\";\nvar sanitizeText2 = /* @__PURE__ */ __name((txt) => sanitizeText(txt, getConfig()), \"sanitizeText\");\nvar clear = /* @__PURE__ */ __name(() => {\n accTitle = \"\";\n accDescription = \"\";\n diagramTitle = \"\";\n}, \"clear\");\nvar setAccTitle = /* @__PURE__ */ __name((txt) => {\n accTitle = sanitizeText2(txt).replace(/^\\s+/g, \"\");\n}, \"setAccTitle\");\nvar getAccTitle = /* @__PURE__ */ __name(() => accTitle, \"getAccTitle\");\nvar setAccDescription = /* @__PURE__ */ __name((txt) => {\n accDescription = sanitizeText2(txt).replace(/\\n\\s+/g, \"\\n\");\n}, \"setAccDescription\");\nvar getAccDescription = /* @__PURE__ */ __name(() => accDescription, \"getAccDescription\");\nvar setDiagramTitle = /* @__PURE__ */ __name((txt) => {\n diagramTitle = sanitizeText2(txt);\n}, \"setDiagramTitle\");\nvar getDiagramTitle = /* @__PURE__ */ __name(() => diagramTitle, \"getDiagramTitle\");\n\n// src/diagram-api/diagramAPI.ts\nvar log2 = log;\nvar setLogLevel2 = setLogLevel;\nvar getConfig2 = getConfig;\nvar setConfig2 = setConfig;\nvar defaultConfig2 = defaultConfig;\nvar sanitizeText3 = /* @__PURE__ */ __name((text) => sanitizeText(text, getConfig2()), \"sanitizeText\");\nvar setupGraphViewbox2 = setupGraphViewbox;\nvar getCommonDb = /* @__PURE__ */ __name(() => {\n return commonDb_exports;\n}, \"getCommonDb\");\nvar diagrams = {};\nvar registerDiagram = /* @__PURE__ */ __name((id, diagram, detector) => {\n if (diagrams[id]) {\n log2.warn(`Diagram with id ${id} already registered. Overwriting.`);\n }\n diagrams[id] = diagram;\n if (detector) {\n addDetector(id, detector);\n }\n addStylesForDiagram(id, diagram.styles);\n diagram.injectUtils?.(\n log2,\n setLogLevel2,\n getConfig2,\n sanitizeText3,\n setupGraphViewbox2,\n getCommonDb(),\n () => {\n }\n );\n}, \"registerDiagram\");\nvar getDiagram = /* @__PURE__ */ __name((name) => {\n if (name in diagrams) {\n return diagrams[name];\n }\n throw new DiagramNotFoundError(name);\n}, \"getDiagram\");\nvar DiagramNotFoundError = class extends Error {\n static {\n __name(this, \"DiagramNotFoundError\");\n }\n constructor(name) {\n super(`Diagram ${name} not found.`);\n }\n};\n\nexport {\n assignWithDepth_default,\n getThemeVariables3 as getThemeVariables,\n themes_default,\n defaultConfig_default,\n sanitizeDirective,\n defaultConfig,\n setSiteConfig,\n saveConfigFromInitialize,\n updateSiteConfig,\n getSiteConfig,\n setConfig,\n getConfig,\n addDirective,\n reset,\n getUserDefinedConfig,\n lineBreakRegex,\n sanitizeText,\n getUrl,\n evaluate,\n parseGenericTypes,\n hasKatex,\n calculateMathMLDimensions,\n renderKatexSanitized,\n common_default,\n frontMatterRegex,\n directiveRegex,\n UnknownDiagramError,\n detectors,\n detectType,\n registerLazyLoadedDiagrams,\n getDiagramLoader,\n configureSvgSize,\n setupGraphViewbox,\n styles_default,\n clear,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n setDiagramTitle,\n getDiagramTitle,\n commonDb_exports,\n getConfig2,\n setConfig2,\n defaultConfig2,\n sanitizeText3 as sanitizeText2,\n setupGraphViewbox2,\n registerDiagram,\n getDiagram\n};\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import pointRadial from \"../pointRadial.js\";\n\nclass Bump {\n constructor(context, x) {\n this._context = context;\n this._x = x;\n }\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n }\n point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: {\n this._point = 1;\n if (this._line) this._context.lineTo(x, y);\n else this._context.moveTo(x, y);\n break;\n }\n case 1: this._point = 2; // falls through\n default: {\n if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n break;\n }\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nclass BumpRadial {\n constructor(context) {\n this._context = context;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {}\n point(x, y) {\n x = +x, y = +y;\n if (this._point === 0) {\n this._point = 1;\n } else {\n const p0 = pointRadial(this._x0, this._y0);\n const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);\n const p2 = pointRadial(x, this._y0);\n const p3 = pointRadial(x, y);\n this._context.moveTo(...p0);\n this._context.bezierCurveTo(...p1, ...p2, ...p3);\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nexport function bumpX(context) {\n return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n return new Bump(context, false);\n}\n\nexport function bumpRadial(context) {\n return new BumpRadial(context);\n}\n","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // falls through\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","import {\n getConfig2 as getConfig\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/selectSvgElement.ts\nimport { select } from \"d3\";\nvar selectSvgElement = /* @__PURE__ */ __name((id) => {\n const { securityLevel } = getConfig();\n let root = select(\"body\");\n if (securityLevel === \"sandbox\") {\n const sandboxElement = select(`#i${id}`);\n const doc = sandboxElement.node()?.contentDocument ?? document;\n root = select(doc.body);\n }\n const svg = root.select(`#${id}`);\n return svg;\n}, \"selectSvgElement\");\n\nexport {\n selectSvgElement\n};\n","import {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// ../../node_modules/.pnpm/js-yaml@4.1.0/node_modules/js-yaml/dist/js-yaml.mjs\nfunction isNothing(subject) {\n return typeof subject === \"undefined\" || subject === null;\n}\n__name(isNothing, \"isNothing\");\nfunction isObject(subject) {\n return typeof subject === \"object\" && subject !== null;\n}\n__name(isObject, \"isObject\");\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n return [sequence];\n}\n__name(toArray, \"toArray\");\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n if (source) {\n sourceKeys = Object.keys(source);\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n return target;\n}\n__name(extend, \"extend\");\nfunction repeat(string, count) {\n var result = \"\", cycle;\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n return result;\n}\n__name(repeat, \"repeat\");\nfunction isNegativeZero(number) {\n return number === 0 && Number.NEGATIVE_INFINITY === 1 / number;\n}\n__name(isNegativeZero, \"isNegativeZero\");\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\nvar common = {\n isNothing: isNothing_1,\n isObject: isObject_1,\n toArray: toArray_1,\n repeat: repeat_1,\n isNegativeZero: isNegativeZero_1,\n extend: extend_1\n};\nfunction formatError(exception2, compact) {\n var where = \"\", message = exception2.reason || \"(unknown reason)\";\n if (!exception2.mark) return message;\n if (exception2.mark.name) {\n where += 'in \"' + exception2.mark.name + '\" ';\n }\n where += \"(\" + (exception2.mark.line + 1) + \":\" + (exception2.mark.column + 1) + \")\";\n if (!compact && exception2.mark.snippet) {\n where += \"\\n\\n\" + exception2.mark.snippet;\n }\n return message + \" \" + where;\n}\n__name(formatError, \"formatError\");\nfunction YAMLException$1(reason, mark) {\n Error.call(this);\n this.name = \"YAMLException\";\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = new Error().stack || \"\";\n }\n}\n__name(YAMLException$1, \"YAMLException$1\");\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\nYAMLException$1.prototype.toString = /* @__PURE__ */ __name(function toString(compact) {\n return this.name + \": \" + formatError(this, compact);\n}, \"toString\");\nvar exception = YAMLException$1;\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = \"\";\n var tail = \"\";\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n if (position - lineStart > maxHalfLength) {\n head = \" ... \";\n lineStart = position - maxHalfLength + head.length;\n }\n if (lineEnd - position > maxHalfLength) {\n tail = \" ...\";\n lineEnd = position + maxHalfLength - tail.length;\n }\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, \"\\u2192\") + tail,\n pos: position - lineStart + head.length\n // relative position\n };\n}\n__name(getLine, \"getLine\");\nfunction padStart(string, max) {\n return common.repeat(\" \", max - string.length) + string;\n}\n__name(padStart, \"padStart\");\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n if (!mark.buffer) return null;\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== \"number\") options.indent = 1;\n if (typeof options.linesBefore !== \"number\") options.linesBefore = 3;\n if (typeof options.linesAfter !== \"number\") options.linesAfter = 2;\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [0];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n while (match = re.exec(mark.buffer)) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n var result = \"\", i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(\" \", options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\" + result;\n }\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(\" \", options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\";\n result += common.repeat(\"-\", options.indent + lineNoLength + 3 + line.pos) + \"^\\n\";\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(\" \", options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + \" | \" + line.str + \"\\n\";\n }\n return result.replace(/\\n$/, \"\");\n}\n__name(makeSnippet, \"makeSnippet\");\nvar snippet = makeSnippet;\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n \"kind\",\n \"multi\",\n \"resolve\",\n \"construct\",\n \"instanceOf\",\n \"predicate\",\n \"represent\",\n \"representName\",\n \"defaultStyle\",\n \"styleAliases\"\n];\nvar YAML_NODE_KINDS = [\n \"scalar\",\n \"sequence\",\n \"mapping\"\n];\nfunction compileStyleAliases(map2) {\n var result = {};\n if (map2 !== null) {\n Object.keys(map2).forEach(function(style) {\n map2[style].forEach(function(alias) {\n result[String(alias)] = style;\n });\n });\n }\n return result;\n}\n__name(compileStyleAliases, \"compileStyleAliases\");\nfunction Type$1(tag, options) {\n options = options || {};\n Object.keys(options).forEach(function(name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n this.options = options;\n this.tag = tag;\n this.kind = options[\"kind\"] || null;\n this.resolve = options[\"resolve\"] || function() {\n return true;\n };\n this.construct = options[\"construct\"] || function(data) {\n return data;\n };\n this.instanceOf = options[\"instanceOf\"] || null;\n this.predicate = options[\"predicate\"] || null;\n this.represent = options[\"represent\"] || null;\n this.representName = options[\"representName\"] || null;\n this.defaultStyle = options[\"defaultStyle\"] || null;\n this.multi = options[\"multi\"] || false;\n this.styleAliases = compileStyleAliases(options[\"styleAliases\"] || null);\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n__name(Type$1, \"Type$1\");\nvar type = Type$1;\nfunction compileList(schema2, name) {\n var result = [];\n schema2[name].forEach(function(currentType) {\n var newIndex = result.length;\n result.forEach(function(previousType, previousIndex) {\n if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) {\n newIndex = previousIndex;\n }\n });\n result[newIndex] = currentType;\n });\n return result;\n}\n__name(compileList, \"compileList\");\nfunction compileMap() {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n function collectType(type2) {\n if (type2.multi) {\n result.multi[type2.kind].push(type2);\n result.multi[\"fallback\"].push(type2);\n } else {\n result[type2.kind][type2.tag] = result[\"fallback\"][type2.tag] = type2;\n }\n }\n __name(collectType, \"collectType\");\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n__name(compileMap, \"compileMap\");\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\n__name(Schema$1, \"Schema$1\");\nSchema$1.prototype.extend = /* @__PURE__ */ __name(function extend2(definition) {\n var implicit = [];\n var explicit = [];\n if (definition instanceof type) {\n explicit.push(definition);\n } else if (Array.isArray(definition)) {\n explicit = explicit.concat(definition);\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n } else {\n throw new exception(\"Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })\");\n }\n implicit.forEach(function(type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");\n }\n if (type$1.loadKind && type$1.loadKind !== \"scalar\") {\n throw new exception(\"There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.\");\n }\n if (type$1.multi) {\n throw new exception(\"There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.\");\n }\n });\n explicit.forEach(function(type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception(\"Specified list of YAML types (or a single Type object) contains a non-Type object.\");\n }\n });\n var result = Object.create(Schema$1.prototype);\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n result.compiledImplicit = compileList(result, \"implicit\");\n result.compiledExplicit = compileList(result, \"explicit\");\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n return result;\n}, \"extend\");\nvar schema = Schema$1;\nvar str = new type(\"tag:yaml.org,2002:str\", {\n kind: \"scalar\",\n construct: /* @__PURE__ */ __name(function(data) {\n return data !== null ? data : \"\";\n }, \"construct\")\n});\nvar seq = new type(\"tag:yaml.org,2002:seq\", {\n kind: \"sequence\",\n construct: /* @__PURE__ */ __name(function(data) {\n return data !== null ? data : [];\n }, \"construct\")\n});\nvar map = new type(\"tag:yaml.org,2002:map\", {\n kind: \"mapping\",\n construct: /* @__PURE__ */ __name(function(data) {\n return data !== null ? data : {};\n }, \"construct\")\n});\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n var max = data.length;\n return max === 1 && data === \"~\" || max === 4 && (data === \"null\" || data === \"Null\" || data === \"NULL\");\n}\n__name(resolveYamlNull, \"resolveYamlNull\");\nfunction constructYamlNull() {\n return null;\n}\n__name(constructYamlNull, \"constructYamlNull\");\nfunction isNull(object) {\n return object === null;\n}\n__name(isNull, \"isNull\");\nvar _null = new type(\"tag:yaml.org,2002:null\", {\n kind: \"scalar\",\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: /* @__PURE__ */ __name(function() {\n return \"~\";\n }, \"canonical\"),\n lowercase: /* @__PURE__ */ __name(function() {\n return \"null\";\n }, \"lowercase\"),\n uppercase: /* @__PURE__ */ __name(function() {\n return \"NULL\";\n }, \"uppercase\"),\n camelcase: /* @__PURE__ */ __name(function() {\n return \"Null\";\n }, \"camelcase\"),\n empty: /* @__PURE__ */ __name(function() {\n return \"\";\n }, \"empty\")\n },\n defaultStyle: \"lowercase\"\n});\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n var max = data.length;\n return max === 4 && (data === \"true\" || data === \"True\" || data === \"TRUE\") || max === 5 && (data === \"false\" || data === \"False\" || data === \"FALSE\");\n}\n__name(resolveYamlBoolean, \"resolveYamlBoolean\");\nfunction constructYamlBoolean(data) {\n return data === \"true\" || data === \"True\" || data === \"TRUE\";\n}\n__name(constructYamlBoolean, \"constructYamlBoolean\");\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === \"[object Boolean]\";\n}\n__name(isBoolean, \"isBoolean\");\nvar bool = new type(\"tag:yaml.org,2002:bool\", {\n kind: \"scalar\",\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: /* @__PURE__ */ __name(function(object) {\n return object ? \"true\" : \"false\";\n }, \"lowercase\"),\n uppercase: /* @__PURE__ */ __name(function(object) {\n return object ? \"TRUE\" : \"FALSE\";\n }, \"uppercase\"),\n camelcase: /* @__PURE__ */ __name(function(object) {\n return object ? \"True\" : \"False\";\n }, \"camelcase\")\n },\n defaultStyle: \"lowercase\"\n});\nfunction isHexCode(c) {\n return 48 <= c && c <= 57 || 65 <= c && c <= 70 || 97 <= c && c <= 102;\n}\n__name(isHexCode, \"isHexCode\");\nfunction isOctCode(c) {\n return 48 <= c && c <= 55;\n}\n__name(isOctCode, \"isOctCode\");\nfunction isDecCode(c) {\n return 48 <= c && c <= 57;\n}\n__name(isDecCode, \"isDecCode\");\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n var max = data.length, index = 0, hasDigits = false, ch;\n if (!max) return false;\n ch = data[index];\n if (ch === \"-\" || ch === \"+\") {\n ch = data[++index];\n }\n if (ch === \"0\") {\n if (index + 1 === max) return true;\n ch = data[++index];\n if (ch === \"b\") {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\") continue;\n if (ch !== \"0\" && ch !== \"1\") return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n if (ch === \"x\") {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\") continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n if (ch === \"o\") {\n index++;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\") continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n }\n if (ch === \"_\") return false;\n for (; index < max; index++) {\n ch = data[index];\n if (ch === \"_\") continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n if (!hasDigits || ch === \"_\") return false;\n return true;\n}\n__name(resolveYamlInteger, \"resolveYamlInteger\");\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n if (value.indexOf(\"_\") !== -1) {\n value = value.replace(/_/g, \"\");\n }\n ch = value[0];\n if (ch === \"-\" || ch === \"+\") {\n if (ch === \"-\") sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n if (value === \"0\") return 0;\n if (ch === \"0\") {\n if (value[1] === \"b\") return sign * parseInt(value.slice(2), 2);\n if (value[1] === \"x\") return sign * parseInt(value.slice(2), 16);\n if (value[1] === \"o\") return sign * parseInt(value.slice(2), 8);\n }\n return sign * parseInt(value, 10);\n}\n__name(constructYamlInteger, \"constructYamlInteger\");\nfunction isInteger(object) {\n return Object.prototype.toString.call(object) === \"[object Number]\" && (object % 1 === 0 && !common.isNegativeZero(object));\n}\n__name(isInteger, \"isInteger\");\nvar int = new type(\"tag:yaml.org,2002:int\", {\n kind: \"scalar\",\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: /* @__PURE__ */ __name(function(obj) {\n return obj >= 0 ? \"0b\" + obj.toString(2) : \"-0b\" + obj.toString(2).slice(1);\n }, \"binary\"),\n octal: /* @__PURE__ */ __name(function(obj) {\n return obj >= 0 ? \"0o\" + obj.toString(8) : \"-0o\" + obj.toString(8).slice(1);\n }, \"octal\"),\n decimal: /* @__PURE__ */ __name(function(obj) {\n return obj.toString(10);\n }, \"decimal\"),\n /* eslint-disable max-len */\n hexadecimal: /* @__PURE__ */ __name(function(obj) {\n return obj >= 0 ? \"0x\" + obj.toString(16).toUpperCase() : \"-0x\" + obj.toString(16).toUpperCase().slice(1);\n }, \"hexadecimal\")\n },\n defaultStyle: \"decimal\",\n styleAliases: {\n binary: [2, \"bin\"],\n octal: [8, \"oct\"],\n decimal: [10, \"dec\"],\n hexadecimal: [16, \"hex\"]\n }\n});\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n \"^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\"\n);\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === \"_\") {\n return false;\n }\n return true;\n}\n__name(resolveYamlFloat, \"resolveYamlFloat\");\nfunction constructYamlFloat(data) {\n var value, sign;\n value = data.replace(/_/g, \"\").toLowerCase();\n sign = value[0] === \"-\" ? -1 : 1;\n if (\"+-\".indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n if (value === \".inf\") {\n return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n } else if (value === \".nan\") {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\n__name(constructYamlFloat, \"constructYamlFloat\");\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\nfunction representYamlFloat(object, style) {\n var res;\n if (isNaN(object)) {\n switch (style) {\n case \"lowercase\":\n return \".nan\";\n case \"uppercase\":\n return \".NAN\";\n case \"camelcase\":\n return \".NaN\";\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case \"lowercase\":\n return \".inf\";\n case \"uppercase\":\n return \".INF\";\n case \"camelcase\":\n return \".Inf\";\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case \"lowercase\":\n return \"-.inf\";\n case \"uppercase\":\n return \"-.INF\";\n case \"camelcase\":\n return \"-.Inf\";\n }\n } else if (common.isNegativeZero(object)) {\n return \"-0.0\";\n }\n res = object.toString(10);\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace(\"e\", \".e\") : res;\n}\n__name(representYamlFloat, \"representYamlFloat\");\nfunction isFloat(object) {\n return Object.prototype.toString.call(object) === \"[object Number]\" && (object % 1 !== 0 || common.isNegativeZero(object));\n}\n__name(isFloat, \"isFloat\");\nvar float = new type(\"tag:yaml.org,2002:float\", {\n kind: \"scalar\",\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: \"lowercase\"\n});\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\nvar core = json;\nvar YAML_DATE_REGEXP = new RegExp(\n \"^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$\"\n);\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n \"^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\\\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\\\.([0-9]*))?(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$\"\n);\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n__name(resolveYamlTimestamp, \"resolveYamlTimestamp\");\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date;\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n if (match === null) throw new Error(\"Date resolve error\");\n year = +match[1];\n month = +match[2] - 1;\n day = +match[3];\n if (!match[4]) {\n return new Date(Date.UTC(year, month, day));\n }\n hour = +match[4];\n minute = +match[5];\n second = +match[6];\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) {\n fraction += \"0\";\n }\n fraction = +fraction;\n }\n if (match[9]) {\n tz_hour = +match[10];\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 6e4;\n if (match[9] === \"-\") delta = -delta;\n }\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n if (delta) date.setTime(date.getTime() - delta);\n return date;\n}\n__name(constructYamlTimestamp, \"constructYamlTimestamp\");\nfunction representYamlTimestamp(object) {\n return object.toISOString();\n}\n__name(representYamlTimestamp, \"representYamlTimestamp\");\nvar timestamp = new type(\"tag:yaml.org,2002:timestamp\", {\n kind: \"scalar\",\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\nfunction resolveYamlMerge(data) {\n return data === \"<<\" || data === null;\n}\n__name(resolveYamlMerge, \"resolveYamlMerge\");\nvar merge = new type(\"tag:yaml.org,2002:merge\", {\n kind: \"scalar\",\n resolve: resolveYamlMerge\n});\nvar BASE64_MAP = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r\";\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n var code, idx, bitlen = 0, max = data.length, map2 = BASE64_MAP;\n for (idx = 0; idx < max; idx++) {\n code = map2.indexOf(data.charAt(idx));\n if (code > 64) continue;\n if (code < 0) return false;\n bitlen += 6;\n }\n return bitlen % 8 === 0;\n}\n__name(resolveYamlBinary, \"resolveYamlBinary\");\nfunction constructYamlBinary(data) {\n var idx, tailbits, input = data.replace(/[\\r\\n=]/g, \"\"), max = input.length, map2 = BASE64_MAP, bits = 0, result = [];\n for (idx = 0; idx < max; idx++) {\n if (idx % 4 === 0 && idx) {\n result.push(bits >> 16 & 255);\n result.push(bits >> 8 & 255);\n result.push(bits & 255);\n }\n bits = bits << 6 | map2.indexOf(input.charAt(idx));\n }\n tailbits = max % 4 * 6;\n if (tailbits === 0) {\n result.push(bits >> 16 & 255);\n result.push(bits >> 8 & 255);\n result.push(bits & 255);\n } else if (tailbits === 18) {\n result.push(bits >> 10 & 255);\n result.push(bits >> 2 & 255);\n } else if (tailbits === 12) {\n result.push(bits >> 4 & 255);\n }\n return new Uint8Array(result);\n}\n__name(constructYamlBinary, \"constructYamlBinary\");\nfunction representYamlBinary(object) {\n var result = \"\", bits = 0, idx, tail, max = object.length, map2 = BASE64_MAP;\n for (idx = 0; idx < max; idx++) {\n if (idx % 3 === 0 && idx) {\n result += map2[bits >> 18 & 63];\n result += map2[bits >> 12 & 63];\n result += map2[bits >> 6 & 63];\n result += map2[bits & 63];\n }\n bits = (bits << 8) + object[idx];\n }\n tail = max % 3;\n if (tail === 0) {\n result += map2[bits >> 18 & 63];\n result += map2[bits >> 12 & 63];\n result += map2[bits >> 6 & 63];\n result += map2[bits & 63];\n } else if (tail === 2) {\n result += map2[bits >> 10 & 63];\n result += map2[bits >> 4 & 63];\n result += map2[bits << 2 & 63];\n result += map2[64];\n } else if (tail === 1) {\n result += map2[bits >> 2 & 63];\n result += map2[bits << 4 & 63];\n result += map2[64];\n result += map2[64];\n }\n return result;\n}\n__name(representYamlBinary, \"representYamlBinary\");\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === \"[object Uint8Array]\";\n}\n__name(isBinary, \"isBinary\");\nvar binary = new type(\"tag:yaml.org,2002:binary\", {\n kind: \"scalar\",\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data;\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n if (_toString$2.call(pair) !== \"[object Object]\") return false;\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n if (!pairHasKey) return false;\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n return true;\n}\n__name(resolveYamlOmap, \"resolveYamlOmap\");\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n__name(constructYamlOmap, \"constructYamlOmap\");\nvar omap = new type(\"tag:yaml.org,2002:omap\", {\n kind: \"sequence\",\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\nvar _toString$1 = Object.prototype.toString;\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n var index, length, pair, keys, result, object = data;\n result = new Array(object.length);\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n if (_toString$1.call(pair) !== \"[object Object]\") return false;\n keys = Object.keys(pair);\n if (keys.length !== 1) return false;\n result[index] = [keys[0], pair[keys[0]]];\n }\n return true;\n}\n__name(resolveYamlPairs, \"resolveYamlPairs\");\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n var index, length, pair, keys, result, object = data;\n result = new Array(object.length);\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n keys = Object.keys(pair);\n result[index] = [keys[0], pair[keys[0]]];\n }\n return result;\n}\n__name(constructYamlPairs, \"constructYamlPairs\");\nvar pairs = new type(\"tag:yaml.org,2002:pairs\", {\n kind: \"sequence\",\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n var key, object = data;\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n return true;\n}\n__name(resolveYamlSet, \"resolveYamlSet\");\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n__name(constructYamlSet, \"constructYamlSet\");\nvar set = new type(\"tag:yaml.org,2002:set\", {\n kind: \"mapping\",\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\nfunction _class(obj) {\n return Object.prototype.toString.call(obj);\n}\n__name(_class, \"_class\");\nfunction is_EOL(c) {\n return c === 10 || c === 13;\n}\n__name(is_EOL, \"is_EOL\");\nfunction is_WHITE_SPACE(c) {\n return c === 9 || c === 32;\n}\n__name(is_WHITE_SPACE, \"is_WHITE_SPACE\");\nfunction is_WS_OR_EOL(c) {\n return c === 9 || c === 32 || c === 10 || c === 13;\n}\n__name(is_WS_OR_EOL, \"is_WS_OR_EOL\");\nfunction is_FLOW_INDICATOR(c) {\n return c === 44 || c === 91 || c === 93 || c === 123 || c === 125;\n}\n__name(is_FLOW_INDICATOR, \"is_FLOW_INDICATOR\");\nfunction fromHexCode(c) {\n var lc;\n if (48 <= c && c <= 57) {\n return c - 48;\n }\n lc = c | 32;\n if (97 <= lc && lc <= 102) {\n return lc - 97 + 10;\n }\n return -1;\n}\n__name(fromHexCode, \"fromHexCode\");\nfunction escapedHexLen(c) {\n if (c === 120) {\n return 2;\n }\n if (c === 117) {\n return 4;\n }\n if (c === 85) {\n return 8;\n }\n return 0;\n}\n__name(escapedHexLen, \"escapedHexLen\");\nfunction fromDecimalCode(c) {\n if (48 <= c && c <= 57) {\n return c - 48;\n }\n return -1;\n}\n__name(fromDecimalCode, \"fromDecimalCode\");\nfunction simpleEscapeSequence(c) {\n return c === 48 ? \"\\0\" : c === 97 ? \"\\x07\" : c === 98 ? \"\\b\" : c === 116 ? \"\t\" : c === 9 ? \"\t\" : c === 110 ? \"\\n\" : c === 118 ? \"\\v\" : c === 102 ? \"\\f\" : c === 114 ? \"\\r\" : c === 101 ? \"\\x1B\" : c === 32 ? \" \" : c === 34 ? '\"' : c === 47 ? \"/\" : c === 92 ? \"\\\\\" : c === 78 ? \"\\x85\" : c === 95 ? \"\\xA0\" : c === 76 ? \"\\u2028\" : c === 80 ? \"\\u2029\" : \"\";\n}\n__name(simpleEscapeSequence, \"simpleEscapeSequence\");\nfunction charFromCodepoint(c) {\n if (c <= 65535) {\n return String.fromCharCode(c);\n }\n return String.fromCharCode(\n (c - 65536 >> 10) + 55296,\n (c - 65536 & 1023) + 56320\n );\n}\n__name(charFromCodepoint, \"charFromCodepoint\");\nvar simpleEscapeCheck = new Array(256);\nvar simpleEscapeMap = new Array(256);\nfor (i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\nvar i;\nfunction State$1(input, options) {\n this.input = input;\n this.filename = options[\"filename\"] || null;\n this.schema = options[\"schema\"] || _default;\n this.onWarning = options[\"onWarning\"] || null;\n this.legacy = options[\"legacy\"] || false;\n this.json = options[\"json\"] || false;\n this.listener = options[\"listener\"] || null;\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n this.firstTabInLine = -1;\n this.documents = [];\n}\n__name(State$1, \"State$1\");\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1),\n // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n mark.snippet = snippet(mark);\n return new exception(message, mark);\n}\n__name(generateError, \"generateError\");\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n__name(throwError, \"throwError\");\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n__name(throwWarning, \"throwWarning\");\nvar directiveHandlers = {\n YAML: /* @__PURE__ */ __name(function handleYamlDirective(state, name, args) {\n var match, major, minor;\n if (state.version !== null) {\n throwError(state, \"duplication of %YAML directive\");\n }\n if (args.length !== 1) {\n throwError(state, \"YAML directive accepts exactly one argument\");\n }\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n if (match === null) {\n throwError(state, \"ill-formed argument of the YAML directive\");\n }\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n if (major !== 1) {\n throwError(state, \"unacceptable YAML version of the document\");\n }\n state.version = args[0];\n state.checkLineBreaks = minor < 2;\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, \"unsupported YAML version of the document\");\n }\n }, \"handleYamlDirective\"),\n TAG: /* @__PURE__ */ __name(function handleTagDirective(state, name, args) {\n var handle, prefix;\n if (args.length !== 2) {\n throwError(state, \"TAG directive accepts exactly two arguments\");\n }\n handle = args[0];\n prefix = args[1];\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, \"ill-formed tag handle (first argument) of the TAG directive\");\n }\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, \"ill-formed tag prefix (second argument) of the TAG directive\");\n }\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, \"tag prefix is malformed: \" + prefix);\n }\n state.tagMap[handle] = prefix;\n }, \"handleTagDirective\")\n};\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n if (start < end) {\n _result = state.input.slice(start, end);\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 9 || 32 <= _character && _character <= 1114111)) {\n throwError(state, \"expected valid JSON character\");\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, \"the stream contains non-printable characters\");\n }\n state.result += _result;\n }\n}\n__name(captureSegment, \"captureSegment\");\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n if (!common.isObject(source)) {\n throwError(state, \"cannot merge mappings; the provided source object is unacceptable\");\n }\n sourceKeys = Object.keys(source);\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n if (!_hasOwnProperty$1.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n__name(mergeMappings, \"mergeMappings\");\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) {\n var index, quantity;\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, \"nested arrays are not supported inside keys\");\n }\n if (typeof keyNode === \"object\" && _class(keyNode[index]) === \"[object Object]\") {\n keyNode[index] = \"[object Object]\";\n }\n }\n }\n if (typeof keyNode === \"object\" && _class(keyNode) === \"[object Object]\") {\n keyNode = \"[object Object]\";\n }\n keyNode = String(keyNode);\n if (_result === null) {\n _result = {};\n }\n if (keyTag === \"tag:yaml.org,2002:merge\") {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, \"duplicated mapping key\");\n }\n if (keyNode === \"__proto__\") {\n Object.defineProperty(_result, keyNode, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: valueNode\n });\n } else {\n _result[keyNode] = valueNode;\n }\n delete overridableKeys[keyNode];\n }\n return _result;\n}\n__name(storeMappingPair, \"storeMappingPair\");\nfunction readLineBreak(state) {\n var ch;\n ch = state.input.charCodeAt(state.position);\n if (ch === 10) {\n state.position++;\n } else if (ch === 13) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 10) {\n state.position++;\n }\n } else {\n throwError(state, \"a line break is expected\");\n }\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\n__name(readLineBreak, \"readLineBreak\");\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0, ch = state.input.charCodeAt(state.position);\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 9 && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n if (allowComments && ch === 35) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 10 && ch !== 13 && ch !== 0);\n }\n if (is_EOL(ch)) {\n readLineBreak(state);\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n while (ch === 32) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, \"deficient indentation\");\n }\n return lineBreaks;\n}\n__name(skipSeparationSpace, \"skipSeparationSpace\");\nfunction testDocumentSeparator(state) {\n var _position = state.position, ch;\n ch = state.input.charCodeAt(_position);\n if ((ch === 45 || ch === 46) && ch === state.input.charCodeAt(_position + 1) && ch === state.input.charCodeAt(_position + 2)) {\n _position += 3;\n ch = state.input.charCodeAt(_position);\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n return false;\n}\n__name(testDocumentSeparator, \"testDocumentSeparator\");\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += \" \";\n } else if (count > 1) {\n state.result += common.repeat(\"\\n\", count - 1);\n }\n}\n__name(writeFoldedLines, \"writeFoldedLines\");\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state.kind, _result = state.result, ch;\n ch = state.input.charCodeAt(state.position);\n if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) {\n return false;\n }\n if (ch === 63 || ch === 45) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n state.kind = \"scalar\";\n state.result = \"\";\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n while (ch !== 0) {\n if (ch === 58) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n } else if (ch === 35) {\n preceding = state.input.charCodeAt(state.position - 1);\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n } else if (state.position === state.lineStart && testDocumentSeparator(state) || withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n captureSegment(state, captureStart, captureEnd, false);\n if (state.result) {\n return true;\n }\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n__name(readPlainScalar, \"readPlainScalar\");\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch, captureStart, captureEnd;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 39) {\n return false;\n }\n state.kind = \"scalar\";\n state.result = \"\";\n state.position++;\n captureStart = captureEnd = state.position;\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 39) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n if (ch === 39) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, \"unexpected end of the document within a single quoted scalar\");\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n throwError(state, \"unexpected end of the stream within a single quoted scalar\");\n}\n__name(readSingleQuotedScalar, \"readSingleQuotedScalar\");\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart, captureEnd, hexLength, hexResult, tmp, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 34) {\n return false;\n }\n state.kind = \"scalar\";\n state.result = \"\";\n state.position++;\n captureStart = captureEnd = state.position;\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 34) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n } else if (ch === 92) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n } else {\n throwError(state, \"expected hexadecimal character\");\n }\n }\n state.result += charFromCodepoint(hexResult);\n state.position++;\n } else {\n throwError(state, \"unknown escape sequence\");\n }\n captureStart = captureEnd = state.position;\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, \"unexpected end of the document within a double quoted scalar\");\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n throwError(state, \"unexpected end of the stream within a double quoted scalar\");\n}\n__name(readDoubleQuotedScalar, \"readDoubleQuotedScalar\");\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true, _line, _lineStart, _pos, _tag = state.tag, _result, _anchor = state.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = /* @__PURE__ */ Object.create(null), keyNode, keyTag, valueNode, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch === 91) {\n terminator = 93;\n isMapping = false;\n _result = [];\n } else if (ch === 123) {\n terminator = 125;\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n ch = state.input.charCodeAt(++state.position);\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? \"mapping\" : \"sequence\";\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, \"missed comma between flow collection entries\");\n } else if (ch === 44) {\n throwError(state, \"expected the node content, but found ','\");\n }\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n if (ch === 63) {\n following = state.input.charCodeAt(state.position + 1);\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n _line = state.line;\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if ((isExplicitPair || state.line === _line) && ch === 58) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n skipSeparationSpace(state, true, nodeIndent);\n ch = state.input.charCodeAt(state.position);\n if (ch === 44) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n throwError(state, \"unexpected end of the stream within a flow collection\");\n}\n__name(readFlowCollection, \"readFlowCollection\");\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch === 124) {\n folding = false;\n } else if (ch === 62) {\n folding = true;\n } else {\n return false;\n }\n state.kind = \"scalar\";\n state.result = \"\";\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n if (ch === 43 || ch === 45) {\n if (CHOMPING_CLIP === chomping) {\n chomping = ch === 43 ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, \"repeat of a chomping mode identifier\");\n }\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, \"bad explicit indentation width of a block scalar; it cannot be less than one\");\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, \"repeat of an indentation width identifier\");\n }\n } else {\n break;\n }\n }\n if (is_WHITE_SPACE(ch)) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (is_WHITE_SPACE(ch));\n if (ch === 35) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (!is_EOL(ch) && ch !== 0);\n }\n }\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n ch = state.input.charCodeAt(state.position);\n while ((!detectedIndent || state.lineIndent < textIndent) && ch === 32) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n if (state.lineIndent < textIndent) {\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) {\n state.result += \"\\n\";\n }\n }\n break;\n }\n if (folding) {\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n state.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat(\"\\n\", emptyLines + 1);\n } else if (emptyLines === 0) {\n if (didReadContent) {\n state.result += \" \";\n }\n } else {\n state.result += common.repeat(\"\\n\", emptyLines);\n }\n } else {\n state.result += common.repeat(\"\\n\", didReadContent ? 1 + emptyLines : emptyLines);\n }\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n while (!is_EOL(ch) && ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n }\n captureSegment(state, captureStart, state.position, false);\n }\n return true;\n}\n__name(readBlockScalar, \"readBlockScalar\");\nfunction readBlockSequence(state, nodeIndent) {\n var _line, _tag = state.tag, _anchor = state.anchor, _result = [], following, detected = false, ch;\n if (state.firstTabInLine !== -1) return false;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n ch = state.input.charCodeAt(state.position);\n while (ch !== 0) {\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, \"tab characters must not be used in indentation\");\n }\n if (ch !== 45) {\n break;\n }\n following = state.input.charCodeAt(state.position + 1);\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n detected = true;\n state.position++;\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) {\n throwError(state, \"bad indentation of a sequence entry\");\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = \"sequence\";\n state.result = _result;\n return true;\n }\n return false;\n}\n__name(readBlockSequence, \"readBlockSequence\");\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state.tag, _anchor = state.anchor, _result = {}, overridableKeys = /* @__PURE__ */ Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch;\n if (state.firstTabInLine !== -1) return false;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n ch = state.input.charCodeAt(state.position);\n while (ch !== 0) {\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, \"tab characters must not be used in indentation\");\n }\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line;\n if ((ch === 63 || ch === 58) && is_WS_OR_EOL(following)) {\n if (ch === 63) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n } else if (atExplicitKey) {\n atExplicitKey = false;\n allowCompact = true;\n } else {\n throwError(state, \"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line\");\n }\n state.position += 1;\n ch = following;\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n break;\n }\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (ch === 58) {\n ch = state.input.charCodeAt(++state.position);\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, \"a whitespace character is expected after the key-value separator within a block mapping\");\n }\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n } else if (detected) {\n throwError(state, \"can not read an implicit mapping pair; a colon is missed\");\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true;\n }\n } else if (detected) {\n throwError(state, \"can not read a block mapping entry; a multiline key may not be an implicit key\");\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true;\n }\n }\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n if ((state.line === _line || state.lineIndent > nodeIndent) && ch !== 0) {\n throwError(state, \"bad indentation of a mapping entry\");\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = \"mapping\";\n state.result = _result;\n }\n return detected;\n}\n__name(readBlockMapping, \"readBlockMapping\");\nfunction readTagProperty(state) {\n var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 33) return false;\n if (state.tag !== null) {\n throwError(state, \"duplication of a tag property\");\n }\n ch = state.input.charCodeAt(++state.position);\n if (ch === 60) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n } else if (ch === 33) {\n isNamed = true;\n tagHandle = \"!!\";\n ch = state.input.charCodeAt(++state.position);\n } else {\n tagHandle = \"!\";\n }\n _position = state.position;\n if (isVerbatim) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0 && ch !== 62);\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, \"unexpected end of the stream within a verbatim tag\");\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n if (ch === 33) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, \"named tag handle cannot contain such characters\");\n }\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, \"tag suffix cannot contain exclamation marks\");\n }\n }\n ch = state.input.charCodeAt(++state.position);\n }\n tagName = state.input.slice(_position, state.position);\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, \"tag suffix cannot contain flow indicator characters\");\n }\n }\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, \"tag name cannot contain such characters: \" + tagName);\n }\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, \"tag name is malformed: \" + tagName);\n }\n if (isVerbatim) {\n state.tag = tagName;\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n } else if (tagHandle === \"!\") {\n state.tag = \"!\" + tagName;\n } else if (tagHandle === \"!!\") {\n state.tag = \"tag:yaml.org,2002:\" + tagName;\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n return true;\n}\n__name(readTagProperty, \"readTagProperty\");\nfunction readAnchorProperty(state) {\n var _position, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 38) return false;\n if (state.anchor !== null) {\n throwError(state, \"duplication of an anchor property\");\n }\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (state.position === _position) {\n throwError(state, \"name of an anchor node must contain at least one character\");\n }\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n__name(readAnchorProperty, \"readAnchorProperty\");\nfunction readAlias(state) {\n var _position, alias, ch;\n ch = state.input.charCodeAt(state.position);\n if (ch !== 42) return false;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (state.position === _position) {\n throwError(state, \"name of an alias node must contain at least one character\");\n }\n alias = state.input.slice(_position, state.position);\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n__name(readAlias, \"readAlias\");\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type2, flowIndent, blockIndent;\n if (state.listener !== null) {\n state.listener(\"open\", state);\n }\n state.tag = null;\n state.anchor = null;\n state.kind = null;\n state.result = null;\n allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext;\n if (allowToSeek) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n blockIndent = state.position - state.lineStart;\n if (indentStatus === 1) {\n if (allowBlockCollections && (readBlockSequence(state, blockIndent) || readBlockMapping(state, blockIndent, flowIndent)) || readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if (allowBlockScalars && readBlockScalar(state, flowIndent) || readSingleQuotedScalar(state, flowIndent) || readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n } else if (readAlias(state)) {\n hasContent = true;\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, \"alias node should not have any properties\");\n }\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n if (state.tag === null) {\n state.tag = \"?\";\n }\n }\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n } else if (state.tag === \"?\") {\n if (state.result !== null && state.kind !== \"scalar\") {\n throwError(state, 'unacceptable node kind for !<?> tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type2 = state.implicitTypes[typeIndex];\n if (type2.resolve(state.result)) {\n state.result = type2.construct(state.result);\n state.tag = type2.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (state.tag !== \"!\") {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || \"fallback\"], state.tag)) {\n type2 = state.typeMap[state.kind || \"fallback\"][state.tag];\n } else {\n type2 = null;\n typeList = state.typeMap.multi[state.kind || \"fallback\"];\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type2 = typeList[typeIndex];\n break;\n }\n }\n }\n if (!type2) {\n throwError(state, \"unknown tag !<\" + state.tag + \">\");\n }\n if (state.result !== null && type2.kind !== state.kind) {\n throwError(state, \"unacceptable node kind for !<\" + state.tag + '> tag; it should be \"' + type2.kind + '\", not \"' + state.kind + '\"');\n }\n if (!type2.resolve(state.result, state.tag)) {\n throwError(state, \"cannot resolve a node with !<\" + state.tag + \"> explicit tag\");\n } else {\n state.result = type2.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n if (state.listener !== null) {\n state.listener(\"close\", state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n__name(composeNode, \"composeNode\");\nfunction readDocument(state) {\n var documentStart = state.position, _position, directiveName, directiveArgs, hasDirectives = false, ch;\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = /* @__PURE__ */ Object.create(null);\n state.anchorMap = /* @__PURE__ */ Object.create(null);\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n if (state.lineIndent > 0 || ch !== 37) {\n break;\n }\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n if (directiveName.length < 1) {\n throwError(state, \"directive name must not be less than one character in length\");\n }\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n if (ch === 35) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0 && !is_EOL(ch));\n break;\n }\n if (is_EOL(ch)) break;\n _position = state.position;\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n if (ch !== 0) readLineBreak(state);\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n skipSeparationSpace(state, true, -1);\n if (state.lineIndent === 0 && state.input.charCodeAt(state.position) === 45 && state.input.charCodeAt(state.position + 1) === 45 && state.input.charCodeAt(state.position + 2) === 45) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n } else if (hasDirectives) {\n throwError(state, \"directives end mark is expected\");\n }\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n if (state.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, \"non-ASCII line breaks are interpreted as content\");\n }\n state.documents.push(state.result);\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n if (state.input.charCodeAt(state.position) === 46) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n if (state.position < state.length - 1) {\n throwError(state, \"end of the stream or a document separator is expected\");\n } else {\n return;\n }\n}\n__name(readDocument, \"readDocument\");\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n if (input.length !== 0) {\n if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) {\n input += \"\\n\";\n }\n if (input.charCodeAt(0) === 65279) {\n input = input.slice(1);\n }\n }\n var state = new State$1(input, options);\n var nullpos = input.indexOf(\"\\0\");\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, \"null byte is not allowed in input\");\n }\n state.input += \"\\0\";\n while (state.input.charCodeAt(state.position) === 32) {\n state.lineIndent += 1;\n state.position += 1;\n }\n while (state.position < state.length - 1) {\n readDocument(state);\n }\n return state.documents;\n}\n__name(loadDocuments, \"loadDocuments\");\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === \"object\" && typeof options === \"undefined\") {\n options = iterator;\n iterator = null;\n }\n var documents = loadDocuments(input, options);\n if (typeof iterator !== \"function\") {\n return documents;\n }\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n__name(loadAll$1, \"loadAll$1\");\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n if (documents.length === 0) {\n return void 0;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception(\"expected a single document in the stream, but found more\");\n}\n__name(load$1, \"load$1\");\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\nvar loader = {\n loadAll: loadAll_1,\n load: load_1\n};\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\nvar CHAR_BOM = 65279;\nvar CHAR_TAB = 9;\nvar CHAR_LINE_FEED = 10;\nvar CHAR_CARRIAGE_RETURN = 13;\nvar CHAR_SPACE = 32;\nvar CHAR_EXCLAMATION = 33;\nvar CHAR_DOUBLE_QUOTE = 34;\nvar CHAR_SHARP = 35;\nvar CHAR_PERCENT = 37;\nvar CHAR_AMPERSAND = 38;\nvar CHAR_SINGLE_QUOTE = 39;\nvar CHAR_ASTERISK = 42;\nvar CHAR_COMMA = 44;\nvar CHAR_MINUS = 45;\nvar CHAR_COLON = 58;\nvar CHAR_EQUALS = 61;\nvar CHAR_GREATER_THAN = 62;\nvar CHAR_QUESTION = 63;\nvar CHAR_COMMERCIAL_AT = 64;\nvar CHAR_LEFT_SQUARE_BRACKET = 91;\nvar CHAR_RIGHT_SQUARE_BRACKET = 93;\nvar CHAR_GRAVE_ACCENT = 96;\nvar CHAR_LEFT_CURLY_BRACKET = 123;\nvar CHAR_VERTICAL_LINE = 124;\nvar CHAR_RIGHT_CURLY_BRACKET = 125;\nvar ESCAPE_SEQUENCES = {};\nESCAPE_SEQUENCES[0] = \"\\\\0\";\nESCAPE_SEQUENCES[7] = \"\\\\a\";\nESCAPE_SEQUENCES[8] = \"\\\\b\";\nESCAPE_SEQUENCES[9] = \"\\\\t\";\nESCAPE_SEQUENCES[10] = \"\\\\n\";\nESCAPE_SEQUENCES[11] = \"\\\\v\";\nESCAPE_SEQUENCES[12] = \"\\\\f\";\nESCAPE_SEQUENCES[13] = \"\\\\r\";\nESCAPE_SEQUENCES[27] = \"\\\\e\";\nESCAPE_SEQUENCES[34] = '\\\\\"';\nESCAPE_SEQUENCES[92] = \"\\\\\\\\\";\nESCAPE_SEQUENCES[133] = \"\\\\N\";\nESCAPE_SEQUENCES[160] = \"\\\\_\";\nESCAPE_SEQUENCES[8232] = \"\\\\L\";\nESCAPE_SEQUENCES[8233] = \"\\\\P\";\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n \"y\",\n \"Y\",\n \"yes\",\n \"Yes\",\n \"YES\",\n \"on\",\n \"On\",\n \"ON\",\n \"n\",\n \"N\",\n \"no\",\n \"No\",\n \"NO\",\n \"off\",\n \"Off\",\n \"OFF\"\n];\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\nfunction compileStyleMap(schema2, map2) {\n var result, keys, index, length, tag, style, type2;\n if (map2 === null) return {};\n result = {};\n keys = Object.keys(map2);\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map2[tag]);\n if (tag.slice(0, 2) === \"!!\") {\n tag = \"tag:yaml.org,2002:\" + tag.slice(2);\n }\n type2 = schema2.compiledTypeMap[\"fallback\"][tag];\n if (type2 && _hasOwnProperty.call(type2.styleAliases, style)) {\n style = type2.styleAliases[style];\n }\n result[tag] = style;\n }\n return result;\n}\n__name(compileStyleMap, \"compileStyleMap\");\nfunction encodeHex(character) {\n var string, handle, length;\n string = character.toString(16).toUpperCase();\n if (character <= 255) {\n handle = \"x\";\n length = 2;\n } else if (character <= 65535) {\n handle = \"u\";\n length = 4;\n } else if (character <= 4294967295) {\n handle = \"U\";\n length = 8;\n } else {\n throw new exception(\"code point within a string may not be greater than 0xFFFFFFFF\");\n }\n return \"\\\\\" + handle + common.repeat(\"0\", length - string.length) + string;\n}\n__name(encodeHex, \"encodeHex\");\nvar QUOTING_TYPE_SINGLE = 1;\nvar QUOTING_TYPE_DOUBLE = 2;\nfunction State(options) {\n this.schema = options[\"schema\"] || _default;\n this.indent = Math.max(1, options[\"indent\"] || 2);\n this.noArrayIndent = options[\"noArrayIndent\"] || false;\n this.skipInvalid = options[\"skipInvalid\"] || false;\n this.flowLevel = common.isNothing(options[\"flowLevel\"]) ? -1 : options[\"flowLevel\"];\n this.styleMap = compileStyleMap(this.schema, options[\"styles\"] || null);\n this.sortKeys = options[\"sortKeys\"] || false;\n this.lineWidth = options[\"lineWidth\"] || 80;\n this.noRefs = options[\"noRefs\"] || false;\n this.noCompatMode = options[\"noCompatMode\"] || false;\n this.condenseFlow = options[\"condenseFlow\"] || false;\n this.quotingType = options[\"quotingType\"] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options[\"forceQuotes\"] || false;\n this.replacer = typeof options[\"replacer\"] === \"function\" ? options[\"replacer\"] : null;\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n this.tag = null;\n this.result = \"\";\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n__name(State, \"State\");\nfunction indentString(string, spaces) {\n var ind = common.repeat(\" \", spaces), position = 0, next = -1, result = \"\", line, length = string.length;\n while (position < length) {\n next = string.indexOf(\"\\n\", position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n if (line.length && line !== \"\\n\") result += ind;\n result += line;\n }\n return result;\n}\n__name(indentString, \"indentString\");\nfunction generateNextLine(state, level) {\n return \"\\n\" + common.repeat(\" \", state.indent * level);\n}\n__name(generateNextLine, \"generateNextLine\");\nfunction testImplicitResolving(state, str2) {\n var index, length, type2;\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type2 = state.implicitTypes[index];\n if (type2.resolve(str2)) {\n return true;\n }\n }\n return false;\n}\n__name(testImplicitResolving, \"testImplicitResolving\");\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n__name(isWhitespace, \"isWhitespace\");\nfunction isPrintable(c) {\n return 32 <= c && c <= 126 || 161 <= c && c <= 55295 && c !== 8232 && c !== 8233 || 57344 <= c && c <= 65533 && c !== CHAR_BOM || 65536 <= c && c <= 1114111;\n}\n__name(isPrintable, \"isPrintable\");\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c) && c !== CHAR_BOM && c !== CHAR_CARRIAGE_RETURN && c !== CHAR_LINE_FEED;\n}\n__name(isNsCharOrWhitespace, \"isNsCharOrWhitespace\");\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (\n // ns-plain-safe\n (inblock ? (\n // c = flow-in\n cIsNsCharOrWhitespace\n ) : cIsNsCharOrWhitespace && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET) && c !== CHAR_SHARP && !(prev === CHAR_COLON && !cIsNsChar) || isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP || prev === CHAR_COLON && cIsNsChar\n );\n}\n__name(isPlainSafe, \"isPlainSafe\");\nfunction isPlainSafeFirst(c) {\n return isPrintable(c) && c !== CHAR_BOM && !isWhitespace(c) && c !== CHAR_MINUS && c !== CHAR_QUESTION && c !== CHAR_COLON && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET && c !== CHAR_SHARP && c !== CHAR_AMPERSAND && c !== CHAR_ASTERISK && c !== CHAR_EXCLAMATION && c !== CHAR_VERTICAL_LINE && c !== CHAR_EQUALS && c !== CHAR_GREATER_THAN && c !== CHAR_SINGLE_QUOTE && c !== CHAR_DOUBLE_QUOTE && c !== CHAR_PERCENT && c !== CHAR_COMMERCIAL_AT && c !== CHAR_GRAVE_ACCENT;\n}\n__name(isPlainSafeFirst, \"isPlainSafeFirst\");\nfunction isPlainSafeLast(c) {\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n__name(isPlainSafeLast, \"isPlainSafeLast\");\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 55296 && first <= 56319 && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 56320 && second <= 57343) {\n return (first - 55296) * 1024 + second - 56320 + 65536;\n }\n }\n return first;\n}\n__name(codePointAt, \"codePointAt\");\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n__name(needIndentIndicator, \"needIndentIndicator\");\nvar STYLE_PLAIN = 1;\nvar STYLE_SINGLE = 2;\nvar STYLE_LITERAL = 3;\nvar STYLE_FOLDED = 4;\nvar STYLE_DOUBLE = 5;\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType, quotingType, forceQuotes, inblock) {\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false;\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1;\n var plain = isPlainSafeFirst(codePointAt(string, 0)) && isPlainSafeLast(codePointAt(string, string.length - 1));\n if (singleLineOnly || forceQuotes) {\n for (i = 0; i < string.length; char >= 65536 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n } else {\n for (i = 0; i < string.length; char >= 65536 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine || // Foldable line = too long, and not more-indented.\n i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== \" \";\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n hasFoldableLine = hasFoldableLine || shouldTrackWidth && (i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== \" \");\n }\n if (!hasLineBreak && !hasFoldableLine) {\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n__name(chooseScalarStyle, \"chooseScalarStyle\");\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = (function() {\n if (string.length === 0) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n }\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"' + string + '\"' : \"'\" + string + \"'\";\n }\n }\n var indent = state.indent * Math.max(1, level);\n var lineWidth = state.lineWidth === -1 ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n var singleLineOnly = iskey || state.flowLevel > -1 && level >= state.flowLevel;\n function testAmbiguity(string2) {\n return testImplicitResolving(state, string2);\n }\n __name(testAmbiguity, \"testAmbiguity\");\n switch (chooseScalarStyle(\n string,\n singleLineOnly,\n state.indent,\n lineWidth,\n testAmbiguity,\n state.quotingType,\n state.forceQuotes && !iskey,\n inblock\n )) {\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return \"|\" + blockHeader(string, state.indent) + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return \">\" + blockHeader(string, state.indent) + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception(\"impossible error: invalid scalar style\");\n }\n })();\n}\n__name(writeScalar, \"writeScalar\");\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : \"\";\n var clip = string[string.length - 1] === \"\\n\";\n var keep = clip && (string[string.length - 2] === \"\\n\" || string === \"\\n\");\n var chomp = keep ? \"+\" : clip ? \"\" : \"-\";\n return indentIndicator + chomp + \"\\n\";\n}\n__name(blockHeader, \"blockHeader\");\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === \"\\n\" ? string.slice(0, -1) : string;\n}\n__name(dropEndingNewline, \"dropEndingNewline\");\nfunction foldString(string, width) {\n var lineRe = /(\\n+)([^\\n]*)/g;\n var result = (function() {\n var nextLF = string.indexOf(\"\\n\");\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n })();\n var prevMoreIndented = string[0] === \"\\n\" || string[0] === \" \";\n var moreIndented;\n var match;\n while (match = lineRe.exec(string)) {\n var prefix = match[1], line = match[2];\n moreIndented = line[0] === \" \";\n result += prefix + (!prevMoreIndented && !moreIndented && line !== \"\" ? \"\\n\" : \"\") + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n return result;\n}\n__name(foldString, \"foldString\");\nfunction foldLine(line, width) {\n if (line === \"\" || line[0] === \" \") return line;\n var breakRe = / [^ ]/g;\n var match;\n var start = 0, end, curr = 0, next = 0;\n var result = \"\";\n while (match = breakRe.exec(line)) {\n next = match.index;\n if (next - start > width) {\n end = curr > start ? curr : next;\n result += \"\\n\" + line.slice(start, end);\n start = end + 1;\n }\n curr = next;\n }\n result += \"\\n\";\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + \"\\n\" + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n return result.slice(1);\n}\n__name(foldLine, \"foldLine\");\nfunction escapeString(string) {\n var result = \"\";\n var char = 0;\n var escapeSeq;\n for (var i = 0; i < string.length; char >= 65536 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n if (!escapeSeq && isPrintable(char)) {\n result += string[i];\n if (char >= 65536) result += string[i + 1];\n } else {\n result += escapeSeq || encodeHex(char);\n }\n }\n return result;\n}\n__name(escapeString, \"escapeString\");\nfunction writeFlowSequence(state, level, object) {\n var _result = \"\", _tag = state.tag, index, length, value;\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n if (writeNode(state, level, value, false, false) || typeof value === \"undefined\" && writeNode(state, level, null, false, false)) {\n if (_result !== \"\") _result += \",\" + (!state.condenseFlow ? \" \" : \"\");\n _result += state.dump;\n }\n }\n state.tag = _tag;\n state.dump = \"[\" + _result + \"]\";\n}\n__name(writeFlowSequence, \"writeFlowSequence\");\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = \"\", _tag = state.tag, index, length, value;\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n if (writeNode(state, level + 1, value, true, true, false, true) || typeof value === \"undefined\" && writeNode(state, level + 1, null, true, true, false, true)) {\n if (!compact || _result !== \"\") {\n _result += generateNextLine(state, level);\n }\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += \"-\";\n } else {\n _result += \"- \";\n }\n _result += state.dump;\n }\n }\n state.tag = _tag;\n state.dump = _result || \"[]\";\n}\n__name(writeBlockSequence, \"writeBlockSequence\");\nfunction writeFlowMapping(state, level, object) {\n var _result = \"\", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, pairBuffer;\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = \"\";\n if (_result !== \"\") pairBuffer += \", \";\n if (state.condenseFlow) pairBuffer += '\"';\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n if (!writeNode(state, level, objectKey, false, false)) {\n continue;\n }\n if (state.dump.length > 1024) pairBuffer += \"? \";\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : \"\") + \":\" + (state.condenseFlow ? \"\" : \" \");\n if (!writeNode(state, level, objectValue, false, false)) {\n continue;\n }\n pairBuffer += state.dump;\n _result += pairBuffer;\n }\n state.tag = _tag;\n state.dump = \"{\" + _result + \"}\";\n}\n__name(writeFlowMapping, \"writeFlowMapping\");\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = \"\", _tag = state.tag, objectKeyList = Object.keys(object), index, length, objectKey, objectValue, explicitPair, pairBuffer;\n if (state.sortKeys === true) {\n objectKeyList.sort();\n } else if (typeof state.sortKeys === \"function\") {\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n throw new exception(\"sortKeys must be a boolean or a function\");\n }\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = \"\";\n if (!compact || _result !== \"\") {\n pairBuffer += generateNextLine(state, level);\n }\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue;\n }\n explicitPair = state.tag !== null && state.tag !== \"?\" || state.dump && state.dump.length > 1024;\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += \"?\";\n } else {\n pairBuffer += \"? \";\n }\n }\n pairBuffer += state.dump;\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue;\n }\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += \":\";\n } else {\n pairBuffer += \": \";\n }\n pairBuffer += state.dump;\n _result += pairBuffer;\n }\n state.tag = _tag;\n state.dump = _result || \"{}\";\n}\n__name(writeBlockMapping, \"writeBlockMapping\");\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type2, style;\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type2 = typeList[index];\n if ((type2.instanceOf || type2.predicate) && (!type2.instanceOf || typeof object === \"object\" && object instanceof type2.instanceOf) && (!type2.predicate || type2.predicate(object))) {\n if (explicit) {\n if (type2.multi && type2.representName) {\n state.tag = type2.representName(object);\n } else {\n state.tag = type2.tag;\n }\n } else {\n state.tag = \"?\";\n }\n if (type2.represent) {\n style = state.styleMap[type2.tag] || type2.defaultStyle;\n if (_toString.call(type2.represent) === \"[object Function]\") {\n _result = type2.represent(object, style);\n } else if (_hasOwnProperty.call(type2.represent, style)) {\n _result = type2.represent[style](object, style);\n } else {\n throw new exception(\"!<\" + type2.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n state.dump = _result;\n }\n return true;\n }\n }\n return false;\n}\n__name(detectType, \"detectType\");\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n var type2 = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n if (block) {\n block = state.flowLevel < 0 || state.flowLevel > level;\n }\n var objectOrArray = type2 === \"[object Object]\" || type2 === \"[object Array]\", duplicateIndex, duplicate;\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n if (state.tag !== null && state.tag !== \"?\" || duplicate || state.indent !== 2 && level > 0) {\n compact = false;\n }\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = \"*ref_\" + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type2 === \"[object Object]\") {\n if (block && Object.keys(state.dump).length !== 0) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = \"&ref_\" + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = \"&ref_\" + duplicateIndex + \" \" + state.dump;\n }\n }\n } else if (type2 === \"[object Array]\") {\n if (block && state.dump.length !== 0) {\n if (state.noArrayIndent && !isblockseq && level > 0) {\n writeBlockSequence(state, level - 1, state.dump, compact);\n } else {\n writeBlockSequence(state, level, state.dump, compact);\n }\n if (duplicate) {\n state.dump = \"&ref_\" + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = \"&ref_\" + duplicateIndex + \" \" + state.dump;\n }\n }\n } else if (type2 === \"[object String]\") {\n if (state.tag !== \"?\") {\n writeScalar(state, state.dump, level, iskey, inblock);\n }\n } else if (type2 === \"[object Undefined]\") {\n return false;\n } else {\n if (state.skipInvalid) return false;\n throw new exception(\"unacceptable kind of an object to dump \" + type2);\n }\n if (state.tag !== null && state.tag !== \"?\") {\n tagStr = encodeURI(\n state.tag[0] === \"!\" ? state.tag.slice(1) : state.tag\n ).replace(/!/g, \"%21\");\n if (state.tag[0] === \"!\") {\n tagStr = \"!\" + tagStr;\n } else if (tagStr.slice(0, 18) === \"tag:yaml.org,2002:\") {\n tagStr = \"!!\" + tagStr.slice(18);\n } else {\n tagStr = \"!<\" + tagStr + \">\";\n }\n state.dump = tagStr + \" \" + state.dump;\n }\n }\n return true;\n}\n__name(writeNode, \"writeNode\");\nfunction getDuplicateReferences(object, state) {\n var objects = [], duplicatesIndexes = [], index, length;\n inspectNode(object, objects, duplicatesIndexes);\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n__name(getDuplicateReferences, \"getDuplicateReferences\");\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList, index, length;\n if (object !== null && typeof object === \"object\") {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n__name(inspectNode, \"inspectNode\");\nfunction dump$1(input, options) {\n options = options || {};\n var state = new State(options);\n if (!state.noRefs) getDuplicateReferences(input, state);\n var value = input;\n if (state.replacer) {\n value = state.replacer.call({ \"\": value }, \"\", value);\n }\n if (writeNode(state, 0, value, true, true)) return state.dump + \"\\n\";\n return \"\";\n}\n__name(dump$1, \"dump$1\");\nvar dump_1 = dump$1;\nvar dumper = {\n dump: dump_1\n};\nfunction renamed(from, to) {\n return function() {\n throw new Error(\"Function yaml.\" + from + \" is removed in js-yaml 4. Use yaml.\" + to + \" instead, which is now safe by default.\");\n };\n}\n__name(renamed, \"renamed\");\nvar JSON_SCHEMA = json;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar safeLoad = renamed(\"safeLoad\", \"load\");\nvar safeLoadAll = renamed(\"safeLoadAll\", \"loadAll\");\nvar safeDump = renamed(\"safeDump\", \"dump\");\n\nexport {\n JSON_SCHEMA,\n load\n};\n/*! Bundled license information:\n\njs-yaml/dist/js-yaml.mjs:\n (*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT *)\n*/\n","import {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/utils/lineWithOffset.ts\nvar markerOffsets = {\n aggregation: 17.25,\n extension: 17.25,\n composition: 17.25,\n dependency: 6,\n lollipop: 13.5,\n arrow_point: 4\n //arrow_cross: 24,\n};\nvar markerOffsets2 = {\n arrow_point: 9,\n arrow_cross: 12.5,\n arrow_circle: 12.5\n};\nfunction calculateDeltaAndAngle(point1, point2) {\n if (point1 === void 0 || point2 === void 0) {\n return { angle: 0, deltaX: 0, deltaY: 0 };\n }\n point1 = pointTransformer(point1);\n point2 = pointTransformer(point2);\n const [x1, y1] = [point1.x, point1.y];\n const [x2, y2] = [point2.x, point2.y];\n const deltaX = x2 - x1;\n const deltaY = y2 - y1;\n return { angle: Math.atan(deltaY / deltaX), deltaX, deltaY };\n}\n__name(calculateDeltaAndAngle, \"calculateDeltaAndAngle\");\nvar pointTransformer = /* @__PURE__ */ __name((data) => {\n if (Array.isArray(data)) {\n return { x: data[0], y: data[1] };\n }\n return data;\n}, \"pointTransformer\");\nvar getLineFunctionsWithOffset = /* @__PURE__ */ __name((edge) => {\n return {\n x: /* @__PURE__ */ __name(function(d, i, data) {\n let offset = 0;\n const DIRECTION = pointTransformer(data[0]).x < pointTransformer(data[data.length - 1]).x ? \"left\" : \"right\";\n if (i === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) {\n const { angle, deltaX } = calculateDeltaAndAngle(data[0], data[1]);\n offset = markerOffsets[edge.arrowTypeStart] * Math.cos(angle) * (deltaX >= 0 ? 1 : -1);\n } else if (i === data.length - 1 && Object.hasOwn(markerOffsets, edge.arrowTypeEnd)) {\n const { angle, deltaX } = calculateDeltaAndAngle(\n data[data.length - 1],\n data[data.length - 2]\n );\n offset = markerOffsets[edge.arrowTypeEnd] * Math.cos(angle) * (deltaX >= 0 ? 1 : -1);\n }\n const differenceToEnd = Math.abs(\n pointTransformer(d).x - pointTransformer(data[data.length - 1]).x\n );\n const differenceInYEnd = Math.abs(\n pointTransformer(d).y - pointTransformer(data[data.length - 1]).y\n );\n const differenceToStart = Math.abs(pointTransformer(d).x - pointTransformer(data[0]).x);\n const differenceInYStart = Math.abs(pointTransformer(d).y - pointTransformer(data[0]).y);\n const startMarkerHeight = markerOffsets[edge.arrowTypeStart];\n const endMarkerHeight = markerOffsets[edge.arrowTypeEnd];\n const extraRoom = 1;\n if (differenceToEnd < endMarkerHeight && differenceToEnd > 0 && differenceInYEnd < endMarkerHeight) {\n let adjustment = endMarkerHeight + extraRoom - differenceToEnd;\n adjustment *= DIRECTION === \"right\" ? -1 : 1;\n offset -= adjustment;\n }\n if (differenceToStart < startMarkerHeight && differenceToStart > 0 && differenceInYStart < startMarkerHeight) {\n let adjustment = startMarkerHeight + extraRoom - differenceToStart;\n adjustment *= DIRECTION === \"right\" ? -1 : 1;\n offset += adjustment;\n }\n return pointTransformer(d).x + offset;\n }, \"x\"),\n y: /* @__PURE__ */ __name(function(d, i, data) {\n let offset = 0;\n const DIRECTION = pointTransformer(data[0]).y < pointTransformer(data[data.length - 1]).y ? \"down\" : \"up\";\n if (i === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) {\n const { angle, deltaY } = calculateDeltaAndAngle(data[0], data[1]);\n offset = markerOffsets[edge.arrowTypeStart] * Math.abs(Math.sin(angle)) * (deltaY >= 0 ? 1 : -1);\n } else if (i === data.length - 1 && Object.hasOwn(markerOffsets, edge.arrowTypeEnd)) {\n const { angle, deltaY } = calculateDeltaAndAngle(\n data[data.length - 1],\n data[data.length - 2]\n );\n offset = markerOffsets[edge.arrowTypeEnd] * Math.abs(Math.sin(angle)) * (deltaY >= 0 ? 1 : -1);\n }\n const differenceToEnd = Math.abs(\n pointTransformer(d).y - pointTransformer(data[data.length - 1]).y\n );\n const differenceInXEnd = Math.abs(\n pointTransformer(d).x - pointTransformer(data[data.length - 1]).x\n );\n const differenceToStart = Math.abs(pointTransformer(d).y - pointTransformer(data[0]).y);\n const differenceInXStart = Math.abs(pointTransformer(d).x - pointTransformer(data[0]).x);\n const startMarkerHeight = markerOffsets[edge.arrowTypeStart];\n const endMarkerHeight = markerOffsets[edge.arrowTypeEnd];\n const extraRoom = 1;\n if (differenceToEnd < endMarkerHeight && differenceToEnd > 0 && differenceInXEnd < endMarkerHeight) {\n let adjustment = endMarkerHeight + extraRoom - differenceToEnd;\n adjustment *= DIRECTION === \"up\" ? -1 : 1;\n offset -= adjustment;\n }\n if (differenceToStart < startMarkerHeight && differenceToStart > 0 && differenceInXStart < startMarkerHeight) {\n let adjustment = startMarkerHeight + extraRoom - differenceToStart;\n adjustment *= DIRECTION === \"up\" ? -1 : 1;\n offset += adjustment;\n }\n return pointTransformer(d).y + offset;\n }, \"y\")\n };\n}, \"getLineFunctionsWithOffset\");\nif (void 0) {\n const { it, expect, describe } = void 0;\n describe(\"calculateDeltaAndAngle\", () => {\n it(\"should calculate the angle and deltas between two points\", () => {\n expect(calculateDeltaAndAngle([0, 0], [0, 1])).toStrictEqual({\n angle: 1.5707963267948966,\n deltaX: 0,\n deltaY: 1\n });\n expect(calculateDeltaAndAngle([1, 0], [0, -1])).toStrictEqual({\n angle: 0.7853981633974483,\n deltaX: -1,\n deltaY: -1\n });\n expect(calculateDeltaAndAngle({ x: 1, y: 0 }, [0, -1])).toStrictEqual({\n angle: 0.7853981633974483,\n deltaX: -1,\n deltaY: -1\n });\n expect(calculateDeltaAndAngle({ x: 1, y: 0 }, { x: 1, y: 0 })).toStrictEqual({\n angle: NaN,\n deltaX: 0,\n deltaY: 0\n });\n });\n it(\"should calculate the angle and deltas if one point in undefined\", () => {\n expect(calculateDeltaAndAngle(void 0, [0, 1])).toStrictEqual({\n angle: 0,\n deltaX: 0,\n deltaY: 0\n });\n expect(calculateDeltaAndAngle([0, 1], void 0)).toStrictEqual({\n angle: 0,\n deltaX: 0,\n deltaY: 0\n });\n });\n });\n}\n\nexport {\n markerOffsets,\n markerOffsets2,\n getLineFunctionsWithOffset\n};\n","import {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/utils/subGraphTitleMargins.ts\nvar getSubGraphTitleMargins = /* @__PURE__ */ __name(({\n flowchart\n}) => {\n const subGraphTitleTopMargin = flowchart?.subGraphTitleMargin?.top ?? 0;\n const subGraphTitleBottomMargin = flowchart?.subGraphTitleMargin?.bottom ?? 0;\n const subGraphTitleTotalMargin = subGraphTitleTopMargin + subGraphTitleBottomMargin;\n return {\n subGraphTitleTopMargin,\n subGraphTitleBottomMargin,\n subGraphTitleTotalMargin\n };\n}, \"getSubGraphTitleMargins\");\n\nexport {\n getSubGraphTitleMargins\n};\n","import {\n getConfig2 as getConfig\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/rendering-elements/shapes/handDrawnShapeStyles.ts\nvar solidStateFill = /* @__PURE__ */ __name((color) => {\n const { handDrawnSeed } = getConfig();\n return {\n fill: color,\n hachureAngle: 120,\n // angle of hachure,\n hachureGap: 4,\n fillWeight: 2,\n roughness: 0.7,\n stroke: color,\n seed: handDrawnSeed\n };\n}, \"solidStateFill\");\nvar compileStyles = /* @__PURE__ */ __name((node) => {\n const stylesMap = styles2Map([\n ...node.cssCompiledStyles || [],\n ...node.cssStyles || [],\n ...node.labelStyle || []\n ]);\n return { stylesMap, stylesArray: [...stylesMap] };\n}, \"compileStyles\");\nvar styles2Map = /* @__PURE__ */ __name((styles) => {\n const styleMap = /* @__PURE__ */ new Map();\n styles.forEach((style) => {\n const [key, value] = style.split(\":\");\n styleMap.set(key.trim(), value?.trim());\n });\n return styleMap;\n}, \"styles2Map\");\nvar isLabelStyle = /* @__PURE__ */ __name((key) => {\n return key === \"color\" || key === \"font-size\" || key === \"font-family\" || key === \"font-weight\" || key === \"font-style\" || key === \"text-decoration\" || key === \"text-align\" || key === \"text-transform\" || key === \"line-height\" || key === \"letter-spacing\" || key === \"word-spacing\" || key === \"text-shadow\" || key === \"text-overflow\" || key === \"white-space\" || key === \"word-wrap\" || key === \"word-break\" || key === \"overflow-wrap\" || key === \"hyphens\";\n}, \"isLabelStyle\");\nvar styles2String = /* @__PURE__ */ __name((node) => {\n const { stylesArray } = compileStyles(node);\n const labelStyles = [];\n const nodeStyles = [];\n const borderStyles = [];\n const backgroundStyles = [];\n stylesArray.forEach((style) => {\n const key = style[0];\n if (isLabelStyle(key)) {\n labelStyles.push(style.join(\":\") + \" !important\");\n } else {\n nodeStyles.push(style.join(\":\") + \" !important\");\n if (key.includes(\"stroke\")) {\n borderStyles.push(style.join(\":\") + \" !important\");\n }\n if (key === \"fill\") {\n backgroundStyles.push(style.join(\":\") + \" !important\");\n }\n }\n });\n return {\n labelStyles: labelStyles.join(\";\"),\n nodeStyles: nodeStyles.join(\";\"),\n stylesArray,\n borderStyles,\n backgroundStyles\n };\n}, \"styles2String\");\nvar userNodeOverrides = /* @__PURE__ */ __name((node, options) => {\n const { themeVariables, handDrawnSeed } = getConfig();\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const result = Object.assign(\n {\n roughness: 0.7,\n fill: stylesMap.get(\"fill\") || mainBkg,\n fillStyle: \"hachure\",\n // solid fill\n fillWeight: 4,\n hachureGap: 5.2,\n stroke: stylesMap.get(\"stroke\") || nodeBorder,\n seed: handDrawnSeed,\n strokeWidth: stylesMap.get(\"stroke-width\")?.replace(\"px\", \"\") || 1.3,\n fillLineDash: [0, 0],\n strokeLineDash: getStrokeDashArray(stylesMap.get(\"stroke-dasharray\"))\n },\n options\n );\n return result;\n}, \"userNodeOverrides\");\nvar getStrokeDashArray = /* @__PURE__ */ __name((strokeDasharrayStyle) => {\n if (!strokeDasharrayStyle) {\n return [0, 0];\n }\n const dashArray = strokeDasharrayStyle.trim().split(/\\s+/).map(Number);\n if (dashArray.length === 1) {\n const val = isNaN(dashArray[0]) ? 0 : dashArray[0];\n return [val, val];\n }\n const first = isNaN(dashArray[0]) ? 0 : dashArray[0];\n const second = isNaN(dashArray[1]) ? 0 : dashArray[1];\n return [first, second];\n}, \"getStrokeDashArray\");\n\nexport {\n solidStateFill,\n compileStyles,\n isLabelStyle,\n styles2String,\n userNodeOverrides\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BLANK_URL = exports.relativeFirstCharacters = exports.whitespaceEscapeCharsRegex = exports.urlSchemeRegex = exports.ctrlCharactersRegex = exports.htmlCtrlEntityRegex = exports.htmlEntitiesRegex = exports.invalidProtocolRegex = void 0;\nexports.invalidProtocolRegex = /^([^\\w]*)(javascript|data|vbscript)/im;\nexports.htmlEntitiesRegex = /&#(\\w+)(^\\w|;)?/g;\nexports.htmlCtrlEntityRegex = /&(newline|tab);/gi;\nexports.ctrlCharactersRegex = /[\\u0000-\\u001F\\u007F-\\u009F\\u2000-\\u200D\\uFEFF]/gim;\nexports.urlSchemeRegex = /^.+(:|&colon;)/gim;\nexports.whitespaceEscapeCharsRegex = /(\\\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;\nexports.relativeFirstCharacters = [\".\", \"/\"];\nexports.BLANK_URL = \"about:blank\";\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sanitizeUrl = void 0;\nvar constants_1 = require(\"./constants\");\nfunction isRelativeUrlWithoutProtocol(url) {\n return constants_1.relativeFirstCharacters.indexOf(url[0]) > -1;\n}\nfunction decodeHtmlCharacters(str) {\n var removedNullByte = str.replace(constants_1.ctrlCharactersRegex, \"\");\n return removedNullByte.replace(constants_1.htmlEntitiesRegex, function (match, dec) {\n return String.fromCharCode(dec);\n });\n}\nfunction isValidUrl(url) {\n return URL.canParse(url);\n}\nfunction decodeURI(uri) {\n try {\n return decodeURIComponent(uri);\n }\n catch (e) {\n // Ignoring error\n // It is possible that the URI contains a `%` not associated\n // with URI/URL-encoding.\n return uri;\n }\n}\nfunction sanitizeUrl(url) {\n if (!url) {\n return constants_1.BLANK_URL;\n }\n var charsToDecode;\n var decodedUrl = decodeURI(url.trim());\n do {\n decodedUrl = decodeHtmlCharacters(decodedUrl)\n .replace(constants_1.htmlCtrlEntityRegex, \"\")\n .replace(constants_1.ctrlCharactersRegex, \"\")\n .replace(constants_1.whitespaceEscapeCharsRegex, \"\")\n .trim();\n decodedUrl = decodeURI(decodedUrl);\n charsToDecode =\n decodedUrl.match(constants_1.ctrlCharactersRegex) ||\n decodedUrl.match(constants_1.htmlEntitiesRegex) ||\n decodedUrl.match(constants_1.htmlCtrlEntityRegex) ||\n decodedUrl.match(constants_1.whitespaceEscapeCharsRegex);\n } while (charsToDecode && charsToDecode.length > 0);\n var sanitizedUrl = decodedUrl;\n if (!sanitizedUrl) {\n return constants_1.BLANK_URL;\n }\n if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {\n return sanitizedUrl;\n }\n // Remove any leading whitespace before checking the URL scheme\n var trimmedUrl = sanitizedUrl.trimStart();\n var urlSchemeParseResults = trimmedUrl.match(constants_1.urlSchemeRegex);\n if (!urlSchemeParseResults) {\n return sanitizedUrl;\n }\n var urlScheme = urlSchemeParseResults[0].toLowerCase().trim();\n if (constants_1.invalidProtocolRegex.test(urlScheme)) {\n return constants_1.BLANK_URL;\n }\n var backSanitized = trimmedUrl.replace(/\\\\/g, \"/\");\n // Handle special cases for mailto: and custom deep-link protocols\n if (urlScheme === \"mailto:\" || urlScheme.includes(\"://\")) {\n return backSanitized;\n }\n // For http and https URLs, perform additional validation\n if (urlScheme === \"http:\" || urlScheme === \"https:\") {\n if (!isValidUrl(backSanitized)) {\n return constants_1.BLANK_URL;\n }\n var url_1 = new URL(backSanitized);\n url_1.protocol = url_1.protocol.toLowerCase();\n url_1.hostname = url_1.hostname.toLowerCase();\n return url_1.toString();\n }\n return backSanitized;\n}\nexports.sanitizeUrl = sanitizeUrl;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","import {\n assignWithDepth_default,\n common_default,\n detectType,\n directiveRegex,\n sanitizeDirective\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/utils.ts\nimport { sanitizeUrl } from \"@braintree/sanitize-url\";\nimport {\n curveBasis,\n curveBasisClosed,\n curveBasisOpen,\n curveBumpX,\n curveBumpY,\n curveBundle,\n curveCardinalClosed,\n curveCardinalOpen,\n curveCardinal,\n curveCatmullRomClosed,\n curveCatmullRomOpen,\n curveCatmullRom,\n curveLinear,\n curveLinearClosed,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore,\n select\n} from \"d3\";\nimport memoize from \"lodash-es/memoize.js\";\nimport merge from \"lodash-es/merge.js\";\nvar ZERO_WIDTH_SPACE = \"\\u200B\";\nvar d3CurveTypes = {\n curveBasis,\n curveBasisClosed,\n curveBasisOpen,\n curveBumpX,\n curveBumpY,\n curveBundle,\n curveCardinalClosed,\n curveCardinalOpen,\n curveCardinal,\n curveCatmullRomClosed,\n curveCatmullRomOpen,\n curveCatmullRom,\n curveLinear,\n curveLinearClosed,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore\n};\nvar directiveWithoutOpen = /\\s*(?:(\\w+)(?=:):|(\\w+))\\s*(?:(\\w+)|((?:(?!}%{2}).|\\r?\\n)*))?\\s*(?:}%{2})?/gi;\nvar detectInit = /* @__PURE__ */ __name(function(text, config) {\n const inits = detectDirective(text, /(?:init\\b)|(?:initialize\\b)/);\n let results = {};\n if (Array.isArray(inits)) {\n const args = inits.map((init) => init.args);\n sanitizeDirective(args);\n results = assignWithDepth_default(results, [...args]);\n } else {\n results = inits.args;\n }\n if (!results) {\n return;\n }\n let type = detectType(text, config);\n const prop = \"config\";\n if (results[prop] !== void 0) {\n if (type === \"flowchart-v2\") {\n type = \"flowchart\";\n }\n results[type] = results[prop];\n delete results[prop];\n }\n return results;\n}, \"detectInit\");\nvar detectDirective = /* @__PURE__ */ __name(function(text, type = null) {\n try {\n const commentWithoutDirectives = new RegExp(\n `[%]{2}(?![{]${directiveWithoutOpen.source})(?=[}][%]{2}).*\n`,\n \"ig\"\n );\n text = text.trim().replace(commentWithoutDirectives, \"\").replace(/'/gm, '\"');\n log.debug(\n `Detecting diagram directive${type !== null ? \" type:\" + type : \"\"} based on the text:${text}`\n );\n let match;\n const result = [];\n while ((match = directiveRegex.exec(text)) !== null) {\n if (match.index === directiveRegex.lastIndex) {\n directiveRegex.lastIndex++;\n }\n if (match && !type || type && match[1]?.match(type) || type && match[2]?.match(type)) {\n const type2 = match[1] ? match[1] : match[2];\n const args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null;\n result.push({ type: type2, args });\n }\n }\n if (result.length === 0) {\n return { type: text, args: null };\n }\n return result.length === 1 ? result[0] : result;\n } catch (error) {\n log.error(\n `ERROR: ${error.message} - Unable to parse directive type: '${type}' based on the text: '${text}'`\n );\n return { type: void 0, args: null };\n }\n}, \"detectDirective\");\nvar removeDirectives = /* @__PURE__ */ __name(function(text) {\n return text.replace(directiveRegex, \"\");\n}, \"removeDirectives\");\nvar isSubstringInArray = /* @__PURE__ */ __name(function(str, arr) {\n for (const [i, element] of arr.entries()) {\n if (element.match(str)) {\n return i;\n }\n }\n return -1;\n}, \"isSubstringInArray\");\nfunction interpolateToCurve(interpolate, defaultCurve) {\n if (!interpolate) {\n return defaultCurve;\n }\n const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`;\n return d3CurveTypes[curveName] ?? defaultCurve;\n}\n__name(interpolateToCurve, \"interpolateToCurve\");\nfunction formatUrl(linkStr, config) {\n const url = linkStr.trim();\n if (!url) {\n return void 0;\n }\n if (config.securityLevel !== \"loose\") {\n return sanitizeUrl(url);\n }\n return url;\n}\n__name(formatUrl, \"formatUrl\");\nvar runFunc = /* @__PURE__ */ __name((functionName, ...params) => {\n const arrPaths = functionName.split(\".\");\n const len = arrPaths.length - 1;\n const fnName = arrPaths[len];\n let obj = window;\n for (let i = 0; i < len; i++) {\n obj = obj[arrPaths[i]];\n if (!obj) {\n log.error(`Function name: ${functionName} not found in window`);\n return;\n }\n }\n obj[fnName](...params);\n}, \"runFunc\");\nfunction distance(p1, p2) {\n if (!p1 || !p2) {\n return 0;\n }\n return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\n}\n__name(distance, \"distance\");\nfunction traverseEdge(points) {\n let prevPoint;\n let totalDistance = 0;\n points.forEach((point) => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n const remainingDistance = totalDistance / 2;\n return calculatePoint(points, remainingDistance);\n}\n__name(traverseEdge, \"traverseEdge\");\nfunction calcLabelPosition(points) {\n if (points.length === 1) {\n return points[0];\n }\n return traverseEdge(points);\n}\n__name(calcLabelPosition, \"calcLabelPosition\");\nvar roundNumber = /* @__PURE__ */ __name((num, precision = 2) => {\n const factor = Math.pow(10, precision);\n return Math.round(num * factor) / factor;\n}, \"roundNumber\");\nvar calculatePoint = /* @__PURE__ */ __name((points, distanceToTraverse) => {\n let prevPoint = void 0;\n let remainingDistance = distanceToTraverse;\n for (const point of points) {\n if (prevPoint) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance === 0) {\n return prevPoint;\n }\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) {\n return prevPoint;\n }\n if (distanceRatio >= 1) {\n return { x: point.x, y: point.y };\n }\n if (distanceRatio > 0 && distanceRatio < 1) {\n return {\n x: roundNumber((1 - distanceRatio) * prevPoint.x + distanceRatio * point.x, 5),\n y: roundNumber((1 - distanceRatio) * prevPoint.y + distanceRatio * point.y, 5)\n };\n }\n }\n }\n prevPoint = point;\n }\n throw new Error(\"Could not find a suitable point for the given distance\");\n}, \"calculatePoint\");\nvar calcCardinalityPosition = /* @__PURE__ */ __name((isRelationTypePresent, points, initialPosition) => {\n log.info(`our points ${JSON.stringify(points)}`);\n if (points[0] !== initialPosition) {\n points = points.reverse();\n }\n const distanceToCardinalityPoint = 25;\n const center = calculatePoint(points, distanceToCardinalityPoint);\n const d = isRelationTypePresent ? 10 : 5;\n const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n const cardinalityPosition = { x: 0, y: 0 };\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n return cardinalityPosition;\n}, \"calcCardinalityPosition\");\nfunction calcTerminalLabelPosition(terminalMarkerSize, position, _points) {\n const points = structuredClone(_points);\n log.info(\"our points\", points);\n if (position !== \"start_left\" && position !== \"start_right\") {\n points.reverse();\n }\n const distanceToCardinalityPoint = 25 + terminalMarkerSize;\n const center = calculatePoint(points, distanceToCardinalityPoint);\n const d = 10 + terminalMarkerSize * 0.5;\n const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n const cardinalityPosition = { x: 0, y: 0 };\n if (position === \"start_left\") {\n cardinalityPosition.x = Math.sin(angle + Math.PI) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle + Math.PI) * d + (points[0].y + center.y) / 2;\n } else if (position === \"end_right\") {\n cardinalityPosition.x = Math.sin(angle - Math.PI) * d + (points[0].x + center.x) / 2 - 5;\n cardinalityPosition.y = -Math.cos(angle - Math.PI) * d + (points[0].y + center.y) / 2 - 5;\n } else if (position === \"end_left\") {\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2 - 5;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2 - 5;\n } else {\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n }\n return cardinalityPosition;\n}\n__name(calcTerminalLabelPosition, \"calcTerminalLabelPosition\");\nfunction getStylesFromArray(arr) {\n let style = \"\";\n let labelStyle = \"\";\n for (const element of arr) {\n if (element !== void 0) {\n if (element.startsWith(\"color:\") || element.startsWith(\"text-align:\")) {\n labelStyle = labelStyle + element + \";\";\n } else {\n style = style + element + \";\";\n }\n }\n }\n return { style, labelStyle };\n}\n__name(getStylesFromArray, \"getStylesFromArray\");\nvar cnt = 0;\nvar generateId = /* @__PURE__ */ __name(() => {\n cnt++;\n return \"id-\" + Math.random().toString(36).substr(2, 12) + \"-\" + cnt;\n}, \"generateId\");\nfunction makeRandomHex(length) {\n let result = \"\";\n const characters = \"0123456789abcdef\";\n const charactersLength = characters.length;\n for (let i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n}\n__name(makeRandomHex, \"makeRandomHex\");\nvar random = /* @__PURE__ */ __name((options) => {\n return makeRandomHex(options.length);\n}, \"random\");\nvar getTextObj = /* @__PURE__ */ __name(function() {\n return {\n x: 0,\n y: 0,\n fill: void 0,\n anchor: \"start\",\n style: \"#666\",\n width: 100,\n height: 100,\n textMargin: 0,\n rx: 0,\n ry: 0,\n valign: void 0,\n text: \"\"\n };\n}, \"getTextObj\");\nvar drawSimpleText = /* @__PURE__ */ __name(function(elem, textData) {\n const nText = textData.text.replace(common_default.lineBreakRegex, \" \");\n const [, _fontSizePx] = parseFontSize(textData.fontSize);\n const textElem = elem.append(\"text\");\n textElem.attr(\"x\", textData.x);\n textElem.attr(\"y\", textData.y);\n textElem.style(\"text-anchor\", textData.anchor);\n textElem.style(\"font-family\", textData.fontFamily);\n textElem.style(\"font-size\", _fontSizePx);\n textElem.style(\"font-weight\", textData.fontWeight);\n textElem.attr(\"fill\", textData.fill);\n if (textData.class !== void 0) {\n textElem.attr(\"class\", textData.class);\n }\n const span = textElem.append(\"tspan\");\n span.attr(\"x\", textData.x + textData.textMargin * 2);\n span.attr(\"fill\", textData.fill);\n span.text(nText);\n return textElem;\n}, \"drawSimpleText\");\nvar wrapLabel = memoize(\n (label, maxWidth, config) => {\n if (!label) {\n return label;\n }\n config = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: \"Arial\", joinWith: \"<br/>\" },\n config\n );\n if (common_default.lineBreakRegex.test(label)) {\n return label;\n }\n const words = label.split(\" \").filter(Boolean);\n const completedLines = [];\n let nextLine = \"\";\n words.forEach((word, index) => {\n const wordLength = calculateTextWidth(`${word} `, config);\n const nextLineLength = calculateTextWidth(nextLine, config);\n if (wordLength > maxWidth) {\n const { hyphenatedStrings, remainingWord } = breakString(word, maxWidth, \"-\", config);\n completedLines.push(nextLine, ...hyphenatedStrings);\n nextLine = remainingWord;\n } else if (nextLineLength + wordLength >= maxWidth) {\n completedLines.push(nextLine);\n nextLine = word;\n } else {\n nextLine = [nextLine, word].filter(Boolean).join(\" \");\n }\n const currentWord = index + 1;\n const isLastWord = currentWord === words.length;\n if (isLastWord) {\n completedLines.push(nextLine);\n }\n });\n return completedLines.filter((line) => line !== \"\").join(config.joinWith);\n },\n (label, maxWidth, config) => `${label}${maxWidth}${config.fontSize}${config.fontWeight}${config.fontFamily}${config.joinWith}`\n);\nvar breakString = memoize(\n (word, maxWidth, hyphenCharacter = \"-\", config) => {\n config = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: \"Arial\", margin: 0 },\n config\n );\n const characters = [...word];\n const lines = [];\n let currentLine = \"\";\n characters.forEach((character, index) => {\n const nextLine = `${currentLine}${character}`;\n const lineWidth = calculateTextWidth(nextLine, config);\n if (lineWidth >= maxWidth) {\n const currentCharacter = index + 1;\n const isLastLine = characters.length === currentCharacter;\n const hyphenatedNextLine = `${nextLine}${hyphenCharacter}`;\n lines.push(isLastLine ? nextLine : hyphenatedNextLine);\n currentLine = \"\";\n } else {\n currentLine = nextLine;\n }\n });\n return { hyphenatedStrings: lines, remainingWord: currentLine };\n },\n (word, maxWidth, hyphenCharacter = \"-\", config) => `${word}${maxWidth}${hyphenCharacter}${config.fontSize}${config.fontWeight}${config.fontFamily}`\n);\nfunction calculateTextHeight(text, config) {\n return calculateTextDimensions(text, config).height;\n}\n__name(calculateTextHeight, \"calculateTextHeight\");\nfunction calculateTextWidth(text, config) {\n return calculateTextDimensions(text, config).width;\n}\n__name(calculateTextWidth, \"calculateTextWidth\");\nvar calculateTextDimensions = memoize(\n (text, config) => {\n const { fontSize = 12, fontFamily = \"Arial\", fontWeight = 400 } = config;\n if (!text) {\n return { width: 0, height: 0 };\n }\n const [, _fontSizePx] = parseFontSize(fontSize);\n const fontFamilies = [\"sans-serif\", fontFamily];\n const lines = text.split(common_default.lineBreakRegex);\n const dims = [];\n const body = select(\"body\");\n if (!body.remove) {\n return { width: 0, height: 0, lineHeight: 0 };\n }\n const g = body.append(\"svg\");\n for (const fontFamily2 of fontFamilies) {\n let cHeight = 0;\n const dim = { width: 0, height: 0, lineHeight: 0 };\n for (const line of lines) {\n const textObj = getTextObj();\n textObj.text = line || ZERO_WIDTH_SPACE;\n const textElem = drawSimpleText(g, textObj).style(\"font-size\", _fontSizePx).style(\"font-weight\", fontWeight).style(\"font-family\", fontFamily2);\n const bBox = (textElem._groups || textElem)[0][0].getBBox();\n if (bBox.width === 0 && bBox.height === 0) {\n throw new Error(\"svg element not in render tree\");\n }\n dim.width = Math.round(Math.max(dim.width, bBox.width));\n cHeight = Math.round(bBox.height);\n dim.height += cHeight;\n dim.lineHeight = Math.round(Math.max(dim.lineHeight, cHeight));\n }\n dims.push(dim);\n }\n g.remove();\n const index = isNaN(dims[1].height) || isNaN(dims[1].width) || isNaN(dims[1].lineHeight) || dims[0].height > dims[1].height && dims[0].width > dims[1].width && dims[0].lineHeight > dims[1].lineHeight ? 0 : 1;\n return dims[index];\n },\n (text, config) => `${text}${config.fontSize}${config.fontWeight}${config.fontFamily}`\n);\nvar InitIDGenerator = class {\n constructor(deterministic = false, seed) {\n this.count = 0;\n this.count = seed ? seed.length : 0;\n this.next = deterministic ? () => this.count++ : () => Date.now();\n }\n static {\n __name(this, \"InitIDGenerator\");\n }\n};\nvar decoder;\nvar entityDecode = /* @__PURE__ */ __name(function(html) {\n decoder = decoder || document.createElement(\"div\");\n html = escape(html).replace(/%26/g, \"&\").replace(/%23/g, \"#\").replace(/%3B/g, \";\");\n decoder.innerHTML = html;\n return unescape(decoder.textContent);\n}, \"entityDecode\");\nfunction isDetailedError(error) {\n return \"str\" in error;\n}\n__name(isDetailedError, \"isDetailedError\");\nvar insertTitle = /* @__PURE__ */ __name((parent, cssClass, titleTopMargin, title) => {\n if (!title) {\n return;\n }\n const bounds = parent.node()?.getBBox();\n if (!bounds) {\n return;\n }\n parent.append(\"text\").text(title).attr(\"text-anchor\", \"middle\").attr(\"x\", bounds.x + bounds.width / 2).attr(\"y\", -titleTopMargin).attr(\"class\", cssClass);\n}, \"insertTitle\");\nvar parseFontSize = /* @__PURE__ */ __name((fontSize) => {\n if (typeof fontSize === \"number\") {\n return [fontSize, fontSize + \"px\"];\n }\n const fontSizeNumber = parseInt(fontSize ?? \"\", 10);\n if (Number.isNaN(fontSizeNumber)) {\n return [void 0, void 0];\n } else if (fontSize === String(fontSizeNumber)) {\n return [fontSizeNumber, fontSize + \"px\"];\n } else {\n return [fontSizeNumber, fontSize];\n }\n}, \"parseFontSize\");\nfunction cleanAndMerge(defaultData, data) {\n return merge({}, defaultData, data);\n}\n__name(cleanAndMerge, \"cleanAndMerge\");\nvar utils_default = {\n assignWithDepth: assignWithDepth_default,\n wrapLabel,\n calculateTextHeight,\n calculateTextWidth,\n calculateTextDimensions,\n cleanAndMerge,\n detectInit,\n detectDirective,\n isSubstringInArray,\n interpolateToCurve,\n calcLabelPosition,\n calcCardinalityPosition,\n calcTerminalLabelPosition,\n formatUrl,\n getStylesFromArray,\n generateId,\n random,\n runFunc,\n entityDecode,\n insertTitle,\n isLabelCoordinateInPath,\n parseFontSize,\n InitIDGenerator\n};\nvar encodeEntities = /* @__PURE__ */ __name(function(text) {\n let txt = text;\n txt = txt.replace(/style.*:\\S*#.*;/g, function(s) {\n return s.substring(0, s.length - 1);\n });\n txt = txt.replace(/classDef.*:\\S*#.*;/g, function(s) {\n return s.substring(0, s.length - 1);\n });\n txt = txt.replace(/#\\w+;/g, function(s) {\n const innerTxt = s.substring(1, s.length - 1);\n const isInt = /^\\+?\\d+$/.test(innerTxt);\n if (isInt) {\n return \"\\uFB02\\xB0\\xB0\" + innerTxt + \"\\xB6\\xDF\";\n } else {\n return \"\\uFB02\\xB0\" + innerTxt + \"\\xB6\\xDF\";\n }\n });\n return txt;\n}, \"encodeEntities\");\nvar decodeEntities = /* @__PURE__ */ __name(function(text) {\n return text.replace(/fl°°/g, \"&#\").replace(/fl°/g, \"&\").replace(/¶ß/g, \";\");\n}, \"decodeEntities\");\nvar getEdgeId = /* @__PURE__ */ __name((from, to, {\n counter = 0,\n prefix,\n suffix\n}, id) => {\n if (id) {\n return id;\n }\n return `${prefix ? `${prefix}_` : \"\"}${from}_${to}_${counter}${suffix ? `_${suffix}` : \"\"}`;\n}, \"getEdgeId\");\nfunction handleUndefinedAttr(attrValue) {\n return attrValue ?? null;\n}\n__name(handleUndefinedAttr, \"handleUndefinedAttr\");\nfunction isLabelCoordinateInPath(point, dAttr) {\n const roundedX = Math.round(point.x);\n const roundedY = Math.round(point.y);\n const sanitizedD = dAttr.replace(\n /(\\d+\\.\\d+)/g,\n (match) => Math.round(parseFloat(match)).toString()\n );\n return sanitizedD.includes(roundedX.toString()) || sanitizedD.includes(roundedY.toString());\n}\n__name(isLabelCoordinateInPath, \"isLabelCoordinateInPath\");\n\nexport {\n ZERO_WIDTH_SPACE,\n removeDirectives,\n interpolateToCurve,\n getStylesFromArray,\n generateId,\n random,\n wrapLabel,\n calculateTextHeight,\n calculateTextWidth,\n isDetailedError,\n parseFontSize,\n cleanAndMerge,\n utils_default,\n encodeEntities,\n decodeEntities,\n getEdgeId,\n handleUndefinedAttr\n};\n","/** Default values for dimensions */\nconst defaultIconDimensions = Object.freeze({\n\tleft: 0,\n\ttop: 0,\n\twidth: 16,\n\theight: 16\n});\n/** Default values for transformations */\nconst defaultIconTransformations = Object.freeze({\n\trotate: 0,\n\tvFlip: false,\n\thFlip: false\n});\n/** Default values for all optional IconifyIcon properties */\nconst defaultIconProps = Object.freeze({\n\t...defaultIconDimensions,\n\t...defaultIconTransformations\n});\n/** Default values for all properties used in ExtendedIconifyIcon */\nconst defaultExtendedIconProps = Object.freeze({\n\t...defaultIconProps,\n\tbody: \"\",\n\thidden: false\n});\n\nexport { defaultExtendedIconProps, defaultIconDimensions, defaultIconProps, defaultIconTransformations };","import { defaultIconTransformations } from \"../icon/defaults.js\";\n\n/**\n* Default icon customisations values\n*/\nconst defaultIconSizeCustomisations = Object.freeze({\n\twidth: null,\n\theight: null\n});\nconst defaultIconCustomisations = Object.freeze({\n\t...defaultIconSizeCustomisations,\n\t...defaultIconTransformations\n});\n\nexport { defaultIconCustomisations, defaultIconSizeCustomisations };","/**\n* Expression to test part of icon name.\n*\n* Used when loading icons from Iconify API due to project naming convension.\n* Ignored when using custom icon sets - convension does not apply.\n*/\nconst matchIconName = /^[a-z0-9]+(-[a-z0-9]+)*$/;\n/**\n* Convert string icon name to IconifyIconName object.\n*/\nconst stringToIcon = (value, validate, allowSimpleName, provider = \"\") => {\n\tconst colonSeparated = value.split(\":\");\n\tif (value.slice(0, 1) === \"@\") {\n\t\tif (colonSeparated.length < 2 || colonSeparated.length > 3) return null;\n\t\tprovider = colonSeparated.shift().slice(1);\n\t}\n\tif (colonSeparated.length > 3 || !colonSeparated.length) return null;\n\tif (colonSeparated.length > 1) {\n\t\tconst name$1 = colonSeparated.pop();\n\t\tconst prefix = colonSeparated.pop();\n\t\tconst result = {\n\t\t\tprovider: colonSeparated.length > 0 ? colonSeparated[0] : provider,\n\t\t\tprefix,\n\t\t\tname: name$1\n\t\t};\n\t\treturn validate && !validateIconName(result) ? null : result;\n\t}\n\tconst name = colonSeparated[0];\n\tconst dashSeparated = name.split(\"-\");\n\tif (dashSeparated.length > 1) {\n\t\tconst result = {\n\t\t\tprovider,\n\t\t\tprefix: dashSeparated.shift(),\n\t\t\tname: dashSeparated.join(\"-\")\n\t\t};\n\t\treturn validate && !validateIconName(result) ? null : result;\n\t}\n\tif (allowSimpleName && provider === \"\") {\n\t\tconst result = {\n\t\t\tprovider,\n\t\t\tprefix: \"\",\n\t\t\tname\n\t\t};\n\t\treturn validate && !validateIconName(result, allowSimpleName) ? null : result;\n\t}\n\treturn null;\n};\n/**\n* Check if icon is valid.\n*\n* This function is not part of stringToIcon because validation is not needed for most code.\n*/\nconst validateIconName = (icon, allowSimpleName) => {\n\tif (!icon) return false;\n\treturn !!((allowSimpleName && icon.prefix === \"\" || !!icon.prefix) && !!icon.name);\n};\n\nexport { matchIconName, stringToIcon, validateIconName };","/**\n* Merge transformations\n*/\nfunction mergeIconTransformations(obj1, obj2) {\n\tconst result = {};\n\tif (!obj1.hFlip !== !obj2.hFlip) result.hFlip = true;\n\tif (!obj1.vFlip !== !obj2.vFlip) result.vFlip = true;\n\tconst rotate = ((obj1.rotate || 0) + (obj2.rotate || 0)) % 4;\n\tif (rotate) result.rotate = rotate;\n\treturn result;\n}\n\nexport { mergeIconTransformations };","import { defaultExtendedIconProps, defaultIconTransformations } from \"./defaults.js\";\nimport { mergeIconTransformations } from \"./transformations.js\";\n\n/**\n* Merge icon and alias\n*\n* Can also be used to merge default values and icon\n*/\nfunction mergeIconData(parent, child) {\n\tconst result = mergeIconTransformations(parent, child);\n\tfor (const key in defaultExtendedIconProps) if (key in defaultIconTransformations) {\n\t\tif (key in parent && !(key in result)) result[key] = defaultIconTransformations[key];\n\t} else if (key in child) result[key] = child[key];\n\telse if (key in parent) result[key] = parent[key];\n\treturn result;\n}\n\nexport { mergeIconData };","/**\n* Resolve icon set icons\n*\n* Returns parent icon for each icon\n*/\nfunction getIconsTree(data, names) {\n\tconst icons = data.icons;\n\tconst aliases = data.aliases || Object.create(null);\n\tconst resolved = Object.create(null);\n\tfunction resolve(name) {\n\t\tif (icons[name]) return resolved[name] = [];\n\t\tif (!(name in resolved)) {\n\t\t\tresolved[name] = null;\n\t\t\tconst parent = aliases[name] && aliases[name].parent;\n\t\t\tconst value = parent && resolve(parent);\n\t\t\tif (value) resolved[name] = [parent].concat(value);\n\t\t}\n\t\treturn resolved[name];\n\t}\n\t(names || Object.keys(icons).concat(Object.keys(aliases))).forEach(resolve);\n\treturn resolved;\n}\n\nexport { getIconsTree };","import { mergeIconData } from \"../icon/merge.js\";\nimport { getIconsTree } from \"./tree.js\";\n\n/**\n* Get icon data, using prepared aliases tree\n*/\nfunction internalGetIconData(data, name, tree) {\n\tconst icons = data.icons;\n\tconst aliases = data.aliases || Object.create(null);\n\tlet currentProps = {};\n\tfunction parse(name$1) {\n\t\tcurrentProps = mergeIconData(icons[name$1] || aliases[name$1], currentProps);\n\t}\n\tparse(name);\n\ttree.forEach(parse);\n\treturn mergeIconData(data, currentProps);\n}\n/**\n* Get data for icon\n*/\nfunction getIconData(data, name) {\n\tif (data.icons[name]) return internalGetIconData(data, name, []);\n\tconst tree = getIconsTree(data, [name])[name];\n\treturn tree ? internalGetIconData(data, name, tree) : null;\n}\n\nexport { getIconData, internalGetIconData };","/**\n* Regular expressions for calculating dimensions\n*/\nconst unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g;\nconst unitsTest = /^-?[0-9.]*[0-9]+[0-9.]*$/g;\nfunction calculateSize(size, ratio, precision) {\n\tif (ratio === 1) return size;\n\tprecision = precision || 100;\n\tif (typeof size === \"number\") return Math.ceil(size * ratio * precision) / precision;\n\tif (typeof size !== \"string\") return size;\n\tconst oldParts = size.split(unitsSplit);\n\tif (oldParts === null || !oldParts.length) return size;\n\tconst newParts = [];\n\tlet code = oldParts.shift();\n\tlet isNumber = unitsTest.test(code);\n\twhile (true) {\n\t\tif (isNumber) {\n\t\t\tconst num = parseFloat(code);\n\t\t\tif (isNaN(num)) newParts.push(code);\n\t\t\telse newParts.push(Math.ceil(num * ratio * precision) / precision);\n\t\t} else newParts.push(code);\n\t\tcode = oldParts.shift();\n\t\tif (code === void 0) return newParts.join(\"\");\n\t\tisNumber = !isNumber;\n\t}\n}\n\nexport { calculateSize };","function splitSVGDefs(content, tag = \"defs\") {\n\tlet defs = \"\";\n\tconst index = content.indexOf(\"<\" + tag);\n\twhile (index >= 0) {\n\t\tconst start = content.indexOf(\">\", index);\n\t\tconst end = content.indexOf(\"</\" + tag);\n\t\tif (start === -1 || end === -1) break;\n\t\tconst endEnd = content.indexOf(\">\", end);\n\t\tif (endEnd === -1) break;\n\t\tdefs += content.slice(start + 1, end).trim();\n\t\tcontent = content.slice(0, index).trim() + content.slice(endEnd + 1);\n\t}\n\treturn {\n\t\tdefs,\n\t\tcontent\n\t};\n}\n/**\n* Merge defs and content\n*/\nfunction mergeDefsAndContent(defs, content) {\n\treturn defs ? \"<defs>\" + defs + \"</defs>\" + content : content;\n}\n/**\n* Wrap SVG content, without wrapping definitions\n*/\nfunction wrapSVGContent(body, start, end) {\n\tconst split = splitSVGDefs(body);\n\treturn mergeDefsAndContent(split.defs, start + split.content + end);\n}\n\nexport { mergeDefsAndContent, splitSVGDefs, wrapSVGContent };","import { defaultIconProps } from \"../icon/defaults.js\";\nimport { defaultIconCustomisations } from \"../customisations/defaults.js\";\nimport { calculateSize } from \"./size.js\";\nimport { wrapSVGContent } from \"./defs.js\";\n\n/**\n* Check if value should be unset. Allows multiple keywords\n*/\nconst isUnsetKeyword = (value) => value === \"unset\" || value === \"undefined\" || value === \"none\";\n/**\n* Get SVG attributes and content from icon + customisations\n*\n* Does not generate style to make it compatible with frameworks that use objects for style, such as React.\n* Instead, it generates 'inline' value. If true, rendering engine should add verticalAlign: -0.125em to icon.\n*\n* Customisations should be normalised by platform specific parser.\n* Result should be converted to <svg> by platform specific parser.\n* Use replaceIDs to generate unique IDs for body.\n*/\nfunction iconToSVG(icon, customisations) {\n\tconst fullIcon = {\n\t\t...defaultIconProps,\n\t\t...icon\n\t};\n\tconst fullCustomisations = {\n\t\t...defaultIconCustomisations,\n\t\t...customisations\n\t};\n\tconst box = {\n\t\tleft: fullIcon.left,\n\t\ttop: fullIcon.top,\n\t\twidth: fullIcon.width,\n\t\theight: fullIcon.height\n\t};\n\tlet body = fullIcon.body;\n\t[fullIcon, fullCustomisations].forEach((props) => {\n\t\tconst transformations = [];\n\t\tconst hFlip = props.hFlip;\n\t\tconst vFlip = props.vFlip;\n\t\tlet rotation = props.rotate;\n\t\tif (hFlip) if (vFlip) rotation += 2;\n\t\telse {\n\t\t\ttransformations.push(\"translate(\" + (box.width + box.left).toString() + \" \" + (0 - box.top).toString() + \")\");\n\t\t\ttransformations.push(\"scale(-1 1)\");\n\t\t\tbox.top = box.left = 0;\n\t\t}\n\t\telse if (vFlip) {\n\t\t\ttransformations.push(\"translate(\" + (0 - box.left).toString() + \" \" + (box.height + box.top).toString() + \")\");\n\t\t\ttransformations.push(\"scale(1 -1)\");\n\t\t\tbox.top = box.left = 0;\n\t\t}\n\t\tlet tempValue;\n\t\tif (rotation < 0) rotation -= Math.floor(rotation / 4) * 4;\n\t\trotation = rotation % 4;\n\t\tswitch (rotation) {\n\t\t\tcase 1:\n\t\t\t\ttempValue = box.height / 2 + box.top;\n\t\t\t\ttransformations.unshift(\"rotate(90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\");\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\ttransformations.unshift(\"rotate(180 \" + (box.width / 2 + box.left).toString() + \" \" + (box.height / 2 + box.top).toString() + \")\");\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\ttempValue = box.width / 2 + box.left;\n\t\t\t\ttransformations.unshift(\"rotate(-90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\");\n\t\t\t\tbreak;\n\t\t}\n\t\tif (rotation % 2 === 1) {\n\t\t\tif (box.left !== box.top) {\n\t\t\t\ttempValue = box.left;\n\t\t\t\tbox.left = box.top;\n\t\t\t\tbox.top = tempValue;\n\t\t\t}\n\t\t\tif (box.width !== box.height) {\n\t\t\t\ttempValue = box.width;\n\t\t\t\tbox.width = box.height;\n\t\t\t\tbox.height = tempValue;\n\t\t\t}\n\t\t}\n\t\tif (transformations.length) body = wrapSVGContent(body, \"<g transform=\\\"\" + transformations.join(\" \") + \"\\\">\", \"</g>\");\n\t});\n\tconst customisationsWidth = fullCustomisations.width;\n\tconst customisationsHeight = fullCustomisations.height;\n\tconst boxWidth = box.width;\n\tconst boxHeight = box.height;\n\tlet width;\n\tlet height;\n\tif (customisationsWidth === null) {\n\t\theight = customisationsHeight === null ? \"1em\" : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n\t\twidth = calculateSize(height, boxWidth / boxHeight);\n\t} else {\n\t\twidth = customisationsWidth === \"auto\" ? boxWidth : customisationsWidth;\n\t\theight = customisationsHeight === null ? calculateSize(width, boxHeight / boxWidth) : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n\t}\n\tconst attributes = {};\n\tconst setAttr = (prop, value) => {\n\t\tif (!isUnsetKeyword(value)) attributes[prop] = value.toString();\n\t};\n\tsetAttr(\"width\", width);\n\tsetAttr(\"height\", height);\n\tconst viewBox = [\n\t\tbox.left,\n\t\tbox.top,\n\t\tboxWidth,\n\t\tboxHeight\n\t];\n\tattributes.viewBox = viewBox.join(\" \");\n\treturn {\n\t\tattributes,\n\t\tviewBox,\n\t\tbody\n\t};\n}\n\nexport { iconToSVG, isUnsetKeyword };","/**\n* Regular expression for finding ids\n*/\nconst regex = /\\sid=\"(\\S+)\"/g;\n/**\n* Counters\n*/\nconst counters = /* @__PURE__ */ new Map();\n/**\n* Get unique new ID\n*/\nfunction nextID(id) {\n\tid = id.replace(/[0-9]+$/, \"\") || \"a\";\n\tconst count = counters.get(id) || 0;\n\tcounters.set(id, count + 1);\n\treturn count ? `${id}${count}` : id;\n}\n/**\n* Replace IDs in SVG output with unique IDs\n*/\nfunction replaceIDs(body) {\n\tconst ids = [];\n\tlet match;\n\twhile (match = regex.exec(body)) ids.push(match[1]);\n\tif (!ids.length) return body;\n\tconst suffix = \"suffix\" + (Math.random() * 16777216 | Date.now()).toString(16);\n\tids.forEach((id) => {\n\t\tconst newID = nextID(id);\n\t\tconst escapedID = id.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n\t\tbody = body.replace(new RegExp(\"([#;\\\"])(\" + escapedID + \")([\\\")]|\\\\.[a-z])\", \"g\"), \"$1\" + newID + suffix + \"$3\");\n\t});\n\tbody = body.replace(new RegExp(suffix, \"g\"), \"\");\n\treturn body;\n}\n/**\n* Clear ID cache\n*/\nfunction clearIDCache() {\n\tcounters.clear();\n}\n\nexport { clearIDCache, replaceIDs };","/**\n* Generate <svg>\n*/\nfunction iconToHTML(body, attributes) {\n\tlet renderAttribsHTML = body.indexOf(\"xlink:\") === -1 ? \"\" : \" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"\";\n\tfor (const attr in attributes) renderAttribsHTML += \" \" + attr + \"=\\\"\" + attributes[attr] + \"\\\"\";\n\treturn \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\"\" + renderAttribsHTML + \">\" + body + \"</svg>\";\n}\n\nexport { iconToHTML };","/**\n * marked v16.4.2 - a markdown parser\n * Copyright (c) 2018-2025, MarkedJS. (MIT License)\n * Copyright (c) 2011-2018, Christopher Jeffrey. (MIT License)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\nfunction L(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var T=L();function G(l){T=l}var E={exec:()=>null};function d(l,e=\"\"){let t=typeof l==\"string\"?l:l.source,n={replace:(r,i)=>{let s=typeof i==\"string\"?i:i.source;return s=s.replace(m.caret,\"$1\"),t=t.replace(r,s),n},getRegex:()=>new RegExp(t,e)};return n}var be=(()=>{try{return!!new RegExp(\"(?<=1)(?<!1)\")}catch{return!1}})(),m={codeRemoveIndent:/^(?: {1,4}| {0,3}\\t)/gm,outputLinkReplace:/\\\\([\\[\\]])/g,indentCodeCompensation:/^(\\s+)(?:```)/,beginningSpace:/^\\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\\n/g,tabCharGlobal:/\\t/g,multipleSpaceGlobal:/\\s+/g,blankLine:/^[ \\t]*$/,doubleBlankLine:/\\n[ \\t]*\\n[ \\t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \\t]?/gm,listReplaceTabs:/^\\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\\[[ xX]\\] /,listReplaceTask:/^\\[[ xX]\\] +/,anyLine:/\\n.*\\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\\||\\| *$/g,tableRowBlankLine:/\\n[ \\t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\\s|>)/i,endPreScriptTag:/^<\\/(pre|code|kbd|script)(\\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/,unicodeAlphaNumeric:/[\\p{L}\\p{N}]/u,escapeTest:/[&<>\"']/,escapeReplace:/[&<>\"']/g,escapeTestNoEncode:/[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,escapeReplaceNoEncode:/[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,unescapeTest:/&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig,caret:/(^|[^\\[])\\^/g,percentDecode:/%25/g,findPipe:/\\|/g,splitPipe:/ \\|/,slashPipe:/\\\\\\|/g,carriageReturn:/\\r\\n|\\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\\S*/,endingNewline:/\\n$/,listItemRegex:l=>new RegExp(`^( {0,3}${l})((?:[\t ][^\\\\n]*)?(?:\\\\n|$))`),nextBulletRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \t][^\\\\n]*)?(?:\\\\n|$))`),hrRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`),fencesBeginRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}(?:\\`\\`\\`|~~~)`),headingBeginRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}#`),htmlBeginRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}<(?:[a-z].*>|!--)`,\"i\")},Re=/^(?:[ \\t]*(?:\\n|$))+/,Te=/^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/,Oe=/^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,I=/^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/,we=/^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,F=/(?:[*+-]|\\d{1,9}[.)])/,ie=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,oe=d(ie).replace(/bull/g,F).replace(/blockCode/g,/(?: {4}| {0,3}\\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\\n>]+>\\n/).replace(/\\|table/g,\"\").getRegex(),ye=d(ie).replace(/bull/g,F).replace(/blockCode/g,/(?: {4}| {0,3}\\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\\n>]+>\\n/).replace(/table/g,/ {0,3}\\|?(?:[:\\- ]*\\|)+[\\:\\- ]*\\n/).getRegex(),j=/^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,Pe=/^[^\\n]+/,Q=/(?!\\s*\\])(?:\\\\[\\s\\S]|[^\\[\\]\\\\])+/,Se=d(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/).replace(\"label\",Q).replace(\"title\",/(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/).getRegex(),$e=d(/^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/).replace(/bull/g,F).getRegex(),v=\"address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\",U=/<!--(?:-?>|[\\s\\S]*?(?:-->|$))/,_e=d(\"^ {0,3}(?:<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)|comment[^\\\\n]*(\\\\n+|$)|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$))\",\"i\").replace(\"comment\",U).replace(\"tag\",v).replace(\"attribute\",/ +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex(),ae=d(j).replace(\"hr\",I).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\",\"\").replace(\"|table\",\"\").replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",v).getRegex(),Le=d(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/).replace(\"paragraph\",ae).getRegex(),K={blockquote:Le,code:Te,def:Se,fences:Oe,heading:we,hr:I,html:_e,lheading:oe,list:$e,newline:Re,paragraph:ae,table:E,text:Pe},re=d(\"^ *([^\\\\n ].*)\\\\n {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)\").replace(\"hr\",I).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"blockquote\",\" {0,3}>\").replace(\"code\",\"(?: {4}| {0,3}\t)[^\\\\n]\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",v).getRegex(),Me={...K,lheading:ye,table:re,paragraph:d(j).replace(\"hr\",I).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\",\"\").replace(\"table\",re).replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",v).getRegex()},ze={...K,html:d(`^ *(?:comment *(?:\\\\n|\\\\s*$)|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\\\s[^'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))`).replace(\"comment\",U).replace(/tag/g,\"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b\").getRegex(),def:/^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,heading:/^(#{1,6})(.*)(?:\\n+|$)/,fences:E,lheading:/^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,paragraph:d(j).replace(\"hr\",I).replace(\"heading\",` *#{1,6} *[^\n]`).replace(\"lheading\",oe).replace(\"|table\",\"\").replace(\"blockquote\",\" {0,3}>\").replace(\"|fences\",\"\").replace(\"|list\",\"\").replace(\"|html\",\"\").replace(\"|tag\",\"\").getRegex()},Ae=/^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,Ee=/^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,le=/^( {2,}|\\\\)\\n(?!\\s*$)/,Ie=/^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,D=/[\\p{P}\\p{S}]/u,W=/[\\s\\p{P}\\p{S}]/u,ue=/[^\\s\\p{P}\\p{S}]/u,Ce=d(/^((?![*_])punctSpace)/,\"u\").replace(/punctSpace/g,W).getRegex(),pe=/(?!~)[\\p{P}\\p{S}]/u,Be=/(?!~)[\\s\\p{P}\\p{S}]/u,qe=/(?:[^\\s\\p{P}\\p{S}]|~)/u,ve=d(/link|precode-code|html/,\"g\").replace(\"link\",/\\[(?:[^\\[\\]`]|(?<a>`+)[^`]+\\k<a>(?!`))*?\\]\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)]|\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)])*\\))*\\)/).replace(\"precode-\",be?\"(?<!`)()\":\"(^^|[^`])\").replace(\"code\",/(?<b>`+)[^`]+\\k<b>(?!`)/).replace(\"html\",/<(?! )[^<>]*?>/).getRegex(),ce=/^(?:\\*+(?:((?!\\*)punct)|[^\\s*]))|^_+(?:((?!_)punct)|([^\\s_]))/,De=d(ce,\"u\").replace(/punct/g,D).getRegex(),He=d(ce,\"u\").replace(/punct/g,pe).getRegex(),he=\"^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)|notPunctSpace(\\\\*+)(?=notPunctSpace)\",Ze=d(he,\"gu\").replace(/notPunctSpace/g,ue).replace(/punctSpace/g,W).replace(/punct/g,D).getRegex(),Ge=d(he,\"gu\").replace(/notPunctSpace/g,qe).replace(/punctSpace/g,Be).replace(/punct/g,pe).getRegex(),Ne=d(\"^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)\",\"gu\").replace(/notPunctSpace/g,ue).replace(/punctSpace/g,W).replace(/punct/g,D).getRegex(),Fe=d(/\\\\(punct)/,\"gu\").replace(/punct/g,D).getRegex(),je=d(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/).replace(\"scheme\",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(\"email\",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Qe=d(U).replace(\"(?:-->|$)\",\"-->\").getRegex(),Ue=d(\"^comment|^</[a-zA-Z][\\\\w:-]*\\\\s*>|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>|^<\\\\?[\\\\s\\\\S]*?\\\\?>|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\").replace(\"comment\",Qe).replace(\"attribute\",/\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/).getRegex(),q=/(?:\\[(?:\\\\[\\s\\S]|[^\\[\\]\\\\])*\\]|\\\\[\\s\\S]|`+[^`]*?`+(?!`)|[^\\[\\]\\\\`])*?/,Ke=d(/^!?\\[(label)\\]\\(\\s*(href)(?:(?:[ \\t]*(?:\\n[ \\t]*)?)(title))?\\s*\\)/).replace(\"label\",q).replace(\"href\",/<(?:\\\\.|[^\\n<>\\\\])+>|[^ \\t\\n\\x00-\\x1f]*/).replace(\"title\",/\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/).getRegex(),de=d(/^!?\\[(label)\\]\\[(ref)\\]/).replace(\"label\",q).replace(\"ref\",Q).getRegex(),ke=d(/^!?\\[(ref)\\](?:\\[\\])?/).replace(\"ref\",Q).getRegex(),We=d(\"reflink|nolink(?!\\\\()\",\"g\").replace(\"reflink\",de).replace(\"nolink\",ke).getRegex(),se=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,X={_backpedal:E,anyPunctuation:Fe,autolink:je,blockSkip:ve,br:le,code:Ee,del:E,emStrongLDelim:De,emStrongRDelimAst:Ze,emStrongRDelimUnd:Ne,escape:Ae,link:Ke,nolink:ke,punctuation:Ce,reflink:de,reflinkSearch:We,tag:Ue,text:Ie,url:E},Xe={...X,link:d(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\",q).getRegex(),reflink:d(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\",q).getRegex()},N={...X,emStrongRDelimAst:Ge,emStrongLDelim:He,url:d(/^((?:protocol):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/).replace(\"protocol\",se).replace(\"email\",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,del:/^(~~?)(?=[^\\s~])((?:\\\\[\\s\\S]|[^\\\\])*?(?:\\\\[\\s\\S]|[^\\s~\\\\]))\\1(?=[^~]|$)/,text:d(/^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|protocol:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/).replace(\"protocol\",se).getRegex()},Je={...N,br:d(le).replace(\"{2,}\",\"*\").getRegex(),text:d(N.text).replace(\"\\\\b_\",\"\\\\b_| {2,}\\\\n\").replace(/\\{2,\\}/g,\"*\").getRegex()},C={normal:K,gfm:Me,pedantic:ze},M={normal:X,gfm:N,breaks:Je,pedantic:Xe};var Ve={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"},ge=l=>Ve[l];function w(l,e){if(e){if(m.escapeTest.test(l))return l.replace(m.escapeReplace,ge)}else if(m.escapeTestNoEncode.test(l))return l.replace(m.escapeReplaceNoEncode,ge);return l}function J(l){try{l=encodeURI(l).replace(m.percentDecode,\"%\")}catch{return null}return l}function V(l,e){let t=l.replace(m.findPipe,(i,s,a)=>{let o=!1,p=s;for(;--p>=0&&a[p]===\"\\\\\";)o=!o;return o?\"|\":\" |\"}),n=t.split(m.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length<e;)n.push(\"\");for(;r<n.length;r++)n[r]=n[r].trim().replace(m.slashPipe,\"|\");return n}function z(l,e,t){let n=l.length;if(n===0)return\"\";let r=0;for(;r<n;){let i=l.charAt(n-r-1);if(i===e&&!t)r++;else if(i!==e&&t)r++;else break}return l.slice(0,n-r)}function fe(l,e){if(l.indexOf(e[1])===-1)return-1;let t=0;for(let n=0;n<l.length;n++)if(l[n]===\"\\\\\")n++;else if(l[n]===e[0])t++;else if(l[n]===e[1]&&(t--,t<0))return n;return t>0?-2:-1}function me(l,e,t,n,r){let i=e.href,s=e.title||null,a=l[1].replace(r.other.outputLinkReplace,\"$1\");n.state.inLink=!0;let o={type:l[0].charAt(0)===\"!\"?\"image\":\"link\",raw:t,href:i,title:s,text:a,tokens:n.inlineTokens(a)};return n.state.inLink=!1,o}function Ye(l,e,t){let n=l.match(t.other.indentCodeCompensation);if(n===null)return e;let r=n[1];return e.split(`\n`).map(i=>{let s=i.match(t.other.beginningSpace);if(s===null)return i;let[a]=s;return a.length>=r.length?i.slice(r.length):i}).join(`\n`)}var y=class{options;rules;lexer;constructor(e){this.options=e||T}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:\"space\",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=t[0].replace(this.rules.other.codeRemoveIndent,\"\");return{type:\"code\",raw:t[0],codeBlockStyle:\"indented\",text:this.options.pedantic?n:z(n,`\n`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],r=Ye(n,t[3]||\"\",this.rules);return{type:\"code\",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,\"$1\"):t[2],text:r}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let r=z(n,\"#\");(this.options.pedantic||!r||this.rules.other.endingSpaceChar.test(r))&&(n=r.trim())}return{type:\"heading\",raw:t[0],depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:\"hr\",raw:z(t[0],`\n`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=z(t[0],`\n`).split(`\n`),r=\"\",i=\"\",s=[];for(;n.length>0;){let a=!1,o=[],p;for(p=0;p<n.length;p++)if(this.rules.other.blockquoteStart.test(n[p]))o.push(n[p]),a=!0;else if(!a)o.push(n[p]);else break;n=n.slice(p);let u=o.join(`\n`),c=u.replace(this.rules.other.blockquoteSetextReplace,`\n $1`).replace(this.rules.other.blockquoteSetextReplace2,\"\");r=r?`${r}\n${u}`:u,i=i?`${i}\n${c}`:c;let g=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(c,s,!0),this.lexer.state.top=g,n.length===0)break;let h=s.at(-1);if(h?.type===\"code\")break;if(h?.type===\"blockquote\"){let R=h,f=R.raw+`\n`+n.join(`\n`),O=this.blockquote(f);s[s.length-1]=O,r=r.substring(0,r.length-R.raw.length)+O.raw,i=i.substring(0,i.length-R.text.length)+O.text;break}else if(h?.type===\"list\"){let R=h,f=R.raw+`\n`+n.join(`\n`),O=this.list(f);s[s.length-1]=O,r=r.substring(0,r.length-h.raw.length)+O.raw,i=i.substring(0,i.length-R.raw.length)+O.raw,n=f.substring(s.at(-1).raw.length).split(`\n`);continue}}return{type:\"blockquote\",raw:r,tokens:s,text:i}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),r=n.length>1,i={type:\"list\",raw:\"\",ordered:r,start:r?+n.slice(0,-1):\"\",loose:!1,items:[]};n=r?`\\\\d{1,9}\\\\${n.slice(-1)}`:`\\\\${n}`,this.options.pedantic&&(n=r?n:\"[*+-]\");let s=this.rules.other.listItemRegex(n),a=!1;for(;e;){let p=!1,u=\"\",c=\"\";if(!(t=s.exec(e))||this.rules.block.hr.test(e))break;u=t[0],e=e.substring(u.length);let g=t[2].split(`\n`,1)[0].replace(this.rules.other.listReplaceTabs,H=>\" \".repeat(3*H.length)),h=e.split(`\n`,1)[0],R=!g.trim(),f=0;if(this.options.pedantic?(f=2,c=g.trimStart()):R?f=t[1].length+1:(f=t[2].search(this.rules.other.nonSpaceChar),f=f>4?1:f,c=g.slice(f),f+=t[1].length),R&&this.rules.other.blankLine.test(h)&&(u+=h+`\n`,e=e.substring(h.length+1),p=!0),!p){let H=this.rules.other.nextBulletRegex(f),ee=this.rules.other.hrRegex(f),te=this.rules.other.fencesBeginRegex(f),ne=this.rules.other.headingBeginRegex(f),xe=this.rules.other.htmlBeginRegex(f);for(;e;){let Z=e.split(`\n`,1)[0],A;if(h=Z,this.options.pedantic?(h=h.replace(this.rules.other.listReplaceNesting,\" \"),A=h):A=h.replace(this.rules.other.tabCharGlobal,\" \"),te.test(h)||ne.test(h)||xe.test(h)||H.test(h)||ee.test(h))break;if(A.search(this.rules.other.nonSpaceChar)>=f||!h.trim())c+=`\n`+A.slice(f);else{if(R||g.replace(this.rules.other.tabCharGlobal,\" \").search(this.rules.other.nonSpaceChar)>=4||te.test(g)||ne.test(g)||ee.test(g))break;c+=`\n`+h}!R&&!h.trim()&&(R=!0),u+=Z+`\n`,e=e.substring(Z.length+1),g=A.slice(f)}}i.loose||(a?i.loose=!0:this.rules.other.doubleBlankLine.test(u)&&(a=!0));let O=null,Y;this.options.gfm&&(O=this.rules.other.listIsTask.exec(c),O&&(Y=O[0]!==\"[ ] \",c=c.replace(this.rules.other.listReplaceTask,\"\"))),i.items.push({type:\"list_item\",raw:u,task:!!O,checked:Y,loose:!1,text:c,tokens:[]}),i.raw+=u}let o=i.items.at(-1);if(o)o.raw=o.raw.trimEnd(),o.text=o.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let p=0;p<i.items.length;p++)if(this.lexer.state.top=!1,i.items[p].tokens=this.lexer.blockTokens(i.items[p].text,[]),!i.loose){let u=i.items[p].tokens.filter(g=>g.type===\"space\"),c=u.length>0&&u.some(g=>this.rules.other.anyLine.test(g.raw));i.loose=c}if(i.loose)for(let p=0;p<i.items.length;p++)i.items[p].loose=!0;return i}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:\"html\",block:!0,raw:t[0],pre:t[1]===\"pre\"||t[1]===\"script\"||t[1]===\"style\",text:t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal,\" \"),r=t[2]?t[2].replace(this.rules.other.hrefBrackets,\"$1\").replace(this.rules.inline.anyPunctuation,\"$1\"):\"\",i=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,\"$1\"):t[3];return{type:\"def\",tag:n,raw:t[0],href:r,title:i}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=V(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,\"\").split(\"|\"),i=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,\"\").split(`\n`):[],s={type:\"table\",raw:t[0],header:[],align:[],rows:[]};if(n.length===r.length){for(let a of r)this.rules.other.tableAlignRight.test(a)?s.align.push(\"right\"):this.rules.other.tableAlignCenter.test(a)?s.align.push(\"center\"):this.rules.other.tableAlignLeft.test(a)?s.align.push(\"left\"):s.align.push(null);for(let a=0;a<n.length;a++)s.header.push({text:n[a],tokens:this.lexer.inline(n[a]),header:!0,align:s.align[a]});for(let a of i)s.rows.push(V(a,s.header.length).map((o,p)=>({text:o,tokens:this.lexer.inline(o),header:!1,align:s.align[p]})));return s}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t)return{type:\"heading\",raw:t[0],depth:t[2].charAt(0)===\"=\"?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===`\n`?t[1].slice(0,-1):t[1];return{type:\"paragraph\",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:\"text\",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:\"escape\",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:\"html\",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let s=z(n.slice(0,-1),\"\\\\\");if((n.length-s.length)%2===0)return}else{let s=fe(t[2],\"()\");if(s===-2)return;if(s>-1){let o=(t[0].indexOf(\"!\")===0?5:4)+t[1].length+s;t[2]=t[2].substring(0,s),t[0]=t[0].substring(0,o).trim(),t[3]=\"\"}}let r=t[2],i=\"\";if(this.options.pedantic){let s=this.rules.other.pedanticHrefTitle.exec(r);s&&(r=s[1],i=s[3])}else i=t[3]?t[3].slice(1,-1):\"\";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?r=r.slice(1):r=r.slice(1,-1)),me(t,{href:r&&r.replace(this.rules.inline.anyPunctuation,\"$1\"),title:i&&i.replace(this.rules.inline.anyPunctuation,\"$1\")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let r=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,\" \"),i=t[r.toLowerCase()];if(!i){let s=n[0].charAt(0);return{type:\"text\",raw:s,text:s}}return me(n,i,n[0],this.lexer,this.rules)}}emStrong(e,t,n=\"\"){let r=this.rules.inline.emStrongLDelim.exec(e);if(!r||r[3]&&n.match(this.rules.other.unicodeAlphaNumeric))return;if(!(r[1]||r[2]||\"\")||!n||this.rules.inline.punctuation.exec(n)){let s=[...r[0]].length-1,a,o,p=s,u=0,c=r[0][0]===\"*\"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+s);(r=c.exec(t))!=null;){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a)continue;if(o=[...a].length,r[3]||r[4]){p+=o;continue}else if((r[5]||r[6])&&s%3&&!((s+o)%3)){u+=o;continue}if(p-=o,p>0)continue;o=Math.min(o,o+p+u);let g=[...r[0]][0].length,h=e.slice(0,s+r.index+g+o);if(Math.min(s,o)%2){let f=h.slice(1,-1);return{type:\"em\",raw:h,text:f,tokens:this.lexer.inlineTokens(f)}}let R=h.slice(2,-2);return{type:\"strong\",raw:h,text:R,tokens:this.lexer.inlineTokens(R)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal,\" \"),r=this.rules.other.nonSpaceChar.test(n),i=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return r&&i&&(n=n.substring(1,n.length-1)),{type:\"codespan\",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:\"br\",raw:t[0]}}del(e){let t=this.rules.inline.del.exec(e);if(t)return{type:\"del\",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,r;return t[2]===\"@\"?(n=t[1],r=\"mailto:\"+n):(n=t[1],r=n),{type:\"link\",raw:t[0],text:n,href:r,tokens:[{type:\"text\",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,r;if(t[2]===\"@\")n=t[0],r=\"mailto:\"+n;else{let i;do i=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??\"\";while(i!==t[0]);n=t[0],t[1]===\"www.\"?r=\"http://\"+t[0]:r=t[0]}return{type:\"link\",raw:t[0],text:n,href:r,tokens:[{type:\"text\",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:\"text\",raw:t[0],text:t[0],escaped:n}}}};var x=class l{tokens;options;state;tokenizer;inlineQueue;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||T,this.options.tokenizer=this.options.tokenizer||new y,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:m,block:C.normal,inline:M.normal};this.options.pedantic?(t.block=C.pedantic,t.inline=M.pedantic):this.options.gfm&&(t.block=C.gfm,this.options.breaks?t.inline=M.breaks:t.inline=M.gfm),this.tokenizer.rules=t}static get rules(){return{block:C,inline:M}}static lex(e,t){return new l(t).lex(e)}static lexInline(e,t){return new l(t).inlineTokens(e)}lex(e){e=e.replace(m.carriageReturn,`\n`),this.blockTokens(e,this.tokens);for(let t=0;t<this.inlineQueue.length;t++){let n=this.inlineQueue[t];this.inlineTokens(n.src,n.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){for(this.options.pedantic&&(e=e.replace(m.tabCharGlobal,\" \").replace(m.spaceLine,\"\"));e;){let r;if(this.options.extensions?.block?.some(s=>(r=s.call({lexer:this},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1))continue;if(r=this.tokenizer.space(e)){e=e.substring(r.raw.length);let s=t.at(-1);r.raw.length===1&&s!==void 0?s.raw+=`\n`:t.push(r);continue}if(r=this.tokenizer.code(e)){e=e.substring(r.raw.length);let s=t.at(-1);s?.type===\"paragraph\"||s?.type===\"text\"?(s.raw+=(s.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,s.text+=`\n`+r.text,this.inlineQueue.at(-1).src=s.text):t.push(r);continue}if(r=this.tokenizer.fences(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.heading(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.hr(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.blockquote(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.list(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.html(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.def(e)){e=e.substring(r.raw.length);let s=t.at(-1);s?.type===\"paragraph\"||s?.type===\"text\"?(s.raw+=(s.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,s.text+=`\n`+r.raw,this.inlineQueue.at(-1).src=s.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title},t.push(r));continue}if(r=this.tokenizer.table(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.lheading(e)){e=e.substring(r.raw.length),t.push(r);continue}let i=e;if(this.options.extensions?.startBlock){let s=1/0,a=e.slice(1),o;this.options.extensions.startBlock.forEach(p=>{o=p.call({lexer:this},a),typeof o==\"number\"&&o>=0&&(s=Math.min(s,o))}),s<1/0&&s>=0&&(i=e.substring(0,s+1))}if(this.state.top&&(r=this.tokenizer.paragraph(i))){let s=t.at(-1);n&&s?.type===\"paragraph\"?(s.raw+=(s.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,s.text+=`\n`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):t.push(r),n=i.length!==e.length,e=e.substring(r.raw.length);continue}if(r=this.tokenizer.text(e)){e=e.substring(r.raw.length);let s=t.at(-1);s?.type===\"text\"?(s.raw+=(s.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,s.text+=`\n`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):t.push(r);continue}if(e){let s=\"Infinite loop on byte: \"+e.charCodeAt(0);if(this.options.silent){console.error(s);break}else throw new Error(s)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let n=e,r=null;if(this.tokens.links){let o=Object.keys(this.tokens.links);if(o.length>0)for(;(r=this.tokenizer.rules.inline.reflinkSearch.exec(n))!=null;)o.includes(r[0].slice(r[0].lastIndexOf(\"[\")+1,-1))&&(n=n.slice(0,r.index)+\"[\"+\"a\".repeat(r[0].length-2)+\"]\"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(r=this.tokenizer.rules.inline.anyPunctuation.exec(n))!=null;)n=n.slice(0,r.index)+\"++\"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let i;for(;(r=this.tokenizer.rules.inline.blockSkip.exec(n))!=null;)i=r[2]?r[2].length:0,n=n.slice(0,r.index+i)+\"[\"+\"a\".repeat(r[0].length-i-2)+\"]\"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let s=!1,a=\"\";for(;e;){s||(a=\"\"),s=!1;let o;if(this.options.extensions?.inline?.some(u=>(o=u.call({lexer:this},e,t))?(e=e.substring(o.raw.length),t.push(o),!0):!1))continue;if(o=this.tokenizer.escape(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.tag(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.link(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(o.raw.length);let u=t.at(-1);o.type===\"text\"&&u?.type===\"text\"?(u.raw+=o.raw,u.text+=o.text):t.push(o);continue}if(o=this.tokenizer.emStrong(e,n,a)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.codespan(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.br(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.del(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.autolink(e)){e=e.substring(o.raw.length),t.push(o);continue}if(!this.state.inLink&&(o=this.tokenizer.url(e))){e=e.substring(o.raw.length),t.push(o);continue}let p=e;if(this.options.extensions?.startInline){let u=1/0,c=e.slice(1),g;this.options.extensions.startInline.forEach(h=>{g=h.call({lexer:this},c),typeof g==\"number\"&&g>=0&&(u=Math.min(u,g))}),u<1/0&&u>=0&&(p=e.substring(0,u+1))}if(o=this.tokenizer.inlineText(p)){e=e.substring(o.raw.length),o.raw.slice(-1)!==\"_\"&&(a=o.raw.slice(-1)),s=!0;let u=t.at(-1);u?.type===\"text\"?(u.raw+=o.raw,u.text+=o.text):t.push(o);continue}if(e){let u=\"Infinite loop on byte: \"+e.charCodeAt(0);if(this.options.silent){console.error(u);break}else throw new Error(u)}}return t}};var P=class{options;parser;constructor(e){this.options=e||T}space(e){return\"\"}code({text:e,lang:t,escaped:n}){let r=(t||\"\").match(m.notSpaceStart)?.[0],i=e.replace(m.endingNewline,\"\")+`\n`;return r?'<pre><code class=\"language-'+w(r)+'\">'+(n?i:w(i,!0))+`</code></pre>\n`:\"<pre><code>\"+(n?i:w(i,!0))+`</code></pre>\n`}blockquote({tokens:e}){return`<blockquote>\n${this.parser.parse(e)}</blockquote>\n`}html({text:e}){return e}def(e){return\"\"}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>\n`}hr(e){return`<hr>\n`}list(e){let t=e.ordered,n=e.start,r=\"\";for(let a=0;a<e.items.length;a++){let o=e.items[a];r+=this.listitem(o)}let i=t?\"ol\":\"ul\",s=t&&n!==1?' start=\"'+n+'\"':\"\";return\"<\"+i+s+`>\n`+r+\"</\"+i+`>\n`}listitem(e){let t=\"\";if(e.task){let n=this.checkbox({checked:!!e.checked});e.loose?e.tokens[0]?.type===\"paragraph\"?(e.tokens[0].text=n+\" \"+e.tokens[0].text,e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&e.tokens[0].tokens[0].type===\"text\"&&(e.tokens[0].tokens[0].text=n+\" \"+w(e.tokens[0].tokens[0].text),e.tokens[0].tokens[0].escaped=!0)):e.tokens.unshift({type:\"text\",raw:n+\" \",text:n+\" \",escaped:!0}):t+=n+\" \"}return t+=this.parser.parse(e.tokens,!!e.loose),`<li>${t}</li>\n`}checkbox({checked:e}){return\"<input \"+(e?'checked=\"\" ':\"\")+'disabled=\"\" type=\"checkbox\">'}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>\n`}table(e){let t=\"\",n=\"\";for(let i=0;i<e.header.length;i++)n+=this.tablecell(e.header[i]);t+=this.tablerow({text:n});let r=\"\";for(let i=0;i<e.rows.length;i++){let s=e.rows[i];n=\"\";for(let a=0;a<s.length;a++)n+=this.tablecell(s[a]);r+=this.tablerow({text:n})}return r&&(r=`<tbody>${r}</tbody>`),`<table>\n<thead>\n`+t+`</thead>\n`+r+`</table>\n`}tablerow({text:e}){return`<tr>\n${e}</tr>\n`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?\"th\":\"td\";return(e.align?`<${n} align=\"${e.align}\">`:`<${n}>`)+t+`</${n}>\n`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${w(e,!0)}</code>`}br(e){return\"<br>\"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=J(e);if(i===null)return r;e=i;let s='<a href=\"'+e+'\"';return t&&(s+=' title=\"'+w(t)+'\"'),s+=\">\"+r+\"</a>\",s}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=J(e);if(i===null)return w(n);e=i;let s=`<img src=\"${e}\" alt=\"${n}\"`;return t&&(s+=` title=\"${w(t)}\"`),s+=\">\",s}text(e){return\"tokens\"in e&&e.tokens?this.parser.parseInline(e.tokens):\"escaped\"in e&&e.escaped?e.text:w(e.text)}};var $=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return\"\"+e}image({text:e}){return\"\"+e}br(){return\"\"}};var b=class l{options;renderer;textRenderer;constructor(e){this.options=e||T,this.options.renderer=this.options.renderer||new P,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new $}static parse(e,t){return new l(t).parse(e)}static parseInline(e,t){return new l(t).parseInline(e)}parse(e,t=!0){let n=\"\";for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let a=i,o=this.options.extensions.renderers[a.type].call({parser:this},a);if(o!==!1||![\"space\",\"hr\",\"heading\",\"code\",\"table\",\"blockquote\",\"list\",\"html\",\"def\",\"paragraph\",\"text\"].includes(a.type)){n+=o||\"\";continue}}let s=i;switch(s.type){case\"space\":{n+=this.renderer.space(s);continue}case\"hr\":{n+=this.renderer.hr(s);continue}case\"heading\":{n+=this.renderer.heading(s);continue}case\"code\":{n+=this.renderer.code(s);continue}case\"table\":{n+=this.renderer.table(s);continue}case\"blockquote\":{n+=this.renderer.blockquote(s);continue}case\"list\":{n+=this.renderer.list(s);continue}case\"html\":{n+=this.renderer.html(s);continue}case\"def\":{n+=this.renderer.def(s);continue}case\"paragraph\":{n+=this.renderer.paragraph(s);continue}case\"text\":{let a=s,o=this.renderer.text(a);for(;r+1<e.length&&e[r+1].type===\"text\";)a=e[++r],o+=`\n`+this.renderer.text(a);t?n+=this.renderer.paragraph({type:\"paragraph\",raw:o,text:o,tokens:[{type:\"text\",raw:o,text:o,escaped:!0}]}):n+=o;continue}default:{let a='Token with \"'+s.type+'\" type was not found.';if(this.options.silent)return console.error(a),\"\";throw new Error(a)}}}return n}parseInline(e,t=this.renderer){let n=\"\";for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let a=this.options.extensions.renderers[i.type].call({parser:this},i);if(a!==!1||![\"escape\",\"html\",\"link\",\"image\",\"strong\",\"em\",\"codespan\",\"br\",\"del\",\"text\"].includes(i.type)){n+=a||\"\";continue}}let s=i;switch(s.type){case\"escape\":{n+=t.text(s);break}case\"html\":{n+=t.html(s);break}case\"link\":{n+=t.link(s);break}case\"image\":{n+=t.image(s);break}case\"strong\":{n+=t.strong(s);break}case\"em\":{n+=t.em(s);break}case\"codespan\":{n+=t.codespan(s);break}case\"br\":{n+=t.br(s);break}case\"del\":{n+=t.del(s);break}case\"text\":{n+=t.text(s);break}default:{let a='Token with \"'+s.type+'\" type was not found.';if(this.options.silent)return console.error(a),\"\";throw new Error(a)}}}return n}};var S=class{options;block;constructor(e){this.options=e||T}static passThroughHooks=new Set([\"preprocess\",\"postprocess\",\"processAllTokens\",\"emStrongMask\"]);static passThroughHooksRespectAsync=new Set([\"preprocess\",\"postprocess\",\"processAllTokens\"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(){return this.block?x.lex:x.lexInline}provideParser(){return this.block?b.parse:b.parseInline}};var B=class{defaults=L();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=b;Renderer=P;TextRenderer=$;Lexer=x;Tokenizer=y;Hooks=S;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case\"table\":{let i=r;for(let s of i.header)n=n.concat(this.walkTokens(s.tokens,t));for(let s of i.rows)for(let a of s)n=n.concat(this.walkTokens(a.tokens,t));break}case\"list\":{let i=r;n=n.concat(this.walkTokens(i.items,t));break}default:{let i=r;this.defaults.extensions?.childTokens?.[i.type]?this.defaults.extensions.childTokens[i.type].forEach(s=>{let a=i[s].flat(1/0);n=n.concat(this.walkTokens(a,t))}):i.tokens&&(n=n.concat(this.walkTokens(i.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let r={...n};if(r.async=this.defaults.async||r.async||!1,n.extensions&&(n.extensions.forEach(i=>{if(!i.name)throw new Error(\"extension name required\");if(\"renderer\"in i){let s=t.renderers[i.name];s?t.renderers[i.name]=function(...a){let o=i.renderer.apply(this,a);return o===!1&&(o=s.apply(this,a)),o}:t.renderers[i.name]=i.renderer}if(\"tokenizer\"in i){if(!i.level||i.level!==\"block\"&&i.level!==\"inline\")throw new Error(\"extension level must be 'block' or 'inline'\");let s=t[i.level];s?s.unshift(i.tokenizer):t[i.level]=[i.tokenizer],i.start&&(i.level===\"block\"?t.startBlock?t.startBlock.push(i.start):t.startBlock=[i.start]:i.level===\"inline\"&&(t.startInline?t.startInline.push(i.start):t.startInline=[i.start]))}\"childTokens\"in i&&i.childTokens&&(t.childTokens[i.name]=i.childTokens)}),r.extensions=t),n.renderer){let i=this.defaults.renderer||new P(this.defaults);for(let s in n.renderer){if(!(s in i))throw new Error(`renderer '${s}' does not exist`);if([\"options\",\"parser\"].includes(s))continue;let a=s,o=n.renderer[a],p=i[a];i[a]=(...u)=>{let c=o.apply(i,u);return c===!1&&(c=p.apply(i,u)),c||\"\"}}r.renderer=i}if(n.tokenizer){let i=this.defaults.tokenizer||new y(this.defaults);for(let s in n.tokenizer){if(!(s in i))throw new Error(`tokenizer '${s}' does not exist`);if([\"options\",\"rules\",\"lexer\"].includes(s))continue;let a=s,o=n.tokenizer[a],p=i[a];i[a]=(...u)=>{let c=o.apply(i,u);return c===!1&&(c=p.apply(i,u)),c}}r.tokenizer=i}if(n.hooks){let i=this.defaults.hooks||new S;for(let s in n.hooks){if(!(s in i))throw new Error(`hook '${s}' does not exist`);if([\"options\",\"block\"].includes(s))continue;let a=s,o=n.hooks[a],p=i[a];S.passThroughHooks.has(s)?i[a]=u=>{if(this.defaults.async&&S.passThroughHooksRespectAsync.has(s))return(async()=>{let g=await o.call(i,u);return p.call(i,g)})();let c=o.call(i,u);return p.call(i,c)}:i[a]=(...u)=>{if(this.defaults.async)return(async()=>{let g=await o.apply(i,u);return g===!1&&(g=await p.apply(i,u)),g})();let c=o.apply(i,u);return c===!1&&(c=p.apply(i,u)),c}}r.hooks=i}if(n.walkTokens){let i=this.defaults.walkTokens,s=n.walkTokens;r.walkTokens=function(a){let o=[];return o.push(s.call(this,a)),i&&(o=o.concat(i.call(this,a))),o}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return x.lex(e,t??this.defaults)}parser(e,t){return b.parse(e,t??this.defaults)}parseMarkdown(e){return(n,r)=>{let i={...r},s={...this.defaults,...i},a=this.onError(!!s.silent,!!s.async);if(this.defaults.async===!0&&i.async===!1)return a(new Error(\"marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.\"));if(typeof n>\"u\"||n===null)return a(new Error(\"marked(): input parameter is undefined or null\"));if(typeof n!=\"string\")return a(new Error(\"marked(): input parameter is of type \"+Object.prototype.toString.call(n)+\", string expected\"));if(s.hooks&&(s.hooks.options=s,s.hooks.block=e),s.async)return(async()=>{let o=s.hooks?await s.hooks.preprocess(n):n,u=await(s.hooks?await s.hooks.provideLexer():e?x.lex:x.lexInline)(o,s),c=s.hooks?await s.hooks.processAllTokens(u):u;s.walkTokens&&await Promise.all(this.walkTokens(c,s.walkTokens));let h=await(s.hooks?await s.hooks.provideParser():e?b.parse:b.parseInline)(c,s);return s.hooks?await s.hooks.postprocess(h):h})().catch(a);try{s.hooks&&(n=s.hooks.preprocess(n));let p=(s.hooks?s.hooks.provideLexer():e?x.lex:x.lexInline)(n,s);s.hooks&&(p=s.hooks.processAllTokens(p)),s.walkTokens&&this.walkTokens(p,s.walkTokens);let c=(s.hooks?s.hooks.provideParser():e?b.parse:b.parseInline)(p,s);return s.hooks&&(c=s.hooks.postprocess(c)),c}catch(o){return a(o)}}}onError(e,t){return n=>{if(n.message+=`\nPlease report this to https://github.com/markedjs/marked.`,e){let r=\"<p>An error occurred:</p><pre>\"+w(n.message+\"\",!0)+\"</pre>\";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}};var _=new B;function k(l,e){return _.parse(l,e)}k.options=k.setOptions=function(l){return _.setOptions(l),k.defaults=_.defaults,G(k.defaults),k};k.getDefaults=L;k.defaults=T;k.use=function(...l){return _.use(...l),k.defaults=_.defaults,G(k.defaults),k};k.walkTokens=function(l,e){return _.walkTokens(l,e)};k.parseInline=_.parseInline;k.Parser=b;k.parser=b.parse;k.Renderer=P;k.TextRenderer=$;k.Lexer=x;k.lexer=x.lex;k.Tokenizer=y;k.Hooks=S;k.parse=k;var Zt=k.options,Gt=k.setOptions,Nt=k.use,Ft=k.walkTokens,jt=k.parseInline,Qt=k,Ut=b.parse,Kt=x.lex;export{S as Hooks,x as Lexer,B as Marked,b as Parser,P as Renderer,$ as TextRenderer,y as Tokenizer,T as defaults,L as getDefaults,Kt as lexer,k as marked,Zt as options,Qt as parse,jt as parseInline,Ut as parser,Gt as setOptions,Nt as use,Ft as walkTokens};\n//# sourceMappingURL=marked.esm.js.map\n","export function dedent(templ) {\n var values = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n values[_i - 1] = arguments[_i];\n }\n var strings = Array.from(typeof templ === 'string' ? [templ] : templ);\n strings[strings.length - 1] = strings[strings.length - 1].replace(/\\r?\\n([\\t ]*)$/, '');\n var indentLengths = strings.reduce(function (arr, str) {\n var matches = str.match(/\\n([\\t ]+|(?!\\s).)/g);\n if (matches) {\n return arr.concat(matches.map(function (match) { var _a, _b; return (_b = (_a = match.match(/[\\t ]/g)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0; }));\n }\n return arr;\n }, []);\n if (indentLengths.length) {\n var pattern_1 = new RegExp(\"\\n[\\t ]{\" + Math.min.apply(Math, indentLengths) + \"}\", 'g');\n strings = strings.map(function (str) { return str.replace(pattern_1, '\\n'); });\n }\n strings[0] = strings[0].replace(/^\\r?\\n/, '');\n var string = strings[0];\n values.forEach(function (value, i) {\n var endentations = string.match(/(?:^|\\n)( *)$/);\n var endentation = endentations ? endentations[1] : '';\n var indentedValue = value;\n if (typeof value === 'string' && value.includes('\\n')) {\n indentedValue = String(value)\n .split('\\n')\n .map(function (str, i) {\n return i === 0 ? str : \"\" + endentation + str;\n })\n .join('\\n');\n }\n string += indentedValue + strings[i + 1];\n });\n return string;\n}\nexport default dedent;\n//# sourceMappingURL=index.js.map","import {\n decodeEntities\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n common_default,\n getConfig,\n hasKatex,\n renderKatexSanitized,\n sanitizeText\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/icons.ts\nimport { getIconData, iconToHTML, iconToSVG, replaceIDs, stringToIcon } from \"@iconify/utils\";\nvar unknownIcon = {\n body: '<g><rect width=\"80\" height=\"80\" style=\"fill: #087ebf; stroke-width: 0px;\"/><text transform=\"translate(21.16 64.67)\" style=\"fill: #fff; font-family: ArialMT, Arial; font-size: 67.75px;\"><tspan x=\"0\" y=\"0\">?</tspan></text></g>',\n height: 80,\n width: 80\n};\nvar iconsStore = /* @__PURE__ */ new Map();\nvar loaderStore = /* @__PURE__ */ new Map();\nvar registerIconPacks = /* @__PURE__ */ __name((iconLoaders) => {\n for (const iconLoader of iconLoaders) {\n if (!iconLoader.name) {\n throw new Error(\n 'Invalid icon loader. Must have a \"name\" property with non-empty string value.'\n );\n }\n log.debug(\"Registering icon pack:\", iconLoader.name);\n if (\"loader\" in iconLoader) {\n loaderStore.set(iconLoader.name, iconLoader.loader);\n } else if (\"icons\" in iconLoader) {\n iconsStore.set(iconLoader.name, iconLoader.icons);\n } else {\n log.error(\"Invalid icon loader:\", iconLoader);\n throw new Error('Invalid icon loader. Must have either \"icons\" or \"loader\" property.');\n }\n }\n}, \"registerIconPacks\");\nvar getRegisteredIconData = /* @__PURE__ */ __name(async (iconName, fallbackPrefix) => {\n const data = stringToIcon(iconName, true, fallbackPrefix !== void 0);\n if (!data) {\n throw new Error(`Invalid icon name: ${iconName}`);\n }\n const prefix = data.prefix || fallbackPrefix;\n if (!prefix) {\n throw new Error(`Icon name must contain a prefix: ${iconName}`);\n }\n let icons = iconsStore.get(prefix);\n if (!icons) {\n const loader = loaderStore.get(prefix);\n if (!loader) {\n throw new Error(`Icon set not found: ${data.prefix}`);\n }\n try {\n const loaded = await loader();\n icons = { ...loaded, prefix };\n iconsStore.set(prefix, icons);\n } catch (e) {\n log.error(e);\n throw new Error(`Failed to load icon set: ${data.prefix}`);\n }\n }\n const iconData = getIconData(icons, data.name);\n if (!iconData) {\n throw new Error(`Icon not found: ${iconName}`);\n }\n return iconData;\n}, \"getRegisteredIconData\");\nvar isIconAvailable = /* @__PURE__ */ __name(async (iconName) => {\n try {\n await getRegisteredIconData(iconName);\n return true;\n } catch {\n return false;\n }\n}, \"isIconAvailable\");\nvar getIconSVG = /* @__PURE__ */ __name(async (iconName, customisations, extraAttributes) => {\n let iconData;\n try {\n iconData = await getRegisteredIconData(iconName, customisations?.fallbackPrefix);\n } catch (e) {\n log.error(e);\n iconData = unknownIcon;\n }\n const renderData = iconToSVG(iconData, customisations);\n const svg = iconToHTML(replaceIDs(renderData.body), {\n ...renderData.attributes,\n ...extraAttributes\n });\n return sanitizeText(svg, getConfig());\n}, \"getIconSVG\");\n\n// src/rendering-util/createText.ts\nimport { select } from \"d3\";\n\n// src/rendering-util/handle-markdown-text.ts\nimport { marked } from \"marked\";\nimport { dedent } from \"ts-dedent\";\nfunction preprocessMarkdown(markdown, { markdownAutoWrap }) {\n const withoutBR = markdown.replace(/<br\\/>/g, \"\\n\");\n const withoutMultipleNewlines = withoutBR.replace(/\\n{2,}/g, \"\\n\");\n const withoutExtraSpaces = dedent(withoutMultipleNewlines);\n if (markdownAutoWrap === false) {\n return withoutExtraSpaces.replace(/ /g, \"&nbsp;\");\n }\n return withoutExtraSpaces;\n}\n__name(preprocessMarkdown, \"preprocessMarkdown\");\nfunction markdownToLines(markdown, config = {}) {\n const preprocessedMarkdown = preprocessMarkdown(markdown, config);\n const nodes = marked.lexer(preprocessedMarkdown);\n const lines = [[]];\n let currentLine = 0;\n function processNode(node, parentType = \"normal\") {\n if (node.type === \"text\") {\n const textLines = node.text.split(\"\\n\");\n textLines.forEach((textLine, index) => {\n if (index !== 0) {\n currentLine++;\n lines.push([]);\n }\n textLine.split(\" \").forEach((word) => {\n word = word.replace(/&#39;/g, `'`);\n if (word) {\n lines[currentLine].push({ content: word, type: parentType });\n }\n });\n });\n } else if (node.type === \"strong\" || node.type === \"em\") {\n node.tokens.forEach((contentNode) => {\n processNode(contentNode, node.type);\n });\n } else if (node.type === \"html\") {\n lines[currentLine].push({ content: node.text, type: \"normal\" });\n }\n }\n __name(processNode, \"processNode\");\n nodes.forEach((treeNode) => {\n if (treeNode.type === \"paragraph\") {\n treeNode.tokens?.forEach((contentNode) => {\n processNode(contentNode);\n });\n } else if (treeNode.type === \"html\") {\n lines[currentLine].push({ content: treeNode.text, type: \"normal\" });\n } else {\n lines[currentLine].push({ content: treeNode.raw, type: \"normal\" });\n }\n });\n return lines;\n}\n__name(markdownToLines, \"markdownToLines\");\nfunction markdownToHTML(markdown, { markdownAutoWrap } = {}) {\n const nodes = marked.lexer(markdown);\n function output(node) {\n if (node.type === \"text\") {\n if (markdownAutoWrap === false) {\n return node.text.replace(/\\n */g, \"<br/>\").replace(/ /g, \"&nbsp;\");\n }\n return node.text.replace(/\\n */g, \"<br/>\");\n } else if (node.type === \"strong\") {\n return `<strong>${node.tokens?.map(output).join(\"\")}</strong>`;\n } else if (node.type === \"em\") {\n return `<em>${node.tokens?.map(output).join(\"\")}</em>`;\n } else if (node.type === \"paragraph\") {\n return `<p>${node.tokens?.map(output).join(\"\")}</p>`;\n } else if (node.type === \"space\") {\n return \"\";\n } else if (node.type === \"html\") {\n return `${node.text}`;\n } else if (node.type === \"escape\") {\n return node.text;\n }\n log.warn(`Unsupported markdown: ${node.type}`);\n return node.raw;\n }\n __name(output, \"output\");\n return nodes.map(output).join(\"\");\n}\n__name(markdownToHTML, \"markdownToHTML\");\n\n// src/rendering-util/splitText.ts\nfunction splitTextToChars(text) {\n if (Intl.Segmenter) {\n return [...new Intl.Segmenter().segment(text)].map((s) => s.segment);\n }\n return [...text];\n}\n__name(splitTextToChars, \"splitTextToChars\");\nfunction splitWordToFitWidth(checkFit, word) {\n const characters = splitTextToChars(word.content);\n return splitWordToFitWidthRecursion(checkFit, [], characters, word.type);\n}\n__name(splitWordToFitWidth, \"splitWordToFitWidth\");\nfunction splitWordToFitWidthRecursion(checkFit, usedChars, remainingChars, type) {\n if (remainingChars.length === 0) {\n return [\n { content: usedChars.join(\"\"), type },\n { content: \"\", type }\n ];\n }\n const [nextChar, ...rest] = remainingChars;\n const newWord = [...usedChars, nextChar];\n if (checkFit([{ content: newWord.join(\"\"), type }])) {\n return splitWordToFitWidthRecursion(checkFit, newWord, rest, type);\n }\n if (usedChars.length === 0 && nextChar) {\n usedChars.push(nextChar);\n remainingChars.shift();\n }\n return [\n { content: usedChars.join(\"\"), type },\n { content: remainingChars.join(\"\"), type }\n ];\n}\n__name(splitWordToFitWidthRecursion, \"splitWordToFitWidthRecursion\");\nfunction splitLineToFitWidth(line, checkFit) {\n if (line.some(({ content }) => content.includes(\"\\n\"))) {\n throw new Error(\"splitLineToFitWidth does not support newlines in the line\");\n }\n return splitLineToFitWidthRecursion(line, checkFit);\n}\n__name(splitLineToFitWidth, \"splitLineToFitWidth\");\nfunction splitLineToFitWidthRecursion(words, checkFit, lines = [], newLine = []) {\n if (words.length === 0) {\n if (newLine.length > 0) {\n lines.push(newLine);\n }\n return lines.length > 0 ? lines : [];\n }\n let joiner = \"\";\n if (words[0].content === \" \") {\n joiner = \" \";\n words.shift();\n }\n const nextWord = words.shift() ?? { content: \" \", type: \"normal\" };\n const lineWithNextWord = [...newLine];\n if (joiner !== \"\") {\n lineWithNextWord.push({ content: joiner, type: \"normal\" });\n }\n lineWithNextWord.push(nextWord);\n if (checkFit(lineWithNextWord)) {\n return splitLineToFitWidthRecursion(words, checkFit, lines, lineWithNextWord);\n }\n if (newLine.length > 0) {\n lines.push(newLine);\n words.unshift(nextWord);\n } else if (nextWord.content) {\n const [line, rest] = splitWordToFitWidth(checkFit, nextWord);\n lines.push([line]);\n if (rest.content) {\n words.unshift(rest);\n }\n }\n return splitLineToFitWidthRecursion(words, checkFit, lines);\n}\n__name(splitLineToFitWidthRecursion, \"splitLineToFitWidthRecursion\");\n\n// src/rendering-util/createText.ts\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr(\"style\", styleFn);\n }\n}\n__name(applyStyle, \"applyStyle\");\nasync function addHtmlSpan(element, node, width, classes, addBackground = false, config = getConfig()) {\n const fo = element.append(\"foreignObject\");\n fo.attr(\"width\", `${10 * width}px`);\n fo.attr(\"height\", `${10 * width}px`);\n const div = fo.append(\"xhtml:div\");\n const sanitizedLabel = hasKatex(node.label) ? await renderKatexSanitized(node.label.replace(common_default.lineBreakRegex, \"\\n\"), config) : sanitizeText(node.label, config);\n const labelClass = node.isNode ? \"nodeLabel\" : \"edgeLabel\";\n const span = div.append(\"span\");\n span.html(sanitizedLabel);\n applyStyle(span, node.labelStyle);\n span.attr(\"class\", `${labelClass} ${classes}`);\n applyStyle(div, node.labelStyle);\n div.style(\"display\", \"table-cell\");\n div.style(\"white-space\", \"nowrap\");\n div.style(\"line-height\", \"1.5\");\n div.style(\"max-width\", width + \"px\");\n div.style(\"text-align\", \"center\");\n div.attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n if (addBackground) {\n div.attr(\"class\", \"labelBkg\");\n }\n let bbox = div.node().getBoundingClientRect();\n if (bbox.width === width) {\n div.style(\"display\", \"table\");\n div.style(\"white-space\", \"break-spaces\");\n div.style(\"width\", width + \"px\");\n bbox = div.node().getBoundingClientRect();\n }\n return fo.node();\n}\n__name(addHtmlSpan, \"addHtmlSpan\");\nfunction createTspan(textElement, lineIndex, lineHeight) {\n return textElement.append(\"tspan\").attr(\"class\", \"text-outer-tspan\").attr(\"x\", 0).attr(\"y\", lineIndex * lineHeight - 0.1 + \"em\").attr(\"dy\", lineHeight + \"em\");\n}\n__name(createTspan, \"createTspan\");\nfunction computeWidthOfText(parentNode, lineHeight, line) {\n const testElement = parentNode.append(\"text\");\n const testSpan = createTspan(testElement, 1, lineHeight);\n updateTextContentAndStyles(testSpan, line);\n const textLength = testSpan.node().getComputedTextLength();\n testElement.remove();\n return textLength;\n}\n__name(computeWidthOfText, \"computeWidthOfText\");\nfunction computeDimensionOfText(parentNode, lineHeight, text) {\n const testElement = parentNode.append(\"text\");\n const testSpan = createTspan(testElement, 1, lineHeight);\n updateTextContentAndStyles(testSpan, [{ content: text, type: \"normal\" }]);\n const textDimension = testSpan.node()?.getBoundingClientRect();\n if (textDimension) {\n testElement.remove();\n }\n return textDimension;\n}\n__name(computeDimensionOfText, \"computeDimensionOfText\");\nfunction createFormattedText(width, g, structuredText, addBackground = false) {\n const lineHeight = 1.1;\n const labelGroup = g.append(\"g\");\n const bkg = labelGroup.insert(\"rect\").attr(\"class\", \"background\").attr(\"style\", \"stroke: none\");\n const textElement = labelGroup.append(\"text\").attr(\"y\", \"-10.1\");\n let lineIndex = 0;\n for (const line of structuredText) {\n const checkWidth = /* @__PURE__ */ __name((line2) => computeWidthOfText(labelGroup, lineHeight, line2) <= width, \"checkWidth\");\n const linesUnderWidth = checkWidth(line) ? [line] : splitLineToFitWidth(line, checkWidth);\n for (const preparedLine of linesUnderWidth) {\n const tspan = createTspan(textElement, lineIndex, lineHeight);\n updateTextContentAndStyles(tspan, preparedLine);\n lineIndex++;\n }\n }\n if (addBackground) {\n const bbox = textElement.node().getBBox();\n const padding = 2;\n bkg.attr(\"x\", bbox.x - padding).attr(\"y\", bbox.y - padding).attr(\"width\", bbox.width + 2 * padding).attr(\"height\", bbox.height + 2 * padding);\n return labelGroup.node();\n } else {\n return textElement.node();\n }\n}\n__name(createFormattedText, \"createFormattedText\");\nfunction updateTextContentAndStyles(tspan, wrappedLine) {\n tspan.text(\"\");\n wrappedLine.forEach((word, index) => {\n const innerTspan = tspan.append(\"tspan\").attr(\"font-style\", word.type === \"em\" ? \"italic\" : \"normal\").attr(\"class\", \"text-inner-tspan\").attr(\"font-weight\", word.type === \"strong\" ? \"bold\" : \"normal\");\n if (index === 0) {\n innerTspan.text(word.content);\n } else {\n innerTspan.text(\" \" + word.content);\n }\n });\n}\n__name(updateTextContentAndStyles, \"updateTextContentAndStyles\");\nasync function replaceIconSubstring(text, config = {}) {\n const pendingReplacements = [];\n text.replace(/(fa[bklrs]?):fa-([\\w-]+)/g, (fullMatch, prefix, iconName) => {\n pendingReplacements.push(\n (async () => {\n const registeredIconName = `${prefix}:${iconName}`;\n if (await isIconAvailable(registeredIconName)) {\n return await getIconSVG(registeredIconName, void 0, { class: \"label-icon\" });\n } else {\n return `<i class='${sanitizeText(fullMatch, config).replace(\":\", \" \")}'></i>`;\n }\n })()\n );\n return fullMatch;\n });\n const replacements = await Promise.all(pendingReplacements);\n return text.replace(/(fa[bklrs]?):fa-([\\w-]+)/g, () => replacements.shift() ?? \"\");\n}\n__name(replaceIconSubstring, \"replaceIconSubstring\");\nvar createText = /* @__PURE__ */ __name(async (el, text = \"\", {\n style = \"\",\n isTitle = false,\n classes = \"\",\n useHtmlLabels = true,\n isNode = true,\n width = 200,\n addSvgBackground = false\n} = {}, config) => {\n log.debug(\n \"XYZ createText\",\n text,\n style,\n isTitle,\n classes,\n useHtmlLabels,\n isNode,\n \"addSvgBackground: \",\n addSvgBackground\n );\n if (useHtmlLabels) {\n const htmlText = markdownToHTML(text, config);\n const decodedReplacedText = await replaceIconSubstring(decodeEntities(htmlText), config);\n const inputForKatex = text.replace(/\\\\\\\\/g, \"\\\\\");\n const node = {\n isNode,\n label: hasKatex(text) ? inputForKatex : decodedReplacedText,\n labelStyle: style.replace(\"fill:\", \"color:\")\n };\n const vertexNode = await addHtmlSpan(el, node, width, classes, addSvgBackground, config);\n return vertexNode;\n } else {\n const sanitizeBR = text.replace(/<br\\s*\\/?>/g, \"<br/>\");\n const structuredText = markdownToLines(sanitizeBR.replace(\"<br>\", \"<br/>\"), config);\n const svgLabel = createFormattedText(\n width,\n el,\n structuredText,\n text ? addSvgBackground : false\n );\n if (isNode) {\n if (/stroke:/.exec(style)) {\n style = style.replace(\"stroke:\", \"lineColor:\");\n }\n const nodeLabelTextStyle = style.replace(/stroke:[^;]+;?/g, \"\").replace(/stroke-width:[^;]+;?/g, \"\").replace(/fill:[^;]+;?/g, \"\").replace(/color:/g, \"fill:\");\n select(svgLabel).attr(\"style\", nodeLabelTextStyle);\n } else {\n const edgeLabelRectStyle = style.replace(/stroke:[^;]+;?/g, \"\").replace(/stroke-width:[^;]+;?/g, \"\").replace(/fill:[^;]+;?/g, \"\").replace(/background:/g, \"fill:\");\n select(svgLabel).select(\"rect\").attr(\"style\", edgeLabelRectStyle.replace(/background:/g, \"fill:\"));\n const edgeLabelTextStyle = style.replace(/stroke:[^;]+;?/g, \"\").replace(/stroke-width:[^;]+;?/g, \"\").replace(/fill:[^;]+;?/g, \"\").replace(/color:/g, \"fill:\");\n select(svgLabel).select(\"text\").attr(\"style\", edgeLabelTextStyle);\n }\n return svgLabel;\n }\n}, \"createText\");\n\nexport {\n unknownIcon,\n registerIconPacks,\n getIconSVG,\n computeDimensionOfText,\n replaceIconSubstring,\n createText\n};\n","function t(t,e,s){if(t&&t.length){const[n,o]=e,a=Math.PI/180*s,h=Math.cos(a),r=Math.sin(a);for(const e of t){const[t,s]=e;e[0]=(t-n)*h-(s-o)*r+n,e[1]=(t-n)*r+(s-o)*h+o}}}function e(t,e){return t[0]===e[0]&&t[1]===e[1]}function s(s,n,o,a=1){const h=o,r=Math.max(n,.1),i=s[0]&&s[0][0]&&\"number\"==typeof s[0][0]?[s]:s,c=[0,0];if(h)for(const e of i)t(e,c,h);const l=function(t,s,n){const o=[];for(const s of t){const t=[...s];e(t[0],t[t.length-1])||t.push([t[0][0],t[0][1]]),t.length>2&&o.push(t)}const a=[];s=Math.max(s,.1);const h=[];for(const t of o)for(let e=0;e<t.length-1;e++){const s=t[e],n=t[e+1];if(s[1]!==n[1]){const t=Math.min(s[1],n[1]);h.push({ymin:t,ymax:Math.max(s[1],n[1]),x:t===s[1]?s[0]:n[0],islope:(n[0]-s[0])/(n[1]-s[1])})}}if(h.sort(((t,e)=>t.ymin<e.ymin?-1:t.ymin>e.ymin?1:t.x<e.x?-1:t.x>e.x?1:t.ymax===e.ymax?0:(t.ymax-e.ymax)/Math.abs(t.ymax-e.ymax))),!h.length)return a;let r=[],i=h[0].ymin,c=0;for(;r.length||h.length;){if(h.length){let t=-1;for(let e=0;e<h.length&&!(h[e].ymin>i);e++)t=e;h.splice(0,t+1).forEach((t=>{r.push({s:i,edge:t})}))}if(r=r.filter((t=>!(t.edge.ymax<=i))),r.sort(((t,e)=>t.edge.x===e.edge.x?0:(t.edge.x-e.edge.x)/Math.abs(t.edge.x-e.edge.x))),(1!==n||c%s==0)&&r.length>1)for(let t=0;t<r.length;t+=2){const e=t+1;if(e>=r.length)break;const s=r[t].edge,n=r[e].edge;a.push([[Math.round(s.x),i],[Math.round(n.x),i]])}i+=n,r.forEach((t=>{t.edge.x=t.edge.x+n*t.edge.islope})),c++}return a}(i,r,a);if(h){for(const e of i)t(e,c,-h);!function(e,s,n){const o=[];e.forEach((t=>o.push(...t))),t(o,s,n)}(l,c,-h)}return l}function n(t,e){var n;const o=e.hachureAngle+90;let a=e.hachureGap;a<0&&(a=4*e.strokeWidth),a=Math.round(Math.max(a,.1));let h=1;return e.roughness>=1&&((null===(n=e.randomizer)||void 0===n?void 0:n.next())||Math.random())>.7&&(h=a),s(t,a,o,h||1)}class o{constructor(t){this.helper=t}fillPolygons(t,e){return this._fillPolygons(t,e)}_fillPolygons(t,e){const s=n(t,e);return{type:\"fillSketch\",ops:this.renderLines(s,e)}}renderLines(t,e){const s=[];for(const n of t)s.push(...this.helper.doubleLineOps(n[0][0],n[0][1],n[1][0],n[1][1],e));return s}}function a(t){const e=t[0],s=t[1];return Math.sqrt(Math.pow(e[0]-s[0],2)+Math.pow(e[1]-s[1],2))}class h extends o{fillPolygons(t,e){let s=e.hachureGap;s<0&&(s=4*e.strokeWidth),s=Math.max(s,.1);const o=n(t,Object.assign({},e,{hachureGap:s})),h=Math.PI/180*e.hachureAngle,r=[],i=.5*s*Math.cos(h),c=.5*s*Math.sin(h);for(const[t,e]of o)a([t,e])&&r.push([[t[0]-i,t[1]+c],[...e]],[[t[0]+i,t[1]-c],[...e]]);return{type:\"fillSketch\",ops:this.renderLines(r,e)}}}class r extends o{fillPolygons(t,e){const s=this._fillPolygons(t,e),n=Object.assign({},e,{hachureAngle:e.hachureAngle+90}),o=this._fillPolygons(t,n);return s.ops=s.ops.concat(o.ops),s}}class i{constructor(t){this.helper=t}fillPolygons(t,e){const s=n(t,e=Object.assign({},e,{hachureAngle:0}));return this.dotsOnLines(s,e)}dotsOnLines(t,e){const s=[];let n=e.hachureGap;n<0&&(n=4*e.strokeWidth),n=Math.max(n,.1);let o=e.fillWeight;o<0&&(o=e.strokeWidth/2);const h=n/4;for(const r of t){const t=a(r),i=t/n,c=Math.ceil(i)-1,l=t-c*n,u=(r[0][0]+r[1][0])/2-n/4,p=Math.min(r[0][1],r[1][1]);for(let t=0;t<c;t++){const a=p+l+t*n,r=u-h+2*Math.random()*h,i=a-h+2*Math.random()*h,c=this.helper.ellipse(r,i,o,o,e);s.push(...c.ops)}}return{type:\"fillSketch\",ops:s}}}class c{constructor(t){this.helper=t}fillPolygons(t,e){const s=n(t,e);return{type:\"fillSketch\",ops:this.dashedLine(s,e)}}dashedLine(t,e){const s=e.dashOffset<0?e.hachureGap<0?4*e.strokeWidth:e.hachureGap:e.dashOffset,n=e.dashGap<0?e.hachureGap<0?4*e.strokeWidth:e.hachureGap:e.dashGap,o=[];return t.forEach((t=>{const h=a(t),r=Math.floor(h/(s+n)),i=(h+n-r*(s+n))/2;let c=t[0],l=t[1];c[0]>l[0]&&(c=t[1],l=t[0]);const u=Math.atan((l[1]-c[1])/(l[0]-c[0]));for(let t=0;t<r;t++){const a=t*(s+n),h=a+s,r=[c[0]+a*Math.cos(u)+i*Math.cos(u),c[1]+a*Math.sin(u)+i*Math.sin(u)],l=[c[0]+h*Math.cos(u)+i*Math.cos(u),c[1]+h*Math.sin(u)+i*Math.sin(u)];o.push(...this.helper.doubleLineOps(r[0],r[1],l[0],l[1],e))}})),o}}class l{constructor(t){this.helper=t}fillPolygons(t,e){const s=e.hachureGap<0?4*e.strokeWidth:e.hachureGap,o=e.zigzagOffset<0?s:e.zigzagOffset,a=n(t,e=Object.assign({},e,{hachureGap:s+o}));return{type:\"fillSketch\",ops:this.zigzagLines(a,o,e)}}zigzagLines(t,e,s){const n=[];return t.forEach((t=>{const o=a(t),h=Math.round(o/(2*e));let r=t[0],i=t[1];r[0]>i[0]&&(r=t[1],i=t[0]);const c=Math.atan((i[1]-r[1])/(i[0]-r[0]));for(let t=0;t<h;t++){const o=2*t*e,a=2*(t+1)*e,h=Math.sqrt(2*Math.pow(e,2)),i=[r[0]+o*Math.cos(c),r[1]+o*Math.sin(c)],l=[r[0]+a*Math.cos(c),r[1]+a*Math.sin(c)],u=[i[0]+h*Math.cos(c+Math.PI/4),i[1]+h*Math.sin(c+Math.PI/4)];n.push(...this.helper.doubleLineOps(i[0],i[1],u[0],u[1],s),...this.helper.doubleLineOps(u[0],u[1],l[0],l[1],s))}})),n}}const u={};class p{constructor(t){this.seed=t}next(){return this.seed?(2**31-1&(this.seed=Math.imul(48271,this.seed)))/2**31:Math.random()}}const f=0,d=1,g=2,M={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0};function k(t,e){return t.type===e}function b(t){const e=[],s=function(t){const e=new Array;for(;\"\"!==t;)if(t.match(/^([ \\t\\r\\n,]+)/))t=t.substr(RegExp.$1.length);else if(t.match(/^([aAcChHlLmMqQsStTvVzZ])/))e[e.length]={type:f,text:RegExp.$1},t=t.substr(RegExp.$1.length);else{if(!t.match(/^(([-+]?[0-9]+(\\.[0-9]*)?|[-+]?\\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];e[e.length]={type:d,text:`${parseFloat(RegExp.$1)}`},t=t.substr(RegExp.$1.length)}return e[e.length]={type:g,text:\"\"},e}(t);let n=\"BOD\",o=0,a=s[o];for(;!k(a,g);){let h=0;const r=[];if(\"BOD\"===n){if(\"M\"!==a.text&&\"m\"!==a.text)return b(\"M0,0\"+t);o++,h=M[a.text],n=a.text}else k(a,d)?h=M[n]:(o++,h=M[a.text],n=a.text);if(!(o+h<s.length))throw new Error(\"Path data ended short\");for(let t=o;t<o+h;t++){const e=s[t];if(!k(e,d))throw new Error(\"Param not a number: \"+n+\",\"+e.text);r[r.length]=+e.text}if(\"number\"!=typeof M[n])throw new Error(\"Bad segment: \"+n);{const t={key:n,data:r};e.push(t),o+=h,a=s[o],\"M\"===n&&(n=\"L\"),\"m\"===n&&(n=\"l\")}}return e}function y(t){let e=0,s=0,n=0,o=0;const a=[];for(const{key:h,data:r}of t)switch(h){case\"M\":a.push({key:\"M\",data:[...r]}),[e,s]=r,[n,o]=r;break;case\"m\":e+=r[0],s+=r[1],a.push({key:\"M\",data:[e,s]}),n=e,o=s;break;case\"L\":a.push({key:\"L\",data:[...r]}),[e,s]=r;break;case\"l\":e+=r[0],s+=r[1],a.push({key:\"L\",data:[e,s]});break;case\"C\":a.push({key:\"C\",data:[...r]}),e=r[4],s=r[5];break;case\"c\":{const t=r.map(((t,n)=>n%2?t+s:t+e));a.push({key:\"C\",data:t}),e=t[4],s=t[5];break}case\"Q\":a.push({key:\"Q\",data:[...r]}),e=r[2],s=r[3];break;case\"q\":{const t=r.map(((t,n)=>n%2?t+s:t+e));a.push({key:\"Q\",data:t}),e=t[2],s=t[3];break}case\"A\":a.push({key:\"A\",data:[...r]}),e=r[5],s=r[6];break;case\"a\":e+=r[5],s+=r[6],a.push({key:\"A\",data:[r[0],r[1],r[2],r[3],r[4],e,s]});break;case\"H\":a.push({key:\"H\",data:[...r]}),e=r[0];break;case\"h\":e+=r[0],a.push({key:\"H\",data:[e]});break;case\"V\":a.push({key:\"V\",data:[...r]}),s=r[0];break;case\"v\":s+=r[0],a.push({key:\"V\",data:[s]});break;case\"S\":a.push({key:\"S\",data:[...r]}),e=r[2],s=r[3];break;case\"s\":{const t=r.map(((t,n)=>n%2?t+s:t+e));a.push({key:\"S\",data:t}),e=t[2],s=t[3];break}case\"T\":a.push({key:\"T\",data:[...r]}),e=r[0],s=r[1];break;case\"t\":e+=r[0],s+=r[1],a.push({key:\"T\",data:[e,s]});break;case\"Z\":case\"z\":a.push({key:\"Z\",data:[]}),e=n,s=o}return a}function m(t){const e=[];let s=\"\",n=0,o=0,a=0,h=0,r=0,i=0;for(const{key:c,data:l}of t){switch(c){case\"M\":e.push({key:\"M\",data:[...l]}),[n,o]=l,[a,h]=l;break;case\"C\":e.push({key:\"C\",data:[...l]}),n=l[4],o=l[5],r=l[2],i=l[3];break;case\"L\":e.push({key:\"L\",data:[...l]}),[n,o]=l;break;case\"H\":n=l[0],e.push({key:\"L\",data:[n,o]});break;case\"V\":o=l[0],e.push({key:\"L\",data:[n,o]});break;case\"S\":{let t=0,a=0;\"C\"===s||\"S\"===s?(t=n+(n-r),a=o+(o-i)):(t=n,a=o),e.push({key:\"C\",data:[t,a,...l]}),r=l[0],i=l[1],n=l[2],o=l[3];break}case\"T\":{const[t,a]=l;let h=0,c=0;\"Q\"===s||\"T\"===s?(h=n+(n-r),c=o+(o-i)):(h=n,c=o);const u=n+2*(h-n)/3,p=o+2*(c-o)/3,f=t+2*(h-t)/3,d=a+2*(c-a)/3;e.push({key:\"C\",data:[u,p,f,d,t,a]}),r=h,i=c,n=t,o=a;break}case\"Q\":{const[t,s,a,h]=l,c=n+2*(t-n)/3,u=o+2*(s-o)/3,p=a+2*(t-a)/3,f=h+2*(s-h)/3;e.push({key:\"C\",data:[c,u,p,f,a,h]}),r=t,i=s,n=a,o=h;break}case\"A\":{const t=Math.abs(l[0]),s=Math.abs(l[1]),a=l[2],h=l[3],r=l[4],i=l[5],c=l[6];if(0===t||0===s)e.push({key:\"C\",data:[n,o,i,c,i,c]}),n=i,o=c;else if(n!==i||o!==c){x(n,o,i,c,t,s,a,h,r).forEach((function(t){e.push({key:\"C\",data:t})})),n=i,o=c}break}case\"Z\":e.push({key:\"Z\",data:[]}),n=a,o=h}s=c}return e}function w(t,e,s){return[t*Math.cos(s)-e*Math.sin(s),t*Math.sin(s)+e*Math.cos(s)]}function x(t,e,s,n,o,a,h,r,i,c){const l=(u=h,Math.PI*u/180);var u;let p=[],f=0,d=0,g=0,M=0;if(c)[f,d,g,M]=c;else{[t,e]=w(t,e,-l),[s,n]=w(s,n,-l);const h=(t-s)/2,c=(e-n)/2;let u=h*h/(o*o)+c*c/(a*a);u>1&&(u=Math.sqrt(u),o*=u,a*=u);const p=o*o,k=a*a,b=p*k-p*c*c-k*h*h,y=p*c*c+k*h*h,m=(r===i?-1:1)*Math.sqrt(Math.abs(b/y));g=m*o*c/a+(t+s)/2,M=m*-a*h/o+(e+n)/2,f=Math.asin(parseFloat(((e-M)/a).toFixed(9))),d=Math.asin(parseFloat(((n-M)/a).toFixed(9))),t<g&&(f=Math.PI-f),s<g&&(d=Math.PI-d),f<0&&(f=2*Math.PI+f),d<0&&(d=2*Math.PI+d),i&&f>d&&(f-=2*Math.PI),!i&&d>f&&(d-=2*Math.PI)}let k=d-f;if(Math.abs(k)>120*Math.PI/180){const t=d,e=s,r=n;d=i&&d>f?f+120*Math.PI/180*1:f+120*Math.PI/180*-1,p=x(s=g+o*Math.cos(d),n=M+a*Math.sin(d),e,r,o,a,h,0,i,[d,t,g,M])}k=d-f;const b=Math.cos(f),y=Math.sin(f),m=Math.cos(d),P=Math.sin(d),v=Math.tan(k/4),S=4/3*o*v,O=4/3*a*v,L=[t,e],T=[t+S*y,e-O*b],D=[s+S*P,n-O*m],A=[s,n];if(T[0]=2*L[0]-T[0],T[1]=2*L[1]-T[1],c)return[T,D,A].concat(p);{p=[T,D,A].concat(p);const t=[];for(let e=0;e<p.length;e+=3){const s=w(p[e][0],p[e][1],l),n=w(p[e+1][0],p[e+1][1],l),o=w(p[e+2][0],p[e+2][1],l);t.push([s[0],s[1],n[0],n[1],o[0],o[1]])}return t}}const P={randOffset:function(t,e){return G(t,e)},randOffsetWithRange:function(t,e,s){return E(t,e,s)},ellipse:function(t,e,s,n,o){const a=T(s,n,o);return D(t,e,o,a).opset},doubleLineOps:function(t,e,s,n,o){return $(t,e,s,n,o,!0)}};function v(t,e,s,n,o){return{type:\"path\",ops:$(t,e,s,n,o)}}function S(t,e,s){const n=(t||[]).length;if(n>2){const o=[];for(let e=0;e<n-1;e++)o.push(...$(t[e][0],t[e][1],t[e+1][0],t[e+1][1],s));return e&&o.push(...$(t[n-1][0],t[n-1][1],t[0][0],t[0][1],s)),{type:\"path\",ops:o}}return 2===n?v(t[0][0],t[0][1],t[1][0],t[1][1],s):{type:\"path\",ops:[]}}function O(t,e,s,n,o){return function(t,e){return S(t,!0,e)}([[t,e],[t+s,e],[t+s,e+n],[t,e+n]],o)}function L(t,e){if(t.length){const s=\"number\"==typeof t[0][0]?[t]:t,n=j(s[0],1*(1+.2*e.roughness),e),o=e.disableMultiStroke?[]:j(s[0],1.5*(1+.22*e.roughness),z(e));for(let t=1;t<s.length;t++){const a=s[t];if(a.length){const t=j(a,1*(1+.2*e.roughness),e),s=e.disableMultiStroke?[]:j(a,1.5*(1+.22*e.roughness),z(e));for(const e of t)\"move\"!==e.op&&n.push(e);for(const t of s)\"move\"!==t.op&&o.push(t)}}return{type:\"path\",ops:n.concat(o)}}return{type:\"path\",ops:[]}}function T(t,e,s){const n=Math.sqrt(2*Math.PI*Math.sqrt((Math.pow(t/2,2)+Math.pow(e/2,2))/2)),o=Math.ceil(Math.max(s.curveStepCount,s.curveStepCount/Math.sqrt(200)*n)),a=2*Math.PI/o;let h=Math.abs(t/2),r=Math.abs(e/2);const i=1-s.curveFitting;return h+=G(h*i,s),r+=G(r*i,s),{increment:a,rx:h,ry:r}}function D(t,e,s,n){const[o,a]=F(n.increment,t,e,n.rx,n.ry,1,n.increment*E(.1,E(.4,1,s),s),s);let h=q(o,null,s);if(!s.disableMultiStroke&&0!==s.roughness){const[o]=F(n.increment,t,e,n.rx,n.ry,1.5,0,s),a=q(o,null,s);h=h.concat(a)}return{estimatedPoints:a,opset:{type:\"path\",ops:h}}}function A(t,e,s,n,o,a,h,r,i){const c=t,l=e;let u=Math.abs(s/2),p=Math.abs(n/2);u+=G(.01*u,i),p+=G(.01*p,i);let f=o,d=a;for(;f<0;)f+=2*Math.PI,d+=2*Math.PI;d-f>2*Math.PI&&(f=0,d=2*Math.PI);const g=2*Math.PI/i.curveStepCount,M=Math.min(g/2,(d-f)/2),k=V(M,c,l,u,p,f,d,1,i);if(!i.disableMultiStroke){const t=V(M,c,l,u,p,f,d,1.5,i);k.push(...t)}return h&&(r?k.push(...$(c,l,c+u*Math.cos(f),l+p*Math.sin(f),i),...$(c,l,c+u*Math.cos(d),l+p*Math.sin(d),i)):k.push({op:\"lineTo\",data:[c,l]},{op:\"lineTo\",data:[c+u*Math.cos(f),l+p*Math.sin(f)]})),{type:\"path\",ops:k}}function _(t,e){const s=m(y(b(t))),n=[];let o=[0,0],a=[0,0];for(const{key:t,data:h}of s)switch(t){case\"M\":a=[h[0],h[1]],o=[h[0],h[1]];break;case\"L\":n.push(...$(a[0],a[1],h[0],h[1],e)),a=[h[0],h[1]];break;case\"C\":{const[t,s,o,r,i,c]=h;n.push(...Z(t,s,o,r,i,c,a,e)),a=[i,c];break}case\"Z\":n.push(...$(a[0],a[1],o[0],o[1],e)),a=[o[0],o[1]]}return{type:\"path\",ops:n}}function I(t,e){const s=[];for(const n of t)if(n.length){const t=e.maxRandomnessOffset||0,o=n.length;if(o>2){s.push({op:\"move\",data:[n[0][0]+G(t,e),n[0][1]+G(t,e)]});for(let a=1;a<o;a++)s.push({op:\"lineTo\",data:[n[a][0]+G(t,e),n[a][1]+G(t,e)]})}}return{type:\"fillPath\",ops:s}}function C(t,e){return function(t,e){let s=t.fillStyle||\"hachure\";if(!u[s])switch(s){case\"zigzag\":u[s]||(u[s]=new h(e));break;case\"cross-hatch\":u[s]||(u[s]=new r(e));break;case\"dots\":u[s]||(u[s]=new i(e));break;case\"dashed\":u[s]||(u[s]=new c(e));break;case\"zigzag-line\":u[s]||(u[s]=new l(e));break;default:s=\"hachure\",u[s]||(u[s]=new o(e))}return u[s]}(e,P).fillPolygons(t,e)}function z(t){const e=Object.assign({},t);return e.randomizer=void 0,t.seed&&(e.seed=t.seed+1),e}function W(t){return t.randomizer||(t.randomizer=new p(t.seed||0)),t.randomizer.next()}function E(t,e,s,n=1){return s.roughness*n*(W(s)*(e-t)+t)}function G(t,e,s=1){return E(-t,t,e,s)}function $(t,e,s,n,o,a=!1){const h=a?o.disableMultiStrokeFill:o.disableMultiStroke,r=R(t,e,s,n,o,!0,!1);if(h)return r;const i=R(t,e,s,n,o,!0,!0);return r.concat(i)}function R(t,e,s,n,o,a,h){const r=Math.pow(t-s,2)+Math.pow(e-n,2),i=Math.sqrt(r);let c=1;c=i<200?1:i>500?.4:-.0016668*i+1.233334;let l=o.maxRandomnessOffset||0;l*l*100>r&&(l=i/10);const u=l/2,p=.2+.2*W(o);let f=o.bowing*o.maxRandomnessOffset*(n-e)/200,d=o.bowing*o.maxRandomnessOffset*(t-s)/200;f=G(f,o,c),d=G(d,o,c);const g=[],M=()=>G(u,o,c),k=()=>G(l,o,c),b=o.preserveVertices;return a&&(h?g.push({op:\"move\",data:[t+(b?0:M()),e+(b?0:M())]}):g.push({op:\"move\",data:[t+(b?0:G(l,o,c)),e+(b?0:G(l,o,c))]})),h?g.push({op:\"bcurveTo\",data:[f+t+(s-t)*p+M(),d+e+(n-e)*p+M(),f+t+2*(s-t)*p+M(),d+e+2*(n-e)*p+M(),s+(b?0:M()),n+(b?0:M())]}):g.push({op:\"bcurveTo\",data:[f+t+(s-t)*p+k(),d+e+(n-e)*p+k(),f+t+2*(s-t)*p+k(),d+e+2*(n-e)*p+k(),s+(b?0:k()),n+(b?0:k())]}),g}function j(t,e,s){if(!t.length)return[];const n=[];n.push([t[0][0]+G(e,s),t[0][1]+G(e,s)]),n.push([t[0][0]+G(e,s),t[0][1]+G(e,s)]);for(let o=1;o<t.length;o++)n.push([t[o][0]+G(e,s),t[o][1]+G(e,s)]),o===t.length-1&&n.push([t[o][0]+G(e,s),t[o][1]+G(e,s)]);return q(n,null,s)}function q(t,e,s){const n=t.length,o=[];if(n>3){const a=[],h=1-s.curveTightness;o.push({op:\"move\",data:[t[1][0],t[1][1]]});for(let e=1;e+2<n;e++){const s=t[e];a[0]=[s[0],s[1]],a[1]=[s[0]+(h*t[e+1][0]-h*t[e-1][0])/6,s[1]+(h*t[e+1][1]-h*t[e-1][1])/6],a[2]=[t[e+1][0]+(h*t[e][0]-h*t[e+2][0])/6,t[e+1][1]+(h*t[e][1]-h*t[e+2][1])/6],a[3]=[t[e+1][0],t[e+1][1]],o.push({op:\"bcurveTo\",data:[a[1][0],a[1][1],a[2][0],a[2][1],a[3][0],a[3][1]]})}if(e&&2===e.length){const t=s.maxRandomnessOffset;o.push({op:\"lineTo\",data:[e[0]+G(t,s),e[1]+G(t,s)]})}}else 3===n?(o.push({op:\"move\",data:[t[1][0],t[1][1]]}),o.push({op:\"bcurveTo\",data:[t[1][0],t[1][1],t[2][0],t[2][1],t[2][0],t[2][1]]})):2===n&&o.push(...R(t[0][0],t[0][1],t[1][0],t[1][1],s,!0,!0));return o}function F(t,e,s,n,o,a,h,r){const i=[],c=[];if(0===r.roughness){t/=4,c.push([e+n*Math.cos(-t),s+o*Math.sin(-t)]);for(let a=0;a<=2*Math.PI;a+=t){const t=[e+n*Math.cos(a),s+o*Math.sin(a)];i.push(t),c.push(t)}c.push([e+n*Math.cos(0),s+o*Math.sin(0)]),c.push([e+n*Math.cos(t),s+o*Math.sin(t)])}else{const l=G(.5,r)-Math.PI/2;c.push([G(a,r)+e+.9*n*Math.cos(l-t),G(a,r)+s+.9*o*Math.sin(l-t)]);const u=2*Math.PI+l-.01;for(let h=l;h<u;h+=t){const t=[G(a,r)+e+n*Math.cos(h),G(a,r)+s+o*Math.sin(h)];i.push(t),c.push(t)}c.push([G(a,r)+e+n*Math.cos(l+2*Math.PI+.5*h),G(a,r)+s+o*Math.sin(l+2*Math.PI+.5*h)]),c.push([G(a,r)+e+.98*n*Math.cos(l+h),G(a,r)+s+.98*o*Math.sin(l+h)]),c.push([G(a,r)+e+.9*n*Math.cos(l+.5*h),G(a,r)+s+.9*o*Math.sin(l+.5*h)])}return[c,i]}function V(t,e,s,n,o,a,h,r,i){const c=a+G(.1,i),l=[];l.push([G(r,i)+e+.9*n*Math.cos(c-t),G(r,i)+s+.9*o*Math.sin(c-t)]);for(let a=c;a<=h;a+=t)l.push([G(r,i)+e+n*Math.cos(a),G(r,i)+s+o*Math.sin(a)]);return l.push([e+n*Math.cos(h),s+o*Math.sin(h)]),l.push([e+n*Math.cos(h),s+o*Math.sin(h)]),q(l,null,i)}function Z(t,e,s,n,o,a,h,r){const i=[],c=[r.maxRandomnessOffset||1,(r.maxRandomnessOffset||1)+.3];let l=[0,0];const u=r.disableMultiStroke?1:2,p=r.preserveVertices;for(let f=0;f<u;f++)0===f?i.push({op:\"move\",data:[h[0],h[1]]}):i.push({op:\"move\",data:[h[0]+(p?0:G(c[0],r)),h[1]+(p?0:G(c[0],r))]}),l=p?[o,a]:[o+G(c[f],r),a+G(c[f],r)],i.push({op:\"bcurveTo\",data:[t+G(c[f],r),e+G(c[f],r),s+G(c[f],r),n+G(c[f],r),l[0],l[1]]});return i}function Q(t){return[...t]}function H(t,e=0){const s=t.length;if(s<3)throw new Error(\"A curve must have at least three points.\");const n=[];if(3===s)n.push(Q(t[0]),Q(t[1]),Q(t[2]),Q(t[2]));else{const s=[];s.push(t[0],t[0]);for(let e=1;e<t.length;e++)s.push(t[e]),e===t.length-1&&s.push(t[e]);const o=[],a=1-e;n.push(Q(s[0]));for(let t=1;t+2<s.length;t++){const e=s[t];o[0]=[e[0],e[1]],o[1]=[e[0]+(a*s[t+1][0]-a*s[t-1][0])/6,e[1]+(a*s[t+1][1]-a*s[t-1][1])/6],o[2]=[s[t+1][0]+(a*s[t][0]-a*s[t+2][0])/6,s[t+1][1]+(a*s[t][1]-a*s[t+2][1])/6],o[3]=[s[t+1][0],s[t+1][1]],n.push(o[1],o[2],o[3])}}return n}function N(t,e){return Math.pow(t[0]-e[0],2)+Math.pow(t[1]-e[1],2)}function B(t,e,s){const n=N(e,s);if(0===n)return N(t,e);let o=((t[0]-e[0])*(s[0]-e[0])+(t[1]-e[1])*(s[1]-e[1]))/n;return o=Math.max(0,Math.min(1,o)),N(t,J(e,s,o))}function J(t,e,s){return[t[0]+(e[0]-t[0])*s,t[1]+(e[1]-t[1])*s]}function K(t,e,s,n){const o=n||[];if(function(t,e){const s=t[e+0],n=t[e+1],o=t[e+2],a=t[e+3];let h=3*n[0]-2*s[0]-a[0];h*=h;let r=3*n[1]-2*s[1]-a[1];r*=r;let i=3*o[0]-2*a[0]-s[0];i*=i;let c=3*o[1]-2*a[1]-s[1];return c*=c,h<i&&(h=i),r<c&&(r=c),h+r}(t,e)<s){const s=t[e+0];if(o.length){(a=o[o.length-1],h=s,Math.sqrt(N(a,h)))>1&&o.push(s)}else o.push(s);o.push(t[e+3])}else{const n=.5,a=t[e+0],h=t[e+1],r=t[e+2],i=t[e+3],c=J(a,h,n),l=J(h,r,n),u=J(r,i,n),p=J(c,l,n),f=J(l,u,n),d=J(p,f,n);K([a,c,p,d],0,s,o),K([d,f,u,i],0,s,o)}var a,h;return o}function U(t,e){return X(t,0,t.length,e)}function X(t,e,s,n,o){const a=o||[],h=t[e],r=t[s-1];let i=0,c=1;for(let n=e+1;n<s-1;++n){const e=B(t[n],h,r);e>i&&(i=e,c=n)}return Math.sqrt(i)>n?(X(t,e,c+1,n,a),X(t,c,s,n,a)):(a.length||a.push(h),a.push(r)),a}function Y(t,e=.15,s){const n=[],o=(t.length-1)/3;for(let s=0;s<o;s++){K(t,3*s,e,n)}return s&&s>0?X(n,0,n.length,s):n}const tt=\"none\";class et{constructor(t){this.defaultOptions={maxRandomnessOffset:2,roughness:1,bowing:1,stroke:\"#000\",strokeWidth:1,curveTightness:0,curveFitting:.95,curveStepCount:9,fillStyle:\"hachure\",fillWeight:-1,hachureAngle:-41,hachureGap:-1,dashOffset:-1,dashGap:-1,zigzagOffset:-1,seed:0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!1,fillShapeRoughnessGain:.8},this.config=t||{},this.config.options&&(this.defaultOptions=this._o(this.config.options))}static newSeed(){return Math.floor(Math.random()*2**31)}_o(t){return t?Object.assign({},this.defaultOptions,t):this.defaultOptions}_d(t,e,s){return{shape:t,sets:e||[],options:s||this.defaultOptions}}line(t,e,s,n,o){const a=this._o(o);return this._d(\"line\",[v(t,e,s,n,a)],a)}rectangle(t,e,s,n,o){const a=this._o(o),h=[],r=O(t,e,s,n,a);if(a.fill){const o=[[t,e],[t+s,e],[t+s,e+n],[t,e+n]];\"solid\"===a.fillStyle?h.push(I([o],a)):h.push(C([o],a))}return a.stroke!==tt&&h.push(r),this._d(\"rectangle\",h,a)}ellipse(t,e,s,n,o){const a=this._o(o),h=[],r=T(s,n,a),i=D(t,e,a,r);if(a.fill)if(\"solid\"===a.fillStyle){const s=D(t,e,a,r).opset;s.type=\"fillPath\",h.push(s)}else h.push(C([i.estimatedPoints],a));return a.stroke!==tt&&h.push(i.opset),this._d(\"ellipse\",h,a)}circle(t,e,s,n){const o=this.ellipse(t,e,s,s,n);return o.shape=\"circle\",o}linearPath(t,e){const s=this._o(e);return this._d(\"linearPath\",[S(t,!1,s)],s)}arc(t,e,s,n,o,a,h=!1,r){const i=this._o(r),c=[],l=A(t,e,s,n,o,a,h,!0,i);if(h&&i.fill)if(\"solid\"===i.fillStyle){const h=Object.assign({},i);h.disableMultiStroke=!0;const r=A(t,e,s,n,o,a,!0,!1,h);r.type=\"fillPath\",c.push(r)}else c.push(function(t,e,s,n,o,a,h){const r=t,i=e;let c=Math.abs(s/2),l=Math.abs(n/2);c+=G(.01*c,h),l+=G(.01*l,h);let u=o,p=a;for(;u<0;)u+=2*Math.PI,p+=2*Math.PI;p-u>2*Math.PI&&(u=0,p=2*Math.PI);const f=(p-u)/h.curveStepCount,d=[];for(let t=u;t<=p;t+=f)d.push([r+c*Math.cos(t),i+l*Math.sin(t)]);return d.push([r+c*Math.cos(p),i+l*Math.sin(p)]),d.push([r,i]),C([d],h)}(t,e,s,n,o,a,i));return i.stroke!==tt&&c.push(l),this._d(\"arc\",c,i)}curve(t,e){const s=this._o(e),n=[],o=L(t,s);if(s.fill&&s.fill!==tt)if(\"solid\"===s.fillStyle){const e=L(t,Object.assign(Object.assign({},s),{disableMultiStroke:!0,roughness:s.roughness?s.roughness+s.fillShapeRoughnessGain:0}));n.push({type:\"fillPath\",ops:this._mergedShape(e.ops)})}else{const e=[],o=t;if(o.length){const t=\"number\"==typeof o[0][0]?[o]:o;for(const n of t)n.length<3?e.push(...n):3===n.length?e.push(...Y(H([n[0],n[0],n[1],n[2]]),10,(1+s.roughness)/2)):e.push(...Y(H(n),10,(1+s.roughness)/2))}e.length&&n.push(C([e],s))}return s.stroke!==tt&&n.push(o),this._d(\"curve\",n,s)}polygon(t,e){const s=this._o(e),n=[],o=S(t,!0,s);return s.fill&&(\"solid\"===s.fillStyle?n.push(I([t],s)):n.push(C([t],s))),s.stroke!==tt&&n.push(o),this._d(\"polygon\",n,s)}path(t,e){const s=this._o(e),n=[];if(!t)return this._d(\"path\",n,s);t=(t||\"\").replace(/\\n/g,\" \").replace(/(-\\s)/g,\"-\").replace(\"/(ss)/g\",\" \");const o=s.fill&&\"transparent\"!==s.fill&&s.fill!==tt,a=s.stroke!==tt,h=!!(s.simplification&&s.simplification<1),r=function(t,e,s){const n=m(y(b(t))),o=[];let a=[],h=[0,0],r=[];const i=()=>{r.length>=4&&a.push(...Y(r,e)),r=[]},c=()=>{i(),a.length&&(o.push(a),a=[])};for(const{key:t,data:e}of n)switch(t){case\"M\":c(),h=[e[0],e[1]],a.push(h);break;case\"L\":i(),a.push([e[0],e[1]]);break;case\"C\":if(!r.length){const t=a.length?a[a.length-1]:h;r.push([t[0],t[1]])}r.push([e[0],e[1]]),r.push([e[2],e[3]]),r.push([e[4],e[5]]);break;case\"Z\":i(),a.push([h[0],h[1]])}if(c(),!s)return o;const l=[];for(const t of o){const e=U(t,s);e.length&&l.push(e)}return l}(t,1,h?4-4*(s.simplification||1):(1+s.roughness)/2),i=_(t,s);if(o)if(\"solid\"===s.fillStyle)if(1===r.length){const e=_(t,Object.assign(Object.assign({},s),{disableMultiStroke:!0,roughness:s.roughness?s.roughness+s.fillShapeRoughnessGain:0}));n.push({type:\"fillPath\",ops:this._mergedShape(e.ops)})}else n.push(I(r,s));else n.push(C(r,s));return a&&(h?r.forEach((t=>{n.push(S(t,!1,s))})):n.push(i)),this._d(\"path\",n,s)}opsToPath(t,e){let s=\"\";for(const n of t.ops){const t=\"number\"==typeof e&&e>=0?n.data.map((t=>+t.toFixed(e))):n.data;switch(n.op){case\"move\":s+=`M${t[0]} ${t[1]} `;break;case\"bcurveTo\":s+=`C${t[0]} ${t[1]}, ${t[2]} ${t[3]}, ${t[4]} ${t[5]} `;break;case\"lineTo\":s+=`L${t[0]} ${t[1]} `}}return s.trim()}toPaths(t){const e=t.sets||[],s=t.options||this.defaultOptions,n=[];for(const t of e){let e=null;switch(t.type){case\"path\":e={d:this.opsToPath(t),stroke:s.stroke,strokeWidth:s.strokeWidth,fill:tt};break;case\"fillPath\":e={d:this.opsToPath(t),stroke:tt,strokeWidth:0,fill:s.fill||tt};break;case\"fillSketch\":e=this.fillSketch(t,s)}e&&n.push(e)}return n}fillSketch(t,e){let s=e.fillWeight;return s<0&&(s=e.strokeWidth/2),{d:this.opsToPath(t),stroke:e.fill||tt,strokeWidth:s,fill:tt}}_mergedShape(t){return t.filter(((t,e)=>0===e||\"move\"!==t.op))}}class st{constructor(t,e){this.canvas=t,this.ctx=this.canvas.getContext(\"2d\"),this.gen=new et(e)}draw(t){const e=t.sets||[],s=t.options||this.getDefaultOptions(),n=this.ctx,o=t.options.fixedDecimalPlaceDigits;for(const a of e)switch(a.type){case\"path\":n.save(),n.strokeStyle=\"none\"===s.stroke?\"transparent\":s.stroke,n.lineWidth=s.strokeWidth,s.strokeLineDash&&n.setLineDash(s.strokeLineDash),s.strokeLineDashOffset&&(n.lineDashOffset=s.strokeLineDashOffset),this._drawToContext(n,a,o),n.restore();break;case\"fillPath\":{n.save(),n.fillStyle=s.fill||\"\";const e=\"curve\"===t.shape||\"polygon\"===t.shape||\"path\"===t.shape?\"evenodd\":\"nonzero\";this._drawToContext(n,a,o,e),n.restore();break}case\"fillSketch\":this.fillSketch(n,a,s)}}fillSketch(t,e,s){let n=s.fillWeight;n<0&&(n=s.strokeWidth/2),t.save(),s.fillLineDash&&t.setLineDash(s.fillLineDash),s.fillLineDashOffset&&(t.lineDashOffset=s.fillLineDashOffset),t.strokeStyle=s.fill||\"\",t.lineWidth=n,this._drawToContext(t,e,s.fixedDecimalPlaceDigits),t.restore()}_drawToContext(t,e,s,n=\"nonzero\"){t.beginPath();for(const n of e.ops){const e=\"number\"==typeof s&&s>=0?n.data.map((t=>+t.toFixed(s))):n.data;switch(n.op){case\"move\":t.moveTo(e[0],e[1]);break;case\"bcurveTo\":t.bezierCurveTo(e[0],e[1],e[2],e[3],e[4],e[5]);break;case\"lineTo\":t.lineTo(e[0],e[1])}}\"fillPath\"===e.type?t.fill(n):t.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(t,e,s,n,o){const a=this.gen.line(t,e,s,n,o);return this.draw(a),a}rectangle(t,e,s,n,o){const a=this.gen.rectangle(t,e,s,n,o);return this.draw(a),a}ellipse(t,e,s,n,o){const a=this.gen.ellipse(t,e,s,n,o);return this.draw(a),a}circle(t,e,s,n){const o=this.gen.circle(t,e,s,n);return this.draw(o),o}linearPath(t,e){const s=this.gen.linearPath(t,e);return this.draw(s),s}polygon(t,e){const s=this.gen.polygon(t,e);return this.draw(s),s}arc(t,e,s,n,o,a,h=!1,r){const i=this.gen.arc(t,e,s,n,o,a,h,r);return this.draw(i),i}curve(t,e){const s=this.gen.curve(t,e);return this.draw(s),s}path(t,e){const s=this.gen.path(t,e);return this.draw(s),s}}const nt=\"http://www.w3.org/2000/svg\";class ot{constructor(t,e){this.svg=t,this.gen=new et(e)}draw(t){const e=t.sets||[],s=t.options||this.getDefaultOptions(),n=this.svg.ownerDocument||window.document,o=n.createElementNS(nt,\"g\"),a=t.options.fixedDecimalPlaceDigits;for(const h of e){let e=null;switch(h.type){case\"path\":e=n.createElementNS(nt,\"path\"),e.setAttribute(\"d\",this.opsToPath(h,a)),e.setAttribute(\"stroke\",s.stroke),e.setAttribute(\"stroke-width\",s.strokeWidth+\"\"),e.setAttribute(\"fill\",\"none\"),s.strokeLineDash&&e.setAttribute(\"stroke-dasharray\",s.strokeLineDash.join(\" \").trim()),s.strokeLineDashOffset&&e.setAttribute(\"stroke-dashoffset\",`${s.strokeLineDashOffset}`);break;case\"fillPath\":e=n.createElementNS(nt,\"path\"),e.setAttribute(\"d\",this.opsToPath(h,a)),e.setAttribute(\"stroke\",\"none\"),e.setAttribute(\"stroke-width\",\"0\"),e.setAttribute(\"fill\",s.fill||\"\"),\"curve\"!==t.shape&&\"polygon\"!==t.shape||e.setAttribute(\"fill-rule\",\"evenodd\");break;case\"fillSketch\":e=this.fillSketch(n,h,s)}e&&o.appendChild(e)}return o}fillSketch(t,e,s){let n=s.fillWeight;n<0&&(n=s.strokeWidth/2);const o=t.createElementNS(nt,\"path\");return o.setAttribute(\"d\",this.opsToPath(e,s.fixedDecimalPlaceDigits)),o.setAttribute(\"stroke\",s.fill||\"\"),o.setAttribute(\"stroke-width\",n+\"\"),o.setAttribute(\"fill\",\"none\"),s.fillLineDash&&o.setAttribute(\"stroke-dasharray\",s.fillLineDash.join(\" \").trim()),s.fillLineDashOffset&&o.setAttribute(\"stroke-dashoffset\",`${s.fillLineDashOffset}`),o}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(t,e){return this.gen.opsToPath(t,e)}line(t,e,s,n,o){const a=this.gen.line(t,e,s,n,o);return this.draw(a)}rectangle(t,e,s,n,o){const a=this.gen.rectangle(t,e,s,n,o);return this.draw(a)}ellipse(t,e,s,n,o){const a=this.gen.ellipse(t,e,s,n,o);return this.draw(a)}circle(t,e,s,n){const o=this.gen.circle(t,e,s,n);return this.draw(o)}linearPath(t,e){const s=this.gen.linearPath(t,e);return this.draw(s)}polygon(t,e){const s=this.gen.polygon(t,e);return this.draw(s)}arc(t,e,s,n,o,a,h=!1,r){const i=this.gen.arc(t,e,s,n,o,a,h,r);return this.draw(i)}curve(t,e){const s=this.gen.curve(t,e);return this.draw(s)}path(t,e){const s=this.gen.path(t,e);return this.draw(s)}}var at={canvas:(t,e)=>new st(t,e),svg:(t,e)=>new ot(t,e),generator:t=>new et(t),newSeed:()=>et.newSeed()};export{at as default};\n","import {\n getSubGraphTitleMargins\n} from \"./chunk-CVBHYZKI.mjs\";\nimport {\n compileStyles,\n solidStateFill,\n styles2String,\n userNodeOverrides\n} from \"./chunk-ATLVNIR6.mjs\";\nimport {\n createText,\n getIconSVG\n} from \"./chunk-JA3XYJ7Z.mjs\";\nimport {\n calculateTextWidth,\n decodeEntities,\n handleUndefinedAttr,\n parseFontSize\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n common_default,\n defaultConfig_default,\n evaluate,\n getConfig,\n getConfig2,\n hasKatex,\n parseGenericTypes,\n renderKatexSanitized,\n sanitizeText,\n sanitizeText2\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/rendering-elements/shapes/util.ts\nimport { select } from \"d3\";\nvar labelHelper = /* @__PURE__ */ __name(async (parent, node, _classes) => {\n let cssClasses;\n const useHtmlLabels = node.useHtmlLabels || evaluate(getConfig2()?.htmlLabels);\n if (!_classes) {\n cssClasses = \"node default\";\n } else {\n cssClasses = _classes;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", cssClasses).attr(\"id\", node.domId || node.id);\n const labelEl = shapeSvg.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", handleUndefinedAttr(node.labelStyle));\n let label;\n if (node.label === void 0) {\n label = \"\";\n } else {\n label = typeof node.label === \"string\" ? node.label : node.label[0];\n }\n const text2 = await createText(labelEl, sanitizeText(decodeEntities(label), getConfig2()), {\n useHtmlLabels,\n width: node.width || getConfig2().flowchart?.wrappingWidth,\n // @ts-expect-error -- This is currently not used. Should this be `classes` instead?\n cssClasses: \"markdown-node-label\",\n style: node.labelStyle,\n addSvgBackground: !!node.icon || !!node.img\n });\n let bbox = text2.getBBox();\n const halfPadding = (node?.padding ?? 0) / 2;\n if (useHtmlLabels) {\n const div = text2.children[0];\n const dv = select(text2);\n const images = div.getElementsByTagName(\"img\");\n if (images) {\n const noImgText = label.replace(/<img[^>]*>/g, \"\").trim() === \"\";\n await Promise.all(\n [...images].map(\n (img) => new Promise((res) => {\n function setupImage() {\n img.style.display = \"flex\";\n img.style.flexDirection = \"column\";\n if (noImgText) {\n const bodyFontSize = getConfig2().fontSize ? getConfig2().fontSize : window.getComputedStyle(document.body).fontSize;\n const enlargingFactor = 5;\n const [parsedBodyFontSize = defaultConfig_default.fontSize] = parseFontSize(bodyFontSize);\n const width = parsedBodyFontSize * enlargingFactor + \"px\";\n img.style.minWidth = width;\n img.style.maxWidth = width;\n } else {\n img.style.width = \"100%\";\n }\n res(img);\n }\n __name(setupImage, \"setupImage\");\n setTimeout(() => {\n if (img.complete) {\n setupImage();\n }\n });\n img.addEventListener(\"error\", setupImage);\n img.addEventListener(\"load\", setupImage);\n })\n )\n );\n }\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (useHtmlLabels) {\n labelEl.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n } else {\n labelEl.attr(\"transform\", \"translate(0, \" + -bbox.height / 2 + \")\");\n }\n if (node.centerLabel) {\n labelEl.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n }\n labelEl.insert(\"rect\", \":first-child\");\n return { shapeSvg, bbox, halfPadding, label: labelEl };\n}, \"labelHelper\");\nvar insertLabel = /* @__PURE__ */ __name(async (parent, label, options) => {\n const useHtmlLabels = options.useHtmlLabels || evaluate(getConfig2()?.flowchart?.htmlLabels);\n const labelEl = parent.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", options.labelStyle || \"\");\n const text2 = await createText(labelEl, sanitizeText(decodeEntities(label), getConfig2()), {\n useHtmlLabels,\n width: options.width || getConfig2()?.flowchart?.wrappingWidth,\n style: options.labelStyle,\n addSvgBackground: !!options.icon || !!options.img\n });\n let bbox = text2.getBBox();\n const halfPadding = options.padding / 2;\n if (evaluate(getConfig2()?.flowchart?.htmlLabels)) {\n const div = text2.children[0];\n const dv = select(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (useHtmlLabels) {\n labelEl.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n } else {\n labelEl.attr(\"transform\", \"translate(0, \" + -bbox.height / 2 + \")\");\n }\n if (options.centerLabel) {\n labelEl.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n }\n labelEl.insert(\"rect\", \":first-child\");\n return { shapeSvg: parent, bbox, halfPadding, label: labelEl };\n}, \"insertLabel\");\nvar updateNodeBounds = /* @__PURE__ */ __name((node, element) => {\n const bbox = element.node().getBBox();\n node.width = bbox.width;\n node.height = bbox.height;\n}, \"updateNodeBounds\");\nvar getNodeClasses = /* @__PURE__ */ __name((node, extra) => (node.look === \"handDrawn\" ? \"rough-node\" : \"node\") + \" \" + node.cssClasses + \" \" + (extra || \"\"), \"getNodeClasses\");\nfunction createPathFromPoints(points) {\n const pointStrings = points.map((p, i) => `${i === 0 ? \"M\" : \"L\"}${p.x},${p.y}`);\n pointStrings.push(\"Z\");\n return pointStrings.join(\" \");\n}\n__name(createPathFromPoints, \"createPathFromPoints\");\nfunction generateFullSineWavePoints(x1, y1, x2, y2, amplitude, numCycles) {\n const points = [];\n const steps = 50;\n const deltaX = x2 - x1;\n const deltaY = y2 - y1;\n const cycleLength = deltaX / numCycles;\n const frequency = 2 * Math.PI / cycleLength;\n const midY = y1 + deltaY / 2;\n for (let i = 0; i <= steps; i++) {\n const t = i / steps;\n const x = x1 + t * deltaX;\n const y = midY + amplitude * Math.sin(frequency * (x - x1));\n points.push({ x, y });\n }\n return points;\n}\n__name(generateFullSineWavePoints, \"generateFullSineWavePoints\");\nfunction generateCirclePoints(centerX, centerY, radius, numPoints, startAngle, endAngle) {\n const points = [];\n const startAngleRad = startAngle * Math.PI / 180;\n const endAngleRad = endAngle * Math.PI / 180;\n const angleRange = endAngleRad - startAngleRad;\n const angleStep = angleRange / (numPoints - 1);\n for (let i = 0; i < numPoints; i++) {\n const angle = startAngleRad + i * angleStep;\n const x = centerX + radius * Math.cos(angle);\n const y = centerY + radius * Math.sin(angle);\n points.push({ x: -x, y: -y });\n }\n return points;\n}\n__name(generateCirclePoints, \"generateCirclePoints\");\n\n// src/rendering-util/rendering-elements/clusters.js\nimport { select as select3 } from \"d3\";\nimport rough from \"roughjs\";\n\n// src/rendering-util/rendering-elements/intersect/intersect-rect.js\nvar intersectRect = /* @__PURE__ */ __name((node, point) => {\n var x = node.x;\n var y = node.y;\n var dx = point.x - x;\n var dy = point.y - y;\n var w = node.width / 2;\n var h = node.height / 2;\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n if (dy < 0) {\n h = -h;\n }\n sx = dy === 0 ? 0 : h * dx / dy;\n sy = h;\n } else {\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = dx === 0 ? 0 : w * dy / dx;\n }\n return { x: x + sx, y: y + sy };\n}, \"intersectRect\");\nvar intersect_rect_default = intersectRect;\n\n// src/rendering-util/rendering-elements/createLabel.js\nimport { select as select2 } from \"d3\";\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr(\"style\", styleFn);\n }\n}\n__name(applyStyle, \"applyStyle\");\nasync function addHtmlLabel(node) {\n const fo = select2(document.createElementNS(\"http://www.w3.org/2000/svg\", \"foreignObject\"));\n const div = fo.append(\"xhtml:div\");\n const config = getConfig2();\n let label = node.label;\n if (node.label && hasKatex(node.label)) {\n label = await renderKatexSanitized(node.label.replace(common_default.lineBreakRegex, \"\\n\"), config);\n }\n const labelClass = node.isNode ? \"nodeLabel\" : \"edgeLabel\";\n const labelSpan = '<span class=\"' + labelClass + '\" ' + (node.labelStyle ? 'style=\"' + node.labelStyle + '\"' : \"\") + // codeql [js/html-constructed-from-input] : false positive\n \">\" + label + \"</span>\";\n div.html(sanitizeText(labelSpan, config));\n applyStyle(div, node.labelStyle);\n div.style(\"display\", \"inline-block\");\n div.style(\"padding-right\", \"1px\");\n div.style(\"white-space\", \"nowrap\");\n div.attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n return fo.node();\n}\n__name(addHtmlLabel, \"addHtmlLabel\");\nvar createLabel = /* @__PURE__ */ __name(async (_vertexText, style, isTitle, isNode) => {\n let vertexText = _vertexText || \"\";\n if (typeof vertexText === \"object\") {\n vertexText = vertexText[0];\n }\n if (evaluate(getConfig2().flowchart.htmlLabels)) {\n vertexText = vertexText.replace(/\\\\n|\\n/g, \"<br />\");\n log.info(\"vertexText\" + vertexText);\n const node = {\n isNode,\n label: decodeEntities(vertexText).replace(\n /fa[blrs]?:fa-[\\w-]+/g,\n (s) => `<i class='${s.replace(\":\", \" \")}'></i>`\n ),\n labelStyle: style ? style.replace(\"fill:\", \"color:\") : style\n };\n let vertexNode = await addHtmlLabel(node);\n return vertexNode;\n } else {\n const svgLabel = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n svgLabel.setAttribute(\"style\", style.replace(\"color:\", \"fill:\"));\n let rows = [];\n if (typeof vertexText === \"string\") {\n rows = vertexText.split(/\\\\n|\\n|<br\\s*\\/?>/gi);\n } else if (Array.isArray(vertexText)) {\n rows = vertexText;\n } else {\n rows = [];\n }\n for (const row of rows) {\n const tspan = document.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n tspan.setAttribute(\"dy\", \"1em\");\n tspan.setAttribute(\"x\", \"0\");\n if (isTitle) {\n tspan.setAttribute(\"class\", \"title-row\");\n } else {\n tspan.setAttribute(\"class\", \"row\");\n }\n tspan.textContent = row.trim();\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n }\n}, \"createLabel\");\nvar createLabel_default = createLabel;\n\n// src/rendering-util/rendering-elements/shapes/roundedRectPath.ts\nvar createRoundedRectPathD = /* @__PURE__ */ __name((x, y, totalWidth, totalHeight, radius) => [\n \"M\",\n x + radius,\n y,\n // Move to the first point\n \"H\",\n x + totalWidth - radius,\n // Draw horizontal line to the beginning of the right corner\n \"A\",\n radius,\n radius,\n 0,\n 0,\n 1,\n x + totalWidth,\n y + radius,\n // Draw arc to the right top corner\n \"V\",\n y + totalHeight - radius,\n // Draw vertical line down to the beginning of the right bottom corner\n \"A\",\n radius,\n radius,\n 0,\n 0,\n 1,\n x + totalWidth - radius,\n y + totalHeight,\n // Draw arc to the right bottom corner\n \"H\",\n x + radius,\n // Draw horizontal line to the beginning of the left bottom corner\n \"A\",\n radius,\n radius,\n 0,\n 0,\n 1,\n x,\n y + totalHeight - radius,\n // Draw arc to the left bottom corner\n \"V\",\n y + radius,\n // Draw vertical line up to the beginning of the left top corner\n \"A\",\n radius,\n radius,\n 0,\n 0,\n 1,\n x + radius,\n y,\n // Draw arc to the left top corner\n \"Z\"\n // Close the path\n].join(\" \"), \"createRoundedRectPathD\");\n\n// src/rendering-util/rendering-elements/clusters.js\nvar rect = /* @__PURE__ */ __name(async (parent, node) => {\n log.info(\"Creating subgraph rect for \", node.id, node);\n const siteConfig = getConfig2();\n const { themeVariables, handDrawnSeed } = siteConfig;\n const { clusterBkg, clusterBorder } = themeVariables;\n const { labelStyles, nodeStyles, borderStyles, backgroundStyles } = styles2String(node);\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"cluster \" + node.cssClasses).attr(\"id\", node.id).attr(\"data-look\", node.look);\n const useHtmlLabels = evaluate(siteConfig.flowchart.htmlLabels);\n const labelEl = shapeSvg.insert(\"g\").attr(\"class\", \"cluster-label \");\n const text2 = await createText(labelEl, node.label, {\n style: node.labelStyle,\n useHtmlLabels,\n isNode: true\n });\n let bbox = text2.getBBox();\n if (evaluate(siteConfig.flowchart.htmlLabels)) {\n const div = text2.children[0];\n const dv = select3(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width;\n if (node.width <= bbox.width + node.padding) {\n node.diff = (width - node.width) / 2 - node.padding;\n } else {\n node.diff = -node.padding;\n }\n const height = node.height;\n const x = node.x - width / 2;\n const y = node.y - height / 2;\n log.trace(\"Data \", node, JSON.stringify(node));\n let rect2;\n if (node.look === \"handDrawn\") {\n const rc = rough.svg(shapeSvg);\n const options = userNodeOverrides(node, {\n roughness: 0.7,\n fill: clusterBkg,\n // fill: 'red',\n stroke: clusterBorder,\n fillWeight: 3,\n seed: handDrawnSeed\n });\n const roughNode = rc.path(createRoundedRectPathD(x, y, width, height, 0), options);\n rect2 = shapeSvg.insert(() => {\n log.debug(\"Rough node insert CXC\", roughNode);\n return roughNode;\n }, \":first-child\");\n rect2.select(\"path:nth-child(2)\").attr(\"style\", borderStyles.join(\";\"));\n rect2.select(\"path\").attr(\"style\", backgroundStyles.join(\";\").replace(\"fill\", \"stroke\"));\n } else {\n rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"style\", nodeStyles).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n }\n const { subGraphTitleTopMargin } = getSubGraphTitleMargins(siteConfig);\n labelEl.attr(\n \"transform\",\n // This puts the label on top of the box instead of inside it\n `translate(${node.x - bbox.width / 2}, ${node.y - node.height / 2 + subGraphTitleTopMargin})`\n );\n if (labelStyles) {\n const span = labelEl.select(\"span\");\n if (span) {\n span.attr(\"style\", labelStyles);\n }\n }\n const rectBox = rect2.node().getBBox();\n node.offsetX = 0;\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.offsetY = bbox.height - node.padding / 2;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: bbox };\n}, \"rect\");\nvar noteGroup = /* @__PURE__ */ __name((parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"note-cluster\").attr(\"id\", node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n rect2.attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", node.x - node.width / 2 - halfPadding).attr(\"y\", node.y - node.height / 2 - halfPadding).attr(\"width\", node.width + padding).attr(\"height\", node.height + padding).attr(\"fill\", \"none\");\n const rectBox = rect2.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: { width: 0, height: 0 } };\n}, \"noteGroup\");\nvar roundedWithTitle = /* @__PURE__ */ __name(async (parent, node) => {\n const siteConfig = getConfig2();\n const { themeVariables, handDrawnSeed } = siteConfig;\n const { altBackground, compositeBackground, compositeTitleBackground, nodeBorder } = themeVariables;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", node.cssClasses).attr(\"id\", node.id).attr(\"data-id\", node.id).attr(\"data-look\", node.look);\n const outerRectG = shapeSvg.insert(\"g\", \":first-child\");\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"cluster-label\");\n let innerRect = shapeSvg.append(\"rect\");\n const text2 = label.node().appendChild(await createLabel_default(node.label, node.labelStyle, void 0, true));\n let bbox = text2.getBBox();\n if (evaluate(siteConfig.flowchart.htmlLabels)) {\n const div = text2.children[0];\n const dv = select3(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n const width = (node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width) + padding;\n if (node.width <= bbox.width + node.padding) {\n node.diff = (width - node.width) / 2 - node.padding;\n } else {\n node.diff = -node.padding;\n }\n const height = node.height + padding;\n const innerHeight = node.height + padding - bbox.height - 6;\n const x = node.x - width / 2;\n const y = node.y - height / 2;\n node.width = width;\n const innerY = node.y - node.height / 2 - halfPadding + bbox.height + 2;\n let rect2;\n if (node.look === \"handDrawn\") {\n const isAlt = node.cssClasses.includes(\"statediagram-cluster-alt\");\n const rc = rough.svg(shapeSvg);\n const roughOuterNode = node.rx || node.ry ? rc.path(createRoundedRectPathD(x, y, width, height, 10), {\n roughness: 0.7,\n fill: compositeTitleBackground,\n fillStyle: \"solid\",\n stroke: nodeBorder,\n seed: handDrawnSeed\n }) : rc.rectangle(x, y, width, height, { seed: handDrawnSeed });\n rect2 = shapeSvg.insert(() => roughOuterNode, \":first-child\");\n const roughInnerNode = rc.rectangle(x, innerY, width, innerHeight, {\n fill: isAlt ? altBackground : compositeBackground,\n fillStyle: isAlt ? \"hachure\" : \"solid\",\n stroke: nodeBorder,\n seed: handDrawnSeed\n });\n rect2 = shapeSvg.insert(() => roughOuterNode, \":first-child\");\n innerRect = shapeSvg.insert(() => roughInnerNode);\n } else {\n rect2 = outerRectG.insert(\"rect\", \":first-child\");\n const outerRectClass = \"outer\";\n rect2.attr(\"class\", outerRectClass).attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height).attr(\"data-look\", node.look);\n innerRect.attr(\"class\", \"inner\").attr(\"x\", x).attr(\"y\", innerY).attr(\"width\", width).attr(\"height\", innerHeight);\n }\n label.attr(\n \"transform\",\n `translate(${node.x - bbox.width / 2}, ${y + 1 - (evaluate(siteConfig.flowchart.htmlLabels) ? 0 : 3)})`\n );\n const rectBox = rect2.node().getBBox();\n node.height = rectBox.height;\n node.offsetX = 0;\n node.offsetY = bbox.height - node.padding / 2;\n node.labelBBox = bbox;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: bbox };\n}, \"roundedWithTitle\");\nvar kanbanSection = /* @__PURE__ */ __name(async (parent, node) => {\n log.info(\"Creating subgraph rect for \", node.id, node);\n const siteConfig = getConfig2();\n const { themeVariables, handDrawnSeed } = siteConfig;\n const { clusterBkg, clusterBorder } = themeVariables;\n const { labelStyles, nodeStyles, borderStyles, backgroundStyles } = styles2String(node);\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"cluster \" + node.cssClasses).attr(\"id\", node.id).attr(\"data-look\", node.look);\n const useHtmlLabels = evaluate(siteConfig.flowchart.htmlLabels);\n const labelEl = shapeSvg.insert(\"g\").attr(\"class\", \"cluster-label \");\n const text2 = await createText(labelEl, node.label, {\n style: node.labelStyle,\n useHtmlLabels,\n isNode: true,\n width: node.width\n });\n let bbox = text2.getBBox();\n if (evaluate(siteConfig.flowchart.htmlLabels)) {\n const div = text2.children[0];\n const dv = select3(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width;\n if (node.width <= bbox.width + node.padding) {\n node.diff = (width - node.width) / 2 - node.padding;\n } else {\n node.diff = -node.padding;\n }\n const height = node.height;\n const x = node.x - width / 2;\n const y = node.y - height / 2;\n log.trace(\"Data \", node, JSON.stringify(node));\n let rect2;\n if (node.look === \"handDrawn\") {\n const rc = rough.svg(shapeSvg);\n const options = userNodeOverrides(node, {\n roughness: 0.7,\n fill: clusterBkg,\n // fill: 'red',\n stroke: clusterBorder,\n fillWeight: 4,\n seed: handDrawnSeed\n });\n const roughNode = rc.path(createRoundedRectPathD(x, y, width, height, node.rx), options);\n rect2 = shapeSvg.insert(() => {\n log.debug(\"Rough node insert CXC\", roughNode);\n return roughNode;\n }, \":first-child\");\n rect2.select(\"path:nth-child(2)\").attr(\"style\", borderStyles.join(\";\"));\n rect2.select(\"path\").attr(\"style\", backgroundStyles.join(\";\").replace(\"fill\", \"stroke\"));\n } else {\n rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"style\", nodeStyles).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n }\n const { subGraphTitleTopMargin } = getSubGraphTitleMargins(siteConfig);\n labelEl.attr(\n \"transform\",\n // This puts the label on top of the box instead of inside it\n `translate(${node.x - bbox.width / 2}, ${node.y - node.height / 2 + subGraphTitleTopMargin})`\n );\n if (labelStyles) {\n const span = labelEl.select(\"span\");\n if (span) {\n span.attr(\"style\", labelStyles);\n }\n }\n const rectBox = rect2.node().getBBox();\n node.offsetX = 0;\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.offsetY = bbox.height - node.padding / 2;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: bbox };\n}, \"kanbanSection\");\nvar divider = /* @__PURE__ */ __name((parent, node) => {\n const siteConfig = getConfig2();\n const { themeVariables, handDrawnSeed } = siteConfig;\n const { nodeBorder } = themeVariables;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", node.cssClasses).attr(\"id\", node.id).attr(\"data-look\", node.look);\n const outerRectG = shapeSvg.insert(\"g\", \":first-child\");\n const padding = 0 * node.padding;\n const width = node.width + padding;\n node.diff = -node.padding;\n const height = node.height + padding;\n const x = node.x - width / 2;\n const y = node.y - height / 2;\n node.width = width;\n let rect2;\n if (node.look === \"handDrawn\") {\n const rc = rough.svg(shapeSvg);\n const roughOuterNode = rc.rectangle(x, y, width, height, {\n fill: \"lightgrey\",\n roughness: 0.5,\n strokeLineDash: [5],\n stroke: nodeBorder,\n seed: handDrawnSeed\n });\n rect2 = shapeSvg.insert(() => roughOuterNode, \":first-child\");\n } else {\n rect2 = outerRectG.insert(\"rect\", \":first-child\");\n const outerRectClass = \"divider\";\n rect2.attr(\"class\", outerRectClass).attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height).attr(\"data-look\", node.look);\n }\n const rectBox = rect2.node().getBBox();\n node.height = rectBox.height;\n node.offsetX = 0;\n node.offsetY = 0;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: {} };\n}, \"divider\");\nvar squareRect = rect;\nvar shapes = {\n rect,\n squareRect,\n roundedWithTitle,\n noteGroup,\n divider,\n kanbanSection\n};\nvar clusterElems = /* @__PURE__ */ new Map();\nvar insertCluster = /* @__PURE__ */ __name(async (elem, node) => {\n const shape = node.shape || \"rect\";\n const cluster = await shapes[shape](elem, node);\n clusterElems.set(node.id, cluster);\n return cluster;\n}, \"insertCluster\");\nvar clear = /* @__PURE__ */ __name(() => {\n clusterElems = /* @__PURE__ */ new Map();\n}, \"clear\");\n\n// src/rendering-util/rendering-elements/intersect/intersect-node.js\nfunction intersectNode(node, point) {\n return node.intersect(point);\n}\n__name(intersectNode, \"intersectNode\");\nvar intersect_node_default = intersectNode;\n\n// src/rendering-util/rendering-elements/intersect/intersect-ellipse.js\nfunction intersectEllipse(node, rx, ry, point) {\n var cx = node.x;\n var cy = node.y;\n var px = cx - point.x;\n var py = cy - point.y;\n var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);\n var dx = Math.abs(rx * ry * px / det);\n if (point.x < cx) {\n dx = -dx;\n }\n var dy = Math.abs(rx * ry * py / det);\n if (point.y < cy) {\n dy = -dy;\n }\n return { x: cx + dx, y: cy + dy };\n}\n__name(intersectEllipse, \"intersectEllipse\");\nvar intersect_ellipse_default = intersectEllipse;\n\n// src/rendering-util/rendering-elements/intersect/intersect-circle.js\nfunction intersectCircle(node, rx, point) {\n return intersect_ellipse_default(node, rx, rx, point);\n}\n__name(intersectCircle, \"intersectCircle\");\nvar intersect_circle_default = intersectCircle;\n\n// src/rendering-util/rendering-elements/intersect/intersect-line.js\nfunction intersectLine(p1, p2, q1, q2) {\n {\n const a1 = p2.y - p1.y;\n const b1 = p1.x - p2.x;\n const c1 = p2.x * p1.y - p1.x * p2.y;\n const r3 = a1 * q1.x + b1 * q1.y + c1;\n const r4 = a1 * q2.x + b1 * q2.y + c1;\n const epsilon = 1e-6;\n if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {\n return;\n }\n const a2 = q2.y - q1.y;\n const b2 = q1.x - q2.x;\n const c2 = q2.x * q1.y - q1.x * q2.y;\n const r1 = a2 * p1.x + b2 * p1.y + c2;\n const r2 = a2 * p2.x + b2 * p2.y + c2;\n if (Math.abs(r1) < epsilon && Math.abs(r2) < epsilon && sameSign(r1, r2)) {\n return;\n }\n const denom = a1 * b2 - a2 * b1;\n if (denom === 0) {\n return;\n }\n const offset = Math.abs(denom / 2);\n let num = b1 * c2 - b2 * c1;\n const x = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n num = a2 * c1 - a1 * c2;\n const y = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n return { x, y };\n }\n}\n__name(intersectLine, \"intersectLine\");\nfunction sameSign(r1, r2) {\n return r1 * r2 > 0;\n}\n__name(sameSign, \"sameSign\");\nvar intersect_line_default = intersectLine;\n\n// src/rendering-util/rendering-elements/intersect/intersect-polygon.js\nfunction intersectPolygon(node, polyPoints, point) {\n let x1 = node.x;\n let y1 = node.y;\n let intersections = [];\n let minX = Number.POSITIVE_INFINITY;\n let minY = Number.POSITIVE_INFINITY;\n if (typeof polyPoints.forEach === \"function\") {\n polyPoints.forEach(function(entry) {\n minX = Math.min(minX, entry.x);\n minY = Math.min(minY, entry.y);\n });\n } else {\n minX = Math.min(minX, polyPoints.x);\n minY = Math.min(minY, polyPoints.y);\n }\n let left = x1 - node.width / 2 - minX;\n let top = y1 - node.height / 2 - minY;\n for (let i = 0; i < polyPoints.length; i++) {\n let p1 = polyPoints[i];\n let p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];\n let intersect = intersect_line_default(\n node,\n point,\n { x: left + p1.x, y: top + p1.y },\n { x: left + p2.x, y: top + p2.y }\n );\n if (intersect) {\n intersections.push(intersect);\n }\n }\n if (!intersections.length) {\n return node;\n }\n if (intersections.length > 1) {\n intersections.sort(function(p, q) {\n let pdx = p.x - point.x;\n let pdy = p.y - point.y;\n let distp = Math.sqrt(pdx * pdx + pdy * pdy);\n let qdx = q.x - point.x;\n let qdy = q.y - point.y;\n let distq = Math.sqrt(qdx * qdx + qdy * qdy);\n return distp < distq ? -1 : distp === distq ? 0 : 1;\n });\n }\n return intersections[0];\n}\n__name(intersectPolygon, \"intersectPolygon\");\nvar intersect_polygon_default = intersectPolygon;\n\n// src/rendering-util/rendering-elements/intersect/index.js\nvar intersect_default = {\n node: intersect_node_default,\n circle: intersect_circle_default,\n ellipse: intersect_ellipse_default,\n polygon: intersect_polygon_default,\n rect: intersect_rect_default\n};\n\n// src/rendering-util/rendering-elements/shapes/anchor.ts\nimport rough2 from \"roughjs\";\nfunction anchor(parent, node) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const classes = getNodeClasses(node);\n let cssClasses = classes;\n if (!classes) {\n cssClasses = \"anchor\";\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", cssClasses).attr(\"id\", node.domId || node.id);\n const radius = 1;\n const { cssStyles } = node;\n const rc = rough2.svg(shapeSvg);\n const options = userNodeOverrides(node, { fill: \"black\", stroke: \"none\", fillStyle: \"solid\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n }\n const roughNode = rc.circle(0, 0, radius * 2, options);\n const circleElem = shapeSvg.insert(() => roughNode, \":first-child\");\n circleElem.attr(\"class\", \"anchor\").attr(\"style\", handleUndefinedAttr(cssStyles));\n updateNodeBounds(node, circleElem);\n node.intersect = function(point) {\n log.info(\"Circle intersect\", node, radius, point);\n return intersect_default.circle(node, radius, point);\n };\n return shapeSvg;\n}\n__name(anchor, \"anchor\");\n\n// src/rendering-util/rendering-elements/shapes/bowTieRect.ts\nimport rough3 from \"roughjs\";\nfunction generateArcPoints(x1, y1, x2, y2, rx, ry, clockwise) {\n const numPoints = 20;\n const midX = (x1 + x2) / 2;\n const midY = (y1 + y2) / 2;\n const angle = Math.atan2(y2 - y1, x2 - x1);\n const dx = (x2 - x1) / 2;\n const dy = (y2 - y1) / 2;\n const transformedX = dx / rx;\n const transformedY = dy / ry;\n const distance = Math.sqrt(transformedX ** 2 + transformedY ** 2);\n if (distance > 1) {\n throw new Error(\"The given radii are too small to create an arc between the points.\");\n }\n const scaledCenterDistance = Math.sqrt(1 - distance ** 2);\n const centerX = midX + scaledCenterDistance * ry * Math.sin(angle) * (clockwise ? -1 : 1);\n const centerY = midY - scaledCenterDistance * rx * Math.cos(angle) * (clockwise ? -1 : 1);\n const startAngle = Math.atan2((y1 - centerY) / ry, (x1 - centerX) / rx);\n const endAngle = Math.atan2((y2 - centerY) / ry, (x2 - centerX) / rx);\n let angleRange = endAngle - startAngle;\n if (clockwise && angleRange < 0) {\n angleRange += 2 * Math.PI;\n }\n if (!clockwise && angleRange > 0) {\n angleRange -= 2 * Math.PI;\n }\n const points = [];\n for (let i = 0; i < numPoints; i++) {\n const t = i / (numPoints - 1);\n const angle2 = startAngle + t * angleRange;\n const x = centerX + rx * Math.cos(angle2);\n const y = centerY + ry * Math.sin(angle2);\n points.push({ x, y });\n }\n return points;\n}\n__name(generateArcPoints, \"generateArcPoints\");\nasync function bowTieRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + node.padding + 20;\n const h = bbox.height + node.padding;\n const ry = h / 2;\n const rx = ry / (2.5 + h / 50);\n const { cssStyles } = node;\n const points = [\n { x: w / 2, y: -h / 2 },\n { x: -w / 2, y: -h / 2 },\n ...generateArcPoints(-w / 2, -h / 2, -w / 2, h / 2, rx, ry, false),\n { x: w / 2, y: h / 2 },\n ...generateArcPoints(w / 2, h / 2, w / 2, -h / 2, rx, ry, true)\n ];\n const rc = rough3.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const bowTieRectPath = createPathFromPoints(points);\n const bowTieRectShapePath = rc.path(bowTieRectPath, options);\n const bowTieRectShape = shapeSvg.insert(() => bowTieRectShapePath, \":first-child\");\n bowTieRectShape.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n bowTieRectShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n bowTieRectShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n bowTieRectShape.attr(\"transform\", `translate(${rx / 2}, 0)`);\n updateNodeBounds(node, bowTieRectShape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(bowTieRect, \"bowTieRect\");\n\n// src/rendering-util/rendering-elements/shapes/card.ts\nimport rough4 from \"roughjs\";\n\n// src/rendering-util/rendering-elements/shapes/insertPolygonShape.ts\nfunction insertPolygonShape(parent, w, h, points) {\n return parent.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n ).attr(\"class\", \"label-container\").attr(\"transform\", \"translate(\" + -w / 2 + \",\" + h / 2 + \")\");\n}\n__name(insertPolygonShape, \"insertPolygonShape\");\n\n// src/rendering-util/rendering-elements/shapes/card.ts\nasync function card(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const h = bbox.height + node.padding;\n const padding = 12;\n const w = bbox.width + node.padding + padding;\n const left = 0;\n const right = w;\n const top = -h;\n const bottom = 0;\n const points = [\n { x: left + padding, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom },\n { x: left, y: top + padding },\n { x: left + padding, y: top }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough4.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(card, \"card\");\n\n// src/rendering-util/rendering-elements/shapes/choice.ts\nimport rough5 from \"roughjs\";\nfunction choice(parent, node) {\n const { nodeStyles } = styles2String(node);\n node.label = \"\";\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const { cssStyles } = node;\n const s = Math.max(28, node.width ?? 0);\n const points = [\n { x: 0, y: s / 2 },\n { x: s / 2, y: 0 },\n { x: 0, y: -s / 2 },\n { x: -s / 2, y: 0 }\n ];\n const rc = rough5.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const choicePath = createPathFromPoints(points);\n const roughNode = rc.path(choicePath, options);\n const choiceShape = shapeSvg.insert(() => roughNode, \":first-child\");\n if (cssStyles && node.look !== \"handDrawn\") {\n choiceShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n choiceShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n node.width = 28;\n node.height = 28;\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(choice, \"choice\");\n\n// src/rendering-util/rendering-elements/shapes/circle.ts\nimport rough6 from \"roughjs\";\nasync function circle(parent, node, options) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, halfPadding } = await labelHelper(parent, node, getNodeClasses(node));\n const padding = options?.padding ?? halfPadding;\n const radius = bbox.width / 2 + padding;\n let circleElem;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough6.svg(shapeSvg);\n const options2 = userNodeOverrides(node, {});\n const roughNode = rc.circle(0, 0, radius * 2, options2);\n circleElem = shapeSvg.insert(() => roughNode, \":first-child\");\n circleElem.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n } else {\n circleElem = shapeSvg.insert(\"circle\", \":first-child\").attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles).attr(\"r\", radius).attr(\"cx\", 0).attr(\"cy\", 0);\n }\n updateNodeBounds(node, circleElem);\n node.calcIntersect = function(bounds, point) {\n const radius2 = bounds.width / 2;\n return intersect_default.circle(bounds, radius2, point);\n };\n node.intersect = function(point) {\n log.info(\"Circle intersect\", node, radius, point);\n return intersect_default.circle(node, radius, point);\n };\n return shapeSvg;\n}\n__name(circle, \"circle\");\n\n// src/rendering-util/rendering-elements/shapes/crossedCircle.ts\nimport rough7 from \"roughjs\";\nfunction createLine(r) {\n const xAxis45 = Math.cos(Math.PI / 4);\n const yAxis45 = Math.sin(Math.PI / 4);\n const lineLength = r * 2;\n const pointQ1 = { x: lineLength / 2 * xAxis45, y: lineLength / 2 * yAxis45 };\n const pointQ2 = { x: -(lineLength / 2) * xAxis45, y: lineLength / 2 * yAxis45 };\n const pointQ3 = { x: -(lineLength / 2) * xAxis45, y: -(lineLength / 2) * yAxis45 };\n const pointQ4 = { x: lineLength / 2 * xAxis45, y: -(lineLength / 2) * yAxis45 };\n return `M ${pointQ2.x},${pointQ2.y} L ${pointQ4.x},${pointQ4.y}\n M ${pointQ1.x},${pointQ1.y} L ${pointQ3.x},${pointQ3.y}`;\n}\n__name(createLine, \"createLine\");\nfunction crossedCircle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n node.label = \"\";\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const radius = Math.max(30, node?.width ?? 0);\n const { cssStyles } = node;\n const rc = rough7.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const circleNode = rc.circle(0, 0, radius * 2, options);\n const linePath = createLine(radius);\n const lineNode = rc.path(linePath, options);\n const crossedCircle2 = shapeSvg.insert(() => circleNode, \":first-child\");\n crossedCircle2.insert(() => lineNode);\n if (cssStyles && node.look !== \"handDrawn\") {\n crossedCircle2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n crossedCircle2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, crossedCircle2);\n node.intersect = function(point) {\n log.info(\"crossedCircle intersect\", node, { radius, point });\n const pos = intersect_default.circle(node, radius, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(crossedCircle, \"crossedCircle\");\n\n// src/rendering-util/rendering-elements/shapes/curlyBraceLeft.ts\nimport rough8 from \"roughjs\";\nfunction generateCirclePoints2(centerX, centerY, radius, numPoints = 100, startAngle = 0, endAngle = 180) {\n const points = [];\n const startAngleRad = startAngle * Math.PI / 180;\n const endAngleRad = endAngle * Math.PI / 180;\n const angleRange = endAngleRad - startAngleRad;\n const angleStep = angleRange / (numPoints - 1);\n for (let i = 0; i < numPoints; i++) {\n const angle = startAngleRad + i * angleStep;\n const x = centerX + radius * Math.cos(angle);\n const y = centerY + radius * Math.sin(angle);\n points.push({ x: -x, y: -y });\n }\n return points;\n}\n__name(generateCirclePoints2, \"generateCirclePoints\");\nasync function curlyBraceLeft(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + (node.padding ?? 0);\n const h = bbox.height + (node.padding ?? 0);\n const radius = Math.max(5, h * 0.1);\n const { cssStyles } = node;\n const points = [\n ...generateCirclePoints2(w / 2, -h / 2, radius, 30, -90, 0),\n { x: -w / 2 - radius, y: radius },\n ...generateCirclePoints2(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints2(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: -w / 2 - radius, y: -h / 2 },\n ...generateCirclePoints2(w / 2, h / 2, radius, 20, 0, 90)\n ];\n const rectPoints = [\n { x: w / 2, y: -h / 2 - radius },\n { x: -w / 2, y: -h / 2 - radius },\n ...generateCirclePoints2(w / 2, -h / 2, radius, 20, -90, 0),\n { x: -w / 2 - radius, y: -radius },\n ...generateCirclePoints2(w / 2 + w * 0.1, -radius, radius, 20, -180, -270),\n ...generateCirclePoints2(w / 2 + w * 0.1, radius, radius, 20, -90, -180),\n { x: -w / 2 - radius, y: h / 2 },\n ...generateCirclePoints2(w / 2, h / 2, radius, 20, 0, 90),\n { x: -w / 2, y: h / 2 + radius },\n { x: w / 2, y: h / 2 + radius }\n ];\n const rc = rough8.svg(shapeSvg);\n const options = userNodeOverrides(node, { fill: \"none\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const curlyBraceLeftPath = createPathFromPoints(points);\n const newCurlyBracePath = curlyBraceLeftPath.replace(\"Z\", \"\");\n const curlyBraceLeftNode = rc.path(newCurlyBracePath, options);\n const rectPath = createPathFromPoints(rectPoints);\n const rectShape = rc.path(rectPath, { ...options });\n const curlyBraceLeftShape = shapeSvg.insert(\"g\", \":first-child\");\n curlyBraceLeftShape.insert(() => rectShape, \":first-child\").attr(\"stroke-opacity\", 0);\n curlyBraceLeftShape.insert(() => curlyBraceLeftNode, \":first-child\");\n curlyBraceLeftShape.attr(\"class\", \"text\");\n if (cssStyles && node.look !== \"handDrawn\") {\n curlyBraceLeftShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n curlyBraceLeftShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n curlyBraceLeftShape.attr(\"transform\", `translate(${radius}, 0)`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + radius - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, curlyBraceLeftShape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, rectPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(curlyBraceLeft, \"curlyBraceLeft\");\n\n// src/rendering-util/rendering-elements/shapes/curlyBraceRight.ts\nimport rough9 from \"roughjs\";\nfunction generateCirclePoints3(centerX, centerY, radius, numPoints = 100, startAngle = 0, endAngle = 180) {\n const points = [];\n const startAngleRad = startAngle * Math.PI / 180;\n const endAngleRad = endAngle * Math.PI / 180;\n const angleRange = endAngleRad - startAngleRad;\n const angleStep = angleRange / (numPoints - 1);\n for (let i = 0; i < numPoints; i++) {\n const angle = startAngleRad + i * angleStep;\n const x = centerX + radius * Math.cos(angle);\n const y = centerY + radius * Math.sin(angle);\n points.push({ x, y });\n }\n return points;\n}\n__name(generateCirclePoints3, \"generateCirclePoints\");\nasync function curlyBraceRight(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + (node.padding ?? 0);\n const h = bbox.height + (node.padding ?? 0);\n const radius = Math.max(5, h * 0.1);\n const { cssStyles } = node;\n const points = [\n ...generateCirclePoints3(w / 2, -h / 2, radius, 20, -90, 0),\n { x: w / 2 + radius, y: -radius },\n ...generateCirclePoints3(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints3(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: w / 2 + radius, y: h / 2 },\n ...generateCirclePoints3(w / 2, h / 2, radius, 20, 0, 90)\n ];\n const rectPoints = [\n { x: -w / 2, y: -h / 2 - radius },\n { x: w / 2, y: -h / 2 - radius },\n ...generateCirclePoints3(w / 2, -h / 2, radius, 20, -90, 0),\n { x: w / 2 + radius, y: -radius },\n ...generateCirclePoints3(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints3(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: w / 2 + radius, y: h / 2 },\n ...generateCirclePoints3(w / 2, h / 2, radius, 20, 0, 90),\n { x: w / 2, y: h / 2 + radius },\n { x: -w / 2, y: h / 2 + radius }\n ];\n const rc = rough9.svg(shapeSvg);\n const options = userNodeOverrides(node, { fill: \"none\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const curlyBraceRightPath = createPathFromPoints(points);\n const newCurlyBracePath = curlyBraceRightPath.replace(\"Z\", \"\");\n const curlyBraceRightNode = rc.path(newCurlyBracePath, options);\n const rectPath = createPathFromPoints(rectPoints);\n const rectShape = rc.path(rectPath, { ...options });\n const curlyBraceRightShape = shapeSvg.insert(\"g\", \":first-child\");\n curlyBraceRightShape.insert(() => rectShape, \":first-child\").attr(\"stroke-opacity\", 0);\n curlyBraceRightShape.insert(() => curlyBraceRightNode, \":first-child\");\n curlyBraceRightShape.attr(\"class\", \"text\");\n if (cssStyles && node.look !== \"handDrawn\") {\n curlyBraceRightShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n curlyBraceRightShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n curlyBraceRightShape.attr(\"transform\", `translate(${-radius}, 0)`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) / 2 - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, curlyBraceRightShape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, rectPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(curlyBraceRight, \"curlyBraceRight\");\n\n// src/rendering-util/rendering-elements/shapes/curlyBraces.ts\nimport rough10 from \"roughjs\";\nfunction generateCirclePoints4(centerX, centerY, radius, numPoints = 100, startAngle = 0, endAngle = 180) {\n const points = [];\n const startAngleRad = startAngle * Math.PI / 180;\n const endAngleRad = endAngle * Math.PI / 180;\n const angleRange = endAngleRad - startAngleRad;\n const angleStep = angleRange / (numPoints - 1);\n for (let i = 0; i < numPoints; i++) {\n const angle = startAngleRad + i * angleStep;\n const x = centerX + radius * Math.cos(angle);\n const y = centerY + radius * Math.sin(angle);\n points.push({ x: -x, y: -y });\n }\n return points;\n}\n__name(generateCirclePoints4, \"generateCirclePoints\");\nasync function curlyBraces(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + (node.padding ?? 0);\n const h = bbox.height + (node.padding ?? 0);\n const radius = Math.max(5, h * 0.1);\n const { cssStyles } = node;\n const leftCurlyBracePoints = [\n ...generateCirclePoints4(w / 2, -h / 2, radius, 30, -90, 0),\n { x: -w / 2 - radius, y: radius },\n ...generateCirclePoints4(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints4(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: -w / 2 - radius, y: -h / 2 },\n ...generateCirclePoints4(w / 2, h / 2, radius, 20, 0, 90)\n ];\n const rightCurlyBracePoints = [\n ...generateCirclePoints4(-w / 2 + radius + radius / 2, -h / 2, radius, 20, -90, -180),\n { x: w / 2 - radius / 2, y: radius },\n ...generateCirclePoints4(-w / 2 - radius / 2, -radius, radius, 20, 0, 90),\n ...generateCirclePoints4(-w / 2 - radius / 2, radius, radius, 20, -90, 0),\n { x: w / 2 - radius / 2, y: -radius },\n ...generateCirclePoints4(-w / 2 + radius + radius / 2, h / 2, radius, 30, -180, -270)\n ];\n const rectPoints = [\n { x: w / 2, y: -h / 2 - radius },\n { x: -w / 2, y: -h / 2 - radius },\n ...generateCirclePoints4(w / 2, -h / 2, radius, 20, -90, 0),\n { x: -w / 2 - radius, y: -radius },\n ...generateCirclePoints4(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints4(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: -w / 2 - radius, y: h / 2 },\n ...generateCirclePoints4(w / 2, h / 2, radius, 20, 0, 90),\n { x: -w / 2, y: h / 2 + radius },\n { x: w / 2 - radius - radius / 2, y: h / 2 + radius },\n ...generateCirclePoints4(-w / 2 + radius + radius / 2, -h / 2, radius, 20, -90, -180),\n { x: w / 2 - radius / 2, y: radius },\n ...generateCirclePoints4(-w / 2 - radius / 2, -radius, radius, 20, 0, 90),\n ...generateCirclePoints4(-w / 2 - radius / 2, radius, radius, 20, -90, 0),\n { x: w / 2 - radius / 2, y: -radius },\n ...generateCirclePoints4(-w / 2 + radius + radius / 2, h / 2, radius, 30, -180, -270)\n ];\n const rc = rough10.svg(shapeSvg);\n const options = userNodeOverrides(node, { fill: \"none\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const leftCurlyBracePath = createPathFromPoints(leftCurlyBracePoints);\n const newLeftCurlyBracePath = leftCurlyBracePath.replace(\"Z\", \"\");\n const leftCurlyBraceNode = rc.path(newLeftCurlyBracePath, options);\n const rightCurlyBracePath = createPathFromPoints(rightCurlyBracePoints);\n const newRightCurlyBracePath = rightCurlyBracePath.replace(\"Z\", \"\");\n const rightCurlyBraceNode = rc.path(newRightCurlyBracePath, options);\n const rectPath = createPathFromPoints(rectPoints);\n const rectShape = rc.path(rectPath, { ...options });\n const curlyBracesShape = shapeSvg.insert(\"g\", \":first-child\");\n curlyBracesShape.insert(() => rectShape, \":first-child\").attr(\"stroke-opacity\", 0);\n curlyBracesShape.insert(() => leftCurlyBraceNode, \":first-child\");\n curlyBracesShape.insert(() => rightCurlyBraceNode, \":first-child\");\n curlyBracesShape.attr(\"class\", \"text\");\n if (cssStyles && node.look !== \"handDrawn\") {\n curlyBracesShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n curlyBracesShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n curlyBracesShape.attr(\"transform\", `translate(${radius - radius / 4}, 0)`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) / 2 - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, curlyBracesShape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, rectPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(curlyBraces, \"curlyBraces\");\n\n// src/rendering-util/rendering-elements/shapes/curvedTrapezoid.ts\nimport rough11 from \"roughjs\";\nasync function curvedTrapezoid(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const minWidth = 80, minHeight = 20;\n const w = Math.max(minWidth, (bbox.width + (node.padding ?? 0) * 2) * 1.25, node?.width ?? 0);\n const h = Math.max(minHeight, bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const radius = h / 2;\n const { cssStyles } = node;\n const rc = rough11.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const totalWidth = w, totalHeight = h;\n const rw = totalWidth - radius;\n const tw = totalHeight / 4;\n const points = [\n { x: rw, y: 0 },\n { x: tw, y: 0 },\n { x: 0, y: totalHeight / 2 },\n { x: tw, y: totalHeight },\n { x: rw, y: totalHeight },\n ...generateCirclePoints(-rw, -totalHeight / 2, radius, 50, 270, 90)\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n polygon.attr(\"transform\", `translate(${-w / 2}, ${-h / 2})`);\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(curvedTrapezoid, \"curvedTrapezoid\");\n\n// src/rendering-util/rendering-elements/shapes/cylinder.ts\nimport rough12 from \"roughjs\";\nvar createCylinderPathD = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [\n `M${x},${y + ry}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `a${rx},${ry} 0,0,0 ${-width},0`,\n `l0,${height}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `l0,${-height}`\n ].join(\" \");\n}, \"createCylinderPathD\");\nvar createOuterCylinderPathD = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [\n `M${x},${y + ry}`,\n `M${x + width},${y + ry}`,\n `a${rx},${ry} 0,0,0 ${-width},0`,\n `l0,${height}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `l0,${-height}`\n ].join(\" \");\n}, \"createOuterCylinderPathD\");\nvar createInnerCylinderPathD = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [`M${x - width / 2},${-height / 2}`, `a${rx},${ry} 0,0,0 ${width},0`].join(\" \");\n}, \"createInnerCylinderPathD\");\nasync function cylinder(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + node.padding, node.width ?? 0);\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = Math.max(bbox.height + ry + node.padding, node.height ?? 0);\n let cylinder2;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough12.svg(shapeSvg);\n const outerPathData = createOuterCylinderPathD(0, 0, w, h, rx, ry);\n const innerPathData = createInnerCylinderPathD(0, ry, w, h, rx, ry);\n const outerNode = rc.path(outerPathData, userNodeOverrides(node, {}));\n const innerLine = rc.path(innerPathData, userNodeOverrides(node, { fill: \"none\" }));\n cylinder2 = shapeSvg.insert(() => innerLine, \":first-child\");\n cylinder2 = shapeSvg.insert(() => outerNode, \":first-child\");\n cylinder2.attr(\"class\", \"basic label-container\");\n if (cssStyles) {\n cylinder2.attr(\"style\", cssStyles);\n }\n } else {\n const pathData = createCylinderPathD(0, 0, w, h, rx, ry);\n cylinder2 = shapeSvg.insert(\"path\", \":first-child\").attr(\"d\", pathData).attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles)).attr(\"style\", nodeStyles);\n }\n cylinder2.attr(\"label-offset-y\", ry);\n cylinder2.attr(\"transform\", `translate(${-w / 2}, ${-(h / 2 + ry)})`);\n updateNodeBounds(node, cylinder2);\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + (node.padding ?? 0) / 1.5 - (bbox.y - (bbox.top ?? 0))})`\n );\n node.intersect = function(point) {\n const pos = intersect_default.rect(node, point);\n const x = pos.x - (node.x ?? 0);\n if (rx != 0 && (Math.abs(x) < (node.width ?? 0) / 2 || Math.abs(x) == (node.width ?? 0) / 2 && Math.abs(pos.y - (node.y ?? 0)) > (node.height ?? 0) / 2 - ry)) {\n let y = ry * ry * (1 - x * x / (rx * rx));\n if (y > 0) {\n y = Math.sqrt(y);\n }\n y = ry - y;\n if (point.y - (node.y ?? 0) > 0) {\n y = -y;\n }\n pos.y += y;\n }\n return pos;\n };\n return shapeSvg;\n}\n__name(cylinder, \"cylinder\");\n\n// src/rendering-util/rendering-elements/shapes/dividedRect.ts\nimport rough13 from \"roughjs\";\nasync function dividedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const rectOffset = h * 0.2;\n const x = -w / 2;\n const y = -h / 2 - rectOffset / 2;\n const { cssStyles } = node;\n const rc = rough13.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const pts = [\n { x, y: y + rectOffset },\n { x: -x, y: y + rectOffset },\n { x: -x, y: -y },\n { x, y: -y },\n { x, y },\n { x: -x, y },\n { x: -x, y: y + rectOffset }\n ];\n const poly = rc.polygon(\n pts.map((p) => [p.x, p.y]),\n options\n );\n const polygon = shapeSvg.insert(() => poly, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${x + (node.padding ?? 0) / 2 - (bbox.x - (bbox.left ?? 0))}, ${y + rectOffset + (node.padding ?? 0) / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.rect(node, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(dividedRectangle, \"dividedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/doubleCircle.ts\nimport rough14 from \"roughjs\";\nasync function doublecircle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, halfPadding } = await labelHelper(parent, node, getNodeClasses(node));\n const gap = 5;\n const outerRadius = bbox.width / 2 + halfPadding + gap;\n const innerRadius = bbox.width / 2 + halfPadding;\n let circleGroup;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough14.svg(shapeSvg);\n const outerOptions = userNodeOverrides(node, { roughness: 0.2, strokeWidth: 2.5 });\n const innerOptions = userNodeOverrides(node, { roughness: 0.2, strokeWidth: 1.5 });\n const outerRoughNode = rc.circle(0, 0, outerRadius * 2, outerOptions);\n const innerRoughNode = rc.circle(0, 0, innerRadius * 2, innerOptions);\n circleGroup = shapeSvg.insert(\"g\", \":first-child\");\n circleGroup.attr(\"class\", handleUndefinedAttr(node.cssClasses)).attr(\"style\", handleUndefinedAttr(cssStyles));\n circleGroup.node()?.appendChild(outerRoughNode);\n circleGroup.node()?.appendChild(innerRoughNode);\n } else {\n circleGroup = shapeSvg.insert(\"g\", \":first-child\");\n const outerCircle = circleGroup.insert(\"circle\", \":first-child\");\n const innerCircle = circleGroup.insert(\"circle\");\n circleGroup.attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles);\n outerCircle.attr(\"class\", \"outer-circle\").attr(\"style\", nodeStyles).attr(\"r\", outerRadius).attr(\"cx\", 0).attr(\"cy\", 0);\n innerCircle.attr(\"class\", \"inner-circle\").attr(\"style\", nodeStyles).attr(\"r\", innerRadius).attr(\"cx\", 0).attr(\"cy\", 0);\n }\n updateNodeBounds(node, circleGroup);\n node.intersect = function(point) {\n log.info(\"DoubleCircle intersect\", node, outerRadius, point);\n return intersect_default.circle(node, outerRadius, point);\n };\n return shapeSvg;\n}\n__name(doublecircle, \"doublecircle\");\n\n// src/rendering-util/rendering-elements/shapes/filledCircle.ts\nimport rough15 from \"roughjs\";\nfunction filledCircle(parent, node, { config: { themeVariables } }) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.label = \"\";\n node.labelStyle = labelStyles;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const radius = 7;\n const { cssStyles } = node;\n const rc = rough15.svg(shapeSvg);\n const { nodeBorder } = themeVariables;\n const options = userNodeOverrides(node, { fillStyle: \"solid\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n }\n const circleNode = rc.circle(0, 0, radius * 2, options);\n const filledCircle2 = shapeSvg.insert(() => circleNode, \":first-child\");\n filledCircle2.selectAll(\"path\").attr(\"style\", `fill: ${nodeBorder} !important;`);\n if (cssStyles && cssStyles.length > 0 && node.look !== \"handDrawn\") {\n filledCircle2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n filledCircle2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, filledCircle2);\n node.intersect = function(point) {\n log.info(\"filledCircle intersect\", node, { radius, point });\n const pos = intersect_default.circle(node, radius, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(filledCircle, \"filledCircle\");\n\n// src/rendering-util/rendering-elements/shapes/flippedTriangle.ts\nimport rough16 from \"roughjs\";\nasync function flippedTriangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + (node.padding ?? 0);\n const h = w + bbox.height;\n const tw = w + bbox.height;\n const points = [\n { x: 0, y: -h },\n { x: tw, y: -h },\n { x: tw / 2, y: 0 }\n ];\n const { cssStyles } = node;\n const rc = rough16.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n const flippedTriangle2 = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-h / 2}, ${h / 2})`);\n if (cssStyles && node.look !== \"handDrawn\") {\n flippedTriangle2.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n flippedTriangle2.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, flippedTriangle2);\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))}, ${-h / 2 + (node.padding ?? 0) / 2 + (bbox.y - (bbox.top ?? 0))})`\n );\n node.intersect = function(point) {\n log.info(\"Triangle intersect\", node, points, point);\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(flippedTriangle, \"flippedTriangle\");\n\n// src/rendering-util/rendering-elements/shapes/forkJoin.ts\nimport rough17 from \"roughjs\";\nfunction forkJoin(parent, node, { dir, config: { state: state2, themeVariables } }) {\n const { nodeStyles } = styles2String(node);\n node.label = \"\";\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const { cssStyles } = node;\n let width = Math.max(70, node?.width ?? 0);\n let height = Math.max(10, node?.height ?? 0);\n if (dir === \"LR\") {\n width = Math.max(10, node?.width ?? 0);\n height = Math.max(70, node?.height ?? 0);\n }\n const x = -1 * width / 2;\n const y = -1 * height / 2;\n const rc = rough17.svg(shapeSvg);\n const options = userNodeOverrides(node, {\n stroke: themeVariables.lineColor,\n fill: themeVariables.lineColor\n });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const roughNode = rc.rectangle(x, y, width, height, options);\n const shape = shapeSvg.insert(() => roughNode, \":first-child\");\n if (cssStyles && node.look !== \"handDrawn\") {\n shape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n shape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, shape);\n const padding = state2?.padding ?? 0;\n if (node.width && node.height) {\n node.width += padding / 2 || 0;\n node.height += padding / 2 || 0;\n }\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(forkJoin, \"forkJoin\");\n\n// src/rendering-util/rendering-elements/shapes/halfRoundedRectangle.ts\nimport rough18 from \"roughjs\";\nasync function halfRoundedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const minWidth = 80, minHeight = 50;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(minWidth, bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(minHeight, bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const radius = h / 2;\n const { cssStyles } = node;\n const rc = rough18.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2, y: -h / 2 },\n { x: w / 2 - radius, y: -h / 2 },\n ...generateCirclePoints(-w / 2 + radius, 0, radius, 50, 90, 270),\n { x: w / 2 - radius, y: h / 2 },\n { x: -w / 2, y: h / 2 }\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n log.info(\"Pill intersect\", node, { radius, point });\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(halfRoundedRectangle, \"halfRoundedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/hexagon.ts\nimport rough19 from \"roughjs\";\nasync function hexagon(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const h = bbox.height + (node.padding ?? 0);\n const w = bbox.width + (node.padding ?? 0) * 2.5;\n const { cssStyles } = node;\n const rc = rough19.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n let halfWidth = w / 2;\n const m = halfWidth / 6;\n halfWidth = halfWidth + m;\n const halfHeight = h / 2;\n const fixedLength = halfHeight / 2;\n const deducedWidth = halfWidth - fixedLength;\n const points = [\n { x: -deducedWidth, y: -halfHeight },\n { x: 0, y: -halfHeight },\n { x: deducedWidth, y: -halfHeight },\n { x: halfWidth, y: 0 },\n { x: deducedWidth, y: halfHeight },\n { x: 0, y: halfHeight },\n { x: -deducedWidth, y: halfHeight },\n { x: -halfWidth, y: 0 }\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(hexagon, \"hexagon\");\n\n// src/rendering-util/rendering-elements/shapes/hourglass.ts\nimport rough20 from \"roughjs\";\nasync function hourglass(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.label = \"\";\n node.labelStyle = labelStyles;\n const { shapeSvg } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(30, node?.width ?? 0);\n const h = Math.max(30, node?.height ?? 0);\n const { cssStyles } = node;\n const rc = rough20.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: 0, y: h },\n { x: w, y: h }\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n polygon.attr(\"transform\", `translate(${-w / 2}, ${-h / 2})`);\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n log.info(\"Pill intersect\", node, { points });\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(hourglass, \"hourglass\");\n\n// src/rendering-util/rendering-elements/shapes/icon.ts\nimport rough21 from \"roughjs\";\nasync function icon(parent, node, { config: { themeVariables, flowchart } }) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const assetHeight = node.assetHeight ?? 48;\n const assetWidth = node.assetWidth ?? 48;\n const iconSize = Math.max(assetHeight, assetWidth);\n const defaultWidth = flowchart?.wrappingWidth;\n node.width = Math.max(iconSize, defaultWidth ?? 0);\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, \"icon-shape default\");\n const topLabel = node.pos === \"t\";\n const height = iconSize;\n const width = iconSize;\n const { nodeBorder } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const x = -width / 2;\n const y = -height / 2;\n const labelPadding = node.label ? 8 : 0;\n const rc = rough21.svg(shapeSvg);\n const options = userNodeOverrides(node, { stroke: \"none\", fill: \"none\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const iconNode = rc.rectangle(x, y, width, height, options);\n const outerWidth = Math.max(width, bbox.width);\n const outerHeight = height + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"transparent\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => iconNode, \":first-child\");\n const outerShape = shapeSvg.insert(() => outerNode);\n if (node.icon) {\n const iconElem = shapeSvg.append(\"g\");\n iconElem.html(\n `<g>${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\n })}</g>`\n );\n const iconBBox = iconElem.node().getBBox();\n const iconWidth = iconBBox.width;\n const iconHeight = iconBBox.height;\n const iconX = iconBBox.x;\n const iconY = iconBBox.y;\n iconElem.attr(\n \"transform\",\n `translate(${-iconWidth / 2 - iconX},${topLabel ? bbox.height / 2 + labelPadding / 2 - iconHeight / 2 - iconY : -bbox.height / 2 - labelPadding / 2 - iconHeight / 2 - iconY})`\n );\n iconElem.attr(\"style\", `color: ${stylesMap.get(\"stroke\") ?? nodeBorder};`);\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -outerHeight / 2 : outerHeight / 2 - bbox.height})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n if (!node.label) {\n return intersect_default.rect(node, point);\n }\n const dx = node.x ?? 0;\n const dy = node.y ?? 0;\n const nodeHeight = node.height ?? 0;\n let points = [];\n if (topLabel) {\n points = [\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding }\n ];\n } else {\n points = [\n { x: dx - width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2 / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + height }\n ];\n }\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(icon, \"icon\");\n\n// src/rendering-util/rendering-elements/shapes/iconCircle.ts\nimport rough22 from \"roughjs\";\nasync function iconCircle(parent, node, { config: { themeVariables, flowchart } }) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const assetHeight = node.assetHeight ?? 48;\n const assetWidth = node.assetWidth ?? 48;\n const iconSize = Math.max(assetHeight, assetWidth);\n const defaultWidth = flowchart?.wrappingWidth;\n node.width = Math.max(iconSize, defaultWidth ?? 0);\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, \"icon-shape default\");\n const padding = 20;\n const labelPadding = node.label ? 8 : 0;\n const topLabel = node.pos === \"t\";\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const rc = rough22.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const fill = stylesMap.get(\"fill\");\n options.stroke = fill ?? mainBkg;\n const iconElem = shapeSvg.append(\"g\");\n if (node.icon) {\n iconElem.html(\n `<g>${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\n })}</g>`\n );\n }\n const iconBBox = iconElem.node().getBBox();\n const iconWidth = iconBBox.width;\n const iconHeight = iconBBox.height;\n const iconX = iconBBox.x;\n const iconY = iconBBox.y;\n const diameter = Math.max(iconWidth, iconHeight) * Math.SQRT2 + padding * 2;\n const iconNode = rc.circle(0, 0, diameter, options);\n const outerWidth = Math.max(diameter, bbox.width);\n const outerHeight = diameter + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"transparent\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => iconNode, \":first-child\");\n const outerShape = shapeSvg.insert(() => outerNode);\n iconElem.attr(\n \"transform\",\n `translate(${-iconWidth / 2 - iconX},${topLabel ? bbox.height / 2 + labelPadding / 2 - iconHeight / 2 - iconY : -bbox.height / 2 - labelPadding / 2 - iconHeight / 2 - iconY})`\n );\n iconElem.attr(\"style\", `color: ${stylesMap.get(\"stroke\") ?? nodeBorder};`);\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -outerHeight / 2 : outerHeight / 2 - bbox.height})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n const pos = intersect_default.rect(node, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(iconCircle, \"iconCircle\");\n\n// src/rendering-util/rendering-elements/shapes/iconRounded.ts\nimport rough23 from \"roughjs\";\nasync function iconRounded(parent, node, { config: { themeVariables, flowchart } }) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const assetHeight = node.assetHeight ?? 48;\n const assetWidth = node.assetWidth ?? 48;\n const iconSize = Math.max(assetHeight, assetWidth);\n const defaultWidth = flowchart?.wrappingWidth;\n node.width = Math.max(iconSize, defaultWidth ?? 0);\n const { shapeSvg, bbox, halfPadding, label } = await labelHelper(\n parent,\n node,\n \"icon-shape default\"\n );\n const topLabel = node.pos === \"t\";\n const height = iconSize + halfPadding * 2;\n const width = iconSize + halfPadding * 2;\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const x = -width / 2;\n const y = -height / 2;\n const labelPadding = node.label ? 8 : 0;\n const rc = rough23.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const fill = stylesMap.get(\"fill\");\n options.stroke = fill ?? mainBkg;\n const iconNode = rc.path(createRoundedRectPathD(x, y, width, height, 5), options);\n const outerWidth = Math.max(width, bbox.width);\n const outerHeight = height + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"transparent\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => iconNode, \":first-child\").attr(\"class\", \"icon-shape2\");\n const outerShape = shapeSvg.insert(() => outerNode);\n if (node.icon) {\n const iconElem = shapeSvg.append(\"g\");\n iconElem.html(\n `<g>${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\n })}</g>`\n );\n const iconBBox = iconElem.node().getBBox();\n const iconWidth = iconBBox.width;\n const iconHeight = iconBBox.height;\n const iconX = iconBBox.x;\n const iconY = iconBBox.y;\n iconElem.attr(\n \"transform\",\n `translate(${-iconWidth / 2 - iconX},${topLabel ? bbox.height / 2 + labelPadding / 2 - iconHeight / 2 - iconY : -bbox.height / 2 - labelPadding / 2 - iconHeight / 2 - iconY})`\n );\n iconElem.attr(\"style\", `color: ${stylesMap.get(\"stroke\") ?? nodeBorder};`);\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -outerHeight / 2 : outerHeight / 2 - bbox.height})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n if (!node.label) {\n return intersect_default.rect(node, point);\n }\n const dx = node.x ?? 0;\n const dy = node.y ?? 0;\n const nodeHeight = node.height ?? 0;\n let points = [];\n if (topLabel) {\n points = [\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding }\n ];\n } else {\n points = [\n { x: dx - width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2 / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + height }\n ];\n }\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(iconRounded, \"iconRounded\");\n\n// src/rendering-util/rendering-elements/shapes/iconSquare.ts\nimport rough24 from \"roughjs\";\nasync function iconSquare(parent, node, { config: { themeVariables, flowchart } }) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const assetHeight = node.assetHeight ?? 48;\n const assetWidth = node.assetWidth ?? 48;\n const iconSize = Math.max(assetHeight, assetWidth);\n const defaultWidth = flowchart?.wrappingWidth;\n node.width = Math.max(iconSize, defaultWidth ?? 0);\n const { shapeSvg, bbox, halfPadding, label } = await labelHelper(\n parent,\n node,\n \"icon-shape default\"\n );\n const topLabel = node.pos === \"t\";\n const height = iconSize + halfPadding * 2;\n const width = iconSize + halfPadding * 2;\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const x = -width / 2;\n const y = -height / 2;\n const labelPadding = node.label ? 8 : 0;\n const rc = rough24.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const fill = stylesMap.get(\"fill\");\n options.stroke = fill ?? mainBkg;\n const iconNode = rc.path(createRoundedRectPathD(x, y, width, height, 0.1), options);\n const outerWidth = Math.max(width, bbox.width);\n const outerHeight = height + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"transparent\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => iconNode, \":first-child\");\n const outerShape = shapeSvg.insert(() => outerNode);\n if (node.icon) {\n const iconElem = shapeSvg.append(\"g\");\n iconElem.html(\n `<g>${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\n })}</g>`\n );\n const iconBBox = iconElem.node().getBBox();\n const iconWidth = iconBBox.width;\n const iconHeight = iconBBox.height;\n const iconX = iconBBox.x;\n const iconY = iconBBox.y;\n iconElem.attr(\n \"transform\",\n `translate(${-iconWidth / 2 - iconX},${topLabel ? bbox.height / 2 + labelPadding / 2 - iconHeight / 2 - iconY : -bbox.height / 2 - labelPadding / 2 - iconHeight / 2 - iconY})`\n );\n iconElem.attr(\"style\", `color: ${stylesMap.get(\"stroke\") ?? nodeBorder};`);\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -outerHeight / 2 : outerHeight / 2 - bbox.height})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n if (!node.label) {\n return intersect_default.rect(node, point);\n }\n const dx = node.x ?? 0;\n const dy = node.y ?? 0;\n const nodeHeight = node.height ?? 0;\n let points = [];\n if (topLabel) {\n points = [\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding }\n ];\n } else {\n points = [\n { x: dx - width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2 / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + height }\n ];\n }\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(iconSquare, \"iconSquare\");\n\n// src/rendering-util/rendering-elements/shapes/imageSquare.ts\nimport rough25 from \"roughjs\";\nasync function imageSquare(parent, node, { config: { flowchart } }) {\n const img = new Image();\n img.src = node?.img ?? \"\";\n await img.decode();\n const imageNaturalWidth = Number(img.naturalWidth.toString().replace(\"px\", \"\"));\n const imageNaturalHeight = Number(img.naturalHeight.toString().replace(\"px\", \"\"));\n node.imageAspectRatio = imageNaturalWidth / imageNaturalHeight;\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const defaultWidth = flowchart?.wrappingWidth;\n node.defaultWidth = flowchart?.wrappingWidth;\n const imageRawWidth = Math.max(\n node.label ? defaultWidth ?? 0 : 0,\n node?.assetWidth ?? imageNaturalWidth\n );\n const imageWidth = node.constraint === \"on\" ? node?.assetHeight ? node.assetHeight * node.imageAspectRatio : imageRawWidth : imageRawWidth;\n const imageHeight = node.constraint === \"on\" ? imageWidth / node.imageAspectRatio : node?.assetHeight ?? imageNaturalHeight;\n node.width = Math.max(imageWidth, defaultWidth ?? 0);\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, \"image-shape default\");\n const topLabel = node.pos === \"t\";\n const x = -imageWidth / 2;\n const y = -imageHeight / 2;\n const labelPadding = node.label ? 8 : 0;\n const rc = rough25.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const imageNode = rc.rectangle(x, y, imageWidth, imageHeight, options);\n const outerWidth = Math.max(imageWidth, bbox.width);\n const outerHeight = imageHeight + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"none\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => imageNode, \":first-child\");\n const outerShape = shapeSvg.insert(() => outerNode);\n if (node.img) {\n const image = shapeSvg.append(\"image\");\n image.attr(\"href\", node.img);\n image.attr(\"width\", imageWidth);\n image.attr(\"height\", imageHeight);\n image.attr(\"preserveAspectRatio\", \"none\");\n image.attr(\n \"transform\",\n `translate(${-imageWidth / 2},${topLabel ? outerHeight / 2 - imageHeight : -outerHeight / 2})`\n );\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -imageHeight / 2 - bbox.height / 2 - labelPadding / 2 : imageHeight / 2 - bbox.height / 2 + labelPadding / 2})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n if (!node.label) {\n return intersect_default.rect(node, point);\n }\n const dx = node.x ?? 0;\n const dy = node.y ?? 0;\n const nodeHeight = node.height ?? 0;\n let points = [];\n if (topLabel) {\n points = [\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + imageWidth / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + imageWidth / 2, y: dy + nodeHeight / 2 },\n { x: dx - imageWidth / 2, y: dy + nodeHeight / 2 },\n { x: dx - imageWidth / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding }\n ];\n } else {\n points = [\n { x: dx - imageWidth / 2, y: dy - nodeHeight / 2 },\n { x: dx + imageWidth / 2, y: dy - nodeHeight / 2 },\n { x: dx + imageWidth / 2, y: dy - nodeHeight / 2 + imageHeight },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + imageHeight },\n { x: dx + bbox.width / 2 / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + imageHeight },\n { x: dx - imageWidth / 2, y: dy - nodeHeight / 2 + imageHeight }\n ];\n }\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(imageSquare, \"imageSquare\");\n\n// src/rendering-util/rendering-elements/shapes/invertedTrapezoid.ts\nimport rough26 from \"roughjs\";\nasync function inv_trapezoid(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w + 3 * h / 6, y: -h },\n { x: -3 * h / 6, y: -h }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough26.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(inv_trapezoid, \"inv_trapezoid\");\n\n// src/rendering-util/rendering-elements/shapes/drawRect.ts\nimport rough27 from \"roughjs\";\nasync function drawRect(parent, node, options) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const totalWidth = Math.max(bbox.width + options.labelPaddingX * 2, node?.width || 0);\n const totalHeight = Math.max(bbox.height + options.labelPaddingY * 2, node?.height || 0);\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n let rect2;\n let { rx, ry } = node;\n const { cssStyles } = node;\n if (options?.rx && options.ry) {\n rx = options.rx;\n ry = options.ry;\n }\n if (node.look === \"handDrawn\") {\n const rc = rough27.svg(shapeSvg);\n const options2 = userNodeOverrides(node, {});\n const roughNode = rx || ry ? rc.path(createRoundedRectPathD(x, y, totalWidth, totalHeight, rx || 0), options2) : rc.rectangle(x, y, totalWidth, totalHeight, options2);\n rect2 = shapeSvg.insert(() => roughNode, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n } else {\n rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles).attr(\"rx\", handleUndefinedAttr(rx)).attr(\"ry\", handleUndefinedAttr(ry)).attr(\"x\", x).attr(\"y\", y).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n }\n updateNodeBounds(node, rect2);\n node.calcIntersect = function(bounds, point) {\n return intersect_default.rect(bounds, point);\n };\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(drawRect, \"drawRect\");\n\n// src/rendering-util/rendering-elements/shapes/labelRect.ts\nasync function labelRect(parent, node) {\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, \"label\");\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const totalWidth = 0.1;\n const totalHeight = 0.1;\n rect2.attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n shapeSvg.attr(\"class\", \"label edgeLabel\");\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(labelRect, \"labelRect\");\n\n// src/rendering-util/rendering-elements/shapes/leanLeft.ts\nimport rough28 from \"roughjs\";\nasync function lean_left(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0), node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0), node?.height ?? 0);\n const points = [\n { x: 0, y: 0 },\n { x: w + 3 * h / 6, y: 0 },\n { x: w, y: -h },\n { x: -(3 * h) / 6, y: -h }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough28.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(lean_left, \"lean_left\");\n\n// src/rendering-util/rendering-elements/shapes/leanRight.ts\nimport rough29 from \"roughjs\";\nasync function lean_right(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0), node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0), node?.height ?? 0);\n const points = [\n { x: -3 * h / 6, y: 0 },\n { x: w, y: 0 },\n { x: w + 3 * h / 6, y: -h },\n { x: 0, y: -h }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough29.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(lean_right, \"lean_right\");\n\n// src/rendering-util/rendering-elements/shapes/lightningBolt.ts\nimport rough30 from \"roughjs\";\nfunction lightningBolt(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.label = \"\";\n node.labelStyle = labelStyles;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const { cssStyles } = node;\n const width = Math.max(35, node?.width ?? 0);\n const height = Math.max(35, node?.height ?? 0);\n const gap = 7;\n const points = [\n { x: width, y: 0 },\n { x: 0, y: height + gap / 2 },\n { x: width - 2 * gap, y: height + gap / 2 },\n { x: 0, y: 2 * height },\n { x: width, y: height - gap / 2 },\n { x: 2 * gap, y: height - gap / 2 }\n ];\n const rc = rough30.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const linePath = createPathFromPoints(points);\n const lineNode = rc.path(linePath, options);\n const lightningBolt2 = shapeSvg.insert(() => lineNode, \":first-child\");\n if (cssStyles && node.look !== \"handDrawn\") {\n lightningBolt2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n lightningBolt2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n lightningBolt2.attr(\"transform\", `translate(-${width / 2},${-height})`);\n updateNodeBounds(node, lightningBolt2);\n node.intersect = function(point) {\n log.info(\"lightningBolt intersect\", node, point);\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(lightningBolt, \"lightningBolt\");\n\n// src/rendering-util/rendering-elements/shapes/linedCylinder.ts\nimport rough31 from \"roughjs\";\nvar createCylinderPathD2 = /* @__PURE__ */ __name((x, y, width, height, rx, ry, outerOffset) => {\n return [\n `M${x},${y + ry}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `a${rx},${ry} 0,0,0 ${-width},0`,\n `l0,${height}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `l0,${-height}`,\n `M${x},${y + ry + outerOffset}`,\n `a${rx},${ry} 0,0,0 ${width},0`\n ].join(\" \");\n}, \"createCylinderPathD\");\nvar createOuterCylinderPathD2 = /* @__PURE__ */ __name((x, y, width, height, rx, ry, outerOffset) => {\n return [\n `M${x},${y + ry}`,\n `M${x + width},${y + ry}`,\n `a${rx},${ry} 0,0,0 ${-width},0`,\n `l0,${height}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `l0,${-height}`,\n `M${x},${y + ry + outerOffset}`,\n `a${rx},${ry} 0,0,0 ${width},0`\n ].join(\" \");\n}, \"createOuterCylinderPathD\");\nvar createInnerCylinderPathD2 = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [`M${x - width / 2},${-height / 2}`, `a${rx},${ry} 0,0,0 ${width},0`].join(\" \");\n}, \"createInnerCylinderPathD\");\nasync function linedCylinder(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0), node.width ?? 0);\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = Math.max(bbox.height + ry + (node.padding ?? 0), node.height ?? 0);\n const outerOffset = h * 0.1;\n let cylinder2;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough31.svg(shapeSvg);\n const outerPathData = createOuterCylinderPathD2(0, 0, w, h, rx, ry, outerOffset);\n const innerPathData = createInnerCylinderPathD2(0, ry, w, h, rx, ry);\n const options = userNodeOverrides(node, {});\n const outerNode = rc.path(outerPathData, options);\n const innerLine = rc.path(innerPathData, options);\n const innerLineEl = shapeSvg.insert(() => innerLine, \":first-child\");\n innerLineEl.attr(\"class\", \"line\");\n cylinder2 = shapeSvg.insert(() => outerNode, \":first-child\");\n cylinder2.attr(\"class\", \"basic label-container\");\n if (cssStyles) {\n cylinder2.attr(\"style\", cssStyles);\n }\n } else {\n const pathData = createCylinderPathD2(0, 0, w, h, rx, ry, outerOffset);\n cylinder2 = shapeSvg.insert(\"path\", \":first-child\").attr(\"d\", pathData).attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles)).attr(\"style\", nodeStyles);\n }\n cylinder2.attr(\"label-offset-y\", ry);\n cylinder2.attr(\"transform\", `translate(${-w / 2}, ${-(h / 2 + ry)})`);\n updateNodeBounds(node, cylinder2);\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + ry - (bbox.y - (bbox.top ?? 0))})`\n );\n node.intersect = function(point) {\n const pos = intersect_default.rect(node, point);\n const x = pos.x - (node.x ?? 0);\n if (rx != 0 && (Math.abs(x) < (node.width ?? 0) / 2 || Math.abs(x) == (node.width ?? 0) / 2 && Math.abs(pos.y - (node.y ?? 0)) > (node.height ?? 0) / 2 - ry)) {\n let y = ry * ry * (1 - x * x / (rx * rx));\n if (y > 0) {\n y = Math.sqrt(y);\n }\n y = ry - y;\n if (point.y - (node.y ?? 0) > 0) {\n y = -y;\n }\n pos.y += y;\n }\n return pos;\n };\n return shapeSvg;\n}\n__name(linedCylinder, \"linedCylinder\");\n\n// src/rendering-util/rendering-elements/shapes/linedWaveEdgedRect.ts\nimport rough32 from \"roughjs\";\nasync function linedWaveEdgedRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const waveAmplitude = h / 4;\n const finalH = h + waveAmplitude;\n const { cssStyles } = node;\n const rc = rough32.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2 - w / 2 * 0.1, y: -finalH / 2 },\n { x: -w / 2 - w / 2 * 0.1, y: finalH / 2 },\n ...generateFullSineWavePoints(\n -w / 2 - w / 2 * 0.1,\n finalH / 2,\n w / 2 + w / 2 * 0.1,\n finalH / 2,\n waveAmplitude,\n 0.8\n ),\n { x: w / 2 + w / 2 * 0.1, y: -finalH / 2 },\n { x: -w / 2 - w / 2 * 0.1, y: -finalH / 2 },\n { x: -w / 2, y: -finalH / 2 },\n { x: -w / 2, y: finalH / 2 * 1.1 },\n { x: -w / 2, y: -finalH / 2 }\n ];\n const poly = rc.polygon(\n points.map((p) => [p.x, p.y]),\n options\n );\n const waveEdgeRect = shapeSvg.insert(() => poly, \":first-child\");\n waveEdgeRect.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n waveEdgeRect.attr(\"transform\", `translate(0,${-waveAmplitude / 2})`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) + w / 2 * 0.1 / 2 - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) - waveAmplitude / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, waveEdgeRect);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(linedWaveEdgedRect, \"linedWaveEdgedRect\");\n\n// src/rendering-util/rendering-elements/shapes/multiRect.ts\nimport rough33 from \"roughjs\";\nasync function multiRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const rectOffset = 5;\n const x = -w / 2;\n const y = -h / 2;\n const { cssStyles } = node;\n const rc = rough33.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const outerPathPoints = [\n { x: x - rectOffset, y: y + rectOffset },\n { x: x - rectOffset, y: y + h + rectOffset },\n { x: x + w - rectOffset, y: y + h + rectOffset },\n { x: x + w - rectOffset, y: y + h },\n { x: x + w, y: y + h },\n { x: x + w, y: y + h - rectOffset },\n { x: x + w + rectOffset, y: y + h - rectOffset },\n { x: x + w + rectOffset, y: y - rectOffset },\n { x: x + rectOffset, y: y - rectOffset },\n { x: x + rectOffset, y },\n { x, y },\n { x, y: y + rectOffset }\n ];\n const innerPathPoints = [\n { x, y: y + rectOffset },\n { x: x + w - rectOffset, y: y + rectOffset },\n { x: x + w - rectOffset, y: y + h },\n { x: x + w, y: y + h },\n { x: x + w, y },\n { x, y }\n ];\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const outerPath = createPathFromPoints(outerPathPoints);\n const outerNode = rc.path(outerPath, options);\n const innerPath = createPathFromPoints(innerPathPoints);\n const innerNode = rc.path(innerPath, { ...options, fill: \"none\" });\n const multiRect2 = shapeSvg.insert(() => innerNode, \":first-child\");\n multiRect2.insert(() => outerNode, \":first-child\");\n multiRect2.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n multiRect2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n multiRect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - rectOffset - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + rectOffset - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, multiRect2);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, outerPathPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(multiRect, \"multiRect\");\n\n// src/rendering-util/rendering-elements/shapes/multiWaveEdgedRectangle.ts\nimport rough34 from \"roughjs\";\nasync function multiWaveEdgedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const waveAmplitude = h / 4;\n const finalH = h + waveAmplitude;\n const x = -w / 2;\n const y = -finalH / 2;\n const rectOffset = 5;\n const { cssStyles } = node;\n const wavePoints = generateFullSineWavePoints(\n x - rectOffset,\n y + finalH + rectOffset,\n x + w - rectOffset,\n y + finalH + rectOffset,\n waveAmplitude,\n 0.8\n );\n const lastWavePoint = wavePoints?.[wavePoints.length - 1];\n const outerPathPoints = [\n { x: x - rectOffset, y: y + rectOffset },\n { x: x - rectOffset, y: y + finalH + rectOffset },\n ...wavePoints,\n { x: x + w - rectOffset, y: lastWavePoint.y - rectOffset },\n { x: x + w, y: lastWavePoint.y - rectOffset },\n { x: x + w, y: lastWavePoint.y - 2 * rectOffset },\n { x: x + w + rectOffset, y: lastWavePoint.y - 2 * rectOffset },\n { x: x + w + rectOffset, y: y - rectOffset },\n { x: x + rectOffset, y: y - rectOffset },\n { x: x + rectOffset, y },\n { x, y },\n { x, y: y + rectOffset }\n ];\n const innerPathPoints = [\n { x, y: y + rectOffset },\n { x: x + w - rectOffset, y: y + rectOffset },\n { x: x + w - rectOffset, y: lastWavePoint.y - rectOffset },\n { x: x + w, y: lastWavePoint.y - rectOffset },\n { x: x + w, y },\n { x, y }\n ];\n const rc = rough34.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const outerPath = createPathFromPoints(outerPathPoints);\n const outerNode = rc.path(outerPath, options);\n const innerPath = createPathFromPoints(innerPathPoints);\n const innerNode = rc.path(innerPath, options);\n const shape = shapeSvg.insert(() => outerNode, \":first-child\");\n shape.insert(() => innerNode);\n shape.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n shape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n shape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n shape.attr(\"transform\", `translate(0,${-waveAmplitude / 2})`);\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - rectOffset - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + rectOffset - waveAmplitude / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, shape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, outerPathPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(multiWaveEdgedRectangle, \"multiWaveEdgedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/note.ts\nimport rough35 from \"roughjs\";\nasync function note(parent, node, { config: { themeVariables } }) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const useHtmlLabels = node.useHtmlLabels || getConfig().flowchart?.htmlLabels !== false;\n if (!useHtmlLabels) {\n node.centerLabel = true;\n }\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const totalWidth = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const totalHeight = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n const { cssStyles } = node;\n const rc = rough35.svg(shapeSvg);\n const options = userNodeOverrides(node, {\n fill: themeVariables.noteBkgColor,\n stroke: themeVariables.noteBorderColor\n });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const noteShapeNode = rc.rectangle(x, y, totalWidth, totalHeight, options);\n const rect2 = shapeSvg.insert(() => noteShapeNode, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n rect2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n rect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(note, \"note\");\n\n// src/rendering-util/rendering-elements/shapes/question.ts\nimport rough36 from \"roughjs\";\nvar createDecisionBoxPathD = /* @__PURE__ */ __name((x, y, size) => {\n return [\n `M${x + size / 2},${y}`,\n `L${x + size},${y - size / 2}`,\n `L${x + size / 2},${y - size}`,\n `L${x},${y - size / 2}`,\n \"Z\"\n ].join(\" \");\n}, \"createDecisionBoxPathD\");\nasync function question(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const s = w + h;\n const adjustment = 0.5;\n const points = [\n { x: s / 2, y: 0 },\n { x: s, y: -s / 2 },\n { x: s / 2, y: -s },\n { x: 0, y: -s / 2 }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough36.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createDecisionBoxPathD(0, 0, s);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-s / 2 + adjustment}, ${s / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, s, s, points);\n polygon.attr(\"transform\", `translate(${-s / 2 + adjustment}, ${s / 2})`);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.calcIntersect = function(bounds, point) {\n const s2 = bounds.width;\n const points2 = [\n { x: s2 / 2, y: 0 },\n { x: s2, y: -s2 / 2 },\n { x: s2 / 2, y: -s2 },\n { x: 0, y: -s2 / 2 }\n ];\n const res = intersect_default.polygon(bounds, points2, point);\n return { x: res.x - 0.5, y: res.y - 0.5 };\n };\n node.intersect = function(point) {\n return this.calcIntersect(node, point);\n };\n return shapeSvg;\n}\n__name(question, \"question\");\n\n// src/rendering-util/rendering-elements/shapes/rectLeftInvArrow.ts\nimport rough37 from \"roughjs\";\nasync function rect_left_inv_arrow(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0), node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0), node?.height ?? 0);\n const x = -w / 2;\n const y = -h / 2;\n const notch = y / 2;\n const points = [\n { x: x + notch, y },\n { x, y: 0 },\n { x: x + notch, y: -y },\n { x: -x, y: -y },\n { x: -x, y }\n ];\n const { cssStyles } = node;\n const rc = rough37.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => roughNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n polygon.attr(\"transform\", `translate(${-notch / 2},0)`);\n label.attr(\n \"transform\",\n `translate(${-notch / 2 - bbox.width / 2 - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(rect_left_inv_arrow, \"rect_left_inv_arrow\");\n\n// src/rendering-util/rendering-elements/shapes/rectWithTitle.ts\nimport { select as select4 } from \"d3\";\nimport rough38 from \"roughjs\";\nasync function rectWithTitle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n let classes;\n if (!node.cssClasses) {\n classes = \"node default\";\n } else {\n classes = \"node \" + node.cssClasses;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes).attr(\"id\", node.domId || node.id);\n const g = shapeSvg.insert(\"g\");\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", nodeStyles);\n const description = node.description;\n const title = node.label;\n const text2 = label.node().appendChild(await createLabel_default(title, node.labelStyle, true, true));\n let bbox = { width: 0, height: 0 };\n if (evaluate(getConfig2()?.flowchart?.htmlLabels)) {\n const div2 = text2.children[0];\n const dv2 = select4(text2);\n bbox = div2.getBoundingClientRect();\n dv2.attr(\"width\", bbox.width);\n dv2.attr(\"height\", bbox.height);\n }\n log.info(\"Text 2\", description);\n const textRows = description || [];\n const titleBox = text2.getBBox();\n const descr = label.node().appendChild(\n await createLabel_default(\n textRows.join ? textRows.join(\"<br/>\") : textRows,\n node.labelStyle,\n true,\n true\n )\n );\n const div = descr.children[0];\n const dv = select4(descr);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n const halfPadding = (node.padding || 0) / 2;\n select4(descr).attr(\n \"transform\",\n \"translate( \" + (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + \", \" + (titleBox.height + halfPadding + 5) + \")\"\n );\n select4(text2).attr(\n \"transform\",\n \"translate( \" + (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + \", 0)\"\n );\n bbox = label.node().getBBox();\n label.attr(\n \"transform\",\n \"translate(\" + -bbox.width / 2 + \", \" + (-bbox.height / 2 - halfPadding + 3) + \")\"\n );\n const totalWidth = bbox.width + (node.padding || 0);\n const totalHeight = bbox.height + (node.padding || 0);\n const x = -bbox.width / 2 - halfPadding;\n const y = -bbox.height / 2 - halfPadding;\n let rect2;\n let innerLine;\n if (node.look === \"handDrawn\") {\n const rc = rough38.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const roughNode = rc.path(\n createRoundedRectPathD(x, y, totalWidth, totalHeight, node.rx || 0),\n options\n );\n const roughLine = rc.line(\n -bbox.width / 2 - halfPadding,\n -bbox.height / 2 - halfPadding + titleBox.height + halfPadding,\n bbox.width / 2 + halfPadding,\n -bbox.height / 2 - halfPadding + titleBox.height + halfPadding,\n options\n );\n innerLine = shapeSvg.insert(() => {\n log.debug(\"Rough node insert CXC\", roughNode);\n return roughLine;\n }, \":first-child\");\n rect2 = shapeSvg.insert(() => {\n log.debug(\"Rough node insert CXC\", roughNode);\n return roughNode;\n }, \":first-child\");\n } else {\n rect2 = g.insert(\"rect\", \":first-child\");\n innerLine = g.insert(\"line\");\n rect2.attr(\"class\", \"outer title-state\").attr(\"style\", nodeStyles).attr(\"x\", -bbox.width / 2 - halfPadding).attr(\"y\", -bbox.height / 2 - halfPadding).attr(\"width\", bbox.width + (node.padding || 0)).attr(\"height\", bbox.height + (node.padding || 0));\n innerLine.attr(\"class\", \"divider\").attr(\"x1\", -bbox.width / 2 - halfPadding).attr(\"x2\", bbox.width / 2 + halfPadding).attr(\"y1\", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding).attr(\"y2\", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(rectWithTitle, \"rectWithTitle\");\n\n// src/rendering-util/rendering-elements/shapes/roundedRect.ts\nimport rough39 from \"roughjs\";\nfunction generateArcPoints2(x1, y1, x2, y2, rx, ry, clockwise) {\n const numPoints = 20;\n const midX = (x1 + x2) / 2;\n const midY = (y1 + y2) / 2;\n const angle = Math.atan2(y2 - y1, x2 - x1);\n const dx = (x2 - x1) / 2;\n const dy = (y2 - y1) / 2;\n const transformedX = dx / rx;\n const transformedY = dy / ry;\n const distance = Math.sqrt(transformedX ** 2 + transformedY ** 2);\n if (distance > 1) {\n throw new Error(\"The given radii are too small to create an arc between the points.\");\n }\n const scaledCenterDistance = Math.sqrt(1 - distance ** 2);\n const centerX = midX + scaledCenterDistance * ry * Math.sin(angle) * (clockwise ? -1 : 1);\n const centerY = midY - scaledCenterDistance * rx * Math.cos(angle) * (clockwise ? -1 : 1);\n const startAngle = Math.atan2((y1 - centerY) / ry, (x1 - centerX) / rx);\n const endAngle = Math.atan2((y2 - centerY) / ry, (x2 - centerX) / rx);\n let angleRange = endAngle - startAngle;\n if (clockwise && angleRange < 0) {\n angleRange += 2 * Math.PI;\n }\n if (!clockwise && angleRange > 0) {\n angleRange -= 2 * Math.PI;\n }\n const points = [];\n for (let i = 0; i < numPoints; i++) {\n const t = i / (numPoints - 1);\n const angle2 = startAngle + t * angleRange;\n const x = centerX + rx * Math.cos(angle2);\n const y = centerY + ry * Math.sin(angle2);\n points.push({ x, y });\n }\n return points;\n}\n__name(generateArcPoints2, \"generateArcPoints\");\nasync function roundedRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const labelPaddingX = node?.padding ?? 0;\n const labelPaddingY = node?.padding ?? 0;\n const w = (node?.width ? node?.width : bbox.width) + labelPaddingX * 2;\n const h = (node?.height ? node?.height : bbox.height) + labelPaddingY * 2;\n const radius = node.radius || 5;\n const taper = node.taper || 5;\n const { cssStyles } = node;\n const rc = rough39.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.stroke) {\n options.stroke = node.stroke;\n }\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n // Top edge (left to right)\n { x: -w / 2 + taper, y: -h / 2 },\n // Top-left corner start (1)\n { x: w / 2 - taper, y: -h / 2 },\n // Top-right corner start (2)\n ...generateArcPoints2(w / 2 - taper, -h / 2, w / 2, -h / 2 + taper, radius, radius, true),\n // Top-left arc (2 to 3)\n // Right edge (top to bottom)\n { x: w / 2, y: -h / 2 + taper },\n // Top-right taper point (3)\n { x: w / 2, y: h / 2 - taper },\n // Bottom-right taper point (4)\n ...generateArcPoints2(w / 2, h / 2 - taper, w / 2 - taper, h / 2, radius, radius, true),\n // Top-left arc (4 to 5)\n // Bottom edge (right to left)\n { x: w / 2 - taper, y: h / 2 },\n // Bottom-right corner start (5)\n { x: -w / 2 + taper, y: h / 2 },\n // Bottom-left corner start (6)\n ...generateArcPoints2(-w / 2 + taper, h / 2, -w / 2, h / 2 - taper, radius, radius, true),\n // Top-left arc (4 to 5)\n // Left edge (bottom to top)\n { x: -w / 2, y: h / 2 - taper },\n // Bottom-left taper point (7)\n { x: -w / 2, y: -h / 2 + taper },\n // Top-left taper point (8)\n ...generateArcPoints2(-w / 2, -h / 2 + taper, -w / 2 + taper, -h / 2, radius, radius, true)\n // Top-left arc (4 to 5)\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container outer-path\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(roundedRect, \"roundedRect\");\n\n// src/rendering-util/rendering-elements/shapes/shadedProcess.ts\nimport rough40 from \"roughjs\";\nasync function shadedProcess(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const halfPadding = node?.padding ?? 0;\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const x = -bbox.width / 2 - halfPadding;\n const y = -bbox.height / 2 - halfPadding;\n const { cssStyles } = node;\n const rc = rough40.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x, y },\n { x: x + w + 8, y },\n { x: x + w + 8, y: y + h },\n { x: x - 8, y: y + h },\n { x: x - 8, y },\n { x, y },\n { x, y: y + h }\n ];\n const roughNode = rc.polygon(\n points.map((p) => [p.x, p.y]),\n options\n );\n const rect2 = shapeSvg.insert(() => roughNode, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n if (nodeStyles && node.look !== \"handDrawn\") {\n rect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n if (cssStyles && node.look !== \"handDrawn\") {\n rect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${-w / 2 + 4 + (node.padding ?? 0) - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(shadedProcess, \"shadedProcess\");\n\n// src/rendering-util/rendering-elements/shapes/slopedRect.ts\nimport rough41 from \"roughjs\";\nasync function slopedRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const x = -w / 2;\n const y = -h / 2;\n const { cssStyles } = node;\n const rc = rough41.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x, y },\n { x, y: y + h },\n { x: x + w, y: y + h },\n { x: x + w, y: y - h / 2 }\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n polygon.attr(\"transform\", `translate(0, ${h / 4})`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) - (bbox.x - (bbox.left ?? 0))}, ${-h / 4 + (node.padding ?? 0) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(slopedRect, \"slopedRect\");\n\n// src/rendering-util/rendering-elements/shapes/squareRect.ts\nasync function squareRect2(parent, node) {\n const options = {\n rx: 0,\n ry: 0,\n classes: \"\",\n labelPaddingX: node.labelPaddingX ?? (node?.padding || 0) * 2,\n labelPaddingY: (node?.padding || 0) * 1\n };\n return drawRect(parent, node, options);\n}\n__name(squareRect2, \"squareRect\");\n\n// src/rendering-util/rendering-elements/shapes/stadium.ts\nimport rough42 from \"roughjs\";\nasync function stadium(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const h = bbox.height + node.padding;\n const w = bbox.width + h / 4 + node.padding;\n const radius = h / 2;\n const { cssStyles } = node;\n const rc = rough42.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2 + radius, y: -h / 2 },\n { x: w / 2 - radius, y: -h / 2 },\n ...generateCirclePoints(-w / 2 + radius, 0, radius, 50, 90, 270),\n { x: w / 2 - radius, y: h / 2 },\n ...generateCirclePoints(w / 2 - radius, 0, radius, 50, 270, 450)\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container outer-path\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(stadium, \"stadium\");\n\n// src/rendering-util/rendering-elements/shapes/state.ts\nasync function state(parent, node) {\n const options = {\n rx: 5,\n ry: 5,\n classes: \"flowchart-node\"\n };\n return drawRect(parent, node, options);\n}\n__name(state, \"state\");\n\n// src/rendering-util/rendering-elements/shapes/stateEnd.ts\nimport rough43 from \"roughjs\";\nfunction stateEnd(parent, node, { config: { themeVariables } }) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { cssStyles } = node;\n const { lineColor, stateBorder, nodeBorder } = themeVariables;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n const rc = rough43.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const roughNode = rc.circle(0, 0, 14, {\n ...options,\n stroke: lineColor,\n strokeWidth: 2\n });\n const innerFill = stateBorder ?? nodeBorder;\n const roughInnerNode = rc.circle(0, 0, 5, {\n ...options,\n fill: innerFill,\n stroke: innerFill,\n strokeWidth: 2,\n fillStyle: \"solid\"\n });\n const circle2 = shapeSvg.insert(() => roughNode, \":first-child\");\n circle2.insert(() => roughInnerNode);\n if (cssStyles) {\n circle2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles) {\n circle2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, circle2);\n node.intersect = function(point) {\n return intersect_default.circle(node, 7, point);\n };\n return shapeSvg;\n}\n__name(stateEnd, \"stateEnd\");\n\n// src/rendering-util/rendering-elements/shapes/stateStart.ts\nimport rough44 from \"roughjs\";\nfunction stateStart(parent, node, { config: { themeVariables } }) {\n const { lineColor } = themeVariables;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n let circle2;\n if (node.look === \"handDrawn\") {\n const rc = rough44.svg(shapeSvg);\n const roughNode = rc.circle(0, 0, 14, solidStateFill(lineColor));\n circle2 = shapeSvg.insert(() => roughNode);\n circle2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 14).attr(\"height\", 14);\n } else {\n circle2 = shapeSvg.insert(\"circle\", \":first-child\");\n circle2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 14).attr(\"height\", 14);\n }\n updateNodeBounds(node, circle2);\n node.intersect = function(point) {\n return intersect_default.circle(node, 7, point);\n };\n return shapeSvg;\n}\n__name(stateStart, \"stateStart\");\n\n// src/rendering-util/rendering-elements/shapes/subroutine.ts\nimport rough45 from \"roughjs\";\nasync function subroutine(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const halfPadding = (node?.padding || 0) / 2;\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const x = -bbox.width / 2 - halfPadding;\n const y = -bbox.height / 2 - halfPadding;\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h },\n { x: 0, y: 0 },\n { x: -8, y: 0 },\n { x: w + 8, y: 0 },\n { x: w + 8, y: -h },\n { x: -8, y: -h },\n { x: -8, y: 0 }\n ];\n if (node.look === \"handDrawn\") {\n const rc = rough45.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const roughNode = rc.rectangle(x - 8, y, w + 16, h, options);\n const l1 = rc.line(x, y, x, y + h, options);\n const l2 = rc.line(x + w, y, x + w, y + h, options);\n shapeSvg.insert(() => l1, \":first-child\");\n shapeSvg.insert(() => l2, \":first-child\");\n const rect2 = shapeSvg.insert(() => roughNode, \":first-child\");\n const { cssStyles } = node;\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n updateNodeBounds(node, rect2);\n } else {\n const el = insertPolygonShape(shapeSvg, w, h, points);\n if (nodeStyles) {\n el.attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, el);\n }\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(subroutine, \"subroutine\");\n\n// src/rendering-util/rendering-elements/shapes/taggedRect.ts\nimport rough46 from \"roughjs\";\nasync function taggedRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const x = -w / 2;\n const y = -h / 2;\n const tagWidth = 0.2 * h;\n const tagHeight = 0.2 * h;\n const { cssStyles } = node;\n const rc = rough46.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const rectPoints = [\n { x: x - tagWidth / 2, y },\n { x: x + w + tagWidth / 2, y },\n { x: x + w + tagWidth / 2, y: y + h },\n { x: x - tagWidth / 2, y: y + h }\n ];\n const tagPoints = [\n { x: x + w - tagWidth / 2, y: y + h },\n { x: x + w + tagWidth / 2, y: y + h },\n { x: x + w + tagWidth / 2, y: y + h - tagHeight }\n ];\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const rectPath = createPathFromPoints(rectPoints);\n const rectNode = rc.path(rectPath, options);\n const tagPath = createPathFromPoints(tagPoints);\n const tagNode = rc.path(tagPath, { ...options, fillStyle: \"solid\" });\n const taggedRect2 = shapeSvg.insert(() => tagNode, \":first-child\");\n taggedRect2.insert(() => rectNode, \":first-child\");\n taggedRect2.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n taggedRect2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n taggedRect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, taggedRect2);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, rectPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(taggedRect, \"taggedRect\");\n\n// src/rendering-util/rendering-elements/shapes/taggedWaveEdgedRectangle.ts\nimport rough47 from \"roughjs\";\nasync function taggedWaveEdgedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const waveAmplitude = h / 4;\n const tagWidth = 0.2 * w;\n const tagHeight = 0.2 * h;\n const finalH = h + waveAmplitude;\n const { cssStyles } = node;\n const rc = rough47.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2 - w / 2 * 0.1, y: finalH / 2 },\n ...generateFullSineWavePoints(\n -w / 2 - w / 2 * 0.1,\n finalH / 2,\n w / 2 + w / 2 * 0.1,\n finalH / 2,\n waveAmplitude,\n 0.8\n ),\n { x: w / 2 + w / 2 * 0.1, y: -finalH / 2 },\n { x: -w / 2 - w / 2 * 0.1, y: -finalH / 2 }\n ];\n const x = -w / 2 + w / 2 * 0.1;\n const y = -finalH / 2 - tagHeight * 0.4;\n const tagPoints = [\n { x: x + w - tagWidth, y: (y + h) * 1.4 },\n { x: x + w, y: y + h - tagHeight },\n { x: x + w, y: (y + h) * 0.9 },\n ...generateFullSineWavePoints(\n x + w,\n (y + h) * 1.3,\n x + w - tagWidth,\n (y + h) * 1.5,\n -h * 0.03,\n 0.5\n )\n ];\n const waveEdgeRectPath = createPathFromPoints(points);\n const waveEdgeRectNode = rc.path(waveEdgeRectPath, options);\n const taggedWaveEdgeRectPath = createPathFromPoints(tagPoints);\n const taggedWaveEdgeRectNode = rc.path(taggedWaveEdgeRectPath, {\n ...options,\n fillStyle: \"solid\"\n });\n const waveEdgeRect = shapeSvg.insert(() => taggedWaveEdgeRectNode, \":first-child\");\n waveEdgeRect.insert(() => waveEdgeRectNode, \":first-child\");\n waveEdgeRect.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n waveEdgeRect.attr(\"transform\", `translate(0,${-waveAmplitude / 2})`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) - waveAmplitude / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, waveEdgeRect);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(taggedWaveEdgedRectangle, \"taggedWaveEdgedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/text.ts\nasync function text(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const totalWidth = Math.max(bbox.width + node.padding, node?.width || 0);\n const totalHeight = Math.max(bbox.height + node.padding, node?.height || 0);\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"class\", \"text\").attr(\"style\", nodeStyles).attr(\"rx\", 0).attr(\"ry\", 0).attr(\"x\", x).attr(\"y\", y).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(text, \"text\");\n\n// src/rendering-util/rendering-elements/shapes/tiltedCylinder.ts\nimport rough48 from \"roughjs\";\nvar createCylinderPathD3 = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return `M${x},${y}\n a${rx},${ry} 0,0,1 ${0},${-height}\n l${width},${0}\n a${rx},${ry} 0,0,1 ${0},${height}\n M${width},${-height}\n a${rx},${ry} 0,0,0 ${0},${height}\n l${-width},${0}`;\n}, \"createCylinderPathD\");\nvar createOuterCylinderPathD3 = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [\n `M${x},${y}`,\n `M${x + width},${y}`,\n `a${rx},${ry} 0,0,0 ${0},${-height}`,\n `l${-width},0`,\n `a${rx},${ry} 0,0,0 ${0},${height}`,\n `l${width},0`\n ].join(\" \");\n}, \"createOuterCylinderPathD\");\nvar createInnerCylinderPathD3 = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [`M${x + width / 2},${-height / 2}`, `a${rx},${ry} 0,0,0 0,${height}`].join(\" \");\n}, \"createInnerCylinderPathD\");\nasync function tiltedCylinder(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label, halfPadding } = await labelHelper(\n parent,\n node,\n getNodeClasses(node)\n );\n const labelPadding = node.look === \"neo\" ? halfPadding * 2 : halfPadding;\n const h = bbox.height + labelPadding;\n const ry = h / 2;\n const rx = ry / (2.5 + h / 50);\n const w = bbox.width + rx + labelPadding;\n const { cssStyles } = node;\n let cylinder2;\n if (node.look === \"handDrawn\") {\n const rc = rough48.svg(shapeSvg);\n const outerPathData = createOuterCylinderPathD3(0, 0, w, h, rx, ry);\n const innerPathData = createInnerCylinderPathD3(0, 0, w, h, rx, ry);\n const outerNode = rc.path(outerPathData, userNodeOverrides(node, {}));\n const innerLine = rc.path(innerPathData, userNodeOverrides(node, { fill: \"none\" }));\n cylinder2 = shapeSvg.insert(() => innerLine, \":first-child\");\n cylinder2 = shapeSvg.insert(() => outerNode, \":first-child\");\n cylinder2.attr(\"class\", \"basic label-container\");\n if (cssStyles) {\n cylinder2.attr(\"style\", cssStyles);\n }\n } else {\n const pathData = createCylinderPathD3(0, 0, w, h, rx, ry);\n cylinder2 = shapeSvg.insert(\"path\", \":first-child\").attr(\"d\", pathData).attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles)).attr(\"style\", nodeStyles);\n cylinder2.attr(\"class\", \"basic label-container\");\n if (cssStyles) {\n cylinder2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles) {\n cylinder2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n }\n cylinder2.attr(\"label-offset-x\", rx);\n cylinder2.attr(\"transform\", `translate(${-w / 2}, ${h / 2} )`);\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - rx - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, cylinder2);\n node.intersect = function(point) {\n const pos = intersect_default.rect(node, point);\n const y = pos.y - (node.y ?? 0);\n if (ry != 0 && (Math.abs(y) < (node.height ?? 0) / 2 || Math.abs(y) == (node.height ?? 0) / 2 && Math.abs(pos.x - (node.x ?? 0)) > (node.width ?? 0) / 2 - rx)) {\n let x = rx * rx * (1 - y * y / (ry * ry));\n if (x != 0) {\n x = Math.sqrt(Math.abs(x));\n }\n x = rx - x;\n if (point.x - (node.x ?? 0) > 0) {\n x = -x;\n }\n pos.x += x;\n }\n return pos;\n };\n return shapeSvg;\n}\n__name(tiltedCylinder, \"tiltedCylinder\");\n\n// src/rendering-util/rendering-elements/shapes/trapezoid.ts\nimport rough49 from \"roughjs\";\nasync function trapezoid(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -3 * h / 6, y: 0 },\n { x: w + 3 * h / 6, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough49.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(trapezoid, \"trapezoid\");\n\n// src/rendering-util/rendering-elements/shapes/trapezoidalPentagon.ts\nimport rough50 from \"roughjs\";\nasync function trapezoidalPentagon(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const minWidth = 60, minHeight = 20;\n const w = Math.max(minWidth, bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(minHeight, bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const { cssStyles } = node;\n const rc = rough50.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2 * 0.8, y: -h / 2 },\n { x: w / 2 * 0.8, y: -h / 2 },\n { x: w / 2, y: -h / 2 * 0.6 },\n { x: w / 2, y: h / 2 },\n { x: -w / 2, y: h / 2 },\n { x: -w / 2, y: -h / 2 * 0.6 }\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(trapezoidalPentagon, \"trapezoidalPentagon\");\n\n// src/rendering-util/rendering-elements/shapes/triangle.ts\nimport rough51 from \"roughjs\";\nasync function triangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const useHtmlLabels = evaluate(getConfig2().flowchart?.htmlLabels);\n const w = bbox.width + (node.padding ?? 0);\n const h = w + bbox.height;\n const tw = w + bbox.height;\n const points = [\n { x: 0, y: 0 },\n { x: tw, y: 0 },\n { x: tw / 2, y: -h }\n ];\n const { cssStyles } = node;\n const rc = rough51.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-h / 2}, ${h / 2})`);\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))}, ${h / 2 - (bbox.height + (node.padding ?? 0) / (useHtmlLabels ? 2 : 1) - (bbox.y - (bbox.top ?? 0)))})`\n );\n node.intersect = function(point) {\n log.info(\"Triangle intersect\", node, points, point);\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(triangle, \"triangle\");\n\n// src/rendering-util/rendering-elements/shapes/waveEdgedRectangle.ts\nimport rough52 from \"roughjs\";\nasync function waveEdgedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const waveAmplitude = h / 8;\n const finalH = h + waveAmplitude;\n const { cssStyles } = node;\n const minWidth = 70;\n const widthDif = minWidth - w;\n const extraW = widthDif > 0 ? widthDif / 2 : 0;\n const rc = rough52.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2 - extraW, y: finalH / 2 },\n ...generateFullSineWavePoints(\n -w / 2 - extraW,\n finalH / 2,\n w / 2 + extraW,\n finalH / 2,\n waveAmplitude,\n 0.8\n ),\n { x: w / 2 + extraW, y: -finalH / 2 },\n { x: -w / 2 - extraW, y: -finalH / 2 }\n ];\n const waveEdgeRectPath = createPathFromPoints(points);\n const waveEdgeRectNode = rc.path(waveEdgeRectPath, options);\n const waveEdgeRect = shapeSvg.insert(() => waveEdgeRectNode, \":first-child\");\n waveEdgeRect.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n waveEdgeRect.attr(\"transform\", `translate(0,${-waveAmplitude / 2})`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) - waveAmplitude - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, waveEdgeRect);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(waveEdgedRectangle, \"waveEdgedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/waveRectangle.ts\nimport rough53 from \"roughjs\";\nasync function waveRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const minWidth = 100;\n const minHeight = 50;\n const baseWidth = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const baseHeight = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const aspectRatio = baseWidth / baseHeight;\n let w = baseWidth;\n let h = baseHeight;\n if (w > h * aspectRatio) {\n h = w / aspectRatio;\n } else {\n w = h * aspectRatio;\n }\n w = Math.max(w, minWidth);\n h = Math.max(h, minHeight);\n const waveAmplitude = Math.min(h * 0.2, h / 4);\n const finalH = h + waveAmplitude * 2;\n const { cssStyles } = node;\n const rc = rough53.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2, y: finalH / 2 },\n ...generateFullSineWavePoints(-w / 2, finalH / 2, w / 2, finalH / 2, waveAmplitude, 1),\n { x: w / 2, y: -finalH / 2 },\n ...generateFullSineWavePoints(w / 2, -finalH / 2, -w / 2, -finalH / 2, waveAmplitude, -1)\n ];\n const waveRectPath = createPathFromPoints(points);\n const waveRectNode = rc.path(waveRectPath, options);\n const waveRect = shapeSvg.insert(() => waveRectNode, \":first-child\");\n waveRect.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n waveRect.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n waveRect.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, waveRect);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(waveRectangle, \"waveRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/windowPane.ts\nimport rough54 from \"roughjs\";\nasync function windowPane(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const rectOffset = 5;\n const x = -w / 2;\n const y = -h / 2;\n const { cssStyles } = node;\n const rc = rough54.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const outerPathPoints = [\n { x: x - rectOffset, y: y - rectOffset },\n { x: x - rectOffset, y: y + h },\n { x: x + w, y: y + h },\n { x: x + w, y: y - rectOffset }\n ];\n const path = `M${x - rectOffset},${y - rectOffset} L${x + w},${y - rectOffset} L${x + w},${y + h} L${x - rectOffset},${y + h} L${x - rectOffset},${y - rectOffset}\n M${x - rectOffset},${y} L${x + w},${y}\n M${x},${y - rectOffset} L${x},${y + h}`;\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const no = rc.path(path, options);\n const windowPane2 = shapeSvg.insert(() => no, \":first-child\");\n windowPane2.attr(\"transform\", `translate(${rectOffset / 2}, ${rectOffset / 2})`);\n windowPane2.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n windowPane2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n windowPane2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) + rectOffset / 2 - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + rectOffset / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, windowPane2);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, outerPathPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(windowPane, \"windowPane\");\n\n// src/rendering-util/rendering-elements/shapes/erBox.ts\nimport rough55 from \"roughjs\";\nimport { select as select5 } from \"d3\";\nasync function erBox(parent, node) {\n const entityNode = node;\n if (entityNode.alias) {\n node.label = entityNode.alias;\n }\n if (node.look === \"handDrawn\") {\n const { themeVariables: themeVariables2 } = getConfig();\n const { background } = themeVariables2;\n const backgroundNode = {\n ...node,\n id: node.id + \"-background\",\n look: \"default\",\n cssStyles: [\"stroke: none\", `fill: ${background}`]\n };\n await erBox(parent, backgroundNode);\n }\n const config = getConfig();\n node.useHtmlLabels = config.htmlLabels;\n let PADDING = config.er?.diagramPadding ?? 10;\n let TEXT_PADDING = config.er?.entityPadding ?? 6;\n const { cssStyles } = node;\n const { labelStyles, nodeStyles } = styles2String(node);\n if (entityNode.attributes.length === 0 && node.label) {\n const options2 = {\n rx: 0,\n ry: 0,\n labelPaddingX: PADDING,\n labelPaddingY: PADDING * 1.5,\n classes: \"\"\n };\n if (calculateTextWidth(node.label, config) + options2.labelPaddingX * 2 < config.er.minEntityWidth) {\n node.width = config.er.minEntityWidth;\n }\n const shapeSvg2 = await drawRect(parent, node, options2);\n if (!evaluate(config.htmlLabels)) {\n const textElement = shapeSvg2.select(\"text\");\n const bbox = textElement.node()?.getBBox();\n textElement.attr(\"transform\", `translate(${-bbox.width / 2}, 0)`);\n }\n return shapeSvg2;\n }\n if (!config.htmlLabels) {\n PADDING *= 1.25;\n TEXT_PADDING *= 1.25;\n }\n let cssClasses = getNodeClasses(node);\n if (!cssClasses) {\n cssClasses = \"node default\";\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", cssClasses).attr(\"id\", node.domId || node.id);\n const nameBBox = await addText(shapeSvg, node.label ?? \"\", config, 0, 0, [\"name\"], labelStyles);\n nameBBox.height += TEXT_PADDING;\n let yOffset = 0;\n const yOffsets = [];\n const rows = [];\n let maxTypeWidth = 0;\n let maxNameWidth = 0;\n let maxKeysWidth = 0;\n let maxCommentWidth = 0;\n let keysPresent = true;\n let commentPresent = true;\n for (const attribute of entityNode.attributes) {\n const typeBBox = await addText(\n shapeSvg,\n attribute.type,\n config,\n 0,\n yOffset,\n [\"attribute-type\"],\n labelStyles\n );\n maxTypeWidth = Math.max(maxTypeWidth, typeBBox.width + PADDING);\n const nameBBox2 = await addText(\n shapeSvg,\n attribute.name,\n config,\n 0,\n yOffset,\n [\"attribute-name\"],\n labelStyles\n );\n maxNameWidth = Math.max(maxNameWidth, nameBBox2.width + PADDING);\n const keysBBox = await addText(\n shapeSvg,\n attribute.keys.join(),\n config,\n 0,\n yOffset,\n [\"attribute-keys\"],\n labelStyles\n );\n maxKeysWidth = Math.max(maxKeysWidth, keysBBox.width + PADDING);\n const commentBBox = await addText(\n shapeSvg,\n attribute.comment,\n config,\n 0,\n yOffset,\n [\"attribute-comment\"],\n labelStyles\n );\n maxCommentWidth = Math.max(maxCommentWidth, commentBBox.width + PADDING);\n const rowHeight = Math.max(typeBBox.height, nameBBox2.height, keysBBox.height, commentBBox.height) + TEXT_PADDING;\n rows.push({ yOffset, rowHeight });\n yOffset += rowHeight;\n }\n let totalWidthSections = 4;\n if (maxKeysWidth <= PADDING) {\n keysPresent = false;\n maxKeysWidth = 0;\n totalWidthSections--;\n }\n if (maxCommentWidth <= PADDING) {\n commentPresent = false;\n maxCommentWidth = 0;\n totalWidthSections--;\n }\n const shapeBBox = shapeSvg.node().getBBox();\n if (nameBBox.width + PADDING * 2 - (maxTypeWidth + maxNameWidth + maxKeysWidth + maxCommentWidth) > 0) {\n const difference = nameBBox.width + PADDING * 2 - (maxTypeWidth + maxNameWidth + maxKeysWidth + maxCommentWidth);\n maxTypeWidth += difference / totalWidthSections;\n maxNameWidth += difference / totalWidthSections;\n if (maxKeysWidth > 0) {\n maxKeysWidth += difference / totalWidthSections;\n }\n if (maxCommentWidth > 0) {\n maxCommentWidth += difference / totalWidthSections;\n }\n }\n const maxWidth = maxTypeWidth + maxNameWidth + maxKeysWidth + maxCommentWidth;\n const rc = rough55.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n let totalShapeBBoxHeight = 0;\n if (rows.length > 0) {\n totalShapeBBoxHeight = rows.reduce((sum, row) => sum + (row?.rowHeight ?? 0), 0);\n }\n const w = Math.max(shapeBBox.width + PADDING * 2, node?.width || 0, maxWidth);\n const h = Math.max((totalShapeBBoxHeight ?? 0) + nameBBox.height, node?.height || 0);\n const x = -w / 2;\n const y = -h / 2;\n shapeSvg.selectAll(\"g:not(:first-child)\").each((_, i, nodes) => {\n const text2 = select5(nodes[i]);\n const transform = text2.attr(\"transform\");\n let translateX = 0;\n let translateY = 0;\n if (transform) {\n const regex = RegExp(/translate\\(([^,]+),([^)]+)\\)/);\n const translate = regex.exec(transform);\n if (translate) {\n translateX = parseFloat(translate[1]);\n translateY = parseFloat(translate[2]);\n if (text2.attr(\"class\").includes(\"attribute-name\")) {\n translateX += maxTypeWidth;\n } else if (text2.attr(\"class\").includes(\"attribute-keys\")) {\n translateX += maxTypeWidth + maxNameWidth;\n } else if (text2.attr(\"class\").includes(\"attribute-comment\")) {\n translateX += maxTypeWidth + maxNameWidth + maxKeysWidth;\n }\n }\n }\n text2.attr(\n \"transform\",\n `translate(${x + PADDING / 2 + translateX}, ${translateY + y + nameBBox.height + TEXT_PADDING / 2})`\n );\n });\n shapeSvg.select(\".name\").attr(\"transform\", \"translate(\" + -nameBBox.width / 2 + \", \" + (y + TEXT_PADDING / 2) + \")\");\n const roughRect = rc.rectangle(x, y, w, h, options);\n const rect2 = shapeSvg.insert(() => roughRect, \":first-child\").attr(\"style\", cssStyles.join(\"\"));\n const { themeVariables } = getConfig();\n const { rowEven, rowOdd, nodeBorder } = themeVariables;\n yOffsets.push(0);\n for (const [i, row] of rows.entries()) {\n const contentRowIndex = i + 1;\n const isEven = contentRowIndex % 2 === 0 && row.yOffset !== 0;\n const roughRect2 = rc.rectangle(x, nameBBox.height + y + row?.yOffset, w, row?.rowHeight, {\n ...options,\n fill: isEven ? rowEven : rowOdd,\n stroke: nodeBorder\n });\n shapeSvg.insert(() => roughRect2, \"g.label\").attr(\"style\", cssStyles.join(\"\")).attr(\"class\", `row-rect-${isEven ? \"even\" : \"odd\"}`);\n }\n let roughLine = rc.line(x, nameBBox.height + y, w + x, nameBBox.height + y, options);\n shapeSvg.insert(() => roughLine).attr(\"class\", \"divider\");\n roughLine = rc.line(maxTypeWidth + x, nameBBox.height + y, maxTypeWidth + x, h + y, options);\n shapeSvg.insert(() => roughLine).attr(\"class\", \"divider\");\n if (keysPresent) {\n roughLine = rc.line(\n maxTypeWidth + maxNameWidth + x,\n nameBBox.height + y,\n maxTypeWidth + maxNameWidth + x,\n h + y,\n options\n );\n shapeSvg.insert(() => roughLine).attr(\"class\", \"divider\");\n }\n if (commentPresent) {\n roughLine = rc.line(\n maxTypeWidth + maxNameWidth + maxKeysWidth + x,\n nameBBox.height + y,\n maxTypeWidth + maxNameWidth + maxKeysWidth + x,\n h + y,\n options\n );\n shapeSvg.insert(() => roughLine).attr(\"class\", \"divider\");\n }\n for (const yOffset2 of yOffsets) {\n roughLine = rc.line(\n x,\n nameBBox.height + y + yOffset2,\n w + x,\n nameBBox.height + y + yOffset2,\n options\n );\n shapeSvg.insert(() => roughLine).attr(\"class\", \"divider\");\n }\n updateNodeBounds(node, rect2);\n if (nodeStyles && node.look !== \"handDrawn\") {\n const allStyle = nodeStyles.split(\";\");\n const strokeStyles = allStyle?.filter((e) => {\n return e.includes(\"stroke\");\n })?.map((s) => `${s}`).join(\"; \");\n shapeSvg.selectAll(\"path\").attr(\"style\", strokeStyles ?? \"\");\n shapeSvg.selectAll(\".row-rect-even path\").attr(\"style\", nodeStyles);\n }\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(erBox, \"erBox\");\nasync function addText(shapeSvg, labelText, config, translateX = 0, translateY = 0, classes = [], style = \"\") {\n const label = shapeSvg.insert(\"g\").attr(\"class\", `label ${classes.join(\" \")}`).attr(\"transform\", `translate(${translateX}, ${translateY})`).attr(\"style\", style);\n if (labelText !== parseGenericTypes(labelText)) {\n labelText = parseGenericTypes(labelText);\n labelText = labelText.replaceAll(\"<\", \"&lt;\").replaceAll(\">\", \"&gt;\");\n }\n const text2 = label.node().appendChild(\n await createText(\n label,\n labelText,\n {\n width: calculateTextWidth(labelText, config) + 100,\n style,\n useHtmlLabels: config.htmlLabels\n },\n config\n )\n );\n if (labelText.includes(\"&lt;\") || labelText.includes(\"&gt;\")) {\n let child = text2.children[0];\n child.textContent = child.textContent.replaceAll(\"&lt;\", \"<\").replaceAll(\"&gt;\", \">\");\n while (child.childNodes[0]) {\n child = child.childNodes[0];\n child.textContent = child.textContent.replaceAll(\"&lt;\", \"<\").replaceAll(\"&gt;\", \">\");\n }\n }\n let bbox = text2.getBBox();\n if (evaluate(config.htmlLabels)) {\n const div = text2.children[0];\n div.style.textAlign = \"start\";\n const dv = select5(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n return bbox;\n}\n__name(addText, \"addText\");\n\n// src/rendering-util/rendering-elements/shapes/classBox.ts\nimport { select as select7 } from \"d3\";\nimport rough56 from \"roughjs\";\n\n// src/diagrams/class/shapeUtil.ts\nimport { select as select6 } from \"d3\";\nasync function textHelper(parent, node, config, useHtmlLabels, GAP = config.class.padding ?? 12) {\n const TEXT_PADDING = !useHtmlLabels ? 3 : 0;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId || node.id);\n let annotationGroup = null;\n let labelGroup = null;\n let membersGroup = null;\n let methodsGroup = null;\n let annotationGroupHeight = 0;\n let labelGroupHeight = 0;\n let membersGroupHeight = 0;\n annotationGroup = shapeSvg.insert(\"g\").attr(\"class\", \"annotation-group text\");\n if (node.annotations.length > 0) {\n const annotation = node.annotations[0];\n await addText2(annotationGroup, { text: `\\xAB${annotation}\\xBB` }, 0);\n const annotationGroupBBox = annotationGroup.node().getBBox();\n annotationGroupHeight = annotationGroupBBox.height;\n }\n labelGroup = shapeSvg.insert(\"g\").attr(\"class\", \"label-group text\");\n await addText2(labelGroup, node, 0, [\"font-weight: bolder\"]);\n const labelGroupBBox = labelGroup.node().getBBox();\n labelGroupHeight = labelGroupBBox.height;\n membersGroup = shapeSvg.insert(\"g\").attr(\"class\", \"members-group text\");\n let yOffset = 0;\n for (const member of node.members) {\n const height = await addText2(membersGroup, member, yOffset, [member.parseClassifier()]);\n yOffset += height + TEXT_PADDING;\n }\n membersGroupHeight = membersGroup.node().getBBox().height;\n if (membersGroupHeight <= 0) {\n membersGroupHeight = GAP / 2;\n }\n methodsGroup = shapeSvg.insert(\"g\").attr(\"class\", \"methods-group text\");\n let methodsYOffset = 0;\n for (const method of node.methods) {\n const height = await addText2(methodsGroup, method, methodsYOffset, [method.parseClassifier()]);\n methodsYOffset += height + TEXT_PADDING;\n }\n let bbox = shapeSvg.node().getBBox();\n if (annotationGroup !== null) {\n const annotationGroupBBox = annotationGroup.node().getBBox();\n annotationGroup.attr(\"transform\", `translate(${-annotationGroupBBox.width / 2})`);\n }\n labelGroup.attr(\"transform\", `translate(${-labelGroupBBox.width / 2}, ${annotationGroupHeight})`);\n bbox = shapeSvg.node().getBBox();\n membersGroup.attr(\n \"transform\",\n `translate(${0}, ${annotationGroupHeight + labelGroupHeight + GAP * 2})`\n );\n bbox = shapeSvg.node().getBBox();\n methodsGroup.attr(\n \"transform\",\n `translate(${0}, ${annotationGroupHeight + labelGroupHeight + (membersGroupHeight ? membersGroupHeight + GAP * 4 : GAP * 2)})`\n );\n bbox = shapeSvg.node().getBBox();\n return { shapeSvg, bbox };\n}\n__name(textHelper, \"textHelper\");\nasync function addText2(parentGroup, node, yOffset, styles = []) {\n const textEl = parentGroup.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", styles.join(\"; \"));\n const config = getConfig();\n let useHtmlLabels = \"useHtmlLabels\" in node ? node.useHtmlLabels : evaluate(config.htmlLabels) ?? true;\n let textContent = \"\";\n if (\"text\" in node) {\n textContent = node.text;\n } else {\n textContent = node.label;\n }\n if (!useHtmlLabels && textContent.startsWith(\"\\\\\")) {\n textContent = textContent.substring(1);\n }\n if (hasKatex(textContent)) {\n useHtmlLabels = true;\n }\n const text2 = await createText(\n textEl,\n sanitizeText2(decodeEntities(textContent)),\n {\n width: calculateTextWidth(textContent, config) + 50,\n // Add room for error when splitting text into multiple lines\n classes: \"markdown-node-label\",\n useHtmlLabels\n },\n config\n );\n let bbox;\n let numberOfLines = 1;\n if (!useHtmlLabels) {\n if (styles.includes(\"font-weight: bolder\")) {\n select6(text2).selectAll(\"tspan\").attr(\"font-weight\", \"\");\n }\n numberOfLines = text2.children.length;\n const textChild = text2.children[0];\n if (text2.textContent === \"\" || text2.textContent.includes(\"&gt\")) {\n textChild.textContent = textContent[0] + textContent.substring(1).replaceAll(\"&gt;\", \">\").replaceAll(\"&lt;\", \"<\").trim();\n const preserveSpace = textContent[1] === \" \";\n if (preserveSpace) {\n textChild.textContent = textChild.textContent[0] + \" \" + textChild.textContent.substring(1);\n }\n }\n if (textChild.textContent === \"undefined\") {\n textChild.textContent = \"\";\n }\n bbox = text2.getBBox();\n } else {\n const div = text2.children[0];\n const dv = select6(text2);\n numberOfLines = div.innerHTML.split(\"<br>\").length;\n if (div.innerHTML.includes(\"</math>\")) {\n numberOfLines += div.innerHTML.split(\"<mrow>\").length - 1;\n }\n const images = div.getElementsByTagName(\"img\");\n if (images) {\n const noImgText = textContent.replace(/<img[^>]*>/g, \"\").trim() === \"\";\n await Promise.all(\n [...images].map(\n (img) => new Promise((res) => {\n function setupImage() {\n img.style.display = \"flex\";\n img.style.flexDirection = \"column\";\n if (noImgText) {\n const bodyFontSize = config.fontSize?.toString() ?? window.getComputedStyle(document.body).fontSize;\n const enlargingFactor = 5;\n const width = parseInt(bodyFontSize, 10) * enlargingFactor + \"px\";\n img.style.minWidth = width;\n img.style.maxWidth = width;\n } else {\n img.style.width = \"100%\";\n }\n res(img);\n }\n __name(setupImage, \"setupImage\");\n setTimeout(() => {\n if (img.complete) {\n setupImage();\n }\n });\n img.addEventListener(\"error\", setupImage);\n img.addEventListener(\"load\", setupImage);\n })\n )\n );\n }\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n textEl.attr(\"transform\", \"translate(0,\" + (-bbox.height / (2 * numberOfLines) + yOffset) + \")\");\n return bbox.height;\n}\n__name(addText2, \"addText\");\n\n// src/rendering-util/rendering-elements/shapes/classBox.ts\nasync function classBox(parent, node) {\n const config = getConfig2();\n const PADDING = config.class.padding ?? 12;\n const GAP = PADDING;\n const useHtmlLabels = node.useHtmlLabels ?? evaluate(config.htmlLabels) ?? true;\n const classNode = node;\n classNode.annotations = classNode.annotations ?? [];\n classNode.members = classNode.members ?? [];\n classNode.methods = classNode.methods ?? [];\n const { shapeSvg, bbox } = await textHelper(parent, node, config, useHtmlLabels, GAP);\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n node.cssStyles = classNode.styles || \"\";\n const styles = classNode.styles?.join(\";\") || nodeStyles || \"\";\n if (!node.cssStyles) {\n node.cssStyles = styles.replaceAll(\"!important\", \"\").split(\";\");\n }\n const renderExtraBox = classNode.members.length === 0 && classNode.methods.length === 0 && !config.class?.hideEmptyMembersBox;\n const rc = rough56.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const w = bbox.width;\n let h = bbox.height;\n if (classNode.members.length === 0 && classNode.methods.length === 0) {\n h += GAP;\n } else if (classNode.members.length > 0 && classNode.methods.length === 0) {\n h += GAP * 2;\n }\n const x = -w / 2;\n const y = -h / 2;\n const roughRect = rc.rectangle(\n x - PADDING,\n y - PADDING - (renderExtraBox ? PADDING : classNode.members.length === 0 && classNode.methods.length === 0 ? -PADDING / 2 : 0),\n w + 2 * PADDING,\n h + 2 * PADDING + (renderExtraBox ? PADDING * 2 : classNode.members.length === 0 && classNode.methods.length === 0 ? -PADDING : 0),\n options\n );\n const rect2 = shapeSvg.insert(() => roughRect, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\");\n const rectBBox = rect2.node().getBBox();\n shapeSvg.selectAll(\".text\").each((_, i, nodes) => {\n const text2 = select7(nodes[i]);\n const transform = text2.attr(\"transform\");\n let translateY = 0;\n if (transform) {\n const regex = RegExp(/translate\\(([^,]+),([^)]+)\\)/);\n const translate = regex.exec(transform);\n if (translate) {\n translateY = parseFloat(translate[2]);\n }\n }\n let newTranslateY = translateY + y + PADDING - (renderExtraBox ? PADDING : classNode.members.length === 0 && classNode.methods.length === 0 ? -PADDING / 2 : 0);\n if (!useHtmlLabels) {\n newTranslateY -= 4;\n }\n let newTranslateX = x;\n if (text2.attr(\"class\").includes(\"label-group\") || text2.attr(\"class\").includes(\"annotation-group\")) {\n newTranslateX = -text2.node()?.getBBox().width / 2 || 0;\n shapeSvg.selectAll(\"text\").each(function(_2, i2, nodes2) {\n if (window.getComputedStyle(nodes2[i2]).textAnchor === \"middle\") {\n newTranslateX = 0;\n }\n });\n }\n text2.attr(\"transform\", `translate(${newTranslateX}, ${newTranslateY})`);\n });\n const annotationGroupHeight = shapeSvg.select(\".annotation-group\").node().getBBox().height - (renderExtraBox ? PADDING / 2 : 0) || 0;\n const labelGroupHeight = shapeSvg.select(\".label-group\").node().getBBox().height - (renderExtraBox ? PADDING / 2 : 0) || 0;\n const membersGroupHeight = shapeSvg.select(\".members-group\").node().getBBox().height - (renderExtraBox ? PADDING / 2 : 0) || 0;\n if (classNode.members.length > 0 || classNode.methods.length > 0 || renderExtraBox) {\n const roughLine = rc.line(\n rectBBox.x,\n annotationGroupHeight + labelGroupHeight + y + PADDING,\n rectBBox.x + rectBBox.width,\n annotationGroupHeight + labelGroupHeight + y + PADDING,\n options\n );\n const line = shapeSvg.insert(() => roughLine);\n line.attr(\"class\", \"divider\").attr(\"style\", styles);\n }\n if (renderExtraBox || classNode.members.length > 0 || classNode.methods.length > 0) {\n const roughLine = rc.line(\n rectBBox.x,\n annotationGroupHeight + labelGroupHeight + membersGroupHeight + y + GAP * 2 + PADDING,\n rectBBox.x + rectBBox.width,\n annotationGroupHeight + labelGroupHeight + membersGroupHeight + y + PADDING + GAP * 2,\n options\n );\n const line = shapeSvg.insert(() => roughLine);\n line.attr(\"class\", \"divider\").attr(\"style\", styles);\n }\n if (classNode.look !== \"handDrawn\") {\n shapeSvg.selectAll(\"path\").attr(\"style\", styles);\n }\n rect2.select(\":nth-child(2)\").attr(\"style\", styles);\n shapeSvg.selectAll(\".divider\").select(\"path\").attr(\"style\", styles);\n if (node.labelStyle) {\n shapeSvg.selectAll(\"span\").attr(\"style\", node.labelStyle);\n } else {\n shapeSvg.selectAll(\"span\").attr(\"style\", styles);\n }\n if (!useHtmlLabels) {\n const colorRegex = RegExp(/color\\s*:\\s*([^;]*)/);\n const match = colorRegex.exec(styles);\n if (match) {\n const colorStyle = match[0].replace(\"color\", \"fill\");\n shapeSvg.selectAll(\"tspan\").attr(\"style\", colorStyle);\n } else if (labelStyles) {\n const match2 = colorRegex.exec(labelStyles);\n if (match2) {\n const colorStyle = match2[0].replace(\"color\", \"fill\");\n shapeSvg.selectAll(\"tspan\").attr(\"style\", colorStyle);\n }\n }\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(classBox, \"classBox\");\n\n// src/rendering-util/rendering-elements/shapes/requirementBox.ts\nimport rough57 from \"roughjs\";\nimport { select as select8 } from \"d3\";\nasync function requirementBox(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const requirementNode = node;\n const elementNode = node;\n const padding = 20;\n const gap = 20;\n const isRequirementNode = \"verifyMethod\" in node;\n const classes = getNodeClasses(node);\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes).attr(\"id\", node.domId ?? node.id);\n let typeHeight;\n if (isRequirementNode) {\n typeHeight = await addText3(\n shapeSvg,\n `&lt;&lt;${requirementNode.type}&gt;&gt;`,\n 0,\n node.labelStyle\n );\n } else {\n typeHeight = await addText3(shapeSvg, \"&lt;&lt;Element&gt;&gt;\", 0, node.labelStyle);\n }\n let accumulativeHeight = typeHeight;\n const nameHeight = await addText3(\n shapeSvg,\n requirementNode.name,\n accumulativeHeight,\n node.labelStyle + \"; font-weight: bold;\"\n );\n accumulativeHeight += nameHeight + gap;\n if (isRequirementNode) {\n const idHeight = await addText3(\n shapeSvg,\n `${requirementNode.requirementId ? `ID: ${requirementNode.requirementId}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n accumulativeHeight += idHeight;\n const textHeight = await addText3(\n shapeSvg,\n `${requirementNode.text ? `Text: ${requirementNode.text}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n accumulativeHeight += textHeight;\n const riskHeight = await addText3(\n shapeSvg,\n `${requirementNode.risk ? `Risk: ${requirementNode.risk}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n accumulativeHeight += riskHeight;\n await addText3(\n shapeSvg,\n `${requirementNode.verifyMethod ? `Verification: ${requirementNode.verifyMethod}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n } else {\n const typeHeight2 = await addText3(\n shapeSvg,\n `${elementNode.type ? `Type: ${elementNode.type}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n accumulativeHeight += typeHeight2;\n await addText3(\n shapeSvg,\n `${elementNode.docRef ? `Doc Ref: ${elementNode.docRef}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n }\n const totalWidth = (shapeSvg.node()?.getBBox().width ?? 200) + padding;\n const totalHeight = (shapeSvg.node()?.getBBox().height ?? 200) + padding;\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n const rc = rough57.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const roughRect = rc.rectangle(x, y, totalWidth, totalHeight, options);\n const rect2 = shapeSvg.insert(() => roughRect, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles);\n shapeSvg.selectAll(\".label\").each((_, i, nodes) => {\n const text2 = select8(nodes[i]);\n const transform = text2.attr(\"transform\");\n let translateX = 0;\n let translateY = 0;\n if (transform) {\n const regex = RegExp(/translate\\(([^,]+),([^)]+)\\)/);\n const translate = regex.exec(transform);\n if (translate) {\n translateX = parseFloat(translate[1]);\n translateY = parseFloat(translate[2]);\n }\n }\n const newTranslateY = translateY - totalHeight / 2;\n let newTranslateX = x + padding / 2;\n if (i === 0 || i === 1) {\n newTranslateX = translateX;\n }\n text2.attr(\"transform\", `translate(${newTranslateX}, ${newTranslateY + padding})`);\n });\n if (accumulativeHeight > typeHeight + nameHeight + gap) {\n const roughLine = rc.line(\n x,\n y + typeHeight + nameHeight + gap,\n x + totalWidth,\n y + typeHeight + nameHeight + gap,\n options\n );\n const dividerLine = shapeSvg.insert(() => roughLine);\n dividerLine.attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(requirementBox, \"requirementBox\");\nasync function addText3(parentGroup, inputText, yOffset, style = \"\") {\n if (inputText === \"\") {\n return 0;\n }\n const textEl = parentGroup.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", style);\n const config = getConfig2();\n const useHtmlLabels = config.htmlLabels ?? true;\n const text2 = await createText(\n textEl,\n sanitizeText2(decodeEntities(inputText)),\n {\n width: calculateTextWidth(inputText, config) + 50,\n // Add room for error when splitting text into multiple lines\n classes: \"markdown-node-label\",\n useHtmlLabels,\n style\n },\n config\n );\n let bbox;\n if (!useHtmlLabels) {\n const textChild = text2.children[0];\n for (const child of textChild.children) {\n child.textContent = child.textContent.replaceAll(\"&gt;\", \">\").replaceAll(\"&lt;\", \"<\");\n if (style) {\n child.setAttribute(\"style\", style);\n }\n }\n bbox = text2.getBBox();\n bbox.height += 6;\n } else {\n const div = text2.children[0];\n const dv = select8(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n textEl.attr(\"transform\", `translate(${-bbox.width / 2},${-bbox.height / 2 + yOffset})`);\n return bbox.height;\n}\n__name(addText3, \"addText\");\n\n// src/rendering-util/rendering-elements/shapes/kanbanItem.ts\nimport rough58 from \"roughjs\";\nvar colorFromPriority = /* @__PURE__ */ __name((priority) => {\n switch (priority) {\n case \"Very High\":\n return \"red\";\n case \"High\":\n return \"orange\";\n case \"Medium\":\n return null;\n // no stroke\n case \"Low\":\n return \"blue\";\n case \"Very Low\":\n return \"lightblue\";\n }\n}, \"colorFromPriority\");\nasync function kanbanItem(parent, kanbanNode, { config }) {\n const { labelStyles, nodeStyles } = styles2String(kanbanNode);\n kanbanNode.labelStyle = labelStyles || \"\";\n const labelPaddingX = 10;\n const orgWidth = kanbanNode.width;\n kanbanNode.width = (kanbanNode.width ?? 200) - 10;\n const {\n shapeSvg,\n bbox,\n label: labelElTitle\n } = await labelHelper(parent, kanbanNode, getNodeClasses(kanbanNode));\n const padding = kanbanNode.padding || 10;\n let ticketUrl = \"\";\n let link;\n if (\"ticket\" in kanbanNode && kanbanNode.ticket && config?.kanban?.ticketBaseUrl) {\n ticketUrl = config?.kanban?.ticketBaseUrl.replace(\"#TICKET#\", kanbanNode.ticket);\n link = shapeSvg.insert(\"svg:a\", \":first-child\").attr(\"class\", \"kanban-ticket-link\").attr(\"xlink:href\", ticketUrl).attr(\"target\", \"_blank\");\n }\n const options = {\n useHtmlLabels: kanbanNode.useHtmlLabels,\n labelStyle: kanbanNode.labelStyle || \"\",\n width: kanbanNode.width,\n img: kanbanNode.img,\n padding: kanbanNode.padding || 8,\n centerLabel: false\n };\n let labelEl, bbox2;\n if (link) {\n ({ label: labelEl, bbox: bbox2 } = await insertLabel(\n link,\n \"ticket\" in kanbanNode && kanbanNode.ticket || \"\",\n options\n ));\n } else {\n ({ label: labelEl, bbox: bbox2 } = await insertLabel(\n shapeSvg,\n \"ticket\" in kanbanNode && kanbanNode.ticket || \"\",\n options\n ));\n }\n const { label: labelElAssigned, bbox: bboxAssigned } = await insertLabel(\n shapeSvg,\n \"assigned\" in kanbanNode && kanbanNode.assigned || \"\",\n options\n );\n kanbanNode.width = orgWidth;\n const labelPaddingY = 10;\n const totalWidth = kanbanNode?.width || 0;\n const heightAdj = Math.max(bbox2.height, bboxAssigned.height) / 2;\n const totalHeight = Math.max(bbox.height + labelPaddingY * 2, kanbanNode?.height || 0) + heightAdj;\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n labelElTitle.attr(\n \"transform\",\n \"translate(\" + (padding - totalWidth / 2) + \", \" + (-heightAdj - bbox.height / 2) + \")\"\n );\n labelEl.attr(\n \"transform\",\n \"translate(\" + (padding - totalWidth / 2) + \", \" + (-heightAdj + bbox.height / 2) + \")\"\n );\n labelElAssigned.attr(\n \"transform\",\n \"translate(\" + (padding + totalWidth / 2 - bboxAssigned.width - 2 * labelPaddingX) + \", \" + (-heightAdj + bbox.height / 2) + \")\"\n );\n let rect2;\n const { rx, ry } = kanbanNode;\n const { cssStyles } = kanbanNode;\n if (kanbanNode.look === \"handDrawn\") {\n const rc = rough58.svg(shapeSvg);\n const options2 = userNodeOverrides(kanbanNode, {});\n const roughNode = rx || ry ? rc.path(createRoundedRectPathD(x, y, totalWidth, totalHeight, rx || 0), options2) : rc.rectangle(x, y, totalWidth, totalHeight, options2);\n rect2 = shapeSvg.insert(() => roughNode, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", cssStyles ? cssStyles : null);\n } else {\n rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"class\", \"basic label-container __APA__\").attr(\"style\", nodeStyles).attr(\"rx\", rx ?? 5).attr(\"ry\", ry ?? 5).attr(\"x\", x).attr(\"y\", y).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n const priority = \"priority\" in kanbanNode && kanbanNode.priority;\n if (priority) {\n const line = shapeSvg.append(\"line\");\n const lineX = x + 2;\n const y1 = y + Math.floor((rx ?? 0) / 2);\n const y2 = y + totalHeight - Math.floor((rx ?? 0) / 2);\n line.attr(\"x1\", lineX).attr(\"y1\", y1).attr(\"x2\", lineX).attr(\"y2\", y2).attr(\"stroke-width\", \"4\").attr(\"stroke\", colorFromPriority(priority));\n }\n }\n updateNodeBounds(kanbanNode, rect2);\n kanbanNode.height = totalHeight;\n kanbanNode.intersect = function(point) {\n return intersect_default.rect(kanbanNode, point);\n };\n return shapeSvg;\n}\n__name(kanbanItem, \"kanbanItem\");\n\n// src/rendering-util/rendering-elements/shapes/bang.ts\nimport rough59 from \"roughjs\";\nasync function bang(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, halfPadding, label } = await labelHelper(\n parent,\n node,\n getNodeClasses(node)\n );\n const w = bbox.width + 10 * halfPadding;\n const h = bbox.height + 8 * halfPadding;\n const r = 0.15 * w;\n const { cssStyles } = node;\n const minWidth = bbox.width + 20;\n const minHeight = bbox.height + 20;\n const effectiveWidth = Math.max(w, minWidth);\n const effectiveHeight = Math.max(h, minHeight);\n label.attr(\"transform\", `translate(${-bbox.width / 2}, ${-bbox.height / 2})`);\n let bangElem;\n const path = `M0 0 \n a${r},${r} 1 0,0 ${effectiveWidth * 0.25},${-1 * effectiveHeight * 0.1}\n a${r},${r} 1 0,0 ${effectiveWidth * 0.25},${0}\n a${r},${r} 1 0,0 ${effectiveWidth * 0.25},${0}\n a${r},${r} 1 0,0 ${effectiveWidth * 0.25},${effectiveHeight * 0.1}\n\n a${r},${r} 1 0,0 ${effectiveWidth * 0.15},${effectiveHeight * 0.33}\n a${r * 0.8},${r * 0.8} 1 0,0 0,${effectiveHeight * 0.34}\n a${r},${r} 1 0,0 ${-1 * effectiveWidth * 0.15},${effectiveHeight * 0.33}\n\n a${r},${r} 1 0,0 ${-1 * effectiveWidth * 0.25},${effectiveHeight * 0.15}\n a${r},${r} 1 0,0 ${-1 * effectiveWidth * 0.25},0\n a${r},${r} 1 0,0 ${-1 * effectiveWidth * 0.25},0\n a${r},${r} 1 0,0 ${-1 * effectiveWidth * 0.25},${-1 * effectiveHeight * 0.15}\n\n a${r},${r} 1 0,0 ${-1 * effectiveWidth * 0.1},${-1 * effectiveHeight * 0.33}\n a${r * 0.8},${r * 0.8} 1 0,0 0,${-1 * effectiveHeight * 0.34}\n a${r},${r} 1 0,0 ${effectiveWidth * 0.1},${-1 * effectiveHeight * 0.33}\n H0 V0 Z`;\n if (node.look === \"handDrawn\") {\n const rc = rough59.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const roughNode = rc.path(path, options);\n bangElem = shapeSvg.insert(() => roughNode, \":first-child\");\n bangElem.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n } else {\n bangElem = shapeSvg.insert(\"path\", \":first-child\").attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles).attr(\"d\", path);\n }\n bangElem.attr(\"transform\", `translate(${-effectiveWidth / 2}, ${-effectiveHeight / 2})`);\n updateNodeBounds(node, bangElem);\n node.calcIntersect = function(bounds, point) {\n return intersect_default.rect(bounds, point);\n };\n node.intersect = function(point) {\n log.info(\"Bang intersect\", node, point);\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(bang, \"bang\");\n\n// src/rendering-util/rendering-elements/shapes/cloud.ts\nimport rough60 from \"roughjs\";\nasync function cloud(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, halfPadding, label } = await labelHelper(\n parent,\n node,\n getNodeClasses(node)\n );\n const w = bbox.width + 2 * halfPadding;\n const h = bbox.height + 2 * halfPadding;\n const r1 = 0.15 * w;\n const r2 = 0.25 * w;\n const r3 = 0.35 * w;\n const r4 = 0.2 * w;\n const { cssStyles } = node;\n let cloudElem;\n const path = `M0 0 \n a${r1},${r1} 0 0,1 ${w * 0.25},${-1 * w * 0.1}\n a${r3},${r3} 1 0,1 ${w * 0.4},${-1 * w * 0.1}\n a${r2},${r2} 1 0,1 ${w * 0.35},${w * 0.2}\n\n a${r1},${r1} 1 0,1 ${w * 0.15},${h * 0.35}\n a${r4},${r4} 1 0,1 ${-1 * w * 0.15},${h * 0.65}\n\n a${r2},${r1} 1 0,1 ${-1 * w * 0.25},${w * 0.15}\n a${r3},${r3} 1 0,1 ${-1 * w * 0.5},0\n a${r1},${r1} 1 0,1 ${-1 * w * 0.25},${-1 * w * 0.15}\n\n a${r1},${r1} 1 0,1 ${-1 * w * 0.1},${-1 * h * 0.35}\n a${r4},${r4} 1 0,1 ${w * 0.1},${-1 * h * 0.65}\n H0 V0 Z`;\n if (node.look === \"handDrawn\") {\n const rc = rough60.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const roughNode = rc.path(path, options);\n cloudElem = shapeSvg.insert(() => roughNode, \":first-child\");\n cloudElem.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n } else {\n cloudElem = shapeSvg.insert(\"path\", \":first-child\").attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles).attr(\"d\", path);\n }\n label.attr(\"transform\", `translate(${-bbox.width / 2}, ${-bbox.height / 2})`);\n cloudElem.attr(\"transform\", `translate(${-w / 2}, ${-h / 2})`);\n updateNodeBounds(node, cloudElem);\n node.calcIntersect = function(bounds, point) {\n return intersect_default.rect(bounds, point);\n };\n node.intersect = function(point) {\n log.info(\"Cloud intersect\", node, point);\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(cloud, \"cloud\");\n\n// src/rendering-util/rendering-elements/shapes/defaultMindmapNode.ts\nasync function defaultMindmapNode(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, halfPadding, label } = await labelHelper(\n parent,\n node,\n getNodeClasses(node)\n );\n const w = bbox.width + 8 * halfPadding;\n const h = bbox.height + 2 * halfPadding;\n const rd = 5;\n const rectPath = `\n M${-w / 2} ${h / 2 - rd}\n v${-h + 2 * rd}\n q0,-${rd} ${rd},-${rd}\n h${w - 2 * rd}\n q${rd},0 ${rd},${rd}\n v${h - 2 * rd}\n q0,${rd} -${rd},${rd}\n h${-w + 2 * rd}\n q-${rd},0 -${rd},-${rd}\n Z\n `;\n const bg = shapeSvg.append(\"path\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + node.type).attr(\"style\", nodeStyles).attr(\"d\", rectPath);\n shapeSvg.append(\"line\").attr(\"class\", \"node-line-\").attr(\"x1\", -w / 2).attr(\"y1\", h / 2).attr(\"x2\", w / 2).attr(\"y2\", h / 2);\n label.attr(\"transform\", `translate(${-bbox.width / 2}, ${-bbox.height / 2})`);\n shapeSvg.append(() => label.node());\n updateNodeBounds(node, bg);\n node.calcIntersect = function(bounds, point) {\n return intersect_default.rect(bounds, point);\n };\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(defaultMindmapNode, \"defaultMindmapNode\");\n\n// src/rendering-util/rendering-elements/shapes/mindmapCircle.ts\nasync function mindmapCircle(parent, node) {\n const options = {\n padding: node.padding ?? 0\n };\n return circle(parent, node, options);\n}\n__name(mindmapCircle, \"mindmapCircle\");\n\n// src/rendering-util/rendering-elements/shapes.ts\nvar shapesDefs = [\n {\n semanticName: \"Process\",\n name: \"Rectangle\",\n shortName: \"rect\",\n description: \"Standard process shape\",\n aliases: [\"proc\", \"process\", \"rectangle\"],\n internalAliases: [\"squareRect\"],\n handler: squareRect2\n },\n {\n semanticName: \"Event\",\n name: \"Rounded Rectangle\",\n shortName: \"rounded\",\n description: \"Represents an event\",\n aliases: [\"event\"],\n internalAliases: [\"roundedRect\"],\n handler: roundedRect\n },\n {\n semanticName: \"Terminal Point\",\n name: \"Stadium\",\n shortName: \"stadium\",\n description: \"Terminal point\",\n aliases: [\"terminal\", \"pill\"],\n handler: stadium\n },\n {\n semanticName: \"Subprocess\",\n name: \"Framed Rectangle\",\n shortName: \"fr-rect\",\n description: \"Subprocess\",\n aliases: [\"subprocess\", \"subproc\", \"framed-rectangle\", \"subroutine\"],\n handler: subroutine\n },\n {\n semanticName: \"Database\",\n name: \"Cylinder\",\n shortName: \"cyl\",\n description: \"Database storage\",\n aliases: [\"db\", \"database\", \"cylinder\"],\n handler: cylinder\n },\n {\n semanticName: \"Start\",\n name: \"Circle\",\n shortName: \"circle\",\n description: \"Starting point\",\n aliases: [\"circ\"],\n handler: circle\n },\n {\n semanticName: \"Bang\",\n name: \"Bang\",\n shortName: \"bang\",\n description: \"Bang\",\n aliases: [\"bang\"],\n handler: bang\n },\n {\n semanticName: \"Cloud\",\n name: \"Cloud\",\n shortName: \"cloud\",\n description: \"cloud\",\n aliases: [\"cloud\"],\n handler: cloud\n },\n {\n semanticName: \"Decision\",\n name: \"Diamond\",\n shortName: \"diam\",\n description: \"Decision-making step\",\n aliases: [\"decision\", \"diamond\", \"question\"],\n handler: question\n },\n {\n semanticName: \"Prepare Conditional\",\n name: \"Hexagon\",\n shortName: \"hex\",\n description: \"Preparation or condition step\",\n aliases: [\"hexagon\", \"prepare\"],\n handler: hexagon\n },\n {\n semanticName: \"Data Input/Output\",\n name: \"Lean Right\",\n shortName: \"lean-r\",\n description: \"Represents input or output\",\n aliases: [\"lean-right\", \"in-out\"],\n internalAliases: [\"lean_right\"],\n handler: lean_right\n },\n {\n semanticName: \"Data Input/Output\",\n name: \"Lean Left\",\n shortName: \"lean-l\",\n description: \"Represents output or input\",\n aliases: [\"lean-left\", \"out-in\"],\n internalAliases: [\"lean_left\"],\n handler: lean_left\n },\n {\n semanticName: \"Priority Action\",\n name: \"Trapezoid Base Bottom\",\n shortName: \"trap-b\",\n description: \"Priority action\",\n aliases: [\"priority\", \"trapezoid-bottom\", \"trapezoid\"],\n handler: trapezoid\n },\n {\n semanticName: \"Manual Operation\",\n name: \"Trapezoid Base Top\",\n shortName: \"trap-t\",\n description: \"Represents a manual task\",\n aliases: [\"manual\", \"trapezoid-top\", \"inv-trapezoid\"],\n internalAliases: [\"inv_trapezoid\"],\n handler: inv_trapezoid\n },\n {\n semanticName: \"Stop\",\n name: \"Double Circle\",\n shortName: \"dbl-circ\",\n description: \"Represents a stop point\",\n aliases: [\"double-circle\"],\n internalAliases: [\"doublecircle\"],\n handler: doublecircle\n },\n {\n semanticName: \"Text Block\",\n name: \"Text Block\",\n shortName: \"text\",\n description: \"Text block\",\n handler: text\n },\n {\n semanticName: \"Card\",\n name: \"Notched Rectangle\",\n shortName: \"notch-rect\",\n description: \"Represents a card\",\n aliases: [\"card\", \"notched-rectangle\"],\n handler: card\n },\n {\n semanticName: \"Lined/Shaded Process\",\n name: \"Lined Rectangle\",\n shortName: \"lin-rect\",\n description: \"Lined process shape\",\n aliases: [\"lined-rectangle\", \"lined-process\", \"lin-proc\", \"shaded-process\"],\n handler: shadedProcess\n },\n {\n semanticName: \"Start\",\n name: \"Small Circle\",\n shortName: \"sm-circ\",\n description: \"Small starting point\",\n aliases: [\"start\", \"small-circle\"],\n internalAliases: [\"stateStart\"],\n handler: stateStart\n },\n {\n semanticName: \"Stop\",\n name: \"Framed Circle\",\n shortName: \"fr-circ\",\n description: \"Stop point\",\n aliases: [\"stop\", \"framed-circle\"],\n internalAliases: [\"stateEnd\"],\n handler: stateEnd\n },\n {\n semanticName: \"Fork/Join\",\n name: \"Filled Rectangle\",\n shortName: \"fork\",\n description: \"Fork or join in process flow\",\n aliases: [\"join\"],\n internalAliases: [\"forkJoin\"],\n handler: forkJoin\n },\n {\n semanticName: \"Collate\",\n name: \"Hourglass\",\n shortName: \"hourglass\",\n description: \"Represents a collate operation\",\n aliases: [\"hourglass\", \"collate\"],\n handler: hourglass\n },\n {\n semanticName: \"Comment\",\n name: \"Curly Brace\",\n shortName: \"brace\",\n description: \"Adds a comment\",\n aliases: [\"comment\", \"brace-l\"],\n handler: curlyBraceLeft\n },\n {\n semanticName: \"Comment Right\",\n name: \"Curly Brace\",\n shortName: \"brace-r\",\n description: \"Adds a comment\",\n handler: curlyBraceRight\n },\n {\n semanticName: \"Comment with braces on both sides\",\n name: \"Curly Braces\",\n shortName: \"braces\",\n description: \"Adds a comment\",\n handler: curlyBraces\n },\n {\n semanticName: \"Com Link\",\n name: \"Lightning Bolt\",\n shortName: \"bolt\",\n description: \"Communication link\",\n aliases: [\"com-link\", \"lightning-bolt\"],\n handler: lightningBolt\n },\n {\n semanticName: \"Document\",\n name: \"Document\",\n shortName: \"doc\",\n description: \"Represents a document\",\n aliases: [\"doc\", \"document\"],\n handler: waveEdgedRectangle\n },\n {\n semanticName: \"Delay\",\n name: \"Half-Rounded Rectangle\",\n shortName: \"delay\",\n description: \"Represents a delay\",\n aliases: [\"half-rounded-rectangle\"],\n handler: halfRoundedRectangle\n },\n {\n semanticName: \"Direct Access Storage\",\n name: \"Horizontal Cylinder\",\n shortName: \"h-cyl\",\n description: \"Direct access storage\",\n aliases: [\"das\", \"horizontal-cylinder\"],\n handler: tiltedCylinder\n },\n {\n semanticName: \"Disk Storage\",\n name: \"Lined Cylinder\",\n shortName: \"lin-cyl\",\n description: \"Disk storage\",\n aliases: [\"disk\", \"lined-cylinder\"],\n handler: linedCylinder\n },\n {\n semanticName: \"Display\",\n name: \"Curved Trapezoid\",\n shortName: \"curv-trap\",\n description: \"Represents a display\",\n aliases: [\"curved-trapezoid\", \"display\"],\n handler: curvedTrapezoid\n },\n {\n semanticName: \"Divided Process\",\n name: \"Divided Rectangle\",\n shortName: \"div-rect\",\n description: \"Divided process shape\",\n aliases: [\"div-proc\", \"divided-rectangle\", \"divided-process\"],\n handler: dividedRectangle\n },\n {\n semanticName: \"Extract\",\n name: \"Triangle\",\n shortName: \"tri\",\n description: \"Extraction process\",\n aliases: [\"extract\", \"triangle\"],\n handler: triangle\n },\n {\n semanticName: \"Internal Storage\",\n name: \"Window Pane\",\n shortName: \"win-pane\",\n description: \"Internal storage\",\n aliases: [\"internal-storage\", \"window-pane\"],\n handler: windowPane\n },\n {\n semanticName: \"Junction\",\n name: \"Filled Circle\",\n shortName: \"f-circ\",\n description: \"Junction point\",\n aliases: [\"junction\", \"filled-circle\"],\n handler: filledCircle\n },\n {\n semanticName: \"Loop Limit\",\n name: \"Trapezoidal Pentagon\",\n shortName: \"notch-pent\",\n description: \"Loop limit step\",\n aliases: [\"loop-limit\", \"notched-pentagon\"],\n handler: trapezoidalPentagon\n },\n {\n semanticName: \"Manual File\",\n name: \"Flipped Triangle\",\n shortName: \"flip-tri\",\n description: \"Manual file operation\",\n aliases: [\"manual-file\", \"flipped-triangle\"],\n handler: flippedTriangle\n },\n {\n semanticName: \"Manual Input\",\n name: \"Sloped Rectangle\",\n shortName: \"sl-rect\",\n description: \"Manual input step\",\n aliases: [\"manual-input\", \"sloped-rectangle\"],\n handler: slopedRect\n },\n {\n semanticName: \"Multi-Document\",\n name: \"Stacked Document\",\n shortName: \"docs\",\n description: \"Multiple documents\",\n aliases: [\"documents\", \"st-doc\", \"stacked-document\"],\n handler: multiWaveEdgedRectangle\n },\n {\n semanticName: \"Multi-Process\",\n name: \"Stacked Rectangle\",\n shortName: \"st-rect\",\n description: \"Multiple processes\",\n aliases: [\"procs\", \"processes\", \"stacked-rectangle\"],\n handler: multiRect\n },\n {\n semanticName: \"Stored Data\",\n name: \"Bow Tie Rectangle\",\n shortName: \"bow-rect\",\n description: \"Stored data\",\n aliases: [\"stored-data\", \"bow-tie-rectangle\"],\n handler: bowTieRect\n },\n {\n semanticName: \"Summary\",\n name: \"Crossed Circle\",\n shortName: \"cross-circ\",\n description: \"Summary\",\n aliases: [\"summary\", \"crossed-circle\"],\n handler: crossedCircle\n },\n {\n semanticName: \"Tagged Document\",\n name: \"Tagged Document\",\n shortName: \"tag-doc\",\n description: \"Tagged document\",\n aliases: [\"tag-doc\", \"tagged-document\"],\n handler: taggedWaveEdgedRectangle\n },\n {\n semanticName: \"Tagged Process\",\n name: \"Tagged Rectangle\",\n shortName: \"tag-rect\",\n description: \"Tagged process\",\n aliases: [\"tagged-rectangle\", \"tag-proc\", \"tagged-process\"],\n handler: taggedRect\n },\n {\n semanticName: \"Paper Tape\",\n name: \"Flag\",\n shortName: \"flag\",\n description: \"Paper tape\",\n aliases: [\"paper-tape\"],\n handler: waveRectangle\n },\n {\n semanticName: \"Odd\",\n name: \"Odd\",\n shortName: \"odd\",\n description: \"Odd shape\",\n internalAliases: [\"rect_left_inv_arrow\"],\n handler: rect_left_inv_arrow\n },\n {\n semanticName: \"Lined Document\",\n name: \"Lined Document\",\n shortName: \"lin-doc\",\n description: \"Lined document\",\n aliases: [\"lined-document\"],\n handler: linedWaveEdgedRect\n }\n];\nvar generateShapeMap = /* @__PURE__ */ __name(() => {\n const undocumentedShapes = {\n // States\n state,\n choice,\n note,\n // Rectangles\n rectWithTitle,\n labelRect,\n // Icons\n iconSquare,\n iconCircle,\n icon,\n iconRounded,\n imageSquare,\n anchor,\n // Kanban diagram\n kanbanItem,\n //Mindmap diagram\n mindmapCircle,\n defaultMindmapNode,\n // class diagram\n classBox,\n // er diagram\n erBox,\n // Requirement diagram\n requirementBox\n };\n const entries = [\n ...Object.entries(undocumentedShapes),\n ...shapesDefs.flatMap((shape) => {\n const aliases = [\n shape.shortName,\n ...\"aliases\" in shape ? shape.aliases : [],\n ...\"internalAliases\" in shape ? shape.internalAliases : []\n ];\n return aliases.map((alias) => [alias, shape.handler]);\n })\n ];\n return Object.fromEntries(entries);\n}, \"generateShapeMap\");\nvar shapes2 = generateShapeMap();\nfunction isValidShape(shape) {\n return shape in shapes2;\n}\n__name(isValidShape, \"isValidShape\");\n\n// src/rendering-util/rendering-elements/nodes.ts\nvar nodeElems = /* @__PURE__ */ new Map();\nasync function insertNode(elem, node, renderOptions) {\n let newEl;\n let el;\n if (node.shape === \"rect\") {\n if (node.rx && node.ry) {\n node.shape = \"roundedRect\";\n } else {\n node.shape = \"squareRect\";\n }\n }\n const shapeHandler = node.shape ? shapes2[node.shape] : void 0;\n if (!shapeHandler) {\n throw new Error(`No such shape: ${node.shape}. Please check your syntax.`);\n }\n if (node.link) {\n let target;\n if (renderOptions.config.securityLevel === \"sandbox\") {\n target = \"_top\";\n } else if (node.linkTarget) {\n target = node.linkTarget || \"_blank\";\n }\n newEl = elem.insert(\"svg:a\").attr(\"xlink:href\", node.link).attr(\"target\", target ?? null);\n el = await shapeHandler(newEl, node, renderOptions);\n } else {\n el = await shapeHandler(elem, node, renderOptions);\n newEl = el;\n }\n if (node.tooltip) {\n el.attr(\"title\", node.tooltip);\n }\n nodeElems.set(node.id, newEl);\n if (node.haveCallback) {\n newEl.attr(\"class\", newEl.attr(\"class\") + \" clickable\");\n }\n return newEl;\n}\n__name(insertNode, \"insertNode\");\nvar setNodeElem = /* @__PURE__ */ __name((elem, node) => {\n nodeElems.set(node.id, elem);\n}, \"setNodeElem\");\nvar clear2 = /* @__PURE__ */ __name(() => {\n nodeElems.clear();\n}, \"clear\");\nvar positionNode = /* @__PURE__ */ __name((node) => {\n const el = nodeElems.get(node.id);\n log.trace(\n \"Transforming node\",\n node.diff,\n node,\n \"translate(\" + (node.x - node.width / 2 - 5) + \", \" + node.width / 2 + \")\"\n );\n const padding = 8;\n const diff = node.diff || 0;\n if (node.clusterNode) {\n el.attr(\n \"transform\",\n \"translate(\" + (node.x + diff - node.width / 2) + \", \" + (node.y - node.height / 2 - padding) + \")\"\n );\n } else {\n el.attr(\"transform\", \"translate(\" + node.x + \", \" + node.y + \")\");\n }\n return diff;\n}, \"positionNode\");\n\nexport {\n labelHelper,\n updateNodeBounds,\n createLabel_default,\n isValidShape,\n insertCluster,\n clear,\n insertNode,\n setNodeElem,\n clear2,\n positionNode\n};\n","import {\n getLineFunctionsWithOffset,\n markerOffsets,\n markerOffsets2\n} from \"./chunk-HN2XXSSU.mjs\";\nimport {\n createLabel_default\n} from \"./chunk-JZLCHNYA.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-CVBHYZKI.mjs\";\nimport {\n isLabelStyle,\n styles2String\n} from \"./chunk-ATLVNIR6.mjs\";\nimport {\n createText\n} from \"./chunk-JA3XYJ7Z.mjs\";\nimport {\n utils_default\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n evaluate,\n getConfig2 as getConfig\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/rendering-elements/edges.js\nimport {\n curveBasis,\n curveLinear,\n curveCardinal,\n curveBumpX,\n curveBumpY,\n curveCatmullRom,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore,\n line,\n select\n} from \"d3\";\nimport rough from \"roughjs\";\n\n// src/rendering-util/rendering-elements/edgeMarker.ts\nvar addEdgeMarkers = /* @__PURE__ */ __name((svgPath, edge, url, id, diagramType, strokeColor) => {\n if (edge.arrowTypeStart) {\n addEdgeMarker(svgPath, \"start\", edge.arrowTypeStart, url, id, diagramType, strokeColor);\n }\n if (edge.arrowTypeEnd) {\n addEdgeMarker(svgPath, \"end\", edge.arrowTypeEnd, url, id, diagramType, strokeColor);\n }\n}, \"addEdgeMarkers\");\nvar arrowTypesMap = {\n arrow_cross: { type: \"cross\", fill: false },\n arrow_point: { type: \"point\", fill: true },\n arrow_barb: { type: \"barb\", fill: true },\n arrow_circle: { type: \"circle\", fill: false },\n aggregation: { type: \"aggregation\", fill: false },\n extension: { type: \"extension\", fill: false },\n composition: { type: \"composition\", fill: true },\n dependency: { type: \"dependency\", fill: true },\n lollipop: { type: \"lollipop\", fill: false },\n only_one: { type: \"onlyOne\", fill: false },\n zero_or_one: { type: \"zeroOrOne\", fill: false },\n one_or_more: { type: \"oneOrMore\", fill: false },\n zero_or_more: { type: \"zeroOrMore\", fill: false },\n requirement_arrow: { type: \"requirement_arrow\", fill: false },\n requirement_contains: { type: \"requirement_contains\", fill: false }\n};\nvar addEdgeMarker = /* @__PURE__ */ __name((svgPath, position, arrowType, url, id, diagramType, strokeColor) => {\n const arrowTypeInfo = arrowTypesMap[arrowType];\n if (!arrowTypeInfo) {\n log.warn(`Unknown arrow type: ${arrowType}`);\n return;\n }\n const endMarkerType = arrowTypeInfo.type;\n const suffix = position === \"start\" ? \"Start\" : \"End\";\n const originalMarkerId = `${id}_${diagramType}-${endMarkerType}${suffix}`;\n if (strokeColor && strokeColor.trim() !== \"\") {\n const colorId = strokeColor.replace(/[^\\dA-Za-z]/g, \"_\");\n const coloredMarkerId = `${originalMarkerId}_${colorId}`;\n if (!document.getElementById(coloredMarkerId)) {\n const originalMarker = document.getElementById(originalMarkerId);\n if (originalMarker) {\n const coloredMarker = originalMarker.cloneNode(true);\n coloredMarker.id = coloredMarkerId;\n const paths = coloredMarker.querySelectorAll(\"path, circle, line\");\n paths.forEach((path) => {\n path.setAttribute(\"stroke\", strokeColor);\n if (arrowTypeInfo.fill) {\n path.setAttribute(\"fill\", strokeColor);\n }\n });\n originalMarker.parentNode?.appendChild(coloredMarker);\n }\n }\n svgPath.attr(`marker-${position}`, `url(${url}#${coloredMarkerId})`);\n } else {\n svgPath.attr(`marker-${position}`, `url(${url}#${originalMarkerId})`);\n }\n}, \"addEdgeMarker\");\n\n// src/rendering-util/rendering-elements/edges.js\nvar edgeLabels = /* @__PURE__ */ new Map();\nvar terminalLabels = /* @__PURE__ */ new Map();\nvar clear = /* @__PURE__ */ __name(() => {\n edgeLabels.clear();\n terminalLabels.clear();\n}, \"clear\");\nvar getLabelStyles = /* @__PURE__ */ __name((styleArray) => {\n let styles = styleArray ? styleArray.reduce((acc, style) => acc + \";\" + style, \"\") : \"\";\n return styles;\n}, \"getLabelStyles\");\nvar insertEdgeLabel = /* @__PURE__ */ __name(async (elem, edge) => {\n let useHtmlLabels = evaluate(getConfig().flowchart.htmlLabels);\n const { labelStyles } = styles2String(edge);\n edge.labelStyle = labelStyles;\n const labelElement = await createText(elem, edge.label, {\n style: edge.labelStyle,\n useHtmlLabels,\n addSvgBackground: true,\n isNode: false\n });\n log.info(\"abc82\", edge, edge.labelType);\n const edgeLabel = elem.insert(\"g\").attr(\"class\", \"edgeLabel\");\n const label = edgeLabel.insert(\"g\").attr(\"class\", \"label\").attr(\"data-id\", edge.id);\n label.node().appendChild(labelElement);\n let bbox = labelElement.getBBox();\n if (useHtmlLabels) {\n const div = labelElement.children[0];\n const dv = select(labelElement);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n edgeLabels.set(edge.id, edgeLabel);\n edge.width = bbox.width;\n edge.height = bbox.height;\n let fo;\n if (edge.startLabelLeft) {\n const startLabelElement = await createLabel_default(\n edge.startLabelLeft,\n getLabelStyles(edge.labelStyle)\n );\n const startEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).startLeft = startEdgeLabelLeft;\n setTerminalWidth(fo, edge.startLabelLeft);\n }\n if (edge.startLabelRight) {\n const startLabelElement = await createLabel_default(\n edge.startLabelRight,\n getLabelStyles(edge.labelStyle)\n );\n const startEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = startEdgeLabelRight.node().appendChild(startLabelElement);\n inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).startRight = startEdgeLabelRight;\n setTerminalWidth(fo, edge.startLabelRight);\n }\n if (edge.endLabelLeft) {\n const endLabelElement = await createLabel_default(edge.endLabelLeft, getLabelStyles(edge.labelStyle));\n const endEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelLeft.node().appendChild(endLabelElement);\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).endLeft = endEdgeLabelLeft;\n setTerminalWidth(fo, edge.endLabelLeft);\n }\n if (edge.endLabelRight) {\n const endLabelElement = await createLabel_default(edge.endLabelRight, getLabelStyles(edge.labelStyle));\n const endEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelRight.node().appendChild(endLabelElement);\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).endRight = endEdgeLabelRight;\n setTerminalWidth(fo, edge.endLabelRight);\n }\n return labelElement;\n}, \"insertEdgeLabel\");\nfunction setTerminalWidth(fo, value) {\n if (getConfig().flowchart.htmlLabels && fo) {\n fo.style.width = value.length * 9 + \"px\";\n fo.style.height = \"12px\";\n }\n}\n__name(setTerminalWidth, \"setTerminalWidth\");\nvar positionEdgeLabel = /* @__PURE__ */ __name((edge, paths) => {\n log.debug(\"Moving label abc88 \", edge.id, edge.label, edgeLabels.get(edge.id), paths);\n let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n const siteConfig = getConfig();\n const { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);\n if (edge.label) {\n const el = edgeLabels.get(edge.id);\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcLabelPosition(path);\n log.debug(\n \"Moving label \" + edge.label + \" from (\",\n x,\n \",\",\n y,\n \") to (\",\n pos.x,\n \",\",\n pos.y,\n \") abc88\"\n );\n if (paths.updatedPath) {\n x = pos.x;\n y = pos.y;\n }\n }\n el.attr(\"transform\", `translate(${x}, ${y + subGraphTitleTotalMargin / 2})`);\n }\n if (edge.startLabelLeft) {\n const el = terminalLabels.get(edge.id).startLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, \"start_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.startLabelRight) {\n const el = terminalLabels.get(edge.id).startRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(\n edge.arrowTypeStart ? 10 : 0,\n \"start_right\",\n path\n );\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelLeft) {\n const el = terminalLabels.get(edge.id).endLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelRight) {\n const el = terminalLabels.get(edge.id).endRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_right\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n}, \"positionEdgeLabel\");\nvar outsideNode = /* @__PURE__ */ __name((node, point2) => {\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(point2.x - x);\n const dy = Math.abs(point2.y - y);\n const w = node.width / 2;\n const h = node.height / 2;\n return dx >= w || dy >= h;\n}, \"outsideNode\");\nvar intersection = /* @__PURE__ */ __name((node, outsidePoint, insidePoint) => {\n log.debug(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(outsidePoint)}\n insidePoint : ${JSON.stringify(insidePoint)}\n node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(x - insidePoint.x);\n const w = node.width / 2;\n let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;\n const h = node.height / 2;\n const Q = Math.abs(outsidePoint.y - insidePoint.y);\n const R = Math.abs(outsidePoint.x - insidePoint.x);\n if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) {\n let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n r = R * q / Q;\n const res = {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q\n };\n if (r === 0) {\n res.x = outsidePoint.x;\n res.y = outsidePoint.y;\n }\n if (R === 0) {\n res.x = outsidePoint.x;\n }\n if (Q === 0) {\n res.y = outsidePoint.y;\n }\n log.debug(`abc89 top/bottom calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);\n return res;\n } else {\n if (insidePoint.x < outsidePoint.x) {\n r = outsidePoint.x - w - x;\n } else {\n r = x - w - outsidePoint.x;\n }\n let q = Q * r / R;\n let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;\n let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;\n log.debug(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });\n if (r === 0) {\n _x = outsidePoint.x;\n _y = outsidePoint.y;\n }\n if (R === 0) {\n _x = outsidePoint.x;\n }\n if (Q === 0) {\n _y = outsidePoint.y;\n }\n return { x: _x, y: _y };\n }\n}, \"intersection\");\nvar cutPathAtIntersect = /* @__PURE__ */ __name((_points, boundaryNode) => {\n log.warn(\"abc88 cutPathAtIntersect\", _points, boundaryNode);\n let points = [];\n let lastPointOutside = _points[0];\n let isInside = false;\n _points.forEach((point2) => {\n log.info(\"abc88 checking point\", point2, boundaryNode);\n if (!outsideNode(boundaryNode, point2) && !isInside) {\n const inter = intersection(boundaryNode, lastPointOutside, point2);\n log.debug(\"abc88 inside\", point2, lastPointOutside, inter);\n log.debug(\"abc88 intersection\", inter, boundaryNode);\n let pointPresent = false;\n points.forEach((p) => {\n pointPresent = pointPresent || p.x === inter.x && p.y === inter.y;\n });\n if (!points.some((e) => e.x === inter.x && e.y === inter.y)) {\n points.push(inter);\n } else {\n log.warn(\"abc88 no intersect\", inter, points);\n }\n isInside = true;\n } else {\n log.warn(\"abc88 outside\", point2, lastPointOutside);\n lastPointOutside = point2;\n if (!isInside) {\n points.push(point2);\n }\n }\n });\n log.debug(\"returning points\", points);\n return points;\n}, \"cutPathAtIntersect\");\nfunction extractCornerPoints(points) {\n const cornerPoints = [];\n const cornerPointPositions = [];\n for (let i = 1; i < points.length - 1; i++) {\n const prev = points[i - 1];\n const curr = points[i];\n const next = points[i + 1];\n if (prev.x === curr.x && curr.y === next.y && Math.abs(curr.x - next.x) > 5 && Math.abs(curr.y - prev.y) > 5) {\n cornerPoints.push(curr);\n cornerPointPositions.push(i);\n } else if (prev.y === curr.y && curr.x === next.x && Math.abs(curr.x - prev.x) > 5 && Math.abs(curr.y - next.y) > 5) {\n cornerPoints.push(curr);\n cornerPointPositions.push(i);\n }\n }\n return { cornerPoints, cornerPointPositions };\n}\n__name(extractCornerPoints, \"extractCornerPoints\");\nvar findAdjacentPoint = /* @__PURE__ */ __name(function(pointA, pointB, distance) {\n const xDiff = pointB.x - pointA.x;\n const yDiff = pointB.y - pointA.y;\n const length = Math.sqrt(xDiff * xDiff + yDiff * yDiff);\n const ratio = distance / length;\n return { x: pointB.x - ratio * xDiff, y: pointB.y - ratio * yDiff };\n}, \"findAdjacentPoint\");\nvar fixCorners = /* @__PURE__ */ __name(function(lineData) {\n const { cornerPointPositions } = extractCornerPoints(lineData);\n const newLineData = [];\n for (let i = 0; i < lineData.length; i++) {\n if (cornerPointPositions.includes(i)) {\n const prevPoint = lineData[i - 1];\n const nextPoint = lineData[i + 1];\n const cornerPoint = lineData[i];\n const newPrevPoint = findAdjacentPoint(prevPoint, cornerPoint, 5);\n const newNextPoint = findAdjacentPoint(nextPoint, cornerPoint, 5);\n const xDiff = newNextPoint.x - newPrevPoint.x;\n const yDiff = newNextPoint.y - newPrevPoint.y;\n newLineData.push(newPrevPoint);\n const a = Math.sqrt(2) * 2;\n let newCornerPoint = { x: cornerPoint.x, y: cornerPoint.y };\n if (Math.abs(nextPoint.x - prevPoint.x) > 10 && Math.abs(nextPoint.y - prevPoint.y) >= 10) {\n log.debug(\n \"Corner point fixing\",\n Math.abs(nextPoint.x - prevPoint.x),\n Math.abs(nextPoint.y - prevPoint.y)\n );\n const r = 5;\n if (cornerPoint.x === newPrevPoint.x) {\n newCornerPoint = {\n x: xDiff < 0 ? newPrevPoint.x - r + a : newPrevPoint.x + r - a,\n y: yDiff < 0 ? newPrevPoint.y - a : newPrevPoint.y + a\n };\n } else {\n newCornerPoint = {\n x: xDiff < 0 ? newPrevPoint.x - a : newPrevPoint.x + a,\n y: yDiff < 0 ? newPrevPoint.y - r + a : newPrevPoint.y + r - a\n };\n }\n } else {\n log.debug(\n \"Corner point skipping fixing\",\n Math.abs(nextPoint.x - prevPoint.x),\n Math.abs(nextPoint.y - prevPoint.y)\n );\n }\n newLineData.push(newCornerPoint, newNextPoint);\n } else {\n newLineData.push(lineData[i]);\n }\n }\n return newLineData;\n}, \"fixCorners\");\nvar generateDashArray = /* @__PURE__ */ __name((len, oValueS, oValueE) => {\n const middleLength = len - oValueS - oValueE;\n const dashLength = 2;\n const gapLength = 2;\n const dashGapPairLength = dashLength + gapLength;\n const numberOfPairs = Math.floor(middleLength / dashGapPairLength);\n const middlePattern = Array(numberOfPairs).fill(`${dashLength} ${gapLength}`).join(\" \");\n const dashArray = `0 ${oValueS} ${middlePattern} ${oValueE}`;\n return dashArray;\n}, \"generateDashArray\");\nvar insertEdge = /* @__PURE__ */ __name(function(elem, edge, clusterDb, diagramType, startNode, endNode, id, skipIntersect = false) {\n const { handDrawnSeed } = getConfig();\n let points = edge.points;\n let pointsHasChanged = false;\n const tail = startNode;\n var head = endNode;\n const edgeClassStyles = [];\n for (const key in edge.cssCompiledStyles) {\n if (isLabelStyle(key)) {\n continue;\n }\n edgeClassStyles.push(edge.cssCompiledStyles[key]);\n }\n log.debug(\"UIO intersect check\", edge.points, head.x, tail.x);\n if (head.intersect && tail.intersect && !skipIntersect) {\n points = points.slice(1, edge.points.length - 1);\n points.unshift(tail.intersect(points[0]));\n log.debug(\n \"Last point UIO\",\n edge.start,\n \"-->\",\n edge.end,\n points[points.length - 1],\n head,\n head.intersect(points[points.length - 1])\n );\n points.push(head.intersect(points[points.length - 1]));\n }\n const pointsStr = btoa(JSON.stringify(points));\n if (edge.toCluster) {\n log.info(\"to cluster abc88\", clusterDb.get(edge.toCluster));\n points = cutPathAtIntersect(edge.points, clusterDb.get(edge.toCluster).node);\n pointsHasChanged = true;\n }\n if (edge.fromCluster) {\n log.debug(\n \"from cluster abc88\",\n clusterDb.get(edge.fromCluster),\n JSON.stringify(points, null, 2)\n );\n points = cutPathAtIntersect(points.reverse(), clusterDb.get(edge.fromCluster).node).reverse();\n pointsHasChanged = true;\n }\n let lineData = points.filter((p) => !Number.isNaN(p.y));\n lineData = fixCorners(lineData);\n let curve = curveBasis;\n curve = curveLinear;\n switch (edge.curve) {\n case \"linear\":\n curve = curveLinear;\n break;\n case \"basis\":\n curve = curveBasis;\n break;\n case \"cardinal\":\n curve = curveCardinal;\n break;\n case \"bumpX\":\n curve = curveBumpX;\n break;\n case \"bumpY\":\n curve = curveBumpY;\n break;\n case \"catmullRom\":\n curve = curveCatmullRom;\n break;\n case \"monotoneX\":\n curve = curveMonotoneX;\n break;\n case \"monotoneY\":\n curve = curveMonotoneY;\n break;\n case \"natural\":\n curve = curveNatural;\n break;\n case \"step\":\n curve = curveStep;\n break;\n case \"stepAfter\":\n curve = curveStepAfter;\n break;\n case \"stepBefore\":\n curve = curveStepBefore;\n break;\n default:\n curve = curveBasis;\n }\n const { x, y } = getLineFunctionsWithOffset(edge);\n const lineFunction = line().x(x).y(y).curve(curve);\n let strokeClasses;\n switch (edge.thickness) {\n case \"normal\":\n strokeClasses = \"edge-thickness-normal\";\n break;\n case \"thick\":\n strokeClasses = \"edge-thickness-thick\";\n break;\n case \"invisible\":\n strokeClasses = \"edge-thickness-invisible\";\n break;\n default:\n strokeClasses = \"edge-thickness-normal\";\n }\n switch (edge.pattern) {\n case \"solid\":\n strokeClasses += \" edge-pattern-solid\";\n break;\n case \"dotted\":\n strokeClasses += \" edge-pattern-dotted\";\n break;\n case \"dashed\":\n strokeClasses += \" edge-pattern-dashed\";\n break;\n default:\n strokeClasses += \" edge-pattern-solid\";\n }\n let svgPath;\n let linePath = edge.curve === \"rounded\" ? generateRoundedPath(applyMarkerOffsetsToPoints(lineData, edge), 5) : lineFunction(lineData);\n const edgeStyles = Array.isArray(edge.style) ? edge.style : [edge.style];\n let strokeColor = edgeStyles.find((style) => style?.startsWith(\"stroke:\"));\n let animatedEdge = false;\n if (edge.look === \"handDrawn\") {\n const rc = rough.svg(elem);\n Object.assign([], lineData);\n const svgPathNode = rc.path(linePath, {\n roughness: 0.3,\n seed: handDrawnSeed\n });\n strokeClasses += \" transition\";\n svgPath = select(svgPathNode).select(\"path\").attr(\"id\", edge.id).attr(\"class\", \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\")).attr(\"style\", edgeStyles ? edgeStyles.reduce((acc, style) => acc + \";\" + style, \"\") : \"\");\n let d = svgPath.attr(\"d\");\n svgPath.attr(\"d\", d);\n elem.node().appendChild(svgPath.node());\n } else {\n const stylesFromClasses = edgeClassStyles.join(\";\");\n const styles = edgeStyles ? edgeStyles.reduce((acc, style) => acc + style + \";\", \"\") : \"\";\n let animationClass = \"\";\n if (edge.animate) {\n animationClass = \" edge-animation-fast\";\n }\n if (edge.animation) {\n animationClass = \" edge-animation-\" + edge.animation;\n }\n const pathStyle = (stylesFromClasses ? stylesFromClasses + \";\" + styles + \";\" : styles) + \";\" + (edgeStyles ? edgeStyles.reduce((acc, style) => acc + \";\" + style, \"\") : \"\");\n svgPath = elem.append(\"path\").attr(\"d\", linePath).attr(\"id\", edge.id).attr(\n \"class\",\n \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\") + (animationClass ?? \"\")\n ).attr(\"style\", pathStyle);\n strokeColor = pathStyle.match(/stroke:([^;]+)/)?.[1];\n animatedEdge = edge.animate === true || !!edge.animation || stylesFromClasses.includes(\"animation\");\n const pathNode = svgPath.node();\n const len = typeof pathNode.getTotalLength === \"function\" ? pathNode.getTotalLength() : 0;\n const oValueS = markerOffsets2[edge.arrowTypeStart] || 0;\n const oValueE = markerOffsets2[edge.arrowTypeEnd] || 0;\n if (edge.look === \"neo\" && !animatedEdge) {\n const dashArray = edge.pattern === \"dotted\" || edge.pattern === \"dashed\" ? generateDashArray(len, oValueS, oValueE) : `0 ${oValueS} ${len - oValueS - oValueE} ${oValueE}`;\n const mOffset = `stroke-dasharray: ${dashArray}; stroke-dashoffset: 0;`;\n svgPath.attr(\"style\", mOffset + svgPath.attr(\"style\"));\n }\n }\n svgPath.attr(\"data-edge\", true);\n svgPath.attr(\"data-et\", \"edge\");\n svgPath.attr(\"data-id\", edge.id);\n svgPath.attr(\"data-points\", pointsStr);\n if (edge.showPoints) {\n lineData.forEach((point3) => {\n elem.append(\"circle\").style(\"stroke\", \"red\").style(\"fill\", \"red\").attr(\"r\", 1).attr(\"cx\", point3.x).attr(\"cy\", point3.y);\n });\n }\n let url = \"\";\n if (getConfig().flowchart.arrowMarkerAbsolute || getConfig().state.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\").replace(/\\)/g, \"\\\\)\");\n }\n log.info(\"arrowTypeStart\", edge.arrowTypeStart);\n log.info(\"arrowTypeEnd\", edge.arrowTypeEnd);\n addEdgeMarkers(svgPath, edge, url, id, diagramType, strokeColor);\n const midIndex = Math.floor(points.length / 2);\n const point2 = points[midIndex];\n if (!utils_default.isLabelCoordinateInPath(point2, svgPath.attr(\"d\"))) {\n pointsHasChanged = true;\n }\n let paths = {};\n if (pointsHasChanged) {\n paths.updatedPath = points;\n }\n paths.originalPath = edge.points;\n return paths;\n}, \"insertEdge\");\nfunction generateRoundedPath(points, radius) {\n if (points.length < 2) {\n return \"\";\n }\n let path = \"\";\n const size = points.length;\n const epsilon = 1e-5;\n for (let i = 0; i < size; i++) {\n const currPoint = points[i];\n const prevPoint = points[i - 1];\n const nextPoint = points[i + 1];\n if (i === 0) {\n path += `M${currPoint.x},${currPoint.y}`;\n } else if (i === size - 1) {\n path += `L${currPoint.x},${currPoint.y}`;\n } else {\n const dx1 = currPoint.x - prevPoint.x;\n const dy1 = currPoint.y - prevPoint.y;\n const dx2 = nextPoint.x - currPoint.x;\n const dy2 = nextPoint.y - currPoint.y;\n const len1 = Math.hypot(dx1, dy1);\n const len2 = Math.hypot(dx2, dy2);\n if (len1 < epsilon || len2 < epsilon) {\n path += `L${currPoint.x},${currPoint.y}`;\n continue;\n }\n const nx1 = dx1 / len1;\n const ny1 = dy1 / len1;\n const nx2 = dx2 / len2;\n const ny2 = dy2 / len2;\n const dot = nx1 * nx2 + ny1 * ny2;\n const clampedDot = Math.max(-1, Math.min(1, dot));\n const angle = Math.acos(clampedDot);\n if (angle < epsilon || Math.abs(Math.PI - angle) < epsilon) {\n path += `L${currPoint.x},${currPoint.y}`;\n continue;\n }\n const cutLen = Math.min(radius / Math.sin(angle / 2), len1 / 2, len2 / 2);\n const startX = currPoint.x - nx1 * cutLen;\n const startY = currPoint.y - ny1 * cutLen;\n const endX = currPoint.x + nx2 * cutLen;\n const endY = currPoint.y + ny2 * cutLen;\n path += `L${startX},${startY}`;\n path += `Q${currPoint.x},${currPoint.y} ${endX},${endY}`;\n }\n }\n return path;\n}\n__name(generateRoundedPath, \"generateRoundedPath\");\nfunction calculateDeltaAndAngle(point1, point2) {\n if (!point1 || !point2) {\n return { angle: 0, deltaX: 0, deltaY: 0 };\n }\n const deltaX = point2.x - point1.x;\n const deltaY = point2.y - point1.y;\n const angle = Math.atan2(deltaY, deltaX);\n return { angle, deltaX, deltaY };\n}\n__name(calculateDeltaAndAngle, \"calculateDeltaAndAngle\");\nfunction applyMarkerOffsetsToPoints(points, edge) {\n const newPoints = points.map((point2) => ({ ...point2 }));\n if (points.length >= 2 && markerOffsets[edge.arrowTypeStart]) {\n const offsetValue = markerOffsets[edge.arrowTypeStart];\n const point1 = points[0];\n const point2 = points[1];\n const { angle } = calculateDeltaAndAngle(point1, point2);\n const offsetX = offsetValue * Math.cos(angle);\n const offsetY = offsetValue * Math.sin(angle);\n newPoints[0].x = point1.x + offsetX;\n newPoints[0].y = point1.y + offsetY;\n }\n const n = points.length;\n if (n >= 2 && markerOffsets[edge.arrowTypeEnd]) {\n const offsetValue = markerOffsets[edge.arrowTypeEnd];\n const point1 = points[n - 1];\n const point2 = points[n - 2];\n const { angle } = calculateDeltaAndAngle(point2, point1);\n const offsetX = offsetValue * Math.cos(angle);\n const offsetY = offsetValue * Math.sin(angle);\n newPoints[n - 1].x = point1.x - offsetX;\n newPoints[n - 1].y = point1.y - offsetY;\n }\n return newPoints;\n}\n__name(applyMarkerOffsetsToPoints, \"applyMarkerOffsetsToPoints\");\n\n// src/rendering-util/rendering-elements/markers.js\nvar insertMarkers = /* @__PURE__ */ __name((elem, markerArray, type, id) => {\n markerArray.forEach((markerName) => {\n markers[markerName](elem, type, id);\n });\n}, \"insertMarkers\");\nvar extension = /* @__PURE__ */ __name((elem, type, id) => {\n log.trace(\"Making markers for \", id);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionStart\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,7 L18,13 V 1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionEnd\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 V 13 L18,7 Z\");\n}, \"extension\");\nvar composition = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionStart\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionEnd\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n}, \"composition\");\nvar aggregation = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationStart\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationEnd\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n}, \"aggregation\");\nvar dependency = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyStart\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 6).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 5,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyEnd\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 13).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L14,7 L9,1 Z\");\n}, \"dependency\");\nvar lollipop = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopStart\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 13).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"circle\").attr(\"stroke\", \"black\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopEnd\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"circle\").attr(\"stroke\", \"black\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6);\n}, \"lollipop\");\nvar point = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointEnd\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 5).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointStart\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 4.5).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 5 L 10 10 L 10 0 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n}, \"point\");\nvar circle = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleEnd\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 11).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleStart\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", -1).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n}, \"circle\");\nvar cross = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossEnd\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 11 11\").attr(\"refX\", 12).attr(\"refY\", 5.2).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossStart\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 11 11\").attr(\"refX\", -1).attr(\"refY\", 5.2).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"1,0\");\n}, \"cross\");\nvar barb = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-barbEnd\").attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 14).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 19,7 L9,13 L14,7 L9,1 Z\");\n}, \"barb\");\nvar only_one = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-onlyOneStart\").attr(\"class\", \"marker onlyOne \" + type).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M9,0 L9,18 M15,0 L15,18\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-onlyOneEnd\").attr(\"class\", \"marker onlyOne \" + type).attr(\"refX\", 18).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M3,0 L3,18 M9,0 L9,18\");\n}, \"only_one\");\nvar zero_or_one = /* @__PURE__ */ __name((elem, type, id) => {\n const startMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrOneStart\").attr(\"class\", \"marker zeroOrOne \" + type).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n startMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 21).attr(\"cy\", 9).attr(\"r\", 6);\n startMarker.append(\"path\").attr(\"d\", \"M9,0 L9,18\");\n const endMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrOneEnd\").attr(\"class\", \"marker zeroOrOne \" + type).attr(\"refX\", 30).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n endMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 9).attr(\"r\", 6);\n endMarker.append(\"path\").attr(\"d\", \"M21,0 L21,18\");\n}, \"zero_or_one\");\nvar one_or_more = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-oneOrMoreStart\").attr(\"class\", \"marker oneOrMore \" + type).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-oneOrMoreEnd\").attr(\"class\", \"marker oneOrMore \" + type).attr(\"refX\", 27).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18\");\n}, \"one_or_more\");\nvar zero_or_more = /* @__PURE__ */ __name((elem, type, id) => {\n const startMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrMoreStart\").attr(\"class\", \"marker zeroOrMore \" + type).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n startMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 48).attr(\"cy\", 18).attr(\"r\", 6);\n startMarker.append(\"path\").attr(\"d\", \"M0,18 Q18,0 36,18 Q18,36 0,18\");\n const endMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrMoreEnd\").attr(\"class\", \"marker zeroOrMore \" + type).attr(\"refX\", 39).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n endMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 18).attr(\"r\", 6);\n endMarker.append(\"path\").attr(\"d\", \"M21,18 Q39,0 57,18 Q39,36 21,18\");\n}, \"zero_or_more\");\nvar requirement_arrow = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-requirement_arrowEnd\").attr(\"refX\", 20).attr(\"refY\", 10).attr(\"markerWidth\", 20).attr(\"markerHeight\", 20).attr(\"orient\", \"auto\").append(\"path\").attr(\n \"d\",\n `M0,0\n L20,10\n M20,10\n L0,20`\n );\n}, \"requirement_arrow\");\nvar requirement_contains = /* @__PURE__ */ __name((elem, type, id) => {\n const containsNode = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-requirement_containsStart\").attr(\"refX\", 0).attr(\"refY\", 10).attr(\"markerWidth\", 20).attr(\"markerHeight\", 20).attr(\"orient\", \"auto\").append(\"g\");\n containsNode.append(\"circle\").attr(\"cx\", 10).attr(\"cy\", 10).attr(\"r\", 9).attr(\"fill\", \"none\");\n containsNode.append(\"line\").attr(\"x1\", 1).attr(\"x2\", 19).attr(\"y1\", 10).attr(\"y2\", 10);\n containsNode.append(\"line\").attr(\"y1\", 1).attr(\"y2\", 19).attr(\"x1\", 10).attr(\"x2\", 10);\n}, \"requirement_contains\");\nvar markers = {\n extension,\n composition,\n aggregation,\n dependency,\n lollipop,\n point,\n circle,\n cross,\n barb,\n only_one,\n zero_or_one,\n one_or_more,\n zero_or_more,\n requirement_arrow,\n requirement_contains\n};\nvar markers_default = insertMarkers;\n\nexport {\n clear,\n insertEdgeLabel,\n positionEdgeLabel,\n insertEdge,\n markers_default\n};\n","import {\n insertEdge,\n insertEdgeLabel,\n markers_default,\n positionEdgeLabel\n} from \"./chunk-QXUST7PY.mjs\";\nimport {\n insertCluster,\n insertNode,\n labelHelper\n} from \"./chunk-JZLCHNYA.mjs\";\nimport {\n interpolateToCurve\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n common_default,\n getConfig\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/internals.ts\nvar internalHelpers = {\n common: common_default,\n getConfig,\n insertCluster,\n insertEdge,\n insertEdgeLabel,\n insertMarkers: markers_default,\n insertNode,\n interpolateToCurve,\n labelHelper,\n log,\n positionEdgeLabel\n};\n\n// src/rendering-util/render.ts\nvar layoutAlgorithms = {};\nvar registerLayoutLoaders = /* @__PURE__ */ __name((loaders) => {\n for (const loader of loaders) {\n layoutAlgorithms[loader.name] = loader;\n }\n}, \"registerLayoutLoaders\");\nvar registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {\n registerLayoutLoaders([\n {\n name: \"dagre\",\n loader: /* @__PURE__ */ __name(async () => await import(\"./dagre-6UL2VRFP.mjs\"), \"loader\")\n },\n ...true ? [\n {\n name: \"cose-bilkent\",\n loader: /* @__PURE__ */ __name(async () => await import(\"./cose-bilkent-S5V4N54A.mjs\"), \"loader\")\n }\n ] : []\n ]);\n}, \"registerDefaultLayoutLoaders\");\nregisterDefaultLayoutLoaders();\nvar render = /* @__PURE__ */ __name(async (data4Layout, svg) => {\n if (!(data4Layout.layoutAlgorithm in layoutAlgorithms)) {\n throw new Error(`Unknown layout algorithm: ${data4Layout.layoutAlgorithm}`);\n }\n const layoutDefinition = layoutAlgorithms[data4Layout.layoutAlgorithm];\n const layoutRenderer = await layoutDefinition.loader();\n return layoutRenderer.render(data4Layout, svg, internalHelpers, {\n algorithm: layoutDefinition.algorithm\n });\n}, \"render\");\nvar getRegisteredLayoutAlgorithm = /* @__PURE__ */ __name((algorithm = \"\", { fallback = \"dagre\" } = {}) => {\n if (algorithm in layoutAlgorithms) {\n return algorithm;\n }\n if (fallback in layoutAlgorithms) {\n log.warn(`Layout algorithm ${algorithm} is not registered. Using ${fallback} as fallback.`);\n return fallback;\n }\n throw new Error(`Both layout algorithms ${algorithm} and ${fallback} are not registered.`);\n}, \"getRegisteredLayoutAlgorithm\");\n\nexport {\n registerLayoutLoaders,\n render,\n getRegisteredLayoutAlgorithm\n};\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\nexport var SCOPE = '@scope'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @param {number} position\n * @return {number}\n */\nexport function indexof (value, search, position) {\n\treturn value.indexOf(search, position)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, token, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f', abs(index ? points[index - 1] : 0)) != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tif ((token(previous || 1) == 5 || token(peek() || 1) == 5) && strlen(characters) && substr(characters, -1, void 0) !== ' ') characters += ' '\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length || (variable === 0 && previous === 47)))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tswitch (atrule) {\n\t\t\t\t\t\t\t\t\t// c(ontainer)\n\t\t\t\t\t\t\t\t\tcase 99:\n\t\t\t\t\t\t\t\t\t\tif (charat(characters, 3) === 110) break\n\t\t\t\t\t\t\t\t\t// l(ayer)\n\t\t\t\t\t\t\t\t\tcase 108:\n\t\t\t\t\t\t\t\t\t\tif (charat(characters, 2) === 97) break\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\toffset = 0\n\t\t\t\t\t\t\t\t\t// d(ocument) m(edia) s(upports)\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (offset) parse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\telse parse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES, NAMESPACE} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case NAMESPACE: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLike from './isArrayLike.js';\nimport isBuffer from './isBuffer.js';\nimport isPrototype from './_isPrototype.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport default isEmpty;\n","import {\n package_default\n} from \"./chunks/mermaid.core/chunk-XAJISQIX.mjs\";\nimport {\n selectSvgElement\n} from \"./chunks/mermaid.core/chunk-EXTU4WIE.mjs\";\nimport {\n JSON_SCHEMA,\n load\n} from \"./chunks/mermaid.core/chunk-MI3HLSF2.mjs\";\nimport {\n registerLayoutLoaders\n} from \"./chunks/mermaid.core/chunk-N4CR4FBY.mjs\";\nimport \"./chunks/mermaid.core/chunk-QXUST7PY.mjs\";\nimport \"./chunks/mermaid.core/chunk-HN2XXSSU.mjs\";\nimport \"./chunks/mermaid.core/chunk-JZLCHNYA.mjs\";\nimport \"./chunks/mermaid.core/chunk-CVBHYZKI.mjs\";\nimport \"./chunks/mermaid.core/chunk-ATLVNIR6.mjs\";\nimport {\n registerIconPacks\n} from \"./chunks/mermaid.core/chunk-JA3XYJ7Z.mjs\";\nimport {\n cleanAndMerge,\n decodeEntities,\n encodeEntities,\n isDetailedError,\n removeDirectives,\n utils_default\n} from \"./chunks/mermaid.core/chunk-S3R3BYOJ.mjs\";\nimport {\n UnknownDiagramError,\n addDirective,\n assignWithDepth_default,\n configureSvgSize,\n defaultConfig,\n detectType,\n detectors,\n evaluate,\n frontMatterRegex,\n getConfig,\n getDiagram,\n getDiagramLoader,\n getSiteConfig,\n registerDiagram,\n registerLazyLoadedDiagrams,\n reset,\n saveConfigFromInitialize,\n setConfig,\n setSiteConfig,\n styles_default,\n themes_default,\n updateSiteConfig\n} from \"./chunks/mermaid.core/chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log,\n setLogLevel\n} from \"./chunks/mermaid.core/chunk-AGHRB4JF.mjs\";\n\n// src/mermaid.ts\nimport { dedent } from \"ts-dedent\";\n\n// src/diagrams/c4/c4Detector.ts\nvar id = \"c4\";\nvar detector = /* @__PURE__ */ __name((txt) => {\n return /^\\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(txt);\n}, \"detector\");\nvar loader = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/c4Diagram-YG6GDRKO.mjs\");\n return { id, diagram: diagram2 };\n}, \"loader\");\nvar plugin = {\n id,\n detector,\n loader\n};\nvar c4Detector_default = plugin;\n\n// src/diagrams/flowchart/flowDetector.ts\nvar id2 = \"flowchart\";\nvar detector2 = /* @__PURE__ */ __name((txt, config) => {\n if (config?.flowchart?.defaultRenderer === \"dagre-wrapper\" || config?.flowchart?.defaultRenderer === \"elk\") {\n return false;\n }\n return /^\\s*graph/.test(txt);\n}, \"detector\");\nvar loader2 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/flowDiagram-NV44I4VS.mjs\");\n return { id: id2, diagram: diagram2 };\n}, \"loader\");\nvar plugin2 = {\n id: id2,\n detector: detector2,\n loader: loader2\n};\nvar flowDetector_default = plugin2;\n\n// src/diagrams/flowchart/flowDetector-v2.ts\nvar id3 = \"flowchart-v2\";\nvar detector3 = /* @__PURE__ */ __name((txt, config) => {\n if (config?.flowchart?.defaultRenderer === \"dagre-d3\") {\n return false;\n }\n if (config?.flowchart?.defaultRenderer === \"elk\") {\n config.layout = \"elk\";\n }\n if (/^\\s*graph/.test(txt) && config?.flowchart?.defaultRenderer === \"dagre-wrapper\") {\n return true;\n }\n return /^\\s*flowchart/.test(txt);\n}, \"detector\");\nvar loader3 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/flowDiagram-NV44I4VS.mjs\");\n return { id: id3, diagram: diagram2 };\n}, \"loader\");\nvar plugin3 = {\n id: id3,\n detector: detector3,\n loader: loader3\n};\nvar flowDetector_v2_default = plugin3;\n\n// src/diagrams/er/erDetector.ts\nvar id4 = \"er\";\nvar detector4 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*erDiagram/.test(txt);\n}, \"detector\");\nvar loader4 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/erDiagram-Q2GNP2WA.mjs\");\n return { id: id4, diagram: diagram2 };\n}, \"loader\");\nvar plugin4 = {\n id: id4,\n detector: detector4,\n loader: loader4\n};\nvar erDetector_default = plugin4;\n\n// src/diagrams/git/gitGraphDetector.ts\nvar id5 = \"gitGraph\";\nvar detector5 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*gitGraph/.test(txt);\n}, \"detector\");\nvar loader5 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/gitGraphDiagram-NY62KEGX.mjs\");\n return { id: id5, diagram: diagram2 };\n}, \"loader\");\nvar plugin5 = {\n id: id5,\n detector: detector5,\n loader: loader5\n};\nvar gitGraphDetector_default = plugin5;\n\n// src/diagrams/gantt/ganttDetector.ts\nvar id6 = \"gantt\";\nvar detector6 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*gantt/.test(txt);\n}, \"detector\");\nvar loader6 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/ganttDiagram-JELNMOA3.mjs\");\n return { id: id6, diagram: diagram2 };\n}, \"loader\");\nvar plugin6 = {\n id: id6,\n detector: detector6,\n loader: loader6\n};\nvar ganttDetector_default = plugin6;\n\n// src/diagrams/info/infoDetector.ts\nvar id7 = \"info\";\nvar detector7 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*info/.test(txt);\n}, \"detector\");\nvar loader7 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/infoDiagram-WHAUD3N6.mjs\");\n return { id: id7, diagram: diagram2 };\n}, \"loader\");\nvar info = {\n id: id7,\n detector: detector7,\n loader: loader7\n};\n\n// src/diagrams/pie/pieDetector.ts\nvar id8 = \"pie\";\nvar detector8 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*pie/.test(txt);\n}, \"detector\");\nvar loader8 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/pieDiagram-ADFJNKIX.mjs\");\n return { id: id8, diagram: diagram2 };\n}, \"loader\");\nvar pie = {\n id: id8,\n detector: detector8,\n loader: loader8\n};\n\n// src/diagrams/quadrant-chart/quadrantDetector.ts\nvar id9 = \"quadrantChart\";\nvar detector9 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*quadrantChart/.test(txt);\n}, \"detector\");\nvar loader9 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/quadrantDiagram-AYHSOK5B.mjs\");\n return { id: id9, diagram: diagram2 };\n}, \"loader\");\nvar plugin7 = {\n id: id9,\n detector: detector9,\n loader: loader9\n};\nvar quadrantDetector_default = plugin7;\n\n// src/diagrams/xychart/xychartDetector.ts\nvar id10 = \"xychart\";\nvar detector10 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*xychart(-beta)?/.test(txt);\n}, \"detector\");\nvar loader10 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/xychartDiagram-PRI3JC2R.mjs\");\n return { id: id10, diagram: diagram2 };\n}, \"loader\");\nvar plugin8 = {\n id: id10,\n detector: detector10,\n loader: loader10\n};\nvar xychartDetector_default = plugin8;\n\n// src/diagrams/requirement/requirementDetector.ts\nvar id11 = \"requirement\";\nvar detector11 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*requirement(Diagram)?/.test(txt);\n}, \"detector\");\nvar loader11 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/requirementDiagram-UZGBJVZJ.mjs\");\n return { id: id11, diagram: diagram2 };\n}, \"loader\");\nvar plugin9 = {\n id: id11,\n detector: detector11,\n loader: loader11\n};\nvar requirementDetector_default = plugin9;\n\n// src/diagrams/sequence/sequenceDetector.ts\nvar id12 = \"sequence\";\nvar detector12 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*sequenceDiagram/.test(txt);\n}, \"detector\");\nvar loader12 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/sequenceDiagram-WL72ISMW.mjs\");\n return { id: id12, diagram: diagram2 };\n}, \"loader\");\nvar plugin10 = {\n id: id12,\n detector: detector12,\n loader: loader12\n};\nvar sequenceDetector_default = plugin10;\n\n// src/diagrams/class/classDetector.ts\nvar id13 = \"class\";\nvar detector13 = /* @__PURE__ */ __name((txt, config) => {\n if (config?.class?.defaultRenderer === \"dagre-wrapper\") {\n return false;\n }\n return /^\\s*classDiagram/.test(txt);\n}, \"detector\");\nvar loader13 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/classDiagram-2ON5EDUG.mjs\");\n return { id: id13, diagram: diagram2 };\n}, \"loader\");\nvar plugin11 = {\n id: id13,\n detector: detector13,\n loader: loader13\n};\nvar classDetector_default = plugin11;\n\n// src/diagrams/class/classDetector-V2.ts\nvar id14 = \"classDiagram\";\nvar detector14 = /* @__PURE__ */ __name((txt, config) => {\n if (/^\\s*classDiagram/.test(txt) && config?.class?.defaultRenderer === \"dagre-wrapper\") {\n return true;\n }\n return /^\\s*classDiagram-v2/.test(txt);\n}, \"detector\");\nvar loader14 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/classDiagram-v2-WZHVMYZB.mjs\");\n return { id: id14, diagram: diagram2 };\n}, \"loader\");\nvar plugin12 = {\n id: id14,\n detector: detector14,\n loader: loader14\n};\nvar classDetector_V2_default = plugin12;\n\n// src/diagrams/state/stateDetector.ts\nvar id15 = \"state\";\nvar detector15 = /* @__PURE__ */ __name((txt, config) => {\n if (config?.state?.defaultRenderer === \"dagre-wrapper\") {\n return false;\n }\n return /^\\s*stateDiagram/.test(txt);\n}, \"detector\");\nvar loader15 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/stateDiagram-FKZM4ZOC.mjs\");\n return { id: id15, diagram: diagram2 };\n}, \"loader\");\nvar plugin13 = {\n id: id15,\n detector: detector15,\n loader: loader15\n};\nvar stateDetector_default = plugin13;\n\n// src/diagrams/state/stateDetector-V2.ts\nvar id16 = \"stateDiagram\";\nvar detector16 = /* @__PURE__ */ __name((txt, config) => {\n if (/^\\s*stateDiagram-v2/.test(txt)) {\n return true;\n }\n if (/^\\s*stateDiagram/.test(txt) && config?.state?.defaultRenderer === \"dagre-wrapper\") {\n return true;\n }\n return false;\n}, \"detector\");\nvar loader16 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/stateDiagram-v2-4FDKWEC3.mjs\");\n return { id: id16, diagram: diagram2 };\n}, \"loader\");\nvar plugin14 = {\n id: id16,\n detector: detector16,\n loader: loader16\n};\nvar stateDetector_V2_default = plugin14;\n\n// src/diagrams/user-journey/journeyDetector.ts\nvar id17 = \"journey\";\nvar detector17 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*journey/.test(txt);\n}, \"detector\");\nvar loader17 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/journeyDiagram-XKPGCS4Q.mjs\");\n return { id: id17, diagram: diagram2 };\n}, \"loader\");\nvar plugin15 = {\n id: id17,\n detector: detector17,\n loader: loader17\n};\nvar journeyDetector_default = plugin15;\n\n// src/diagrams/error/errorRenderer.ts\nvar draw = /* @__PURE__ */ __name((_text, id28, version) => {\n log.debug(\"rendering svg for syntax error\\n\");\n const svg = selectSvgElement(id28);\n const g = svg.append(\"g\");\n svg.attr(\"viewBox\", \"0 0 2412 512\");\n configureSvgSize(svg, 100, 512, true);\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z\"\n );\n g.append(\"path\").attr(\"class\", \"error-icon\").attr(\n \"d\",\n \"m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z\"\n );\n g.append(\"text\").attr(\"class\", \"error-text\").attr(\"x\", 1440).attr(\"y\", 250).attr(\"font-size\", \"150px\").style(\"text-anchor\", \"middle\").text(\"Syntax error in text\");\n g.append(\"text\").attr(\"class\", \"error-text\").attr(\"x\", 1250).attr(\"y\", 400).attr(\"font-size\", \"100px\").style(\"text-anchor\", \"middle\").text(`mermaid version ${version}`);\n}, \"draw\");\nvar renderer = { draw };\nvar errorRenderer_default = renderer;\n\n// src/diagrams/error/errorDiagram.ts\nvar diagram = {\n db: {},\n renderer,\n parser: {\n parse: /* @__PURE__ */ __name(() => {\n return;\n }, \"parse\")\n }\n};\nvar errorDiagram_default = diagram;\n\n// src/diagrams/flowchart/elk/detector.ts\nvar id18 = \"flowchart-elk\";\nvar detector18 = /* @__PURE__ */ __name((txt, config = {}) => {\n if (\n // If diagram explicitly states flowchart-elk\n /^\\s*flowchart-elk/.test(txt) || // If a flowchart/graph diagram has their default renderer set to elk\n /^\\s*(flowchart|graph)/.test(txt) && config?.flowchart?.defaultRenderer === \"elk\"\n ) {\n config.layout = \"elk\";\n return true;\n }\n return false;\n}, \"detector\");\nvar loader18 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/flowDiagram-NV44I4VS.mjs\");\n return { id: id18, diagram: diagram2 };\n}, \"loader\");\nvar plugin16 = {\n id: id18,\n detector: detector18,\n loader: loader18\n};\nvar detector_default = plugin16;\n\n// src/diagrams/timeline/detector.ts\nvar id19 = \"timeline\";\nvar detector19 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*timeline/.test(txt);\n}, \"detector\");\nvar loader19 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/timeline-definition-IT6M3QCI.mjs\");\n return { id: id19, diagram: diagram2 };\n}, \"loader\");\nvar plugin17 = {\n id: id19,\n detector: detector19,\n loader: loader19\n};\nvar detector_default2 = plugin17;\n\n// src/diagrams/mindmap/detector.ts\nvar id20 = \"mindmap\";\nvar detector20 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*mindmap/.test(txt);\n}, \"detector\");\nvar loader20 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/mindmap-definition-VGOIOE7T.mjs\");\n return { id: id20, diagram: diagram2 };\n}, \"loader\");\nvar plugin18 = {\n id: id20,\n detector: detector20,\n loader: loader20\n};\nvar detector_default3 = plugin18;\n\n// src/diagrams/kanban/detector.ts\nvar id21 = \"kanban\";\nvar detector21 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*kanban/.test(txt);\n}, \"detector\");\nvar loader21 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/kanban-definition-3W4ZIXB7.mjs\");\n return { id: id21, diagram: diagram2 };\n}, \"loader\");\nvar plugin19 = {\n id: id21,\n detector: detector21,\n loader: loader21\n};\nvar detector_default4 = plugin19;\n\n// src/diagrams/sankey/sankeyDetector.ts\nvar id22 = \"sankey\";\nvar detector22 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*sankey(-beta)?/.test(txt);\n}, \"detector\");\nvar loader22 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/sankeyDiagram-TZEHDZUN.mjs\");\n return { id: id22, diagram: diagram2 };\n}, \"loader\");\nvar plugin20 = {\n id: id22,\n detector: detector22,\n loader: loader22\n};\nvar sankeyDetector_default = plugin20;\n\n// src/diagrams/packet/detector.ts\nvar id23 = \"packet\";\nvar detector23 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*packet(-beta)?/.test(txt);\n}, \"detector\");\nvar loader23 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/diagram-S2PKOQOG.mjs\");\n return { id: id23, diagram: diagram2 };\n}, \"loader\");\nvar packet = {\n id: id23,\n detector: detector23,\n loader: loader23\n};\n\n// src/diagrams/radar/detector.ts\nvar id24 = \"radar\";\nvar detector24 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*radar-beta/.test(txt);\n}, \"detector\");\nvar loader24 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/diagram-QEK2KX5R.mjs\");\n return { id: id24, diagram: diagram2 };\n}, \"loader\");\nvar radar = {\n id: id24,\n detector: detector24,\n loader: loader24\n};\n\n// src/diagrams/block/blockDetector.ts\nvar id25 = \"block\";\nvar detector25 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*block(-beta)?/.test(txt);\n}, \"detector\");\nvar loader25 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/blockDiagram-VD42YOAC.mjs\");\n return { id: id25, diagram: diagram2 };\n}, \"loader\");\nvar plugin21 = {\n id: id25,\n detector: detector25,\n loader: loader25\n};\nvar blockDetector_default = plugin21;\n\n// src/diagrams/architecture/architectureDetector.ts\nvar id26 = \"architecture\";\nvar detector26 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*architecture/.test(txt);\n}, \"detector\");\nvar loader26 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/architectureDiagram-VXUJARFQ.mjs\");\n return { id: id26, diagram: diagram2 };\n}, \"loader\");\nvar architecture = {\n id: id26,\n detector: detector26,\n loader: loader26\n};\nvar architectureDetector_default = architecture;\n\n// src/diagrams/treemap/detector.ts\nvar id27 = \"treemap\";\nvar detector27 = /* @__PURE__ */ __name((txt) => {\n return /^\\s*treemap/.test(txt);\n}, \"detector\");\nvar loader27 = /* @__PURE__ */ __name(async () => {\n const { diagram: diagram2 } = await import(\"./chunks/mermaid.core/diagram-PSM6KHXK.mjs\");\n return { id: id27, diagram: diagram2 };\n}, \"loader\");\nvar treemap = {\n id: id27,\n detector: detector27,\n loader: loader27\n};\n\n// src/diagram-api/diagram-orchestration.ts\nvar hasLoadedDiagrams = false;\nvar addDiagrams = /* @__PURE__ */ __name(() => {\n if (hasLoadedDiagrams) {\n return;\n }\n hasLoadedDiagrams = true;\n registerDiagram(\"error\", errorDiagram_default, (text) => {\n return text.toLowerCase().trim() === \"error\";\n });\n registerDiagram(\n \"---\",\n // --- diagram type may appear if YAML front-matter is not parsed correctly\n {\n db: {\n clear: /* @__PURE__ */ __name(() => {\n }, \"clear\")\n },\n styles: {},\n // should never be used\n renderer: {\n draw: /* @__PURE__ */ __name(() => {\n }, \"draw\")\n },\n parser: {\n parse: /* @__PURE__ */ __name(() => {\n throw new Error(\n \"Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks\"\n );\n }, \"parse\")\n },\n init: /* @__PURE__ */ __name(() => null, \"init\")\n // no op\n },\n (text) => {\n return text.toLowerCase().trimStart().startsWith(\"---\");\n }\n );\n if (true) {\n registerLazyLoadedDiagrams(detector_default, detector_default3, architectureDetector_default);\n }\n registerLazyLoadedDiagrams(\n c4Detector_default,\n detector_default4,\n classDetector_V2_default,\n classDetector_default,\n erDetector_default,\n ganttDetector_default,\n info,\n pie,\n requirementDetector_default,\n sequenceDetector_default,\n flowDetector_v2_default,\n flowDetector_default,\n detector_default2,\n gitGraphDetector_default,\n stateDetector_V2_default,\n stateDetector_default,\n journeyDetector_default,\n quadrantDetector_default,\n sankeyDetector_default,\n packet,\n xychartDetector_default,\n blockDetector_default,\n radar,\n treemap\n );\n}, \"addDiagrams\");\n\n// src/diagram-api/loadDiagram.ts\nvar loadRegisteredDiagrams = /* @__PURE__ */ __name(async () => {\n log.debug(`Loading registered diagrams`);\n const results = await Promise.allSettled(\n Object.entries(detectors).map(async ([key, { detector: detector28, loader: loader28 }]) => {\n if (!loader28) {\n return;\n }\n try {\n getDiagram(key);\n } catch {\n try {\n const { diagram: diagram2, id: id28 } = await loader28();\n registerDiagram(id28, diagram2, detector28);\n } catch (err) {\n log.error(`Failed to load external diagram with key ${key}. Removing from detectors.`);\n delete detectors[key];\n throw err;\n }\n }\n })\n );\n const failed = results.filter((result) => result.status === \"rejected\");\n if (failed.length > 0) {\n log.error(`Failed to load ${failed.length} external diagrams`);\n for (const res of failed) {\n log.error(res);\n }\n throw new Error(`Failed to load ${failed.length} external diagrams`);\n }\n}, \"loadRegisteredDiagrams\");\n\n// src/mermaidAPI.ts\nimport { select } from \"d3\";\nimport { compile, serialize, stringify } from \"stylis\";\nimport DOMPurify from \"dompurify\";\nimport isEmpty from \"lodash-es/isEmpty.js\";\n\n// src/accessibility.ts\nvar SVG_ROLE = \"graphics-document document\";\nfunction setA11yDiagramInfo(svg, diagramType) {\n svg.attr(\"role\", SVG_ROLE);\n if (diagramType !== \"\") {\n svg.attr(\"aria-roledescription\", diagramType);\n }\n}\n__name(setA11yDiagramInfo, \"setA11yDiagramInfo\");\nfunction addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, baseId) {\n if (svg.insert === void 0) {\n return;\n }\n if (a11yDesc) {\n const descId = `chart-desc-${baseId}`;\n svg.attr(\"aria-describedby\", descId);\n svg.insert(\"desc\", \":first-child\").attr(\"id\", descId).text(a11yDesc);\n }\n if (a11yTitle) {\n const titleId = `chart-title-${baseId}`;\n svg.attr(\"aria-labelledby\", titleId);\n svg.insert(\"title\", \":first-child\").attr(\"id\", titleId).text(a11yTitle);\n }\n}\n__name(addSVGa11yTitleDescription, \"addSVGa11yTitleDescription\");\n\n// src/Diagram.ts\nvar Diagram = class _Diagram {\n constructor(type, text, db, parser, renderer2) {\n this.type = type;\n this.text = text;\n this.db = db;\n this.parser = parser;\n this.renderer = renderer2;\n }\n static {\n __name(this, \"Diagram\");\n }\n static async fromText(text, metadata = {}) {\n const config = getConfig();\n const type = detectType(text, config);\n text = encodeEntities(text) + \"\\n\";\n try {\n getDiagram(type);\n } catch {\n const loader28 = getDiagramLoader(type);\n if (!loader28) {\n throw new UnknownDiagramError(`Diagram ${type} not found.`);\n }\n const { id: id28, diagram: diagram2 } = await loader28();\n registerDiagram(id28, diagram2);\n }\n const { db, parser, renderer: renderer2, init: init2 } = getDiagram(type);\n if (parser.parser) {\n parser.parser.yy = db;\n }\n db.clear?.();\n init2?.(config);\n if (metadata.title) {\n db.setDiagramTitle?.(metadata.title);\n }\n await parser.parse(text);\n return new _Diagram(type, text, db, parser, renderer2);\n }\n async render(id28, version) {\n await this.renderer.draw(this.text, id28, version, this);\n }\n getParser() {\n return this.parser;\n }\n getType() {\n return this.type;\n }\n};\n\n// src/interactionDb.ts\nvar interactionFunctions = [];\nvar attachFunctions = /* @__PURE__ */ __name(() => {\n interactionFunctions.forEach((f) => {\n f();\n });\n interactionFunctions = [];\n}, \"attachFunctions\");\n\n// src/diagram-api/comments.ts\nvar cleanupComments = /* @__PURE__ */ __name((text) => {\n return text.replace(/^\\s*%%(?!{)[^\\n]+\\n?/gm, \"\").trimStart();\n}, \"cleanupComments\");\n\n// src/diagram-api/frontmatter.ts\nfunction extractFrontMatter(text) {\n const matches = text.match(frontMatterRegex);\n if (!matches) {\n return {\n text,\n metadata: {}\n };\n }\n let parsed = load(matches[1], {\n // To support config, we need JSON schema.\n // https://www.yaml.org/spec/1.2/spec.html#id2803231\n schema: JSON_SCHEMA\n }) ?? {};\n parsed = typeof parsed === \"object\" && !Array.isArray(parsed) ? parsed : {};\n const metadata = {};\n if (parsed.displayMode) {\n metadata.displayMode = parsed.displayMode.toString();\n }\n if (parsed.title) {\n metadata.title = parsed.title.toString();\n }\n if (parsed.config) {\n metadata.config = parsed.config;\n }\n return {\n text: text.slice(matches[0].length),\n metadata\n };\n}\n__name(extractFrontMatter, \"extractFrontMatter\");\n\n// src/preprocess.ts\nvar cleanupText = /* @__PURE__ */ __name((code) => {\n return code.replace(/\\r\\n?/g, \"\\n\").replace(\n /<(\\w+)([^>]*)>/g,\n (match, tag, attributes) => \"<\" + tag + attributes.replace(/=\"([^\"]*)\"/g, \"='$1'\") + \">\"\n );\n}, \"cleanupText\");\nvar processFrontmatter = /* @__PURE__ */ __name((code) => {\n const { text, metadata } = extractFrontMatter(code);\n const { displayMode, title, config = {} } = metadata;\n if (displayMode) {\n if (!config.gantt) {\n config.gantt = {};\n }\n config.gantt.displayMode = displayMode;\n }\n return { title, config, text };\n}, \"processFrontmatter\");\nvar processDirectives = /* @__PURE__ */ __name((code) => {\n const initDirective = utils_default.detectInit(code) ?? {};\n const wrapDirectives = utils_default.detectDirective(code, \"wrap\");\n if (Array.isArray(wrapDirectives)) {\n initDirective.wrap = wrapDirectives.some(({ type }) => type === \"wrap\");\n } else if (wrapDirectives?.type === \"wrap\") {\n initDirective.wrap = true;\n }\n return {\n text: removeDirectives(code),\n directive: initDirective\n };\n}, \"processDirectives\");\nfunction preprocessDiagram(code) {\n const cleanedCode = cleanupText(code);\n const frontMatterResult = processFrontmatter(cleanedCode);\n const directiveResult = processDirectives(frontMatterResult.text);\n const config = cleanAndMerge(frontMatterResult.config, directiveResult.directive);\n code = cleanupComments(directiveResult.text);\n return {\n code,\n title: frontMatterResult.title,\n config\n };\n}\n__name(preprocessDiagram, \"preprocessDiagram\");\n\n// src/utils/base64.ts\nfunction toBase64(str) {\n const utf8Bytes = new TextEncoder().encode(str);\n const utf8Str = Array.from(utf8Bytes, (byte) => String.fromCodePoint(byte)).join(\"\");\n return btoa(utf8Str);\n}\n__name(toBase64, \"toBase64\");\n\n// src/mermaidAPI.ts\nvar MAX_TEXTLENGTH = 5e4;\nvar MAX_TEXTLENGTH_EXCEEDED_MSG = \"graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa\";\nvar SECURITY_LVL_SANDBOX = \"sandbox\";\nvar SECURITY_LVL_LOOSE = \"loose\";\nvar XMLNS_SVG_STD = \"http://www.w3.org/2000/svg\";\nvar XMLNS_XLINK_STD = \"http://www.w3.org/1999/xlink\";\nvar XMLNS_XHTML_STD = \"http://www.w3.org/1999/xhtml\";\nvar IFRAME_WIDTH = \"100%\";\nvar IFRAME_HEIGHT = \"100%\";\nvar IFRAME_STYLES = \"border:0;margin:0;\";\nvar IFRAME_BODY_STYLE = \"margin:0\";\nvar IFRAME_SANDBOX_OPTS = \"allow-top-navigation-by-user-activation allow-popups\";\nvar IFRAME_NOT_SUPPORTED_MSG = 'The \"iframe\" tag is not supported by your browser.';\nvar DOMPURIFY_TAGS = [\"foreignobject\"];\nvar DOMPURIFY_ATTR = [\"dominant-baseline\"];\nfunction processAndSetConfigs(text) {\n const processed = preprocessDiagram(text);\n reset();\n addDirective(processed.config ?? {});\n return processed;\n}\n__name(processAndSetConfigs, \"processAndSetConfigs\");\nasync function parse(text, parseOptions) {\n addDiagrams();\n try {\n const { code, config } = processAndSetConfigs(text);\n const diagram2 = await getDiagramFromText(code);\n return { diagramType: diagram2.type, config };\n } catch (error) {\n if (parseOptions?.suppressErrors) {\n return false;\n }\n throw error;\n }\n}\n__name(parse, \"parse\");\nvar cssImportantStyles = /* @__PURE__ */ __name((cssClass, element, cssClasses = []) => {\n return `\n.${cssClass} ${element} { ${cssClasses.join(\" !important; \")} !important; }`;\n}, \"cssImportantStyles\");\nvar createCssStyles = /* @__PURE__ */ __name((config, classDefs = /* @__PURE__ */ new Map()) => {\n let cssStyles = \"\";\n if (config.themeCSS !== void 0) {\n cssStyles += `\n${config.themeCSS}`;\n }\n if (config.fontFamily !== void 0) {\n cssStyles += `\n:root { --mermaid-font-family: ${config.fontFamily}}`;\n }\n if (config.altFontFamily !== void 0) {\n cssStyles += `\n:root { --mermaid-alt-font-family: ${config.altFontFamily}}`;\n }\n if (classDefs instanceof Map) {\n const htmlLabels = config.htmlLabels ?? config.flowchart?.htmlLabels;\n const cssHtmlElements = [\"> *\", \"span\"];\n const cssShapeElements = [\"rect\", \"polygon\", \"ellipse\", \"circle\", \"path\"];\n const cssElements = htmlLabels ? cssHtmlElements : cssShapeElements;\n classDefs.forEach((styleClassDef) => {\n if (!isEmpty(styleClassDef.styles)) {\n cssElements.forEach((cssElement) => {\n cssStyles += cssImportantStyles(styleClassDef.id, cssElement, styleClassDef.styles);\n });\n }\n if (!isEmpty(styleClassDef.textStyles)) {\n cssStyles += cssImportantStyles(\n styleClassDef.id,\n \"tspan\",\n (styleClassDef?.textStyles || []).map((s) => s.replace(\"color\", \"fill\"))\n );\n }\n });\n }\n return cssStyles;\n}, \"createCssStyles\");\nvar createUserStyles = /* @__PURE__ */ __name((config, graphType, classDefs, svgId) => {\n const userCSSstyles = createCssStyles(config, classDefs);\n const allStyles = styles_default(graphType, userCSSstyles, config.themeVariables);\n return serialize(compile(`${svgId}{${allStyles}}`), stringify);\n}, \"createUserStyles\");\nvar cleanUpSvgCode = /* @__PURE__ */ __name((svgCode = \"\", inSandboxMode, useArrowMarkerUrls) => {\n let cleanedUpSvg = svgCode;\n if (!useArrowMarkerUrls && !inSandboxMode) {\n cleanedUpSvg = cleanedUpSvg.replace(\n /marker-end=\"url\\([\\d+./:=?A-Za-z-]*?#/g,\n 'marker-end=\"url(#'\n );\n }\n cleanedUpSvg = decodeEntities(cleanedUpSvg);\n cleanedUpSvg = cleanedUpSvg.replace(/<br>/g, \"<br/>\");\n return cleanedUpSvg;\n}, \"cleanUpSvgCode\");\nvar putIntoIFrame = /* @__PURE__ */ __name((svgCode = \"\", svgElement) => {\n const height = svgElement?.viewBox?.baseVal?.height ? svgElement.viewBox.baseVal.height + \"px\" : IFRAME_HEIGHT;\n const base64encodedSrc = toBase64(`<body style=\"${IFRAME_BODY_STYLE}\">${svgCode}</body>`);\n return `<iframe style=\"width:${IFRAME_WIDTH};height:${height};${IFRAME_STYLES}\" src=\"data:text/html;charset=UTF-8;base64,${base64encodedSrc}\" sandbox=\"${IFRAME_SANDBOX_OPTS}\">\n ${IFRAME_NOT_SUPPORTED_MSG}\n</iframe>`;\n}, \"putIntoIFrame\");\nvar appendDivSvgG = /* @__PURE__ */ __name((parentRoot, id28, enclosingDivId, divStyle, svgXlink) => {\n const enclosingDiv = parentRoot.append(\"div\");\n enclosingDiv.attr(\"id\", enclosingDivId);\n if (divStyle) {\n enclosingDiv.attr(\"style\", divStyle);\n }\n const svgNode = enclosingDiv.append(\"svg\").attr(\"id\", id28).attr(\"width\", \"100%\").attr(\"xmlns\", XMLNS_SVG_STD);\n if (svgXlink) {\n svgNode.attr(\"xmlns:xlink\", svgXlink);\n }\n svgNode.append(\"g\");\n return parentRoot;\n}, \"appendDivSvgG\");\nfunction sandboxedIframe(parentNode, iFrameId) {\n return parentNode.append(\"iframe\").attr(\"id\", iFrameId).attr(\"style\", \"width: 100%; height: 100%;\").attr(\"sandbox\", \"\");\n}\n__name(sandboxedIframe, \"sandboxedIframe\");\nvar removeExistingElements = /* @__PURE__ */ __name((doc, id28, divId, iFrameId) => {\n doc.getElementById(id28)?.remove();\n doc.getElementById(divId)?.remove();\n doc.getElementById(iFrameId)?.remove();\n}, \"removeExistingElements\");\nvar render = /* @__PURE__ */ __name(async function(id28, text, svgContainingElement) {\n addDiagrams();\n const processed = processAndSetConfigs(text);\n text = processed.code;\n const config = getConfig();\n log.debug(config);\n if (text.length > (config?.maxTextSize ?? MAX_TEXTLENGTH)) {\n text = MAX_TEXTLENGTH_EXCEEDED_MSG;\n }\n const idSelector = \"#\" + id28;\n const iFrameID = \"i\" + id28;\n const iFrameID_selector = \"#\" + iFrameID;\n const enclosingDivID = \"d\" + id28;\n const enclosingDivID_selector = \"#\" + enclosingDivID;\n const removeTempElements = /* @__PURE__ */ __name(() => {\n const tmpElementSelector = isSandboxed ? iFrameID_selector : enclosingDivID_selector;\n const node = select(tmpElementSelector).node();\n if (node && \"remove\" in node) {\n node.remove();\n }\n }, \"removeTempElements\");\n let root = select(\"body\");\n const isSandboxed = config.securityLevel === SECURITY_LVL_SANDBOX;\n const isLooseSecurityLevel = config.securityLevel === SECURITY_LVL_LOOSE;\n const fontFamily = config.fontFamily;\n if (svgContainingElement !== void 0) {\n if (svgContainingElement) {\n svgContainingElement.innerHTML = \"\";\n }\n if (isSandboxed) {\n const iframe = sandboxedIframe(select(svgContainingElement), iFrameID);\n root = select(iframe.nodes()[0].contentDocument.body);\n root.node().style.margin = 0;\n } else {\n root = select(svgContainingElement);\n }\n appendDivSvgG(root, id28, enclosingDivID, `font-family: ${fontFamily}`, XMLNS_XLINK_STD);\n } else {\n removeExistingElements(document, id28, enclosingDivID, iFrameID);\n if (isSandboxed) {\n const iframe = sandboxedIframe(select(\"body\"), iFrameID);\n root = select(iframe.nodes()[0].contentDocument.body);\n root.node().style.margin = 0;\n } else {\n root = select(\"body\");\n }\n appendDivSvgG(root, id28, enclosingDivID);\n }\n let diag;\n let parseEncounteredException;\n try {\n diag = await Diagram.fromText(text, { title: processed.title });\n } catch (error) {\n if (config.suppressErrorRendering) {\n removeTempElements();\n throw error;\n }\n diag = await Diagram.fromText(\"error\");\n parseEncounteredException = error;\n }\n const element = root.select(enclosingDivID_selector).node();\n const diagramType = diag.type;\n const svg = element.firstChild;\n const firstChild = svg.firstChild;\n const diagramClassDefs = diag.renderer.getClasses?.(text, diag);\n const rules = createUserStyles(config, diagramType, diagramClassDefs, idSelector);\n const style1 = document.createElement(\"style\");\n style1.innerHTML = rules;\n svg.insertBefore(style1, firstChild);\n try {\n await diag.renderer.draw(text, id28, package_default.version, diag);\n } catch (e) {\n if (config.suppressErrorRendering) {\n removeTempElements();\n } else {\n errorRenderer_default.draw(text, id28, package_default.version);\n }\n throw e;\n }\n const svgNode = root.select(`${enclosingDivID_selector} svg`);\n const a11yTitle = diag.db.getAccTitle?.();\n const a11yDescr = diag.db.getAccDescription?.();\n addA11yInfo(diagramType, svgNode, a11yTitle, a11yDescr);\n root.select(`[id=\"${id28}\"]`).selectAll(\"foreignobject > *\").attr(\"xmlns\", XMLNS_XHTML_STD);\n let svgCode = root.select(enclosingDivID_selector).node().innerHTML;\n log.debug(\"config.arrowMarkerAbsolute\", config.arrowMarkerAbsolute);\n svgCode = cleanUpSvgCode(svgCode, isSandboxed, evaluate(config.arrowMarkerAbsolute));\n if (isSandboxed) {\n const svgEl = root.select(enclosingDivID_selector + \" svg\").node();\n svgCode = putIntoIFrame(svgCode, svgEl);\n } else if (!isLooseSecurityLevel) {\n svgCode = DOMPurify.sanitize(svgCode, {\n ADD_TAGS: DOMPURIFY_TAGS,\n ADD_ATTR: DOMPURIFY_ATTR,\n HTML_INTEGRATION_POINTS: { foreignobject: true }\n });\n }\n attachFunctions();\n if (parseEncounteredException) {\n throw parseEncounteredException;\n }\n removeTempElements();\n return {\n diagramType,\n svg: svgCode,\n bindFunctions: diag.db.bindFunctions\n };\n}, \"render\");\nfunction initialize(userOptions = {}) {\n const options = assignWithDepth_default({}, userOptions);\n if (options?.fontFamily && !options.themeVariables?.fontFamily) {\n if (!options.themeVariables) {\n options.themeVariables = {};\n }\n options.themeVariables.fontFamily = options.fontFamily;\n }\n saveConfigFromInitialize(options);\n if (options?.theme && options.theme in themes_default) {\n options.themeVariables = themes_default[options.theme].getThemeVariables(\n options.themeVariables\n );\n } else if (options) {\n options.themeVariables = themes_default.default.getThemeVariables(options.themeVariables);\n }\n const config = typeof options === \"object\" ? setSiteConfig(options) : getSiteConfig();\n setLogLevel(config.logLevel);\n addDiagrams();\n}\n__name(initialize, \"initialize\");\nvar getDiagramFromText = /* @__PURE__ */ __name((text, metadata = {}) => {\n const { code } = preprocessDiagram(text);\n return Diagram.fromText(code, metadata);\n}, \"getDiagramFromText\");\nfunction addA11yInfo(diagramType, svgNode, a11yTitle, a11yDescr) {\n setA11yDiagramInfo(svgNode, diagramType);\n addSVGa11yTitleDescription(svgNode, a11yTitle, a11yDescr, svgNode.attr(\"id\"));\n}\n__name(addA11yInfo, \"addA11yInfo\");\nvar mermaidAPI = Object.freeze({\n render,\n parse,\n getDiagramFromText,\n initialize,\n getConfig,\n setConfig,\n getSiteConfig,\n updateSiteConfig,\n reset: /* @__PURE__ */ __name(() => {\n reset();\n }, \"reset\"),\n globalReset: /* @__PURE__ */ __name(() => {\n reset(defaultConfig);\n }, \"globalReset\"),\n defaultConfig\n});\nsetLogLevel(getConfig().logLevel);\nreset(getConfig());\n\n// src/mermaid.ts\nvar handleError = /* @__PURE__ */ __name((error, errors, parseError) => {\n log.warn(error);\n if (isDetailedError(error)) {\n if (parseError) {\n parseError(error.str, error.hash);\n }\n errors.push({ ...error, message: error.str, error });\n } else {\n if (parseError) {\n parseError(error);\n }\n if (error instanceof Error) {\n errors.push({\n str: error.message,\n message: error.message,\n hash: error.name,\n error\n });\n }\n }\n}, \"handleError\");\nvar run = /* @__PURE__ */ __name(async function(options = {\n querySelector: \".mermaid\"\n}) {\n try {\n await runThrowsErrors(options);\n } catch (e) {\n if (isDetailedError(e)) {\n log.error(e.str);\n }\n if (mermaid.parseError) {\n mermaid.parseError(e);\n }\n if (!options.suppressErrors) {\n log.error(\"Use the suppressErrors option to suppress these errors\");\n throw e;\n }\n }\n}, \"run\");\nvar runThrowsErrors = /* @__PURE__ */ __name(async function({ postRenderCallback, querySelector, nodes } = {\n querySelector: \".mermaid\"\n}) {\n const conf = mermaidAPI.getConfig();\n log.debug(`${!postRenderCallback ? \"No \" : \"\"}Callback function found`);\n let nodesToProcess;\n if (nodes) {\n nodesToProcess = nodes;\n } else if (querySelector) {\n nodesToProcess = document.querySelectorAll(querySelector);\n } else {\n throw new Error(\"Nodes and querySelector are both undefined\");\n }\n log.debug(`Found ${nodesToProcess.length} diagrams`);\n if (conf?.startOnLoad !== void 0) {\n log.debug(\"Start On Load: \" + conf?.startOnLoad);\n mermaidAPI.updateSiteConfig({ startOnLoad: conf?.startOnLoad });\n }\n const idGenerator = new utils_default.InitIDGenerator(conf.deterministicIds, conf.deterministicIDSeed);\n let txt;\n const errors = [];\n for (const element of Array.from(nodesToProcess)) {\n log.info(\"Rendering diagram: \" + element.id);\n if (element.getAttribute(\"data-processed\")) {\n continue;\n }\n element.setAttribute(\"data-processed\", \"true\");\n const id28 = `mermaid-${idGenerator.next()}`;\n txt = element.innerHTML;\n txt = dedent(utils_default.entityDecode(txt)).trim().replace(/<br\\s*\\/?>/gi, \"<br/>\");\n const init2 = utils_default.detectInit(txt);\n if (init2) {\n log.debug(\"Detected early reinit: \", init2);\n }\n try {\n const { svg, bindFunctions } = await render2(id28, txt, element);\n element.innerHTML = svg;\n if (postRenderCallback) {\n await postRenderCallback(id28);\n }\n if (bindFunctions) {\n bindFunctions(element);\n }\n } catch (error) {\n handleError(error, errors, mermaid.parseError);\n }\n }\n if (errors.length > 0) {\n throw errors[0];\n }\n}, \"runThrowsErrors\");\nvar initialize2 = /* @__PURE__ */ __name(function(config) {\n mermaidAPI.initialize(config);\n}, \"initialize\");\nvar init = /* @__PURE__ */ __name(async function(config, nodes, callback) {\n log.warn(\"mermaid.init is deprecated. Please use run instead.\");\n if (config) {\n initialize2(config);\n }\n const runOptions = { postRenderCallback: callback, querySelector: \".mermaid\" };\n if (typeof nodes === \"string\") {\n runOptions.querySelector = nodes;\n } else if (nodes) {\n if (nodes instanceof HTMLElement) {\n runOptions.nodes = [nodes];\n } else {\n runOptions.nodes = nodes;\n }\n }\n await run(runOptions);\n}, \"init\");\nvar registerExternalDiagrams = /* @__PURE__ */ __name(async (diagrams, {\n lazyLoad = true\n} = {}) => {\n addDiagrams();\n registerLazyLoadedDiagrams(...diagrams);\n if (lazyLoad === false) {\n await loadRegisteredDiagrams();\n }\n}, \"registerExternalDiagrams\");\nvar contentLoaded = /* @__PURE__ */ __name(function() {\n if (mermaid.startOnLoad) {\n const { startOnLoad } = mermaidAPI.getConfig();\n if (startOnLoad) {\n mermaid.run().catch((err) => log.error(\"Mermaid failed to initialize\", err));\n }\n }\n}, \"contentLoaded\");\nif (typeof document !== \"undefined\") {\n window.addEventListener(\"load\", contentLoaded, false);\n}\nvar setParseErrorHandler = /* @__PURE__ */ __name(function(parseErrorHandler) {\n mermaid.parseError = parseErrorHandler;\n}, \"setParseErrorHandler\");\nvar executionQueue = [];\nvar executionQueueRunning = false;\nvar executeQueue = /* @__PURE__ */ __name(async () => {\n if (executionQueueRunning) {\n return;\n }\n executionQueueRunning = true;\n while (executionQueue.length > 0) {\n const f = executionQueue.shift();\n if (f) {\n try {\n await f();\n } catch (e) {\n log.error(\"Error executing queue\", e);\n }\n }\n }\n executionQueueRunning = false;\n}, \"executeQueue\");\nvar parse2 = /* @__PURE__ */ __name(async (text, parseOptions) => {\n return new Promise((resolve, reject) => {\n const performCall = /* @__PURE__ */ __name(() => new Promise((res, rej) => {\n mermaidAPI.parse(text, parseOptions).then(\n (r) => {\n res(r);\n resolve(r);\n },\n (e) => {\n log.error(\"Error parsing\", e);\n mermaid.parseError?.(e);\n rej(e);\n reject(e);\n }\n );\n }), \"performCall\");\n executionQueue.push(performCall);\n executeQueue().catch(reject);\n });\n}, \"parse\");\nvar render2 = /* @__PURE__ */ __name((id28, text, container) => {\n return new Promise((resolve, reject) => {\n const performCall = /* @__PURE__ */ __name(() => new Promise((res, rej) => {\n mermaidAPI.render(id28, text, container).then(\n (r) => {\n res(r);\n resolve(r);\n },\n (e) => {\n log.error(\"Error parsing\", e);\n mermaid.parseError?.(e);\n rej(e);\n reject(e);\n }\n );\n }), \"performCall\");\n executionQueue.push(performCall);\n executeQueue().catch(reject);\n });\n}, \"render\");\nvar getRegisteredDiagramsMetadata = /* @__PURE__ */ __name(() => {\n return Object.keys(detectors).map((id28) => ({\n id: id28\n }));\n}, \"getRegisteredDiagramsMetadata\");\nvar mermaid = {\n startOnLoad: true,\n mermaidAPI,\n parse: parse2,\n render: render2,\n init,\n run,\n registerExternalDiagrams,\n registerLayoutLoaders,\n initialize: initialize2,\n parseError: void 0,\n contentLoaded,\n setParseErrorHandler,\n detectType,\n registerIconPacks,\n getRegisteredDiagramsMetadata\n};\nvar mermaid_default = mermaid;\nexport {\n mermaid_default as default\n};\n/*! Check if previously processed */\n/*!\n * Wait for document loaded before starting the execution\n */\n","/**\n * @module MermaidDiagram\n * This module provides a React component for rendering Mermaid diagrams with pan and zoom functionality.\n * このモジュールは、パン・ズーム機能付きの Mermaid ダイアグラムをレンダリングするための React コンポーネントを提供します。\n */\nimport type { PanzoomObject } from \"@panzoom/panzoom\"\nimport * as Panzoom from \"@panzoom/panzoom\"\nimport { RefreshCw, ZoomIn, ZoomOut } from \"lucide-react\"\nimport mermaid, { type RenderResult } from \"mermaid\"\nimport { memo, useEffect, useRef, useState } from \"react\"\n\ninterface MermaidDiagramProps {\n chartContent: string\n}\n\nlet mermaidGlobalInitialized = false\nlet mermaidGlobalInitializationError: Error | null = null\n\n// Mermaid の初期化はグローバルに一度だけ行う\n// Initialize Mermaid globally only once.\nif (typeof mermaid !== \"undefined\" && mermaid.initialize) {\n try {\n mermaid.initialize({\n startOnLoad: false,\n // theme: 'default',\n // logLevel: 'debug',\n })\n mermaidGlobalInitialized = true\n } catch (e: unknown) {\n mermaidGlobalInitializationError = e instanceof Error ? e : new Error(String(e))\n }\n} else {\n mermaidGlobalInitializationError = new Error(\"Mermaid library or mermaid.initialize is not available.\")\n}\n\n/**\n * @component MermaidDiagram\n * A React functional component that renders a Mermaid diagram from a string.\n * It handles the asynchronous rendering of the diagram, displays loading/error states,\n * and provides pan and zoom functionality.\n *\n * Mermaid ダイアグラムを文字列からレンダリングする React 関数コンポーネントです。\n * ダイアグラムの非同期レンダリングを処理し、読み込み中やエラーの状態を表示し、\n * パン・ズーム機能を提供します。\n *\n * @param {MermaidDiagramProps} props - The properties for the component.\n * @param {string} props.chartContent - The Mermaid syntax string to be rendered.\n * レンダリングする Mermaid 構文の文字列。\n * @returns {React.ReactElement} The rendered Mermaid diagram component.\n * レンダリングされた Mermaid ダイアグラムコンポーネント。\n */\nconst MermaidDiagramInternal: React.FC<MermaidDiagramProps> = ({ chartContent }: MermaidDiagramProps): React.ReactElement => {\n const chartIdRef = useRef(`mermaid-chart-${Math.random().toString(36).substring(2, 15)}`)\n const mermaidDivRef = useRef<HTMLDivElement>(null)\n const panzoomInstanceRef = useRef<PanzoomObject | null>(null)\n const [isLoading, setIsLoading] = useState(true)\n const [errorMessage, setErrorMessage] = useState<string | null>(null)\n const [svgContent, setSvgContent] = useState<string | null>(null)\n // bindFunctions のためのコールバックを保存する State\n // State to store the callback for bindFunctions\n const [bindFunctions, setBindFunctions] = useState<((element: Element) => void) | null>(null)\n const [isPanzoomInitialized, setIsPanzoomInitialized] = useState(false)\n\n useEffect(() => {\n setBindFunctions(null) // Reset bindFunctions\n setIsLoading(true) // レンダリング開始時にローディング状態にする\n setErrorMessage(null) // エラーメッセージをリセット\n setIsPanzoomInitialized(false) // パンズーム状態をリセット\n\n if (!mermaidGlobalInitialized) {\n setErrorMessage(mermaidGlobalInitializationError?.message || \"Mermaid failed to initialize globally.\")\n setIsLoading(false)\n return\n }\n\n if (!chartContent || chartContent.trim() === \"\") {\n setIsLoading(false)\n if (mermaidDivRef.current) {\n mermaidDivRef.current.innerHTML = \"\" // 内容が空の場合はクリア\n }\n setSvgContent(null) // SVG 内容もクリア\n return\n }\n\n const renderMermaid = async () => {\n try {\n const trimmedContent = chartContent.trim()\n if (!trimmedContent) {\n setIsLoading(false)\n if (mermaidDivRef.current) {\n mermaidDivRef.current.innerHTML = \"\"\n }\n setSvgContent(null)\n return\n }\n\n // mermaid.render が DOM 要素を必要としないように、一意の ID を渡す\n const tempIdForRender = `${chartIdRef.current}-render`\n const renderResult: RenderResult = await mermaid.render(tempIdForRender, trimmedContent)\n\n if (renderResult && typeof renderResult.svg === \"string\" && renderResult.svg.length > 0) {\n setSvgContent(renderResult.svg)\n if (typeof renderResult.bindFunctions === \"function\") {\n // コールバックを保存\n setBindFunctions(() => renderResult.bindFunctions)\n } else {\n setBindFunctions(null) // bindFunctions がない場合は null に設定\n }\n } else {\n setErrorMessage(\"Failed to render Mermaid diagram: SVG content is empty or invalid.\")\n setSvgContent(null)\n }\n } catch (error: unknown) {\n console.error(`[MermaidDiagram ${chartIdRef.current}] Error rendering Mermaid diagram:`, error)\n setErrorMessage(error instanceof Error ? error.message : \"An unknown error occurred while rendering the diagram.\")\n setSvgContent(null)\n } finally {\n setIsLoading(false)\n }\n }\n\n // 非同期処理を分離\n renderMermaid().catch((err) => {\n // 非同期処理内での未処理エラーをキャッチ\n console.error(`[MermaidDiagram ${chartIdRef.current}] Unhandled error in renderMermaid:`, err)\n setErrorMessage(err instanceof Error ? err.message : \"An unexpected error occurred.\")\n setIsLoading(false)\n })\n }, [chartContent]) // chartContent が変更された時のみ実行\n\n // SVG が更新された後に Panzoom の初期化と bindFunctions を実行する useEffect\n // useEffect to initialize Panzoom and execute bindFunctions after SVG is updated\n useEffect(() => {\n const container = mermaidDivRef.current\n if (!container) {\n return\n }\n\n const cleanup = () => {\n if (panzoomInstanceRef.current) {\n panzoomInstanceRef.current.destroy()\n panzoomInstanceRef.current = null\n }\n setIsPanzoomInitialized(false)\n }\n\n if (!svgContent) {\n container.innerHTML = \"\"\n cleanup()\n return\n }\n\n container.innerHTML = svgContent\n const svgElement = container.querySelector(\"svg\")\n\n if (svgElement) {\n const initPanzoom = () => {\n const svgBBox = svgElement.getBBox()\n if (!svgBBox || svgBBox.width === 0 || svgBBox.height === 0) {\n setTimeout(initPanzoom, 100)\n return\n }\n\n if (panzoomInstanceRef.current) {\n panzoomInstanceRef.current.destroy()\n }\n\n const panzoomInstance = Panzoom.default(svgElement, {\n startScale: 1.0,\n minScale: 0.5,\n maxScale: 10.0,\n origin: \"0 0\",\n animate: true,\n })\n panzoomInstanceRef.current = panzoomInstance\n\n container.addEventListener(\n \"wheel\",\n (event: WheelEvent) => {\n if (event.shiftKey) {\n event.preventDefault()\n panzoomInstance.zoomWithWheel(event)\n }\n },\n { passive: false },\n )\n\n setIsPanzoomInitialized(true)\n }\n initPanzoom()\n }\n\n if (bindFunctions) {\n bindFunctions(container)\n }\n\n return cleanup\n }, [svgContent, bindFunctions])\n\n useEffect(() => {\n if (isPanzoomInitialized && mermaidDivRef.current) {\n mermaidDivRef.current.style.overflow = \"visible\"\n }\n }, [isPanzoomInitialized])\n\n if (isLoading) {\n return <div className=\"flex h-32 items-center justify-center bg-white dark:bg-gray-800 dark:text-white\">🌀 Loading diagram...</div>\n }\n\n if (errorMessage) {\n return <div className=\"rounded border border-red-400 bg-red-100 p-4 text-red-600 dark:border-red-700 dark:bg-red-900/50 dark:text-red-300\">Error: {errorMessage}</div>\n }\n\n return (\n <div className=\"relative\">\n <div ref={mermaidDivRef} className=\"mermaid mermaid-diagram-container bg-white dark:bg-gray-400\" style={{ overflow: \"visible\" }} />\n {isPanzoomInitialized && (\n <div className=\"absolute top-2 right-2 z-10 flex gap-1\">\n <button\n type=\"button\"\n onClick={() => panzoomInstanceRef.current?.zoomIn()}\n className=\"flex h-8 w-8 items-center justify-center rounded border border-gray-200 bg-white p-1 text-gray-700 text-lg shadow hover:bg-gray-100 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-300 dark:hover:bg-gray-700\"\n aria-label=\"Zoom In\">\n <ZoomIn size={20} />\n </button>\n <button\n type=\"button\"\n onClick={() => panzoomInstanceRef.current?.zoomOut()}\n className=\"flex h-8 w-8 items-center justify-center rounded border border-gray-200 bg-white p-1 text-gray-700 text-lg shadow hover:bg-gray-100 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-300 dark:hover:bg-gray-700\"\n aria-label=\"Zoom Out\">\n <ZoomOut size={20} />\n </button>\n <button\n type=\"button\"\n onClick={() => panzoomInstanceRef.current?.reset()}\n className=\"flex h-8 items-center justify-center rounded border border-gray-200 bg-white px-2 py-1 text-gray-700 text-sm shadow hover:bg-gray-100 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-300 dark:hover:bg-gray-700\"\n aria-label=\"Reset View\">\n <RefreshCw size={18} />\n </button>\n </div>\n )}\n </div>\n )\n}\n\nMermaidDiagramInternal.displayName = \"MermaidDiagramInternal\"\n\nexport const MermaidDiagram = memo(MermaidDiagramInternal)\n","/**\n * @module\n * This module provides a React component for rendering code blocks from mdast.\n * It uses `shiki` for syntax highlighting and `html-react-parser` to safely render the HTML.\n * It also includes special handling for `mermaid` diagrams and adds a copy button to code blocks.\n *\n * このモジュールは、mdast からコードブロックをレンダリングするための React コンポーネントを提供。\n * `shiki` を使用したシンタックスハイライト、`html-react-parser` を使用した安全な HTML のレンダリング。\n * また、`mermaid` ダイアグラムの特別な処理や、コードブロックへのコピーボタンの追加も実施。\n */\nimport type { Element as HastElement } from \"hast\"\nimport parser, { type DOMNode, domToReact, Element } from \"html-react-parser\"\nimport type { RootContentMap } from \"mdast\"\nimport { Suspense, use, useMemo, useState } from \"react\"\nimport { codeToHtml, type ShikiTransformer } from \"shiki\"\nimport { MermaidDiagram } from \"../MermaidDiagram.tsx\"\n\n/**\n * Converts HTML attributes to React props.\n * HTML 属性を React の props へ変換。\n * @param attribs An object of HTML attributes. / HTML 属性のオブジェクト。\n * @returns An object of React props. / React の props オブジェクト。\n */\nfunction attributesToProps(attribs: { [s: string]: string }): React.HTMLAttributes<HTMLElement> & { [key: string]: string | number | React.CSSProperties | undefined } {\n const props: { [key: string]: string | number | React.CSSProperties | undefined } = {}\n for (const name in attribs) {\n const value = attribs[name]\n switch (name) {\n case \"class\":\n props.className = value\n break\n case \"style\": {\n const style: { [key: string]: string } = {}\n // CSS 宣言をセミコロンで分割してループ処理\n for (const declaration of value.split(\";\")) {\n // プロパティと値をコロンで分割\n const [property, val] = declaration.split(\":\")\n if (property && val) {\n // CSS プロパティをキャメルケースに変換 (例: margin-top -> marginTop)\n const camelCasedProperty = property.trim().replace(/-(\\w)/g, (_, letter) => letter.toUpperCase())\n // shiki v1.x から style の property 名の先頭に `-` が付与されるようになったため、\n // React の style prop で警告が出ないように先頭の `-` を削除\n if (camelCasedProperty.startsWith(\"-\")) {\n style[camelCasedProperty.substring(1)] = val.trim()\n } else {\n style[camelCasedProperty] = val.trim()\n }\n }\n }\n props.style = style\n break\n }\n case \"tabindex\":\n props.tabIndex = Number(value)\n break\n default:\n props[name] = value\n }\n }\n return props\n}\n\n/**\n * A button component to copy code to the clipboard.\n * クリップボードにコードをコピーするためのボタンコンポーネント。\n * @param code The code string to be copied. / コピー対象のコード文字列。\n */\nconst CopyButton = ({ code }: { code: string }) => {\n const [copied, setCopied] = useState(false)\n\n const handleCopy = () => {\n // クリップボードにコードを書き込み\n navigator.clipboard.writeText(code).then(\n () => {\n // コピー成功状態に設定\n setCopied(true)\n // 2秒後にコピー状態をリセット\n setTimeout(() => setCopied(false), 2000)\n },\n (err) => {\n // コピー失敗時にエラーをコンソールに出力\n console.error(\"Failed to copy: \", err)\n },\n )\n }\n\n return (\n <button type=\"button\" className=\"absolute top-2 right-2 z-10 rounded-md bg-gray-200 px-2 py-1 text-gray-800 text-sm transition-colors hover:bg-gray-300 dark:bg-gray-700 dark:text-gray-100 dark:hover:bg-gray-600\" onClick={handleCopy}>\n {copied ? \"COPIED!\" : \"Copy\"}\n </button>\n )\n}\n\n/**\n * Renders syntax-highlighted HTML content.\n * It parses the HTML string and replaces the `<pre>` tag with a custom component\n * that includes a copy button. It also displays an optional filename.\n *\n * シンタックスハイライトされた HTML コンテンツのレンダリング。\n * HTML 文字列をパースし、`<pre>` タグをコピーボタンを含むカスタムコンポーネントに置換。\n * オプションでファイル名も表示。\n *\n * @param htmlPromise A promise that resolves to the highlighted HTML string. / ハイライトされた HTML 文字列に解決される Promise。\n * @param filename An optional filename to display. / 表示するオプションのファイル名。\n * @param code The raw code string for the copy button. / コピーボタン用の生のコード文字列。\n */\nconst HighlightedHtml = ({ htmlPromise, filename, code }: { htmlPromise: Promise<string>; filename?: string; code: string }) => {\n // ハイライトされた HTML を Promise から取得\n const highlightedHtml = use(htmlPromise)\n\n const options = {\n replace: (domNode: DOMNode) => {\n // domNode が <pre> タグであるか確認\n if (domNode instanceof Element && domNode.name === \"pre\") {\n const props = attributesToProps(domNode.attribs)\n\n // Shiki が設定するインラインの背景色を削除\n if (typeof props.style === \"object\") {\n const { backgroundColor: _backgroundColor, ...restStyle } = props.style\n props.style = { ...restStyle, margin: \"1rem 0\", padding: \"0.8rem 0\" }\n } else {\n props.style = { margin: \"1rem 0\", padding: \"0.8rem 0\" }\n }\n\n // 新しい背景色クラスを追加\n props.className = `${props.className || \"\"} bg-gray-900 dark:bg-gray-900`\n\n return (\n <div className=\"relative\">\n {filename && <div className=\"code-filename -top-4 absolute left-0 z-0 rounded-md bg-gray-200 px-2 py-0.5 text-gray-800 text-sm dark:bg-gray-700 dark:text-gray-100\">{filename}</div>}\n <CopyButton code={code} />\n <pre {...props}>{domToReact(domNode.children as DOMNode[], options)}</pre>\n </div>\n )\n }\n },\n htmlparser2: { lowerCaseTags: true },\n }\n\n return (\n <>\n {/* ハイライトされた HTML をパースして表示 */}\n {parser(highlightedHtml, options)}\n </>\n )\n}\n\n// クラス名から isDiff, 言語、ファイル名を抽出するための正規表現 (例: diff:typescript:myFile.ts)\nconst FILENAME_REGEX = /^(diff)?:?(\\w+):?([\\w.-]*)?/\n\n/**\n * Creates a Shiki transformer for highlighting diffs.\n * It removes `+` or `-` from the beginning of lines and adds a background color.\n *\n * diff をハイライトするための Shiki transformer の作成。\n * 行頭の `+` または `-` を削除し、背景色を追加。\n * @returns A Shiki transformer object.\n */\nconst createDiffTransformer = (): ShikiTransformer => {\n return {\n code(node: HastElement) {\n for (const line of node.children) {\n if (line.type !== \"element\") {\n continue\n }\n\n const firstToken = line.children[0]\n if (firstToken?.type !== \"element\") {\n continue\n }\n\n const firstText = firstToken.children[0]\n if (firstText?.type !== \"text\") {\n continue\n }\n\n const text = firstText.value\n let sign: string | undefined\n let lineStyle = \"\"\n let signClasses = \"\"\n\n if (text.startsWith(\"+\")) {\n sign = \"+\"\n // 行全体の背景色 (ライト/ダーク)\n lineStyle = \"background-color: rgba(16, 185, 129, 0.2);\"\n // 記号の円のスタイル (ライト/ダーク)\n signClasses = \"bg-green-200 dark:bg-green-400/90 text-green-700\"\n } else if (text.startsWith(\"-\")) {\n sign = \"-\"\n // 行全体の背景色 (ライト/ダーク)\n lineStyle = \"background-color: rgba(239, 68, 68, 0.2);\"\n // 記号の円のスタイル (ライト/ダーク)\n signClasses = \"bg-red-200 dark:bg-red-400/90 text-red-700\"\n }\n\n if (sign) {\n // line.properties.className を設定する代わりに style を直接設定\n line.properties.style = lineStyle\n\n // 元のテキストから記号を削除\n firstText.value = text.substring(1).trimStart()\n\n // 記号用の新しい span を作成\n const signSpan: HastElement = {\n type: \"element\",\n tagName: \"span\",\n properties: {\n className: `inline-flex items-center justify-center w-4 h-4 rounded-full select-none font-bold text-[0.5rem] mr-2 ${signClasses}`,\n },\n children: [{ type: \"text\", value: sign === \"+\" ? \"➕\" : \"➖\" }],\n }\n\n // 行の先頭に記号の span を挿入\n line.children.unshift(signSpan)\n }\n }\n },\n }\n}\n\n/**\n * A React component for rendering `code` nodes from an mdast tree.\n * It determines the language and filename from the node's `lang` property.\n * If the language is \"mermaid\", it renders a Mermaid diagram.\n * Otherwise, it renders a syntax-highlighted code block with a copy button.\n *\n * mdast ツリーから `code` ノードをレンダリングするための React コンポーネント。\n * ノードの `lang` プロパティから言語とファイル名を判別。\n * 言語が \"mermaid\" の場合は Mermaid ダイアグラムをレンダリング。\n * それ以外の場合は、コピーボタン付きのシンタックスハイライトされたコードブロックをレンダリング。\n *\n * @param node The `code` node from the mdast tree. / mdast ツリーからの `code` ノード。\n */\ntype CodeNodeProps = { node: RootContentMap[\"code\"] }\n\n/**\n * Extracts `isDiff`, `lang`, and `filename` from a lang string like `diff:typescript:myFile.ts`.\n * `diff:typescript:myFile.ts` のような lang 文字列から isDiff, lang, filename を抽出。\n * @param langStr The lang string. / lang 文字列。\n * @returns An object with `isDiff`, `lang`, and `filename`. / `isDiff`, `lang`, `filename` を含むオブジェクト。\n *\n * - Example: `diff:typescript:myFile.ts` → { isDiff: true, lang: 'typescript', filename: 'myFile.ts' }\n * - Example: `typescript:myFile.ts` → { isDiff: false, lang: 'typescript', filename: 'myFile.ts' }\n * - Example: `typescript` → { isDiff: false, lang: 'typescript', filename: undefined }\n */\nconst parseLang = (langStr?: string): { isDiff: boolean; lang: string; filename?: string } => {\n // null や undefined を空文字列に変換\n const match = FILENAME_REGEX.exec(langStr ?? \"\")\n return {\n isDiff: match?.[1] === \"diff\",\n lang: match?.[2] || \"text\",\n filename: match?.[3] || undefined,\n }\n}\n\nexport const CodeNode = ({ node }: CodeNodeProps) => {\n // lang 文字列をパース(null/undefined 対応)\n const { isDiff, lang, filename } = parseLang(node.lang ?? undefined)\n\n // shiki を使用してコードを HTML に変換する処理をメモ化\n const htmlPromise = useMemo(async () => {\n const transformers: ShikiTransformer[] = []\n if (isDiff) {\n transformers.push(createDiffTransformer())\n }\n return await codeToHtml(node.value, {\n lang: lang,\n themes: {\n light: \"dark-plus\",\n dark: \"light-plus\",\n },\n transformers,\n })\n }, [node.value, lang, isDiff])\n\n // 言語が \"mermaid\" の場合は、MermaidDiagram コンポーネントをレンダリング\n if (lang === \"mermaid\") {\n return <MermaidDiagram chartContent={node.value} />\n }\n\n // 通常のコードブロックは Suspense でラップして非同期処理に対応\n return (\n <Suspense fallback={<div className=\"dark:text-white\">🌀 Loading code...</div>}>\n <HighlightedHtml htmlPromise={htmlPromise} filename={filename} code={node.value} />\n </Suspense>\n )\n}\n","import type { RootContentMap } from \"mdast\"\nimport { NodesRenderer } from \"../NodesRenderer.tsx\"\n\nexport const DeleteNode: React.FC<{ node: RootContentMap[\"delete\"] }> = ({ node }) => {\n return (\n <del>\n <NodesRenderer nodes={node.children} />\n </del>\n )\n}\n","import type { Emphasis } from \"mdast\"\nimport { NodesRenderer } from \"../NodesRenderer.tsx\"\n\nexport const EmphasisNode: React.FC<{ node: Emphasis }> = ({ node }) => {\n return (\n <em>\n <NodesRenderer nodes={node.children} />\n </em>\n )\n}\n","/**\n * @file This file defines the HeadingNode component, which is responsible for rendering heading elements (h1, h2, etc.) from a mdast (Markdown Abstract Syntax Tree).\n * @file このファイルは、mdast (Markdown Abstract Syntax Tree) から見出し要素 (h1, h2 など) をレンダリングする責務を持つ HeadingNode コンポーネントを定義します。\n */\nimport Slugger from \"github-slugger\"\nimport type { Heading, PhrasingContent } from \"mdast\"\nimport type { JSX } from \"react/jsx-runtime\"\nimport { NodesRenderer } from \"../NodesRenderer.tsx\"\n\n/**\n * Props for the HeadingNode component.\n * HeadingNode コンポーネントのプロパティ。\n */\ntype HeadingNodeProps = {\n /**\n * The heading node from the mdast tree.\n * mdast ツリーからの見出しノード。\n */\n node: Heading & {\n /**\n * Optional data associated with the node, which may contain hProperties for custom attributes.\n * ノードに関連付けられたオプションのデータ。カスタム属性のための hProperties を含むことがあります。\n */\n data?: {\n hProperties?: {\n id?: string\n }\n }\n }\n}\n\n/**\n * Returns the appropriate CSS class name based on the heading depth.\n * This function is used to style headings (h1, h2, etc.) differently based on their level.\n *\n * 見出しの深さに応じて適切な CSS クラス名を返却。\n * この関数は、見出し (h1, h2 など) のレベルに基づいて異なるスタイルを適用するために使用されます。\n * @param depth The depth of the heading (1 for h1, 2 for h2, etc.). 見出しの深さ (h1 の場合は 1, h2 の場合は 2 など)。\n * @returns The CSS class name for the heading. 見出し用の CSS クラス名。\n */\nconst getHeadingClassName = (depth: number): string => {\n switch (depth) {\n case 1:\n return \"border-b-2 border-gray-300 pb-2 text-3xl font-bold dark:border-gray-600 dark:text-gray-100\"\n case 2:\n return \"border-b border-gray-300 pb-2 text-2xl font-semibold dark:border-gray-600 dark:text-gray-200\"\n case 3:\n return \"text-xl font-semibold dark:text-gray-300\"\n default:\n return \"text-lg font-medium dark:text-gray-400\"\n }\n}\n\n/**\n * Recursively extracts the text content from an array of PhrasingContent nodes.\n * This is used to generate a fallback ID for headings when a custom ID is not provided.\n *\n * PhrasingContent ノードの配列からテキストコンテンツを再帰的に抽出。\n * これは、カスタム ID が提供されていない場合に見出しのフォールバック ID を生成するために使用されます。\n * @param children An array of PhrasingContent nodes. PhrasingContent ノードの配列。\n * @returns The concatenated text content of the nodes. 連結されたノードのテキストコンテンツ。\n */\nconst getChildrenText = (children: PhrasingContent[]): string => {\n let text = \"\"\n // 子ノードをループしてテキストを抽出\n for (const child of children) {\n // テキストノードの場合、値を追加\n if (\"value\" in child && typeof child.value === \"string\") {\n text += child.value\n // 親ノードの場合、再帰的にテキストを抽出\n } else if (\"children\" in child && Array.isArray(child.children)) {\n text += getChildrenText(child.children as PhrasingContent[])\n }\n }\n return text\n}\n\n/**\n * Renders a heading element (h1, h2, etc.) from a mdast Heading node.\n * It determines the appropriate heading tag, applies styling based on the heading depth,\n * and generates an ID from the heading text if one is not explicitly provided.\n *\n * mdast の Heading ノードから見出し要素 (h1, h2 など) をレンダリング。\n * 適切な見出しタグを決定し、見出しの深さに基づいてスタイリングを適用し、\n * ID が明示的に提供されていない場合は見出しテキストから ID を生成します。\n * @param {HeadingNodeProps} props - The properties for the component.\n * @returns A heading element with the appropriate level, ID, and content.\n */\nexport const HeadingNode = ({ node }: HeadingNodeProps): JSX.Element => {\n const slugger = new Slugger()\n // 見出しレベルからHTMLタグを決定\n const Tag = `h${node.depth}` as keyof JSX.IntrinsicElements\n // カスタムIDを取得\n const customId = node.data?.hProperties?.id\n // IDフォールバック用に子要素のテキストを取得\n const childrenText = slugger.slug(getChildrenText(node.children))\n\n return (\n // <Tag id={customId || encodeURIComponent(childrenText)} className={getHeadingClassName(node.depth)}>\n <Tag id={customId || childrenText} className={getHeadingClassName(node.depth)}>\n {/* 子ノードをレンダリング */}\n <NodesRenderer nodes={node.children} />\n </Tag>\n )\n}\n","/**\n * This module provides a React component that acts as a specialized plugin for embedding Dify chatbot iframes.\n * It is designed to handle the complexities of OAuth authentication, cross-origin communication,\n * and dynamic content loading, ensuring a seamless and secure user experience.\n * The plugin also includes domain-specific security checks to restrict embedding to allowed origins.\n *\n * このモジュールは、Dify チャットボットの iframe を埋め込むための専用プラグインとして機能する React コンポーネントを提供する。\n * OAuth 認証、クロスオリジン通信、動的コンテンツ読み込みといった複雑な処理を管理し、\n * シームレスで安全なユーザー体験を実現することを目的とする。\n * また、許可されたオリジンのみに埋め込みを制限するためのドメイン固有のセキュリティチェックも含まれている。\n */\nimport { useCallback, useEffect, useRef, useState } from \"react\"\n\ntype DifyIFramePluginProps = {\n iframeHtml: string\n iFrameAllowedDomains?: string[]\n}\n\ninterface IFrameMessage {\n type: string\n payload?: unknown\n}\n\n/**\n * A React component that securely embeds a Dify chatbot iframe with support for OAuth authentication.\n *\n * This component manages the entire lifecycle of the Dify iframe, including:\n * - Initial loading and rendering of the iframe from an HTML string.\n * - An OAuth authentication flow, prompting the user to authenticate in a popup window.\n * - Secure message handling between the parent window and the iframe, restricted to allowed domains.\n * - Error handling for cross-origin access issues and authentication timeouts.\n * - A loading indicator and authentication prompt to provide clear user feedback.\n *\n * Dify チャットボットの iframe を安全に埋め込み、OAuth 認証をサポートする React コンポーネント。\n *\n * このコンポーネントは、Dify iframe のライフサイクル全体を管理する。主な機能は以下の通り。\n * - HTML 文字列からの iframe の初期読み込みとレンダリング。\n * - ポップアップウィンドウでユーザーに認証を促す OAuth 認証フロー。\n * - 親ウィンドウと iframe 間の安全なメッセージハンドリング (許可されたドメインに限定)。\n * - クロスオリジンアクセス問題や認証タイムアウトに関するエラーハンドリング。\n * - 明確なユーザーフィードバックを提供するための、読み込みインジケーターと認証プロンプト。\n *\n * @param {DifyIFramePluginProps} props - The properties for the component.\n * @param {string} props.iframeHtml - The iframe HTML string to render.\n * @param {string[]} [props.iFrameAllowedDomains] - Optional array of allowed domains for iframe src URLs. Defaults to an empty array.\n * @returns {JSX.Element | null} The Dify iframe with authentication and error handling, or null if the domain is not allowed.\n */\nexport const DifyIFramePlugin = ({ iframeHtml, iFrameAllowedDomains = [] }: DifyIFramePluginProps) => {\n const [isLoading, setIsLoading] = useState(true)\n const [showAuthPrompt, setShowAuthPrompt] = useState(false)\n const authTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n const initialTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n\n // iframe の HTML 文字列から src 属性の URL を抽出する\n const getSrcFromHtml = useCallback((htmlString: string): string => {\n const srcMatch = htmlString.match(/src\\s*=\\s*[\"']([^\"']*)[\"']/i)\n return srcMatch?.[1] || \"\"\n }, [])\n\n const src = getSrcFromHtml(iframeHtml)\n\n // 指定された URL のホスト名が許可リストに含まれているか検証する\n const isAllowedDomain = useCallback(\n (url: string): boolean => {\n try {\n const urlObj = new URL(url)\n return iFrameAllowedDomains.includes(urlObj.hostname)\n } catch {\n return false\n }\n },\n [iFrameAllowedDomains],\n )\n\n // iframe から投稿されたメッセージを処理する\n const handleMessage = useCallback(\n (event: MessageEvent<IFrameMessage>) => {\n // セキュリティ: 許可されたオリジンからのメッセージのみを処理する\n if (!isAllowedDomain(event.origin)) {\n return\n }\n\n const { type } = event.data\n\n // Dify チャットボットの準備が完了したことを示すメッセージをハンドリングする\n if (type === \"dify-chatbot-iframe-ready\") {\n console.log(\"Dify chatbot iframe is ready\")\n // 状態を更新する前に、現在の読み込み状態をチェックする\n setIsLoading((prev) => {\n if (prev) {\n setShowAuthPrompt(false)\n // 認証フロー中に設定されたタイムアウトをクリアする\n if (authTimeoutRef.current) {\n clearTimeout(authTimeoutRef.current)\n authTimeoutRef.current = null\n }\n // 初期読み込み時に設定されたタイムアウトをクリアする\n if (initialTimeoutRef.current) {\n clearTimeout(initialTimeoutRef.current)\n initialTimeoutRef.current = null\n }\n return false\n }\n return prev\n })\n }\n },\n [isAllowedDomain],\n )\n\n // iframe の読み込み完了後に、クロスオリジン制約によるアクセスエラーをチェックする\n const checkIframeAccess = useCallback(() => {\n const iframe = document.querySelector(`iframe[src=\"${src}\"]`) as HTMLIFrameElement\n if (iframe) {\n try {\n // クロスオリジン制約のチェック: iframe の contentDocument にアクセスを試みる\n const doc = iframe.contentDocument\n if (!doc) {\n // アクセスに失敗した場合、クロスオリジンエラーと判断する\n throw new Error(\"Cannot access iframe content\")\n }\n // アクセスに成功した場合、認証済みとみなし、読み込み状態を解除する\n setIsLoading((prev) => {\n if (prev) {\n setShowAuthPrompt(false)\n return false\n }\n return prev\n })\n } catch (_error) {\n // クロスオリジンエラーが検出された場合、認証プロンプトを表示する\n console.log(\"Crossorigin error detected, showing auth prompt\")\n setShowAuthPrompt((prev) => {\n if (!prev) {\n setIsLoading(false)\n return true\n }\n return prev\n })\n }\n }\n }, [src])\n\n // OAuth 認証用のポップアップウィンドウを開き、認証プロセスを管理する\n const handleAuthRequest = useCallback(\n (authUrl: string) => {\n const popup = window.open(authUrl, \"dify-oauth\", \"width=500,height=600,scrollbars=yes,resizable=yes\")\n\n if (!popup) {\n console.error(\"ポップアップがブロックされました\")\n return\n }\n\n // ポップアップウィンドウが閉じられたことを検知するためのポーリング処理\n const checkClosed = setInterval(() => {\n if (popup.closed) {\n clearInterval(checkClosed)\n console.log(\"ポップアップが閉じられました\")\n\n // クロスオリジン制約のため、ポップアップの URL などの詳細情報にはアクセスできない\n try {\n // 同一オリジンの場合のみアクセス可能\n console.log(\"ポップアップURL:\", popup.location.href)\n } catch (error) {\n console.log(\"クロスオリジンのためURLにアクセスできません:\", error)\n }\n\n // ポップアップが閉じられた後、iframe をリロードして認証状態を更新する\n const iframe = document.querySelector(`iframe[src=\"${authUrl}\"]`) as HTMLIFrameElement\n if (iframe?.src) {\n const originalSrc = iframe.src\n setIsLoading((prev) => (prev ? prev : true))\n setShowAuthPrompt((prev) => (prev ? false : prev)) // 認証プロンプトを非表示にする\n\n // iframe の src を一度空にしてから再設定することで、強制的にリロードする\n iframe.src = \"\"\n\n // 短い遅延の後、元の src を再設定して iframe の再読み込みを開始する\n setTimeout(() => {\n iframe.src = originalSrc\n\n // 認証後のタイムアウト: 5秒以内に `dify-chatbot-iframe-ready` メッセージが届かない場合、\n // クロスオリジンチェックを再実行して状態を確定させる\n authTimeoutRef.current = setTimeout(() => {\n console.log(\"認証後タイムアウト: dify-chatbot-iframe-ready not received after auth\")\n checkIframeAccess()\n }, 5000)\n }, 100)\n }\n }\n }, 1000)\n\n // デバッグ用にポップアップの基本情報をログに出力する\n console.log(\"ポップアップを開きました:\")\n console.log(\"- 初期URL:\", authUrl)\n console.log(\"- ウィンドウ名:\", \"dify-oauth\")\n console.log(\"- ウィンドウサイズ: 500x600\")\n },\n [checkIframeAccess],\n )\n\n // コンポーネントのマウント時にメッセージリスナーを設定し、アンマウント時に解除する\n useEffect(() => {\n window.addEventListener(\"message\", handleMessage)\n\n return () => {\n window.removeEventListener(\"message\", handleMessage)\n }\n }, [handleMessage])\n\n // 初期読み込み時のタイムアウト処理\n useEffect(() => {\n // 5秒以内に `dify-chatbot-iframe-ready` メッセージが届かない場合、\n // クロスオリジンエラーの可能性を考慮してアクセスチェックを実行する\n const timeoutId = setTimeout(() => {\n console.log(\"Timeout: dify-chatbot-iframe-ready not received, checking iframe access\")\n checkIframeAccess()\n }, 5000)\n\n initialTimeoutRef.current = timeoutId\n\n // コンポーネントのアンマウント時にタイムアウトをクリアする\n return () => {\n if (initialTimeoutRef.current) {\n clearTimeout(initialTimeoutRef.current)\n initialTimeoutRef.current = null\n }\n }\n }, [checkIframeAccess])\n\n // 認証フロー中のタイムアウト参照をクリーンアップするための useEffect\n useEffect(() => {\n return () => {\n if (authTimeoutRef.current) {\n clearTimeout(authTimeoutRef.current)\n authTimeoutRef.current = null\n }\n }\n }, [])\n\n // iframe の src が許可されたドメインでない場合は、コンポーネントをレンダリングしない\n if (!isAllowedDomain(src)) {\n console.warn(\"DifyIFramePlugin: Invalid domain for iframe:\", src)\n return null\n }\n\n return (\n <div className=\"dify-iframe-container\">\n {/* 読み込み中のインジケーター */}\n {isLoading && !showAuthPrompt && (\n <div className=\"flex items-center justify-center rounded-lg bg-gray-50 p-8\">\n <div className=\"h-8 w-8 animate-spin rounded-full border-blue-600 border-b-2\"></div>\n <span className=\"ml-3 text-gray-600\">Dify チャットボットを読み込み中...</span>\n </div>\n )}\n\n {/* OAuth 認証が必要な場合のプロンプト */}\n {showAuthPrompt && (\n <div className=\"mb-4 rounded-lg border border-blue-200 bg-blue-50 p-6\">\n <div className=\"flex items-center\">\n <div className=\"text-blue-800\">\n <h3 className=\"font-medium\">認証が必要です</h3>\n <p className=\"mt-1 text-sm\">Dify チャットボットにアクセスするには OAuth 認証が必要です。 ポップアップウィンドウで認証を完了してください。</p>\n </div>\n </div>\n <div className=\"mt-4\">\n <button type=\"button\" onClick={() => handleAuthRequest(src)} className=\"rounded-md border border-gray-700 bg-gray-900 px-4 py-2 font-medium text-sm text-white shadow-lg transition-colors hover:bg-gray-800\">\n OAuth 認証を開始\n </button>\n </div>\n </div>\n )}\n\n {/* Dify iframe 本体: 元の HTML をそのまま埋め込む */}\n <div\n className={`${isLoading || showAuthPrompt ? \"hidden\" : \"block\"}`}\n // biome-ignore lint/security/noDangerouslySetInnerHtml: このプラグインは信頼された HTML のみを扱うため、安全性は確認済み\n dangerouslySetInnerHTML={{ __html: iframeHtml }}\n />\n </div>\n )\n}\n","/**\n * This module implements a registry system for managing iframe plugins.\n * It provides a centralized mechanism to register, retrieve, and query iframe plugin components based on a unique plugin type.\n * This allows for a scalable and maintainable way to handle different kinds of iframe embeds, such as Dify, YouTube, or Vimeo,\n * by associating a specific string identifier with its corresponding React component.\n *\n * このモジュールは、iframe プラグインを管理するためのレジストリシステムを実装する。\n * ユニークなプラグインタイプに基づいて iframe プラグインコンポーネントを登録、取得、問い合わせるための中央集権的なメカニズムを提供する。\n * これにより、特定の文字列識別子を対応する React コンポーネントに関連付けることで、\n * Dify、YouTube、Vimeo といった異なる種類の iframe 埋め込みを、スケーラブルかつ保守性の高い方法で処理できる。\n */\nimport { DifyIFramePlugin } from \"./DifyIFramePlugin.tsx\"\n\n/**\n * Defines the common properties required by all iframe plugin components.\n *\n * すべての iframe プラグインコンポーネントで要求される共通のプロパティを定義する。\n */\nexport interface IFramePluginProps {\n /**\n * The full HTML string of the iframe element.\n * The plugin component is responsible for parsing and rendering this HTML.\n *\n * iframe 要素の完全な HTML 文字列。\n * プラグインコンポーネントは、この HTML の解析とレンダリングに責任を持つ。\n */\n iframeHtml: string\n /**\n * An optional array of domain names that are allowed to be rendered.\n * If provided, the plugin should verify the iframe's `src` against this list.\n *\n * レンダリングが許可されているドメイン名のオプション配列。\n * 指定された場合、プラグインは iframe の `src` をこのリストと照合して検証する必要がある。\n */\n iFrameAllowedDomains?: string[]\n}\n\n/**\n * Represents the type for a valid iframe plugin component.\n * It must be a React component that accepts `IFramePluginProps`.\n *\n * 有効な iframe プラグインコンポーネントの型を表す。\n * これは `IFramePluginProps` を受け入れる React コンポーネントでなければならない。\n */\nexport type IFramePluginComponent = React.ComponentType<IFramePluginProps>\n\n/**\n * A record that maps plugin type strings to their corresponding plugin components.\n * This registry is the central point for associating an identifier (e.g., \"dify\") with its implementation.\n * To add a new plugin, simply import its component and add a new entry to this object.\n *\n * プラグインタイプの文字列を、対応するプラグインコンポーネントにマッピングするレコード。\n * このレジストリは、識別子 (例: \"dify\") とその実装を関連付けるための中核となる。\n * 新しいプラグインを追加するには、そのコンポーネントをインポートし、このオブジェクトに新しいエントリを追加する。\n */\nexport const IFRAME_PLUGIN_REGISTRY: Record<string, IFramePluginComponent> = {\n /**\n * Plugin for embedding Dify chatbots.\n * Dify チャットボットを埋め込むためのプラグイン。\n */\n dify: DifyIFramePlugin,\n /**\n * Example of how to add other plugins in the future.\n * 将来的に他のプラグインを追加する方法の例。\n *\n * youtube: YouTubeIFramePlugin,\n * vimeo: VimeoIFramePlugin,\n */\n}\n\n/**\n * Retrieves an iframe plugin component from the registry based on its type.\n *\n * 指定されたタイプに基づいて、レジストリから iframe プラグインコンポーネントを取得する。\n *\n * @param {string} pluginType - The unique identifier for the plugin (e.g., \"dify\").\n * @returns {IFramePluginComponent | null} The corresponding plugin component if found, otherwise null.\n */\nexport const getIFramePlugin = (pluginType: string): IFramePluginComponent | null => {\n return IFRAME_PLUGIN_REGISTRY[pluginType] || null\n}\n\n/**\n * Checks if a plugin of the specified type is registered.\n *\n * 指定されたタイプのプラグインが登録されているかどうかをチェックする。\n *\n * @param {string} pluginType - The plugin type to check for.\n * @returns {boolean} `true` if the plugin is registered, otherwise `false`.\n */\nexport const isPluginRegistered = (pluginType: string): boolean => {\n return pluginType in IFRAME_PLUGIN_REGISTRY\n}\n\n/**\n * Returns an array of all registered plugin types.\n *\n * 登録されているすべてのプラグインタイプの配列を返す。\n *\n * @returns {string[]} An array of strings, where each string is a registered plugin type.\n */\nexport const getRegisteredPluginTypes = (): string[] => {\n return Object.keys(IFRAME_PLUGIN_REGISTRY)\n}\n","/**\n * This module provides a React component for safely rendering raw HTML nodes within a Markdown document.\n * It acts as a security gateway, using DOMPurify to sanitize HTML content on the client-side, thereby preventing XSS attacks.\n * A key feature is its ability to detect `<iframe>` elements with a `data-plugin-type` attribute,\n * which are then delegated to specialized plugin components for enhanced functionality, such as handling OAuth flows.\n *\n * このモジュールは、Markdown ドキュメント内の生の HTML ノードを安全にレンダリングするための React コンポーネントを提供する。\n * これはセキュリティゲートウェイとして機能し、クライアントサイドで DOMPurify を使用して HTML コンテンツをサニタイズすることで、XSS 攻撃を防止する。\n * `data-plugin-type` 属性を持つ `<iframe>` 要素を検出し、OAuth フローの処理などの高度な機能のために\n * 専用のプラグインコンポーネントに処理を委譲する機能が特徴である。\n */\nimport createDOMPurify from \"dompurify\"\nimport type { RootContentMap } from \"mdast\"\nimport { useEffect, useState } from \"react\"\nimport { getIFramePlugin } from \"../plugins\"\n\ntype HTMLNodeProps = {\n node: RootContentMap[\"html\"]\n iFrameAllowedDomains?: string[]\n}\n\n// 外部リンクを判定するための正規表現\nconst EXTERNAL_URL_REGEX = /^[a-z][a-z0-9+.-]*:/\n\n/**\n * A React component that safely renders an HTML node from an mdast tree.\n *\n * This component addresses two primary concerns: security and server-side rendering (SSR) compatibility.\n * 1. **Security**: It uses `DOMPurify` on the client-side to sanitize the raw HTML string from the `node.value`, mitigating the risk of XSS attacks.\n * 2. **SSR Compatibility**: To prevent hydration mismatches between the server-rendered and client-rendered output, the component initially renders `null` on the server. The sanitization and rendering logic is executed only after the component has mounted on the client.\n *\n * It also features a plugin system for `<iframe>` elements. If an iframe has a `data-plugin-type` attribute and its `src` domain is allowed, rendering is delegated to a corresponding component from the `IFramePluginRegistry`.\n *\n * mdast ツリーから HTML ノードを安全にレンダリングする React コンポーネント。\n *\n * このコンポーネントは、セキュリティとサーバーサイドレンダリング (SSR) 互換性という2つの主要な課題に対処する。\n * 1. **セキュリティ**: クライアントサイドで `DOMPurify` を使用して `node.value` からの生の HTML 文字列をサニタイズし、XSS 攻撃のリスクを軽減する。\n * 2. **SSR 互換性**: サーバーでレンダリングされた出力とクライアントでレンダリングされた出力との間のハイドレーションの不一致を防ぐため、サーバー上では最初に `null` をレンダリングする。サニタイズとレンダリングのロジックは、コンポーネントがクライアントにマウントされた後にのみ実行される。\n *\n * また、`<iframe>` 要素のためのプラグインシステムも備えている。iframe が `data-plugin-type` 属性を持ち、その `src` ドメインが許可されている場合、レンダリングは `IFramePluginRegistry` から対応するコンポーネントに委譲される。\n *\n * @param {HTMLNodeProps} props - The properties for the component.\n * @param {RootContentMap[\"html\"]} props.node - The mdast HTML node containing the raw HTML string to be rendered.\n * @param {string[]} [props.iFrameAllowedDomains] - An optional array of allowed hostnames for iframe `src` URLs. Defaults to an empty array.\n * @returns {JSX.Element | null} The sanitized HTML content as a JSX element, or `null` if rendering on the server or if the content is empty.\n */\nexport const HTMLNode = ({ node, iFrameAllowedDomains = [] }: HTMLNodeProps) => {\n // サニタイズされた HTML 文字列を保持する state\n const [sanitizedHtml, setSanitizedHtml] = useState(\"\")\n // クライアントサイドでのマウント状態を追跡する state\n const [isMounted, setIsMounted] = useState(false)\n // プラグインで処理すべき iframe が検出された場合にその情報を保持する state\n const [pluginIframe, setPluginIframe] = useState<{ type: string; iframeHtml: string } | null>(null)\n\n // DOMPurify はクライアントサイドでのみ利用可能な `window` オブジェクトに依存するため、\n // `useEffect` を使用してクライアントでのマウント後にサニタイズ処理を実行する。\n useEffect(() => {\n // コンポーネントがクライアントにマウントされたことを示す\n setIsMounted(true)\n\n // `window` が未定義の場合は、サーバーサイドレンダリング中なので何もしない\n if (typeof window !== \"undefined\") {\n const DOMPurify = createDOMPurify(window)\n let detectedPlugin: { type: string; iframeHtml: string } | null = null\n\n // DOMPurify のフックを追加し、サニタイズ後の DOM ノードを走査・操作する\n DOMPurify.addHook(\"afterSanitizeAttributes\", (currentNode) => {\n const tagName = currentNode.tagName.toLowerCase()\n\n // `iframe` タグの特別な処理\n if (tagName === \"iframe\") {\n const src = currentNode.getAttribute(\"src\")\n const pluginType = currentNode.getAttribute(\"data-plugin-type\")\n\n if (src) {\n try {\n const url = new URL(src)\n // `src` のホスト名が許可リストに含まれているかチェックする\n if (!iFrameAllowedDomains.includes(url.hostname)) {\n // 許可されていないドメインの場合、セキュリティリスクを避けるために `src` 属性を削除する\n currentNode.removeAttribute(\"src\")\n } else if (pluginType) {\n // 許可されたドメインで、かつ `data-plugin-type` が指定されている場合、\n // この iframe をプラグインで処理するようにマークする\n detectedPlugin = {\n type: pluginType,\n iframeHtml: currentNode.outerHTML,\n }\n }\n } catch (_error) {\n // `src` が不正な URL 形式の場合も `src` 属性を削除する\n currentNode.removeAttribute(\"src\")\n }\n }\n }\n\n // `a` タグ (リンク) の特別な処理\n if (tagName === \"a\") {\n // 統一されたスタイルを適用するためのクラスを追加する\n currentNode.classList.add(\"inline-block\", \"w-fit\", \"text-link\", \"underline\", \"visited:text-link-visited\")\n const href = currentNode.getAttribute(\"href\")\n // 外部リンク (http/https などで始まる) の場合、セキュリティと利便性のために `target` と `rel` 属性を追加する\n if (href && EXTERNAL_URL_REGEX.test(href)) {\n currentNode.setAttribute(\"target\", \"_blank\")\n currentNode.setAttribute(\"rel\", \"noreferrer\")\n }\n }\n })\n\n // HTML をサニタイズする。`ADD_TAGS` と `ADD_ATTR` で、特定のタグと属性を明示的に許可する\n const sanitized = DOMPurify.sanitize(node.value, {\n ADD_TAGS: [\"iframe\"],\n ADD_ATTR: [\"src\", \"frameborder\", \"allow\", \"allowfullscreen\", \"target\", \"rel\", \"data-plugin-type\", \"width\", \"height\", \"title\", \"class\"],\n })\n\n // フック処理でプラグインが検出された場合は、プラグイン用の state を更新する\n if (detectedPlugin) {\n setPluginIframe(detectedPlugin)\n } else {\n // プラグインがない場合は、サニタイズされた HTML を state に設定する\n setSanitizedHtml(sanitized)\n }\n }\n }, [node.value, iFrameAllowedDomains])\n\n if (!isMounted) {\n // サーバーサイドでは何もレンダリングしないことで、クライアントとのハイドレーションの不一致を回避する\n return null\n }\n\n // プラグインで処理すべき iframe がある場合\n if (pluginIframe) {\n const { type, iframeHtml } = pluginIframe\n\n // レジストリから対応するプラグインコンポーネントを取得する\n const PluginComponent = getIFramePlugin(type)\n\n if (PluginComponent) {\n // プラグインコンポーネントをレンダリングし、必要なプロパティを渡す\n return <PluginComponent iframeHtml={iframeHtml} iFrameAllowedDomains={iFrameAllowedDomains} />\n } else {\n // 対応するプラグインが登録されていない場合は、警告をコンソールに出力する\n console.warn(`Unknown or unregistered plugin type: ${type}`)\n }\n }\n\n // サニタイズされた HTML を `dangerouslySetInnerHTML` を使ってレンダリングする\n return (\n <>\n {sanitizedHtml === \"\" ? null : (\n // DOMPurify によってサニタイズ済みのため、`dangerouslySetInnerHTML` の使用は安全である\n // biome-ignore lint/security/noDangerouslySetInnerHtml: The HTML is sanitized by DOMPurify.\n <div dangerouslySetInnerHTML={{ __html: sanitizedHtml }} />\n )}\n </>\n )\n}\n","import type { Parent } from \"mdast\"\nimport type { ImageNode as sizedImageNode } from \"../../plugins/remark-image-size.ts\"\n\ntype NodeWithParent = sizedImageNode & {\n parent?: Parent\n}\n\ntype ImageNodeProps = {\n node: NodeWithParent\n}\n\nexport const ImageNode = ({ node }: ImageNodeProps) => {\n if (!node.url) {\n return null\n }\n const title = node.title ?? \"\"\n const width = node.data?.hProperties?.width\n const height = node.data?.hProperties?.height\n\n return (\n <span style={{ width, height }} className=\"mt-4 mb-4 block w-fit max-w-full\">\n <img src={node.url} alt={node.alt ?? \"\"} className=\"mx-auto h-full w-full\" width={width} height={height} />\n {title && <em className=\"block text-center text-gray-400 text-xs\">{title}</em>}\n </span>\n )\n}\n","import type { RootContentMap } from \"mdast\"\n\nexport const InlineCodeNode: React.FC<{ node: RootContentMap[\"inlineCode\"] }> = ({ node }) => {\n return <code className=\"rounded-md bg-gray-200 px-1.5 py-1 font-mono text-gray-800 text-sm dark:bg-gray-700 dark:text-gray-200\">{node.value}</code>\n}\n","import katex from \"katex\"\nimport type { RootContentMap } from \"mdast\"\nimport { useLayoutEffect, useRef } from \"react\"\n\nexport const InlineMathNode: React.FC<{ node: RootContentMap[\"inlineMath\"] }> = ({ node }) => {\n const codeRef = useRef<HTMLDivElement>(null)\n\n useLayoutEffect(() => {\n try {\n if (codeRef.current) {\n katex.render(node.value, codeRef.current)\n }\n } catch (error) {\n console.error(\"An error occurred while rendering KaTeX:\", error)\n if (codeRef.current) {\n codeRef.current.innerText = `Math rendering error: ${error instanceof Error ? error.message : String(error)}`\n }\n }\n }, [node.value])\n\n return <span ref={codeRef} className=\"rounded-md px-1.5 py-1 font-mono text-gray-800 text-sm dark:text-gray-200\" />\n}\n","import type { RootContentMap } from \"mdast\"\nimport { NodesRenderer } from \"../NodesRenderer.tsx\"\n\nconst EXTERNAL_URL_REGEX = /^[a-z][a-z0-9+.-]*:/\n\nexport const LinkNode: React.FC<{ node: RootContentMap[\"link\"] }> = ({ node }) => {\n // 外部リンクか判定\n const isExternal = EXTERNAL_URL_REGEX.test(node.url)\n\n return (\n <a className=\"inline-block w-fit text-link underline visited:text-link-visited\" href={node.url} target={isExternal ? \"_blank\" : undefined} rel={isExternal ? \"noreferrer\" : undefined}>\n <NodesRenderer nodes={node.children} />\n </a>\n )\n}\n","import type { RootContentMap } from \"mdast\"\nimport { NodesRenderer } from \"../NodesRenderer.tsx\"\n\nexport const ListItemNode: React.FC<{ node: RootContentMap[\"listItem\"] }> = ({ node }) => {\n if (node.children.length === 1 && node.children[0].type === \"paragraph\") {\n return (\n <li>\n <NodesRenderer nodes={node.children[0].children} />\n </li>\n )\n }\n\n return (\n <li>\n <NodesRenderer nodes={node.children} />\n </li>\n )\n}\n","import type { RootContentMap } from \"mdast\"\nimport { NodesRenderer } from \"../NodesRenderer.tsx\"\n\nexport const ListNode: React.FC<{ node: RootContentMap[\"list\"] }> = ({ node }) => {\n const Tag = node.ordered ? \"ol\" : \"ul\"\n return (\n <Tag>\n <NodesRenderer nodes={node.children} />\n </Tag>\n )\n}\n","import katex from \"katex\"\nimport type { RootContentMap } from \"mdast\"\nimport { useLayoutEffect, useRef, useState } from \"react\"\n\n/**\n * A button component to copy code to the clipboard.\n * クリップボードにコードをコピーするためのボタンコンポーネント。\n * @param code The code string to be copied. コピー対象のコード文字列。\n */\nconst CopyButton = ({ code }: { code: string }) => {\n const [copied, setCopied] = useState(false)\n\n const handleCopy = () => {\n // クリップボードにコードを書き込む\n navigator.clipboard.writeText(code).then(\n () => {\n // コピー成功状態に設定\n setCopied(true)\n // 2秒後にコピー状態をリセット\n setTimeout(() => setCopied(false), 2000)\n },\n (err) => {\n // コピー失敗時にエラーをコンソールに出力\n console.error(\"Failed to copy: \", err)\n },\n )\n }\n\n return (\n <button type=\"button\" className=\"absolute right-2 z-10 rounded-md bg-gray-200 px-2 py-1 text-gray-800 text-xs transition-colors hover:bg-gray-300 dark:bg-gray-700 dark:text-gray-100 dark:hover:bg-gray-600\" onClick={handleCopy}>\n {copied ? \"COPIED!\" : \"Copy\"}\n </button>\n )\n}\n\nexport const MathNode: React.FC<{ node: RootContentMap[\"math\"] }> = ({ node }) => {\n const codeRef = useRef<HTMLDivElement>(null)\n\n useLayoutEffect(() => {\n try {\n if (codeRef.current) {\n katex.render(node.value, codeRef.current)\n }\n } catch (error) {\n console.error(\"An error occurred while rendering KaTeX:\", error)\n if (codeRef.current) {\n codeRef.current.innerText = `Math rendering error: ${error instanceof Error ? error.message : String(error)}`\n }\n }\n }, [node.value])\n\n return (\n <div className=\"relative\">\n <CopyButton code={node.value} />\n <article ref={codeRef} className=\"rounded-md px-1.5 py-1 font-mono text-gray-800 text-sm dark:text-gray-200\" />\n </div>\n )\n}\n","import type { RootContentMap } from \"mdast\"\nimport { NodesRenderer } from \"../NodesRenderer.tsx\"\n\nexport const ParagraphNode: React.FC<{ node: RootContentMap[\"paragraph\"] }> = ({ node }) => {\n return (\n <p>\n <NodesRenderer nodes={node.children} />\n </p>\n )\n}\n","import type { RootContentMap } from \"mdast\"\nimport { NodesRenderer } from \"../NodesRenderer.tsx\"\n\nexport const StrongNode: React.FC<{ node: RootContentMap[\"strong\"] }> = ({ node }) => {\n return (\n <strong>\n <NodesRenderer nodes={node.children} />\n </strong>\n )\n}\n","import type { RootContentMap } from \"mdast\"\nimport { NodesRenderer } from \"../NodesRenderer.tsx\"\n\nexport const TableNode: React.FC<{ node: RootContentMap[\"table\"] }> = ({ node }) => {\n const [headRow, ...bodyRows] = node.children\n return (\n <div className=\"overflow-x-auto\">\n <table className=\"w-full border-collapse border-none\">\n <thead className=\"bg-gray-100 dark:bg-gray-800\">\n <tr>\n {headRow.children.map((cell, index) => (\n <th key={`mdast-table-node-${node.type}-${index}`} style={{ textAlign: node.align?.[index] ?? undefined }} className=\"border border-gray-300 px-4 py-2 text-left font-semibold dark:border-gray-600 dark:text-gray-200\">\n <NodesRenderer nodes={cell.children} />\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {bodyRows.map((row, rowIndex) => (\n <tr key={`mdast-table-node-${node.type}-${rowIndex}`} className=\"border-gray-200 border-t bg-white dark:border-gray-700 dark:bg-gray-900\">\n {row.children.map((cell, cellIndex) => (\n <td key={`mdast-table-node-${node.type}-${cellIndex}`} style={{ textAlign: node.align?.[cellIndex] ?? undefined }} className=\"border border-gray-300 px-4 py-2 dark:border-gray-600 dark:text-gray-300\">\n <NodesRenderer nodes={cell.children} />\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )\n}\n","import type { RootContentMap } from \"mdast\"\n\nexport const TextNode: React.FC<{ node: RootContentMap[\"text\"] }> = ({ node }) => {\n return <>{node.value}</>\n}\n","export const ThematicBreakNode: React.FC = () => {\n return <hr className=\"border-gray-300 dark:border-gray-600\" />\n}\n","/**\n * @module TwitterEmbedNode\n * @description This module provides components for embedding tweets in a React application.\n * It handles loading the Twitter widgets script, suspending rendering while the tweet is loading,\n * and displaying the tweet once it's ready.\n *\n * @description このモジュールは、React アプリケーションにツイートを埋め込むためのコンポーネントの提供。\n * Twitter ウィジェットスクリプトの読み込み、ツイート読み込み中のレンダリングの一時停止、準備完了後のツイートの表示のハンドリング。\n */\nimport type { RootContentMap } from \"mdast\"\nimport { type JSX, Suspense, use, useCallback, useEffect, useMemo, useRef, useState } from \"react\"\n\ndeclare global {\n interface Window {\n twttr?: {\n widgets?: {\n load: (element?: HTMLElement) => void\n createTweet: (\n tweetId: string,\n element: HTMLElement,\n options: {\n cards?: \"hidden\" | \"visible\"\n conversation?: \"none\" | \"all\"\n theme?: \"light\" | \"dark\"\n width?: number\n align?: \"center\" | \"left\" | \"right\"\n lang?: string\n dnt?: \"true\"\n },\n ) => Promise<HTMLElement | undefined>\n }\n }\n }\n}\n\ntype TwitterWidgets = NonNullable<NonNullable<Window[\"twttr\"]>[\"widgets\"]>\n\nlet widgetsPromise: Promise<TwitterWidgets | null> | null = null\n\n/**\n * Loads the Twitter widgets script and returns a promise that resolves with the widgets object.\n * This function caches the promise to avoid re-triggering the script load on the client.\n * On the server, it returns a promise that resolves to null to avoid hydration mismatches.\n *\n * Twitter ウィジェットスクリプトを読み込み、ウィジェットオブジェクトで解決される Promise の返却。\n * この関数は、クライアントでのスクリプトの再読み込みを避けるための Promise のキャッシュ。\n * サーバーサイドでは、ハイドレーションのミスマッチを避けるために null に解決される Promise の返却。\n * @returns {Promise<TwitterWidgets | null>} A promise that resolves with the Twitter widgets object or null.\n */\nconst loadTwitterWidgets = (): Promise<TwitterWidgets | null> => {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n // サーバーサイドでは、ハイドレーションのミスマッチを避けるための null に解決される Promise の返却。\n return Promise.resolve(null)\n }\n\n if (widgetsPromise) {\n return widgetsPromise\n }\n\n widgetsPromise = new Promise<TwitterWidgets | null>((resolve, reject) => {\n if (window.twttr?.widgets) {\n return resolve(window.twttr.widgets)\n }\n\n const scriptId = \"twitter-wjs\"\n\n const onScriptLoad = () => {\n if (window.twttr?.widgets) {\n resolve(window.twttr.widgets)\n } else {\n reject(new Error(\"Twitter widget script loaded, but `window.twttr.widgets` not found.\"))\n }\n }\n\n const existingScript = document.getElementById(scriptId)\n if (existingScript) {\n // スクリプトは存在するが、まだ読み込み中の可能性。\n existingScript.addEventListener(\"load\", onScriptLoad)\n existingScript.addEventListener(\"error\", () => reject(new Error(\"Failed to load Twitter script.\")))\n return\n }\n\n const script = document.createElement(\"script\")\n script.id = scriptId\n script.src = \"https://platform.twitter.com/widgets.js\"\n script.async = true\n script.charset = \"utf-8\"\n script.onload = onScriptLoad\n script.onerror = () => reject(new Error(\"Failed to load Twitter script.\"))\n document.body.appendChild(script)\n })\n\n return widgetsPromise\n}\n\n/**\n * A component that suspends rendering until a promise is settled.\n *\n * Promise が解決されるまでレンダリングを一時停止するコンポーネント。\n * @param {{ promise: Promise<HTMLElement | undefined> }} props The props for the component.\n * @param {Promise<HTMLElement | undefined>} props.promise The promise to wait for.\n * @returns {null} This component renders nothing.\n */\nconst TweetSuspender = ({ promise }: { promise: Promise<HTMLElement | undefined> }) => {\n // Promise が解決されるまでの親のレンダリングの一時停止。\n use(promise)\n // Promise が解決された際の null の返却によるレンダリングの続行。\n // Promise が拒否された際の例外のスローによる、最も近い ErrorBoundary でのキャッチ。\n return null\n}\n\n/**\n * A component that creates a container for the Twitter widget and initiates its creation.\n *\n * Twitter ウィジェットのコンテナを作成し、その作成を開始するコンポーネント。\n * @param {{\n * setPromise: (value: React.SetStateAction<Promise<HTMLElement | undefined> | null>) => void\n * createPromise: (targetNode: HTMLDivElement) => Promise<HTMLElement | undefined>\n * }} props The props for the component.\n * @returns {JSX.Element} A div element that serves as the mount point for the Twitter widget.\n */\nconst Widgets = ({ setPromise, createPromise }: { setPromise: (value: React.SetStateAction<Promise<HTMLElement | undefined> | null>) => void; createPromise: (targetNode: HTMLDivElement) => Promise<HTMLElement | undefined> }) => {\n const mountPointRef = useRef<HTMLDivElement | null>(null)\n\n useEffect(() => {\n const mountPoint = mountPointRef.current\n if (!mountPoint) {\n console.warn(\"Mount point for Twitter widget not found.\")\n return\n }\n\n // Twitter ウィジェットスクリプトが読み込まれたため、ツイートの Promise を作成。\n const promise = createPromise(mountPoint)\n .then((element) => {\n if (!element) {\n console.warn(\"createPromise から要素が返されませんでした。\")\n return undefined\n }\n return element\n })\n .catch((error) => {\n console.error(\"ツイートウィジェットの作成中にエラーが発生しました:\", error)\n mountPoint.innerText = `ツイートの読み込みエラー: ${error.message}`\n return undefined // 未処理の拒否を避けるために Promise を解決。\n })\n setPromise(promise)\n\n return () => {\n // クリーンアップ:コンポーネントがアンマウントされるときのマウントポイントのコンテンツの削除。\n mountPoint.innerHTML = \"\"\n }\n }, [createPromise, setPromise])\n\n return <div ref={mountPointRef} className=\"twitter-embed min-h-24\" />\n}\n\n/**\n * A component that embeds a tweet.\n * It uses the passed `loadWidgetsPromise` to load the Twitter widgets script\n * and then creates the tweet inside a `div` element.\n *\n * ツイートを埋め込むコンポーネント。\n * 渡された `loadWidgetsPromise` を使用して Twitter ウィジェットスクリプトを読み込み、\n * `div` 要素内にツイートを作成。\n * @param {{\n * node: RootContentMap[\"twitter-embed\"]\n * loadWidgetsPromise: Promise<TwitterWidgets | null>\n * theme: \"light\" | \"dark\"\n * }} props The props for the component.\n * @returns {JSX.Element} The component that renders the tweet.\n */\nconst TweetEmbed = ({ node, loadWidgetsPromise, theme }: { node: RootContentMap[\"twitter-embed\"]; loadWidgetsPromise: Promise<TwitterWidgets | null>; theme: \"light\" | \"dark\" }) => {\n const twitterWidgetsJS = use(loadWidgetsPromise)\n const promiseResolveRef = useRef<((value: HTMLElement | undefined) => void) | null>(null)\n const promiseRejectRef = useRef<((reason?: unknown) => void) | null>(null)\n const [widget, setWidget] = useState<JSX.Element | null>(null)\n const [promise, setPromise] = useState<Promise<HTMLElement | undefined> | null>(null)\n\n const createPromise = useCallback(\n (targetNode: HTMLDivElement) => {\n let timeoutId: ReturnType<typeof setTimeout> | undefined\n if (!(targetNode && twitterWidgetsJS)) {\n return new Promise<HTMLElement | undefined>((_resolve, reject) => {\n console.warn(\"TweetEmbed: No targetNode or twitterWidgetsJS available.\")\n reject(new Error(\"No targetNode or twitterWidgetsJS available.\"))\n })\n }\n return new Promise<HTMLElement | undefined>((resolve, reject) => {\n promiseResolveRef.current = resolve\n promiseRejectRef.current = reject\n const observer = new MutationObserver(() => {\n // ツイートの iframe 要素が追加されたかどうかの確認。\n const tweetIframe = targetNode?.querySelector(\".twitter-tweet > iframe:last-of-type\")\n tweetIframe?.addEventListener(\n \"load\",\n () => {\n // ツイートの iframe が読み込まれたら、タイムアウトをクリアし、\n // MutationObserver を切断して、Promise をコンテナ要素で解決。\n if (timeoutId) {\n clearTimeout(timeoutId)\n }\n observer?.disconnect()\n promiseResolveRef.current = null\n promiseRejectRef.current = null\n resolve(targetNode)\n },\n { once: true, passive: true, capture: true },\n )\n })\n\n // タイムアウトを設定して、無限ペンディング状態の防止。\n timeoutId = setTimeout(() => {\n observer.disconnect()\n promiseResolveRef.current = null\n promiseRejectRef.current = null\n reject(new Error(\"ツイートの作成が 10 秒後にタイムアウトしました。\"))\n }, 10000)\n\n observer.observe(targetNode, {\n childList: true,\n subtree: true, // iframe がネストされているため、子孫も監視。\n attributes: false, // 属性の変更は監視しない。\n characterData: false, // テキストの変更は監視しない。\n })\n\n twitterWidgetsJS\n ?.createTweet(node.tweetId, targetNode, {\n cards: node.cards,\n conversation: node.conversation,\n theme: node.theme || theme,\n width: node.width,\n align: node.align,\n lang: node.lang || \"ja\",\n dnt: node.dnt,\n })\n .catch((error) => {\n // createTweet 自体が reject した場合の処理。\n if (timeoutId) {\n clearTimeout(timeoutId)\n }\n observer.disconnect()\n promiseResolveRef.current = null\n promiseRejectRef.current = null\n reject(error)\n console.error(\"ツイートウィジェットの作成中にエラーが発生しました:\", error)\n })\n })\n },\n [twitterWidgetsJS, node.tweetId, node.cards, node.conversation, node.theme, node.width, node.align, node.lang, node.dnt, theme],\n )\n\n const WidgetComponent = useMemo(() => <Widgets setPromise={setPromise} createPromise={createPromise} />, [createPromise])\n\n useEffect(() => {\n setWidget(WidgetComponent)\n return () => {\n if (promiseResolveRef.current) {\n // メモリリークを避けるための Promise の解決。\n promiseResolveRef.current(undefined)\n // メモリリークを避けるための参照のクリア。\n promiseResolveRef.current = null\n promiseRejectRef.current = null\n }\n }\n }, [WidgetComponent])\n\n if (!twitterWidgetsJS) {\n // このケースは、サーバーサイドレンダリングまたはスクリプトの読み込みに失敗した場合の処理。\n // Promise がまだ保留中の場合、外側の Suspense のフォールバックの表示。\n return <div className=\"min-h-24\">🌀 Loading Twitter renderer...</div>\n }\n\n // コンテナ div とサスペンダーコンポーネントを兄弟としてレンダリング。\n return (\n <Suspense fallback={<div className=\"min-h-24\">🌀 Loading Tweet...</div>}>\n {widget}\n {promise && <TweetSuspender promise={promise} />}\n </Suspense>\n )\n}\n\n/**\n * Renders a Twitter embed using Suspense to show a loading placeholder on the client.\n * On the server, it renders a placeholder to avoid hydration errors.\n *\n * Suspense を使用してクライアントでローディングプレースホルダーを表示する Twitter 埋め込みのレンダリング。\n * サーバーでは、ハイドレーションエラーを避けるためのプレースホルダーのレンダリング。\n * @param {{ node: RootContentMap[\"twitter-embed\"]; theme: \"light\" | \"dark\" }} props The props for the component.\n * @returns {JSX.Element} The component that renders the Twitter embed.\n */\nexport const TwitterEmbedNode = ({ node, theme }: { node: RootContentMap[\"twitter-embed\"]; theme: \"light\" | \"dark\" }) => {\n const loadWidgetsPromise = useMemo(() => loadTwitterWidgets(), [])\n\n return (\n <Suspense fallback={<div className=\"min-h-24\">🌀 Loading Twitter widget...</div>}>\n <TweetEmbed node={node} loadWidgetsPromise={loadWidgetsPromise} theme={theme} />\n </Suspense>\n )\n}\n","import type { RootContentMap } from \"mdast\"\n\nexport const YouTubeEmbedNode: React.FC<{\n node: RootContentMap[\"youtube-embed\"]\n}> = ({ node }) => {\n const { videoId, params } = node\n const embedParams = { ...params, rel: \"0\" }\n const queryString = new URLSearchParams(embedParams).toString()\n return (\n <iframe\n className=\"aspect-video w-full max-w-[560px] rounded-lg\"\n src={`https://www.youtube.com/embed/${videoId}${queryString ? `?${queryString}` : \"\"}`}\n title=\"YouTube video player\"\n allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\n referrerPolicy=\"strict-origin-when-cross-origin\"\n allowFullScreen={true}\n />\n )\n}\n","import type { FC } from \"react\"\nimport { NodesRenderer } from \"../NodesRenderer.tsx\"\nimport type { ZennDetails } from \"../../plugins/remark-zenn-message.ts\"\n\ninterface ZennDetailsNodeProps {\n node: ZennDetails\n}\n\nexport const ZennDetailsNode: FC<ZennDetailsNodeProps> = ({ node }) => {\n const title = node.data?.title || \"\"\n\n return (\n <details className=\"markdown-details\">\n <summary>{title}</summary>\n <div className=\"markdown-details-content\">\n <NodesRenderer nodes={node.children} />\n </div>\n </details>\n )\n}\n","import type { FC } from \"react\"\nimport { NodesRenderer } from \"../NodesRenderer.tsx\"\nimport type { ZennMessage } from \"../../plugins/remark-zenn-message.ts\"\n\ninterface ZennMessageNodeProps {\n node: ZennMessage\n}\n\nexport const ZennMessageNode: FC<ZennMessageNodeProps> = ({ node }) => {\n const messageType = node.data?.messageType || \"message\"\n const className = [\"message\", messageType].filter(Boolean).join(\" \")\n\n return (\n <aside className={className}>\n <span className=\"message-symbol\" style={{ userSelect: \"none\" }}>\n !\n </span>\n <div className=\"message-content\">\n <NodesRenderer nodes={node.children} />\n </div>\n </aside>\n )\n}\n","import type { RootContent } from \"mdast\"\nimport { BlockLinkNode } from \"./mdastNodes/BlockLinkNode.tsx\"\nimport { BlockquoteNode } from \"./mdastNodes/BlockquoteNode.tsx\"\nimport { CodeNode } from \"./mdastNodes/CodeNode.tsx\"\nimport { DeleteNode } from \"./mdastNodes/DeleteNode.tsx\"\nimport { EmphasisNode } from \"./mdastNodes/EmphasisNode.tsx\"\nimport { FootnoteBackLinkNode, FootnoteReferenceNode } from \"./mdastNodes/FootnoteBackLinkNode.tsx\"\nimport { HeadingNode } from \"./mdastNodes/HeadingNode.tsx\"\nimport { HTMLNode } from \"./mdastNodes/HTMLNode.tsx\"\nimport { ImageNode } from \"./mdastNodes/ImageNode.tsx\"\nimport { InlineCodeNode } from \"./mdastNodes/InlineCodeNode.tsx\"\nimport { InlineMathNode } from \"./mdastNodes/InlineMathNode.tsx\"\nimport { LinkNode } from \"./mdastNodes/LinkNode.tsx\"\nimport { ListItemNode } from \"./mdastNodes/ListItemNode.tsx\"\nimport { ListNode } from \"./mdastNodes/ListNode.tsx\"\nimport { MathNode } from \"./mdastNodes/MathNode.tsx\"\nimport { ParagraphNode } from \"./mdastNodes/ParagraphNode.tsx\"\nimport { StrongNode } from \"./mdastNodes/StrongNode.tsx\"\nimport { TableNode } from \"./mdastNodes/TableNode.tsx\"\nimport { TextNode } from \"./mdastNodes/TextNode.tsx\"\nimport { ThematicBreakNode } from \"./mdastNodes/ThematicBreakNode.tsx\"\nimport { TwitterEmbedNode } from \"./mdastNodes/TwitterEmbedNode.tsx\"\nimport { YouTubeEmbedNode } from \"./mdastNodes/YouTubeEmbedNode.tsx\"\nimport { ZennDetailsNode } from \"./mdastNodes/ZennDetailsNode.tsx\"\nimport { ZennMessageNode } from \"./mdastNodes/ZennMessageNode.tsx\"\n\nexport const NodesRenderer: React.FC<{\n nodes: RootContent[]\n theme?: \"light\" | \"dark\"\n iFrameAllowedDomains?: string[]\n}> = ({ nodes, theme = \"light\", iFrameAllowedDomains = [] }) => {\n return nodes.map((node, index) => {\n switch (node.type) {\n case \"block-link\": {\n return <BlockLinkNode key={`mdast-node-${node.type}-${index}`} node={node} />\n }\n case \"blockquote\": {\n return <BlockquoteNode key={`mdast-node-${node.type}-${index}`} node={node} />\n }\n case \"break\": {\n return <br key={`mdast-node-${node.type}-${index}`} />\n }\n case \"code\": {\n return <CodeNode key={`mdast-node-${node.type}-${index}`} node={node} />\n }\n case \"delete\": {\n return <DeleteNode key={`mdast-node-${node.type}-${index}`} node={node} />\n }\n case \"details\": {\n return <ZennDetailsNode key={`mdast-node-${node.type}-${index}`} node={node} />\n }\n case \"emphasis\": {\n return <EmphasisNode key={`mdast-node-${node.type}-${index}`} node={node} />\n }\n case \"footnoteReference\": {\n return <FootnoteReferenceNode key={`mdast-node-${node.type}-${index}`} node={node} />\n }\n case \"footnoteDefinition\": {\n return null\n }\n case \"footnote-back-link\": {\n return <FootnoteBackLinkNode key={`mdast-node-${node.type}-${index}`} node={node} />\n }\n case \"heading\": {\n return <HeadingNode key={`mdast-node-${node.type}-${index}`} node={node} />\n }\n case \"html\": {\n return <HTMLNode key={`mdast-node-${node.type}-${index}`} node={node} iFrameAllowedDomains={iFrameAllowedDomains} />\n }\n case \"image\": {\n return <ImageNode key={`mdast-node-${node.type}-${index}`} node={node} />\n }\n case \"inlineCode\": {\n return <InlineCodeNode key={`mdast-node-${node.type}-${index}`} node={node} />\n }\n case \"inlineMath\": {\n return <InlineMathNode key={`mdast-node-${node.type}-${index}`} node={node} />\n }\n case \"link\": {\n return <LinkNode key={`mdast-node-${node.type}-${index}`} node={node} />\n }\n case \"listItem\": {\n return <ListItemNode key={`mdast-node-${node.type}-${index}`} node={node} />\n }\n case \"list\": {\n return <ListNode key={`mdast-node-${node.type}-${index}`} node={node} />\n }\n case \"math\": {\n return <MathNode key={`mdast-node-${node.type}-${index}`} node={node} />\n }\n case \"message\": {\n return <ZennMessageNode key={`mdast-node-${node.type}-${index}`} node={node} />\n }\n case \"paragraph\": {\n return <ParagraphNode key={`mdast-node-${node.type}-${index}`} node={node} />\n }\n case \"strong\": {\n return <StrongNode key={`mdast-node-${node.type}-${index}`} node={node} />\n }\n case \"table\": {\n return <TableNode key={`mdast-node-${node.type}-${index}`} node={node} />\n }\n case \"text\": {\n return <TextNode key={`mdast-node-${node.type}-${index}`} node={node} />\n }\n case \"thematicBreak\": {\n return <ThematicBreakNode key={`mdast-node-${node.type}-${index}`} />\n }\n case \"yaml\": {\n // YAML nodes are typically used for frontmatter and are not rendered in the content\n return null\n }\n case \"twitter-embed\": {\n return <TwitterEmbedNode key={`mdast-node-${node.type}-${node.tweetId}-${index}`} node={node} theme={theme} />\n }\n case \"youtube-embed\": {\n return <YouTubeEmbedNode key={`mdast-node-${node.type}-${index}`} node={node} />\n }\n\n default: {\n if (process.env.NODE_ENV === \"development\") {\n return (\n <div key={`mdast-node-${node.type}-${index}`}>\n <p style={{ color: \"red\" }}>Unknown node type: {node.type}</p>\n <pre>{JSON.stringify(node, null, 2)}</pre>\n </div>\n )\n }\n throw new Error(`Unknown node type: ${node.type}`)\n }\n }\n })\n}\n","import type { RootContentMap } from \"mdast\"\nimport { NodesRenderer } from \"../NodesRenderer.tsx\"\n\nexport const FootnoteReferenceNode: React.FC<{ node: RootContentMap[\"footnoteReference\"] }> = ({ node }) => {\n return (\n <sup>\n <a id={`fnref-${node.identifier}`} className=\"text-[#316dce] underline visited:text-[#6b46c1] dark:text-[#3182ce] dark:visited:text-[#805ad5]\" href={`#fn-${node.identifier}`}>\n [{node.identifier}]\n </a>\n </sup>\n )\n}\n\nexport const FootnotesSection: React.FC<{ nodes: RootContentMap[\"footnoteDefinition\"][]; theme?: \"light\" | \"dark\" }> = ({ nodes, theme = \"light\" }) => {\n if (nodes.length === 0) {\n return null\n }\n\n return (\n <section className=\"border-[#171717] border-t pt-4 dark:border-[#464646]\">\n <ol className=\"pl-6 text-[#686868] text-sm dark:text-[#a4a5a9]\">\n {nodes.map((node, index) => (\n <li key={`mdast-node-fn-${node.identifier}-${index}`} id={`fn-${node.identifier}`} className={index === 0 ? \"\" : \"mt-4\"}>\n <NodesRenderer nodes={node.children} theme={theme} />\n </li>\n ))}\n </ol>\n </section>\n )\n}\n\nexport const FootnoteBackLinkNode: React.FC<{ node: RootContentMap[\"footnote-back-link\"] }> = ({ node }) => {\n return (\n <a href={node.url} className=\"text-[#316dce] underline visited:text-[#6b46c1] dark:text-[#3182ce] dark:visited:text-[#805ad5]\">\n ↩\n </a>\n )\n}\n","import type { FootnoteDefinition, Root, RootContent } from \"mdast\"\nimport { FootnotesSection } from \"./mdastNodes/FootnoteBackLinkNode.tsx\"\nimport { NodesRenderer } from \"./NodesRenderer.tsx\"\n\ntype Props = {\n rootNode: Root\n theme?: \"light\" | \"dark\"\n iFrameAllowedDomains?: string[]\n}\n\n/**\n * Extracts footnote definitions from a list of mdast nodes.\n * mdast ノードのリストから脚注の定義を抽出します。\n * @param nodes - The list of mdast nodes. mdast ノードのリスト。\n * @returns The extracted footnote definitions. 抽出された脚注の定義。\n */\nconst extractFootnoteDefinitions = (nodes: RootContent[]): FootnoteDefinition[] => {\n const work: FootnoteDefinition[] = []\n\n // ノードのリストをループして脚注の定義を探す\n for (const node of nodes) {\n // ノードが脚注の定義であれば、作業リストに追加する\n if (node.type === \"footnoteDefinition\") {\n work.push(node)\n // ノードに子要素があれば、再帰的に脚注の定義を抽出する\n } else if (\"children\" in node) {\n work.push(...extractFootnoteDefinitions(node.children))\n }\n }\n\n return work\n}\n\n/**\n * Renders a Markdown document represented by an mdast root node.\n * mdast のルートノードで表現される Markdown ドキュメントを描画する。\n * @param {Props} props - The component props.\n * @param {Root} props.rootNode - The root node of the mdast tree. mdast ツリーのルートノード。\n * @param {string} [props.theme] - The theme to apply (\"light\" or \"dark\"). 適用するテーマ (\"light\" または \"dark\")。\n * @param {string[]} [props.iFrameAllowedDomains] - Optional array of allowed domains for iframe src URLs. Defaults to empty array.\n * @returns {React.ReactElement} The rendered Markdown document. 描画された Markdown ドキュメント。\n */\nexport const MarkdownRenderer = ({ rootNode, theme = \"light\", iFrameAllowedDomains = [] }: Props) => {\n // ルートノードから脚注の定義を抽出する\n const footnoteDefinitions = extractFootnoteDefinitions(rootNode.children)\n\n return (\n <>\n <NodesRenderer nodes={rootNode.children} theme={theme} iFrameAllowedDomains={iFrameAllowedDomains} />\n <FootnotesSection nodes={footnoteDefinitions} theme={theme} />\n </>\n )\n}\n","type CreateIntentTweetLinkParams = {\n text?: string\n url?: string\n hashtags?: string[]\n via?: string\n related?: string[]\n in_reply_to?: string\n}\n\nexport function createIntentTweetLink({ text, url, hashtags, via, related, in_reply_to }: CreateIntentTweetLinkParams): string {\n const _url = new URL(\"https://twitter.com/intent/tweet\")\n\n if (text !== undefined) {\n _url.searchParams.set(\"text\", text)\n }\n if (url !== undefined) {\n _url.searchParams.set(\"url\", url)\n }\n if (hashtags !== undefined) {\n _url.searchParams.set(\"hashtags\", hashtags.join(\",\"))\n }\n if (via !== undefined) {\n _url.searchParams.set(\"via\", via)\n }\n if (related !== undefined) {\n _url.searchParams.set(\"related\", related.join(\",\"))\n }\n if (in_reply_to !== undefined) {\n _url.searchParams.set(\"in_reply_to\", in_reply_to)\n }\n\n return _url.toString()\n}\n","export type YouTubeVideoInfo = {\n videoId: string\n params: Record<string, string>\n}\n\nexport const extractYouTubeVideoId = (url: string): YouTubeVideoInfo | null => {\n try {\n const urlObj = new URL(url)\n const allParams = Object.fromEntries(urlObj.searchParams.entries())\n let videoId: string | null = null\n\n if (urlObj.hostname === \"youtu.be\") {\n // 短縮 URL (e.g., https://youtu.be/videoId)\n videoId = urlObj.pathname.substring(1)\n } else if (urlObj.hostname.endsWith(\"youtube.com\")) {\n if (urlObj.pathname === \"/watch\") {\n // 通常の視聴ページ URL (e.g., https://www.youtube.com/watch?v=videoId)\n videoId = urlObj.searchParams.get(\"v\")\n } else if (urlObj.pathname.startsWith(\"/embed/\")) {\n // 埋め込み URL (e.g., https://www.youtube.com/embed/videoId)\n videoId = urlObj.pathname.split(\"/\")[2]\n }\n }\n\n if (videoId) {\n const { v, ...params } = allParams\n return { videoId, params }\n }\n\n return null\n } catch {\n // URL のパースに失敗した場合は null を返す\n return null\n }\n}\n","/**\n * This module provides functionality to fetch site metadata from a given URL.\n * 指定された URL からサイトのメタデータを取得する機能を提供します。\n */\nimport { load } from \"cheerio\"\n\n/**\n * Represents the metadata of a website.\n * Web サイトのメタデータを表します。\n */\nexport type SiteMetadata = {\n /** The URL of the website. Web サイトの URL。 */\n url: string\n /** The name of the site. サイト名。 */\n site_name?: string\n /** The title of the page. ページのタイトル。 */\n title?: string\n /** A description of the page. ページの説明。 */\n description?: string\n /** The URL of an image representing the page. ページを表す画像の URL。 */\n image?: string\n /** The type of the page (e.g., website, article). ページの種類 (例: website, article)。 */\n type?: string\n}\n\n/**\n * Fetches site metadata from the given URL.\n * 指定された URL からサイトのメタデータを取得します。\n *\n * @param url The URL to fetch metadata from. メタデータを取得する URL。\n * @returns A Promise that resolves to the site metadata, or null if fetching fails.\n * サイトのメタデータに解決される Promise、または取得に失敗した場合は null。\n */\nexport const fetchSiteMetadata = async (url: string): Promise<SiteMetadata | null> => {\n try {\n // 指定された URL に HTTP GET リクエストを送信\n const controller = new AbortController()\n const timeoutId = setTimeout(() => controller.abort(), 10000)\n const response = await fetch(url, { signal: controller.signal })\n clearTimeout(timeoutId)\n\n // レスポンスが成功しなかった場合 (例: 404 Not Found) は null を返す\n if (!response.ok) {\n return null\n }\n\n // レスポンスボディをテキストとして取得\n const html = await response.text()\n // メタデータオブジェクトを初期化\n const metadata: SiteMetadata = { url }\n // HTML をパースして Cheerio オブジェクトを生成\n const $ = load(html)\n\n // <title> タグからタイトルを取得\n const title = $(\"title\").text().trim()\n metadata.title = title\n\n // <meta> タグをすべて取得\n const metaTags = $(\"meta\")\n\n // 各 <meta> タグを処理\n for (const meta of metaTags) {\n const property = meta.attribs.property\n\n // Open Graph (OGP) タグの処理\n if (property === \"og:site_name\") {\n metadata.site_name = meta.attribs.content || undefined\n }\n if (property === \"og:title\") {\n metadata.title = meta.attribs.content || title\n }\n if (property === \"og:description\") {\n metadata.description = meta.attribs.content || undefined\n }\n if (property === \"og:image\") {\n metadata.image = meta.attribs.content || undefined\n }\n if (property === \"og:type\") {\n metadata.type = meta.attribs.content || undefined\n }\n\n // name 属性を持つ <meta> タグの処理 (主に description)\n const metaName = meta.attribs.name\n\n if (metaName === \"description\") {\n metadata.description = meta.attribs.content || undefined\n }\n }\n\n // 取得したメタデータを返す\n return metadata\n } catch (error) {\n console.error(\"Error fetching site metadata:\", error)\n // エラーが発生した場合は null を返す\n return null\n }\n}\n","import type { Root } from \"mdast\"\nimport type { Plugin } from \"unified\"\nimport { visit } from \"unist-util-visit\"\n\nexport const remarkBlockLink: Plugin<[], Root> = () => (tree: Root) => {\n visit(tree, \"paragraph\", (node, index, parent) => {\n const maybeLink = node.children[0]\n\n if (node.children.length !== 1) {\n return\n }\n if (maybeLink.type !== \"link\") {\n return\n }\n if (maybeLink.children.length !== 1) {\n return\n }\n\n const isPlainLink = maybeLink.children[0].type === \"text\" && maybeLink.url === maybeLink.children[0].value\n if (!isPlainLink) {\n return\n }\n\n if (!parent || index === undefined) {\n return\n }\n\n parent.children[index] = {\n type: \"block-link\",\n url: maybeLink.url,\n }\n })\n}\n\ndeclare module \"mdast\" {\n export interface BlockLink extends Resource {\n type: \"block-link\"\n }\n\n interface RootContentMap {\n \"block-link\": BlockLink\n }\n}\n","/**\n * @fileoverview Remark plugin to enrich block-link nodes with site metadata.\n * block-linkノードにサイトメタデータを付加するための Remark プラグイン。\n */\nimport type { Link, Root } from \"mdast\"\nimport type { Plugin } from \"unified\"\nimport { visit } from \"unist-util-visit\"\nimport { fetchSiteMetadata, type SiteMetadata } from \"./fetchSiteMetadata.ts\"\n\n/**\n * Extended block-link node with site metadata.\n * サイトメタデータが付加されたブロックリンクノード。\n */\nexport interface EnrichedBlockLink extends Omit<Link, \"type\"> {\n type: \"block-link\"\n data?: {\n siteMetadata?: SiteMetadata\n }\n}\n\ndeclare module \"mdast\" {\n interface LinkData {\n siteMetadata?: SiteMetadata\n }\n}\n\n/**\n * Options for the remark-block-link-metadata plugin.\n * remark-block-link-metadata プラグインのオプション。\n */\ninterface BlockLinkMetadataOptions {\n /** Whether to fetch metadata for all block-links. 全てのブロックリンクでメタデータを取得するかどうか。 */\n fetchAll?: boolean\n /** Patterns of URLs to fetch metadata for. メタデータを取得する URL のパターン。 */\n urlPatterns?: RegExp[]\n /** Whether to enable caching of fetched metadata. 取得したメタデータのキャッシュを有効にするかどうか。 */\n enableCache?: boolean\n}\n\n// Simple in-memory cache for metadata\nconst metadataCache = new Map<string, SiteMetadata | null>()\n\n/**\n * Determines if a URL should have its metadata fetched.\n * URL のメタデータを取得すべきかどうかを判定します。\n *\n * @param url The URL to check. チェックする URL。\n * @param options Plugin options. プラグインオプション。\n * @returns Whether metadata should be fetched. メタデータを取得すべきかどうか。\n */\nconst shouldFetchMetadata = (url: string, options: BlockLinkMetadataOptions): boolean => {\n if (options.fetchAll) {\n return true\n }\n\n if (options.urlPatterns && options.urlPatterns.length > 0) {\n return options.urlPatterns.some((pattern: RegExp) => pattern.test(url))\n }\n\n // デフォルトでは、HTTP/HTTPS の外部リンクのみ対象\n return /^https?:\\/\\//.test(url) && !url.includes(\"localhost\") && !url.includes(\"127.0.0.1\")\n}\n\n/**\n * Remark plugin to enrich block-link nodes with site metadata.\n * block-linkノードにサイトメタデータを付加する Remark プラグイン。\n *\n * @param options Plugin options. プラグインオプション。\n * @returns The plugin function. プラグイン関数。\n */\nexport const remarkBlockLinkMetadata: Plugin<[BlockLinkMetadataOptions?], Root> = (options = {}) => {\n const { enableCache = true } = options\n\n return async (tree: Root) => {\n const linkNodes: EnrichedBlockLink[] = []\n\n // block-link ノードを収集\n visit(tree, \"block-link\", (node) => {\n if (shouldFetchMetadata(node.url, options)) {\n linkNodes.push(node as EnrichedBlockLink)\n }\n })\n\n // 各block-linkのメタデータを並行取得\n const metadataPromises = linkNodes.map(async (link) => {\n const url = link.url\n\n // キャッシュから取得を試行\n if (enableCache && metadataCache.has(url)) {\n const cachedMetadata = metadataCache.get(url)\n if (cachedMetadata) {\n link.data = link.data || {}\n link.data.siteMetadata = cachedMetadata\n }\n return\n }\n\n try {\n // サイトメタデータを取得\n const metadata = await fetchSiteMetadata(url)\n\n if (metadata) {\n // block-linkノードにメタデータを付加\n link.data = link.data || {}\n link.data.siteMetadata = metadata\n\n // キャッシュに保存\n if (enableCache) {\n metadataCache.set(url, metadata)\n }\n } else if (enableCache) {\n // 失敗した場合もキャッシュして、同じ URL への再リクエストを防ぐ\n metadataCache.set(url, null)\n }\n } catch (error) {\n console.warn(`Failed to fetch metadata for ${url}:`, error)\n if (enableCache) {\n metadataCache.set(url, null)\n }\n }\n })\n\n // 全てのメタデータ取得を待機\n await Promise.all(metadataPromises)\n }\n}\n","/**\n * @file This file defines a remark plugin to support custom heading IDs.\n * @file このファイルは、カスタム見出し ID をサポートするための remark プラグインを定義します。\n */\nimport type { Heading, HeadingData, Root, Text } from \"mdast\"\nimport { visit } from \"unist-util-visit\"\n\n// カスタム見出し ID を抽出するための正規表現 (例: ### My Heading {#my-heading})\nconst HEADING_ID_REGEX = /\\s*\\{#(.+?)\\}\\s*$/\n\ntype HeadingDataWithHProperties = {\n hProperties?: {\n id?: string\n }\n} & HeadingData\n\n/**\n * A remark plugin to support custom heading IDs.\n * This plugin allows specifying a custom ID for a heading using the syntax `{#custom-id}`.\n *\n * e.g.\n * ### My Heading {#my-heading}\n *\n * カスタム見出し ID をサポートする remark プラグイン。\n * このプラグインは `{#custom-id}` という構文を使用して、見出しにカスタム ID を指定できるようにします。\n *\n * 例:\n * ### My Heading {#my-heading}\n * @returns A function that transforms the mdast tree. mdast ツリーを変換する関数。\n */\nexport const remarkCustomHeadingId = () => {\n return (tree: Root) => {\n visit(tree, \"heading\", (node: Heading) => {\n // 子ノードがなければ何もしない\n if (node.children.length === 0) {\n return\n }\n\n // 最後の小ノードを取得\n const lastChild = node.children[node.children.length - 1]\n // 最後の小ノードがテキストノードでなければ何もしない\n if (lastChild?.type !== \"text\") {\n return\n }\n\n const textNode = lastChild as Text\n // テキストノードの値がカスタムIDの正規表現に一致するかチェック\n const match = textNode.value.match(HEADING_ID_REGEX)\n\n // 一致する場合\n if (match) {\n // ID を抽出\n const id = match[1]\n // node.data がなければ初期化\n if (!node.data) {\n node.data = {}\n }\n // hProperties に ID を設定\n const data = node.data as HeadingDataWithHProperties\n const hProperties = data.hProperties || {}\n hProperties.id = id\n data.hProperties = hProperties\n\n // テキストノードの値から ID 部分を削除し、末尾の空白をトリム\n textNode.value = textNode.value.substring(0, match.index).trimEnd()\n\n // 更新後のテキストノードが空文字列になった場合は、子ノードから削除\n if (textNode.value === \"\") {\n node.children.pop()\n }\n }\n })\n }\n}\n","import type { Root } from \"mdast\"\nimport type { Plugin } from \"unified\"\nimport { visit } from \"unist-util-visit\"\n\nexport const remarkFootnoteBackLink: Plugin<[], Root> = () => (tree: Root) => {\n visit(tree, \"footnoteDefinition\", (node) => {\n visit(node, \"paragraph\", (childParagraph) => {\n childParagraph.children.push({\n type: \"footnote-back-link\",\n url: `#fnref-${node.identifier}`,\n })\n })\n })\n}\n\ndeclare module \"mdast\" {\n export interface FootnoteBackLink extends Resource {\n type: \"footnote-back-link\"\n }\n\n interface RootContentMap {\n \"footnote-back-link\": FootnoteBackLink\n }\n\n interface PhrasingContentMap {\n \"footnote-back-link\": FootnoteBackLink\n }\n}\n","import type { Link, Root } from \"mdast\"\nimport { visit } from \"unist-util-visit\"\n\n/**\n * A remark plugin to convert HTML anchor tags to link nodes.\n *\n * HTML のアンカータグを link ノードに変換するための remark プラグイン。\n */\nexport const remarkHtmlAnchorToLink = () => {\n return (tree: Root) => {\n // mdast ツリーを走査し、html 型のノードを探索\n visit(tree, \"html\", (node, index, parent) => {\n if (typeof index !== \"number\" || !parent) {\n return\n }\n\n // HTML ノードの値を取得し、前後の空白を削除\n const value = node.value.trim()\n // 正規表現で a タグにマッチするかチェック\n const anchorMatch = value.match(/^<a\\s+href=\"([^\"]+)\"[^>]*>(.*?)<\\/a>$/i)\n\n if (anchorMatch) {\n // マッチした場合、href とテキストを抽出\n const [, href, text] = anchorMatch\n // 新しい link ノードを作成\n const linkNode: Link = {\n type: \"link\",\n url: href,\n children: [{ type: \"text\", value: text }],\n }\n // 元の HTML ノードを新しい link ノードで置換\n parent.children.splice(index, 1, linkNode)\n }\n })\n }\n}\n","import type { Delete, Emphasis, Heading, Paragraph, Root, Strong, TableCell } from \"mdast\"\nimport { visit } from \"unist-util-visit\"\n\n/**\n * A remark plugin to combine adjacent HTML and text nodes into a single HTML node.\n * This is useful when HTML tags with content are split into multiple nodes.\n *\n * 隣接するHTMLノードとテキストノードを単一のHTMLノードに結合するremarkプラグイン。\n * HTMLタグとそのコンテンツが複数のノードに分割されている場合に有用。\n */\nexport const remarkHtmlInHtml = () => {\n return (tree: Root) => {\n const visitor = (node: Paragraph | TableCell | Heading | Emphasis | Strong | Delete) => {\n const children = node.children\n if (!children) {\n return\n }\n\n let i = 0\n while (i < children.length) {\n const currentNode = children[i]\n\n if (currentNode.type === \"html\" && currentNode.value.startsWith(\"<\") && !currentNode.value.startsWith(\"</\")) {\n const match = currentNode.value.match(/<([a-zA-Z0-9]+)/)\n if (match) {\n let combinedHtml = \"\"\n let nodesToCombineCount = 0\n const openTags: string[] = []\n let foundClosing = false\n\n for (let j = i; j < children.length; j++) {\n const innerNode = children[j]\n\n if (innerNode.type === \"html\") {\n combinedHtml += innerNode.value\n const tags = innerNode.value.match(/<\\/?([a-zA-Z0-9]+)/g) || []\n for (const tag of tags) {\n const tagNameMatch = tag.match(/<\\/?([a-zA-Z0-9]+)/)\n if (!tagNameMatch) continue\n const tagName = tagNameMatch[1]\n\n if (tag.startsWith(\"</\")) {\n if (openTags.length > 0 && openTags[openTags.length - 1] === tagName) {\n openTags.pop()\n }\n } else if (tag.startsWith(\"<\")) {\n openTags.push(tagName)\n }\n }\n } else if (innerNode.type === \"text\") {\n combinedHtml += innerNode.value\n } else {\n // 他のノードタイプは結合しない\n if (openTags.length === 0) {\n foundClosing = true\n }\n break\n }\n\n nodesToCombineCount++\n\n if (openTags.length === 0) {\n foundClosing = true\n break\n }\n }\n\n if (foundClosing) {\n children.splice(i, nodesToCombineCount, {\n type: \"html\",\n value: combinedHtml,\n })\n // 新しく結合されたノードが別の結合の開始点になる可能性があるため、ループは同じインデックス `i` から継続する\n // `i` は外側のループの最後でインクリメントされる\n }\n }\n }\n i++\n }\n }\n visit(tree, \"paragraph\", visitor)\n visit(tree, \"tableCell\", visitor)\n visit(tree, \"heading\", visitor)\n visit(tree, \"emphasis\", visitor)\n visit(tree, \"strong\", visitor)\n visit(tree, \"delete\", visitor)\n }\n}\n","/**\n * This module provides a remark plugin to parse image size specifications from the alt text or title.\n * For example, `![alt text =100w](image.png)` or `![alt text](image.png \"title =100h\")`.\n *\n * alt テキストまたは title から画像サイズの指定を解析するための remark プラグイン。\n * 例: `![alt text =100w](image.png)` や `![alt text](image.png \"title =100h\")`\n */\nimport type { Image, Root } from \"mdast\"\nimport { visit } from \"unist-util-visit\"\n\nconst sizeRegex = /\\s*=\\s*(\\d+)(w|h|x|y)\\s*/g\n\nexport type ImageNode = Image & {\n data?: {\n hProperties?: {\n width?: number\n height?: number\n }\n }\n}\n\n/**\n * A remark plugin that parses image size from the alt text or title and applies it to the image node's hProperties.\n * It supports specifying width (`=100w` or `=100x`) and height (`=100h` or `=100y`) in pixels.\n *\n * alt テキストまたは title から画像サイズを解析し、画像ノードの hProperties に適用する remark プラグイン。\n * ピクセル単位での幅 (`=100w` or `=100x`) と高さ (`=100h` or `=100y`) の指定をサポート。\n */\nexport const remarkImageSize = () => {\n return (tree: Root) => {\n visit(tree, \"image\", (node: ImageNode) => {\n const processAttribute = (text: string | null | undefined) => {\n if (!text) {\n return { updatedText: text, matches: [] }\n }\n\n const matches = [...text.matchAll(sizeRegex)]\n const updatedText = text.replaceAll(sizeRegex, \"\").trim()\n\n return { updatedText, matches }\n }\n\n const { updatedText: updatedAlt, matches: altMatches } = processAttribute(node.alt)\n node.alt = updatedAlt\n\n const { updatedText: updatedTitle, matches: titleMatches } = processAttribute(node.title)\n node.title = updatedTitle || null\n\n const allMatches = [...altMatches, ...titleMatches]\n\n if (allMatches.length > 0) {\n if (!node.data) {\n node.data = {}\n }\n if (!node.data.hProperties) {\n node.data.hProperties = {}\n }\n\n for (const match of allMatches) {\n const value = Number.parseInt(match[1], 10)\n const unit = match[2]\n\n if (unit === \"w\" || unit === \"x\") {\n node.data.hProperties.width = value\n } else if (unit === \"h\" || unit === \"y\") {\n node.data.hProperties.height = value\n }\n }\n }\n })\n }\n}\n","/**\n * @file This file defines a remark plugin to handle `@import` directives in Markdown.\n * @brief このファイルは、Markdown 内の `@import` ディレクティブを処理するための remark プラグインを定義します。\n */\nimport fs from \"node:fs/promises\"\nimport path from \"node:path\"\nimport type { Parent, Root } from \"mdast\"\nimport type { Processor } from \"unified\"\nimport { visit } from \"unist-util-visit\"\n\nconst importRegex = /<!--\\s+@import\\s+\"(.+?)\"\\s+-->/\n\n/**\n * A remark plugin to support `@import` directives in Markdown.\n * This allows importing content from other Markdown files.\n * Markdown の `@import` ディレクティブをサポートする remark プラグイン。\n * これにより、他の Markdown ファイルからコンテンツをインポート可能。\n *\n * @param this The remark processor instance. / remark プロセッサーのインスタンス。\n * @param options Options for the plugin. / プラグインのオプション。\n * @param options.markdownFilePath The path to the Markdown file being processed. / 処理対象の Markdown ファイルへのパス。\n */\nexport function remarkImportDirective(this: Processor, options: { markdownFilePath: string }) {\n return async (tree: Root): Promise<void> => {\n const { markdownFilePath } = options\n const parentDir = path.dirname(markdownFilePath)\n\n // すべてのインポートディレクティブを収集\n const imports: { parent: Parent; index: number; absolutePath: string }[] = []\n visit(tree, \"html\", (node, index, parent) => {\n if (!parent || typeof index !== \"number\") {\n return\n }\n\n const match = node.value.match(importRegex)\n if (!match) {\n return\n }\n\n const importPath = match[1]\n const absolutePath = path.resolve(parentDir, importPath)\n imports.push({ parent, index, absolutePath })\n })\n\n if (imports.length === 0) {\n return\n }\n\n // すべてのファイルを読み込み、解析\n const parsedTrees = await Promise.all(\n imports.map(async ({ absolutePath }) => {\n try {\n const fileContent = await fs.readFile(absolutePath, \"utf-8\")\n return this.parse(fileContent) as Root\n } catch (error) {\n if (error && (error as NodeJS.ErrnoException).code === \"ENOENT\") {\n console.warn(`[remark-import-directive] Import file not found: ${absolutePath}`)\n } else {\n console.error(`[remark-import-directive] Error processing import: ${absolutePath}`, error)\n }\n return null // エラー時は null を返却\n }\n }),\n )\n\n // ツリー内のノードを後方から置換\n for (let i = imports.length - 1; i >= 0; i--) {\n const { parent, index } = imports[i]\n const newTree = parsedTrees[i]\n\n if (newTree?.children && Array.isArray(newTree.children)) {\n parent.children.splice(index, 1, ...newTree.children)\n }\n }\n }\n}\n","import type { Root } from \"mdast\"\nimport { visit } from \"unist-util-visit\"\n\n/**\n * A remark plugin to add a `parent` property to each node, pointing to its parent node.\n * 各ノードに親ノードを指す `parent` プロパティを追加する remark プラグイン。\n */\nexport const remarkParentNode = () => {\n return (tree: Root) => {\n visit(tree, (node, _, parent) => {\n if (parent) {\n Object.defineProperty(node, \"parent\", {\n value: parent,\n writable: true,\n configurable: true,\n enumerable: false, // JSON.stringify でシリアライズされないようにする\n })\n }\n })\n }\n}\n","/**\n * @file Async version of transformUri for file existence validation.\n * @brief ファイル存在確認を含む transformUri の非同期版。\n */\nimport fs from \"node:fs/promises\"\nimport path from \"node:path\"\nimport urlJoin from \"url-join\"\n\n// RFC 3986 URI scheme regex\nconst URI_SCHEME_REGEX = /^[a-z][a-z0-9+.-]*:/\n\n/**\n * Async version of transformUri that validates file existence.\n * ファイル存在確認を行う transformUri の非同期版。\n *\n * @param uri The URI to transform. / 変換対象の URI。\n * @param isImage Whether this is an image URI. / 画像 URI かどうか。\n * @param markdownFilePath Path to the markdown file. / Markdown ファイルのパス。\n * @param workspaceRoot Workspace root directory. / ワークスペースのルートディレクトリ。\n * @param validateExistence Whether to validate file existence. / ファイル存在確認を行うかどうか。\n * @returns Promise resolving to the transformed URI. / 変換された URI を返す Promise。\n */\nexport const transformUriAsync = async (uri: string, isImage: boolean, markdownFilePath: string, workspaceRoot: string, validateExistence = false): Promise<string> => {\n if (!uri) {\n return \"\"\n }\n\n // 1. 絶対URL (http, https, mailto, tel) はそのまま返す\n if (URI_SCHEME_REGEX.test(uri)) {\n const protocol = uri.substring(0, uri.indexOf(\":\")).toLowerCase()\n if ([\"http\", \"https\", \"mailto\", \"tel\", \"file\"].includes(protocol)) {\n return uri\n }\n }\n\n // 2. アンカーリンク (#fragment) はそのまま返す\n if (uri.startsWith(\"#\")) {\n return uri\n }\n\n // 3. ルート相対パス (/) はそのまま返す\n if (uri.startsWith(\"/\")) {\n return uri\n }\n\n // 4. 相対パスをプロジェクトルートからのパスとして解決する\n const markdownDir = path.dirname(markdownFilePath)\n const projectRelativePath = path.normalize(path.join(markdownDir, uri))\n\n // セキュリティチェック\n const absolutePath = path.resolve(workspaceRoot, projectRelativePath)\n if (!absolutePath.startsWith(workspaceRoot) || projectRelativePath.startsWith(\"..\")) {\n console.error(`Security Alert: Attempt to access file outside project root: ${absolutePath}`)\n return \"\"\n }\n\n // ファイル存在確認(オプション)\n if (validateExistence) {\n try {\n await fs.access(absolutePath)\n } catch {\n console.warn(`File not found: ${absolutePath}`)\n return \"\"\n }\n }\n\n const pathForEncoding = projectRelativePath.replace(/\\\\/g, \"/\")\n\n if (isImage) {\n return urlJoin(\"/assets/\", pathForEncoding)\n }\n return `?filePath=${encodeURIComponent(pathForEncoding)}`\n}\n","/**\n * @file Async version of remark-resolve-uri plugin.\n * @brief URI 解決プラグインの非同期版。\n */\nimport type { Image, Link, Root } from \"mdast\"\nimport { visit } from \"unist-util-visit\"\nimport { transformUriAsync } from \"./transformUri.async.server\"\n\ninterface Options {\n markdownFilePath: string\n workspaceRoot: string\n validateExistence?: boolean\n}\n\n/**\n * An async remark plugin to resolve image and link URIs with optional file validation.\n * ファイル検証オプション付きで画像とリンクの URI を解決する非同期 remark プラグイン。\n */\nexport function remarkResolveUriAsync(options: Options) {\n return async (tree: Root): Promise<void> => {\n if (!(options?.markdownFilePath && options?.workspaceRoot)) {\n console.warn(\"remark-resolve-uri-async: markdownFilePath and workspaceRoot are required. Skipping URI resolution.\")\n return\n }\n\n // すべての画像とリンクノードを収集\n const uriNodes: Array<{ node: Image | Link; isImage: boolean }> = []\n\n visit(tree, (node) => {\n if (node.type === \"image\" || node.type === \"link\") {\n if (node.url) {\n uriNodes.push({ node, isImage: node.type === \"image\" })\n }\n }\n })\n\n // 並列でURI変換を実行\n const transformPromises = uriNodes.map(async ({ node, isImage }) => {\n const transformedUri = await transformUriAsync(node.url, isImage, options.markdownFilePath, options.workspaceRoot, options.validateExistence)\n node.url = transformedUri\n })\n\n await Promise.all(transformPromises)\n }\n}\n","import type { Root } from \"mdast\"\nimport type { Plugin } from \"unified\"\nimport { visit } from \"unist-util-visit\"\n\nconst TWITTER_LINK_REGEX = /https?:\\/\\/(?:www\\.|mobile\\.)?(?:twitter|x)\\.com\\/[^/]+\\/status\\/(\\d+)/\n\nexport const remarkTwitterEmbed: Plugin<[], Root> = () => (tree: Root) => {\n visit(tree, \"paragraph\", (node, index, parent) => {\n const maybeLink = node.children[0]\n\n if (node.children.length !== 1) {\n return\n }\n if (maybeLink.type !== \"link\") {\n return\n }\n\n const isPlainLink = maybeLink.children.every((child) => child.type === \"text\")\n if (!isPlainLink) {\n return\n }\n\n if (!parent || index === undefined) {\n return\n }\n\n const matchTwitterLink = maybeLink.url.match(TWITTER_LINK_REGEX)\n\n if (!matchTwitterLink) {\n return\n }\n\n const tweetId = matchTwitterLink[1]\n\n if (!tweetId) {\n return\n }\n\n parent.children[index] = {\n type: \"twitter-embed\",\n tweetId,\n }\n })\n}\n\ndeclare module \"mdast\" {\n export interface TwitterEmbed {\n type: \"twitter-embed\"\n tweetId: string\n cards?: \"hidden\"\n conversation?: \"none\"\n theme?: \"light\" | \"dark\"\n width?: number\n align?: \"center\" | \"left\" | \"right\"\n /** @see https://developer.twitter.com/en/docs/twitter-for-websites/supported-languages */\n lang?: string\n dnt?: \"true\"\n }\n\n interface RootContentMap {\n \"twitter-embed\": TwitterEmbed\n }\n}\n","import type { Root } from \"mdast\"\nimport type { Plugin } from \"unified\"\nimport { visit } from \"unist-util-visit\"\nimport { extractYouTubeVideoId } from \"./extractYouTubeVideoId.ts\"\n\nexport const remarkYouTubeEmbed: Plugin<[], Root> = () => (tree: Root) => {\n visit(tree, \"paragraph\", (node, index, parent) => {\n const maybeLink = node.children[0]\n\n if (node.children.length !== 1) {\n return\n }\n if (maybeLink.type !== \"link\") {\n return\n }\n\n const isPlainLink = maybeLink.children.every((child) => child.type === \"text\")\n if (!isPlainLink) {\n return\n }\n\n if (!parent || index === undefined) {\n return\n }\n\n const videoInfo = extractYouTubeVideoId(maybeLink.url)\n\n if (!videoInfo) {\n return\n }\n\n parent.children[index] = {\n type: \"youtube-embed\",\n videoId: videoInfo.videoId,\n params: videoInfo.params,\n }\n })\n}\n\ndeclare module \"mdast\" {\n export interface YouTubeEmbed {\n type: \"youtube-embed\"\n videoId: string\n params: Record<string, string>\n }\n\n interface RootContentMap {\n \"youtube-embed\": YouTubeEmbed\n }\n}\n","/**\n * @fileoverview This module provides a Remark plugin to handle Zenn-specific message and details syntax.\n * It transforms custom directive blocks (e.g., `:::message` and `:::details`) into corresponding mdast nodes.\n *\n * このモジュールは、Zenn 特有のメッセージ構文および詳細構文を処理するための Remark プラグインの提供。\n * カスタムディレクティブブロック(例: `:::message` や `:::details`)を、対応する mdast ノードに変換する。\n */\nimport type { BlockContent, DefinitionContent, ListItem, Paragraph, Parent, PhrasingContent, Root, RootContent } from \"mdast\"\nimport type { Plugin } from \"unified\"\n\n/**\n * Represents a Zenn message block.\n * Zenn のメッセージブロックを表す。\n */\nexport interface ZennMessage extends Parent {\n type: \"message\"\n children: RootContent[]\n data?: {\n messageType: string\n }\n}\n\n/**\n * Represents a Zenn details block.\n * Zenn の details ブロックを表す。\n */\nexport interface ZennDetails extends Parent {\n type: \"details\"\n children: RootContent[]\n data?: {\n title: string\n }\n}\n\ndeclare module \"mdast\" {\n interface RootContentMap {\n message: ZennMessage\n details: ZennDetails\n }\n\n // Add message and details to BlockContent\n interface BlockContentMap {\n message: ZennMessage\n details: ZennDetails\n }\n}\n\nconst directiveRegex = /^:::(message|details)\\s*(.*)/\n\n/**\n * A remark plugin to support Zenn's message and details block syntax.\n * It transforms blocks like `:::message` or `:::details` into custom 'message' or 'details' nodes.\n *\n * Zenn のメッセージおよび詳細記法をサポートするための Remark プラグイン。\n * `:::message` や `:::details` のようなブロックを、カスタムの 'message' または 'details' ノードに変換する。\n */\nexport const remarkZennMessage: Plugin<[], Root> = () => {\n return (tree) => {\n /**\n * Recursively processes an array of nodes to transform Zenn directives.\n *\n * ノードの配列を再帰的に処理し、Zenn ディレクティブを変換する。\n * @param nodes The array of nodes to process.\n * @returns The processed array of nodes.\n */\n function processNodes(nodes: (BlockContent | DefinitionContent)[]): (BlockContent | DefinitionContent)[]\n function processNodes(nodes: RootContent[]): RootContent[]\n function processNodes(nodes: RootContent[]): RootContent[] {\n const newChildren: RootContent[] = []\n let i = 0\n\n // 子ノードを順番に処理\n while (i < nodes.length) {\n const node = nodes[i]\n\n // `:::` で始まるディレクティブ構文の開始を検出\n if (node.type === \"paragraph\" && node.children[0]?.type === \"text\" && node.children[0].value.trim().startsWith(\":::\")) {\n const openTag = node.children[0].value.trim()\n const directiveMatch = openTag.match(directiveRegex)\n\n if (directiveMatch) {\n const startIndex = i\n let endIndex = -1\n let nestLevel = 1 // ネストレベルを管理\n\n // 単一パラグラフ内でブロックが完結するかチェック\n const lastChild = node.children.at(-1)\n if (node.children.length > 1 && lastChild?.type === \"text\" && lastChild.value.trim() === \":::\") {\n endIndex = startIndex\n } else {\n // 複数パラグラフにまたがる場合、対応する閉じタグ `:::` を探す\n for (let j = startIndex + 1; j < nodes.length; j++) {\n const currentNode = nodes[j]\n if (currentNode.type === \"paragraph\" && currentNode.children[0]?.type === \"text\") {\n const text = currentNode.children[0].value.trim()\n // ネストされたディレクティブを考慮\n if (directiveRegex.test(text)) {\n nestLevel++\n } else if (text === \":::\") {\n nestLevel--\n }\n }\n // ネストレベルが 0 になったら、対応する閉じタグが見つかったと判断\n if (nestLevel === 0) {\n endIndex = j\n break\n }\n }\n }\n\n // 対応する閉じタグが見つかった場合、カスタムノードを作成\n if (endIndex !== -1) {\n const name = directiveMatch[1]\n const args = directiveMatch[2]\n let contentNodes: RootContent[]\n\n if (endIndex === startIndex) {\n // 単一パラグラフで完結するブロックの場合\n const innerContent: PhrasingContent[] = node.children.slice(1, -1)\n // 前後の改行を削除\n if (innerContent[0]?.type === \"break\") {\n innerContent.shift()\n }\n if (innerContent.at(-1)?.type === \"break\") {\n innerContent.pop()\n }\n contentNodes = innerContent.length > 0 ? [{ type: \"paragraph\", children: innerContent }] : []\n } else {\n // 複数パラグラフにまたがるブロックの場合\n // 開始ノードからディレクティブ部分を除いたコンテンツを取得\n const firstNodeChildren = node.children.slice(1)\n if (firstNodeChildren[0]?.type === \"break\") {\n firstNodeChildren.shift()\n }\n const firstPara: RootContent = { type: \"paragraph\", children: firstNodeChildren }\n\n // 終了ノードから閉じタグ部分を除いたコンテンツを取得\n const lastNode = nodes[endIndex] as Paragraph\n const lastNodeChildren = lastNode.children.slice(0, -1)\n if (lastNodeChildren.at(-1)?.type === \"break\") {\n lastNodeChildren.pop()\n }\n const lastPara: RootContent = { type: \"paragraph\", children: lastNodeChildren }\n\n // 開始と終了に挟まれた中間のノードを取得\n const middleNodes = nodes.slice(startIndex + 1, endIndex)\n\n // コンテンツノードを結合し、空のパラグラフを除去\n contentNodes = [firstPara, ...middleNodes, lastPara].filter((n) => !(n.type === \"paragraph\" && (n as Paragraph).children.length === 0))\n }\n\n // 抽出したコンテンツ内のノードを再帰的に処理\n const processedChildren = processNodes(contentNodes)\n\n let newNode: ZennMessage | ZennDetails | undefined\n\n // ディレクティブの種類に応じて新しいノードを作成\n if (name === \"message\") {\n newNode = {\n type: \"message\",\n data: {\n messageType: args.trim(),\n },\n children: processedChildren,\n }\n } else if (name === \"details\") {\n newNode = {\n type: \"details\",\n data: {\n title: args.trim(),\n },\n children: processedChildren,\n }\n }\n\n if (newNode) {\n newChildren.push(newNode as RootContent)\n i = endIndex + 1 // 処理済みのノードをスキップ\n continue\n }\n }\n }\n }\n\n // ディレクティブとして処理されなかったノードの処理\n const nodeToPush = { ...node }\n // 子ノードを持つ親ノードの場合は、子ノードを再帰的に処理\n if (\"children\" in nodeToPush && Array.isArray(nodeToPush.children)) {\n if (nodeToPush.type === \"blockquote\" || nodeToPush.type === \"footnoteDefinition\" || nodeToPush.type === \"message\" || nodeToPush.type === \"details\") {\n ;(nodeToPush as Parent).children = processNodes(nodeToPush.children as RootContent[])\n } else if (nodeToPush.type === \"list\") {\n ;(nodeToPush as Parent).children = (nodeToPush.children as ListItem[]).map((item) => ({\n ...item,\n children: processNodes(item.children),\n }))\n }\n }\n\n newChildren.push(nodeToPush as RootContent)\n i++\n }\n\n return newChildren\n }\n\n tree.children = processNodes(tree.children)\n }\n}\n","import type { Root } from \"mdast\"\nimport { remark } from \"remark\"\nimport remarkBreaks from \"remark-breaks\"\nimport remarkFrontmatter from \"remark-frontmatter\"\nimport remarkGfm from \"remark-gfm\"\nimport remarkMath from \"remark-math\"\nimport { remarkBlockLink } from \"./plugins/remark-block-link.ts\"\nimport { remarkCustomHeadingId } from \"./plugins/remark-custom-heading-id.ts\"\nimport { remarkFootnoteBackLink } from \"./plugins/remark-footnote-back-link.ts\"\nimport { remarkHtmlAnchorToLink } from \"./plugins/remark-html-anchor-to-link.ts\"\nimport { remarkHtmlInHtml } from \"./plugins/remark-html-in-html.ts\"\nimport { remarkImageSize } from \"./plugins/remark-image-size.ts\"\nimport { remarkImportDirective } from \"./plugins/remark-import-directive.async.ts\"\nimport { remarkBlockLinkMetadata } from \"./plugins/remark-block-link-metadata.ts\"\nimport { remarkParentNode } from \"./plugins/remark-parent-node.ts\"\nimport { remarkResolveUriAsync } from \"./plugins/remark-resolve-uri.async.ts\"\nimport { remarkTwitterEmbed } from \"./plugins/remark-twitter-embed.ts\"\nimport { remarkYouTubeEmbed } from \"./plugins/remark-youtube-embed.ts\"\nimport { remarkZennMessage } from \"./plugins/remark-zenn-message.ts\"\n\nexport const parseMarkdown = async (markdownText: string, markdownFilePath: string, workspaceRoot: string): Promise<Root> => {\n const processor = remark()\n .use(remarkHtmlInHtml)\n .use(remarkHtmlAnchorToLink)\n .use(remarkParentNode)\n .use(remarkFootnoteBackLink)\n .use(remarkFrontmatter)\n .use(remarkBreaks)\n .use(remarkImageSize)\n .use(remarkZennMessage)\n .use(remarkMath)\n .use(remarkImportDirective, { markdownFilePath })\n .use(remarkTwitterEmbed)\n .use(remarkYouTubeEmbed)\n .use(remarkBlockLink) // remarkTwitterEmbed, remarkYouTubeEmbed より後に設定\n .use(remarkBlockLinkMetadata) // ブロックリンクノードの処理後にメタデータを付加\n .use(remarkCustomHeadingId)\n .use(remarkGfm)\n .use(remarkResolveUriAsync, { markdownFilePath, workspaceRoot, validateExistence: true })\n\n const parsed = processor.parse(markdownText)\n const mdastRoot = await processor.run(parsed)\n return mdastRoot as Root\n}\n"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","owner","debugStack","debugTask","refProp","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","isValidElement","object","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","getFaviconUrl","pageUrl","size","RichLinkCard","href","isExternal","preFetchedMetadata","metadataPromise","useMemo","jsx","Suspense","RichLinkCardSkeleton","RichLinkCardInner","metadata","use","RichLinkCardError","urlObj","jsxs","BlockLinkNode","siteMetadata","BlockquoteNode","NodesRenderer","__assign","s","p","event","params","evt","isIE","divStyle","createStyle","prefixes","prefixCache","getPrefixedName","capName","prefixedName","getCSSNum","style","getBoxStyle","elem","suffix","setStyle","setTransition","options","transform","setTransform","_a","_options","x","y","scale","isSVG","matrixValue","getDimensions","parent","parentStyle","rectElem","rectParent","events","onPointer","handler","eventOpts","destroyPointer","findEventIndex","pointers","i","addPointer","_i","touch","removePointer","getMiddle","event1","event2","getDistance","isAttached","currentNode","getClass","hasClass","className","isExcluded","cur","rsvg","isSVGElement","shallowClone","obj","clone","defaultOptions","Panzoom","resetStyle","setOptions","opts","isPanning","zoom","pan","trigger","eventName","detail","setTransformWithEvent","originalEvent","constrainXY","toX","toY","toScale","panOptions","result","dims","realWidth","realHeight","scaledWidth","scaledHeight","diffHorizontal","diffVertical","minX","maxX","minY","maxY","constrainScale","zoomOptions","minScale","maxScale","elemWidth","elemHeight","parentWidth","parentHeight","elemScaledWidth","elemScaledHeight","focal","panResult","zoomInOut","isIn","zoomIn","zoomOut","zoomToPoint","point","effectiveArea","clientX","clientY","zoomWithWheel","delta","wheel","reset","resetOptions","origX","origY","startClientX","startClientY","startScale","startDistance","handleDown","handleMove","current","hasMultiple","diff","handleUp","bound","bind","destroy","toKebabCase","string","mergeClasses","classes","index","array","defaultAttributes","Icon","forwardRef","color","strokeWidth","absoluteStrokeWidth","iconNode","rest","ref","createElement","tag","attrs","createLucideIcon","iconName","Component","__iconNode","RefreshCw","ZoomIn","ZoomOut","package_default","t","e","module","this","r","u","a","o","c","f","h","d","l","$","M","n","m","v","g","D","S","_","w","O","b","__defProp","__name","target","__export","all","LEVELS","log","_args","setLogLevel","level","numericLevel","format","dayjs","Channel","q","channel","max","min","Lang","number","lower","upper","Unit","dec","hex","Utils","lang","unit","DEC2HEX","TYPE","Type","Channels","data","channels","Hex","match","length","hasAlpha","isFullLength","multiplier","bits","bitsOffset","mask","ChannelsReusable","HSL","hue","charCode","isAlphaPercentage","Keyword","RGB","isRedPercentage","isGreenPercentage","isBluePercentage","Color","change","ch","rgba","luminance","isLight","isDark","adjustChannel","amount","amountCurrent","amountNext","lighten","darken","adjust","changes","mix","color1","color2","weight","r1","g1","b1","a1","r2","g2","b2","a2","weightScale","weightNormalized","alphaDelta","weight1","weight2","invert","inverse","frontMatterRegex","directiveRegex","anyCommentRegex","UnknownDiagramError","message","detectors","detectType","text","config2","detector","registerLazyLoadedDiagrams","diagrams2","id","loader","addDetector","getDiagramLoader","assignWithDepth","dst","src","depth","clobber","assignWithDepth_default","oldAttributeBackgroundColorOdd","oldAttributeBackgroundColorEven","mkBorder","col","darkMode","Theme","adjust2","overrides","getThemeVariables","userOverrides","theme","Theme2","lighten2","adjust3","invert2","darken2","isDark2","getThemeVariables2","Theme3","adjust4","invert3","rgba2","darken3","lighten3","isDark3","getThemeVariables3","Theme4","lighten4","invert4","darken4","adjust5","isDark4","getThemeVariables4","Theme5","lighten5","adjust6","invert5","darken5","isDark5","getThemeVariables5","themes_default","config_schema_default","keyify","prefix","res","el","configKeys","defaultConfig_default","sanitizeDirective","args","arg","cssMatchers","cssKey","sanitizeCss","val","str","startCnt","endCnt","element","defaultConfig","siteConfig","configFromInitialize","directives","currentConfig","updateCurrentConfig","siteCfg","_directives","cfg","sumOfDirectives","sanitize","tmpConfigFromInitialize","themeVariables","checkConfig","setSiteConfig","conf","saveConfigFromInitialize","updateSiteConfig","getSiteConfig","setConfig","getConfig","addDirective","directive","ConfigWarning","issuedWarnings","issueWarning","warning","getUserDefinedConfig","userConfig","lineBreakRegex","getRows","breakToPlaceholder","setupDompurifyHooksIfNotSetup","setup","setupDompurifyHooks","TEMPORARY_ATTRIBUTE","DOMPurify","removeScript","txt","sanitizeMore","placeholderToBreak","sanitizeText","sanitizeTextOrArray","hasBreaks","splitBreaks","getUrl","useAbsolute","url","evaluate","getMax","values","newValues","getMin","parseGenericTypes","input","inputSets","output","thisSet","previousSet","nextSet","shouldCombineSets","processSet","countOccurrence","substring","prevCount","nextCount","tildeCount","hasStartingTilde","chars","first","last","isMathMLSupported","katexRegex","hasKatex","calculateMathMLDimensions","divElem","renderKatexSanitized","dim","renderKatexUnsanitized","katex","outputMode","line","common_default","d3Attrs","d3Elem","attr","calculateSvgSizeAttrs","height","width","useMaxWidth","configureSvgSize","svgElem","setupGraphViewbox","graph","padding","svgBounds","sWidth","sHeight","vBox","themes","getStyles","userStyles","diagramStyles","addStylesForDiagram","diagramTheme","styles_default","commonDb_exports","clear","getAccDescription","getAccTitle","getDiagramTitle","setAccDescription","setAccTitle","setDiagramTitle","accTitle","diagramTitle","accDescription","sanitizeText2","log2","setLogLevel2","getConfig2","setConfig2","defaultConfig2","sanitizeText3","setupGraphViewbox2","getCommonDb","diagrams","registerDiagram","diagram","getDiagram","DiagramNotFoundError","noop","dispatch","Dispatch","parseTypenames","typenames","types","typename","callback","T","get","set","copy","that","xhtml","namespaces","namespace","creatorInherit","document","uri","creatorFixed","fullname","creator","none","selector","selection_select","select","groups","subgroups","j","group","subgroup","subnode","Selection","empty","selectorAll","arrayAll","selection_selectAll","parents","matcher","childMatcher","find","childFind","childFirst","selection_selectChild","filter","childrenFilter","selection_selectChildren","selection_filter","sparse","update","selection_enter","EnterNode","datum","child","next","constant$3","bindIndex","enter","exit","groupLength","dataLength","bindKey","nodeByKeyValue","keyValues","keyValue","selection_data","constant","arraylike","enterGroup","updateGroup","exitGroup","i0","i1","previous","selection_exit","selection_join","onenter","onupdate","onexit","selection_merge","context","selection","groups0","groups1","m0","m1","merges","group0","group1","merge","selection_order","selection_sort","compare","ascending","compareNode","sortgroups","sortgroup","selection_call","selection_nodes","selection_node","selection_size","selection_empty","selection_each","attrRemove","attrRemoveNS","attrConstant","attrConstantNS","attrFunction","attrFunctionNS","selection_attr","defaultView","styleRemove","styleConstant","priority","styleFunction","selection_style","styleValue","propertyRemove","propertyConstant","propertyFunction","selection_property","classArray","classList","ClassList","classedAdd","names","list","classedRemove","classedTrue","classedFalse","classedFunction","selection_classed","textRemove","textConstant","textFunction","selection_text","htmlRemove","htmlConstant","htmlFunction","selection_html","raise","selection_raise","selection_lower","selection_append","create","constantNull","selection_insert","before","remove","selection_remove","selection_cloneShallow","selection_cloneDeep","selection_clone","deep","selection_datum","contextListener","listener","onRemove","on","onAdd","selection_on","dispatchEvent","window","dispatchConstant","dispatchFunction","selection_dispatch","selection_iterator","root","selection_selection","define","constructor","factory","prototype","extend","definition","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","color_formatHex","color_formatHex8","color_formatHsl","color_formatRgb","hslConvert","rgbn","Rgb","hsla","rgbConvert","rgb","opacity","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","Hsl","hsl","m2","hsl2rgb","clamph","clampt","constant$2","linear","exponential","gamma","nogamma","interpolateRgb","rgbGamma","start","end","colorRgb","interpolateNumber","reA","reB","zero","one","interpolateString","bi","am","bm","bs","degrees","identity","decompose","scaleX","scaleY","skewX","svgNode","parseCss","parseSvg","interpolateTransform","parse","pxComma","pxParen","degParen","pop","translate","xa","ya","xb","yb","rotate","interpolateTransformCss","interpolateTransformSvg","frame","timeout","interval","pokeDelay","taskHead","taskTail","clockLast","clockNow","clockSkew","clock","setFrame","now","clearNow","Timer","timer","delay","time","sleep","timerFlush","wake","nap","poke","t0","t1","t2","elapsed","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","schedule","timing","schedules","init","self","tween","stop","tick","interrupt","active","selection_interrupt","tweenRemove","tween0","tween1","tweenFunction","transition_tween","tweenValue","transition","interpolate","value1","string00","string1","interpolate0","string0","string10","transition_attr","attrInterpolate","attrInterpolateNS","attrTweenNS","attrTween","transition_attrTween","delayFunction","delayConstant","transition_delay","durationFunction","durationConstant","transition_duration","easeConstant","transition_ease","easeVarying","transition_easeVarying","transition_filter","Transition","transition_merge","onFunction","on0","on1","sit","transition_on","removeFunction","transition_remove","transition_select","transition_selectAll","inherit","transition_selection","styleNull","styleMaybeRemove","listener0","transition_style","styleInterpolate","styleTween","transition_styleTween","transition_text","textInterpolate","textTween","transition_textTween","transition_transition","id0","id1","newId","transition_end","resolve","reject","cancel","selection_prototype","cubicInOut","defaultTiming","easeCubicInOut","selection_transition","pi","tau","epsilon","tauEpsilon","append","strings","appendRound","digits","Path","x1","y1","x2","y2","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","a0","ccw","dx","dy","cw","da","constant$1","abs","atan2","cos","sin","sqrt","halfPi","acos","asin","withPath","shape","Linear","curveLinear","line$1","defined","curve","path","pointX","pointY","defined0","buffer","Bump","bumpX","bumpY","Basis","curveBasis","BasisClosed","curveBasisClosed","BasisOpen","curveBasisOpen","Bundle","beta","curveBundle","custom","bundle","Cardinal","tension","curveCardinal","cardinal","CardinalClosed","curveCardinalClosed","CardinalOpen","curveCardinalOpen","CatmullRom","alpha","x23","y23","curveCatmullRom","catmullRom","CatmullRomClosed","curveCatmullRomClosed","CatmullRomOpen","curveCatmullRomOpen","LinearClosed","curveLinearClosed","sign","slope3","h0","h1","s0","s1","slope2","MonotoneX","MonotoneY","ReflectContext","monotoneX","monotoneY","Natural","px","controlPoints","py","curveNatural","Step","curveStep","stepBefore","stepAfter","Transform","location","selectSvgElement","securityLevel","doc","isNothing","subject","isObject","toArray","sequence","source","sourceKeys","repeat","count","cycle","isNegativeZero","isNothing_1","isObject_1","toArray_1","repeat_1","isNegativeZero_1","extend_1","common","formatError","exception2","compact","where","YAMLException$1","reason","mark","exception","getLine","lineStart","lineEnd","position","maxLineLength","head","tail","maxHalfLength","padStart","makeSnippet","re","lineStarts","lineEnds","foundLineNo","lineNoLength","snippet","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","compileStyleAliases","map2","alias","Type$1","compileList","schema2","currentType","newIndex","previousType","previousIndex","compileMap","collectType","type2","Schema$1","implicit","explicit","type$1","schema","seq","map","failsafe","resolveYamlNull","constructYamlNull","isNull","_null","resolveYamlBoolean","constructYamlBoolean","isBoolean","bool","isHexCode","isOctCode","isDecCode","resolveYamlInteger","hasDigits","constructYamlInteger","isInteger","int","YAML_FLOAT_PATTERN","resolveYamlFloat","constructYamlFloat","SCIENTIFIC_WITHOUT_DOT","representYamlFloat","isFloat","float","json","core","YAML_DATE_REGEXP","YAML_TIMESTAMP_REGEXP","resolveYamlTimestamp","constructYamlTimestamp","year","month","day","hour","minute","second","fraction","tz_hour","tz_minute","date","representYamlTimestamp","timestamp","resolveYamlMerge","BASE64_MAP","resolveYamlBinary","code","idx","bitlen","constructYamlBinary","tailbits","representYamlBinary","isBinary","binary","_hasOwnProperty$3","_toString$2","resolveYamlOmap","objectKeys","pair","pairKey","pairHasKey","constructYamlOmap","omap","_toString$1","resolveYamlPairs","constructYamlPairs","pairs","_hasOwnProperty$2","resolveYamlSet","constructYamlSet","_default","_hasOwnProperty$1","CONTEXT_FLOW_IN","CONTEXT_FLOW_OUT","CONTEXT_BLOCK_IN","CONTEXT_BLOCK_OUT","CHOMPING_CLIP","CHOMPING_STRIP","CHOMPING_KEEP","PATTERN_NON_PRINTABLE","PATTERN_NON_ASCII_LINE_BREAKS","PATTERN_FLOW_INDICATORS","PATTERN_TAG_HANDLE","PATTERN_TAG_URI","_class","is_EOL","is_WHITE_SPACE","is_WS_OR_EOL","is_FLOW_INDICATOR","fromHexCode","lc","escapedHexLen","fromDecimalCode","simpleEscapeSequence","charFromCodepoint","simpleEscapeCheck","simpleEscapeMap","State$1","generateError","state","throwError","throwWarning","directiveHandlers","major","minor","handle","captureSegment","checkJson","_position","_length","_character","_result","mergeMappings","destination","overridableKeys","quantity","storeMappingPair","keyTag","keyNode","valueNode","startLine","startLineStart","startPos","readLineBreak","skipSeparationSpace","allowComments","checkIndent","lineBreaks","testDocumentSeparator","writeFoldedLines","readPlainScalar","nodeIndent","withinFlowCollection","preceding","following","captureStart","captureEnd","hasPendingContent","_line","_lineStart","_lineIndent","_kind","readSingleQuotedScalar","readDoubleQuotedScalar","hexLength","hexResult","tmp","readFlowCollection","readNext","_pos","_tag","_anchor","terminator","isPair","isExplicitPair","isMapping","composeNode","readBlockScalar","folding","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","readBlockSequence","detected","readBlockMapping","flowIndent","allowCompact","_keyLine","_keyLineStart","_keyPos","atExplicitKey","readTagProperty","isVerbatim","isNamed","tagHandle","tagName","readAnchorProperty","readAlias","parentIndent","nodeContext","allowToSeek","allowBlockStyles","allowBlockScalars","allowBlockCollections","indentStatus","atNewLine","hasContent","typeIndex","typeQuantity","typeList","blockIndent","readDocument","documentStart","directiveName","directiveArgs","hasDirectives","loadDocuments","nullpos","loadAll$1","iterator","documents","load$1","load_1","_toString","_hasOwnProperty","CHAR_BOM","CHAR_TAB","CHAR_LINE_FEED","CHAR_CARRIAGE_RETURN","CHAR_SPACE","CHAR_EXCLAMATION","CHAR_DOUBLE_QUOTE","CHAR_SHARP","CHAR_PERCENT","CHAR_AMPERSAND","CHAR_SINGLE_QUOTE","CHAR_ASTERISK","CHAR_COMMA","CHAR_MINUS","CHAR_COLON","CHAR_EQUALS","CHAR_GREATER_THAN","CHAR_QUESTION","CHAR_COMMERCIAL_AT","CHAR_LEFT_SQUARE_BRACKET","CHAR_RIGHT_SQUARE_BRACKET","CHAR_GRAVE_ACCENT","CHAR_LEFT_CURLY_BRACKET","CHAR_VERTICAL_LINE","CHAR_RIGHT_CURLY_BRACKET","ESCAPE_SEQUENCES","DEPRECATED_BOOLEANS_SYNTAX","DEPRECATED_BASE60_SYNTAX","compileStyleMap","encodeHex","character","QUOTING_TYPE_SINGLE","QUOTING_TYPE_DOUBLE","State","indentString","spaces","ind","generateNextLine","testImplicitResolving","str2","isWhitespace","isPrintable","isNsCharOrWhitespace","isPlainSafe","prev","inblock","cIsNsCharOrWhitespace","cIsNsChar","isPlainSafeFirst","isPlainSafeLast","codePointAt","pos","needIndentIndicator","leadingSpaceRe","STYLE_PLAIN","STYLE_SINGLE","STYLE_LITERAL","STYLE_FOLDED","STYLE_DOUBLE","chooseScalarStyle","singleLineOnly","indentPerLevel","lineWidth","testAmbiguousType","quotingType","forceQuotes","char","prevChar","hasLineBreak","hasFoldableLine","shouldTrackWidth","previousLineBreak","plain","writeScalar","iskey","indent","testAmbiguity","string2","blockHeader","dropEndingNewline","foldString","escapeString","indentIndicator","clip","keep","chomp","lineRe","nextLF","foldLine","prevMoreIndented","moreIndented","breakRe","curr","escapeSeq","writeFlowSequence","writeNode","writeBlockSequence","writeFlowMapping","objectKeyList","objectKey","objectValue","pairBuffer","writeBlockMapping","explicitPair","block","isblockseq","tagStr","objectOrArray","duplicateIndex","duplicate","getDuplicateReferences","objects","duplicatesIndexes","inspectNode","dump$1","renamed","from","to","JSON_SCHEMA","load","markerOffsets","markerOffsets2","calculateDeltaAndAngle","point1","point2","pointTransformer","deltaX","deltaY","getLineFunctionsWithOffset","edge","offset","DIRECTION","angle","differenceToEnd","differenceInYEnd","differenceToStart","differenceInYStart","startMarkerHeight","endMarkerHeight","extraRoom","adjustment","differenceInXEnd","differenceInXStart","getSubGraphTitleMargins","flowchart","subGraphTitleTopMargin","subGraphTitleBottomMargin","subGraphTitleTotalMargin","solidStateFill","handDrawnSeed","compileStyles","stylesMap","styles2Map","styles","styleMap","isLabelStyle","styles2String","stylesArray","labelStyles","nodeStyles","borderStyles","backgroundStyles","userNodeOverrides","nodeBorder","mainBkg","getStrokeDashArray","strokeDasharrayStyle","dashArray","constants","dist","constants_1","isRelativeUrlWithoutProtocol","decodeHtmlCharacters","removedNullByte","isValidUrl","decodeURI","sanitizeUrl","charsToDecode","decodedUrl","sanitizedUrl","trimmedUrl","urlSchemeParseResults","urlScheme","backSanitized","url_1","freeGlobal","freeSelf","Symbol","objectProto","nativeObjectToString","symToStringTag","getRawTag","isOwn","unmasked","objectToString","nullTag","undefinedTag","baseGetTag","asyncTag","funcTag","genTag","proxyTag","isFunction","coreJsData","maskSrcKey","uid","isMasked","func","funcProto","funcToString","toSource","reRegExpChar","reIsHostCtor","reIsNative","baseIsNative","pattern","getValue","getNative","nativeCreate","hashClear","hashDelete","HASH_UNDEFINED","hashGet","hashHas","hashSet","Hash","entries","entry","listCacheClear","eq","other","assocIndexOf","arrayProto","splice","listCacheDelete","lastIndex","listCacheGet","listCacheHas","listCacheSet","ListCache","Map","mapCacheClear","isKeyable","getMapData","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","FUNC_ERROR_TEXT","memoize","resolver","memoized","cache","stackClear","stackDelete","stackGet","stackHas","LARGE_ARRAY_SIZE","stackSet","Stack","defineProperty","baseAssignValue","assignMergeValue","createBaseFor","fromRight","iteratee","keysFunc","iterable","baseFor","freeExports","freeModule","moduleExports","Buffer","allocUnsafe","cloneBuffer","isDeep","Uint8Array","cloneArrayBuffer","arrayBuffer","cloneTypedArray","typedArray","copyArray","objectCreate","baseCreate","proto","overArg","getPrototype","isPrototype","Ctor","initCloneObject","isObjectLike","argsTag","baseIsArguments","propertyIsEnumerable","isArguments","isArray","MAX_SAFE_INTEGER","isLength","isArrayLike","isArrayLikeObject","stubFalse","nativeIsBuffer","isBuffer","objectTag","objectCtorString","isPlainObject","arrayTag","boolTag","dateTag","errorTag","mapTag","numberTag","regexpTag","setTag","stringTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","typedArrayTags","baseIsTypedArray","baseUnary","freeProcess","nodeUtil","nodeIsTypedArray","isTypedArray","safeGet","assignValue","objValue","copyObject","customizer","isNew","newValue","baseTimes","reIsUint","isIndex","arrayLikeKeys","inherited","isArr","isArg","isBuff","isType","skipIndexes","nativeKeysIn","baseKeysIn","isProto","keysIn","toPlainObject","baseMergeDeep","srcIndex","mergeFunc","stack","srcValue","stacked","isCommon","isTyped","baseMerge","apply","thisArg","nativeMax","overRest","otherArgs","baseSetToString","HOT_COUNT","HOT_SPAN","nativeNow","shortOut","lastCalled","stamp","remaining","setToString","baseRest","isIterateeCall","createAssigner","assigner","sources","guard","ZERO_WIDTH_SPACE","d3CurveTypes","curveBumpX","curveBumpY","curveMonotoneX","curveMonotoneY","curveStepAfter","curveStepBefore","directiveWithoutOpen","detectInit","inits","detectDirective","results","prop","commentWithoutDirectives","error","removeDirectives","isSubstringInArray","arr","interpolateToCurve","defaultCurve","curveName","formatUrl","linkStr","runFunc","functionName","arrPaths","len","fnName","distance","p1","p2","traverseEdge","points","prevPoint","totalDistance","remainingDistance","calculatePoint","calcLabelPosition","roundNumber","num","precision","factor","distanceToTraverse","vectorDistance","distanceRatio","calcCardinalityPosition","isRelationTypePresent","initialPosition","center","cardinalityPosition","calcTerminalLabelPosition","terminalMarkerSize","_points","distanceToCardinalityPoint","getStylesFromArray","labelStyle","cnt","generateId","makeRandomHex","characters","charactersLength","random","getTextObj","drawSimpleText","textData","nText","_fontSizePx","parseFontSize","textElem","span","wrapLabel","label","maxWidth","words","completedLines","nextLine","word","wordLength","calculateTextWidth","nextLineLength","hyphenatedStrings","remainingWord","breakString","hyphenCharacter","lines","currentLine","currentCharacter","isLastLine","hyphenatedNextLine","calculateTextHeight","calculateTextDimensions","fontSize","fontFamily","fontWeight","fontFamilies","body","fontFamily2","cHeight","textObj","bBox","InitIDGenerator","deterministic","seed","decoder","entityDecode","html","isDetailedError","insertTitle","cssClass","titleTopMargin","title","bounds","fontSizeNumber","cleanAndMerge","defaultData","utils_default","isLabelCoordinateInPath","encodeEntities","innerTxt","decodeEntities","getEdgeId","counter","handleUndefinedAttr","attrValue","dAttr","roundedX","roundedY","sanitizedD","defaultIconDimensions","defaultIconTransformations","defaultIconProps","defaultExtendedIconProps","defaultIconSizeCustomisations","defaultIconCustomisations","stringToIcon","validate","allowSimpleName","provider","colonSeparated","name$1","validateIconName","dashSeparated","icon","mergeIconTransformations","obj1","obj2","mergeIconData","getIconsTree","icons","aliases","resolved","internalGetIconData","tree","currentProps","getIconData","unitsSplit","unitsTest","calculateSize","ratio","oldParts","newParts","isNumber","splitSVGDefs","content","defs","endEnd","mergeDefsAndContent","wrapSVGContent","split","isUnsetKeyword","iconToSVG","customisations","fullIcon","fullCustomisations","box","transformations","hFlip","vFlip","rotation","tempValue","customisationsWidth","customisationsHeight","boxWidth","boxHeight","attributes","setAttr","viewBox","regex","counters","nextID","replaceIDs","ids","newID","escapedID","iconToHTML","renderAttribsHTML","L","G","E","be","Re","Te","Oe","I","we","F","ie","oe","ye","Pe","Q","Se","$e","U","_e","ae","Le","K","Me","ze","Ae","Ee","le","Ie","W","ue","Ce","pe","Be","qe","ve","ce","De","He","he","Ze","Ge","Ne","Fe","je","Qe","Ue","Ke","de","ke","We","se","X","Xe","N","Je","C","Ve","ge","J","V","z","fe","me","Ye","R","H","ee","te","ne","xe","Z","A","Y","P","B","dedent","templ","indentLengths","matches","_b","pattern_1","endentations","endentation","indentedValue","unknownIcon","iconsStore","loaderStore","registerIconPacks","iconLoaders","iconLoader","getRegisteredIconData","fallbackPrefix","iconData","isIconAvailable","getIconSVG","extraAttributes","renderData","svg","preprocessMarkdown","markdown","markdownAutoWrap","withoutMultipleNewlines","withoutExtraSpaces","markdownToLines","preprocessedMarkdown","nodes","marked","processNode","parentType","textLine","contentNode","treeNode","markdownToHTML","splitTextToChars","splitWordToFitWidth","checkFit","splitWordToFitWidthRecursion","usedChars","remainingChars","nextChar","newWord","splitLineToFitWidth","splitLineToFitWidthRecursion","newLine","joiner","nextWord","lineWithNextWord","applyStyle","dom","styleFn","addHtmlSpan","addBackground","fo","div","sanitizedLabel","labelClass","bbox","createTspan","textElement","lineIndex","lineHeight","computeWidthOfText","parentNode","testElement","testSpan","updateTextContentAndStyles","textLength","computeDimensionOfText","textDimension","createFormattedText","structuredText","labelGroup","bkg","checkWidth","line2","linesUnderWidth","preparedLine","tspan","wrappedLine","innerTspan","replaceIconSubstring","pendingReplacements","fullMatch","registeredIconName","replacements","createText","isTitle","useHtmlLabels","isNode","addSvgBackground","htmlText","decodedReplacedText","inputForKatex","sanitizeBR","svgLabel","nodeLabelTextStyle","edgeLabelRectStyle","edgeLabelTextStyle","tt","et","st","nt","ot","at","labelHelper","_classes","cssClasses","shapeSvg","labelEl","text2","halfPadding","dv","images","noImgText","img","setupImage","bodyFontSize","enlargingFactor","parsedBodyFontSize","insertLabel","updateNodeBounds","getNodeClasses","extra","createPathFromPoints","pointStrings","generateFullSineWavePoints","amplitude","numCycles","cycleLength","frequency","midY","generateCirclePoints","centerX","centerY","radius","numPoints","startAngle","endAngle","startAngleRad","angleStep","intersectRect","sx","sy","intersect_rect_default","addHtmlLabel","select2","labelSpan","createLabel","_vertexText","vertexText","rows","row","createLabel_default","createRoundedRectPathD","totalWidth","totalHeight","rect","clusterBkg","clusterBorder","select3","rect2","rc","rough","roughNode","rectBox","noteGroup","roundedWithTitle","altBackground","compositeBackground","compositeTitleBackground","outerRectG","innerRect","innerHeight","innerY","isAlt","roughOuterNode","roughInnerNode","kanbanSection","divider","squareRect","shapes","clusterElems","insertCluster","cluster","intersectNode","intersect_node_default","intersectEllipse","rx","ry","cx","cy","det","intersect_ellipse_default","intersectCircle","intersect_circle_default","intersectLine","q1","q2","c1","r3","r4","sameSign","c2","denom","intersect_line_default","intersectPolygon","polyPoints","intersections","left","top","intersect","pdx","pdy","distp","qdx","qdy","distq","intersect_polygon_default","intersect_default","anchor","cssStyles","rough2","circleElem","generateArcPoints","clockwise","midX","transformedX","transformedY","scaledCenterDistance","angleRange","angle2","bowTieRect","rough3","bowTieRectPath","bowTieRectShapePath","bowTieRectShape","insertPolygonShape","card","right","bottom","polygon","rough4","pathData","choice","rough5","choicePath","choiceShape","circle","rough6","options2","radius2","createLine","xAxis45","yAxis45","lineLength","pointQ1","pointQ2","pointQ3","pointQ4","crossedCircle","rough7","circleNode","linePath","lineNode","crossedCircle2","generateCirclePoints2","curlyBraceLeft","rectPoints","rough8","newCurlyBracePath","curlyBraceLeftNode","rectPath","rectShape","curlyBraceLeftShape","generateCirclePoints3","curlyBraceRight","rough9","curlyBraceRightNode","curlyBraceRightShape","generateCirclePoints4","curlyBraces","leftCurlyBracePoints","rightCurlyBracePoints","rough10","newLeftCurlyBracePath","leftCurlyBraceNode","newRightCurlyBracePath","rightCurlyBraceNode","curlyBracesShape","curvedTrapezoid","minWidth","minHeight","rough11","rw","tw","shapeNode","createCylinderPathD","createOuterCylinderPathD","createInnerCylinderPathD","cylinder","cylinder2","rough12","outerPathData","innerPathData","outerNode","innerLine","dividedRectangle","rectOffset","rough13","pts","poly","doublecircle","outerRadius","innerRadius","circleGroup","rough14","outerOptions","innerOptions","outerRoughNode","innerRoughNode","outerCircle","innerCircle","filledCircle","rough15","filledCircle2","flippedTriangle","rough16","flippedTriangle2","forkJoin","dir","state2","rough17","halfRoundedRectangle","rough18","hexagon","rough19","halfWidth","halfHeight","fixedLength","deducedWidth","hourglass","rough20","assetHeight","assetWidth","iconSize","defaultWidth","topLabel","labelPadding","rough21","outerWidth","outerHeight","iconShape","outerShape","iconElem","iconBBox","iconWidth","iconHeight","iconX","iconY","nodeHeight","iconCircle","rough22","fill","diameter","iconRounded","rough23","iconSquare","rough24","imageSquare","imageNaturalWidth","imageNaturalHeight","imageRawWidth","imageWidth","imageHeight","rough25","imageNode","image","inv_trapezoid","rough26","drawRect","rough27","labelRect","lean_left","rough28","lean_right","rough29","lightningBolt","gap","rough30","lightningBolt2","createCylinderPathD2","outerOffset","createOuterCylinderPathD2","createInnerCylinderPathD2","linedCylinder","rough31","linedWaveEdgedRect","waveAmplitude","finalH","rough32","waveEdgeRect","multiRect","rough33","outerPathPoints","innerPathPoints","outerPath","innerPath","innerNode","multiRect2","multiWaveEdgedRectangle","wavePoints","lastWavePoint","rough34","note","rough35","noteShapeNode","createDecisionBoxPathD","question","rough36","s2","points2","rect_left_inv_arrow","notch","rough37","rectWithTitle","description","div2","dv2","select4","textRows","titleBox","descr","rough38","roughLine","generateArcPoints2","roundedRect","labelPaddingX","labelPaddingY","taper","rough39","shadedProcess","rough40","slopedRect","rough41","squareRect2","stadium","rough42","stateEnd","lineColor","stateBorder","rough43","innerFill","circle2","stateStart","rough44","subroutine","rough45","l1","l2","taggedRect","tagWidth","tagHeight","rough46","tagPoints","rectNode","tagPath","tagNode","taggedRect2","taggedWaveEdgedRectangle","rough47","waveEdgeRectPath","waveEdgeRectNode","taggedWaveEdgeRectPath","taggedWaveEdgeRectNode","createCylinderPathD3","createOuterCylinderPathD3","createInnerCylinderPathD3","tiltedCylinder","rough48","trapezoid","rough49","trapezoidalPentagon","rough50","triangle","rough51","waveEdgedRectangle","widthDif","extraW","rough52","waveRectangle","baseWidth","baseHeight","aspectRatio","rough53","waveRectPath","waveRectNode","waveRect","windowPane","rough54","no","windowPane2","erBox","entityNode","themeVariables2","background","backgroundNode","PADDING","TEXT_PADDING","shapeSvg2","nameBBox","addText","yOffset","yOffsets","maxTypeWidth","maxNameWidth","maxKeysWidth","maxCommentWidth","keysPresent","commentPresent","attribute","typeBBox","nameBBox2","keysBBox","commentBBox","rowHeight","totalWidthSections","shapeBBox","difference","rough55","totalShapeBBoxHeight","sum","select5","translateX","translateY","roughRect","rowEven","rowOdd","isEven","roughRect2","yOffset2","strokeStyles","labelText","textHelper","GAP","annotationGroup","membersGroup","methodsGroup","annotationGroupHeight","labelGroupHeight","membersGroupHeight","annotation","addText2","labelGroupBBox","member","methodsYOffset","method","annotationGroupBBox","parentGroup","textEl","textContent","numberOfLines","select6","textChild","classBox","classNode","renderExtraBox","rough56","rectBBox","select7","newTranslateY","newTranslateX","_2","i2","nodes2","colorRegex","colorStyle","match2","requirementBox","requirementNode","elementNode","isRequirementNode","typeHeight","addText3","accumulativeHeight","nameHeight","idHeight","textHeight","riskHeight","typeHeight2","rough57","select8","inputText","colorFromPriority","kanbanItem","kanbanNode","orgWidth","labelElTitle","ticketUrl","link","bbox2","labelElAssigned","bboxAssigned","heightAdj","rough58","lineX","bang","effectiveWidth","effectiveHeight","bangElem","rough59","cloud","cloudElem","rough60","defaultMindmapNode","rd","bg","mindmapCircle","shapesDefs","generateShapeMap","shapes2","isValidShape","nodeElems","insertNode","renderOptions","newEl","shapeHandler","setNodeElem","clear2","positionNode","addEdgeMarkers","svgPath","diagramType","strokeColor","addEdgeMarker","arrowTypesMap","arrowType","arrowTypeInfo","endMarkerType","originalMarkerId","colorId","coloredMarkerId","originalMarker","coloredMarker","edgeLabels","terminalLabels","getLabelStyles","styleArray","acc","insertEdgeLabel","labelElement","edgeLabel","startLabelElement","startEdgeLabelLeft","inner","slBox","setTerminalWidth","startEdgeLabelRight","endLabelElement","endEdgeLabelLeft","endEdgeLabelRight","positionEdgeLabel","paths","outsideNode","intersection","outsidePoint","insidePoint","_x","_y","cutPathAtIntersect","boundaryNode","lastPointOutside","isInside","inter","pointPresent","extractCornerPoints","cornerPoints","cornerPointPositions","findAdjacentPoint","pointA","pointB","xDiff","yDiff","fixCorners","lineData","newLineData","nextPoint","cornerPoint","newPrevPoint","newNextPoint","newCornerPoint","generateDashArray","oValueS","oValueE","middleLength","dashLength","gapLength","dashGapPairLength","numberOfPairs","middlePattern","insertEdge","clusterDb","startNode","endNode","skipIntersect","pointsHasChanged","edgeClassStyles","pointsStr","lineFunction","strokeClasses","generateRoundedPath","applyMarkerOffsetsToPoints","edgeStyles","animatedEdge","svgPathNode","stylesFromClasses","animationClass","pathStyle","pathNode","mOffset","point3","midIndex","currPoint","dx1","dy1","dx2","dy2","len1","len2","nx1","ny1","nx2","ny2","dot","clampedDot","cutLen","startX","startY","endX","endY","newPoints","offsetValue","offsetX","offsetY","insertMarkers","markerArray","markerName","markers","extension","composition","aggregation","dependency","lollipop","cross","barb","only_one","zero_or_one","startMarker","endMarker","one_or_more","zero_or_more","requirement_arrow","requirement_contains","containsNode","markers_default","internalHelpers","layoutAlgorithms","registerLayoutLoaders","loaders","registerDefaultLayoutLoaders","render","data4Layout","layoutDefinition","getRegisteredLayoutAlgorithm","algorithm","fallback","COMMENT","RULESET","DECLARATION","IMPORT","NAMESPACE","KEYFRAMES","LAYER","trim","replace","replacement","indexof","search","charat","substr","begin","strlen","sizeof","column","siblings","peek","caret","slice","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","commenter","identifier","compile","rule","rules","rulesets","pseudo","declarations","atrule","property","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","serialize","stringify","nativeKeys","baseKeys","DataView","Promise","Set","WeakMap","promiseTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","isEmpty","diagram2","plugin","c4Detector_default","id2","detector2","loader2","plugin2","flowDetector_default","id3","detector3","loader3","plugin3","flowDetector_v2_default","id4","detector4","loader4","plugin4","erDetector_default","id5","detector5","loader5","plugin5","gitGraphDetector_default","id6","detector6","loader6","plugin6","ganttDetector_default","id7","detector7","loader7","info","id8","detector8","loader8","pie","id9","detector9","loader9","plugin7","quadrantDetector_default","id10","detector10","loader10","plugin8","xychartDetector_default","id11","detector11","loader11","plugin9","requirementDetector_default","id12","detector12","loader12","plugin10","sequenceDetector_default","id13","detector13","loader13","plugin11","classDetector_default","id14","detector14","loader14","plugin12","classDetector_V2_default","id15","detector15","loader15","plugin13","stateDetector_default","id16","detector16","loader16","plugin14","stateDetector_V2_default","id17","detector17","loader17","plugin15","journeyDetector_default","draw","_text","id28","version","renderer","errorRenderer_default","errorDiagram_default","id18","detector18","loader18","plugin16","detector_default","id19","detector19","loader19","plugin17","detector_default2","id20","detector20","loader20","plugin18","detector_default3","id21","detector21","loader21","plugin19","detector_default4","id22","detector22","loader22","plugin20","sankeyDetector_default","id23","detector23","loader23","packet","id24","detector24","loader24","radar","id25","detector25","loader25","plugin21","blockDetector_default","id26","detector26","loader26","architecture","architectureDetector_default","id27","detector27","loader27","treemap","hasLoadedDiagrams","addDiagrams","loadRegisteredDiagrams","failed","detector28","loader28","err","SVG_ROLE","setA11yDiagramInfo","addSVGa11yTitleDescription","a11yTitle","a11yDesc","baseId","descId","titleId","Diagram","db","parser","renderer2","init2","interactionFunctions","attachFunctions","cleanupComments","extractFrontMatter","parsed","cleanupText","processFrontmatter","displayMode","processDirectives","initDirective","wrapDirectives","preprocessDiagram","cleanedCode","frontMatterResult","directiveResult","toBase64","utf8Bytes","utf8Str","byte","MAX_TEXTLENGTH","MAX_TEXTLENGTH_EXCEEDED_MSG","SECURITY_LVL_SANDBOX","SECURITY_LVL_LOOSE","XMLNS_SVG_STD","XMLNS_XLINK_STD","XMLNS_XHTML_STD","IFRAME_WIDTH","IFRAME_HEIGHT","IFRAME_STYLES","IFRAME_BODY_STYLE","IFRAME_SANDBOX_OPTS","IFRAME_NOT_SUPPORTED_MSG","DOMPURIFY_TAGS","DOMPURIFY_ATTR","processAndSetConfigs","processed","parseOptions","getDiagramFromText","cssImportantStyles","createCssStyles","classDefs","cssElements","styleClassDef","cssElement","createUserStyles","graphType","svgId","userCSSstyles","allStyles","cleanUpSvgCode","svgCode","inSandboxMode","useArrowMarkerUrls","cleanedUpSvg","putIntoIFrame","svgElement","base64encodedSrc","appendDivSvgG","parentRoot","enclosingDivId","svgXlink","enclosingDiv","sandboxedIframe","iFrameId","removeExistingElements","divId","svgContainingElement","idSelector","iFrameID","iFrameID_selector","enclosingDivID","enclosingDivID_selector","removeTempElements","isSandboxed","isLooseSecurityLevel","iframe","diag","parseEncounteredException","firstChild","diagramClassDefs","style1","a11yDescr","addA11yInfo","svgEl","initialize","userOptions","mermaidAPI","handleError","errors","parseError","run","runThrowsErrors","mermaid","postRenderCallback","querySelector","nodesToProcess","idGenerator","bindFunctions","render2","initialize2","runOptions","registerExternalDiagrams","lazyLoad","contentLoaded","startOnLoad","setParseErrorHandler","parseErrorHandler","executionQueue","executionQueueRunning","executeQueue","parse2","performCall","rej","container","getRegisteredDiagramsMetadata","mermaid_default","mermaidGlobalInitialized","mermaidGlobalInitializationError","MermaidDiagramInternal","chartContent","chartIdRef","useRef","mermaidDivRef","panzoomInstanceRef","isLoading","setIsLoading","useState","errorMessage","setErrorMessage","svgContent","setSvgContent","setBindFunctions","isPanzoomInitialized","setIsPanzoomInitialized","useEffect","trimmedContent","tempIdForRender","renderResult","cleanup","initPanzoom","svgBBox","panzoomInstance","Panzoom.default","MermaidDiagram","memo","attributesToProps","attribs","camelCasedProperty","letter","CopyButton","copied","setCopied","handleCopy","HighlightedHtml","htmlPromise","filename","highlightedHtml","domNode","Element","_backgroundColor","restStyle","Fragment","FILENAME_REGEX","createDiffTransformer","firstToken","firstText","lineStyle","signClasses","signSpan","parseLang","langStr","CodeNode","isDiff","transformers","codeToHtml","DeleteNode","EmphasisNode","getHeadingClassName","getChildrenText","HeadingNode","slugger","Slugger","Tag","customId","childrenText","DifyIFramePlugin","iframeHtml","iFrameAllowedDomains","showAuthPrompt","setShowAuthPrompt","authTimeoutRef","initialTimeoutRef","useCallback","htmlString","isAllowedDomain","handleMessage","checkIframeAccess","handleAuthRequest","authUrl","popup","checkClosed","originalSrc","timeoutId","IFRAME_PLUGIN_REGISTRY","getIFramePlugin","pluginType","EXTERNAL_URL_REGEX","HTMLNode","sanitizedHtml","setSanitizedHtml","isMounted","setIsMounted","pluginIframe","setPluginIframe","createDOMPurify","detectedPlugin","sanitized","PluginComponent","ImageNode","InlineCodeNode","InlineMathNode","codeRef","useLayoutEffect","LinkNode","ListItemNode","ListNode","MathNode","ParagraphNode","StrongNode","TableNode","headRow","bodyRows","cell","rowIndex","cellIndex","TextNode","ThematicBreakNode","widgetsPromise","loadTwitterWidgets","scriptId","onScriptLoad","existingScript","script","TweetSuspender","promise","Widgets","setPromise","createPromise","mountPointRef","mountPoint","TweetEmbed","loadWidgetsPromise","twitterWidgetsJS","promiseResolveRef","promiseRejectRef","widget","setWidget","targetNode","observer","_resolve","WidgetComponent","TwitterEmbedNode","YouTubeEmbedNode","videoId","embedParams","queryString","ZennDetailsNode","ZennMessageNode","FootnoteReferenceNode","FootnoteBackLinkNode","FootnotesSection","extractFootnoteDefinitions","work","MarkdownRenderer","rootNode","footnoteDefinitions","createIntentTweetLink","hashtags","via","related","in_reply_to","_url","extractYouTubeVideoId","allParams","fetchSiteMetadata","controller","response","metaTags","meta","remarkBlockLink","visit","maybeLink","metadataCache","shouldFetchMetadata","remarkBlockLinkMetadata","enableCache","linkNodes","metadataPromises","cachedMetadata","HEADING_ID_REGEX","remarkCustomHeadingId","lastChild","textNode","hProperties","remarkFootnoteBackLink","childParagraph","remarkHtmlAnchorToLink","anchorMatch","linkNode","remarkHtmlInHtml","visitor","combinedHtml","nodesToCombineCount","openTags","foundClosing","tags","tagNameMatch","sizeRegex","remarkImageSize","processAttribute","updatedAlt","altMatches","updatedTitle","titleMatches","allMatches","importRegex","remarkImportDirective","markdownFilePath","parentDir","imports","importPath","absolutePath","parsedTrees","fileContent","fs","newTree","remarkParentNode","URI_SCHEME_REGEX","transformUriAsync","isImage","workspaceRoot","validateExistence","protocol","markdownDir","projectRelativePath","pathForEncoding","urlJoin","remarkResolveUriAsync","uriNodes","transformPromises","transformedUri","TWITTER_LINK_REGEX","remarkTwitterEmbed","matchTwitterLink","tweetId","remarkYouTubeEmbed","videoInfo","remarkZennMessage","processNodes","newChildren","directiveMatch","startIndex","endIndex","nestLevel","contentNodes","innerContent","firstNodeChildren","firstPara","lastNodeChildren","lastPara","middleNodes","processedChildren","newNode","nodeToPush","item","parseMarkdown","markdownText","processor","remark","remarkFrontmatter","remarkBreaks","remarkMath","remarkGfm"],"mappings":"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CnB,YAAe,GACf,aAAgB,GAChB,eAAkB,0BAClB,WAAc,GACd,gBAAmB,GACnB,cAAiB,KACjB,aAAgB,CACd,UACA,UACA,UACA,UACA,UACA,SACN,EACI,aAAgB,CACd,UACA,UACA,UACA,UACA,UACA,UACA,SACN,EACI,eAAkB,CAChB,MACN,EACI,WAAc,GACd,gBAAmB,6CACnB,cAAiB,KACrB,EACE,MAAS,CACP,YAAe,GACf,eAAkB,GAClB,oBAAuB,GACvB,cAAiB,GACjB,QAAW,EACX,WAAc,GACd,gBAAmB,gBACnB,WAAc,GACd,oBAAuB,EAC3B,EACE,MAAS,CACP,YAAe,GACf,eAAkB,GAClB,cAAiB,GACjB,SAAY,EACZ,QAAW,EACX,WAAc,GACd,WAAc,IACd,WAAc,GACd,UAAa,GACb,WAAc,EACd,YAAe,EACf,eAAkB,KAClB,SAAY,GACZ,YAAe,GACf,iBAAoB,KACpB,kBAAqB,GACrB,OAAU,EACV,gBAAmB,eACvB,EACE,GAAM,CACJ,YAAe,GACf,eAAkB,GAClB,eAAkB,GAClB,gBAAmB,KACnB,eAAkB,IAClB,gBAAmB,GACnB,cAAiB,GACjB,YAAe,IACf,YAAe,GACf,OAAU,OACV,KAAQ,WACR,SAAY,EAChB,EACE,IAAO,CACL,YAAe,GACf,aAAgB,GACpB,EACE,cAAiB,CACf,YAAe,GACf,WAAc,IACd,YAAe,IACf,cAAiB,GACjB,aAAgB,GAChB,gBAAmB,EACnB,kBAAqB,EACrB,kBAAqB,EACrB,mBAAsB,GACtB,mBAAsB,GACtB,sBAAyB,GACzB,uBAA0B,EAC1B,iBAAoB,EACpB,mBAAsB,GACtB,YAAe,EACf,cAAiB,MACjB,cAAiB,OACjB,kCAAqC,EACrC,kCAAqC,CACzC,EACE,QAAW,CACT,YAAe,GACf,MAAS,IACT,OAAU,IACV,cAAiB,GACjB,aAAgB,GAChB,cAAiB,GACjB,UAAa,GACb,MAAS,CACP,KAAQ,4BACR,UAAa,GACb,cAAiB,GACjB,aAAgB,EAChB,UAAa,GACb,cAAiB,GACjB,aAAgB,EAChB,SAAY,GACZ,WAAc,EACd,UAAa,EACb,aAAgB,GAChB,cAAiB,CACvB,EACI,MAAS,CACP,KAAQ,4BACR,UAAa,GACb,cAAiB,GACjB,aAAgB,EAChB,UAAa,GACb,cAAiB,GACjB,aAAgB,EAChB,SAAY,GACZ,WAAc,EACd,UAAa,EACb,aAAgB,GAChB,cAAiB,CACvB,EACI,iBAAoB,WACpB,yBAA4B,EAChC,EACE,YAAe,CACb,YAAe,GACf,UAAa,UACb,WAAc,OACd,iBAAoB,QACpB,kBAAqB,OACrB,eAAkB,IAClB,gBAAmB,IACnB,SAAY,GACZ,aAAgB,GAChB,YAAe,EACnB,EACE,QAAW,CACT,YAAe,GACf,QAAW,GACX,aAAgB,IAChB,gBAAmB,cACvB,EACE,OAAU,CACR,YAAe,GACf,QAAW,EACX,aAAgB,IAChB,cAAiB,EACrB,EACE,SAAY,CACV,YAAe,GACf,eAAkB,GAClB,eAAkB,GAClB,WAAc,IACd,MAAS,IACT,OAAU,GACV,UAAa,GACb,cAAiB,EACjB,WAAc,GACd,cAAiB,GACjB,aAAgB,SAChB,gBAAmB,EACnB,YAAe,GACf,aAAgB,GAChB,eAAkB,0BAClB,WAAc,GACd,gBAAmB,GACnB,cAAiB,KACjB,aAAgB,CACd,UACA,UACA,UACA,UACA,UACA,SACN,EACI,aAAgB,CACd,UACA,UACA,UACA,UACA,UACA,UACA,SACN,EACI,eAAkB,CAChB,MACN,EACI,kBAAqB,EACzB,EACE,SAAY,CACV,YAAe,GACf,eAAkB,GAClB,eAAkB,EAClB,UAAa,CACX,MAAS,GACT,OAAU,IACV,EAAK,IACL,EAAK,CACX,EACI,eAAkB,OAClB,gBAAmB,EACnB,gBAAmB,GACnB,aAAgB,GAChB,kBAAqB,GACrB,gBAAmB,GACnB,oBAAuB,EAC3B,EACE,GAAM,CACJ,YAAe,GACf,eAAkB,GAClB,eAAkB,GAClB,cAAiB,GACjB,eAAkB,GAClB,MAAS,IACT,OAAU,GACV,UAAa,GACb,aAAgB,EAChB,iBAAoB,EACpB,gBAAmB,EACnB,eAAkB,GAClB,iBAAoB,0BACpB,iBAAoB,SACpB,wBAA2B,GAC3B,0BAA6B,0BAC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CE,CACE,aAAc,YACd,KAAM,mBACN,UAAW,OACX,YAAa,+BACb,QAAS,CAAC,MAAM,EAChB,gBAAiB,CAAC,UAAU,EAC5B,QAASvH,EACb,EACE,CACE,aAAc,UACd,KAAM,YACN,UAAW,YACX,YAAa,iCACb,QAAS,CAAC,YAAa,SAAS,EAChC,QAASY,EACb,EACE,CACE,aAAc,UACd,KAAM,cACN,UAAW,QACX,YAAa,iBACb,QAAS,CAAC,UAAW,SAAS,EAC9B,QAAS1E,EACb,EACE,CACE,aAAc,gBACd,KAAM,cACN,UAAW,UACX,YAAa,iBACb,QAASS,EACb,EACE,CACE,aAAc,oCACd,KAAM,eACN,UAAW,SACX,YAAa,iBACb,QAASK,EACb,EACE,CACE,aAAc,WACd,KAAM,iBACN,UAAW,OACX,YAAa,qBACb,QAAS,CAAC,WAAY,gBAAgB,EACtC,QAAS0G,EACb,EACE,CACE,aAAc,WACd,KAAM,WACN,UAAW,MACX,YAAa,wBACb,QAAS,CAAC,MAAO,UAAU,EAC3B,QAASmG,EACb,EACE,CACE,aAAc,QACd,KAAM,yBACN,UAAW,QACX,YAAa,qBACb,QAAS,CAAC,wBAAwB,EAClC,QAASzJ,EACb,EACE,CACE,aAAc,wBACd,KAAM,sBACN,UAAW,QACX,YAAa,wBACb,QAAS,CAAC,MAAO,qBAAqB,EACtC,QAASiJ,EACb,EACE,CACE,aAAc,eACd,KAAM,iBACN,UAAW,UACX,YAAa,eACb,QAAS,CAAC,OAAQ,gBAAgB,EAClC,QAASnF,EACb,EACE,CACE,aAAc,UACd,KAAM,mBACN,UAAW,YACX,YAAa,uBACb,QAAS,CAAC,mBAAoB,SAAS,EACvC,QAASzG,EACb,EACE,CACE,aAAc,kBACd,KAAM,oBACN,UAAW,WACX,YAAa,wBACb,QAAS,CAAC,WAAY,oBAAqB,iBAAiB,EAC5D,QAASiB,EACb,EACE,CACE,aAAc,UACd,KAAM,WACN,UAAW,MACX,YAAa,qBACb,QAAS,CAAC,UAAW,UAAU,EAC/B,QAASiL,EACb,EACE,CACE,aAAc,mBACd,KAAM,cACN,UAAW,WACX,YAAa,mBACb,QAAS,C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","x_google_ignoreList":[0,1,2,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292]}