9remote 3.0.39 → 3.0.43

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 (466) hide show
  1. package/dist/cli.cjs +86 -86
  2. package/dist/extension/background.js +197 -81
  3. package/dist/extension/manifest.json +6 -5
  4. package/dist/extension/popup.html +7 -0
  5. package/dist/extension/popup.js +6 -0
  6. package/dist/extension/runner.js +606 -0
  7. package/dist/ptyDaemon.cjs +5 -5
  8. package/dist/server.cjs +254 -250
  9. package/dist/ui/assets/index-DQvkcQ8W.js +8 -0
  10. package/dist/ui/index.html +1 -1
  11. package/dist/web/404.html +1 -1
  12. package/dist/web/__next.__PAGE__.txt +4 -4
  13. package/dist/web/__next._full.txt +29 -23
  14. package/dist/web/__next._head.txt +4 -4
  15. package/dist/web/__next._index.txt +13 -10
  16. package/dist/web/__next._tree.txt +3 -3
  17. package/dist/web/_next/static/AhLhl9t958vI0woNHnp3P/_buildManifest.js +1 -0
  18. package/dist/web/_next/static/chunks/{0fb7b532.2e7a08a3edb2d789.js → 025762a4.c49f8207624e1667.js} +1 -1
  19. package/dist/web/_next/static/chunks/101.bfb3898573e4245d.js +1 -0
  20. package/dist/web/_next/static/chunks/1342.3d5707800ea67dcb.js +1 -0
  21. package/dist/web/_next/static/chunks/153.d7a869e0874f32e0.js +1 -0
  22. package/dist/web/_next/static/chunks/1561.8d395206716b3967.js +1 -0
  23. package/dist/web/_next/static/chunks/{4314.6bbd89507909cad1.js → 1599.ed9aa4b461112c1a.js} +1 -1
  24. package/dist/web/_next/static/chunks/1694.7c4e72f21d4ce34c.js +1 -0
  25. package/dist/web/_next/static/chunks/1772-ef73c166e83f5eff.js +1 -0
  26. package/dist/web/_next/static/chunks/1878.724a4af779f951aa.js +138 -0
  27. package/dist/web/_next/static/chunks/1879.0252e2bd9153348f.js +1 -0
  28. package/dist/web/_next/static/chunks/1920-5ead25286846df83.js +1 -0
  29. package/dist/web/_next/static/chunks/1968-4d2969f0b7112e0b.js +32 -0
  30. package/dist/web/_next/static/chunks/2004.f975891d8a569296.js +24 -0
  31. package/dist/web/_next/static/chunks/2094.05efbc3414828946.js +1 -0
  32. package/dist/web/_next/static/chunks/2209.2ee6023fed2ac7a5.js +1 -0
  33. package/dist/web/_next/static/chunks/236.88ef102773dd3a91.js +1 -0
  34. package/dist/web/_next/static/chunks/2369.22023f63f0eaf8db.js +1 -0
  35. package/dist/web/_next/static/chunks/{6420.bfa7bc86d03dcefc.js → 2401.73a0315a75c7b051.js} +1 -1
  36. package/dist/web/_next/static/chunks/2427.3a468cdfabd25124.js +1 -0
  37. package/dist/web/_next/static/chunks/2436.da0ef064f744b8af.js +115 -0
  38. package/dist/web/_next/static/chunks/{1222.16edfbb0beb9081f.js → 2488.87361126358794fd.js} +1 -1
  39. package/dist/web/_next/static/chunks/2561.6c8eb8cf71429d5d.js +36 -0
  40. package/dist/web/_next/static/chunks/2581.d09a7f19c64e4b97.js +1 -0
  41. package/dist/web/_next/static/chunks/{8044.5f87392585c9f3e4.js → 2615.86c58079ec7c597c.js} +1 -1
  42. package/dist/web/_next/static/chunks/2934.0caeb8b2d8b67139.js +1 -0
  43. package/dist/web/_next/static/chunks/{6274.a3795ca6dacb3d62.js → 3011.fc80a2aad3ef8778.js} +2 -2
  44. package/dist/web/_next/static/chunks/3255.3c96f02d5eb06783.js +23 -0
  45. package/dist/web/_next/static/chunks/3284.e56b0102fb9a3920.js +62 -0
  46. package/dist/web/_next/static/chunks/3301.1f7e2bd5ccb55064.js +1 -0
  47. package/dist/web/_next/static/chunks/3314.b5b5b3cca99d832e.js +1 -0
  48. package/dist/web/_next/static/chunks/{20154aaa.868648f838e03bf1.js → 33d0405b.71576a1f83124ecd.js} +1 -1
  49. package/dist/web/_next/static/chunks/3428.8818e0ef88c0e743.js +1 -0
  50. package/dist/web/_next/static/chunks/{3429.e69c6bd48e1207a9.js → 3443.8d771dadb470603c.js} +1 -1
  51. package/dist/web/_next/static/chunks/{6742.88fddf128fbeb43d.js → 3704.bf80aa0d55f950d0.js} +1 -1
  52. package/dist/web/_next/static/chunks/3916.141fb720bd1eee40.js +148 -0
  53. package/dist/web/_next/static/chunks/3973.e5c2013e2abeefd3.js +93 -0
  54. package/dist/web/_next/static/chunks/4065.7616cbd8f37a68e6.js +1 -0
  55. package/dist/web/_next/static/chunks/{9299.e37149b455be7e9d.js → 4129.a93c19870036f647.js} +1 -1
  56. package/dist/web/_next/static/chunks/{6730.88fc6f2ccc49496c.js → 4171.b0e5c6dc86bc8a5f.js} +1 -1
  57. package/dist/web/_next/static/chunks/4330.a8740b63075e6886.js +1 -0
  58. package/dist/web/_next/static/chunks/4378.a0629cfcbc20c406.js +1 -0
  59. package/dist/web/_next/static/chunks/4553.cad71717d538a2e5.js +1 -0
  60. package/dist/web/_next/static/chunks/4589.9bd287581ccd378b.js +1 -0
  61. package/dist/web/_next/static/chunks/4594.53636acacf285911.js +34 -0
  62. package/dist/web/_next/static/chunks/466.908e4592c2b93997.js +77 -0
  63. package/dist/web/_next/static/chunks/468.2e48222bf3517040.js +1 -0
  64. package/dist/web/_next/static/chunks/4712.b7062faa67f544b5.js +1 -0
  65. package/dist/web/_next/static/chunks/{9675.be4a175f92aa2f26.js → 4724.e0dffedb6972b738.js} +1 -1
  66. package/dist/web/_next/static/chunks/482.a0b5af31d7354a82.js +1 -0
  67. package/dist/web/_next/static/chunks/4929.fce0c23972476c66.js +1 -0
  68. package/dist/web/_next/static/chunks/4964.5a41b2d776aee556.js +1 -0
  69. package/dist/web/_next/static/chunks/499.cf81a39b9e6ce4a4.js +94 -0
  70. package/dist/web/_next/static/chunks/{0a7753a9.4cb02a98e2e453b9.js → 4ff7191e.d68cdd8504937de5.js} +1 -1
  71. package/dist/web/_next/static/chunks/5035.f7175d1037807b62.js +90 -0
  72. package/dist/web/_next/static/chunks/5198.b8e3a08cb60bc349.js +1 -0
  73. package/dist/web/_next/static/chunks/5421.430fa3a5488e15a9.js +21 -0
  74. package/dist/web/_next/static/chunks/{9871-c277aedb0437cb82.js → 556-a8f04c41c5663ee8.js} +1 -1
  75. package/dist/web/_next/static/chunks/5587-fc5af8c76df14222.js +1 -0
  76. package/dist/web/_next/static/chunks/5710.b055a101d6b51ff3.js +27 -0
  77. package/dist/web/_next/static/chunks/{2180.edcf5dc3d77ceee8.js → 5714.122f8cb7296bc9e1.js} +1 -1
  78. package/dist/web/_next/static/chunks/{1243.3f23d89283c156ea.js → 5757.2c157c0924cea1c2.js} +1 -1
  79. package/dist/web/_next/static/chunks/{3346-23aafd4add63869a.js → 5957-3d5d92b58dcc7d4e.js} +1 -1
  80. package/dist/web/_next/static/chunks/{565f33a6-fd3410bd29f39fdf.js → 5b8e7b36-a2678128cd5bdf5e.js} +1 -1
  81. package/dist/web/_next/static/chunks/6141-132d206408947c60.js +1 -0
  82. package/dist/web/_next/static/chunks/{7424.c8c9f85c8ea65885.js → 6181.6bdde6f59e3f2cea.js} +1 -1
  83. package/dist/web/_next/static/chunks/6221-cf883148bf8a4c1e.js +11 -0
  84. package/dist/web/_next/static/chunks/{3552.8dd9a3d2c3bcef65.js → 6372.51e578b15d566c0e.js} +2 -2
  85. package/dist/web/_next/static/chunks/6405.39e8b42a56b88bb5.js +1 -0
  86. package/dist/web/_next/static/chunks/641.7b1b12ccc56b3b3c.js +1 -0
  87. package/dist/web/_next/static/chunks/{6647.740ec32a32201eab.js → 6418.a86ca6012f0867ff.js} +1 -1
  88. package/dist/web/_next/static/chunks/{4924.3f5c77a103ac69a9.js → 6435.6aef0f9f1cc65be6.js} +1 -1
  89. package/dist/web/_next/static/chunks/6439.f02105d3687113e7.js +1 -0
  90. package/dist/web/_next/static/chunks/647.527b9a09373aab91.js +1 -0
  91. package/dist/web/_next/static/chunks/{8115.68d46fb961c724e0.js → 6470.7057ef6894a7f625.js} +16 -16
  92. package/dist/web/_next/static/chunks/{7507.77d9ac9eb03518f7.js → 6485.6ae2f3966cc25c9e.js} +1 -1
  93. package/dist/web/_next/static/chunks/{6987.743a63813c6288ce.js → 6512.cc81f46437639a0e.js} +2 -2
  94. package/dist/web/_next/static/chunks/6520.73f10855f9d4b5a8.js +1 -0
  95. package/dist/web/_next/static/chunks/668.1ddcf2e38071ae57.js +24 -0
  96. package/dist/web/_next/static/chunks/6815.8126ae5481c3bfd8.js +1 -0
  97. package/dist/web/_next/static/chunks/6925-af784cffb03dd330.js +1 -0
  98. package/dist/web/_next/static/chunks/6e6d0562.6ebb8f7db67bd943.js +122 -0
  99. package/dist/web/_next/static/chunks/7058.affbacca3457f5a7.js +41 -0
  100. package/dist/web/_next/static/chunks/7207.72d8a01e77112af2.js +1 -0
  101. package/dist/web/_next/static/chunks/{4090.441fa61655da9b38.js → 7359.b09680f38f75e105.js} +1 -1
  102. package/dist/web/_next/static/chunks/7369.a824cc623274cf63.js +1 -0
  103. package/dist/web/_next/static/chunks/7489.24938d89538cd03e.js +1 -0
  104. package/dist/web/_next/static/chunks/{9641.f6f2982fc4b4735f.js → 7576.273c3d0faf5c3d02.js} +1 -1
  105. package/dist/web/_next/static/chunks/7620.5c5935fd937c0e84.js +1 -0
  106. package/dist/web/_next/static/chunks/{1228.c4aa83586b3730b6.js → 7646.1c26e96ee36bc317.js} +1 -1
  107. package/dist/web/_next/static/chunks/7712.cd8c3dc2d794d714.js +1 -0
  108. package/dist/web/_next/static/chunks/{2038.b77e2c3d38385a76.js → 7812.aabc856212c93434.js} +1 -1
  109. package/dist/web/_next/static/chunks/804.38f05d79313a8dcc.js +104 -0
  110. package/dist/web/_next/static/chunks/8126-8e53bfff5a06af4e.js +1 -0
  111. package/dist/web/_next/static/chunks/820-99036fb63c5462c8.js +1 -0
  112. package/dist/web/_next/static/chunks/8304.936a74abe6f0a288.js +1 -0
  113. package/dist/web/_next/static/chunks/8314.7ff9d72cd8613f75.js +226 -0
  114. package/dist/web/_next/static/chunks/8390.5eda620e73ea6c5c.js +74 -0
  115. package/dist/web/_next/static/chunks/860.f7885efc630bcfd7.js +1 -0
  116. package/dist/web/_next/static/chunks/87c73c54-e11922cda838f8cc.js +1 -0
  117. package/dist/web/_next/static/chunks/887.15090f9a6a142a10.js +1 -0
  118. package/dist/web/_next/static/chunks/8977.1ab6ed8e2c098cf0.js +1 -0
  119. package/dist/web/_next/static/chunks/9121-897f98b646fc2ac0.js +1 -0
  120. package/dist/web/_next/static/chunks/9491-6dc334192080d071.js +86 -0
  121. package/dist/web/_next/static/chunks/951ed0e8.98070dce91103a63.js +1 -0
  122. package/dist/web/_next/static/chunks/9651.d199fbbbc3de43b8.js +215 -0
  123. package/dist/web/_next/static/chunks/9692.dd07a90166f5e6ff.js +1 -0
  124. package/dist/web/_next/static/chunks/{6075.a6b8434732056526.js → 9700.c47024f592537718.js} +1 -1
  125. package/dist/web/_next/static/chunks/9711.cf7aaa7fa6ec7dd7.js +287 -0
  126. package/dist/web/_next/static/chunks/9736.63b4a559c8a23186.js +1 -0
  127. package/dist/web/_next/static/chunks/{bbfbfb6c.069db3c4cc981ed3.js → 98f82933.0c4f9e5e83926351.js} +1 -1
  128. package/dist/web/_next/static/chunks/{da9a53d6.df25e193f1f5bcae.js → a36ae3fc.d666935373d1f579.js} +4 -4
  129. package/dist/web/_next/static/chunks/{adcd17ec-9a2791632136b67b.js → ab6c8a12-9dac45de556d8a8d.js} +1 -1
  130. package/dist/web/_next/static/chunks/app/_global-error/page-2ece09c883187d82.js +1 -0
  131. package/dist/web/_next/static/chunks/app/_not-found/page-9f829d2c4beb1840.js +1 -0
  132. package/dist/web/_next/static/chunks/app/admin/access/page-45f45ad529e5b691.js +5 -0
  133. package/dist/web/_next/static/chunks/app/admin/login/page-382072b5b43d3c29.js +1 -0
  134. package/dist/web/_next/static/chunks/app/admin/ota/page-293c0743bd60f454.js +5 -0
  135. package/dist/web/_next/static/chunks/app/admin/page-fc676dae451dd646.js +5 -0
  136. package/dist/web/_next/static/chunks/app/admin/turn/page-2ab33033fc7f0919.js +5 -0
  137. package/dist/web/_next/static/chunks/app/download/{page-2811ea822a1e586a.js → page-a65d1c7fcf6397af.js} +1 -1
  138. package/dist/web/_next/static/chunks/app/layout-f1429d22e935695f.js +1 -0
  139. package/dist/web/_next/static/chunks/app/login/page-a5dd37d1cbbb394e.js +1 -0
  140. package/dist/web/_next/static/chunks/app/{page-8387dba850541259.js → page-1e67d8a5f3775276.js} +3 -3
  141. package/dist/web/_next/static/chunks/app/workspace/browse/page-2ece09c883187d82.js +1 -0
  142. package/dist/web/_next/static/chunks/app/workspace/editor/page-2ece09c883187d82.js +1 -0
  143. package/dist/web/_next/static/chunks/app/workspace/files/page-2ece09c883187d82.js +1 -0
  144. package/dist/web/_next/static/chunks/app/workspace/git/page-2ece09c883187d82.js +1 -0
  145. package/dist/web/_next/static/chunks/app/workspace/layout-336820247249f65c.js +20 -0
  146. package/dist/web/_next/static/chunks/app/workspace/mobile/page-2ece09c883187d82.js +1 -0
  147. package/dist/web/_next/static/chunks/app/workspace/page-2ece09c883187d82.js +1 -0
  148. package/dist/web/_next/static/chunks/app/workspace/pair/page-2ece09c883187d82.js +1 -0
  149. package/dist/web/_next/static/chunks/app/workspace/remote/page-2ece09c883187d82.js +1 -0
  150. package/dist/web/_next/static/chunks/app/workspace/terminal/[sessionId]/page-2ece09c883187d82.js +1 -0
  151. package/dist/web/_next/static/chunks/app/workspace/welcome/page-2ece09c883187d82.js +1 -0
  152. package/dist/web/_next/static/chunks/app/workspace/workspaces/page-2ece09c883187d82.js +1 -0
  153. package/dist/web/_next/static/chunks/b2b4fb58.d2a067fe7df4a0d0.js +1 -0
  154. package/dist/web/_next/static/chunks/baeaa4ff-8eac34d2e07d1bb3.js +1 -0
  155. package/dist/web/_next/static/chunks/{7c89255b.f727562586fa21cc.js → c2d9a0c9.b4e0bb73c2ed317c.js} +1 -1
  156. package/dist/web/_next/static/chunks/{a012e9f0.7dbb2fe05ec0b816.js → ccfb6294.add4177b76c37868.js} +11 -11
  157. package/dist/web/_next/static/chunks/{c7ea4e13.6153499d4c2fb1f2.js → db261188.134a04dd616706a4.js} +1 -1
  158. package/dist/web/_next/static/chunks/framework-59d2d1720fc2b396.js +1 -0
  159. package/dist/web/_next/static/chunks/main-app-72391b47e9393c1b.js +1 -0
  160. package/dist/web/_next/static/chunks/main-e10b0dbebb4de0a8.js +5 -0
  161. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/app-error-2ece09c883187d82.js +1 -0
  162. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/forbidden-2ece09c883187d82.js +1 -0
  163. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/global-error-48f06b4c48a1eef3.js +1 -0
  164. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/not-found-2ece09c883187d82.js +1 -0
  165. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/unauthorized-2ece09c883187d82.js +1 -0
  166. package/dist/web/_next/static/chunks/webpack-dd1f7a5ae02e5d84.js +1 -0
  167. package/dist/web/_next/static/css/{b496025c9cd768cc.css → 15730e9f7c5c55ef.css} +1 -1
  168. package/dist/web/_next/static/css/7b03063e80720027.css +1 -0
  169. package/dist/web/_not-found/__next._full.txt +23 -19
  170. package/dist/web/_not-found/__next._head.txt +4 -4
  171. package/dist/web/_not-found/__next._index.txt +10 -10
  172. package/dist/web/_not-found/__next._not-found.__PAGE__.txt +2 -2
  173. package/dist/web/_not-found/__next._not-found.txt +3 -3
  174. package/dist/web/_not-found/__next._tree.txt +3 -3
  175. package/dist/web/_not-found.html +1 -1
  176. package/dist/web/_not-found.txt +23 -19
  177. package/dist/web/admin/__next._full.txt +32 -25
  178. package/dist/web/admin/__next._head.txt +4 -4
  179. package/dist/web/admin/__next._index.txt +13 -10
  180. package/dist/web/admin/__next._tree.txt +3 -3
  181. package/dist/web/admin/__next.admin.__PAGE__.txt +4 -4
  182. package/dist/web/admin/__next.admin.txt +3 -3
  183. package/dist/web/admin/access/__next._full.txt +33 -25
  184. package/dist/web/admin/access/__next._head.txt +4 -4
  185. package/dist/web/admin/access/__next._index.txt +13 -10
  186. package/dist/web/admin/access/__next._tree.txt +3 -3
  187. package/dist/web/admin/access/__next.admin.access.__PAGE__.txt +4 -4
  188. package/dist/web/admin/access/__next.admin.access.txt +3 -3
  189. package/dist/web/admin/access/__next.admin.txt +3 -3
  190. package/dist/web/admin/access.html +1 -1
  191. package/dist/web/admin/access.txt +33 -25
  192. package/dist/web/admin/login/__next._full.txt +33 -25
  193. package/dist/web/admin/login/__next._head.txt +4 -4
  194. package/dist/web/admin/login/__next._index.txt +13 -10
  195. package/dist/web/admin/login/__next._tree.txt +3 -3
  196. package/dist/web/admin/login/__next.admin.login.__PAGE__.txt +4 -4
  197. package/dist/web/admin/login/__next.admin.login.txt +3 -3
  198. package/dist/web/admin/login/__next.admin.txt +3 -3
  199. package/dist/web/admin/login.html +1 -1
  200. package/dist/web/admin/login.txt +33 -25
  201. package/dist/web/admin/ota/__next._full.txt +33 -25
  202. package/dist/web/admin/ota/__next._head.txt +4 -4
  203. package/dist/web/admin/ota/__next._index.txt +13 -10
  204. package/dist/web/admin/ota/__next._tree.txt +3 -3
  205. package/dist/web/admin/ota/__next.admin.ota.__PAGE__.txt +4 -4
  206. package/dist/web/admin/ota/__next.admin.ota.txt +3 -3
  207. package/dist/web/admin/ota/__next.admin.txt +3 -3
  208. package/dist/web/admin/ota.html +1 -1
  209. package/dist/web/admin/ota.txt +33 -25
  210. package/dist/web/admin/turn/__next._full.txt +33 -25
  211. package/dist/web/admin/turn/__next._head.txt +4 -4
  212. package/dist/web/admin/turn/__next._index.txt +13 -10
  213. package/dist/web/admin/turn/__next._tree.txt +3 -3
  214. package/dist/web/admin/turn/__next.admin.turn.__PAGE__.txt +4 -4
  215. package/dist/web/admin/turn/__next.admin.turn.txt +3 -3
  216. package/dist/web/admin/turn/__next.admin.txt +3 -3
  217. package/dist/web/admin/turn.html +1 -1
  218. package/dist/web/admin/turn.txt +33 -25
  219. package/dist/web/admin.html +1 -1
  220. package/dist/web/admin.txt +32 -25
  221. package/dist/web/download/__next._full.txt +29 -22
  222. package/dist/web/download/__next._head.txt +4 -4
  223. package/dist/web/download/__next._index.txt +13 -10
  224. package/dist/web/download/__next._tree.txt +3 -3
  225. package/dist/web/download/__next.download.__PAGE__.txt +3 -3
  226. package/dist/web/download/__next.download.txt +3 -3
  227. package/dist/web/download.html +1 -1
  228. package/dist/web/download.txt +29 -22
  229. package/dist/web/index.html +1 -1
  230. package/dist/web/index.txt +29 -23
  231. package/dist/web/login/__next._full.txt +32 -25
  232. package/dist/web/login/__next._head.txt +4 -4
  233. package/dist/web/login/__next._index.txt +13 -10
  234. package/dist/web/login/__next._tree.txt +3 -3
  235. package/dist/web/login/__next.login.__PAGE__.txt +4 -4
  236. package/dist/web/login/__next.login.txt +3 -3
  237. package/dist/web/login.html +1 -1
  238. package/dist/web/login.txt +32 -25
  239. package/dist/web/workspace/__next._full.txt +29 -22
  240. package/dist/web/workspace/__next._head.txt +4 -4
  241. package/dist/web/workspace/__next._index.txt +13 -10
  242. package/dist/web/workspace/__next._tree.txt +3 -3
  243. package/dist/web/workspace/__next.workspace.__PAGE__.txt +2 -2
  244. package/dist/web/workspace/__next.workspace.txt +5 -5
  245. package/dist/web/workspace/browse/__next._full.txt +32 -24
  246. package/dist/web/workspace/browse/__next._head.txt +4 -4
  247. package/dist/web/workspace/browse/__next._index.txt +13 -10
  248. package/dist/web/workspace/browse/__next._tree.txt +3 -3
  249. package/dist/web/workspace/browse/__next.workspace.browse.__PAGE__.txt +2 -2
  250. package/dist/web/workspace/browse/__next.workspace.browse.txt +3 -3
  251. package/dist/web/workspace/browse/__next.workspace.txt +5 -5
  252. package/dist/web/workspace/browse.html +1 -1
  253. package/dist/web/workspace/browse.txt +32 -24
  254. package/dist/web/workspace/editor/__next._full.txt +32 -24
  255. package/dist/web/workspace/editor/__next._head.txt +4 -4
  256. package/dist/web/workspace/editor/__next._index.txt +13 -10
  257. package/dist/web/workspace/editor/__next._tree.txt +3 -3
  258. package/dist/web/workspace/editor/__next.workspace.editor.__PAGE__.txt +2 -2
  259. package/dist/web/workspace/editor/__next.workspace.editor.txt +3 -3
  260. package/dist/web/workspace/editor/__next.workspace.txt +5 -5
  261. package/dist/web/workspace/editor.html +1 -1
  262. package/dist/web/workspace/editor.txt +32 -24
  263. package/dist/web/workspace/files/__next._full.txt +32 -24
  264. package/dist/web/workspace/files/__next._head.txt +4 -4
  265. package/dist/web/workspace/files/__next._index.txt +13 -10
  266. package/dist/web/workspace/files/__next._tree.txt +3 -3
  267. package/dist/web/workspace/files/__next.workspace.files.__PAGE__.txt +2 -2
  268. package/dist/web/workspace/files/__next.workspace.files.txt +3 -3
  269. package/dist/web/workspace/files/__next.workspace.txt +5 -5
  270. package/dist/web/workspace/files.html +1 -1
  271. package/dist/web/workspace/files.txt +32 -24
  272. package/dist/web/workspace/git/__next._full.txt +32 -24
  273. package/dist/web/workspace/git/__next._head.txt +4 -4
  274. package/dist/web/workspace/git/__next._index.txt +13 -10
  275. package/dist/web/workspace/git/__next._tree.txt +3 -3
  276. package/dist/web/workspace/git/__next.workspace.git.__PAGE__.txt +2 -2
  277. package/dist/web/workspace/git/__next.workspace.git.txt +3 -3
  278. package/dist/web/workspace/git/__next.workspace.txt +5 -5
  279. package/dist/web/workspace/git.html +1 -1
  280. package/dist/web/workspace/git.txt +32 -24
  281. package/dist/web/workspace/mobile/__next._full.txt +32 -24
  282. package/dist/web/workspace/mobile/__next._head.txt +4 -4
  283. package/dist/web/workspace/mobile/__next._index.txt +13 -10
  284. package/dist/web/workspace/mobile/__next._tree.txt +3 -3
  285. package/dist/web/workspace/mobile/__next.workspace.mobile.__PAGE__.txt +2 -2
  286. package/dist/web/workspace/mobile/__next.workspace.mobile.txt +3 -3
  287. package/dist/web/workspace/mobile/__next.workspace.txt +5 -5
  288. package/dist/web/workspace/mobile.html +1 -1
  289. package/dist/web/workspace/mobile.txt +32 -24
  290. package/dist/web/workspace/pair/__next._full.txt +32 -24
  291. package/dist/web/workspace/pair/__next._head.txt +4 -4
  292. package/dist/web/workspace/pair/__next._index.txt +13 -10
  293. package/dist/web/workspace/pair/__next._tree.txt +3 -3
  294. package/dist/web/workspace/pair/__next.workspace.pair.__PAGE__.txt +2 -2
  295. package/dist/web/workspace/pair/__next.workspace.pair.txt +3 -3
  296. package/dist/web/workspace/pair/__next.workspace.txt +5 -5
  297. package/dist/web/workspace/pair.html +1 -1
  298. package/dist/web/workspace/pair.txt +32 -24
  299. package/dist/web/workspace/remote/__next._full.txt +32 -24
  300. package/dist/web/workspace/remote/__next._head.txt +4 -4
  301. package/dist/web/workspace/remote/__next._index.txt +13 -10
  302. package/dist/web/workspace/remote/__next._tree.txt +3 -3
  303. package/dist/web/workspace/remote/__next.workspace.remote.__PAGE__.txt +2 -2
  304. package/dist/web/workspace/remote/__next.workspace.remote.txt +3 -3
  305. package/dist/web/workspace/remote/__next.workspace.txt +5 -5
  306. package/dist/web/workspace/remote.html +1 -1
  307. package/dist/web/workspace/remote.txt +32 -24
  308. package/dist/web/workspace/terminal/default/__next._full.txt +33 -27
  309. package/dist/web/workspace/terminal/default/__next._head.txt +4 -4
  310. package/dist/web/workspace/terminal/default/__next._index.txt +13 -10
  311. package/dist/web/workspace/terminal/default/__next._tree.txt +3 -3
  312. package/dist/web/workspace/terminal/default/__next.workspace.terminal.$d$sessionId.__PAGE__.txt +2 -2
  313. package/dist/web/workspace/terminal/default/__next.workspace.terminal.$d$sessionId.txt +3 -3
  314. package/dist/web/workspace/terminal/default/__next.workspace.terminal.txt +3 -3
  315. package/dist/web/workspace/terminal/default/__next.workspace.txt +5 -5
  316. package/dist/web/workspace/terminal/default.html +1 -1
  317. package/dist/web/workspace/terminal/default.txt +33 -27
  318. package/dist/web/workspace/welcome/__next._full.txt +32 -24
  319. package/dist/web/workspace/welcome/__next._head.txt +4 -4
  320. package/dist/web/workspace/welcome/__next._index.txt +13 -10
  321. package/dist/web/workspace/welcome/__next._tree.txt +3 -3
  322. package/dist/web/workspace/welcome/__next.workspace.txt +5 -5
  323. package/dist/web/workspace/welcome/__next.workspace.welcome.__PAGE__.txt +2 -2
  324. package/dist/web/workspace/welcome/__next.workspace.welcome.txt +3 -3
  325. package/dist/web/workspace/welcome.html +1 -1
  326. package/dist/web/workspace/welcome.txt +32 -24
  327. package/dist/web/workspace/workspaces/__next._full.txt +32 -24
  328. package/dist/web/workspace/workspaces/__next._head.txt +4 -4
  329. package/dist/web/workspace/workspaces/__next._index.txt +13 -10
  330. package/dist/web/workspace/workspaces/__next._tree.txt +3 -3
  331. package/dist/web/workspace/workspaces/__next.workspace.txt +5 -5
  332. package/dist/web/workspace/workspaces/__next.workspace.workspaces.__PAGE__.txt +2 -2
  333. package/dist/web/workspace/workspaces/__next.workspace.workspaces.txt +3 -3
  334. package/dist/web/workspace/workspaces.html +1 -1
  335. package/dist/web/workspace/workspaces.txt +32 -24
  336. package/dist/web/workspace.html +1 -1
  337. package/dist/web/workspace.txt +29 -22
  338. package/package.json +5 -5
  339. package/dist/ui/assets/index-BKC13tXO.js +0 -8
  340. package/dist/web/_next/static/chunks/1050-b9af41e8856b58c0.js +0 -1
  341. package/dist/web/_next/static/chunks/132.71f657e5a607b7d3.js +0 -1
  342. package/dist/web/_next/static/chunks/133.1106654a28b5afda.js +0 -1
  343. package/dist/web/_next/static/chunks/1385.086b560acb0d7a68.js +0 -115
  344. package/dist/web/_next/static/chunks/1642.cac26d30ac331cb4.js +0 -1
  345. package/dist/web/_next/static/chunks/1733.f06c240b3ef8a428.js +0 -77
  346. package/dist/web/_next/static/chunks/1750.ea89a41e86ac2790.js +0 -1
  347. package/dist/web/_next/static/chunks/1763.28beedca593b5e19.js +0 -138
  348. package/dist/web/_next/static/chunks/179.b9e8f385bd414d1c.js +0 -62
  349. package/dist/web/_next/static/chunks/1838.7c8990f903e3524a.js +0 -215
  350. package/dist/web/_next/static/chunks/2112.d72eefbdf81659b3.js +0 -23
  351. package/dist/web/_next/static/chunks/2125.61c6e4a3541e30ad.js +0 -1
  352. package/dist/web/_next/static/chunks/2129.61afb2f4ff59e46a.js +0 -24
  353. package/dist/web/_next/static/chunks/213.ae43f03862ad9cc1.js +0 -1
  354. package/dist/web/_next/static/chunks/2179.3f55be0b79e3cca7.js +0 -1
  355. package/dist/web/_next/static/chunks/2264.0fc1474d26067a01.js +0 -1
  356. package/dist/web/_next/static/chunks/2376.ed6302a91a9de1ae.js +0 -36
  357. package/dist/web/_next/static/chunks/2545.3ff192a933baf11e.js +0 -1
  358. package/dist/web/_next/static/chunks/2620.d17f4fac0eec88a5.js +0 -1
  359. package/dist/web/_next/static/chunks/2847.d3124853ca727b78.js +0 -1
  360. package/dist/web/_next/static/chunks/2849.d810c3fdb2054b14.js +0 -1
  361. package/dist/web/_next/static/chunks/3189.64c6546d621eec0b.js +0 -1
  362. package/dist/web/_next/static/chunks/3348-9ef29f9cedf6c0df.js +0 -1
  363. package/dist/web/_next/static/chunks/3514.20bd03c8194dec25.js +0 -1
  364. package/dist/web/_next/static/chunks/3606.b59e695fd05b4eb3.js +0 -74
  365. package/dist/web/_next/static/chunks/3736.4a5662ceeecc6acb.js +0 -94
  366. package/dist/web/_next/static/chunks/392.842b338137824bb8.js +0 -1
  367. package/dist/web/_next/static/chunks/4136-d7c1ff2da0833b42.js +0 -86
  368. package/dist/web/_next/static/chunks/4300-a66b52c9e1a27db3.js +0 -1
  369. package/dist/web/_next/static/chunks/4303.54c4aa0b89834fc6.js +0 -1
  370. package/dist/web/_next/static/chunks/4551.d0d6723cacfb90b9.js +0 -226
  371. package/dist/web/_next/static/chunks/4566.d8e009823b8647d1.js +0 -90
  372. package/dist/web/_next/static/chunks/4643.1e356e007756e19d.js +0 -1
  373. package/dist/web/_next/static/chunks/4930.42e564644c94a93b.js +0 -1
  374. package/dist/web/_next/static/chunks/5155.d7e8db52ab4c95e0.js +0 -27
  375. package/dist/web/_next/static/chunks/5158-267908d069475cdc.js +0 -32
  376. package/dist/web/_next/static/chunks/543.5636e97aa68eb9c8.js +0 -41
  377. package/dist/web/_next/static/chunks/5506.98304a1821200439.js +0 -1
  378. package/dist/web/_next/static/chunks/5622.5ead5e748ecedbd1.js +0 -1
  379. package/dist/web/_next/static/chunks/5708.22b4531ceebf3eca.js +0 -1
  380. package/dist/web/_next/static/chunks/5788-f0c87f9c14fa0ff9.js +0 -1
  381. package/dist/web/_next/static/chunks/5804.ff72a927135eb74c.js +0 -93
  382. package/dist/web/_next/static/chunks/588.78e2528ff24df85c.js +0 -287
  383. package/dist/web/_next/static/chunks/6001.e5bcb28bb9ce6571.js +0 -1
  384. package/dist/web/_next/static/chunks/6180.82fa683aa16f21df.js +0 -1
  385. package/dist/web/_next/static/chunks/6276.aa48f74970f7ef3d.js +0 -1
  386. package/dist/web/_next/static/chunks/6419.34fdd4aa97c5cc5d.js +0 -1
  387. package/dist/web/_next/static/chunks/6552-cebe84e4399a184f.js +0 -1
  388. package/dist/web/_next/static/chunks/6739.22a05398bfd34922.js +0 -1
  389. package/dist/web/_next/static/chunks/674.b2f5d5fc3fb84c4a.js +0 -1
  390. package/dist/web/_next/static/chunks/7202.dad90ce4a1d78f67.js +0 -1
  391. package/dist/web/_next/static/chunks/7233.0f252f6c1cce8058.js +0 -1
  392. package/dist/web/_next/static/chunks/7248.d89bf328a0dc1b4c.js +0 -1
  393. package/dist/web/_next/static/chunks/7263.6f224c3924155294.js +0 -1
  394. package/dist/web/_next/static/chunks/7341.6958eac888a96823.js +0 -34
  395. package/dist/web/_next/static/chunks/7811.19082afa63eb73ba.js +0 -1
  396. package/dist/web/_next/static/chunks/7853.d01982fa0afc1ee2.js +0 -24
  397. package/dist/web/_next/static/chunks/7908.432ab9feeb9ae756.js +0 -1
  398. package/dist/web/_next/static/chunks/7960.2754ce9111bef59e.js +0 -1
  399. package/dist/web/_next/static/chunks/7967.6c62be01fad1603c.js +0 -1
  400. package/dist/web/_next/static/chunks/8054.feeb01b8acdb31d4.js +0 -1
  401. package/dist/web/_next/static/chunks/817.cd0f4d221eca4c8b.js +0 -104
  402. package/dist/web/_next/static/chunks/8207-45554e2570bc59e6.js +0 -1
  403. package/dist/web/_next/static/chunks/8467.c2c0273ac5e97e34.js +0 -1
  404. package/dist/web/_next/static/chunks/8495.d6cea1be03635fa8.js +0 -148
  405. package/dist/web/_next/static/chunks/8638.f44546e4532d76e8.js +0 -1
  406. package/dist/web/_next/static/chunks/8669-8d1fb8dce08c886d.js +0 -11
  407. package/dist/web/_next/static/chunks/8716.1ad6febb58e8560e.js +0 -1
  408. package/dist/web/_next/static/chunks/8762-e88a7f91d20d82bd.js +0 -1
  409. package/dist/web/_next/static/chunks/8839.1ad64faf06fb4a33.js +0 -1
  410. package/dist/web/_next/static/chunks/8922-4c589850b01d2e12.js +0 -1
  411. package/dist/web/_next/static/chunks/910.43be9c3be85c7fa0.js +0 -21
  412. package/dist/web/_next/static/chunks/925.7cfb725e605559a0.js +0 -1
  413. package/dist/web/_next/static/chunks/9259.97e2f3306fc149c7.js +0 -1
  414. package/dist/web/_next/static/chunks/9387.96263a2d1602a078.js +0 -1
  415. package/dist/web/_next/static/chunks/9568-0bfadca4fcb105aa.js +0 -1
  416. package/dist/web/_next/static/chunks/9860.05fa134ae44699e0.js +0 -1
  417. package/dist/web/_next/static/chunks/9b87412a.d2cfae4121762dec.js +0 -122
  418. package/dist/web/_next/static/chunks/a096f98a-5a93977f5f5de413.js +0 -1
  419. package/dist/web/_next/static/chunks/ab1da478.d051e56375dab6d8.js +0 -1
  420. package/dist/web/_next/static/chunks/app/_global-error/page-e656bb9bc0f3fd3d.js +0 -1
  421. package/dist/web/_next/static/chunks/app/_not-found/page-877523282abd5a7c.js +0 -1
  422. package/dist/web/_next/static/chunks/app/admin/access/page-65febd13b3d1fc91.js +0 -5
  423. package/dist/web/_next/static/chunks/app/admin/login/page-8ff8150184b7ccaa.js +0 -1
  424. package/dist/web/_next/static/chunks/app/admin/ota/page-d8766baa3680522d.js +0 -5
  425. package/dist/web/_next/static/chunks/app/admin/page-6237b1487c05f33e.js +0 -5
  426. package/dist/web/_next/static/chunks/app/admin/turn/page-6a6b695b67d59451.js +0 -5
  427. package/dist/web/_next/static/chunks/app/dev/question/page-c7128ddf798789f1.js +0 -1
  428. package/dist/web/_next/static/chunks/app/layout-a0e78c8427f97e4f.js +0 -1
  429. package/dist/web/_next/static/chunks/app/login/page-2a046d10af50c87a.js +0 -1
  430. package/dist/web/_next/static/chunks/app/workspace/browse/page-e656bb9bc0f3fd3d.js +0 -1
  431. package/dist/web/_next/static/chunks/app/workspace/editor/page-e656bb9bc0f3fd3d.js +0 -1
  432. package/dist/web/_next/static/chunks/app/workspace/files/page-e656bb9bc0f3fd3d.js +0 -1
  433. package/dist/web/_next/static/chunks/app/workspace/git/page-e656bb9bc0f3fd3d.js +0 -1
  434. package/dist/web/_next/static/chunks/app/workspace/layout-9b28454945238595.js +0 -20
  435. package/dist/web/_next/static/chunks/app/workspace/mobile/page-e656bb9bc0f3fd3d.js +0 -1
  436. package/dist/web/_next/static/chunks/app/workspace/page-e656bb9bc0f3fd3d.js +0 -1
  437. package/dist/web/_next/static/chunks/app/workspace/pair/page-e656bb9bc0f3fd3d.js +0 -1
  438. package/dist/web/_next/static/chunks/app/workspace/remote/page-e656bb9bc0f3fd3d.js +0 -1
  439. package/dist/web/_next/static/chunks/app/workspace/terminal/[sessionId]/page-e656bb9bc0f3fd3d.js +0 -1
  440. package/dist/web/_next/static/chunks/app/workspace/welcome/page-e656bb9bc0f3fd3d.js +0 -1
  441. package/dist/web/_next/static/chunks/app/workspace/workspaces/page-e656bb9bc0f3fd3d.js +0 -1
  442. package/dist/web/_next/static/chunks/c7879cf7-0d16fce1674078f9.js +0 -1
  443. package/dist/web/_next/static/chunks/cdcce140.7a440644c3dd52b8.js +0 -1
  444. package/dist/web/_next/static/chunks/framework-42053c69543a55f9.js +0 -1
  445. package/dist/web/_next/static/chunks/main-255c95c36766ce86.js +0 -5
  446. package/dist/web/_next/static/chunks/main-app-1831d4f902c3fcb9.js +0 -1
  447. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/app-error-e656bb9bc0f3fd3d.js +0 -1
  448. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/forbidden-e656bb9bc0f3fd3d.js +0 -1
  449. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/global-error-76800531999827bd.js +0 -1
  450. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/not-found-e656bb9bc0f3fd3d.js +0 -1
  451. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/unauthorized-e656bb9bc0f3fd3d.js +0 -1
  452. package/dist/web/_next/static/chunks/webpack-beef15eb580fc66b.js +0 -1
  453. package/dist/web/_next/static/css/c48f9629be2a67b4.css +0 -1
  454. package/dist/web/_next/static/hFRLMLaLieW6POo9cLvLQ/_buildManifest.js +0 -1
  455. package/dist/web/dev/question/__next._full.txt +0 -29
  456. package/dist/web/dev/question/__next._head.txt +0 -6
  457. package/dist/web/dev/question/__next._index.txt +0 -12
  458. package/dist/web/dev/question/__next._tree.txt +0 -6
  459. package/dist/web/dev/question/__next.dev.question.__PAGE__.txt +0 -9
  460. package/dist/web/dev/question/__next.dev.question.txt +0 -5
  461. package/dist/web/dev/question/__next.dev.txt +0 -5
  462. package/dist/web/dev/question.html +0 -1
  463. package/dist/web/dev/question.txt +0 -29
  464. /package/dist/web/_next/static/{hFRLMLaLieW6POo9cLvLQ → AhLhl9t958vI0woNHnp3P}/_ssgManifest.js +0 -0
  465. /package/dist/web/_next/static/chunks/{1311.8c6b8930e22ceea0.js → 6153.8c6b8930e22ceea0.js} +0 -0
  466. /package/dist/web/_next/static/chunks/{3692.8c6b8930e22ceea0.js → 8534.8c6b8930e22ceea0.js} +0 -0
