9remote 2.5.5 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (597) hide show
  1. package/README.md +91 -172
  2. package/dist/assets/trayIcon.ico +0 -0
  3. package/dist/cli.cjs +102 -101
  4. package/dist/ptyDaemon.cjs +10 -9
  5. package/dist/server.cjs +307 -138
  6. package/dist/ui/agents/codex.svg +1 -1
  7. package/dist/ui/assets/index-CAvf0VPf.css +1 -0
  8. package/dist/ui/assets/index-EXcI2V_p.js +8 -0
  9. package/dist/ui/favicon.ico +0 -0
  10. package/dist/ui/index.html +12 -4
  11. package/dist/vendor/scrcpy-server-v3.1 +0 -0
  12. package/dist/web/404.html +1 -0
  13. package/dist/web/__next.__PAGE__.txt +9 -0
  14. package/dist/web/__next._full.txt +25 -0
  15. package/dist/web/__next._head.txt +6 -0
  16. package/dist/web/__next._index.txt +10 -0
  17. package/dist/web/__next._tree.txt +5 -0
  18. package/dist/web/_next/static/AUHtJgkYALYyNwHop9pgT/_buildManifest.js +1 -0
  19. package/dist/web/_next/static/AUHtJgkYALYyNwHop9pgT/_ssgManifest.js +1 -0
  20. package/dist/web/_next/static/chunks/0a7753a9.4cb02a98e2e453b9.js +1 -0
  21. package/dist/web/_next/static/chunks/1222.aa4f7f7f397533e9.js +1 -0
  22. package/dist/web/_next/static/chunks/1228.d291278320bca9ca.js +1 -0
  23. package/dist/web/_next/static/chunks/1243.f35c2e6494079e05.js +1 -0
  24. package/dist/web/_next/static/chunks/1311.8c6b8930e22ceea0.js +1 -0
  25. package/dist/web/_next/static/chunks/132.6032826021079bce.js +1 -0
  26. package/dist/web/_next/static/chunks/133.1106654a28b5afda.js +1 -0
  27. package/dist/web/_next/static/chunks/1385.086b560acb0d7a68.js +115 -0
  28. package/dist/web/_next/static/chunks/1642.cac26d30ac331cb4.js +1 -0
  29. package/dist/web/_next/static/chunks/1733.f06c240b3ef8a428.js +77 -0
  30. package/dist/web/_next/static/chunks/1750.f7ba3332b56a8e68.js +1 -0
  31. package/dist/web/_next/static/chunks/1763.28beedca593b5e19.js +138 -0
  32. package/dist/web/_next/static/chunks/179.b9e8f385bd414d1c.js +62 -0
  33. package/dist/web/_next/static/chunks/1838.7c8990f903e3524a.js +215 -0
  34. package/dist/web/_next/static/chunks/20154aaa.868648f838e03bf1.js +1 -0
  35. package/dist/web/_next/static/chunks/2038.640b672702093b24.js +1 -0
  36. package/dist/web/_next/static/chunks/2112.d72eefbdf81659b3.js +23 -0
  37. package/dist/web/_next/static/chunks/2125.61c6e4a3541e30ad.js +1 -0
  38. package/dist/web/_next/static/chunks/2129.61afb2f4ff59e46a.js +24 -0
  39. package/dist/web/_next/static/chunks/213.68ce1361aee3281a.js +1 -0
  40. package/dist/web/_next/static/chunks/2179.3f55be0b79e3cca7.js +1 -0
  41. package/dist/web/_next/static/chunks/2180.e6bad8186f52ff89.js +1 -0
  42. package/dist/web/_next/static/chunks/2264.0fc1474d26067a01.js +1 -0
  43. package/dist/web/_next/static/chunks/2376.ed6302a91a9de1ae.js +36 -0
  44. package/dist/web/_next/static/chunks/2545.3ff192a933baf11e.js +1 -0
  45. package/dist/web/_next/static/chunks/2620.d17f4fac0eec88a5.js +1 -0
  46. package/dist/web/_next/static/chunks/2847.d3124853ca727b78.js +1 -0
  47. package/dist/web/_next/static/chunks/2849.f2bcad51c68e44b5.js +1 -0
  48. package/dist/web/_next/static/chunks/3189.64c6546d621eec0b.js +1 -0
  49. package/dist/web/_next/static/chunks/3348-9ef29f9cedf6c0df.js +1 -0
  50. package/dist/web/_next/static/chunks/3429.436b229808b33e81.js +1 -0
  51. package/dist/web/_next/static/chunks/3514.9643e815d690f2fb.js +1 -0
  52. package/dist/web/_next/static/chunks/3552.8dd9a3d2c3bcef65.js +86 -0
  53. package/dist/web/_next/static/chunks/3606.b59e695fd05b4eb3.js +74 -0
  54. package/dist/web/_next/static/chunks/3692.8c6b8930e22ceea0.js +1 -0
  55. package/dist/web/_next/static/chunks/3736.4a5662ceeecc6acb.js +94 -0
  56. package/dist/web/_next/static/chunks/392.842b338137824bb8.js +1 -0
  57. package/dist/web/_next/static/chunks/3973-9b18bcd9afc0bcb4.js +1 -0
  58. package/dist/web/_next/static/chunks/3977.8cfd8dec4cb8e893.js +1 -0
  59. package/dist/web/_next/static/chunks/4090.441fa61655da9b38.js +1 -0
  60. package/dist/web/_next/static/chunks/4303.54c4aa0b89834fc6.js +1 -0
  61. package/dist/web/_next/static/chunks/4314.6bbd89507909cad1.js +1 -0
  62. package/dist/web/_next/static/chunks/4551.d0d6723cacfb90b9.js +226 -0
  63. package/dist/web/_next/static/chunks/4566.d8e009823b8647d1.js +90 -0
  64. package/dist/web/_next/static/chunks/4643.dbb152682d076617.js +1 -0
  65. package/dist/web/_next/static/chunks/4732-76a574510722b2c3.js +11 -0
  66. package/dist/web/_next/static/chunks/4924.3f5c77a103ac69a9.js +8 -0
  67. package/dist/web/_next/static/chunks/4930.42e564644c94a93b.js +1 -0
  68. package/dist/web/_next/static/chunks/5155.d7e8db52ab4c95e0.js +27 -0
  69. package/dist/web/_next/static/chunks/5158-267908d069475cdc.js +32 -0
  70. package/dist/web/_next/static/chunks/543.5636e97aa68eb9c8.js +41 -0
  71. package/dist/web/_next/static/chunks/5506.98304a1821200439.js +1 -0
  72. package/dist/web/_next/static/chunks/5622.5ead5e748ecedbd1.js +1 -0
  73. package/dist/web/_next/static/chunks/565f33a6-fd3410bd29f39fdf.js +1 -0
  74. package/dist/web/_next/static/chunks/5708.22b4531ceebf3eca.js +1 -0
  75. package/dist/web/_next/static/chunks/5804.ff72a927135eb74c.js +93 -0
  76. package/dist/web/_next/static/chunks/588.78e2528ff24df85c.js +287 -0
  77. package/dist/web/_next/static/chunks/6001.e5bcb28bb9ce6571.js +1 -0
  78. package/dist/web/_next/static/chunks/6075.a6b8434732056526.js +1 -0
  79. package/dist/web/_next/static/chunks/6180.82fa683aa16f21df.js +1 -0
  80. package/dist/web/_next/static/chunks/6274.a3795ca6dacb3d62.js +32 -0
  81. package/dist/web/_next/static/chunks/635-d6ae421935055337.js +1 -0
  82. package/dist/web/_next/static/chunks/6419.842467d9a877e770.js +1 -0
  83. package/dist/web/_next/static/chunks/6420.bfa7bc86d03dcefc.js +1 -0
  84. package/dist/web/_next/static/chunks/6552-145e634541b5b66c.js +1 -0
  85. package/dist/web/_next/static/chunks/6647.740ec32a32201eab.js +64 -0
  86. package/dist/web/_next/static/chunks/6730.88fc6f2ccc49496c.js +1 -0
  87. package/dist/web/_next/static/chunks/6739.82570eba0a02cb26.js +1 -0
  88. package/dist/web/_next/static/chunks/674.2b5ffad0676aedbe.js +1 -0
  89. package/dist/web/_next/static/chunks/6742.8e137138a5d1c9e1.js +1 -0
  90. package/dist/web/_next/static/chunks/6987.743a63813c6288ce.js +79 -0
  91. package/dist/web/_next/static/chunks/7202.dad90ce4a1d78f67.js +1 -0
  92. package/dist/web/_next/static/chunks/7233.0f252f6c1cce8058.js +1 -0
  93. package/dist/web/_next/static/chunks/7248.d89bf328a0dc1b4c.js +1 -0
  94. package/dist/web/_next/static/chunks/7263.6f224c3924155294.js +1 -0
  95. package/dist/web/_next/static/chunks/7341.6958eac888a96823.js +34 -0
  96. package/dist/web/_next/static/chunks/7424.c8c9f85c8ea65885.js +1 -0
  97. package/dist/web/_next/static/chunks/7507.1204ae29f46e3f01.js +1 -0
  98. package/dist/web/_next/static/chunks/7629-16de8d4154923623.js +1 -0
  99. package/dist/web/_next/static/chunks/7811.19082afa63eb73ba.js +1 -0
  100. package/dist/web/_next/static/chunks/7853.d01982fa0afc1ee2.js +24 -0
  101. package/dist/web/_next/static/chunks/7908.432ab9feeb9ae756.js +1 -0
  102. package/dist/web/_next/static/chunks/7960.3b1c77b882ba4bb1.js +1 -0
  103. package/dist/web/_next/static/chunks/7967.6c62be01fad1603c.js +1 -0
  104. package/dist/web/_next/static/chunks/7c89255b.f727562586fa21cc.js +153 -0
  105. package/dist/web/_next/static/chunks/8044.5f87392585c9f3e4.js +38 -0
  106. package/dist/web/_next/static/chunks/8054.feeb01b8acdb31d4.js +1 -0
  107. package/dist/web/_next/static/chunks/8115.68d46fb961c724e0.js +172 -0
  108. package/dist/web/_next/static/chunks/817.cd0f4d221eca4c8b.js +104 -0
  109. package/dist/web/_next/static/chunks/8334-0e9493cfa1547244.js +1 -0
  110. package/dist/web/_next/static/chunks/8467.f34d938a32d40325.js +1 -0
  111. package/dist/web/_next/static/chunks/8495.d6cea1be03635fa8.js +148 -0
  112. package/dist/web/_next/static/chunks/8516-b3694c9156666b12.js +152 -0
  113. package/dist/web/_next/static/chunks/8638.03c6480d4aaeb5b3.js +1 -0
  114. package/dist/web/_next/static/chunks/8716.1ad6febb58e8560e.js +1 -0
  115. package/dist/web/_next/static/chunks/8839.1ad64faf06fb4a33.js +1 -0
  116. package/dist/web/_next/static/chunks/8922-a9cee4a104876005.js +1 -0
  117. package/dist/web/_next/static/chunks/910.43be9c3be85c7fa0.js +21 -0
  118. package/dist/web/_next/static/chunks/925.7ef504ee39f11840.js +1 -0
  119. package/dist/web/_next/static/chunks/9259.f4337cbb56e2e0b6.js +1 -0
  120. package/dist/web/_next/static/chunks/9299.af2a95f6ece07482.js +1 -0
  121. package/dist/web/_next/static/chunks/9387.96263a2d1602a078.js +1 -0
  122. package/dist/web/_next/static/chunks/9568-0bfadca4fcb105aa.js +1 -0
  123. package/dist/web/_next/static/chunks/9641.f6f2982fc4b4735f.js +1 -0
  124. package/dist/web/_next/static/chunks/9675.be4a175f92aa2f26.js +1 -0
  125. package/dist/web/_next/static/chunks/9860.05fa134ae44699e0.js +1 -0
  126. package/dist/web/_next/static/chunks/9b87412a.d2cfae4121762dec.js +122 -0
  127. package/dist/web/_next/static/chunks/a012e9f0.7dbb2fe05ec0b816.js +82 -0
  128. package/dist/web/_next/static/chunks/a096f98a-5a93977f5f5de413.js +1 -0
  129. package/dist/web/_next/static/chunks/ab1da478.d051e56375dab6d8.js +1 -0
  130. package/dist/web/_next/static/chunks/adcd17ec-9a2791632136b67b.js +18 -0
  131. package/dist/web/_next/static/chunks/app/_global-error/page-5bd6526483106080.js +1 -0
  132. package/dist/web/_next/static/chunks/app/_not-found/page-877523282abd5a7c.js +1 -0
  133. package/dist/web/_next/static/chunks/app/admin/admins/page-0f20b93a1fbe900c.js +1 -0
  134. package/dist/web/_next/static/chunks/app/admin/login/page-dbcfb21ebbd0bb00.js +1 -0
  135. package/dist/web/_next/static/chunks/app/admin/modes/page-8f292692166b56fc.js +1 -0
  136. package/dist/web/_next/static/chunks/app/admin/ota/page-c9fe76f24ac08288.js +1 -0
  137. package/dist/web/_next/static/chunks/app/admin/page-622381f5dac39ddb.js +1 -0
  138. package/dist/web/_next/static/chunks/app/admin/turn/page-8f6b835a319f3fe3.js +1 -0
  139. package/dist/web/_next/static/chunks/app/dev/question/page-5fd80ae293617365.js +1 -0
  140. package/dist/web/_next/static/chunks/app/layout-341400810c81f67e.js +1 -0
  141. package/dist/web/_next/static/chunks/app/login/page-31786ee656da76b1.js +1 -0
  142. package/dist/web/_next/static/chunks/app/page-1cf39061b48db156.js +22 -0
  143. package/dist/web/_next/static/chunks/app/workspace/browse/page-5bd6526483106080.js +1 -0
  144. package/dist/web/_next/static/chunks/app/workspace/editor/page-5bd6526483106080.js +1 -0
  145. package/dist/web/_next/static/chunks/app/workspace/files/page-5bd6526483106080.js +1 -0
  146. package/dist/web/_next/static/chunks/app/workspace/git/page-5bd6526483106080.js +1 -0
  147. package/dist/web/_next/static/chunks/app/workspace/layout-5e8f95fbc4ebaa6b.js +14 -0
  148. package/dist/web/_next/static/chunks/app/workspace/mobile/page-5bd6526483106080.js +1 -0
  149. package/dist/web/_next/static/chunks/app/workspace/page-5bd6526483106080.js +1 -0
  150. package/dist/web/_next/static/chunks/app/workspace/remote/page-5bd6526483106080.js +1 -0
  151. package/dist/web/_next/static/chunks/app/workspace/terminal/[sessionId]/page-5bd6526483106080.js +1 -0
  152. package/dist/web/_next/static/chunks/app/workspace/workspaces/page-5bd6526483106080.js +1 -0
  153. package/dist/web/_next/static/chunks/bbfbfb6c.069db3c4cc981ed3.js +1 -0
  154. package/dist/web/_next/static/chunks/c7879cf7-0d16fce1674078f9.js +1 -0
  155. package/dist/web/_next/static/chunks/c7ea4e13.6153499d4c2fb1f2.js +1 -0
  156. package/dist/web/_next/static/chunks/cdcce140.7a440644c3dd52b8.js +1 -0
  157. package/dist/web/_next/static/chunks/da9a53d6.df25e193f1f5bcae.js +62 -0
  158. package/dist/web/_next/static/chunks/framework-42053c69543a55f9.js +1 -0
  159. package/dist/web/_next/static/chunks/main-255c95c36766ce86.js +5 -0
  160. package/dist/web/_next/static/chunks/main-app-1831d4f902c3fcb9.js +1 -0
  161. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/app-error-5bd6526483106080.js +1 -0
  162. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/forbidden-5bd6526483106080.js +1 -0
  163. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/global-error-76800531999827bd.js +1 -0
  164. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/not-found-5bd6526483106080.js +1 -0
  165. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/unauthorized-5bd6526483106080.js +1 -0
  166. package/dist/web/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  167. package/dist/web/_next/static/chunks/webpack-c971919003362f96.js +1 -0
  168. package/dist/web/_next/static/css/56adcd4d72bf2d84.css +1 -0
  169. package/dist/web/_next/static/css/5c40e58137a11306.css +1 -0
  170. package/dist/web/_next/static/css/b496025c9cd768cc.css +1 -0
  171. package/dist/web/_next/static/media/013b72fa676f92e0-s.woff2 +0 -0
  172. package/dist/web/_next/static/media/22a5144ee8d83bca-s.p.woff2 +0 -0
  173. package/dist/web/_next/static/media/2b5b02fc7e511755-s.woff2 +0 -0
  174. package/dist/web/_next/static/media/65f03d54ccadf4a8-s.woff2 +0 -0
  175. package/dist/web/_next/static/media/7d4881bb7e1bf84d-s.p.woff2 +0 -0
  176. package/dist/web/_next/static/media/9766a7e9e2e0ad5a-s.woff2 +0 -0
  177. package/dist/web/_next/static/media/aa016aab0e6d1295-s.woff2 +0 -0
  178. package/dist/web/_next/static/media/b66cf8e69499582a-s.woff2 +0 -0
  179. package/dist/web/_next/static/media/b9408752a0c24fb9-s.woff2 +0 -0
  180. package/dist/web/_next/static/media/e038a29029a234f2-s.woff2 +0 -0
  181. package/dist/web/_next/static/media/f639721981034f88-s.woff2 +0 -0
  182. package/dist/web/_not-found/__next._full.txt +23 -0
  183. package/dist/web/_not-found/__next._head.txt +6 -0
  184. package/dist/web/_not-found/__next._index.txt +10 -0
  185. package/dist/web/_not-found/__next._not-found.__PAGE__.txt +5 -0
  186. package/dist/web/_not-found/__next._not-found.txt +5 -0
  187. package/dist/web/_not-found/__next._tree.txt +5 -0
  188. package/dist/web/_not-found.html +1 -0
  189. package/dist/web/_not-found.txt +23 -0
  190. package/dist/web/admin/__next._full.txt +27 -0
  191. package/dist/web/admin/__next._head.txt +6 -0
  192. package/dist/web/admin/__next._index.txt +10 -0
  193. package/dist/web/admin/__next._tree.txt +5 -0
  194. package/dist/web/admin/__next.admin.__PAGE__.txt +9 -0
  195. package/dist/web/admin/__next.admin.txt +5 -0
  196. package/dist/web/admin/admins/__next._full.txt +27 -0
  197. package/dist/web/admin/admins/__next._head.txt +6 -0
  198. package/dist/web/admin/admins/__next._index.txt +10 -0
  199. package/dist/web/admin/admins/__next._tree.txt +5 -0
  200. package/dist/web/admin/admins/__next.admin.admins.__PAGE__.txt +9 -0
  201. package/dist/web/admin/admins/__next.admin.admins.txt +5 -0
  202. package/dist/web/admin/admins/__next.admin.txt +5 -0
  203. package/dist/web/admin/admins.html +1 -0
  204. package/dist/web/admin/admins.txt +27 -0
  205. package/dist/web/admin/login/__next._full.txt +27 -0
  206. package/dist/web/admin/login/__next._head.txt +6 -0
  207. package/dist/web/admin/login/__next._index.txt +10 -0
  208. package/dist/web/admin/login/__next._tree.txt +5 -0
  209. package/dist/web/admin/login/__next.admin.login.__PAGE__.txt +9 -0
  210. package/dist/web/admin/login/__next.admin.login.txt +5 -0
  211. package/dist/web/admin/login/__next.admin.txt +5 -0
  212. package/dist/web/admin/login.html +1 -0
  213. package/dist/web/admin/login.txt +27 -0
  214. package/dist/web/admin/modes/__next._full.txt +27 -0
  215. package/dist/web/admin/modes/__next._head.txt +6 -0
  216. package/dist/web/admin/modes/__next._index.txt +10 -0
  217. package/dist/web/admin/modes/__next._tree.txt +5 -0
  218. package/dist/web/admin/modes/__next.admin.modes.__PAGE__.txt +9 -0
  219. package/dist/web/admin/modes/__next.admin.modes.txt +5 -0
  220. package/dist/web/admin/modes/__next.admin.txt +5 -0
  221. package/dist/web/admin/modes.html +1 -0
  222. package/dist/web/admin/modes.txt +27 -0
  223. package/dist/web/admin/ota/__next._full.txt +27 -0
  224. package/dist/web/admin/ota/__next._head.txt +6 -0
  225. package/dist/web/admin/ota/__next._index.txt +10 -0
  226. package/dist/web/admin/ota/__next._tree.txt +5 -0
  227. package/dist/web/admin/ota/__next.admin.ota.__PAGE__.txt +9 -0
  228. package/dist/web/admin/ota/__next.admin.ota.txt +5 -0
  229. package/dist/web/admin/ota/__next.admin.txt +5 -0
  230. package/dist/web/admin/ota.html +1 -0
  231. package/dist/web/admin/ota.txt +27 -0
  232. package/dist/web/admin/turn/__next._full.txt +27 -0
  233. package/dist/web/admin/turn/__next._head.txt +6 -0
  234. package/dist/web/admin/turn/__next._index.txt +10 -0
  235. package/dist/web/admin/turn/__next._tree.txt +5 -0
  236. package/dist/web/admin/turn/__next.admin.turn.__PAGE__.txt +9 -0
  237. package/dist/web/admin/turn/__next.admin.turn.txt +5 -0
  238. package/dist/web/admin/turn/__next.admin.txt +5 -0
  239. package/dist/web/admin/turn.html +1 -0
  240. package/dist/web/admin/turn.txt +27 -0
  241. package/dist/web/admin.html +1 -0
  242. package/dist/web/admin.txt +27 -0
  243. package/dist/web/agent-icons/aider.svg +1 -0
  244. package/dist/web/agent-icons/amp.png +0 -0
  245. package/dist/web/agent-icons/ante.png +0 -0
  246. package/dist/web/agent-icons/antigravity.png +0 -0
  247. package/dist/web/agent-icons/auggie.png +0 -0
  248. package/dist/web/agent-icons/autohand.png +0 -0
  249. package/dist/web/agent-icons/claude-ui.png +0 -0
  250. package/dist/web/agent-icons/claude.svg +1 -0
  251. package/dist/web/agent-icons/cline.png +0 -0
  252. package/dist/web/agent-icons/codebuff.png +0 -0
  253. package/dist/web/agent-icons/codex-ui.png +0 -0
  254. package/dist/web/agent-icons/codex.svg +1 -0
  255. package/dist/web/agent-icons/command-code.png +0 -0
  256. package/dist/web/agent-icons/continue.png +0 -0
  257. package/dist/web/agent-icons/copilot.png +0 -0
  258. package/dist/web/agent-icons/crush.png +0 -0
  259. package/dist/web/agent-icons/cursor.png +0 -0
  260. package/dist/web/agent-icons/devin.png +0 -0
  261. package/dist/web/agent-icons/droid.png +0 -0
  262. package/dist/web/agent-icons/gemini.png +0 -0
  263. package/dist/web/agent-icons/goose.png +0 -0
  264. package/dist/web/agent-icons/grok.png +0 -0
  265. package/dist/web/agent-icons/hermes.png +0 -0
  266. package/dist/web/agent-icons/kilo.png +0 -0
  267. package/dist/web/agent-icons/kimi.png +0 -0
  268. package/dist/web/agent-icons/kiro.png +0 -0
  269. package/dist/web/agent-icons/mimo-code.png +0 -0
  270. package/dist/web/agent-icons/mistral-vibe.png +0 -0
  271. package/dist/web/agent-icons/omp.svg +1 -0
  272. package/dist/web/agent-icons/openclaude.png +0 -0
  273. package/dist/web/agent-icons/openclaw.png +0 -0
  274. package/dist/web/agent-icons/opencode.png +0 -0
  275. package/dist/web/agent-icons/pi.svg +1 -0
  276. package/dist/web/agent-icons/prime-agent.png +0 -0
  277. package/dist/web/agent-icons/qwen-code.png +0 -0
  278. package/dist/web/agent-icons/rovo.png +0 -0
  279. package/dist/web/agent-icons/trae.png +0 -0
  280. package/dist/web/agents/claude.svg +1 -0
  281. package/dist/web/agents/codex.svg +1 -0
  282. package/dist/web/agents/gemini.svg +1 -0
  283. package/dist/web/agents/opencode.svg +1 -0
  284. package/dist/web/backgrounds/bg10.jpg +0 -0
  285. package/dist/web/backgrounds/bg11.jpg +0 -0
  286. package/dist/web/backgrounds/bg12.jpg +0 -0
  287. package/dist/web/backgrounds/bg13.jpg +0 -0
  288. package/dist/web/backgrounds/bg2.jpg +0 -0
  289. package/dist/web/backgrounds/bg3.jpg +0 -0
  290. package/dist/web/backgrounds/bg4.jpg +0 -0
  291. package/dist/web/backgrounds/bg5.jpg +0 -0
  292. package/dist/web/backgrounds/bg6.jpg +0 -0
  293. package/dist/web/backgrounds/bg7.jpg +0 -0
  294. package/dist/web/backgrounds/bg8.jpg +0 -0
  295. package/dist/web/backgrounds/bg9.jpg +0 -0
  296. package/dist/web/dev/question/__next._full.txt +27 -0
  297. package/dist/web/dev/question/__next._head.txt +6 -0
  298. package/dist/web/dev/question/__next._index.txt +10 -0
  299. package/dist/web/dev/question/__next._tree.txt +5 -0
  300. package/dist/web/dev/question/__next.dev.question.__PAGE__.txt +9 -0
  301. package/dist/web/dev/question/__next.dev.question.txt +5 -0
  302. package/dist/web/dev/question/__next.dev.txt +5 -0
  303. package/dist/web/dev/question.html +1 -0
  304. package/dist/web/dev/question.txt +27 -0
  305. package/dist/web/favicon.ico +0 -0
  306. package/dist/web/file.svg +1 -0
  307. package/dist/web/globe.svg +1 -0
  308. package/dist/web/icon-192.png +0 -0
  309. package/dist/web/icon-192.svg +3 -0
  310. package/dist/web/icon-512.png +0 -0
  311. package/dist/web/icon-512.svg +3 -0
  312. package/dist/web/icons/file-types/astro.svg +1 -0
  313. package/dist/web/icons/file-types/audio.svg +1 -0
  314. package/dist/web/icons/file-types/avif.svg +1 -0
  315. package/dist/web/icons/file-types/bat.svg +1 -0
  316. package/dist/web/icons/file-types/c.svg +1 -0
  317. package/dist/web/icons/file-types/cheader.svg +1 -0
  318. package/dist/web/icons/file-types/clojure.svg +1 -0
  319. package/dist/web/icons/file-types/clojurescript.svg +1 -0
  320. package/dist/web/icons/file-types/cloudfoundry.svg +1 -0
  321. package/dist/web/icons/file-types/cpp.svg +1 -0
  322. package/dist/web/icons/file-types/cppheader.svg +1 -0
  323. package/dist/web/icons/file-types/csharp.svg +1 -0
  324. package/dist/web/icons/file-types/css.svg +1 -0
  325. package/dist/web/icons/file-types/dartlang.svg +1 -0
  326. package/dist/web/icons/file-types/datadog.svg +1 -0
  327. package/dist/web/icons/file-types/default.svg +1 -0
  328. package/dist/web/icons/file-types/diff.svg +1 -0
  329. package/dist/web/icons/file-types/django.svg +1 -0
  330. package/dist/web/icons/file-types/docker.svg +1 -0
  331. package/dist/web/icons/file-types/dotenv.svg +1 -0
  332. package/dist/web/icons/file-types/editorconfig.svg +1 -0
  333. package/dist/web/icons/file-types/elixir.svg +1 -0
  334. package/dist/web/icons/file-types/erlang.svg +1 -0
  335. package/dist/web/icons/file-types/esphome.svg +1 -0
  336. package/dist/web/icons/file-types/font.svg +1 -0
  337. package/dist/web/icons/file-types/git.svg +1 -0
  338. package/dist/web/icons/file-types/gnu.svg +1 -0
  339. package/dist/web/icons/file-types/go.svg +1 -0
  340. package/dist/web/icons/file-types/graphql.svg +1 -0
  341. package/dist/web/icons/file-types/haskell.svg +1 -0
  342. package/dist/web/icons/file-types/html.svg +1 -0
  343. package/dist/web/icons/file-types/image.svg +1 -0
  344. package/dist/web/icons/file-types/ini.svg +1 -0
  345. package/dist/web/icons/file-types/janet.svg +1 -0
  346. package/dist/web/icons/file-types/jar.svg +1 -0
  347. package/dist/web/icons/file-types/java.svg +1 -0
  348. package/dist/web/icons/file-types/js.svg +1 -0
  349. package/dist/web/icons/file-types/json.svg +1 -0
  350. package/dist/web/icons/file-types/json5.svg +1 -0
  351. package/dist/web/icons/file-types/kotlin.svg +1 -0
  352. package/dist/web/icons/file-types/less.svg +1 -0
  353. package/dist/web/icons/file-types/license.svg +1 -0
  354. package/dist/web/icons/file-types/locale.svg +1 -0
  355. package/dist/web/icons/file-types/log.svg +1 -0
  356. package/dist/web/icons/file-types/lua.svg +1 -0
  357. package/dist/web/icons/file-types/markdown.svg +1 -0
  358. package/dist/web/icons/file-types/mdx.svg +1 -0
  359. package/dist/web/icons/file-types/npm.svg +1 -0
  360. package/dist/web/icons/file-types/objectivec.svg +1 -0
  361. package/dist/web/icons/file-types/ocaml.svg +1 -0
  362. package/dist/web/icons/file-types/parcel.svg +1 -0
  363. package/dist/web/icons/file-types/pddl_happenings.svg +1 -0
  364. package/dist/web/icons/file-types/pdf.svg +1 -0
  365. package/dist/web/icons/file-types/php.svg +1 -0
  366. package/dist/web/icons/file-types/powershell.svg +1 -0
  367. package/dist/web/icons/file-types/protobuf.svg +1 -0
  368. package/dist/web/icons/file-types/python.svg +1 -0
  369. package/dist/web/icons/file-types/r.svg +1 -0
  370. package/dist/web/icons/file-types/reactjs.svg +1 -0
  371. package/dist/web/icons/file-types/reactts.svg +1 -0
  372. package/dist/web/icons/file-types/ruby.svg +1 -0
  373. package/dist/web/icons/file-types/rust.svg +1 -0
  374. package/dist/web/icons/file-types/sass.svg +1 -0
  375. package/dist/web/icons/file-types/scala.svg +1 -0
  376. package/dist/web/icons/file-types/scss.svg +1 -0
  377. package/dist/web/icons/file-types/shell.svg +1 -0
  378. package/dist/web/icons/file-types/sql.svg +1 -0
  379. package/dist/web/icons/file-types/sqlite.svg +1 -0
  380. package/dist/web/icons/file-types/stylus.svg +1 -0
  381. package/dist/web/icons/file-types/svelte.svg +1 -0
  382. package/dist/web/icons/file-types/svg.svg +1 -0
  383. package/dist/web/icons/file-types/swift.svg +1 -0
  384. package/dist/web/icons/file-types/text.svg +1 -0
  385. package/dist/web/icons/file-types/toml.svg +1 -0
  386. package/dist/web/icons/file-types/typescript.svg +1 -0
  387. package/dist/web/icons/file-types/video.svg +1 -0
  388. package/dist/web/icons/file-types/vue.svg +1 -0
  389. package/dist/web/icons/file-types/xml.svg +1 -0
  390. package/dist/web/icons/file-types/yaml.svg +1 -0
  391. package/dist/web/icons/file-types/zip.svg +1 -0
  392. package/dist/web/icons/folder-types/android-open.svg +1 -0
  393. package/dist/web/icons/folder-types/android.svg +1 -0
  394. package/dist/web/icons/folder-types/api-open.svg +1 -0
  395. package/dist/web/icons/folder-types/api.svg +1 -0
  396. package/dist/web/icons/folder-types/app-open.svg +1 -0
  397. package/dist/web/icons/folder-types/app.svg +1 -0
  398. package/dist/web/icons/folder-types/asset-open.svg +1 -0
  399. package/dist/web/icons/folder-types/asset.svg +1 -0
  400. package/dist/web/icons/folder-types/azurepipelines-open.svg +1 -0
  401. package/dist/web/icons/folder-types/azurepipelines.svg +1 -0
  402. package/dist/web/icons/folder-types/blueprint-open.svg +1 -0
  403. package/dist/web/icons/folder-types/blueprint.svg +1 -0
  404. package/dist/web/icons/folder-types/bower-open.svg +1 -0
  405. package/dist/web/icons/folder-types/bower.svg +1 -0
  406. package/dist/web/icons/folder-types/component-open.svg +1 -0
  407. package/dist/web/icons/folder-types/component.svg +1 -0
  408. package/dist/web/icons/folder-types/config-open.svg +1 -0
  409. package/dist/web/icons/folder-types/config.svg +1 -0
  410. package/dist/web/icons/folder-types/controller-open.svg +1 -0
  411. package/dist/web/icons/folder-types/controller.svg +1 -0
  412. package/dist/web/icons/folder-types/css-open.svg +1 -0
  413. package/dist/web/icons/folder-types/css.svg +1 -0
  414. package/dist/web/icons/folder-types/db-open.svg +1 -0
  415. package/dist/web/icons/folder-types/db.svg +1 -0
  416. package/dist/web/icons/folder-types/default-open.svg +1 -0
  417. package/dist/web/icons/folder-types/default.svg +1 -0
  418. package/dist/web/icons/folder-types/dist-open.svg +1 -0
  419. package/dist/web/icons/folder-types/dist.svg +1 -0
  420. package/dist/web/icons/folder-types/docs-open.svg +1 -0
  421. package/dist/web/icons/folder-types/docs.svg +1 -0
  422. package/dist/web/icons/folder-types/fonts-open.svg +1 -0
  423. package/dist/web/icons/folder-types/fonts.svg +1 -0
  424. package/dist/web/icons/folder-types/git-open.svg +1 -0
  425. package/dist/web/icons/folder-types/git.svg +1 -0
  426. package/dist/web/icons/folder-types/github-open.svg +1 -0
  427. package/dist/web/icons/folder-types/github.svg +1 -0
  428. package/dist/web/icons/folder-types/helper-open.svg +1 -0
  429. package/dist/web/icons/folder-types/helper.svg +1 -0
  430. package/dist/web/icons/folder-types/hook-open.svg +1 -0
  431. package/dist/web/icons/folder-types/hook.svg +1 -0
  432. package/dist/web/icons/folder-types/husky-open.svg +1 -0
  433. package/dist/web/icons/folder-types/husky.svg +1 -0
  434. package/dist/web/icons/folder-types/idea-open.svg +1 -0
  435. package/dist/web/icons/folder-types/idea.svg +1 -0
  436. package/dist/web/icons/folder-types/images-open.svg +1 -0
  437. package/dist/web/icons/folder-types/images.svg +1 -0
  438. package/dist/web/icons/folder-types/interfaces-open.svg +1 -0
  439. package/dist/web/icons/folder-types/interfaces.svg +1 -0
  440. package/dist/web/icons/folder-types/ios-open.svg +1 -0
  441. package/dist/web/icons/folder-types/ios.svg +1 -0
  442. package/dist/web/icons/folder-types/library-open.svg +1 -0
  443. package/dist/web/icons/folder-types/library.svg +1 -0
  444. package/dist/web/icons/folder-types/locale-open.svg +1 -0
  445. package/dist/web/icons/folder-types/locale.svg +1 -0
  446. package/dist/web/icons/folder-types/middleware-open.svg +1 -0
  447. package/dist/web/icons/folder-types/middleware.svg +1 -0
  448. package/dist/web/icons/folder-types/model-open.svg +1 -0
  449. package/dist/web/icons/folder-types/model.svg +1 -0
  450. package/dist/web/icons/folder-types/node-open.svg +1 -0
  451. package/dist/web/icons/folder-types/node.svg +1 -0
  452. package/dist/web/icons/folder-types/public-open.svg +1 -0
  453. package/dist/web/icons/folder-types/public.svg +1 -0
  454. package/dist/web/icons/folder-types/redux-open.svg +1 -0
  455. package/dist/web/icons/folder-types/redux.svg +1 -0
  456. package/dist/web/icons/folder-types/route-open.svg +1 -0
  457. package/dist/web/icons/folder-types/route.svg +1 -0
  458. package/dist/web/icons/folder-types/script-open.svg +1 -0
  459. package/dist/web/icons/folder-types/script.svg +1 -0
  460. package/dist/web/icons/folder-types/seedkit-open.svg +1 -0
  461. package/dist/web/icons/folder-types/seedkit.svg +1 -0
  462. package/dist/web/icons/folder-types/server-open.svg +1 -0
  463. package/dist/web/icons/folder-types/server.svg +1 -0
  464. package/dist/web/icons/folder-types/services-open.svg +1 -0
  465. package/dist/web/icons/folder-types/services.svg +1 -0
  466. package/dist/web/icons/folder-types/src-open.svg +1 -0
  467. package/dist/web/icons/folder-types/src.svg +1 -0
  468. package/dist/web/icons/folder-types/story-open.svg +1 -0
  469. package/dist/web/icons/folder-types/story.svg +1 -0
  470. package/dist/web/icons/folder-types/style-open.svg +1 -0
  471. package/dist/web/icons/folder-types/style.svg +1 -0
  472. package/dist/web/icons/folder-types/template-open.svg +1 -0
  473. package/dist/web/icons/folder-types/template.svg +1 -0
  474. package/dist/web/icons/folder-types/test-open.svg +1 -0
  475. package/dist/web/icons/folder-types/test.svg +1 -0
  476. package/dist/web/icons/folder-types/theme-open.svg +1 -0
  477. package/dist/web/icons/folder-types/theme.svg +1 -0
  478. package/dist/web/icons/folder-types/tools-open.svg +1 -0
  479. package/dist/web/icons/folder-types/tools.svg +1 -0
  480. package/dist/web/icons/folder-types/typescript-open.svg +1 -0
  481. package/dist/web/icons/folder-types/typescript.svg +1 -0
  482. package/dist/web/icons/folder-types/typings-open.svg +1 -0
  483. package/dist/web/icons/folder-types/typings.svg +1 -0
  484. package/dist/web/icons/folder-types/view-open.svg +1 -0
  485. package/dist/web/icons/folder-types/view.svg +1 -0
  486. package/dist/web/icons/folder-types/vscode-open.svg +1 -0
  487. package/dist/web/icons/folder-types/vscode.svg +1 -0
  488. package/dist/web/index.html +1 -0
  489. package/dist/web/index.txt +25 -0
  490. package/dist/web/login/__next._full.txt +27 -0
  491. package/dist/web/login/__next._head.txt +6 -0
  492. package/dist/web/login/__next._index.txt +10 -0
  493. package/dist/web/login/__next._tree.txt +5 -0
  494. package/dist/web/login/__next.login.__PAGE__.txt +9 -0
  495. package/dist/web/login/__next.login.txt +5 -0
  496. package/dist/web/login.html +1 -0
  497. package/dist/web/login.txt +27 -0
  498. package/dist/web/manifest.json +53 -0
  499. package/dist/web/maskable-192.png +0 -0
  500. package/dist/web/maskable-512.png +0 -0
  501. package/dist/web/next.svg +1 -0
  502. package/dist/web/proxy.html +179 -0
  503. package/dist/web/screenshot-desktop.png +0 -0
  504. package/dist/web/screenshot-mobile.png +0 -0
  505. package/dist/web/screenshots/desktop-ide.webp +0 -0
  506. package/dist/web/screenshots/mobile-1.webp +0 -0
  507. package/dist/web/screenshots/mobile-2.webp +0 -0
  508. package/dist/web/screenshots/mobile-3.webp +0 -0
  509. package/dist/web/sw-site.js +283 -0
  510. package/dist/web/sw.js +88 -0
  511. package/dist/web/swBridgeClaim.js +57 -0
  512. package/dist/web/vercel.svg +1 -0
  513. package/dist/web/window.svg +1 -0
  514. package/dist/web/workspace/__next._full.txt +25 -0
  515. package/dist/web/workspace/__next._head.txt +6 -0
  516. package/dist/web/workspace/__next._index.txt +10 -0
  517. package/dist/web/workspace/__next._tree.txt +6 -0
  518. package/dist/web/workspace/__next.workspace.__PAGE__.txt +5 -0
  519. package/dist/web/workspace/__next.workspace.txt +8 -0
  520. package/dist/web/workspace/browse/__next._full.txt +27 -0
  521. package/dist/web/workspace/browse/__next._head.txt +6 -0
  522. package/dist/web/workspace/browse/__next._index.txt +10 -0
  523. package/dist/web/workspace/browse/__next._tree.txt +6 -0
  524. package/dist/web/workspace/browse/__next.workspace.browse.__PAGE__.txt +5 -0
  525. package/dist/web/workspace/browse/__next.workspace.browse.txt +5 -0
  526. package/dist/web/workspace/browse/__next.workspace.txt +8 -0
  527. package/dist/web/workspace/browse.html +1 -0
  528. package/dist/web/workspace/browse.txt +27 -0
  529. package/dist/web/workspace/editor/__next._full.txt +27 -0
  530. package/dist/web/workspace/editor/__next._head.txt +6 -0
  531. package/dist/web/workspace/editor/__next._index.txt +10 -0
  532. package/dist/web/workspace/editor/__next._tree.txt +6 -0
  533. package/dist/web/workspace/editor/__next.workspace.editor.__PAGE__.txt +5 -0
  534. package/dist/web/workspace/editor/__next.workspace.editor.txt +5 -0
  535. package/dist/web/workspace/editor/__next.workspace.txt +8 -0
  536. package/dist/web/workspace/editor.html +1 -0
  537. package/dist/web/workspace/editor.txt +27 -0
  538. package/dist/web/workspace/files/__next._full.txt +27 -0
  539. package/dist/web/workspace/files/__next._head.txt +6 -0
  540. package/dist/web/workspace/files/__next._index.txt +10 -0
  541. package/dist/web/workspace/files/__next._tree.txt +6 -0
  542. package/dist/web/workspace/files/__next.workspace.files.__PAGE__.txt +5 -0
  543. package/dist/web/workspace/files/__next.workspace.files.txt +5 -0
  544. package/dist/web/workspace/files/__next.workspace.txt +8 -0
  545. package/dist/web/workspace/files.html +1 -0
  546. package/dist/web/workspace/files.txt +27 -0
  547. package/dist/web/workspace/git/__next._full.txt +27 -0
  548. package/dist/web/workspace/git/__next._head.txt +6 -0
  549. package/dist/web/workspace/git/__next._index.txt +10 -0
  550. package/dist/web/workspace/git/__next._tree.txt +6 -0
  551. package/dist/web/workspace/git/__next.workspace.git.__PAGE__.txt +5 -0
  552. package/dist/web/workspace/git/__next.workspace.git.txt +5 -0
  553. package/dist/web/workspace/git/__next.workspace.txt +8 -0
  554. package/dist/web/workspace/git.html +1 -0
  555. package/dist/web/workspace/git.txt +27 -0
  556. package/dist/web/workspace/mobile/__next._full.txt +27 -0
  557. package/dist/web/workspace/mobile/__next._head.txt +6 -0
  558. package/dist/web/workspace/mobile/__next._index.txt +10 -0
  559. package/dist/web/workspace/mobile/__next._tree.txt +6 -0
  560. package/dist/web/workspace/mobile/__next.workspace.mobile.__PAGE__.txt +5 -0
  561. package/dist/web/workspace/mobile/__next.workspace.mobile.txt +5 -0
  562. package/dist/web/workspace/mobile/__next.workspace.txt +8 -0
  563. package/dist/web/workspace/mobile.html +1 -0
  564. package/dist/web/workspace/mobile.txt +27 -0
  565. package/dist/web/workspace/remote/__next._full.txt +27 -0
  566. package/dist/web/workspace/remote/__next._head.txt +6 -0
  567. package/dist/web/workspace/remote/__next._index.txt +10 -0
  568. package/dist/web/workspace/remote/__next._tree.txt +6 -0
  569. package/dist/web/workspace/remote/__next.workspace.remote.__PAGE__.txt +5 -0
  570. package/dist/web/workspace/remote/__next.workspace.remote.txt +5 -0
  571. package/dist/web/workspace/remote/__next.workspace.txt +8 -0
  572. package/dist/web/workspace/remote.html +1 -0
  573. package/dist/web/workspace/remote.txt +27 -0
  574. package/dist/web/workspace/terminal/default/__next._full.txt +27 -0
  575. package/dist/web/workspace/terminal/default/__next._head.txt +6 -0
  576. package/dist/web/workspace/terminal/default/__next._index.txt +10 -0
  577. package/dist/web/workspace/terminal/default/__next._tree.txt +6 -0
  578. package/dist/web/workspace/terminal/default/__next.workspace.terminal.$d$sessionId.__PAGE__.txt +5 -0
  579. package/dist/web/workspace/terminal/default/__next.workspace.terminal.$d$sessionId.txt +5 -0
  580. package/dist/web/workspace/terminal/default/__next.workspace.terminal.txt +5 -0
  581. package/dist/web/workspace/terminal/default/__next.workspace.txt +8 -0
  582. package/dist/web/workspace/terminal/default.html +1 -0
  583. package/dist/web/workspace/terminal/default.txt +27 -0
  584. package/dist/web/workspace/workspaces/__next._full.txt +27 -0
  585. package/dist/web/workspace/workspaces/__next._head.txt +6 -0
  586. package/dist/web/workspace/workspaces/__next._index.txt +10 -0
  587. package/dist/web/workspace/workspaces/__next._tree.txt +6 -0
  588. package/dist/web/workspace/workspaces/__next.workspace.txt +8 -0
  589. package/dist/web/workspace/workspaces/__next.workspace.workspaces.__PAGE__.txt +5 -0
  590. package/dist/web/workspace/workspaces/__next.workspace.workspaces.txt +5 -0
  591. package/dist/web/workspace/workspaces.html +1 -0
  592. package/dist/web/workspace/workspaces.txt +27 -0
  593. package/dist/web/workspace.html +1 -0
  594. package/dist/web/workspace.txt +25 -0
  595. package/package.json +4 -4
  596. package/dist/ui/assets/index-CLABbREo.css +0 -1
  597. package/dist/ui/assets/index-MX08IV5-.js +0 -58
