9remote 3.0.34 → 3.0.40

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 (478) hide show
  1. package/dist/cli.cjs +163 -161
  2. package/dist/extension/background.js +137 -88
  3. package/dist/extension/manifest.json +6 -5
  4. package/dist/extension/runner.js +606 -0
  5. package/dist/ptyDaemon.cjs +2 -2
  6. package/dist/server.cjs +725 -517
  7. package/dist/ui/assets/index-D_C1NTm1.js +8 -0
  8. package/dist/ui/index.html +1 -1
  9. package/dist/web/404.html +1 -1
  10. package/dist/web/__next.__PAGE__.txt +4 -4
  11. package/dist/web/__next._full.txt +17 -17
  12. package/dist/web/__next._head.txt +4 -4
  13. package/dist/web/__next._index.txt +10 -10
  14. package/dist/web/__next._tree.txt +3 -3
  15. package/dist/web/_next/static/chunks/{0fb7b532.2e7a08a3edb2d789.js → 025762a4.c49f8207624e1667.js} +1 -1
  16. package/dist/web/_next/static/chunks/101.bfb3898573e4245d.js +1 -0
  17. package/dist/web/_next/static/chunks/1342.3d5707800ea67dcb.js +1 -0
  18. package/dist/web/_next/static/chunks/153.d7a869e0874f32e0.js +1 -0
  19. package/dist/web/_next/static/chunks/1561.8d395206716b3967.js +1 -0
  20. package/dist/web/_next/static/chunks/{4314.6bbd89507909cad1.js → 1599.ed9aa4b461112c1a.js} +1 -1
  21. package/dist/web/_next/static/chunks/1694.7c4e72f21d4ce34c.js +1 -0
  22. package/dist/web/_next/static/chunks/1772-ef73c166e83f5eff.js +1 -0
  23. package/dist/web/_next/static/chunks/1878.724a4af779f951aa.js +138 -0
  24. package/dist/web/_next/static/chunks/1879.0252e2bd9153348f.js +1 -0
  25. package/dist/web/_next/static/chunks/1920-5ead25286846df83.js +1 -0
  26. package/dist/web/_next/static/chunks/1968-4d2969f0b7112e0b.js +32 -0
  27. package/dist/web/_next/static/chunks/2004.f975891d8a569296.js +24 -0
  28. package/dist/web/_next/static/chunks/2094.05efbc3414828946.js +1 -0
  29. package/dist/web/_next/static/chunks/2209.2ee6023fed2ac7a5.js +1 -0
  30. package/dist/web/_next/static/chunks/236.88ef102773dd3a91.js +1 -0
  31. package/dist/web/_next/static/chunks/2369.22023f63f0eaf8db.js +1 -0
  32. package/dist/web/_next/static/chunks/{6420.bfa7bc86d03dcefc.js → 2401.73a0315a75c7b051.js} +1 -1
  33. package/dist/web/_next/static/chunks/2427.3a468cdfabd25124.js +1 -0
  34. package/dist/web/_next/static/chunks/2436.da0ef064f744b8af.js +115 -0
  35. package/dist/web/_next/static/chunks/2488.87361126358794fd.js +1 -0
  36. package/dist/web/_next/static/chunks/2561.6c8eb8cf71429d5d.js +36 -0
  37. package/dist/web/_next/static/chunks/2581.d09a7f19c64e4b97.js +1 -0
  38. package/dist/web/_next/static/chunks/{8044.5f87392585c9f3e4.js → 2615.86c58079ec7c597c.js} +1 -1
  39. package/dist/web/_next/static/chunks/2934.0caeb8b2d8b67139.js +1 -0
  40. package/dist/web/_next/static/chunks/{6274.a3795ca6dacb3d62.js → 3011.fc80a2aad3ef8778.js} +2 -2
  41. package/dist/web/_next/static/chunks/3255.3c96f02d5eb06783.js +23 -0
  42. package/dist/web/_next/static/chunks/3284.e56b0102fb9a3920.js +62 -0
  43. package/dist/web/_next/static/chunks/329-15d3e36af1b2827f.js +1 -0
  44. package/dist/web/_next/static/chunks/3301.1f7e2bd5ccb55064.js +1 -0
  45. package/dist/web/_next/static/chunks/3314.b5b5b3cca99d832e.js +1 -0
  46. package/dist/web/_next/static/chunks/{20154aaa.868648f838e03bf1.js → 33d0405b.71576a1f83124ecd.js} +1 -1
  47. package/dist/web/_next/static/chunks/3428.8818e0ef88c0e743.js +1 -0
  48. package/dist/web/_next/static/chunks/3443.8d771dadb470603c.js +1 -0
  49. package/dist/web/_next/static/chunks/3704.bf80aa0d55f950d0.js +1 -0
  50. package/dist/web/_next/static/chunks/3916.141fb720bd1eee40.js +148 -0
  51. package/dist/web/_next/static/chunks/3973.e5c2013e2abeefd3.js +93 -0
  52. package/dist/web/_next/static/chunks/4065.7616cbd8f37a68e6.js +1 -0
  53. package/dist/web/_next/static/chunks/4129.a93c19870036f647.js +1 -0
  54. package/dist/web/_next/static/chunks/{6730.88fc6f2ccc49496c.js → 4171.b0e5c6dc86bc8a5f.js} +1 -1
  55. package/dist/web/_next/static/chunks/4330.a8740b63075e6886.js +1 -0
  56. package/dist/web/_next/static/chunks/4378.a0629cfcbc20c406.js +1 -0
  57. package/dist/web/_next/static/chunks/4553.cad71717d538a2e5.js +1 -0
  58. package/dist/web/_next/static/chunks/4589.9bd287581ccd378b.js +1 -0
  59. package/dist/web/_next/static/chunks/4594.53636acacf285911.js +34 -0
  60. package/dist/web/_next/static/chunks/466.908e4592c2b93997.js +77 -0
  61. package/dist/web/_next/static/chunks/468.2e48222bf3517040.js +1 -0
  62. package/dist/web/_next/static/chunks/4712.b7062faa67f544b5.js +1 -0
  63. package/dist/web/_next/static/chunks/{9675.be4a175f92aa2f26.js → 4724.e0dffedb6972b738.js} +1 -1
  64. package/dist/web/_next/static/chunks/482.a0b5af31d7354a82.js +1 -0
  65. package/dist/web/_next/static/chunks/4929.fce0c23972476c66.js +1 -0
  66. package/dist/web/_next/static/chunks/4964.5a41b2d776aee556.js +1 -0
  67. package/dist/web/_next/static/chunks/499.cf81a39b9e6ce4a4.js +94 -0
  68. package/dist/web/_next/static/chunks/{0a7753a9.4cb02a98e2e453b9.js → 4ff7191e.d68cdd8504937de5.js} +1 -1
  69. package/dist/web/_next/static/chunks/5035.f7175d1037807b62.js +90 -0
  70. package/dist/web/_next/static/chunks/5198.b8e3a08cb60bc349.js +1 -0
  71. package/dist/web/_next/static/chunks/5421.430fa3a5488e15a9.js +21 -0
  72. package/dist/web/_next/static/chunks/{9871-c277aedb0437cb82.js → 556-a8f04c41c5663ee8.js} +1 -1
  73. package/dist/web/_next/static/chunks/5587-fc5af8c76df14222.js +1 -0
  74. package/dist/web/_next/static/chunks/5710.b055a101d6b51ff3.js +27 -0
  75. package/dist/web/_next/static/chunks/5714.122f8cb7296bc9e1.js +1 -0
  76. package/dist/web/_next/static/chunks/5757.2c157c0924cea1c2.js +1 -0
  77. package/dist/web/_next/static/chunks/{3346-23aafd4add63869a.js → 5957-3d5d92b58dcc7d4e.js} +1 -1
  78. package/dist/web/_next/static/chunks/{565f33a6-fd3410bd29f39fdf.js → 5b8e7b36-a2678128cd5bdf5e.js} +1 -1
  79. package/dist/web/_next/static/chunks/6141-132d206408947c60.js +1 -0
  80. package/dist/web/_next/static/chunks/{7424.c8c9f85c8ea65885.js → 6181.6bdde6f59e3f2cea.js} +1 -1
  81. package/dist/web/_next/static/chunks/6221-cf883148bf8a4c1e.js +11 -0
  82. package/dist/web/_next/static/chunks/{3552.8dd9a3d2c3bcef65.js → 6372.51e578b15d566c0e.js} +2 -2
  83. package/dist/web/_next/static/chunks/6405.39e8b42a56b88bb5.js +1 -0
  84. package/dist/web/_next/static/chunks/641.7b1b12ccc56b3b3c.js +1 -0
  85. package/dist/web/_next/static/chunks/{6647.740ec32a32201eab.js → 6418.a86ca6012f0867ff.js} +1 -1
  86. package/dist/web/_next/static/chunks/{4924.3f5c77a103ac69a9.js → 6435.6aef0f9f1cc65be6.js} +1 -1
  87. package/dist/web/_next/static/chunks/6439.f02105d3687113e7.js +1 -0
  88. package/dist/web/_next/static/chunks/647.527b9a09373aab91.js +1 -0
  89. package/dist/web/_next/static/chunks/{8115.68d46fb961c724e0.js → 6470.7057ef6894a7f625.js} +16 -16
  90. package/dist/web/_next/static/chunks/6485.6ae2f3966cc25c9e.js +1 -0
  91. package/dist/web/_next/static/chunks/{6987.743a63813c6288ce.js → 6512.cc81f46437639a0e.js} +2 -2
  92. package/dist/web/_next/static/chunks/6520.73f10855f9d4b5a8.js +1 -0
  93. package/dist/web/_next/static/chunks/668.1ddcf2e38071ae57.js +24 -0
  94. package/dist/web/_next/static/chunks/6815.8126ae5481c3bfd8.js +1 -0
  95. package/dist/web/_next/static/chunks/6925-af784cffb03dd330.js +1 -0
  96. package/dist/web/_next/static/chunks/6e6d0562.6ebb8f7db67bd943.js +122 -0
  97. package/dist/web/_next/static/chunks/7058.affbacca3457f5a7.js +41 -0
  98. package/dist/web/_next/static/chunks/7207.72d8a01e77112af2.js +1 -0
  99. package/dist/web/_next/static/chunks/{4090.441fa61655da9b38.js → 7359.b09680f38f75e105.js} +1 -1
  100. package/dist/web/_next/static/chunks/7369.a824cc623274cf63.js +1 -0
  101. package/dist/web/_next/static/chunks/7489.24938d89538cd03e.js +1 -0
  102. package/dist/web/_next/static/chunks/{9641.f6f2982fc4b4735f.js → 7576.273c3d0faf5c3d02.js} +1 -1
  103. package/dist/web/_next/static/chunks/7620.5c5935fd937c0e84.js +1 -0
  104. package/dist/web/_next/static/chunks/7646.1c26e96ee36bc317.js +1 -0
  105. package/dist/web/_next/static/chunks/7712.cd8c3dc2d794d714.js +1 -0
  106. package/dist/web/_next/static/chunks/7812.aabc856212c93434.js +1 -0
  107. package/dist/web/_next/static/chunks/804.38f05d79313a8dcc.js +104 -0
  108. package/dist/web/_next/static/chunks/8126-0279fc9e17c08aff.js +1 -0
  109. package/dist/web/_next/static/chunks/820-99036fb63c5462c8.js +1 -0
  110. package/dist/web/_next/static/chunks/8304.936a74abe6f0a288.js +1 -0
  111. package/dist/web/_next/static/chunks/8314.7ff9d72cd8613f75.js +226 -0
  112. package/dist/web/_next/static/chunks/8390.5eda620e73ea6c5c.js +74 -0
  113. package/dist/web/_next/static/chunks/860.f7885efc630bcfd7.js +1 -0
  114. package/dist/web/_next/static/chunks/87c73c54-e11922cda838f8cc.js +1 -0
  115. package/dist/web/_next/static/chunks/887.15090f9a6a142a10.js +1 -0
  116. package/dist/web/_next/static/chunks/8977.1ab6ed8e2c098cf0.js +1 -0
  117. package/dist/web/_next/static/chunks/9121-3d281debd0f3e659.js +1 -0
  118. package/dist/web/_next/static/chunks/9491-6dc334192080d071.js +86 -0
  119. package/dist/web/_next/static/chunks/951ed0e8.98070dce91103a63.js +1 -0
  120. package/dist/web/_next/static/chunks/9651.d199fbbbc3de43b8.js +215 -0
  121. package/dist/web/_next/static/chunks/9692.dd07a90166f5e6ff.js +1 -0
  122. package/dist/web/_next/static/chunks/{6075.a6b8434732056526.js → 9700.c47024f592537718.js} +1 -1
  123. package/dist/web/_next/static/chunks/9711.cf7aaa7fa6ec7dd7.js +287 -0
  124. package/dist/web/_next/static/chunks/9736.63b4a559c8a23186.js +1 -0
  125. package/dist/web/_next/static/chunks/{bbfbfb6c.069db3c4cc981ed3.js → 98f82933.0c4f9e5e83926351.js} +1 -1
  126. package/dist/web/_next/static/chunks/{da9a53d6.df25e193f1f5bcae.js → a36ae3fc.d666935373d1f579.js} +4 -4
  127. package/dist/web/_next/static/chunks/{adcd17ec-9a2791632136b67b.js → ab6c8a12-9dac45de556d8a8d.js} +1 -1
  128. package/dist/web/_next/static/chunks/app/_global-error/page-2ece09c883187d82.js +1 -0
  129. package/dist/web/_next/static/chunks/app/_not-found/page-9f829d2c4beb1840.js +1 -0
  130. package/dist/web/_next/static/chunks/app/admin/access/page-45f45ad529e5b691.js +5 -0
  131. package/dist/web/_next/static/chunks/app/admin/login/page-382072b5b43d3c29.js +1 -0
  132. package/dist/web/_next/static/chunks/app/admin/ota/page-293c0743bd60f454.js +5 -0
  133. package/dist/web/_next/static/chunks/app/admin/page-fc676dae451dd646.js +5 -0
  134. package/dist/web/_next/static/chunks/app/admin/turn/page-2ab33033fc7f0919.js +5 -0
  135. package/dist/web/_next/static/chunks/app/dev/question/page-bafce0c9fd4e8488.js +1 -0
  136. package/dist/web/_next/static/chunks/app/download/{page-2811ea822a1e586a.js → page-a65d1c7fcf6397af.js} +1 -1
  137. package/dist/web/_next/static/chunks/app/layout-f1429d22e935695f.js +1 -0
  138. package/dist/web/_next/static/chunks/app/login/page-a5dd37d1cbbb394e.js +1 -0
  139. package/dist/web/_next/static/chunks/app/page-1e67d8a5f3775276.js +22 -0
  140. package/dist/web/_next/static/chunks/app/workspace/browse/page-2ece09c883187d82.js +1 -0
  141. package/dist/web/_next/static/chunks/app/workspace/editor/page-2ece09c883187d82.js +1 -0
  142. package/dist/web/_next/static/chunks/app/workspace/files/page-2ece09c883187d82.js +1 -0
  143. package/dist/web/_next/static/chunks/app/workspace/git/page-2ece09c883187d82.js +1 -0
  144. package/dist/web/_next/static/chunks/app/workspace/layout-d8bb677fa1caa5a7.js +20 -0
  145. package/dist/web/_next/static/chunks/app/workspace/mobile/page-2ece09c883187d82.js +1 -0
  146. package/dist/web/_next/static/chunks/app/workspace/page-2ece09c883187d82.js +1 -0
  147. package/dist/web/_next/static/chunks/app/workspace/pair/page-2ece09c883187d82.js +1 -0
  148. package/dist/web/_next/static/chunks/app/workspace/remote/page-2ece09c883187d82.js +1 -0
  149. package/dist/web/_next/static/chunks/app/workspace/terminal/[sessionId]/page-2ece09c883187d82.js +1 -0
  150. package/dist/web/_next/static/chunks/app/workspace/welcome/page-2ece09c883187d82.js +1 -0
  151. package/dist/web/_next/static/chunks/app/workspace/workspaces/page-2ece09c883187d82.js +1 -0
  152. package/dist/web/_next/static/chunks/b2b4fb58.d2a067fe7df4a0d0.js +1 -0
  153. package/dist/web/_next/static/chunks/baeaa4ff-8eac34d2e07d1bb3.js +1 -0
  154. package/dist/web/_next/static/chunks/{7c89255b.f727562586fa21cc.js → c2d9a0c9.b4e0bb73c2ed317c.js} +1 -1
  155. package/dist/web/_next/static/chunks/{a012e9f0.7dbb2fe05ec0b816.js → ccfb6294.add4177b76c37868.js} +11 -11
  156. package/dist/web/_next/static/chunks/{c7ea4e13.6153499d4c2fb1f2.js → db261188.134a04dd616706a4.js} +1 -1
  157. package/dist/web/_next/static/chunks/framework-59d2d1720fc2b396.js +1 -0
  158. package/dist/web/_next/static/chunks/main-app-72391b47e9393c1b.js +1 -0
  159. package/dist/web/_next/static/chunks/main-e10b0dbebb4de0a8.js +5 -0
  160. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/app-error-2ece09c883187d82.js +1 -0
  161. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/forbidden-2ece09c883187d82.js +1 -0
  162. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/global-error-48f06b4c48a1eef3.js +1 -0
  163. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/not-found-2ece09c883187d82.js +1 -0
  164. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/unauthorized-2ece09c883187d82.js +1 -0
  165. package/dist/web/_next/static/chunks/webpack-dd1f7a5ae02e5d84.js +1 -0
  166. package/dist/web/_next/static/css/{b496025c9cd768cc.css → 15730e9f7c5c55ef.css} +1 -1
  167. package/dist/web/_next/static/css/1c2cca827fa36d54.css +1 -0
  168. package/dist/web/_not-found/__next._full.txt +15 -15
  169. package/dist/web/_not-found/__next._head.txt +4 -4
  170. package/dist/web/_not-found/__next._index.txt +10 -10
  171. package/dist/web/_not-found/__next._not-found.__PAGE__.txt +2 -2
  172. package/dist/web/_not-found/__next._not-found.txt +3 -3
  173. package/dist/web/_not-found/__next._tree.txt +3 -3
  174. package/dist/web/_not-found.html +1 -1
  175. package/dist/web/_not-found.txt +15 -15
  176. package/dist/web/admin/__next._full.txt +17 -17
  177. package/dist/web/admin/__next._head.txt +4 -4
  178. package/dist/web/admin/__next._index.txt +10 -10
  179. package/dist/web/admin/__next._tree.txt +3 -3
  180. package/dist/web/admin/__next.admin.__PAGE__.txt +4 -4
  181. package/dist/web/admin/__next.admin.txt +3 -3
  182. package/dist/web/admin/access/__next._full.txt +17 -17
  183. package/dist/web/admin/access/__next._head.txt +4 -4
  184. package/dist/web/admin/access/__next._index.txt +10 -10
  185. package/dist/web/admin/access/__next._tree.txt +3 -3
  186. package/dist/web/admin/access/__next.admin.access.__PAGE__.txt +4 -4
  187. package/dist/web/admin/access/__next.admin.access.txt +3 -3
  188. package/dist/web/admin/access/__next.admin.txt +3 -3
  189. package/dist/web/admin/access.html +1 -1
  190. package/dist/web/admin/access.txt +17 -17
  191. package/dist/web/admin/login/__next._full.txt +17 -17
  192. package/dist/web/admin/login/__next._head.txt +4 -4
  193. package/dist/web/admin/login/__next._index.txt +10 -10
  194. package/dist/web/admin/login/__next._tree.txt +3 -3
  195. package/dist/web/admin/login/__next.admin.login.__PAGE__.txt +4 -4
  196. package/dist/web/admin/login/__next.admin.login.txt +3 -3
  197. package/dist/web/admin/login/__next.admin.txt +3 -3
  198. package/dist/web/admin/login.html +1 -1
  199. package/dist/web/admin/login.txt +17 -17
  200. package/dist/web/admin/ota/__next._full.txt +17 -17
  201. package/dist/web/admin/ota/__next._head.txt +4 -4
  202. package/dist/web/admin/ota/__next._index.txt +10 -10
  203. package/dist/web/admin/ota/__next._tree.txt +3 -3
  204. package/dist/web/admin/ota/__next.admin.ota.__PAGE__.txt +4 -4
  205. package/dist/web/admin/ota/__next.admin.ota.txt +3 -3
  206. package/dist/web/admin/ota/__next.admin.txt +3 -3
  207. package/dist/web/admin/ota.html +1 -1
  208. package/dist/web/admin/ota.txt +17 -17
  209. package/dist/web/admin/turn/__next._full.txt +17 -17
  210. package/dist/web/admin/turn/__next._head.txt +4 -4
  211. package/dist/web/admin/turn/__next._index.txt +10 -10
  212. package/dist/web/admin/turn/__next._tree.txt +3 -3
  213. package/dist/web/admin/turn/__next.admin.turn.__PAGE__.txt +4 -4
  214. package/dist/web/admin/turn/__next.admin.turn.txt +3 -3
  215. package/dist/web/admin/turn/__next.admin.txt +3 -3
  216. package/dist/web/admin/turn.html +1 -1
  217. package/dist/web/admin/turn.txt +17 -17
  218. package/dist/web/admin.html +1 -1
  219. package/dist/web/admin.txt +17 -17
  220. package/dist/web/dev/question/__next._full.txt +17 -17
  221. package/dist/web/dev/question/__next._head.txt +4 -4
  222. package/dist/web/dev/question/__next._index.txt +10 -10
  223. package/dist/web/dev/question/__next._tree.txt +3 -3
  224. package/dist/web/dev/question/__next.dev.question.__PAGE__.txt +4 -4
  225. package/dist/web/dev/question/__next.dev.question.txt +3 -3
  226. package/dist/web/dev/question/__next.dev.txt +3 -3
  227. package/dist/web/dev/question.html +1 -1
  228. package/dist/web/dev/question.txt +17 -17
  229. package/dist/web/download/__next._full.txt +16 -16
  230. package/dist/web/download/__next._head.txt +4 -4
  231. package/dist/web/download/__next._index.txt +10 -10
  232. package/dist/web/download/__next._tree.txt +3 -3
  233. package/dist/web/download/__next.download.__PAGE__.txt +3 -3
  234. package/dist/web/download/__next.download.txt +3 -3
  235. package/dist/web/download.html +1 -1
  236. package/dist/web/download.txt +16 -16
  237. package/dist/web/index.html +1 -1
  238. package/dist/web/index.txt +17 -17
  239. package/dist/web/login/__next._full.txt +17 -17
  240. package/dist/web/login/__next._head.txt +4 -4
  241. package/dist/web/login/__next._index.txt +10 -10
  242. package/dist/web/login/__next._tree.txt +3 -3
  243. package/dist/web/login/__next.login.__PAGE__.txt +4 -4
  244. package/dist/web/login/__next.login.txt +3 -3
  245. package/dist/web/login.html +1 -1
  246. package/dist/web/login.txt +17 -17
  247. package/dist/web/workspace/__next._full.txt +17 -17
  248. package/dist/web/workspace/__next._head.txt +4 -4
  249. package/dist/web/workspace/__next._index.txt +10 -10
  250. package/dist/web/workspace/__next._tree.txt +3 -3
  251. package/dist/web/workspace/__next.workspace.__PAGE__.txt +2 -2
  252. package/dist/web/workspace/__next.workspace.txt +5 -5
  253. package/dist/web/workspace/browse/__next._full.txt +17 -17
  254. package/dist/web/workspace/browse/__next._head.txt +4 -4
  255. package/dist/web/workspace/browse/__next._index.txt +10 -10
  256. package/dist/web/workspace/browse/__next._tree.txt +3 -3
  257. package/dist/web/workspace/browse/__next.workspace.browse.__PAGE__.txt +2 -2
  258. package/dist/web/workspace/browse/__next.workspace.browse.txt +3 -3
  259. package/dist/web/workspace/browse/__next.workspace.txt +5 -5
  260. package/dist/web/workspace/browse.html +1 -1
  261. package/dist/web/workspace/browse.txt +17 -17
  262. package/dist/web/workspace/editor/__next._full.txt +17 -17
  263. package/dist/web/workspace/editor/__next._head.txt +4 -4
  264. package/dist/web/workspace/editor/__next._index.txt +10 -10
  265. package/dist/web/workspace/editor/__next._tree.txt +3 -3
  266. package/dist/web/workspace/editor/__next.workspace.editor.__PAGE__.txt +2 -2
  267. package/dist/web/workspace/editor/__next.workspace.editor.txt +3 -3
  268. package/dist/web/workspace/editor/__next.workspace.txt +5 -5
  269. package/dist/web/workspace/editor.html +1 -1
  270. package/dist/web/workspace/editor.txt +17 -17
  271. package/dist/web/workspace/files/__next._full.txt +17 -17
  272. package/dist/web/workspace/files/__next._head.txt +4 -4
  273. package/dist/web/workspace/files/__next._index.txt +10 -10
  274. package/dist/web/workspace/files/__next._tree.txt +3 -3
  275. package/dist/web/workspace/files/__next.workspace.files.__PAGE__.txt +2 -2
  276. package/dist/web/workspace/files/__next.workspace.files.txt +3 -3
  277. package/dist/web/workspace/files/__next.workspace.txt +5 -5
  278. package/dist/web/workspace/files.html +1 -1
  279. package/dist/web/workspace/files.txt +17 -17
  280. package/dist/web/workspace/git/__next._full.txt +17 -17
  281. package/dist/web/workspace/git/__next._head.txt +4 -4
  282. package/dist/web/workspace/git/__next._index.txt +10 -10
  283. package/dist/web/workspace/git/__next._tree.txt +3 -3
  284. package/dist/web/workspace/git/__next.workspace.git.__PAGE__.txt +2 -2
  285. package/dist/web/workspace/git/__next.workspace.git.txt +3 -3
  286. package/dist/web/workspace/git/__next.workspace.txt +5 -5
  287. package/dist/web/workspace/git.html +1 -1
  288. package/dist/web/workspace/git.txt +17 -17
  289. package/dist/web/workspace/mobile/__next._full.txt +17 -17
  290. package/dist/web/workspace/mobile/__next._head.txt +4 -4
  291. package/dist/web/workspace/mobile/__next._index.txt +10 -10
  292. package/dist/web/workspace/mobile/__next._tree.txt +3 -3
  293. package/dist/web/workspace/mobile/__next.workspace.mobile.__PAGE__.txt +2 -2
  294. package/dist/web/workspace/mobile/__next.workspace.mobile.txt +3 -3
  295. package/dist/web/workspace/mobile/__next.workspace.txt +5 -5
  296. package/dist/web/workspace/mobile.html +1 -1
  297. package/dist/web/workspace/mobile.txt +17 -17
  298. package/dist/web/workspace/pair/__next._full.txt +17 -17
  299. package/dist/web/workspace/pair/__next._head.txt +4 -4
  300. package/dist/web/workspace/pair/__next._index.txt +10 -10
  301. package/dist/web/workspace/pair/__next._tree.txt +3 -3
  302. package/dist/web/workspace/pair/__next.workspace.pair.__PAGE__.txt +2 -2
  303. package/dist/web/workspace/pair/__next.workspace.pair.txt +3 -3
  304. package/dist/web/workspace/pair/__next.workspace.txt +5 -5
  305. package/dist/web/workspace/pair.html +1 -1
  306. package/dist/web/workspace/pair.txt +17 -17
  307. package/dist/web/workspace/remote/__next._full.txt +17 -17
  308. package/dist/web/workspace/remote/__next._head.txt +4 -4
  309. package/dist/web/workspace/remote/__next._index.txt +10 -10
  310. package/dist/web/workspace/remote/__next._tree.txt +3 -3
  311. package/dist/web/workspace/remote/__next.workspace.remote.__PAGE__.txt +2 -2
  312. package/dist/web/workspace/remote/__next.workspace.remote.txt +3 -3
  313. package/dist/web/workspace/remote/__next.workspace.txt +5 -5
  314. package/dist/web/workspace/remote.html +1 -1
  315. package/dist/web/workspace/remote.txt +17 -17
  316. package/dist/web/workspace/terminal/default/__next._full.txt +26 -25
  317. package/dist/web/workspace/terminal/default/__next._head.txt +4 -4
  318. package/dist/web/workspace/terminal/default/__next._index.txt +10 -10
  319. package/dist/web/workspace/terminal/default/__next._tree.txt +3 -3
  320. package/dist/web/workspace/terminal/default/__next.workspace.terminal.$d$sessionId.__PAGE__.txt +2 -2
  321. package/dist/web/workspace/terminal/default/__next.workspace.terminal.$d$sessionId.txt +3 -3
  322. package/dist/web/workspace/terminal/default/__next.workspace.terminal.txt +3 -3
  323. package/dist/web/workspace/terminal/default/__next.workspace.txt +5 -5
  324. package/dist/web/workspace/terminal/default.html +1 -1
  325. package/dist/web/workspace/terminal/default.txt +26 -25
  326. package/dist/web/workspace/welcome/__next._full.txt +17 -17
  327. package/dist/web/workspace/welcome/__next._head.txt +4 -4
  328. package/dist/web/workspace/welcome/__next._index.txt +10 -10
  329. package/dist/web/workspace/welcome/__next._tree.txt +3 -3
  330. package/dist/web/workspace/welcome/__next.workspace.txt +5 -5
  331. package/dist/web/workspace/welcome/__next.workspace.welcome.__PAGE__.txt +2 -2
  332. package/dist/web/workspace/welcome/__next.workspace.welcome.txt +3 -3
  333. package/dist/web/workspace/welcome.html +1 -1
  334. package/dist/web/workspace/welcome.txt +17 -17
  335. package/dist/web/workspace/workspaces/__next._full.txt +17 -17
  336. package/dist/web/workspace/workspaces/__next._head.txt +4 -4
  337. package/dist/web/workspace/workspaces/__next._index.txt +10 -10
  338. package/dist/web/workspace/workspaces/__next._tree.txt +3 -3
  339. package/dist/web/workspace/workspaces/__next.workspace.txt +5 -5
  340. package/dist/web/workspace/workspaces/__next.workspace.workspaces.__PAGE__.txt +2 -2
  341. package/dist/web/workspace/workspaces/__next.workspace.workspaces.txt +3 -3
  342. package/dist/web/workspace/workspaces.html +1 -1
  343. package/dist/web/workspace/workspaces.txt +17 -17
  344. package/dist/web/workspace.html +1 -1
  345. package/dist/web/workspace.txt +17 -17
  346. package/package.json +1 -1
  347. package/dist/ui/assets/index-DbuftNJF.js +0 -8
  348. package/dist/web/_next/static/chunks/1050-b9af41e8856b58c0.js +0 -1
  349. package/dist/web/_next/static/chunks/1222.a2ce7d7f04241e2a.js +0 -1
  350. package/dist/web/_next/static/chunks/1228.046ad5fd038f5192.js +0 -1
  351. package/dist/web/_next/static/chunks/1243.1d11020940b8a88b.js +0 -1
  352. package/dist/web/_next/static/chunks/132.1ed2fce3a4b6f7ee.js +0 -1
  353. package/dist/web/_next/static/chunks/133.1106654a28b5afda.js +0 -1
  354. package/dist/web/_next/static/chunks/1385.086b560acb0d7a68.js +0 -115
  355. package/dist/web/_next/static/chunks/1642.cac26d30ac331cb4.js +0 -1
  356. package/dist/web/_next/static/chunks/1733.f06c240b3ef8a428.js +0 -77
  357. package/dist/web/_next/static/chunks/1750.09ca4eade7a6e5d3.js +0 -1
  358. package/dist/web/_next/static/chunks/1763.28beedca593b5e19.js +0 -138
  359. package/dist/web/_next/static/chunks/179.b9e8f385bd414d1c.js +0 -62
  360. package/dist/web/_next/static/chunks/1838.7c8990f903e3524a.js +0 -215
  361. package/dist/web/_next/static/chunks/2038.b7c72b442a1b2d92.js +0 -1
  362. package/dist/web/_next/static/chunks/2112.d72eefbdf81659b3.js +0 -23
  363. package/dist/web/_next/static/chunks/2125.61c6e4a3541e30ad.js +0 -1
  364. package/dist/web/_next/static/chunks/2129.61afb2f4ff59e46a.js +0 -24
  365. package/dist/web/_next/static/chunks/213.f07a816120a320ba.js +0 -1
  366. package/dist/web/_next/static/chunks/2179.3f55be0b79e3cca7.js +0 -1
  367. package/dist/web/_next/static/chunks/2180.23585bd3f3308f3a.js +0 -1
  368. package/dist/web/_next/static/chunks/2264.0fc1474d26067a01.js +0 -1
  369. package/dist/web/_next/static/chunks/2376.ed6302a91a9de1ae.js +0 -36
  370. package/dist/web/_next/static/chunks/2545.3ff192a933baf11e.js +0 -1
  371. package/dist/web/_next/static/chunks/2620.d17f4fac0eec88a5.js +0 -1
  372. package/dist/web/_next/static/chunks/2847.d3124853ca727b78.js +0 -1
  373. package/dist/web/_next/static/chunks/2849.360e2c64521fa795.js +0 -1
  374. package/dist/web/_next/static/chunks/3189.64c6546d621eec0b.js +0 -1
  375. package/dist/web/_next/static/chunks/3348-9ef29f9cedf6c0df.js +0 -1
  376. package/dist/web/_next/static/chunks/3429.98d7e79ff6d2a6ce.js +0 -1
  377. package/dist/web/_next/static/chunks/3514.9079bf49bb3e05c9.js +0 -1
  378. package/dist/web/_next/static/chunks/3606.b59e695fd05b4eb3.js +0 -74
  379. package/dist/web/_next/static/chunks/3736.4a5662ceeecc6acb.js +0 -94
  380. package/dist/web/_next/static/chunks/392.842b338137824bb8.js +0 -1
  381. package/dist/web/_next/static/chunks/4136-d7c1ff2da0833b42.js +0 -86
  382. package/dist/web/_next/static/chunks/4300-7d6c9b3328075562.js +0 -1
  383. package/dist/web/_next/static/chunks/4303.54c4aa0b89834fc6.js +0 -1
  384. package/dist/web/_next/static/chunks/4551.d0d6723cacfb90b9.js +0 -226
  385. package/dist/web/_next/static/chunks/4566.d8e009823b8647d1.js +0 -90
  386. package/dist/web/_next/static/chunks/4643.ddf3ea3a760e73a5.js +0 -1
  387. package/dist/web/_next/static/chunks/4930.42e564644c94a93b.js +0 -1
  388. package/dist/web/_next/static/chunks/5155.d7e8db52ab4c95e0.js +0 -27
  389. package/dist/web/_next/static/chunks/5158-267908d069475cdc.js +0 -32
  390. package/dist/web/_next/static/chunks/543.5636e97aa68eb9c8.js +0 -41
  391. package/dist/web/_next/static/chunks/5506.98304a1821200439.js +0 -1
  392. package/dist/web/_next/static/chunks/5622.5ead5e748ecedbd1.js +0 -1
  393. package/dist/web/_next/static/chunks/5708.22b4531ceebf3eca.js +0 -1
  394. package/dist/web/_next/static/chunks/5788-d4b8dc2ab68396b6.js +0 -1
  395. package/dist/web/_next/static/chunks/5804.ff72a927135eb74c.js +0 -93
  396. package/dist/web/_next/static/chunks/588.78e2528ff24df85c.js +0 -287
  397. package/dist/web/_next/static/chunks/6001.e5bcb28bb9ce6571.js +0 -1
  398. package/dist/web/_next/static/chunks/6180.82fa683aa16f21df.js +0 -1
  399. package/dist/web/_next/static/chunks/6276.aa48f74970f7ef3d.js +0 -1
  400. package/dist/web/_next/static/chunks/6419.99aa173d83f20370.js +0 -1
  401. package/dist/web/_next/static/chunks/6552-cebe84e4399a184f.js +0 -1
  402. package/dist/web/_next/static/chunks/6739.22a05398bfd34922.js +0 -1
  403. package/dist/web/_next/static/chunks/674.97a7237f011fb986.js +0 -1
  404. package/dist/web/_next/static/chunks/6742.bc3783b9784ead96.js +0 -1
  405. package/dist/web/_next/static/chunks/7202.dad90ce4a1d78f67.js +0 -1
  406. package/dist/web/_next/static/chunks/7233.0f252f6c1cce8058.js +0 -1
  407. package/dist/web/_next/static/chunks/7248.d89bf328a0dc1b4c.js +0 -1
  408. package/dist/web/_next/static/chunks/7263.6f224c3924155294.js +0 -1
  409. package/dist/web/_next/static/chunks/7341.6958eac888a96823.js +0 -34
  410. package/dist/web/_next/static/chunks/7507.28a3807b5d02a5c1.js +0 -1
  411. package/dist/web/_next/static/chunks/7811.19082afa63eb73ba.js +0 -1
  412. package/dist/web/_next/static/chunks/7853.d01982fa0afc1ee2.js +0 -24
  413. package/dist/web/_next/static/chunks/7908.432ab9feeb9ae756.js +0 -1
  414. package/dist/web/_next/static/chunks/7960.026e07028dd25edb.js +0 -1
  415. package/dist/web/_next/static/chunks/7967.6c62be01fad1603c.js +0 -1
  416. package/dist/web/_next/static/chunks/8054.feeb01b8acdb31d4.js +0 -1
  417. package/dist/web/_next/static/chunks/817.cd0f4d221eca4c8b.js +0 -104
  418. package/dist/web/_next/static/chunks/8207-45554e2570bc59e6.js +0 -1
  419. package/dist/web/_next/static/chunks/8467.290e9bde34b58e7c.js +0 -1
  420. package/dist/web/_next/static/chunks/8495.d6cea1be03635fa8.js +0 -148
  421. package/dist/web/_next/static/chunks/8638.237712645dcdcb8a.js +0 -1
  422. package/dist/web/_next/static/chunks/8669-8d1fb8dce08c886d.js +0 -11
  423. package/dist/web/_next/static/chunks/8716.1ad6febb58e8560e.js +0 -1
  424. package/dist/web/_next/static/chunks/8762-cb470d05070f5ead.js +0 -1
  425. package/dist/web/_next/static/chunks/8839.1ad64faf06fb4a33.js +0 -1
  426. package/dist/web/_next/static/chunks/8922-8660f73e9cd42406.js +0 -1
  427. package/dist/web/_next/static/chunks/910.43be9c3be85c7fa0.js +0 -21
  428. package/dist/web/_next/static/chunks/925.fe600c6039a3201d.js +0 -1
  429. package/dist/web/_next/static/chunks/9259.c450f561db04037d.js +0 -1
  430. package/dist/web/_next/static/chunks/9299.83236781dfa74eb0.js +0 -1
  431. package/dist/web/_next/static/chunks/9387.96263a2d1602a078.js +0 -1
  432. package/dist/web/_next/static/chunks/9568-0bfadca4fcb105aa.js +0 -1
  433. package/dist/web/_next/static/chunks/9860.05fa134ae44699e0.js +0 -1
  434. package/dist/web/_next/static/chunks/9b87412a.d2cfae4121762dec.js +0 -122
  435. package/dist/web/_next/static/chunks/a096f98a-5a93977f5f5de413.js +0 -1
  436. package/dist/web/_next/static/chunks/ab1da478.d051e56375dab6d8.js +0 -1
  437. package/dist/web/_next/static/chunks/app/_global-error/page-e656bb9bc0f3fd3d.js +0 -1
  438. package/dist/web/_next/static/chunks/app/_not-found/page-877523282abd5a7c.js +0 -1
  439. package/dist/web/_next/static/chunks/app/admin/access/page-65febd13b3d1fc91.js +0 -5
  440. package/dist/web/_next/static/chunks/app/admin/login/page-8ff8150184b7ccaa.js +0 -1
  441. package/dist/web/_next/static/chunks/app/admin/ota/page-d8766baa3680522d.js +0 -5
  442. package/dist/web/_next/static/chunks/app/admin/page-6237b1487c05f33e.js +0 -5
  443. package/dist/web/_next/static/chunks/app/admin/turn/page-6a6b695b67d59451.js +0 -5
  444. package/dist/web/_next/static/chunks/app/dev/question/page-bdedfcfce7a3c516.js +0 -1
  445. package/dist/web/_next/static/chunks/app/layout-a0e78c8427f97e4f.js +0 -1
  446. package/dist/web/_next/static/chunks/app/login/page-edc7457ddecf9262.js +0 -1
  447. package/dist/web/_next/static/chunks/app/page-b76772608a876c23.js +0 -22
  448. package/dist/web/_next/static/chunks/app/workspace/browse/page-e656bb9bc0f3fd3d.js +0 -1
  449. package/dist/web/_next/static/chunks/app/workspace/editor/page-e656bb9bc0f3fd3d.js +0 -1
  450. package/dist/web/_next/static/chunks/app/workspace/files/page-e656bb9bc0f3fd3d.js +0 -1
  451. package/dist/web/_next/static/chunks/app/workspace/git/page-e656bb9bc0f3fd3d.js +0 -1
  452. package/dist/web/_next/static/chunks/app/workspace/layout-0fd9ea03182e9c89.js +0 -15
  453. package/dist/web/_next/static/chunks/app/workspace/mobile/page-e656bb9bc0f3fd3d.js +0 -1
  454. package/dist/web/_next/static/chunks/app/workspace/page-e656bb9bc0f3fd3d.js +0 -1
  455. package/dist/web/_next/static/chunks/app/workspace/pair/page-e656bb9bc0f3fd3d.js +0 -1
  456. package/dist/web/_next/static/chunks/app/workspace/remote/page-e656bb9bc0f3fd3d.js +0 -1
  457. package/dist/web/_next/static/chunks/app/workspace/terminal/[sessionId]/page-e656bb9bc0f3fd3d.js +0 -1
  458. package/dist/web/_next/static/chunks/app/workspace/welcome/page-e656bb9bc0f3fd3d.js +0 -1
  459. package/dist/web/_next/static/chunks/app/workspace/workspaces/page-e656bb9bc0f3fd3d.js +0 -1
  460. package/dist/web/_next/static/chunks/c7879cf7-0d16fce1674078f9.js +0 -1
  461. package/dist/web/_next/static/chunks/cdcce140.7a440644c3dd52b8.js +0 -1
  462. package/dist/web/_next/static/chunks/framework-42053c69543a55f9.js +0 -1
  463. package/dist/web/_next/static/chunks/main-255c95c36766ce86.js +0 -5
  464. package/dist/web/_next/static/chunks/main-app-1831d4f902c3fcb9.js +0 -1
  465. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/app-error-e656bb9bc0f3fd3d.js +0 -1
  466. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/forbidden-e656bb9bc0f3fd3d.js +0 -1
  467. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/global-error-76800531999827bd.js +0 -1
  468. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/not-found-e656bb9bc0f3fd3d.js +0 -1
  469. package/dist/web/_next/static/chunks/next/dist/client/components/builtin/unauthorized-e656bb9bc0f3fd3d.js +0 -1
  470. package/dist/web/_next/static/chunks/webpack-f3500fd1fae71c88.js +0 -1
  471. package/dist/web/_next/static/css/1b307dedbb687210.css +0 -1
  472. package/dist/web/proxy.html +0 -179
  473. package/dist/web/sw-site.js +0 -283
  474. package/dist/web/swBridgeClaim.js +0 -57
  475. /package/dist/web/_next/static/{DdbafQkcX_ZaKRMjMeNKp → 55Oo1FQxj9HIxB7QE1XWG}/_buildManifest.js +0 -0
  476. /package/dist/web/_next/static/{DdbafQkcX_ZaKRMjMeNKp → 55Oo1FQxj9HIxB7QE1XWG}/_ssgManifest.js +0 -0
  477. /package/dist/web/_next/static/chunks/{1311.8c6b8930e22ceea0.js → 6153.8c6b8930e22ceea0.js} +0 -0
  478. /package/dist/web/_next/static/chunks/{3692.8c6b8930e22ceea0.js → 8534.8c6b8930e22ceea0.js} +0 -0
