@runeya/runeya 2.0.110 → 2.0.112

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 (333) hide show
  1. package/{chat-XSI73SXM.js → chat-HXONIBWN.js} +3 -3
  2. package/{chunk-QYFLRYTR.js → chunk-NHKZXNLU.js} +42 -55
  3. package/chunk-NHKZXNLU.js.map +1 -0
  4. package/{chunk-N46G7MQW.js → chunk-V7A622EJ.js} +2 -2
  5. package/{companion-DCFBV2BV.js → companion-22KIHB4W.js} +2 -2
  6. package/index.js +7 -5
  7. package/index.js.map +1 -1
  8. package/package.json +1 -1
  9. package/{src-NH6Z6SKR.js → src-GRFQ5OCA.js} +10 -5
  10. package/src-GRFQ5OCA.js.map +1 -0
  11. package/{tray-NZOXYN5G.js → tray-E4KP2DYU.js} +16 -3
  12. package/tray-E4KP2DYU.js.map +1 -0
  13. package/web/assets/AgentScalarChatInterface.vue-D8L1qMnP.js +13 -0
  14. package/web/assets/AgentTerminalPage-Chx1ZkXf.js +1 -0
  15. package/web/assets/AiChatPage-DeymBNnY.js +1 -0
  16. package/web/assets/{AppLayout-6LmWDDMH.css → AppLayout-BEOMwU1S.css} +1 -1
  17. package/web/assets/AppLayout-KMbnHSdu.js +1 -0
  18. package/web/assets/AuditPage-DqaUtbcO.js +1 -0
  19. package/web/assets/CloudAccountPage-B8h1HsJl.js +1 -0
  20. package/web/assets/CloudAccountPage-Cu1n85_c.js +1 -0
  21. package/web/assets/CloudMessagingPage-C_zZtU8E.js +2 -0
  22. package/web/assets/DashboardPage-CjsKPyXD.js +164 -0
  23. package/web/assets/DirectoryPickerDialog-5MiJKRfc.js +1 -0
  24. package/web/assets/{EditorIcon-B3Su-OwT.js → EditorIcon-1DXtvm7m.js} +2 -2
  25. package/web/assets/{EnvironmentForm-BGXJVD4I.js → EnvironmentForm-BqGZTdZC.js} +2 -2
  26. package/web/assets/EnvironmentFormPage-C9aJJ8E8.js +1 -0
  27. package/web/assets/EnvironmentListPage-B7HsZarb.js +1 -0
  28. package/web/assets/KanbanBoardPage-dqGMbjuh.js +4 -0
  29. package/web/assets/KanbanListPage-DXViCKTY.js +1 -0
  30. package/web/assets/LaunchProjectPage-MiZFB_0o.js +1 -0
  31. package/web/assets/LaunchServicesPage-C4rfh_1M.js +1 -0
  32. package/web/assets/LaunchServicesPage-zR9FoF4q.css +1 -0
  33. package/web/assets/LogViewer-OrRd9GPK.js +3 -0
  34. package/web/assets/OrgKeyPrompt-D8k2POKf.js +1 -0
  35. package/web/assets/{ProcessControls-CsWzruEm.js → ProcessControls-DLPytGR-.js} +1 -1
  36. package/web/assets/ProcessDetailPage-YhRNgz9n.js +1 -0
  37. package/web/assets/{ProcessMetrics-CUzyutMf.js → ProcessMetrics-CfU-_0xI.js} +2 -2
  38. package/web/assets/RandomJobTestPage-BPao_uWM.js +2 -0
  39. package/web/assets/ScenarioEditorPage-DUt-fyHh.js +14 -0
  40. package/web/assets/SendToChatDialog-CZnQkSjV.js +1 -0
  41. package/web/assets/ServiceControlsBar-FEKaTZpW.js +1 -0
  42. package/web/assets/ServiceDetailPage-BMBGAlT9.js +2 -0
  43. package/web/assets/ServiceFormPage-B8-esDJb.js +1 -0
  44. package/web/assets/SettingsPage-Bu55iA-H.js +2063 -0
  45. package/web/assets/UnlockPage-DzHUFN5D.js +1 -0
  46. package/web/assets/VaultMigrationPage-DUwdS4R3.js +1 -0
  47. package/web/assets/VersionBadge-BamuXGJG.js +1 -0
  48. package/web/assets/WikiPage-DttQz6SM.js +1 -0
  49. package/web/assets/WikiView-HxKC_z_B.js +1 -0
  50. package/web/assets/add-scalar-classes-BBQceaWE.js +387 -0
  51. package/web/assets/{autocomplete-CybakBEo.js → autocomplete-DDdg8uWF.js} +3 -3
  52. package/web/assets/{basic-shape-diamond.svg-CapSkAmG.js → basic-shape-diamond.svg-PBuzhzyL.js} +1 -1
  53. package/web/assets/{basic-shape-hexagon.svg-CsHQuK0t.js → basic-shape-hexagon.svg-vZ1_C97b.js} +1 -1
  54. package/web/assets/{basic-shape-primary-circle-ellipse-round.svg-kIAVlJXt.js → basic-shape-primary-circle-ellipse-round.svg-DBK0STQa.js} +1 -1
  55. package/web/assets/{basic-shape-primary-square-rectangle.svg-D0ET3Tqc.js → basic-shape-primary-square-rectangle.svg-DjCfpmjR.js} +1 -1
  56. package/web/assets/{basic-shape-shield.svg-XlQTA0eZ.js → basic-shape-shield.svg-DmaAGacc.js} +1 -1
  57. package/web/assets/{browser-Dgbd7roH.js → browser-6whmj0DA.js} +1 -1
  58. package/web/assets/{browser-CXl-HRlQ.js → browser-8fowKj4x.js} +1 -1
  59. package/web/assets/card-0RUbyEjT.js +32 -0
  60. package/web/assets/{checkbox-BEqo7VlA.js → checkbox-CW4_BCzd.js} +3 -3
  61. package/web/assets/{chip-DbuOs6mD.js → chip-BMIkgaOI.js} +2 -2
  62. package/web/assets/client-Zv2B0OOp.js +24 -0
  63. package/web/assets/cloud-chat.store-cvRkhAwy.js +1 -0
  64. package/web/assets/cloud-client-2mgUtdk1.js +1 -0
  65. package/web/assets/cloud-session-AV6nVTtY.js +1 -0
  66. package/web/assets/cloud-session-BxDy2HVL.js +2 -0
  67. package/web/assets/{column-Dj8-WSbH.js → column-DSDLyaDN.js} +33 -33
  68. package/web/assets/{computer-device-desktop-monitor.svg-DoHrfDHw.js → computer-device-desktop-monitor.svg-Blwr-wR-.js} +1 -1
  69. package/web/assets/{computer-device-desktop.svg-Dzi97f3e.js → computer-device-desktop.svg-CvNohuFO.js} +1 -1
  70. package/web/assets/{computer-device-laptop.svg-B-qwwyLX.js → computer-device-laptop.svg-g2PmPGkD.js} +1 -1
  71. package/web/assets/{computer-device-mobile-phone-android-samsung-back.svg-BCB1yyCO.js → computer-device-mobile-phone-android-samsung-back.svg-C9pSbl_O.js} +1 -1
  72. package/web/assets/{computer-device-mobile-phone-android-samsung.svg-CKI20fhG.js → computer-device-mobile-phone-android-samsung.svg-BNHefVHU.js} +1 -1
  73. package/web/assets/{computer-device-mobile-phone-iphone-x-back.svg-DHmkgLCF.js → computer-device-mobile-phone-iphone-x-back.svg-Dg8ATtJA.js} +1 -1
  74. package/web/assets/{computer-device-mobile-phone-iphone-x.svg-TbsaqOop.js → computer-device-mobile-phone-iphone-x.svg-Du3FKSEj.js} +1 -1
  75. package/web/assets/{computer-device-mobile-tablet-touch.svg-BC65H-Wy.js → computer-device-mobile-tablet-touch.svg-H6GqpM1S.js} +1 -1
  76. package/web/assets/{computer-device-mobile-tablet.svg-pIk1A-MA.js → computer-device-mobile-tablet.svg-rsu8KKri.js} +1 -1
  77. package/web/assets/{computer-device-network-ethernet-cat6.svg-CJJeY52X.js → computer-device-network-ethernet-cat6.svg-DzIHXUbc.js} +1 -1
  78. package/web/assets/{computer-device-network-lan-www.svg-BZQvS7kF.js → computer-device-network-lan-www.svg-BcRl-DsB.js} +1 -1
  79. package/web/assets/{computer-device-network-wifi-connection.svg-2PvHanNl.js → computer-device-network-wifi-connection.svg-BQfc3Yv3.js} +1 -1
  80. package/web/assets/{computer-device-network-wifi-router.svg-zO1msMdQ.js → computer-device-network-wifi-router.svg-DATh-sJZ.js} +1 -1
  81. package/web/assets/{cssMode-C7hrywnS.js → cssMode-DYq4p3pS.js} +1 -1
  82. package/web/assets/{divider-xSFkNZuS.js → divider-BqkvJcrT.js} +2 -2
  83. package/web/assets/{docx-preview-CjWxgQ-C.js → docx-preview-rILu4Ooo.js} +1 -1
  84. package/web/assets/{ecology-science-erlenmeyer-flask.svg-DHimG7ap.js → ecology-science-erlenmeyer-flask.svg-BfLpsLp3.js} +1 -1
  85. package/web/assets/{fieldset--SZPF3MD.js → fieldset-BKU3xCS_.js} +2 -2
  86. package/web/assets/{freemarker2-BbPnOIWY.js → freemarker2-f8qPtCZo.js} +1 -1
  87. package/web/assets/{handlebars-CXbCTrew.js → handlebars-PLC0YnCq.js} +1 -1
  88. package/web/assets/{html-ty3-UbXV.js → html-R1rJfKYz.js} +1 -1
  89. package/web/assets/{htmlMode-D57pU926.js → htmlMode-CXUNeFnh.js} +1 -1
  90. package/web/assets/{image-flash-lightning.svg-Dob2Li0r.js → image-flash-lightning.svg-CMRw7fl0.js} +1 -1
  91. package/web/assets/{image-picture-flower.svg-BRxcKOOu.js → image-picture-flower.svg-OZf43WPd.js} +1 -1
  92. package/web/assets/{index-DgMcUhMc.js → index-C3STxTyh.js} +301 -301
  93. package/web/assets/{interface-alert-exclamation-diamond.svg-Cmld7PXP.js → interface-alert-exclamation-diamond.svg-C9vsWz3u.js} +1 -1
  94. package/web/assets/{interface-alert-exclamation-triangle-warning.svg-Bw7UDYTt.js → interface-alert-exclamation-triangle-warning.svg-jLeG-Qaw.js} +1 -1
  95. package/web/assets/{interface-alert-information-circle.svg-Dnvhp_26.js → interface-alert-information-circle.svg-1xEbdvYS.js} +1 -1
  96. package/web/assets/{interface-award-crown.svg-CP4Pl0YZ.js → interface-award-crown.svg-bM-an9km.js} +1 -1
  97. package/web/assets/{interface-bookmark.svg-cQjMEE4B.js → interface-bookmark-tag.svg-BQQR5Fec.js} +1 -1
  98. package/web/assets/{interface-bookmark-tag.svg-xczywRbU.js → interface-bookmark.svg-4kmGsjaB.js} +1 -1
  99. package/web/assets/{interface-calendar-date-one.svg-CwtdNynk.js → interface-calendar-date-one.svg-CLrDHXXm.js} +1 -1
  100. package/web/assets/{interface-content-book-open-pages.svg-DZ2KU7G8.js → interface-content-book-open-pages.svg-h7WfByRE.js} +1 -1
  101. package/web/assets/{interface-content-book-page.svg-BaPv-9rL.js → interface-content-book-page.svg-Bx91re2q.js} +1 -1
  102. package/web/assets/{interface-content-file.svg-BZJtwiL1.js → interface-content-file.svg-CQjUUrgh.js} +1 -1
  103. package/web/assets/{interface-content-folder.svg-DB9MQGQ4.js → interface-content-folder.svg-B9cFyNvV.js} +1 -1
  104. package/web/assets/interface-content-folder.svg-BPvWC3z_.js +1 -0
  105. package/web/assets/{interface-copy-clipboard.svg-yyVdu6pX.js → interface-copy-clipboard.svg-B3S8Vfxo.js} +1 -1
  106. package/web/assets/{interface-edit-attachment.svg-C3RMyf1l.js → interface-edit-attachment.svg-CQZVxhlC.js} +1 -1
  107. package/web/assets/{interface-edit-binocular.svg-BuQ7dKNu.js → interface-edit-binocular.svg-DfC2Pahm.js} +1 -1
  108. package/web/assets/{interface-edit-magic-wand.svg-Cl-slEVG.js → interface-edit-magic-wand.svg-Bfhqp5lu.js} +1 -1
  109. package/web/assets/{interface-edit-tool-paint-roller.svg-VtA2xiUP.js → interface-edit-tool-paint-roller.svg-0FDuGPfN.js} +1 -1
  110. package/web/assets/{interface-edit-tool-pencil.svg-DDZ1Qpo3.js → interface-edit-tool-pencil.svg-D7KkgfzG.js} +1 -1
  111. package/web/assets/{interface-favorite-award.svg-C77bPJa7.js → interface-favorite-award.svg-C3RAkfuB.js} +1 -1
  112. package/web/assets/{interface-favorite-flag.svg-DPwM9eFd.js → interface-favorite-flag.svg-Bj2vRHQv.js} +1 -1
  113. package/web/assets/{interface-favorite-heart.svg-CjHOFAtX.js → interface-favorite-heart.svg-CXq0lOy-.js} +1 -1
  114. package/web/assets/{interface-favorite-star.svg-DACH9tr3.js → interface-favorite-star.svg-Baf01IBk.js} +1 -1
  115. package/web/assets/{interface-favorite-stars-sparkles.svg-BIylMQu0.js → interface-favorite-stars-sparkles.svg-8_eGhT6F.js} +1 -1
  116. package/web/assets/{interface-hierarchy-flowchart.svg-eaFiqkb5.js → interface-hierarchy-flowchart.svg-DVGI2yW7.js} +1 -1
  117. package/web/assets/{interface-home-house.svg-B4ey7IZt.js → interface-home-house.svg-DZl5Evdt.js} +1 -1
  118. package/web/assets/{interface-hyperlink.svg-CvW9MZwK.js → interface-hyperlink.svg-CEBnVwRT.js} +1 -1
  119. package/web/assets/{interface-lighting-brightness.svg-w5DuskTj.js → interface-lighting-brightness.svg-CUQwWui5.js} +1 -1
  120. package/web/assets/{interface-lock-closed.svg-BIZdNFIS.js → interface-lock-closed.svg-pZ-LeNa4.js} +1 -1
  121. package/web/assets/{interface-lock-open-unlock.svg-DS5_kBLT.js → interface-lock-open-unlock.svg-BliMiE5K.js} +1 -1
  122. package/web/assets/{interface-login-key.svg-BQlECtR3.js → interface-login-key.svg-DKsHsETI.js} +1 -1
  123. package/web/assets/{interface-search.svg-BS-x4i-8.js → interface-search.svg-FcK6AapL.js} +1 -1
  124. package/web/assets/{interface-setting-cog.svg-D0tRRHVL.js → interface-setting-cog.svg-06g-WCkx.js} +1 -1
  125. package/web/assets/{interface-share-megaphone-bullhorn.svg-BlGAEnhw.js → interface-share-megaphone-bullhorn.svg-Bqh6bbEA.js} +1 -1
  126. package/web/assets/{interface-share-rocket.svg-CLdFEyet.js → interface-share-rocket.svg-BQJZCYRF.js} +1 -1
  127. package/web/assets/{interface-share-satellite.svg-D3OkFEOt.js → interface-share-satellite.svg-Em_VWjzx.js} +1 -1
  128. package/web/assets/{interface-share-space-ship.svg-BTe2lxrV.js → interface-share-space-ship.svg-Bu_QD7lg.js} +1 -1
  129. package/web/assets/{interface-share.svg-BCTLtla3.js → interface-share.svg-CndhTESN.js} +1 -1
  130. package/web/assets/{interface-signal-square.svg-CqScSuc2.js → interface-signal-square.svg-DVpXZefh.js} +1 -1
  131. package/web/assets/{interface-time-clock-circle.svg-BDG1hFZs.js → interface-time-clock-circle.svg-PW_7DCaT.js} +1 -1
  132. package/web/assets/{interface-time-hour-glass.svg-Cu59RRWV.js → interface-time-hour-glass.svg-CRo5gAN6.js} +1 -1
  133. package/web/assets/{interface-users-multiple.svg-hznafpHR.js → interface-users-multiple.svg-DPWNkDAF.js} +1 -1
  134. package/web/assets/{interface-weather-moon.svg-30vqXYx7.js → interface-weather-moon.svg-BOImwH8c.js} +1 -1
  135. package/web/assets/{javascript-XaPiNZQv.js → javascript-BUF7UEGr.js} +1 -1
  136. package/web/assets/{jsonMode-tSmem8x1.js → jsonMode-t_hVvnT9.js} +2 -2
  137. package/web/assets/{liquid-f03Ti3hW.js → liquid-DPtzG1Ex.js} +1 -1
  138. package/web/assets/{lspLanguageFeatures-B23AQdJe.js → lspLanguageFeatures-CnYwfMpR.js} +3 -3
  139. package/web/assets/{mail-chat-bubble-square.svg-B2-pSu9j.js → mail-chat-bubble-square.svg-BwQ712nx.js} +1 -1
  140. package/web/assets/{mail-send-email-paper-airplane.svg-DwVcGr1a.js → mail-send-email-paper-airplane.svg-DVT1Rr05.js} +1 -1
  141. package/web/assets/{mail-send-envelope.svg-DMbyAXYt.js → mail-send-envelope.svg-DMPF4nfU.js} +1 -1
  142. package/web/assets/{mdx-Bpd9DTcy.js → mdx-Ev7Vt2Et.js} +1 -1
  143. package/web/assets/{minus-a6_7dk4h.js → minus-8Syk4U9f.js} +2 -2
  144. package/web/assets/modal-Bb8LwFay.js +1 -0
  145. package/web/assets/modal-DdsQR8Ed.js +5 -0
  146. package/web/assets/{money-cashier-receipt.svg-HlerUjGg.js → money-cashier-receipt.svg-BGkNgMnT.js} +1 -1
  147. package/web/assets/{money-currency-dollar-pay.svg-BrMvxswh.js → money-currency-dollar-pay.svg-BFWldbXb.js} +1 -1
  148. package/web/assets/{money-graph-arrow-increase.svg-CR9ynrN1.js → money-graph-arrow-increase.svg-BtmZdQqW.js} +1 -1
  149. package/web/assets/{money-graph-bar-chart-increase.svg-CLIYv9Zi.js → money-graph-bar-chart-increase.svg-13UVcDRv.js} +1 -1
  150. package/web/assets/multiselect-BHq9_nBK.js +251 -0
  151. package/web/assets/{nature-ecology-leaf.svg-CRFE2UOf.js → nature-ecology-leaf.svg-BUxD5cvD.js} +1 -1
  152. package/web/assets/{password-Crt6yaCK.js → password-Bi0MGGHq.js} +4 -4
  153. package/web/assets/{phone-telephone.svg-BAFjcykp.js → phone-telephone.svg-v8iEsFKp.js} +1 -1
  154. package/web/assets/{plus-BxB6gfY6.js → plus-DpOiBJot.js} +6 -6
  155. package/web/assets/process.store-D7wKTQ9s.js +1 -0
  156. package/web/assets/{programming-bug.svg-CaxsGXj9.js → programming-bug.svg-DWbQAqkb.js} +1 -1
  157. package/web/assets/{programming-cloud.svg-D_-CfmBD.js → programming-cloud.svg-DEJb3BXH.js} +1 -1
  158. package/web/assets/{programming-computer-database-server.svg-BP33fukT.js → programming-computer-database-server.svg-DrRhowmH.js} +1 -1
  159. package/web/assets/{programming-computer-database.svg-4nbbFmcO.js → programming-computer-database.svg-BENj2ccz.js} +1 -1
  160. package/web/assets/{programming-module-four-layout.svg-qcnfg-wb.js → programming-module-four-layout.svg-DxlxVrHQ.js} +1 -1
  161. package/web/assets/{programming-module-three.svg-CtFdkENo.js → programming-module-three.svg-DUcbV5fK.js} +1 -1
  162. package/web/assets/{programming-module.svg-LUuSbnoV.js → programming-module.svg-CuE3_TQx.js} +1 -1
  163. package/web/assets/{programming-script-code.svg-ul-1-tZT.js → programming-script-code.svg-D2D4dNgL.js} +1 -1
  164. package/web/assets/project-launch.store-zLYsFPXJ.js +1 -0
  165. package/web/assets/project.store-DhFTJJYC.js +1 -0
  166. package/web/assets/{python-rcJozlXm.js → python-Dmf5gldj.js} +1 -1
  167. package/web/assets/{razor-n_pGMGP7.js → razor-DbV6-aad.js} +1 -1
  168. package/web/assets/router-CDzXhK1o.js +1 -0
  169. package/web/assets/settings-scope-BuHu9I1x.js +1 -0
  170. package/web/assets/settings.store-CC3xIkfJ.js +1 -0
  171. package/web/assets/{shopping-cart.svg-D63t0Ee9.js → shopping-cart.svg-CiQsy6Nw.js} +1 -1
  172. package/web/assets/{shopping-gift-present.svg-CQhZ-xkS.js → shopping-gift-present.svg-CnpMOWNF.js} +1 -1
  173. package/web/assets/{shopping-shipping-box-parcel-package.svg-BXvVDMs7.js → shopping-shipping-box-parcel-package.svg-CCthnGYX.js} +1 -1
  174. package/web/assets/src-CwD_enr9.js +572 -0
  175. package/web/assets/src-D2pHP5dY.js +1 -0
  176. package/web/assets/src-DT1d6_ti.css +1 -0
  177. package/web/assets/{src-Q8zu2fVJ.js → src-HVRU8Mgy.js} +13 -13
  178. package/web/assets/{tabpanel-ojMcJKcL.js → tabpanel-DjCbPciG.js} +3 -3
  179. package/web/assets/{tag-new-circle.svg-DUEWkCr-.js → tag-new-circle.svg-D4Q5d0v7.js} +1 -1
  180. package/web/assets/theme-hW8ih2oq.js +1 -0
  181. package/web/assets/{toggleswitch-ChWnuWRp.js → toggleswitch-CAzbBCEx.js} +2 -2
  182. package/web/assets/{travel-map-earth-globe.svg-Bqc1W9oO.js → travel-map-earth-globe.svg-CqNRoHbM.js} +1 -1
  183. package/web/assets/trpc-CtAGDdPR.js +1 -0
  184. package/web/assets/{tsMode-De5mQ_m3.js → tsMode-CsSAagiw.js} +5 -5
  185. package/web/assets/{typescript-CoFf1maU.js → typescript-DKgCTT5e.js} +1 -1
  186. package/web/assets/useAiChatDrawer-CV6qDJ2t.js +1 -0
  187. package/web/assets/{useCloudOrg-PgHbQuMN.js → useCloudOrg-Cf4fKph_.js} +1 -1
  188. package/web/assets/useEnvVarAutocomplete-7Y2oifod.js +1 -0
  189. package/web/assets/useProjectCatalog-KNHOI1Dj.js +1 -0
  190. package/web/assets/useProjectCloudOrg-DJPAoob6.js +1 -0
  191. package/web/assets/useServiceUrlHost-D_O6E1-V.js +1 -0
  192. package/web/assets/{xml-COAqiO0X.js → xml-CRDnGqGZ.js} +1 -1
  193. package/web/assets/{yaml-B5Xmo958.js → yaml-BjVvTIlo.js} +1 -1
  194. package/web/index.html +1 -1
  195. package/chunk-QYFLRYTR.js.map +0 -1
  196. package/src-NH6Z6SKR.js.map +0 -1
  197. package/tray-NZOXYN5G.js.map +0 -1
  198. package/web/assets/AgentScalarChatInterface.vue-bVUbJM6k.js +0 -13
  199. package/web/assets/AgentTerminalPage-BTTCmZ8e.js +0 -1
  200. package/web/assets/AiChatPage-D8jocQri.js +0 -1
  201. package/web/assets/AppLayout-Cn-MzICV.js +0 -1
  202. package/web/assets/AuditPage-AeuQRjbs.js +0 -1
  203. package/web/assets/CloudAccountPage-BzNSVdY6.js +0 -1
  204. package/web/assets/CloudAccountPage-D233-TJM.js +0 -1
  205. package/web/assets/CloudMessagingPage-BYzmzyXT.js +0 -2
  206. package/web/assets/DashboardPage-BOnyPov5.js +0 -164
  207. package/web/assets/DirectoryPickerDialog-hjrZkIOv.js +0 -1
  208. package/web/assets/EnvironmentFormPage-CT1_FZrS.js +0 -1
  209. package/web/assets/EnvironmentListPage-DNm1Zjfz.js +0 -1
  210. package/web/assets/KanbanBoardPage-BHjb62Os.js +0 -4
  211. package/web/assets/KanbanListPage-CEuMG9RC.js +0 -1
  212. package/web/assets/LaunchProjectPage-DUDdMjko.js +0 -1
  213. package/web/assets/LaunchServicesPage-DiQrNueu.js +0 -1
  214. package/web/assets/LaunchServicesPage-PMkfsl54.css +0 -1
  215. package/web/assets/LogViewer-BpEtGsZ5.js +0 -3
  216. package/web/assets/OrgKeyPrompt-CE9pStU1.js +0 -1
  217. package/web/assets/ProcessDetailPage-8y2SxEU-.js +0 -1
  218. package/web/assets/RandomJobTestPage-Db2N7EO6.js +0 -2
  219. package/web/assets/ScenarioEditorPage-DZGwKqca.js +0 -14
  220. package/web/assets/SendToChatDialog-npzyD5uP.js +0 -1
  221. package/web/assets/ServiceControlsBar-FVooFZc5.js +0 -1
  222. package/web/assets/ServiceDetailPage-CgqjxBM6.js +0 -2
  223. package/web/assets/ServiceFormPage-CYOoNVF1.js +0 -1
  224. package/web/assets/SettingsPage-CoGjqOzD.js +0 -2063
  225. package/web/assets/UnlockPage-CGiYwSyZ.js +0 -1
  226. package/web/assets/VaultMigrationPage-CyiBrr-p.js +0 -1
  227. package/web/assets/VersionBadge-DX13eD3-.js +0 -1
  228. package/web/assets/WikiPage-DXipm2xF.js +0 -1
  229. package/web/assets/WikiView-2NvYhk4Z.js +0 -1
  230. package/web/assets/add-scalar-classes-raPkwxxx.js +0 -387
  231. package/web/assets/card-B7N8GBzU.js +0 -32
  232. package/web/assets/client-BTPVHpIK.js +0 -24
  233. package/web/assets/cloud-chat.store-BVbcxYpE.js +0 -1
  234. package/web/assets/cloud-client-BQK_KiGt.js +0 -1
  235. package/web/assets/cloud-session-B8hpRdx9.js +0 -1
  236. package/web/assets/cloud-session-ClyLQ2X7.js +0 -2
  237. package/web/assets/interface-content-folder.svg-DzRoqEFB.js +0 -1
  238. package/web/assets/modal-BANEeRpn.js +0 -1
  239. package/web/assets/modal-a6Kt1dzz.js +0 -5
  240. package/web/assets/multiselect-CHVr6bCm.js +0 -251
  241. package/web/assets/process-Cf4Ob2V-.js +0 -1
  242. package/web/assets/process.store-BmgNhpT0.js +0 -1
  243. package/web/assets/project-launch.store-CV2GbIs6.js +0 -1
  244. package/web/assets/project.store-B9iW5FCC.js +0 -1
  245. package/web/assets/router-QurlNTcy.js +0 -1
  246. package/web/assets/settings-scope-DGxVjPdn.js +0 -1
  247. package/web/assets/settings.store-BDTiKnY0.js +0 -1
  248. package/web/assets/src-BCqSqqR1.js +0 -1
  249. package/web/assets/src-CkiFdVCe.css +0 -1
  250. package/web/assets/src-DG6rIcRE.js +0 -572
  251. package/web/assets/theme-CsisqT_G.js +0 -1
  252. package/web/assets/trpc-JF-OgMjz.js +0 -1
  253. package/web/assets/useAiChatDrawer-CxSowewJ.js +0 -1
  254. package/web/assets/useEnvVarAutocomplete-Bi1n69eW.js +0 -1
  255. package/web/assets/useProjectCatalog-C8_X7ldz.js +0 -1
  256. package/web/assets/useProjectCloudOrg-Cw8Kpegk.js +0 -1
  257. package/web/assets/useServiceUrlHost-DyClDWJE.js +0 -1
  258. /package/{chat-XSI73SXM.js.map → chat-HXONIBWN.js.map} +0 -0
  259. /package/{chunk-N46G7MQW.js.map → chunk-V7A622EJ.js.map} +0 -0
  260. /package/{companion-DCFBV2BV.js.map → companion-22KIHB4W.js.map} +0 -0
  261. /package/web/assets/{abap-DblxFMgX.js → abap-B8g_2xYy.js} +0 -0
  262. /package/web/assets/{apex-C_fmPlQy.js → apex-Bm8w4T5A.js} +0 -0
  263. /package/web/assets/{azcli-D73HZyav.js → azcli-BqdUW6F8.js} +0 -0
  264. /package/web/assets/{bat-Br4Biw6V.js → bat-Bngf0lQU.js} +0 -0
  265. /package/web/assets/{bicep-Cwg6_V-m.js → bicep-DzO554JS.js} +0 -0
  266. /package/web/assets/{browser-D6yPejPt.js → browser-BJX5ZrVN.js} +0 -0
  267. /package/web/assets/{cameligo-Dq6Izwzi.js → cameligo-Bcy3ohdb.js} +0 -0
  268. /package/web/assets/{clojure-U0exYVUx.js → clojure-CZbiqkDV.js} +0 -0
  269. /package/web/assets/{coffee-mPGPozSE.js → coffee-CDuhyV-7.js} +0 -0
  270. /package/web/assets/{cpp-lpr_PQMA.js → cpp-BklV8f4x.js} +0 -0
  271. /package/web/assets/{csharp-saQQwY3s.js → csharp-BelR_XiC.js} +0 -0
  272. /package/web/assets/{csp-CcDpUBZN.js → csp-DUjeBS2K.js} +0 -0
  273. /package/web/assets/{css-D6QFYBbL.js → css-CvbYbEko.js} +0 -0
  274. /package/web/assets/{cypher-B_4KCq-w.js → cypher-Dwrbk-SP.js} +0 -0
  275. /package/web/assets/{dart-CgLuovz1.js → dart-BW1E5h9O.js} +0 -0
  276. /package/web/assets/{dockerfile-DObNIc52.js → dockerfile-B41ilpF9.js} +0 -0
  277. /package/web/assets/{ecl-BpCwjSsH.js → ecl-BZE6Vxna.js} +0 -0
  278. /package/web/assets/{elixir-CebZWKus.js → elixir-CtYg0bLh.js} +0 -0
  279. /package/web/assets/{flow9-DhoDs9JD.js → flow9-Sgvy48_I.js} +0 -0
  280. /package/web/assets/{fsharp-YDWqgr0W.js → fsharp-BzAfXfKg.js} +0 -0
  281. /package/web/assets/{go-CaPX4mu5.js → go-D7oonABu.js} +0 -0
  282. /package/web/assets/{graphql-DOSo46Ed.js → graphql-BEN-qkl0.js} +0 -0
  283. /package/web/assets/{hcl-nSYpx4qj.js → hcl-CE0OhwCq.js} +0 -0
  284. /package/web/assets/{ini-Ca22qQIM.js → ini-CCLtcvjA.js} +0 -0
  285. /package/web/assets/{java-KrQduvTo.js → java-Bao8w_gp.js} +0 -0
  286. /package/web/assets/{julia-Bb2MDsY_.js → julia-Dr0hFYrl.js} +0 -0
  287. /package/web/assets/{kotlin-DB7e82Vg.js → kotlin-Cbfu8lcM.js} +0 -0
  288. /package/web/assets/{less-K5fiQqgY.js → less-BU4gEpXr.js} +0 -0
  289. /package/web/assets/{lexon-Do9EcqkA.js → lexon-GpBGGdTS.js} +0 -0
  290. /package/web/assets/{lua-DU9Dpzvs.js → lua-DIPKk37y.js} +0 -0
  291. /package/web/assets/{m3-pF6PmPkL.js → m3-CSOypKGf.js} +0 -0
  292. /package/web/assets/{markdown-BNRSTD3D.js → markdown-VDqAgkyM.js} +0 -0
  293. /package/web/assets/{mips-OIXxWbNl.js → mips-BJWI6dX7.js} +0 -0
  294. /package/web/assets/{msdax-Blzk7oHr.js → msdax-BLpuE5Dc.js} +0 -0
  295. /package/web/assets/{mysql-CISO3r5e.js → mysql-ZsxiEUoY.js} +0 -0
  296. /package/web/assets/{objective-c-CfnC_OAj.js → objective-c-DcQa1iPc.js} +0 -0
  297. /package/web/assets/{pascal-BUF-IB2S.js → pascal-u-hmXdyn.js} +0 -0
  298. /package/web/assets/{pascaligo-BKce2a7P.js → pascaligo-DqbP-1C6.js} +0 -0
  299. /package/web/assets/{perl-BSNQJqG3.js → perl-CUeQpRkH.js} +0 -0
  300. /package/web/assets/{pgsql-B6gnZ9Pz.js → pgsql-CQ7FhAFN.js} +0 -0
  301. /package/web/assets/{php-D3DRjlE-.js → php-BEf_fu3E.js} +0 -0
  302. /package/web/assets/{pla-DMkpEwWz.js → pla-CXNNbT0w.js} +0 -0
  303. /package/web/assets/{postiats-CS9vJAK8.js → postiats-CIXLZwPb.js} +0 -0
  304. /package/web/assets/{powerquery-5wdkUpGP.js → powerquery-DnGPASFA.js} +0 -0
  305. /package/web/assets/{powershell-CFy-OLZK.js → powershell-1Y1kqIZS.js} +0 -0
  306. /package/web/assets/{protobuf-BexdMU0z.js → protobuf-Cfo9haoG.js} +0 -0
  307. /package/web/assets/{pug-D7XxQLO5.js → pug-BujEZqmy.js} +0 -0
  308. /package/web/assets/{qsharp-Cbf2FpNP.js → qsharp-BL9AqNGD.js} +0 -0
  309. /package/web/assets/{r-DF7k9FbU.js → r-D0dhpGOM.js} +0 -0
  310. /package/web/assets/{redis-CsS7YEaP.js → redis-BMLwD7W9.js} +0 -0
  311. /package/web/assets/{redshift-ELXdujA0.js → redshift-CkHh73og.js} +0 -0
  312. /package/web/assets/{restructuredtext-xoFIa5lj.js → restructuredtext-DZ-LF65W.js} +0 -0
  313. /package/web/assets/{ruby-BqZs-MXO.js → ruby-UzPHTzc9.js} +0 -0
  314. /package/web/assets/{rust-Bg6ZO_et.js → rust-ja9NGnXZ.js} +0 -0
  315. /package/web/assets/{sb-DiB12F6v.js → sb-BNdOJbMY.js} +0 -0
  316. /package/web/assets/{scala-DElpnKpP.js → scala-LlhkyN6l.js} +0 -0
  317. /package/web/assets/{scheme-1ahRBKOq.js → scheme-BAj99YIn.js} +0 -0
  318. /package/web/assets/{scss-DEMPy3QV.js → scss-chS-xxB3.js} +0 -0
  319. /package/web/assets/{shell-DPy86lBu.js → shell-CcH7eYIc.js} +0 -0
  320. /package/web/assets/{solidity-BJ26fCkf.js → solidity-cVvnqX-K.js} +0 -0
  321. /package/web/assets/{sophia-BisqpnJK.js → sophia-BBT-EdFw.js} +0 -0
  322. /package/web/assets/{sparql-C7Lhhim4.js → sparql-DGEqOrB6.js} +0 -0
  323. /package/web/assets/{sql-BXVElqbr.js → sql-CcTErTxM.js} +0 -0
  324. /package/web/assets/{st-C3Kk-cML.js → st-Bjw-B4mN.js} +0 -0
  325. /package/web/assets/{swift-D8IWJydR.js → swift-Bid-7bBd.js} +0 -0
  326. /package/web/assets/{systemverilog-524SrI2Q.js → systemverilog-CXju7Nd-.js} +0 -0
  327. /package/web/assets/{tcl-MYNTx-d-.js → tcl-D-Dw7JFz.js} +0 -0
  328. /package/web/assets/{twig-BAVZN0tW.js → twig-BIPbzEWT.js} +0 -0
  329. /package/web/assets/{typespec-BhgMHLJQ.js → typespec-UJSutGCV.js} +0 -0
  330. /package/web/assets/{uuid-Cro0aJm3.js → uuid--pMuF47W.js} +0 -0
  331. /package/web/assets/{vb-BLauMmY8.js → vb-oyG_LJw0.js} +0 -0
  332. /package/web/assets/{w3c-keyname-tfhvQ9CV.js → w3c-keyname-DtJs0qQm.js} +0 -0
  333. /package/web/assets/{wgsl-ybvhdvmz.js → wgsl-DXZ6ljB6.js} +0 -0