@@ -0,0 +1,77 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1733],{61733:(t,e,a)=>{a.d(e,{diagram:()=>F});var r=a(96910),o=a(58609),n=a(49519),i=a(84187),l=a(14561),s=a(68567),d=a(97811),c=(0,s.K)((t,e)=>{let a=t<=1?100*t:t;if(a<0||a>100)throw Error(`${e} must be between 0-1 (decimal) or 0-100 (percentage). Received: ${t}`);return a},"toPercent"),p=(0,s.K)((t,e,a)=>({x:c(e,`${a} evolution`),y:c(t,`${a} visibility`)}),"toCoordinates"),h=(0,s.K)(t=>{if(t){if("+<>"===t)return"bidirectional";if("+<"===t)return"backward";if("+>"===t)return"forward"}},"getFlowFromPort"),x=(0,s.K)(t=>{if(!t?.startsWith("+"))return{};let e=/^\+'([^']*)'/.exec(t),a=e?.[1];return t.includes("<>")?{flow:"bidirectional",label:a}:t.includes("<")?{flow:"backward",label:a}:t.includes(">")?{flow:"forward",label:a}:{label:a}},"extractFlowFromArrow"),y=(0,s.K)((t,e)=>{if((0,r.S)(t,e),t.size&&e.setSize(t.size.width,t.size.height),t.evolution){let a=t.evolution.stages.map(t=>t.secondName?`${t.name.trim()} / ${t.secondName.trim()}`:t.name.trim()),r=t.evolution.stages.filter(t=>void 0!==t.boundary).map(t=>t.boundary);e.updateAxes({stages:a,stageBoundaries:r})}if(t.anchors.forEach(t=>{let a=p(t.visibility,t.evolution,`Anchor "${t.name}"`);e.addNode(t.name,t.name,a.x,a.y,"anchor")}),t.components.forEach(t=>{let a=p(t.visibility,t.evolution,`Component "${t.name}"`),r=t.label?(t.label.negX?-1:1)*t.label.offsetX:void 0,o=t.label?(t.label.negY?-1:1)*t.label.offsetY:void 0,n=t.decorator?.strategy;e.addNode(t.name,t.name,a.x,a.y,"component",r,o,t.inertia,n)}),t.notes.forEach(t=>{let a=p(t.visibility,t.evolution,`Note "${t.text}"`);e.addNote(t.text,a.x,a.y)}),t.pipelines.forEach(t=>{let a=e.getNode(t.parent);if(!a||"number"!=typeof a.y)throw Error(`Pipeline "${t.parent}" must reference an existing component with coordinates.`);let r=a.y;e.startPipeline(t.parent),t.components.forEach(a=>{let o=`${t.parent}_${a.name}`,n=a.label?(a.label.negX?-1:1)*a.label.offsetX:void 0,i=a.label?(a.label.negY?-1:1)*a.label.offsetY:void 0,l=c(a.evolution,`Pipeline component "${a.name}" evolution`);e.addNode(o,a.name,l,r,"pipeline-component",n,i),e.addPipelineComponent(t.parent,o)})}),t.links.forEach(t=>{let a=!!t.arrow&&(t.arrow.includes("-.->")||t.arrow.includes(".-.")),r=h(t.fromPort)??h(t.toPort),{flow:o,label:n}=x(t.arrow);!r&&o&&(r=o);let i=t.linkLabel;e.addLink(e.resolveNodeId(t.from),e.resolveNodeId(t.to),a,n??i,r)}),t.evolves.forEach(t=>{let a=e.getNode(t.component);if(a?.y!==void 0){let r=c(t.target,`Evolve target for "${t.component}"`);e.addTrend(t.component,r,a.y)}}),t.annotations.length>0){let a=t.annotations[0],r=p(a.x,a.y,"Annotations box");e.setAnnotationsBox(r.x,r.y)}t.annotation.forEach(t=>{let a=p(t.x,t.y,`Annotation ${t.number}`);e.addAnnotation(t.number,[{x:a.x,y:a.y}],t.text)}),t.accelerators.forEach(t=>{let a=p(t.x,t.y,`Accelerator "${t.name}"`);e.addAccelerator(t.name,a.x,a.y)}),t.deaccelerators.forEach(t=>{let a=p(t.x,t.y,`Deaccelerator "${t.name}"`);e.addDeaccelerator(t.name,a.x,a.y)})},"populateDb"),f={parser:{yy:void 0},parse:(0,s.K)(async t=>{let e=await (0,d.qg)("wardley",t);l.R.debug(e);let a=f.parser?.yy;if(!a||"function"!=typeof a.addNode)throw Error("parser.parser?.yy was not a WardleyDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");y(e,a)},"parse")},g=new class{constructor(){this.nodes=new Map,this.links=[],this.trends=new Map,this.pipelines=new Map,this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.axes={}}static{(0,s.K)(this,"WardleyBuilder")}addNode(t){let e=this.nodes.get(t.id)??{id:t.id,label:t.label},a={...e,...t,className:t.className??e.className,labelOffsetX:t.labelOffsetX??e.labelOffsetX,labelOffsetY:t.labelOffsetY??e.labelOffsetY};this.nodes.set(t.id,a)}addLink(t){this.links.push(t)}addTrend(t){this.trends.set(t.nodeId,t)}startPipeline(t){this.pipelines.set(t,{nodeId:t,componentIds:[]});let e=this.nodes.get(t);e&&(e.isPipelineParent=!0)}addPipelineComponent(t,e){let a=this.pipelines.get(t);a&&a.componentIds.push(e);let r=this.nodes.get(e);r&&(r.inPipeline=!0)}addAnnotation(t){this.annotations.push(t)}addNote(t){this.notes.push(t)}addAccelerator(t){this.accelerators.push(t)}addDeaccelerator(t){this.deaccelerators.push(t)}setAnnotationsBox(t,e){this.annotationsBox={x:t,y:e}}setAxes(t){this.axes={...this.axes,...t}}setSize(t,e){this.size={width:t,height:e}}getNode(t){return this.nodes.get(t)}resolveNodeId(t){if(this.nodes.has(t))return t;for(let[e,a]of this.nodes)if(a.label===t)return e;return t}build(){let t=[];for(let e of this.nodes.values()){if("number"!=typeof e.x||"number"!=typeof e.y)throw Error(`Node "${e.label}" is missing coordinates`);t.push(e)}return{nodes:t,links:[...this.links],trends:[...this.trends.values()],pipelines:[...this.pipelines.values()],annotations:[...this.annotations],notes:[...this.notes],accelerators:[...this.accelerators],deaccelerators:[...this.deaccelerators],annotationsBox:this.annotationsBox,axes:{...this.axes},size:this.size}}clear(){this.nodes.clear(),this.links=[],this.trends.clear(),this.pipelines.clear(),this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.annotationsBox=void 0,this.axes={},this.size=void 0}};function u(){return(0,i.D7)()["wardley-beta"]}function w(t,e,a,r,o,n,i,l,s){g.addNode({id:t,label:e,x:a,y:r,className:o,labelOffsetX:n,labelOffsetY:i,inertia:l,sourceStrategy:s})}function m(t,e,a=!1,r,o){g.addLink({source:t,target:e,dashed:a,label:r,flow:o})}function k(t,e,a){g.addTrend({nodeId:t,targetX:e,targetY:a})}function b(t,e,a){g.addAnnotation({number:t,coordinates:e,text:a})}function $(t,e,a){g.addNote({text:t,x:e,y:a})}function S(t,e,a){g.addAccelerator({name:t,x:e,y:a})}function v(t,e,a){g.addDeaccelerator({name:t,x:e,y:a})}function C(t,e){g.setAnnotationsBox(t,e)}function M(t,e){g.setSize(t,e)}function P(t){g.startPipeline(t)}function N(t,e){g.addPipelineComponent(t,e)}function T(t){g.setAxes(t)}function z(t){return g.getNode(t)}function E(t){return g.resolveNodeId(t)}function L(){return g.build()}function A(){g.clear(),(0,i.IU)()}(0,s.K)(u,"getConfig"),(0,s.K)(w,"addNode"),(0,s.K)(m,"addLink"),(0,s.K)(k,"addTrend"),(0,s.K)(b,"addAnnotation"),(0,s.K)($,"addNote"),(0,s.K)(S,"addAccelerator"),(0,s.K)(v,"addDeaccelerator"),(0,s.K)(C,"setAnnotationsBox"),(0,s.K)(M,"setSize"),(0,s.K)(P,"startPipeline"),(0,s.K)(N,"addPipelineComponent"),(0,s.K)(T,"updateAxes"),(0,s.K)(z,"getNode"),(0,s.K)(E,"resolveNodeId"),(0,s.K)(L,"getWardleyData"),(0,s.K)(A,"clear");var K={getConfig:u,addNode:w,addLink:m,addTrend:k,addAnnotation:b,addNote:$,addAccelerator:S,addDeaccelerator:v,setAnnotationsBox:C,setSize:M,startPipeline:P,addPipelineComponent:N,updateAxes:T,getNode:z,resolveNodeId:E,getWardleyData:L,clear:A,setAccTitle:i.SV,getAccTitle:i.iN,setDiagramTitle:i.ke,getDiagramTitle:i.ab,getAccDescription:i.m7,setAccDescription:i.EI},I=["Genesis","Custom Built","Product","Commodity"],R=(0,s.K)(()=>{let{themeVariables:t}=(0,i.D7)();return{backgroundColor:t.wardley?.backgroundColor??t.background??"#fff",axisColor:t.wardley?.axisColor??"#000",axisTextColor:t.wardley?.axisTextColor??t.primaryTextColor??"#222",gridColor:t.wardley?.gridColor??"rgba(100, 100, 100, 0.2)",componentFill:t.wardley?.componentFill??"#fff",componentStroke:t.wardley?.componentStroke??"#000",componentLabelColor:t.wardley?.componentLabelColor??t.primaryTextColor??"#222",linkStroke:t.wardley?.linkStroke??"#000",evolutionStroke:t.wardley?.evolutionStroke??"#dc3545",annotationStroke:t.wardley?.annotationStroke??"#000",annotationTextColor:t.wardley?.annotationTextColor??t.primaryTextColor??"#222",annotationFill:t.wardley?.annotationFill??t.background??"#fff"}},"getTheme"),D=(0,s.K)(()=>{let t=(0,i.D7)()["wardley-beta"];return{width:t?.width??900,height:t?.height??600,padding:t?.padding??48,nodeRadius:t?.nodeRadius??6,nodeLabelOffset:t?.nodeLabelOffset??8,axisFontSize:t?.axisFontSize??12,labelFontSize:t?.labelFontSize??10,showGrid:t?.showGrid??!1,useMaxWidth:t?.useMaxWidth??!0}},"getConfigValues"),F={parser:f,db:K,renderer:{draw:(0,s.K)((t,e,a,r)=>{l.R.debug("Rendering Wardley map\n"+t);let n=D(),d=R(),c=1.6*n.nodeRadius,p=r.db,h=p.getWardleyData(),x=p.getDiagramTitle(),y=h.size?.width??n.width,f=h.size?.height??n.height,g=(0,o.D)(e);g.selectAll("*").remove(),(0,i.a$)(g,f,y,n.useMaxWidth),g.attr("viewBox",`0 0 ${y} ${f}`);let u=g.append("g").attr("class","wardley-map"),w=g.append("defs");w.append("marker").attr("id",`arrow-${e}`).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto-start-reverse").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("fill",d.evolutionStroke).attr("stroke","none"),w.append("marker").attr("id",`link-arrow-end-${e}`).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",5).attr("markerHeight",5).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("fill",d.linkStroke).attr("stroke","none"),w.append("marker").attr("id",`link-arrow-start-${e}`).attr("viewBox","0 0 10 10").attr("refX",1).attr("refY",5).attr("markerWidth",5).attr("markerHeight",5).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z").attr("fill",d.linkStroke).attr("stroke","none"),u.append("rect").attr("class","wardley-background").attr("width",y).attr("height",f).attr("fill",d.backgroundColor);let m=y-2*n.padding,k=f-2*n.padding;x&&u.append("text").attr("class","wardley-title").attr("x",y/2).attr("y",n.padding/2).attr("fill",d.axisTextColor).attr("font-size",1.05*n.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").attr("dominant-baseline","middle").text(x);let b=(0,s.K)(t=>n.padding+t/100*m,"projectX"),$=(0,s.K)(t=>f-n.padding-t/100*k,"projectY"),S=u.append("g").attr("class","wardley-axes");S.append("line").attr("x1",n.padding).attr("x2",y-n.padding).attr("y1",f-n.padding).attr("y2",f-n.padding).attr("stroke",d.axisColor).attr("stroke-width",1),S.append("line").attr("x1",n.padding).attr("x2",n.padding).attr("y1",n.padding).attr("y2",f-n.padding).attr("stroke",d.axisColor).attr("stroke-width",1);let v=h.axes.xLabel??"Evolution",C=h.axes.yLabel??"Visibility";S.append("text").attr("class","wardley-axis-label wardley-axis-label-x").attr("x",n.padding+m/2).attr("y",f-n.padding/4).attr("fill",d.axisTextColor).attr("font-size",n.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").text(v),S.append("text").attr("class","wardley-axis-label wardley-axis-label-y").attr("x",n.padding/3).attr("y",n.padding+k/2).attr("fill",d.axisTextColor).attr("font-size",n.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").attr("transform",`rotate(-90 ${n.padding/3} ${n.padding+k/2})`).text(C);let M=h.axes.stages&&h.axes.stages.length>0?h.axes.stages:I;if(M.length>0){let t=u.append("g").attr("class","wardley-stages"),e=h.axes.stageBoundaries,a=[];if(e&&e.length===M.length){let t=0;e.forEach(e=>{a.push({start:t,end:e}),t=e})}else{let t=1/M.length;M.forEach((e,r)=>{a.push({start:r*t,end:(r+1)*t})})}M.forEach((e,r)=>{let o=a[r],i=n.padding+o.start*m,l=(i+(n.padding+o.end*m))/2;r>0&&t.append("line").attr("x1",i).attr("x2",i).attr("y1",n.padding).attr("y2",f-n.padding).attr("stroke","#000").attr("stroke-width",1).attr("stroke-dasharray","5 5").attr("opacity",.8),t.append("text").attr("class","wardley-stage-label").attr("x",l).attr("y",f-n.padding/1.5).attr("fill",d.axisTextColor).attr("font-size",n.axisFontSize-2).attr("text-anchor","middle").text(e)})}if(n.showGrid){let t=u.append("g").attr("class","wardley-grid");for(let e=1;e<4;e++){let a=e/4,r=n.padding+m*a;t.append("line").attr("x1",r).attr("x2",r).attr("y1",n.padding).attr("y2",f-n.padding).attr("stroke",d.gridColor).attr("stroke-dasharray","2 6"),t.append("line").attr("x1",n.padding).attr("x2",y-n.padding).attr("y1",f-n.padding-k*a).attr("y2",f-n.padding-k*a).attr("stroke",d.gridColor).attr("stroke-dasharray","2 6")}}let P=new Map;if(h.nodes.forEach(t=>{P.set(t.id,{x:b(t.x),y:$(t.y),node:t})}),h.pipelines.length>0){let t=u.append("g").attr("class","wardley-pipelines"),e=u.append("g").attr("class","wardley-pipeline-links");h.pipelines.forEach(a=>{if(0===a.componentIds.length)return;let r=a.componentIds.map(t=>({id:t,pos:P.get(t),node:h.nodes.find(e=>e.id===t)})).filter(t=>t.pos&&t.node).sort((t,e)=>t.node.x-e.node.x);for(let t=0;t<r.length-1;t++){let a=r[t],o=r[t+1];e.append("line").attr("class","wardley-pipeline-evolution-link").attr("x1",a.pos.x).attr("y1",a.pos.y).attr("x2",o.pos.x).attr("y2",o.pos.y).attr("stroke",d.linkStroke).attr("stroke-width",1).attr("stroke-dasharray","4 4")}let o=1/0,i=-1/0,l=0;if(a.componentIds.forEach(t=>{let e=P.get(t);e&&(o=Math.min(o,e.x),i=Math.max(i,e.x),l=e.y)}),o!==1/0&&i!==-1/0){let e=4*n.nodeRadius,r=l-e/2,s=P.get(a.nodeId);s&&(s.x=(o+i)/2,s.y=r-c/6),t.append("rect").attr("class","wardley-pipeline-box").attr("x",o-15).attr("y",r).attr("width",i-o+30).attr("height",e).attr("fill","none").attr("stroke",d.axisColor).attr("stroke-width",1.5).attr("rx",4).attr("ry",4)}})}let N=u.append("g").attr("class","wardley-links"),T=new Map;h.pipelines.forEach(t=>{T.set(t.nodeId,new Set(t.componentIds))});let z=h.links.filter(t=>{if(!P.has(t.source)||!P.has(t.target))return!1;let e=T.get(t.target);return!e?.has(t.source)});N.selectAll("line").data(z).enter().append("line").attr("class",t=>`wardley-link${t.dashed?" wardley-link--dashed":""}`).attr("x1",t=>{let e=P.get(t.source),a=P.get(t.target),r=h.nodes.find(e=>e.id===t.source).isPipelineParent?c/Math.sqrt(2):n.nodeRadius,o=a.x-e.x,i=a.y-e.y,l=Math.sqrt(o*o+i*i);return e.x+o/l*r}).attr("y1",t=>{let e=P.get(t.source),a=P.get(t.target),r=h.nodes.find(e=>e.id===t.source).isPipelineParent?c/Math.sqrt(2):n.nodeRadius,o=a.x-e.x,i=a.y-e.y,l=Math.sqrt(o*o+i*i);return e.y+i/l*r}).attr("x2",t=>{let e=P.get(t.source),a=P.get(t.target),r=h.nodes.find(e=>e.id===t.target).isPipelineParent?c/Math.sqrt(2):n.nodeRadius,o=e.x-a.x,i=e.y-a.y,l=Math.sqrt(o*o+i*i);return a.x+o/l*r}).attr("y2",t=>{let e=P.get(t.source),a=P.get(t.target),r=h.nodes.find(e=>e.id===t.target).isPipelineParent?c/Math.sqrt(2):n.nodeRadius,o=e.x-a.x,i=e.y-a.y,l=Math.sqrt(o*o+i*i);return a.y+i/l*r}).attr("stroke",d.linkStroke).attr("stroke-width",1).attr("stroke-dasharray",t=>t.dashed?"6 6":null).attr("marker-end",t=>"forward"===t.flow||"bidirectional"===t.flow?`url(#link-arrow-end-${e})`:null).attr("marker-start",t=>"backward"===t.flow||"bidirectional"===t.flow?`url(#link-arrow-start-${e})`:null),N.selectAll("text").data(z.filter(t=>t.label)).enter().append("text").attr("class","wardley-link-label").attr("x",t=>{let e=P.get(t.source),a=P.get(t.target),r=(e.x+a.x)/2,o=a.y-e.y,n=a.x-e.x,i=Math.sqrt(n*n+o*o);return r+o/i*8}).attr("y",t=>{let e=P.get(t.source),a=P.get(t.target),r=(e.y+a.y)/2,o=a.x-e.x,n=a.y-e.y,i=Math.sqrt(o*o+n*n);return r+-o/i*8}).attr("fill",d.axisTextColor).attr("font-size",n.labelFontSize).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("transform",t=>{let e=P.get(t.source),a=P.get(t.target),r=(e.x+a.x)/2,o=(e.y+a.y)/2,n=a.x-e.x,i=a.y-e.y,l=Math.sqrt(n*n+i*i),s=180*Math.atan2(i,n)/Math.PI;return(s>90||s<-90)&&(s+=180),`rotate(${s} ${r+i/l*8} ${o+-n/l*8})`}).text(t=>t.label);let E=u.append("g").attr("class","wardley-trends"),L=h.trends.map(t=>{let e=P.get(t.nodeId);if(!e)return null;let a=b(t.targetX),r=$(t.targetY),o=a-e.x,i=r-e.y,l=Math.sqrt(o*o+i*i),s=n.nodeRadius+2;return{origin:e,targetX:a,targetY:r,adjustedX2:l>s?a-o/l*s:a,adjustedY2:l>s?r-i/l*s:r}}).filter(t=>null!==t);E.selectAll("line").data(L).enter().append("line").attr("class","wardley-trend").attr("x1",t=>t.origin.x).attr("y1",t=>t.origin.y).attr("x2",t=>t.adjustedX2).attr("y2",t=>t.adjustedY2).attr("stroke",d.evolutionStroke).attr("stroke-width",1).attr("stroke-dasharray","4 4").attr("marker-end",`url(#arrow-${e})`);let A=u.append("g").attr("class","wardley-nodes").selectAll("g").data(h.nodes).enter().append("g").attr("class",t=>["wardley-node",t.className?`wardley-node--${t.className}`:""].filter(Boolean).join(" "));A.filter(t=>"outsource"===t.sourceStrategy).append("circle").attr("class","wardley-outsource-overlay").attr("cx",t=>P.get(t.id).x).attr("cy",t=>P.get(t.id).y).attr("r",2*n.nodeRadius).attr("fill","#666").attr("stroke",d.componentStroke).attr("stroke-width",1),A.filter(t=>"buy"===t.sourceStrategy).append("circle").attr("class","wardley-buy-overlay").attr("cx",t=>P.get(t.id).x).attr("cy",t=>P.get(t.id).y).attr("r",2*n.nodeRadius).attr("fill","#ccc").attr("stroke",d.componentStroke).attr("stroke-width",1),A.filter(t=>"build"===t.sourceStrategy).append("circle").attr("class","wardley-build-overlay").attr("cx",t=>P.get(t.id).x).attr("cy",t=>P.get(t.id).y).attr("r",2*n.nodeRadius).attr("fill","#eee").attr("stroke","#000").attr("stroke-width",1);let K=A.filter(t=>"market"===t.sourceStrategy);K.append("circle").attr("class","wardley-market-overlay").attr("cx",t=>P.get(t.id).x).attr("cy",t=>P.get(t.id).y).attr("r",2*n.nodeRadius).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",1),A.filter(t=>!t.isPipelineParent&&"market"!==t.sourceStrategy&&"anchor"!==t.className).append("circle").attr("cx",t=>P.get(t.id).x).attr("cy",t=>P.get(t.id).y).attr("r",n.nodeRadius).attr("fill",d.componentFill).attr("stroke",d.componentStroke).attr("stroke-width",1);let F=.7*n.nodeRadius,B=1.2*n.nodeRadius;if(K.append("line").attr("class","wardley-market-line").attr("x1",t=>P.get(t.id).x).attr("y1",t=>P.get(t.id).y-B).attr("x2",t=>P.get(t.id).x-B*Math.cos(Math.PI/6)).attr("y2",t=>P.get(t.id).y+B*Math.sin(Math.PI/6)).attr("stroke",d.componentStroke).attr("stroke-width",1),K.append("line").attr("class","wardley-market-line").attr("x1",t=>P.get(t.id).x-B*Math.cos(Math.PI/6)).attr("y1",t=>P.get(t.id).y+B*Math.sin(Math.PI/6)).attr("x2",t=>P.get(t.id).x+B*Math.cos(Math.PI/6)).attr("y2",t=>P.get(t.id).y+B*Math.sin(Math.PI/6)).attr("stroke",d.componentStroke).attr("stroke-width",1),K.append("line").attr("class","wardley-market-line").attr("x1",t=>P.get(t.id).x+B*Math.cos(Math.PI/6)).attr("y1",t=>P.get(t.id).y+B*Math.sin(Math.PI/6)).attr("x2",t=>P.get(t.id).x).attr("y2",t=>P.get(t.id).y-B).attr("stroke",d.componentStroke).attr("stroke-width",1),K.append("circle").attr("class","wardley-market-dot").attr("cx",t=>P.get(t.id).x).attr("cy",t=>P.get(t.id).y-B).attr("r",F).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",2),K.append("circle").attr("class","wardley-market-dot").attr("cx",t=>P.get(t.id).x-B*Math.cos(Math.PI/6)).attr("cy",t=>P.get(t.id).y+B*Math.sin(Math.PI/6)).attr("r",F).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",2),K.append("circle").attr("class","wardley-market-dot").attr("cx",t=>P.get(t.id).x+B*Math.cos(Math.PI/6)).attr("cy",t=>P.get(t.id).y+B*Math.sin(Math.PI/6)).attr("r",F).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",2),A.filter(t=>!0===t.isPipelineParent).append("rect").attr("x",t=>P.get(t.id).x-c/2).attr("y",t=>P.get(t.id).y-c/2).attr("width",c).attr("height",c).attr("fill",d.componentFill).attr("stroke",d.componentStroke).attr("stroke-width",1),A.filter(t=>!0===t.inertia).append("line").attr("class","wardley-inertia").attr("x1",t=>{let e=P.get(t.id),a=t.isPipelineParent?c/2+15:n.nodeRadius+15;return t.sourceStrategy&&(a+=n.nodeRadius+10),e.x+a}).attr("y1",t=>{let e=P.get(t.id),a=t.isPipelineParent?c:2*n.nodeRadius;return e.y-a/2}).attr("x2",t=>{let e=P.get(t.id),a=t.isPipelineParent?c/2+15:n.nodeRadius+15;return t.sourceStrategy&&(a+=n.nodeRadius+10),e.x+a}).attr("y2",t=>{let e=P.get(t.id),a=t.isPipelineParent?c:2*n.nodeRadius;return e.y+a/2}).attr("stroke",d.componentStroke).attr("stroke-width",6),A.append("text").attr("x",t=>{let e=P.get(t.id);if("anchor"===t.className)return void 0!==t.labelOffsetX?e.x+t.labelOffsetX:e.x;let a=n.nodeLabelOffset;t.sourceStrategy&&void 0===t.labelOffsetX&&(a+=10);let r=t.labelOffsetX??a;return e.x+r}).attr("y",t=>{let e=P.get(t.id);if("anchor"===t.className)return void 0!==t.labelOffsetY?e.y+t.labelOffsetY:e.y-3;let a=-n.nodeLabelOffset;t.sourceStrategy&&void 0===t.labelOffsetY&&(a-=10);let r=t.labelOffsetY??a;return e.y+r}).attr("class","wardley-node-label").attr("fill",t=>"evolved"===t.className?d.evolutionStroke:"anchor"===t.className?"#000":d.componentLabelColor).attr("font-size",n.labelFontSize).attr("font-weight",t=>"anchor"===t.className?"bold":"normal").attr("text-anchor",t=>"anchor"===t.className?"middle":"start").attr("dominant-baseline",t=>"anchor"===t.className?"middle":"auto").text(t=>t.label),h.annotations.length>0){let t=u.append("g").attr("class","wardley-annotations");if(h.annotations.forEach(e=>{let a=e.coordinates.map(t=>({x:b(t.x),y:$(t.y)}));if(a.length>1)for(let e=0;e<a.length-1;e++)t.append("line").attr("class","wardley-annotation-line").attr("x1",a[e].x).attr("y1",a[e].y).attr("x2",a[e+1].x).attr("y2",a[e+1].y).attr("stroke",d.axisColor).attr("stroke-width",1.5).attr("stroke-dasharray","4 4");a.forEach(a=>{let r=t.append("g").attr("class","wardley-annotation");r.append("circle").attr("cx",a.x).attr("cy",a.y).attr("r",10).attr("fill","white").attr("stroke",d.axisColor).attr("stroke-width",1.5),r.append("text").attr("x",a.x).attr("y",a.y).attr("text-anchor","middle").attr("dominant-baseline","central").attr("font-size",10).attr("fill",d.axisTextColor).attr("font-weight","bold").text(e.number)})}),h.annotationsBox){let e=b(h.annotationsBox.x),a=$(h.annotationsBox.y),r=t.append("g").attr("class","wardley-annotations-box"),o=[...h.annotations].filter(t=>t.text).sort((t,e)=>t.number-e.number),i=[];if(o.forEach((t,o)=>{let n=r.append("text").attr("x",e+10).attr("y",a+10+(o+1)*16).attr("font-size",11).attr("fill",d.axisTextColor).attr("text-anchor","start").attr("dominant-baseline","middle").text(`${t.number}. ${t.text}`);i.push(n)}),i.length>0){let t=0,l=0;i.forEach(e=>{let a=e.node(),r=a.getComputedTextLength();t=Math.max(t,r);let o=a.getBBox();l=Math.max(l,o.height)});let s=t+20+105,c=16*o.length+20+l/2,p=n.padding,h=y-n.padding-s,x=n.padding,g=f-n.padding-c;e=Math.max(p,Math.min(e,h)),a=Math.max(x,Math.min(a,g)),i.forEach((t,r)=>{t.attr("x",e+10).attr("y",a+10+(r+1)*16)}),r.insert("rect","text").attr("x",e).attr("y",a).attr("width",s).attr("height",c).attr("fill","white").attr("stroke",d.axisColor).attr("stroke-width",1.5).attr("rx",4).attr("ry",4)}}}if(h.notes.length>0){let t=u.append("g").attr("class","wardley-notes");h.notes.forEach(e=>{let a=b(e.x),r=$(e.y);t.append("text").attr("x",a).attr("y",r).attr("text-anchor","start").attr("font-size",11).attr("fill",d.axisTextColor).attr("font-weight","bold").text(e.text)})}if(h.accelerators.length>0){let t=u.append("g").attr("class","wardley-accelerators");h.accelerators.forEach(e=>{let a=b(e.x),r=$(e.y),o=`
2
+ M ${a} ${r-15}
3
+ L ${a+60-20} ${r-15}
4
+ L ${a+60-20} ${r-15-8}
5
+ L ${a+60} ${r}
6
+ L ${a+60-20} ${r+15+8}
7
+ L ${a+60-20} ${r+15}
8
+ L ${a} ${r+15}
9
+ Z
10
+ `;t.append("path").attr("d",o).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",1),t.append("text").attr("x",a+30).attr("y",r+15+15).attr("text-anchor","middle").attr("font-size",10).attr("fill",d.axisTextColor).attr("font-weight","bold").text(e.name)})}if(h.deaccelerators.length>0){let t=u.append("g").attr("class","wardley-deaccelerators");h.deaccelerators.forEach(e=>{let a=b(e.x),r=$(e.y),o=`
11
+ M ${a+60} ${r-15}
12
+ L ${a+20} ${r-15}
13
+ L ${a+20} ${r-15-8}
14
+ L ${a} ${r}
15
+ L ${a+20} ${r+15+8}
16
+ L ${a+20} ${r+15}
17
+ L ${a+60} ${r+15}
18
+ Z
19
+ `;t.append("path").attr("d",o).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",1),t.append("text").attr("x",a+30).attr("y",r+15+15).attr("text-anchor","middle").attr("font-size",10).attr("fill",d.axisTextColor).attr("font-weight","bold").text(e.name)})}},"draw")},styles:(0,s.K)(({wardley:t}={})=>{let e=(0,i.P$)(),a=(0,i.zj)(),r=(0,n.$t)(e,a.themeVariables),o=(0,n.$t)(r.wardley,t);return`
20
+ .wardley-background {
21
+ fill: ${o.backgroundColor};
22
+ }
23
+ .wardley-axes line, .wardley-axes path {
24
+ stroke: ${o.axisColor};
25
+ }
26
+ .wardley-axis-label {
27
+ fill: ${o.axisTextColor};
28
+ }
29
+ .wardley-stage-label {
30
+ fill: ${o.axisTextColor};
31
+ }
32
+ .wardley-grid line {
33
+ stroke: ${o.gridColor};
34
+ }
35
+ .wardley-node circle {
36
+ fill: ${o.componentFill};
37
+ stroke: ${o.componentStroke};
38
+ }
39
+ .wardley-node-label {
40
+ fill: ${o.componentLabelColor};
41
+ }
42
+ .wardley-link {
43
+ stroke: ${o.linkStroke};
44
+ }
45
+ .wardley-link--dashed {
46
+ stroke-dasharray: 4 4;
47
+ }
48
+ .wardley-link-label {
49
+ fill: ${o.axisTextColor};
50
+ }
51
+ .wardley-trend line {
52
+ stroke: ${o.evolutionStroke};
53
+ }
54
+ .wardley-annotation-line {
55
+ stroke: ${o.annotationStroke};
56
+ }
57
+ .wardley-annotation circle {
58
+ fill: ${o.annotationFill};
59
+ stroke: ${o.annotationStroke};
60
+ }
61
+ .wardley-annotation text {
62
+ fill: ${o.annotationTextColor};
63
+ }
64
+ .wardley-annotations-box rect {
65
+ fill: ${o.annotationFill};
66
+ stroke: ${o.annotationStroke};
67
+ }
68
+ .wardley-annotations-box text {
69
+ fill: ${o.annotationTextColor};
70
+ }
71
+ .wardley-pipeline-box {
72
+ stroke: ${o.componentStroke};
73
+ }
74
+ .wardley-notes text {
75
+ fill: ${o.axisTextColor};
76
+ }
77
+ `},"styles")}},96910:(t,e,a)=>{function r(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}a.d(e,{S:()=>r}),(0,a(68567).K)(r,"populateCommonDb")}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1750],{71750:(e,t,n)=>{n.r(t),n.d(t,{default:()=>a});let a={common:{statusIdle:"Idle",statusWorking:"Working",statusBlocked:"Needs input",statusDone:"Your turn",loading:"Đang tải...",cancel:"Hủy",confirm:"X\xe1c nhận",save:"Lưu",delete:"X\xf3a",close:"Đ\xf3ng",back:"Quay lại",edit:"Sửa",rename:"Đổi t\xean",remove:"Gỡ bỏ",open:"Mở",yes:"C\xf3",no:"Kh\xf4ng",ok:"OK",error:"Lỗi",success:"Th\xe0nh c\xf4ng",failed:"Thất bại",retry:"Thử lại",refresh:"Tải lại",clipboard:"Clipboard",clipboardCopy:"Copy",clipboardEmpty:"Clipboard is empty",search:"T\xecm kiếm",create:"Tạo",new:"Mới",add:"Th\xeam",copy:"Sao ch\xe9p",copied:"Đ\xe3 sao ch\xe9p",download:"Tải xuống",upload:"Tải l\xean",enabled:"Đ\xe3 bật",disabled:"Đ\xe3 tắt",on:"bật",off:"tắt",minute:"ph\xfat",hour:"giờ",day:"ng\xe0y",minutesAgo:"{n} ph\xfat trước",hoursAgo:"{n} giờ trước",daysAgo:"{n} ng\xe0y trước",done:"Xong"},agentSwitcher:{title:"Thiết bị của bạn",active:"ACTIVE",unnamed:"Chưa đặt t\xean",connecting:"Đang kết nối…",unreachable:"Kh\xf4ng kết nối được thiết bị n\xe0y. Thiết bị c\xf3 đang bật?"},login:{tagline:"Truy cập terminal của bạn từ mọi nơi",heroLine1:"Any machine.",heroLine2:"One terminal.",heroLine3:"In your pocket.",featureTerminal:"Terminal",featureDesktop:"Desktop",featureFiles:"Files",termConnected:"agent connected",termTunnel:"tunnel established",termReady:"ready",accessKey:"Kh\xf3a truy cập",placeholder:"sk-xxx... hoặc M\xe3 d\xf9ng 1 lần (ABC123)",rememberKey:"Ghi nhớ kh\xf3a n\xe0y",connect:"Kết nối",connecting:"Đang kết nối...",authenticating:"Đang x\xe1c thực bằng token...",invalidKeyTail:"Wrong access key — check the last characters and try again.",scanQr:"Scan QR to login",qrScanTitle:"Scan QR Code",qrHint:"Point the camera at the QR code shown on the machine running 9Remote.",qrDetected:"QR Code detected!",qrAuthenticating:"Authenticating...",qrPleaseWait:"Please wait...",qrLibFail:"Failed to load the QR scanner library.",qrInitFail:"Could not start the scanner.",qrCamDenied:"Camera permission denied. Allow camera access and try again.",qrNoCamera:"No camera found on this device.",qrCamBusy:"Camera is in use by another app.",qrCamError:"Could not open the camera.",legacyKeyUpdateRequired:"Cần cập nhật 9remote",legacyKeyUpdateHint:"Thiết bị n\xe0y d\xf9ng định dạng key cũ. H\xe3y cập nhật 9remote tr\xean m\xe1y đ\xf3 để kết nối:",legacyKeyError:"Access key n\xe0y thuộc phi\xean bản cũ. Vui l\xf2ng cập nhật 9remote l\xean bản mới nhất tr\xean m\xe1y chủ.",updateRequired:"Cần cập nhật",savedKeys:"Kh\xf3a đ\xe3 lưu",login:"Đăng nhập",lastLogin:"Lần đăng nhập gần nhất",namePlaceholder:"Đặt t\xean cho kh\xf3a (t\xf9y chọn)",rename:"Đổi t\xean",deleteKeyTitle:"X\xf3a kh\xf3a",deleteKeyConfirm:'Bạn c\xf3 chắc muốn x\xf3a "{name}"?',justNow:"Vừa xong",minutesAgo:"{n} ph\xfat trước",hoursAgo:"{n} giờ trước",daysAgo:"{n} ng\xe0y trước",tapToScan:"Chạm để qu\xe9t",orEnterManually:"hoặc nhập kh\xf3a thủ c\xf4ng",addKey:"Add Key",secureTitle:"Secure & Encrypted",secureDesc:"All connections are end-to-end encrypted and secure.",featAccessTitle:"Access Anywhere",featAccessDesc:"Connect from any device, anywhere.",featSecureTitle:"Secure Connection",featSecureDesc:"End-to-end encryption keeps you safe.",featFastTitle:"Fast & Reliable",featFastDesc:"Low latency and high performance.",featSessionsTitle:"Multiple Sessions",featSessionsDesc:"Manage and switch between sessions.",home:"Trang chủ",docs:"T\xe0i liệu"},menu:{reloadRestart:"Tải lại & Khởi động lại",restartHost:"Khởi động lại 9remote host",restartConfirmTitle:"Khởi động lại 9remote host?",restartConfirmMessage:"Khởi động lại tiến tr\xecnh agent (kh\xf4ng c\xe0i lại). Phi\xean terminal được giữ. Mất v\xe0i gi\xe2y.",restartStarting:"Đang khởi động lại host…",restartRestarting:"Đang khởi động lại 9remote…",restartDone:"Đ\xe3 khởi động lại! Đang kết nối lại…",restartTimeout:"Khởi động lại qu\xe1 l\xe2u",restartTimeoutHint:"Kết nối lại thủ c\xf4ng nếu kh\xf4ng tự phục hồi.",title:"Menu",language:"Ng\xf4n ngữ",theme:"Giao diện",notifications:"Th\xf4ng b\xe1o",webgl:"GPU Render (Faster)",webglHint:"Tắt nếu chữ hiển thị sai",notificationsHint:"B\xe1o khi Agent xong",files:"File Explorer",downloading:"Downloading",copying:"Copying",conflictTitle:"File already exists",conflictMessage:"{name} already exists. Replace or skip?",skip:"Skip",skipAll:"Skip all",replace:"Replace",replaceAll:"Replace all",sites:"Trang web",commandNotes:"Ghi ch\xfa lệnh",community:"Cộng đồng",installApp:"C\xe0i đặt ứng dụng",codespace:"Codespace",logout:"Đăng xuất",settingsGeneral:"General",settingsAppearance:"Appearance",settingsTerminalTab:"Terminal",settingsMcp:"Plugins",mcpIntro:"Extra abilities you can give your AI coding tools.",mcpTools:"Allow",mcpRestartHint:"Turning it off applies at once. Turning it on needs the AI tool restarted.",mcpUnavailable:"Update this host to use MCP.",artifactFormats:"Formats it can show",mcpClients:"Works with",settingsWorkspace:"Workspace",settingsApplication:"Application",settingsAccount:"Account",themeLight:"Light",themeDark:"Dark",reload:"Tải lại ứng dụng",remoteDesktop:"Điều khiển từ xa",settings:"C\xe0i đặt",enablePush:"Bật th\xf4ng b\xe1o đẩy",disablePush:"Tắt th\xf4ng b\xe1o đẩy",pushHint:"Bật th\xf4ng b\xe1o đẩy để được nhắc khi AI ho\xe0n th\xe0nh t\xe1c vụ",pushActiveHint:"Th\xf4ng b\xe1o đẩy đang bật cho thiết bị n\xe0y. Bạn sẽ được b\xe1o khi AI ho\xe0n th\xe0nh.",versionMismatch:"Agent {version} đ\xe3 lỗi thời",versionMismatchHint:"Một số t\xednh năng c\xf3 thể kh\xf4ng hoạt động. Chạy:",updateNow:"Cập nhật ngay",updating:"Đang cập nhật… kết nối lại",webReloadTitle:"C\xf3 bản giao diện mới",webReloadHint:"Tải lại để cập nhật giao diện mới nhất.",reloadWeb:"Tải lại",updateAvailableTitle:"C\xf3 bản cập nhật 9Remote host",updateStarting:"Đang bắt đầu cập nhật…",updateInstalling:"Đang c\xe0i bản mới…",updateTimeout:"Cập nhật qu\xe1 l\xe2u",updateTimeoutHint:"Tải lại thủ c\xf4ng nếu kh\xf4ng phục hồi.",updateRestarting:"Đang khởi động lại agent…",updateReconnecting:"Đang kết nối lại…",updateDone:"Đ\xe3 cập nhật! Đang tải lại…",version:"Phi\xean bản"},workspace:{loading:"Đang tải...",logoutTitle:"Đăng xuất",logoutMessage:"Bạn c\xf3 chắc muốn đăng xuất?",failedCreateSession:"Kh\xf4ng tạo được session: {error}",failedRenameSession:"Kh\xf4ng đổi t\xean được session: {error}"},sessions:{headerTitle:"9remote.cc",connected:"Đ\xe3 kết nối",disconnected:"Mất kết nối",codespaceStopped:"Codespace đ\xe3 dừng",placeholder:"T\xean terminal (t\xf9y chọn)",newButton:"+ Tạo mới",empty:"Kh\xf4ng c\xf3 session n\xe0o",emptyHint:"Tạo session mới để bắt đầu",created:"Tạo l\xfac {time}",deleteTitle:"X\xf3a Session",deleteMessage:'Bạn c\xf3 chắc muốn x\xf3a "{name}"?',editName:"Sửa t\xean",openAsUi:"Mở dạng giao diện",openAsTerminal:"Mở dạng terminal",modeSwitchFailed:"Kh\xf4ng chuyển được chế độ",newTerminal:"Terminal mới",options:"Options"},workspaces:{title:"Workspace",newWorkspace:"Th\xeam workspace",newWorkspacePrompt:"T\xean workspace",defaultName:"Workspace mới",ungrouped:"Chưa c\xf3 workspace",addTerminal:"Terminal mới ở đ\xe2y",moveToWorkspace:"Chuyển sang workspace",rename:"Đổi t\xean workspace",delete:"Gỡ workspace",emptyWorkspace:"Chưa c\xf3 terminal",selectFolder:"Chọn thư mục",browse:"Duyệt",recentFolders:"Gần đ\xe2y",searchFolders:"Search folders...",parentFolder:"Up one level",drives:"Drives",homeFolder:"Home",hiddenFolders:"Hidden folders",selectNamed:'Choose "{name}"',enterPath:"Type a path and press Enter",pathNotFolder:"Đường dẫn n\xe0y kh\xf4ng phải thư mục",filterOrPath:"Search, or type a path like /home/me",notADirectory:'"{name}" is not a folder in {dir}',multipleDirMatches:'"{name}" matches several folders in {dir}',invalidPath:"Invalid path",openHere:"Terminal mới ở đ\xe2y",tabFiles:"File",tabGit:"Git",tabTrees:"Worktree",refreshRepos:"Qu\xe9t lại repo",onlyChanged:"Chỉ file đ\xe3 đổi",openFullFiles:"Open full file explorer",emptyTitle:"Chưa mở g\xec",cardWorkspaceTitle:"Workspace",cardWorkspaceDesc:"Mở thư mục v\xe0 chạy terminal trong đ\xf3",cardRemoteTitle:"Remote desktop",cardRemoteDesc:"Điều khiển m\xe0n h\xecnh m\xe1y n\xe0y",worktrees:"Worktree",branches:"Branch",newWorktree:"Worktree mới",worktreeName:"T\xean branch",worktreeRepoLabel:"Repo để tạo worktree",worktreeNameAscii:"T\xean n\xe0y kh\xf4ng tạo được branch — g\xf5 bằng chữ Latin.",addWorktree:"Th\xeam worktree",removeWorktree:"Gỡ worktree",removeWorktreeMessage:'Gỡ worktree ở "{path}"?',removeWorktreeFolder:"Thư mục: {path}",removeWorktreeBranchDelete:"Branch: {branch} (đ\xe3 merge — x\xf3a k\xe8m)",removeWorktreeBranchKeep:"Branch: {branch} (chưa merge — giữ lại)",removeWorktreeSessions:"{count} session b\xean trong: {names}",removeWorktreeBranch:'Branch "{branch}" cũng bị x\xf3a (nếu đ\xe3 merge).',worktreeBranchKept:'Branch "{branch}" được giữ lại: chưa merge.',worktreeBusy:"C\xf2n {count} terminal đang chạy trong worktree n\xe0y: {names}",checkedOut:"đang checkout",newBranch:"Branch mới",checkout:"Checkout",searchBranch:"T\xecm branch",worktreePath:"Đường dẫn worktree",nestedRepos:"{count} repo",showCleanRepos:"Hiện {count} repo kh\xf4ng đổi",showHiddenRepos:"Bỏ ẩn {count} repo",hideRepo:"Ẩn repo n\xe0y",scanDeeper:"Qu\xe9t s\xe2u hơn",deleteTitle:"Gỡ workspace",deleteMessage:'Gỡ workspace "{name}"? Terminal trong đ\xf3 sẽ đ\xf3ng. File tr\xean đĩa kh\xf4ng bị đụng.'},terminal:{quotaNoData:"No quota data",quotaUsageTitle:"usage",back:"Quay lại",menu:"Menu",newTerminal:"Terminal mới",remoteDesktop:"Điều khiển từ xa",defaultName:"Term"},files:{selectWorkspace:"Chọn Workspace",recentWorkspaces:"Workspace gần đ\xe2y",home:"Thư mục Home",root:"Thư mục gốc",drive:"Ổ đĩa {letter}",codespaces:"Codespaces",removeRecent:"X\xf3a khỏi danh s\xe1ch gần đ\xe2y",removeTitle:"X\xf3a Workspace",removeMessage:'X\xf3a "{name}" khỏi workspace gần đ\xe2y?',setAsWorkspace:"Chọn l\xe0m Workspace",openFolder:"Mở thư mục",newFile:"Tệp mới",newFolder:"Thư mục mới",rename:"Đổi t\xean",delete:"X\xf3a",deleteFile:"X\xf3a tệp",deleteFolder:"X\xf3a thư mục",deleteFileMessage:'X\xf3a "{name}"?',deleteFolderMessage:'X\xf3a thư mục "{name}" v\xe0 to\xe0n bộ nội dung?',emptyFolder:"Thư mục trống",git:"Git",parent:"Thư mục cha",workspace:"Workspace",failedLoad:"Kh\xf4ng tải được: {error}",failedDelete:"Kh\xf4ng x\xf3a được: {error}",failedCreate:"Kh\xf4ng tạo được: {error}",failedRename:"Kh\xf4ng đổi t\xean được: {error}",enterName:"Nhập t\xean",confirmRename:"Đổi t\xean th\xe0nh:",setWorkspace:"Đặt l\xe0m Workspace",setAsWorkspaceTitle:"Đặt l\xe0m workspace",switchWorkspace:"Đổi workspace",searchFiles:"T\xecm tệp",toggleHidden:"Ẩn/hiện tệp ẩn",searchPlaceholder:"T\xecm tệp...",searching:"Đang t\xecm...",noFilesFound:"Kh\xf4ng t\xecm thấy tệp",noGitRepo:"Kh\xf4ng c\xf3 git repository",cannotOpenBinary:"Kh\xf4ng thể mở tệp binary",createNew:"Tạo mới",file:"Tệp",folder:"Thư mục",placeholderFile:"filename.js",placeholderFolder:"ten-thu-muc",pickFile:"Choose files",pickFolder:"Choose folder",copyPath:"Sao ch\xe9p đường dẫn",copyRelPath:"Copy Relative Path",copyName:"Copy Filename",delete:"X\xf3a",rename:"Đổi t\xean",deleteConfirmTitle:"X\xf3a",deleteConfirmMessage:'X\xf3a "{name}"?'},editor:{save:"Lưu",saving:"Đang lưu...",saved:"Đ\xe3 lưu",unsaved:"C\xf3 thay đổi chưa lưu",close:"Đ\xf3ng",discard:"Bỏ thay đổi",discardTitle:"Bỏ thay đổi",discardMessage:"Bạn c\xf3 thay đổi chưa lưu. Bỏ thay đổi?",unsavedTitle:"Lưu thay đổi cho {name}?",unsavedBody:"Kh\xf4ng lưu th\xec c\xe1c thay đổi sẽ mất.",failedLoad:"Kh\xf4ng tải được tệp: {error}",failedSave:"Kh\xf4ng lưu được: {error}",openFull:"Open in full editor",artifact:"Artifact",readOnly:"Chỉ đọc",line:"D\xf2ng",column:"Cột",gitDiff:"Git Diff",typeText:"Nhập chữ v\xe0 ch\xe8n...",insert:"Ch\xe8n",statusModified:"Đ\xe3 sửa",statusAdded:"Đ\xe3 th\xeam",statusUntracked:"Chưa theo d\xf5i"},git:{title:"Git",branch:"Nh\xe1nh",changes:"Thay đổi",staged:"Đ\xe3 staged",unstaged:"Chưa staged",untracked:"Chưa theo d\xf5i",commit:"Commit",commitAndPush:"Commit & Push",commitSuccess:"Commit successful",pushSuccess:"Push successful",stageFailed:"Failed to stage changes",commitFailed:"Commit failed",pushFailed:"Push failed",pullSuccess:"Pull successful",pullFailed:"Pull failed",stageAllConfirmTitle:"Stage All & Commit",stageAllConfirmMessage:"No changes are staged. Stage all changes and commit?",stageAndCommit:"Stage & Commit",gitActions:"Git actions",commitPlaceholder:"Commit message…",stageAllNote:"Stage all \xb7 {count}",upToDate:"Everything up-to-date",commitMessage:"Nội dung commit",push:"Push",pull:"Pull",fetch:"Fetch",stage:"Stage",stageAll:"Stage tất cả",unstage:"Unstage",discard:"Bỏ thay đổi",discardChanges:"Bỏ thay đổi",discardMessage:'Bỏ thay đổi của "{name}"?',noChanges:"Kh\xf4ng c\xf3 thay đổi",diff:"Diff",pushing:"Đang push...",pulling:"Đang pull...",committing:"Đang commit...",failedCommit:"Kh\xf4ng commit được: {error}",failedPush:"Kh\xf4ng push được: {error}",failedPull:"Kh\xf4ng pull được: {error}",status:"Trạng th\xe1i",diffTab:"Diff",modified:"Đ\xe3 sửa",added:"Đ\xe3 th\xeam",deleted:"Đ\xe3 x\xf3a",untrackedTitle:"Chưa theo d\xf5i",openFile:"Mở tệp",discardChangesTitle:"Bỏ thay đổi",discardConfirmTitle:"Bỏ thay đổi",discardConfirmDelete:'Bạn c\xf3 chắc muốn x\xf3a "{name}"? Kh\xf4ng thể ho\xe0n t\xe1c.',discardConfirmDiscard:'Bạn c\xf3 chắc muốn bỏ thay đổi của "{name}"? Kh\xf4ng thể ho\xe0n t\xe1c.'},remote:{title:"Điều khiển từ xa",connecting:"Đang kết nối...",disconnected:"Mất kết nối",fullscreen:"To\xe0n m\xe0n h\xecnh",exitFullscreen:"Tho\xe1t to\xe0n m\xe0n h\xecnh",receivingImage:"Đang nhận h\xecnh…",keyboard:"B\xe0n ph\xedm",mouse:"Chuột",quality:"Chất lượng",fps:"FPS",debug:"Debug",help:"Trợ gi\xfap",close:"Đ\xf3ng",sendKey:"Gửi ph\xedm",helpTitle:"Trợ gi\xfap điều khiển từ xa",notAvailable:"Điều khiển từ xa kh\xf4ng khả dụng",customizeKeys:"T\xf9y chỉnh ph\xedm",back:"Quay lại",resetZoom:"Đặt lại zoom",refresh:"L\xe0m mới",rectangleSelection:"Chọn v\xf9ng chữ nhật",handMode:"Chế độ tay",toggleKeyboard:"Bật/tắt b\xe0n ph\xedm hệ thống",hideControls:"Hide controls",showControls:"Show controls",textBatchInput:"Nhập văn bản h\xe0ng loạt",extraKeys:"Ph\xedm mở rộng",customizeRemoteKeys:"T\xf9y chỉnh ph\xedm Remote",exitRemote:"Tho\xe1t điều khiển từ xa",debugTitle:"Thống k\xea Debug",minimize:"Thu nhỏ",transport:"Giao thức",latency:"Độ trễ",tilesPerSec:"Tiles/gi\xe2y",bandwidth:"Băng th\xf4ng",clearStats:"X\xf3a thống k\xea",lockTitle:"Windows đang kh\xf3a",lockGrantDesc:'Bật "Mở kh\xf3a m\xe1y từ xa" trong 9remote host tr\xean m\xe1y n\xe0y.',lockDesc:"Nhập m\xe3 PIN hoặc mật khẩu Windows của m\xe1y n\xe0y",lockPlaceholder:"M\xe3 PIN hoặc mật khẩu Windows",unlock:"Mở kh\xf3a",unlocking:"Đang mở kh\xf3a…",unlockFailed:"Mở kh\xf3a thất bại — kiểm tra m\xe3 PIN/mật khẩu v\xe0 thử lại."},remoteHelp:{modePc:"PC / Chuột",modeTrackpad:"Cảm ứng \xb7 Trackpad",modeDirect:"Cảm ứng \xb7 Trực tiếp",mouseTitle:"Chuột",keyboardTitle:"B\xe0n ph\xedm",gesturesTrackpadTitle:"Cử chỉ (Trackpad ✋)",gesturesDirectTitle:"Cử chỉ (Trực tiếp)",toolbarTitle:"Thanh c\xf4ng cụ",mouseClickKey:"Click / K\xe9o",mouseClickDesc:"Chuột tr\xe1i, k\xe9o để chọn/di chuyển",mouseRightKey:"Chuột phải",mouseRightDesc:"Mở menu ngữ cảnh tr\xean remote",mouseWheelKey:"Cuộn chuột",mouseWheelDesc:"Cuộn remote (Shift + Cuộn = ngang)",mouseDoubleKey:"Double-click",mouseDoubleDesc:"Nhấp đ\xfap tr\xean remote",keyPhysicalKey:"Ph\xedm vật l\xfd",keyPhysicalDesc:"Gửi trực tiếp (Tab, F-keys... được bắt)",keyModifierKey:"Ctrl / Alt / Shift / ⌘",keyModifierDesc:"Ph\xedm modifier d\xednh — kết hợp với ph\xedm tiếp theo",trackpadSwipeKey:"1 ng\xf3n vuốt",trackpadSwipeDesc:"Di chuyển con trỏ ảo",trackpadTapKey:"1 ng\xf3n chạm",trackpadTapDesc:"Click tr\xe1i tại con trỏ",trackpad2TapKey:"2 ng\xf3n chạm",trackpad2TapDesc:"Click phải tại con trỏ",trackpad2SwipeKey:"2 ng\xf3n vuốt",trackpad2SwipeDesc:"Cuộn tại vị tr\xed con trỏ",trackpadPinchKey:"2 ng\xf3n chụm",trackpadPinchDesc:"Zoom canvas",trackpadScrollLockKey:"Giữ + k\xe9o",trackpadScrollLockDesc:"Giữ để kh\xf3a cuộn, k\xe9o mọi hướng",directTapKey:"1 ng\xf3n chạm",directTapDesc:"Click tại vị tr\xed chạm",directLongKey:"1 ng\xf3n giữ l\xe2u",directLongDesc:"Click phải",directDoubleKey:"1 ng\xf3n chạm đ\xfap",directDoubleDesc:"Nhấp đ\xfap",directScrollKey:"2 ng\xf3n vuốt",directScrollDesc:"Cuộn remote",directPinchKey:"2 ng\xf3n chụm",directPinchDesc:"Zoom canvas",directPanKey:"1 ng\xf3n k\xe9o (zoom>1)",directPanDesc:"Di chuyển canvas",toolbarHandDesc:"Giữ chuột tr\xe1i (chế độ k\xe9o) — chạm lần nữa để thả",toolbarMouseDirectDesc:"Chuyển sang chế độ Trực tiếp",toolbarMouseTrackpadDesc:"Chuyển sang Trackpad (con trỏ ảo)",toolbarKeyboardDesc:"B\xe0n ph\xedm hệ thống / nhập văn bản h\xe0ng loạt",toolbarRectDesc:"Chế độ chọn v\xf9ng chữ nhật"},remoteControls:{enterToSend:"Tab / Ctrl+Số để chuyển tab",typeToSend:"Nhập văn bản để gửi...",send:"Gửi",trackpadMode:"Chế độ trackpad",directMode:"Chế độ direct",bottomRow:"H\xe0ng dưới",extraPanel:"Bảng mở rộng",exitConfirmMessage:"Bạn c\xf3 chắc muốn tho\xe1t phi\xean điều khiển từ xa hiện tại?"},connection:{retrying:"Đang kết nối lại...",waitingApproval:"Đang chờ ph\xea duyệt",approvalDescription:"9Remote host cần ph\xea duyệt thiết bị n\xe0y trước khi bạn c\xf3 thể kết nối.",approvalHint:"Kiểm tra terminal tr\xean m\xe1y của bạn.",rejectedTitle:"Thiết bị bị từ chối",rejectedDescription:"Thiết bị n\xe0y kh\xf4ng được 9Remote host ph\xea duyệt.",backToLogin:"Quay lại Đăng nhập",failed:"Kết nối thất bại",failedDescription:"Kh\xf4ng thể kết nối sau {n} lần thử",attemptOf:"Lần {n} / {total}",exit:"Tho\xe1t",cancel:"Hủy",retry:"Thử lại ngay"},notifications:{claudeCode:"Claude Code",codex:"Codex",geminiCli:"Gemini CLI",openCode:"OpenCode",title:"Th\xf4ng b\xe1o",empty:"Kh\xf4ng c\xf3 th\xf4ng b\xe1o",needsInput:"cần nhập liệu",badgeTitle:"{blocked} needs input, {done} your turn",replied:"đ\xe3 trả lời",agent:"Agent"},sites:{title:"Trang web",localSites:"Site cục bộ",selectSitePreview:"Chọn site để xem trước",browserNewTab:"New tab",browserAddressPlaceholder:"localhost:3000 or /path",browserNotConnected:"Connect to your agent first",portPlaceholder:"cổng",loadingSites:"Đang tải Sites...",notConnected:"Chưa kết nối tới agent",noSitesFound:"Kh\xf4ng t\xecm thấy site",startServerHint:"H\xe3y chạy local dev server để thấy tại đ\xe2y",siteNamePlaceholder:"T\xean site",saveTitle:"Lưu",editNameTitle:"Sửa t\xean",removeTitle:"X\xf3a",removePortTitle:"X\xf3a cổng",removePortMessage:"X\xf3a cổng {port} khỏi danh s\xe1ch đ\xe3 lưu?",popupBlocked:"Popup đ\xe3 bị chặn! H\xe3y cho ph\xe9p popup cho trang n\xe0y.",startProxyFailed:"Kh\xf4ng thể khởi tạo proxy cho {name}",foundCount:"T\xecm thấy {n} site{suffix}",focusOpenedTab:"Focus tab đ\xe3 mở",openInNewTab:"Mở tab mới",goBack:"Quay lại",goForward:"Tiến tới",loadingSite:"Đang tải...",empty:"Kh\xf4ng c\xf3 site n\xe0o đang chạy",emptyHint:"Chạy local server để xem ở đ\xe2y",open:"Mở",refresh:"Tải lại"},commandNotes:{title:"Ghi ch\xfa lệnh",noSavedCommands:"Chưa c\xf3 lệnh đ\xe3 lưu",addFirstBelow:"Th\xeam lệnh đầu ti\xean b\xean dưới",clickToCopy:"Bấm để sao ch\xe9p",copiedBang:"Đ\xe3 sao ch\xe9p!",copy:"Sao ch\xe9p",edit:"Sửa",delete:"X\xf3a",editCommandPlaceholder:"Sửa lệnh...",addCommandPlaceholder:"Th\xeam lệnh...",update:"Cập nhật",add:"Th\xeam",empty:"Chưa c\xf3 ghi ch\xfa",emptyHint:"Lưu lệnh để truy cập nhanh",add:"Th\xeam ghi ch\xfa",edit:"Sửa ghi ch\xfa",delete:"X\xf3a ghi ch\xfa",deleteMessage:"X\xf3a ghi ch\xfa n\xe0y?",name:"T\xean",command:"Lệnh",save:"Lưu",placeholderName:"vd: Khởi động dev server",placeholderCommand:"vd: npm run dev"},mobileKeyboard:{pasteHere:"D\xe1n v\xe0o đ\xe2y (Cmd+V)",enterToSend:"{shortcut} to switch tab",typeCommand:"Nhập lệnh v\xe0 gửi...",send:"Gửi",toggleExtraKeys:"Bật/tắt ph\xedm mở rộng",toggleTextInput:"Bật/tắt \xf4 nhập văn bản",customizeTerminalKeys:"T\xf9y chỉnh ph\xedm Terminal",mainBar:"Thanh ch\xednh",extraPanel:"Bảng mở rộng",fileTooLarge:"File qu\xe1 lớn (tối đa 5MB)",readFileFailed:"Kh\xf4ng thể đọc file",uploadFailed:"Tải file thất bại: {error}"},terminalPane:{scrollToBottom:"Cuộn xuống cuối",changedFiles:"Changed files",pasteOrType:"D\xe1n hoặc nhập tại đ\xe2y",paste:"D\xe1n"},pwaGuide:{copyYourKey:"Sao ch\xe9p Key của bạn",copyKeyHint:"Nhấn v\xe0o key b\xean dưới để sao ch\xe9p — bạn sẽ cần để đăng nhập sau khi c\xe0i",tapToCopyApiKey:"Nhấn để sao ch\xe9p API key",copiedBang:"Đ\xe3 sao ch\xe9p!",copy:"Sao ch\xe9p",tapShareButton:"Nhấn n\xfat Share",tapShareHint:"Nhấn n\xfat share ở dưới c\xf9ng của Safari",addToHome:"Th\xeam v\xe0o M\xe0n h\xecnh ch\xednh",addToHomeHint:'Cuộn xuống v\xe0 nhấn "Add to Home Screen"',openAppPasteKey:"Mở app v\xe0 d\xe1n key",openAppPasteKeyHint:"Mở app đ\xe3 c\xe0i v\xe0 d\xe1n key để đăng nhập",openMenu:"Mở Menu",openMenuHint:"Nhấn n\xfat menu (ba chấm) trong Chrome",installApp:"C\xe0i ứng dụng",installAppHint:'Nhấn "Install app" hoặc "Add to Home screen"',lookInstallIcon:"T\xecm icon c\xe0i đặt",lookInstallIconHint:"T\xecm icon c\xe0i đặt tr\xean thanh địa chỉ",clickInstallPaste:"Nhấn c\xe0i v\xe0 d\xe1n key",installNow:"Install Now",installNowHint:"Install 9Remote as an app for quick access",installing:"Installing...",clickInstallPasteHint:"Nhấn c\xe0i, mở app, v\xe0 d\xe1n key để đăng nhập",alternativeHint:'C\xe1ch kh\xe1c: Mở menu tr\xecnh duyệt → "Install 9Remote" hoặc "Create shortcut"',loadingPlatform:"Đang nhận diện nền tảng...",iosPlatform:"iOS (iPhone/iPad)",androidPlatform:"Android",macosPlatform:"macOS",windowsPlatform:"Windows",desktopPlatform:"Desktop",alreadyInstalled:"Đ\xe3 c\xe0i đặt!",alreadyInstalledHint:"Bạn đang d\xf9ng 9Remote dưới dạng app đ\xe3 c\xe0i",installationGuide:"Hướng dẫn c\xe0i đặt",installationSteps:"C\xe1c bước c\xe0i đặt:"},community:{title:"Cộng đồng",description:"Tham gia cộng đồng 9Remote"},pwa:{title:"C\xe0i đặt như Ứng dụng",description:"C\xe0i 9Remote v\xe0o thiết bị để c\xf3 trải nghiệm tốt nhất",iosTitle:"iOS Safari",androidTitle:"Android Chrome",desktopTitle:"M\xe1y t\xednh"},codespace:{title:"Codespace",name:"T\xean",status:"Trạng th\xe1i",running:"Đang chạy",autoStart:"Tự khởi động 9Remote",autoStartHint:"Khởi động 9Remote khi mở codespace",stop:"Dừng Codespace",stopHint:"Dừng để tiết kiệm t\xe0i nguy\xean",restartHint:"Để khởi động lại, v\xe0o GitHub",unknown:"Kh\xf4ng x\xe1c định"}}}}]);
@@ -0,0 +1,138 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1763],{1763:(e,t,s)=>{s.d(t,{diagram:()=>ef});var i=s(25658),r=s(42982),n=s(88921);s(34939),s(49877),s(16111),s(12989);var a=s(49519),l=s(84187),o=s(14561),c=s(68567),h=s(45954),u=s(53905),g=s(19818),d=s(4255);function y(e,t){for(let s in t)Object.hasOwn(t,s)&&(e[s]=t[s])}var p=s(20271),b=s(76682),f=s(10312),S=s(87014),x=function(){var e=(0,c.K)(function(e,t,s,i){for(s=s||{},i=e.length;i--;s[e[i]]=t);return s},"o"),t=[1,15],s=[1,7],i=[1,13],r=[1,14],n=[1,19],a=[1,16],l=[1,17],o=[1,18],h=[8,30],u=[8,10,21,28,29,30,31,39,43,46],g=[1,23],d=[1,24],y=[8,10,15,16,21,28,29,30,31,39,43,46],p=[8,10,15,16,21,27,28,29,30,31,39,43,46],b=[1,49],f={trace:(0,c.K)(function(){},"trace"),yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,NODE_ID:31,nodeShapeNLabel:32,dirList:33,DIR:34,NODE_DSTART:35,NODE_DEND:36,BLOCK_ARROW_START:37,BLOCK_ARROW_END:38,classDef:39,CLASSDEF_ID:40,CLASSDEF_STYLEOPTS:41,DEFAULT:42,class:43,CLASSENTITY_IDS:44,STYLECLASS:45,style:46,STYLE_ENTITY_IDS:47,STYLE_DEFINITION_DATA:48,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"NODE_ID",34:"DIR",35:"NODE_DSTART",36:"NODE_DEND",37:"BLOCK_ARROW_START",38:"BLOCK_ARROW_END",39:"classDef",40:"CLASSDEF_ID",41:"CLASSDEF_STYLEOPTS",42:"DEFAULT",43:"class",44:"CLASSENTITY_IDS",45:"STYLECLASS",46:"style",47:"STYLE_ENTITY_IDS",48:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[33,1],[33,2],[32,3],[32,4],[23,3],[23,3],[24,3],[25,3]],performAction:(0,c.K)(function(e,t,s,i,r,n,a){var l=n.length-1;switch(r){case 4:i.getLogger().debug("Rule: separator (NL) ");break;case 5:i.getLogger().debug("Rule: separator (Space) ");break;case 6:i.getLogger().debug("Rule: separator (EOF) ");break;case 7:i.getLogger().debug("Rule: hierarchy: ",n[l-1]),i.setHierarchy(n[l-1]);break;case 8:i.getLogger().debug("Stop NL ");break;case 9:i.getLogger().debug("Stop EOF ");break;case 10:i.getLogger().debug("Stop NL2 ");break;case 11:i.getLogger().debug("Stop EOF2 ");break;case 12:i.getLogger().debug("Rule: statement: ",n[l]),"number"==typeof n[l].length?this.$=n[l]:this.$=[n[l]];break;case 13:i.getLogger().debug("Rule: statement #2: ",n[l-1]),this.$=[n[l-1]].concat(n[l]);break;case 14:i.getLogger().debug("Rule: link: ",n[l],e),this.$={edgeTypeStr:n[l],label:""};break;case 15:i.getLogger().debug("Rule: LABEL link: ",n[l-3],n[l-1],n[l]),this.$={edgeTypeStr:n[l],label:n[l-1]};break;case 18:let o=parseInt(n[l]),c=i.generateId();this.$={id:c,type:"space",label:"",width:o,children:[]};break;case 23:i.getLogger().debug("Rule: (nodeStatement link node) ",n[l-2],n[l-1],n[l]," typestr: ",n[l-1].edgeTypeStr);let h=i.edgeStrToEdgeData(n[l-1].edgeTypeStr),u=i.edgeStrToEdgeStartData(n[l-1].edgeTypeStr),g=i.edgeStrToThickness(n[l-1].edgeTypeStr),d=i.edgeStrToPattern(n[l-1].edgeTypeStr);this.$=[{id:n[l-2].id,label:n[l-2].label,type:n[l-2].type,directions:n[l-2].directions},{id:n[l-2].id+"-"+n[l].id,start:n[l-2].id,end:n[l].id,label:n[l-1].label,type:"edge",thickness:g,pattern:d,directions:n[l].directions,arrowTypeEnd:h,arrowTypeStart:u},{id:n[l].id,label:n[l].label,type:i.typeStr2Type(n[l].typeStr),directions:n[l].directions}];break;case 24:i.getLogger().debug("Rule: nodeStatement (abc88 node size) ",n[l-1],n[l]),this.$={id:n[l-1].id,label:n[l-1].label,type:i.typeStr2Type(n[l-1].typeStr),directions:n[l-1].directions,widthInColumns:parseInt(n[l],10)};break;case 25:i.getLogger().debug("Rule: nodeStatement (node) ",n[l]),this.$={id:n[l].id,label:n[l].label,type:i.typeStr2Type(n[l].typeStr),directions:n[l].directions,widthInColumns:1};break;case 26:i.getLogger().debug("APA123",this?this:"na"),i.getLogger().debug("COLUMNS: ",n[l]),this.$={type:"column-setting",columns:"auto"===n[l]?-1:parseInt(n[l])};break;case 27:i.getLogger().debug("Rule: id-block statement : ",n[l-2],n[l-1]),i.generateId(),this.$={...n[l-2],type:"composite",children:n[l-1]};break;case 28:i.getLogger().debug("Rule: blockStatement : ",n[l-2],n[l-1],n[l]);let y=i.generateId();this.$={id:y,type:"composite",label:"",children:n[l-1]};break;case 29:i.getLogger().debug("Rule: node (NODE_ID separator): ",n[l]),this.$={id:n[l]};break;case 30:i.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",n[l-1],n[l]),this.$={id:n[l-1],label:n[l].label,typeStr:n[l].typeStr,directions:n[l].directions};break;case 31:i.getLogger().debug("Rule: dirList: ",n[l]),this.$=[n[l]];break;case 32:i.getLogger().debug("Rule: dirList: ",n[l-1],n[l]),this.$=[n[l-1]].concat(n[l]);break;case 33:i.getLogger().debug("Rule: nodeShapeNLabel: ",n[l-2],n[l-1],n[l]),this.$={typeStr:n[l-2]+n[l],label:n[l-1]};break;case 34:i.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",n[l-3],n[l-2]," #3:",n[l-1],n[l]),this.$={typeStr:n[l-3]+n[l],label:n[l-2],directions:n[l-1]};break;case 35:case 36:this.$={type:"classDef",id:n[l-1].trim(),css:n[l].trim()};break;case 37:this.$={type:"applyClass",id:n[l-1].trim(),styleClass:n[l].trim()};break;case 38:this.$={type:"applyStyles",id:n[l-1].trim(),stylesStr:n[l].trim()}}},"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{10:t,11:3,13:4,19:5,20:6,21:s,22:8,23:9,24:10,25:11,26:12,28:i,29:r,31:n,39:a,43:l,46:o},{8:[1,20]},e(h,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,10:t,21:s,28:i,29:r,31:n,39:a,43:l,46:o}),e(u,[2,16],{14:22,15:g,16:d}),e(u,[2,17]),e(u,[2,18]),e(u,[2,19]),e(u,[2,20]),e(u,[2,21]),e(u,[2,22]),e(y,[2,25],{27:[1,25]}),e(u,[2,26]),{19:26,26:12,31:n},{10:t,11:27,13:4,19:5,20:6,21:s,22:8,23:9,24:10,25:11,26:12,28:i,29:r,31:n,39:a,43:l,46:o},{40:[1,28],42:[1,29]},{44:[1,30]},{47:[1,31]},e(p,[2,29],{32:32,35:[1,33],37:[1,34]}),{1:[2,7]},e(h,[2,13]),{26:35,31:n},{31:[2,14]},{17:[1,36]},e(y,[2,24]),{10:t,11:37,13:4,14:22,15:g,16:d,19:5,20:6,21:s,22:8,23:9,24:10,25:11,26:12,28:i,29:r,31:n,39:a,43:l,46:o},{30:[1,38]},{41:[1,39]},{41:[1,40]},{45:[1,41]},{48:[1,42]},e(p,[2,30]),{18:[1,43]},{18:[1,44]},e(y,[2,23]),{18:[1,45]},{30:[1,46]},e(u,[2,28]),e(u,[2,35]),e(u,[2,36]),e(u,[2,37]),e(u,[2,38]),{36:[1,47]},{33:48,34:b},{15:[1,50]},e(u,[2,27]),e(p,[2,33]),{38:[1,51]},{33:52,34:b,38:[2,31]},{31:[2,15]},e(p,[2,34]),{38:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:(0,c.K)(function(e,t){if(t.recoverable)this.trace(e);else{var s=Error(e);throw s.hash=t,s}},"parseError"),parse:(0,c.K)(function(e){var t=this,s=[0],i=[],r=[null],n=[],a=this.table,l="",o=0,h=0,u=0,g=n.slice.call(arguments,1),d=Object.create(this.lexer),y={};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(y[p]=this.yy[p]);d.setInput(e,y),y.lexer=d,y.parser=this,void 0===d.yylloc&&(d.yylloc={});var b=d.yylloc;n.push(b);var f=d.options&&d.options.ranges;function S(){var e;return"number"!=typeof(e=i.pop()||d.lex()||1)&&(e instanceof Array&&(e=(i=e).pop()),e=t.symbols_[e]||e),e}"function"==typeof y.parseError?this.parseError=y.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,c.K)(function(e){s.length=s.length-2*e,r.length=r.length-e,n.length=n.length-e},"popStack"),(0,c.K)(S,"lex");for(var x,L,m,_,k,w,E,D,$,N={};;){if(m=s[s.length-1],this.defaultActions[m]?_=this.defaultActions[m]:(null==x&&(x=S()),_=a[m]&&a[m][x]),void 0===_||!_.length||!_[0]){var I="";for(w in $=[],a[m])this.terminals_[w]&&w>2&&$.push("'"+this.terminals_[w]+"'");I=d.showPosition?"Parse error on line "+(o+1)+":\n"+d.showPosition()+"\nExpecting "+$.join(", ")+", got '"+(this.terminals_[x]||x)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==x?"end of input":"'"+(this.terminals_[x]||x)+"'"),this.parseError(I,{text:d.match,token:this.terminals_[x]||x,line:d.yylineno,loc:b,expected:$})}if(_[0]instanceof Array&&_.length>1)throw Error("Parse Error: multiple actions possible at state: "+m+", token: "+x);switch(_[0]){case 1:s.push(x),r.push(d.yytext),n.push(d.yylloc),s.push(_[1]),x=null,L?(x=L,L=null):(h=d.yyleng,l=d.yytext,o=d.yylineno,b=d.yylloc,u>0&&u--);break;case 2:if(E=this.productions_[_[1]][1],N.$=r[r.length-E],N._$={first_line:n[n.length-(E||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-(E||1)].first_column,last_column:n[n.length-1].last_column},f&&(N._$.range=[n[n.length-(E||1)].range[0],n[n.length-1].range[1]]),void 0!==(k=this.performAction.apply(N,[l,h,o,y,_[1],r,n].concat(g))))return k;E&&(s=s.slice(0,-1*E*2),r=r.slice(0,-1*E),n=n.slice(0,-1*E)),s.push(this.productions_[_[1]][0]),r.push(N.$),n.push(N._$),D=a[s[s.length-2]][s[s.length-1]],s.push(D);break;case 3:return!0}}return!0},"parse")};function S(){this.yy={}}return f.lexer={EOF:1,parseError:(0,c.K)(function(e,t){if(this.yy.parser)this.yy.parser.parseError(e,t);else throw Error(e)},"parseError"),setInput:(0,c.K)(function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,c.K)(function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},"input"),unput:(0,c.K)(function(e){var t=e.length,s=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),s.length-1&&(this.yylineno-=s.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:s?(s.length===i.length?this.yylloc.first_column:0)+i[i.length-s.length].length-s[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},"unput"),more:(0,c.K)(function(){return this._more=!0,this},"more"),reject:(0,c.K)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):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(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,c.K)(function(e){this.unput(this.match.slice(e))},"less"),pastInput:(0,c.K)(function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,c.K)(function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,c.K)(function(){var e=this.pastInput(),t=Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},"showPosition"),test_match:(0,c.K)(function(e,t){var s,i,r;if(this.options.backtrack_lexer&&(r={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(r.yylloc.range=this.yylloc.range.slice(0))),(i=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],s=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),s)return s;if(this._backtrack)for(var n in r)this[n]=r[n];return!1},"test_match"),next:(0,c.K)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var e,t,s,i,r=this._currentRules(),n=0;n<r.length;n++)if((s=this._input.match(this.rules[r[n]]))&&(!t||s[0].length>t[0].length)){if(t=s,i=n,this.options.backtrack_lexer){if(!1!==(e=this.test_match(s,r[n])))return e;if(!this._backtrack)return!1;t=!1;continue}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,r[i]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,c.K)(function(){var e=this.next();return e||this.lex()},"lex"),begin:(0,c.K)(function(e){this.conditionStack.push(e)},"begin"),popState:(0,c.K)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,c.K)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,c.K)(function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},"topState"),pushState:(0,c.K)(function(e){this.begin(e)},"pushState"),stateStackSize:(0,c.K)(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:(0,c.K)(function(e,t,s,i){switch(s){case 0:return e.getLogger().debug("Found block-beta"),10;case 1:return e.getLogger().debug("Found id-block"),29;case 2:return e.getLogger().debug("Found block"),10;case 3:e.getLogger().debug(".",t.yytext);break;case 4:e.getLogger().debug("_",t.yytext);break;case 5:return 5;case 6:return t.yytext=-1,28;case 7:return t.yytext=t.yytext.replace(/columns\s+/,""),e.getLogger().debug("COLUMNS (LEX)",t.yytext),28;case 8:case 76:case 77:case 99:this.pushState("md_string");break;case 9:return"MD_STR";case 10:case 34:case 79:this.popState();break;case 11:this.pushState("string");break;case 12:e.getLogger().debug("LEX: POPPING STR:",t.yytext),this.popState();break;case 13:return e.getLogger().debug("LEX: STR end:",t.yytext),"STR";case 14:return t.yytext=t.yytext.replace(/space\:/,""),e.getLogger().debug("SPACE NUM (LEX)",t.yytext),21;case 15:return t.yytext="1",e.getLogger().debug("COLUMNS (LEX)",t.yytext),21;case 16:return 42;case 17:return"LINKSTYLE";case 18:return"INTERPOLATE";case 19:return this.pushState("CLASSDEF"),39;case 20:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 21:return this.popState(),this.pushState("CLASSDEFID"),40;case 22:return this.popState(),41;case 23:return this.pushState("CLASS"),43;case 24:return this.popState(),this.pushState("CLASS_STYLE"),44;case 25:return this.popState(),45;case 26:return this.pushState("STYLE_STMNT"),46;case 27:return this.popState(),this.pushState("STYLE_DEFINITION"),47;case 28:return this.popState(),48;case 29:return this.pushState("acc_title"),"acc_title";case 30:return this.popState(),"acc_title_value";case 31:return this.pushState("acc_descr"),"acc_descr";case 32:return this.popState(),"acc_descr_value";case 33:this.pushState("acc_descr_multiline");break;case 35:return"acc_descr_multiline_value";case 36:return 30;case 37:case 38:case 40:case 41:case 44:return this.popState(),e.getLogger().debug("Lex: (("),"NODE_DEND";case 39:return this.popState(),e.getLogger().debug("Lex: ))"),"NODE_DEND";case 42:return this.popState(),e.getLogger().debug("Lex: (-"),"NODE_DEND";case 43:return this.popState(),e.getLogger().debug("Lex: -)"),"NODE_DEND";case 45:return this.popState(),e.getLogger().debug("Lex: ]]"),"NODE_DEND";case 46:return this.popState(),e.getLogger().debug("Lex: ("),"NODE_DEND";case 47:return this.popState(),e.getLogger().debug("Lex: ])"),"NODE_DEND";case 48:case 49:return this.popState(),e.getLogger().debug("Lex: /]"),"NODE_DEND";case 50:return this.popState(),e.getLogger().debug("Lex: )]"),"NODE_DEND";case 51:return this.popState(),e.getLogger().debug("Lex: )"),"NODE_DEND";case 52:return this.popState(),e.getLogger().debug("Lex: ]>"),"NODE_DEND";case 53:return this.popState(),e.getLogger().debug("Lex: ]"),"NODE_DEND";case 54:return e.getLogger().debug("Lexa: -)"),this.pushState("NODE"),35;case 55:return e.getLogger().debug("Lexa: (-"),this.pushState("NODE"),35;case 56:return e.getLogger().debug("Lexa: ))"),this.pushState("NODE"),35;case 57:case 59:case 60:case 61:case 64:return e.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;case 58:return e.getLogger().debug("Lex: ((("),this.pushState("NODE"),35;case 62:return e.getLogger().debug("Lexc: >"),this.pushState("NODE"),35;case 63:return e.getLogger().debug("Lexa: (["),this.pushState("NODE"),35;case 65:case 66:case 67:case 68:case 69:case 70:case 71:return this.pushState("NODE"),35;case 72:return e.getLogger().debug("Lexa: ["),this.pushState("NODE"),35;case 73:return this.pushState("BLOCK_ARROW"),e.getLogger().debug("LEX ARR START"),37;case 74:return e.getLogger().debug("Lex: NODE_ID",t.yytext),31;case 75:return e.getLogger().debug("Lex: EOF",t.yytext),8;case 78:return"NODE_DESCR";case 80:e.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 81:e.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 82:return e.getLogger().debug("LEX: NODE_DESCR:",t.yytext),"NODE_DESCR";case 83:e.getLogger().debug("LEX POPPING"),this.popState();break;case 84:e.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 85:return t.yytext=t.yytext.replace(/^,\s*/,""),e.getLogger().debug("Lex (right): dir:",t.yytext),"DIR";case 86:return t.yytext=t.yytext.replace(/^,\s*/,""),e.getLogger().debug("Lex (left):",t.yytext),"DIR";case 87:return t.yytext=t.yytext.replace(/^,\s*/,""),e.getLogger().debug("Lex (x):",t.yytext),"DIR";case 88:return t.yytext=t.yytext.replace(/^,\s*/,""),e.getLogger().debug("Lex (y):",t.yytext),"DIR";case 89:return t.yytext=t.yytext.replace(/^,\s*/,""),e.getLogger().debug("Lex (up):",t.yytext),"DIR";case 90:return t.yytext=t.yytext.replace(/^,\s*/,""),e.getLogger().debug("Lex (down):",t.yytext),"DIR";case 91:return t.yytext="]>",e.getLogger().debug("Lex (ARROW_DIR end):",t.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";case 92:return e.getLogger().debug("Lex: LINK","#"+t.yytext+"#"),15;case 93:case 94:case 95:return e.getLogger().debug("Lex: LINK",t.yytext),15;case 96:case 97:case 98:return e.getLogger().debug("Lex: START_LINK",t.yytext),this.pushState("LLABEL"),16;case 100:return e.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";case 101:return this.popState(),e.getLogger().debug("Lex: LINK","#"+t.yytext+"#"),15;case 102:case 103:return this.popState(),e.getLogger().debug("Lex: LINK",t.yytext),15;case 104:return e.getLogger().debug("Lex: COLON",t.yytext),t.yytext=t.yytext.slice(1),27}},"anonymous"),rules:[/^(?:block-beta\b)/,/^(?:block:)/,/^(?:block\b)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:=]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[28],inclusive:!1},STYLE_STMNT:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[22],inclusive:!1},CLASSDEF:{rules:[20,21],inclusive:!1},CLASS_STYLE:{rules:[25],inclusive:!1},CLASS:{rules:[24],inclusive:!1},LLABEL:{rules:[99,100,101,102,103],inclusive:!1},ARROW_DIR:{rules:[85,86,87,88,89,90,91],inclusive:!1},BLOCK_ARROW:{rules:[76,81,84],inclusive:!1},NODE:{rules:[37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,77,80],inclusive:!1},md_string:{rules:[9,10,78,79],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[12,13,82,83],inclusive:!1},acc_descr_multiline:{rules:[34,35],inclusive:!1},acc_descr:{rules:[32],inclusive:!1},acc_title:{rules:[30],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,11,14,15,16,17,18,19,23,26,29,31,33,36,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,92,93,94,95,96,97,98,104],inclusive:!0}}},(0,c.K)(S,"Parser"),S.prototype=f,f.Parser=S,new S}();x.parser=x;var L=new Map,m=[],_=new Map,k="color",w="fill",E=new Map,D="",$=(0,c.K)(e=>l.Y2.sanitizeText(e,(0,l.D7)()),"sanitizeText"),N=(0,c.K)(function(e,t=""){let s=E.get(e);s||(s={id:e,styles:[],textStyles:[]},E.set(e,s)),null!=t&&t.split(",").forEach(e=>{let t=e.replace(/([^;]*);/,"$1").trim();if(RegExp(k).exec(e)){let e=t.replace(w,"bgFill").replace(k,w);s.textStyles.push(e)}s.styles.push(t)})},"addStyleClass"),I=(0,c.K)(function(e,t=""){let s=L.get(e);null!=t&&(s.styles=t.split(","))},"addStyle2Node"),T=(0,c.K)(function(e,t){e.split(",").forEach(function(e){let s=L.get(e);if(void 0===s){let t=e.trim();s={id:t,type:"na",children:[]},L.set(t,s)}s.classes||(s.classes=[]),s.classes.push(t)})},"setCssClass"),R=(0,c.K)((e,t)=>{let s=e.flat(),i=[],r=s.find(e=>e?.type==="column-setting"),n=r?.columns??-1;for(let e of s){if("number"==typeof n&&n>0&&"column-setting"!==e.type&&"number"==typeof e.widthInColumns&&e.widthInColumns>n&&o.R.warn(`Block ${e.id} width ${e.widthInColumns} exceeds configured column width ${n}`),e.label&&(e.label=$(e.label)),"classDef"===e.type){N(e.id,e.css);continue}if("applyClass"===e.type){T(e.id,e?.styleClass??"");continue}if("applyStyles"===e.type){e?.stylesStr&&I(e.id,e?.stylesStr);continue}if("column-setting"===e.type)t.columns=e.columns??-1;else if("edge"===e.type){let t=(_.get(e.id)??0)+1;_.set(e.id,t),e.id=t+"-"+e.id,m.push(e)}else{e.label||("composite"===e.type?e.label="":e.label=e.id);let t=L.get(e.id);if(void 0===t?L.set(e.id,e):("na"!==e.type&&(t.type=e.type),e.label!==e.id&&(t.label=e.label)),e.children&&R(e.children,e),"space"===e.type){let t=e.width??1;for(let s=0;s<t;s++){let t=function(e){if((0,h.s)(e))return e;let t=(0,u.b)(e);if(!function(e){switch((0,u.b)(e)){case g.R_:case g.Uw:case g.cT:case g.iq:case g.$V:case g.vC:case g.ri:case g.ML:case g.XZ:case g.i1:case g._u:case g.pj:case g.kj:case g.GX:case g.Av:case g.NA:case g.OG:case g.VP:case g.Qb:case g.q:case g.x6:case g.ZR:return!0;default:return!1}}(e))return{};if(Array.isArray(e)){let t=Array.from(e);return e.length>0&&"string"==typeof e[0]&&Object.hasOwn(e,"index")&&(t.index=e.index,t.input=e.input),t}if((0,d.i)(e))return new e.constructor(e.buffer,e.byteOffset,e.length);if("[object ArrayBuffer]"===t)return new ArrayBuffer(e.byteLength);if("[object DataView]"===t){let t=e.buffer,s=e.byteOffset,i=e.byteLength,r=new ArrayBuffer(i),n=new Uint8Array(t,s,i);return new Uint8Array(r).set(n),new DataView(r)}if("[object Boolean]"===t||"[object Number]"===t||"[object String]"===t){let s=new e.constructor(e.valueOf());return"[object String]"===t?function(e,t){let s=t.valueOf().length;for(let i in t)Object.hasOwn(t,i)&&(Number.isNaN(Number(i))||Number(i)>=s)&&(e[i]=t[i])}(s,e):y(s,e),s}if("[object Date]"===t)return new Date(Number(e));if("[object RegExp]"===t){let t=new RegExp(e.source,e.flags);return t.lastIndex=e.lastIndex,t}if("[object Symbol]"===t)return Object(Symbol.prototype.valueOf.call(e));if("[object Map]"===t){let t=new Map;return e.forEach((e,s)=>{t.set(s,e)}),t}if("[object Set]"===t){let t=new Set;return e.forEach(e=>{t.add(e)}),t}if("[object Arguments]"===t){let t={};return y(t,e),t.length=e.length,t[Symbol.iterator]=e[Symbol.iterator],t}let s={};return function(e,t){let s=Object.getPrototypeOf(t);null!==s&&"function"==typeof t.constructor&&Object.setPrototypeOf(e,s)}(s,e),y(s,e),function(e,t){let s=Object.getOwnPropertySymbols(t);for(let i=0;i<s.length;i++){let r=s[i];Object.prototype.propertyIsEnumerable.call(t,r)&&(e[r]=t[r])}}(s,e),s}(e);t.id=t.id+"-"+s,L.set(t.id,t),i.push(t)}}else void 0===t&&i.push(e)}}t.children=i},"populateBlockDatabase"),O=[],z={id:"root",type:"composite",children:[],columns:-1},C=(0,c.K)(()=>{o.R.debug("Clear called"),(0,l.IU)(),L=new Map([["root",z={id:"root",type:"composite",children:[],columns:-1}]]),O=[],E=new Map,m=[],_=new Map,D=""},"clear");function A(e){switch(o.R.debug("typeStr2Type",e),e){case"[]":return"square";case"()":return o.R.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}function K(e){return(o.R.debug("typeStr2Type",e),"=="===e)?"thick":"normal"}function v(e){switch(e.trim().slice(-1)){case"x":return"arrow_cross";case"o":return"arrow_circle";case">":return"arrow_point";default:return""}}function B(e){switch(e.trim().charAt(0)){case"x":return"arrow_cross";case"o":return"arrow_circle";case"<":return"arrow_point";default:return"arrow_open"}}function P(e){return e.includes("==")?"thick":"normal"}function F(e){return e.includes(".-")?"dotted":"solid"}(0,c.K)(A,"typeStr2Type"),(0,c.K)(K,"edgeTypeStr2Type"),(0,c.K)(v,"edgeStrToEdgeData"),(0,c.K)(B,"edgeStrToEdgeStartData"),(0,c.K)(P,"edgeStrToThickness"),(0,c.K)(F,"edgeStrToPattern");var j=0,M=(0,c.K)(()=>(j++,"id-"+Math.random().toString(36).substr(2,12)+"-"+j),"generateId"),Y=(0,c.K)(e=>{z.children=e,R(e,z),O=z.children},"setHierarchy"),W=(0,c.K)(e=>{let t=L.get(e);return t?t.columns?t.columns:t.children?t.children.length:-1:-1},"getColumns"),U=(0,c.K)(()=>[...L.values()],"getBlocksFlat"),X=(0,c.K)(()=>O||[],"getBlocks"),G=(0,c.K)(()=>m,"getEdges"),H=(0,c.K)(e=>L.get(e),"getBlock"),q=(0,c.K)(e=>{L.set(e.id,e)},"setBlock"),V=(0,c.K)(e=>{D=e},"setDiagramId"),Z=(0,c.K)(()=>D,"getDiagramId"),J=(0,c.K)(()=>o.R,"getLogger"),Q=(0,c.K)(function(){return E},"getClasses"),ee={getConfig:(0,c.K)(()=>(0,l.zj)().block,"getConfig"),typeStr2Type:A,edgeTypeStr2Type:K,edgeStrToEdgeData:v,edgeStrToEdgeStartData:B,edgeStrToThickness:P,edgeStrToPattern:F,getLogger:J,getBlocksFlat:U,getBlocks:X,getEdges:G,setHierarchy:Y,getBlock:H,setBlock:q,getColumns:W,getClasses:Q,clear:C,generateId:M,setDiagramId:V,getDiagramId:Z},et=(0,c.K)((e,t)=>{let s=p.A,i=s(e,"r"),r=s(e,"g"),n=s(e,"b");return b.A(i,r,n,t)},"fade"),es=(0,c.K)(e=>`.label {
2
+ font-family: ${e.fontFamily};
3
+ color: ${e.nodeTextColor||e.textColor};
4
+ }
5
+ .cluster-label text {
6
+ fill: ${e.titleColor};
7
+ }
8
+ .cluster-label span {
9
+ color: ${e.titleColor};
10
+ }
11
+
12
+
13
+
14
+ .label text,span {
15
+ fill: ${e.nodeTextColor||e.textColor};
16
+ color: ${e.nodeTextColor||e.textColor};
17
+ }
18
+
19
+ .node rect,
20
+ .node circle,
21
+ .node ellipse,
22
+ .node polygon,
23
+ .node path {
24
+ fill: ${e.mainBkg};
25
+ stroke: ${e.nodeBorder};
26
+ stroke-width: 1px;
27
+ }
28
+ .flowchart-label text {
29
+ text-anchor: middle;
30
+ }
31
+ // .flowchart-label .text-outer-tspan {
32
+ // text-anchor: middle;
33
+ // }
34
+ // .flowchart-label .text-inner-tspan {
35
+ // text-anchor: start;
36
+ // }
37
+
38
+ .node .label {
39
+ text-align: center;
40
+ }
41
+ .node.clickable {
42
+ cursor: pointer;
43
+ }
44
+
45
+ .arrowheadPath {
46
+ fill: ${e.arrowheadColor};
47
+ }
48
+
49
+ .edgePath .path {
50
+ stroke: ${e.lineColor};
51
+ stroke-width: 2.0px;
52
+ }
53
+
54
+ .flowchart-link {
55
+ stroke: ${e.lineColor};
56
+ fill: none;
57
+ }
58
+
59
+ .edgeLabel {
60
+ background-color: ${e.edgeLabelBackground};
61
+ /*
62
+ * This is for backward compatibility with existing code that didn't
63
+ * add a \`<p>\` around edge labels.
64
+ *
65
+ * TODO: We should probably remove this in a future release.
66
+ */
67
+ p {
68
+ margin: 0;
69
+ padding: 0;
70
+ display: inline;
71
+ }
72
+ rect {
73
+ opacity: 0.5;
74
+ background-color: ${e.edgeLabelBackground};
75
+ fill: ${e.edgeLabelBackground};
76
+ }
77
+ text-align: center;
78
+ }
79
+
80
+ /* For html labels only */
81
+ .labelBkg {
82
+ background-color: ${e.edgeLabelBackground};
83
+ }
84
+
85
+ .node .cluster {
86
+ // fill: ${et(e.mainBkg,.5)};
87
+ fill: ${et(e.clusterBkg,.5)};
88
+ stroke: ${et(e.clusterBorder,.2)};
89
+ box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px;
90
+ stroke-width: 1px;
91
+ }
92
+
93
+ .cluster text {
94
+ fill: ${e.titleColor};
95
+ }
96
+
97
+ .cluster span {
98
+ color: ${e.titleColor};
99
+ }
100
+ /* .cluster div {
101
+ color: ${e.titleColor};
102
+ } */
103
+
104
+ div.mermaidTooltip {
105
+ position: absolute;
106
+ text-align: center;
107
+ max-width: 200px;
108
+ padding: 2px;
109
+ font-family: ${e.fontFamily};
110
+ font-size: 12px;
111
+ background: ${e.tertiaryColor};
112
+ border: 1px solid ${e.border2};
113
+ border-radius: 2px;
114
+ pointer-events: none;
115
+ z-index: 100;
116
+ }
117
+
118
+ .flowchartTitleText {
119
+ text-anchor: middle;
120
+ font-size: 18px;
121
+ fill: ${e.textColor};
122
+ }
123
+ ${(0,i.o)()}
124
+ `,"getStyles");function ei(e,t){if(0===e||!Number.isInteger(e))throw Error("Columns must be an integer !== 0.");if(t<0||!Number.isInteger(t))throw Error("Position must be a non-negative integer."+t);return e<0?{px:t,py:0}:1===e?{px:0,py:t}:{px:t%e,py:Math.floor(t/e)}}(0,c.K)(ei,"calculateBlockPosition");var er=(0,c.K)(e=>{let t=0,s=0;for(let i of e.children){let{width:e,height:r,x:n,y:a}=i.size??{width:0,height:0,x:0,y:0};if(o.R.debug("getMaxChildSize abc95 child:",i.id,"width:",e,"height:",r,"x:",n,"y:",a,i.type),"space"===i.type)continue;let l=e/(i.widthInColumns??1);l>t&&(t=l),r>s&&(s=r)}return{width:t,height:s}},"getMaxChildSize");function en(e,t,s=0,i=0,r=8){o.R.debug("setBlockSizes abc95 (start)",e.id,e?.size?.x,"block width =",e?.size,"siblingWidth",s),e?.size?.width||(e.size={width:s,height:i,x:0,y:0});let n=0,a=0;if(e.children?.length>0){for(let s of e.children)en(s,t,0,0,r);let l=er(e);for(let t of(n=l.width,a=l.height,o.R.debug("setBlockSizes abc95 maxWidth of",e.id,":s children is ",n,a),e.children))t.size&&(o.R.debug(`abc95 Setting size of children of ${e.id} id=${t.id} ${n} ${a} ${JSON.stringify(t.size)}`),t.size.width=n*(t.widthInColumns??1)+r*((t.widthInColumns??1)-1),t.size.height=a,t.size.x=0,t.size.y=0,o.R.debug(`abc95 updating size of ${e.id} children child:${t.id} maxWidth:${n} maxHeight:${a}`));for(let s of e.children)en(s,t,n,a,r);let c=e.columns??-1,h=0;for(let t of e.children)h+=t.widthInColumns??1;let u=e.children.length;c>0&&c<h&&(u=c);let g=Math.ceil(h/u),d=u*(n+r)+r,y=g*(a+r)+r;if(d<s){o.R.debug(`Detected to small sibling: abc95 ${e.id} siblingWidth ${s} siblingHeight ${i} width ${d}`),d=s,y=i;let t=(s-u*r-r)/u,l=(i-g*r-r)/g;for(let s of(o.R.debug("Size indata abc88",e.id,"childWidth",t,"maxWidth",n),o.R.debug("Size indata abc88",e.id,"childHeight",l,"maxHeight",a),o.R.debug("Size indata abc88 xSize",u,"padding",r),e.children))s.size&&(s.size.width=t,s.size.height=l,s.size.x=0,s.size.y=0)}if(o.R.debug(`abc95 (finale calc) ${e.id} xSize ${u} ySize ${g} columns ${c}${e.children.length} width=${Math.max(d,e.size?.width||0)}`),d<(e?.size?.width||0)){d=e?.size?.width||0;let t=c>0?Math.min(e.children.length,c):e.children.length;if(t>0){let s=(d-t*r-r)/t;for(let t of(o.R.debug("abc95 (growing to fit) width",e.id,d,e.size?.width,s),e.children))t.size&&(t.size.width=s)}}e.size={width:d,height:y,x:0,y:0}}o.R.debug("setBlockSizes abc94 (done)",e.id,e?.size?.x,e?.size?.width,e?.size?.y,e?.size?.height)}function ea(e,t,s=8){o.R.debug(`abc85 layout blocks (=>layoutBlocks) ${e.id} x: ${e?.size?.x} y: ${e?.size?.y} width: ${e?.size?.width}`);let i=e.columns??-1;if(o.R.debug("layoutBlocks columns abc95",e.id,"=>",i,e),e.children&&e.children.length>0){let r=e?.children[0]?.size?.width??0,n=e.children.length*r+(e.children.length-1)*s;o.R.debug("widthOfChildren 88",n,"posX");let a=new Map;{let t=0;for(let s of e.children){if(!s.size)continue;let{py:e}=ei(i,t),r=a.get(e)??0;s.size.height>r&&a.set(e,s.size.height);let n=s?.widthInColumns??1;i>0&&(n=Math.min(n,i-t%i)),t+=n}}let l=new Map;{let e=0;for(let t of[...a.keys()].sort((e,t)=>e-t))l.set(t,e),e+=(a.get(t)??0)+s}let c=0;o.R.debug("abc91 block?.size?.x",e.id,e?.size?.x);let h=e?.size?.x?e?.size?.x+(-e?.size?.width/2||0):-s,u=0;for(let r of e.children){if(!r.size)continue;let{width:n,height:g}=r.size,{px:d,py:y}=ei(i,c);if(y!=u&&(u=y,h=e?.size?.x?e?.size?.x+(-e?.size?.width/2||0):-s,o.R.debug("New row in layout for block",e.id," and child ",r.id,u)),o.R.debug(`abc89 layout blocks (child) id: ${r.id} Pos: ${c} (px, py) ${d},${y} (${e?.size?.x},${e?.size?.y}) parent: ${e.id} width: ${n}${s}`),e.size){let t=n/2;r.size.x=h+s+t,o.R.debug(`abc91 layout blocks (calc) px, pyid:${r.id} startingPos=X${h} new startingPosX${r.size.x} ${t} padding=${s} width=${n} halfWidth=${t} => x:${r.size.x} y:${r.size.y} ${r.widthInColumns} (width * (child?.w || 1)) / 2 ${n*(r?.widthInColumns??1)/2}`),h=r.size.x+t;let i=l.get(y)??0,c=a.get(y)??g;r.size.y=e.size.y-e.size.height/2+i+c/2+s,o.R.debug(`abc88 layout blocks (calc) px, pyid:${r.id}startingPosX${h}${s}${t}=>x:${r.size.x}y:${r.size.y}${r.widthInColumns}(width * (child?.w || 1)) / 2${n*(r?.widthInColumns??1)/2}`)}r.children&&ea(r,t,s);let p=r?.widthInColumns??1;i>0&&(p=Math.min(p,i-c%i)),c+=p,o.R.debug("abc88 columnsPos",r,c)}}o.R.debug(`layout blocks (<==layoutBlocks) ${e.id} x: ${e?.size?.x} y: ${e?.size?.y} width: ${e?.size?.width}`)}function el(e,{minX:t,minY:s,maxX:i,maxY:r}={minX:0,minY:0,maxX:0,maxY:0}){if(e.size&&"root"!==e.id){let{x:n,y:a,width:l,height:o}=e.size;n-l/2<t&&(t=n-l/2),a-o/2<s&&(s=a-o/2),n+l/2>i&&(i=n+l/2),a+o/2>r&&(r=a+o/2)}if(e.children)for(let n of e.children)({minX:t,minY:s,maxX:i,maxY:r}=el(n,{minX:t,minY:s,maxX:i,maxY:r}));return{minX:t,minY:s,maxX:i,maxY:r}}function eo(e){let t=e.getBlock("root");if(!t)return;let s=(0,l.D7)()?.block?.padding??8;en(t,e,0,0,s),ea(t,e,s),o.R.debug("getBlocks",JSON.stringify(t,null,2));let{minX:i,minY:r,maxX:n,maxY:a}=el(t);return{x:i,y:r,width:n-i,height:a-r}}function ec(e,t,s=!1){let i,r="default";(e?.classes?.length||0)>0&&(r=(e?.classes??[]).join(" ")),r+=" flowchart-label";let n=(e?.classes??[]).flatMap(e=>t.getClasses().get(e)?.styles??[]),o=0,c="rect";switch(e.type){case"round":o=5,c="rect";break;case"composite":o=0,c="composite",i=0;break;case"square":case"group":default:c="rect";break;case"diamond":c="question";break;case"hexagon":c="hexagon";break;case"block_arrow":c="block_arrow";break;case"odd":case"rect_left_inv_arrow":c="rect_left_inv_arrow";break;case"lean_right":c="lean_right";break;case"lean_left":c="lean_left";break;case"trapezoid":c="trapezoid";break;case"inv_trapezoid":c="inv_trapezoid";break;case"circle":c="circle";break;case"ellipse":c="ellipse";break;case"stadium":c="stadium";break;case"subroutine":c="subroutine";break;case"cylinder":c="cylinder";break;case"doublecircle":c="doublecircle"}let h=(0,a.sM)(e?.styles??[]),u=e.label,g=e.size??{width:0,height:0,x:0,y:0},d=t.getDiagramId();return{labelStyle:h.labelStyle,shape:c,label:u,labelText:u,rx:o,ry:o,class:r,cssClasses:r,cssStyles:e?.styles??[],cssCompiledStyles:n,style:h.style,id:e.id,domId:d?`${d}-${e.id}`:e.id,isGroup:!1,directions:e.directions,width:g.width||void 0,height:g.height||void 0,wrappingWidth:g.width||1/0,x:g.x,y:g.y,positioned:s,intersect:void 0,padding:i??(0,l.zj)()?.block?.padding??0,widthInColumns:e.widthInColumns??1}}async function eh(e,t,s){let i=ec(t,s,!1);if("group"===t.type)return;let r=(0,l.zj)(),a=await (0,n.on)(e,i,{config:r}),o=a.node()?.getBBox()??{width:0,height:0},c=s.getBlock(i.id);c.size={width:o.width,height:o.height,x:0,y:0,node:a},s.setBlock(c),a.remove()}async function eu(e,t,s){let i=ec(t,s,!0);if("space"!==s.getBlock(i.id).type){let s=(0,l.zj)();await (0,n.on)(e,i,{config:s}),t.intersect=i?.intersect,(0,n.U_)(i)}}async function eg(e,t,s,i){for(let r of t)await i(e,r,s),r.children&&await eg(e,r.children,s,i)}async function ed(e,t,s){await eg(e,t,s,eh)}async function ey(e,t,s){await eg(e,t,s,eu)}async function ep(e,t,s,i,n){let a=new S.T({multigraph:!0,compound:!0});for(let e of(a.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8}),s))e.size&&a.setNode(e.id,{width:e.size.width,height:e.size.height,intersect:e.intersect});for(let s of t)if(s.start&&s.end){let t=i.getBlock(s.start),l=i.getBlock(s.end);if(t?.size&&l?.size){let i=t.size,o=l.size,c=[{x:i.x,y:i.y},{x:i.x+(o.x-i.x)/2,y:i.y+(o.y-i.y)/2},{x:o.x,y:o.y}],h=n?`${n}-${s.id}`:s.id,u="thick"===s.thickness?"edge-thickness-thick":"edge-thickness-normal",g="dotted"===s.pattern?"edge-pattern-dotted":"edge-pattern-solid",d=`${u} ${g} flowchart-link LS-a1 LE-b1`;(0,r.Jo)(e,{...s,id:h,arrowTypeEnd:s.arrowTypeEnd,arrowTypeStart:s.arrowTypeStart,points:c,classes:d},{},"block",a.node(s.start),a.node(s.end),n),s.label&&(await (0,r.jP)(e,{...s,label:s.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:s.arrowTypeEnd,arrowTypeStart:s.arrowTypeStart,points:c,classes:d}),(0,r.T_)({...s,x:c[1].x,y:c[1].y},{originalPath:c}))}}}(0,c.K)(en,"setBlockSizes"),(0,c.K)(ea,"layoutBlocks"),(0,c.K)(el,"findBounds"),(0,c.K)(eo,"layout"),(0,c.K)(ec,"getNodeFromBlock"),(0,c.K)(eh,"calculateBlockSize"),(0,c.K)(eu,"insertBlockPositioned"),(0,c.K)(eg,"performOperations"),(0,c.K)(ed,"calculateBlockSizes"),(0,c.K)(ey,"insertBlocks"),(0,c.K)(ep,"insertEdges");var eb=(0,c.K)(function(e,t){return t.db.getClasses()},"getClasses"),ef={parser:x,db:ee,renderer:{draw:(0,c.K)(async function(e,t,s,i){let n,{securityLevel:a,block:c}=(0,l.zj)(),h=i.db;h.setDiagramId(t),"sandbox"===a&&(n=(0,f.Ltv)("#i"+t));let u="sandbox"===a?(0,f.Ltv)(n.nodes()[0].contentDocument.body):(0,f.Ltv)("body"),g="sandbox"===a?u.select(`[id="${t}"]`):(0,f.Ltv)(`[id="${t}"]`);(0,r.g0)(g,["point","circle","cross"],i.type,t);let d=h.getBlocks(),y=h.getBlocksFlat(),p=h.getEdges(),b=g.insert("g").attr("class","block");await ed(b,d,h);let S=eo(h);await ey(b,d,h),await ep(b,p,y,h,t);let x=b.node()?.getBBox(),L=x&&Number.isFinite(x.width)&&Number.isFinite(x.height)?x:S;if(L){let e=Math.max(1,Math.round(.125*(L.width/L.height))),t=L.height+e+10,s=L.width+10,{useMaxWidth:i}=c;(0,l.a$)(g,t,s,!!i),o.R.debug("Here Bounds",S,L),g.attr("viewBox",`${L.x-5} ${L.y-5} ${L.width+10} ${L.height+10}`)}},"draw"),getClasses:eb},styles:es}},20271:(e,t,s)=>{s.d(t,{A:()=>n});var i=s(99900),r=s(47722);let n=(e,t)=>i.A.lang.round(r.A.parse(e)[t])},25658:(e,t,s)=>{s.d(t,{o:()=>i});var i=(0,s(68567).K)(()=>`
125
+ /* Font Awesome icon styling - consolidated */
126
+ .label-icon {
127
+ display: inline-block;
128
+ height: 1em;
129
+ overflow: visible;
130
+ vertical-align: -0.125em;
131
+ }
132
+
133
+ .node .label-icon path {
134
+ fill: currentColor;
135
+ stroke: revert;
136
+ stroke-width: revert;
137
+ }
138
+ `,"getIconStyles")}}]);
@@ -0,0 +1,62 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[179],{70179:(t,e,a)=>{a.d(e,{diagram:()=>B});var n=a(96910),r=a(58609),i=a(49519),o=a(84187),l=a(14561),c=a(68567),s=a(97811),d=(0,c.K)(()=>({domains:new Map,transitions:[]}),"createDefaultData"),f=d(),p=(0,c.K)(()=>f.domains,"getDomains"),y={getDomains:p,getTransitions:(0,c.K)(()=>f.transitions,"getTransitions"),setDomains:(0,c.K)(t=>{if(t)for(let e of t){let t=e.domain,a=(e.items??[]).map(t=>({label:t.label}));f.domains.set(t,{name:t,items:a})}},"setDomains"),setTransitions:(0,c.K)(t=>{t&&(f.transitions=t.filter(t=>t.from!==t.to||(l.R.warn(`Cynefin: self-loop transition on domain "${t.from}" is not meaningful and will be skipped.`),!1)).map(t=>({from:t.from,to:t.to,label:t.label||void 0})))},"setTransitions"),getConfig:(0,c.K)(()=>(0,i.$t)({...o.UI.cynefin,...(0,o.zj)().cynefin}),"getConfig"),clear:(0,c.K)(()=>{(0,o.IU)(),f=d()},"clear"),setAccTitle:o.SV,getAccTitle:o.iN,setDiagramTitle:o.ke,getDiagramTitle:o.ab,getAccDescription:o.m7,setAccDescription:o.EI},m=(0,c.K)(t=>{(0,n.S)(t,y),y.setDomains(t.domains),y.setTransitions(t.transitions)},"populate"),x={parse:(0,c.K)(async t=>{let e=await (0,s.qg)("cynefin",t);l.R.debug(e),m(e)},"parse")};function h(t){let e=t+0x6d2b79f5|0;return e=Math.imul(e^e>>>15,1|e),(((e^=e+Math.imul(e^e>>>7,61|e))^e>>>14)>>>0)/0x100000000}function $(t){let e=0;for(let a=0;a<t.length;a++)e=(e<<5)-e+t.charCodeAt(a)|0;return e}function g(t,e){return"number"==typeof t&&Number.isFinite(t)&&0!==t?t:$(e)}function u(t,e,a,n){let r=t/2,i=n??.015*t,o=e/7,l=[];for(let t=0;t<=7;t++){let e=h(a+17*t)*i*2-i;l.push({x:r+e,y:t*o})}let c=`M${l[0].x},${l[0].y}`;for(let t=0;t<l.length-1;t++){let e=l[t],n=l[t+1],r=(e.y+n.y)/2,o=1.5*i*(t%2==0?1:-1)*h(a+31*t+7),s=e.x+o,d=n.x-o;c+=` C${s},${r} ${d},${r} ${n.x},${n.y}`}return c}function b(t,e,a,n){let r=e/2,i=n??.015*e,o=t/7,l=[];for(let t=0;t<=7;t++){let e=h(a+23*t)*i*2-i;l.push({x:t*o,y:r+e})}let c=`M${l[0].x},${l[0].y}`;for(let t=0;t<l.length-1;t++){let e=l[t],n=l[t+1],r=(e.x+n.x)/2,o=1.5*i*(t%2==0?1:-1)*h(a+37*t+11),s=e.y+o,d=n.y-o;c+=` C${r},${s} ${r},${d} ${n.x},${n.y}`}return c}function w(t,e){let a=t/2,n=.5*e,r=.03*t;return`M${a},${n} C${a+r},${n+(e-n)*.2} ${a-1.5*r},${n+(e-n)*.55} ${a+.5*r},${n+(e-n)*.75} C${a-r},${n+(e-n)*.85} ${a+.3*r},${n+(e-n)*.95} ${a},${e}`}function C(t,e,a,n){return`M${t-a},${e} A${a},${n} 0 1,1 ${t+a},${e} A${a},${n} 0 1,1 ${t-a},${e} Z`}(0,c.K)(h,"seededRandom"),(0,c.K)($,"hashString"),(0,c.K)(g,"resolveSeed"),(0,c.K)(u,"generateFoldPath"),(0,c.K)(b,"generateHorizontalBoundary"),(0,c.K)(w,"generateCliffPath"),(0,c.K)(C,"generateConfusionPath");var k={complex:{model:"Probe → Sense → Respond",practice:"Emergent Practices"},complicated:{model:"Sense → Analyse → Respond",practice:"Good Practices"},clear:{model:"Sense → Categorise → Respond",practice:"Best Practices"},chaotic:{model:"Act → Sense → Respond",practice:"Novel Practices"},confusion:{model:"",practice:"Disorder"}},D=(0,c.K)((t,e)=>{let a=t/2,n=e/2;return{complex:{cx:a/2,cy:n/2,x:0,y:0,w:a,h:n},complicated:{cx:a+a/2,cy:n/2,x:a,y:0,w:a,h:n},chaotic:{cx:a/2,cy:n+n/2,x:0,y:n,w:a,h:n},clear:{cx:a+a/2,cy:n+n/2,x:a,y:n,w:a,h:n},confusion:{cx:a,cy:n,x:.7*a,y:.7*n,w:.6*a,h:.6*n}}},"getDomainLayouts"),K=(0,c.K)(()=>{let t=(0,o.P$)(),e=(0,o.zj)();return(0,i.$t)(t,e.themeVariables).cynefin},"getCynefinDomainColors"),T=(0,c.K)((t,e,a,n)=>{let i=n.db,c=i.getDomains(),s=i.getTransitions(),d=i.getDiagramTitle(),f=i.getAccTitle(),p=i.getAccDescription(),y=i.getConfig(),m=K();l.R.debug("Rendering Cynefin diagram");let x=y.width,h=y.height,$=y.padding,T=y.showDomainDescriptions,A=y.boundaryAmplitude,B=x+2*$,S=h+2*$,z={complex:m.complexBg,complicated:m.complicatedBg,clear:m.clearBg,chaotic:m.chaoticBg,confusion:m.confusionBg},v=(0,r.D)(e);(0,o.a$)(v,S,B,y.useMaxWidth??!0),v.attr("viewBox",`0 0 ${B} ${S}`),f&&v.append("title").text(f),p&&v.append("desc").text(p);let M=v.append("g").attr("transform",`translate(${$}, ${$})`),I=D(x,h),L=g(y.seed,e),P=M.append("g").attr("class","cynefin-backgrounds"),R=["complex","complicated","chaotic","clear"];for(let t of R){let e=I[t];P.append("rect").attr("class","cynefinDomain").attr("x",e.x).attr("y",e.y).attr("width",e.w).attr("height",e.h).attr("fill",z[t]).attr("fill-opacity",.4).attr("stroke","none")}let F=M.append("g").attr("class","cynefin-boundaries");F.append("path").attr("class","cynefinBoundary").attr("d",u(x,h,L,A)).attr("fill","none"),F.append("path").attr("class","cynefinBoundary").attr("d",b(x,h,L+100,A)).attr("fill","none"),F.append("path").attr("class","cynefinCliff").attr("d",w(x,h)).attr("fill","none");let E=.15*x,N=.15*h;M.append("path").attr("class","cynefinConfusion").attr("d",C(x/2,h/2,E,N)).attr("fill",z.confusion).attr("fill-opacity",.5);let W=M.append("g").attr("class","cynefin-labels");for(let t of R){let e=I[t];W.append("text").attr("class","cynefinDomainLabel").attr("x",e.cx).attr("y",T?e.cy-30:e.cy).attr("text-anchor","middle").attr("dominant-baseline","middle").text(t.charAt(0).toUpperCase()+t.slice(1))}if(W.append("text").attr("class","cynefinDomainLabel").attr("x",x/2).attr("y",T?h/2-10:h/2).attr("text-anchor","middle").attr("dominant-baseline","middle").text("Confusion"),T){let t=M.append("g").attr("class","cynefin-subtitles");for(let e of R){let a=I[e],n=k[e];t.append("text").attr("class","cynefinSubtitle").attr("x",a.cx).attr("y",a.cy-10).attr("text-anchor","middle").attr("dominant-baseline","middle").text(n.model),t.append("text").attr("class","cynefinSubtitle").attr("x",a.cx).attr("y",a.cy+5).attr("text-anchor","middle").attr("dominant-baseline","middle").text(n.practice)}t.append("text").attr("class","cynefinSubtitle").attr("x",x/2).attr("y",h/2+8).attr("text-anchor","middle").attr("dominant-baseline","middle").text(k.confusion.practice)}let H=M.append("g").attr("class","cynefin-items");for(let t of["complex","complicated","chaotic","clear","confusion"]){let e,a=c.get(t);if(!a||0===a.items.length)continue;let n=I[t],r="confusion"===t,i=a.items,o=0;if(r&&a.items.length>3&&(o=a.items.length-3,i=a.items.slice(0,3)),r){let t=T?22:14;e=n.cy+t}else e=n.cy+(T?25:15);if([...i].forEach((a,r)=>{let i=e+30*r,o=H.append("g"),l=o.append("text").attr("class","cynefinItemText").attr("x",0).attr("y",13).attr("text-anchor","middle").attr("dominant-baseline","central").text(a.label),c=7*a.label.length,s=l.node();if(s&&"function"==typeof s.getBBox){let t=s.getBBox();t.width>0&&(c=t.width)}let d=c+20,f=n.cx-d/2;o.attr("transform",`translate(${f}, ${i})`),o.insert("rect","text").attr("class","cynefinItem").attr("x",0).attr("y",0).attr("width",d).attr("height",26).attr("rx",4).attr("ry",4).attr("fill",z[t]).attr("fill-opacity",.95),l.attr("x",d/2).attr("y",13)}),o>0){let a=e+30*i.length,r=`+${o} more`,l=H.append("g"),c=l.append("text").attr("class","cynefinItemText").attr("x",0).attr("y",13).attr("text-anchor","middle").attr("dominant-baseline","central").text(r),s=7*r.length,d=c.node();if(d&&"function"==typeof d.getBBox){let t=d.getBBox();t.width>0&&(s=t.width)}let f=s+20,p=n.cx-f/2;l.attr("transform",`translate(${p}, ${a})`),l.insert("rect","text").attr("class","cynefinItemOverflow").attr("x",0).attr("y",0).attr("width",f).attr("height",26).attr("rx",4).attr("ry",4).attr("fill",z[t]).attr("fill-opacity",.6),c.attr("x",f/2).attr("y",13)}}if(s.length>0){let t=v.select("defs").empty()?v.append("defs"):v.select("defs"),a=`cynefin-arrow-${e}`;t.append("marker").attr("id",a).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto-start-reverse").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","cynefinArrowHead");let n=M.append("g").attr("class","cynefin-arrows");s.forEach(t=>{let e=I[t.from],r=I[t.to];if(!e||!r)return;if(t.from===t.to)return void l.R.warn(`Cynefin renderer: skipping self-loop on domain "${t.from}"`);let i=e.cx,o=e.cy,c=r.cx,s=r.cy,d=c-i,f=s-o,p=Math.sqrt(d*d+f*f),y=.15*p,m=(i+c)/2+-f/p*y,x=(o+s)/2+d/p*y;n.append("path").attr("class","cynefinArrowLine").attr("d",`M${i},${o} Q${m},${x} ${c},${s}`).attr("fill","none").attr("marker-end",`url(#${a})`),t.label&&n.append("text").attr("class","cynefinArrowLabel").attr("x",m).attr("y",x-6).attr("text-anchor","middle").attr("dominant-baseline","auto").text(t.label)})}d&&M.append("text").attr("class","cynefinTitle").attr("x",x/2).attr("y",-$/2).attr("text-anchor","middle").attr("dominant-baseline","middle").text(d)},"draw"),A=(0,c.K)(()=>{let t=(0,o.P$)(),e=(0,o.zj)();return(0,i.$t)(t,e.themeVariables).cynefin},"getCynefinTheme"),B={parser:x,db:y,renderer:{draw:T},styles:(0,c.K)(()=>{let t=A();return`
2
+ .cynefinDomain {
3
+ stroke: none;
4
+ }
5
+ .cynefinDomainLabel {
6
+ font-size: ${t.domainFontSize}px;
7
+ font-weight: bold;
8
+ fill: ${t.labelColor};
9
+ }
10
+ .cynefinSubtitle {
11
+ font-size: ${t.itemFontSize-1}px;
12
+ fill: ${t.textColor};
13
+ font-style: italic;
14
+ }
15
+ .cynefinItem {
16
+ fill-opacity: 0.95;
17
+ stroke: ${t.boundaryColor};
18
+ stroke-width: 1;
19
+ }
20
+ .cynefinItemText {
21
+ font-size: ${t.itemFontSize}px;
22
+ fill: ${t.textColor};
23
+ }
24
+ .cynefinItemOverflow {
25
+ fill-opacity: 0.6;
26
+ stroke: ${t.boundaryColor};
27
+ stroke-width: 1;
28
+ stroke-dasharray: 3 2;
29
+ }
30
+ .cynefinBoundary {
31
+ stroke: ${t.boundaryColor};
32
+ stroke-width: ${t.boundaryWidth};
33
+ stroke-dasharray: 6 3;
34
+ }
35
+ .cynefinCliff {
36
+ stroke: ${t.cliffColor};
37
+ stroke-width: ${t.cliffWidth};
38
+ }
39
+ .cynefinConfusion {
40
+ stroke: ${t.boundaryColor};
41
+ stroke-width: 1.5;
42
+ stroke-dasharray: 4 2;
43
+ }
44
+ .cynefinArrowLine {
45
+ stroke: ${t.arrowColor};
46
+ stroke-width: ${t.arrowWidth};
47
+ fill: none;
48
+ }
49
+ .cynefinArrowHead {
50
+ fill: ${t.arrowColor};
51
+ stroke: none;
52
+ }
53
+ .cynefinArrowLabel {
54
+ font-size: ${t.itemFontSize-1}px;
55
+ fill: ${t.textColor};
56
+ }
57
+ .cynefinTitle {
58
+ font-size: ${t.domainFontSize+2}px;
59
+ font-weight: bold;
60
+ fill: ${t.labelColor};
61
+ }
62
+ `},"styles")}},96910:(t,e,a)=>{function n(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}a.d(e,{S:()=>n}),(0,a(68567).K)(n,"populateCommonDb")}}]);