@@ -0,0 +1,41 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7058],{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")},37058:(t,e,a)=>{a.d(e,{diagram:()=>E});var r=a(23583),i=a(62572),n=a(80968),l=a(90598),s=a(88084),o=a(63634),c=a(34330),d={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},g={axes:[],curves:[],options:d},u=structuredClone(g),p=l.UI.radar,x=(0,o.K)(()=>(0,n.$t)({...p,...(0,l.zj)().radar}),"getConfig"),h=(0,o.K)(()=>u.axes,"getAxes"),m=(0,o.K)(()=>u.curves,"getCurves"),$=(0,o.K)(()=>u.options,"getOptions"),f=(0,o.K)(t=>{u.axes=t.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),y=(0,o.K)(t=>{u.curves=t.map(t=>({name:t.name,label:t.label??t.name,entries:v(t.entries)}))},"setCurves"),v=(0,o.K)(t=>{if(void 0==t[0].axis)return t.map(t=>t.value);let e=h();if(0===e.length)throw Error("Axes must be populated before curves for reference entries");return e.map(e=>{let a=t.find(t=>t.axis?.$refText===e.name);if(void 0===a)throw Error("Missing entry for axis "+e.label);return a.value})},"computeCurveEntries"),w={getAxes:h,getCurves:m,getOptions:$,setAxes:f,setCurves:y,setOptions:(0,o.K)(t=>{let e=t.reduce((t,e)=>(t[e.name]=e,t),{});u.options={showLegend:e.showLegend?.value??d.showLegend,ticks:e.ticks?.value??d.ticks,max:e.max?.value??d.max,min:e.min?.value??d.min,graticule:e.graticule?.value??d.graticule},u.options.ticks>32&&(s.R.warn(`Radar diagram ticks (${u.options.ticks}) exceeds maximum allowed (32). Using 32 instead.`),u.options.ticks=32)},"setOptions"),getConfig:x,clear:(0,o.K)(()=>{(0,l.IU)(),u=structuredClone(g)},"clear"),setAccTitle:l.SV,getAccTitle:l.iN,setDiagramTitle:l.ke,getDiagramTitle:l.ab,getAccDescription:l.m7,setAccDescription:l.EI},b=(0,o.K)(t=>{(0,r.S)(t,w);let{axes:e,curves:a,options:i}=t;w.setAxes(e),w.setCurves(a),w.setOptions(i)},"populate"),C={parse:(0,o.K)(async t=>{let e=await (0,c.qg)("radar",t);s.R.debug(e),b(e)},"parse")},k=(0,o.K)((t,e,a,r)=>{let n=r.db,l=n.getAxes(),s=n.getCurves(),o=n.getOptions(),c=n.getConfig(),d=n.getDiagramTitle(),g=K((0,i.D)(e),c),u=o.max??Math.max(...s.map(t=>Math.max(...t.entries))),p=o.min,x=Math.min(c.width,c.height)/2;M(g,l,x,o.ticks,o.graticule),L(g,l,x,c),T(g,l,s,p,u,o.graticule,c),I(g,s,o.showLegend,c),g.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-c.height/2-c.marginTop)},"draw"),K=(0,o.K)((t,e)=>{let a=e.width+e.marginLeft+e.marginRight,r=e.height+e.marginTop+e.marginBottom,i={x:e.marginLeft+e.width/2,y:e.marginTop+e.height/2};return(0,l.a$)(t,r,a,e.useMaxWidth??!0),t.attr("viewBox",`0 0 ${a} ${r}`).attr("overflow","visible"),t.append("g").attr("transform",`translate(${i.x}, ${i.y})`)},"drawFrame"),M=(0,o.K)((t,e,a,r,i)=>{if("circle"===i)for(let e=0;e<r;e++){let i=a*(e+1)/r;t.append("circle").attr("r",i).attr("class","radarGraticule")}else if("polygon"===i){let i=e.length;for(let n=0;n<r;n++){let l=a*(n+1)/r,s=e.map((t,e)=>{let a=2*e*Math.PI/i-Math.PI/2,r=l*Math.cos(a),n=l*Math.sin(a);return`${r},${n}`}).join(" ");t.append("polygon").attr("points",s).attr("class","radarGraticule")}}},"drawGraticule"),L=(0,o.K)((t,e,a,r)=>{let i=e.length;for(let n=0;n<i;n++){let l=e[n].label,s=2*n*Math.PI/i-Math.PI/2,o=Math.cos(s),c=Math.sin(s);t.append("line").attr("x1",0).attr("y1",0).attr("x2",a*r.axisScaleFactor*o).attr("y2",a*r.axisScaleFactor*c).attr("class","radarAxisLine");let d=o>.01?"start":o<-.01?"end":"middle",g=c>.01?"hanging":c<-.01?"auto":"central";t.append("text").text(l).attr("x",a*r.axisLabelFactor*o+4*o).attr("y",a*r.axisLabelFactor*c+4*c).attr("text-anchor",d).attr("dominant-baseline",g).attr("class","radarAxisLabel")}},"drawAxes");function T(t,e,a,r,i,n,l){let s=e.length,o=Math.min(l.width,l.height)/2;a.forEach((e,a)=>{if(e.entries.length!==s)return;let c=e.entries.map((t,e)=>{let a=2*Math.PI*e/s-Math.PI/2,n=A(t,r,i,o);return{x:n*Math.cos(a),y:n*Math.sin(a)}});"circle"===n?t.append("path").attr("d",S(c,l.curveTension)).attr("class",`radarCurve-${a}`):"polygon"===n&&t.append("polygon").attr("points",c.map(t=>`${t.x},${t.y}`).join(" ")).attr("class",`radarCurve-${a}`)})}function A(t,e,a,r){return r*(Math.min(Math.max(t,e),a)-e)/(a-e)}function S(t,e){let a=t.length,r=`M${t[0].x},${t[0].y}`;for(let i=0;i<a;i++){let n=t[(i-1+a)%a],l=t[i],s=t[(i+1)%a],o=t[(i+2)%a],c={x:l.x+(s.x-n.x)*e,y:l.y+(s.y-n.y)*e},d={x:s.x-(o.x-l.x)*e,y:s.y-(o.y-l.y)*e};r+=` C${c.x},${c.y} ${d.x},${d.y} ${s.x},${s.y}`}return`${r} Z`}function I(t,e,a,r){if(!a)return;let i=(r.width/2+r.marginRight)*3/4,n=-(3*(r.height/2+r.marginTop))/4;e.forEach((e,a)=>{let r=t.append("g").attr("transform",`translate(${i}, ${n+20*a})`);r.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${a}`),r.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(e.label)})}(0,o.K)(T,"drawCurves"),(0,o.K)(A,"relativeRadius"),(0,o.K)(S,"closedRoundCurve"),(0,o.K)(I,"drawLegend");var D=(0,o.K)((t,e)=>{let a="";for(let r=0;r<t.THEME_COLOR_LIMIT;r++){let i=t[`cScale${r}`];a+=`
2
+ .radarCurve-${r} {
3
+ color: ${i};
4
+ fill: ${i};
5
+ fill-opacity: ${e.curveOpacity};
6
+ stroke: ${i};
7
+ stroke-width: ${e.curveStrokeWidth};
8
+ }
9
+ .radarLegendBox-${r} {
10
+ fill: ${i};
11
+ fill-opacity: ${e.curveOpacity};
12
+ stroke: ${i};
13
+ }
14
+ `}return a},"genIndexStyles"),O=(0,o.K)(t=>{let e=(0,l.P$)(),a=(0,l.zj)(),r=(0,n.$t)(e,a.themeVariables),i=(0,n.$t)(r.radar,t);return{themeVariables:r,radarOptions:i}},"buildRadarStyleOptions"),E={parser:C,db:w,renderer:{draw:k},styles:(0,o.K)(({radar:t}={})=>{let{themeVariables:e,radarOptions:a}=O(t);return`
15
+ .radarTitle {
16
+ font-size: ${e.fontSize};
17
+ color: ${e.titleColor};
18
+ dominant-baseline: hanging;
19
+ text-anchor: middle;
20
+ }
21
+ .radarAxisLine {
22
+ stroke: ${a.axisColor};
23
+ stroke-width: ${a.axisStrokeWidth};
24
+ }
25
+ .radarAxisLabel {
26
+ font-size: ${a.axisLabelFontSize}px;
27
+ color: ${a.axisColor};
28
+ }
29
+ .radarGraticule {
30
+ fill: ${a.graticuleColor};
31
+ fill-opacity: ${a.graticuleOpacity};
32
+ stroke: ${a.graticuleColor};
33
+ stroke-width: ${a.graticuleStrokeWidth};
34
+ }
35
+ .radarLegendText {
36
+ text-anchor: start;
37
+ font-size: ${a.legendFontSize}px;
38
+ dominant-baseline: hanging;
39
+ }
40
+ ${D(e,a)}
41
+ `},"styles")}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7207],{87207:(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:"Host {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 차이",typeText:"텍스트를 입력하고 삽입...",insert:"삽입",statusModified:"수정됨",statusAdded:"추가됨",statusUntracked:"추적되지 않음"},git:{title:"Git",branch:"브랜치",changes:"변경사항",staged:"스테이징됨",unstaged:"스테이징되지 않음",untracked:"추적되지 않음",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:"커밋 메시지",push:"푸시",pull:"풀",fetch:"패치",stage:"스테이징",stageAll:"모두 스테이징",unstage:"스테이징 취소",discard:"취소",discardChanges:"변경사항 취소",discardMessage:'"{name}"의 변경사항을 취소하시겠습니까?',noChanges:"변경사항 없음",diff:"차이",pushing:"푸시 중...",pulling:"풀 중...",committing:"커밋 중...",failedCommit:"커밋 실패: {error}",failedPush:"푸시 실패: {error}",failedPull:"풀 실패: {error}",status:"상태",diffTab:"차이",modified:"수정됨",added:"추가됨",deleted:"삭제됨",untrackedTitle:"추적되지 않음",openFile:"파일 열기",discardChangesTitle:"변경사항 취소",discardConfirmTitle:"변경사항 취소",discardConfirmDelete:'정말로 "{name}"을(를) 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.',discardConfirmDiscard:'정말로 "{name}"의 변경사항을 취소하시겠습니까? 이 작업은 취소할 수 없습니다.'},remote:{title:"원격 데스크톱",connecting:"연결 중...",disconnected:"연결 끊김",fullscreen:"전체화면",exitFullscreen:"전체화면 종료",receivingImage:"Receiving screen…",keyboard:"키보드",mouse:"마우스",quality:"품질",fps:"FPS",debug:"디버그",help:"도움말",close:"닫기",sendKey:"키 전송",helpTitle:"원격 데스크톱 도움말",notAvailable:"원격 데스크톱을 사용할 수 없습니다",customizeKeys:"키 사용자 지정",back:"뒤로",resetZoom:"확대/축소 초기화",refresh:"새로고침",rectangleSelection:"사각형 선택",handMode:"핸드 모드",toggleKeyboard:"기본 키보드 전환",hideControls:"Hide controls",showControls:"Show controls",textBatchInput:"텍스트 일괄 입력",extraKeys:"추가 키",customizeRemoteKeys:"원격 키 사용자 지정",exitRemote:"원격 데스크톱 종료",debugTitle:"디버그 통계",minimize:"최소화",transport:"전송",latency:"지연 시간",tilesPerSec:"타일/초",bandwidth:"대역폭",clearStats:"통계 지우기",lockTitle:"Windows 잠김",lockGrantDesc:'이 PC의 9remote host에서 "원격 잠금 해제"를 켜세요.',lockDesc:"이 컴퓨터의 Windows PIN 또는 비밀번호 입력",lockPlaceholder:"Windows PIN 또는 비밀번호",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:"두 손가락 탭",trackpad2TapDesc:"커서 위치에서 오른쪽 클릭",trackpad2SwipeKey:"두 손가락 스와이프",trackpad2SwipeDesc:"커서 위치에서 스크롤",trackpadPinchKey:"두 손가락 핀치",trackpadPinchDesc:"캔버스 확대/축소",trackpadScrollLockKey:"길게 누르기 + 드래그",trackpadScrollLockDesc:"길게 눌러 스크롤 고정, 아무 방향으로 드래그",directTapKey:"한 손가락 탭",directTapDesc:"탭 위치에서 클릭",directLongKey:"한 손가락 길게 누르기",directLongDesc:"오른쪽 클릭",directDoubleKey:"한 손가락 더블 탭",directDoubleDesc:"더블 클릭",directScrollKey:"두 손가락 스와이프",directScrollDesc:"원격 스크롤",directPinchKey:"두 손가락 핀치",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:"{total}회 중 {n}회 시도",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:"{name}의 프록시 세션 시작 실패",foundCount:"{n}개 사이트{suffix} 발견",focusOpenedTab:"열린 Tab으로 포커스",openInNewTab:"새 Tab에서 열기",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:"Codespace가 열릴 때 9Remote 시작",stop:"Codespace 중지",stopHint:"사용량을 절약하려면 중지하세요",restartHint:"다시 시작하려면 GitHub로 이동하세요",unknown:"알 수 없음"}}}}]);
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4090],{64090:(t,e,i)=>{i.d(e,{diagram:()=>I});var a=i(84187),n=i(14561),s=i(68567),r=i(10312),l=function(){var t=(0,s.K)(function(t,e,i,a){for(i=i||{},a=t.length;a--;i[t[a]]=e);return i},"o"),e=[1,3],i=[1,4],a=[1,5],n=[1,6],r=[1,7],l=[1,4,5,10,12,13,14,15,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],o=[1,4,5,10,12,13,14,15,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],h=[55,56,57],c=[2,36],d=[1,37],u=[1,36],x=[1,38],g=[1,35],f=[1,43],p=[1,41],y=[1,45],T=[1,14],m=[1,23],_=[1,18],q=[1,19],A=[1,20],b=[1,21],k=[1,22],S=[1,24],F=[1,25],P=[1,26],C=[1,27],v=[1,28],L=[1,29],I=[1,32],E=[1,33],D=[1,34],z=[1,39],K=[1,40],U=[1,42],w=[1,44],N=[1,63],R=[1,62],B=[4,5,8,10,12,13,14,15,18,44,47,49,55,56,57,63,64,65,66,67],$=[1,66],W=[1,67],O=[1,68],Q=[1,69],X=[1,70],M=[1,71],Y=[1,72],H=[1,73],j=[1,74],G=[1,75],Z=[1,76],V=[1,77],J=[4,5,6,7,8,9,10,11,12,13,14,15,18],tt=[1,91],te=[1,92],ti=[1,93],ta=[1,100],tn=[1,94],ts=[1,97],tr=[1,95],tl=[1,96],to=[1,98],th=[1,99],tc=[1,103],td=[10,55,56,57],tu=[4,5,6,8,10,11,13,17,18,19,20,55,56,57],tx={trace:(0,s.K)(function(){},"trace"),yy:{},symbols_:{error:2,idStringToken:3,ALPHA:4,NUM:5,NODE_STRING:6,DOWN:7,MINUS:8,DEFAULT:9,COMMA:10,COLON:11,AMP:12,BRKT:13,MULT:14,UNICODE_TEXT:15,styleComponent:16,UNIT:17,SPACE:18,STYLE:19,PCT:20,idString:21,style:22,stylesOpt:23,classDefStatement:24,CLASSDEF:25,start:26,eol:27,QUADRANT:28,document:29,line:30,statement:31,axisDetails:32,quadrantDetails:33,points:34,title:35,title_value:36,acc_title:37,acc_title_value:38,acc_descr:39,acc_descr_value:40,acc_descr_multiline_value:41,section:42,text:43,point_start:44,point_x:45,point_y:46,class_name:47,"X-AXIS":48,"AXIS-TEXT-DELIMITER":49,"Y-AXIS":50,QUADRANT_1:51,QUADRANT_2:52,QUADRANT_3:53,QUADRANT_4:54,NEWLINE:55,SEMI:56,EOF:57,alphaNumToken:58,textNoTagsToken:59,STR:60,MD_STR:61,alphaNum:62,PUNCTUATION:63,PLUS:64,EQUALS:65,DOT:66,UNDERSCORE:67,$accept:0,$end:1},terminals_:{2:"error",4:"ALPHA",5:"NUM",6:"NODE_STRING",7:"DOWN",8:"MINUS",9:"DEFAULT",10:"COMMA",11:"COLON",12:"AMP",13:"BRKT",14:"MULT",15:"UNICODE_TEXT",17:"UNIT",18:"SPACE",19:"STYLE",20:"PCT",25:"CLASSDEF",28:"QUADRANT",35:"title",36:"title_value",37:"acc_title",38:"acc_title_value",39:"acc_descr",40:"acc_descr_value",41:"acc_descr_multiline_value",42:"section",44:"point_start",45:"point_x",46:"point_y",47:"class_name",48:"X-AXIS",49:"AXIS-TEXT-DELIMITER",50:"Y-AXIS",51:"QUADRANT_1",52:"QUADRANT_2",53:"QUADRANT_3",54:"QUADRANT_4",55:"NEWLINE",56:"SEMI",57:"EOF",60:"STR",61:"MD_STR",63:"PUNCTUATION",64:"PLUS",65:"EQUALS",66:"DOT",67:"UNDERSCORE"},productions_:[0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[21,1],[21,2],[22,1],[22,2],[23,1],[23,3],[24,5],[26,2],[26,2],[26,2],[29,0],[29,2],[30,2],[31,0],[31,1],[31,2],[31,1],[31,1],[31,1],[31,2],[31,2],[31,2],[31,1],[31,1],[34,4],[34,5],[34,5],[34,6],[32,4],[32,3],[32,2],[32,4],[32,3],[32,2],[33,2],[33,2],[33,2],[33,2],[27,1],[27,1],[27,1],[43,1],[43,2],[43,1],[43,1],[62,1],[62,2],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[59,1]],performAction:(0,s.K)(function(t,e,i,a,n,s,r){var l=s.length-1;switch(n){case 23:case 68:this.$=s[l];break;case 24:case 69:this.$=s[l-1]+""+s[l];break;case 26:this.$=s[l-1]+s[l];break;case 27:this.$=[s[l].trim()];break;case 28:s[l-2].push(s[l].trim()),this.$=s[l-2];break;case 29:this.$=s[l-4],a.addClass(s[l-2],s[l]);break;case 37:this.$=[];break;case 42:this.$=s[l].trim(),a.setDiagramTitle(this.$);break;case 43:this.$=s[l].trim(),a.setAccTitle(this.$);break;case 44:case 45:this.$=s[l].trim(),a.setAccDescription(this.$);break;case 46:a.addSection(s[l].substr(8)),this.$=s[l].substr(8);break;case 47:a.addPoint(s[l-3],"",s[l-1],s[l],[]);break;case 48:a.addPoint(s[l-4],s[l-3],s[l-1],s[l],[]);break;case 49:a.addPoint(s[l-4],"",s[l-2],s[l-1],s[l]);break;case 50:a.addPoint(s[l-5],s[l-4],s[l-2],s[l-1],s[l]);break;case 51:a.setXAxisLeftText(s[l-2]),a.setXAxisRightText(s[l]);break;case 52:s[l-1].text+=" ⟶ ",a.setXAxisLeftText(s[l-1]);break;case 53:a.setXAxisLeftText(s[l]);break;case 54:a.setYAxisBottomText(s[l-2]),a.setYAxisTopText(s[l]);break;case 55:s[l-1].text+=" ⟶ ",a.setYAxisBottomText(s[l-1]);break;case 56:a.setYAxisBottomText(s[l]);break;case 57:a.setQuadrant1Text(s[l]);break;case 58:a.setQuadrant2Text(s[l]);break;case 59:a.setQuadrant3Text(s[l]);break;case 60:a.setQuadrant4Text(s[l]);break;case 64:case 66:this.$={text:s[l],type:"text"};break;case 65:this.$={text:s[l-1].text+""+s[l],type:s[l-1].type};break;case 67:this.$={text:s[l],type:"markdown"}}},"anonymous"),table:[{18:e,26:1,27:2,28:i,55:a,56:n,57:r},{1:[3]},{18:e,26:8,27:2,28:i,55:a,56:n,57:r},{18:e,26:9,27:2,28:i,55:a,56:n,57:r},t(l,[2,33],{29:10}),t(o,[2,61]),t(o,[2,62]),t(o,[2,63]),{1:[2,30]},{1:[2,31]},t(h,c,{30:11,31:12,24:13,32:15,33:16,34:17,43:30,58:31,1:[2,32],4:d,5:u,10:x,12:g,13:f,14:p,15:y,18:T,25:m,35:_,37:q,39:A,41:b,42:k,48:S,50:F,51:P,52:C,53:v,54:L,60:I,61:E,63:D,64:z,65:K,66:U,67:w}),t(l,[2,34]),{27:46,55:a,56:n,57:r},t(h,[2,37]),t(h,c,{24:13,32:15,33:16,34:17,43:30,58:31,31:47,4:d,5:u,10:x,12:g,13:f,14:p,15:y,18:T,25:m,35:_,37:q,39:A,41:b,42:k,48:S,50:F,51:P,52:C,53:v,54:L,60:I,61:E,63:D,64:z,65:K,66:U,67:w}),t(h,[2,39]),t(h,[2,40]),t(h,[2,41]),{36:[1,48]},{38:[1,49]},{40:[1,50]},t(h,[2,45]),t(h,[2,46]),{18:[1,51]},{4:d,5:u,10:x,12:g,13:f,14:p,15:y,43:52,58:31,60:I,61:E,63:D,64:z,65:K,66:U,67:w},{4:d,5:u,10:x,12:g,13:f,14:p,15:y,43:53,58:31,60:I,61:E,63:D,64:z,65:K,66:U,67:w},{4:d,5:u,10:x,12:g,13:f,14:p,15:y,43:54,58:31,60:I,61:E,63:D,64:z,65:K,66:U,67:w},{4:d,5:u,10:x,12:g,13:f,14:p,15:y,43:55,58:31,60:I,61:E,63:D,64:z,65:K,66:U,67:w},{4:d,5:u,10:x,12:g,13:f,14:p,15:y,43:56,58:31,60:I,61:E,63:D,64:z,65:K,66:U,67:w},{4:d,5:u,10:x,12:g,13:f,14:p,15:y,43:57,58:31,60:I,61:E,63:D,64:z,65:K,66:U,67:w},{4:d,5:u,8:N,10:x,12:g,13:f,14:p,15:y,18:R,44:[1,58],47:[1,59],58:61,59:60,63:D,64:z,65:K,66:U,67:w},t(B,[2,64]),t(B,[2,66]),t(B,[2,67]),t(B,[2,70]),t(B,[2,71]),t(B,[2,72]),t(B,[2,73]),t(B,[2,74]),t(B,[2,75]),t(B,[2,76]),t(B,[2,77]),t(B,[2,78]),t(B,[2,79]),t(B,[2,80]),t(B,[2,81]),t(l,[2,35]),t(h,[2,38]),t(h,[2,42]),t(h,[2,43]),t(h,[2,44]),{3:65,4:$,5:W,6:O,7:Q,8:X,9:M,10:Y,11:H,12:j,13:G,14:Z,15:V,21:64},t(h,[2,53],{59:60,58:61,4:d,5:u,8:N,10:x,12:g,13:f,14:p,15:y,18:R,49:[1,78],63:D,64:z,65:K,66:U,67:w}),t(h,[2,56],{59:60,58:61,4:d,5:u,8:N,10:x,12:g,13:f,14:p,15:y,18:R,49:[1,79],63:D,64:z,65:K,66:U,67:w}),t(h,[2,57],{59:60,58:61,4:d,5:u,8:N,10:x,12:g,13:f,14:p,15:y,18:R,63:D,64:z,65:K,66:U,67:w}),t(h,[2,58],{59:60,58:61,4:d,5:u,8:N,10:x,12:g,13:f,14:p,15:y,18:R,63:D,64:z,65:K,66:U,67:w}),t(h,[2,59],{59:60,58:61,4:d,5:u,8:N,10:x,12:g,13:f,14:p,15:y,18:R,63:D,64:z,65:K,66:U,67:w}),t(h,[2,60],{59:60,58:61,4:d,5:u,8:N,10:x,12:g,13:f,14:p,15:y,18:R,63:D,64:z,65:K,66:U,67:w}),{45:[1,80]},{44:[1,81]},t(B,[2,65]),t(B,[2,82]),t(B,[2,83]),t(B,[2,84]),{3:83,4:$,5:W,6:O,7:Q,8:X,9:M,10:Y,11:H,12:j,13:G,14:Z,15:V,18:[1,82]},t(J,[2,23]),t(J,[2,1]),t(J,[2,2]),t(J,[2,3]),t(J,[2,4]),t(J,[2,5]),t(J,[2,6]),t(J,[2,7]),t(J,[2,8]),t(J,[2,9]),t(J,[2,10]),t(J,[2,11]),t(J,[2,12]),t(h,[2,52],{58:31,43:84,4:d,5:u,10:x,12:g,13:f,14:p,15:y,60:I,61:E,63:D,64:z,65:K,66:U,67:w}),t(h,[2,55],{58:31,43:85,4:d,5:u,10:x,12:g,13:f,14:p,15:y,60:I,61:E,63:D,64:z,65:K,66:U,67:w}),{46:[1,86]},{45:[1,87]},{4:tt,5:te,6:ti,8:ta,11:tn,13:ts,16:90,17:tr,18:tl,19:to,20:th,22:89,23:88},t(J,[2,24]),t(h,[2,51],{59:60,58:61,4:d,5:u,8:N,10:x,12:g,13:f,14:p,15:y,18:R,63:D,64:z,65:K,66:U,67:w}),t(h,[2,54],{59:60,58:61,4:d,5:u,8:N,10:x,12:g,13:f,14:p,15:y,18:R,63:D,64:z,65:K,66:U,67:w}),t(h,[2,47],{22:89,16:90,23:101,4:tt,5:te,6:ti,8:ta,11:tn,13:ts,17:tr,18:tl,19:to,20:th}),{46:[1,102]},t(h,[2,29],{10:tc}),t(td,[2,27],{16:104,4:tt,5:te,6:ti,8:ta,11:tn,13:ts,17:tr,18:tl,19:to,20:th}),t(tu,[2,25]),t(tu,[2,13]),t(tu,[2,14]),t(tu,[2,15]),t(tu,[2,16]),t(tu,[2,17]),t(tu,[2,18]),t(tu,[2,19]),t(tu,[2,20]),t(tu,[2,21]),t(tu,[2,22]),t(h,[2,49],{10:tc}),t(h,[2,48],{22:89,16:90,23:105,4:tt,5:te,6:ti,8:ta,11:tn,13:ts,17:tr,18:tl,19:to,20:th}),{4:tt,5:te,6:ti,8:ta,11:tn,13:ts,16:90,17:tr,18:tl,19:to,20:th,22:106},t(tu,[2,26]),t(h,[2,50],{10:tc}),t(td,[2,28],{16:104,4:tt,5:te,6:ti,8:ta,11:tn,13:ts,17:tr,18:tl,19:to,20:th})],defaultActions:{8:[2,30],9:[2,31]},parseError:(0,s.K)(function(t,e){if(e.recoverable)this.trace(t);else{var i=Error(t);throw i.hash=e,i}},"parseError"),parse:(0,s.K)(function(t){var e=this,i=[0],a=[],n=[null],r=[],l=this.table,o="",h=0,c=0,d=0,u=r.slice.call(arguments,1),x=Object.create(this.lexer),g={};for(var f in this.yy)Object.prototype.hasOwnProperty.call(this.yy,f)&&(g[f]=this.yy[f]);x.setInput(t,g),g.lexer=x,g.parser=this,void 0===x.yylloc&&(x.yylloc={});var p=x.yylloc;r.push(p);var y=x.options&&x.options.ranges;function T(){var t;return"number"!=typeof(t=a.pop()||x.lex()||1)&&(t instanceof Array&&(t=(a=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.parseError?this.parseError=g.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,s.K)(function(t){i.length=i.length-2*t,n.length=n.length-t,r.length=r.length-t},"popStack"),(0,s.K)(T,"lex");for(var m,_,q,A,b,k,S,F,P,C={};;){if(q=i[i.length-1],this.defaultActions[q]?A=this.defaultActions[q]:(null==m&&(m=T()),A=l[q]&&l[q][m]),void 0===A||!A.length||!A[0]){var v="";for(k in P=[],l[q])this.terminals_[k]&&k>2&&P.push("'"+this.terminals_[k]+"'");v=x.showPosition?"Parse error on line "+(h+1)+":\n"+x.showPosition()+"\nExpecting "+P.join(", ")+", got '"+(this.terminals_[m]||m)+"'":"Parse error on line "+(h+1)+": Unexpected "+(1==m?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(v,{text:x.match,token:this.terminals_[m]||m,line:x.yylineno,loc:p,expected:P})}if(A[0]instanceof Array&&A.length>1)throw Error("Parse Error: multiple actions possible at state: "+q+", token: "+m);switch(A[0]){case 1:i.push(m),n.push(x.yytext),r.push(x.yylloc),i.push(A[1]),m=null,_?(m=_,_=null):(c=x.yyleng,o=x.yytext,h=x.yylineno,p=x.yylloc,d>0&&d--);break;case 2:if(S=this.productions_[A[1]][1],C.$=n[n.length-S],C._$={first_line:r[r.length-(S||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(S||1)].first_column,last_column:r[r.length-1].last_column},y&&(C._$.range=[r[r.length-(S||1)].range[0],r[r.length-1].range[1]]),void 0!==(b=this.performAction.apply(C,[o,c,h,g,A[1],n,r].concat(u))))return b;S&&(i=i.slice(0,-1*S*2),n=n.slice(0,-1*S),r=r.slice(0,-1*S)),i.push(this.productions_[A[1]][0]),n.push(C.$),r.push(C._$),F=l[i[i.length-2]][i[i.length-1]],i.push(F);break;case 3:return!0}}return!0},"parse")};function tg(){this.yy={}}return tx.lexer={EOF:1,parseError:(0,s.K)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,s.K)(function(t,e){return this.yy=e||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,s.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,s.K)(function(t){var e=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var a=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),i.length-1&&(this.yylineno-=i.length-1);var n=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:i?(i.length===a.length?this.yylloc.first_column:0)+a[a.length-i.length].length-i[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,s.K)(function(){return this._more=!0,this},"more"),reject:(0,s.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,s.K)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,s.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,s.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,s.K)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,s.K)(function(t,e){var i,a,n;if(this.options.backtrack_lexer&&(n={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&&(n.yylloc.range=this.yylloc.range.slice(0))),(a=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=a.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:a?a[a.length-1].length-a[a.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],i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack)for(var s in n)this[s]=n[s];return!1},"test_match"),next:(0,s.K)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,i,a,n=this._currentRules(),s=0;s<n.length;s++)if((i=this._input.match(this.rules[n[s]]))&&(!e||i[0].length>e[0].length)){if(e=i,a=s,this.options.backtrack_lexer){if(!1!==(t=this.test_match(i,n[s])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[a]))&&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,s.K)(function(){var t=this.next();return t||this.lex()},"lex"),begin:(0,s.K)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,s.K)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,s.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,s.K)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,s.K)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,s.K)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,s.K)(function(t,e,i,a){switch(i){case 0:case 1:case 3:break;case 2:return 55;case 4:return this.begin("title"),35;case 5:return this.popState(),"title_value";case 6:return this.begin("acc_title"),37;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),39;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:case 23:case 25:case 31:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 48;case 14:return 50;case 15:return 49;case 16:return 51;case 17:return 52;case 18:return 53;case 19:return 54;case 20:return 25;case 21:this.begin("md_string");break;case 22:return"MD_STR";case 24:this.begin("string");break;case 26:return"STR";case 27:this.begin("class_name");break;case 28:return this.popState(),47;case 29:return this.begin("point_start"),44;case 30:return this.begin("point_x"),45;case 32:this.popState(),this.begin("point_y");break;case 33:return this.popState(),46;case 34:return 28;case 35:return 4;case 36:return 15;case 37:return 11;case 38:return 64;case 39:return 10;case 40:case 41:return 65;case 42:return 14;case 43:return 13;case 44:return 67;case 45:return 66;case 46:return 12;case 47:return 8;case 48:return 5;case 49:return 18;case 50:return 56;case 51:return 63;case 52:return 57}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:classDef\b)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?::::)/i,/^(?:^\w+)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?:[^\x00-\x7F]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{class_name:{rules:[28],inclusive:!1},point_y:{rules:[33],inclusive:!1},point_x:{rules:[32],inclusive:!1},point_start:{rules:[30,31],inclusive:!1},acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},title:{rules:[5],inclusive:!1},md_string:{rules:[22,23],inclusive:!1},string:{rules:[25,26],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,21,24,27,29,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],inclusive:!0}}},(0,s.K)(tg,"Parser"),tg.prototype=tx,tx.Parser=tg,new tg}();l.parser=l;var o=(0,a.P$)(),h=class{constructor(){this.classes=new Map,this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}static{(0,s.K)(this,"QuadrantBuilder")}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:a.UI.quadrantChart?.chartWidth||500,chartWidth:a.UI.quadrantChart?.chartHeight||500,titlePadding:a.UI.quadrantChart?.titlePadding||10,titleFontSize:a.UI.quadrantChart?.titleFontSize||20,quadrantPadding:a.UI.quadrantChart?.quadrantPadding||5,xAxisLabelPadding:a.UI.quadrantChart?.xAxisLabelPadding||5,yAxisLabelPadding:a.UI.quadrantChart?.yAxisLabelPadding||5,xAxisLabelFontSize:a.UI.quadrantChart?.xAxisLabelFontSize||16,yAxisLabelFontSize:a.UI.quadrantChart?.yAxisLabelFontSize||16,quadrantLabelFontSize:a.UI.quadrantChart?.quadrantLabelFontSize||16,quadrantTextTopPadding:a.UI.quadrantChart?.quadrantTextTopPadding||5,pointTextPadding:a.UI.quadrantChart?.pointTextPadding||5,pointLabelFontSize:a.UI.quadrantChart?.pointLabelFontSize||12,pointRadius:a.UI.quadrantChart?.pointRadius||5,xAxisPosition:a.UI.quadrantChart?.xAxisPosition||"top",yAxisPosition:a.UI.quadrantChart?.yAxisPosition||"left",quadrantInternalBorderStrokeWidth:a.UI.quadrantChart?.quadrantInternalBorderStrokeWidth||1,quadrantExternalBorderStrokeWidth:a.UI.quadrantChart?.quadrantExternalBorderStrokeWidth||2}}getDefaultThemeConfig(){return{quadrant1Fill:o.quadrant1Fill,quadrant2Fill:o.quadrant2Fill,quadrant3Fill:o.quadrant3Fill,quadrant4Fill:o.quadrant4Fill,quadrant1TextFill:o.quadrant1TextFill,quadrant2TextFill:o.quadrant2TextFill,quadrant3TextFill:o.quadrant3TextFill,quadrant4TextFill:o.quadrant4TextFill,quadrantPointFill:o.quadrantPointFill,quadrantPointTextFill:o.quadrantPointTextFill,quadrantXAxisTextFill:o.quadrantXAxisTextFill,quadrantYAxisTextFill:o.quadrantYAxisTextFill,quadrantTitleFill:o.quadrantTitleFill,quadrantInternalBorderStrokeFill:o.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:o.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),this.classes=new Map,n.R.info("clear called")}setData(t){this.data={...this.data,...t}}addPoints(t){this.data.points=[...t,...this.data.points]}addClass(t,e){this.classes.set(t,e)}setConfig(t){n.R.trace("setConfig called with: ",t),this.config={...this.config,...t}}setThemeConfig(t){n.R.trace("setThemeConfig called with: ",t),this.themeConfig={...this.themeConfig,...t}}calculateSpace(t,e,i,a){let n=2*this.config.xAxisLabelPadding+this.config.xAxisLabelFontSize,s={top:"top"===t&&e?n:0,bottom:"bottom"===t&&e?n:0},r=2*this.config.yAxisLabelPadding+this.config.yAxisLabelFontSize,l={left:"left"===this.config.yAxisPosition&&i?r:0,right:"right"===this.config.yAxisPosition&&i?r:0},o=this.config.titleFontSize+2*this.config.titlePadding,h={top:a?o:0},c=this.config.quadrantPadding+l.left,d=this.config.quadrantPadding+s.top+h.top,u=this.config.chartWidth-2*this.config.quadrantPadding-l.left-l.right,x=this.config.chartHeight-2*this.config.quadrantPadding-s.top-s.bottom-h.top;return{xAxisSpace:s,yAxisSpace:l,titleSpace:h,quadrantSpace:{quadrantLeft:c,quadrantTop:d,quadrantWidth:u,quadrantHalfWidth:u/2,quadrantHeight:x,quadrantHalfHeight:x/2}}}getAxisLabels(t,e,i,a){let{quadrantSpace:n,titleSpace:s}=a,{quadrantHalfHeight:r,quadrantHeight:l,quadrantLeft:o,quadrantHalfWidth:h,quadrantTop:c,quadrantWidth:d}=n,u=!!this.data.xAxisRightText,x=!!this.data.yAxisTopText,g=[];return this.data.xAxisLeftText&&e&&g.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:o+(u?h/2:0),y:"top"===t?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+c+l+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:u?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&e&&g.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:o+h+(u?h/2:0),y:"top"===t?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+c+l+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:u?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&i&&g.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:"left"===this.config.yAxisPosition?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+o+d+this.config.quadrantPadding,y:c+l-(x?r/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:x?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&i&&g.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:"left"===this.config.yAxisPosition?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+o+d+this.config.quadrantPadding,y:c+r-(x?r/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:x?"center":"left",horizontalPos:"top",rotation:-90}),g}getQuadrants(t){let{quadrantSpace:e}=t,{quadrantHalfHeight:i,quadrantLeft:a,quadrantHalfWidth:n,quadrantTop:s}=e,r=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a+n,y:s,width:n,height:i,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a,y:s,width:n,height:i,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a,y:s+i,width:n,height:i,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a+n,y:s+i,width:n,height:i,fill:this.themeConfig.quadrant4Fill}];for(let t of r)t.text.x=t.x+t.width/2,0===this.data.points.length?(t.text.y=t.y+t.height/2,t.text.horizontalPos="middle"):(t.text.y=t.y+this.config.quadrantTextTopPadding,t.text.horizontalPos="top");return r}getQuadrantPoints(t){let{quadrantSpace:e}=t,{quadrantHeight:i,quadrantLeft:a,quadrantTop:n,quadrantWidth:s}=e,l=(0,r.m4Y)().domain([0,1]).range([a,s+a]),o=(0,r.m4Y)().domain([0,1]).range([i+n,n]);return this.data.points.map(t=>{let e=this.classes.get(t.className);return e&&(t={...e,...t}),{x:l(t.x),y:o(t.y),fill:t.color??this.themeConfig.quadrantPointFill,radius:t.radius??this.config.pointRadius,text:{text:t.text,fill:this.themeConfig.quadrantPointTextFill,x:l(t.x),y:o(t.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0},strokeColor:t.strokeColor??this.themeConfig.quadrantPointFill,strokeWidth:t.strokeWidth??"0px"}})}getBorders(t){let e=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:i}=t,{quadrantHalfHeight:a,quadrantHeight:n,quadrantLeft:s,quadrantHalfWidth:r,quadrantTop:l,quadrantWidth:o}=i;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-e,y1:l,x2:s+o+e,y2:l},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s+o,y1:l+e,x2:s+o,y2:l+n-e},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-e,y1:l+n,x2:s+o+e,y2:l+n},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s,y1:l+e,x2:s,y2:l+n-e},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+r,y1:l+e,x2:s+r,y2:l+n-e},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+e,y1:l+a,x2:s+o-e,y2:l+a}]}getTitle(t){if(t)return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}build(){let t=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),e=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),i=this.config.showTitle&&!!this.data.titleText,a=this.data.points.length>0?"bottom":this.config.xAxisPosition,n=this.calculateSpace(a,t,e,i);return{points:this.getQuadrantPoints(n),quadrants:this.getQuadrants(n),axisLabels:this.getAxisLabels(a,t,e,n),borderLines:this.getBorders(n),title:this.getTitle(i)}}},c=class extends Error{static{(0,s.K)(this,"InvalidStyleError")}constructor(t,e,i){super(`value for ${t} ${e} is invalid, please use a valid ${i}`),this.name="InvalidStyleError"}};function d(t){return!/^#?([\dA-Fa-f]{6}|[\dA-Fa-f]{3})$/.test(t)}function u(t){return!/^\d+$/.test(t)}function x(t){return!/^\d+px$/.test(t)}function g(t){return(0,a.jZ)(t.trim(),(0,a.D7)())}(0,s.K)(d,"validateHexCode"),(0,s.K)(u,"validateNumber"),(0,s.K)(x,"validateSizeInPixels"),(0,s.K)(g,"textSanitizer");var f=new h;function p(t){f.setData({quadrant1Text:g(t.text)})}function y(t){f.setData({quadrant2Text:g(t.text)})}function T(t){f.setData({quadrant3Text:g(t.text)})}function m(t){f.setData({quadrant4Text:g(t.text)})}function _(t){f.setData({xAxisLeftText:g(t.text)})}function q(t){f.setData({xAxisRightText:g(t.text)})}function A(t){f.setData({yAxisTopText:g(t.text)})}function b(t){f.setData({yAxisBottomText:g(t.text)})}function k(t){let e={};for(let i of t){let[t,a]=i.trim().split(/\s*:\s*/);if("radius"===t){if(u(a))throw new c(t,a,"number");e.radius=parseInt(a)}else if("color"===t){if(d(a))throw new c(t,a,"hex code");e.color=a}else if("stroke-color"===t){if(d(a))throw new c(t,a,"hex code");e.strokeColor=a}else if("stroke-width"===t){if(x(a))throw new c(t,a,"number of pixels (eg. 10px)");e.strokeWidth=a}else throw Error(`style named ${t} is not supported.`)}return e}function S(t,e,i,a,n){let s=k(n);f.addPoints([{x:i,y:a,text:g(t.text),className:e,...s}])}function F(t,e){f.addClass(t,k(e))}function P(t){f.setConfig({chartWidth:t})}function C(t){f.setConfig({chartHeight:t})}function v(){let{themeVariables:t,quadrantChart:e}=(0,a.D7)();return e&&f.setConfig(e),f.setThemeConfig({quadrant1Fill:t.quadrant1Fill,quadrant2Fill:t.quadrant2Fill,quadrant3Fill:t.quadrant3Fill,quadrant4Fill:t.quadrant4Fill,quadrant1TextFill:t.quadrant1TextFill,quadrant2TextFill:t.quadrant2TextFill,quadrant3TextFill:t.quadrant3TextFill,quadrant4TextFill:t.quadrant4TextFill,quadrantPointFill:t.quadrantPointFill,quadrantPointTextFill:t.quadrantPointTextFill,quadrantXAxisTextFill:t.quadrantXAxisTextFill,quadrantYAxisTextFill:t.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:t.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:t.quadrantInternalBorderStrokeFill,quadrantTitleFill:t.quadrantTitleFill}),f.setData({titleText:(0,a.ab)()}),f.build()}(0,s.K)(p,"setQuadrant1Text"),(0,s.K)(y,"setQuadrant2Text"),(0,s.K)(T,"setQuadrant3Text"),(0,s.K)(m,"setQuadrant4Text"),(0,s.K)(_,"setXAxisLeftText"),(0,s.K)(q,"setXAxisRightText"),(0,s.K)(A,"setYAxisTopText"),(0,s.K)(b,"setYAxisBottomText"),(0,s.K)(k,"parseStyles"),(0,s.K)(S,"addPoint"),(0,s.K)(F,"addClass"),(0,s.K)(P,"setWidth"),(0,s.K)(C,"setHeight"),(0,s.K)(v,"getQuadrantData");var L={setWidth:P,setHeight:C,setQuadrant1Text:p,setQuadrant2Text:y,setQuadrant3Text:T,setQuadrant4Text:m,setXAxisLeftText:_,setXAxisRightText:q,setYAxisTopText:A,setYAxisBottomText:b,parseStyles:k,addPoint:S,addClass:F,getQuadrantData:v,clear:(0,s.K)(function(){f.clear(),(0,a.IU)()},"clear"),setAccTitle:a.SV,getAccTitle:a.iN,setDiagramTitle:a.ke,getDiagramTitle:a.ab,getAccDescription:a.m7,setAccDescription:a.EI},I={parser:l,db:L,renderer:{draw:(0,s.K)((t,e,i,l)=>{let o;function h(t){return"top"===t?"hanging":"middle"}function c(t){return"left"===t?"start":"middle"}function d(t){return`translate(${t.x}, ${t.y}) rotate(${t.rotation||0})`}(0,s.K)(h,"getDominantBaseLine"),(0,s.K)(c,"getTextAnchor"),(0,s.K)(d,"getTransformation");let u=(0,a.D7)();n.R.debug("Rendering quadrant chart\n"+t);let x=u.securityLevel;"sandbox"===x&&(o=(0,r.Ltv)("#i"+e));let g=("sandbox"===x?(0,r.Ltv)(o.nodes()[0].contentDocument.body):(0,r.Ltv)("body")).select(`[id="${e}"]`),f=g.append("g").attr("class","main"),p=u.quadrantChart?.chartWidth??500,y=u.quadrantChart?.chartHeight??500;(0,a.a$)(g,y,p,u.quadrantChart?.useMaxWidth??!0),g.attr("viewBox","0 0 "+p+" "+y),l.db.setHeight(y),l.db.setWidth(p);let T=l.db.getQuadrantData(),m=f.append("g").attr("class","quadrants"),_=f.append("g").attr("class","border"),q=f.append("g").attr("class","data-points"),A=f.append("g").attr("class","labels"),b=f.append("g").attr("class","title");T.title&&b.append("text").attr("x",0).attr("y",0).attr("fill",T.title.fill).attr("font-size",T.title.fontSize).attr("dominant-baseline",h(T.title.horizontalPos)).attr("text-anchor",c(T.title.verticalPos)).attr("transform",d(T.title)).text(T.title.text),T.borderLines&&_.selectAll("line").data(T.borderLines).enter().append("line").attr("x1",t=>t.x1).attr("y1",t=>t.y1).attr("x2",t=>t.x2).attr("y2",t=>t.y2).style("stroke",t=>t.strokeFill).style("stroke-width",t=>t.strokeWidth);let k=m.selectAll("g.quadrant").data(T.quadrants).enter().append("g").attr("class","quadrant");k.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),k.append("text").attr("x",0).attr("y",0).attr("fill",t=>t.text.fill).attr("font-size",t=>t.text.fontSize).attr("dominant-baseline",t=>h(t.text.horizontalPos)).attr("text-anchor",t=>c(t.text.verticalPos)).attr("transform",t=>d(t.text)).text(t=>t.text.text),A.selectAll("g.label").data(T.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(t=>t.text).attr("fill",t=>t.fill).attr("font-size",t=>t.fontSize).attr("dominant-baseline",t=>h(t.horizontalPos)).attr("text-anchor",t=>c(t.verticalPos)).attr("transform",t=>d(t));let S=q.selectAll("g.data-point").data(T.points).enter().append("g").attr("class","data-point");S.append("circle").attr("cx",t=>t.x).attr("cy",t=>t.y).attr("r",t=>t.radius).attr("fill",t=>t.fill).attr("stroke",t=>t.strokeColor).attr("stroke-width",t=>t.strokeWidth),S.append("text").attr("x",0).attr("y",0).text(t=>t.text.text).attr("fill",t=>t.text.fill).attr("font-size",t=>t.text.fontSize).attr("dominant-baseline",t=>h(t.text.horizontalPos)).attr("text-anchor",t=>c(t.text.verticalPos)).attr("transform",t=>d(t.text))},"draw")},styles:(0,s.K)(()=>"","styles")}}}]);
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7359],{47359:(t,e,i)=>{i.d(e,{diagram:()=>I});var a=i(90598),n=i(88084),s=i(63634),r=i(83903),l=function(){var t=(0,s.K)(function(t,e,i,a){for(i=i||{},a=t.length;a--;i[t[a]]=e);return i},"o"),e=[1,3],i=[1,4],a=[1,5],n=[1,6],r=[1,7],l=[1,4,5,10,12,13,14,15,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],o=[1,4,5,10,12,13,14,15,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],h=[55,56,57],c=[2,36],d=[1,37],u=[1,36],x=[1,38],g=[1,35],f=[1,43],p=[1,41],y=[1,45],T=[1,14],m=[1,23],_=[1,18],q=[1,19],A=[1,20],b=[1,21],k=[1,22],S=[1,24],F=[1,25],P=[1,26],C=[1,27],v=[1,28],L=[1,29],I=[1,32],E=[1,33],D=[1,34],z=[1,39],K=[1,40],U=[1,42],w=[1,44],N=[1,63],R=[1,62],B=[4,5,8,10,12,13,14,15,18,44,47,49,55,56,57,63,64,65,66,67],$=[1,66],W=[1,67],O=[1,68],Q=[1,69],X=[1,70],M=[1,71],Y=[1,72],H=[1,73],j=[1,74],G=[1,75],Z=[1,76],V=[1,77],J=[4,5,6,7,8,9,10,11,12,13,14,15,18],tt=[1,91],te=[1,92],ti=[1,93],ta=[1,100],tn=[1,94],ts=[1,97],tr=[1,95],tl=[1,96],to=[1,98],th=[1,99],tc=[1,103],td=[10,55,56,57],tu=[4,5,6,8,10,11,13,17,18,19,20,55,56,57],tx={trace:(0,s.K)(function(){},"trace"),yy:{},symbols_:{error:2,idStringToken:3,ALPHA:4,NUM:5,NODE_STRING:6,DOWN:7,MINUS:8,DEFAULT:9,COMMA:10,COLON:11,AMP:12,BRKT:13,MULT:14,UNICODE_TEXT:15,styleComponent:16,UNIT:17,SPACE:18,STYLE:19,PCT:20,idString:21,style:22,stylesOpt:23,classDefStatement:24,CLASSDEF:25,start:26,eol:27,QUADRANT:28,document:29,line:30,statement:31,axisDetails:32,quadrantDetails:33,points:34,title:35,title_value:36,acc_title:37,acc_title_value:38,acc_descr:39,acc_descr_value:40,acc_descr_multiline_value:41,section:42,text:43,point_start:44,point_x:45,point_y:46,class_name:47,"X-AXIS":48,"AXIS-TEXT-DELIMITER":49,"Y-AXIS":50,QUADRANT_1:51,QUADRANT_2:52,QUADRANT_3:53,QUADRANT_4:54,NEWLINE:55,SEMI:56,EOF:57,alphaNumToken:58,textNoTagsToken:59,STR:60,MD_STR:61,alphaNum:62,PUNCTUATION:63,PLUS:64,EQUALS:65,DOT:66,UNDERSCORE:67,$accept:0,$end:1},terminals_:{2:"error",4:"ALPHA",5:"NUM",6:"NODE_STRING",7:"DOWN",8:"MINUS",9:"DEFAULT",10:"COMMA",11:"COLON",12:"AMP",13:"BRKT",14:"MULT",15:"UNICODE_TEXT",17:"UNIT",18:"SPACE",19:"STYLE",20:"PCT",25:"CLASSDEF",28:"QUADRANT",35:"title",36:"title_value",37:"acc_title",38:"acc_title_value",39:"acc_descr",40:"acc_descr_value",41:"acc_descr_multiline_value",42:"section",44:"point_start",45:"point_x",46:"point_y",47:"class_name",48:"X-AXIS",49:"AXIS-TEXT-DELIMITER",50:"Y-AXIS",51:"QUADRANT_1",52:"QUADRANT_2",53:"QUADRANT_3",54:"QUADRANT_4",55:"NEWLINE",56:"SEMI",57:"EOF",60:"STR",61:"MD_STR",63:"PUNCTUATION",64:"PLUS",65:"EQUALS",66:"DOT",67:"UNDERSCORE"},productions_:[0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[21,1],[21,2],[22,1],[22,2],[23,1],[23,3],[24,5],[26,2],[26,2],[26,2],[29,0],[29,2],[30,2],[31,0],[31,1],[31,2],[31,1],[31,1],[31,1],[31,2],[31,2],[31,2],[31,1],[31,1],[34,4],[34,5],[34,5],[34,6],[32,4],[32,3],[32,2],[32,4],[32,3],[32,2],[33,2],[33,2],[33,2],[33,2],[27,1],[27,1],[27,1],[43,1],[43,2],[43,1],[43,1],[62,1],[62,2],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[59,1]],performAction:(0,s.K)(function(t,e,i,a,n,s,r){var l=s.length-1;switch(n){case 23:case 68:this.$=s[l];break;case 24:case 69:this.$=s[l-1]+""+s[l];break;case 26:this.$=s[l-1]+s[l];break;case 27:this.$=[s[l].trim()];break;case 28:s[l-2].push(s[l].trim()),this.$=s[l-2];break;case 29:this.$=s[l-4],a.addClass(s[l-2],s[l]);break;case 37:this.$=[];break;case 42:this.$=s[l].trim(),a.setDiagramTitle(this.$);break;case 43:this.$=s[l].trim(),a.setAccTitle(this.$);break;case 44:case 45:this.$=s[l].trim(),a.setAccDescription(this.$);break;case 46:a.addSection(s[l].substr(8)),this.$=s[l].substr(8);break;case 47:a.addPoint(s[l-3],"",s[l-1],s[l],[]);break;case 48:a.addPoint(s[l-4],s[l-3],s[l-1],s[l],[]);break;case 49:a.addPoint(s[l-4],"",s[l-2],s[l-1],s[l]);break;case 50:a.addPoint(s[l-5],s[l-4],s[l-2],s[l-1],s[l]);break;case 51:a.setXAxisLeftText(s[l-2]),a.setXAxisRightText(s[l]);break;case 52:s[l-1].text+=" ⟶ ",a.setXAxisLeftText(s[l-1]);break;case 53:a.setXAxisLeftText(s[l]);break;case 54:a.setYAxisBottomText(s[l-2]),a.setYAxisTopText(s[l]);break;case 55:s[l-1].text+=" ⟶ ",a.setYAxisBottomText(s[l-1]);break;case 56:a.setYAxisBottomText(s[l]);break;case 57:a.setQuadrant1Text(s[l]);break;case 58:a.setQuadrant2Text(s[l]);break;case 59:a.setQuadrant3Text(s[l]);break;case 60:a.setQuadrant4Text(s[l]);break;case 64:case 66:this.$={text:s[l],type:"text"};break;case 65:this.$={text:s[l-1].text+""+s[l],type:s[l-1].type};break;case 67:this.$={text:s[l],type:"markdown"}}},"anonymous"),table:[{18:e,26:1,27:2,28:i,55:a,56:n,57:r},{1:[3]},{18:e,26:8,27:2,28:i,55:a,56:n,57:r},{18:e,26:9,27:2,28:i,55:a,56:n,57:r},t(l,[2,33],{29:10}),t(o,[2,61]),t(o,[2,62]),t(o,[2,63]),{1:[2,30]},{1:[2,31]},t(h,c,{30:11,31:12,24:13,32:15,33:16,34:17,43:30,58:31,1:[2,32],4:d,5:u,10:x,12:g,13:f,14:p,15:y,18:T,25:m,35:_,37:q,39:A,41:b,42:k,48:S,50:F,51:P,52:C,53:v,54:L,60:I,61:E,63:D,64:z,65:K,66:U,67:w}),t(l,[2,34]),{27:46,55:a,56:n,57:r},t(h,[2,37]),t(h,c,{24:13,32:15,33:16,34:17,43:30,58:31,31:47,4:d,5:u,10:x,12:g,13:f,14:p,15:y,18:T,25:m,35:_,37:q,39:A,41:b,42:k,48:S,50:F,51:P,52:C,53:v,54:L,60:I,61:E,63:D,64:z,65:K,66:U,67:w}),t(h,[2,39]),t(h,[2,40]),t(h,[2,41]),{36:[1,48]},{38:[1,49]},{40:[1,50]},t(h,[2,45]),t(h,[2,46]),{18:[1,51]},{4:d,5:u,10:x,12:g,13:f,14:p,15:y,43:52,58:31,60:I,61:E,63:D,64:z,65:K,66:U,67:w},{4:d,5:u,10:x,12:g,13:f,14:p,15:y,43:53,58:31,60:I,61:E,63:D,64:z,65:K,66:U,67:w},{4:d,5:u,10:x,12:g,13:f,14:p,15:y,43:54,58:31,60:I,61:E,63:D,64:z,65:K,66:U,67:w},{4:d,5:u,10:x,12:g,13:f,14:p,15:y,43:55,58:31,60:I,61:E,63:D,64:z,65:K,66:U,67:w},{4:d,5:u,10:x,12:g,13:f,14:p,15:y,43:56,58:31,60:I,61:E,63:D,64:z,65:K,66:U,67:w},{4:d,5:u,10:x,12:g,13:f,14:p,15:y,43:57,58:31,60:I,61:E,63:D,64:z,65:K,66:U,67:w},{4:d,5:u,8:N,10:x,12:g,13:f,14:p,15:y,18:R,44:[1,58],47:[1,59],58:61,59:60,63:D,64:z,65:K,66:U,67:w},t(B,[2,64]),t(B,[2,66]),t(B,[2,67]),t(B,[2,70]),t(B,[2,71]),t(B,[2,72]),t(B,[2,73]),t(B,[2,74]),t(B,[2,75]),t(B,[2,76]),t(B,[2,77]),t(B,[2,78]),t(B,[2,79]),t(B,[2,80]),t(B,[2,81]),t(l,[2,35]),t(h,[2,38]),t(h,[2,42]),t(h,[2,43]),t(h,[2,44]),{3:65,4:$,5:W,6:O,7:Q,8:X,9:M,10:Y,11:H,12:j,13:G,14:Z,15:V,21:64},t(h,[2,53],{59:60,58:61,4:d,5:u,8:N,10:x,12:g,13:f,14:p,15:y,18:R,49:[1,78],63:D,64:z,65:K,66:U,67:w}),t(h,[2,56],{59:60,58:61,4:d,5:u,8:N,10:x,12:g,13:f,14:p,15:y,18:R,49:[1,79],63:D,64:z,65:K,66:U,67:w}),t(h,[2,57],{59:60,58:61,4:d,5:u,8:N,10:x,12:g,13:f,14:p,15:y,18:R,63:D,64:z,65:K,66:U,67:w}),t(h,[2,58],{59:60,58:61,4:d,5:u,8:N,10:x,12:g,13:f,14:p,15:y,18:R,63:D,64:z,65:K,66:U,67:w}),t(h,[2,59],{59:60,58:61,4:d,5:u,8:N,10:x,12:g,13:f,14:p,15:y,18:R,63:D,64:z,65:K,66:U,67:w}),t(h,[2,60],{59:60,58:61,4:d,5:u,8:N,10:x,12:g,13:f,14:p,15:y,18:R,63:D,64:z,65:K,66:U,67:w}),{45:[1,80]},{44:[1,81]},t(B,[2,65]),t(B,[2,82]),t(B,[2,83]),t(B,[2,84]),{3:83,4:$,5:W,6:O,7:Q,8:X,9:M,10:Y,11:H,12:j,13:G,14:Z,15:V,18:[1,82]},t(J,[2,23]),t(J,[2,1]),t(J,[2,2]),t(J,[2,3]),t(J,[2,4]),t(J,[2,5]),t(J,[2,6]),t(J,[2,7]),t(J,[2,8]),t(J,[2,9]),t(J,[2,10]),t(J,[2,11]),t(J,[2,12]),t(h,[2,52],{58:31,43:84,4:d,5:u,10:x,12:g,13:f,14:p,15:y,60:I,61:E,63:D,64:z,65:K,66:U,67:w}),t(h,[2,55],{58:31,43:85,4:d,5:u,10:x,12:g,13:f,14:p,15:y,60:I,61:E,63:D,64:z,65:K,66:U,67:w}),{46:[1,86]},{45:[1,87]},{4:tt,5:te,6:ti,8:ta,11:tn,13:ts,16:90,17:tr,18:tl,19:to,20:th,22:89,23:88},t(J,[2,24]),t(h,[2,51],{59:60,58:61,4:d,5:u,8:N,10:x,12:g,13:f,14:p,15:y,18:R,63:D,64:z,65:K,66:U,67:w}),t(h,[2,54],{59:60,58:61,4:d,5:u,8:N,10:x,12:g,13:f,14:p,15:y,18:R,63:D,64:z,65:K,66:U,67:w}),t(h,[2,47],{22:89,16:90,23:101,4:tt,5:te,6:ti,8:ta,11:tn,13:ts,17:tr,18:tl,19:to,20:th}),{46:[1,102]},t(h,[2,29],{10:tc}),t(td,[2,27],{16:104,4:tt,5:te,6:ti,8:ta,11:tn,13:ts,17:tr,18:tl,19:to,20:th}),t(tu,[2,25]),t(tu,[2,13]),t(tu,[2,14]),t(tu,[2,15]),t(tu,[2,16]),t(tu,[2,17]),t(tu,[2,18]),t(tu,[2,19]),t(tu,[2,20]),t(tu,[2,21]),t(tu,[2,22]),t(h,[2,49],{10:tc}),t(h,[2,48],{22:89,16:90,23:105,4:tt,5:te,6:ti,8:ta,11:tn,13:ts,17:tr,18:tl,19:to,20:th}),{4:tt,5:te,6:ti,8:ta,11:tn,13:ts,16:90,17:tr,18:tl,19:to,20:th,22:106},t(tu,[2,26]),t(h,[2,50],{10:tc}),t(td,[2,28],{16:104,4:tt,5:te,6:ti,8:ta,11:tn,13:ts,17:tr,18:tl,19:to,20:th})],defaultActions:{8:[2,30],9:[2,31]},parseError:(0,s.K)(function(t,e){if(e.recoverable)this.trace(t);else{var i=Error(t);throw i.hash=e,i}},"parseError"),parse:(0,s.K)(function(t){var e=this,i=[0],a=[],n=[null],r=[],l=this.table,o="",h=0,c=0,d=0,u=r.slice.call(arguments,1),x=Object.create(this.lexer),g={};for(var f in this.yy)Object.prototype.hasOwnProperty.call(this.yy,f)&&(g[f]=this.yy[f]);x.setInput(t,g),g.lexer=x,g.parser=this,void 0===x.yylloc&&(x.yylloc={});var p=x.yylloc;r.push(p);var y=x.options&&x.options.ranges;function T(){var t;return"number"!=typeof(t=a.pop()||x.lex()||1)&&(t instanceof Array&&(t=(a=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.parseError?this.parseError=g.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,s.K)(function(t){i.length=i.length-2*t,n.length=n.length-t,r.length=r.length-t},"popStack"),(0,s.K)(T,"lex");for(var m,_,q,A,b,k,S,F,P,C={};;){if(q=i[i.length-1],this.defaultActions[q]?A=this.defaultActions[q]:(null==m&&(m=T()),A=l[q]&&l[q][m]),void 0===A||!A.length||!A[0]){var v="";for(k in P=[],l[q])this.terminals_[k]&&k>2&&P.push("'"+this.terminals_[k]+"'");v=x.showPosition?"Parse error on line "+(h+1)+":\n"+x.showPosition()+"\nExpecting "+P.join(", ")+", got '"+(this.terminals_[m]||m)+"'":"Parse error on line "+(h+1)+": Unexpected "+(1==m?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(v,{text:x.match,token:this.terminals_[m]||m,line:x.yylineno,loc:p,expected:P})}if(A[0]instanceof Array&&A.length>1)throw Error("Parse Error: multiple actions possible at state: "+q+", token: "+m);switch(A[0]){case 1:i.push(m),n.push(x.yytext),r.push(x.yylloc),i.push(A[1]),m=null,_?(m=_,_=null):(c=x.yyleng,o=x.yytext,h=x.yylineno,p=x.yylloc,d>0&&d--);break;case 2:if(S=this.productions_[A[1]][1],C.$=n[n.length-S],C._$={first_line:r[r.length-(S||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(S||1)].first_column,last_column:r[r.length-1].last_column},y&&(C._$.range=[r[r.length-(S||1)].range[0],r[r.length-1].range[1]]),void 0!==(b=this.performAction.apply(C,[o,c,h,g,A[1],n,r].concat(u))))return b;S&&(i=i.slice(0,-1*S*2),n=n.slice(0,-1*S),r=r.slice(0,-1*S)),i.push(this.productions_[A[1]][0]),n.push(C.$),r.push(C._$),F=l[i[i.length-2]][i[i.length-1]],i.push(F);break;case 3:return!0}}return!0},"parse")};function tg(){this.yy={}}return tx.lexer={EOF:1,parseError:(0,s.K)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,s.K)(function(t,e){return this.yy=e||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,s.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,s.K)(function(t){var e=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var a=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),i.length-1&&(this.yylineno-=i.length-1);var n=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:i?(i.length===a.length?this.yylloc.first_column:0)+a[a.length-i.length].length-i[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,s.K)(function(){return this._more=!0,this},"more"),reject:(0,s.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,s.K)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,s.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,s.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,s.K)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,s.K)(function(t,e){var i,a,n;if(this.options.backtrack_lexer&&(n={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&&(n.yylloc.range=this.yylloc.range.slice(0))),(a=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=a.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:a?a[a.length-1].length-a[a.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],i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack)for(var s in n)this[s]=n[s];return!1},"test_match"),next:(0,s.K)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,i,a,n=this._currentRules(),s=0;s<n.length;s++)if((i=this._input.match(this.rules[n[s]]))&&(!e||i[0].length>e[0].length)){if(e=i,a=s,this.options.backtrack_lexer){if(!1!==(t=this.test_match(i,n[s])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[a]))&&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,s.K)(function(){var t=this.next();return t||this.lex()},"lex"),begin:(0,s.K)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,s.K)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,s.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,s.K)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,s.K)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,s.K)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,s.K)(function(t,e,i,a){switch(i){case 0:case 1:case 3:break;case 2:return 55;case 4:return this.begin("title"),35;case 5:return this.popState(),"title_value";case 6:return this.begin("acc_title"),37;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),39;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:case 23:case 25:case 31:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 48;case 14:return 50;case 15:return 49;case 16:return 51;case 17:return 52;case 18:return 53;case 19:return 54;case 20:return 25;case 21:this.begin("md_string");break;case 22:return"MD_STR";case 24:this.begin("string");break;case 26:return"STR";case 27:this.begin("class_name");break;case 28:return this.popState(),47;case 29:return this.begin("point_start"),44;case 30:return this.begin("point_x"),45;case 32:this.popState(),this.begin("point_y");break;case 33:return this.popState(),46;case 34:return 28;case 35:return 4;case 36:return 15;case 37:return 11;case 38:return 64;case 39:return 10;case 40:case 41:return 65;case 42:return 14;case 43:return 13;case 44:return 67;case 45:return 66;case 46:return 12;case 47:return 8;case 48:return 5;case 49:return 18;case 50:return 56;case 51:return 63;case 52:return 57}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:classDef\b)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?::::)/i,/^(?:^\w+)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?:[^\x00-\x7F]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{class_name:{rules:[28],inclusive:!1},point_y:{rules:[33],inclusive:!1},point_x:{rules:[32],inclusive:!1},point_start:{rules:[30,31],inclusive:!1},acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},title:{rules:[5],inclusive:!1},md_string:{rules:[22,23],inclusive:!1},string:{rules:[25,26],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,21,24,27,29,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],inclusive:!0}}},(0,s.K)(tg,"Parser"),tg.prototype=tx,tx.Parser=tg,new tg}();l.parser=l;var o=(0,a.P$)(),h=class{constructor(){this.classes=new Map,this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}static{(0,s.K)(this,"QuadrantBuilder")}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:a.UI.quadrantChart?.chartWidth||500,chartWidth:a.UI.quadrantChart?.chartHeight||500,titlePadding:a.UI.quadrantChart?.titlePadding||10,titleFontSize:a.UI.quadrantChart?.titleFontSize||20,quadrantPadding:a.UI.quadrantChart?.quadrantPadding||5,xAxisLabelPadding:a.UI.quadrantChart?.xAxisLabelPadding||5,yAxisLabelPadding:a.UI.quadrantChart?.yAxisLabelPadding||5,xAxisLabelFontSize:a.UI.quadrantChart?.xAxisLabelFontSize||16,yAxisLabelFontSize:a.UI.quadrantChart?.yAxisLabelFontSize||16,quadrantLabelFontSize:a.UI.quadrantChart?.quadrantLabelFontSize||16,quadrantTextTopPadding:a.UI.quadrantChart?.quadrantTextTopPadding||5,pointTextPadding:a.UI.quadrantChart?.pointTextPadding||5,pointLabelFontSize:a.UI.quadrantChart?.pointLabelFontSize||12,pointRadius:a.UI.quadrantChart?.pointRadius||5,xAxisPosition:a.UI.quadrantChart?.xAxisPosition||"top",yAxisPosition:a.UI.quadrantChart?.yAxisPosition||"left",quadrantInternalBorderStrokeWidth:a.UI.quadrantChart?.quadrantInternalBorderStrokeWidth||1,quadrantExternalBorderStrokeWidth:a.UI.quadrantChart?.quadrantExternalBorderStrokeWidth||2}}getDefaultThemeConfig(){return{quadrant1Fill:o.quadrant1Fill,quadrant2Fill:o.quadrant2Fill,quadrant3Fill:o.quadrant3Fill,quadrant4Fill:o.quadrant4Fill,quadrant1TextFill:o.quadrant1TextFill,quadrant2TextFill:o.quadrant2TextFill,quadrant3TextFill:o.quadrant3TextFill,quadrant4TextFill:o.quadrant4TextFill,quadrantPointFill:o.quadrantPointFill,quadrantPointTextFill:o.quadrantPointTextFill,quadrantXAxisTextFill:o.quadrantXAxisTextFill,quadrantYAxisTextFill:o.quadrantYAxisTextFill,quadrantTitleFill:o.quadrantTitleFill,quadrantInternalBorderStrokeFill:o.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:o.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),this.classes=new Map,n.R.info("clear called")}setData(t){this.data={...this.data,...t}}addPoints(t){this.data.points=[...t,...this.data.points]}addClass(t,e){this.classes.set(t,e)}setConfig(t){n.R.trace("setConfig called with: ",t),this.config={...this.config,...t}}setThemeConfig(t){n.R.trace("setThemeConfig called with: ",t),this.themeConfig={...this.themeConfig,...t}}calculateSpace(t,e,i,a){let n=2*this.config.xAxisLabelPadding+this.config.xAxisLabelFontSize,s={top:"top"===t&&e?n:0,bottom:"bottom"===t&&e?n:0},r=2*this.config.yAxisLabelPadding+this.config.yAxisLabelFontSize,l={left:"left"===this.config.yAxisPosition&&i?r:0,right:"right"===this.config.yAxisPosition&&i?r:0},o=this.config.titleFontSize+2*this.config.titlePadding,h={top:a?o:0},c=this.config.quadrantPadding+l.left,d=this.config.quadrantPadding+s.top+h.top,u=this.config.chartWidth-2*this.config.quadrantPadding-l.left-l.right,x=this.config.chartHeight-2*this.config.quadrantPadding-s.top-s.bottom-h.top;return{xAxisSpace:s,yAxisSpace:l,titleSpace:h,quadrantSpace:{quadrantLeft:c,quadrantTop:d,quadrantWidth:u,quadrantHalfWidth:u/2,quadrantHeight:x,quadrantHalfHeight:x/2}}}getAxisLabels(t,e,i,a){let{quadrantSpace:n,titleSpace:s}=a,{quadrantHalfHeight:r,quadrantHeight:l,quadrantLeft:o,quadrantHalfWidth:h,quadrantTop:c,quadrantWidth:d}=n,u=!!this.data.xAxisRightText,x=!!this.data.yAxisTopText,g=[];return this.data.xAxisLeftText&&e&&g.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:o+(u?h/2:0),y:"top"===t?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+c+l+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:u?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&e&&g.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:o+h+(u?h/2:0),y:"top"===t?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+c+l+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:u?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&i&&g.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:"left"===this.config.yAxisPosition?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+o+d+this.config.quadrantPadding,y:c+l-(x?r/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:x?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&i&&g.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:"left"===this.config.yAxisPosition?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+o+d+this.config.quadrantPadding,y:c+r-(x?r/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:x?"center":"left",horizontalPos:"top",rotation:-90}),g}getQuadrants(t){let{quadrantSpace:e}=t,{quadrantHalfHeight:i,quadrantLeft:a,quadrantHalfWidth:n,quadrantTop:s}=e,r=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a+n,y:s,width:n,height:i,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a,y:s,width:n,height:i,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a,y:s+i,width:n,height:i,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:a+n,y:s+i,width:n,height:i,fill:this.themeConfig.quadrant4Fill}];for(let t of r)t.text.x=t.x+t.width/2,0===this.data.points.length?(t.text.y=t.y+t.height/2,t.text.horizontalPos="middle"):(t.text.y=t.y+this.config.quadrantTextTopPadding,t.text.horizontalPos="top");return r}getQuadrantPoints(t){let{quadrantSpace:e}=t,{quadrantHeight:i,quadrantLeft:a,quadrantTop:n,quadrantWidth:s}=e,l=(0,r.m4Y)().domain([0,1]).range([a,s+a]),o=(0,r.m4Y)().domain([0,1]).range([i+n,n]);return this.data.points.map(t=>{let e=this.classes.get(t.className);return e&&(t={...e,...t}),{x:l(t.x),y:o(t.y),fill:t.color??this.themeConfig.quadrantPointFill,radius:t.radius??this.config.pointRadius,text:{text:t.text,fill:this.themeConfig.quadrantPointTextFill,x:l(t.x),y:o(t.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0},strokeColor:t.strokeColor??this.themeConfig.quadrantPointFill,strokeWidth:t.strokeWidth??"0px"}})}getBorders(t){let e=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:i}=t,{quadrantHalfHeight:a,quadrantHeight:n,quadrantLeft:s,quadrantHalfWidth:r,quadrantTop:l,quadrantWidth:o}=i;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-e,y1:l,x2:s+o+e,y2:l},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s+o,y1:l+e,x2:s+o,y2:l+n-e},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-e,y1:l+n,x2:s+o+e,y2:l+n},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s,y1:l+e,x2:s,y2:l+n-e},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+r,y1:l+e,x2:s+r,y2:l+n-e},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+e,y1:l+a,x2:s+o-e,y2:l+a}]}getTitle(t){if(t)return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}build(){let t=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),e=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),i=this.config.showTitle&&!!this.data.titleText,a=this.data.points.length>0?"bottom":this.config.xAxisPosition,n=this.calculateSpace(a,t,e,i);return{points:this.getQuadrantPoints(n),quadrants:this.getQuadrants(n),axisLabels:this.getAxisLabels(a,t,e,n),borderLines:this.getBorders(n),title:this.getTitle(i)}}},c=class extends Error{static{(0,s.K)(this,"InvalidStyleError")}constructor(t,e,i){super(`value for ${t} ${e} is invalid, please use a valid ${i}`),this.name="InvalidStyleError"}};function d(t){return!/^#?([\dA-Fa-f]{6}|[\dA-Fa-f]{3})$/.test(t)}function u(t){return!/^\d+$/.test(t)}function x(t){return!/^\d+px$/.test(t)}function g(t){return(0,a.jZ)(t.trim(),(0,a.D7)())}(0,s.K)(d,"validateHexCode"),(0,s.K)(u,"validateNumber"),(0,s.K)(x,"validateSizeInPixels"),(0,s.K)(g,"textSanitizer");var f=new h;function p(t){f.setData({quadrant1Text:g(t.text)})}function y(t){f.setData({quadrant2Text:g(t.text)})}function T(t){f.setData({quadrant3Text:g(t.text)})}function m(t){f.setData({quadrant4Text:g(t.text)})}function _(t){f.setData({xAxisLeftText:g(t.text)})}function q(t){f.setData({xAxisRightText:g(t.text)})}function A(t){f.setData({yAxisTopText:g(t.text)})}function b(t){f.setData({yAxisBottomText:g(t.text)})}function k(t){let e={};for(let i of t){let[t,a]=i.trim().split(/\s*:\s*/);if("radius"===t){if(u(a))throw new c(t,a,"number");e.radius=parseInt(a)}else if("color"===t){if(d(a))throw new c(t,a,"hex code");e.color=a}else if("stroke-color"===t){if(d(a))throw new c(t,a,"hex code");e.strokeColor=a}else if("stroke-width"===t){if(x(a))throw new c(t,a,"number of pixels (eg. 10px)");e.strokeWidth=a}else throw Error(`style named ${t} is not supported.`)}return e}function S(t,e,i,a,n){let s=k(n);f.addPoints([{x:i,y:a,text:g(t.text),className:e,...s}])}function F(t,e){f.addClass(t,k(e))}function P(t){f.setConfig({chartWidth:t})}function C(t){f.setConfig({chartHeight:t})}function v(){let{themeVariables:t,quadrantChart:e}=(0,a.D7)();return e&&f.setConfig(e),f.setThemeConfig({quadrant1Fill:t.quadrant1Fill,quadrant2Fill:t.quadrant2Fill,quadrant3Fill:t.quadrant3Fill,quadrant4Fill:t.quadrant4Fill,quadrant1TextFill:t.quadrant1TextFill,quadrant2TextFill:t.quadrant2TextFill,quadrant3TextFill:t.quadrant3TextFill,quadrant4TextFill:t.quadrant4TextFill,quadrantPointFill:t.quadrantPointFill,quadrantPointTextFill:t.quadrantPointTextFill,quadrantXAxisTextFill:t.quadrantXAxisTextFill,quadrantYAxisTextFill:t.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:t.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:t.quadrantInternalBorderStrokeFill,quadrantTitleFill:t.quadrantTitleFill}),f.setData({titleText:(0,a.ab)()}),f.build()}(0,s.K)(p,"setQuadrant1Text"),(0,s.K)(y,"setQuadrant2Text"),(0,s.K)(T,"setQuadrant3Text"),(0,s.K)(m,"setQuadrant4Text"),(0,s.K)(_,"setXAxisLeftText"),(0,s.K)(q,"setXAxisRightText"),(0,s.K)(A,"setYAxisTopText"),(0,s.K)(b,"setYAxisBottomText"),(0,s.K)(k,"parseStyles"),(0,s.K)(S,"addPoint"),(0,s.K)(F,"addClass"),(0,s.K)(P,"setWidth"),(0,s.K)(C,"setHeight"),(0,s.K)(v,"getQuadrantData");var L={setWidth:P,setHeight:C,setQuadrant1Text:p,setQuadrant2Text:y,setQuadrant3Text:T,setQuadrant4Text:m,setXAxisLeftText:_,setXAxisRightText:q,setYAxisTopText:A,setYAxisBottomText:b,parseStyles:k,addPoint:S,addClass:F,getQuadrantData:v,clear:(0,s.K)(function(){f.clear(),(0,a.IU)()},"clear"),setAccTitle:a.SV,getAccTitle:a.iN,setDiagramTitle:a.ke,getDiagramTitle:a.ab,getAccDescription:a.m7,setAccDescription:a.EI},I={parser:l,db:L,renderer:{draw:(0,s.K)((t,e,i,l)=>{let o;function h(t){return"top"===t?"hanging":"middle"}function c(t){return"left"===t?"start":"middle"}function d(t){return`translate(${t.x}, ${t.y}) rotate(${t.rotation||0})`}(0,s.K)(h,"getDominantBaseLine"),(0,s.K)(c,"getTextAnchor"),(0,s.K)(d,"getTransformation");let u=(0,a.D7)();n.R.debug("Rendering quadrant chart\n"+t);let x=u.securityLevel;"sandbox"===x&&(o=(0,r.Ltv)("#i"+e));let g=("sandbox"===x?(0,r.Ltv)(o.nodes()[0].contentDocument.body):(0,r.Ltv)("body")).select(`[id="${e}"]`),f=g.append("g").attr("class","main"),p=u.quadrantChart?.chartWidth??500,y=u.quadrantChart?.chartHeight??500;(0,a.a$)(g,y,p,u.quadrantChart?.useMaxWidth??!0),g.attr("viewBox","0 0 "+p+" "+y),l.db.setHeight(y),l.db.setWidth(p);let T=l.db.getQuadrantData(),m=f.append("g").attr("class","quadrants"),_=f.append("g").attr("class","border"),q=f.append("g").attr("class","data-points"),A=f.append("g").attr("class","labels"),b=f.append("g").attr("class","title");T.title&&b.append("text").attr("x",0).attr("y",0).attr("fill",T.title.fill).attr("font-size",T.title.fontSize).attr("dominant-baseline",h(T.title.horizontalPos)).attr("text-anchor",c(T.title.verticalPos)).attr("transform",d(T.title)).text(T.title.text),T.borderLines&&_.selectAll("line").data(T.borderLines).enter().append("line").attr("x1",t=>t.x1).attr("y1",t=>t.y1).attr("x2",t=>t.x2).attr("y2",t=>t.y2).style("stroke",t=>t.strokeFill).style("stroke-width",t=>t.strokeWidth);let k=m.selectAll("g.quadrant").data(T.quadrants).enter().append("g").attr("class","quadrant");k.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),k.append("text").attr("x",0).attr("y",0).attr("fill",t=>t.text.fill).attr("font-size",t=>t.text.fontSize).attr("dominant-baseline",t=>h(t.text.horizontalPos)).attr("text-anchor",t=>c(t.text.verticalPos)).attr("transform",t=>d(t.text)).text(t=>t.text.text),A.selectAll("g.label").data(T.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(t=>t.text).attr("fill",t=>t.fill).attr("font-size",t=>t.fontSize).attr("dominant-baseline",t=>h(t.horizontalPos)).attr("text-anchor",t=>c(t.verticalPos)).attr("transform",t=>d(t));let S=q.selectAll("g.data-point").data(T.points).enter().append("g").attr("class","data-point");S.append("circle").attr("cx",t=>t.x).attr("cy",t=>t.y).attr("r",t=>t.radius).attr("fill",t=>t.fill).attr("stroke",t=>t.strokeColor).attr("stroke-width",t=>t.strokeWidth),S.append("text").attr("x",0).attr("y",0).text(t=>t.text.text).attr("fill",t=>t.text.fill).attr("font-size",t=>t.text.fontSize).attr("dominant-baseline",t=>h(t.text.horizontalPos)).attr("text-anchor",t=>c(t.text.verticalPos)).attr("transform",t=>d(t.text))},"draw")},styles:(0,s.K)(()=>"","styles")}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7369],{37369:(e,a,o)=>{o.r(a),o.d(a,{default:()=>r});let r={common:{statusIdle:"Idle",statusWorking:"Working",statusBlocked:"Needs input",statusDone:"Your turn",loading:"Cargando...",cancel:"Cancelar",confirm:"Confirmar",save:"Guardar",delete:"Eliminar",close:"Cerrar",back:"Atr\xe1s",edit:"Editar",rename:"Renombrar",remove:"Quitar",open:"Abrir",yes:"S\xed",no:"No",ok:"OK",error:"Error",success:"\xc9xito",failed:"Fall\xf3",retry:"Reintentar",refresh:"Actualizar",clipboard:"Clipboard",clipboardCopy:"Copy",clipboardEmpty:"Clipboard is empty",search:"Buscar",create:"Crear",new:"Nuevo",add:"A\xf1adir",copy:"Copiar",copied:"Copiado",download:"Descargar",upload:"Subir",enabled:"Activado",disabled:"Desactivado",on:"activado",off:"desactivado",minute:"min",hour:"h",day:"d",minutesAgo:"Hace {n} min",hoursAgo:"Hace {n} horas",daysAgo:"Hace {n} d\xedas"},login:{tagline:"Accede a tu terminal desde cualquier lugar",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:"Clave de acceso",placeholder:"sk-xxx... o clave de un solo uso (ABC123)",rememberKey:"Recordar esta clave",connect:"Conectar",connecting:"Conectando...",authenticating:"Autenticando con 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:"Claves guardadas",login:"Iniciar sesi\xf3n",lastLogin:"\xdaltimo inicio de sesi\xf3n",namePlaceholder:"Name this key (optional)",rename:"Rename",deleteKeyTitle:"Delete key",deleteKeyConfirm:'Are you sure you want to delete "{name}"?',justNow:"Ahora mismo",minutesAgo:"Hace {n}m",hoursAgo:"Hace {n}h",daysAgo:"Hace {n}d",tapToScan:"Toca para escanear",orEnterManually:"o introduce la clave manualmente",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:"Inicio",docs:"Documentaci\xf3n"},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:"Men\xfa",language:"Idioma",theme:"Tema",notifications:"Notificaciones",webgl:"GPU Render (Faster)",webglHint:"Desact\xedvalo si el texto se ve mal",notificationsHint:"Notify when agent finishes",orientation:"Orientaci\xf3n de pantalla",orientationPortrait:"Vertical",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:"Sitios",commandNotes:"Notas de comandos",community:"Comunidad",installApp:"Instalar aplicaci\xf3n",codespace:"Codespace",logout:"Cerrar sesi\xf3n",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:"Recargar app",remoteDesktop:"Escritorio remoto",settings:"Configuraci\xf3n",enablePush:"Activar notificaciones push",disablePush:"Desactivar notificaciones push",pushHint:"Activa las notificaciones push para recibir alertas cuando la IA complete tareas",pushActiveHint:"Push notifications are on for this device. You'll be alerted when AI completes tasks.",versionMismatch:"El agente {version} est\xe1 desactualizado",versionMismatchHint:"Algunas funciones pueden no funcionar. Ejecuta:",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\xf3n"},workspace:{loading:"Cargando...",logoutTitle:"Cerrar sesi\xf3n",logoutMessage:"\xbfSeguro que quieres cerrar sesi\xf3n?",failedCreateSession:"Error al crear la sesi\xf3n: {error}",failedRenameSession:"Error al renombrar la sesi\xf3n: {error}"},sessions:{headerTitle:"9remote.cc",connected:"Conectado",disconnected:"Desconectado",codespaceStopped:"Codespace detenido",placeholder:"Nombre del terminal (opcional)",newButton:"+ Nuevo",empty:"No hay sesiones activas",emptyHint:"Crea una nueva sesi\xf3n para empezar",created:"Creado {time}",deleteTitle:"Eliminar sesi\xf3n",deleteMessage:'\xbfSeguro que quieres eliminar "{name}"?',editName:"Editar nombre",newTerminal:"Nuevo terminal",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:"Atr\xe1s",menu:"Men\xfa",newTerminal:"Nuevo terminal",remoteDesktop:"Escritorio remoto",defaultName:"Term"},files:{selectWorkspace:"Seleccionar espacio de trabajo",recentWorkspaces:"Espacios de trabajo recientes",home:"Inicio",root:"Ra\xedz",drive:"Unidad {letter}",codespaces:"Codespaces",removeRecent:"Quitar de recientes",removeTitle:"Quitar espacio de trabajo",removeMessage:'\xbfQuitar "{name}" de los espacios de trabajo recientes?',setAsWorkspace:"Establecer como espacio de trabajo",openFolder:"Abrir carpeta",newFile:"Nuevo archivo",newFolder:"Nueva carpeta",rename:"Renombrar",delete:"Eliminar",deleteFile:"Eliminar archivo",deleteFolder:"Eliminar carpeta",deleteFileMessage:'\xbfEliminar "{name}"?',deleteFolderMessage:'\xbfEliminar la carpeta "{name}" y todo su contenido?',emptyFolder:"Carpeta vac\xeda",git:"Git",parent:"Carpeta superior",workspace:"Espacio de trabajo",failedLoad:"Error al cargar: {error}",failedDelete:"Error al eliminar: {error}",failedCreate:"Error al crear: {error}",failedRename:"Error al renombrar: {error}",enterName:"Introduce el nombre",confirmRename:"Renombrar a:",setWorkspace:"Establecer espacio de trabajo",setAsWorkspaceTitle:"Establecer como espacio de trabajo",switchWorkspace:"Cambiar espacio de trabajo",searchFiles:"Buscar archivos",toggleHidden:"Mostrar/ocultar archivos ocultos",searchPlaceholder:"Buscar archivos...",searching:"Buscando...",noFilesFound:"No se encontraron archivos",noGitRepo:"No hay repositorio Git",cannotOpenBinary:"No se puede abrir el archivo binario",createNew:"Crear nuevo",file:"Archivo",folder:"Carpeta",placeholderFile:"filename.js",placeholderFolder:"nombre-carpeta",pickFile:"Choose files",pickFolder:"Choose folder",copyPath:"Copiar ruta",copyRelPath:"Copy Relative Path",copyName:"Copy Filename",delete:"Eliminar",rename:"Renombrar",deleteConfirmTitle:"Eliminar",deleteConfirmMessage:'\xbfEliminar "{name}"?'},editor:{save:"Guardar",saving:"Guardando...",saved:"Guardado",unsaved:"Cambios sin guardar",close:"Cerrar",discard:"Descartar",discardTitle:"Descartar cambios",discardMessage:"Tienes cambios sin guardar. \xbfDescartarlos?",unsavedTitle:"Save changes to {name}?",unsavedBody:"Your changes will be lost if you don't save them.",failedLoad:"Error al cargar el archivo: {error}",failedSave:"Error al guardar: {error}",openFull:"Open in full editor",artifact:"Artifact",readOnly:"Solo lectura",line:"L\xednea",column:"Columna",gitDiff:"Git Diff",typeText:"Escribe el texto e inserta...",insert:"Insertar",statusModified:"Modificado",statusAdded:"A\xf1adido",statusUntracked:"Sin seguimiento"},git:{title:"Git",branch:"Rama",changes:"Cambios",staged:"Preparados",unstaged:"Sin preparar",untracked:"Sin seguimiento",commit:"Confirmar",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:"Mensaje del commit",push:"Push",pull:"Pull",fetch:"Fetch",stage:"Preparar",stageAll:"Preparar todo",unstage:"Quitar de preparados",discard:"Descartar",discardChanges:"Descartar cambios",discardMessage:'\xbfDescartar los cambios en "{name}"?',noChanges:"Sin cambios",diff:"Diff",pushing:"Enviando...",pulling:"Obteniendo...",committing:"Confirmando...",failedCommit:"Error al confirmar: {error}",failedPush:"Error en push: {error}",failedPull:"Error en pull: {error}",status:"Estado",diffTab:"Diff",modified:"Modificado",added:"A\xf1adido",deleted:"Eliminado",untrackedTitle:"Sin seguimiento",openFile:"Abrir archivo",discardChangesTitle:"Descartar cambios",discardConfirmTitle:"Descartar cambios",discardConfirmDelete:'\xbfSeguro que quieres eliminar "{name}"? Esto no se puede deshacer.',discardConfirmDiscard:'\xbfSeguro que quieres descartar los cambios en "{name}"? Esto no se puede deshacer.'},remote:{title:"Escritorio remoto",connecting:"Conectando...",disconnected:"Desconectado",fullscreen:"Pantalla completa",exitFullscreen:"Salir de pantalla completa",receivingImage:"Receiving screen…",keyboard:"Teclado",mouse:"Rat\xf3n",quality:"Calidad",fps:"FPS",debug:"Depurar",help:"Ayuda",close:"Cerrar",sendKey:"Enviar tecla",helpTitle:"Ayuda del escritorio remoto",notAvailable:"El escritorio remoto no est\xe1 disponible",customizeKeys:"Personalizar teclas",back:"Atr\xe1s",resetZoom:"Restablecer zoom",refresh:"Actualizar",rectangleSelection:"Selecci\xf3n rectangular",handMode:"Modo mano",toggleKeyboard:"Alternar teclado nativo",hideControls:"Hide controls",showControls:"Show controls",textBatchInput:"Entrada de texto por lotes",extraKeys:"Teclas extra",customizeRemoteKeys:"Personalizar teclas remotas",exitRemote:"Salir del escritorio remoto",debugTitle:"Estad\xedsticas de depuraci\xf3n",minimize:"Minimizar",transport:"Transporte",latency:"Latencia",tilesPerSec:"Mosaicos/s",bandwidth:"Ancho de banda",clearStats:"Borrar estad\xedsticas",lockTitle:"Windows est\xe1 bloqueado",lockGrantDesc:'Activa "Desbloquear PC remotamente" en 9remote host de este PC.',lockDesc:"Introduce el PIN o la contrase\xf1a de Windows para este equipo",lockPlaceholder:"PIN o contrase\xf1a de Windows",unlock:"Desbloquear",unlocking:"Desbloqueando…",unlockFailed:"Error al desbloquear — revisa tu PIN/contrase\xf1a e int\xe9ntalo de nuevo."},remoteHelp:{modePc:"PC / Rat\xf3n",modeTrackpad:"T\xe1ctil \xb7 Trackpad",modeDirect:"T\xe1ctil \xb7 Directo",mouseTitle:"Rat\xf3n",keyboardTitle:"Teclado",gesturesTrackpadTitle:"Gestos (Trackpad ✋)",gesturesDirectTitle:"Gestos (Directo)",toolbarTitle:"Barra de herramientas",mouseClickKey:"Clic / Arrastrar",mouseClickDesc:"Clic izquierdo, arrastrar para seleccionar/mover",mouseRightKey:"Clic derecho",mouseRightDesc:"Men\xfa contextual en remoto",mouseWheelKey:"Rueda",mouseWheelDesc:"Desplazar remoto (Shift + Rueda = horizontal)",mouseDoubleKey:"Doble clic",mouseDoubleDesc:"Doble clic en remoto",keyPhysicalKey:"Teclas f\xedsicas",keyPhysicalDesc:"Enviadas directamente (Tab, teclas F, etc. capturadas)",keyModifierKey:"Ctrl / Alt / Shift / ⌘",keyModifierDesc:"Modificador persistente — combina con la siguiente tecla",trackpadSwipeKey:"Deslizar 1 dedo",trackpadSwipeDesc:"Mover cursor virtual",trackpadTapKey:"Toque con 1 dedo",trackpadTapDesc:"Clic izquierdo en el cursor",trackpad2TapKey:"Toque con 2 dedos",trackpad2TapDesc:"Clic derecho en el cursor",trackpad2SwipeKey:"Deslizar 2 dedos",trackpad2SwipeDesc:"Desplazar en la posici\xf3n del cursor",trackpadPinchKey:"Pellizco con 2 dedos",trackpadPinchDesc:"Zoom del lienzo",trackpadScrollLockKey:"Mantener + arrastrar",trackpadScrollLockDesc:"Mant\xe9n para fijar el scroll, arrastra en cualquier direcci\xf3n",directTapKey:"Toque con 1 dedo",directTapDesc:"Clic en la posici\xf3n del toque",directLongKey:"Pulsaci\xf3n larga 1 dedo",directLongDesc:"Clic derecho",directDoubleKey:"Doble toque 1 dedo",directDoubleDesc:"Doble clic",directScrollKey:"Deslizar 2 dedos",directScrollDesc:"Desplazar remoto",directPinchKey:"Pellizco con 2 dedos",directPinchDesc:"Zoom del lienzo",directPanKey:"Arrastrar 1 dedo (zoom>1)",directPanDesc:"Desplazar lienzo",toolbarHandDesc:"Mantener clic izquierdo (modo arrastre) — toca de nuevo para soltar",toolbarMouseDirectDesc:"Cambiar a modo directo",toolbarMouseTrackpadDesc:"Cambiar a Trackpad (cursor virtual)",toolbarKeyboardDesc:"Teclado nativo / entrada de texto por lotes",toolbarRectDesc:"Modo de selecci\xf3n rectangular"},remoteControls:{enterToSend:"Tab / Ctrl+Num para cambiar de pesta\xf1a",typeToSend:"Escribe el texto a enviar...",send:"Enviar",trackpadMode:"Modo trackpad",directMode:"Modo directo",bottomRow:"Fila inferior",extraPanel:"Panel extra",exitConfirmMessage:"\xbfSeguro que quieres salir de la sesi\xf3n actual del escritorio remoto?"},connection:{retrying:"Reconectando...",waitingApproval:"Esperando aprobaci\xf3n",approvalDescription:"El 9Remote host debe aprobar este dispositivo antes de poder conectarte.",approvalHint:"Revisa el terminal en tu m\xe1quina.",rejectedTitle:"Dispositivo rechazado",rejectedDescription:"Este dispositivo no fue aprobado por el 9Remote host.",backToLogin:"Volver al inicio de sesi\xf3n",failed:"Conexi\xf3n fallida",failedDescription:"No se pudo conectar tras {n} intentos",attemptOf:"Intento {n} de {total}",exit:"Salir",cancel:"Cancelar",retry:"Reintentar ahora"},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:"Sitios",localSites:"Sitios locales",selectSitePreview:"Selecciona un sitio para previsualizar",browserNewTab:"New tab",browserAddressPlaceholder:"localhost:3000 or /path",browserNotConnected:"Connect to your host first",portPlaceholder:"puerto",loadingSites:"Cargando sitios...",notConnected:"Not connected to the host",noSitesFound:"No se encontraron sitios",startServerHint:"Inicia un servidor de desarrollo local para verlo aqu\xed",siteNamePlaceholder:"Nombre del sitio",saveTitle:"Guardar",editNameTitle:"Editar nombre",removeTitle:"Quitar",removePortTitle:"Quitar puerto",removePortMessage:"\xbfQuitar el puerto {port} de la lista guardada?",popupBlocked:"\xa1Ventana emergente bloqueada! Permite las ventanas emergentes para este sitio.",startProxyFailed:"Error al iniciar la sesi\xf3n de proxy para {name}",foundCount:"{n} sitio{suffix} encontrado",focusOpenedTab:"Enfocar pesta\xf1a abierta",openInNewTab:"Abrir en nueva pesta\xf1a",goBack:"Atr\xe1s",goForward:"Adelante",loadingSite:"Cargando...",empty:"No hay sitios activos",emptyHint:"Ejecuta un servidor local para verlo aqu\xed",open:"Abrir",refresh:"Actualizar"},commandNotes:{title:"Notas de comandos",noSavedCommands:"No hay comandos guardados",addFirstBelow:"A\xf1ade tu primer comando abajo",clickToCopy:"Clic para copiar",copiedBang:"\xa1Copiado!",copy:"Copiar",edit:"Editar",delete:"Eliminar",editCommandPlaceholder:"Editar comando...",addCommandPlaceholder:"A\xf1adir comando...",update:"Actualizar",add:"A\xf1adir",empty:"A\xfan no hay notas",emptyHint:"Guarda comandos para acceso r\xe1pido",add:"A\xf1adir nota",edit:"Editar nota",delete:"Eliminar nota",deleteMessage:"\xbfEliminar esta nota?",name:"Nombre",command:"Comando",save:"Guardar",placeholderName:"ej. Iniciar servidor de desarrollo",placeholderCommand:"ej. npm run dev"},mobileKeyboard:{pasteHere:"Pega aqu\xed (Cmd+V)",enterToSend:"Tab / Ctrl+Num para cambiar de pesta\xf1a",typeCommand:"Escribe un comando y env\xeda...",send:"Enviar",toggleExtraKeys:"Alternar teclas extra",toggleTextInput:"Alternar entrada de texto",customizeTerminalKeys:"Personalizar teclas del terminal",mainBar:"Barra principal",extraPanel:"Panel extra",fileTooLarge:"Archivo demasiado grande (m\xe1x. 5MB)",readFileFailed:"Error al leer el archivo",uploadFailed:"Error al subir el archivo: {error}"},terminalPane:{scrollToBottom:"Desplazar al final",changedFiles:"Changed files",pasteOrType:"Pega o escribe aqu\xed",paste:"Pegar"},pwaGuide:{copyYourKey:"Copia tu clave",copyKeyHint:"Toca la clave de abajo para copiarla — la necesitar\xe1s para iniciar sesi\xf3n tras instalar",tapToCopyApiKey:"Toca para copiar la clave API",copiedBang:"\xa1Copiado!",copy:"Copiar",tapShareButton:"Toca el bot\xf3n Compartir",tapShareHint:"Toca el bot\xf3n compartir en la parte inferior de iOS Safari",addToHome:"A\xf1adir a la pantalla de inicio",addToHomeHint:'Despl\xe1zate hacia abajo y toca "A\xf1adir a la pantalla de inicio"',openAppPasteKey:"Abre la app y pega la clave",openAppPasteKeyHint:"Abre la aplicaci\xf3n instalada y pega tu clave para iniciar sesi\xf3n",openMenu:"Abrir men\xfa",openMenuHint:"Toca el bot\xf3n de men\xfa (tres puntos) en Android Chrome",installApp:"Instalar aplicaci\xf3n",installAppHint:'Toca "Instalar aplicaci\xf3n" o "A\xf1adir a la pantalla de inicio"',lookInstallIcon:"Busca el icono de instalaci\xf3n",lookInstallIconHint:"Busca el icono de instalaci\xf3n en la barra de direcciones",clickInstallPaste:"Haz clic en Instalar y pega la clave",installNow:"Install Now",installNowHint:"Install 9Remote as an app for quick access",installing:"Installing...",clickInstallPasteHint:"Haz clic en instalar, abre la aplicaci\xf3n y pega tu clave para iniciar sesi\xf3n",alternativeHint:'Alternativa: Abre el men\xfa del navegador → "Instalar 9Remote" o "Crear acceso directo"',loadingPlatform:"Cargando detecci\xf3n de plataforma...",iosPlatform:"iOS (iPhone/iPad)",androidPlatform:"Android",macosPlatform:"macOS",windowsPlatform:"Windows",desktopPlatform:"Escritorio",alreadyInstalled:"\xa1Ya est\xe1 instalada!",alreadyInstalledHint:"Ya est\xe1s usando 9Remote como aplicaci\xf3n instalada",installationGuide:"Gu\xeda de instalaci\xf3n",installationSteps:"Pasos de instalaci\xf3n:"},community:{title:"Comunidad",description:"\xdanete a la comunidad de 9Remote"},pwa:{title:"Instalar como app",description:"Instala 9Remote en tu dispositivo para la mejor experiencia",iosTitle:"iOS Safari",androidTitle:"Android Chrome",desktopTitle:"Escritorio"},codespace:{title:"Codespace",name:"Nombre",status:"Estado",running:"En ejecuci\xf3n",autoStart:"Iniciar 9Remote autom\xe1ticamente",autoStartHint:"Inicia 9Remote cuando se abra el codespace",stop:"Detener Codespace",stopHint:"Det\xe9n para ahorrar uso",restartHint:"Para reiniciar, ve a GitHub",unknown:"Desconocido"}}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7489],{87489:(t,e,s)=>{s.r(e),s.d(e,{SignalingClient:()=>o});var i=s(81851),n=s(55285),r=s(6134);let h={agent:"client",client:"agent"};class o{static{this.id="sig"}constructor({url:t,role:e,roomId:s,apiKey:n,from:r,onReady:h,pingMs:o=1e4}){this._url=`${t}/ws/${encodeURIComponent(s)}?role=${e}&apiKey=${encodeURIComponent(n)}&from=${encodeURIComponent(r||e)}`,this._from=r||e,this._onReady=h||null,this._role=e,this._roomId=s,this._pingMs=o,this._ws=null,this._handler=null,this._pingTimer=null,this._reconnectTimer=null,this._attempt=0,this._preOpenFails=0,this._openedOnce=!1,this._closed=!1,this._state=i.Of.idle,this._lastRetryNowAt=0,this._connectingSince=0,this._retryNowTimer=null}get ready(){return this._ws?.readyState===1}connect(){this._closed=!1,this._open()}send(t){if((0,n.c)("transport",`[sig] send ${t.type} ready=${this.ready}`),!this.ready)return!1;try{return this._ws.send(JSON.stringify({to:t.to||h[this._role],from:this._from,type:t.type,payload:"offer"===t.type?{sdp:t.sdp}:"answer"===t.type?{sdp:t.sdp,pub:t.pub,xpub:t.xpub,sig:t.sig}:"ice"===t.type?{candidate:t.candidate,mid:t.mid}:t})),!0}catch{return!1}}on(t){this._handler=t}off(){this._handler=null}retryNow(t="?"){if(this._closed||this.ready)return;let e=Date.now(),s=e-this._lastRetryNowAt;if(s<3e3){(0,r.Lq)("switch",`sig retryNow DEFER by=${t} (throttled)`),this._scheduleRetryNow(3e3-s,t);return}if(this._state===i.Of.connecting&&e-this._connectingSince<5e3){(0,r.Lq)("switch",`sig retryNow DEFER by=${t} (handshake ${e-this._connectingSince}ms old)`),this._scheduleRetryNow(5e3-(e-this._connectingSince),t);return}(0,r.Lq)("switch",`sig retryNow GO by=${t}`),this._lastRetryNowAt=e,this._attempt=0,this._preOpenFails=0,clearTimeout(this._reconnectTimer),this._reconnectTimer=null;let n=this._ws;this._ws=null;try{n?.close()}catch{}this._open()}_scheduleRetryNow(t,e="?"){this._retryNowTimer||(this._retryNowTimer=setTimeout(()=>{this._retryNowTimer=null,this.retryNow(`${e}-deferred`)},t))}disconnect(){this._closed=!0,this._stopPing(),clearTimeout(this._retryNowTimer),this._retryNowTimer=null,clearTimeout(this._reconnectTimer);try{this._ws?.close()}catch{}this._ws=null,this._setState(i.Of.closed)}_open(){this._setState(i.Of.connecting),this._connectingSince=Date.now();let t=new WebSocket(this._url);this._ws=t,t.addEventListener("open",()=>{this._attempt=0,this._preOpenFails=0,this._openedOnce=!0,this._setState(i.Of.open),this._startPing(),(0,n.c)("transport",`[sig] ${this._role} connected room=${this._roomId}`),(0,r.Lq)("switch",`sig open (after ${this._attempt} retries)`),this._onReady?.()}),t.addEventListener("message",t=>{let e;if("pong"!==t.data){try{e=JSON.parse(t.data)}catch{return}(0,n.c)("transport",`[sig] recv ${e.type} from=${e.from}`),this._handler?.({type:e.type,from:e.from,...e.payload})}}),t.addEventListener("close",()=>{this._ws===t&&this._onClose()}),t.addEventListener("error",()=>{this._ws===t&&this._onClose()})}_onClose(){if(this._stopPing(),this._ws=null,this._setState(i.Of.closed),!this._closed){if(!this._openedOnce&&(this._preOpenFails++,this._preOpenFails>5)){(0,n.c)("transport",`[sig] ${this._role} giving up — ${this._preOpenFails-1} pre-open failures`),(0,r.Lq)("switch",`sig GAVE UP (${this._preOpenFails-1} pre-open failures) — retryNow is the only way back`);return}this._scheduleReconnect()}}_scheduleReconnect(){if(this._closed)return;this._attempt++;let t=Math.min(1e3*2**(this._attempt-1),3e4)+1e3*Math.random();(0,n.c)("transport",`[sig] ${this._role} reconnect in ${t}ms (attempt ${this._attempt})`),(0,r.Lq)("switch",`sig reconnect in ${Math.round(t)}ms (attempt ${this._attempt})`),this._reconnectTimer=setTimeout(()=>{this._closed||this._open()},t)}_startPing(){this._stopPing(),this._pingTimer=setInterval(()=>{if(this.ready)try{this._ws.send("ping")}catch{}},this._pingMs)}_stopPing(){this._pingTimer&&(clearInterval(this._pingTimer),this._pingTimer=null)}_setState(t){this._state=t}}}}]);
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9641],{59641:(e,t,i)=>{i.d(t,{captureNodeSizes:()=>u});var r=i(68567);function n(){if("u">typeof globalThis)return globalThis}function a(){return"u"<typeof location?"browser-dev":`${location.pathname}${location.search}`}function o(e,t){let i=n();if(!i)return;let r=t.node(),a=(r&&"ownerSVGElement"in r?r.ownerSVGElement:null)??r,o=a?.id??"(unknown)";i.mermaidCapturedSizes??=[];let u={svgId:o,sizes:e};i.mermaidCapturedSizes.push(u),i.mermaidLastCapturedSizes=u}function u(e,t){let i=[];for(let e of t.nodes)e.isGroup||i.push({id:e.id,width:e.width??0,height:e.height??0});0!==i.length&&o({metadata:{captureVersion:1,capturedAt:new Date().toISOString(),capturedFrom:a()},nodes:i},e)}(0,r.K)(n,"getCaptureGlobal"),(0,r.K)(function(){return!!n()?.mermaidCaptureSizes},"shouldCaptureSizes"),(0,r.K)(a,"capturedFromLocation"),(0,r.K)(o,"emitCapturedSizes"),(0,r.K)(u,"captureNodeSizes")}}]);
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7576],{67576:(e,t,i)=>{i.d(t,{captureNodeSizes:()=>u});var r=i(63634);function n(){if("u">typeof globalThis)return globalThis}function a(){return"u"<typeof location?"browser-dev":`${location.pathname}${location.search}`}function o(e,t){let i=n();if(!i)return;let r=t.node(),a=(r&&"ownerSVGElement"in r?r.ownerSVGElement:null)??r,o=a?.id??"(unknown)";i.mermaidCapturedSizes??=[];let u={svgId:o,sizes:e};i.mermaidCapturedSizes.push(u),i.mermaidLastCapturedSizes=u}function u(e,t){let i=[];for(let e of t.nodes)e.isGroup||i.push({id:e.id,width:e.width??0,height:e.height??0});0!==i.length&&o({metadata:{captureVersion:1,capturedAt:new Date().toISOString(),capturedFrom:a()},nodes:i},e)}(0,r.K)(n,"getCaptureGlobal"),(0,r.K)(function(){return!!n()?.mermaidCaptureSizes},"shouldCaptureSizes"),(0,r.K)(a,"capturedFromLocation"),(0,r.K)(o,"emitCapturedSizes"),(0,r.K)(u,"captureNodeSizes")}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7620],{27620:(e,s,c)=>{c.d(s,{createInfoServices:()=>a.v});var a=c(43199);c(67219)}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7646],{67646:(e,n,t)=>{t.r(n),t.d(n,{default:()=>i});let i={common:{statusIdle:"Idle",statusWorking:"Working",statusBlocked:"Needs input",statusDone:"Your turn",loading:"Wird geladen...",cancel:"Abbrechen",confirm:"Best\xe4tigen",save:"Speichern",delete:"L\xf6schen",close:"Schlie\xdfen",back:"Zur\xfcck",edit:"Bearbeiten",rename:"Umbenennen",remove:"Entfernen",open:"\xd6ffnen",yes:"Ja",no:"Nein",ok:"OK",error:"Fehler",success:"Erfolg",failed:"Fehlgeschlagen",retry:"Wiederholen",refresh:"Aktualisieren",clipboard:"Clipboard",clipboardCopy:"Copy",clipboardEmpty:"Clipboard is empty",search:"Suchen",create:"Erstellen",new:"Neu",add:"Hinzuf\xfcgen",copy:"Kopieren",copied:"Kopiert",download:"Herunterladen",upload:"Hochladen",enabled:"Aktiviert",disabled:"Deaktiviert",on:"an",off:"aus",minute:"Min",hour:"Std",day:"T",minutesAgo:"vor {n} Min",hoursAgo:"vor {n} Stunden",daysAgo:"vor {n} Tagen"},login:{tagline:"Greifen Sie von \xfcberall auf Ihr Terminal zu",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:"Zugangsschl\xfcssel",placeholder:"sk-xxx... oder Einmalschl\xfcssel (ABC123)",rememberKey:"Diesen Schl\xfcssel merken",connect:"Verbinden",connecting:"Verbindung wird hergestellt...",authenticating:"Authentifizierung mit 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:"Gespeicherte Schl\xfcssel",login:"Anmelden",lastLogin:"Letzte Anmeldung",namePlaceholder:"Name this key (optional)",rename:"Rename",deleteKeyTitle:"Delete key",deleteKeyConfirm:'Are you sure you want to delete "{name}"?',justNow:"Gerade eben",minutesAgo:"vor {n}m",hoursAgo:"vor {n}h",daysAgo:"vor {n}T",tapToScan:"Tippen zum Scannen",orEnterManually:"oder Schl\xfcssel manuell eingeben",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:"Startseite",docs:"Dokumentation"},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:"Men\xfc",language:"Sprache",theme:"Design",notifications:"Benachrichtigungen",webgl:"GPU Render (Faster)",webglHint:"Bei falschem Text deaktivieren",notificationsHint:"Notify when agent finishes",orientation:"Bildschirmausrichtung",orientationPortrait:"Hochformat",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:"Sites",commandNotes:"Befehlsnotizen",community:"Community",installApp:"App installieren",codespace:"Codespace",logout:"Abmelden",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:"App neu laden",remoteDesktop:"Remote-Desktop",settings:"Einstellungen",enablePush:"Push-Benachrichtigungen aktivieren",disablePush:"Push-Benachrichtigungen deaktivieren",pushHint:"Push-Benachrichtigungen aktivieren, um benachrichtigt zu werden, wenn KI Aufgaben abschlie\xdft",pushActiveHint:"Push notifications are on for this device. You'll be alerted when AI completes tasks.",versionMismatch:"Host {version} ist veraltet",versionMismatchHint:"Einige Funktionen funktionieren m\xf6glicherweise nicht. Ausf\xfchren:",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:"Version"},workspace:{loading:"Wird geladen...",logoutTitle:"Abmelden",logoutMessage:"M\xf6chten Sie sich wirklich abmelden?",failedCreateSession:"Sitzung konnte nicht erstellt werden: {error}",failedRenameSession:"Sitzung konnte nicht umbenannt werden: {error}"},sessions:{headerTitle:"9remote.cc",connected:"Verbunden",disconnected:"Getrennt",codespaceStopped:"Codespace gestoppt",placeholder:"Terminalname (optional)",newButton:"+ Neu",empty:"Keine aktiven Sitzungen",emptyHint:"Erstellen Sie eine neue Sitzung, um zu beginnen",created:"Erstellt {time}",deleteTitle:"Sitzung l\xf6schen",deleteMessage:'M\xf6chten Sie "{name}" wirklich l\xf6schen?',editName:"Namen bearbeiten",newTerminal:"Neues Terminal",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:"Zur\xfcck",menu:"Men\xfc",newTerminal:"Neues Terminal",remoteDesktop:"Remote-Desktop",defaultName:"Term"},files:{selectWorkspace:"Arbeitsbereich ausw\xe4hlen",recentWorkspaces:"Zuletzt verwendete Arbeitsbereiche",home:"Startseite",root:"Stammverzeichnis",drive:"Laufwerk {letter}",codespaces:"Codespaces",removeRecent:"Aus Verlauf entfernen",removeTitle:"Arbeitsbereich entfernen",removeMessage:'"{name}" aus zuletzt verwendeten Arbeitsbereichen entfernen?',setAsWorkspace:"Als Arbeitsbereich festlegen",openFolder:"Ordner \xf6ffnen",newFile:"Neue Datei",newFolder:"Neuer Ordner",rename:"Umbenennen",delete:"L\xf6schen",deleteFile:"Datei l\xf6schen",deleteFolder:"Ordner l\xf6schen",deleteFileMessage:'"{name}" l\xf6schen?',deleteFolderMessage:'Ordner "{name}" und alle Inhalte l\xf6schen?',emptyFolder:"Leerer Ordner",git:"Git",parent:"\xdcbergeordneter Ordner",workspace:"Arbeitsbereich",failedLoad:"Laden fehlgeschlagen: {error}",failedDelete:"L\xf6schen fehlgeschlagen: {error}",failedCreate:"Erstellen fehlgeschlagen: {error}",failedRename:"Umbenennen fehlgeschlagen: {error}",enterName:"Namen eingeben",confirmRename:"Umbenennen in:",setWorkspace:"Arbeitsbereich festlegen",setAsWorkspaceTitle:"Als Arbeitsbereich festlegen",switchWorkspace:"Arbeitsbereich wechseln",searchFiles:"Dateien suchen",toggleHidden:"Versteckte Dateien umschalten",searchPlaceholder:"Dateien suchen...",searching:"Suche l\xe4uft...",noFilesFound:"Keine Dateien gefunden",noGitRepo:"Kein Git-Repository",cannotOpenBinary:"Bin\xe4rdatei kann nicht ge\xf6ffnet werden",createNew:"Neu erstellen",file:"Datei",folder:"Ordner",placeholderFile:"dateiname.js",placeholderFolder:"ordner-name",pickFile:"Choose files",pickFolder:"Choose folder",copyPath:"Pfad kopieren",copyRelPath:"Copy Relative Path",copyName:"Copy Filename",delete:"L\xf6schen",rename:"Umbenennen",deleteConfirmTitle:"L\xf6schen",deleteConfirmMessage:'"{name}" l\xf6schen?'},editor:{save:"Speichern",saving:"Wird gespeichert...",saved:"Gespeichert",unsaved:"Ungespeicherte \xc4nderungen",close:"Schlie\xdfen",discard:"Verwerfen",discardTitle:"\xc4nderungen verwerfen",discardMessage:"Sie haben ungespeicherte \xc4nderungen. Verwerfen?",unsavedTitle:"Save changes to {name}?",unsavedBody:"Your changes will be lost if you don't save them.",failedLoad:"Datei konnte nicht geladen werden: {error}",failedSave:"Speichern fehlgeschlagen: {error}",openFull:"Open in full editor",artifact:"Artifact",readOnly:"Schreibgesch\xfctzt",line:"Zeile",column:"Spalte",gitDiff:"Git Diff",typeText:"Text eingeben und einf\xfcgen...",insert:"Einf\xfcgen",statusModified:"Ge\xe4ndert",statusAdded:"Hinzugef\xfcgt",statusUntracked:"Nicht verfolgt"},git:{title:"Git",branch:"Branch",changes:"\xc4nderungen",staged:"Bereitgestellt",unstaged:"Nicht bereitgestellt",untracked:"Nicht verfolgt",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-Nachricht",push:"Push",pull:"Pull",fetch:"Fetch",stage:"Bereitstellen",stageAll:"Alle bereitstellen",unstage:"Bereitstellung aufheben",discard:"Verwerfen",discardChanges:"\xc4nderungen verwerfen",discardMessage:'\xc4nderungen an "{name}" verwerfen?',noChanges:"Keine \xc4nderungen",diff:"Diff",pushing:"Push l\xe4uft...",pulling:"Pull l\xe4uft...",committing:"Commit l\xe4uft...",failedCommit:"Commit fehlgeschlagen: {error}",failedPush:"Push fehlgeschlagen: {error}",failedPull:"Pull fehlgeschlagen: {error}",status:"Status",diffTab:"Diff",modified:"Ge\xe4ndert",added:"Hinzugef\xfcgt",deleted:"Gel\xf6scht",untrackedTitle:"Nicht verfolgt",openFile:"Datei \xf6ffnen",discardChangesTitle:"\xc4nderungen verwerfen",discardConfirmTitle:"\xc4nderungen verwerfen",discardConfirmDelete:'M\xf6chten Sie "{name}" wirklich l\xf6schen? Dies kann nicht r\xfcckg\xe4ngig gemacht werden.',discardConfirmDiscard:'M\xf6chten Sie \xc4nderungen an "{name}" wirklich verwerfen? Dies kann nicht r\xfcckg\xe4ngig gemacht werden.'},remote:{title:"Remote-Desktop",connecting:"Verbindung wird hergestellt...",disconnected:"Getrennt",fullscreen:"Vollbild",exitFullscreen:"Vollbild beenden",receivingImage:"Receiving screen…",keyboard:"Tastatur",mouse:"Maus",quality:"Qualit\xe4t",fps:"FPS",debug:"Debug",help:"Hilfe",close:"Schlie\xdfen",sendKey:"Taste senden",helpTitle:"Remote-Desktop-Hilfe",notAvailable:"Remote-Desktop ist nicht verf\xfcgbar",customizeKeys:"Tasten anpassen",back:"Zur\xfcck",resetZoom:"Zoom zur\xfccksetzen",refresh:"Aktualisieren",rectangleSelection:"Rechteckauswahl",handMode:"Handmodus",toggleKeyboard:"Native Tastatur umschalten",hideControls:"Hide controls",showControls:"Show controls",textBatchInput:"Text-Stapeleingabe",extraKeys:"Zusatztasten",customizeRemoteKeys:"Remote-Tasten anpassen",exitRemote:"Remote-Desktop beenden",debugTitle:"Debug-Statistiken",minimize:"Minimieren",transport:"Transport",latency:"Latenz",tilesPerSec:"Kacheln/Sek",bandwidth:"Bandbreite",clearStats:"Statistiken l\xf6schen",lockTitle:"Windows ist gesperrt",lockGrantDesc:'Aktiviere „PC fernentsperren" in 9remote host auf diesem PC.',lockDesc:"Windows-PIN oder -Passwort f\xfcr diesen Computer eingeben",lockPlaceholder:"Windows-PIN oder -Passwort",unlock:"Entsperren",unlocking:"Wird entsperrt…",unlockFailed:"Entsperren fehlgeschlagen — PIN/Passwort pr\xfcfen und erneut versuchen."},remoteHelp:{modePc:"PC / Maus",modeTrackpad:"Touch \xb7 Trackpad",modeDirect:"Touch \xb7 Direkt",mouseTitle:"Maus",keyboardTitle:"Tastatur",gesturesTrackpadTitle:"Gesten (Trackpad ✋)",gesturesDirectTitle:"Gesten (Direkt)",toolbarTitle:"Symbolleiste",mouseClickKey:"Klick / Ziehen",mouseClickDesc:"Linksklick, Ziehen zum Ausw\xe4hlen/Verschieben",mouseRightKey:"Rechtsklick",mouseRightDesc:"Kontextmen\xfc auf Remote",mouseWheelKey:"Mausrad",mouseWheelDesc:"Remote scrollen (Shift + Mausrad = horizontal)",mouseDoubleKey:"Doppelklick",mouseDoubleDesc:"Doppelklick auf Remote",keyPhysicalKey:"Physische Tasten",keyPhysicalDesc:"Direkt gesendet (Tab, F-Tasten usw. erfasst)",keyModifierKey:"Ctrl / Alt / Shift / ⌘",keyModifierDesc:"Sticky-Modifikator — mit n\xe4chster Taste kombinieren",trackpadSwipeKey:"1 Finger wischen",trackpadSwipeDesc:"Virtuellen Cursor bewegen",trackpadTapKey:"1 Finger tippen",trackpadTapDesc:"Linksklick beim Cursor",trackpad2TapKey:"2 Finger tippen",trackpad2TapDesc:"Rechtsklick beim Cursor",trackpad2SwipeKey:"2 Finger wischen",trackpad2SwipeDesc:"An Cursorposition scrollen",trackpadPinchKey:"2 Finger zusammenziehen",trackpadPinchDesc:"Leinwand zoomen",trackpadScrollLockKey:"Halten + ziehen",trackpadScrollLockDesc:"Halten zum Scroll-Sperren, in jede Richtung ziehen",directTapKey:"1 Finger tippen",directTapDesc:"Klick an Tippposition",directLongKey:"1 Finger lang dr\xfccken",directLongDesc:"Rechtsklick",directDoubleKey:"1 Finger doppelt tippen",directDoubleDesc:"Doppelklick",directScrollKey:"2 Finger wischen",directScrollDesc:"Remote scrollen",directPinchKey:"2 Finger zusammenziehen",directPinchDesc:"Leinwand zoomen",directPanKey:"1 Finger ziehen (zoom>1)",directPanDesc:"Leinwand verschieben",toolbarHandDesc:"Linksklick halten (Ziehmodus) — erneut tippen zum Loslassen",toolbarMouseDirectDesc:"Zu Direktmodus wechseln",toolbarMouseTrackpadDesc:"Zu Trackpad wechseln (virtueller Cursor)",toolbarKeyboardDesc:"Native Tastatur / Text-Stapeleingabe",toolbarRectDesc:"Rechteckauswahl-Modus"},remoteControls:{enterToSend:"Tab / Ctrl+Num zum Wechseln der Registerkarte",typeToSend:"Text zum Senden eingeben...",send:"Senden",trackpadMode:"Trackpad-Modus",directMode:"Direktmodus",bottomRow:"Untere Reihe",extraPanel:"Zusatzbereich",exitConfirmMessage:"M\xf6chten Sie die aktuelle Remote-Desktop-Sitzung wirklich beenden?"},connection:{retrying:"Verbindung wird wiederhergestellt...",waitingApproval:"Warten auf Genehmigung",approvalDescription:"Der 9Remote host muss dieses Ger\xe4t genehmigen, bevor Sie sich verbinden k\xf6nnen.",approvalHint:"\xdcberpr\xfcfen Sie das Terminal auf Ihrem Computer.",rejectedTitle:"Ger\xe4t abgelehnt",rejectedDescription:"Dieses Ger\xe4t wurde vom 9Remote host nicht genehmigt.",backToLogin:"Zur\xfcck zur Anmeldung",failed:"Verbindung fehlgeschlagen",failedDescription:"Verbindung nach {n} Versuchen nicht m\xf6glich",attemptOf:"Versuch {n} von {total}",exit:"Beenden",cancel:"Abbrechen",retry:"Jetzt wiederholen"},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:"Sites",localSites:"Lokale Sites",selectSitePreview:"Site zur Vorschau ausw\xe4hlen",browserNewTab:"New tab",browserAddressPlaceholder:"localhost:3000 or /path",browserNotConnected:"Connect to your host first",portPlaceholder:"Port",loadingSites:"Sites werden geladen...",notConnected:"Not connected to the host",noSitesFound:"Keine Sites gefunden",startServerHint:"Starten Sie einen lokalen Dev-Server, um ihn hier zu sehen",siteNamePlaceholder:"Site-Name",saveTitle:"Speichern",editNameTitle:"Namen bearbeiten",removeTitle:"Entfernen",removePortTitle:"Port entfernen",removePortMessage:"Port {port} aus gespeicherter Liste entfernen?",popupBlocked:"Popup blockiert! Bitte erlauben Sie Popups f\xfcr diese Site.",startProxyFailed:"Proxy-Sitzung f\xfcr {name} konnte nicht gestartet werden",foundCount:"{n} Site{suffix} gefunden",focusOpenedTab:"Ge\xf6ffneten Tab fokussieren",openInNewTab:"In neuem Tab \xf6ffnen",goBack:"Zur\xfcck",goForward:"Vorw\xe4rts",loadingSite:"Wird geladen...",empty:"Keine aktiven Sites",emptyHint:"F\xfchren Sie einen lokalen Server aus, um ihn hier zu sehen",open:"\xd6ffnen",refresh:"Aktualisieren"},commandNotes:{title:"Befehlsnotizen",noSavedCommands:"Keine gespeicherten Befehle",addFirstBelow:"F\xfcgen Sie unten Ihren ersten Befehl hinzu",clickToCopy:"Zum Kopieren klicken",copiedBang:"Kopiert!",copy:"Kopieren",edit:"Bearbeiten",delete:"L\xf6schen",editCommandPlaceholder:"Befehl bearbeiten...",addCommandPlaceholder:"Befehl hinzuf\xfcgen...",update:"Aktualisieren",add:"Hinzuf\xfcgen",empty:"Noch keine Notizen",emptyHint:"Befehle f\xfcr schnellen Zugriff speichern",add:"Notiz hinzuf\xfcgen",edit:"Notiz bearbeiten",delete:"Notiz l\xf6schen",deleteMessage:"Diese Notiz l\xf6schen?",name:"Name",command:"Befehl",save:"Speichern",placeholderName:"z. B. Dev-Server starten",placeholderCommand:"z. B. npm run dev"},mobileKeyboard:{pasteHere:"Hier einf\xfcgen (Cmd+V)",enterToSend:"Tab / Ctrl+Num zum Wechseln der Registerkarte",typeCommand:"Befehl eingeben und senden...",send:"Senden",toggleExtraKeys:"Zusatztasten umschalten",toggleTextInput:"Texteingabe umschalten",customizeTerminalKeys:"Terminal-Tasten anpassen",mainBar:"Hauptleiste",extraPanel:"Zusatzbereich",fileTooLarge:"Datei zu gro\xdf (max 5 MB)",readFileFailed:"Datei konnte nicht gelesen werden",uploadFailed:"Datei konnte nicht hochgeladen werden: {error}"},terminalPane:{scrollToBottom:"Nach unten scrollen",changedFiles:"Changed files",pasteOrType:"Hier einf\xfcgen oder eingeben",paste:"Einf\xfcgen"},pwaGuide:{copyYourKey:"Schl\xfcssel kopieren",copyKeyHint:"Tippen Sie auf den Schl\xfcssel unten zum Kopieren — Sie ben\xf6tigen ihn zur Anmeldung nach der Installation",tapToCopyApiKey:"Zum Kopieren des API-Schl\xfcssels tippen",copiedBang:"Kopiert!",copy:"Kopieren",tapShareButton:"Teilen-Button tippen",tapShareHint:"Tippen Sie auf den Teilen-Button unten in iOS Safari",addToHome:"Zum Home-Bildschirm hinzuf\xfcgen",addToHomeHint:'Nach unten scrollen und auf "Zum Home-Bildschirm" tippen',openAppPasteKey:"App \xf6ffnen & Schl\xfcssel einf\xfcgen",openAppPasteKeyHint:"\xd6ffnen Sie die installierte App und f\xfcgen Sie Ihren Schl\xfcssel zur Anmeldung ein",openMenu:"Men\xfc \xf6ffnen",openMenuHint:"Tippen Sie auf den Men\xfc-Button (drei Punkte) in Android Chrome",installApp:"App installieren",installAppHint:'Tippen Sie auf "App installieren" oder "Zum Home-Bildschirm hinzuf\xfcgen"',lookInstallIcon:"Nach Installations-Symbol suchen",lookInstallIconHint:"Suchen Sie nach dem Installations-Symbol in der Adressleiste",clickInstallPaste:"Installieren klicken & Schl\xfcssel einf\xfcgen",installNow:"Install Now",installNowHint:"Install 9Remote as an app for quick access",installing:"Installing...",clickInstallPasteHint:"Klicken Sie auf installieren, \xf6ffnen Sie die App und f\xfcgen Sie Ihren Schl\xfcssel zur Anmeldung ein",alternativeHint:'Alternative: Browser-Men\xfc \xf6ffnen → "9Remote installieren" oder "Verkn\xfcpfung erstellen"',loadingPlatform:"Plattformerkennung wird geladen...",iosPlatform:"iOS (iPhone/iPad)",androidPlatform:"Android",macosPlatform:"macOS",windowsPlatform:"Windows",desktopPlatform:"Desktop",alreadyInstalled:"Bereits installiert!",alreadyInstalledHint:"Sie verwenden 9Remote bereits als installierte App",installationGuide:"Installationsanleitung",installationSteps:"Installationsschritte:"},community:{title:"Community",description:"Treten Sie der 9Remote-Community bei"},pwa:{title:"Als App installieren",description:"Installieren Sie 9Remote auf Ihrem Ger\xe4t f\xfcr die beste Erfahrung",iosTitle:"iOS Safari",androidTitle:"Android Chrome",desktopTitle:"Desktop"},codespace:{title:"Codespace",name:"Name",status:"Status",running:"L\xe4uft",autoStart:"9Remote automatisch starten",autoStartHint:"9Remote starten, wenn Codespace ge\xf6ffnet wird",stop:"Codespace stoppen",stopHint:"Stoppen, um Nutzung zu sparen",restartHint:"Zum Neustart zu GitHub gehen",unknown:"Unbekannt"}}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7712],{17712:(r,e,s)=>{s.d(e,{diagram:()=>l});var a=s(89651);s(71711),s(44074),s(77777),s(66071),s(48043),s(77205),s(31695),s(30800),s(15254),s(33376),s(94596),s(27902),s(80968),s(90598),s(88084);var t=s(63634),l={parser:a._$,get db(){return new a.NM},renderer:a.Lh,styles:a.tM,init:(0,t.K)(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7812],{37812:(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:"Включить push-уведомления",disablePush:"Отключить push-уведомления",pushHint:"Включите push-уведомления, чтобы получать оповещения о завершении задач ИИ",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:"Коммит",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:"Сообщение коммита",push:"Push",pull:"Pull",fetch:"Fetch",stage:"Подготовить",stageAll:"Подготовить всё",unstage:"Убрать из подготовленных",discard:"Отменить",discardChanges:"Отменить изменения",discardMessage:'Отменить изменения в "{name}"?',noChanges:"Нет изменений",diff:"Diff",pushing:"Push...",pulling:"Pull...",committing:"Создание коммита...",failedCommit:"Не удалось создать коммит: {error}",failedPush:"Не удалось выполнить push: {error}",failedPull:"Не удалось выполнить pull: {error}",status:"Статус",diffTab:"Diff",modified:"Изменён",added:"Добавлен",deleted:"Удалён",untrackedTitle:"Не отслеживается",openFile:"Открыть файл",discardChangesTitle:"Отменить изменения",discardConfirmTitle:"Отменить изменения",discardConfirmDelete:'Вы уверены, что хотите удалить "{name}"? Это нельзя отменить.',discardConfirmDiscard:'Вы уверены, что хотите отменить изменения в "{name}"? Это нельзя отменить.'},remote:{title:"Удалённый рабочий стол",connecting:"Подключение...",disconnected:"Отключено",fullscreen:"Полный экран",exitFullscreen:"Выйти из полного экрана",receivingImage:"Receiving screen…",keyboard:"Клавиатура",mouse:"Мышь",quality:"Качество",fps:"FPS",debug:"Отладка",help:"Помощь",close:"Закрыть",sendKey:"Отправить клавишу",helpTitle:"Помощь по удалённому рабочему столу",notAvailable:"Удалённый рабочий стол недоступен",customizeKeys:"Настроить клавиши",back:"Назад",resetZoom:"Сбросить масштаб",refresh:"Обновить",rectangleSelection:"Прямоугольное выделение",handMode:"Режим руки",toggleKeyboard:"Переключить системную клавиатуру",hideControls:"Hide controls",showControls:"Show controls",textBatchInput:"Пакетный ввод текста",extraKeys:"Дополнительные клавиши",customizeRemoteKeys:"Настроить удалённые клавиши",exitRemote:"Выйти из удалённого рабочего стола",debugTitle:"Статистика отладки",minimize:"Свернуть",transport:"Транспорт",latency:"Задержка",tilesPerSec:"Тайлов/сек",bandwidth:"Пропускная способность",clearStats:"Очистить статистику",lockTitle:"Windows заблокирована",lockGrantDesc:"Включите \xabУдалённая разблокировка ПК\xbb в 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:"Свайп 1 пальцем",trackpadSwipeDesc:"Перемещение виртуального курсора",trackpadTapKey:"Касание 1 пальцем",trackpadTapDesc:"Левый клик в позиции курсора",trackpad2TapKey:"Касание 2 пальцами",trackpad2TapDesc:"Правый клик в позиции курсора",trackpad2SwipeKey:"Свайп 2 пальцами",trackpad2SwipeDesc:"Прокрутка в позиции курсора",trackpadPinchKey:"Щипок 2 пальцами",trackpadPinchDesc:"Масштабирование холста",trackpadScrollLockKey:"Удерживать + тянуть",trackpadScrollLockDesc:"Удерживайте для блокировки прокрутки, тяните в любом направлении",directTapKey:"Касание 1 пальцем",directTapDesc:"Клик в позиции касания",directLongKey:"Долгое нажатие 1 пальцем",directLongDesc:"Правый клик",directDoubleKey:"Двойное касание 1 пальцем",directDoubleDesc:"Двойной клик",directScrollKey:"Свайп 2 пальцами",directScrollDesc:"Прокрутка удалённой стороны",directPinchKey:"Щипок 2 пальцами",directPinchDesc:"Масштабирование холста",directPanKey:"Перетаскивание 1 пальцем (zoom>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:"Запустите локальный dev-сервер, чтобы увидеть его здесь",siteNamePlaceholder:"Имя сайта",saveTitle:"Сохранить",editNameTitle:"Изменить имя",removeTitle:"Убрать",removePortTitle:"Убрать порт",removePortMessage:"Убрать порт {port} из сохранённого списка?",popupBlocked:"Всплывающее окно заблокировано! Разрешите всплывающие окна для этого сайта.",startProxyFailed:"Не удалось запустить прокси-сессию для {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:"напр. Запустить dev-сервер",placeholderCommand:"напр. npm run dev"},mobileKeyboard:{pasteHere:"Вставьте здесь (Cmd+V)",enterToSend:"Tab / Ctrl+Num для переключения вкладок",typeCommand:"Введите команду и отправьте...",send:"Отправить",toggleExtraKeys:"Переключить дополнительные клавиши",toggleTextInput:"Переключить ввод текста",customizeTerminalKeys:"Настроить клавиши терминала",mainBar:"Основная панель",extraPanel:"Дополнительная панель",fileTooLarge:"Файл слишком большой (макс. 5 МБ)",readFileFailed:"Не удалось прочитать файл",uploadFailed:"Не удалось загрузить файл: {error}"},terminalPane:{scrollToBottom:"Прокрутить вниз",changedFiles:"Changed files",pasteOrType:"Вставьте или введите здесь",paste:"Вставить"},pwaGuide:{copyYourKey:"Скопируйте ваш ключ",copyKeyHint:"Нажмите на ключ ниже, чтобы скопировать — он понадобится для входа после установки",tapToCopyApiKey:"Нажмите, чтобы скопировать API-ключ",copiedBang:"Скопировано!",copy:"Копировать",tapShareButton:"Нажмите кнопку \xabПоделиться\xbb",tapShareHint:"Нажмите кнопку \xabПоделиться\xbb внизу iOS Safari",addToHome:"Добавить на главный экран",addToHomeHint:"Прокрутите вниз и нажмите \xabНа экран Домой\xbb",openAppPasteKey:"Откройте приложение и вставьте ключ",openAppPasteKeyHint:"Откройте установленное приложение и вставьте ключ для входа",openMenu:"Откройте меню",openMenuHint:"Нажмите кнопку меню (три точки) в Android Chrome",installApp:"Установить приложение",installAppHint:"Нажмите \xabУстановить приложение\xbb или \xabДобавить на главный экран\xbb",lookInstallIcon:"Найдите значок установки",lookInstallIconHint:"Найдите значок установки в адресной строке",clickInstallPaste:"Нажмите \xabУстановить\xbb и вставьте ключ",installNow:"Install Now",installNowHint:"Install 9Remote as an app for quick access",installing:"Installing...",clickInstallPasteHint:"Нажмите \xabУстановить\xbb, откройте приложение и вставьте ключ для входа",alternativeHint:"Альтернатива: откройте меню браузера → \xabУстановить 9Remote\xbb или \xabСоздать ярлык\xbb",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:"Неизвестно"}}}}]);