@@ -1,2 +0,0 @@
1
- import{$n as e,Ai as t,Bn as n,Ca as r,Cn as i,Ct as a,Di as o,Dn as s,Ea as c,Fi as l,I as u,Ia as d,Ii as f,In as p,Ji as m,Jt as h,Oi as g,On as _,Pa as v,Qt as y,Ri as b,Sa as x,Si as S,Un as C,Va as w,Vi as T,Vn as E,Wt as ee,Xa as D,Xt as O,Yt as k,_i as te,_t as A,aa as j,dr as ne,et as re,f as ie,ft as ae,hn as M,ji as N,ka as P,ki as F,mn as oe,mt as se,nr as ce,nt as le,or as I,pn as L,qa as ue,qt as de,ra as fe,rt as pe,sa as me,sn as he,sr as ge,st as _e,ta as ve,tr as ye,tt as be,ut as xe,va as R,wi as z,wn as Se,xi as B,xt as Ce,za as we,zi as Te,zn as V}from"./index-DgMcUhMc.js";import"./cloud-session-ClyLQ2X7.js";import"./src-BCqSqqR1.js";import"./useServiceUrlHost-DyClDWJE.js";import"./ProcessControls-CsWzruEm.js";import{t as Ee}from"./ServiceControlsBar-FVooFZc5.js";import{t as De}from"./uuid-Cro0aJm3.js";import{n as Oe,t as ke}from"./column-Dj8-WSbH.js";import{n as Ae}from"./plus-BxB6gfY6.js";import{t as je}from"./checkbox-BEqo7VlA.js";import"./useProjectCloudOrg-Cw8Kpegk.js";import{t as Me}from"./toggleswitch-ChWnuWRp.js";import{i as Ne,n as Pe,o as Fe,r as Ie,t as Le}from"./tabpanel-ojMcJKcL.js";import{i as Re,n as ze,r as Be,t as Ve}from"./useEnvVarAutocomplete-Bi1n69eW.js";import{t as He}from"./autocomplete-CybakBEo.js";import"./src-Q8zu2fVJ.js";import"./w3c-keyname-tfhvQ9CV.js";import"./SendToChatDialog-npzyD5uP.js";import{n as Ue,t as We}from"./ProcessMetrics-CUzyutMf.js";import{t as Ge}from"./LogViewer-BpEtGsZ5.js";import{t as Ke}from"./divider-xSFkNZuS.js";import{t as qe}from"./settings.store-BDTiKnY0.js";import{t as Je}from"./WikiView-2NvYhk4Z.js";var Ye={key:0,class:`log-details`},Xe={class:`log-details__section`},Ze={class:`log-details__label`},Qe={class:`log-details__value log-details__value--box`},$e={class:`log-details__section`},et={class:`log-details__label`},tt={class:`log-details__value log-details__value--box log-details__value--code`},nt={class:`log-details__section`},rt={class:`log-details__label`},it={class:`log-details__value log-details__value--box`},at={class:`log-details__process`},ot={class:`log-details__section`},st={class:`log-details__label`},ct={class:`log-details__value log-details__value--box`},lt={key:0,class:`log-details__section`},ut={class:`log-details__label`},dt={class:`log-details__value log-details__value--box log-details__value--code`,"data-testid":`log-details-cwd`},ft={class:`log-details__section`},pt={class:`log-details__label`},mt={class:`log-details__value log-details__value--box`},ht={key:1,class:`log-details__section`},gt={class:`log-details__label`},_t={class:`log-details__value log-details__value--box`},vt={key:2,class:`log-details__section`},yt={class:`log-details__label`},bt={class:`log-details__value log-details__value--box log-details__value--code`},xt=V(b({__name:`LogDetailsDrawer`,props:{visible:{type:Boolean},log:{}},emits:[`update:visible`,`view-process`],setup(e,{emit:r}){let i=e,{t:a}=ne(),s=ie(),c=r,l=o(()=>{if(!i.log)return``;let e=new Date(i.log.timestamp);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)} ${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}:${String(e.getSeconds()).padStart(2,`0`)}`}),u=o(()=>i.log?i.log.level.charAt(0).toUpperCase()+i.log.level.slice(1):``),d=o(()=>!i.log||i.log.pid==null?a(`logDetails.notAvailable`):String(i.log.pid)),p=o(()=>i.log?s.getByService(i.log.processId)[0]?.cwd??null:null);function m(){i.log&&c(`view-process`,i.log.processId)}function h(){c(`update:visible`,!1)}return(r,i)=>(j(),F(D(n),{visible:e.visible,position:`right`,header:D(a)(`logDetails.header`),style:{width:`440px`},"onUpdate:visible":h},{default:x(()=>[e.log?(j(),N(`div`,Ye,[g(`div`,Xe,[g(`div`,Ze,P(D(a)(`logDetails.type`)),1),g(`div`,Qe,P(u.value),1)]),g(`div`,$e,[g(`div`,et,P(D(a)(`logDetails.rawMessage`)),1),g(`div`,tt,P(e.log.raw),1)]),g(`div`,nt,[g(`div`,rt,P(D(a)(`logDetails.serviceId`)),1),g(`div`,it,[g(`div`,at,[g(`span`,null,P(e.log.processId),1),f(D(C),{label:D(a)(`logDetails.viewProcess`),icon:`pi pi-external-link`,size:`small`,outlined:``,onClick:m},null,8,[`label`])])])]),g(`div`,ot,[g(`div`,st,P(D(a)(`logDetails.pid`)),1),g(`div`,ct,P(d.value),1)]),p.value?(j(),N(`div`,lt,[g(`div`,ut,P(D(a)(`logDetails.cwd`)),1),g(`div`,dt,P(p.value),1)])):t(``,!0),g(`div`,ft,[g(`div`,pt,P(D(a)(`logDetails.timestamp`)),1),g(`div`,mt,P(l.value),1)]),e.log.stream?(j(),N(`div`,ht,[g(`div`,gt,P(D(a)(`logDetails.stream`)),1),g(`div`,_t,P(e.log.stream),1)])):t(``,!0),e.log.metadata&&Object.keys(e.log.metadata).length>0?(j(),N(`div`,vt,[g(`div`,yt,P(D(a)(`logDetails.metadata`)),1),g(`div`,bt,P(JSON.stringify(e.log.metadata,null,2)),1)])):t(``,!0)])):t(``,!0)]),_:1},8,[`visible`,`header`]))}}),[[`__scopeId`,`data-v-4e3f7abe`]]),St=500,Ct=5,wt=se;function Tt(e){return e+Math.random()*e*.3}function Et(e,t){let n=w([]),r=w(!1),i=null,a=0,o=null,c=s(()=>{a=0,r.value||C()}),l=[],u=null,d=w(0),f=w(0),m=0,h=0,g=null;function v(){g||=setInterval(()=>{d.value=m,f.value=h,m=0,h=0},1e3)}function y(){g&&=(clearInterval(g),null),d.value=0,f.value=0,m=0,h=0}function b(){if(u=null,l.length===0)return;let e=l;l=[],h+=e.length;let t=[...n.value,...e];t.length>St&&(t=t.slice(t.length-St)),n.value=t}function x(){!e.value||!t.value||(r.value=!0,i=_.process.onLog.subscribe({agentId:e.value,processId:t.value},{onData(e){let t=e;if(a=0,p(`connected`),t.some(e=>e.__clearLogBuffer)){n.value=[],l=[];return}m+=t.length,l.push(...t),u===null&&(u=requestAnimationFrame(b))},onError(e){console.error(`[useLogStream] Subscription error:`,e.message),r.value=!1,i=null,S()}}))}function S(){if(a>=Ct){console.warn(`[useLogStream] Max retries (${Ct}) reached`),p(`disconnected`);return}p(`reconnecting`);let e=Tt(wt*2**a);a++,o=setTimeout(()=>{o=null,C()},e)}async function C(){if(!r.value&&!(!e.value||!t.value)){a=0;try{let r=await _.process.logs.query({agentId:e.value,processId:t.value});r.length>St&&(r=r.slice(r.length-St)),n.value=r,p(`connected`)}catch{}x()}}function T(){o&&=(clearTimeout(o),null),u!==null&&(cancelAnimationFrame(u),u=null),l=[],y(),i&&=(i.unsubscribe(),null),r.value=!1,a=0,n.value=[]}return R([e,t],([e,t],[n,i])=>{(e!==n||t!==i)&&(r.value&&T(),C())}),fe(()=>{c(),T()}),{logs:n,isStreaming:r,start:C,stop:T,receivedPerSec:d,flushedPerSec:f,startStats:v,stopStats:y}}var Dt={class:`service-terminal__toolbar`},Ot={class:`service-terminal__toolbar-left`},kt={key:0,class:`pid-option`},At={key:1,class:`pid-option`},jt={key:0,class:`pi pi-circle-fill pid-status-icon pid-status-icon--active`,style:{"margin-right":`0.5rem`}},Mt={key:1,class:`pi pi-circle-fill pid-status-icon pid-status-icon--stopped`,style:{"margin-right":`0.5rem`}},Nt={class:`pid-option`},Pt={key:0,class:`pi pi-list`,style:{"margin-right":`0.5rem`}},Ft=[`title`],It=[`title`],Lt={class:`service-terminal__toolbar-right`},Rt={class:`service-terminal__content`,"data-testid":`service-terminal-content`},zt={key:1,class:`service-terminal__shortcuts`},Bt={class:`service-terminal__command-input`},Vt={class:`service-terminal__bottom`},Ht=`runeya_command_history_`,Ut=50,Wt=V(b({__name:`ServiceTerminal`,props:{service:{},processes:{}},setup(e){let{t:n}=ne(),r=e,i=o(()=>r.processes.find(e=>e.state===`running`||e.state===`starting`)??r.processes[0]??null),a=o(()=>i.value?.agentId??``),s=o(()=>i.value?.id??``),l=ge(),{logs:u,isStreaming:d,start:p,stop:h,receivedPerSec:v,flushedPerSec:y,startStats:b,stopStats:S}=Et(a,s),T=w(!1);R(T,e=>{e?b():S()});function E(e){e.ctrlKey&&e.shiftKey&&(e.key===`*`||e.key===`µ`)&&(e.preventDefault(),T.value=!T.value)}let ee=o(()=>{let e=new Map;return u.value.forEach(t=>{if(t.pid!=null){let n=e.get(t.pid);if(n)n.lastSeen=new Date(Math.max(n.lastSeen.getTime(),new Date(t.timestamp).getTime())),n.logCount++;else{let n=r.processes.find(e=>e.pid===t.pid&&(e.state===`running`||e.state===`starting`));e.set(t.pid,{pid:t.pid,lastSeen:new Date(t.timestamp),logCount:1,isActive:!!n})}}}),Array.from(e.values()).sort((e,t)=>t.lastSeen.getTime()-e.lastSeen.getTime())}),O=o(()=>Me.value===`all`?u.value:u.value.filter(e=>e.pid===Me.value)),k=o(()=>ee.value.filter(e=>e.isActive).length),te=o(()=>{let e=[{label:n(`serviceTerminal.allProcesses`),value:`all`,badge:k.value>0?`${k.value} ${n(`serviceTerminal.active`)}`:void 0,isActive:void 0}];return ee.value.forEach(({pid:t,logCount:n,isActive:r})=>{e.push({label:`PID: ${t}`,value:t,badge:`${n} logs`,isActive:r})}),e});o(()=>r.processes.filter(e=>e.state===`running`).length);async function A(){if(i.value)try{await _.process.clearLogBuffer.mutate({agentId:i.value.agentId,processId:i.value.id}),u.value=[]}catch(e){l.add({severity:`error`,summary:n(`serviceTerminal.error`),detail:e.message??n(`serviceTerminal.failedToClearLogs`),life:5e3})}}let re=o(()=>r.service.shortcuts??[]),ie=w(new Set);async function ae(e){let t=i.value?.agentId??r.service.agentId,a=i.value?.id??r.service.id;if(!t){l.add({severity:`warn`,summary:n(`serviceTerminal.noAgent`),detail:n(`serviceTerminal.noAgentDesc`),life:3e3});return}if(ie.value.has(e.id)){try{await _.process.cancelShortcut.mutate({agentId:t,processId:a,shortcutId:e.id})}catch{}return}ie.value=new Set([...ie.value,e.id]);try{await _.process.executeShortcut.mutate({agentId:t,processId:a,shortcut:e})}catch(e){l.add({severity:`error`,summary:n(`serviceTerminal.shortcutFailed`),detail:e.message??n(`serviceTerminal.shortcutFailed`),life:5e3})}finally{let t=new Set(ie.value);t.delete(e.id),ie.value=t}}let M=w(``),se=w(new Set),ce=o(()=>se.value.size>0),le=w(null),I=w([]),L=w(-1),ue=`ls,ls -la,ls -lh,pwd,echo,echo $PWD,cat,cat package.json,grep,find,find . -name,ps,ps aux,top,htop,df -h,du -sh,tail,tail -f,tail -n 100,head,head -n 20,wc -l,curl,wget,git status,git log,git diff,git branch,npm run,npm install,npm test,npm start,yarn,yarn install,yarn test,yarn build,docker ps,docker logs,docker exec,env,printenv,whoami,hostname,date,uptime`.split(`,`),de=w([]);function pe(e){let t=e.query.toLowerCase().trim();if(!t||!M.value.trim()){de.value=[];return}let n=[...I.value.slice().reverse(),...ue],r=new Set;de.value=n.filter(e=>r.has(e)?!1:(r.add(e),e.toLowerCase().includes(t))).slice(0,10)}function _e(){try{let e=localStorage.getItem(Ht+r.service.id);e&&(I.value=JSON.parse(e))}catch{I.value=[]}}function ye(){try{localStorage.setItem(Ht+r.service.id,JSON.stringify(I.value))}catch{}}function be(e){I.value[I.value.length-1]!==e&&(I.value=[...I.value,e],I.value.length>Ut&&(I.value=I.value.slice(-Ut)),ye())}async function xe(){let e=i.value?.agentId??r.service.agentId,t=i.value?.id??r.service.id;if(e)try{await _.process.cancelAdHocCommand.mutate({agentId:e,processId:t})}catch{}}async function Se(){if(!M.value.trim())return;let e=i.value?.agentId??r.service.agentId,t=i.value?.id??r.service.id;if(!e){l.add({severity:`warn`,summary:n(`serviceTerminal.noAgent`),detail:n(`serviceTerminal.noAgentDesc`),life:3e3});return}let a=De(),o=M.value.trim();be(o),M.value=``,de.value=[],L.value=-1,se.value=new Set([...se.value,a]);try{await _.process.executeAdHocCommand.mutate({agentId:e,processId:t,command:o,commandId:a})}catch(e){l.add({severity:`error`,summary:n(`serviceTerminal.commandFailed`),detail:e.message??n(`serviceTerminal.commandFailed`),life:5e3})}finally{let e=new Set(se.value);e.delete(a),se.value=e,m(()=>{document.querySelector(`.service-terminal__input`)?.focus()})}}function B(e){if(e.key===`Enter`&&!e.shiftKey){e.preventDefault(),Se();return}if(e.key===`ArrowUp`){if(e.preventDefault(),I.value.length===0)return;L.value===-1?L.value=I.value.length-1:L.value>0&&L.value--,M.value=I.value[L.value]||``}else if(e.key===`ArrowDown`){if(e.preventDefault(),L.value===-1)return;L.value<I.value.length-1?(L.value++,M.value=I.value[L.value]||``):(L.value=-1,M.value=``)}}function Ce(){if(u.value.length===0)return;let e=u.value.map(e=>`[${new Date(e.timestamp).toISOString()}] ${e.level.toUpperCase().padEnd(5)} ${e.message}`),t=new Blob([e.join(`
2
- `)],{type:`text/plain`}),n=URL.createObjectURL(t),i=document.createElement(`a`);i.href=n,i.download=`${r.service.name}-${new Date().toISOString().slice(0,19).replaceAll(`:`,`-`)}.log`,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(n)}let we=w(0),Te=0,V=null,Oe=null;R(i,e=>{if(!(e&&(e.state===`running`||e.state===`starting`))){V&&=(clearInterval(V),null),Oe=null,we.value=e?.uptime??0;return}let t=e.uptime??0;e.id!==Oe&&(V&&=(clearInterval(V),null),Oe=e.id,Te=e.startedAt?new Date(e.startedAt).getTime():Date.now()-t,we.value=Date.now()-Te,V=setInterval(()=>{we.value=Date.now()-Te},1e3))},{immediate:!0});let ke=w(!0),Ae=w(null),je=w(!1),Me=w(`all`),Ne=w(!1);function Pe(){Ne.value=!Ne.value}ve(()=>{_e(),i.value&&p(),window.addEventListener(`keydown`,E)}),fe(()=>{h(),window.removeEventListener(`keydown`,E),V&&clearInterval(V)});function Fe(e){let t=Math.floor(e/3600),n=Math.floor(e%3600/60),r=Math.floor(e%60);return`${t.toString().padStart(2,`0`)}:${n.toString().padStart(2,`0`)}:${r.toString().padStart(2,`0`)}`}function Ie(e){Ae.value=e,je.value=!0}function Le(e){je.value=!1,l.add({severity:`info`,summary:`Process`,detail:`Process ID: ${e}`,life:3e3})}return(a,o)=>(j(),N(`div`,{class:c([`service-terminal`,{"service-terminal--fullscreen":Ne.value}]),"data-testid":`service-terminal`},[Ne.value?(j(),F(Ee,{key:0,service:e.service,processes:e.processes},null,8,[`service`,`processes`])):t(``,!0),g(`div`,Dt,[g(`div`,Ot,[f(D(C),{label:D(n)(`serviceTerminal.logs`),severity:ke.value?`primary`:`secondary`,text:``,size:`small`,onClick:o[0]||=e=>ke.value=!0},null,8,[`label`,`severity`]),f(D(he),{modelValue:Me.value,"onUpdate:modelValue":o[1]||=e=>Me.value=e,options:te.value,"option-label":`label`,"option-value":`value`,class:`service-terminal__pid-selector`},{value:x(e=>[e.value===`all`?(j(),N(`div`,kt,[o[5]||=g(`i`,{class:`pi pi-list`,style:{"margin-right":`0.5rem`}},null,-1),g(`span`,null,P(D(n)(`serviceTerminal.allProcesses`)),1),k.value>0?(j(),F(D(oe),{key:0,value:`${k.value} ${D(n)(`serviceTerminal.active`)}`,severity:`secondary`,class:`pid-badge`},null,8,[`value`])):t(``,!0)])):(j(),N(`div`,At,[te.value.find(t=>t.value===e.value)?.isActive?(j(),N(`i`,jt)):(j(),N(`i`,Mt)),g(`span`,null,`PID: `+P(e.value),1)]))]),option:x(e=>[g(`div`,Nt,[e.option.value===`all`?(j(),N(`i`,Pt)):e.option.isActive?(j(),N(`i`,{key:1,class:`pi pi-circle-fill pid-status-icon pid-status-icon--active`,title:D(n)(`serviceTerminal.running`)},null,8,Ft)):(j(),N(`i`,{key:2,class:`pi pi-circle-fill pid-status-icon pid-status-icon--stopped`,title:D(n)(`serviceTerminal.stopped`)},null,8,It)),g(`span`,null,P(e.option.label),1),e.option.badge?(j(),F(D(oe),{key:3,value:e.option.badge,severity:`secondary`,class:`pid-badge`},null,8,[`value`])):t(``,!0)])]),_:1},8,[`modelValue`,`options`])]),g(`div`,Lt,[f(D(C),{icon:Ne.value?`pi pi-window-minimize`:`pi pi-window-maximize`,text:``,rounded:``,size:`small`,title:Ne.value?D(n)(`serviceTerminal.exitFullscreen`):D(n)(`serviceTerminal.fullscreen`),onClick:Pe},null,8,[`icon`,`title`]),f(D(C),{icon:`pi pi-download`,text:``,rounded:``,size:`small`,title:D(n)(`serviceTerminal.downloadLogs`),disabled:D(u).length===0,onClick:Ce},null,8,[`title`,`disabled`]),f(D(C),{icon:`pi pi-trash`,text:``,rounded:``,size:`small`,title:D(n)(`serviceTerminal.clearLogs`),disabled:D(u).length===0,onClick:A},null,8,[`title`,`disabled`])])]),g(`div`,Rt,[f(Ge,{logs:O.value,loading:!1,"received-per-sec":D(v),"flushed-per-sec":D(y),"show-stats":T.value,"service-label":r.service.label||r.service.name,onLogClick:Ie},null,8,[`logs`,`received-per-sec`,`flushed-per-sec`,`show-stats`,`service-label`])]),re.value.length>0?(j(),N(`div`,zt,[(j(!0),N(z,null,me(re.value,e=>(j(),F(D(C),{key:e.id,label:e.label||e.command,"data-shortcut-id":e.id,class:`shortcut-badge`,icon:ie.value.has(e.id)?`pi pi-stop`:`pi pi-play`,size:`small`,outlined:!ie.value.has(e.id),severity:ie.value.has(e.id)?`danger`:void 0,onClick:t=>ae(e)},null,8,[`label`,`data-shortcut-id`,`icon`,`outlined`,`severity`,`onClick`]))),128))])):t(``,!0),g(`div`,Bt,[o[6]||=g(`span`,{class:`service-terminal__prompt`,"data-testid":`terminal-prompt`},`>`,-1),f(D(He),{ref_key:`adHocCommandInput`,ref:le,modelValue:M.value,"onUpdate:modelValue":o[2]||=e=>M.value=e,suggestions:de.value,class:`service-terminal__autocomplete`,"input-class":`service-terminal__input`,placeholder:D(n)(`serviceTerminal.enterCommand`),"aria-label":D(n)(`serviceTerminal.enterCommand`),disabled:!(i.value?.agentId??r.service.agentId),"data-testid":`terminal-command-input`,onComplete:pe,onKeydown:B},null,8,[`modelValue`,`suggestions`,`placeholder`,`aria-label`,`disabled`]),f(D(C),{icon:ce.value?`pi pi-stop`:`pi pi-play`,severity:ce.value?`danger`:void 0,size:`small`,"data-testid":`terminal-run-btn`,disabled:!(i.value?.agentId??r.service.agentId)||!M.value.trim()&&!ce.value,onClick:o[3]||=e=>ce.value?xe():Se()},null,8,[`icon`,`severity`,`disabled`])]),g(`div`,Vt,[i.value?(j(),F(D(oe),{key:0,icon:`pi pi-server`,value:i.value.agentId.slice(0,8),severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):t(``,!0),e.service.cwd?(j(),F(D(oe),{key:1,icon:`pi pi-folder`,value:e.service.cwd,severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):t(``,!0),i.value&&(i.value.state===`running`||i.value.state===`starting`)?(j(),F(D(oe),{key:2,icon:`pi pi-clock`,value:Fe(we.value/1e3),severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):t(``,!0)]),f(xt,{visible:je.value,"onUpdate:visible":o[4]||=e=>je.value=e,log:Ae.value,onViewProcess:Le},null,8,[`visible`,`log`])],2))}}),[[`__scopeId`,`data-v-8ce2178d`]]),Gt=5,Kt=se;function qt(e){return e+Math.random()*e*.3}function Jt(e,t){let n=w(null),r=w(!1),i=w(!1),a=null,o=0,s=null;async function c(){if(!r.value){i.value=!0;try{n.value=await _.process.metrics.query({agentId:e.value,processId:t.value})}catch(e){console.error(`Failed to fetch initial metrics:`,k(e))}finally{i.value=!1}l()}}function l(){r.value=!0,a=_.process.onMetrics.subscribe({agentId:e.value,processId:t.value},{onData(e){o=0,p(`connected`),n.value=e},onError(e){console.error(`Metrics stream error:`,e),r.value=!1,a=null,u()}})}function u(){if(o>=Gt){console.warn(`Metrics stream: max retries (${Gt}) reached, giving up`),p(`disconnected`);return}p(`reconnecting`);let e=qt(Kt*2**o);o++,s=setTimeout(()=>{s=null,l()},e)}function d(){s&&=(clearTimeout(s),null),a&&=(a.unsubscribe(),null),r.value=!1,o=0}return R([e,t],([e,t],[n,i])=>{(e!==n||t!==i)&&r.value&&(d(),c())}),fe(()=>{d()}),{metrics:n,isStreaming:r,isLoading:i,start:c,stop:d}}var Yt={class:`service-metrics`,"data-testid":`service-metrics`},Xt={key:1,class:`service-metrics__skeleton`},Zt={class:`metric-skeleton`},Qt={class:`metric-skeleton`},$t={key:2,class:`service-metrics__no-data`},en={key:1,class:`service-metrics__no-process`},tn=V(b({__name:`ServiceMetrics`,props:{service:{},processes:{}},setup(e){let t=e,n=o(()=>t.processes.find(e=>e.state===`running`||e.state===`starting`)??t.processes[0]??null),r=o(()=>n.value?.agentId??``),i=o(()=>n.value?.id??``),{t:a}=ne(),{metrics:s,isLoading:c,start:l,stop:u}=Jt(r,i);return ve(()=>{n.value&&l()}),fe(()=>{u()}),(e,t)=>(j(),N(`div`,Yt,[n.value?(j(),N(z,{key:0},[D(s)?(j(),F(We,{key:0,cpu:D(s).cpu,memory:D(s).memory},null,8,[`cpu`,`memory`])):D(c)?(j(),N(`div`,Xt,[g(`div`,Zt,[f(D(Ue),{width:`4rem`,height:`0.75rem`,class:`mb-2`}),f(D(Ue),{width:`3rem`,height:`1.75rem`,class:`mb-3`}),f(D(Ue),{width:`100%`,height:`6px`,"border-radius":`4px`})]),g(`div`,Qt,[f(D(Ue),{width:`4rem`,height:`0.75rem`,class:`mb-2`}),f(D(Ue),{width:`3rem`,height:`1.75rem`,class:`mb-3`}),f(D(Ue),{width:`6rem`,height:`0.65rem`})])])):(j(),N(`div`,$t,P(D(a)(`serviceMetrics.noData`)),1))],64)):(j(),N(`div`,en,[t[0]||=g(`i`,{class:`pi pi-info-circle`},null,-1),g(`span`,null,P(D(a)(`serviceMetrics.notRunning`)),1)]))]))}}),[[`__scopeId`,`data-v-94f5993b`]]),nn=`runeya:debug`;function rn(){if(typeof window>`u`)return null;let e=new URLSearchParams(window.location.search).get(`debug`);return e===`1`||e===`true`?!0:e===`0`||e===`false`?!1:null}var an=rn();if(an!==null)try{localStorage.setItem(nn,String(an))}catch{}function on(){try{return localStorage.getItem(nn)===`true`}catch{return!1}}var sn=w(on());function cn(){function e(){sn.value=!sn.value;try{localStorage.setItem(nn,String(sn.value))}catch{}}return{isDebug:sn,toggle:e}}var ln={class:`config-general`},un={class:`config-card`},dn={class:`config-card__header`},fn={class:`config-card`},pn={class:`config-card__header`},mn={class:`config-card__hint`},hn={class:`config-card`},gn={class:`config-card`},_n={class:`config-card__header`},vn={class:`config-card__hint`},yn={class:`config-card`},bn={class:`config-card__header`},xn={class:`config-card__hint`},Sn={class:`config-card`},Cn={class:`config-card__header`},wn={class:`config-card__hint`},Tn={class:`config-card`},En={class:`config-card__header`},Dn={class:`config-card__hint`},On={class:`config-card`},kn={class:`config-card__header`},An={class:`config-card__hint`},jn={class:`config-card`},Mn={class:`config-card__header`},Nn={class:`config-card__hint`},Pn={class:`config-card__hint`},Fn={class:`config-card`},In={class:`config-card__header`},Ln={class:`config-card__hint`},Rn={class:`config-meta`},zn={class:`config-card config-card--inline`},Bn={class:`config-card__header`},Vn={class:`config-card config-card--inline`},Hn={class:`config-card__header`},Un=150,Wn=V(b({__name:`ServiceConfigGeneral`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let{t:n}=ne(),r=xe(),i=de(),a=w([]);function s(e){let t=e.query.trim().toLowerCase(),n=new Set(y.value.groups);a.value=_.value.filter(e=>!n.has(e)&&(!t||e.toLowerCase().includes(t)))}function c(e,t){let n=t.trim();if(n){if(e===`ports`){let e=Number(n);if(!Number.isInteger(e)||e<1||e>65535||y.value.ports.includes(String(e)))return;y.value.ports=[...y.value.ports,String(e)]}else{if(y.value.groups.includes(n))return;y.value.groups=[...y.value.groups,n]}k()}}function u(e){let t=e.target;c(`groups`,t.value),t.value=``,a.value=[]}function d(e,t){let n=e.target;!n||typeof n.value!=`string`||!n.value.trim()||setTimeout(()=>{c(t,n.value),n.value=``},Un)}let p=e,m=t,h=o(()=>i.projects.find(e=>e.serviceIds.includes(p.service.id)&&(e.orgId??null)===(p.service.orgId??null))??null),_=o(()=>{let e=h.value;if(!e)return[];let t=new Set;for(let n of e.serviceIds)for(let e of r.getById(n)?.groups??[])t.add(e);return[...t].sort((e,t)=>e.localeCompare(t))});function v(e){return Object.entries(e??{}).map(([e,t])=>({key:e,value:t}))}let y=w({name:p.service.name,cwd:p.service.cwd??``,ports:(p.service.ports??[]).map(String),groups:[...p.service.groups??[]],description:p.service.description??``,docsPath:p.service.docsPath??``,url:p.service.url??``,openapiUrl:p.service.openapiUrl??``,gitRemote:p.service.git?.remote??``,gitHome:p.service.git?.home??``,autoRestart:p.service.autoRestart,clearLogsOnStart:p.service.clearLogsOnStart??!1}),b=w(v(p.service.meta));R(()=>p.service,e=>{y.value={name:e.name,cwd:e.cwd??``,ports:(e.ports??[]).map(String),groups:[...e.groups??[]],description:e.description??``,docsPath:e.docsPath??``,url:e.url??``,openapiUrl:e.openapiUrl??``,gitRemote:e.git?.remote??``,gitHome:e.git?.home??``,autoRestart:e.autoRestart,clearLogsOnStart:e.clearLogsOnStart??!1},b.value=v(e.meta)});function x(){b.value=[...b.value,{key:``,value:``}]}function T(e){b.value=b.value.filter((t,n)=>n!==e)}function E(e,t,n){b.value=b.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function ee(){let e={};for(let{key:t,value:n}of b.value){let r=t.trim();r&&(e[r]=n)}return{name:y.value.name,cwd:y.value.cwd||null,ports:y.value.ports.map(Number).filter(e=>e>0&&e<=65535),groups:y.value.groups,description:y.value.description,docsPath:y.value.docsPath??``,url:y.value.url,openapiUrl:y.value.openapiUrl,git:y.value.gitRemote||y.value.gitHome?{remote:y.value.gitRemote||void 0,home:y.value.gitHome||void 0}:null,autoRestart:y.value.autoRestart,clearLogsOnStart:y.value.clearLogsOnStart,meta:Object.keys(e).length>0?e:null}}let O=null;function k(){O&&clearTimeout(O),O=setTimeout(()=>{m(`save`,ee()),O=null},150)}return(e,t)=>(j(),N(`div`,ln,[g(`div`,un,[g(`div`,dn,[t[14]||=g(`i`,{class:`pi pi-tag`},null,-1),g(`span`,null,P(D(n)(`serviceConfigGeneral.name`)),1)]),f(D(M),{modelValue:y.value.name,"onUpdate:modelValue":t[0]||=e=>y.value.name=e,class:`config-card__input`,onBlur:k,onKeydown:B(S(k,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,fn,[g(`div`,pn,[t[15]||=g(`i`,{class:`pi pi-folder`},null,-1),g(`span`,null,P(D(n)(`serviceConfigGeneral.workingDirectory`)),1)]),f(D(M),{modelValue:y.value.cwd,"onUpdate:modelValue":t[1]||=e=>y.value.cwd=e,class:`config-card__input`,placeholder:`.`,onBlur:k,onKeydown:B(S(k,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),g(`small`,mn,P(D(n)(`serviceConfigGeneral.cwdHint`)),1)]),g(`div`,hn,[t[16]||=g(`div`,{class:`config-card__header`},[g(`i`,{class:`pi pi-file-edit`}),g(`span`,null,`Dossier de documentation (wiki)`)],-1),f(D(M),{modelValue:y.value.docsPath,"onUpdate:modelValue":t[2]||=e=>y.value.docsPath=e,class:`config-card__input`,placeholder:`(défaut : même que cwd)`,onBlur:k,onKeydown:B(S(k,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),t[17]||=g(`small`,{class:`config-card__hint`},[l(` Chemin relatif au cwd du service (ex. `),g(`code`,null,`docs`),l(`) ou absolu. Si vide, utilise le cwd. `)],-1)]),g(`div`,gn,[g(`div`,_n,[t[18]||=g(`i`,{class:`pi pi-globe`},null,-1),g(`span`,null,P(D(n)(`serviceConfigGeneral.ports`)),1)]),f(D(He),{modelValue:y.value.ports,"onUpdate:modelValue":t[3]||=e=>y.value.ports=e,multiple:``,typeahead:!1,class:`config-card__input`,placeholder:D(n)(`serviceConfigGeneral.portsPlaceholder`),onChange:k,onBlur:t[4]||=e=>d(e,`ports`)},null,8,[`modelValue`,`placeholder`]),g(`small`,vn,P(D(n)(`serviceConfigGeneral.portsHint`)),1)]),g(`div`,yn,[g(`div`,bn,[t[19]||=g(`i`,{class:`pi pi-th-large`},null,-1),g(`span`,null,P(D(n)(`serviceConfigGeneral.groups`)),1)]),f(D(He),{modelValue:y.value.groups,"onUpdate:modelValue":t[5]||=e=>y.value.groups=e,multiple:``,suggestions:a.value,"complete-on-focus":!0,class:`config-card__input`,placeholder:D(n)(`serviceConfigGeneral.groupsPlaceholder`),onComplete:s,onChange:k,onKeydown:B(u,[`enter`]),onBlur:t[6]||=e=>d(e,`groups`)},null,8,[`modelValue`,`suggestions`,`placeholder`]),g(`small`,xn,P(D(n)(`serviceConfigGeneral.groupsHint`)),1)]),g(`div`,Sn,[g(`div`,Cn,[t[20]||=g(`i`,{class:`pi pi-info-circle`},null,-1),g(`span`,null,P(D(n)(`serviceConfigGeneral.description`)),1)]),f(D(L),{modelValue:y.value.description,"onUpdate:modelValue":t[7]||=e=>y.value.description=e,class:`config-card__input`,rows:2,onBlur:k},null,8,[`modelValue`]),g(`small`,wn,P(D(n)(`serviceConfigGeneral.descriptionHint`)),1)]),g(`div`,Tn,[g(`div`,En,[t[21]||=g(`i`,{class:`pi pi-external-link`},null,-1),g(`span`,null,P(D(n)(`serviceConfigGeneral.url`)),1)]),f(D(M),{modelValue:y.value.url,"onUpdate:modelValue":t[8]||=e=>y.value.url=e,class:`config-card__input`,placeholder:`https://...`,onBlur:k,onKeydown:B(S(k,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),g(`small`,Dn,P(D(n)(`serviceConfigGeneral.urlHint`)),1)]),g(`div`,On,[g(`div`,kn,[t[22]||=g(`i`,{class:`pi pi-book`},null,-1),g(`span`,null,P(D(n)(`serviceConfigGeneral.openapiUrl`)),1)]),f(D(M),{modelValue:y.value.openapiUrl,"onUpdate:modelValue":t[9]||=e=>y.value.openapiUrl=e,class:`config-card__input`,placeholder:`https://.../swagger.json`,onBlur:k,onKeydown:B(S(k,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),g(`small`,An,P(D(n)(`serviceConfigGeneral.openapiUrlHint`)),1)]),g(`div`,jn,[g(`div`,Mn,[t[23]||=g(`i`,{class:`pi pi-github`},null,-1),g(`span`,null,P(D(n)(`serviceConfigGeneral.git`)),1)]),f(D(M),{modelValue:y.value.gitRemote,"onUpdate:modelValue":t[10]||=e=>y.value.gitRemote=e,class:`config-card__input`,placeholder:`git@github.com:org/repo.git`,onBlur:k,onKeydown:B(S(k,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),g(`small`,Nn,P(D(n)(`serviceConfigGeneral.gitRemoteHint`)),1),f(D(M),{modelValue:y.value.gitHome,"onUpdate:modelValue":t[11]||=e=>y.value.gitHome=e,class:`config-card__input`,style:{"margin-top":`0.5rem`},placeholder:`https://github.com/org/repo`,onBlur:k,onKeydown:B(S(k,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),g(`small`,Pn,P(D(n)(`serviceConfigGeneral.gitHomeHint`)),1)]),g(`div`,Fn,[g(`div`,In,[t[24]||=g(`i`,{class:`pi pi-hashtag`},null,-1),g(`span`,null,P(D(n)(`serviceConfigGeneral.meta`)),1)]),g(`small`,Ln,P(D(n)(`serviceConfigGeneral.metaHint`)),1),g(`div`,Rn,[(j(!0),N(z,null,me(b.value,(e,t)=>(j(),N(`div`,{key:t,class:`config-meta__row`},[f(D(M),{"model-value":e.key,placeholder:D(n)(`serviceConfigGeneral.metaKeyPlaceholder`),class:`config-meta__input`,"onUpdate:modelValue":e=>E(t,`key`,e),onBlur:k,onKeydown:B(S(k,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),f(D(M),{"model-value":e.value,placeholder:D(n)(`serviceConfigGeneral.metaValuePlaceholder`),class:`config-meta__input config-meta__input--wide`,"onUpdate:modelValue":e=>E(t,`value`,e),onBlur:k,onKeydown:B(S(k,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),f(D(C),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:()=>{T(t),k()}},null,8,[`onClick`])]))),128)),f(D(C),{label:D(n)(`serviceConfigGeneral.addEntry`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,class:`config-meta__add`,onClick:x},null,8,[`label`])])]),g(`div`,zn,[g(`div`,Bn,[t[25]||=g(`i`,{class:`pi pi-refresh`},null,-1),g(`span`,null,P(D(n)(`serviceConfigGeneral.autoRestart`)),1)]),f(D(Me),{modelValue:y.value.autoRestart,"onUpdate:modelValue":t[12]||=e=>y.value.autoRestart=e,onChange:k},null,8,[`modelValue`])]),g(`div`,Vn,[g(`div`,Hn,[t[26]||=g(`i`,{class:`pi pi-trash`},null,-1),g(`span`,null,P(D(n)(`serviceConfigGeneral.clearLogs`)),1)]),f(D(Me),{modelValue:y.value.clearLogsOnStart,"onUpdate:modelValue":t[13]||=e=>y.value.clearLogsOnStart=e,onChange:k},null,8,[`modelValue`])])]))}}),[[`__scopeId`,`data-v-6fef6778`]]),Gn={class:`docker-config`},Kn={class:`docker-config__section`},qn={for:`docker-mode-image`,class:`docker-config__section-title`},Jn={class:`docker-config__mode-toggle`},Yn={class:`docker-config__mode-option`},Xn={class:`docker-config__mode-option`},Zn={key:0,class:`docker-config__section`},Qn={for:`docker-image`,class:`docker-config__label`},$n={class:`docker-config__section`},er={class:`docker-config__section`},tr={for:`docker-build-context`,class:`docker-config__label`},nr={class:`docker-config__section`},rr={for:`docker-add-build-arg`,class:`docker-config__label`},ir={class:`docker-config__kv-list`},ar={class:`docker-config__section`},or={for:`docker-target-stage`,class:`docker-config__label`},sr={class:`docker-config__section`},cr={for:`docker-user`,class:`docker-config__section-title`},lr={class:`docker-config__section`},ur={for:`docker-user`,class:`docker-config__label`},dr={class:`docker-config__section`},fr={for:`docker-network-mode`,class:`docker-config__label`},pr={key:2,class:`docker-config__section`},mr={for:`docker-add-port`,class:`docker-config__label`},hr={class:`docker-config__list`},gr={class:`docker-config__section`},_r={for:`docker-add-volume`,class:`docker-config__label`},vr={class:`docker-config__checkbox-row`},yr={for:`mountRootpath`,class:`docker-config__checkbox-label`},br={class:`docker-config__list`},xr={class:`docker-config__section`},Sr={class:`docker-config__checkbox-row`},Cr={for:`useNativeCommand`,class:`docker-config__checkbox-label`},wr={key:0,class:`docker-config__shell-row`},Tr={for:`docker-native-shell`,class:`docker-config__label`},Er={class:`docker-config__hint`},Dr={key:1,class:`docker-config__mode-toggle docker-config__mode-toggle--indented`},Or={class:`docker-config__mode-option`},kr={class:`docker-config__mode-option`},Ar={class:`docker-config__section`},jr={for:`docker-entrypoint`,class:`docker-config__label`},Mr={class:`docker-config__section`},Nr={for:`docker-command`,class:`docker-config__label`},Pr={class:`docker-config__section`},Fr={for:`docker-add-bootstrap`,class:`docker-config__section-title`},Ir={class:`docker-config__hint-inline`},Lr={class:`docker-config__bootstrap-row`},Rr={class:`docker-config__bootstrap-field`},zr=[`for`],Br={class:`docker-config__bootstrap-field`},Vr=[`for`],Hr={class:`docker-config__bootstrap-field docker-config__bootstrap-field--wide`},Ur=[`for`],Wr={class:`docker-config__bootstrap-field`},Gr=[`for`],Kr={class:`docker-config__bootstrap-actions`},qr={class:`docker-config__section`},Jr=V(b({__name:`ServiceConfigDocker`,props:{service:{}},emits:[`save`],setup(e,{emit:n}){let{t:i}=ne(),a=e,o=n,s=a.service.dockerConfig??{},c=w(s.dockerfile?`build`:`image`),d=w(s.image??``),p=w(s.dockerfile??``),m=w(s.buildContext??``),h=w(Object.entries(s.buildArgs??{}).map(([e,t])=>({key:e,value:t}))),_=w(s.targetStage??``),v=w(s.networkMode??`host`),y=w([...s.ports??[]]),b=w([...s.volumes??[]]),T=w(s.mountRootpath??!1),ee=w(s.entrypoint??``),O=w(s.command??``),k=w(s.user??``),A=w(s.useNativeCommand??!1),re=w(s.nativeCommandMode??`isolated`),ie=w(s.nativeShell??`sh`),ae=[{label:`sh (POSIX)`,value:`sh`},{label:`bash`,value:`bash`},{label:`zsh`,value:`zsh`},{label:`ash (Alpine)`,value:`ash`}],F=w([...s.bootstrapCommands??[]]),oe=w(!1),se=[{label:`Host (--network host)`,value:`host`},{label:`Bridge`,value:`bridge`}];function ce(){h.value=[...h.value,{key:``,value:``}]}function le(e){h.value=h.value.filter((t,n)=>n!==e)}function I(e,t,n){h.value=h.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function L(){y.value=[...y.value,``]}function ue(e){y.value=y.value.filter((t,n)=>n!==e)}function de(e,t){y.value=y.value.map((n,r)=>r===e?t:n)}function fe(){b.value=[...b.value,``]}function pe(e){b.value=b.value.filter((t,n)=>n!==e)}function ge(e,t){b.value=b.value.map((n,r)=>r===e?t:n)}function _e(){F.value=[...F.value,{id:De(),label:`Bootstrap`,entrypoint:`/bin/sh`,command:`-c ""`,user:void 0}]}function ve(e){F.value=F.value.filter((t,n)=>n!==e)}function ye(e,t,n){F.value=F.value.map((r,i)=>i===e?{...r,[t]:n===``?void 0:n}:r)}function be(e,t){let n=[...F.value],r=e+t;r<0||r>=n.length||([n[e],n[r]]=[n[r],n[e]],F.value=n)}let xe=null;function R(){xe&&clearTimeout(xe),xe=setTimeout(()=>{let e={};for(let{key:t,value:n}of h.value)t.trim()&&(e[t.trim()]=n);o(`save`,{image:c.value===`image`&&d.value||void 0,dockerfile:c.value===`build`&&p.value||void 0,buildContext:m.value||void 0,buildArgs:e,targetStage:_.value||void 0,networkMode:v.value,ports:y.value.filter(Boolean),volumes:b.value.filter(Boolean),mountRootpath:T.value,entrypoint:ee.value||void 0,command:O.value||void 0,user:k.value||void 0,useNativeCommand:A.value,nativeCommandMode:re.value,nativeShell:ie.value,bootstrapCommands:F.value}),xe=null},150)}function Se(e){ve(e),R()}function Ce(e,t){be(e,t),R()}function we(e){le(e),R()}function Te(e){ue(e),R()}function V(e){pe(e),R()}return(e,n)=>(j(),N(`div`,Gn,[g(`div`,Kn,[g(`label`,qn,P(D(i)(`serviceConfigDocker.imageSource`)),1),g(`div`,Jn,[g(`label`,Yn,[r(g(`input`,{id:`docker-mode-image`,"onUpdate:modelValue":n[0]||=e=>c.value=e,type:`radio`,value:`image`,class:`docker-config__radio`,onChange:R},null,544),[[te,c.value]]),l(` `+P(D(i)(`serviceConfigDocker.pullImage`)),1)]),g(`label`,Xn,[r(g(`input`,{"onUpdate:modelValue":n[1]||=e=>c.value=e,type:`radio`,value:`build`,class:`docker-config__radio`,onChange:R},null,544),[[te,c.value]]),l(` `+P(D(i)(`serviceConfigDocker.buildDockerfile`)),1)])])]),c.value===`image`?(j(),N(`div`,Zn,[g(`label`,Qn,P(D(i)(`serviceConfigDocker.image`)),1),f(D(M),{id:`docker-image`,modelValue:d.value,"onUpdate:modelValue":n[2]||=e=>d.value=e,placeholder:D(i)(`serviceConfigDocker.imagePlaceholder`),class:`docker-config__input`,onBlur:R,onKeydown:B(S(R,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])):t(``,!0),c.value===`build`?(j(),N(z,{key:1},[g(`div`,$n,[n[18]||=g(`label`,{for:`docker-dockerfile-btn`,class:`docker-config__label`},`Dockerfile`,-1),f(D(C),{id:`docker-dockerfile-btn`,label:D(i)(`serviceConfigDocker.editDockerfile`),icon:`pi pi-file-edit`,severity:`secondary`,outlined:``,size:`small`,onClick:n[3]||=e=>oe.value=!0},null,8,[`label`]),f(D(E),{visible:oe.value,"onUpdate:visible":n[6]||=e=>oe.value=e,header:D(i)(`serviceConfigDocker.editDockerfile`),modal:``,style:{width:`800px`}},{footer:x(()=>[f(D(C),{label:D(i)(`serviceConfigDocker.closeDockerfile`),icon:`pi pi-times`,onClick:n[5]||=()=>{oe.value=!1,R()}},null,8,[`label`])]),default:x(()=>[f(u,{modelValue:p.value,"onUpdate:modelValue":n[4]||=e=>p.value=e,language:`dockerfile`,style:{height:`400px`}},null,8,[`modelValue`])]),_:1},8,[`visible`,`header`])]),g(`div`,er,[g(`label`,tr,P(D(i)(`serviceConfigDocker.buildContext`)),1),f(D(M),{id:`docker-build-context`,modelValue:m.value,"onUpdate:modelValue":n[7]||=e=>m.value=e,placeholder:`.`,class:`docker-config__input`,onBlur:R,onKeydown:B(S(R,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,nr,[g(`label`,rr,P(D(i)(`serviceConfigDocker.buildArgs`)),1),g(`div`,ir,[(j(!0),N(z,null,me(h.value,(e,t)=>(j(),N(`div`,{key:t,class:`docker-config__kv-row`},[f(D(M),{"model-value":e.key,placeholder:D(i)(`serviceConfigDocker.argNamePlaceholder`),class:`docker-config__kv-input`,"onUpdate:modelValue":e=>I(t,`key`,e),onBlur:R,onKeydown:B(S(R,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),f(D(M),{"model-value":e.value,placeholder:D(i)(`serviceConfigDocker.argValuePlaceholder`),class:`docker-config__kv-input`,"onUpdate:modelValue":e=>I(t,`value`,e),onBlur:R,onKeydown:B(S(R,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),f(D(C),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>we(t)},null,8,[`onClick`])]))),128)),f(D(C),{id:`docker-add-build-arg`,label:D(i)(`serviceConfigDocker.addBuildArg`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:ce},null,8,[`label`])])]),g(`div`,ar,[g(`label`,or,P(D(i)(`serviceConfigDocker.targetStage`)),1),f(D(M),{id:`docker-target-stage`,modelValue:_.value,"onUpdate:modelValue":n[8]||=e=>_.value=e,placeholder:D(i)(`serviceConfigDocker.targetStagePlaceholder`),class:`docker-config__input`,onBlur:R,onKeydown:B(S(R,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])],64)):t(``,!0),f(D(Ke)),g(`div`,sr,[g(`label`,cr,P(D(i)(`serviceConfigDocker.runtimeConfig`)),1)]),g(`div`,lr,[g(`label`,ur,P(D(i)(`serviceConfigDocker.userGroup`)),1),f(D(M),{id:`docker-user`,modelValue:k.value,"onUpdate:modelValue":n[9]||=e=>k.value=e,placeholder:D(i)(`serviceConfigDocker.userGroupHint`),class:`docker-config__input`,onBlur:R,onKeydown:B(S(R,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),g(`div`,dr,[g(`label`,fr,P(D(i)(`serviceConfigDocker.networkMode`)),1),f(D(he),{"input-id":`docker-network-mode`,modelValue:v.value,"onUpdate:modelValue":n[10]||=e=>v.value=e,options:se,"option-label":`label`,"option-value":`value`,class:`docker-config__select`,onChange:R},null,8,[`modelValue`])]),v.value===`bridge`?(j(),N(`div`,pr,[g(`label`,mr,P(D(i)(`serviceConfigDocker.portMappings`)),1),g(`div`,hr,[(j(!0),N(z,null,me(y.value,(e,t)=>(j(),N(`div`,{key:t,class:`docker-config__list-row`},[f(D(M),{"model-value":e,placeholder:D(i)(`serviceConfigDocker.portPlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>de(t,e),onBlur:R,onKeydown:B(S(R,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),f(D(C),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>Te(t)},null,8,[`onClick`])]))),128)),f(D(C),{id:`docker-add-port`,label:D(i)(`serviceConfigDocker.addPort`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:L},null,8,[`label`])])])):t(``,!0),g(`div`,gr,[g(`label`,_r,P(D(i)(`serviceConfigDocker.volumes`)),1),g(`div`,vr,[f(D(je),{modelValue:T.value,"onUpdate:modelValue":n[11]||=e=>T.value=e,binary:!0,"input-id":`mountRootpath`,onChange:R},null,8,[`modelValue`]),g(`label`,yr,P(D(i)(`serviceConfigDocker.autoMount`)),1)]),g(`div`,br,[(j(!0),N(z,null,me(b.value,(e,t)=>(j(),N(`div`,{key:t,class:`docker-config__list-row`},[f(D(M),{"model-value":e,placeholder:D(i)(`serviceConfigDocker.volumePlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>ge(t,e),onBlur:R,onKeydown:B(S(R,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),f(D(C),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>V(t)},null,8,[`onClick`])]))),128)),f(D(C),{id:`docker-add-volume`,label:D(i)(`serviceConfigDocker.addVolume`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:fe},null,8,[`label`])])]),f(D(Ke)),g(`div`,xr,[g(`div`,Sr,[f(D(je),{modelValue:A.value,"onUpdate:modelValue":n[12]||=e=>A.value=e,binary:!0,"input-id":`useNativeCommand`,onChange:R},null,8,[`modelValue`]),g(`label`,Cr,P(D(i)(`serviceConfigDocker.runNative`)),1)]),n[21]||=g(`span`,{class:`docker-config__hint`},` When enabled, the service command is executed directly inside the container (ignores CMD override below). `,-1),A.value?(j(),N(`div`,wr,[g(`label`,Tr,P(D(i)(`serviceConfigDocker.shell`)),1),f(D(he),{"input-id":`docker-native-shell`,modelValue:ie.value,"onUpdate:modelValue":n[13]||=e=>ie.value=e,options:ae,"option-label":`label`,"option-value":`value`,class:`docker-config__select docker-config__select--small`,editable:``,placeholder:D(i)(`serviceConfigDocker.shellPlaceholder`),onChange:R},null,8,[`modelValue`,`placeholder`]),g(`span`,Er,[l(P(D(i)(`serviceConfigDocker.shellHint`))+` (`,1),n[19]||=g(`code`,null,`shell -c '...'`,-1),n[20]||=l(`)`,-1)])])):t(``,!0),A.value?(j(),N(`div`,Dr,[g(`label`,Or,[r(g(`input`,{"onUpdate:modelValue":n[14]||=e=>re.value=e,type:`radio`,value:`isolated`,class:`docker-config__radio`,onChange:R},null,544),[[te,re.value]]),l(` `+P(D(i)(`serviceConfigDocker.isolated`)),1)]),g(`label`,kr,[r(g(`input`,{"onUpdate:modelValue":n[15]||=e=>re.value=e,type:`radio`,value:`shared`,class:`docker-config__radio`,onChange:R},null,544),[[te,re.value]]),l(` `+P(D(i)(`serviceConfigDocker.shared`)),1)])])):t(``,!0)]),A.value?t(``,!0):(j(),N(z,{key:3},[n[22]||=g(`div`,{class:`docker-config__section`},[g(`label`,{for:`docker-entrypoint`,class:`docker-config__section-title`},`Override`)],-1),g(`div`,Ar,[g(`label`,jr,P(D(i)(`serviceConfigDocker.entrypoint`)),1),f(D(M),{id:`docker-entrypoint`,modelValue:ee.value,"onUpdate:modelValue":n[16]||=e=>ee.value=e,placeholder:D(i)(`serviceConfigDocker.entrypointPlaceholder`),class:`docker-config__input`,onBlur:R,onKeydown:B(S(R,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),g(`div`,Mr,[g(`label`,Nr,P(D(i)(`serviceConfigDocker.cmdOverride`)),1),f(D(M),{id:`docker-command`,modelValue:O.value,"onUpdate:modelValue":n[17]||=e=>O.value=e,placeholder:D(i)(`serviceConfigDocker.cmdPlaceholder`),class:`docker-config__input`,onBlur:R,onKeydown:B(S(R,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])],64)),f(D(Ke)),g(`div`,Pr,[g(`label`,Fr,[l(P(D(i)(`serviceConfigDocker.bootstrapCommands`))+` `,1),g(`span`,Ir,` — `+P(D(i)(`serviceConfigDocker.bootstrapCommandsHint`)),1)])]),(j(!0),N(z,null,me(F.value,(e,t)=>(j(),N(`div`,{key:e.id,class:`docker-config__bootstrap-card`},[g(`div`,Lr,[g(`div`,Rr,[g(`label`,{class:`docker-config__label`,for:`docker-bootstrap-label-${t}`},`Label`,8,zr),f(D(M),{id:`docker-bootstrap-label-${t}`,"model-value":e.label,placeholder:D(i)(`serviceConfigDocker.bootstrapLabelPlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>ye(t,`label`,e),onBlur:R,onKeydown:B(S(R,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),g(`div`,Br,[g(`label`,{class:`docker-config__label`,for:`docker-bootstrap-entrypoint-${t}`},`Entrypoint`,8,Vr),f(D(M),{id:`docker-bootstrap-entrypoint-${t}`,"model-value":e.entrypoint??``,placeholder:`/bin/sh`,class:`docker-config__input`,"onUpdate:modelValue":e=>ye(t,`entrypoint`,e),onBlur:R,onKeydown:B(S(R,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),g(`div`,Hr,[g(`label`,{class:`docker-config__label`,for:`docker-bootstrap-command-${t}`},`Command`,8,Ur),f(D(M),{id:`docker-bootstrap-command-${t}`,"model-value":e.command,placeholder:`-c "npm install"`,class:`docker-config__input`,"onUpdate:modelValue":e=>ye(t,`command`,e),onBlur:R,onKeydown:B(S(R,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),g(`div`,Wr,[g(`label`,{class:`docker-config__label`,for:`docker-bootstrap-user-${t}`},`User:Group`,8,Gr),f(D(M),{id:`docker-bootstrap-user-${t}`,"model-value":e.user??``,placeholder:D(i)(`serviceConfigDocker.userGroupHint`),class:`docker-config__input`,"onUpdate:modelValue":e=>ye(t,`user`,e),onBlur:R,onKeydown:B(S(R,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),g(`div`,Kr,[f(D(C),{icon:`pi pi-arrow-up`,text:``,rounded:``,size:`small`,disabled:t===0,onClick:e=>Ce(t,-1)},null,8,[`disabled`,`onClick`]),f(D(C),{icon:`pi pi-arrow-down`,text:``,rounded:``,size:`small`,disabled:t===F.value.length-1,onClick:e=>Ce(t,1)},null,8,[`disabled`,`onClick`]),f(D(C),{icon:`pi pi-times`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>Se(t)},null,8,[`onClick`])])])]))),128)),g(`div`,qr,[f(D(C),{id:`docker-add-bootstrap`,label:D(i)(`serviceConfigDocker.addBootstrapCommand`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:_e},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-91c13548`]]),Yr={class:`config-commands`},Xr={class:`config-commands__execution`},Zr={class:`config-card config-card--execution`},Qr={class:`config-card__header`},$r={class:`config-card__hint`},ei={class:`config-card config-card--execution`},ti={class:`config-card__header`},ni={key:0,class:`runner-option`},ri={class:`runner-option`},ii={class:`config-commands__tab-content`},ai={key:0,class:`config-commands__empty`},oi={class:`config-commands__row`},si={class:`config-commands__field`},ci=[`for`],li={class:`config-commands__field config-commands__field--wide`},ui=[`for`],di={class:`config-commands__field`},fi=[`for`],pi={class:`config-commands__actions-cell`},mi={class:`config-commands__footer`},hi={class:`config-commands__tab-content`},gi=`__inherit__`,_i=V(b({__name:`ServiceConfigCommands`,props:{service:{}},emits:[`save`,`dockerSave`],setup(e,{emit:n}){let r=e,i=n,{t:a}=ne(),s=_e(),l=null,u=w({agentId:r.service.agentId??gi,runner:r.service.runner});R(()=>r.service,e=>{u.value={agentId:e.agentId??gi,runner:e.runner}});let d=o(()=>[{label:a(`serviceConfigCommands.native`),value:`native`,icon:`pi pi-desktop`},{label:a(`serviceConfigCommands.docker`),value:`docker`,icon:`pi pi-box`}]),p=o(()=>d.value.find(e=>e.value===u.value.runner)?.icon??`pi pi-box`),m=o(()=>[{label:a(`serviceForm.agentInherit`),value:gi},...s.agents.map(e=>({label:`${e.config.name} (${e.status.connected?a(`serviceConfigCommands.online`):a(`serviceConfigCommands.offline`)})`,value:e.config.id}))]),h=w([...r.service.commands??[]]);R(()=>r.service,e=>{l||(h.value=[...e.commands??[]])});function _(){h.value=[...h.value,{id:De(),label:``,command:``,cwd:void 0,shell:!0}]}function v(e){h.value=h.value.filter((t,n)=>n!==e)}function y(e,t,n){h.value=h.value.map((r,i)=>i===e?{...r,[t]:n===``?void 0:n}:r)}function b(){l&&clearTimeout(l),l=setTimeout(()=>{i(`save`,{agentId:u.value.agentId===gi?null:u.value.agentId||null,runner:u.value.runner,commands:h.value}),l=null},150)}function T(e){i(`dockerSave`,e)}function E(e){v(e),b()}return(n,r)=>(j(),N(`div`,Yr,[g(`div`,Xr,[g(`div`,Zr,[g(`div`,Qr,[r[2]||=g(`i`,{class:`pi pi-server`},null,-1),g(`span`,null,P(D(a)(`serviceConfigCommands.agent`)),1)]),f(D(he),{modelValue:u.value.agentId,"onUpdate:modelValue":r[0]||=e=>u.value.agentId=e,options:m.value,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:b},null,8,[`modelValue`,`options`]),g(`small`,$r,P(D(a)(`serviceForm.agentHintEdit`)),1)]),g(`div`,ei,[g(`div`,ti,[g(`i`,{class:c(p.value)},null,2),g(`span`,null,P(D(a)(`serviceConfigCommands.runner`)),1)]),f(D(he),{modelValue:u.value.runner,"onUpdate:modelValue":r[1]||=e=>u.value.runner=e,options:d.value,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:b},{value:x(e=>[e.value?(j(),N(`div`,ni,[g(`i`,{class:c(d.value.find(t=>t.value===e.value)?.icon)},null,2),g(`span`,null,P(d.value.find(t=>t.value===e.value)?.label),1)])):t(``,!0)]),option:x(e=>[g(`div`,ri,[g(`i`,{class:c(e.option.icon)},null,2),g(`span`,null,P(e.option.label),1)])]),_:1},8,[`modelValue`,`options`])])]),f(D(Fe),{value:`0`},{default:x(()=>[f(D(Ne),null,{default:x(()=>[f(D(Ie),{value:`0`},{default:x(()=>[r[3]||=g(`i`,{class:`pi pi-desktop tab-icon`},null,-1),g(`span`,null,P(D(a)(`serviceConfigCommands.native`)),1)]),_:1}),f(D(Ie),{value:`1`},{default:x(()=>[r[4]||=g(`i`,{class:`pi pi-box tab-icon`},null,-1),g(`span`,null,P(D(a)(`serviceConfigCommands.docker`)),1)]),_:1})]),_:1}),f(D(Pe),null,{default:x(()=>[f(D(Le),{value:`0`},{default:x(()=>[g(`div`,ii,[h.value.length===0?(j(),N(`div`,ai,[g(`p`,null,P(D(a)(`serviceConfigCommands.noCommands`)),1)])):t(``,!0),(j(!0),N(z,null,me(h.value,(e,t)=>(j(),N(`div`,{key:e.id,class:`config-card`},[g(`div`,oi,[g(`div`,si,[g(`label`,{class:`config-commands__label`,for:`cmd-label-${t}`},P(D(a)(`serviceConfigCommands.labelPlaceholder`)),9,ci),f(D(M),{id:`cmd-label-${t}`,"model-value":e.label,placeholder:D(a)(`serviceConfigCommands.labelPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>y(t,`label`,e),onBlur:b,onKeydown:B(S(b,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),g(`div`,li,[g(`label`,{class:`config-commands__label`,for:`cmd-command-${t}`},P(D(a)(`serviceConfigCommands.commandPlaceholder`)),9,ui),f(D(M),{id:`cmd-command-${t}`,"model-value":e.command,placeholder:`e.g. npm start`,class:`config-card__input`,"onUpdate:modelValue":e=>y(t,`command`,e),onBlur:b,onKeydown:B(S(b,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),g(`div`,di,[g(`label`,{class:`config-commands__label`,for:`cmd-cwd-${t}`},`Working Dir (optional)`,8,fi),f(D(M),{id:`cmd-cwd-${t}`,"model-value":e.cwd??``,placeholder:D(a)(`serviceConfigCommands.cwdPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>y(t,`cwd`,e),onBlur:b,onKeydown:B(S(b,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),g(`div`,pi,[f(D(C),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>E(t)},null,8,[`onClick`])])])]))),128)),g(`div`,mi,[f(D(C),{label:D(a)(`serviceConfigCommands.addCommand`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:_},null,8,[`label`])])])]),_:1}),f(D(Le),{value:`1`},{default:x(()=>[g(`div`,hi,[f(Jr,{service:e.service,onSave:T},null,8,[`service`])])]),_:1})]),_:1})]),_:1})]))}}),[[`__scopeId`,`data-v-df297a71`]]),vi={class:`config-env`,"data-testid":`config-env`},yi={key:0,class:`active-env-display`},bi={class:`active-env-label`},xi={key:1,class:`inheritance-toggle`},Si={class:`inheritance-label`},Ci={class:`inherited-header`},wi={class:`inherited-row-key`},Ti={class:`preview-key`},Ei={class:`value-row`},Di=[`onClick`],Oi=[`onClick`],ki={key:0,class:`secret-mask`},Ai={key:1,class:`preview-value`},ji={class:`config-env__header`},Mi={class:`config-env__title`},Ni={class:`config-env__actions`},Pi={key:3,class:`variables-view`},Fi={key:0},Ii={key:1,class:`empty-state`},Li={class:`inherited-header`},Ri={class:`passthrough-info`},zi={class:`preview-key`},Bi={key:0,class:`preview-value`},Vi={key:1,class:`passthrough-undefined`},Hi={key:4,class:`empty-state`},Ui={key:5,class:`empty-state`},Wi={class:`editor-container`},Gi={key:0,class:`editor-env-banner`},Ki={class:`editor-env-text`},qi={class:`editor-section`,"data-testid":`variables-editor`},Ji={key:0,class:`loading-container`},Yi={key:1,class:`preview-container`},Xi={class:`preview-info`},Zi={class:`preview-key`},Qi={class:`value-row`},$i=[`onClick`],ea=[`onClick`],ta={key:0,class:`secret-mask`},na={key:1,class:`preview-value`},ra=V(b({__name:`ServiceConfigEnv`,props:{service:{},projectId:{},activeEnvironmentId:{}},setup(e){let n=e,{t:r}=ne(),s=ge(),u=I(),d=h(),p=de(),m=y(),v=ie(),b=o(()=>p.getByRef({id:n.projectId,orgId:m.activeOrgId})?.activeEnvironmentId??null),T=o(()=>d.findServiceEnvironment(n.service.id,b.value??``)),ee=w(!1),O=w(!1),k=w(!1),te=w(!1),A=w(null),ae=w(null),{suggestions:M,meta:se,search:ce}=Ve(()=>ae.value??A.value),L=w(new Set);function ue(e){let t=new Set(L.value);t.has(e)?t.delete(e):t.add(e),L.value=t}let fe=w(null);function me(e,t){navigator.clipboard.writeText(t),fe.value=e,setTimeout(()=>{fe.value===e&&(fe.value=null)},1500)}let he=w({}),_e=w(!1),{values:ye,agentEntry:xe,urlHost:z}=ze({projectId:()=>n.projectId,environmentId:()=>b.value,agentId:()=>n.service.agentId}),Se=o(()=>{let e={...ye.value};Object.assign(e,Ce(n.service.ports)),e[`service.NAME`]=n.service.name,e[`service.ID`]=n.service.id,Object.assign(e,a(n.service,z.value)),n.service.url&&(e[`service.BASE_URL`]=n.service.url);let t=B(xe.value?.status?.cwd,xe.value?.status?.home);return t&&(e[`service.CWD`]=t),e});function B(e,t){let r=(n.service.resolvedCwd??n.service.cwd??``).trim();return r?r.startsWith(`~/`)&&t?t+r.slice(1):r.includes(`$`)?null:r.startsWith(`/`)||/^[A-Za-z]:[\\/]/.test(r)?r:null:e??null}let we=o(()=>xe.value?.config.passthroughEnv??[]),Te=o(()=>we.value.length>0);async function V(){if(!n.service.agentId||!Te.value){he.value={};return}_e.value=!0;try{he.value=await _.agent.getPassthroughEnv.query({id:n.service.agentId})}catch{he.value={}}finally{_e.value=!1}}let Ee=o(()=>we.value.map(e=>({name:e,value:he.value[e]??null}))),De=o(()=>!T.value||!b.value?!0:T.value.parentIds?.includes(b.value)??!0);async function Ae(e){if(!(!T.value||!b.value)){te.value=!0;try{await d.update({id:T.value.id,parentIds:e?[b.value]:[]}),await He()}catch(e){s.add({severity:`error`,summary:r(`serviceConfigEnv.error`),detail:e.message??r(`serviceConfigEnv.failedToUpdateInheritance`),life:5e3})}finally{te.value=!1}}}let je=o(()=>{let e=p.getByRef({id:n.projectId,orgId:m.activeOrgId});return e?.activeEnvironmentId?d.getById(e.activeEnvironmentId):null});function Ne(e){return!e||typeof e!=`object`?[]:Object.entries(e).map(([e,t])=>({variableId:e,key:t.key||e,slot:{value:t.value?.value??``,pre:t.value?.pre??``,post:t.value?.post??``,isSecret:t.value?.isSecret??!1}}))}let Pe=o(()=>A.value?Ne(A.value.variables):[]),Fe=o(()=>{if(!T.value||!A.value?.sources)return Pe.value;let e=T.value.id;return Pe.value.filter(t=>A.value.sources[t.variableId]?.environmentId===e)}),Ie=o(()=>{if(!T.value||!A.value?.sources)return[];let e=T.value.id;return Pe.value.filter(t=>A.value.sources[t.variableId]?.environmentId!==e)}),Le=o(()=>{if(!A.value?.sources)return{};let e={};for(let[t,n]of Object.entries(A.value.sources))e[t]={environmentId:n.environmentId,overridden:n.overridden,...n.resolvedFrom?{resolvedFrom:n.resolvedFrom}:{},...n.overriddenBy?{overriddenBy:n.overriddenBy}:{}};return e});async function He(){if(T.value)try{A.value=await d.resolve(T.value.id)}catch(e){console.error(`Failed to resolve environment:`,e)}}async function Ue(){if(b.value)try{ae.value=await d.resolve(b.value)}catch{}}async function We(){k.value=!0;try{await qe(),await He(),O.value=!0}catch(e){s.add({severity:`error`,summary:r(`serviceConfigEnv.error`),detail:e.message??r(`serviceConfigEnv.failedToLoadPreview`),life:5e3})}finally{k.value=!1}}let Ge=o(()=>A.value?Object.entries(A.value.env).map(([e,t])=>({key:e,value:Object.entries(Se.value).reduce((e,[t,n])=>e.replaceAll(`{{${t}}}`,n),t)})):[]);function Ke(e,t){return t?`***`:e.length>50?e.substring(0,47)+`...`:e}async function qe(){if(T.value)return T.value;if(!b.value)return null;let e=je.value;return e?(await d.create({name:`${n.service.name??n.service.id} — ${e.name}`,projectId:n.projectId,scope:`service`,reference:n.service.id,activateOn:b.value,parentIds:[b.value],variables:{}}),T.value):null}let Je=o(()=>{let e=v.getByService(n.service.id);return e.length>0?e[0]:null}),Ye=o(()=>{let e=Je.value?.state;return e===`running`||e===`errored`});async function Xe(){await qe(),ee.value=!0,await Promise.all([He(),Ue()])}function Ze(){if(ee.value=!1,!Ye.value||!Je.value)return;let e=Je.value.state===`running`?`restart`:`start`,t=n.service.name||n.service.id;u.require({message:r(e===`restart`?`serviceConfigEnv.restartConfirmMsg`:`serviceConfigEnv.startConfirmMsg`,{name:t}),header:r(e===`restart`?`serviceConfigEnv.restartTitle`:`serviceConfigEnv.startTitle`),icon:`pi pi-refresh`,acceptLabel:r(e===`restart`?`serviceConfigEnv.restartTitle`:`actions.start`),rejectLabel:r(`serviceConfigEnv.notNow`),accept:async()=>{try{let t=n.service.agentId;if(!t)return;e===`restart`?(await v.restart(t,n.service.id),s.add({severity:`success`,summary:r(`serviceConfigEnv.serviceRestarted`),life:3e3})):(await v.start(t,n.service.id),s.add({severity:`success`,summary:r(`serviceConfigEnv.serviceStarted`),life:3e3}))}catch(t){s.add({severity:`error`,summary:r(`serviceConfigEnv.error`),detail:t.message??r(`serviceConfigEnv.failedToAction`,{action:e}),life:5e3})}}})}return R(je,async e=>{e&&await Promise.all([He(),Ue()])}),R(()=>n.service.agentId,()=>{V()}),ve(async()=>{n.projectId&&await d.fetchAll(n.projectId),await Promise.all([He(),Ue(),V()])}),(n,a)=>(j(),N(`div`,vi,[b.value?(j(),N(`div`,yi,[g(`span`,bi,P(D(r)(`serviceConfigEnv.activeEnvironment`)),1),f(Re,{"environment-id":b.value},null,8,[`environment-id`])])):t(``,!0),T.value&&je.value?(j(),N(`div`,xi,[f(D(Me),{"model-value":De.value,disabled:te.value,"onUpdate:modelValue":Ae},null,8,[`model-value`,`disabled`]),g(`span`,Si,P(De.value?D(r)(`serviceConfigEnv.inheritsFrom`,{name:je.value.name}):D(r)(`serviceConfigEnv.isolated`,{name:je.value.name})),1)])):t(``,!0),Ie.value.length>0?(j(),F(D(re),{key:2,class:`inherited-accordion`},{default:x(()=>[f(D(be),{value:`inherited`},{default:x(()=>[f(D(le),null,{default:x(()=>[g(`span`,Ci,[a[6]||=g(`i`,{class:`pi pi-arrow-down-left`},null,-1),l(` `+P(D(r)(`serviceConfigEnv.inheritedVars`))+` `,1),f(D(oe),{value:String(Ie.value.length),severity:`secondary`,rounded:``},null,8,[`value`])])]),_:1}),f(D(pe),null,{default:x(()=>[f(D(Oe),{value:Ie.value,size:`small`,"show-headers":!1},{default:x(()=>[f(D(ke),{style:{width:`35%`}},{body:x(({data:e})=>[g(`div`,wi,[g(`code`,Ti,P(e.key),1),Le.value[e.variableId]?(j(),F(Re,{key:0,"environment-id":Le.value[e.variableId].environmentId,class:`source-badge`},null,8,[`environment-id`])):t(``,!0)])]),_:1}),f(D(ke),{style:{width:`65%`}},{body:x(({data:e})=>[g(`span`,Ei,[g(`span`,{class:`value-actions`,onClick:a[0]||=S(()=>{},[`stop`])},[e.slot.isSecret?(j(),N(`i`,{key:0,class:c([L.value.has(e.variableId)?`pi pi-eye-slash`:`pi pi-eye`,`action-icon`]),onClick:t=>ue(e.variableId)},null,10,Di)):t(``,!0),g(`i`,{class:c([fe.value===e.variableId?`pi pi-check`:`pi pi-copy`,`action-icon`]),onClick:t=>me(e.variableId,e.slot.pre+e.slot.value+e.slot.post)},null,10,Oi)]),e.slot.isSecret&&!L.value.has(e.variableId)?(j(),N(`span`,ki,`***`)):(j(),N(`code`,Ai,P(e.slot.pre)+P(e.slot.value)+P(e.slot.post),1))])]),_:1})]),_:1},8,[`value`])]),_:1})]),_:1})]),_:1})):t(``,!0),g(`div`,ji,[g(`h3`,Mi,P(D(r)(`serviceConfigEnv.envVars`)),1),g(`div`,Ni,[f(D(C),{label:D(r)(`serviceConfigEnv.editVariables`),icon:`pi pi-pencil`,size:`small`,outlined:``,"data-testid":`env-edit-btn`,disabled:!b.value,onClick:Xe},null,8,[`label`,`disabled`]),f(D(C),{label:D(r)(`serviceConfigEnv.preview`),icon:`pi pi-eye`,size:`small`,outlined:``,severity:`secondary`,loading:k.value,disabled:!b.value,"data-testid":`env-preview-btn`,onClick:We},null,8,[`label`,`loading`,`disabled`])])]),T.value?(j(),N(`div`,Pi,[Fe.value.length>0?(j(),N(`div`,Fi,[f(Be,{"environment-id":T.value.id,sources:Le.value,"resolved-env":{...ae.value?.env??{},...A.value?.env??{}},"service-builtins":Se.value,editable:!1,"show-overrides":!0,"show-override-badge":!0,"show-delete":!1,"show-add-button":!1,onVariablesChanged:He},null,8,[`environment-id`,`sources`,`resolved-env`,`service-builtins`])])):(j(),N(`div`,Ii,[g(`p`,null,P(D(r)(`serviceConfigEnv.noVarsConfigured`)),1)])),Te.value?(j(),F(D(re),{key:2,class:`inherited-accordion`},{default:x(()=>[f(D(be),{value:`passthrough`},{default:x(()=>[f(D(le),null,{default:x(()=>[g(`span`,Li,[a[7]||=g(`i`,{class:`pi pi-globe`},null,-1),l(` `+P(D(r)(`agentPage.passthrough.titleShort`))+` `,1),f(D(oe),{value:String(we.value.length),severity:`secondary`,rounded:``},null,8,[`value`])])]),_:1}),f(D(pe),null,{default:x(()=>[g(`p`,Ri,P(D(r)(`serviceConfigEnv.passthroughInfo`)),1),_e.value?(j(),F(D(i),{key:0,style:{width:`24px`,height:`24px`}})):(j(),F(D(Oe),{key:1,value:Ee.value,stripedRows:``,size:`small`},{default:x(()=>[f(D(ke),{field:`name`,header:D(r)(`common.key`),style:{width:`35%`}},{body:x(({data:e})=>[g(`code`,zi,P(e.name),1)]),_:1},8,[`header`]),f(D(ke),{header:D(r)(`common.value`),style:{width:`65%`}},{body:x(({data:e})=>[e.value===null?(j(),N(`span`,Vi,P(D(r)(`serviceConfigEnv.undefined`)),1)):(j(),N(`span`,Bi,P(e.value),1))]),_:1},8,[`header`])]),_:1},8,[`value`]))]),_:1})]),_:1})]),_:1})):t(``,!0)])):b.value?(j(),N(`div`,Ui,[g(`p`,null,P(D(r)(`serviceConfigEnv.noVarsConfigured`)),1)])):(j(),N(`div`,Hi,[g(`p`,null,P(D(r)(`serviceConfigEnv.noActiveEnv`)),1)])),f(D(E),{visible:ee.value,header:D(r)(`serviceConfigEnv.editVarsHeader`),style:{width:`900px`},modal:``,"onUpdate:visible":a[2]||=e=>{e||Ze()}},{footer:x(()=>[f(D(C),{label:D(r)(`actions.close`),icon:`pi pi-times`,onClick:a[1]||=e=>Ze()},null,8,[`label`])]),default:x(()=>[g(`div`,Wi,[b.value?(j(),N(`div`,Gi,[g(`span`,Ki,P(D(r)(`serviceConfigEnv.editingVarsFor`,{name:e.service.name||e.service.id})),1),f(Re,{"environment-id":b.value},null,8,[`environment-id`])])):t(``,!0),g(`div`,qi,[T.value?(j(),F(Be,{key:0,"environment-id":T.value.id,editable:!0,sources:Le.value,"autocomplete-enabled":!0,"autocomplete-suggestions":D(M),"autocomplete-meta":D(se),"resolved-env":{...ae.value?.env??{},...A.value?.env??{}},"service-builtins":Se.value,"show-overrides":!0,onVariablesChanged:He,"show-delete":!0,"show-add-button":!0,onAutocompleteSearch:D(ce)},null,8,[`environment-id`,`sources`,`autocomplete-suggestions`,`autocomplete-meta`,`resolved-env`,`service-builtins`,`onAutocompleteSearch`])):t(``,!0)])])]),_:1},8,[`visible`,`header`]),f(D(E),{visible:O.value,"onUpdate:visible":a[5]||=e=>O.value=e,header:D(r)(`serviceConfigEnv.previewHeader`),style:{width:`700px`},modal:``,"data-testid":`env-preview-dialog`},{footer:x(()=>[f(D(C),{label:D(r)(`actions.close`),icon:`pi pi-times`,onClick:a[4]||=e=>O.value=!1},null,8,[`label`])]),default:x(()=>[k.value?(j(),N(`div`,Ji,[f(D(i))])):A.value?(j(),N(`div`,Yi,[g(`p`,Xi,P(D(r)(`serviceConfigEnv.injectedVarsInfo`)),1),f(D(Oe),{value:Ge.value,stripedRows:``,size:`small`,rows:15,paginator:Ge.value.length>15},{default:x(()=>[f(D(ke),{field:`key`,header:D(r)(`common.key`),style:{width:`35%`}},{body:x(({data:e})=>[g(`code`,Zi,P(e.key),1)]),_:1},8,[`header`]),f(D(ke),{header:D(r)(`common.value`),style:{width:`65%`}},{body:x(({data:e})=>[g(`span`,Qi,[g(`span`,{class:`value-actions`,onClick:a[3]||=S(()=>{},[`stop`])},[A.value.envSecrets.includes(e.key)?(j(),N(`i`,{key:0,class:c([L.value.has(`preview:`+e.key)?`pi pi-eye-slash`:`pi pi-eye`,`action-icon`]),onClick:t=>ue(`preview:`+e.key)},null,10,$i)):t(``,!0),g(`i`,{class:c([fe.value===`preview:`+e.key?`pi pi-check`:`pi pi-copy`,`action-icon`]),onClick:t=>me(`preview:`+e.key,e.value)},null,10,ea)]),A.value.envSecrets.includes(e.key)&&!L.value.has(`preview:`+e.key)?(j(),N(`span`,ta,`***`)):(j(),N(`span`,na,P(Ke(e.value,!1)),1))])]),_:1},8,[`header`])]),_:1},8,[`value`,`paginator`])])):t(``,!0)]),_:1},8,[`visible`,`header`])]))}}),[[`__scopeId`,`data-v-952c6d8e`]]),ia={class:`config-health`},aa={class:`config-card config-card--inline`},oa={class:`config-card__header`},sa={class:`config-card`},ca={class:`config-card__header`},la={class:`config-card`},ua={class:`config-card__header`},da={class:`config-card`},fa={class:`config-card__header`},pa={class:`config-card`},ma={class:`config-card__header`},ha={key:1,class:`config-card`},ga={class:`config-card__header`},_a={class:`config-card__hint`},va={class:`config-card`},ya={class:`config-card__header`},ba={class:`config-card`},xa={class:`config-card__header`},Sa={class:`config-card`},Ca={class:`config-card__header`},wa={class:`config-card`},Ta={class:`config-card__header`},Ea=V(b({__name:`ServiceConfigHealthCheck`,props:{service:{}},emits:[`save`],setup(e,{emit:n}){let r=e,i=n,{t:a}=ne(),o=w(!!r.service.healthCheck),s=w({type:r.service.healthCheck?.type??`http`,path:r.service.healthCheck?.path??`/health`,interval:r.service.healthCheck?.interval??3e4,timeout:r.service.healthCheck?.timeout??5e3,retries:r.service.healthCheck?.retries??3,method:r.service.healthCheck?.method??`GET`,expectedStatus:r.service.healthCheck?.expectedStatus??200,initialDelay:r.service.healthCheck?.initialDelay??5e3,command:r.service.healthCheck?.command??``}),c=[{label:`HTTP Request`,value:`http`},{label:`Command`,value:`command`}],l=[{label:`GET`,value:`GET`},{label:`HEAD`,value:`HEAD`},{label:`POST`,value:`POST`},{label:`PUT`,value:`PUT`}];R(()=>r.service,e=>{o.value=!!e.healthCheck,s.value={type:e.healthCheck?.type??`http`,path:e.healthCheck?.path??`/health`,interval:e.healthCheck?.interval??3e4,timeout:e.healthCheck?.timeout??5e3,retries:e.healthCheck?.retries??3,method:e.healthCheck?.method??`GET`,expectedStatus:e.healthCheck?.expectedStatus??200,initialDelay:e.healthCheck?.initialDelay??5e3,command:e.healthCheck?.command??``}});let u=null;function d(){u&&clearTimeout(u),u=setTimeout(()=>{if(!o.value)i(`save`,void 0);else{if(s.value.type===`http`&&!s.value.path?.trim()||s.value.type===`command`&&!s.value.command?.trim())return;i(`save`,{type:s.value.type,path:s.value.path,method:s.value.method,expectedStatus:s.value.expectedStatus,command:s.value.command||void 0,interval:s.value.interval,timeout:s.value.timeout,retries:s.value.retries,initialDelay:s.value.initialDelay})}u=null},150)}return(e,n)=>(j(),N(`div`,ia,[g(`div`,aa,[g(`div`,oa,[n[10]||=g(`i`,{class:`pi pi-heart`},null,-1),g(`span`,null,P(D(a)(`serviceConfigHealthCheck.enable`)),1)]),f(D(Me),{modelValue:o.value,"onUpdate:modelValue":n[0]||=e=>o.value=e,onChange:d},null,8,[`modelValue`])]),o.value?(j(),N(z,{key:0},[g(`div`,sa,[g(`div`,ca,[n[11]||=g(`i`,{class:`pi pi-cog`},null,-1),g(`span`,null,P(D(a)(`serviceConfigHealthCheck.type`)),1)]),f(D(he),{modelValue:s.value.type,"onUpdate:modelValue":n[1]||=e=>s.value.type=e,options:c,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:d},null,8,[`modelValue`]),n[12]||=g(`small`,{class:`config-card__hint`},`HTTP checks a URL endpoint; Command runs a shell command (exit 0 = healthy)`,-1)]),s.value.type===`http`?(j(),N(z,{key:0},[g(`div`,la,[g(`div`,ua,[n[13]||=g(`i`,{class:`pi pi-link`},null,-1),g(`span`,null,P(D(a)(`serviceConfigHealthCheck.path`)),1)]),f(D(M),{modelValue:s.value.path,"onUpdate:modelValue":n[2]||=e=>s.value.path=e,class:`config-card__input`,placeholder:`/health`,onBlur:d,onKeydown:B(S(d,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,da,[g(`div`,fa,[n[14]||=g(`i`,{class:`pi pi-directions`},null,-1),g(`span`,null,P(D(a)(`serviceConfigHealthCheck.method`)),1)]),f(D(he),{modelValue:s.value.method,"onUpdate:modelValue":n[3]||=e=>s.value.method=e,options:l,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:d},null,8,[`modelValue`])]),g(`div`,pa,[g(`div`,ma,[n[15]||=g(`i`,{class:`pi pi-check-circle`},null,-1),g(`span`,null,P(D(a)(`serviceConfigHealthCheck.expectedStatus`)),1)]),f(D(Ae),{modelValue:s.value.expectedStatus,"onUpdate:modelValue":n[4]||=e=>s.value.expectedStatus=e,class:`config-card__input`,"use-grouping":!1,min:100,max:599,onBlur:d,onKeydown:B(S(d,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),n[16]||=g(`small`,{class:`config-card__hint`},`HTTP status code to expect (default 200)`,-1)])],64)):t(``,!0),s.value.type===`command`?(j(),N(`div`,ha,[g(`div`,ga,[n[17]||=g(`i`,{class:`pi pi-code`},null,-1),g(`span`,null,P(D(a)(`serviceConfigHealthCheck.command`)),1)]),f(D(L),{modelValue:s.value.command,"onUpdate:modelValue":n[5]||=e=>s.value.command=e,class:`config-card__input`,rows:`2`,placeholder:`curl -sf http://localhost:3000/health`,"auto-resize":``,onBlur:d},null,8,[`modelValue`]),g(`small`,_a,P(D(a)(`serviceConfigHealthCheck.commandHint`)),1)])):t(``,!0),g(`div`,va,[g(`div`,ya,[n[18]||=g(`i`,{class:`pi pi-hourglass`},null,-1),g(`span`,null,P(D(a)(`serviceConfigHealthCheck.initialDelay`)),1)]),f(D(Ae),{modelValue:s.value.initialDelay,"onUpdate:modelValue":n[6]||=e=>s.value.initialDelay=e,class:`config-card__input`,"use-grouping":!1,min:0,onBlur:d,onKeydown:B(S(d,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),n[19]||=g(`small`,{class:`config-card__hint`},`Wait before first health check (ms)`,-1)]),g(`div`,ba,[g(`div`,xa,[n[20]||=g(`i`,{class:`pi pi-clock`},null,-1),g(`span`,null,P(D(a)(`serviceConfigHealthCheck.interval`)),1)]),f(D(Ae),{modelValue:s.value.interval,"onUpdate:modelValue":n[7]||=e=>s.value.interval=e,class:`config-card__input`,"use-grouping":!1,min:1e3,onBlur:d,onKeydown:B(S(d,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,Sa,[g(`div`,Ca,[n[21]||=g(`i`,{class:`pi pi-stopwatch`},null,-1),g(`span`,null,P(D(a)(`serviceConfigHealthCheck.timeout`)),1)]),f(D(Ae),{modelValue:s.value.timeout,"onUpdate:modelValue":n[8]||=e=>s.value.timeout=e,class:`config-card__input`,"use-grouping":!1,min:500,onBlur:d,onKeydown:B(S(d,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,wa,[g(`div`,Ta,[n[22]||=g(`i`,{class:`pi pi-replay`},null,-1),g(`span`,null,P(D(a)(`serviceConfigHealthCheck.retries`)),1)]),f(D(Ae),{modelValue:s.value.retries,"onUpdate:modelValue":n[9]||=e=>s.value.retries=e,class:`config-card__input`,"use-grouping":!1,min:0,max:10,onBlur:d,onKeydown:B(S(d,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])],64)):t(``,!0)]))}}),[[`__scopeId`,`data-v-63e32039`]]),Da={class:`config-shortcuts`},Oa={key:0,class:`config-shortcuts__empty`},ka={class:`config-shortcuts__row`},Aa={class:`config-shortcuts__field`},ja=[`for`],Ma={class:`config-shortcuts__field config-shortcuts__field--wide`},Na=[`for`],Pa={class:`config-shortcuts__field`},Fa=[`for`],Ia={class:`config-shortcuts__actions-cell`},La={class:`config-shortcuts__footer`},Ra=V(b({__name:`ServiceConfigShortcuts`,props:{service:{}},emits:[`save`],setup(e,{emit:n}){let r=e,{t:i}=ne(),a=n,o=w([...r.service.shortcuts??[]]),s=null;R(()=>r.service,e=>{s||(o.value=[...e.shortcuts??[]])});function c(){o.value=[...o.value,{id:De(),label:``,command:``,cwd:void 0}]}function l(e){o.value=o.value.filter((t,n)=>n!==e)}function u(e,t,n){o.value=o.value.map((r,i)=>i===e?{...r,[t]:n||void 0}:r)}function d(){s&&clearTimeout(s),s=setTimeout(()=>{a(`save`,o.value),s=null},150)}function p(e){l(e),d()}return(e,n)=>(j(),N(`div`,Da,[o.value.length===0?(j(),N(`div`,Oa,[g(`p`,null,P(D(i)(`serviceConfigShortcuts.empty`)),1)])):t(``,!0),(j(!0),N(z,null,me(o.value,(e,t)=>(j(),N(`div`,{key:e.id,class:`config-card`},[g(`div`,ka,[g(`div`,Aa,[g(`label`,{class:`config-shortcuts__label`,for:`shortcut-label-${t}`},P(D(i)(`serviceConfigShortcuts.label`)),9,ja),f(D(M),{id:`shortcut-label-${t}`,"model-value":e.label,placeholder:D(i)(`serviceConfigShortcuts.labelPlaceholder`),class:`config-card__input`,"data-testid":`shortcut-label-input`,"onUpdate:modelValue":e=>u(t,`label`,e),onBlur:d,onKeydown:B(S(d,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),g(`div`,Ma,[g(`label`,{class:`config-shortcuts__label`,for:`shortcut-command-${t}`},P(D(i)(`serviceConfigShortcuts.command`)),9,Na),f(D(M),{id:`shortcut-command-${t}`,"model-value":e.command,placeholder:D(i)(`serviceConfigShortcuts.commandPlaceholder`),class:`config-card__input`,"data-testid":`shortcut-command-input`,"onUpdate:modelValue":e=>u(t,`command`,e),onBlur:d,onKeydown:B(S(d,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),g(`div`,Pa,[g(`label`,{class:`config-shortcuts__label`,for:`shortcut-cwd-${t}`},P(D(i)(`serviceConfigShortcuts.workingDir`)),9,Fa),f(D(M),{id:`shortcut-cwd-${t}`,"model-value":e.cwd??``,placeholder:D(i)(`serviceConfigShortcuts.cwdPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>u(t,`cwd`,e),onBlur:d,onKeydown:B(S(d,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),g(`div`,Ia,[f(D(C),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>p(t)},null,8,[`onClick`])])])]))),128)),g(`div`,La,[f(D(C),{label:D(i)(`serviceConfigShortcuts.addShortcut`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,"data-testid":`add-shortcut-btn`,onClick:c},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-d6ecb989`]]),za=Object.defineProperty,Ba=Object.getOwnPropertySymbols,Va=Object.prototype.hasOwnProperty,Ha=Object.prototype.propertyIsEnumerable,Ua=(e,t,n)=>t in e?za(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Wa=(e,t)=>{for(var n in t||={})Va.call(t,n)&&Ua(e,n,t[n]);if(Ba)for(var n of Ba(t))Ha.call(t,n)&&Ua(e,n,t[n]);return e},Ga=(e,t)=>{var n={};for(var r in e)Va.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Ba)for(var r of Ba(e))t.indexOf(r)<0&&Ha.call(e,r)&&(n[r]=e[r]);return n},Ka=`[vue-draggable-plus]: `;function qa(e){console.warn(Ka+e)}function Ja(e){console.error(Ka+e)}function Ya(e,t,n){return n>=0&&n<e.length&&e.splice(n,0,e.splice(t,1)[0]),e}function Xa(e){return e.replace(/-(\w)/g,(e,t)=>t?t.toUpperCase():``)}function Za(e){return Object.keys(e).reduce((t,n)=>(e[n]!==void 0&&(t[Xa(n)]=e[n]),t),{})}function Qa(e,t){return Array.isArray(e)&&e.splice(t,1),e}function $a(e,t,n){return Array.isArray(e)&&e.splice(t,0,n),e}function eo(e){return e===void 0}function to(e){return typeof e==`string`}function no(e,t,n){let r=e.children[n];e.insertBefore(t,r)}function ro(e){e.parentNode&&e.parentNode.removeChild(e)}function io(e,t=document){let n=null;return n=typeof t?.querySelector==`function`?(t?.querySelector)?.call(t,e):document.querySelector(e),n||qa(`Element not found: ${e}`),n}function ao(e,t,n=null){return function(...r){return e.apply(n,r),t.apply(n,r)}}function oo(e,t){let n=Wa({},e);return Object.keys(t).forEach(r=>{n[r]?n[r]=ao(e[r],t[r]):n[r]=t[r]}),n}function so(e){return e instanceof HTMLElement}function co(e,t){Object.keys(e).forEach(n=>{t(n,e[n])})}function lo(e){return e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97)}var uo=Object.assign;function fo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function po(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?fo(Object(n),!0).forEach(function(t){ho(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):fo(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function mo(e){"@babel/helpers - typeof";return mo=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},mo(e)}function ho(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function go(){return go=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},go.apply(this,arguments)}function _o(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,a;for(a=0;a<r.length;a++)i=r[a],!(t.indexOf(i)>=0)&&(n[i]=e[i]);return n}function vo(e,t){if(e==null)return{};var n=_o(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var yo=`1.15.2`;function bo(e){if(typeof window<`u`&&window.navigator)return!!navigator.userAgent.match(e)}var xo=bo(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),So=bo(/Edge/i),Co=bo(/firefox/i),wo=bo(/safari/i)&&!bo(/chrome/i)&&!bo(/android/i),To=bo(/iP(ad|od|hone)/i),Eo=bo(/chrome/i)&&bo(/android/i),Do={capture:!1,passive:!1};function H(e,t,n){e.addEventListener(t,n,!xo&&Do)}function U(e,t,n){e.removeEventListener(t,n,!xo&&Do)}function Oo(e,t){if(t){if(t[0]===`>`&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch{return!1}return!1}}function ko(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function Ao(e,t,n,r){if(e){n||=document;do{if(t!=null&&(t[0]===`>`?e.parentNode===n&&Oo(e,t):Oo(e,t))||r&&e===n)return e;if(e===n)break}while(e=ko(e))}return null}var jo=/\s+/g;function Mo(e,t,n){e&&t&&(e.classList?e.classList[n?`add`:`remove`](t):e.className=((` `+e.className+` `).replace(jo,` `).replace(` `+t+` `,` `)+(n?` `+t:``)).replace(jo,` `))}function W(e,t,n){var r=e&&e.style;if(r){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,``):e.currentStyle&&(n=e.currentStyle),t===void 0?n:n[t];!(t in r)&&t.indexOf(`webkit`)===-1&&(t=`-webkit-`+t),r[t]=n+(typeof n==`string`?``:`px`)}}function No(e,t){var n=``;if(typeof e==`string`)n=e;else do{var r=W(e,`transform`);r&&r!==`none`&&(n=r+` `+n)}while(!t&&(e=e.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(n)}function Po(e,t,n){if(e){var r=e.getElementsByTagName(t),i=0,a=r.length;if(n)for(;i<a;i++)n(r[i],i);return r}return[]}function Fo(){return document.scrollingElement||document.documentElement}function G(e,t,n,r,i){if(!(!e.getBoundingClientRect&&e!==window)){var a,o,s,c,l,u,d;if(e!==window&&e.parentNode&&e!==Fo()?(a=e.getBoundingClientRect(),o=a.top,s=a.left,c=a.bottom,l=a.right,u=a.height,d=a.width):(o=0,s=0,c=window.innerHeight,l=window.innerWidth,u=window.innerHeight,d=window.innerWidth),(t||n)&&e!==window&&(i||=e.parentNode,!xo))do if(i&&i.getBoundingClientRect&&(W(i,`transform`)!==`none`||n&&W(i,`position`)!==`static`)){var f=i.getBoundingClientRect();o-=f.top+parseInt(W(i,`border-top-width`)),s-=f.left+parseInt(W(i,`border-left-width`)),c=o+a.height,l=s+a.width;break}while(i=i.parentNode);if(r&&e!==window){var p=No(i||e),m=p&&p.a,h=p&&p.d;p&&(o/=h,s/=m,d/=m,u/=h,c=o+u,l=s+d)}return{top:o,left:s,bottom:c,right:l,width:d,height:u}}}function Io(e,t,n){for(var r=Ho(e,!0),i=G(e)[t];r;){var a=G(r)[n],o=void 0;if(o=i>=a,!o)return r;if(r===Fo())break;r=Ho(r,!1)}return!1}function Lo(e,t,n,r){for(var i=0,a=0,o=e.children;a<o.length;){if(o[a].style.display!==`none`&&o[a]!==Q.ghost&&(r||o[a]!==Q.dragged)&&Ao(o[a],n.draggable,e,!1)){if(i===t)return o[a];i++}a++}return null}function Ro(e,t){for(var n=e.lastElementChild;n&&(n===Q.ghost||W(n,`display`)===`none`||t&&!Oo(n,t));)n=n.previousElementSibling;return n||null}function zo(e,t){var n=0;if(!e||!e.parentNode)return-1;for(;e=e.previousElementSibling;)e.nodeName.toUpperCase()!==`TEMPLATE`&&e!==Q.clone&&(!t||Oo(e,t))&&n++;return n}function Bo(e){var t=0,n=0,r=Fo();if(e)do{var i=No(e),a=i.a,o=i.d;t+=e.scrollLeft*a,n+=e.scrollTop*o}while(e!==r&&(e=e.parentNode));return[t,n]}function Vo(e,t){for(var n in e)if(e.hasOwnProperty(n)){for(var r in t)if(t.hasOwnProperty(r)&&t[r]===e[n][r])return Number(n)}return-1}function Ho(e,t){if(!e||!e.getBoundingClientRect)return Fo();var n=e,r=!1;do if(n.clientWidth<n.scrollWidth||n.clientHeight<n.scrollHeight){var i=W(n);if(n.clientWidth<n.scrollWidth&&(i.overflowX==`auto`||i.overflowX==`scroll`)||n.clientHeight<n.scrollHeight&&(i.overflowY==`auto`||i.overflowY==`scroll`)){if(!n.getBoundingClientRect||n===document.body)return Fo();if(r||t)return n;r=!0}}while(n=n.parentNode);return Fo()}function Uo(e,t){if(e&&t)for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function Wo(e,t){return Math.round(e.top)===Math.round(t.top)&&Math.round(e.left)===Math.round(t.left)&&Math.round(e.height)===Math.round(t.height)&&Math.round(e.width)===Math.round(t.width)}var Go;function Ko(e,t){return function(){if(!Go){var n=arguments,r=this;n.length===1?e.call(r,n[0]):e.apply(r,n),Go=setTimeout(function(){Go=void 0},t)}}}function qo(){clearTimeout(Go),Go=void 0}function Jo(e,t,n){e.scrollLeft+=t,e.scrollTop+=n}function Yo(e){var t=window.Polymer,n=window.jQuery||window.Zepto;return t&&t.dom?t.dom(e).cloneNode(!0):n?n(e).clone(!0)[0]:e.cloneNode(!0)}function Xo(e,t,n){var r={};return Array.from(e.children).forEach(function(i){if(!(!Ao(i,t.draggable,e,!1)||i.animated||i===n)){var a=G(i);r.left=Math.min(r.left??1/0,a.left),r.top=Math.min(r.top??1/0,a.top),r.right=Math.max(r.right??-1/0,a.right),r.bottom=Math.max(r.bottom??-1/0,a.bottom)}}),r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}var Zo=`Sortable`+new Date().getTime();function Qo(){var e=[],t;return{captureAnimationState:function(){e=[],this.options.animation&&[].slice.call(this.el.children).forEach(function(t){if(!(W(t,`display`)===`none`||t===Q.ghost)){e.push({target:t,rect:G(t)});var n=po({},e[e.length-1].rect);if(t.thisAnimationDuration){var r=No(t,!0);r&&(n.top-=r.f,n.left-=r.e)}t.fromRect=n}})},addAnimationState:function(t){e.push(t)},removeAnimationState:function(t){e.splice(Vo(e,{target:t}),1)},animateAll:function(n){var r=this;if(!this.options.animation){clearTimeout(t),typeof n==`function`&&n();return}var i=!1,a=0;e.forEach(function(e){var t=0,n=e.target,o=n.fromRect,s=G(n),c=n.prevFromRect,l=n.prevToRect,u=e.rect,d=No(n,!0);d&&(s.top-=d.f,s.left-=d.e),n.toRect=s,n.thisAnimationDuration&&Wo(c,s)&&!Wo(o,s)&&(u.top-s.top)/(u.left-s.left)===(o.top-s.top)/(o.left-s.left)&&(t=es(u,c,l,r.options)),Wo(s,o)||(n.prevFromRect=o,n.prevToRect=s,t||=r.options.animation,r.animate(n,u,s,t)),t&&(i=!0,a=Math.max(a,t),clearTimeout(n.animationResetTimer),n.animationResetTimer=setTimeout(function(){n.animationTime=0,n.prevFromRect=null,n.fromRect=null,n.prevToRect=null,n.thisAnimationDuration=null},t),n.thisAnimationDuration=t)}),clearTimeout(t),i?t=setTimeout(function(){typeof n==`function`&&n()},a):typeof n==`function`&&n(),e=[]},animate:function(e,t,n,r){if(r){W(e,`transition`,``),W(e,`transform`,``);var i=No(this.el),a=i&&i.a,o=i&&i.d,s=(t.left-n.left)/(a||1),c=(t.top-n.top)/(o||1);e.animatingX=!!s,e.animatingY=!!c,W(e,`transform`,`translate3d(`+s+`px,`+c+`px,0)`),this.forRepaintDummy=$o(e),W(e,`transition`,`transform `+r+`ms`+(this.options.easing?` `+this.options.easing:``)),W(e,`transform`,`translate3d(0,0,0)`),typeof e.animated==`number`&&clearTimeout(e.animated),e.animated=setTimeout(function(){W(e,`transition`,``),W(e,`transform`,``),e.animated=!1,e.animatingX=!1,e.animatingY=!1},r)}}}}function $o(e){return e.offsetWidth}function es(e,t,n,r){return Math.sqrt((t.top-e.top)**2+(t.left-e.left)**2)/Math.sqrt((t.top-n.top)**2+(t.left-n.left)**2)*r.animation}var ts=[],ns={initializeByDefault:!0},rs={mount:function(e){for(var t in ns)ns.hasOwnProperty(t)&&!(t in e)&&(e[t]=ns[t]);ts.forEach(function(t){if(t.pluginName===e.pluginName)throw`Sortable: Cannot mount plugin ${e.pluginName} more than once`}),ts.push(e)},pluginEvent:function(e,t,n){var r=this;this.eventCanceled=!1,n.cancel=function(){r.eventCanceled=!0};var i=e+`Global`;ts.forEach(function(r){t[r.pluginName]&&(t[r.pluginName][i]&&t[r.pluginName][i](po({sortable:t},n)),t.options[r.pluginName]&&t[r.pluginName][e]&&t[r.pluginName][e](po({sortable:t},n)))})},initializePlugins:function(e,t,n,r){for(var i in ts.forEach(function(r){var i=r.pluginName;if(!(!e.options[i]&&!r.initializeByDefault)){var a=new r(e,t,e.options);a.sortable=e,a.options=e.options,e[i]=a,go(n,a.defaults)}}),e.options)if(e.options.hasOwnProperty(i)){var a=this.modifyOption(e,i,e.options[i]);a!==void 0&&(e.options[i]=a)}},getEventProperties:function(e,t){var n={};return ts.forEach(function(r){typeof r.eventProperties==`function`&&go(n,r.eventProperties.call(t[r.pluginName],e))}),n},modifyOption:function(e,t,n){var r;return ts.forEach(function(i){e[i.pluginName]&&i.optionListeners&&typeof i.optionListeners[t]==`function`&&(r=i.optionListeners[t].call(e[i.pluginName],n))}),r}};function is(e){var t=e.sortable,n=e.rootEl,r=e.name,i=e.targetEl,a=e.cloneEl,o=e.toEl,s=e.fromEl,c=e.oldIndex,l=e.newIndex,u=e.oldDraggableIndex,d=e.newDraggableIndex,f=e.originalEvent,p=e.putSortable,m=e.extraEventProperties;if(t||=n&&n[Zo],t){var h,g=t.options,_=`on`+r.charAt(0).toUpperCase()+r.substr(1);window.CustomEvent&&!xo&&!So?h=new CustomEvent(r,{bubbles:!0,cancelable:!0}):(h=document.createEvent(`Event`),h.initEvent(r,!0,!0)),h.to=o||n,h.from=s||n,h.item=i||n,h.clone=a,h.oldIndex=c,h.newIndex=l,h.oldDraggableIndex=u,h.newDraggableIndex=d,h.originalEvent=f,h.pullMode=p?p.lastPutMode:void 0;var v=po(po({},m),rs.getEventProperties(r,t));for(var y in v)h[y]=v[y];n&&n.dispatchEvent(h),g[_]&&g[_].call(t,h)}}var as=[`evt`],os=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.evt,i=vo(n,as);rs.pluginEvent.bind(Q)(e,t,po({dragEl:K,parentEl:q,ghostEl:J,rootEl:Y,nextEl:cs,lastDownEl:ls,cloneEl:X,cloneHidden:us,dragStarted:Ts,putSortable:Z,activeSortable:Q.active,originalEvent:r,oldIndex:ds,oldDraggableIndex:ps,newIndex:fs,newDraggableIndex:ms,hideGhostForTarget:Ws,unhideGhostForTarget:Gs,cloneNowHidden:function(){us=!0},cloneNowShown:function(){us=!1},dispatchSortableEvent:function(e){ss({sortable:t,name:e,originalEvent:r})}},i))};function ss(e){is(po({putSortable:Z,cloneEl:X,targetEl:K,rootEl:Y,oldIndex:ds,oldDraggableIndex:ps,newIndex:fs,newDraggableIndex:ms},e))}var K,q,J,Y,cs,ls,X,us,ds,fs,ps,ms,hs,Z,gs=!1,_s=!1,vs=[],ys,bs,xs,Ss,Cs,ws,Ts,Es,Ds,Os=!1,ks=!1,As,js,Ms=[],Ns=!1,Ps=[],Fs=typeof document<`u`,Is=To,Ls=So||xo?`cssFloat`:`float`,Rs=Fs&&!Eo&&!To&&`draggable`in document.createElement(`div`),zs=function(){if(Fs){if(xo)return!1;var e=document.createElement(`x`);return e.style.cssText=`pointer-events:auto`,e.style.pointerEvents===`auto`}}(),Bs=function(e,t){var n=W(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),i=Lo(e,0,t),a=Lo(e,1,t),o=i&&W(i),s=a&&W(a),c=o&&parseInt(o.marginLeft)+parseInt(o.marginRight)+G(i).width,l=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+G(a).width;if(n.display===`flex`)return n.flexDirection===`column`||n.flexDirection===`column-reverse`?`vertical`:`horizontal`;if(n.display===`grid`)return n.gridTemplateColumns.split(` `).length<=1?`vertical`:`horizontal`;if(i&&o.float&&o.float!==`none`){var u=o.float===`left`?`left`:`right`;return a&&(s.clear===`both`||s.clear===u)?`vertical`:`horizontal`}return i&&(o.display===`block`||o.display===`flex`||o.display===`table`||o.display===`grid`||c>=r&&n[Ls]===`none`||a&&n[Ls]===`none`&&c+l>r)?`vertical`:`horizontal`},Vs=function(e,t,n){var r=n?e.left:e.top,i=n?e.right:e.bottom,a=n?e.width:e.height,o=n?t.left:t.top,s=n?t.right:t.bottom,c=n?t.width:t.height;return r===o||i===s||r+a/2===o+c/2},Hs=function(e,t){var n;return vs.some(function(r){var i=r[Zo].options.emptyInsertThreshold;if(!(!i||Ro(r))){var a=G(r),o=e>=a.left-i&&e<=a.right+i,s=t>=a.top-i&&t<=a.bottom+i;if(o&&s)return n=r}}),n},Us=function(e){function t(e,n){return function(r,i,a,o){var s=r.options.group.name&&i.options.group.name&&r.options.group.name===i.options.group.name;if(e==null&&(n||s))return!0;if(e==null||e===!1)return!1;if(n&&e===`clone`)return e;if(typeof e==`function`)return t(e(r,i,a,o),n)(r,i,a,o);var c=(n?r:i).options.group.name;return e===!0||typeof e==`string`&&e===c||e.join&&e.indexOf(c)>-1}}var n={},r=e.group;(!r||mo(r)!=`object`)&&(r={name:r}),n.name=r.name,n.checkPull=t(r.pull,!0),n.checkPut=t(r.put),n.revertClone=r.revertClone,e.group=n},Ws=function(){!zs&&J&&W(J,`display`,`none`)},Gs=function(){!zs&&J&&W(J,`display`,``)};Fs&&!Eo&&document.addEventListener(`click`,function(e){if(_s)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),_s=!1,!1},!0);var Ks=function(e){if(K){e=e.touches?e.touches[0]:e;var t=Hs(e.clientX,e.clientY);if(t){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[Zo]._onDragOver(n)}}},qs=function(e){K&&K.parentNode[Zo]._isOutsideThisEl(e.target)};function Q(e,t){if(!(e&&e.nodeType&&e.nodeType===1))throw`Sortable: \`el\` must be an HTMLElement, not ${{}.toString.call(e)}`;this.el=e,this.options=t=go({},t),e[Zo]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?`>li`:`>*`,swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Bs(e,this.options)},ghostClass:`sortable-ghost`,chosenClass:`sortable-chosen`,dragClass:`sortable-drag`,ignore:`a, img`,filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData(`Text`,t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:`data-id`,delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:`sortable-fallback`,fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:Q.supportPointer!==!1&&`PointerEvent`in window&&!wo,emptyInsertThreshold:5};for(var r in rs.initializePlugins(this,e,n),n)!(r in t)&&(t[r]=n[r]);for(var i in Us(t),this)i.charAt(0)===`_`&&typeof this[i]==`function`&&(this[i]=this[i].bind(this));this.nativeDraggable=t.forceFallback?!1:Rs,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?H(e,`pointerdown`,this._onTapStart):(H(e,`mousedown`,this._onTapStart),H(e,`touchstart`,this._onTapStart)),this.nativeDraggable&&(H(e,`dragover`,this),H(e,`dragenter`,this)),vs.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),go(this,Qo())}Q.prototype={constructor:Q,_isOutsideThisEl:function(e){!this.el.contains(e)&&e!==this.el&&(Es=null)},_getDirection:function(e,t){return typeof this.options.direction==`function`?this.options.direction.call(this,e,t,K):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,r=this.options,i=r.preventOnFilter,a=e.type,o=e.touches&&e.touches[0]||e.pointerType&&e.pointerType===`touch`&&e,s=(o||e).target,c=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||s,l=r.filter;if(rc(n),!K&&!(/mousedown|pointerdown/.test(a)&&e.button!==0||r.disabled)&&!c.isContentEditable&&!(!this.nativeDraggable&&wo&&s&&s.tagName.toUpperCase()===`SELECT`)&&(s=Ao(s,r.draggable,n,!1),!(s&&s.animated)&&ls!==s)){if(ds=zo(s),ps=zo(s,r.draggable),typeof l==`function`){if(l.call(this,e,s,this)){ss({sortable:t,rootEl:c,name:`filter`,targetEl:s,toEl:n,fromEl:n}),os(`filter`,t,{evt:e}),i&&e.cancelable&&e.preventDefault();return}}else if(l&&(l=l.split(`,`).some(function(r){if(r=Ao(c,r.trim(),n,!1),r)return ss({sortable:t,rootEl:r,name:`filter`,targetEl:s,fromEl:n,toEl:n}),os(`filter`,t,{evt:e}),!0}),l)){i&&e.cancelable&&e.preventDefault();return}r.handle&&!Ao(c,r.handle,n,!1)||this._prepareDragStart(e,o,s)}}},_prepareDragStart:function(e,t,n){var r=this,i=r.el,a=r.options,o=i.ownerDocument,s;if(n&&!K&&n.parentNode===i){var c=G(n);if(Y=i,K=n,q=K.parentNode,cs=K.nextSibling,ls=n,hs=a.group,Q.dragged=K,ys={target:K,clientX:(t||e).clientX,clientY:(t||e).clientY},Cs=ys.clientX-c.left,ws=ys.clientY-c.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,K.style[`will-change`]=`all`,s=function(){if(os(`delayEnded`,r,{evt:e}),Q.eventCanceled){r._onDrop();return}r._disableDelayedDragEvents(),!Co&&r.nativeDraggable&&(K.draggable=!0),r._triggerDragStart(e,t),ss({sortable:r,name:`choose`,originalEvent:e}),Mo(K,a.chosenClass,!0)},a.ignore.split(`,`).forEach(function(e){Po(K,e.trim(),Xs)}),H(o,`dragover`,Ks),H(o,`mousemove`,Ks),H(o,`touchmove`,Ks),H(o,`mouseup`,r._onDrop),H(o,`touchend`,r._onDrop),H(o,`touchcancel`,r._onDrop),Co&&this.nativeDraggable&&(this.options.touchStartThreshold=4,K.draggable=!0),os(`delayStart`,this,{evt:e}),a.delay&&(!a.delayOnTouchOnly||t)&&(!this.nativeDraggable||!(So||xo))){if(Q.eventCanceled){this._onDrop();return}H(o,`mouseup`,r._disableDelayedDrag),H(o,`touchend`,r._disableDelayedDrag),H(o,`touchcancel`,r._disableDelayedDrag),H(o,`mousemove`,r._delayedDragTouchMoveHandler),H(o,`touchmove`,r._delayedDragTouchMoveHandler),a.supportPointer&&H(o,`pointermove`,r._delayedDragTouchMoveHandler),r._dragStartTimer=setTimeout(s,a.delay)}else s()}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){K&&Xs(K),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;U(e,`mouseup`,this._disableDelayedDrag),U(e,`touchend`,this._disableDelayedDrag),U(e,`touchcancel`,this._disableDelayedDrag),U(e,`mousemove`,this._delayedDragTouchMoveHandler),U(e,`touchmove`,this._delayedDragTouchMoveHandler),U(e,`pointermove`,this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t||=e.pointerType==`touch`&&e,!this.nativeDraggable||t?this.options.supportPointer?H(document,`pointermove`,this._onTouchMove):t?H(document,`touchmove`,this._onTouchMove):H(document,`mousemove`,this._onTouchMove):(H(K,`dragend`,this),H(Y,`dragstart`,this._onDragStart));try{document.selection?ic(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(e,t){if(gs=!1,Y&&K){os(`dragStarted`,this,{evt:t}),this.nativeDraggable&&H(document,`dragover`,qs);var n=this.options;!e&&Mo(K,n.dragClass,!1),Mo(K,n.ghostClass,!0),Q.active=this,e&&this._appendGhost(),ss({sortable:this,name:`start`,originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(bs){this._lastX=bs.clientX,this._lastY=bs.clientY,Ws();for(var e=document.elementFromPoint(bs.clientX,bs.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(bs.clientX,bs.clientY),e!==t);)t=e;if(K.parentNode[Zo]._isOutsideThisEl(e),t)do{if(t[Zo]){var n=void 0;if(n=t[Zo]._onDragOver({clientX:bs.clientX,clientY:bs.clientY,target:e,rootEl:t}),n&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);Gs()}},_onTouchMove:function(e){if(ys){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,i=e.touches?e.touches[0]:e,a=J&&No(J,!0),o=J&&a&&a.a,s=J&&a&&a.d,c=Is&&js&&Bo(js),l=(i.clientX-ys.clientX+r.x)/(o||1)+(c?c[0]-Ms[0]:0)/(o||1),u=(i.clientY-ys.clientY+r.y)/(s||1)+(c?c[1]-Ms[1]:0)/(s||1);if(!Q.active&&!gs){if(n&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))<n)return;this._onDragStart(e,!0)}if(J){a?(a.e+=l-(xs||0),a.f+=u-(Ss||0)):a={a:1,b:0,c:0,d:1,e:l,f:u};var d=`matrix(${a.a},${a.b},${a.c},${a.d},${a.e},${a.f})`;W(J,`webkitTransform`,d),W(J,`mozTransform`,d),W(J,`msTransform`,d),W(J,`transform`,d),xs=l,Ss=u,bs=i}e.cancelable&&e.preventDefault()}},_appendGhost:function(){if(!J){var e=this.options.fallbackOnBody?document.body:Y,t=G(K,!0,Is,!0,e),n=this.options;if(Is){for(js=e;W(js,`position`)===`static`&&W(js,`transform`)===`none`&&js!==document;)js=js.parentNode;js!==document.body&&js!==document.documentElement?(js===document&&(js=Fo()),t.top+=js.scrollTop,t.left+=js.scrollLeft):js=Fo(),Ms=Bo(js)}J=K.cloneNode(!0),Mo(J,n.ghostClass,!1),Mo(J,n.fallbackClass,!0),Mo(J,n.dragClass,!0),W(J,`transition`,``),W(J,`transform`,``),W(J,`box-sizing`,`border-box`),W(J,`margin`,0),W(J,`top`,t.top),W(J,`left`,t.left),W(J,`width`,t.width),W(J,`height`,t.height),W(J,`opacity`,`0.8`),W(J,`position`,Is?`absolute`:`fixed`),W(J,`zIndex`,`100000`),W(J,`pointerEvents`,`none`),Q.ghost=J,e.appendChild(J),W(J,`transform-origin`,Cs/parseInt(J.style.width)*100+`% `+ws/parseInt(J.style.height)*100+`%`)}},_onDragStart:function(e,t){var n=this,r=e.dataTransfer,i=n.options;if(os(`dragStart`,this,{evt:e}),Q.eventCanceled){this._onDrop();return}os(`setupClone`,this),Q.eventCanceled||(X=Yo(K),X.removeAttribute(`id`),X.draggable=!1,X.style[`will-change`]=``,this._hideClone(),Mo(X,this.options.chosenClass,!1),Q.clone=X),n.cloneId=ic(function(){os(`clone`,n),!Q.eventCanceled&&(n.options.removeCloneOnHide||Y.insertBefore(X,K),n._hideClone(),ss({sortable:n,name:`clone`}))}),!t&&Mo(K,i.dragClass,!0),t?(_s=!0,n._loopId=setInterval(n._emulateDragOver,50)):(U(document,`mouseup`,n._onDrop),U(document,`touchend`,n._onDrop),U(document,`touchcancel`,n._onDrop),r&&(r.effectAllowed=`move`,i.setData&&i.setData.call(n,r,K)),H(document,`drop`,n),W(K,`transform`,`translateZ(0)`)),gs=!0,n._dragStartId=ic(n._dragStarted.bind(n,t,e)),H(document,`selectstart`,n),Ts=!0,wo&&W(document.body,`user-select`,`none`)},_onDragOver:function(e){var t=this.el,n=e.target,r,i,a,o=this.options,s=o.group,c=Q.active,l=hs===s,u=o.sort,d=Z||c,f,p=this,m=!1;if(Ns)return;function h(o,s){os(o,p,po({evt:e,isOwner:l,axis:f?`vertical`:`horizontal`,revert:a,dragRect:r,targetRect:i,canSort:u,fromSortable:d,target:n,completed:_,onMove:function(n,i){return Ys(Y,t,K,r,n,G(n),e,i)},changed:v},s))}function g(){h(`dragOverAnimationCapture`),p.captureAnimationState(),p!==d&&d.captureAnimationState()}function _(r){return h(`dragOverCompleted`,{insertion:r}),r&&(l?c._hideClone():c._showClone(p),p!==d&&(Mo(K,Z?Z.options.ghostClass:c.options.ghostClass,!1),Mo(K,o.ghostClass,!0)),Z!==p&&p!==Q.active?Z=p:p===Q.active&&Z&&(Z=null),d===p&&(p._ignoreWhileAnimating=n),p.animateAll(function(){h(`dragOverAnimationComplete`),p._ignoreWhileAnimating=null}),p!==d&&(d.animateAll(),d._ignoreWhileAnimating=null)),(n===K&&!K.animated||n===t&&!n.animated)&&(Es=null),!o.dragoverBubble&&!e.rootEl&&n!==document&&(K.parentNode[Zo]._isOutsideThisEl(e.target),!r&&Ks(e)),!o.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),m=!0}function v(){fs=zo(K),ms=zo(K,o.draggable),ss({sortable:p,name:`change`,toEl:t,newIndex:fs,newDraggableIndex:ms,originalEvent:e})}if(e.preventDefault!==void 0&&e.cancelable&&e.preventDefault(),n=Ao(n,o.draggable,t,!0),h(`dragOver`),Q.eventCanceled)return m;if(K.contains(e.target)||n.animated&&n.animatingX&&n.animatingY||p._ignoreWhileAnimating===n)return _(!1);if(_s=!1,c&&!o.disabled&&(l?u||(a=q!==Y):Z===this||(this.lastPutMode=hs.checkPull(this,c,K,e))&&s.checkPut(this,c,K,e))){if(f=this._getDirection(e,n)===`vertical`,r=G(K),h(`dragOverValid`),Q.eventCanceled)return m;if(a)return q=Y,g(),this._hideClone(),h(`revert`),Q.eventCanceled||(cs?Y.insertBefore(K,cs):Y.appendChild(K)),_(!0);var y=Ro(t,o.draggable);if(!y||$s(e,f,this)&&!y.animated){if(y===K)return _(!1);if(y&&t===e.target&&(n=y),n&&(i=G(n)),Ys(Y,t,K,r,n,i,e,!!n)!==!1)return g(),y&&y.nextSibling?t.insertBefore(K,y.nextSibling):t.appendChild(K),q=t,v(),_(!0)}else if(y&&Qs(e,f,this)){var b=Lo(t,0,o,!0);if(b===K)return _(!1);if(n=b,i=G(n),Ys(Y,t,K,r,n,i,e,!1)!==!1)return g(),t.insertBefore(K,b),q=t,v(),_(!0)}else if(n.parentNode===t){i=G(n);var x=0,S,C=K.parentNode!==t,w=!Vs(K.animated&&K.toRect||r,n.animated&&n.toRect||i,f),T=f?`top`:`left`,E=Io(n,`top`,`top`)||Io(K,`top`,`top`),ee=E?E.scrollTop:void 0;Es!==n&&(S=i[T],Os=!1,ks=!w&&o.invertSwap||C),x=ec(e,n,i,f,w?1:o.swapThreshold,o.invertedSwapThreshold==null?o.swapThreshold:o.invertedSwapThreshold,ks,Es===n);var D;if(x!==0){var O=zo(K);do O-=x,D=q.children[O];while(D&&(W(D,`display`)===`none`||D===J))}if(x===0||D===n)return _(!1);Es=n,Ds=x;var k=n.nextElementSibling,te=!1;te=x===1;var A=Ys(Y,t,K,r,n,i,e,te);if(A!==!1)return(A===1||A===-1)&&(te=A===1),Ns=!0,setTimeout(Zs,30),g(),te&&!k?t.appendChild(K):n.parentNode.insertBefore(K,te?k:n),E&&Jo(E,0,ee-E.scrollTop),q=K.parentNode,S!==void 0&&!ks&&(As=Math.abs(S-G(n)[T])),v(),_(!0)}if(t.contains(K))return _(!1)}return!1},_ignoreWhileAnimating:null,_offMoveEvents:function(){U(document,`mousemove`,this._onTouchMove),U(document,`touchmove`,this._onTouchMove),U(document,`pointermove`,this._onTouchMove),U(document,`dragover`,Ks),U(document,`mousemove`,Ks),U(document,`touchmove`,Ks)},_offUpEvents:function(){var e=this.el.ownerDocument;U(e,`mouseup`,this._onDrop),U(e,`touchend`,this._onDrop),U(e,`pointerup`,this._onDrop),U(e,`touchcancel`,this._onDrop),U(document,`selectstart`,this)},_onDrop:function(e){var t=this.el,n=this.options;if(fs=zo(K),ms=zo(K,n.draggable),os(`drop`,this,{evt:e}),q=K&&K.parentNode,fs=zo(K),ms=zo(K,n.draggable),Q.eventCanceled){this._nulling();return}gs=!1,ks=!1,Os=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),ac(this.cloneId),ac(this._dragStartId),this.nativeDraggable&&(U(document,`drop`,this),U(t,`dragstart`,this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),wo&&W(document.body,`user-select`,``),W(K,`transform`,``),e&&(Ts&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),J&&J.parentNode&&J.parentNode.removeChild(J),(Y===q||Z&&Z.lastPutMode!==`clone`)&&X&&X.parentNode&&X.parentNode.removeChild(X),K&&(this.nativeDraggable&&U(K,`dragend`,this),Xs(K),K.style[`will-change`]=``,Ts&&!gs&&Mo(K,Z?Z.options.ghostClass:this.options.ghostClass,!1),Mo(K,this.options.chosenClass,!1),ss({sortable:this,name:`unchoose`,toEl:q,newIndex:null,newDraggableIndex:null,originalEvent:e}),Y===q?fs!==ds&&fs>=0&&(ss({sortable:this,name:`update`,toEl:q,originalEvent:e}),ss({sortable:this,name:`sort`,toEl:q,originalEvent:e})):(fs>=0&&(ss({rootEl:q,name:`add`,toEl:q,fromEl:Y,originalEvent:e}),ss({sortable:this,name:`remove`,toEl:q,originalEvent:e}),ss({rootEl:q,name:`sort`,toEl:q,fromEl:Y,originalEvent:e}),ss({sortable:this,name:`sort`,toEl:q,originalEvent:e})),Z&&Z.save()),Q.active&&((fs==null||fs===-1)&&(fs=ds,ms=ps),ss({sortable:this,name:`end`,toEl:q,originalEvent:e}),this.save()))),this._nulling()},_nulling:function(){os(`nulling`,this),Y=K=q=J=cs=X=ls=us=ys=bs=Ts=fs=ms=ds=ps=Es=Ds=Z=hs=Q.dragged=Q.ghost=Q.clone=Q.active=null,Ps.forEach(function(e){e.checked=!0}),Ps.length=xs=Ss=0},handleEvent:function(e){switch(e.type){case`drop`:case`dragend`:this._onDrop(e);break;case`dragenter`:case`dragover`:K&&(this._onDragOver(e),Js(e));break;case`selectstart`:e.preventDefault();break}},toArray:function(){for(var e=[],t,n=this.el.children,r=0,i=n.length,a=this.options;r<i;r++)t=n[r],Ao(t,a.draggable,this.el,!1)&&e.push(t.getAttribute(a.dataIdAttr)||nc(t));return e},sort:function(e,t){var n={},r=this.el;this.toArray().forEach(function(e,t){var i=r.children[t];Ao(i,this.options.draggable,r,!1)&&(n[e]=i)},this),t&&this.captureAnimationState(),e.forEach(function(e){n[e]&&(r.removeChild(n[e]),r.appendChild(n[e]))}),t&&this.animateAll()},save:function(){var e=this.options.store;e&&e.set&&e.set(this)},closest:function(e,t){return Ao(e,t||this.options.draggable,this.el,!1)},option:function(e,t){var n=this.options;if(t===void 0)return n[e];var r=rs.modifyOption(this,e,t);r===void 0?n[e]=t:n[e]=r,e===`group`&&Us(n)},destroy:function(){os(`destroy`,this);var e=this.el;e[Zo]=null,U(e,`mousedown`,this._onTapStart),U(e,`touchstart`,this._onTapStart),U(e,`pointerdown`,this._onTapStart),this.nativeDraggable&&(U(e,`dragover`,this),U(e,`dragenter`,this)),Array.prototype.forEach.call(e.querySelectorAll(`[draggable]`),function(e){e.removeAttribute(`draggable`)}),this._onDrop(),this._disableDelayedDragEvents(),vs.splice(vs.indexOf(this.el),1),this.el=e=null},_hideClone:function(){if(!us){if(os(`hideClone`,this),Q.eventCanceled)return;W(X,`display`,`none`),this.options.removeCloneOnHide&&X.parentNode&&X.parentNode.removeChild(X),us=!0}},_showClone:function(e){if(e.lastPutMode!==`clone`){this._hideClone();return}if(us){if(os(`showClone`,this),Q.eventCanceled)return;K.parentNode==Y&&!this.options.group.revertClone?Y.insertBefore(X,K):cs?Y.insertBefore(X,cs):Y.appendChild(X),this.options.group.revertClone&&this.animate(K,X),W(X,`display`,``),us=!1}}};function Js(e){e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),e.cancelable&&e.preventDefault()}function Ys(e,t,n,r,i,a,o,s){var c,l=e[Zo],u=l.options.onMove,d;return window.CustomEvent&&!xo&&!So?c=new CustomEvent(`move`,{bubbles:!0,cancelable:!0}):(c=document.createEvent(`Event`),c.initEvent(`move`,!0,!0)),c.to=t,c.from=e,c.dragged=n,c.draggedRect=r,c.related=i||t,c.relatedRect=a||G(t),c.willInsertAfter=s,c.originalEvent=o,e.dispatchEvent(c),u&&(d=u.call(l,c,o)),d}function Xs(e){e.draggable=!1}function Zs(){Ns=!1}function Qs(e,t,n){var r=G(Lo(n.el,0,n.options,!0)),i=Xo(n.el,n.options,J),a=10;return t?e.clientX<i.left-a||e.clientY<r.top&&e.clientX<r.right:e.clientY<i.top-a||e.clientY<r.bottom&&e.clientX<r.left}function $s(e,t,n){var r=G(Ro(n.el,n.options.draggable)),i=Xo(n.el,n.options,J),a=10;return t?e.clientX>i.right+a||e.clientY>r.bottom&&e.clientX>r.left:e.clientY>i.bottom+a||e.clientX>r.right&&e.clientY>r.top}function ec(e,t,n,r,i,a,o,s){var c=r?e.clientY:e.clientX,l=r?n.height:n.width,u=r?n.top:n.left,d=r?n.bottom:n.right,f=!1;if(!o){if(s&&As<l*i){if(!Os&&(Ds===1?c>u+l*a/2:c<d-l*a/2)&&(Os=!0),Os)f=!0;else if(Ds===1?c<u+As:c>d-As)return-Ds}else if(c>u+l*(1-i)/2&&c<d-l*(1-i)/2)return tc(t)}return f||=o,f&&(c<u+l*a/2||c>d-l*a/2)?c>u+l/2?1:-1:0}function tc(e){return zo(K)<zo(e)?1:-1}function nc(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,r=0;n--;)r+=t.charCodeAt(n);return r.toString(36)}function rc(e){Ps.length=0;for(var t=e.getElementsByTagName(`input`),n=t.length;n--;){var r=t[n];r.checked&&Ps.push(r)}}function ic(e){return setTimeout(e,0)}function ac(e){return clearTimeout(e)}Fs&&H(document,`touchmove`,function(e){(Q.active||gs)&&e.cancelable&&e.preventDefault()}),Q.utils={on:H,off:U,css:W,find:Po,is:function(e,t){return!!Ao(e,t,e,!1)},extend:Uo,throttle:Ko,closest:Ao,toggleClass:Mo,clone:Yo,index:zo,nextTick:ic,cancelNextTick:ac,detectDirection:Bs,getChild:Lo},Q.get=function(e){return e[Zo]},Q.mount=function(){var e=[...arguments];e[0].constructor===Array&&(e=e[0]),e.forEach(function(e){if(!e.prototype||!e.prototype.constructor)throw`Sortable: Mounted plugin must be a constructor function, not ${{}.toString.call(e)}`;e.utils&&(Q.utils=po(po({},Q.utils),e.utils)),rs.mount(e)})},Q.create=function(e,t){return new Q(e,t)},Q.version=yo;var $=[],oc,sc,cc=!1,lc,uc,dc,fc;function pc(){function e(){for(var e in this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0},this)e.charAt(0)===`_`&&typeof this[e]==`function`&&(this[e]=this[e].bind(this))}return e.prototype={dragStarted:function(e){var t=e.originalEvent;this.sortable.nativeDraggable?H(document,`dragover`,this._handleAutoScroll):this.options.supportPointer?H(document,`pointermove`,this._handleFallbackAutoScroll):t.touches?H(document,`touchmove`,this._handleFallbackAutoScroll):H(document,`mousemove`,this._handleFallbackAutoScroll)},dragOverCompleted:function(e){var t=e.originalEvent;!this.options.dragOverBubble&&!t.rootEl&&this._handleAutoScroll(t)},drop:function(){this.sortable.nativeDraggable?U(document,`dragover`,this._handleAutoScroll):(U(document,`pointermove`,this._handleFallbackAutoScroll),U(document,`touchmove`,this._handleFallbackAutoScroll),U(document,`mousemove`,this._handleFallbackAutoScroll)),hc(),mc(),qo()},nulling:function(){dc=sc=oc=cc=fc=lc=uc=null,$.length=0},_handleFallbackAutoScroll:function(e){this._handleAutoScroll(e,!0)},_handleAutoScroll:function(e,t){var n=this,r=(e.touches?e.touches[0]:e).clientX,i=(e.touches?e.touches[0]:e).clientY,a=document.elementFromPoint(r,i);if(dc=e,t||this.options.forceAutoScrollFallback||So||xo||wo){gc(e,this.options,a,t);var o=Ho(a,!0);cc&&(!fc||r!==lc||i!==uc)&&(fc&&hc(),fc=setInterval(function(){var a=Ho(document.elementFromPoint(r,i),!0);a!==o&&(o=a,mc()),gc(e,n.options,a,t)},10),lc=r,uc=i)}else{if(!this.options.bubbleScroll||Ho(a,!0)===Fo()){mc();return}gc(e,this.options,Ho(a,!1),!1)}}},go(e,{pluginName:`scroll`,initializeByDefault:!0})}function mc(){$.forEach(function(e){clearInterval(e.pid)}),$=[]}function hc(){clearInterval(fc)}var gc=Ko(function(e,t,n,r){if(t.scroll){var i=(e.touches?e.touches[0]:e).clientX,a=(e.touches?e.touches[0]:e).clientY,o=t.scrollSensitivity,s=t.scrollSpeed,c=Fo(),l=!1,u;sc!==n&&(sc=n,mc(),oc=t.scroll,u=t.scrollFn,oc===!0&&(oc=Ho(n,!0)));var d=0,f=oc;do{var p=f,m=G(p),h=m.top,g=m.bottom,_=m.left,v=m.right,y=m.width,b=m.height,x=void 0,S=void 0,C=p.scrollWidth,w=p.scrollHeight,T=W(p),E=p.scrollLeft,ee=p.scrollTop;p===c?(x=y<C&&(T.overflowX===`auto`||T.overflowX===`scroll`||T.overflowX===`visible`),S=b<w&&(T.overflowY===`auto`||T.overflowY===`scroll`||T.overflowY===`visible`)):(x=y<C&&(T.overflowX===`auto`||T.overflowX===`scroll`),S=b<w&&(T.overflowY===`auto`||T.overflowY===`scroll`));var D=x&&(Math.abs(v-i)<=o&&E+y<C)-(Math.abs(_-i)<=o&&!!E),O=S&&(Math.abs(g-a)<=o&&ee+b<w)-(Math.abs(h-a)<=o&&!!ee);if(!$[d])for(var k=0;k<=d;k++)$[k]||($[k]={});($[d].vx!=D||$[d].vy!=O||$[d].el!==p)&&($[d].el=p,$[d].vx=D,$[d].vy=O,clearInterval($[d].pid),(D!=0||O!=0)&&(l=!0,$[d].pid=setInterval(function(){r&&this.layer===0&&Q.active._onTouchMove(dc);var t=$[this.layer].vy?$[this.layer].vy*s:0,n=$[this.layer].vx?$[this.layer].vx*s:0;typeof u==`function`&&u.call(Q.dragged.parentNode[Zo],n,t,e,dc,$[this.layer].el)!==`continue`||Jo($[this.layer].el,n,t)}.bind({layer:d}),24))),d++}while(t.bubbleScroll&&f!==c&&(f=Ho(f,!1)));cc=l}},30),_c=function(e){var t=e.originalEvent,n=e.putSortable,r=e.dragEl,i=e.activeSortable,a=e.dispatchSortableEvent,o=e.hideGhostForTarget,s=e.unhideGhostForTarget;if(t){var c=n||i;o();var l=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:t,u=document.elementFromPoint(l.clientX,l.clientY);s(),c&&!c.el.contains(u)&&(a(`spill`),this.onSpill({dragEl:r,putSortable:n}))}};function vc(){}vc.prototype={startIndex:null,dragStart:function(e){this.startIndex=e.oldDraggableIndex},onSpill:function(e){var t=e.dragEl,n=e.putSortable;this.sortable.captureAnimationState(),n&&n.captureAnimationState();var r=Lo(this.sortable.el,this.startIndex,this.options);r?this.sortable.el.insertBefore(t,r):this.sortable.el.appendChild(t),this.sortable.animateAll(),n&&n.animateAll()},drop:_c},go(vc,{pluginName:`revertOnSpill`});function yc(){}yc.prototype={onSpill:function(e){var t=e.dragEl,n=e.putSortable||this.sortable;n.captureAnimationState(),t.parentNode&&t.parentNode.removeChild(t),n.animateAll()},drop:_c},go(yc,{pluginName:`removeOnSpill`}),Q.mount(new pc),Q.mount(yc,vc);function bc(e){return e==null?e:JSON.parse(JSON.stringify(e))}function xc(e){Te()&&fe(e)}function Sc(e){Te()?ve(e):m(e)}var Cc=null,wc=null;function Tc(e=null,t=null){Cc=e,wc=t}function Ec(){return{data:Cc,clonedData:wc}}var Dc=Symbol(`cloneElement`);function Oc(...e){let t=Te()?.proxy,n=null,r=e[0],[,i,a]=e;Array.isArray(D(i))||(a=i,i=null);let o=null,{immediate:s=!0,clone:c=bc,forceFallback:l,fallbackOnBody:u,customUpdate:f}=D(a)??{};function p(e){let{from:t,oldIndex:r,item:a}=e,o=Array.from(t.childNodes);n=l&&!u?o.slice(0,-1):o;let s=D(D(i)?.[r]),d=c(s);Tc(s,d),a[Dc]=d}function h(e){let t=e.item[Dc];if(!eo(t)){if(ro(e.item),d(i)){let n=[...D(i)];i.value=$a(n,e.newDraggableIndex,t);return}$a(D(i),e.newDraggableIndex,t)}}function g(e){let{from:t,item:n,oldIndex:r,oldDraggableIndex:a,pullMode:o,clone:s}=e;if(no(t,n,r),o===`clone`){ro(s);return}if(d(i)){let e=[...D(i)];i.value=Qa(e,a);return}Qa(D(i),a)}function _(e){if(f){f(e);return}let{from:t,item:n,oldIndex:r,oldDraggableIndex:a,newDraggableIndex:o}=e;if(ro(n),no(t,n,r),d(i)){let e=[...D(i)];i.value=Ya(e,a,o);return}Ya(D(i),a,o)}function v(e){let{newIndex:t,oldIndex:r,from:i,to:a}=e,o=null,s=t===r&&i===a;try{if(s){let e=null;n?.some((t,r)=>{if(e&&n?.length!==a.childNodes.length)return i.insertBefore(e,t.nextSibling),!0;let o=a.childNodes[r];e=a?.replaceChild(t,o)})}}catch(e){o=e}finally{n=null}m(()=>{if(Tc(),o)throw o})}let y={onUpdate:_,onStart:p,onAdd:h,onRemove:g,onEnd:v};function b(e){let n=D(r);return e||=to(n)?io(n,t?.$el):n,e&&!so(e)&&(e=e.$el),e||Ja(`Root element not found`),e}function x(){let e=D(a)??{},{immediate:t,clone:n}=e,r=Ga(e,[`immediate`,`clone`]);return co(r,(e,t)=>{lo(e)&&(r[e]=(e,...n)=>(uo(e,Ec()),t(e,...n)))}),oo(i===null?{}:y,r)}let S=e=>{e=b(e),o&&C.destroy(),o=new Q(e,x())};R(()=>a,()=>{o&&co(x(),(e,t)=>{o?.option(e,t)})},{deep:!0});let C={option:(e,t)=>o?.option(e,t),destroy:()=>{o?.destroy(),o=null},save:()=>o?.save(),toArray:()=>o?.toArray(),closest:(...e)=>o?.closest(...e)};return Sc(()=>{s&&S()}),xc(C.destroy),Wa({start:S,pause:()=>C?.option(`disabled`,!0),resume:()=>C?.option(`disabled`,!1)},C)}var kc=[`update`,`start`,`add`,`remove`,`choose`,`unchoose`,`end`,`sort`,`filter`,`clone`,`move`,`change`],Ac=b({name:`VueDraggable`,model:{prop:`modelValue`,event:`update:modelValue`},props:[`clone`,`animation`,`ghostClass`,`group`,`sort`,`disabled`,`store`,`handle`,`draggable`,`swapThreshold`,`invertSwap`,`invertedSwapThreshold`,`removeCloneOnHide`,`direction`,`chosenClass`,`dragClass`,`ignore`,`filter`,`preventOnFilter`,`easing`,`setData`,`dropBubble`,`dragoverBubble`,`dataIdAttr`,`delay`,`delayOnTouchOnly`,`touchStartThreshold`,`forceFallback`,`fallbackClass`,`fallbackOnBody`,`fallbackTolerance`,`fallbackOffset`,`supportPointer`,`emptyInsertThreshold`,`scroll`,`forceAutoScrollFallback`,`scrollSensitivity`,`scrollSpeed`,`bubbleScroll`,`modelValue`,`tag`,`target`,`customUpdate`,...kc.map(e=>`on${e.replace(/^\S/,e=>e.toUpperCase())}`)],emits:[`update:modelValue`,...kc],setup(e,{slots:t,emit:n,expose:r,attrs:i}){let a=kc.reduce((e,t)=>{let r=`on${t.replace(/^\S/,e=>e.toUpperCase())}`;return e[r]=(...e)=>n(t,...e),e},{}),s=o(()=>{let t=ue(e),{modelValue:n}=t,r=Ga(t,[`modelValue`]),o=Object.entries(r).reduce((e,[t,n])=>{let r=D(n);return r!==void 0&&(e[t]=r),e},{});return Wa(Wa({},a),Za(Wa(Wa({},i),o)))}),c=o({get:()=>e.modelValue,set:e=>n(`update:modelValue`,e)}),l=w(),u=we(Oc(e.target||l,c,s));return r(u),()=>T(e.tag||`div`,{ref:l},(t?.default)?.call(t,u))}}),jc={mounted:`mounted`,unmounted:`unmounted`};jc.mounted,jc.unmounted;var Mc={class:`config-log-parsers`},Nc={class:`config-card`},Pc={class:`config-card__header`},Fc={class:`config-card__hint`},Ic={class:`config-card`},Lc={class:`config-card__header`},Rc={class:`config-card__header-hint`},zc={class:`config-log-parsers__order`},Bc={class:`config-log-parsers__name`},Vc={key:1,class:`config-log-parsers__empty`},Hc={class:`config-log-parsers__add-row`},Uc={class:`config-log-parsers__footer`},Wc=V(b({__name:`ServiceConfigLogs`,props:{service:{}},emits:[`save`],setup(e,{emit:n}){let r=e,i=n,a=ce(),{t:s}=ne(),c=qe(),u=w([...r.service.parserIds??[]]);R(()=>r.service,e=>{u.value=[...e.parserIds??[]]});let d=o(()=>[...c.parsers].filter(e=>e.enabled).sort((e,t)=>e.name.localeCompare(t.name))),p=o(()=>d.value.filter(e=>!u.value.includes(e.id))),m=w(u.value.map(e=>c.parsers.find(t=>t.id===e)).filter(e=>e!==void 0));R(u,e=>{let t=m.value.filter(t=>e.includes(t.id)),n=e.filter(e=>!t.find(t=>t.id===e)).map(e=>c.parsers.find(t=>t.id===e)).filter(e=>e!==void 0);m.value=[...t,...n]}),R(()=>c.parsers,()=>{m.value=u.value.map(e=>c.parsers.find(t=>t.id===e)).filter(e=>e!==void 0)});let h=w(null);function _(e){if(!e)return;let t=c.parsers.find(t=>t.id===e);t&&(u.value=[...u.value,e],m.value=[...m.value,t],h.value=null,b())}function v(e){u.value=u.value.filter(t=>t!==e),m.value=m.value.filter(t=>t.id!==e),b()}function y(){u.value=m.value.map(e=>e.id),b()}function b(){i(`save`,{parserIds:m.value.map(e=>e.id)})}return ve(()=>{c.fetchParsers(),c.subscribeParsers()}),fe(()=>{c.unsubscribeParsers()}),(e,n)=>(j(),N(`div`,Mc,[g(`div`,Nc,[g(`div`,Pc,[n[3]||=g(`i`,{class:`pi pi-code`},null,-1),g(`span`,null,P(D(s)(`serviceConfigLogs.jsParsers`)),1)]),g(`small`,Fc,P(D(s)(`serviceConfigLogs.jsParsersHint`)),1)]),g(`div`,Ic,[g(`div`,Lc,[n[4]||=g(`i`,{class:`pi pi-sort-alt`},null,-1),g(`span`,null,P(D(s)(`serviceConfigLogs.executionOrder`)),1),g(`small`,Rc,P(D(s)(`serviceConfigLogs.executionOrderHint`)),1)]),m.value.length>0?(j(),F(D(Ac),{key:0,modelValue:m.value,"onUpdate:modelValue":n[0]||=e=>m.value=e,animation:150,handle:`.drag-handle`,class:`config-log-parsers__drag-list`,"data-testid":`log-parsers-drag-list`,onEnd:y},{default:x(()=>[(j(!0),N(z,null,me(m.value,(e,r)=>(j(),N(`div`,{key:e.id,class:`config-log-parsers__drag-row`,"data-testid":`log-parsers-drag-row`},[n[5]||=g(`span`,{class:`drag-handle`,"data-testid":`drag-handle`},[g(`i`,{class:`pi pi-bars`})],-1),g(`span`,zc,P(r+1),1),g(`span`,Bc,P(e.name),1),e.builtin?(j(),F(D(oe),{key:0,severity:`secondary`,class:`config-log-parsers__builtin-badge`},{default:x(()=>[l(P(D(s)(`serviceConfigLogs.builtin`)),1)]),_:1})):t(``,!0),e.enabled?t(``,!0):(j(),F(D(oe),{key:1,severity:`warn`,class:`config-log-parsers__disabled-badge`},{default:x(()=>[l(P(D(s)(`serviceConfigLogs.disabled`)),1)]),_:1})),f(D(C),{icon:`pi pi-trash`,severity:`danger`,text:``,size:`small`,class:`config-log-parsers__delete`,onClick:t=>v(e.id)},null,8,[`onClick`])]))),128))]),_:1},8,[`modelValue`])):t(``,!0),m.value.length===0?(j(),N(`div`,Vc,P(D(s)(`serviceConfigLogs.empty`)),1)):t(``,!0),g(`div`,Hc,[f(D(he),{modelValue:h.value,"onUpdate:modelValue":[n[1]||=e=>h.value=e,_],options:p.value,"option-label":`name`,"option-value":`id`,placeholder:D(s)(`serviceConfigLogs.addParser`),class:`config-log-parsers__add-select`,loading:D(c).loading,disabled:p.value.length===0},{option:x(({option:e})=>[g(`span`,null,P(e.name),1),e.builtin?(j(),F(D(oe),{key:0,severity:`secondary`,class:`ml-2`,style:{"font-size":`0.65rem`,padding:`0.1rem 0.35rem`}},{default:x(()=>[l(P(D(s)(`serviceConfigLogs.builtin`)),1)]),_:1})):t(``,!0)]),_:1},8,[`modelValue`,`options`,`placeholder`,`loading`,`disabled`])])]),g(`div`,Uc,[f(D(C),{label:D(s)(`serviceConfigLogs.manageParsers`),icon:`pi pi-cog`,severity:`secondary`,outlined:``,size:`small`,onClick:n[2]||=e=>D(a).push({name:`settings`,query:{section:`parsers`}})},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-73b711b6`]]),Gc={class:`config-log-sources`},Kc={class:`config-card`},qc={class:`config-card__header`},Jc={class:`config-card__hint`},Yc={key:0,class:`config-card config-card--list`},Xc={class:`source-row__info`},Zc={class:`source-row__type`},Qc={class:`source-row__label`},$c={class:`source-row__actions`},el={key:1,class:`config-log-sources__empty`},tl={class:`config-log-sources__footer`},nl={class:`dialog-form`},rl={class:`dialog-form__field`},il={for:`lsrc-type`,class:`dialog-form__label`},al={class:`dialog-form__field`},ol={for:`lsrc-path-file`,class:`dialog-form__label`},sl={class:`dialog-form__field`},cl={for:`lsrc-encoding-file`,class:`dialog-form__label`},ll={class:`dialog-form__field dialog-form__field--row`},ul={for:`lsrc-startFromEnd-file`,class:`dialog-form__label`},dl={class:`dialog-form__field dialog-form__field--row`},fl={for:`lsrc-createIfNotExists-file`,class:`dialog-form__label`},pl={class:`dialog-form__field`},ml={for:`lsrc-connectionString-mongo`,class:`dialog-form__label`},hl={class:`dialog-form__row`},gl={class:`dialog-form__field`},_l={class:`dialog-form__field`},vl={class:`dialog-form__row`},yl={class:`dialog-form__field`},bl={class:`dialog-form__field`},xl={class:`dialog-form__field`},Sl={class:`dialog-form__row`},Cl={class:`dialog-form__field dialog-form__field--grow`},wl={class:`dialog-form__field dialog-form__field--port`},Tl={class:`dialog-form__row`},El={class:`dialog-form__field`},Dl={class:`dialog-form__field`},Ol={class:`dialog-form__row`},kl={class:`dialog-form__field`},Al={class:`dialog-form__field`},jl={class:`dialog-form__row`},Ml={class:`dialog-form__field`},Nl={class:`dialog-form__field`},Pl={class:`dialog-form__row`},Fl={class:`dialog-form__field`},Il={class:`dialog-form__field`},Ll={class:`dialog-form__field`},Rl={key:3,class:`dialog-form__hint-block`},zl=V(b({__name:`ServiceConfigLogSources`,props:{service:{}},emits:[`save`],setup(e,{emit:n}){let{t:r}=ne(),i=e,a=n,o=[{label:`Console (stdout/stderr)`,value:`console`,icon:`pi-terminal`},{label:`File`,value:`file`,icon:`pi-file`},{label:`MongoDB`,value:`mongo`,icon:`pi-database`},{label:`MySQL`,value:`mysql`,icon:`pi-database`}];function s(e){return e===`console`?{type:`console`}:e===`file`?{type:`file`,path:``,encoding:`utf-8`,startFromEnd:!0,createIfNotExists:!1}:e===`mongo`?{type:`mongo`,connectionString:``,database:``,collection:``,timestampField:`timestamp`,messageField:`message`}:{type:`mysql`,host:`localhost`,port:3306,user:``,password:``,database:``,table:``,timestampColumn:`created_at`,messageColumn:`message`,pollIntervalMs:2e3}}let u=w([...i.service.logSources??[]]);R(()=>i.service.logSources,e=>{u.value=[...e??[]]});let d=w(!1),p=w(null),m=w(s(`console`));function h(){p.value=null,m.value=s(`file`),d.value=!0}function _(e){p.value=e,m.value={...u.value[e]},d.value=!0}function v(e){m.value=s(e)}function y(){p.value===null?u.value=[...u.value,{...m.value}]:u.value=u.value.map((e,t)=>t===p.value?{...m.value}:e),d.value=!1,a(`save`,{logSources:u.value})}function b(e){u.value=u.value.filter((t,n)=>n!==e),a(`save`,{logSources:u.value})}function S(e){return e.type===`console`?`Console`:e.type===`file`?e.path||`(no path)`:e.type===`mongo`?e.database?`mongo/${e.database}/${e.collection}`:`(not configured)`:e.type===`mysql`?e.database?`mysql/${e.host}/${e.database}/${e.table}`:`(not configured)`:e.type}function T(e){return e===`console`?`pi-terminal`:e===`file`?`pi-file`:`pi-database`}return(e,n)=>(j(),N(`div`,Gc,[g(`div`,Kc,[g(`div`,qc,[n[23]||=g(`i`,{class:`pi pi-inbox`},null,-1),g(`span`,null,P(D(r)(`serviceConfigLogSources.title`)),1)]),g(`small`,Jc,P(D(r)(`serviceConfigLogSources.hint`)),1)]),u.value.length>0?(j(),N(`div`,Yc,[(j(!0),N(z,null,me(u.value,(e,t)=>(j(),N(`div`,{key:t,class:`source-row`},[g(`i`,{class:c(`pi ${T(e.type)} source-row__icon`)},null,2),g(`div`,Xc,[g(`span`,Zc,P(e.type),1),g(`span`,Qc,P(S(e)),1)]),g(`div`,$c,[f(D(C),{icon:`pi pi-pencil`,text:``,size:`small`,severity:`secondary`,onClick:e=>_(t)},null,8,[`onClick`]),f(D(C),{icon:`pi pi-trash`,text:``,size:`small`,severity:`danger`,onClick:e=>b(t)},null,8,[`onClick`])])]))),128))])):(j(),N(`div`,el,[n[24]||=g(`i`,{class:`pi pi-inbox config-log-sources__empty-icon`},null,-1),g(`p`,null,P(D(r)(`serviceConfigLogSources.empty`)),1),g(`small`,null,P(D(r)(`serviceConfigLogSources.emptyHint`)),1)])),g(`div`,tl,[f(D(C),{label:D(r)(`serviceConfigLogSources.addSource`),icon:`pi pi-plus`,size:`small`,onClick:h},null,8,[`label`])]),f(D(E),{visible:d.value,"onUpdate:visible":n[22]||=e=>d.value=e,header:p.value===null?D(r)(`serviceConfigLogSources.addDialog`):D(r)(`serviceConfigLogSources.editDialog`),modal:``,style:{width:`520px`}},{footer:x(()=>[f(D(C),{label:D(r)(`serviceConfigLogSources.cancel`),severity:`secondary`,outlined:``,onClick:n[21]||=e=>d.value=!1},null,8,[`label`]),f(D(C),{label:p.value===null?D(r)(`serviceConfigLogSources.add`):D(r)(`serviceConfigLogSources.save`),icon:`pi pi-check`,onClick:y},null,8,[`label`])]),default:x(()=>[g(`div`,nl,[g(`div`,rl,[g(`label`,il,P(D(r)(`serviceConfigLogSources.type`)),1),f(D(he),{"input-id":`lsrc-type`,"model-value":m.value.type,options:o,"option-label":`label`,"option-value":`value`,class:`dialog-form__input`,"onUpdate:modelValue":v},null,8,[`model-value`])]),m.value.type===`file`?(j(),N(z,{key:0},[g(`div`,al,[g(`label`,ol,[l(P(D(r)(`serviceConfigLogSources.path`))+` `,1),n[25]||=g(`span`,{class:`dialog-form__required`},`*`,-1)]),f(D(M),{id:`lsrc-path-file`,modelValue:m.value.path,"onUpdate:modelValue":n[0]||=e=>m.value.path=e,class:`dialog-form__input`,placeholder:`/var/log/app.log`},null,8,[`modelValue`])]),g(`div`,sl,[g(`label`,cl,P(D(r)(`serviceConfigLogSources.encoding`)),1),f(D(M),{id:`lsrc-encoding-file`,modelValue:m.value.encoding,"onUpdate:modelValue":n[1]||=e=>m.value.encoding=e,class:`dialog-form__input`,placeholder:`utf-8`},null,8,[`modelValue`])]),g(`div`,ll,[g(`label`,ul,P(D(r)(`serviceConfigLogSources.startFromEnd`)),1),f(D(Me),{"input-id":`lsrc-startFromEnd-file`,modelValue:m.value.startFromEnd,"onUpdate:modelValue":n[2]||=e=>m.value.startFromEnd=e},null,8,[`modelValue`])]),g(`div`,dl,[g(`label`,fl,P(D(r)(`serviceConfigLogSources.createIfNotExists`)),1),f(D(Me),{"input-id":`lsrc-createIfNotExists-file`,modelValue:m.value.createIfNotExists,"onUpdate:modelValue":n[3]||=e=>m.value.createIfNotExists=e},null,8,[`modelValue`])])],64)):m.value.type===`mongo`?(j(),N(z,{key:1},[g(`div`,pl,[g(`label`,ml,[l(P(D(r)(`serviceConfigLogSources.connectionString`))+` `,1),n[26]||=g(`span`,{class:`dialog-form__required`},`*`,-1)]),f(D(M),{id:`lsrc-connectionString-mongo`,modelValue:m.value.connectionString,"onUpdate:modelValue":n[4]||=e=>m.value.connectionString=e,class:`dialog-form__input`,placeholder:`mongodb://user:pass@host:27017`,type:`password`,autocomplete:`off`},null,8,[`modelValue`])]),g(`div`,hl,[g(`div`,gl,[n[27]||=g(`label`,{for:`lsrc-database-mongo`,class:`dialog-form__label`},[l(`Database `),g(`span`,{class:`dialog-form__required`},`*`)],-1),f(D(M),{id:`lsrc-database-mongo`,modelValue:m.value.database,"onUpdate:modelValue":n[5]||=e=>m.value.database=e,class:`dialog-form__input`,placeholder:`mydb`},null,8,[`modelValue`])]),g(`div`,_l,[n[28]||=g(`label`,{for:`lsrc-collection-mongo`,class:`dialog-form__label`},[l(`Collection `),g(`span`,{class:`dialog-form__required`},`*`)],-1),f(D(M),{id:`lsrc-collection-mongo`,modelValue:m.value.collection,"onUpdate:modelValue":n[6]||=e=>m.value.collection=e,class:`dialog-form__input`,placeholder:`logs`},null,8,[`modelValue`])])]),g(`div`,vl,[g(`div`,yl,[n[29]||=g(`label`,{for:`lsrc-timestampField-mongo`,class:`dialog-form__label`},`Timestamp field`,-1),f(D(M),{id:`lsrc-timestampField-mongo`,modelValue:m.value.timestampField,"onUpdate:modelValue":n[7]||=e=>m.value.timestampField=e,class:`dialog-form__input`,placeholder:`timestamp`},null,8,[`modelValue`])]),g(`div`,bl,[n[30]||=g(`label`,{for:`lsrc-messageField-mongo`,class:`dialog-form__label`},`Message field`,-1),f(D(M),{id:`lsrc-messageField-mongo`,modelValue:m.value.messageField,"onUpdate:modelValue":n[8]||=e=>m.value.messageField=e,class:`dialog-form__input`,placeholder:`message`},null,8,[`modelValue`])])]),g(`div`,xl,[n[31]||=g(`label`,{for:`lsrc-levelField-mongo`,class:`dialog-form__label`},[l(`Level field `),g(`span`,{class:`dialog-form__hint`},`(optional)`)],-1),f(D(M),{id:`lsrc-levelField-mongo`,modelValue:m.value.levelField,"onUpdate:modelValue":n[9]||=e=>m.value.levelField=e,class:`dialog-form__input`,placeholder:`level`},null,8,[`modelValue`])])],64)):m.value.type===`mysql`?(j(),N(z,{key:2},[g(`div`,Sl,[g(`div`,Cl,[n[32]||=g(`label`,{for:`lsrc-host-mysql`,class:`dialog-form__label`},[l(`Host `),g(`span`,{class:`dialog-form__required`},`*`)],-1),f(D(M),{id:`lsrc-host-mysql`,modelValue:m.value.host,"onUpdate:modelValue":n[10]||=e=>m.value.host=e,class:`dialog-form__input`,placeholder:`localhost`},null,8,[`modelValue`])]),g(`div`,wl,[n[33]||=g(`label`,{for:`lsrc-port-mysql`,class:`dialog-form__label`},`Port`,-1),f(D(Ae),{"input-id":`lsrc-port-mysql`,modelValue:m.value.port,"onUpdate:modelValue":n[11]||=e=>m.value.port=e,min:1,max:65535,class:`dialog-form__input`},null,8,[`modelValue`])])]),g(`div`,Tl,[g(`div`,El,[n[34]||=g(`label`,{for:`lsrc-user-mysql`,class:`dialog-form__label`},[l(`User `),g(`span`,{class:`dialog-form__required`},`*`)],-1),f(D(M),{id:`lsrc-user-mysql`,modelValue:m.value.user,"onUpdate:modelValue":n[12]||=e=>m.value.user=e,class:`dialog-form__input`,placeholder:`root`},null,8,[`modelValue`])]),g(`div`,Dl,[n[35]||=g(`label`,{for:`lsrc-password-mysql`,class:`dialog-form__label`},`Password`,-1),f(D(M),{id:`lsrc-password-mysql`,modelValue:m.value.password,"onUpdate:modelValue":n[13]||=e=>m.value.password=e,class:`dialog-form__input`,type:`password`,autocomplete:`new-password`},null,8,[`modelValue`])])]),g(`div`,Ol,[g(`div`,kl,[n[36]||=g(`label`,{for:`lsrc-database-mysql`,class:`dialog-form__label`},[l(`Database `),g(`span`,{class:`dialog-form__required`},`*`)],-1),f(D(M),{id:`lsrc-database-mysql`,modelValue:m.value.database,"onUpdate:modelValue":n[14]||=e=>m.value.database=e,class:`dialog-form__input`,placeholder:`app_db`},null,8,[`modelValue`])]),g(`div`,Al,[n[37]||=g(`label`,{for:`lsrc-table-mysql`,class:`dialog-form__label`},[l(`Table `),g(`span`,{class:`dialog-form__required`},`*`)],-1),f(D(M),{id:`lsrc-table-mysql`,modelValue:m.value.table,"onUpdate:modelValue":n[15]||=e=>m.value.table=e,class:`dialog-form__input`,placeholder:`logs`},null,8,[`modelValue`])])]),g(`div`,jl,[g(`div`,Ml,[n[38]||=g(`label`,{for:`lsrc-timestampColumn-mysql`,class:`dialog-form__label`},`Timestamp column`,-1),f(D(M),{id:`lsrc-timestampColumn-mysql`,modelValue:m.value.timestampColumn,"onUpdate:modelValue":n[16]||=e=>m.value.timestampColumn=e,class:`dialog-form__input`,placeholder:`created_at`},null,8,[`modelValue`])]),g(`div`,Nl,[n[39]||=g(`label`,{for:`lsrc-messageColumn-mysql`,class:`dialog-form__label`},`Message column`,-1),f(D(M),{id:`lsrc-messageColumn-mysql`,modelValue:m.value.messageColumn,"onUpdate:modelValue":n[17]||=e=>m.value.messageColumn=e,class:`dialog-form__input`,placeholder:`message`},null,8,[`modelValue`])])]),g(`div`,Pl,[g(`div`,Fl,[n[40]||=g(`label`,{for:`lsrc-levelColumn-mysql`,class:`dialog-form__label`},[l(`Level column `),g(`span`,{class:`dialog-form__hint`},`(optional)`)],-1),f(D(M),{id:`lsrc-levelColumn-mysql`,modelValue:m.value.levelColumn,"onUpdate:modelValue":n[18]||=e=>m.value.levelColumn=e,class:`dialog-form__input`,placeholder:`level`},null,8,[`modelValue`])]),g(`div`,Il,[n[41]||=g(`label`,{for:`lsrc-pollIntervalMs-mysql`,class:`dialog-form__label`},`Poll interval (ms)`,-1),f(D(Ae),{"input-id":`lsrc-pollIntervalMs-mysql`,modelValue:m.value.pollIntervalMs,"onUpdate:modelValue":n[19]||=e=>m.value.pollIntervalMs=e,min:500,max:6e4,class:`dialog-form__input`},null,8,[`modelValue`])])]),g(`div`,Ll,[n[42]||=g(`label`,{for:`lsrc-query-mysql`,class:`dialog-form__label`},[l(`Custom query `),g(`span`,{class:`dialog-form__hint`},[l(`(optional, must include `),g(`code`,null,`WHERE … > ?`),l(`)`)])],-1),f(D(M),{id:`lsrc-query-mysql`,modelValue:m.value.query,"onUpdate:modelValue":n[20]||=e=>m.value.query=e,class:`dialog-form__input`,placeholder:`SELECT * FROM logs WHERE created_at > ? ORDER BY id ASC`},null,8,[`modelValue`])])],64)):m.value.type===`console`?(j(),N(`small`,Rl,`The console source captures stdout/stderr and is always active. Adding it here has no effect unless you want to track it explicitly.`)):t(``,!0)])]),_:1},8,[`visible`,`header`])]))}}),[[`__scopeId`,`data-v-1ceb461a`]]),Bl={class:`config-traefik`},Vl={class:`traefik-entry__fields`},Hl=V(b({__name:`ServiceConfigTraefik`,props:{service:{}},emits:[`save`],setup(n,{emit:r}){let i=n,a=r,o=w([...i.service.localUrls??[]]),s=w(null);ve(async()=>{i.service.agentId&&(s.value=(await _.settings.getAgentTraefikConfig.query({agentId:i.service.agentId})).enabled)});let c=null;R(()=>i.service,e=>{c||(o.value=[...e.localUrls??[]])});function u(){o.value=[...o.value,{url:``,port:3e3}]}function d(e){o.value=o.value.filter((t,n)=>n!==e),m()}function p(e,t,n){o.value=o.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function m(){c&&clearTimeout(c),c=setTimeout(()=>{a(`save`,{localUrls:o.value.filter(e=>e.url.trim())}),c=null},150)}return(n,r)=>(j(),N(`div`,Bl,[s.value===!1?(j(),F(D(Se),{key:0,severity:`warn`,closable:!1},{default:x(()=>[r[1]||=l(` Traefik n'est pas activé. Configurez-le dans `,-1),f(D(e),{to:{name:`settings`,query:{section:`agents`}}},{default:x(()=>[...r[0]||=[l(`Paramètres → Agents`,-1)]]),_:1}),r[2]||=l(` (bouton Traefik sur la ligne de l'agent) pour que ces URLs soient actives. `,-1)]),_:1})):t(``,!0),(j(!0),N(z,null,me(o.value,(e,t)=>(j(),N(`div`,{key:t,class:`traefik-entry`},[g(`div`,Vl,[f(D(M),{"model-value":e.url,class:`traefik-entry__url`,placeholder:`mon-app.local.mondomaine.com`,"onUpdate:modelValue":e=>p(t,`url`,e),onBlur:m,onKeydown:B(S(m,[`prevent`]),[`enter`])},null,8,[`model-value`,`onUpdate:modelValue`,`onKeydown`]),f(D(Ae),{"model-value":e.port,class:`traefik-entry__port`,min:1,max:65535,"use-grouping":!1,placeholder:`3000`,"onUpdate:modelValue":e=>{p(t,`port`,e??3e3),m()}},null,8,[`model-value`,`onUpdate:modelValue`]),f(D(C),{icon:`pi pi-trash`,severity:`danger`,text:``,size:`small`,onClick:e=>d(t)},null,8,[`onClick`])])]))),128)),f(D(C),{icon:`pi pi-plus`,label:`Ajouter une URL`,size:`small`,outlined:``,onClick:u})]))}}),[[`__scopeId`,`data-v-a71f945b`]]),Ul={class:`config-view`,"data-testid":`config-view`},Wl={class:`config-view__header`},Gl={class:`config-view__title`},Kl={class:`config-view__actions`},ql=V(b({__name:`ServiceConfigView`,props:{service:{},projectId:{}},emits:[`remove-service`],setup(e,{emit:t}){let n=e,r=t,{t:i}=ne(),a=xe(),s=de(),c=y(),{isDebug:l}=cn(),u=ye(),d=ce(),p=[`general`,`commands`,`shortcuts`,`env`,`health`,`log-parsers`,`log-sources`,`traefik`],m=o(()=>{let e=u.query.configTab;return p.includes(e)?e:`general`});function h(e){d.replace({query:{...u.query,configTab:e}})}let _=o(()=>s.getByRef({id:n.projectId,orgId:c.activeOrgId})?.activeEnvironmentId);async function v(e,t){await t()?l.value&&console.debug(`[autosave] ${e} saved`):console.error(`[autosave] ${e} failed:`,a.error??`Save failed`)}async function b(e){await v(`General`,()=>a.update(n.service.id,e))}async function S(e){await v(`Commands`,()=>a.update(n.service.id,e))}async function w(e){await v(`Health check`,()=>a.update(n.service.id,{healthCheck:e??null}))}async function T(e){await v(`Shortcuts`,()=>a.update(n.service.id,{shortcuts:e}))}async function E(e){await v(`Docker`,()=>a.update(n.service.id,{dockerConfig:e}))}async function ee(e){await v(`Log parsers`,()=>a.update(n.service.id,e))}async function O(e){await v(`Log sources`,()=>a.update(n.service.id,e))}async function k(e){await v(`Traefik`,()=>a.update(n.service.id,e))}function te(){r(`remove-service`,n.service.id)}return(t,n)=>(j(),N(`div`,Ul,[g(`div`,Wl,[g(`h2`,Gl,P(D(i)(`serviceConfigView.title`)),1),g(`div`,Kl,[f(D(C),{label:D(i)(`serviceConfigView.remove`),icon:`pi pi-trash`,severity:`danger`,size:`small`,outlined:``,onClick:te},null,8,[`label`])])]),f(D(Fe),{value:m.value,class:`config-view__tabs`,"onUpdate:value":h},{default:x(()=>[f(D(Ne),null,{default:x(()=>[f(D(Ie),{value:`general`,"data-testid":`tab-config`},{default:x(()=>[n[0]||=g(`i`,{class:`pi pi-cog tab-icon`},null,-1),g(`span`,null,P(D(i)(`serviceConfigView.tabGeneral`)),1)]),_:1}),f(D(Ie),{value:`commands`,"data-testid":`tab-commands`},{default:x(()=>[n[1]||=g(`i`,{class:`pi pi-code tab-icon`},null,-1),g(`span`,null,P(D(i)(`serviceConfigView.tabCommands`)),1)]),_:1}),f(D(Ie),{value:`shortcuts`,"data-testid":`tab-shortcuts`},{default:x(()=>[n[2]||=g(`i`,{class:`pi pi-bolt tab-icon`},null,-1),g(`span`,null,P(D(i)(`serviceConfigView.tabShortcuts`)),1)]),_:1}),f(D(Ie),{value:`env`,"data-testid":`tab-env`},{default:x(()=>[n[3]||=g(`i`,{class:`pi pi-database tab-icon`},null,-1),g(`span`,null,P(D(i)(`serviceConfigView.tabEnvironment`)),1)]),_:1}),f(D(Ie),{value:`health`},{default:x(()=>[n[4]||=g(`i`,{class:`pi pi-heart tab-icon`},null,-1),g(`span`,null,P(D(i)(`serviceConfigView.tabHealthCheck`)),1)]),_:1}),f(D(Ie),{value:`log-parsers`,"data-testid":`tab-log-parsers`},{default:x(()=>[n[5]||=g(`i`,{class:`pi pi-list tab-icon`},null,-1),g(`span`,null,P(D(i)(`serviceConfigView.tabLogParsers`)),1)]),_:1}),f(D(Ie),{value:`log-sources`},{default:x(()=>[n[6]||=g(`i`,{class:`pi pi-inbox tab-icon`},null,-1),g(`span`,null,P(D(i)(`serviceConfigView.tabLogSources`)),1)]),_:1}),f(D(Ie),{value:`traefik`},{default:x(()=>[...n[7]||=[g(`i`,{class:`pi pi-server tab-icon`},null,-1),g(`span`,null,`Traefik`,-1)]]),_:1})]),_:1}),f(D(Pe),null,{default:x(()=>[f(D(Le),{value:`general`},{default:x(()=>[f(Wn,{service:e.service,onSave:b},null,8,[`service`])]),_:1}),f(D(Le),{value:`commands`},{default:x(()=>[f(_i,{service:e.service,onSave:S,onDockerSave:E},null,8,[`service`])]),_:1}),f(D(Le),{value:`shortcuts`,"data-testid":`tabpanel-shortcuts`},{default:x(()=>[f(Ra,{service:e.service,onSave:T},null,8,[`service`])]),_:1}),f(D(Le),{value:`env`},{default:x(()=>[f(ra,{service:e.service,"project-id":e.projectId,"active-environment-id":_.value},null,8,[`service`,`project-id`,`active-environment-id`])]),_:1}),f(D(Le),{value:`health`},{default:x(()=>[f(Ea,{service:e.service,onSave:w},null,8,[`service`])]),_:1}),f(D(Le),{value:`log-parsers`,"data-testid":`tabpanel-log-parsers`},{default:x(()=>[f(Wc,{service:e.service,onSave:ee},null,8,[`service`])]),_:1}),f(D(Le),{value:`log-sources`},{default:x(()=>[f(zl,{service:e.service,onSave:O},null,8,[`service`])]),_:1}),f(D(Le),{value:`traefik`},{default:x(()=>[f(Hl,{service:e.service,onSave:k},null,8,[`service`])]),_:1})]),_:1})]),_:1},8,[`value`])]))}}),[[`__scopeId`,`data-v-af965568`]]),Jl={key:0,class:`service-detail`},Yl={key:1,class:`service-detail__not-found`},Xl={key:2,class:`service-detail__not-found`},Zl=V(b({__name:`ServiceDetailPage`,setup(e){let n=ye(),r=ce(),i=ge(),a=I(),{t:s}=ne(),c=xe(),l=ie(),u=de(),{setServiceContext:d}=O(),f=o(()=>n.params.id);R(f,e=>d(e),{immediate:!0}),fe(()=>d(null));let p=o(()=>{let e=n.params.tab;return e===`terminal`||e===`metrics`||e===`config`||e===`git`||e===`wiki`?e:`terminal`}),m=w(null),h=w(!1),_=o(()=>c.getById(f.value)||(m.value?.id===f.value?m.value:null));R(f,async e=>{if(m.value=null,!(!e||c.getById(e))){h.value=!0;try{m.value=await c.fetchOne(e)}finally{h.value=!1}}},{immediate:!0});let v=o(()=>l.getByService(f.value)),y=o(()=>u.currentProject?.id??``);function b(e){let t=c.getById(e);a.require({message:s(`serviceDetail.deleteConfirmMessage`,{name:t?.name??e}),header:s(`serviceDetail.deleteConfirmHeader`),icon:`pi pi-exclamation-triangle`,rejectLabel:s(`actions.cancel`),acceptLabel:s(`actions.delete`),acceptProps:{severity:`danger`},accept:async()=>{await c.remove(e)&&(i.add({severity:`success`,summary:s(`serviceDetail.removed`),detail:s(`serviceDetail.deleted`),life:3e3}),r.push(`/`))}})}return(e,n)=>_.value?(j(),N(`div`,Jl,[p.value===`terminal`?(j(),F(Wt,{key:`terminal-`+f.value,service:_.value,processes:v.value},null,8,[`service`,`processes`])):p.value===`metrics`?(j(),F(tn,{key:`metrics-`+f.value,service:_.value,processes:v.value},null,8,[`service`,`processes`])):p.value===`config`?(j(),F(ql,{key:`config-`+f.value,service:_.value,"project-id":y.value,onRemoveService:b},null,8,[`service`,`project-id`])):p.value===`git`?(j(),F(ee,{key:`git-`+f.value,"service-id":f.value},null,8,[`service-id`])):p.value===`wiki`?(j(),F(Je,{key:`wiki-`+f.value,scope:`service:${f.value}`},null,8,[`scope`])):t(``,!0)])):h.value?(j(),N(`div`,Yl)):(j(),N(`div`,Xl,[g(`p`,null,P(D(s)(`serviceDetail.notFound`)),1)]))}}),[[`__scopeId`,`data-v-e5220f62`]]);export{Zl as default};
@@ -1 +0,0 @@
1
- import{Ai as e,Cn as t,Di as n,Ii as r,Oi as i,On as a,Qt as ee,Ri as o,Sa as te,Si as s,Un as c,Va as l,Xa as u,Yt as d,aa as f,dr as ne,f as re,hn as p,ji as m,ka as h,nr as ie,qt as ae,sa as oe,sn as g,sr as se,st as ce,ta as le,tr as ue,ut as de,wi as _,xi as v,za as fe,zn as y}from"./index-DgMcUhMc.js";import{n as b}from"./plus-BxB6gfY6.js";import{t as pe}from"./fieldset--SZPF3MD.js";import{t as me}from"./toggleswitch-ChWnuWRp.js";import{t as he}from"./autocomplete-CybakBEo.js";import{t as x}from"./divider-xSFkNZuS.js";var ge={class:`service-form-page`},_e={class:`page-header`},ve={key:0,class:`restart-banner`},ye={key:1,class:`loading-container`},be={class:`form-section`},S={class:`form-group`},C={for:`svc-project`},w={class:`form-hint`},T={class:`form-group`},E={for:`svc-agent`},D={class:`form-hint`},O={class:`form-group`},k={for:`svc-name`},A={class:`form-hint`},j={class:`form-actions`},M={class:`form-section`},N={class:`form-row`},xe={class:`form-group flex-1`},Se={for:`svc-name-edit`},Ce={class:`form-group`,style:{width:`160px`}},we={for:`svc-runner`},Te={class:`form-group`},Ee={for:`svc-agent-edit`},De={class:`form-hint`},Oe={class:`form-row`},ke={class:`form-group flex-1`},Ae={for:`svc-cwd`},je={class:`form-group`,style:{"min-width":`200px`}},Me={for:`svc-ports`},Ne={class:`form-group switch-group`},P={for:`svc-autorestart`},Pe={class:`form-section`},Fe={class:`section-header`},Ie={key:0,class:`empty-env`},Le={class:`form-group`},Re={for:`hc-path`},ze={class:`form-row`},Be={class:`form-group flex-1`},Ve={for:`hc-interval`},He={class:`form-group flex-1`},Ue={for:`hc-timeout`},We={class:`form-group flex-1`},Ge={for:`hc-retries`},F=`__inherit__`,I=y(o({__name:`ServiceFormPage`,props:{id:{}},setup(o){let y=o,I=ie(),Ke=ue(),L=se(),R=ae(),z=de(),B=ce(),V=ee(),qe=re(),{t:H}=ne(),U=n(()=>!!y.id),W=n(()=>Ke.query.projectId),G=l(!1),K=l(!1),q=l(null),J=l(null),Y=l(!1),X=fe({projectId:``,agentId:F,name:``,cwd:``,ports:[],runner:`native`,autoRestart:!1,healthCheck:{enabled:!1,path:``,interval:3e4,timeout:5e3,retries:3}}),Z=l([]),Je=[{label:`Native`,value:`native`},{label:`Docker`,value:`docker`}],Ye=n(()=>R.projects.map(e=>({label:e.name,value:e.id}))),Q=n(()=>[{label:H(`serviceForm.agentInherit`),value:F},...B.agents.map(e=>({label:`${e.config.name} ${e.status.connected?`(Online)`:`(Offline)`}`,value:e.config.id}))]);function Xe(){Z.value=[...Z.value,{key:``,value:``,isSecret:!1}]}function Ze(e){Z.value=Z.value.filter((t,n)=>n!==e)}function Qe(){let e={},t=!1;for(let n of Z.value){let r=n.key.trim();r&&(e[r]={value:{value:n.value,pre:``,post:``,isSecret:n.isSecret}},t=!0)}return t?e:void 0}async function $e(){if(y.id){G.value=!0;try{let e=await a.service.get.query({id:y.id});X.agentId=e.agentId??F,X.name=e.name,X.cwd=e.cwd??``,X.ports=(e.ports??[]).map(String),X.runner=e.runner,X.autoRestart=e.autoRestart,e.healthCheck&&(X.healthCheck.enabled=!0,X.healthCheck.path=e.healthCheck.path,X.healthCheck.interval=e.healthCheck.interval,X.healthCheck.timeout=e.healthCheck.timeout,X.healthCheck.retries=e.healthCheck.retries),e.variables&&typeof e.variables==`object`&&Object.keys(e.variables).length>0&&(Z.value=Object.entries(e.variables).map(([e,t])=>{let n=t;return{key:e,value:n.value.value??``,isSecret:n.value.isSecret??!1}}))}catch(e){L.add({severity:`error`,summary:H(`serviceForm.error`),detail:d(e)??H(`serviceForm.failedToLoad`),life:5e3}),I.back()}finally{G.value=!1}}}async function $(){if(!(!U.value||!y.id||K.value||G.value)){if(!X.name.trim()){L.add({severity:`warn`,summary:H(`serviceForm.validation`),detail:H(`serviceForm.nameRequired`),life:3e3});return}K.value=!0;try{let e={agentId:X.agentId===F?null:X.agentId||null,name:X.name.trim(),cwd:X.cwd.trim()||void 0,ports:X.ports.map(Number).filter(e=>e>0&&e<=65535),runner:X.runner,autoRestart:X.autoRestart,variables:Qe(),healthCheck:X.healthCheck.enabled?{path:X.healthCheck.path,interval:X.healthCheck.interval,timeout:X.healthCheck.timeout,retries:X.healthCheck.retries}:void 0};(await a.service.update.mutate({id:y.id,...e}))?.stoppedForAgentChange?(q.value=e.agentId,J.value=y.id,L.add({severity:`warn`,summary:H(`serviceForm.saved`),detail:H(`serviceForm.agentChangedServiceStopped`),life:4e3})):L.add({severity:`success`,summary:H(`serviceForm.saved`),life:1500})}catch(e){L.add({severity:`error`,summary:H(`serviceForm.error`),detail:d(e)??H(`serviceForm.failedToSave`),life:5e3})}finally{K.value=!1}}}async function et(){if(!(!q.value||!J.value)){Y.value=!0;try{await qe.start(q.value,J.value),q.value=null,J.value=null,L.add({severity:`success`,summary:H(`serviceForm.restarted`),life:2e3})}catch(e){L.add({severity:`error`,summary:H(`serviceForm.error`),detail:d(e),life:5e3})}finally{Y.value=!1}}}async function tt(){if(!X.name.trim()){L.add({severity:`warn`,summary:H(`serviceForm.validation`),detail:H(`serviceForm.nameRequired`),life:3e3});return}if(!X.projectId){L.add({severity:`warn`,summary:H(`serviceForm.validation`),detail:H(`serviceForm.projectRequired`),life:3e3});return}K.value=!0;try{let e=await z.create({name:X.name.trim(),...X.agentId&&X.agentId!==F?{agentId:X.agentId}:{}});if(!e)throw Error(z.error??`Failed to create service`);let t=R.getByRef({id:X.projectId,orgId:V.activeOrgId})??R.getById(X.projectId);await R.addService(t??{id:X.projectId},e.id),L.add({severity:`success`,summary:H(`serviceForm.serviceCreated`),detail:H(`serviceForm.configureAfterCreate`),life:3e3}),I.push({name:`service-detail`,params:{id:e.id,tab:`config`}})}catch(e){L.add({severity:`error`,summary:H(`serviceForm.error`),detail:d(e)??H(`serviceForm.failedToSave`),life:5e3})}finally{K.value=!1}}return le(async()=>{await Promise.all([R.fetchAll(),B.fetchAll()]),W.value?X.projectId=W.value:!X.projectId&&V.activeProjectId&&(X.projectId=V.activeProjectId),U.value&&await $e()}),(n,a)=>(f(),m(`div`,ge,[i(`div`,_e,[r(u(c),{icon:`pi pi-arrow-left`,severity:`secondary`,text:``,rounded:``,onClick:a[0]||=e=>u(I).back()}),i(`h1`,null,h(U.value?u(H)(`serviceForm.editTitle`):u(H)(`serviceForm.createTitle`)),1)]),J.value?(f(),m(`div`,ve,[i(`span`,null,h(u(H)(`serviceForm.agentChangedServiceStopped`)),1),r(u(c),{label:u(H)(`serviceForm.restartNow`),icon:`pi pi-play`,severity:`warning`,size:`small`,loading:Y.value,onClick:et},null,8,[`label`,`loading`]),r(u(c),{icon:`pi pi-times`,severity:`secondary`,text:``,rounded:``,size:`small`,onClick:a[1]||=e=>{J.value=null,q.value=null}})])):e(``,!0),G.value?(f(),m(`div`,ye,[r(u(t))])):(f(),m(`form`,{key:2,class:`service-form`,onSubmit:s(tt,[`prevent`])},[U.value?(f(),m(_,{key:1},[i(`div`,M,[i(`div`,N,[i(`div`,xe,[i(`label`,Se,h(u(H)(`serviceForm.nameLabelShort`)),1),r(u(p),{id:`svc-name-edit`,modelValue:X.name,"onUpdate:modelValue":a[6]||=e=>X.name=e,placeholder:`my-service`,class:`w-full`,onBlur:$,onKeydown:v(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,Ce,[i(`label`,we,h(u(H)(`serviceForm.runnerLabel`)),1),r(u(g),{id:`svc-runner`,modelValue:X.runner,"onUpdate:modelValue":a[7]||=e=>X.runner=e,options:Je,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`])])]),i(`div`,Te,[i(`label`,Ee,h(u(H)(`serviceForm.agentLabel`)),1),r(u(g),{id:`svc-agent-edit`,modelValue:X.agentId,"onUpdate:modelValue":a[8]||=e=>X.agentId=e,options:Q.value,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`,`options`]),i(`small`,De,h(u(H)(`serviceForm.agentHintEdit`)),1)]),i(`div`,Oe,[i(`div`,ke,[i(`label`,Ae,h(u(H)(`serviceForm.cwdLabel`)),1),r(u(p),{id:`svc-cwd`,modelValue:X.cwd,"onUpdate:modelValue":a[9]||=e=>X.cwd=e,placeholder:`.`,class:`w-full`,onBlur:$,onKeydown:v(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,je,[i(`label`,Me,h(u(H)(`serviceForm.portsLabel`)),1),r(u(he),{inputId:`svc-ports`,modelValue:X.ports,"onUpdate:modelValue":a[10]||=e=>X.ports=e,multiple:``,typeahead:!1,placeholder:u(H)(`serviceForm.portsPlaceholder`),class:`w-full`,onChange:$},null,8,[`modelValue`,`placeholder`])])]),i(`div`,Ne,[r(u(me),{modelValue:X.autoRestart,"onUpdate:modelValue":a[11]||=e=>X.autoRestart=e,inputId:`svc-autorestart`,onChange:$},null,8,[`modelValue`]),i(`label`,P,h(u(H)(`serviceForm.autoRestart`)),1)])]),r(u(x)),i(`div`,Pe,[i(`div`,Fe,[i(`h3`,null,h(u(H)(`serviceForm.envVars`)),1),r(u(c),{label:u(H)(`serviceForm.addEnvVar`),icon:`pi pi-plus`,severity:`secondary`,size:`small`,onClick:Xe},null,8,[`label`])]),Z.value.length===0?(f(),m(`div`,Ie,[i(`small`,null,h(u(H)(`serviceForm.noEnvVars`)),1)])):e(``,!0),(f(!0),m(_,null,oe(Z.value,(e,t)=>(f(),m(`div`,{key:t,class:`env-row`},[r(u(p),{modelValue:e.key,"onUpdate:modelValue":t=>e.key=t,placeholder:`KEY`,class:`env-key`,onBlur:$,onKeydown:v(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),a[17]||=i(`span`,{class:`env-eq`},`=`,-1),r(u(p),{modelValue:e.value,"onUpdate:modelValue":t=>e.value=t,placeholder:`value`,class:`env-value`,onBlur:$,onKeydown:v(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),r(u(c),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:()=>{Ze(t),$()}},null,8,[`onClick`])]))),128))]),r(u(x)),r(u(pe),{legend:u(H)(`serviceForm.healthCheck`),toggleable:!0,collapsed:!X.healthCheck.enabled,onToggle:a[16]||=e=>{X.healthCheck.enabled=!e.value,$()}},{default:te(()=>[i(`div`,Le,[i(`label`,Re,h(u(H)(`serviceForm.healthCheckPath`)),1),r(u(p),{id:`hc-path`,modelValue:X.healthCheck.path,"onUpdate:modelValue":a[12]||=e=>X.healthCheck.path=e,placeholder:`/health`,class:`w-full`,onBlur:$,onKeydown:v(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,ze,[i(`div`,Be,[i(`label`,Ve,h(u(H)(`serviceForm.interval`)),1),r(u(b),{id:`hc-interval`,modelValue:X.healthCheck.interval,"onUpdate:modelValue":a[13]||=e=>X.healthCheck.interval=e,min:1e3,step:1e3,class:`w-full`,onBlur:$,onKeydown:v(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,He,[i(`label`,Ue,h(u(H)(`serviceForm.timeout`)),1),r(u(b),{id:`hc-timeout`,modelValue:X.healthCheck.timeout,"onUpdate:modelValue":a[14]||=e=>X.healthCheck.timeout=e,min:500,step:500,class:`w-full`,onBlur:$,onKeydown:v(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),i(`div`,We,[i(`label`,Ge,h(u(H)(`serviceForm.retries`)),1),r(u(b),{id:`hc-retries`,modelValue:X.healthCheck.retries,"onUpdate:modelValue":a[15]||=e=>X.healthCheck.retries=e,min:0,max:20,class:`w-full`,onBlur:$,onKeydown:v(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])])]),_:1},8,[`legend`,`collapsed`]),r(u(x))],64)):(f(),m(_,{key:0},[i(`div`,be,[i(`div`,S,[i(`label`,C,h(u(H)(`serviceForm.projectLabel`)),1),r(u(g),{id:`svc-project`,modelValue:X.projectId,"onUpdate:modelValue":a[2]||=e=>X.projectId=e,options:Ye.value,optionLabel:`label`,optionValue:`value`,placeholder:u(H)(`serviceForm.projectPlaceholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),i(`small`,w,h(u(H)(`serviceForm.projectHint`)),1)]),i(`div`,T,[i(`label`,E,h(u(H)(`serviceForm.agentLabel`)),1),r(u(g),{id:`svc-agent`,modelValue:X.agentId,"onUpdate:modelValue":a[3]||=e=>X.agentId=e,options:Q.value,optionLabel:`label`,optionValue:`value`,placeholder:u(H)(`serviceForm.agentInherit`),"show-clear":``,class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),i(`small`,D,h(u(H)(`serviceForm.agentHint`)),1)]),i(`div`,O,[i(`label`,k,h(u(H)(`serviceForm.nameLabel`)),1),r(u(p),{id:`svc-name`,modelValue:X.name,"onUpdate:modelValue":a[4]||=e=>X.name=e,placeholder:`my-service`,class:`w-full`},null,8,[`modelValue`]),i(`small`,A,h(u(H)(`serviceForm.nameConfigHint`)),1)])]),r(u(x)),i(`div`,j,[r(u(c),{label:u(H)(`serviceForm.cancel`),severity:`secondary`,text:``,onClick:a[5]||=e=>u(I).back()},null,8,[`label`]),r(u(c),{label:u(H)(`serviceForm.create`),icon:`pi pi-check`,loading:K.value,type:`submit`},null,8,[`label`,`loading`])])],64))],32))]))}}),[[`__scopeId`,`data-v-47e4793d`]]);export{I as default};