dominds 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 (273) hide show
  1. package/LICENSE +157 -0
  2. package/README.md +250 -0
  3. package/README.zh.md +161 -0
  4. package/dist/access-control.js +253 -0
  5. package/dist/cli/create.js +263 -0
  6. package/dist/cli/read.js +84 -0
  7. package/dist/cli/tui.js +199 -0
  8. package/dist/cli/webui.js +169 -0
  9. package/dist/cli.js +227 -0
  10. package/dist/dialog-factory.js +53 -0
  11. package/dist/dialog-global-registry.js +68 -0
  12. package/dist/dialog-instance-registry.js +78 -0
  13. package/dist/dialog-run-state.js +198 -0
  14. package/dist/dialog.js +1024 -0
  15. package/dist/evt-registry.js +103 -0
  16. package/dist/index.js +8 -0
  17. package/dist/llm/client.js +69 -0
  18. package/dist/llm/defaults.yaml +386 -0
  19. package/dist/llm/driver.js +3214 -0
  20. package/dist/llm/gen/anthropic.js +611 -0
  21. package/dist/llm/gen/codex.js +375 -0
  22. package/dist/llm/gen/mock.js +326 -0
  23. package/dist/llm/gen/openai.js +470 -0
  24. package/dist/llm/gen/registry.js +26 -0
  25. package/dist/llm/gen.js +2 -0
  26. package/dist/llm/tools-projection.js +37 -0
  27. package/dist/log.js +228 -0
  28. package/dist/mcp/config.js +230 -0
  29. package/dist/mcp/sdk-client.js +129 -0
  30. package/dist/mcp/server-runtime.js +57 -0
  31. package/dist/mcp/stdio-client.js +280 -0
  32. package/dist/mcp/supervisor.js +979 -0
  33. package/dist/mcp/tool-names.js +109 -0
  34. package/dist/minds/builtin/cmdr/persona.md +3 -0
  35. package/dist/minds/builtin/dijiang/knowledge.md +287 -0
  36. package/dist/minds/builtin/dijiang/persona.md +7 -0
  37. package/dist/minds/builtin/fuxi/persona.en.md +59 -0
  38. package/dist/minds/builtin/fuxi/persona.zh.md +49 -0
  39. package/dist/minds/builtin/pangu/persona.en.md +78 -0
  40. package/dist/minds/builtin/pangu/persona.zh.md +71 -0
  41. package/dist/minds/load.js +617 -0
  42. package/dist/minds/minds-i18n.js +131 -0
  43. package/dist/minds/system-prompt.js +281 -0
  44. package/dist/persistence.js +3128 -0
  45. package/dist/problems.js +109 -0
  46. package/dist/server/api-routes.js +1031 -0
  47. package/dist/server/auth.js +180 -0
  48. package/dist/server/mime-types.js +32 -0
  49. package/dist/server/prompts-routes.js +543 -0
  50. package/dist/server/server-core.js +235 -0
  51. package/dist/server/setup-routes.js +697 -0
  52. package/dist/server/static-server.js +132 -0
  53. package/dist/server/websocket-handler.js +1011 -0
  54. package/dist/server.js +164 -0
  55. package/dist/shared/async-fifo-mutex.js +36 -0
  56. package/dist/shared/diligence.js +20 -0
  57. package/dist/shared/dotenv.js +144 -0
  58. package/dist/shared/evt.js +195 -0
  59. package/dist/shared/i18n/driver-messages.js +267 -0
  60. package/dist/shared/i18n/text.js +9 -0
  61. package/dist/shared/i18n/tool-result-messages.js +51 -0
  62. package/dist/shared/rtws-cli.js +73 -0
  63. package/dist/shared/runtime-language.js +47 -0
  64. package/dist/shared/team-mgmt-manual.js +116 -0
  65. package/dist/shared/types/context-health.js +2 -0
  66. package/dist/shared/types/dialog.js +11 -0
  67. package/dist/shared/types/i18n.js +2 -0
  68. package/dist/shared/types/index.js +26 -0
  69. package/dist/shared/types/language.js +40 -0
  70. package/dist/shared/types/problems.js +2 -0
  71. package/dist/shared/types/prompts.js +2 -0
  72. package/dist/shared/types/q4h.js +7 -0
  73. package/dist/shared/types/run-state.js +8 -0
  74. package/dist/shared/types/setup.js +2 -0
  75. package/dist/shared/types/storage.js +10 -0
  76. package/dist/shared/types/tellask.js +8 -0
  77. package/dist/shared/types/tools-registry.js +2 -0
  78. package/dist/shared/types/wire.js +12 -0
  79. package/dist/shared/utils/fmt.js +9 -0
  80. package/dist/shared/utils/html.js +20 -0
  81. package/dist/shared/utils/id.js +18 -0
  82. package/dist/shared/utils/inter-dialog-format.js +101 -0
  83. package/dist/shared/utils/time.js +13 -0
  84. package/dist/static/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  85. package/dist/static/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  86. package/dist/static/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  87. package/dist/static/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  88. package/dist/static/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  89. package/dist/static/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  90. package/dist/static/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  91. package/dist/static/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  92. package/dist/static/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  93. package/dist/static/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  94. package/dist/static/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  95. package/dist/static/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  96. package/dist/static/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  97. package/dist/static/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  98. package/dist/static/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  99. package/dist/static/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  100. package/dist/static/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  101. package/dist/static/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  102. package/dist/static/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  103. package/dist/static/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  104. package/dist/static/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  105. package/dist/static/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  106. package/dist/static/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  107. package/dist/static/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  108. package/dist/static/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  109. package/dist/static/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  110. package/dist/static/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  111. package/dist/static/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  112. package/dist/static/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  113. package/dist/static/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  114. package/dist/static/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  115. package/dist/static/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  116. package/dist/static/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  117. package/dist/static/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  118. package/dist/static/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  119. package/dist/static/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  120. package/dist/static/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  121. package/dist/static/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  122. package/dist/static/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  123. package/dist/static/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  124. package/dist/static/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  125. package/dist/static/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  126. package/dist/static/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  127. package/dist/static/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  128. package/dist/static/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  129. package/dist/static/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  130. package/dist/static/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  131. package/dist/static/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  132. package/dist/static/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  133. package/dist/static/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  134. package/dist/static/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  135. package/dist/static/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  136. package/dist/static/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  137. package/dist/static/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  138. package/dist/static/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  139. package/dist/static/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  140. package/dist/static/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  141. package/dist/static/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  142. package/dist/static/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  143. package/dist/static/assets/_baseUniq-Crfl3d5Y.js +661 -0
  144. package/dist/static/assets/_baseUniq-Crfl3d5Y.js.map +1 -0
  145. package/dist/static/assets/arc-CbA_x9GD.js +132 -0
  146. package/dist/static/assets/arc-CbA_x9GD.js.map +1 -0
  147. package/dist/static/assets/architectureDiagram-VXUJARFQ-lcFS8ZQJ.js +8685 -0
  148. package/dist/static/assets/architectureDiagram-VXUJARFQ-lcFS8ZQJ.js.map +1 -0
  149. package/dist/static/assets/blockDiagram-VD42YOAC-B3Q36qRc.js +3608 -0
  150. package/dist/static/assets/blockDiagram-VD42YOAC-B3Q36qRc.js.map +1 -0
  151. package/dist/static/assets/c4Diagram-YG6GDRKO-Mt-aq3VH.js +2482 -0
  152. package/dist/static/assets/c4Diagram-YG6GDRKO-Mt-aq3VH.js.map +1 -0
  153. package/dist/static/assets/channel-BVr1Yke-.js +8 -0
  154. package/dist/static/assets/channel-BVr1Yke-.js.map +1 -0
  155. package/dist/static/assets/chunk-4BX2VUAB-qCIn5Iic.js +17 -0
  156. package/dist/static/assets/chunk-4BX2VUAB-qCIn5Iic.js.map +1 -0
  157. package/dist/static/assets/chunk-55IACEB6-q172NeCV.js +14 -0
  158. package/dist/static/assets/chunk-55IACEB6-q172NeCV.js.map +1 -0
  159. package/dist/static/assets/chunk-B4BG7PRW-CMJmtYzq.js +1827 -0
  160. package/dist/static/assets/chunk-B4BG7PRW-CMJmtYzq.js.map +1 -0
  161. package/dist/static/assets/chunk-DI55MBZ5-DiuwwZPL.js +1916 -0
  162. package/dist/static/assets/chunk-DI55MBZ5-DiuwwZPL.js.map +1 -0
  163. package/dist/static/assets/chunk-FMBD7UC4-06sqZTTn.js +20 -0
  164. package/dist/static/assets/chunk-FMBD7UC4-06sqZTTn.js.map +1 -0
  165. package/dist/static/assets/chunk-QN33PNHL-CnpBNkpP.js +25 -0
  166. package/dist/static/assets/chunk-QN33PNHL-CnpBNkpP.js.map +1 -0
  167. package/dist/static/assets/chunk-QZHKN3VN-CNgjMR-e.js +18 -0
  168. package/dist/static/assets/chunk-QZHKN3VN-CNgjMR-e.js.map +1 -0
  169. package/dist/static/assets/chunk-TZMSLE5B-BxtzW6--.js +109 -0
  170. package/dist/static/assets/chunk-TZMSLE5B-BxtzW6--.js.map +1 -0
  171. package/dist/static/assets/classDiagram-2ON5EDUG-29huvmn-.js +23 -0
  172. package/dist/static/assets/classDiagram-2ON5EDUG-29huvmn-.js.map +1 -0
  173. package/dist/static/assets/classDiagram-v2-WZHVMYZB-29huvmn-.js +23 -0
  174. package/dist/static/assets/classDiagram-v2-WZHVMYZB-29huvmn-.js.map +1 -0
  175. package/dist/static/assets/clone-D2OgLSSn.js +9 -0
  176. package/dist/static/assets/clone-D2OgLSSn.js.map +1 -0
  177. package/dist/static/assets/cose-bilkent-S5V4N54A-BNegDCxl.js +4943 -0
  178. package/dist/static/assets/cose-bilkent-S5V4N54A-BNegDCxl.js.map +1 -0
  179. package/dist/static/assets/cytoscape.esm-Bm8DJGmZ.js +30240 -0
  180. package/dist/static/assets/cytoscape.esm-Bm8DJGmZ.js.map +1 -0
  181. package/dist/static/assets/dagre-6UL2VRFP-f1XrTRSn.js +695 -0
  182. package/dist/static/assets/dagre-6UL2VRFP-f1XrTRSn.js.map +1 -0
  183. package/dist/static/assets/defaultLocale-DVr69WTU.js +207 -0
  184. package/dist/static/assets/defaultLocale-DVr69WTU.js.map +1 -0
  185. package/dist/static/assets/diagram-PSM6KHXK-8w1WbeDi.js +849 -0
  186. package/dist/static/assets/diagram-PSM6KHXK-8w1WbeDi.js.map +1 -0
  187. package/dist/static/assets/diagram-QEK2KX5R-CF4wtMmR.js +303 -0
  188. package/dist/static/assets/diagram-QEK2KX5R-CF4wtMmR.js.map +1 -0
  189. package/dist/static/assets/diagram-S2PKOQOG-8p3Avgn2.js +213 -0
  190. package/dist/static/assets/diagram-S2PKOQOG-8p3Avgn2.js.map +1 -0
  191. package/dist/static/assets/erDiagram-Q2GNP2WA-BMKLxlM9.js +1159 -0
  192. package/dist/static/assets/erDiagram-Q2GNP2WA-BMKLxlM9.js.map +1 -0
  193. package/dist/static/assets/favicon-Cmg5RbCj.svg +8 -0
  194. package/dist/static/assets/flowDiagram-NV44I4VS-CgEuPNK2.js +2332 -0
  195. package/dist/static/assets/flowDiagram-NV44I4VS-CgEuPNK2.js.map +1 -0
  196. package/dist/static/assets/ganttDiagram-JELNMOA3-bJkDCf-9.js +3681 -0
  197. package/dist/static/assets/ganttDiagram-JELNMOA3-bJkDCf-9.js.map +1 -0
  198. package/dist/static/assets/gitGraphDiagram-NY62KEGX-4QE9kesp.js +1206 -0
  199. package/dist/static/assets/gitGraphDiagram-NY62KEGX-4QE9kesp.js.map +1 -0
  200. package/dist/static/assets/graph-CS0Pmm7c.js +597 -0
  201. package/dist/static/assets/graph-CS0Pmm7c.js.map +1 -0
  202. package/dist/static/assets/index-BS6HnGzC.js +112303 -0
  203. package/dist/static/assets/index-BS6HnGzC.js.map +1 -0
  204. package/dist/static/assets/index-DaIsSzC_.css +483 -0
  205. package/dist/static/assets/infoDiagram-WHAUD3N6-ypBcKfUs.js +34 -0
  206. package/dist/static/assets/infoDiagram-WHAUD3N6-ypBcKfUs.js.map +1 -0
  207. package/dist/static/assets/init-ZxktEp_H.js +17 -0
  208. package/dist/static/assets/init-ZxktEp_H.js.map +1 -0
  209. package/dist/static/assets/journeyDiagram-XKPGCS4Q-QnrxDowJ.js +1255 -0
  210. package/dist/static/assets/journeyDiagram-XKPGCS4Q-QnrxDowJ.js.map +1 -0
  211. package/dist/static/assets/kanban-definition-3W4ZIXB7-CfvEc4z5.js +1048 -0
  212. package/dist/static/assets/kanban-definition-3W4ZIXB7-CfvEc4z5.js.map +1 -0
  213. package/dist/static/assets/layout-8TGxpm23.js +2218 -0
  214. package/dist/static/assets/layout-8TGxpm23.js.map +1 -0
  215. package/dist/static/assets/linear-BATBPQQv.js +341 -0
  216. package/dist/static/assets/linear-BATBPQQv.js.map +1 -0
  217. package/dist/static/assets/min-B3oVH3AC.js +42 -0
  218. package/dist/static/assets/min-B3oVH3AC.js.map +1 -0
  219. package/dist/static/assets/mindmap-definition-VGOIOE7T-L7VLwwF8.js +1127 -0
  220. package/dist/static/assets/mindmap-definition-VGOIOE7T-L7VLwwF8.js.map +1 -0
  221. package/dist/static/assets/ordinal-CxptdPJm.js +77 -0
  222. package/dist/static/assets/ordinal-CxptdPJm.js.map +1 -0
  223. package/dist/static/assets/pieDiagram-ADFJNKIX-CFW3zIhM.js +241 -0
  224. package/dist/static/assets/pieDiagram-ADFJNKIX-CFW3zIhM.js.map +1 -0
  225. package/dist/static/assets/quadrantDiagram-AYHSOK5B-B7ssen3E.js +1338 -0
  226. package/dist/static/assets/quadrantDiagram-AYHSOK5B-B7ssen3E.js.map +1 -0
  227. package/dist/static/assets/requirementDiagram-UZGBJVZJ-D0v5BArv.js +1162 -0
  228. package/dist/static/assets/requirementDiagram-UZGBJVZJ-D0v5BArv.js.map +1 -0
  229. package/dist/static/assets/sankeyDiagram-TZEHDZUN-B7slncJe.js +1195 -0
  230. package/dist/static/assets/sankeyDiagram-TZEHDZUN-B7slncJe.js.map +1 -0
  231. package/dist/static/assets/sequenceDiagram-WL72ISMW-oXU2lRh_.js +3875 -0
  232. package/dist/static/assets/sequenceDiagram-WL72ISMW-oXU2lRh_.js.map +1 -0
  233. package/dist/static/assets/stateDiagram-FKZM4ZOC-CFYsEd0x.js +452 -0
  234. package/dist/static/assets/stateDiagram-FKZM4ZOC-CFYsEd0x.js.map +1 -0
  235. package/dist/static/assets/stateDiagram-v2-4FDKWEC3-C0UWaNA7.js +22 -0
  236. package/dist/static/assets/stateDiagram-v2-4FDKWEC3-C0UWaNA7.js.map +1 -0
  237. package/dist/static/assets/timeline-definition-IT6M3QCI-C3KODUrh.js +1223 -0
  238. package/dist/static/assets/timeline-definition-IT6M3QCI-C3KODUrh.js.map +1 -0
  239. package/dist/static/assets/treemap-KMMF4GRG-DAGDLhj2.js +18753 -0
  240. package/dist/static/assets/treemap-KMMF4GRG-DAGDLhj2.js.map +1 -0
  241. package/dist/static/assets/xychartDiagram-PRI3JC2R-C0J9iwTO.js +1888 -0
  242. package/dist/static/assets/xychartDiagram-PRI3JC2R-C0J9iwTO.js.map +1 -0
  243. package/dist/static/index.html +71 -0
  244. package/dist/static/testing/dom-observation-utils.js +425 -0
  245. package/dist/static/testing/e2e-test-helper.js +3119 -0
  246. package/dist/team.js +1160 -0
  247. package/dist/tellask.js +431 -0
  248. package/dist/tool.js +150 -0
  249. package/dist/tools/apply-patch.js +542 -0
  250. package/dist/tools/builtins.js +196 -0
  251. package/dist/tools/context-health.js +177 -0
  252. package/dist/tools/ctrl.js +478 -0
  253. package/dist/tools/diag.js +583 -0
  254. package/dist/tools/env.js +184 -0
  255. package/dist/tools/fs.js +818 -0
  256. package/dist/tools/mcp.js +138 -0
  257. package/dist/tools/mem.js +349 -0
  258. package/dist/tools/os.js +751 -0
  259. package/dist/tools/prompts/team_mgmt.en.md +70 -0
  260. package/dist/tools/prompts/team_mgmt.zh.md +70 -0
  261. package/dist/tools/prompts/ws_mod.en.md +86 -0
  262. package/dist/tools/prompts/ws_mod.zh.md +87 -0
  263. package/dist/tools/registry-snapshot.js +31 -0
  264. package/dist/tools/registry.js +121 -0
  265. package/dist/tools/ripgrep.js +678 -0
  266. package/dist/tools/team-mgmt.js +3300 -0
  267. package/dist/tools/txt.js +3178 -0
  268. package/dist/utils/id.js +72 -0
  269. package/dist/utils/task-doc.js +236 -0
  270. package/dist/utils/task-package.js +522 -0
  271. package/dist/utils/taskdoc-search.js +280 -0
  272. package/dist/utils/taskdoc.js +400 -0
  273. package/package.json +69 -0
