langgraph-vue3-chatbot 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (521) hide show
  1. package/README.md +146 -0
  2. package/dist-lib/assets/index-CX1UtZzJ.css +1 -0
  3. package/dist-lib/chunks/__vite-optional-peer-dep_stream-markdown_markstream-vue-DYxpcVy9.js +5 -0
  4. package/dist-lib/chunks/__vite-optional-peer-dep_stream-markdown_markstream-vue-DYxpcVy9.js.map +1 -0
  5. package/dist-lib/chunks/__vite-optional-peer-dep_stream-monaco_markstream-vue-DYxpcVy9.js +5 -0
  6. package/dist-lib/chunks/__vite-optional-peer-dep_stream-monaco_markstream-vue-DYxpcVy9.js.map +1 -0
  7. package/dist-lib/chunks/__vite-optional-peer-dep_vue-i18n_markstream-vue-DYxpcVy9.js +5 -0
  8. package/dist-lib/chunks/__vite-optional-peer-dep_vue-i18n_markstream-vue-DYxpcVy9.js.map +1 -0
  9. package/dist-lib/chunks/_basePickBy-CW66PkAm.js +152 -0
  10. package/dist-lib/chunks/_basePickBy-CW66PkAm.js.map +1 -0
  11. package/dist-lib/chunks/_baseUniq-kZ8qh66z.js +615 -0
  12. package/dist-lib/chunks/_baseUniq-kZ8qh66z.js.map +1 -0
  13. package/dist-lib/chunks/arc-YPpteDR0.js +84 -0
  14. package/dist-lib/chunks/arc-YPpteDR0.js.map +1 -0
  15. package/dist-lib/chunks/architecture-7HQA4BMR-D9tgy59a.js +7 -0
  16. package/dist-lib/chunks/architecture-7HQA4BMR-D9tgy59a.js.map +1 -0
  17. package/dist-lib/chunks/architectureDiagram-VXUJARFQ-DxlahZGO.js +4667 -0
  18. package/dist-lib/chunks/architectureDiagram-VXUJARFQ-DxlahZGO.js.map +1 -0
  19. package/dist-lib/chunks/blockDiagram-VD42YOAC-D8bzGblL.js +2266 -0
  20. package/dist-lib/chunks/blockDiagram-VD42YOAC-D8bzGblL.js.map +1 -0
  21. package/dist-lib/chunks/c4Diagram-YG6GDRKO-D5AugQZD.js +1582 -0
  22. package/dist-lib/chunks/c4Diagram-YG6GDRKO-D5AugQZD.js.map +1 -0
  23. package/dist-lib/chunks/channel-BZVSXMdI.js +6 -0
  24. package/dist-lib/chunks/channel-BZVSXMdI.js.map +1 -0
  25. package/dist-lib/chunks/chunk-4BX2VUAB-DmDiFaYQ.js +10 -0
  26. package/dist-lib/chunks/chunk-4BX2VUAB-DmDiFaYQ.js.map +1 -0
  27. package/dist-lib/chunks/chunk-55IACEB6-Bixz-4ri.js +9 -0
  28. package/dist-lib/chunks/chunk-55IACEB6-Bixz-4ri.js.map +1 -0
  29. package/dist-lib/chunks/chunk-B4BG7PRW-roOoJ-H5.js +1377 -0
  30. package/dist-lib/chunks/chunk-B4BG7PRW-roOoJ-H5.js.map +1 -0
  31. package/dist-lib/chunks/chunk-DI55MBZ5-BKgq73Yz.js +1383 -0
  32. package/dist-lib/chunks/chunk-DI55MBZ5-BKgq73Yz.js.map +1 -0
  33. package/dist-lib/chunks/chunk-FMBD7UC4-0NCLBOZ4.js +20 -0
  34. package/dist-lib/chunks/chunk-FMBD7UC4-0NCLBOZ4.js.map +1 -0
  35. package/dist-lib/chunks/chunk-QN33PNHL-SdmLXfvj.js +21 -0
  36. package/dist-lib/chunks/chunk-QN33PNHL-SdmLXfvj.js.map +1 -0
  37. package/dist-lib/chunks/chunk-QZHKN3VN-BJRRsz_0.js +16 -0
  38. package/dist-lib/chunks/chunk-QZHKN3VN-BJRRsz_0.js.map +1 -0
  39. package/dist-lib/chunks/chunk-TZMSLE5B-BHz9sY22.js +65 -0
  40. package/dist-lib/chunks/chunk-TZMSLE5B-BHz9sY22.js.map +1 -0
  41. package/dist-lib/chunks/classDiagram-2ON5EDUG-D9YAjz9U.js +17 -0
  42. package/dist-lib/chunks/classDiagram-2ON5EDUG-D9YAjz9U.js.map +1 -0
  43. package/dist-lib/chunks/classDiagram-v2-WZHVMYZB-D9YAjz9U.js +17 -0
  44. package/dist-lib/chunks/classDiagram-v2-WZHVMYZB-D9YAjz9U.js.map +1 -0
  45. package/dist-lib/chunks/clone-Cr8OkUI6.js +9 -0
  46. package/dist-lib/chunks/clone-Cr8OkUI6.js.map +1 -0
  47. package/dist-lib/chunks/cose-bilkent-S5V4N54A-Dup1Il7f.js +2607 -0
  48. package/dist-lib/chunks/cose-bilkent-S5V4N54A-Dup1Il7f.js.map +1 -0
  49. package/dist-lib/chunks/cytoscape.esm-ZmItrg9y.js +18732 -0
  50. package/dist-lib/chunks/cytoscape.esm-ZmItrg9y.js.map +1 -0
  51. package/dist-lib/chunks/d2_markstream-vue-DjWw6Iqb.js +5 -0
  52. package/dist-lib/chunks/d2_markstream-vue-DjWw6Iqb.js.map +1 -0
  53. package/dist-lib/chunks/dagre-6UL2VRFP-BN-tqdJt.js +448 -0
  54. package/dist-lib/chunks/dagre-6UL2VRFP-BN-tqdJt.js.map +1 -0
  55. package/dist-lib/chunks/defaultLocale-BgPVtth8.js +172 -0
  56. package/dist-lib/chunks/defaultLocale-BgPVtth8.js.map +1 -0
  57. package/dist-lib/chunks/diagram-PSM6KHXK-q1AJt2KR.js +535 -0
  58. package/dist-lib/chunks/diagram-PSM6KHXK-q1AJt2KR.js.map +1 -0
  59. package/dist-lib/chunks/diagram-QEK2KX5R-DvWZHdbC.js +222 -0
  60. package/dist-lib/chunks/diagram-QEK2KX5R-DvWZHdbC.js.map +1 -0
  61. package/dist-lib/chunks/diagram-S2PKOQOG-Bh2eYDqp.js +144 -0
  62. package/dist-lib/chunks/diagram-S2PKOQOG-Bh2eYDqp.js.map +1 -0
  63. package/dist-lib/chunks/erDiagram-Q2GNP2WA-duuiZhAe.js +843 -0
  64. package/dist-lib/chunks/erDiagram-Q2GNP2WA-duuiZhAe.js.map +1 -0
  65. package/dist-lib/chunks/flowDiagram-NV44I4VS-2bX7uP_Y.js +1628 -0
  66. package/dist-lib/chunks/flowDiagram-NV44I4VS-2bX7uP_Y.js.map +1 -0
  67. package/dist-lib/chunks/ganttDiagram-JELNMOA3-DeLxp-TU.js +2664 -0
  68. package/dist-lib/chunks/ganttDiagram-JELNMOA3-DeLxp-TU.js.map +1 -0
  69. package/dist-lib/chunks/gitGraph-G5XIXVHT-DPDyQFCQ.js +7 -0
  70. package/dist-lib/chunks/gitGraph-G5XIXVHT-DPDyQFCQ.js.map +1 -0
  71. package/dist-lib/chunks/gitGraphDiagram-V2S2FVAM-C4N7S6Sn.js +713 -0
  72. package/dist-lib/chunks/gitGraphDiagram-V2S2FVAM-C4N7S6Sn.js.map +1 -0
  73. package/dist-lib/chunks/graph-CpqhRkc9.js +248 -0
  74. package/dist-lib/chunks/graph-CpqhRkc9.js.map +1 -0
  75. package/dist-lib/chunks/index-C6AmdgXa.js +29103 -0
  76. package/dist-lib/chunks/index-C6AmdgXa.js.map +1 -0
  77. package/dist-lib/chunks/index2-h2xJzRF5.js +71 -0
  78. package/dist-lib/chunks/index2-h2xJzRF5.js.map +1 -0
  79. package/dist-lib/chunks/index3-D85ShV5u.js +71 -0
  80. package/dist-lib/chunks/index3-D85ShV5u.js.map +1 -0
  81. package/dist-lib/chunks/index4-BZ3LQ3Gs.js +625 -0
  82. package/dist-lib/chunks/index4-BZ3LQ3Gs.js.map +1 -0
  83. package/dist-lib/chunks/index5-V5z7JyjJ.js +593 -0
  84. package/dist-lib/chunks/index5-V5z7JyjJ.js.map +1 -0
  85. package/dist-lib/chunks/index6-NgOhDjHq.js +197 -0
  86. package/dist-lib/chunks/index6-NgOhDjHq.js.map +1 -0
  87. package/dist-lib/chunks/index7-DbtRL8R1.js +218 -0
  88. package/dist-lib/chunks/index7-DbtRL8R1.js.map +1 -0
  89. package/dist-lib/chunks/info-VBDWY6EO-DmNdFwBm.js +7 -0
  90. package/dist-lib/chunks/info-VBDWY6EO-DmNdFwBm.js.map +1 -0
  91. package/dist-lib/chunks/infoDiagram-HS3SLOUP-C4KOQ4z8.js +25 -0
  92. package/dist-lib/chunks/infoDiagram-HS3SLOUP-C4KOQ4z8.js.map +1 -0
  93. package/dist-lib/chunks/infographic_markstream-vue-DjWw6Iqb.js +5 -0
  94. package/dist-lib/chunks/infographic_markstream-vue-DjWw6Iqb.js.map +1 -0
  95. package/dist-lib/chunks/init-DjUOC4st.js +17 -0
  96. package/dist-lib/chunks/init-DjUOC4st.js.map +1 -0
  97. package/dist-lib/chunks/journeyDiagram-XKPGCS4Q-BdwiHNvc.js +837 -0
  98. package/dist-lib/chunks/journeyDiagram-XKPGCS4Q-BdwiHNvc.js.map +1 -0
  99. package/dist-lib/chunks/kanban-definition-3W4ZIXB7-DEdDjhZy.js +721 -0
  100. package/dist-lib/chunks/kanban-definition-3W4ZIXB7-DEdDjhZy.js.map +1 -0
  101. package/dist-lib/chunks/katex-BpkHWDoa.js +11604 -0
  102. package/dist-lib/chunks/katex-BpkHWDoa.js.map +1 -0
  103. package/dist-lib/chunks/languageIconExtended-OLNeqZ3A.js +120 -0
  104. package/dist-lib/chunks/languageIconExtended-OLNeqZ3A.js.map +1 -0
  105. package/dist-lib/chunks/layout-BsfUazBi.js +1336 -0
  106. package/dist-lib/chunks/layout-BsfUazBi.js.map +1 -0
  107. package/dist-lib/chunks/linear-733vJvdS.js +260 -0
  108. package/dist-lib/chunks/linear-733vJvdS.js.map +1 -0
  109. package/dist-lib/chunks/mermaid-parser.core-BjQ4GviQ.js +17831 -0
  110. package/dist-lib/chunks/mermaid-parser.core-BjQ4GviQ.js.map +1 -0
  111. package/dist-lib/chunks/mermaid.core-CfwBoKEG.js +15318 -0
  112. package/dist-lib/chunks/mermaid.core-CfwBoKEG.js.map +1 -0
  113. package/dist-lib/chunks/mhchem-TJ3MgtXi.js +2307 -0
  114. package/dist-lib/chunks/mhchem-TJ3MgtXi.js.map +1 -0
  115. package/dist-lib/chunks/mindmap-definition-VGOIOE7T-DWXCpr2L.js +787 -0
  116. package/dist-lib/chunks/mindmap-definition-VGOIOE7T-DWXCpr2L.js.map +1 -0
  117. package/dist-lib/chunks/ordinal-DfAQgscy.js +62 -0
  118. package/dist-lib/chunks/ordinal-DfAQgscy.js.map +1 -0
  119. package/dist-lib/chunks/packet-DYOGHKS2-LKfYfvMi.js +7 -0
  120. package/dist-lib/chunks/packet-DYOGHKS2-LKfYfvMi.js.map +1 -0
  121. package/dist-lib/chunks/pie-VRWISCQL-CCCGK1h8.js +7 -0
  122. package/dist-lib/chunks/pie-VRWISCQL-CCCGK1h8.js.map +1 -0
  123. package/dist-lib/chunks/pieDiagram-ADFJNKIX-HEACu4aq.js +162 -0
  124. package/dist-lib/chunks/pieDiagram-ADFJNKIX-HEACu4aq.js.map +1 -0
  125. package/dist-lib/chunks/quadrantDiagram-AYHSOK5B-P2mJBm9J.js +1025 -0
  126. package/dist-lib/chunks/quadrantDiagram-AYHSOK5B-P2mJBm9J.js.map +1 -0
  127. package/dist-lib/chunks/radar-ZZBFDIW7-B1WQ7hOI.js +7 -0
  128. package/dist-lib/chunks/radar-ZZBFDIW7-B1WQ7hOI.js.map +1 -0
  129. package/dist-lib/chunks/requirementDiagram-UZGBJVZJ-BTSc_5mV.js +853 -0
  130. package/dist-lib/chunks/requirementDiagram-UZGBJVZJ-BTSc_5mV.js.map +1 -0
  131. package/dist-lib/chunks/safeRaf-BfLvr4ec.js +23 -0
  132. package/dist-lib/chunks/safeRaf-BfLvr4ec.js.map +1 -0
  133. package/dist-lib/chunks/sankeyDiagram-TZEHDZUN-DCpV3VxC.js +811 -0
  134. package/dist-lib/chunks/sankeyDiagram-TZEHDZUN-DCpV3VxC.js.map +1 -0
  135. package/dist-lib/chunks/sequenceDiagram-WL72ISMW-hw66SVMK.js +2519 -0
  136. package/dist-lib/chunks/sequenceDiagram-WL72ISMW-hw66SVMK.js.map +1 -0
  137. package/dist-lib/chunks/stateDiagram-FKZM4ZOC-0TmJOl3D.js +264 -0
  138. package/dist-lib/chunks/stateDiagram-FKZM4ZOC-0TmJOl3D.js.map +1 -0
  139. package/dist-lib/chunks/stateDiagram-v2-4FDKWEC3-B-LCArfl.js +17 -0
  140. package/dist-lib/chunks/stateDiagram-v2-4FDKWEC3-B-LCArfl.js.map +1 -0
  141. package/dist-lib/chunks/timeline-definition-IT6M3QCI-DG4YKjjA.js +802 -0
  142. package/dist-lib/chunks/timeline-definition-IT6M3QCI-DG4YKjjA.js.map +1 -0
  143. package/dist-lib/chunks/treemap-GDKQZRPO-BUNvhTR0.js +7 -0
  144. package/dist-lib/chunks/treemap-GDKQZRPO-BUNvhTR0.js.map +1 -0
  145. package/dist-lib/chunks/xychartDiagram-PRI3JC2R-Tw2Icm50.js +1341 -0
  146. package/dist-lib/chunks/xychartDiagram-PRI3JC2R-Tw2Icm50.js.map +1 -0
  147. package/dist-lib/components/ai-bot/AskAiBot.vue.d.ts +41 -0
  148. package/dist-lib/components/ai-bot/AskAiBot.vue.d.ts.map +1 -0
  149. package/dist-lib/components/ai-bot/ChatBot.vue.d.ts +47 -0
  150. package/dist-lib/components/ai-bot/ChatBot.vue.d.ts.map +1 -0
  151. package/dist-lib/components/ai-bot/ChatHeader.vue.d.ts +16 -0
  152. package/dist-lib/components/ai-bot/ChatHeader.vue.d.ts.map +1 -0
  153. package/dist-lib/components/ai-bot/ChatInput.vue.d.ts +46 -0
  154. package/dist-lib/components/ai-bot/ChatInput.vue.d.ts.map +1 -0
  155. package/dist-lib/components/ai-bot/ChatMessages.vue.d.ts +23 -0
  156. package/dist-lib/components/ai-bot/ChatMessages.vue.d.ts.map +1 -0
  157. package/dist-lib/components/ai-bot/ChatSuggestions.vue.d.ts +10 -0
  158. package/dist-lib/components/ai-bot/ChatSuggestions.vue.d.ts.map +1 -0
  159. package/dist-lib/components/ai-bot/FloatButton.vue.d.ts +10 -0
  160. package/dist-lib/components/ai-bot/FloatButton.vue.d.ts.map +1 -0
  161. package/dist-lib/components/ai-bot/GeneratedFiles.vue.d.ts +9 -0
  162. package/dist-lib/components/ai-bot/GeneratedFiles.vue.d.ts.map +1 -0
  163. package/dist-lib/components/ai-bot/InputAttachmentsDisplay.vue.d.ts +3 -0
  164. package/dist-lib/components/ai-bot/InputAttachmentsDisplay.vue.d.ts.map +1 -0
  165. package/dist-lib/components/ai-bot/TodoList.vue.d.ts +28 -0
  166. package/dist-lib/components/ai-bot/TodoList.vue.d.ts.map +1 -0
  167. package/dist-lib/components/ai-bot/ToolCall.vue.d.ts +7 -0
  168. package/dist-lib/components/ai-bot/ToolCall.vue.d.ts.map +1 -0
  169. package/dist-lib/components/ai-bot/ai-elements/attachments/Attachment.vue.d.ts +23 -0
  170. package/dist-lib/components/ai-bot/ai-elements/attachments/Attachment.vue.d.ts.map +1 -0
  171. package/dist-lib/components/ai-bot/ai-elements/attachments/AttachmentEmpty.vue.d.ts +17 -0
  172. package/dist-lib/components/ai-bot/ai-elements/attachments/AttachmentEmpty.vue.d.ts.map +1 -0
  173. package/dist-lib/components/ai-bot/ai-elements/attachments/AttachmentHoverCard.vue.d.ts +22 -0
  174. package/dist-lib/components/ai-bot/ai-elements/attachments/AttachmentHoverCard.vue.d.ts.map +1 -0
  175. package/dist-lib/components/ai-bot/ai-elements/attachments/AttachmentHoverCardContent.vue.d.ts +21 -0
  176. package/dist-lib/components/ai-bot/ai-elements/attachments/AttachmentHoverCardContent.vue.d.ts.map +1 -0
  177. package/dist-lib/components/ai-bot/ai-elements/attachments/AttachmentHoverCardTrigger.vue.d.ts +17 -0
  178. package/dist-lib/components/ai-bot/ai-elements/attachments/AttachmentHoverCardTrigger.vue.d.ts.map +1 -0
  179. package/dist-lib/components/ai-bot/ai-elements/attachments/AttachmentInfo.vue.d.ts +10 -0
  180. package/dist-lib/components/ai-bot/ai-elements/attachments/AttachmentInfo.vue.d.ts.map +1 -0
  181. package/dist-lib/components/ai-bot/ai-elements/attachments/AttachmentPreview.vue.d.ts +8 -0
  182. package/dist-lib/components/ai-bot/ai-elements/attachments/AttachmentPreview.vue.d.ts.map +1 -0
  183. package/dist-lib/components/ai-bot/ai-elements/attachments/AttachmentRemove.vue.d.ts +22 -0
  184. package/dist-lib/components/ai-bot/ai-elements/attachments/AttachmentRemove.vue.d.ts.map +1 -0
  185. package/dist-lib/components/ai-bot/ai-elements/attachments/Attachments.vue.d.ts +21 -0
  186. package/dist-lib/components/ai-bot/ai-elements/attachments/Attachments.vue.d.ts.map +1 -0
  187. package/dist-lib/components/ai-bot/ai-elements/attachments/context.d.ts +16 -0
  188. package/dist-lib/components/ai-bot/ai-elements/attachments/context.d.ts.map +1 -0
  189. package/dist-lib/components/ai-bot/ai-elements/attachments/index.d.ts +13 -0
  190. package/dist-lib/components/ai-bot/ai-elements/attachments/index.d.ts.map +1 -0
  191. package/dist-lib/components/ai-bot/ai-elements/attachments/types.d.ts +9 -0
  192. package/dist-lib/components/ai-bot/ai-elements/attachments/types.d.ts.map +1 -0
  193. package/dist-lib/components/ai-bot/ai-elements/attachments/utils.d.ts +4 -0
  194. package/dist-lib/components/ai-bot/ai-elements/attachments/utils.d.ts.map +1 -0
  195. package/dist-lib/components/ai-bot/ai-elements/conversation/Conversation.vue.d.ts +39 -0
  196. package/dist-lib/components/ai-bot/ai-elements/conversation/Conversation.vue.d.ts.map +1 -0
  197. package/dist-lib/components/ai-bot/ai-elements/conversation/ConversationContent.vue.d.ts +17 -0
  198. package/dist-lib/components/ai-bot/ai-elements/conversation/ConversationContent.vue.d.ts.map +1 -0
  199. package/dist-lib/components/ai-bot/ai-elements/conversation/ConversationEmptyState.vue.d.ts +24 -0
  200. package/dist-lib/components/ai-bot/ai-elements/conversation/ConversationEmptyState.vue.d.ts.map +1 -0
  201. package/dist-lib/components/ai-bot/ai-elements/conversation/ConversationScrollButton.vue.d.ts +7 -0
  202. package/dist-lib/components/ai-bot/ai-elements/conversation/ConversationScrollButton.vue.d.ts.map +1 -0
  203. package/dist-lib/components/ai-bot/ai-elements/conversation/index.d.ts +5 -0
  204. package/dist-lib/components/ai-bot/ai-elements/conversation/index.d.ts.map +1 -0
  205. package/dist-lib/components/ai-bot/ai-elements/loader/Loader.vue.d.ts +10 -0
  206. package/dist-lib/components/ai-bot/ai-elements/loader/Loader.vue.d.ts.map +1 -0
  207. package/dist-lib/components/ai-bot/ai-elements/loader/LoaderIcon.vue.d.ts +8 -0
  208. package/dist-lib/components/ai-bot/ai-elements/loader/LoaderIcon.vue.d.ts.map +1 -0
  209. package/dist-lib/components/ai-bot/ai-elements/loader/index.d.ts +3 -0
  210. package/dist-lib/components/ai-bot/ai-elements/loader/index.d.ts.map +1 -0
  211. package/dist-lib/components/ai-bot/ai-elements/message/Message.vue.d.ts +19 -0
  212. package/dist-lib/components/ai-bot/ai-elements/message/Message.vue.d.ts.map +1 -0
  213. package/dist-lib/components/ai-bot/ai-elements/message/MessageAction.vue.d.ts +25 -0
  214. package/dist-lib/components/ai-bot/ai-elements/message/MessageAction.vue.d.ts.map +1 -0
  215. package/dist-lib/components/ai-bot/ai-elements/message/MessageActions.vue.d.ts +17 -0
  216. package/dist-lib/components/ai-bot/ai-elements/message/MessageActions.vue.d.ts.map +1 -0
  217. package/dist-lib/components/ai-bot/ai-elements/message/MessageAvatar.vue.d.ts +9 -0
  218. package/dist-lib/components/ai-bot/ai-elements/message/MessageAvatar.vue.d.ts.map +1 -0
  219. package/dist-lib/components/ai-bot/ai-elements/message/MessageBranch.vue.d.ts +24 -0
  220. package/dist-lib/components/ai-bot/ai-elements/message/MessageBranch.vue.d.ts.map +1 -0
  221. package/dist-lib/components/ai-bot/ai-elements/message/MessageBranchContent.vue.d.ts +7 -0
  222. package/dist-lib/components/ai-bot/ai-elements/message/MessageBranchContent.vue.d.ts.map +1 -0
  223. package/dist-lib/components/ai-bot/ai-elements/message/MessageBranchNext.vue.d.ts +13 -0
  224. package/dist-lib/components/ai-bot/ai-elements/message/MessageBranchNext.vue.d.ts.map +1 -0
  225. package/dist-lib/components/ai-bot/ai-elements/message/MessageBranchPage.vue.d.ts +7 -0
  226. package/dist-lib/components/ai-bot/ai-elements/message/MessageBranchPage.vue.d.ts.map +1 -0
  227. package/dist-lib/components/ai-bot/ai-elements/message/MessageBranchPrevious.vue.d.ts +13 -0
  228. package/dist-lib/components/ai-bot/ai-elements/message/MessageBranchPrevious.vue.d.ts.map +1 -0
  229. package/dist-lib/components/ai-bot/ai-elements/message/MessageBranchSelector.vue.d.ts +17 -0
  230. package/dist-lib/components/ai-bot/ai-elements/message/MessageBranchSelector.vue.d.ts.map +1 -0
  231. package/dist-lib/components/ai-bot/ai-elements/message/MessageContent.vue.d.ts +17 -0
  232. package/dist-lib/components/ai-bot/ai-elements/message/MessageContent.vue.d.ts.map +1 -0
  233. package/dist-lib/components/ai-bot/ai-elements/message/MessageResponse.vue.d.ts +9 -0
  234. package/dist-lib/components/ai-bot/ai-elements/message/MessageResponse.vue.d.ts.map +1 -0
  235. package/dist-lib/components/ai-bot/ai-elements/message/MessageToolbar.vue.d.ts +17 -0
  236. package/dist-lib/components/ai-bot/ai-elements/message/MessageToolbar.vue.d.ts.map +1 -0
  237. package/dist-lib/components/ai-bot/ai-elements/message/context.d.ts +12 -0
  238. package/dist-lib/components/ai-bot/ai-elements/message/context.d.ts.map +1 -0
  239. package/dist-lib/components/ai-bot/ai-elements/message/index.d.ts +14 -0
  240. package/dist-lib/components/ai-bot/ai-elements/message/index.d.ts.map +1 -0
  241. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelector.vue.d.ts +13 -0
  242. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelector.vue.d.ts.map +1 -0
  243. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorContent.vue.d.ts +20 -0
  244. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorContent.vue.d.ts.map +1 -0
  245. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorDialog.vue.d.ts +13 -0
  246. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorDialog.vue.d.ts.map +1 -0
  247. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorEmpty.vue.d.ts +13 -0
  248. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorEmpty.vue.d.ts.map +1 -0
  249. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorGroup.vue.d.ts +13 -0
  250. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorGroup.vue.d.ts.map +1 -0
  251. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorInput.vue.d.ts +7 -0
  252. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorInput.vue.d.ts.map +1 -0
  253. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorItem.vue.d.ts +16 -0
  254. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorItem.vue.d.ts.map +1 -0
  255. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorList.vue.d.ts +13 -0
  256. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorList.vue.d.ts.map +1 -0
  257. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorLogo.vue.d.ts +8 -0
  258. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorLogo.vue.d.ts.map +1 -0
  259. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorLogoGroup.vue.d.ts +17 -0
  260. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorLogoGroup.vue.d.ts.map +1 -0
  261. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorName.vue.d.ts +17 -0
  262. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorName.vue.d.ts.map +1 -0
  263. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorSeparator.vue.d.ts +3 -0
  264. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorSeparator.vue.d.ts.map +1 -0
  265. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorShortcut.vue.d.ts +13 -0
  266. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorShortcut.vue.d.ts.map +1 -0
  267. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorTrigger.vue.d.ts +13 -0
  268. package/dist-lib/components/ai-bot/ai-elements/model-selector/ModelSelectorTrigger.vue.d.ts.map +1 -0
  269. package/dist-lib/components/ai-bot/ai-elements/model-selector/index.d.ts +15 -0
  270. package/dist-lib/components/ai-bot/ai-elements/model-selector/index.d.ts.map +1 -0
  271. package/dist-lib/components/ai-bot/ai-elements/queue/Queue.vue.d.ts +17 -0
  272. package/dist-lib/components/ai-bot/ai-elements/queue/Queue.vue.d.ts.map +1 -0
  273. package/dist-lib/components/ai-bot/ai-elements/queue/QueueItem.vue.d.ts +17 -0
  274. package/dist-lib/components/ai-bot/ai-elements/queue/QueueItem.vue.d.ts.map +1 -0
  275. package/dist-lib/components/ai-bot/ai-elements/queue/QueueItemAction.vue.d.ts +17 -0
  276. package/dist-lib/components/ai-bot/ai-elements/queue/QueueItemAction.vue.d.ts.map +1 -0
  277. package/dist-lib/components/ai-bot/ai-elements/queue/QueueItemActions.vue.d.ts +17 -0
  278. package/dist-lib/components/ai-bot/ai-elements/queue/QueueItemActions.vue.d.ts.map +1 -0
  279. package/dist-lib/components/ai-bot/ai-elements/queue/QueueItemAttachment.vue.d.ts +17 -0
  280. package/dist-lib/components/ai-bot/ai-elements/queue/QueueItemAttachment.vue.d.ts.map +1 -0
  281. package/dist-lib/components/ai-bot/ai-elements/queue/QueueItemContent.vue.d.ts +20 -0
  282. package/dist-lib/components/ai-bot/ai-elements/queue/QueueItemContent.vue.d.ts.map +1 -0
  283. package/dist-lib/components/ai-bot/ai-elements/queue/QueueItemDescription.vue.d.ts +20 -0
  284. package/dist-lib/components/ai-bot/ai-elements/queue/QueueItemDescription.vue.d.ts.map +1 -0
  285. package/dist-lib/components/ai-bot/ai-elements/queue/QueueItemFile.vue.d.ts +17 -0
  286. package/dist-lib/components/ai-bot/ai-elements/queue/QueueItemFile.vue.d.ts.map +1 -0
  287. package/dist-lib/components/ai-bot/ai-elements/queue/QueueItemImage.vue.d.ts +7 -0
  288. package/dist-lib/components/ai-bot/ai-elements/queue/QueueItemImage.vue.d.ts.map +1 -0
  289. package/dist-lib/components/ai-bot/ai-elements/queue/QueueItemIndicator.vue.d.ts +10 -0
  290. package/dist-lib/components/ai-bot/ai-elements/queue/QueueItemIndicator.vue.d.ts.map +1 -0
  291. package/dist-lib/components/ai-bot/ai-elements/queue/QueueList.vue.d.ts +17 -0
  292. package/dist-lib/components/ai-bot/ai-elements/queue/QueueList.vue.d.ts.map +1 -0
  293. package/dist-lib/components/ai-bot/ai-elements/queue/QueueSection.vue.d.ts +20 -0
  294. package/dist-lib/components/ai-bot/ai-elements/queue/QueueSection.vue.d.ts.map +1 -0
  295. package/dist-lib/components/ai-bot/ai-elements/queue/QueueSectionContent.vue.d.ts +17 -0
  296. package/dist-lib/components/ai-bot/ai-elements/queue/QueueSectionContent.vue.d.ts.map +1 -0
  297. package/dist-lib/components/ai-bot/ai-elements/queue/QueueSectionLabel.vue.d.ts +19 -0
  298. package/dist-lib/components/ai-bot/ai-elements/queue/QueueSectionLabel.vue.d.ts.map +1 -0
  299. package/dist-lib/components/ai-bot/ai-elements/queue/QueueSectionTrigger.vue.d.ts +17 -0
  300. package/dist-lib/components/ai-bot/ai-elements/queue/QueueSectionTrigger.vue.d.ts.map +1 -0
  301. package/dist-lib/components/ai-bot/ai-elements/queue/index.d.ts +16 -0
  302. package/dist-lib/components/ai-bot/ai-elements/queue/index.d.ts.map +1 -0
  303. package/dist-lib/components/ai-bot/ai-elements/shimmer/Shimmer.vue.d.ts +24 -0
  304. package/dist-lib/components/ai-bot/ai-elements/shimmer/Shimmer.vue.d.ts.map +1 -0
  305. package/dist-lib/components/ai-bot/ai-elements/shimmer/index.d.ts +2 -0
  306. package/dist-lib/components/ai-bot/ai-elements/shimmer/index.d.ts.map +1 -0
  307. package/dist-lib/components/ai-bot/ai-elements/suggestion/Suggestion.vue.d.ts +27 -0
  308. package/dist-lib/components/ai-bot/ai-elements/suggestion/Suggestion.vue.d.ts.map +1 -0
  309. package/dist-lib/components/ai-bot/ai-elements/suggestion/Suggestions.vue.d.ts +17 -0
  310. package/dist-lib/components/ai-bot/ai-elements/suggestion/Suggestions.vue.d.ts.map +1 -0
  311. package/dist-lib/components/ai-bot/ai-elements/suggestion/index.d.ts +3 -0
  312. package/dist-lib/components/ai-bot/ai-elements/suggestion/index.d.ts.map +1 -0
  313. package/dist-lib/components/ai-bot/index.d.ts +8 -0
  314. package/dist-lib/components/ai-bot/index.d.ts.map +1 -0
  315. package/dist-lib/components/ai-bot/lib/input-types.d.ts +54 -0
  316. package/dist-lib/components/ai-bot/lib/input-types.d.ts.map +1 -0
  317. package/dist-lib/components/ai-bot/lib/message-types.d.ts +33 -0
  318. package/dist-lib/components/ai-bot/lib/message-types.d.ts.map +1 -0
  319. package/dist-lib/components/ai-bot/lib/models.d.ts +10 -0
  320. package/dist-lib/components/ai-bot/lib/models.d.ts.map +1 -0
  321. package/dist-lib/components/ai-bot/lib/prompt-input.d.ts +5 -0
  322. package/dist-lib/components/ai-bot/lib/prompt-input.d.ts.map +1 -0
  323. package/dist-lib/components/ai-bot/lib/thread.d.ts +5 -0
  324. package/dist-lib/components/ai-bot/lib/thread.d.ts.map +1 -0
  325. package/dist-lib/components/ai-bot/lib/tool-events.d.ts +11 -0
  326. package/dist-lib/components/ai-bot/lib/tool-events.d.ts.map +1 -0
  327. package/dist-lib/components/ai-bot/lib/utils.d.ts +3 -0
  328. package/dist-lib/components/ai-bot/lib/utils.d.ts.map +1 -0
  329. package/dist-lib/components/ai-bot/ui/avatar/Avatar.vue.d.ts +17 -0
  330. package/dist-lib/components/ai-bot/ui/avatar/Avatar.vue.d.ts.map +1 -0
  331. package/dist-lib/components/ai-bot/ui/avatar/AvatarFallback.vue.d.ts +18 -0
  332. package/dist-lib/components/ai-bot/ui/avatar/AvatarFallback.vue.d.ts.map +1 -0
  333. package/dist-lib/components/ai-bot/ui/avatar/AvatarImage.vue.d.ts +14 -0
  334. package/dist-lib/components/ai-bot/ui/avatar/AvatarImage.vue.d.ts.map +1 -0
  335. package/dist-lib/components/ai-bot/ui/avatar/index.d.ts +4 -0
  336. package/dist-lib/components/ai-bot/ui/avatar/index.d.ts.map +1 -0
  337. package/dist-lib/components/ai-bot/ui/badge/Badge.vue.d.ts +20 -0
  338. package/dist-lib/components/ai-bot/ui/badge/Badge.vue.d.ts.map +1 -0
  339. package/dist-lib/components/ai-bot/ui/badge/index.d.ts +7 -0
  340. package/dist-lib/components/ai-bot/ui/badge/index.d.ts.map +1 -0
  341. package/dist-lib/components/ai-bot/ui/button/Button.vue.d.ts +23 -0
  342. package/dist-lib/components/ai-bot/ui/button/Button.vue.d.ts.map +1 -0
  343. package/dist-lib/components/ai-bot/ui/button/index.d.ts +8 -0
  344. package/dist-lib/components/ai-bot/ui/button/index.d.ts.map +1 -0
  345. package/dist-lib/components/ai-bot/ui/button-group/ButtonGroup.vue.d.ts +19 -0
  346. package/dist-lib/components/ai-bot/ui/button-group/ButtonGroup.vue.d.ts.map +1 -0
  347. package/dist-lib/components/ai-bot/ui/button-group/ButtonGroupSeparator.vue.d.ts +10 -0
  348. package/dist-lib/components/ai-bot/ui/button-group/ButtonGroupSeparator.vue.d.ts.map +1 -0
  349. package/dist-lib/components/ai-bot/ui/button-group/ButtonGroupText.vue.d.ts +22 -0
  350. package/dist-lib/components/ai-bot/ui/button-group/ButtonGroupText.vue.d.ts.map +1 -0
  351. package/dist-lib/components/ai-bot/ui/button-group/index.d.ts +9 -0
  352. package/dist-lib/components/ai-bot/ui/button-group/index.d.ts.map +1 -0
  353. package/dist-lib/components/ai-bot/ui/collapsible/Collapsible.vue.d.ts +20 -0
  354. package/dist-lib/components/ai-bot/ui/collapsible/Collapsible.vue.d.ts.map +1 -0
  355. package/dist-lib/components/ai-bot/ui/collapsible/CollapsibleContent.vue.d.ts +14 -0
  356. package/dist-lib/components/ai-bot/ui/collapsible/CollapsibleContent.vue.d.ts.map +1 -0
  357. package/dist-lib/components/ai-bot/ui/collapsible/CollapsibleTrigger.vue.d.ts +14 -0
  358. package/dist-lib/components/ai-bot/ui/collapsible/CollapsibleTrigger.vue.d.ts.map +1 -0
  359. package/dist-lib/components/ai-bot/ui/collapsible/index.d.ts +4 -0
  360. package/dist-lib/components/ai-bot/ui/collapsible/index.d.ts.map +1 -0
  361. package/dist-lib/components/ai-bot/ui/command/Command.vue.d.ts +36 -0
  362. package/dist-lib/components/ai-bot/ui/command/Command.vue.d.ts.map +1 -0
  363. package/dist-lib/components/ai-bot/ui/command/CommandDialog.vue.d.ts +28 -0
  364. package/dist-lib/components/ai-bot/ui/command/CommandDialog.vue.d.ts.map +1 -0
  365. package/dist-lib/components/ai-bot/ui/command/CommandEmpty.vue.d.ts +18 -0
  366. package/dist-lib/components/ai-bot/ui/command/CommandEmpty.vue.d.ts.map +1 -0
  367. package/dist-lib/components/ai-bot/ui/command/CommandGroup.vue.d.ts +19 -0
  368. package/dist-lib/components/ai-bot/ui/command/CommandGroup.vue.d.ts.map +1 -0
  369. package/dist-lib/components/ai-bot/ui/command/CommandInput.vue.d.ts +8 -0
  370. package/dist-lib/components/ai-bot/ui/command/CommandInput.vue.d.ts.map +1 -0
  371. package/dist-lib/components/ai-bot/ui/command/CommandItem.vue.d.ts +22 -0
  372. package/dist-lib/components/ai-bot/ui/command/CommandItem.vue.d.ts.map +1 -0
  373. package/dist-lib/components/ai-bot/ui/command/CommandList.vue.d.ts +18 -0
  374. package/dist-lib/components/ai-bot/ui/command/CommandList.vue.d.ts.map +1 -0
  375. package/dist-lib/components/ai-bot/ui/command/CommandSeparator.vue.d.ts +18 -0
  376. package/dist-lib/components/ai-bot/ui/command/CommandSeparator.vue.d.ts.map +1 -0
  377. package/dist-lib/components/ai-bot/ui/command/CommandShortcut.vue.d.ts +17 -0
  378. package/dist-lib/components/ai-bot/ui/command/CommandShortcut.vue.d.ts.map +1 -0
  379. package/dist-lib/components/ai-bot/ui/command/index.d.ts +91 -0
  380. package/dist-lib/components/ai-bot/ui/command/index.d.ts.map +1 -0
  381. package/dist-lib/components/ai-bot/ui/dialog/Dialog.vue.d.ts +21 -0
  382. package/dist-lib/components/ai-bot/ui/dialog/Dialog.vue.d.ts.map +1 -0
  383. package/dist-lib/components/ai-bot/ui/dialog/DialogClose.vue.d.ts +14 -0
  384. package/dist-lib/components/ai-bot/ui/dialog/DialogClose.vue.d.ts.map +1 -0
  385. package/dist-lib/components/ai-bot/ui/dialog/DialogContent.vue.d.ts +35 -0
  386. package/dist-lib/components/ai-bot/ui/dialog/DialogContent.vue.d.ts.map +1 -0
  387. package/dist-lib/components/ai-bot/ui/dialog/DialogDescription.vue.d.ts +18 -0
  388. package/dist-lib/components/ai-bot/ui/dialog/DialogDescription.vue.d.ts.map +1 -0
  389. package/dist-lib/components/ai-bot/ui/dialog/DialogFooter.vue.d.ts +20 -0
  390. package/dist-lib/components/ai-bot/ui/dialog/DialogFooter.vue.d.ts.map +1 -0
  391. package/dist-lib/components/ai-bot/ui/dialog/DialogHeader.vue.d.ts +17 -0
  392. package/dist-lib/components/ai-bot/ui/dialog/DialogHeader.vue.d.ts.map +1 -0
  393. package/dist-lib/components/ai-bot/ui/dialog/DialogOverlay.vue.d.ts +18 -0
  394. package/dist-lib/components/ai-bot/ui/dialog/DialogOverlay.vue.d.ts.map +1 -0
  395. package/dist-lib/components/ai-bot/ui/dialog/DialogScrollContent.vue.d.ts +32 -0
  396. package/dist-lib/components/ai-bot/ui/dialog/DialogScrollContent.vue.d.ts.map +1 -0
  397. package/dist-lib/components/ai-bot/ui/dialog/DialogTitle.vue.d.ts +18 -0
  398. package/dist-lib/components/ai-bot/ui/dialog/DialogTitle.vue.d.ts.map +1 -0
  399. package/dist-lib/components/ai-bot/ui/dialog/DialogTrigger.vue.d.ts +14 -0
  400. package/dist-lib/components/ai-bot/ui/dialog/DialogTrigger.vue.d.ts.map +1 -0
  401. package/dist-lib/components/ai-bot/ui/dialog/index.d.ts +11 -0
  402. package/dist-lib/components/ai-bot/ui/dialog/index.d.ts.map +1 -0
  403. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenu.vue.d.ts +20 -0
  404. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenu.vue.d.ts.map +1 -0
  405. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuCheckboxItem.vue.d.ts +26 -0
  406. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuCheckboxItem.vue.d.ts.map +1 -0
  407. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +32 -0
  408. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuContent.vue.d.ts.map +1 -0
  409. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuGroup.vue.d.ts +14 -0
  410. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuGroup.vue.d.ts.map +1 -0
  411. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuItem.vue.d.ts +22 -0
  412. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuItem.vue.d.ts.map +1 -0
  413. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuLabel.vue.d.ts +19 -0
  414. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuLabel.vue.d.ts.map +1 -0
  415. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuRadioGroup.vue.d.ts +18 -0
  416. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuRadioGroup.vue.d.ts.map +1 -0
  417. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuRadioItem.vue.d.ts +24 -0
  418. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuRadioItem.vue.d.ts.map +1 -0
  419. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuSeparator.vue.d.ts +8 -0
  420. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuSeparator.vue.d.ts.map +1 -0
  421. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuShortcut.vue.d.ts +17 -0
  422. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuShortcut.vue.d.ts.map +1 -0
  423. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuSub.vue.d.ts +20 -0
  424. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuSub.vue.d.ts.map +1 -0
  425. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +34 -0
  426. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts.map +1 -0
  427. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuSubTrigger.vue.d.ts +19 -0
  428. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuSubTrigger.vue.d.ts.map +1 -0
  429. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuTrigger.vue.d.ts +14 -0
  430. package/dist-lib/components/ai-bot/ui/dropdown-menu/DropdownMenuTrigger.vue.d.ts.map +1 -0
  431. package/dist-lib/components/ai-bot/ui/dropdown-menu/index.d.ts +16 -0
  432. package/dist-lib/components/ai-bot/ui/dropdown-menu/index.d.ts.map +1 -0
  433. package/dist-lib/components/ai-bot/ui/hover-card/HoverCard.vue.d.ts +20 -0
  434. package/dist-lib/components/ai-bot/ui/hover-card/HoverCard.vue.d.ts.map +1 -0
  435. package/dist-lib/components/ai-bot/ui/hover-card/HoverCardContent.vue.d.ts +20 -0
  436. package/dist-lib/components/ai-bot/ui/hover-card/HoverCardContent.vue.d.ts.map +1 -0
  437. package/dist-lib/components/ai-bot/ui/hover-card/HoverCardTrigger.vue.d.ts +14 -0
  438. package/dist-lib/components/ai-bot/ui/hover-card/HoverCardTrigger.vue.d.ts.map +1 -0
  439. package/dist-lib/components/ai-bot/ui/hover-card/index.d.ts +4 -0
  440. package/dist-lib/components/ai-bot/ui/hover-card/index.d.ts.map +1 -0
  441. package/dist-lib/components/ai-bot/ui/input/Input.vue.d.ts +13 -0
  442. package/dist-lib/components/ai-bot/ui/input/Input.vue.d.ts.map +1 -0
  443. package/dist-lib/components/ai-bot/ui/input/index.d.ts +2 -0
  444. package/dist-lib/components/ai-bot/ui/input/index.d.ts.map +1 -0
  445. package/dist-lib/components/ai-bot/ui/input-group/InputGroup.vue.d.ts +17 -0
  446. package/dist-lib/components/ai-bot/ui/input-group/InputGroup.vue.d.ts.map +1 -0
  447. package/dist-lib/components/ai-bot/ui/input-group/InputGroupAddon.vue.d.ts +21 -0
  448. package/dist-lib/components/ai-bot/ui/input-group/InputGroupAddon.vue.d.ts.map +1 -0
  449. package/dist-lib/components/ai-bot/ui/input-group/InputGroupButton.vue.d.ts +24 -0
  450. package/dist-lib/components/ai-bot/ui/input-group/InputGroupButton.vue.d.ts.map +1 -0
  451. package/dist-lib/components/ai-bot/ui/input-group/InputGroupInput.vue.d.ts +7 -0
  452. package/dist-lib/components/ai-bot/ui/input-group/InputGroupInput.vue.d.ts.map +1 -0
  453. package/dist-lib/components/ai-bot/ui/input-group/InputGroupText.vue.d.ts +17 -0
  454. package/dist-lib/components/ai-bot/ui/input-group/InputGroupText.vue.d.ts.map +1 -0
  455. package/dist-lib/components/ai-bot/ui/input-group/InputGroupTextarea.vue.d.ts +7 -0
  456. package/dist-lib/components/ai-bot/ui/input-group/InputGroupTextarea.vue.d.ts.map +1 -0
  457. package/dist-lib/components/ai-bot/ui/input-group/index.d.ts +16 -0
  458. package/dist-lib/components/ai-bot/ui/input-group/index.d.ts.map +1 -0
  459. package/dist-lib/components/ai-bot/ui/scroll-area/ScrollArea.vue.d.ts +18 -0
  460. package/dist-lib/components/ai-bot/ui/scroll-area/ScrollArea.vue.d.ts.map +1 -0
  461. package/dist-lib/components/ai-bot/ui/scroll-area/ScrollBar.vue.d.ts +10 -0
  462. package/dist-lib/components/ai-bot/ui/scroll-area/ScrollBar.vue.d.ts.map +1 -0
  463. package/dist-lib/components/ai-bot/ui/scroll-area/index.d.ts +3 -0
  464. package/dist-lib/components/ai-bot/ui/scroll-area/index.d.ts.map +1 -0
  465. package/dist-lib/components/ai-bot/ui/select/Select.vue.d.ts +24 -0
  466. package/dist-lib/components/ai-bot/ui/select/Select.vue.d.ts.map +1 -0
  467. package/dist-lib/components/ai-bot/ui/select/SelectContent.vue.d.ts +28 -0
  468. package/dist-lib/components/ai-bot/ui/select/SelectContent.vue.d.ts.map +1 -0
  469. package/dist-lib/components/ai-bot/ui/select/SelectGroup.vue.d.ts +14 -0
  470. package/dist-lib/components/ai-bot/ui/select/SelectGroup.vue.d.ts.map +1 -0
  471. package/dist-lib/components/ai-bot/ui/select/SelectItem.vue.d.ts +20 -0
  472. package/dist-lib/components/ai-bot/ui/select/SelectItem.vue.d.ts.map +1 -0
  473. package/dist-lib/components/ai-bot/ui/select/SelectItemText.vue.d.ts +14 -0
  474. package/dist-lib/components/ai-bot/ui/select/SelectItemText.vue.d.ts.map +1 -0
  475. package/dist-lib/components/ai-bot/ui/select/SelectLabel.vue.d.ts +18 -0
  476. package/dist-lib/components/ai-bot/ui/select/SelectLabel.vue.d.ts.map +1 -0
  477. package/dist-lib/components/ai-bot/ui/select/SelectScrollDownButton.vue.d.ts +18 -0
  478. package/dist-lib/components/ai-bot/ui/select/SelectScrollDownButton.vue.d.ts.map +1 -0
  479. package/dist-lib/components/ai-bot/ui/select/SelectScrollUpButton.vue.d.ts +18 -0
  480. package/dist-lib/components/ai-bot/ui/select/SelectScrollUpButton.vue.d.ts.map +1 -0
  481. package/dist-lib/components/ai-bot/ui/select/SelectSeparator.vue.d.ts +8 -0
  482. package/dist-lib/components/ai-bot/ui/select/SelectSeparator.vue.d.ts.map +1 -0
  483. package/dist-lib/components/ai-bot/ui/select/SelectTrigger.vue.d.ts +21 -0
  484. package/dist-lib/components/ai-bot/ui/select/SelectTrigger.vue.d.ts.map +1 -0
  485. package/dist-lib/components/ai-bot/ui/select/SelectValue.vue.d.ts +14 -0
  486. package/dist-lib/components/ai-bot/ui/select/SelectValue.vue.d.ts.map +1 -0
  487. package/dist-lib/components/ai-bot/ui/select/index.d.ts +12 -0
  488. package/dist-lib/components/ai-bot/ui/select/index.d.ts.map +1 -0
  489. package/dist-lib/components/ai-bot/ui/separator/Separator.vue.d.ts +11 -0
  490. package/dist-lib/components/ai-bot/ui/separator/Separator.vue.d.ts.map +1 -0
  491. package/dist-lib/components/ai-bot/ui/separator/index.d.ts +2 -0
  492. package/dist-lib/components/ai-bot/ui/separator/index.d.ts.map +1 -0
  493. package/dist-lib/components/ai-bot/ui/tabs/Tabs.vue.d.ts +24 -0
  494. package/dist-lib/components/ai-bot/ui/tabs/Tabs.vue.d.ts.map +1 -0
  495. package/dist-lib/components/ai-bot/ui/tabs/TabsContent.vue.d.ts +18 -0
  496. package/dist-lib/components/ai-bot/ui/tabs/TabsContent.vue.d.ts.map +1 -0
  497. package/dist-lib/components/ai-bot/ui/tabs/TabsList.vue.d.ts +18 -0
  498. package/dist-lib/components/ai-bot/ui/tabs/TabsList.vue.d.ts.map +1 -0
  499. package/dist-lib/components/ai-bot/ui/tabs/TabsTrigger.vue.d.ts +18 -0
  500. package/dist-lib/components/ai-bot/ui/tabs/TabsTrigger.vue.d.ts.map +1 -0
  501. package/dist-lib/components/ai-bot/ui/tabs/index.d.ts +5 -0
  502. package/dist-lib/components/ai-bot/ui/tabs/index.d.ts.map +1 -0
  503. package/dist-lib/components/ai-bot/ui/textarea/Textarea.vue.d.ts +13 -0
  504. package/dist-lib/components/ai-bot/ui/textarea/Textarea.vue.d.ts.map +1 -0
  505. package/dist-lib/components/ai-bot/ui/textarea/index.d.ts +2 -0
  506. package/dist-lib/components/ai-bot/ui/textarea/index.d.ts.map +1 -0
  507. package/dist-lib/components/ai-bot/ui/tooltip/Tooltip.vue.d.ts +20 -0
  508. package/dist-lib/components/ai-bot/ui/tooltip/Tooltip.vue.d.ts.map +1 -0
  509. package/dist-lib/components/ai-bot/ui/tooltip/TooltipContent.vue.d.ts +26 -0
  510. package/dist-lib/components/ai-bot/ui/tooltip/TooltipContent.vue.d.ts.map +1 -0
  511. package/dist-lib/components/ai-bot/ui/tooltip/TooltipProvider.vue.d.ts +16 -0
  512. package/dist-lib/components/ai-bot/ui/tooltip/TooltipProvider.vue.d.ts.map +1 -0
  513. package/dist-lib/components/ai-bot/ui/tooltip/TooltipTrigger.vue.d.ts +14 -0
  514. package/dist-lib/components/ai-bot/ui/tooltip/TooltipTrigger.vue.d.ts.map +1 -0
  515. package/dist-lib/components/ai-bot/ui/tooltip/index.d.ts +5 -0
  516. package/dist-lib/components/ai-bot/ui/tooltip/index.d.ts.map +1 -0
  517. package/dist-lib/index.d.ts +3 -0
  518. package/dist-lib/index.d.ts.map +1 -0
  519. package/dist-lib/index.js +6 -0
  520. package/dist-lib/index.js.map +1 -0
  521. package/package.json +60 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mermaid.core-CfwBoKEG.js","sources":["../../node_modules/.pnpm/mermaid@11.12.3/node_modules/mermaid/dist/chunks/mermaid.core/chunk-DR5Q36YT.mjs","../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/dayjs.min.js","../../node_modules/.pnpm/mermaid@11.12.3/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/dompurify@3.3.1/node_modules/dompurify/dist/purify.es.mjs","../../node_modules/.pnpm/mermaid@11.12.3/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.3/node_modules/mermaid/dist/chunks/mermaid.core/chunk-EXTU4WIE.mjs","../../node_modules/.pnpm/mermaid@11.12.3/node_modules/mermaid/dist/chunks/mermaid.core/chunk-MI3HLSF2.mjs","../../node_modules/.pnpm/mermaid@11.12.3/node_modules/mermaid/dist/chunks/mermaid.core/chunk-HN2XXSSU.mjs","../../node_modules/.pnpm/mermaid@11.12.3/node_modules/mermaid/dist/chunks/mermaid.core/chunk-CVBHYZKI.mjs","../../node_modules/.pnpm/mermaid@11.12.3/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ATLVNIR6.mjs","../../node_modules/.pnpm/@braintree+sanitize-url@7.1.2/node_modules/@braintree/sanitize-url/dist/constants.js","../../node_modules/.pnpm/@braintree+sanitize-url@7.1.2/node_modules/@braintree/sanitize-url/dist/index.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_freeGlobal.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_root.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Symbol.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getRawTag.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_objectToString.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseGetTag.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isObject.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isFunction.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_coreJsData.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isMasked.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_toSource.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsNative.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getValue.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getNative.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_nativeCreate.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashClear.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashDelete.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashGet.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashHas.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashSet.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Hash.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheClear.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/eq.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_assocIndexOf.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheDelete.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheGet.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheHas.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheSet.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_ListCache.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Map.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheClear.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isKeyable.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getMapData.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheDelete.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheGet.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheHas.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheSet.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_MapCache.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/memoize.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackClear.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackDelete.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackGet.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackHas.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackSet.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Stack.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_defineProperty.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseAssignValue.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_assignMergeValue.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createBaseFor.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseFor.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneBuffer.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Uint8Array.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneArrayBuffer.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneTypedArray.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_copyArray.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseCreate.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_overArg.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getPrototype.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isPrototype.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_initCloneObject.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isObjectLike.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsArguments.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArguments.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArray.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isLength.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArrayLike.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArrayLikeObject.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/stubFalse.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isBuffer.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isPlainObject.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsTypedArray.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseUnary.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_nodeUtil.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isTypedArray.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_safeGet.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_assignValue.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_copyObject.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseTimes.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isIndex.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayLikeKeys.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_nativeKeysIn.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseKeysIn.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/keysIn.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toPlainObject.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMergeDeep.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMerge.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/identity.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_apply.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_overRest.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/constant.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseSetToString.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_shortOut.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_setToString.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseRest.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isIterateeCall.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createAssigner.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/merge.js","../../node_modules/.pnpm/mermaid@11.12.3/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.3/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.3/node_modules/mermaid/dist/chunks/mermaid.core/chunk-JZLCHNYA.mjs","../../node_modules/.pnpm/mermaid@11.12.3/node_modules/mermaid/dist/chunks/mermaid.core/chunk-QXUST7PY.mjs","../../node_modules/.pnpm/mermaid@11.12.3/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.23/node_modules/lodash-es/_nativeKeys.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseKeys.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_DataView.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Promise.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Set.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_WeakMap.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getTag.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isEmpty.js","../../node_modules/.pnpm/mermaid@11.12.3/node_modules/mermaid/dist/mermaid.core.mjs"],"sourcesContent":["// package.json\nvar package_default = {\n name: \"mermaid\",\n version: \"11.12.3\",\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.23\",\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","/*! @license DOMPurify 3.3.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.1/LICENSE */\n\nconst {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n} = Object;\nlet {\n freeze,\n seal,\n create\n} = Object; // eslint-disable-line import/no-mutable-exports\nlet {\n apply,\n construct\n} = typeof Reflect !== 'undefined' && Reflect;\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\nif (!apply) {\n apply = function apply(func, thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n return func.apply(thisArg, args);\n };\n}\nif (!construct) {\n construct = function construct(Func) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n return new Func(...args);\n };\n}\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySplice = unapply(Array.prototype.splice);\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\nconst regExpTest = unapply(RegExp.prototype.test);\nconst typeErrorCreate = unconstruct(TypeError);\n/**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\nfunction unapply(func) {\n return function (thisArg) {\n if (thisArg instanceof RegExp) {\n thisArg.lastIndex = 0;\n }\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n return apply(func, thisArg, args);\n };\n}\n/**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\nfunction unconstruct(Func) {\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return construct(Func, args);\n };\n}\n/**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\nfunction addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n}\n/**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\nfunction cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n}\n/**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\nfunction clone(object) {\n const newObject = create(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n}\n/**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n}\n\nconst html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'search', 'section', 'select', 'shadow', 'slot', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\nconst svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'enterkeyhint', 'exportparts', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'inputmode', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'part', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\nconst svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nconst svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\nconst mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nconst mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\nconst text = freeze(['#text']);\n\nconst html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'exportparts', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inert', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'part', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\nconst svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'mask-type', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\nconst mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\nconst xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n// eslint-disable-next-line unicorn/better-regex\nconst MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nconst ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nconst TMPLIT_EXPR = seal(/\\$\\{[\\w\\W]*/gm); // eslint-disable-line unicorn/better-regex\nconst DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\nconst ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nconst IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nconst IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nconst ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nconst DOCTYPE_NAME = seal(/^html$/i);\nconst CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\nvar EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ARIA_ATTR: ARIA_ATTR,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT,\n DATA_ATTR: DATA_ATTR,\n DOCTYPE_NAME: DOCTYPE_NAME,\n ERB_EXPR: ERB_EXPR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR\n});\n\n/* eslint-disable @typescript-eslint/indent */\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\nconst NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5,\n // Deprecated\n entityNode: 6,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12 // Deprecated\n};\nconst getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\nconst _createHooksMap = function _createHooksMap() {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n};\nfunction createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n DOMPurify.version = '3.3.1';\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = _createHooksMap();\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n /* Config object to store ADD_TAGS/ADD_ATTR functions (when used as functions) */\n const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {\n tagCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n }\n }));\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n /* Decide if document with <html>... should be returned */\n let WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : clone({});\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : clone({});\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;\n HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (typeof cfg.ADD_TAGS === 'function') {\n EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;\n } else {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n }\n if (cfg.ADD_ATTR) {\n if (typeof cfg.ADD_ATTR === 'function') {\n EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;\n } else {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n if (cfg.ADD_FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.ADD_FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n /**\n * @param element a DOM element whose namespace is being checked\n * @returns Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n /**\n * _forceRemove\n *\n * @param node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, element) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element\n });\n }\n element.removeAttribute(name);\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param dirty - a string of dirty markup\n * @return a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n }\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param root The root element or node to start traversing on.\n * @return The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n /**\n * _isClobbered\n *\n * @param element element to check for clobbering attacks\n * @return true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(element) {\n return element instanceof HTMLFormElement && (typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function');\n };\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param value object to check whether it's a DOM node\n * @return true is object is a DOM node\n */\n const _isNode = function _isNode(value) {\n return typeof Node === 'function' && value instanceof Node;\n };\n function _executeHooks(hooks, currentNode, data) {\n arrayForEach(hooks, hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n }\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n * @param currentNode to check for permission to exist\n * @return true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeElements, currentNode, null);\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeElement, currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w!]/g, currentNode.innerHTML) && regExpTest(/<[/\\w!]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove element if anything forbids its presence */\n if (!(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName])) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeElements, currentNode, null);\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param lcTag Lowercase tag name of containing element.\n * @param lcName Lowercase attribute name.\n * @param value Attribute value.\n * @return Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName, lcTag)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param tagName name of the tag of the node to sanitize\n * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);\n const {\n attributes\n } = currentNode;\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes || _isClobbered(currentNode)) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n forceKeepAttr: undefined\n };\n let l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const {\n name,\n namespaceURI,\n value: attrValue\n } = attr;\n const lcName = transformCaseFunc(name);\n const initValue = attrValue;\n let value = name === 'value' ? initValue : stringTrim(initValue);\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title|textarea)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Make sure we cannot easily use animated hrefs, even if animations are allowed */\n if (lcName === 'attributename' && stringMatch(value, 'href')) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n if (value !== initValue) {\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {\n _removeAttribute(name, currentNode);\n }\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);\n /* Sanitize tags and elements */\n _sanitizeElements(shadowNode);\n /* Check attributes next */\n _sanitizeAttributes(shadowNode);\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);\n };\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n }\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n arrayPush(hooks[entryPoint], hookFunction);\n };\n DOMPurify.removeHook = function (entryPoint, hookFunction) {\n if (hookFunction !== undefined) {\n const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];\n }\n return arrayPop(hooks[entryPoint]);\n };\n DOMPurify.removeHooks = function (entryPoint) {\n hooks[entryPoint] = [];\n };\n DOMPurify.removeAllHooks = function () {\n hooks = _createHooksMap();\n };\n return DOMPurify;\n}\nvar purify = createDOMPurify();\n\nexport { purify as default };\n//# sourceMappingURL=purify.es.mjs.map\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 = sanitizeUrl;\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}\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-DR5Q36YT.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-V2S2FVAM.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-HS3SLOUP.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"],"names":["package_default","t","e","module","this","r","i","u","a","o","c","f","h","d","l","$","y","M","n","m","s","g","D","p","S","_","w","O","b","v","k","__defProp","__name","target","value","__export","all","name","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","type","Channels","data","color","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","entries","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","create","apply","construct","x","func","thisArg","_len","args","_key","Func","_len2","_key2","arrayForEach","unapply","arrayLastIndexOf","arrayPop","arrayPush","arraySplice","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","objectHasOwnProperty","regExpTest","typeErrorCreate","unconstruct","_len3","_key3","_len4","_key4","addToSet","set","array","transformCaseFunc","element","lcElement","cleanArray","index","clone","object","newObject","property","lookupGetter","prop","desc","fallbackValue","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","text","html","svg","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","EXPRESSIONS","NODE_TYPE","getGlobal","_createTrustedTypesPolicy","trustedTypes","purifyHostElement","suffix","ATTR_NAME","policyName","scriptUrl","_createHooksMap","createDOMPurify","window","DOMPurify","root","document","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","Element","NodeFilter","NamedNodeMap","HTMLFormElement","DOMParser","ElementPrototype","cloneNode","remove","getNextSibling","getChildNodes","getParentNode","template","trustedTypesPolicy","emptyHTML","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","hooks","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","FORBID_TAGS","FORBID_ATTR","EXTRA_ELEMENT_HANDLING","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","cfg","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","parent","tagName","parentTagName","_forceRemove","node","_removeAttribute","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","body","_createNodeIterator","_isClobbered","_isNode","_executeHooks","currentNode","hook","_sanitizeElements","content","_isBasicCustomElement","parentNode","childNodes","childCount","childClone","expr","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","attributes","hookEvent","attr","namespaceURI","attrValue","initValue","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","importedNode","returnNode","nodeIterator","serializedHTML","tag","entryPoint","hookFunction","purify","frontMatterRegex","directiveRegex","anyCommentRegex","UnknownDiagramError","_a","message","detectors","detectType","config2","key","detector","registerLazyLoadedDiagrams","diagrams2","id","loader","addDetector","getDiagramLoader","assignWithDepth","dst","src","depth","clobber","assignWithDepth_default","oldAttributeBackgroundColorOdd","oldAttributeBackgroundColorEven","mkBorder","col","darkMode","Theme","adjust2","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","_r","_s","_t","_u","overrides","keys","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","config","keyify","obj","prefix","res","el","configKeys","defaultConfig_default","sanitizeDirective","arg","cssMatchers","cssKey","sanitizeCss","val","str","startCnt","endCnt","defaultConfig","siteConfig","configFromInitialize","directives","currentConfig","updateCurrentConfig","siteCfg","_directives","sumOfDirectives","sanitize","tmpConfigFromInitialize","themeVariables","checkConfig","setSiteConfig","conf","saveConfigFromInitialize","updateSiteConfig","getSiteConfig","setConfig","getConfig","options","addDirective","directive","reset","ConfigWarning","issuedWarnings","issueWarning","warning","getUserDefinedConfig","userConfig","lineBreakRegex","getRows","breakToPlaceholder","setupDompurifyHooksIfNotSetup","setup","setupDompurifyHooks","TEMPORARY_ATTRIBUTE","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","string","substring","prevCount","nextCount","tildeCount","hasStartingTilde","chars","first","last","isMathMLSupported","katexRegex","hasKatex","calculateMathMLDimensions","divElem","renderKatexSanitized","dim","renderKatexUnsanitized","katex","outputMode","line","common_default","d3Attrs","d3Elem","attrs","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","copy","that","xhtml","namespaces","namespace","creatorInherit","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","children","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","bind","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","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","constantNull","selection_insert","before","selection_remove","selection_cloneShallow","selection_cloneDeep","selection_clone","deep","selection_datum","contextListener","listener","event","onRemove","on","onAdd","selection_on","dispatchEvent","params","dispatchConstant","dispatchFunction","selection_dispatch","selection_iterator","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","scale","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","style","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","point","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","isNothing","subject","isObject","toArray","sequence","source","sourceKeys","repeat","count","result","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","delta","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","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","sanitizeUrl_1","sanitizeUrl","constants_1","require$$0","isRelativeUrlWithoutProtocol","decodeHtmlCharacters","removedNullByte","isValidUrl","decodeURI","charsToDecode","decodedUrl","sanitizedUrl","trimmedUrl","urlSchemeParseResults","urlScheme","backSanitized","url_1","freeGlobal","freeSelf","Symbol","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","isOwn","unmasked","objectToString","nullTag","undefinedTag","baseGetTag","asyncTag","funcTag","genTag","proxyTag","isFunction","coreJsData","maskSrcKey","uid","isMasked","funcProto","funcToString","toSource","reRegExpChar","reIsHostCtor","reIsNative","baseIsNative","pattern","getValue","getNative","nativeCreate","hashClear","hashDelete","HASH_UNDEFINED","hashGet","hashHas","hashSet","Hash","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","props","baseFor","freeExports","freeModule","moduleExports","Buffer","allocUnsafe","cloneBuffer","isDeep","Uint8Array","cloneArrayBuffer","arrayBuffer","cloneTypedArray","typedArray","copyArray","objectCreate","baseCreate","proto","overArg","transform","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","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","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","elem","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","dims","fontFamily2","cHeight","textObj","bBox","InitIDGenerator","deterministic","seed","decoder","entityDecode","isDetailedError","insertTitle","cssClass","titleTopMargin","title","bounds","fontSizeNumber","cleanAndMerge","defaultData","utils_default","isLabelCoordinateInPath","encodeEntities","innerTxt","decodeEntities","getEdgeId","counter","handleUndefinedAttr","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","defs","endEnd","mergeDefsAndContent","wrapSVGContent","split","isUnsetKeyword","iconToSVG","customisations","fullIcon","fullCustomisations","box","transformations","hFlip","vFlip","rotation","tempValue","customisationsWidth","customisationsHeight","boxWidth","boxHeight","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","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","__publicField","R","H","ee","te","ne","xe","Z","A","Y","P","B","dedent","templ","indentLengths","pattern_1","endentations","endentation","indentedValue","unknownIcon","iconsStore","loaderStore","registerIconPacks","iconLoaders","iconLoader","getRegisteredIconData","iconName","fallbackPrefix","iconData","isIconAvailable","getIconSVG","extraAttributes","renderData","preprocessMarkdown","markdown","markdownAutoWrap","withoutMultipleNewlines","withoutExtraSpaces","markdownToLines","preprocessedMarkdown","nodes","marked","processNode","parentType","textLine","contentNode","treeNode","markdownToHTML","splitTextToChars","splitWordToFitWidth","checkFit","splitWordToFitWidthRecursion","usedChars","remainingChars","nextChar","rest","newWord","splitLineToFitWidth","splitLineToFitWidthRecursion","newLine","joiner","nextWord","lineWithNextWord","applyStyle","dom","styleFn","addHtmlSpan","classes","addBackground","fo","div","sanitizedLabel","labelClass","bbox","createTspan","textElement","lineIndex","lineHeight","computeWidthOfText","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","minX","minY","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","iconNode","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","allStyle","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","diff","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","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","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","metadata","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","divStyle","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"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,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]}