@@ -0,0 +1,77 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[466],{23583:(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(63634).K)(r,"populateCommonDb")},30466:(t,e,a)=>{a.d(e,{diagram:()=>F});var r=a(23583),o=a(62572),n=a(80968),i=a(90598),l=a(88084),s=a(63634),d=a(34330),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")}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[468],{10468:(e,a,s)=>{s.d(a,{createRadarServices:()=>c.f});var c=s(86057);s(67219)}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4712],{12331:(e,r,t)=>{t.d(r,{diagram:()=>g});var a=t(16790),n=t(23583);t(62572),t(90598);var s=t(88084),l=t(63634),p=t(34330),i=(0,p.Pz)().RailroadPeg.parser.LangiumParser,o=(0,l.K)(e=>{let r=e.alternatives.map(u);return 1===r.length?r[0]:{type:"choice",alternatives:r}},"transformOrderedChoice"),u=(0,l.K)(e=>{let r=e.elements.map(m);return 1===r.length?r[0]:{type:"sequence",elements:r}},"transformSequence"),m=(0,l.K)(e=>{let r=c(e.suffix);return e.operator?{type:"special",text:"&"===e.operator?`&${d(r)}`:`!${d(r)}`}:r},"transformPrefix"),d=(0,l.K)(e=>{switch(e.type){case"terminal":return`"${e.value}"`;case"nonterminal":return e.name;case"special":return e.text;default:return"(...)"}},"nodeToLabel"),c=(0,l.K)(e=>{let r=f(e.primary);if(!e.operator)return r;switch(e.operator){case"?":return{type:"optional",element:r};case"*":return{type:"repetition",element:r,min:0,max:1/0};case"+":return{type:"repetition",element:r,min:1,max:1/0};default:throw Error(`Unsupported PEG suffix operator: ${e.operator}`)}},"transformSuffix"),f=(0,l.K)(e=>{switch(e.$type){case"PegLiteral":return{type:"terminal",value:e.value};case"PegIdentifier":return{type:"nonterminal",name:e.name};case"PegGroup":return o(e.element);case"PegAny":return{type:"special",text:e.dot};default:throw Error(`Unsupported PEG primary node: ${e.$type}`)}},"transformPrimary"),y=(0,l.K)(e=>({name:e.name,definition:o(e.definition)}),"transformRule"),P=(0,l.K)(e=>{(0,n.S)(e,a.db),e.title&&a.db.setTitle(e.title),e.rules.map(e=>a.db.addRule(y(e)))},"populateDb"),g={parser:{parse:(0,l.K)(e=>{a.db.clear(),s.R.debug("[PEG Parser] Starting Langium parse");let r=i.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new p.zg(r);let t=r.value;s.R.debug("[PEG Parser] Parsed rules:",t.rules.length),P(t),s.R.debug("[PEG Parser] Parse complete")},"parse"),parser:{yy:a.db}},db:a.db,renderer:a.U,styles:a.$}}}]);
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9675],{79675:(t,i,e)=>{e.d(i,{diagram:()=>tn});var s,a=e(58609),n=e(16111);e(12989);var h=e(49519),o=e(84187),r=e(14561),l=e(68567),c=e(10312),g=function(){var t=(0,l.K)(function(t,i,e,s){for(e=e||{},s=t.length;s--;e[t[s]]=i);return e},"o"),i=[1,10,12,14,16,18,19,21,23],e=[2,6],s=[1,3],a=[1,5],n=[1,6],h=[1,7],o=[1,5,10,12,14,16,18,19,21,23,36,37,38],r=[1,25],c=[1,26],g=[1,28],u=[1,29],x=[1,30],d=[1,31],p=[1,32],f=[1,33],m=[1,34],y=[1,35],b=[1,36],w=[1,37],A=[1,43],C=[1,42],S=[1,47],k=[1,50],R=[1,10,12,14,16,18,19,21,23,36,37,38],_=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38],T=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38,42,43,44,45,46,47,48,49,50,51],D=[1,65],L=[26,28],P={trace:(0,l.K)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,dataPoints:25,SQUARE_BRACES_END:26,dataPoint:27,COMMA:28,NUMBER_WITH_DECIMAL:29,STR:30,xAxisData:31,bandData:32,ARROW_DELIMITER:33,commaSeparatedTexts:34,yAxisData:35,NEWLINE:36,SEMI:37,EOF:38,alphaNum:39,MD_STR:40,alphaNumToken:41,AMP:42,NUM:43,ALPHA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,MINUS:50,UNDERSCORE:51,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",28:"COMMA",29:"NUMBER_WITH_DECIMAL",30:"STR",33:"ARROW_DELIMITER",36:"NEWLINE",37:"SEMI",38:"EOF",40:"MD_STR",42:"AMP",43:"NUM",44:"ALPHA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"MINUS",51:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[27,2],[27,1],[13,1],[13,2],[13,1],[31,1],[31,3],[32,3],[34,3],[34,1],[15,1],[15,2],[15,1],[35,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[39,1],[39,2],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1]],performAction:(0,l.K)(function(t,i,e,s,a,n,h){var o=n.length-1;switch(a){case 5:s.setOrientation(n[o]);break;case 9:s.setDiagramTitle(n[o].text.trim());break;case 12:s.setLineData({text:"",type:"text"},n[o]);break;case 13:s.setLineData(n[o-1],n[o]);break;case 14:s.setBarData({text:"",type:"text"},n[o]);break;case 15:s.setBarData(n[o-1],n[o]);break;case 16:this.$=n[o].trim(),s.setAccTitle(this.$);break;case 17:case 18:this.$=n[o].trim(),s.setAccDescription(this.$);break;case 19:case 29:this.$=n[o-1];break;case 20:case 30:this.$=[n[o-2],...n[o]];break;case 21:case 31:this.$=[n[o]];break;case 22:this.$={value:Number(n[o-1]),label:n[o]};break;case 23:this.$={value:Number(n[o]),label:""};break;case 24:s.setXAxisTitle(n[o]);break;case 25:s.setXAxisTitle(n[o-1]);break;case 26:s.setXAxisTitle({type:"text",text:""});break;case 27:s.setXAxisBand(n[o]);break;case 28:s.setXAxisRangeData(Number(n[o-2]),Number(n[o]));break;case 32:s.setYAxisTitle(n[o]);break;case 33:s.setYAxisTitle(n[o-1]);break;case 34:s.setYAxisTitle({type:"text",text:""});break;case 35:s.setYAxisRangeData(Number(n[o-2]),Number(n[o]));break;case 39:case 40:this.$={text:n[o],type:"text"};break;case 41:this.$={text:n[o],type:"markdown"};break;case 42:this.$=n[o];break;case 43:this.$=n[o-1]+""+n[o]}},"anonymous"),table:[t(i,e,{3:1,4:2,7:4,5:s,36:a,37:n,38:h}),{1:[3]},t(i,e,{4:2,7:4,3:8,5:s,36:a,37:n,38:h}),t(i,e,{4:2,7:4,6:9,3:10,5:s,8:[1,11],36:a,37:n,38:h}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},t(o,[2,36]),t(o,[2,37]),t(o,[2,38]),{1:[2,1]},t(i,e,{4:2,7:4,3:21,5:s,36:a,37:n,38:h}),{1:[2,3]},t(o,[2,5]),t(i,[2,7],{4:22,36:a,37:n,38:h}),{11:23,30:r,39:24,40:c,41:27,42:g,43:u,44:x,45:d,46:p,47:f,48:m,49:y,50:b,51:w},{11:39,13:38,24:A,29:C,30:r,31:40,32:41,39:24,40:c,41:27,42:g,43:u,44:x,45:d,46:p,47:f,48:m,49:y,50:b,51:w},{11:45,15:44,29:S,30:r,35:46,39:24,40:c,41:27,42:g,43:u,44:x,45:d,46:p,47:f,48:m,49:y,50:b,51:w},{11:49,17:48,24:k,30:r,39:24,40:c,41:27,42:g,43:u,44:x,45:d,46:p,47:f,48:m,49:y,50:b,51:w},{11:52,17:51,24:k,30:r,39:24,40:c,41:27,42:g,43:u,44:x,45:d,46:p,47:f,48:m,49:y,50:b,51:w},{20:[1,53]},{22:[1,54]},t(R,[2,18]),{1:[2,2]},t(R,[2,8]),t(R,[2,9]),t(_,[2,39],{41:55,42:g,43:u,44:x,45:d,46:p,47:f,48:m,49:y,50:b,51:w}),t(_,[2,40]),t(_,[2,41]),t(T,[2,42]),t(T,[2,44]),t(T,[2,45]),t(T,[2,46]),t(T,[2,47]),t(T,[2,48]),t(T,[2,49]),t(T,[2,50]),t(T,[2,51]),t(T,[2,52]),t(T,[2,53]),t(R,[2,10]),t(R,[2,24],{32:41,31:56,24:A,29:C}),t(R,[2,26]),t(R,[2,27]),{33:[1,57]},{11:59,30:r,34:58,39:24,40:c,41:27,42:g,43:u,44:x,45:d,46:p,47:f,48:m,49:y,50:b,51:w},t(R,[2,11]),t(R,[2,32],{35:60,29:S}),t(R,[2,34]),{33:[1,61]},t(R,[2,12]),{17:62,24:k},{25:63,27:64,29:D},t(R,[2,14]),{17:66,24:k},t(R,[2,16]),t(R,[2,17]),t(T,[2,43]),t(R,[2,25]),{29:[1,67]},{26:[1,68]},{26:[2,31],28:[1,69]},t(R,[2,33]),{29:[1,70]},t(R,[2,13]),{26:[1,71]},{26:[2,21],28:[1,72]},t(L,[2,23],{30:[1,73]}),t(R,[2,15]),t(R,[2,28]),t(R,[2,29]),{11:59,30:r,34:74,39:24,40:c,41:27,42:g,43:u,44:x,45:d,46:p,47:f,48:m,49:y,50:b,51:w},t(R,[2,35]),t(R,[2,19]),{25:75,27:64,29:D},t(L,[2,22]),{26:[2,30]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],74:[2,30],75:[2,20]},parseError:(0,l.K)(function(t,i){if(i.recoverable)this.trace(t);else{var e=Error(t);throw e.hash=i,e}},"parseError"),parse:(0,l.K)(function(t){var i=this,e=[0],s=[],a=[null],n=[],h=this.table,o="",r=0,c=0,g=0,u=n.slice.call(arguments,1),x=Object.create(this.lexer),d={};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(d[p]=this.yy[p]);x.setInput(t,d),d.lexer=x,d.parser=this,void 0===x.yylloc&&(x.yylloc={});var f=x.yylloc;n.push(f);var m=x.options&&x.options.ranges;function y(){var t;return"number"!=typeof(t=s.pop()||x.lex()||1)&&(t instanceof Array&&(t=(s=t).pop()),t=i.symbols_[t]||t),t}"function"==typeof d.parseError?this.parseError=d.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,l.K)(function(t){e.length=e.length-2*t,a.length=a.length-t,n.length=n.length-t},"popStack"),(0,l.K)(y,"lex");for(var b,w,A,C,S,k,R,_,T,D={};;){if(A=e[e.length-1],this.defaultActions[A]?C=this.defaultActions[A]:(null==b&&(b=y()),C=h[A]&&h[A][b]),void 0===C||!C.length||!C[0]){var L="";for(k in T=[],h[A])this.terminals_[k]&&k>2&&T.push("'"+this.terminals_[k]+"'");L=x.showPosition?"Parse error on line "+(r+1)+":\n"+x.showPosition()+"\nExpecting "+T.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(r+1)+": Unexpected "+(1==b?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(L,{text:x.match,token:this.terminals_[b]||b,line:x.yylineno,loc:f,expected:T})}if(C[0]instanceof Array&&C.length>1)throw Error("Parse Error: multiple actions possible at state: "+A+", token: "+b);switch(C[0]){case 1:e.push(b),a.push(x.yytext),n.push(x.yylloc),e.push(C[1]),b=null,w?(b=w,w=null):(c=x.yyleng,o=x.yytext,r=x.yylineno,f=x.yylloc,g>0&&g--);break;case 2:if(R=this.productions_[C[1]][1],D.$=a[a.length-R],D._$={first_line:n[n.length-(R||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-(R||1)].first_column,last_column:n[n.length-1].last_column},m&&(D._$.range=[n[n.length-(R||1)].range[0],n[n.length-1].range[1]]),void 0!==(S=this.performAction.apply(D,[o,c,r,d,C[1],a,n].concat(u))))return S;R&&(e=e.slice(0,-1*R*2),a=a.slice(0,-1*R),n=n.slice(0,-1*R)),e.push(this.productions_[C[1]][0]),a.push(D.$),n.push(D._$),_=h[e[e.length-2]][e[e.length-1]],e.push(_);break;case 3:return!0}}return!0},"parse")};function v(){this.yy={}}return P.lexer={EOF:1,parseError:(0,l.K)(function(t,i){if(this.yy.parser)this.yy.parser.parseError(t,i);else throw Error(t)},"parseError"),setInput:(0,l.K)(function(t,i){return this.yy=i||this.yy||{},this._input=t,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,l.K)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.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),t},"input"),unput:(0,l.K)(function(t){var i=t.length,e=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;var s=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),e.length-1&&(this.yylineno-=e.length-1);var a=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:e?(e.length===s.length?this.yylloc.first_column:0)+s[s.length-e.length].length-e[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-i]),this.yyleng=this.yytext.length,this},"unput"),more:(0,l.K)(function(){return this._more=!0,this},"more"),reject:(0,l.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,l.K)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,l.K)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,l.K)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,l.K)(function(){var t=this.pastInput(),i=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+i+"^"},"showPosition"),test_match:(0,l.K)(function(t,i){var e,s,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(s=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,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(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,i,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e)return e;if(this._backtrack)for(var n in a)this[n]=a[n];return!1},"test_match"),next:(0,l.K)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,i,e,s,a=this._currentRules(),n=0;n<a.length;n++)if((e=this._input.match(this.rules[a[n]]))&&(!i||e[0].length>i[0].length)){if(i=e,s=n,this.options.backtrack_lexer){if(!1!==(t=this.test_match(e,a[n])))return t;if(!this._backtrack)return!1;i=!1;continue}if(!this.options.flex)break}return i?!1!==(t=this.test_match(i,a[s]))&&t:""===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,l.K)(function(){var t=this.next();return t||this.lex()},"lex"),begin:(0,l.K)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,l.K)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,l.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,l.K)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,l.K)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,l.K)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,l.K)(function(t,i,e,s){switch(e){case 0:case 1:case 5:case 44:break;case 2:case 3:return this.popState(),36;case 4:return 36;case 6:return 10;case 7:return this.pushState("acc_title"),19;case 8:return this.popState(),"acc_title_value";case 9:return this.pushState("acc_descr"),21;case 10:return this.popState(),"acc_descr_value";case 11:this.pushState("acc_descr_multiline");break;case 12:case 26:case 28:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:case 15:return 5;case 16:return 8;case 17:return this.pushState("axis_data"),"X_AXIS";case 18:return this.pushState("axis_data"),"Y_AXIS";case 19:return this.pushState("axis_band_data"),24;case 20:return 33;case 21:return this.pushState("data"),16;case 22:return this.pushState("data"),18;case 23:return this.pushState("data_inner"),24;case 24:return 29;case 25:return this.popState(),26;case 27:this.pushState("string");break;case 29:return"STR";case 30:return 24;case 31:return 26;case 32:return 44;case 33:return"COLON";case 34:return 45;case 35:return 28;case 36:return 46;case 37:return 47;case 38:return 49;case 39:return 51;case 40:return 48;case 41:return 42;case 42:return 50;case 43:return 43;case 45:return 37;case 46:return 38}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\})/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:xychart\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n<md_string>\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n<md_string>\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,24,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,18,21,22,23,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,22,24,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[28,29],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0}}},(0,l.K)(v,"Parser"),v.prototype=P,P.Parser=v,new v}();function u(t){return"bar"===t.type}function x(t){return"band"===t.type}function d(t){return"linear"===t.type}g.parser=g,(0,l.K)(u,"isBarPlot"),(0,l.K)(x,"isBandAxisData"),(0,l.K)(d,"isLinearAxisData");var p=class{constructor(t){this.parentGroup=t}static{(0,l.K)(this,"TextDimensionCalculatorWithFont")}getMaxDimension(t,i){if(!this.parentGroup)return{width:t.reduce((t,i)=>Math.max(i.length,t),0)*i,height:i};let e={width:0,height:0},s=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",i);for(let a of t){let t=(0,n.W6)(s,1,a),h=t?t.width:a.length*i,o=t?t.height:i;e.width=Math.max(e.width,h),e.height=Math.max(e.height,o)}return s.remove(),e}},f=class{constructor(t,i,e,s){this.axisConfig=t,this.title=i,this.textDimensionCalculator=e,this.axisThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.showTitle=!1,this.showLabel=!1,this.showTick=!1,this.showAxisLine=!1,this.outerPadding=0,this.titleTextHeight=0,this.labelTextHeight=0,this.normalizedLabelRotationInRad=0,this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.normalizedLabelRotationInRad=this.axisConfig.labelRotation>=-90&&this.axisConfig.labelRotation<=90?this.axisConfig.labelRotation*Math.PI/180:0}static{(0,l.K)(this,"BaseAxis")}setRange(t){this.range=t,"left"===this.axisPosition||"right"===this.axisPosition?this.boundingRect.height=t[1]-t[0]:this.boundingRect.width=t[1]-t[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(t){this.axisPosition=t,this.setRange(this.range)}getTickDistance(){let t=this.getRange();return Math.abs(t[0]-t[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(t=>t.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){.7*this.getTickDistance()>2*this.outerPadding&&(this.outerPadding=Math.floor(.7*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(t){let i=t.height;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let e=this.getLabelDimension(),s=.2*t.width;this.outerPadding=Math.min(e.width/2,s);let a=e.height;"bottom"===this.axisPosition&&0!==this.normalizedLabelRotationInRad&&(a=Math.max(a,Math.abs(Math.sin(this.normalizedLabelRotationInRad)*e.width)+Math.abs(Math.cos(this.normalizedLabelRotationInRad)*e.height))),a+=2*this.axisConfig.labelPadding,this.labelTextHeight=e.height,a<=i&&(i-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let t=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),e=t.height+2*this.axisConfig.titlePadding;this.titleTextHeight=t.height,e<=i&&(i-=e,this.showTitle=!0)}this.boundingRect.width=t.width,this.boundingRect.height=t.height-i}calculateSpaceIfDrawnVertical(t){let i=t.width;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let e=this.getLabelDimension(),s=.2*t.height;this.outerPadding=Math.min(e.height/2,s);let a=e.width+2*this.axisConfig.labelPadding;a<=i&&(i-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let t=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),e=t.height+2*this.axisConfig.titlePadding;this.titleTextHeight=t.height,e<=i&&(i-=e,this.showTitle=!0)}this.boundingRect.width=t.width-i,this.boundingRect.height=t.height}calculateSpace(t){return"left"===this.axisPosition||"right"===this.axisPosition?this.calculateSpaceIfDrawnVertical(t):this.calculateSpaceIfDrawnHorizontally(t),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateOffsetByRotation(t){let i=this.normalizedLabelRotationInRad;return 0===i?0:Math.sin(i)*this.getLabelDimension()[t]/2}getDrawableElementsForLeftAxis(){let t=[];if(this.showAxisLine){let i=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${i},${this.boundingRect.y} L ${i},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(t=>({text:t.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(t),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){let i=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(t=>({path:`M ${i},${this.getScaleValue(t)} L ${i-this.axisConfig.tickLength},${this.getScaleValue(t)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForBottomAxis(){let t=[];if(this.showAxisLine){let i=this.boundingRect.y+this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(t=>({text:t.toString(),x:this.getScaleValue(t)+this.calculateOffsetByRotation("height"),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0)+Math.abs(this.calculateOffsetByRotation("width")),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:180*this.normalizedLabelRotationInRad/Math.PI,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let i=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(t=>({path:`M ${this.getScaleValue(t)},${i} L ${this.getScaleValue(t)},${i+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForTopAxis(){let t=[];if(this.showAxisLine){let i=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(t=>({text:t.toString(),x:this.getScaleValue(t),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+2*this.axisConfig.titlePadding:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let i=this.boundingRect.y;t.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(t=>({path:`M ${this.getScaleValue(t)},${i+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(t)},${i+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElements(){if("left"===this.axisPosition)return this.getDrawableElementsForLeftAxis();if("right"===this.axisPosition)throw Error("Drawing of right axis is not implemented");return"bottom"===this.axisPosition?this.getDrawableElementsForBottomAxis():"top"===this.axisPosition?this.getDrawableElementsForTopAxis():[]}},m=class extends f{static{(0,l.K)(this,"BandAxis")}constructor(t,i,e,s,a){super(t,s,a,i),this.categories=e,this.scale=(0,c.WH)().domain(this.categories).range(this.getRange())}setRange(t){super.setRange(t)}recalculateScale(){this.scale=(0,c.WH)().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),r.R.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(t){return this.scale(t)??this.getRange()[0]}},y=class extends f{static{(0,l.K)(this,"LinearAxis")}constructor(t,i,e,s,a){super(t,s,a,i),this.domain=e,this.scale=(0,c.m4Y)().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){let t=[...this.domain];"left"===this.axisPosition&&t.reverse(),this.scale=(0,c.m4Y)().domain(t).range(this.getRange())}getScaleValue(t){return this.scale(t)}};function b(t,i,e,s){let a=new p(s);return x(t)?new m(i,e,t.categories,t.title,a):new y(i,e,[t.min,t.max],t.title,a)}(0,l.K)(b,"getAxis");var w=class{constructor(t,i,e,s){this.textDimensionCalculator=t,this.chartConfig=i,this.chartData=e,this.chartThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}static{(0,l.K)(this,"ChartTitle")}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){let i=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),e=Math.max(i.width,t.width),s=i.height+2*this.chartConfig.titlePadding;return i.width<=e&&i.height<=s&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=e,this.boundingRect.height=s,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){let t=[];return this.showChartTitle&&t.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),t}};function A(t,i,e,s){return new w(new p(s),t,i,e)}function C(t){return{fontSize:t,markerSize:.75*t,markerSpacing:.35*t,itemSpacing:.5*t}}(0,l.K)(A,"getChartTitleComponent"),(0,l.K)(C,"getLegendLayout");var S=class{constructor(t,i,e,s){this.textDimensionCalculator=t,this.chartConfig=i,this.chartData=e,this.chartThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0},this.visiblePlots=[]}static{(0,l.K)(this,"ChartLegend")}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){if(this.visiblePlots=this.chartConfig.showLegend?this.chartData.plots.filter(t=>t.title):[],0===this.visiblePlots.length)return this.boundingRect.width=0,this.boundingRect.height=0,{width:0,height:0};let{fontSize:i,markerSize:e,markerSpacing:s,itemSpacing:a}=C(this.chartConfig.legendFontSize),n=this.textDimensionCalculator.getMaxDimension(this.visiblePlots.map(t=>t.title),i),h=2*this.chartConfig.legendPadding+e+s+n.width,o=2*this.chartConfig.legendPadding+this.visiblePlots.length*i+(this.visiblePlots.length-1)*a;return h<=t.width&&o<=t.height?(this.boundingRect.width=h,this.boundingRect.height=o):(this.visiblePlots=[],this.boundingRect.width=0,this.boundingRect.height=0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(0===this.visiblePlots.length)return[];let{fontSize:t,markerSize:i,markerSpacing:e,itemSpacing:s}=C(this.chartConfig.legendFontSize),a=t+s,n=this.boundingRect.x+this.chartConfig.legendPadding,h=this.boundingRect.y+this.chartConfig.legendPadding,o=[],r=[];for(let[t,e]of this.visiblePlots.entries())if(u(e))o.push({x:n,y:h+t*a,width:i,height:i,fill:e.fill,strokeFill:e.fill,strokeWidth:0});else{let s=h+t*a+i/2;r.push({path:`M ${n},${s} L ${n+i},${s}`,strokeFill:e.strokeFill,strokeWidth:e.strokeWidth})}return[{groupTexts:["legend","markers"],type:"rect",data:o},{groupTexts:["legend","markers"],type:"path",data:r},{groupTexts:["legend","label"],type:"text",data:this.visiblePlots.map((s,o)=>({text:s.title,x:n+i+e,y:h+o*a+i/2,fill:this.chartThemeConfig.legendTextColor,fontSize:t,rotation:0,verticalPos:"middle",horizontalPos:"left"}))}]}};function k(t,i,e,s){return new S(new p(s),t,i,e)}(0,l.K)(k,"getChartLegendComponent");var R=class{constructor(t,i,e,s,a){this.plotData=t,this.xAxis=i,this.yAxis=e,this.orientation=s,this.plotIndex=a}static{(0,l.K)(this,"LinePlot")}getDrawableElement(){let t,i=this.plotData.data.map(t=>[this.xAxis.getScaleValue(t[0]),this.yAxis.getScaleValue(t[1])]);if(!(t="horizontal"===this.orientation?(0,c.n8j)().y(t=>t[0]).x(t=>t[1])(i):(0,c.n8j)().x(t=>t[0]).y(t=>t[1])(i)))return[];let e=[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:t,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}];if(this.plotData.pointLabels&&this.plotData.pointLabels.length>0){let t=[];for(let[e,[s,a]]of i.entries()){let i=this.plotData.pointLabels[e];i&&("horizontal"===this.orientation?t.push({x:a+10,y:s,text:i,fill:this.plotData.strokeFill,verticalPos:"middle",horizontalPos:"left",fontSize:12,rotation:0}):t.push({x:s,y:a-10,text:i,fill:this.plotData.strokeFill,verticalPos:"middle",horizontalPos:"center",fontSize:12,rotation:0}))}t.length>0&&e.push({groupTexts:["plot",`line-plot-${this.plotIndex}`,"labels"],type:"text",data:t})}return e}},_=class{constructor(t,i,e,s,a,n){this.barData=t,this.boundingRect=i,this.xAxis=e,this.yAxis=s,this.orientation=a,this.plotIndex=n}static{(0,l.K)(this,"BarPlot")}getDrawableElement(){let t=this.barData.data.map(t=>[this.xAxis.getScaleValue(t[0]),this.yAxis.getScaleValue(t[1])]),i=.95*Math.min(2*this.xAxis.getAxisOuterPadding(),this.xAxis.getTickDistance()),e=i/2;return"horizontal"===this.orientation?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(t=>({x:this.boundingRect.x,y:t[0]-e,height:i,width:t[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(t=>({x:t[0]-e,y:t[1],width:i,height:this.boundingRect.y+this.boundingRect.height-t[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}},T=class{constructor(t,i,e){this.chartConfig=t,this.chartData=i,this.chartThemeConfig=e,this.boundingRect={x:0,y:0,width:0,height:0}}static{(0,l.K)(this,"BasePlot")}setAxes(t,i){this.xAxis=t,this.yAxis=i}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){return this.boundingRect.width=t.width,this.boundingRect.height=t.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");let t=[];for(let[i,e]of this.chartData.plots.entries())switch(e.type){case"line":{let s=new R(e,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...s.getDrawableElement())}break;case"bar":{let s=new _(e,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...s.getDrawableElement())}}return t}};function D(t,i,e){return new T(t,i,e)}(0,l.K)(D,"getPlotComponent");var L=class{constructor(t,i,e,s){this.chartConfig=t,this.chartData=i,this.componentStore={title:A(t,i,e,s),plot:D(t,i,e),legend:k(t,i,e,s),xAxis:b(i.xAxis,t.xAxis,{titleColor:e.xAxisTitleColor,labelColor:e.xAxisLabelColor,tickColor:e.xAxisTickColor,axisLineColor:e.xAxisLineColor},s),yAxis:b(i.yAxis,t.yAxis,{titleColor:e.yAxisTitleColor,labelColor:e.yAxisLabelColor,tickColor:e.yAxisTickColor,axisLineColor:e.yAxisLineColor},s)}}static{(0,l.K)(this,"Orchestrator")}calculateVerticalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,e=0,s=0,a={width:0,height:0},n=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),h=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),o=this.componentStore.plot.calculateSpace({width:n,height:h});t-=o.width,i-=o.height,s=(o=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i})).height,i-=o.height,this.componentStore.xAxis.setAxisPosition("bottom"),o=this.componentStore.xAxis.calculateSpace({width:t,height:i}),i-=o.height,this.componentStore.yAxis.setAxisPosition("left"),e=(o=this.componentStore.yAxis.calculateSpace({width:t,height:i})).width,t-=o.width,a=this.componentStore.legend.calculateSpace({width:t,height:h}),(t-=a.width)>0&&(n+=t,t=0),i>0&&(h+=i,i=0),this.componentStore.plot.calculateSpace({width:n,height:h}),this.componentStore.plot.setBoundingBoxXY({x:e,y:s}),this.componentStore.legend.setBoundingBoxXY({x:e+n,y:s+Math.max((h-a.height)/2,0)}),this.componentStore.xAxis.setRange([e,e+n]),this.componentStore.xAxis.setBoundingBoxXY({x:e,y:s+h}),this.componentStore.yAxis.setRange([s,s+h]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:s}),this.chartData.plots.some(t=>u(t))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,e=0,s=0,a=0,n={width:0,height:0},h=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),o=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),r=this.componentStore.plot.calculateSpace({width:h,height:o});t-=r.width,i-=r.height,e=(r=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i})).height,i-=r.height,this.componentStore.xAxis.setAxisPosition("left"),r=this.componentStore.xAxis.calculateSpace({width:t,height:i}),t-=r.width,s=r.width,this.componentStore.yAxis.setAxisPosition("top"),r=this.componentStore.yAxis.calculateSpace({width:t,height:i}),i-=r.height,a=e+r.height,n=this.componentStore.legend.calculateSpace({width:t,height:o}),(t-=n.width)>0&&(h+=t,t=0),i>0&&(o+=i,i=0),this.componentStore.plot.calculateSpace({width:h,height:o}),this.componentStore.plot.setBoundingBoxXY({x:s,y:a}),this.componentStore.legend.setBoundingBoxXY({x:s+h,y:a+Math.max((o-n.height)/2,0)}),this.componentStore.yAxis.setRange([s,s+h]),this.componentStore.yAxis.setBoundingBoxXY({x:s,y:e}),this.componentStore.xAxis.setRange([a,a+o]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:a}),this.chartData.plots.some(t=>u(t))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){"horizontal"===this.chartConfig.chartOrientation?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();let t=[];for(let i of(this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis),Object.values(this.componentStore)))t.push(...i.getDrawableElements());return t}},P=class{static{(0,l.K)(this,"XYChartBuilder")}static build(t,i,e,s){return new L(t,i,e,s).getDrawableElement()}},v=0,E=W(),K=B(),I=F(),M=K.plotColorPalette.split(",").map(t=>t.trim()),z=!1,$=!1;function B(){let t=(0,o.P$)(),i=(0,o.zj)();return(0,h.$t)(t.xyChart,i.themeVariables.xyChart)}function W(){let t=(0,o.zj)();return(0,h.$t)(o.UI.xyChart,t.xyChart)}function F(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function O(t){let i=(0,o.zj)();return(0,o.jZ)(t.trim(),i)}function N(t){s=t}function X(t){"horizontal"===t?E.chartOrientation="horizontal":E.chartOrientation="vertical"}function V(t){I.xAxis.title=O(t.text)}function Y(t,i){I.xAxis={type:"linear",title:I.xAxis.title,min:t,max:i},z=!0}function H(t){I.xAxis={type:"band",title:I.xAxis.title,categories:t.map(t=>O(t.text))},z=!0}function U(t){I.yAxis.title=O(t.text)}function j(t,i){I.yAxis={type:"linear",title:I.yAxis.title,min:t,max:i},$=!0}function G(t){let i=Math.min(...t),e=Math.max(...t),s=d(I.yAxis)?I.yAxis.min:1/0,a=d(I.yAxis)?I.yAxis.max:-1/0;I.yAxis={type:"linear",title:I.yAxis.title,min:Math.min(s,i),max:Math.max(a,e)}}function Q(t){let i=[];if(0===t.length)return i;if(z||Y(Math.min(d(I.xAxis)?I.xAxis.min:1/0,1),Math.max(d(I.xAxis)?I.xAxis.max:-1/0,t.length)),x(I.xAxis)&&t.length>I.xAxis.categories.length&&(t=t.slice(0,I.xAxis.categories.length)),$||G(t),x(I.xAxis)&&(i=I.xAxis.categories.map((i,e)=>[i,t[e]])),d(I.xAxis)){let e=I.xAxis.min,s=I.xAxis.max;if(1===t.length)i=[[`${e}`,t[0]]];else{let a=(s-e)/(t.length-1);i=t.map((t,i)=>[`${e+i*a}`,t])}}return i}function Z(t){return M[0===t?0:t%M.length]}function q(t,i){let e=i.map(t=>t.value),s=i.map(t=>t.label?O(t.label):""),a=Q(e),n=s.some(t=>""!==t);I.plots.push({type:"line",title:O(t.text),strokeFill:Z(v),strokeWidth:2,data:a,...n?{pointLabels:s}:{}}),v++}function J(t,i){let e=Q(i.map(t=>t.value));I.plots.push({type:"bar",title:O(t.text),fill:Z(v),data:e}),v++}function tt(){if(0===I.plots.length)throw Error("No Plot to render, please provide a plot with some data");return I.title=(0,o.ab)(),P.build(E,I,K,s)}function ti(){return K}function te(){return E}function ts(){return I}(0,l.K)(B,"getChartDefaultThemeConfig"),(0,l.K)(W,"getChartDefaultConfig"),(0,l.K)(F,"getChartDefaultData"),(0,l.K)(O,"textSanitizer"),(0,l.K)(N,"setTmpSVGG"),(0,l.K)(X,"setOrientation"),(0,l.K)(V,"setXAxisTitle"),(0,l.K)(Y,"setXAxisRangeData"),(0,l.K)(H,"setXAxisBand"),(0,l.K)(U,"setYAxisTitle"),(0,l.K)(j,"setYAxisRangeData"),(0,l.K)(G,"setYAxisRangeFromPlotData"),(0,l.K)(Q,"transformDataWithoutCategory"),(0,l.K)(Z,"getPlotColorFromPalette"),(0,l.K)(q,"setLineData"),(0,l.K)(J,"setBarData"),(0,l.K)(tt,"getDrawableElem"),(0,l.K)(ti,"getChartThemeConfig"),(0,l.K)(te,"getChartConfig"),(0,l.K)(ts,"getXYChartData");var ta={getDrawableElem:tt,clear:(0,l.K)(function(){(0,o.IU)(),v=0,E=W(),I=F(),M=(K=B()).plotColorPalette.split(",").map(t=>t.trim()),z=!1,$=!1},"clear"),setAccTitle:o.SV,getAccTitle:o.iN,setDiagramTitle:o.ke,getDiagramTitle:o.ab,getAccDescription:o.m7,setAccDescription:o.EI,setOrientation:X,setXAxisTitle:V,setXAxisRangeData:Y,setXAxisBand:H,setYAxisTitle:U,setYAxisRangeData:j,setLineData:q,setBarData:J,setTmpSVGG:N,getChartThemeConfig:ti,getChartConfig:te,getXYChartData:ts},tn={parser:g,db:ta,renderer:{draw:(0,l.K)((t,i,e,s)=>{let n=s.db,h=n.getChartThemeConfig(),c=n.getChartConfig(),g=n.getXYChartData().plots[0].data.map(t=>t[1]);function u(t){return"top"===t?"text-before-edge":"middle"}function x(t){return"left"===t?"start":"right"===t?"end":"middle"}function d(t){return`translate(${t.x}, ${t.y}) rotate(${t.rotation||0})`}(0,l.K)(u,"getDominantBaseLine"),(0,l.K)(x,"getTextAnchor"),(0,l.K)(d,"getTextTransformation"),r.R.debug("Rendering xychart chart\n"+t);let p=(0,a.D)(i),f=p.append("g").attr("class","main"),m=f.append("rect").attr("width",c.width).attr("height",c.height).attr("class","background");(0,o.a$)(p,c.height,c.width,!0),p.attr("viewBox",`0 0 ${c.width} ${c.height}`),m.attr("fill",h.backgroundColor),n.setTmpSVGG(p.append("g").attr("class","mermaid-tmp-group"));let y=n.getDrawableElem(),b={};function w(t){let i=f,e="";for(let[s]of t.entries()){let a=f;s>0&&b[e]&&(a=b[e]),e+=t[s],(i=b[e])||(i=b[e]=a.append("g").attr("class",t[s]))}return i}for(let t of((0,l.K)(w,"getGroup"),y)){if(0===t.data.length)continue;let i=w(t.groupTexts);switch(t.type){case"rect":if(i.selectAll("rect").data(t.data).enter().append("rect").attr("x",t=>t.x).attr("y",t=>t.y).attr("width",t=>t.width).attr("height",t=>t.height).attr("fill",t=>t.fill).attr("stroke",t=>t.strokeFill).attr("stroke-width",t=>t.strokeWidth),c.showDataLabel){let e=c.showDataLabelOutsideBar;if("horizontal"===c.chartOrientation){let s=function(t,i){let{data:e,label:s}=t;return i*s.length*a<=e.width-n};(0,l.K)(s,"fitsHorizontally");let a=.7,n=10,o=t.data.map((t,i)=>({data:t,label:g[i].toString()})).filter(t=>t.data.width>0&&t.data.height>0),r=Math.floor(Math.min(...o.map(t=>{let{data:i}=t,e=.7*i.height;for(;!s(t,e)&&e>0;)e-=1;return e}))),c=(0,l.K)(t=>e?t.data.x+t.data.width+n:t.data.x+t.data.width-n,"determineLabelXPosition");i.selectAll("text").data(o).enter().append("text").attr("x",c).attr("y",t=>t.data.y+t.data.height/2).attr("text-anchor",e?"start":"end").attr("dominant-baseline","middle").attr("fill",h.dataLabelColor).attr("font-size",`${r}px`).text(t=>t.label)}else{let s=function(t,i,e){let{data:s,label:a}=t,n=i*a.length*.7,h=s.x+s.width/2,o=h-n/2,r=h+n/2,l=o>=s.x&&r<=s.x+s.width,c=s.y+e+i<=s.y+s.height;return l&&c};(0,l.K)(s,"fitsInBar");let a=t.data.map((t,i)=>({data:t,label:g[i].toString()})).filter(t=>t.data.width>0&&t.data.height>0),n=Math.floor(Math.min(...a.map(t=>{let{data:i,label:e}=t,a=i.width/(.7*e.length);for(;!s(t,a,10)&&a>0;)a-=1;return a}))),o=(0,l.K)(t=>e?t.data.y-10:t.data.y+10,"determineLabelYPosition");i.selectAll("text").data(a).enter().append("text").attr("x",t=>t.data.x+t.data.width/2).attr("y",o).attr("text-anchor","middle").attr("dominant-baseline",e?"auto":"hanging").attr("fill",h.dataLabelColor).attr("font-size",`${n}px`).text(t=>t.label)}}break;case"text":i.selectAll("text").data(t.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",t=>t.fill).attr("font-size",t=>t.fontSize).attr("dominant-baseline",t=>u(t.verticalPos)).attr("text-anchor",t=>x(t.horizontalPos)).attr("transform",t=>d(t)).text(t=>t.text);break;case"path":i.selectAll("path").data(t.data).enter().append("path").attr("d",t=>t.path).attr("fill",t=>t.fill?t.fill:"none").attr("stroke",t=>t.strokeFill).attr("stroke-width",t=>t.strokeWidth)}}},"draw")}}}}]);
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4724],{84724:(t,i,e)=>{e.d(i,{diagram:()=>tn});var s,a=e(62572),n=e(94596);e(27902);var h=e(80968),o=e(90598),r=e(88084),l=e(63634),c=e(83903),g=function(){var t=(0,l.K)(function(t,i,e,s){for(e=e||{},s=t.length;s--;e[t[s]]=i);return e},"o"),i=[1,10,12,14,16,18,19,21,23],e=[2,6],s=[1,3],a=[1,5],n=[1,6],h=[1,7],o=[1,5,10,12,14,16,18,19,21,23,36,37,38],r=[1,25],c=[1,26],g=[1,28],u=[1,29],x=[1,30],d=[1,31],p=[1,32],f=[1,33],m=[1,34],y=[1,35],b=[1,36],w=[1,37],A=[1,43],C=[1,42],S=[1,47],k=[1,50],R=[1,10,12,14,16,18,19,21,23,36,37,38],_=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38],T=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38,42,43,44,45,46,47,48,49,50,51],D=[1,65],L=[26,28],P={trace:(0,l.K)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,dataPoints:25,SQUARE_BRACES_END:26,dataPoint:27,COMMA:28,NUMBER_WITH_DECIMAL:29,STR:30,xAxisData:31,bandData:32,ARROW_DELIMITER:33,commaSeparatedTexts:34,yAxisData:35,NEWLINE:36,SEMI:37,EOF:38,alphaNum:39,MD_STR:40,alphaNumToken:41,AMP:42,NUM:43,ALPHA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,MINUS:50,UNDERSCORE:51,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",28:"COMMA",29:"NUMBER_WITH_DECIMAL",30:"STR",33:"ARROW_DELIMITER",36:"NEWLINE",37:"SEMI",38:"EOF",40:"MD_STR",42:"AMP",43:"NUM",44:"ALPHA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"MINUS",51:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[27,2],[27,1],[13,1],[13,2],[13,1],[31,1],[31,3],[32,3],[34,3],[34,1],[15,1],[15,2],[15,1],[35,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[39,1],[39,2],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1]],performAction:(0,l.K)(function(t,i,e,s,a,n,h){var o=n.length-1;switch(a){case 5:s.setOrientation(n[o]);break;case 9:s.setDiagramTitle(n[o].text.trim());break;case 12:s.setLineData({text:"",type:"text"},n[o]);break;case 13:s.setLineData(n[o-1],n[o]);break;case 14:s.setBarData({text:"",type:"text"},n[o]);break;case 15:s.setBarData(n[o-1],n[o]);break;case 16:this.$=n[o].trim(),s.setAccTitle(this.$);break;case 17:case 18:this.$=n[o].trim(),s.setAccDescription(this.$);break;case 19:case 29:this.$=n[o-1];break;case 20:case 30:this.$=[n[o-2],...n[o]];break;case 21:case 31:this.$=[n[o]];break;case 22:this.$={value:Number(n[o-1]),label:n[o]};break;case 23:this.$={value:Number(n[o]),label:""};break;case 24:s.setXAxisTitle(n[o]);break;case 25:s.setXAxisTitle(n[o-1]);break;case 26:s.setXAxisTitle({type:"text",text:""});break;case 27:s.setXAxisBand(n[o]);break;case 28:s.setXAxisRangeData(Number(n[o-2]),Number(n[o]));break;case 32:s.setYAxisTitle(n[o]);break;case 33:s.setYAxisTitle(n[o-1]);break;case 34:s.setYAxisTitle({type:"text",text:""});break;case 35:s.setYAxisRangeData(Number(n[o-2]),Number(n[o]));break;case 39:case 40:this.$={text:n[o],type:"text"};break;case 41:this.$={text:n[o],type:"markdown"};break;case 42:this.$=n[o];break;case 43:this.$=n[o-1]+""+n[o]}},"anonymous"),table:[t(i,e,{3:1,4:2,7:4,5:s,36:a,37:n,38:h}),{1:[3]},t(i,e,{4:2,7:4,3:8,5:s,36:a,37:n,38:h}),t(i,e,{4:2,7:4,6:9,3:10,5:s,8:[1,11],36:a,37:n,38:h}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},t(o,[2,36]),t(o,[2,37]),t(o,[2,38]),{1:[2,1]},t(i,e,{4:2,7:4,3:21,5:s,36:a,37:n,38:h}),{1:[2,3]},t(o,[2,5]),t(i,[2,7],{4:22,36:a,37:n,38:h}),{11:23,30:r,39:24,40:c,41:27,42:g,43:u,44:x,45:d,46:p,47:f,48:m,49:y,50:b,51:w},{11:39,13:38,24:A,29:C,30:r,31:40,32:41,39:24,40:c,41:27,42:g,43:u,44:x,45:d,46:p,47:f,48:m,49:y,50:b,51:w},{11:45,15:44,29:S,30:r,35:46,39:24,40:c,41:27,42:g,43:u,44:x,45:d,46:p,47:f,48:m,49:y,50:b,51:w},{11:49,17:48,24:k,30:r,39:24,40:c,41:27,42:g,43:u,44:x,45:d,46:p,47:f,48:m,49:y,50:b,51:w},{11:52,17:51,24:k,30:r,39:24,40:c,41:27,42:g,43:u,44:x,45:d,46:p,47:f,48:m,49:y,50:b,51:w},{20:[1,53]},{22:[1,54]},t(R,[2,18]),{1:[2,2]},t(R,[2,8]),t(R,[2,9]),t(_,[2,39],{41:55,42:g,43:u,44:x,45:d,46:p,47:f,48:m,49:y,50:b,51:w}),t(_,[2,40]),t(_,[2,41]),t(T,[2,42]),t(T,[2,44]),t(T,[2,45]),t(T,[2,46]),t(T,[2,47]),t(T,[2,48]),t(T,[2,49]),t(T,[2,50]),t(T,[2,51]),t(T,[2,52]),t(T,[2,53]),t(R,[2,10]),t(R,[2,24],{32:41,31:56,24:A,29:C}),t(R,[2,26]),t(R,[2,27]),{33:[1,57]},{11:59,30:r,34:58,39:24,40:c,41:27,42:g,43:u,44:x,45:d,46:p,47:f,48:m,49:y,50:b,51:w},t(R,[2,11]),t(R,[2,32],{35:60,29:S}),t(R,[2,34]),{33:[1,61]},t(R,[2,12]),{17:62,24:k},{25:63,27:64,29:D},t(R,[2,14]),{17:66,24:k},t(R,[2,16]),t(R,[2,17]),t(T,[2,43]),t(R,[2,25]),{29:[1,67]},{26:[1,68]},{26:[2,31],28:[1,69]},t(R,[2,33]),{29:[1,70]},t(R,[2,13]),{26:[1,71]},{26:[2,21],28:[1,72]},t(L,[2,23],{30:[1,73]}),t(R,[2,15]),t(R,[2,28]),t(R,[2,29]),{11:59,30:r,34:74,39:24,40:c,41:27,42:g,43:u,44:x,45:d,46:p,47:f,48:m,49:y,50:b,51:w},t(R,[2,35]),t(R,[2,19]),{25:75,27:64,29:D},t(L,[2,22]),{26:[2,30]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],74:[2,30],75:[2,20]},parseError:(0,l.K)(function(t,i){if(i.recoverable)this.trace(t);else{var e=Error(t);throw e.hash=i,e}},"parseError"),parse:(0,l.K)(function(t){var i=this,e=[0],s=[],a=[null],n=[],h=this.table,o="",r=0,c=0,g=0,u=n.slice.call(arguments,1),x=Object.create(this.lexer),d={};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(d[p]=this.yy[p]);x.setInput(t,d),d.lexer=x,d.parser=this,void 0===x.yylloc&&(x.yylloc={});var f=x.yylloc;n.push(f);var m=x.options&&x.options.ranges;function y(){var t;return"number"!=typeof(t=s.pop()||x.lex()||1)&&(t instanceof Array&&(t=(s=t).pop()),t=i.symbols_[t]||t),t}"function"==typeof d.parseError?this.parseError=d.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,l.K)(function(t){e.length=e.length-2*t,a.length=a.length-t,n.length=n.length-t},"popStack"),(0,l.K)(y,"lex");for(var b,w,A,C,S,k,R,_,T,D={};;){if(A=e[e.length-1],this.defaultActions[A]?C=this.defaultActions[A]:(null==b&&(b=y()),C=h[A]&&h[A][b]),void 0===C||!C.length||!C[0]){var L="";for(k in T=[],h[A])this.terminals_[k]&&k>2&&T.push("'"+this.terminals_[k]+"'");L=x.showPosition?"Parse error on line "+(r+1)+":\n"+x.showPosition()+"\nExpecting "+T.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(r+1)+": Unexpected "+(1==b?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(L,{text:x.match,token:this.terminals_[b]||b,line:x.yylineno,loc:f,expected:T})}if(C[0]instanceof Array&&C.length>1)throw Error("Parse Error: multiple actions possible at state: "+A+", token: "+b);switch(C[0]){case 1:e.push(b),a.push(x.yytext),n.push(x.yylloc),e.push(C[1]),b=null,w?(b=w,w=null):(c=x.yyleng,o=x.yytext,r=x.yylineno,f=x.yylloc,g>0&&g--);break;case 2:if(R=this.productions_[C[1]][1],D.$=a[a.length-R],D._$={first_line:n[n.length-(R||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-(R||1)].first_column,last_column:n[n.length-1].last_column},m&&(D._$.range=[n[n.length-(R||1)].range[0],n[n.length-1].range[1]]),void 0!==(S=this.performAction.apply(D,[o,c,r,d,C[1],a,n].concat(u))))return S;R&&(e=e.slice(0,-1*R*2),a=a.slice(0,-1*R),n=n.slice(0,-1*R)),e.push(this.productions_[C[1]][0]),a.push(D.$),n.push(D._$),_=h[e[e.length-2]][e[e.length-1]],e.push(_);break;case 3:return!0}}return!0},"parse")};function v(){this.yy={}}return P.lexer={EOF:1,parseError:(0,l.K)(function(t,i){if(this.yy.parser)this.yy.parser.parseError(t,i);else throw Error(t)},"parseError"),setInput:(0,l.K)(function(t,i){return this.yy=i||this.yy||{},this._input=t,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,l.K)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.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),t},"input"),unput:(0,l.K)(function(t){var i=t.length,e=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;var s=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),e.length-1&&(this.yylineno-=e.length-1);var a=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:e?(e.length===s.length?this.yylloc.first_column:0)+s[s.length-e.length].length-e[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-i]),this.yyleng=this.yytext.length,this},"unput"),more:(0,l.K)(function(){return this._more=!0,this},"more"),reject:(0,l.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,l.K)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,l.K)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,l.K)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,l.K)(function(){var t=this.pastInput(),i=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+i+"^"},"showPosition"),test_match:(0,l.K)(function(t,i){var e,s,a;if(this.options.backtrack_lexer&&(a={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&&(a.yylloc.range=this.yylloc.range.slice(0))),(s=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,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(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,i,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e)return e;if(this._backtrack)for(var n in a)this[n]=a[n];return!1},"test_match"),next:(0,l.K)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,i,e,s,a=this._currentRules(),n=0;n<a.length;n++)if((e=this._input.match(this.rules[a[n]]))&&(!i||e[0].length>i[0].length)){if(i=e,s=n,this.options.backtrack_lexer){if(!1!==(t=this.test_match(e,a[n])))return t;if(!this._backtrack)return!1;i=!1;continue}if(!this.options.flex)break}return i?!1!==(t=this.test_match(i,a[s]))&&t:""===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,l.K)(function(){var t=this.next();return t||this.lex()},"lex"),begin:(0,l.K)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,l.K)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,l.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,l.K)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,l.K)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,l.K)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,l.K)(function(t,i,e,s){switch(e){case 0:case 1:case 5:case 44:break;case 2:case 3:return this.popState(),36;case 4:return 36;case 6:return 10;case 7:return this.pushState("acc_title"),19;case 8:return this.popState(),"acc_title_value";case 9:return this.pushState("acc_descr"),21;case 10:return this.popState(),"acc_descr_value";case 11:this.pushState("acc_descr_multiline");break;case 12:case 26:case 28:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:case 15:return 5;case 16:return 8;case 17:return this.pushState("axis_data"),"X_AXIS";case 18:return this.pushState("axis_data"),"Y_AXIS";case 19:return this.pushState("axis_band_data"),24;case 20:return 33;case 21:return this.pushState("data"),16;case 22:return this.pushState("data"),18;case 23:return this.pushState("data_inner"),24;case 24:return 29;case 25:return this.popState(),26;case 27:this.pushState("string");break;case 29:return"STR";case 30:return 24;case 31:return 26;case 32:return 44;case 33:return"COLON";case 34:return 45;case 35:return 28;case 36:return 46;case 37:return 47;case 38:return 49;case 39:return 51;case 40:return 48;case 41:return 42;case 42:return 50;case 43:return 43;case 45:return 37;case 46:return 38}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\})/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:xychart\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n<md_string>\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n<md_string>\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,24,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,18,21,22,23,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,25,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,22,24,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[28,29],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,18,21,22,26,27,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],inclusive:!0}}},(0,l.K)(v,"Parser"),v.prototype=P,P.Parser=v,new v}();function u(t){return"bar"===t.type}function x(t){return"band"===t.type}function d(t){return"linear"===t.type}g.parser=g,(0,l.K)(u,"isBarPlot"),(0,l.K)(x,"isBandAxisData"),(0,l.K)(d,"isLinearAxisData");var p=class{constructor(t){this.parentGroup=t}static{(0,l.K)(this,"TextDimensionCalculatorWithFont")}getMaxDimension(t,i){if(!this.parentGroup)return{width:t.reduce((t,i)=>Math.max(i.length,t),0)*i,height:i};let e={width:0,height:0},s=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",i);for(let a of t){let t=(0,n.W6)(s,1,a),h=t?t.width:a.length*i,o=t?t.height:i;e.width=Math.max(e.width,h),e.height=Math.max(e.height,o)}return s.remove(),e}},f=class{constructor(t,i,e,s){this.axisConfig=t,this.title=i,this.textDimensionCalculator=e,this.axisThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.showTitle=!1,this.showLabel=!1,this.showTick=!1,this.showAxisLine=!1,this.outerPadding=0,this.titleTextHeight=0,this.labelTextHeight=0,this.normalizedLabelRotationInRad=0,this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.normalizedLabelRotationInRad=this.axisConfig.labelRotation>=-90&&this.axisConfig.labelRotation<=90?this.axisConfig.labelRotation*Math.PI/180:0}static{(0,l.K)(this,"BaseAxis")}setRange(t){this.range=t,"left"===this.axisPosition||"right"===this.axisPosition?this.boundingRect.height=t[1]-t[0]:this.boundingRect.width=t[1]-t[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(t){this.axisPosition=t,this.setRange(this.range)}getTickDistance(){let t=this.getRange();return Math.abs(t[0]-t[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(t=>t.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){.7*this.getTickDistance()>2*this.outerPadding&&(this.outerPadding=Math.floor(.7*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(t){let i=t.height;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let e=this.getLabelDimension(),s=.2*t.width;this.outerPadding=Math.min(e.width/2,s);let a=e.height;"bottom"===this.axisPosition&&0!==this.normalizedLabelRotationInRad&&(a=Math.max(a,Math.abs(Math.sin(this.normalizedLabelRotationInRad)*e.width)+Math.abs(Math.cos(this.normalizedLabelRotationInRad)*e.height))),a+=2*this.axisConfig.labelPadding,this.labelTextHeight=e.height,a<=i&&(i-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let t=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),e=t.height+2*this.axisConfig.titlePadding;this.titleTextHeight=t.height,e<=i&&(i-=e,this.showTitle=!0)}this.boundingRect.width=t.width,this.boundingRect.height=t.height-i}calculateSpaceIfDrawnVertical(t){let i=t.width;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let e=this.getLabelDimension(),s=.2*t.height;this.outerPadding=Math.min(e.height/2,s);let a=e.width+2*this.axisConfig.labelPadding;a<=i&&(i-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let t=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),e=t.height+2*this.axisConfig.titlePadding;this.titleTextHeight=t.height,e<=i&&(i-=e,this.showTitle=!0)}this.boundingRect.width=t.width-i,this.boundingRect.height=t.height}calculateSpace(t){return"left"===this.axisPosition||"right"===this.axisPosition?this.calculateSpaceIfDrawnVertical(t):this.calculateSpaceIfDrawnHorizontally(t),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateOffsetByRotation(t){let i=this.normalizedLabelRotationInRad;return 0===i?0:Math.sin(i)*this.getLabelDimension()[t]/2}getDrawableElementsForLeftAxis(){let t=[];if(this.showAxisLine){let i=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${i},${this.boundingRect.y} L ${i},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(t=>({text:t.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(t),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){let i=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(t=>({path:`M ${i},${this.getScaleValue(t)} L ${i-this.axisConfig.tickLength},${this.getScaleValue(t)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForBottomAxis(){let t=[];if(this.showAxisLine){let i=this.boundingRect.y+this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(t=>({text:t.toString(),x:this.getScaleValue(t)+this.calculateOffsetByRotation("height"),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0)+Math.abs(this.calculateOffsetByRotation("width")),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:180*this.normalizedLabelRotationInRad/Math.PI,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let i=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(t=>({path:`M ${this.getScaleValue(t)},${i} L ${this.getScaleValue(t)},${i+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElementsForTopAxis(){let t=[];if(this.showAxisLine){let i=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(t=>({text:t.toString(),x:this.getScaleValue(t),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+2*this.axisConfig.titlePadding:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let i=this.boundingRect.y;t.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(t=>({path:`M ${this.getScaleValue(t)},${i+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(t)},${i+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&t.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),t}getDrawableElements(){if("left"===this.axisPosition)return this.getDrawableElementsForLeftAxis();if("right"===this.axisPosition)throw Error("Drawing of right axis is not implemented");return"bottom"===this.axisPosition?this.getDrawableElementsForBottomAxis():"top"===this.axisPosition?this.getDrawableElementsForTopAxis():[]}},m=class extends f{static{(0,l.K)(this,"BandAxis")}constructor(t,i,e,s,a){super(t,s,a,i),this.categories=e,this.scale=(0,c.WH)().domain(this.categories).range(this.getRange())}setRange(t){super.setRange(t)}recalculateScale(){this.scale=(0,c.WH)().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),r.R.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(t){return this.scale(t)??this.getRange()[0]}},y=class extends f{static{(0,l.K)(this,"LinearAxis")}constructor(t,i,e,s,a){super(t,s,a,i),this.domain=e,this.scale=(0,c.m4Y)().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){let t=[...this.domain];"left"===this.axisPosition&&t.reverse(),this.scale=(0,c.m4Y)().domain(t).range(this.getRange())}getScaleValue(t){return this.scale(t)}};function b(t,i,e,s){let a=new p(s);return x(t)?new m(i,e,t.categories,t.title,a):new y(i,e,[t.min,t.max],t.title,a)}(0,l.K)(b,"getAxis");var w=class{constructor(t,i,e,s){this.textDimensionCalculator=t,this.chartConfig=i,this.chartData=e,this.chartThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}static{(0,l.K)(this,"ChartTitle")}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){let i=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),e=Math.max(i.width,t.width),s=i.height+2*this.chartConfig.titlePadding;return i.width<=e&&i.height<=s&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=e,this.boundingRect.height=s,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){let t=[];return this.showChartTitle&&t.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),t}};function A(t,i,e,s){return new w(new p(s),t,i,e)}function C(t){return{fontSize:t,markerSize:.75*t,markerSpacing:.35*t,itemSpacing:.5*t}}(0,l.K)(A,"getChartTitleComponent"),(0,l.K)(C,"getLegendLayout");var S=class{constructor(t,i,e,s){this.textDimensionCalculator=t,this.chartConfig=i,this.chartData=e,this.chartThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0},this.visiblePlots=[]}static{(0,l.K)(this,"ChartLegend")}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){if(this.visiblePlots=this.chartConfig.showLegend?this.chartData.plots.filter(t=>t.title):[],0===this.visiblePlots.length)return this.boundingRect.width=0,this.boundingRect.height=0,{width:0,height:0};let{fontSize:i,markerSize:e,markerSpacing:s,itemSpacing:a}=C(this.chartConfig.legendFontSize),n=this.textDimensionCalculator.getMaxDimension(this.visiblePlots.map(t=>t.title),i),h=2*this.chartConfig.legendPadding+e+s+n.width,o=2*this.chartConfig.legendPadding+this.visiblePlots.length*i+(this.visiblePlots.length-1)*a;return h<=t.width&&o<=t.height?(this.boundingRect.width=h,this.boundingRect.height=o):(this.visiblePlots=[],this.boundingRect.width=0,this.boundingRect.height=0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(0===this.visiblePlots.length)return[];let{fontSize:t,markerSize:i,markerSpacing:e,itemSpacing:s}=C(this.chartConfig.legendFontSize),a=t+s,n=this.boundingRect.x+this.chartConfig.legendPadding,h=this.boundingRect.y+this.chartConfig.legendPadding,o=[],r=[];for(let[t,e]of this.visiblePlots.entries())if(u(e))o.push({x:n,y:h+t*a,width:i,height:i,fill:e.fill,strokeFill:e.fill,strokeWidth:0});else{let s=h+t*a+i/2;r.push({path:`M ${n},${s} L ${n+i},${s}`,strokeFill:e.strokeFill,strokeWidth:e.strokeWidth})}return[{groupTexts:["legend","markers"],type:"rect",data:o},{groupTexts:["legend","markers"],type:"path",data:r},{groupTexts:["legend","label"],type:"text",data:this.visiblePlots.map((s,o)=>({text:s.title,x:n+i+e,y:h+o*a+i/2,fill:this.chartThemeConfig.legendTextColor,fontSize:t,rotation:0,verticalPos:"middle",horizontalPos:"left"}))}]}};function k(t,i,e,s){return new S(new p(s),t,i,e)}(0,l.K)(k,"getChartLegendComponent");var R=class{constructor(t,i,e,s,a){this.plotData=t,this.xAxis=i,this.yAxis=e,this.orientation=s,this.plotIndex=a}static{(0,l.K)(this,"LinePlot")}getDrawableElement(){let t,i=this.plotData.data.map(t=>[this.xAxis.getScaleValue(t[0]),this.yAxis.getScaleValue(t[1])]);if(!(t="horizontal"===this.orientation?(0,c.n8j)().y(t=>t[0]).x(t=>t[1])(i):(0,c.n8j)().x(t=>t[0]).y(t=>t[1])(i)))return[];let e=[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:t,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}];if(this.plotData.pointLabels&&this.plotData.pointLabels.length>0){let t=[];for(let[e,[s,a]]of i.entries()){let i=this.plotData.pointLabels[e];i&&("horizontal"===this.orientation?t.push({x:a+10,y:s,text:i,fill:this.plotData.strokeFill,verticalPos:"middle",horizontalPos:"left",fontSize:12,rotation:0}):t.push({x:s,y:a-10,text:i,fill:this.plotData.strokeFill,verticalPos:"middle",horizontalPos:"center",fontSize:12,rotation:0}))}t.length>0&&e.push({groupTexts:["plot",`line-plot-${this.plotIndex}`,"labels"],type:"text",data:t})}return e}},_=class{constructor(t,i,e,s,a,n){this.barData=t,this.boundingRect=i,this.xAxis=e,this.yAxis=s,this.orientation=a,this.plotIndex=n}static{(0,l.K)(this,"BarPlot")}getDrawableElement(){let t=this.barData.data.map(t=>[this.xAxis.getScaleValue(t[0]),this.yAxis.getScaleValue(t[1])]),i=.95*Math.min(2*this.xAxis.getAxisOuterPadding(),this.xAxis.getTickDistance()),e=i/2;return"horizontal"===this.orientation?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(t=>({x:this.boundingRect.x,y:t[0]-e,height:i,width:t[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(t=>({x:t[0]-e,y:t[1],width:i,height:this.boundingRect.y+this.boundingRect.height-t[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}},T=class{constructor(t,i,e){this.chartConfig=t,this.chartData=i,this.chartThemeConfig=e,this.boundingRect={x:0,y:0,width:0,height:0}}static{(0,l.K)(this,"BasePlot")}setAxes(t,i){this.xAxis=t,this.yAxis=i}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){return this.boundingRect.width=t.width,this.boundingRect.height=t.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");let t=[];for(let[i,e]of this.chartData.plots.entries())switch(e.type){case"line":{let s=new R(e,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...s.getDrawableElement())}break;case"bar":{let s=new _(e,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...s.getDrawableElement())}}return t}};function D(t,i,e){return new T(t,i,e)}(0,l.K)(D,"getPlotComponent");var L=class{constructor(t,i,e,s){this.chartConfig=t,this.chartData=i,this.componentStore={title:A(t,i,e,s),plot:D(t,i,e),legend:k(t,i,e,s),xAxis:b(i.xAxis,t.xAxis,{titleColor:e.xAxisTitleColor,labelColor:e.xAxisLabelColor,tickColor:e.xAxisTickColor,axisLineColor:e.xAxisLineColor},s),yAxis:b(i.yAxis,t.yAxis,{titleColor:e.yAxisTitleColor,labelColor:e.yAxisLabelColor,tickColor:e.yAxisTickColor,axisLineColor:e.yAxisLineColor},s)}}static{(0,l.K)(this,"Orchestrator")}calculateVerticalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,e=0,s=0,a={width:0,height:0},n=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),h=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),o=this.componentStore.plot.calculateSpace({width:n,height:h});t-=o.width,i-=o.height,s=(o=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i})).height,i-=o.height,this.componentStore.xAxis.setAxisPosition("bottom"),o=this.componentStore.xAxis.calculateSpace({width:t,height:i}),i-=o.height,this.componentStore.yAxis.setAxisPosition("left"),e=(o=this.componentStore.yAxis.calculateSpace({width:t,height:i})).width,t-=o.width,a=this.componentStore.legend.calculateSpace({width:t,height:h}),(t-=a.width)>0&&(n+=t,t=0),i>0&&(h+=i,i=0),this.componentStore.plot.calculateSpace({width:n,height:h}),this.componentStore.plot.setBoundingBoxXY({x:e,y:s}),this.componentStore.legend.setBoundingBoxXY({x:e+n,y:s+Math.max((h-a.height)/2,0)}),this.componentStore.xAxis.setRange([e,e+n]),this.componentStore.xAxis.setBoundingBoxXY({x:e,y:s+h}),this.componentStore.yAxis.setRange([s,s+h]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:s}),this.chartData.plots.some(t=>u(t))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,e=0,s=0,a=0,n={width:0,height:0},h=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),o=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),r=this.componentStore.plot.calculateSpace({width:h,height:o});t-=r.width,i-=r.height,e=(r=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i})).height,i-=r.height,this.componentStore.xAxis.setAxisPosition("left"),r=this.componentStore.xAxis.calculateSpace({width:t,height:i}),t-=r.width,s=r.width,this.componentStore.yAxis.setAxisPosition("top"),r=this.componentStore.yAxis.calculateSpace({width:t,height:i}),i-=r.height,a=e+r.height,n=this.componentStore.legend.calculateSpace({width:t,height:o}),(t-=n.width)>0&&(h+=t,t=0),i>0&&(o+=i,i=0),this.componentStore.plot.calculateSpace({width:h,height:o}),this.componentStore.plot.setBoundingBoxXY({x:s,y:a}),this.componentStore.legend.setBoundingBoxXY({x:s+h,y:a+Math.max((o-n.height)/2,0)}),this.componentStore.yAxis.setRange([s,s+h]),this.componentStore.yAxis.setBoundingBoxXY({x:s,y:e}),this.componentStore.xAxis.setRange([a,a+o]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:a}),this.chartData.plots.some(t=>u(t))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){"horizontal"===this.chartConfig.chartOrientation?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();let t=[];for(let i of(this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis),Object.values(this.componentStore)))t.push(...i.getDrawableElements());return t}},P=class{static{(0,l.K)(this,"XYChartBuilder")}static build(t,i,e,s){return new L(t,i,e,s).getDrawableElement()}},v=0,E=W(),K=B(),I=F(),M=K.plotColorPalette.split(",").map(t=>t.trim()),z=!1,$=!1;function B(){let t=(0,o.P$)(),i=(0,o.zj)();return(0,h.$t)(t.xyChart,i.themeVariables.xyChart)}function W(){let t=(0,o.zj)();return(0,h.$t)(o.UI.xyChart,t.xyChart)}function F(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function O(t){let i=(0,o.zj)();return(0,o.jZ)(t.trim(),i)}function N(t){s=t}function X(t){"horizontal"===t?E.chartOrientation="horizontal":E.chartOrientation="vertical"}function V(t){I.xAxis.title=O(t.text)}function Y(t,i){I.xAxis={type:"linear",title:I.xAxis.title,min:t,max:i},z=!0}function H(t){I.xAxis={type:"band",title:I.xAxis.title,categories:t.map(t=>O(t.text))},z=!0}function U(t){I.yAxis.title=O(t.text)}function j(t,i){I.yAxis={type:"linear",title:I.yAxis.title,min:t,max:i},$=!0}function G(t){let i=Math.min(...t),e=Math.max(...t),s=d(I.yAxis)?I.yAxis.min:1/0,a=d(I.yAxis)?I.yAxis.max:-1/0;I.yAxis={type:"linear",title:I.yAxis.title,min:Math.min(s,i),max:Math.max(a,e)}}function Q(t){let i=[];if(0===t.length)return i;if(z||Y(Math.min(d(I.xAxis)?I.xAxis.min:1/0,1),Math.max(d(I.xAxis)?I.xAxis.max:-1/0,t.length)),x(I.xAxis)&&t.length>I.xAxis.categories.length&&(t=t.slice(0,I.xAxis.categories.length)),$||G(t),x(I.xAxis)&&(i=I.xAxis.categories.map((i,e)=>[i,t[e]])),d(I.xAxis)){let e=I.xAxis.min,s=I.xAxis.max;if(1===t.length)i=[[`${e}`,t[0]]];else{let a=(s-e)/(t.length-1);i=t.map((t,i)=>[`${e+i*a}`,t])}}return i}function Z(t){return M[0===t?0:t%M.length]}function q(t,i){let e=i.map(t=>t.value),s=i.map(t=>t.label?O(t.label):""),a=Q(e),n=s.some(t=>""!==t);I.plots.push({type:"line",title:O(t.text),strokeFill:Z(v),strokeWidth:2,data:a,...n?{pointLabels:s}:{}}),v++}function J(t,i){let e=Q(i.map(t=>t.value));I.plots.push({type:"bar",title:O(t.text),fill:Z(v),data:e}),v++}function tt(){if(0===I.plots.length)throw Error("No Plot to render, please provide a plot with some data");return I.title=(0,o.ab)(),P.build(E,I,K,s)}function ti(){return K}function te(){return E}function ts(){return I}(0,l.K)(B,"getChartDefaultThemeConfig"),(0,l.K)(W,"getChartDefaultConfig"),(0,l.K)(F,"getChartDefaultData"),(0,l.K)(O,"textSanitizer"),(0,l.K)(N,"setTmpSVGG"),(0,l.K)(X,"setOrientation"),(0,l.K)(V,"setXAxisTitle"),(0,l.K)(Y,"setXAxisRangeData"),(0,l.K)(H,"setXAxisBand"),(0,l.K)(U,"setYAxisTitle"),(0,l.K)(j,"setYAxisRangeData"),(0,l.K)(G,"setYAxisRangeFromPlotData"),(0,l.K)(Q,"transformDataWithoutCategory"),(0,l.K)(Z,"getPlotColorFromPalette"),(0,l.K)(q,"setLineData"),(0,l.K)(J,"setBarData"),(0,l.K)(tt,"getDrawableElem"),(0,l.K)(ti,"getChartThemeConfig"),(0,l.K)(te,"getChartConfig"),(0,l.K)(ts,"getXYChartData");var ta={getDrawableElem:tt,clear:(0,l.K)(function(){(0,o.IU)(),v=0,E=W(),I=F(),M=(K=B()).plotColorPalette.split(",").map(t=>t.trim()),z=!1,$=!1},"clear"),setAccTitle:o.SV,getAccTitle:o.iN,setDiagramTitle:o.ke,getDiagramTitle:o.ab,getAccDescription:o.m7,setAccDescription:o.EI,setOrientation:X,setXAxisTitle:V,setXAxisRangeData:Y,setXAxisBand:H,setYAxisTitle:U,setYAxisRangeData:j,setLineData:q,setBarData:J,setTmpSVGG:N,getChartThemeConfig:ti,getChartConfig:te,getXYChartData:ts},tn={parser:g,db:ta,renderer:{draw:(0,l.K)((t,i,e,s)=>{let n=s.db,h=n.getChartThemeConfig(),c=n.getChartConfig(),g=n.getXYChartData().plots[0].data.map(t=>t[1]);function u(t){return"top"===t?"text-before-edge":"middle"}function x(t){return"left"===t?"start":"right"===t?"end":"middle"}function d(t){return`translate(${t.x}, ${t.y}) rotate(${t.rotation||0})`}(0,l.K)(u,"getDominantBaseLine"),(0,l.K)(x,"getTextAnchor"),(0,l.K)(d,"getTextTransformation"),r.R.debug("Rendering xychart chart\n"+t);let p=(0,a.D)(i),f=p.append("g").attr("class","main"),m=f.append("rect").attr("width",c.width).attr("height",c.height).attr("class","background");(0,o.a$)(p,c.height,c.width,!0),p.attr("viewBox",`0 0 ${c.width} ${c.height}`),m.attr("fill",h.backgroundColor),n.setTmpSVGG(p.append("g").attr("class","mermaid-tmp-group"));let y=n.getDrawableElem(),b={};function w(t){let i=f,e="";for(let[s]of t.entries()){let a=f;s>0&&b[e]&&(a=b[e]),e+=t[s],(i=b[e])||(i=b[e]=a.append("g").attr("class",t[s]))}return i}for(let t of((0,l.K)(w,"getGroup"),y)){if(0===t.data.length)continue;let i=w(t.groupTexts);switch(t.type){case"rect":if(i.selectAll("rect").data(t.data).enter().append("rect").attr("x",t=>t.x).attr("y",t=>t.y).attr("width",t=>t.width).attr("height",t=>t.height).attr("fill",t=>t.fill).attr("stroke",t=>t.strokeFill).attr("stroke-width",t=>t.strokeWidth),c.showDataLabel){let e=c.showDataLabelOutsideBar;if("horizontal"===c.chartOrientation){let s=function(t,i){let{data:e,label:s}=t;return i*s.length*a<=e.width-n};(0,l.K)(s,"fitsHorizontally");let a=.7,n=10,o=t.data.map((t,i)=>({data:t,label:g[i].toString()})).filter(t=>t.data.width>0&&t.data.height>0),r=Math.floor(Math.min(...o.map(t=>{let{data:i}=t,e=.7*i.height;for(;!s(t,e)&&e>0;)e-=1;return e}))),c=(0,l.K)(t=>e?t.data.x+t.data.width+n:t.data.x+t.data.width-n,"determineLabelXPosition");i.selectAll("text").data(o).enter().append("text").attr("x",c).attr("y",t=>t.data.y+t.data.height/2).attr("text-anchor",e?"start":"end").attr("dominant-baseline","middle").attr("fill",h.dataLabelColor).attr("font-size",`${r}px`).text(t=>t.label)}else{let s=function(t,i,e){let{data:s,label:a}=t,n=i*a.length*.7,h=s.x+s.width/2,o=h-n/2,r=h+n/2,l=o>=s.x&&r<=s.x+s.width,c=s.y+e+i<=s.y+s.height;return l&&c};(0,l.K)(s,"fitsInBar");let a=t.data.map((t,i)=>({data:t,label:g[i].toString()})).filter(t=>t.data.width>0&&t.data.height>0),n=Math.floor(Math.min(...a.map(t=>{let{data:i,label:e}=t,a=i.width/(.7*e.length);for(;!s(t,a,10)&&a>0;)a-=1;return a}))),o=(0,l.K)(t=>e?t.data.y-10:t.data.y+10,"determineLabelYPosition");i.selectAll("text").data(a).enter().append("text").attr("x",t=>t.data.x+t.data.width/2).attr("y",o).attr("text-anchor","middle").attr("dominant-baseline",e?"auto":"hanging").attr("fill",h.dataLabelColor).attr("font-size",`${n}px`).text(t=>t.label)}}break;case"text":i.selectAll("text").data(t.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",t=>t.fill).attr("font-size",t=>t.fontSize).attr("dominant-baseline",t=>u(t.verticalPos)).attr("text-anchor",t=>x(t.horizontalPos)).attr("transform",t=>d(t)).text(t=>t.text);break;case"path":i.selectAll("path").data(t.data).enter().append("path").attr("d",t=>t.path).attr("fill",t=>t.fill?t.fill:"none").attr("stroke",t=>t.strokeFill).attr("stroke-width",t=>t.strokeWidth)}}},"draw")}}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[482],{20482:(e,t,a)=>{a.r(t),a.d(t,{default:()=>o});let o={common:{statusIdle:"Idle",statusWorking:"Working",statusBlocked:"Needs input",statusDone:"Your turn",loading:"טוען...",cancel:"ביטול",confirm:"אישור",save:"שמור",delete:"מחק",close:"סגור",back:"חזור",edit:"ערוך",rename:"שנה שם",remove:"הסר",open:"פתח",yes:"כן",no:"לא",ok:"אישור",error:"שגיאה",success:"הצלחה",failed:"נכשל",retry:"נסה שוב",refresh:"רענן",clipboard:"Clipboard",clipboardCopy:"Copy",clipboardEmpty:"Clipboard is empty",search:"חיפוש",create:"צור",new:"חדש",add:"הוסף",copy:"העתק",copied:"הועתק",download:"הורד",upload:"העלה",enabled:"מופעל",disabled:"מושבת",on:"פועל",off:"כבוי",minute:"דק'",hour:"ש'",day:"י'",minutesAgo:"לפני {n} דק'",hoursAgo:"לפני {n} שעות",daysAgo:"לפני {n} ימים"},login:{tagline:"גש לטרמינל שלך מכל מקום",heroLine1:"Any machine.",heroLine2:"One terminal.",heroLine3:"In your pocket.",featureTerminal:"Terminal",featureDesktop:"Desktop",featureFiles:"Files",termConnected:"host connected",termTunnel:"tunnel established",termReady:"ready",accessKey:"מפתח גישה",placeholder:"sk-xxx... או מפתח חד-פעמי (ABC123)",rememberKey:"זכור מפתח זה",connect:"התחבר",connecting:"מתחבר...",authenticating:"מאמת באמצעות טוקן...",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.",savedKeys:"מפתחות שמורים",login:"התחברות",lastLogin:"התחברות אחרונה",namePlaceholder:"Name this key (optional)",rename:"Rename",deleteKeyTitle:"Delete key",deleteKeyConfirm:'Are you sure you want to delete "{name}"?',justNow:"ממש עכשיו",minutesAgo:"לפני {n} דק'",hoursAgo:"לפני {n} ש'",daysAgo:"לפני {n} י'",tapToScan:"הקש לסריקה",orEnterManually:"או הזן מפתח ידנית",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:"בית",docs:"תיעוד"},menu:{reloadRestart:"Reload & Restart",restartHost:"Restart 9remote host",restartConfirmTitle:"Restart 9remote host?",restartConfirmMessage:"This restarts the host process (no reinstall). Terminal sessions are preserved. It takes a few seconds.",restartStarting:"Restarting host…",restartRestarting:"Restarting 9remote…",restartDone:"Restarted! Reconnecting…",restartTimeout:"Restart is taking too long",restartTimeoutHint:"Reconnect manually if it doesn't recover.",title:"תפריט",language:"שפה",theme:"ערכת נושא",notifications:"התראות",webgl:"GPU Render (Faster)",webglHint:"כבה אם הטקסט נראה שגוי",notificationsHint:"Notify when agent finishes",orientation:"כיוון מסך",orientationPortrait:"לאורך",orientationAuto:"אוטומטי",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:"אתרים",commandNotes:"הערות פקודות",community:"קהילה",installApp:"התקן אפליקציה",codespace:"Codespace",logout:"התנתק",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:"טען מחדש את האפליקציה",remoteDesktop:"שולחן עבודה מרוחק",settings:"הגדרות",enablePush:"הפעל התראות דחיפה",disablePush:"השבת התראות דחיפה",pushHint:"הפעל התראות דחיפה כדי לקבל התראה כש-AI משלים משימות",pushActiveHint:"Push notifications are on for this device. You'll be alerted when AI completes tasks.",versionMismatch:"סוכן {version} מיושן",versionMismatchHint:"ייתכן שחלק מהתכונות לא יעבדו. הרץ:",updateNow:"Update now",updating:"Updating… reconnecting",webReloadTitle:"New web version available",webReloadHint:"Reload to get the latest interface.",reloadWeb:"Reload",updateAvailableTitle:"9Remote host update available",updateStarting:"Starting update…",updateInstalling:"Installing new version…",updateTimeout:"Update is taking too long",updateTimeoutHint:"Reload manually if it doesn't recover.",updateRestarting:"Restarting host…",updateReconnecting:"Reconnecting…",updateDone:"Updated! Reloading…",version:"גרסה"},workspace:{loading:"טוען...",logoutTitle:"התנתק",logoutMessage:"האם אתה בטוח שברצונך להתנתק?",failedCreateSession:"יצירת הפעלה נכשלה: {error}",failedRenameSession:"שינוי שם הפעלה נכשל: {error}"},sessions:{headerTitle:"9remote.cc",connected:"מחובר",disconnected:"מנותק",codespaceStopped:"Codespace הופסק",placeholder:"שם טרמינל (אופציונלי)",newButton:"+ חדש",empty:"אין הפעלות פעילות",emptyHint:"צור הפעלה חדשה כדי להתחיל",created:"נוצר {time}",deleteTitle:"מחק הפעלה",deleteMessage:'האם אתה בטוח שברצונך למחוק "{name}"?',editName:"ערוך שם",newTerminal:"טרמינל חדש",options:"Options"},workspaces:{title:"Groups",newWorkspace:"Group",newWorkspacePrompt:"Group name",defaultName:"New Group",ungrouped:"Ungrouped",addTerminal:"Add terminal to group",moveToWorkspace:"Move to group",rename:"Rename group",delete:"Delete group",emptyWorkspace:"No terminals in this group",deleteTitle:"Delete Group",deleteMessage:'Delete group "{name}"? Terminals move to Ungrouped.'},terminal:{quotaNoData:"No quota data",quotaUsageTitle:"usage",back:"חזור",menu:"תפריט",newTerminal:"טרמינל חדש",remoteDesktop:"שולחן עבודה מרוחק",defaultName:"טרמ"},files:{selectWorkspace:"בחר סביבת עבודה",recentWorkspaces:"סביבות עבודה אחרונות",home:"בית",root:"שורש",drive:"כונן {letter}",codespaces:"Codespaces",removeRecent:"הסר מאחרונים",removeTitle:"הסר סביבת עבודה",removeMessage:'להסיר את "{name}" מסביבות העבודה האחרונות?',setAsWorkspace:"הגדר כסביבת עבודה",openFolder:"פתח תיקייה",newFile:"קובץ חדש",newFolder:"תיקייה חדשה",rename:"שנה שם",delete:"מחק",deleteFile:"מחק קובץ",deleteFolder:"מחק תיקייה",deleteFileMessage:'למחוק את "{name}"?',deleteFolderMessage:'למחוק את התיקייה "{name}" וכל תוכנה?',emptyFolder:"תיקייה ריקה",git:"Git",parent:"תיקיית אב",workspace:"סביבת עבודה",failedLoad:"הטעינה נכשלה: {error}",failedDelete:"המחיקה נכשלה: {error}",failedCreate:"היצירה נכשלה: {error}",failedRename:"שינוי השם נכשל: {error}",enterName:"הזן שם",confirmRename:"שנה שם ל:",setWorkspace:"הגדר סביבת עבודה",setAsWorkspaceTitle:"הגדר כסביבת עבודה",switchWorkspace:"החלף סביבת עבודה",searchFiles:"חפש קבצים",toggleHidden:"החלף קבצים מוסתרים",searchPlaceholder:"חפש קבצים...",searching:"מחפש...",noFilesFound:"לא נמצאו קבצים",noGitRepo:"אין מאגר Git",cannotOpenBinary:"לא ניתן לפתוח קובץ בינארי",createNew:"צור חדש",file:"קובץ",folder:"תיקייה",placeholderFile:"filename.js",placeholderFolder:"folder-name",pickFile:"Choose files",pickFolder:"Choose folder",copyPath:"העתק נתיב",copyRelPath:"Copy Relative Path",copyName:"Copy Filename",delete:"מחק",rename:"שנה שם",deleteConfirmTitle:"מחק",deleteConfirmMessage:'למחוק את "{name}"?'},editor:{save:"שמור",saving:"שומר...",saved:"נשמר",unsaved:"שינויים לא שמורים",close:"סגור",discard:"בטל",discardTitle:"בטל שינויים",discardMessage:"יש לך שינויים לא שמורים. לבטל אותם?",unsavedTitle:"Save changes to {name}?",unsavedBody:"Your changes will be lost if you don't save them.",failedLoad:"טעינת הקובץ נכשלה: {error}",failedSave:"השמירה נכשלה: {error}",openFull:"Open in full editor",artifact:"Artifact",readOnly:"קריאה בלבד",line:"שורה",column:"עמודה",gitDiff:"Git Diff",typeText:"הקלד טקסט והכנס...",insert:"הכנס",statusModified:"השתנה",statusAdded:"נוסף",statusUntracked:"לא במעקב"},git:{title:"Git",branch:"ענף",changes:"שינויים",staged:"במת",unstaged:"לא במת",untracked:"לא במעקב",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:"הודעת commit",push:"Push",pull:"Pull",fetch:"Fetch",stage:"העלה לבמה",stageAll:"העלה הכל לבמה",unstage:"הורד מהבמה",discard:"בטל",discardChanges:"בטל שינויים",discardMessage:'לבטל שינויים ב-"{name}"?',noChanges:"אין שינויים",diff:"Diff",pushing:"דוחף...",pulling:"מושך...",committing:"מבצע commit...",failedCommit:"ה-commit נכשל: {error}",failedPush:"ה-push נכשל: {error}",failedPull:"ה-pull נכשל: {error}",status:"סטטוס",diffTab:"Diff",modified:"השתנה",added:"נוסף",deleted:"נמחק",untrackedTitle:"לא במעקב",openFile:"פתח קובץ",discardChangesTitle:"בטל שינויים",discardConfirmTitle:"בטל שינויים",discardConfirmDelete:'האם אתה בטוח שברצונך למחוק את "{name}"? לא ניתן לבטל פעולה זו.',discardConfirmDiscard:'האם אתה בטוח שברצונך לבטל שינויים ב-"{name}"? לא ניתן לבטל פעולה זו.'},fileExplorer:{explorer:"Explorer",search:"Search",sourceControl:"Source Control",settings:"Settings",outline:"Outline",noFolderOpen:"No folder open",uploadingCount:"Uploading {{n}}/{{total}}…",uploadFailedCount:"{{n}} of {{total}} files failed to upload",openFolder:"Open Folder",recentWorkspaces:"Recent Workspaces",openedEditors:"Open Editors",closeEditor:"Close",closeOthers:"Close Others",closeAll:"Close All",closeAllSaved:"Close All Saved",saveAll:"Save All",newFile:"New File",newFolder:"New Folder",refreshExplorer:"Refresh Explorer",collapseAll:"Collapse All",searchInFiles:"Search in files",replaceInFiles:"Replace in files",searchPlaceholder:"Search",replacePlaceholder:"Replace",caseSensitive:"Match Case",wholeWord:"Match Whole Word",useRegex:"Use Regular Expression",filesToInclude:"files to include",filesToExclude:"files to exclude",noResults:"No results found",resultCount:"{count} results in {fileCount} files",replaceAll:"Replace All",replaceConfirmTitle:"Replace in Files",replaceConfirmMessage:"Replace {count} occurrences in {fileCount} files?",commandPalette:"Command Palette",quickOpen:"Quick Open File",typeCommand:"Type a command",typeFileName:"Type a file name",noCommandsFound:"No commands found",workspaceSwitcher:"Switch Workspace",pinWorkspace:"Pin",unpinWorkspace:"Unpin",renameWorkspace:"Rename Workspace",workspaceNamePlaceholder:"Workspace display name",pinned:"Pinned",recent:"Recent",searchWorkspaces:"Search workspaces",welcomeTitle:"Welcome",welcomeSubtitle:"Open a folder to start working",welcomeOpenFolder:"Open Folder",welcomeRecent:"Recent",toggleSidebar:"Toggle Sidebar",togglePanel:"Toggle Panel",togglePanelBottom:"Toggle Bottom Panel",toggleWordWrap:"Toggle Word Wrap",zoomIn:"Zoom In",zoomOut:"Zoom Out",resetZoom:"Reset Zoom",formatDocument:"Format Document",findInFile:"Find",replaceInFile:"Replace",goToLine:"Go to Line",goToFile:"Go to File",revealInOS:"Reveal in Finder/Explorer",openInTerminal:"Open in Terminal",copyPath:"Copy Path",copyRelativePath:"Copy Relative Path",duplicate:"Duplicate",cut:"Cut",paste:"Paste",autoSave:"Auto Save",autoSaveOff:"Off",autoSaveAfterDelay:"After Delay",autoSaveOnFocusChange:"On Focus Change",fontSize:"Font Size",terminalTheme:"Terminal Theme",wordWrap:"Word Wrap",language:"Language",encoding:"Encoding",spaces:"Spaces",branch:"Branch",noBranch:"No branch",commitMessage:"Commit Message",commitMessagePlaceholder:"Message (Cmd+Enter to commit)",stage:"Stage",stageAll:"Stage All",unstage:"Unstage",push:"Push",pull:"Pull",sync:"Sync",staged:"Staged Changes",changes:"Changes",untracked:"Untracked",bottomPanelTerminal:"Terminal",bottomPanelOutput:"Output",bottomPanelProblems:"Problems",expandAll:"Expand All",recentFiles:"Recent Files",closedTabReopen:"Reopen Closed Tab",unsavedDot:"●",loadingTree:"Loading...",fileWatcherActive:"Watching for changes"},remote:{title:"שולחן עבודה מרוחק",connecting:"מתחבר...",disconnected:"מנותק",fullscreen:"מסך מלא",exitFullscreen:"צא ממסך מלא",receivingImage:"Receiving screen…",keyboard:"מקלדת",mouse:"עכבר",quality:"איכות",fps:"FPS",debug:"Debug",help:"עזרה",close:"סגור",sendKey:"שלח מקש",helpTitle:"עזרה לשולחן עבודה מרוחק",notAvailable:"שולחן עבודה מרוחק אינו זמין",customizeKeys:"התאם מקשים",back:"חזור",resetZoom:"אפס זום",refresh:"רענן",rectangleSelection:"בחירה מלבנית",handMode:"מצב יד",toggleKeyboard:"החלף מקלדת מקורית",hideControls:"Hide controls",showControls:"Show controls",textBatchInput:"קלט טקסט באצווה",extraKeys:"מקשים נוספים",customizeRemoteKeys:"התאם מקשי Remote",exitRemote:"צא משולחן עבודה מרוחק",debugTitle:"סטטיסטיקות Debug",minimize:"מזער",transport:"תעבורה",latency:"השהיה",tilesPerSec:"אריחים/שנייה",bandwidth:"רוחב פס",clearStats:"נקה סטטיסטיקות",lockTitle:"Windows נעול",lockGrantDesc:'הפעל "פתיחת נעילת מחשב מרחוק" ב-9remote host במחשב זה.',lockDesc:"הזן את קוד ה-PIN או הסיסמה של Windows עבור מחשב זה",lockPlaceholder:"קוד PIN או סיסמת Windows",unlock:"בטל נעילה",unlocking:"מבטל נעילה…",unlockFailed:"ביטול נעילה נכשל — בדוק את קוד ה-PIN/הסיסמה ונסה שוב."},remoteHelp:{modePc:"PC / עכבר",modeTrackpad:"מגע \xb7 Trackpad",modeDirect:"מגע \xb7 ישיר",mouseTitle:"עכבר",keyboardTitle:"מקלדת",gesturesTrackpadTitle:"מחוות (Trackpad ✋)",gesturesDirectTitle:"מחוות (ישיר)",toolbarTitle:"סרגל כלים",mouseClickKey:"לחיצה / גרירה",mouseClickDesc:"לחיצה שמאלית, גרור לבחירה/הזזה",mouseRightKey:"לחיצה ימנית",mouseRightDesc:"תפריט הקשר במכשיר המרוחק",mouseWheelKey:"גלגלת",mouseWheelDesc:"גלילה במרוחק (Shift + גלגלת = אופקי)",mouseDoubleKey:"לחיצה כפולה",mouseDoubleDesc:"לחיצה כפולה במרוחק",keyPhysicalKey:"מקשים פיזיים",keyPhysicalDesc:"נשלחים ישירות (Tab, מקשי F וכו' נלכדים)",keyModifierKey:"Ctrl / Alt / Shift / ⌘",keyModifierDesc:"מקש מצרף דביק — שלב עם המקש הבא",trackpadSwipeKey:"החלקה באצבע אחת",trackpadSwipeDesc:"הזזת סמן וירטואלי",trackpadTapKey:"הקשה באצבע אחת",trackpadTapDesc:"לחיצה שמאלית במיקום הסמן",trackpad2TapKey:"הקשה ב-2 אצבעות",trackpad2TapDesc:"לחיצה ימנית במיקום הסמן",trackpad2SwipeKey:"החלקה ב-2 אצבעות",trackpad2SwipeDesc:"גלילה במיקום הסמן",trackpadPinchKey:"צביטה ב-2 אצבעות",trackpadPinchDesc:"הגדלת הקנבס",trackpadScrollLockKey:"החזק + גרור",trackpadScrollLockDesc:"החזק לנעילת גלילה, גרור לכל כיוון",directTapKey:"הקשה באצבע אחת",directTapDesc:"לחיצה במיקום ההקשה",directLongKey:"לחיצה ארוכה באצבע אחת",directLongDesc:"לחיצה ימנית",directDoubleKey:"הקשה כפולה באצבע אחת",directDoubleDesc:"לחיצה כפולה",directScrollKey:"החלקה ב-2 אצבעות",directScrollDesc:"גלילה במרוחק",directPinchKey:"צביטה ב-2 אצבעות",directPinchDesc:"הגדלת הקנבס",directPanKey:"גרירה באצבע אחת (זום>1)",directPanDesc:"הזזת קנבס",toolbarHandDesc:"החזק לחיצה שמאלית (מצב גרירה) — הקש שוב לשחרור",toolbarMouseDirectDesc:"עבור למצב ישיר",toolbarMouseTrackpadDesc:"עבור ל-Trackpad (סמן וירטואלי)",toolbarKeyboardDesc:"מקלדת מקורית / קלט טקסט באצווה",toolbarRectDesc:"מצב בחירה מלבנית"},remoteControls:{enterToSend:"Tab / Ctrl+Num למעבר בין כרטיסיות",typeToSend:"הקלד טקסט לשליחה...",send:"שלח",trackpadMode:"מצב Trackpad",directMode:"מצב ישיר",bottomRow:"שורה תחתונה",extraPanel:"פאנל נוסף",exitConfirmMessage:"האם אתה בטוח שברצונך לצאת מהפעלת השולחן הרחוק הנוכחית?"},connection:{retrying:"מתחבר מחדש...",waitingApproval:"ממתין לאישור",approvalDescription:"9Remote host צריך לאשר מכשיר זה לפני שתוכל להתחבר.",approvalHint:"בדוק את הטרמינל במכשיר שלך.",rejectedTitle:"מכשיר נדחה",rejectedDescription:"מכשיר זה לא אושר על ידי 9Remote host.",backToLogin:"חזרה להתחברות",failed:"החיבור נכשל",failedDescription:"לא ניתן להתחבר לאחר {n} ניסיונות",attemptOf:"ניסיון {n} מתוך {total}",exit:"יציאה",cancel:"ביטול",retry:"נסה עכשיו"},notifications:{claudeCode:"Claude Code",codex:"Codex",geminiCli:"Gemini CLI",openCode:"OpenCode",needsInput:"needs input",badgeTitle:"{blocked} needs input, {done} your turn",replied:"replied",agent:"Agent"},sites:{title:"אתרים",localSites:"אתרים מקומיים",selectSitePreview:"בחר אתר לתצוגה מקדימה",browserNewTab:"New tab",browserAddressPlaceholder:"localhost:3000 or /path",browserNotConnected:"Connect to your host first",portPlaceholder:"פורט",loadingSites:"טוען אתרים...",notConnected:"Not connected to the host",noSitesFound:"לא נמצאו אתרים",startServerHint:"הפעל שרת פיתוח מקומי כדי לראותו כאן",siteNamePlaceholder:"שם אתר",saveTitle:"שמור",editNameTitle:"ערוך שם",removeTitle:"הסר",removePortTitle:"הסר פורט",removePortMessage:"להסיר את הפורט {port} מהרשימה השמורה?",popupBlocked:"חלון קופץ חסום! אנא אפשר חלונות קופצים לאתר זה.",startProxyFailed:"הפעלת הפעלת proxy עבור {name} נכשלה",foundCount:"נמצאו {n} אתרים{suffix}",focusOpenedTab:"מקד את הלשונית הפתוחה",openInNewTab:"פתח בלשונית חדשה",goBack:"חזור",goForward:"קדימה",loadingSite:"טוען...",empty:"אין אתרים פעילים",emptyHint:"הפעל שרת מקומי כדי לראותו כאן",open:"פתח",refresh:"רענן"},commandNotes:{title:"הערות פקודות",noSavedCommands:"אין פקודות שמורות",addFirstBelow:"הוסף את הפקודה הראשונה למטה",clickToCopy:"לחץ להעתקה",copiedBang:"הועתק!",copy:"העתק",edit:"ערוך",delete:"מחק",editCommandPlaceholder:"ערוך פקודה...",addCommandPlaceholder:"הוסף פקודה...",update:"עדכן",add:"הוסף",empty:"אין הערות עדיין",emptyHint:"שמור פקודות לגישה מהירה",add:"הוסף הערה",edit:"ערוך הערה",delete:"מחק הערה",deleteMessage:"למחוק הערה זו?",name:"שם",command:"פקודה",save:"שמור",placeholderName:"לדוגמה: הפעל שרת פיתוח",placeholderCommand:"לדוגמה: npm run dev"},mobileKeyboard:{pasteHere:"הדבק כאן (Cmd+V)",enterToSend:"Tab / Ctrl+Num למעבר בין כרטיסיות",typeCommand:"הקלד פקודה ושלח...",send:"שלח",toggleExtraKeys:"החלף מקשים נוספים",toggleTextInput:"החלף קלט טקסט",customizeTerminalKeys:"התאם מקשי טרמינל",mainBar:"סרגל ראשי",extraPanel:"פאנל נוסף",fileTooLarge:"הקובץ גדול מדי (מקסימום 5MB)",readFileFailed:"קריאת הקובץ נכשלה",uploadFailed:"העלאת הקובץ נכשלה: {error}"},terminalPane:{scrollToBottom:"גלול לתחתית",changedFiles:"Changed files",pasteOrType:"הדבק או הקלד כאן",paste:"הדבק"},pwaGuide:{copyYourKey:"העתק את המפתח שלך",copyKeyHint:"הקש על המפתח למטה כדי להעתיק — תזדקק לו להתחברות לאחר ההתקנה",tapToCopyApiKey:"הקש להעתקת מפתח API",copiedBang:"הועתק!",copy:"העתק",tapShareButton:"הקש על כפתור שיתוף",tapShareHint:"הקש על כפתור השיתוף בתחתית iOS Safari",addToHome:"הוסף למסך הבית",addToHomeHint:'גלול למטה והקש "הוסף למסך הבית"',openAppPasteKey:"פתח אפליקציה והדבק מפתח",openAppPasteKeyHint:"פתח את האפליקציה המותקנת והדבק את המפתח כדי להתחבר",openMenu:"פתח תפריט",openMenuHint:"הקש על כפתור התפריט (שלוש נקודות) ב-Android Chrome",installApp:"התקן אפליקציה",installAppHint:'הקש "התקן אפליקציה" או "הוסף למסך הבית"',lookInstallIcon:"חפש סמל התקנה",lookInstallIconHint:"חפש את סמל ההתקנה בשורת הכתובת",clickInstallPaste:"לחץ התקן והדבק מפתח",installNow:"Install Now",installNowHint:"Install 9Remote as an app for quick access",installing:"Installing...",clickInstallPasteHint:"לחץ התקן, פתח את האפליקציה, והדבק את המפתח כדי להתחבר",alternativeHint:'חלופה: פתח תפריט דפדפן → "התקן 9Remote" או "צור קיצור דרך"',loadingPlatform:"טוען זיהוי פלטפורמה...",iosPlatform:"iOS (iPhone/iPad)",androidPlatform:"Android",macosPlatform:"macOS",windowsPlatform:"Windows",desktopPlatform:"שולחן עבודה",alreadyInstalled:"כבר מותקן!",alreadyInstalledHint:"אתה כבר משתמש ב-9Remote כאפליקציה מותקנת",installationGuide:"מדריך התקנה",installationSteps:"שלבי התקנה:"},community:{title:"קהילה",description:"הצטרף לקהילת 9Remote"},pwa:{title:"התקן כאפליקציה",description:"התקן את 9Remote במכשיר שלך לחוויה הטובה ביותר",iosTitle:"iOS Safari",androidTitle:"Android Chrome",desktopTitle:"שולחן עבודה"},codespace:{title:"Codespace",name:"שם",status:"סטטוס",running:"פועל",autoStart:"הפעלה אוטומטית של 9Remote",autoStartHint:"הפעל את 9Remote כאשר Codespace נפתח",stop:"עצור Codespace",stopHint:"עצור כדי לחסוך בשימוש",restartHint:"להפעלה מחדש, עבור ל-GitHub",unknown:"לא ידוע"}}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4929],{4929:(a,e,t)=>{t.r(e),t.d(e,{default:()=>n});let n={common:{statusIdle:"Idle",statusWorking:"Working",statusBlocked:"Needs input",statusDone:"Your turn",loading:"Memuatkan...",cancel:"Batal",confirm:"Sahkan",save:"Simpan",delete:"Padam",close:"Tutup",back:"Kembali",edit:"Sunting",rename:"Namakan semula",remove:"Buang",open:"Buka",yes:"Ya",no:"Tidak",ok:"OK",error:"Ralat",success:"Berjaya",failed:"Gagal",retry:"Cuba semula",refresh:"Muat semula",clipboard:"Clipboard",clipboardCopy:"Copy",clipboardEmpty:"Clipboard is empty",search:"Cari",create:"Cipta",new:"Baharu",add:"Tambah",copy:"Salin",copied:"Disalin",download:"Muat turun",upload:"Muat naik",enabled:"Didayakan",disabled:"Dilumpuhkan",on:"hidup",off:"mati",minute:"min",hour:"j",day:"h",minutesAgo:"{n} min lalu",hoursAgo:"{n} jam lalu",daysAgo:"{n} hari lalu"},login:{tagline:"Akses terminal anda dari mana-mana sahaja",heroLine1:"Any machine.",heroLine2:"One terminal.",heroLine3:"In your pocket.",featureTerminal:"Terminal",featureDesktop:"Desktop",featureFiles:"Files",termConnected:"host connected",termTunnel:"tunnel established",termReady:"ready",accessKey:"Kunci Akses",placeholder:"sk-xxx... atau Kunci Sekali Guna (ABC123)",rememberKey:"Ingat kunci ini",connect:"Sambung",connecting:"Menyambung...",authenticating:"Mengesahkan dengan 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.",savedKeys:"Kunci Tersimpan",login:"Log masuk",lastLogin:"Log masuk terakhir",namePlaceholder:"Name this key (optional)",rename:"Rename",deleteKeyTitle:"Delete key",deleteKeyConfirm:'Are you sure you want to delete "{name}"?',justNow:"Baru sahaja",minutesAgo:"{n}m lalu",hoursAgo:"{n}j lalu",daysAgo:"{n}h lalu",tapToScan:"Ketik untuk imbas",orEnterManually:"atau masukkan kunci secara manual",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:"Laman Utama",docs:"Dokumen"},menu:{reloadRestart:"Reload & Restart",restartHost:"Restart 9remote host",restartConfirmTitle:"Restart 9remote host?",restartConfirmMessage:"This restarts the host process (no reinstall). Terminal sessions are preserved. It takes a few seconds.",restartStarting:"Restarting host…",restartRestarting:"Restarting 9remote…",restartDone:"Restarted! Reconnecting…",restartTimeout:"Restart is taking too long",restartTimeoutHint:"Reconnect manually if it doesn't recover.",title:"Menu",language:"Bahasa",theme:"Tema",notifications:"Pemberitahuan",webgl:"GPU Render (Faster)",webglHint:"Matikan jika teks kelihatan salah",notificationsHint:"Notify when agent finishes",orientation:"Orientasi skrin",orientationPortrait:"Potret",orientationAuto:"Auto",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:"Tapak",commandNotes:"Nota Arahan",community:"Komuniti",installApp:"Pasang Aplikasi",codespace:"Codespace",logout:"Log keluar",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:"Muat semula apl",remoteDesktop:"Desktop Jauh",settings:"Tetapan",enablePush:"Dayakan Pemberitahuan Tolak",disablePush:"Lumpuhkan Pemberitahuan Tolak",pushHint:"Dayakan pemberitahuan tolak untuk dimaklumkan apabila AI selesai tugas",pushActiveHint:"Push notifications are on for this device. You'll be alerted when AI completes tasks.",versionMismatch:"Agen {version} sudah lapuk",versionMismatchHint:"Beberapa ciri mungkin tidak berfungsi. Jalankan:",updateNow:"Update now",updating:"Updating… reconnecting",webReloadTitle:"New web version available",webReloadHint:"Reload to get the latest interface.",reloadWeb:"Reload",updateAvailableTitle:"9Remote host update available",updateStarting:"Starting update…",updateInstalling:"Installing new version…",updateTimeout:"Update is taking too long",updateTimeoutHint:"Reload manually if it doesn't recover.",updateRestarting:"Restarting host…",updateReconnecting:"Reconnecting…",updateDone:"Updated! Reloading…",version:"Versi"},workspace:{loading:"Memuatkan...",logoutTitle:"Log keluar",logoutMessage:"Adakah anda pasti mahu log keluar?",failedCreateSession:"Gagal mencipta sesi: {error}",failedRenameSession:"Gagal menamakan semula sesi: {error}"},sessions:{headerTitle:"9remote.cc",connected:"Disambung",disconnected:"Diputuskan",codespaceStopped:"Codespace dihentikan",placeholder:"Nama terminal (pilihan)",newButton:"+ Baharu",empty:"Tiada sesi aktif",emptyHint:"Cipta sesi baharu untuk bermula",created:"Dicipta {time}",deleteTitle:"Padam Sesi",deleteMessage:'Adakah anda pasti mahu memadam "{name}"?',editName:"Sunting nama",newTerminal:"Terminal baharu",options:"Options"},workspaces:{title:"Groups",newWorkspace:"Group",newWorkspacePrompt:"Group name",defaultName:"New Group",ungrouped:"Ungrouped",addTerminal:"Add terminal to group",moveToWorkspace:"Move to group",rename:"Rename group",delete:"Delete group",emptyWorkspace:"No terminals in this group",deleteTitle:"Delete Group",deleteMessage:'Delete group "{name}"? Terminals move to Ungrouped.'},terminal:{quotaNoData:"No quota data",quotaUsageTitle:"usage",back:"Kembali",menu:"Menu",newTerminal:"Terminal baharu",remoteDesktop:"Desktop Jauh",defaultName:"Term"},files:{selectWorkspace:"Pilih Ruang Kerja",recentWorkspaces:"Ruang Kerja Terkini",home:"Laman Utama",root:"Root",drive:"Pemacu {letter}",codespaces:"Codespaces",removeRecent:"Buang dari terkini",removeTitle:"Buang Ruang Kerja",removeMessage:'Buang "{name}" dari ruang kerja terkini?',setAsWorkspace:"Tetapkan sebagai Ruang Kerja",openFolder:"Buka Folder",newFile:"Fail Baharu",newFolder:"Folder Baharu",rename:"Namakan semula",delete:"Padam",deleteFile:"Padam Fail",deleteFolder:"Padam Folder",deleteFileMessage:'Padam "{name}"?',deleteFolderMessage:'Padam folder "{name}" dan semua kandungannya?',emptyFolder:"Folder kosong",git:"Git",parent:"Folder induk",workspace:"Ruang Kerja",failedLoad:"Gagal memuatkan: {error}",failedDelete:"Gagal memadam: {error}",failedCreate:"Gagal mencipta: {error}",failedRename:"Gagal menamakan semula: {error}",enterName:"Masukkan nama",confirmRename:"Namakan semula kepada:",setWorkspace:"Tetapkan Ruang Kerja",setAsWorkspaceTitle:"Tetapkan sebagai ruang kerja",switchWorkspace:"Tukar ruang kerja",searchFiles:"Cari fail",toggleHidden:"Togol fail tersembunyi",searchPlaceholder:"Cari fail...",searching:"Mencari...",noFilesFound:"Tiada fail dijumpai",noGitRepo:"Tiada repositori Git",cannotOpenBinary:"Tidak dapat membuka fail binari",createNew:"Cipta Baharu",file:"Fail",folder:"Folder",placeholderFile:"namafile.js",placeholderFolder:"nama-folder",pickFile:"Choose files",pickFolder:"Choose folder",copyPath:"Salin laluan",copyRelPath:"Copy Relative Path",copyName:"Copy Filename",delete:"Padam",rename:"Namakan semula",deleteConfirmTitle:"Padam",deleteConfirmMessage:'Padam "{name}"?'},editor:{save:"Simpan",saving:"Menyimpan...",saved:"Disimpan",unsaved:"Perubahan belum disimpan",close:"Tutup",discard:"Buang",discardTitle:"Buang Perubahan",discardMessage:"Anda mempunyai perubahan belum disimpan. Buang?",unsavedTitle:"Save changes to {name}?",unsavedBody:"Your changes will be lost if you don't save them.",failedLoad:"Gagal memuatkan fail: {error}",failedSave:"Gagal menyimpan: {error}",openFull:"Open in full editor",artifact:"Artifact",readOnly:"Baca sahaja",line:"Baris",column:"Lajur",gitDiff:"Git Diff",typeText:"Taip teks dan masukkan...",insert:"Masukkan",statusModified:"Diubah suai",statusAdded:"Ditambah",statusUntracked:"Tidak dijejaki"},git:{title:"Git",branch:"Cawangan",changes:"Perubahan",staged:"Dipentaskan",unstaged:"Belum dipentaskan",untracked:"Tidak dijejaki",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:"Mesej commit",push:"Push",pull:"Pull",fetch:"Fetch",stage:"Pentaskan",stageAll:"Pentaskan Semua",unstage:"Nyahpentas",discard:"Buang",discardChanges:"Buang Perubahan",discardMessage:'Buang perubahan pada "{name}"?',noChanges:"Tiada perubahan",diff:"Diff",pushing:"Menolak...",pulling:"Menarik...",committing:"Melakukan commit...",failedCommit:"Gagal commit: {error}",failedPush:"Gagal push: {error}",failedPull:"Gagal pull: {error}",status:"Status",diffTab:"Diff",modified:"Diubah suai",added:"Ditambah",deleted:"Dipadam",untrackedTitle:"Tidak dijejaki",openFile:"Buka fail",discardChangesTitle:"Buang perubahan",discardConfirmTitle:"Buang Perubahan",discardConfirmDelete:'Adakah anda pasti mahu memadam "{name}"? Ini tidak boleh dibatalkan.',discardConfirmDiscard:'Adakah anda pasti mahu membuang perubahan dalam "{name}"? Ini tidak boleh dibatalkan.'},remote:{title:"Desktop Jauh",connecting:"Menyambung...",disconnected:"Diputuskan",fullscreen:"Skrin penuh",exitFullscreen:"Keluar Skrin Penuh",receivingImage:"Receiving screen…",keyboard:"Papan kekunci",mouse:"Tetikus",quality:"Kualiti",fps:"FPS",debug:"Nyahpepijat",help:"Bantuan",close:"Tutup",sendKey:"Hantar Kekunci",helpTitle:"Bantuan Desktop Jauh",notAvailable:"Desktop jauh tidak tersedia",customizeKeys:"Sesuaikan kekunci",back:"Kembali",resetZoom:"Set semula zum",refresh:"Muat semula",rectangleSelection:"Pemilihan segi empat",handMode:"Mod tangan",toggleKeyboard:"Togol papan kekunci asli",hideControls:"Hide controls",showControls:"Show controls",textBatchInput:"Input teks berkelompok",extraKeys:"Kekunci tambahan",customizeRemoteKeys:"Sesuaikan Kekunci Jauh",exitRemote:"Keluar desktop jauh",debugTitle:"Statistik Nyahpepijat",minimize:"Minimumkan",transport:"Pengangkutan",latency:"Kependaman",tilesPerSec:"Jubin/saat",bandwidth:"Lebar jalur",clearStats:"Kosongkan Statistik",lockTitle:"Windows dikunci",lockGrantDesc:'Aktifkan "Buka kunci PC jauh" di 9remote host pada PC ini.',lockDesc:"Masukkan PIN atau kata laluan Windows untuk komputer ini",lockPlaceholder:"PIN atau kata laluan Windows",unlock:"Buka kunci",unlocking:"Membuka kunci…",unlockFailed:"Gagal membuka kunci — semak PIN/kata laluan anda dan cuba lagi."},remoteHelp:{modePc:"PC / Tetikus",modeTrackpad:"Sentuh \xb7 Trackpad",modeDirect:"Sentuh \xb7 Terus",mouseTitle:"Tetikus",keyboardTitle:"Papan Kekunci",gesturesTrackpadTitle:"Gerak isyarat (Trackpad ✋)",gesturesDirectTitle:"Gerak isyarat (Terus)",toolbarTitle:"Bar Alat",mouseClickKey:"Klik / Seret",mouseClickDesc:"Klik kiri, seret untuk pilih/gerak",mouseRightKey:"Klik kanan",mouseRightDesc:"Menu konteks pada jauh",mouseWheelKey:"Roda",mouseWheelDesc:"Tatal jauh (Shift + Roda = mendatar)",mouseDoubleKey:"Klik dua kali",mouseDoubleDesc:"Klik dua kali pada jauh",keyPhysicalKey:"Kekunci fizikal",keyPhysicalDesc:"Dihantar terus (Tab, kekunci F, dll. ditangkap)",keyModifierKey:"Ctrl / Alt / Shift / ⌘",keyModifierDesc:"Pengubah suai melekat — gabungkan dengan kekunci seterusnya",trackpadSwipeKey:"Leret 1 jari",trackpadSwipeDesc:"Gerakkan kursor maya",trackpadTapKey:"Ketik 1 jari",trackpadTapDesc:"Klik kiri pada kursor",trackpad2TapKey:"Ketik 2 jari",trackpad2TapDesc:"Klik kanan pada kursor",trackpad2SwipeKey:"Leret 2 jari",trackpad2SwipeDesc:"Tatal pada kedudukan kursor",trackpadPinchKey:"Cubit 2 jari",trackpadPinchDesc:"Zum kanvas",trackpadScrollLockKey:"Tahan + seret",trackpadScrollLockDesc:"Tahan untuk kunci skrol, seret ke mana-mana arah",directTapKey:"Ketik 1 jari",directTapDesc:"Klik pada kedudukan ketikan",directLongKey:"Tekan lama 1 jari",directLongDesc:"Klik kanan",directDoubleKey:"Ketik dua kali 1 jari",directDoubleDesc:"Klik dua kali",directScrollKey:"Leret 2 jari",directScrollDesc:"Tatal jauh",directPinchKey:"Cubit 2 jari",directPinchDesc:"Zum kanvas",directPanKey:"Seret 1 jari (zum>1)",directPanDesc:"Pan kanvas",toolbarHandDesc:"Tahan klik kiri (mod seret) — ketik semula untuk lepaskan",toolbarMouseDirectDesc:"Tukar ke mod Terus",toolbarMouseTrackpadDesc:"Tukar ke Trackpad (kursor maya)",toolbarKeyboardDesc:"Papan kekunci asli / input teks berkelompok",toolbarRectDesc:"Mod pemilihan segi empat"},remoteControls:{enterToSend:"Tab / Ctrl+Num untuk tukar tab",typeToSend:"Taip teks untuk hantar...",send:"Hantar",trackpadMode:"Mod Trackpad",directMode:"Mod terus",bottomRow:"Baris Bawah",extraPanel:"Panel Tambahan",exitConfirmMessage:"Adakah anda pasti mahu keluar dari sesi desktop jauh semasa?"},connection:{retrying:"Menyambung semula...",waitingApproval:"Menunggu Kelulusan",approvalDescription:"9Remote host perlu meluluskan peranti ini sebelum anda boleh menyambung.",approvalHint:"Periksa terminal pada mesin anda.",rejectedTitle:"Peranti Ditolak",rejectedDescription:"Peranti ini tidak diluluskan oleh 9Remote host.",backToLogin:"Kembali ke Log Masuk",failed:"Sambungan Gagal",failedDescription:"Tidak dapat menyambung selepas {n} percubaan",attemptOf:"Percubaan {n} daripada {total}",exit:"Keluar",cancel:"Batal",retry:"Cuba semula sekarang"},notifications:{claudeCode:"Claude Code",codex:"Codex",geminiCli:"Gemini CLI",openCode:"OpenCode",needsInput:"needs input",badgeTitle:"{blocked} needs input, {done} your turn",replied:"replied",agent:"Agent"},sites:{title:"Tapak",localSites:"Tapak Tempatan",selectSitePreview:"Pilih tapak untuk pratonton",browserNewTab:"New tab",browserAddressPlaceholder:"localhost:3000 or /path",browserNotConnected:"Connect to your host first",portPlaceholder:"port",loadingSites:"Memuatkan Tapak...",notConnected:"Not connected to the host",noSitesFound:"Tiada tapak dijumpai",startServerHint:"Mulakan pelayan dev tempatan untuk melihatnya di sini",siteNamePlaceholder:"Nama tapak",saveTitle:"Simpan",editNameTitle:"Sunting nama",removeTitle:"Buang",removePortTitle:"Buang Port",removePortMessage:"Buang port {port} dari senarai tersimpan?",popupBlocked:"Popup disekat! Sila benarkan popup untuk tapak ini.",startProxyFailed:"Gagal memulakan sesi proksi untuk {name}",foundCount:"{n} tapak{suffix} dijumpai",focusOpenedTab:"Fokus tab terbuka",openInNewTab:"Buka dalam tab baharu",goBack:"Kembali",goForward:"Ke hadapan",loadingSite:"Memuatkan...",empty:"Tiada tapak aktif",emptyHint:"Jalankan pelayan tempatan untuk melihatnya di sini",open:"Buka",refresh:"Muat semula"},commandNotes:{title:"Nota Arahan",noSavedCommands:"Tiada arahan tersimpan",addFirstBelow:"Tambah arahan pertama anda di bawah",clickToCopy:"Klik untuk salin",copiedBang:"Disalin!",copy:"Salin",edit:"Sunting",delete:"Padam",editCommandPlaceholder:"Sunting arahan...",addCommandPlaceholder:"Tambah arahan...",update:"Kemas kini",add:"Tambah",empty:"Belum ada nota",emptyHint:"Simpan arahan untuk akses pantas",add:"Tambah Nota",edit:"Sunting Nota",delete:"Padam Nota",deleteMessage:"Padam nota ini?",name:"Nama",command:"Arahan",save:"Simpan",placeholderName:"cth. Mulakan pelayan dev",placeholderCommand:"cth. npm run dev"},mobileKeyboard:{pasteHere:"Tampal di sini (Cmd+V)",enterToSend:"Tab / Ctrl+Num untuk tukar tab",typeCommand:"Taip arahan dan hantar...",send:"Hantar",toggleExtraKeys:"Togol kekunci tambahan",toggleTextInput:"Togol input teks",customizeTerminalKeys:"Sesuaikan Kekunci Terminal",mainBar:"Bar Utama",extraPanel:"Panel Tambahan",fileTooLarge:"Fail terlalu besar (maks 5MB)",readFileFailed:"Gagal membaca fail",uploadFailed:"Gagal memuat naik fail: {error}"},terminalPane:{scrollToBottom:"Tatal ke bawah",changedFiles:"Changed files",pasteOrType:"Tampal atau taip di sini",paste:"Tampal"},pwaGuide:{copyYourKey:"Salin Kunci Anda",copyKeyHint:"Ketik kunci di bawah untuk menyalin — anda perlukannya untuk log masuk selepas pemasangan",tapToCopyApiKey:"Ketik untuk salin kunci API",copiedBang:"Disalin!",copy:"Salin",tapShareButton:"Ketik Butang Kongsi",tapShareHint:"Ketik butang kongsi di bahagian bawah iOS Safari",addToHome:"Tambah ke Skrin Utama",addToHomeHint:'Tatal ke bawah dan ketik "Add to Home Screen"',openAppPasteKey:"Buka Aplikasi & Tampal Kunci",openAppPasteKeyHint:"Buka aplikasi yang dipasang dan tampal kunci anda untuk log masuk",openMenu:"Buka Menu",openMenuHint:"Ketik butang menu (tiga titik) dalam Android Chrome",installApp:"Pasang Aplikasi",installAppHint:'Ketik "Install app" atau "Add to Home screen"',lookInstallIcon:"Cari Ikon Pasang",lookInstallIconHint:"Cari ikon pasang di bar alamat",clickInstallPaste:"Klik Pasang & Tampal Kunci",installNow:"Install Now",installNowHint:"Install 9Remote as an app for quick access",installing:"Installing...",clickInstallPasteHint:"Klik pasang, buka aplikasi, dan tampal kunci anda untuk log masuk",alternativeHint:'Alternatif: Buka menu pelayar → "Install 9Remote" atau "Create shortcut"',loadingPlatform:"Memuatkan pengesanan platform...",iosPlatform:"iOS (iPhone/iPad)",androidPlatform:"Android",macosPlatform:"macOS",windowsPlatform:"Windows",desktopPlatform:"Desktop",alreadyInstalled:"Sudah Dipasang!",alreadyInstalledHint:"Anda sudah menggunakan 9Remote sebagai aplikasi yang dipasang",installationGuide:"Panduan Pemasangan",installationSteps:"Langkah Pemasangan:"},community:{title:"Komuniti",description:"Sertai komuniti 9Remote"},pwa:{title:"Pasang sebagai Aplikasi",description:"Pasang 9Remote pada peranti anda untuk pengalaman terbaik",iosTitle:"iOS Safari",androidTitle:"Android Chrome",desktopTitle:"Desktop"},codespace:{title:"Codespace",name:"Nama",status:"Status",running:"Sedang berjalan",autoStart:"Mula Auto 9Remote",autoStartHint:"Mulakan 9Remote apabila codespace dibuka",stop:"Hentikan Codespace",stopHint:"Hentikan untuk menjimatkan penggunaan",restartHint:"Untuk mula semula, pergi ke GitHub",unknown:"Tidak diketahui"}}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4964],{84964:(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ở",clear:"X\xf3a nội dung",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:"host 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 host (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",rateApp:"Đ\xe1nh gi\xe1 ứng dụng",installApp:"C\xe0i đặt ứng dụng",codespace:"Codespace",logout:"Đăng xuất",settingsGeneral:"General",settingsAppearance:"Appearance",settingsTerminalTab:"Terminal",settingsBrowser:"Browser Use",extGuide1:"Mở link sau, bật Developer mode (g\xf3c tr\xean phải):",extGuide2:'Bấm "Load unpacked", chọn folder:',extGuide3:"Trạng th\xe1i sẽ tự chuyển sang connected sau v\xe0i gi\xe2y",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:"Host {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 host…",updateReconnecting:"Đang kết nối lại…",updateDone:"Đ\xe3 cập nhật! Đang tải lại…",version:"Phi\xean bản",orientation:"Xoay m\xe0n h\xecnh",orientationPortrait:"Dọc",orientationLandscape:"Ngang",orientationAuto:"Tự động"},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",maximize:"Ph\xf3ng to",restoreSplit:"Chia m\xe0n h\xecnh",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}",worktreeDirty:"This worktree has modified or untracked files — forcing the removal deletes them for good. Continue?",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ộ",browserPaneLocalSites:"Site cục bộ",browserPaneSearchOrUrl:"T\xecm kiếm hoặc nhập URL",browserPaneLoading:"Đang kết nối tr\xecnh duyệt…",browserPaneNoTabs:"Chưa c\xf3 tab tr\xecnh duyệt n\xe0o",browserPaneNewTabHint:"Nhập URL để mở tab tr\xean tr\xecnh duyệt của m\xe1y host",selectSitePreview:"Chọn site để xem trước",browserNewTab:"New tab",browserAddressPlaceholder:"localhost:3000 or /path",browserNotConnected:"Connect to your host first",portPlaceholder:"cổng",loadingSites:"Đang tải Sites...",notConnected:"Chưa kết nối tới host",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"}}}}]);