@@ -0,0 +1,1255 @@
1
+ import { a as drawBackgroundRect, g as getNoteRect, f as drawText, d as drawRect } from "./chunk-TZMSLE5B-BxtzW6--.js";
2
+ import { g as getIconStyles } from "./chunk-FMBD7UC4-06sqZTTn.js";
3
+ import { _ as __name, g as getAccDescription, s as setAccDescription, a as getAccTitle, b as setAccTitle, q as getDiagramTitle, p as setDiagramTitle, c as getConfig2, d as select, e as configureSvgSize, y as clear } from "./index-BS6HnGzC.js";
4
+ import { d as d3arc } from "./arc-CbA_x9GD.js";
5
+ var parser = (function() {
6
+ var o = /* @__PURE__ */ __name(function(k, v, o2, l) {
7
+ for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;
8
+ return o2;
9
+ }, "o"), $V0 = [6, 8, 10, 11, 12, 14, 16, 17, 18], $V1 = [1, 9], $V2 = [1, 10], $V3 = [1, 11], $V4 = [1, 12], $V5 = [1, 13], $V6 = [1, 14];
10
+ var parser2 = {
11
+ trace: /* @__PURE__ */ __name(function trace() {
12
+ }, "trace"),
13
+ yy: {},
14
+ symbols_: { "error": 2, "start": 3, "journey": 4, "document": 5, "EOF": 6, "line": 7, "SPACE": 8, "statement": 9, "NEWLINE": 10, "title": 11, "acc_title": 12, "acc_title_value": 13, "acc_descr": 14, "acc_descr_value": 15, "acc_descr_multiline_value": 16, "section": 17, "taskName": 18, "taskData": 19, "$accept": 0, "$end": 1 },
15
+ terminals_: { 2: "error", 4: "journey", 6: "EOF", 8: "SPACE", 10: "NEWLINE", 11: "title", 12: "acc_title", 13: "acc_title_value", 14: "acc_descr", 15: "acc_descr_value", 16: "acc_descr_multiline_value", 17: "section", 18: "taskName", 19: "taskData" },
16
+ productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 2]],
17
+ performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
18
+ var $0 = $$.length - 1;
19
+ switch (yystate) {
20
+ case 1:
21
+ return $$[$0 - 1];
22
+ case 2:
23
+ this.$ = [];
24
+ break;
25
+ case 3:
26
+ $$[$0 - 1].push($$[$0]);
27
+ this.$ = $$[$0 - 1];
28
+ break;
29
+ case 4:
30
+ case 5:
31
+ this.$ = $$[$0];
32
+ break;
33
+ case 6:
34
+ case 7:
35
+ this.$ = [];
36
+ break;
37
+ case 8:
38
+ yy.setDiagramTitle($$[$0].substr(6));
39
+ this.$ = $$[$0].substr(6);
40
+ break;
41
+ case 9:
42
+ this.$ = $$[$0].trim();
43
+ yy.setAccTitle(this.$);
44
+ break;
45
+ case 10:
46
+ case 11:
47
+ this.$ = $$[$0].trim();
48
+ yy.setAccDescription(this.$);
49
+ break;
50
+ case 12:
51
+ yy.addSection($$[$0].substr(8));
52
+ this.$ = $$[$0].substr(8);
53
+ break;
54
+ case 13:
55
+ yy.addTask($$[$0 - 1], $$[$0]);
56
+ this.$ = "task";
57
+ break;
58
+ }
59
+ }, "anonymous"),
60
+ table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: $V6 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 15, 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: $V6 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 8]), { 13: [1, 16] }, { 15: [1, 17] }, o($V0, [2, 11]), o($V0, [2, 12]), { 19: [1, 18] }, o($V0, [2, 4]), o($V0, [2, 9]), o($V0, [2, 10]), o($V0, [2, 13])],
61
+ defaultActions: {},
62
+ parseError: /* @__PURE__ */ __name(function parseError(str, hash) {
63
+ if (hash.recoverable) {
64
+ this.trace(str);
65
+ } else {
66
+ var error = new Error(str);
67
+ error.hash = hash;
68
+ throw error;
69
+ }
70
+ }, "parseError"),
71
+ parse: /* @__PURE__ */ __name(function parse(input) {
72
+ var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
73
+ var args = lstack.slice.call(arguments, 1);
74
+ var lexer2 = Object.create(this.lexer);
75
+ var sharedState = { yy: {} };
76
+ for (var k in this.yy) {
77
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
78
+ sharedState.yy[k] = this.yy[k];
79
+ }
80
+ }
81
+ lexer2.setInput(input, sharedState.yy);
82
+ sharedState.yy.lexer = lexer2;
83
+ sharedState.yy.parser = this;
84
+ if (typeof lexer2.yylloc == "undefined") {
85
+ lexer2.yylloc = {};
86
+ }
87
+ var yyloc = lexer2.yylloc;
88
+ lstack.push(yyloc);
89
+ var ranges = lexer2.options && lexer2.options.ranges;
90
+ if (typeof sharedState.yy.parseError === "function") {
91
+ this.parseError = sharedState.yy.parseError;
92
+ } else {
93
+ this.parseError = Object.getPrototypeOf(this).parseError;
94
+ }
95
+ function popStack(n) {
96
+ stack.length = stack.length - 2 * n;
97
+ vstack.length = vstack.length - n;
98
+ lstack.length = lstack.length - n;
99
+ }
100
+ __name(popStack, "popStack");
101
+ function lex() {
102
+ var token;
103
+ token = tstack.pop() || lexer2.lex() || EOF;
104
+ if (typeof token !== "number") {
105
+ if (token instanceof Array) {
106
+ tstack = token;
107
+ token = tstack.pop();
108
+ }
109
+ token = self.symbols_[token] || token;
110
+ }
111
+ return token;
112
+ }
113
+ __name(lex, "lex");
114
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
115
+ while (true) {
116
+ state = stack[stack.length - 1];
117
+ if (this.defaultActions[state]) {
118
+ action = this.defaultActions[state];
119
+ } else {
120
+ if (symbol === null || typeof symbol == "undefined") {
121
+ symbol = lex();
122
+ }
123
+ action = table[state] && table[state][symbol];
124
+ }
125
+ if (typeof action === "undefined" || !action.length || !action[0]) {
126
+ var errStr = "";
127
+ expected = [];
128
+ for (p in table[state]) {
129
+ if (this.terminals_[p] && p > TERROR) {
130
+ expected.push("'" + this.terminals_[p] + "'");
131
+ }
132
+ }
133
+ if (lexer2.showPosition) {
134
+ errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
135
+ } else {
136
+ errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
137
+ }
138
+ this.parseError(errStr, {
139
+ text: lexer2.match,
140
+ token: this.terminals_[symbol] || symbol,
141
+ line: lexer2.yylineno,
142
+ loc: yyloc,
143
+ expected
144
+ });
145
+ }
146
+ if (action[0] instanceof Array && action.length > 1) {
147
+ throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
148
+ }
149
+ switch (action[0]) {
150
+ case 1:
151
+ stack.push(symbol);
152
+ vstack.push(lexer2.yytext);
153
+ lstack.push(lexer2.yylloc);
154
+ stack.push(action[1]);
155
+ symbol = null;
156
+ {
157
+ yyleng = lexer2.yyleng;
158
+ yytext = lexer2.yytext;
159
+ yylineno = lexer2.yylineno;
160
+ yyloc = lexer2.yylloc;
161
+ }
162
+ break;
163
+ case 2:
164
+ len = this.productions_[action[1]][1];
165
+ yyval.$ = vstack[vstack.length - len];
166
+ yyval._$ = {
167
+ first_line: lstack[lstack.length - (len || 1)].first_line,
168
+ last_line: lstack[lstack.length - 1].last_line,
169
+ first_column: lstack[lstack.length - (len || 1)].first_column,
170
+ last_column: lstack[lstack.length - 1].last_column
171
+ };
172
+ if (ranges) {
173
+ yyval._$.range = [
174
+ lstack[lstack.length - (len || 1)].range[0],
175
+ lstack[lstack.length - 1].range[1]
176
+ ];
177
+ }
178
+ r = this.performAction.apply(yyval, [
179
+ yytext,
180
+ yyleng,
181
+ yylineno,
182
+ sharedState.yy,
183
+ action[1],
184
+ vstack,
185
+ lstack
186
+ ].concat(args));
187
+ if (typeof r !== "undefined") {
188
+ return r;
189
+ }
190
+ if (len) {
191
+ stack = stack.slice(0, -1 * len * 2);
192
+ vstack = vstack.slice(0, -1 * len);
193
+ lstack = lstack.slice(0, -1 * len);
194
+ }
195
+ stack.push(this.productions_[action[1]][0]);
196
+ vstack.push(yyval.$);
197
+ lstack.push(yyval._$);
198
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
199
+ stack.push(newState);
200
+ break;
201
+ case 3:
202
+ return true;
203
+ }
204
+ }
205
+ return true;
206
+ }, "parse")
207
+ };
208
+ var lexer = /* @__PURE__ */ (function() {
209
+ var lexer2 = {
210
+ EOF: 1,
211
+ parseError: /* @__PURE__ */ __name(function parseError(str, hash) {
212
+ if (this.yy.parser) {
213
+ this.yy.parser.parseError(str, hash);
214
+ } else {
215
+ throw new Error(str);
216
+ }
217
+ }, "parseError"),
218
+ // resets the lexer, sets new input
219
+ setInput: /* @__PURE__ */ __name(function(input, yy) {
220
+ this.yy = yy || this.yy || {};
221
+ this._input = input;
222
+ this._more = this._backtrack = this.done = false;
223
+ this.yylineno = this.yyleng = 0;
224
+ this.yytext = this.matched = this.match = "";
225
+ this.conditionStack = ["INITIAL"];
226
+ this.yylloc = {
227
+ first_line: 1,
228
+ first_column: 0,
229
+ last_line: 1,
230
+ last_column: 0
231
+ };
232
+ if (this.options.ranges) {
233
+ this.yylloc.range = [0, 0];
234
+ }
235
+ this.offset = 0;
236
+ return this;
237
+ }, "setInput"),
238
+ // consumes and returns one char from the input
239
+ input: /* @__PURE__ */ __name(function() {
240
+ var ch = this._input[0];
241
+ this.yytext += ch;
242
+ this.yyleng++;
243
+ this.offset++;
244
+ this.match += ch;
245
+ this.matched += ch;
246
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
247
+ if (lines) {
248
+ this.yylineno++;
249
+ this.yylloc.last_line++;
250
+ } else {
251
+ this.yylloc.last_column++;
252
+ }
253
+ if (this.options.ranges) {
254
+ this.yylloc.range[1]++;
255
+ }
256
+ this._input = this._input.slice(1);
257
+ return ch;
258
+ }, "input"),
259
+ // unshifts one char (or a string) into the input
260
+ unput: /* @__PURE__ */ __name(function(ch) {
261
+ var len = ch.length;
262
+ var lines = ch.split(/(?:\r\n?|\n)/g);
263
+ this._input = ch + this._input;
264
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
265
+ this.offset -= len;
266
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
267
+ this.match = this.match.substr(0, this.match.length - 1);
268
+ this.matched = this.matched.substr(0, this.matched.length - 1);
269
+ if (lines.length - 1) {
270
+ this.yylineno -= lines.length - 1;
271
+ }
272
+ var r = this.yylloc.range;
273
+ this.yylloc = {
274
+ first_line: this.yylloc.first_line,
275
+ last_line: this.yylineno + 1,
276
+ first_column: this.yylloc.first_column,
277
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
278
+ };
279
+ if (this.options.ranges) {
280
+ this.yylloc.range = [r[0], r[0] + this.yyleng - len];
281
+ }
282
+ this.yyleng = this.yytext.length;
283
+ return this;
284
+ }, "unput"),
285
+ // When called from action, caches matched text and appends it on next action
286
+ more: /* @__PURE__ */ __name(function() {
287
+ this._more = true;
288
+ return this;
289
+ }, "more"),
290
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
291
+ reject: /* @__PURE__ */ __name(function() {
292
+ if (this.options.backtrack_lexer) {
293
+ this._backtrack = true;
294
+ } else {
295
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
296
+ text: "",
297
+ token: null,
298
+ line: this.yylineno
299
+ });
300
+ }
301
+ return this;
302
+ }, "reject"),
303
+ // retain first n characters of the match
304
+ less: /* @__PURE__ */ __name(function(n) {
305
+ this.unput(this.match.slice(n));
306
+ }, "less"),
307
+ // displays already matched input, i.e. for error messages
308
+ pastInput: /* @__PURE__ */ __name(function() {
309
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
310
+ return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
311
+ }, "pastInput"),
312
+ // displays upcoming input, i.e. for error messages
313
+ upcomingInput: /* @__PURE__ */ __name(function() {
314
+ var next = this.match;
315
+ if (next.length < 20) {
316
+ next += this._input.substr(0, 20 - next.length);
317
+ }
318
+ return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, "");
319
+ }, "upcomingInput"),
320
+ // displays the character position where the lexing error occurred, i.e. for error messages
321
+ showPosition: /* @__PURE__ */ __name(function() {
322
+ var pre = this.pastInput();
323
+ var c = new Array(pre.length + 1).join("-");
324
+ return pre + this.upcomingInput() + "\n" + c + "^";
325
+ }, "showPosition"),
326
+ // test the lexed token: return FALSE when not a match, otherwise return token
327
+ test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {
328
+ var token, lines, backup;
329
+ if (this.options.backtrack_lexer) {
330
+ backup = {
331
+ yylineno: this.yylineno,
332
+ yylloc: {
333
+ first_line: this.yylloc.first_line,
334
+ last_line: this.last_line,
335
+ first_column: this.yylloc.first_column,
336
+ last_column: this.yylloc.last_column
337
+ },
338
+ yytext: this.yytext,
339
+ match: this.match,
340
+ matches: this.matches,
341
+ matched: this.matched,
342
+ yyleng: this.yyleng,
343
+ offset: this.offset,
344
+ _more: this._more,
345
+ _input: this._input,
346
+ yy: this.yy,
347
+ conditionStack: this.conditionStack.slice(0),
348
+ done: this.done
349
+ };
350
+ if (this.options.ranges) {
351
+ backup.yylloc.range = this.yylloc.range.slice(0);
352
+ }
353
+ }
354
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
355
+ if (lines) {
356
+ this.yylineno += lines.length;
357
+ }
358
+ this.yylloc = {
359
+ first_line: this.yylloc.last_line,
360
+ last_line: this.yylineno + 1,
361
+ first_column: this.yylloc.last_column,
362
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
363
+ };
364
+ this.yytext += match[0];
365
+ this.match += match[0];
366
+ this.matches = match;
367
+ this.yyleng = this.yytext.length;
368
+ if (this.options.ranges) {
369
+ this.yylloc.range = [this.offset, this.offset += this.yyleng];
370
+ }
371
+ this._more = false;
372
+ this._backtrack = false;
373
+ this._input = this._input.slice(match[0].length);
374
+ this.matched += match[0];
375
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
376
+ if (this.done && this._input) {
377
+ this.done = false;
378
+ }
379
+ if (token) {
380
+ return token;
381
+ } else if (this._backtrack) {
382
+ for (var k in backup) {
383
+ this[k] = backup[k];
384
+ }
385
+ return false;
386
+ }
387
+ return false;
388
+ }, "test_match"),
389
+ // return next match in input
390
+ next: /* @__PURE__ */ __name(function() {
391
+ if (this.done) {
392
+ return this.EOF;
393
+ }
394
+ if (!this._input) {
395
+ this.done = true;
396
+ }
397
+ var token, match, tempMatch, index;
398
+ if (!this._more) {
399
+ this.yytext = "";
400
+ this.match = "";
401
+ }
402
+ var rules = this._currentRules();
403
+ for (var i = 0; i < rules.length; i++) {
404
+ tempMatch = this._input.match(this.rules[rules[i]]);
405
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
406
+ match = tempMatch;
407
+ index = i;
408
+ if (this.options.backtrack_lexer) {
409
+ token = this.test_match(tempMatch, rules[i]);
410
+ if (token !== false) {
411
+ return token;
412
+ } else if (this._backtrack) {
413
+ match = false;
414
+ continue;
415
+ } else {
416
+ return false;
417
+ }
418
+ } else if (!this.options.flex) {
419
+ break;
420
+ }
421
+ }
422
+ }
423
+ if (match) {
424
+ token = this.test_match(match, rules[index]);
425
+ if (token !== false) {
426
+ return token;
427
+ }
428
+ return false;
429
+ }
430
+ if (this._input === "") {
431
+ return this.EOF;
432
+ } else {
433
+ return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
434
+ text: "",
435
+ token: null,
436
+ line: this.yylineno
437
+ });
438
+ }
439
+ }, "next"),
440
+ // return next match that has a token
441
+ lex: /* @__PURE__ */ __name(function lex() {
442
+ var r = this.next();
443
+ if (r) {
444
+ return r;
445
+ } else {
446
+ return this.lex();
447
+ }
448
+ }, "lex"),
449
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
450
+ begin: /* @__PURE__ */ __name(function begin(condition) {
451
+ this.conditionStack.push(condition);
452
+ }, "begin"),
453
+ // pop the previously active lexer condition state off the condition stack
454
+ popState: /* @__PURE__ */ __name(function popState() {
455
+ var n = this.conditionStack.length - 1;
456
+ if (n > 0) {
457
+ return this.conditionStack.pop();
458
+ } else {
459
+ return this.conditionStack[0];
460
+ }
461
+ }, "popState"),
462
+ // produce the lexer rule set which is active for the currently active lexer condition state
463
+ _currentRules: /* @__PURE__ */ __name(function _currentRules() {
464
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
465
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
466
+ } else {
467
+ return this.conditions["INITIAL"].rules;
468
+ }
469
+ }, "_currentRules"),
470
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
471
+ topState: /* @__PURE__ */ __name(function topState(n) {
472
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
473
+ if (n >= 0) {
474
+ return this.conditionStack[n];
475
+ } else {
476
+ return "INITIAL";
477
+ }
478
+ }, "topState"),
479
+ // alias for begin(condition)
480
+ pushState: /* @__PURE__ */ __name(function pushState(condition) {
481
+ this.begin(condition);
482
+ }, "pushState"),
483
+ // return the number of states currently on the stack
484
+ stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {
485
+ return this.conditionStack.length;
486
+ }, "stateStackSize"),
487
+ options: { "case-insensitive": true },
488
+ performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
489
+ switch ($avoiding_name_collisions) {
490
+ case 0:
491
+ break;
492
+ case 1:
493
+ break;
494
+ case 2:
495
+ return 10;
496
+ case 3:
497
+ break;
498
+ case 4:
499
+ break;
500
+ case 5:
501
+ return 4;
502
+ case 6:
503
+ return 11;
504
+ case 7:
505
+ this.begin("acc_title");
506
+ return 12;
507
+ case 8:
508
+ this.popState();
509
+ return "acc_title_value";
510
+ case 9:
511
+ this.begin("acc_descr");
512
+ return 14;
513
+ case 10:
514
+ this.popState();
515
+ return "acc_descr_value";
516
+ case 11:
517
+ this.begin("acc_descr_multiline");
518
+ break;
519
+ case 12:
520
+ this.popState();
521
+ break;
522
+ case 13:
523
+ return "acc_descr_multiline_value";
524
+ case 14:
525
+ return 17;
526
+ case 15:
527
+ return 18;
528
+ case 16:
529
+ return 19;
530
+ case 17:
531
+ return ":";
532
+ case 18:
533
+ return 6;
534
+ case 19:
535
+ return "INVALID";
536
+ }
537
+ }, "anonymous"),
538
+ rules: [/^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:journey\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i],
539
+ conditions: { "acc_descr_multiline": { "rules": [12, 13], "inclusive": false }, "acc_descr": { "rules": [10], "inclusive": false }, "acc_title": { "rules": [8], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18, 19], "inclusive": true } }
540
+ };
541
+ return lexer2;
542
+ })();
543
+ parser2.lexer = lexer;
544
+ function Parser() {
545
+ this.yy = {};
546
+ }
547
+ __name(Parser, "Parser");
548
+ Parser.prototype = parser2;
549
+ parser2.Parser = Parser;
550
+ return new Parser();
551
+ })();
552
+ parser.parser = parser;
553
+ var journey_default = parser;
554
+ var currentSection = "";
555
+ var sections = [];
556
+ var tasks = [];
557
+ var rawTasks = [];
558
+ var clear2 = /* @__PURE__ */ __name(function() {
559
+ sections.length = 0;
560
+ tasks.length = 0;
561
+ currentSection = "";
562
+ rawTasks.length = 0;
563
+ clear();
564
+ }, "clear");
565
+ var addSection = /* @__PURE__ */ __name(function(txt) {
566
+ currentSection = txt;
567
+ sections.push(txt);
568
+ }, "addSection");
569
+ var getSections = /* @__PURE__ */ __name(function() {
570
+ return sections;
571
+ }, "getSections");
572
+ var getTasks = /* @__PURE__ */ __name(function() {
573
+ let allItemsProcessed = compileTasks();
574
+ const maxDepth = 100;
575
+ let iterationCount = 0;
576
+ while (!allItemsProcessed && iterationCount < maxDepth) {
577
+ allItemsProcessed = compileTasks();
578
+ iterationCount++;
579
+ }
580
+ tasks.push(...rawTasks);
581
+ return tasks;
582
+ }, "getTasks");
583
+ var updateActors = /* @__PURE__ */ __name(function() {
584
+ const tempActors = [];
585
+ tasks.forEach((task) => {
586
+ if (task.people) {
587
+ tempActors.push(...task.people);
588
+ }
589
+ });
590
+ const unique = new Set(tempActors);
591
+ return [...unique].sort();
592
+ }, "updateActors");
593
+ var addTask = /* @__PURE__ */ __name(function(descr, taskData) {
594
+ const pieces = taskData.substr(1).split(":");
595
+ let score = 0;
596
+ let peeps = [];
597
+ if (pieces.length === 1) {
598
+ score = Number(pieces[0]);
599
+ peeps = [];
600
+ } else {
601
+ score = Number(pieces[0]);
602
+ peeps = pieces[1].split(",");
603
+ }
604
+ const peopleList = peeps.map((s) => s.trim());
605
+ const rawTask = {
606
+ section: currentSection,
607
+ type: currentSection,
608
+ people: peopleList,
609
+ task: descr,
610
+ score
611
+ };
612
+ rawTasks.push(rawTask);
613
+ }, "addTask");
614
+ var addTaskOrg = /* @__PURE__ */ __name(function(descr) {
615
+ const newTask = {
616
+ section: currentSection,
617
+ type: currentSection,
618
+ description: descr,
619
+ task: descr,
620
+ classes: []
621
+ };
622
+ tasks.push(newTask);
623
+ }, "addTaskOrg");
624
+ var compileTasks = /* @__PURE__ */ __name(function() {
625
+ const compileTask = /* @__PURE__ */ __name(function(pos) {
626
+ return rawTasks[pos].processed;
627
+ }, "compileTask");
628
+ let allProcessed = true;
629
+ for (const [i, rawTask] of rawTasks.entries()) {
630
+ compileTask(i);
631
+ allProcessed = allProcessed && rawTask.processed;
632
+ }
633
+ return allProcessed;
634
+ }, "compileTasks");
635
+ var getActors = /* @__PURE__ */ __name(function() {
636
+ return updateActors();
637
+ }, "getActors");
638
+ var journeyDb_default = {
639
+ getConfig: /* @__PURE__ */ __name(() => getConfig2().journey, "getConfig"),
640
+ clear: clear2,
641
+ setDiagramTitle,
642
+ getDiagramTitle,
643
+ setAccTitle,
644
+ getAccTitle,
645
+ setAccDescription,
646
+ getAccDescription,
647
+ addSection,
648
+ getSections,
649
+ getTasks,
650
+ addTask,
651
+ addTaskOrg,
652
+ getActors
653
+ };
654
+ var getStyles = /* @__PURE__ */ __name((options) => `.label {
655
+ font-family: ${options.fontFamily};
656
+ color: ${options.textColor};
657
+ }
658
+ .mouth {
659
+ stroke: #666;
660
+ }
661
+
662
+ line {
663
+ stroke: ${options.textColor}
664
+ }
665
+
666
+ .legend {
667
+ fill: ${options.textColor};
668
+ font-family: ${options.fontFamily};
669
+ }
670
+
671
+ .label text {
672
+ fill: #333;
673
+ }
674
+ .label {
675
+ color: ${options.textColor}
676
+ }
677
+
678
+ .face {
679
+ ${options.faceColor ? `fill: ${options.faceColor}` : "fill: #FFF8DC"};
680
+ stroke: #999;
681
+ }
682
+
683
+ .node rect,
684
+ .node circle,
685
+ .node ellipse,
686
+ .node polygon,
687
+ .node path {
688
+ fill: ${options.mainBkg};
689
+ stroke: ${options.nodeBorder};
690
+ stroke-width: 1px;
691
+ }
692
+
693
+ .node .label {
694
+ text-align: center;
695
+ }
696
+ .node.clickable {
697
+ cursor: pointer;
698
+ }
699
+
700
+ .arrowheadPath {
701
+ fill: ${options.arrowheadColor};
702
+ }
703
+
704
+ .edgePath .path {
705
+ stroke: ${options.lineColor};
706
+ stroke-width: 1.5px;
707
+ }
708
+
709
+ .flowchart-link {
710
+ stroke: ${options.lineColor};
711
+ fill: none;
712
+ }
713
+
714
+ .edgeLabel {
715
+ background-color: ${options.edgeLabelBackground};
716
+ rect {
717
+ opacity: 0.5;
718
+ }
719
+ text-align: center;
720
+ }
721
+
722
+ .cluster rect {
723
+ }
724
+
725
+ .cluster text {
726
+ fill: ${options.titleColor};
727
+ }
728
+
729
+ div.mermaidTooltip {
730
+ position: absolute;
731
+ text-align: center;
732
+ max-width: 200px;
733
+ padding: 2px;
734
+ font-family: ${options.fontFamily};
735
+ font-size: 12px;
736
+ background: ${options.tertiaryColor};
737
+ border: 1px solid ${options.border2};
738
+ border-radius: 2px;
739
+ pointer-events: none;
740
+ z-index: 100;
741
+ }
742
+
743
+ .task-type-0, .section-type-0 {
744
+ ${options.fillType0 ? `fill: ${options.fillType0}` : ""};
745
+ }
746
+ .task-type-1, .section-type-1 {
747
+ ${options.fillType0 ? `fill: ${options.fillType1}` : ""};
748
+ }
749
+ .task-type-2, .section-type-2 {
750
+ ${options.fillType0 ? `fill: ${options.fillType2}` : ""};
751
+ }
752
+ .task-type-3, .section-type-3 {
753
+ ${options.fillType0 ? `fill: ${options.fillType3}` : ""};
754
+ }
755
+ .task-type-4, .section-type-4 {
756
+ ${options.fillType0 ? `fill: ${options.fillType4}` : ""};
757
+ }
758
+ .task-type-5, .section-type-5 {
759
+ ${options.fillType0 ? `fill: ${options.fillType5}` : ""};
760
+ }
761
+ .task-type-6, .section-type-6 {
762
+ ${options.fillType0 ? `fill: ${options.fillType6}` : ""};
763
+ }
764
+ .task-type-7, .section-type-7 {
765
+ ${options.fillType0 ? `fill: ${options.fillType7}` : ""};
766
+ }
767
+
768
+ .actor-0 {
769
+ ${options.actor0 ? `fill: ${options.actor0}` : ""};
770
+ }
771
+ .actor-1 {
772
+ ${options.actor1 ? `fill: ${options.actor1}` : ""};
773
+ }
774
+ .actor-2 {
775
+ ${options.actor2 ? `fill: ${options.actor2}` : ""};
776
+ }
777
+ .actor-3 {
778
+ ${options.actor3 ? `fill: ${options.actor3}` : ""};
779
+ }
780
+ .actor-4 {
781
+ ${options.actor4 ? `fill: ${options.actor4}` : ""};
782
+ }
783
+ .actor-5 {
784
+ ${options.actor5 ? `fill: ${options.actor5}` : ""};
785
+ }
786
+ ${getIconStyles()}
787
+ `, "getStyles");
788
+ var styles_default = getStyles;
789
+ var drawRect2 = /* @__PURE__ */ __name(function(elem, rectData) {
790
+ return drawRect(elem, rectData);
791
+ }, "drawRect");
792
+ var drawFace = /* @__PURE__ */ __name(function(element, faceData) {
793
+ const radius = 15;
794
+ const circleElement = element.append("circle").attr("cx", faceData.cx).attr("cy", faceData.cy).attr("class", "face").attr("r", radius).attr("stroke-width", 2).attr("overflow", "visible");
795
+ const face = element.append("g");
796
+ face.append("circle").attr("cx", faceData.cx - radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
797
+ face.append("circle").attr("cx", faceData.cx + radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
798
+ function smile(face2) {
799
+ const arc = d3arc().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);
800
+ face2.append("path").attr("class", "mouth").attr("d", arc).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 2) + ")");
801
+ }
802
+ __name(smile, "smile");
803
+ function sad(face2) {
804
+ const arc = d3arc().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);
805
+ face2.append("path").attr("class", "mouth").attr("d", arc).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 7) + ")");
806
+ }
807
+ __name(sad, "sad");
808
+ function ambivalent(face2) {
809
+ face2.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", faceData.cx - 5).attr("y1", faceData.cy + 7).attr("x2", faceData.cx + 5).attr("y2", faceData.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666");
810
+ }
811
+ __name(ambivalent, "ambivalent");
812
+ if (faceData.score > 3) {
813
+ smile(face);
814
+ } else if (faceData.score < 3) {
815
+ sad(face);
816
+ } else {
817
+ ambivalent(face);
818
+ }
819
+ return circleElement;
820
+ }, "drawFace");
821
+ var drawCircle = /* @__PURE__ */ __name(function(element, circleData) {
822
+ const circleElement = element.append("circle");
823
+ circleElement.attr("cx", circleData.cx);
824
+ circleElement.attr("cy", circleData.cy);
825
+ circleElement.attr("class", "actor-" + circleData.pos);
826
+ circleElement.attr("fill", circleData.fill);
827
+ circleElement.attr("stroke", circleData.stroke);
828
+ circleElement.attr("r", circleData.r);
829
+ if (circleElement.class !== void 0) {
830
+ circleElement.attr("class", circleElement.class);
831
+ }
832
+ if (circleData.title !== void 0) {
833
+ circleElement.append("title").text(circleData.title);
834
+ }
835
+ return circleElement;
836
+ }, "drawCircle");
837
+ var drawText2 = /* @__PURE__ */ __name(function(elem, textData) {
838
+ return drawText(elem, textData);
839
+ }, "drawText");
840
+ var drawLabel = /* @__PURE__ */ __name(function(elem, txtObject) {
841
+ function genPoints(x, y, width, height, cut) {
842
+ return x + "," + y + " " + (x + width) + "," + y + " " + (x + width) + "," + (y + height - cut) + " " + (x + width - cut * 1.2) + "," + (y + height) + " " + x + "," + (y + height);
843
+ }
844
+ __name(genPoints, "genPoints");
845
+ const polygon = elem.append("polygon");
846
+ polygon.attr("points", genPoints(txtObject.x, txtObject.y, 50, 20, 7));
847
+ polygon.attr("class", "labelBox");
848
+ txtObject.y = txtObject.y + txtObject.labelMargin;
849
+ txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;
850
+ drawText2(elem, txtObject);
851
+ }, "drawLabel");
852
+ var drawSection = /* @__PURE__ */ __name(function(elem, section, conf2) {
853
+ const g = elem.append("g");
854
+ const rect = getNoteRect();
855
+ rect.x = section.x;
856
+ rect.y = section.y;
857
+ rect.fill = section.fill;
858
+ rect.width = conf2.width * section.taskCount + // width of the tasks
859
+ conf2.diagramMarginX * (section.taskCount - 1);
860
+ rect.height = conf2.height;
861
+ rect.class = "journey-section section-type-" + section.num;
862
+ rect.rx = 3;
863
+ rect.ry = 3;
864
+ drawRect2(g, rect);
865
+ _drawTextCandidateFunc(conf2)(
866
+ section.text,
867
+ g,
868
+ rect.x,
869
+ rect.y,
870
+ rect.width,
871
+ rect.height,
872
+ { class: "journey-section section-type-" + section.num },
873
+ conf2,
874
+ section.colour
875
+ );
876
+ }, "drawSection");
877
+ var taskCount = -1;
878
+ var drawTask = /* @__PURE__ */ __name(function(elem, task, conf2) {
879
+ const center = task.x + conf2.width / 2;
880
+ const g = elem.append("g");
881
+ taskCount++;
882
+ const maxHeight = 300 + 5 * 30;
883
+ g.append("line").attr("id", "task" + taskCount).attr("x1", center).attr("y1", task.y).attr("x2", center).attr("y2", maxHeight).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666");
884
+ drawFace(g, {
885
+ cx: center,
886
+ cy: 300 + (5 - task.score) * 30,
887
+ score: task.score
888
+ });
889
+ const rect = getNoteRect();
890
+ rect.x = task.x;
891
+ rect.y = task.y;
892
+ rect.fill = task.fill;
893
+ rect.width = conf2.width;
894
+ rect.height = conf2.height;
895
+ rect.class = "task task-type-" + task.num;
896
+ rect.rx = 3;
897
+ rect.ry = 3;
898
+ drawRect2(g, rect);
899
+ let xPos = task.x + 14;
900
+ task.people.forEach((person) => {
901
+ const colour = task.actors[person].color;
902
+ const circle = {
903
+ cx: xPos,
904
+ cy: task.y,
905
+ r: 7,
906
+ fill: colour,
907
+ stroke: "#000",
908
+ title: person,
909
+ pos: task.actors[person].position
910
+ };
911
+ drawCircle(g, circle);
912
+ xPos += 10;
913
+ });
914
+ _drawTextCandidateFunc(conf2)(
915
+ task.task,
916
+ g,
917
+ rect.x,
918
+ rect.y,
919
+ rect.width,
920
+ rect.height,
921
+ { class: "task" },
922
+ conf2,
923
+ task.colour
924
+ );
925
+ }, "drawTask");
926
+ var drawBackgroundRect2 = /* @__PURE__ */ __name(function(elem, bounds2) {
927
+ drawBackgroundRect(elem, bounds2);
928
+ }, "drawBackgroundRect");
929
+ var _drawTextCandidateFunc = /* @__PURE__ */ (function() {
930
+ function byText(content, g, x, y, width, height, textAttrs, colour) {
931
+ const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("font-color", colour).style("text-anchor", "middle").text(content);
932
+ _setTextAttrs(text, textAttrs);
933
+ }
934
+ __name(byText, "byText");
935
+ function byTspan(content, g, x, y, width, height, textAttrs, conf2, colour) {
936
+ const { taskFontSize, taskFontFamily } = conf2;
937
+ const lines = content.split(/<br\s*\/?>/gi);
938
+ for (let i = 0; i < lines.length; i++) {
939
+ const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2;
940
+ const text = g.append("text").attr("x", x + width / 2).attr("y", y).attr("fill", colour).style("text-anchor", "middle").style("font-size", taskFontSize).style("font-family", taskFontFamily);
941
+ text.append("tspan").attr("x", x + width / 2).attr("dy", dy).text(lines[i]);
942
+ text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central");
943
+ _setTextAttrs(text, textAttrs);
944
+ }
945
+ }
946
+ __name(byTspan, "byTspan");
947
+ function byFo(content, g, x, y, width, height, textAttrs, conf2) {
948
+ const body = g.append("switch");
949
+ const f = body.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height).attr("position", "fixed");
950
+ const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
951
+ text.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content);
952
+ byTspan(content, body, x, y, width, height, textAttrs, conf2);
953
+ _setTextAttrs(text, textAttrs);
954
+ }
955
+ __name(byFo, "byFo");
956
+ function _setTextAttrs(toText, fromTextAttrsDict) {
957
+ for (const key in fromTextAttrsDict) {
958
+ if (key in fromTextAttrsDict) {
959
+ toText.attr(key, fromTextAttrsDict[key]);
960
+ }
961
+ }
962
+ }
963
+ __name(_setTextAttrs, "_setTextAttrs");
964
+ return function(conf2) {
965
+ return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan;
966
+ };
967
+ })();
968
+ var initGraphics = /* @__PURE__ */ __name(function(graphics) {
969
+ graphics.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 5).attr("refY", 2).attr("markerWidth", 6).attr("markerHeight", 4).attr("orient", "auto").append("path").attr("d", "M 0,0 V 4 L6,2 Z");
970
+ }, "initGraphics");
971
+ var svgDraw_default = {
972
+ drawRect: drawRect2,
973
+ drawCircle,
974
+ drawSection,
975
+ drawText: drawText2,
976
+ drawLabel,
977
+ drawTask,
978
+ drawBackgroundRect: drawBackgroundRect2,
979
+ initGraphics
980
+ };
981
+ var setConf = /* @__PURE__ */ __name(function(cnf) {
982
+ const keys = Object.keys(cnf);
983
+ keys.forEach(function(key) {
984
+ conf[key] = cnf[key];
985
+ });
986
+ }, "setConf");
987
+ var actors = {};
988
+ var maxWidth = 0;
989
+ function drawActorLegend(diagram2) {
990
+ const conf2 = getConfig2().journey;
991
+ const maxLabelWidth = conf2.maxLabelWidth;
992
+ maxWidth = 0;
993
+ let yPos = 60;
994
+ Object.keys(actors).forEach((person) => {
995
+ const colour = actors[person].color;
996
+ const circleData = {
997
+ cx: 20,
998
+ cy: yPos,
999
+ r: 7,
1000
+ fill: colour,
1001
+ stroke: "#000",
1002
+ pos: actors[person].position
1003
+ };
1004
+ svgDraw_default.drawCircle(diagram2, circleData);
1005
+ let measureText = diagram2.append("text").attr("visibility", "hidden").text(person);
1006
+ const fullTextWidth = measureText.node().getBoundingClientRect().width;
1007
+ measureText.remove();
1008
+ let lines = [];
1009
+ if (fullTextWidth <= maxLabelWidth) {
1010
+ lines = [person];
1011
+ } else {
1012
+ const words = person.split(" ");
1013
+ let currentLine = "";
1014
+ measureText = diagram2.append("text").attr("visibility", "hidden");
1015
+ words.forEach((word) => {
1016
+ const testLine = currentLine ? `${currentLine} ${word}` : word;
1017
+ measureText.text(testLine);
1018
+ const textWidth = measureText.node().getBoundingClientRect().width;
1019
+ if (textWidth > maxLabelWidth) {
1020
+ if (currentLine) {
1021
+ lines.push(currentLine);
1022
+ }
1023
+ currentLine = word;
1024
+ measureText.text(word);
1025
+ if (measureText.node().getBoundingClientRect().width > maxLabelWidth) {
1026
+ let brokenWord = "";
1027
+ for (const char of word) {
1028
+ brokenWord += char;
1029
+ measureText.text(brokenWord + "-");
1030
+ if (measureText.node().getBoundingClientRect().width > maxLabelWidth) {
1031
+ lines.push(brokenWord.slice(0, -1) + "-");
1032
+ brokenWord = char;
1033
+ }
1034
+ }
1035
+ currentLine = brokenWord;
1036
+ }
1037
+ } else {
1038
+ currentLine = testLine;
1039
+ }
1040
+ });
1041
+ if (currentLine) {
1042
+ lines.push(currentLine);
1043
+ }
1044
+ measureText.remove();
1045
+ }
1046
+ lines.forEach((line, index) => {
1047
+ const labelData = {
1048
+ x: 40,
1049
+ y: yPos + 7 + index * 20,
1050
+ fill: "#666",
1051
+ text: line,
1052
+ textMargin: conf2.boxTextMargin ?? 5
1053
+ };
1054
+ const textElement = svgDraw_default.drawText(diagram2, labelData);
1055
+ const lineWidth = textElement.node().getBoundingClientRect().width;
1056
+ if (lineWidth > maxWidth && lineWidth > conf2.leftMargin - lineWidth) {
1057
+ maxWidth = lineWidth;
1058
+ }
1059
+ });
1060
+ yPos += Math.max(20, lines.length * 20);
1061
+ });
1062
+ }
1063
+ __name(drawActorLegend, "drawActorLegend");
1064
+ var conf = getConfig2().journey;
1065
+ var leftMargin = 0;
1066
+ var draw = /* @__PURE__ */ __name(function(text, id, version, diagObj) {
1067
+ const configObject = getConfig2();
1068
+ const titleColor = configObject.journey.titleColor;
1069
+ const titleFontSize = configObject.journey.titleFontSize;
1070
+ const titleFontFamily = configObject.journey.titleFontFamily;
1071
+ const securityLevel = configObject.securityLevel;
1072
+ let sandboxElement;
1073
+ if (securityLevel === "sandbox") {
1074
+ sandboxElement = select("#i" + id);
1075
+ }
1076
+ const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
1077
+ bounds.init();
1078
+ const diagram2 = root.select("#" + id);
1079
+ svgDraw_default.initGraphics(diagram2);
1080
+ const tasks2 = diagObj.db.getTasks();
1081
+ const title = diagObj.db.getDiagramTitle();
1082
+ const actorNames = diagObj.db.getActors();
1083
+ for (const member in actors) {
1084
+ delete actors[member];
1085
+ }
1086
+ let actorPos = 0;
1087
+ actorNames.forEach((actorName) => {
1088
+ actors[actorName] = {
1089
+ color: conf.actorColours[actorPos % conf.actorColours.length],
1090
+ position: actorPos
1091
+ };
1092
+ actorPos++;
1093
+ });
1094
+ drawActorLegend(diagram2);
1095
+ leftMargin = conf.leftMargin + maxWidth;
1096
+ bounds.insert(0, 0, leftMargin, Object.keys(actors).length * 50);
1097
+ drawTasks(diagram2, tasks2, 0);
1098
+ const box = bounds.getBounds();
1099
+ if (title) {
1100
+ diagram2.append("text").text(title).attr("x", leftMargin).attr("font-size", titleFontSize).attr("font-weight", "bold").attr("y", 25).attr("fill", titleColor).attr("font-family", titleFontFamily);
1101
+ }
1102
+ const height = box.stopy - box.starty + 2 * conf.diagramMarginY;
1103
+ const width = leftMargin + box.stopx + 2 * conf.diagramMarginX;
1104
+ configureSvgSize(diagram2, height, width, conf.useMaxWidth);
1105
+ diagram2.append("line").attr("x1", leftMargin).attr("y1", conf.height * 4).attr("x2", width - leftMargin - 4).attr("y2", conf.height * 4).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)");
1106
+ const extraVertForTitle = title ? 70 : 0;
1107
+ diagram2.attr("viewBox", `${box.startx} -25 ${width} ${height + extraVertForTitle}`);
1108
+ diagram2.attr("preserveAspectRatio", "xMinYMin meet");
1109
+ diagram2.attr("height", height + extraVertForTitle + 25);
1110
+ }, "draw");
1111
+ var bounds = {
1112
+ data: {
1113
+ startx: void 0,
1114
+ stopx: void 0,
1115
+ starty: void 0,
1116
+ stopy: void 0
1117
+ },
1118
+ verticalPos: 0,
1119
+ sequenceItems: [],
1120
+ init: /* @__PURE__ */ __name(function() {
1121
+ this.sequenceItems = [];
1122
+ this.data = {
1123
+ startx: void 0,
1124
+ stopx: void 0,
1125
+ starty: void 0,
1126
+ stopy: void 0
1127
+ };
1128
+ this.verticalPos = 0;
1129
+ }, "init"),
1130
+ updateVal: /* @__PURE__ */ __name(function(obj, key, val, fun) {
1131
+ if (obj[key] === void 0) {
1132
+ obj[key] = val;
1133
+ } else {
1134
+ obj[key] = fun(val, obj[key]);
1135
+ }
1136
+ }, "updateVal"),
1137
+ updateBounds: /* @__PURE__ */ __name(function(startx, starty, stopx, stopy) {
1138
+ const conf2 = getConfig2().journey;
1139
+ const _self = this;
1140
+ let cnt = 0;
1141
+ function updateFn(type) {
1142
+ return /* @__PURE__ */ __name(function updateItemBounds(item) {
1143
+ cnt++;
1144
+ const n = _self.sequenceItems.length - cnt + 1;
1145
+ _self.updateVal(item, "starty", starty - n * conf2.boxMargin, Math.min);
1146
+ _self.updateVal(item, "stopy", stopy + n * conf2.boxMargin, Math.max);
1147
+ _self.updateVal(bounds.data, "startx", startx - n * conf2.boxMargin, Math.min);
1148
+ _self.updateVal(bounds.data, "stopx", stopx + n * conf2.boxMargin, Math.max);
1149
+ if (!(type === "activation")) {
1150
+ _self.updateVal(item, "startx", startx - n * conf2.boxMargin, Math.min);
1151
+ _self.updateVal(item, "stopx", stopx + n * conf2.boxMargin, Math.max);
1152
+ _self.updateVal(bounds.data, "starty", starty - n * conf2.boxMargin, Math.min);
1153
+ _self.updateVal(bounds.data, "stopy", stopy + n * conf2.boxMargin, Math.max);
1154
+ }
1155
+ }, "updateItemBounds");
1156
+ }
1157
+ __name(updateFn, "updateFn");
1158
+ this.sequenceItems.forEach(updateFn());
1159
+ }, "updateBounds"),
1160
+ insert: /* @__PURE__ */ __name(function(startx, starty, stopx, stopy) {
1161
+ const _startx = Math.min(startx, stopx);
1162
+ const _stopx = Math.max(startx, stopx);
1163
+ const _starty = Math.min(starty, stopy);
1164
+ const _stopy = Math.max(starty, stopy);
1165
+ this.updateVal(bounds.data, "startx", _startx, Math.min);
1166
+ this.updateVal(bounds.data, "starty", _starty, Math.min);
1167
+ this.updateVal(bounds.data, "stopx", _stopx, Math.max);
1168
+ this.updateVal(bounds.data, "stopy", _stopy, Math.max);
1169
+ this.updateBounds(_startx, _starty, _stopx, _stopy);
1170
+ }, "insert"),
1171
+ bumpVerticalPos: /* @__PURE__ */ __name(function(bump) {
1172
+ this.verticalPos = this.verticalPos + bump;
1173
+ this.data.stopy = this.verticalPos;
1174
+ }, "bumpVerticalPos"),
1175
+ getVerticalPos: /* @__PURE__ */ __name(function() {
1176
+ return this.verticalPos;
1177
+ }, "getVerticalPos"),
1178
+ getBounds: /* @__PURE__ */ __name(function() {
1179
+ return this.data;
1180
+ }, "getBounds")
1181
+ };
1182
+ var fills = conf.sectionFills;
1183
+ var textColours = conf.sectionColours;
1184
+ var drawTasks = /* @__PURE__ */ __name(function(diagram2, tasks2, verticalPos) {
1185
+ const conf2 = getConfig2().journey;
1186
+ let lastSection = "";
1187
+ const sectionVHeight = conf2.height * 2 + conf2.diagramMarginY;
1188
+ const taskPos = verticalPos + sectionVHeight;
1189
+ let sectionNumber = 0;
1190
+ let fill = "#CCC";
1191
+ let colour = "black";
1192
+ let num = 0;
1193
+ for (const [i, task] of tasks2.entries()) {
1194
+ if (lastSection !== task.section) {
1195
+ fill = fills[sectionNumber % fills.length];
1196
+ num = sectionNumber % fills.length;
1197
+ colour = textColours[sectionNumber % textColours.length];
1198
+ let taskInSectionCount = 0;
1199
+ const currentSection2 = task.section;
1200
+ for (let taskIndex = i; taskIndex < tasks2.length; taskIndex++) {
1201
+ if (tasks2[taskIndex].section == currentSection2) {
1202
+ taskInSectionCount = taskInSectionCount + 1;
1203
+ } else {
1204
+ break;
1205
+ }
1206
+ }
1207
+ const section = {
1208
+ x: i * conf2.taskMargin + i * conf2.width + leftMargin,
1209
+ y: 50,
1210
+ text: task.section,
1211
+ fill,
1212
+ num,
1213
+ colour,
1214
+ taskCount: taskInSectionCount
1215
+ };
1216
+ svgDraw_default.drawSection(diagram2, section, conf2);
1217
+ lastSection = task.section;
1218
+ sectionNumber++;
1219
+ }
1220
+ const taskActors = task.people.reduce((acc, actorName) => {
1221
+ if (actors[actorName]) {
1222
+ acc[actorName] = actors[actorName];
1223
+ }
1224
+ return acc;
1225
+ }, {});
1226
+ task.x = i * conf2.taskMargin + i * conf2.width + leftMargin;
1227
+ task.y = taskPos;
1228
+ task.width = conf2.diagramMarginX;
1229
+ task.height = conf2.diagramMarginY;
1230
+ task.colour = colour;
1231
+ task.fill = fill;
1232
+ task.num = num;
1233
+ task.actors = taskActors;
1234
+ svgDraw_default.drawTask(diagram2, task, conf2);
1235
+ bounds.insert(task.x, task.y, task.x + task.width + conf2.taskMargin, 300 + 5 * 30);
1236
+ }
1237
+ }, "drawTasks");
1238
+ var journeyRenderer_default = {
1239
+ setConf,
1240
+ draw
1241
+ };
1242
+ var diagram = {
1243
+ parser: journey_default,
1244
+ db: journeyDb_default,
1245
+ renderer: journeyRenderer_default,
1246
+ styles: styles_default,
1247
+ init: /* @__PURE__ */ __name((cnf) => {
1248
+ journeyRenderer_default.setConf(cnf.journey);
1249
+ journeyDb_default.clear();
1250
+ }, "init")
1251
+ };
1252
+ export {
1253
+ diagram
1254
+ };
1255
+ //# sourceMappingURL=journeyDiagram-XKPGCS4Q-QnrxDowJ.js.map