@runeya/runeya 2.0.70 → 2.0.71

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 (278) hide show
  1. package/agent/index.js +63 -10
  2. package/agent/index.js.map +1 -1
  3. package/agent-manager-UUSQK6S2.js +7 -0
  4. package/{chunk-YSJ6OJGN.js → chunk-Z3KAXI7V.js} +197 -12
  5. package/chunk-Z3KAXI7V.js.map +1 -0
  6. package/index.js +1 -1
  7. package/package.json +1 -1
  8. package/{src-6WVQ2FQV.js → src-Q3PSCMS7.js} +364 -435
  9. package/src-Q3PSCMS7.js.map +1 -0
  10. package/web/assets/{AgentScalarChatInterface.vue-vU3z8Etw.js → AgentScalarChatInterface.vue-Cin_Rbay.js} +1 -1
  11. package/web/assets/AgentTerminalPage-BD2w4XRc.css +1 -0
  12. package/web/assets/AgentTerminalPage-YgCQj_Mj.js +1 -0
  13. package/web/assets/AiChatPage-cIE_ZdF6.js +1 -0
  14. package/web/assets/{AppLayout-CvkK_Pp3.js → AppLayout-dYfSESzv.js} +1 -1
  15. package/web/assets/{AuditPage-BZuVgUf1.js → AuditPage-Bw3-G8ZM.js} +1 -1
  16. package/web/assets/CloudAccountPage-CA4dMsIm.js +1 -0
  17. package/web/assets/{CloudAccountPage-B__2SGAw.js → CloudAccountPage-DjljrEI_.js} +1 -1
  18. package/web/assets/{CloudMessagingPage-C5pD6Qsd.js → CloudMessagingPage-CbfH2vPo.js} +1 -1
  19. package/web/assets/{DashboardPage-66q5K841.js → DashboardPage-Cn3bUyhR.js} +1 -1
  20. package/web/assets/{DirectoryPickerDialog-wZYtGEZ9.js → DirectoryPickerDialog-BmsAi5gR.js} +1 -1
  21. package/web/assets/{EditorIcon-DUDLTmUd.js → EditorIcon-JRryeySJ.js} +1 -1
  22. package/web/assets/{EnvironmentForm-C0Q1pRdW.js → EnvironmentForm-BfF9IFRB.js} +1 -1
  23. package/web/assets/{EnvironmentFormPage-LO-mwupn.js → EnvironmentFormPage-CebWv3I_.js} +1 -1
  24. package/web/assets/{EnvironmentListPage-CvknyN3O.js → EnvironmentListPage-DDJGOHvR.js} +1 -1
  25. package/web/assets/{KanbanBoardPage-DUsAyowy.js → KanbanBoardPage-BMXyvHOl.js} +3 -3
  26. package/web/assets/{KanbanListPage-9RBCauSd.js → KanbanListPage-YMm_7vzg.js} +1 -1
  27. package/web/assets/{LaunchProjectPage-obaNCuEY.js → LaunchProjectPage-Da21oFjw.js} +1 -1
  28. package/web/assets/{LaunchServicesPage-CiWzQIyC.js → LaunchServicesPage-8YJT1stQ.js} +1 -1
  29. package/web/assets/{LogViewer-BiSD_TNt.js → LogViewer-BYNRWqlP.js} +1 -1
  30. package/web/assets/{OrgKeyPrompt-zhMl_nTd.js → OrgKeyPrompt-De8D0zzy.js} +1 -1
  31. package/web/assets/{ProcessControls-DMxvJmDe.js → ProcessControls-BPQXGKib.js} +1 -1
  32. package/web/assets/{ProcessDetailPage-CsCqQh2V.js → ProcessDetailPage-CVwMbU6x.js} +1 -1
  33. package/web/assets/{ProcessMetrics-DK4Dgdb0.js → ProcessMetrics-D7L708Em.js} +1 -1
  34. package/web/assets/{ProjectDetailPage-B0vJySvH.js → ProjectDetailPage-BjBN3hnN.js} +1 -1
  35. package/web/assets/{ProjectListPage-srxBmrbO.js → ProjectListPage-BRXKT6op.js} +1 -1
  36. package/web/assets/{RandomJobTestPage-jGfX-6W9.js → RandomJobTestPage-dhDNam5v.js} +1 -1
  37. package/web/assets/{ScenarioEditorPage-CxLy6gs7.js → ScenarioEditorPage-yOp4ZF14.js} +1 -1
  38. package/web/assets/{SendToChatDialog-AHkuFQjt.js → SendToChatDialog-o4y1Q-OD.js} +1 -1
  39. package/web/assets/{ServiceControlsBar-C8P9_qWK.js → ServiceControlsBar-BH1ZEFkK.js} +1 -1
  40. package/web/assets/{ServiceDetailPage-DTBpQegV.js → ServiceDetailPage-CFb0blqq.js} +1 -1
  41. package/web/assets/{ServiceFormPage-CsPSMWdD.js → ServiceFormPage-DzFQ_M1-.js} +1 -1
  42. package/web/assets/SettingsPage-Bcs3tnUy.js +2063 -0
  43. package/web/assets/{SettingsPage-uCS5lY2z.css → SettingsPage-CScovMi5.css} +1 -1
  44. package/web/assets/{UnlockPage-Bkp_hR-F.js → UnlockPage-BAxKs_K9.js} +1 -1
  45. package/web/assets/{VariablesTable-jo61MhbL.js → VariablesTable-CSuAPeF-.js} +1 -1
  46. package/web/assets/{VaultMigrationPage-D-Dxg5xH.js → VaultMigrationPage-BJX9kunL.js} +1 -1
  47. package/web/assets/{VersionBadge-CwNZLgqN.js → VersionBadge-B9Wvyvf6.js} +1 -1
  48. package/web/assets/WikiPage-CBZFOPL_.js +1 -0
  49. package/web/assets/{WikiView-BpJECJ2Y.js → WikiView-DxPrGyFy.js} +1 -1
  50. package/web/assets/{add-scalar-classes-CqLAxAGv.js → add-scalar-classes-vtTXFTZ6.js} +3 -3
  51. package/web/assets/auth-errors-DpUvxKid.js +1 -0
  52. package/web/assets/{autocomplete-CrMQ2sCk.js → autocomplete-BakcEoGP.js} +1 -1
  53. package/web/assets/{basic-shape-diamond.svg-CacrbinE.js → basic-shape-diamond.svg-C8K6YjGj.js} +1 -1
  54. package/web/assets/{basic-shape-hexagon.svg-GGJ54oyX.js → basic-shape-hexagon.svg-C9PeXR6S.js} +1 -1
  55. package/web/assets/{basic-shape-primary-circle-ellipse-round.svg-CuWfwdJM.js → basic-shape-primary-circle-ellipse-round.svg-CfBLN6Yj.js} +1 -1
  56. package/web/assets/{basic-shape-primary-square-rectangle.svg-C2Bewjip.js → basic-shape-primary-square-rectangle.svg-D2QPBP5_.js} +1 -1
  57. package/web/assets/{basic-shape-shield.svg-DNtg0KuJ.js → basic-shape-shield.svg-ClsEFdja.js} +1 -1
  58. package/web/assets/{browser-XO2fm4BX.js → browser-CF5_9QqR.js} +1 -1
  59. package/web/assets/{browser-5NN8ieli.js → browser-D7ZckEFz.js} +1 -1
  60. package/web/assets/browser-DNbnH79q.js +6 -0
  61. package/web/assets/{card-CjcU4SfX.js → card-DcpoBJHQ.js} +1 -1
  62. package/web/assets/{checkbox-iq9mU5eP.js → checkbox-CfwNXlF_.js} +1 -1
  63. package/web/assets/{chip-BsccUnHb.js → chip-3tOoBrD7.js} +1 -1
  64. package/web/assets/{client-B9UJRQa-.js → client-CKBKBNVm.js} +1 -1
  65. package/web/assets/{cloud-chat.store-Dw2lzuBY.js → cloud-chat.store-Ci1DBP5j.js} +1 -1
  66. package/web/assets/{cloud-session-DIhbWyP5.js → cloud-session-CzYQ65k8.js} +1 -1
  67. package/web/assets/{column-BGKYk6b6.js → column-CVuKYYbZ.js} +1 -1
  68. package/web/assets/{computer-device-desktop-monitor.svg-DSwpF_ss.js → computer-device-desktop-monitor.svg-9f4DSNLj.js} +1 -1
  69. package/web/assets/{computer-device-desktop.svg-Caj_PZBV.js → computer-device-desktop.svg-BYoXiEOE.js} +1 -1
  70. package/web/assets/{computer-device-laptop.svg-Bv3ienI_.js → computer-device-laptop.svg-DR1sEMdL.js} +1 -1
  71. package/web/assets/{computer-device-mobile-phone-android-samsung-back.svg-IWlhEKx_.js → computer-device-mobile-phone-android-samsung-back.svg-B-AOaBuq.js} +1 -1
  72. package/web/assets/{computer-device-mobile-phone-android-samsung.svg-CglQAFq2.js → computer-device-mobile-phone-android-samsung.svg-Dw4z_H5H.js} +1 -1
  73. package/web/assets/{computer-device-mobile-phone-iphone-x-back.svg-CgjNnTTw.js → computer-device-mobile-phone-iphone-x-back.svg-BtqMb2Wo.js} +1 -1
  74. package/web/assets/{computer-device-mobile-phone-iphone-x.svg-CotZ-4M5.js → computer-device-mobile-phone-iphone-x.svg-eYEM_VXA.js} +1 -1
  75. package/web/assets/{computer-device-mobile-tablet-touch.svg-B2cemd61.js → computer-device-mobile-tablet-touch.svg-jLD41nvm.js} +1 -1
  76. package/web/assets/{computer-device-mobile-tablet.svg-8nPVs4u_.js → computer-device-mobile-tablet.svg-D_7_M1GK.js} +1 -1
  77. package/web/assets/{computer-device-network-ethernet-cat6.svg-Bl56Qw4v.js → computer-device-network-ethernet-cat6.svg-B_527QGY.js} +1 -1
  78. package/web/assets/{computer-device-network-lan-www.svg-C_x6Rf8N.js → computer-device-network-lan-www.svg-ClZIaUOH.js} +1 -1
  79. package/web/assets/{computer-device-network-wifi-connection.svg-oz6dsDQB.js → computer-device-network-wifi-connection.svg-DC4OCJY0.js} +1 -1
  80. package/web/assets/{computer-device-network-wifi-router.svg-BciHU6Nj.js → computer-device-network-wifi-router.svg-BWPpobCc.js} +1 -1
  81. package/web/assets/{cssMode-DSX5tYcm.js → cssMode-CXUrkdrQ.js} +1 -1
  82. package/web/assets/{divider-DnPOdDs3.js → divider-BrO5nkpd.js} +1 -1
  83. package/web/assets/docx-preview-tE714WSD.js +21 -0
  84. package/web/assets/{ecology-science-erlenmeyer-flask.svg-BzQP6y9L.js → ecology-science-erlenmeyer-flask.svg-o8D0ASmr.js} +1 -1
  85. package/web/assets/{fieldset-D9lkV70l.js → fieldset-LX5cdTvN.js} +1 -1
  86. package/web/assets/{freemarker2-D9yXX9Vw.js → freemarker2-DJ82s0fP.js} +1 -1
  87. package/web/assets/{handlebars-BmcjEksL.js → handlebars-BXFlY2Lu.js} +1 -1
  88. package/web/assets/{html-BQF9vZLL.js → html-CqDVypOC.js} +1 -1
  89. package/web/assets/{htmlMode-DxSRpgHE.js → htmlMode-DrHxdTQP.js} +1 -1
  90. package/web/assets/{image-flash-lightning.svg-DQX09uxo.js → image-flash-lightning.svg-BDPMOynq.js} +1 -1
  91. package/web/assets/{image-picture-flower.svg-CUBdrnoc.js → image-picture-flower.svg-D-AJaery.js} +1 -1
  92. package/web/assets/{index-enuBsJBa.js → index-a6DAapTb.js} +299 -299
  93. package/web/assets/{interface-alert-exclamation-diamond.svg-DXQdQSvN.js → interface-alert-exclamation-diamond.svg-CV7M0IVQ.js} +1 -1
  94. package/web/assets/{interface-alert-exclamation-triangle-warning.svg-BoCeNIlU.js → interface-alert-exclamation-triangle-warning.svg-B8NapiB7.js} +1 -1
  95. package/web/assets/{interface-alert-information-circle.svg-BCA57JL2.js → interface-alert-information-circle.svg-eQIFULjG.js} +1 -1
  96. package/web/assets/{interface-award-crown.svg-B1hTlsb0.js → interface-award-crown.svg-D-4fclUD.js} +1 -1
  97. package/web/assets/{interface-bookmark.svg-zf3cIGKM.js → interface-bookmark-tag.svg-Jy6EOdau.js} +1 -1
  98. package/web/assets/{interface-bookmark-tag.svg-AosfQ0Ip.js → interface-bookmark.svg-XdbYDqqk.js} +1 -1
  99. package/web/assets/{interface-calendar-date-one.svg-D58WqPie.js → interface-calendar-date-one.svg-BIoXVZrz.js} +1 -1
  100. package/web/assets/{interface-content-book-open-pages.svg-B74HWMlw.js → interface-content-book-open-pages.svg-DHwJbBvQ.js} +1 -1
  101. package/web/assets/{interface-content-book-page.svg-C2QWk62-.js → interface-content-book-page.svg-47msUBN_.js} +1 -1
  102. package/web/assets/{interface-content-file.svg-xKu0qAOQ.js → interface-content-file.svg-DXw9W8QM.js} +1 -1
  103. package/web/assets/interface-content-folder.svg-BikaY449.js +1 -0
  104. package/web/assets/{interface-content-folder.svg-ZkrY9WkQ.js → interface-content-folder.svg-BmK_IJv8.js} +1 -1
  105. package/web/assets/{interface-copy-clipboard.svg-BEkNG3vO.js → interface-copy-clipboard.svg-CQ1rQN0L.js} +1 -1
  106. package/web/assets/{interface-edit-attachment.svg-5ztQ3WTq.js → interface-edit-attachment.svg-C3aTaTh_.js} +1 -1
  107. package/web/assets/{interface-edit-binocular.svg-CC9U1Gnc.js → interface-edit-binocular.svg-B2Ue_tgs.js} +1 -1
  108. package/web/assets/{interface-edit-magic-wand.svg-CPl6ZoE9.js → interface-edit-magic-wand.svg-DDKse-Wy.js} +1 -1
  109. package/web/assets/{interface-edit-tool-paint-roller.svg-B85t7jG2.js → interface-edit-tool-paint-roller.svg-C2ABby1f.js} +1 -1
  110. package/web/assets/{interface-edit-tool-pencil.svg-BSTdqWUg.js → interface-edit-tool-pencil.svg-CNjYbknQ.js} +1 -1
  111. package/web/assets/{interface-favorite-award.svg-DbPr_WKt.js → interface-favorite-award.svg-DWqSHfIa.js} +1 -1
  112. package/web/assets/{interface-favorite-flag.svg-CgKYXc7k.js → interface-favorite-flag.svg-CNUsr98g.js} +1 -1
  113. package/web/assets/{interface-favorite-heart.svg-DfnXyJMg.js → interface-favorite-heart.svg-3Eb366FO.js} +1 -1
  114. package/web/assets/{interface-favorite-star.svg-0sT7jJMK.js → interface-favorite-star.svg-CVJ3aq1n.js} +1 -1
  115. package/web/assets/{interface-favorite-stars-sparkles.svg-BcM2EXgn.js → interface-favorite-stars-sparkles.svg-BfXhPBbs.js} +1 -1
  116. package/web/assets/{interface-hierarchy-flowchart.svg-BM62WcKt.js → interface-hierarchy-flowchart.svg-DzsqKrYq.js} +1 -1
  117. package/web/assets/{interface-home-house.svg-KqP7iMC4.js → interface-home-house.svg-BnXbuyZn.js} +1 -1
  118. package/web/assets/{interface-hyperlink.svg-DBKFbihR.js → interface-hyperlink.svg-BsmSmyP5.js} +1 -1
  119. package/web/assets/{interface-lighting-brightness.svg-DTkCS7PY.js → interface-lighting-brightness.svg-BywVQRo9.js} +1 -1
  120. package/web/assets/{interface-lock-closed.svg-Div5xlvI.js → interface-lock-closed.svg-BLPORc_h.js} +1 -1
  121. package/web/assets/{interface-lock-open-unlock.svg-Du5L_iMV.js → interface-lock-open-unlock.svg-CaYlbVmU.js} +1 -1
  122. package/web/assets/{interface-login-key.svg-28TYVVzH.js → interface-login-key.svg-D5F_9MJ0.js} +1 -1
  123. package/web/assets/{interface-search.svg-BS_owhIG.js → interface-search.svg-CF1D8GIV.js} +1 -1
  124. package/web/assets/{interface-setting-cog.svg-afYc0TQv.js → interface-setting-cog.svg-D4AOKG2g.js} +1 -1
  125. package/web/assets/{interface-share-megaphone-bullhorn.svg-BnW8HhjG.js → interface-share-megaphone-bullhorn.svg-BIfr2_va.js} +1 -1
  126. package/web/assets/{interface-share-rocket.svg-DvX_9178.js → interface-share-rocket.svg-NDd3dv1t.js} +1 -1
  127. package/web/assets/{interface-share-satellite.svg-B4nQqv6w.js → interface-share-satellite.svg-CVDJbmT-.js} +1 -1
  128. package/web/assets/{interface-share-space-ship.svg-Ciol-6JO.js → interface-share-space-ship.svg-D0ZLJNO2.js} +1 -1
  129. package/web/assets/{interface-share.svg-COm1OVr8.js → interface-share.svg-WpwbpOes.js} +1 -1
  130. package/web/assets/{interface-signal-square.svg-DXuF6sqG.js → interface-signal-square.svg-DnfzUw_B.js} +1 -1
  131. package/web/assets/{interface-time-clock-circle.svg-CWLe4mcs.js → interface-time-clock-circle.svg-BhxciNvX.js} +1 -1
  132. package/web/assets/{interface-time-hour-glass.svg-DXz9wBiv.js → interface-time-hour-glass.svg-DBzSaSHQ.js} +1 -1
  133. package/web/assets/{interface-users-multiple.svg-CXOw1J5l.js → interface-users-multiple.svg-BULh1giq.js} +1 -1
  134. package/web/assets/{interface-weather-moon.svg-B9H9xib3.js → interface-weather-moon.svg-D377V2os.js} +1 -1
  135. package/web/assets/{javascript-BY1URXQK.js → javascript-BTXoJ3Qy.js} +1 -1
  136. package/web/assets/{jsonMode-CxipJdzJ.js → jsonMode-D4a3Khim.js} +1 -1
  137. package/web/assets/{liquid-BbqI_ezD.js → liquid-DfO0R4Mk.js} +1 -1
  138. package/web/assets/{lspLanguageFeatures-BrbDxmfl.js → lspLanguageFeatures-BvPWuQFt.js} +1 -1
  139. package/web/assets/{mail-chat-bubble-square.svg-CAlBGAlW.js → mail-chat-bubble-square.svg-SK3IJ6QN.js} +1 -1
  140. package/web/assets/{mail-send-email-paper-airplane.svg-BoNc-FEY.js → mail-send-email-paper-airplane.svg-CJFA7B2E.js} +1 -1
  141. package/web/assets/{mail-send-envelope.svg-CnMOSib5.js → mail-send-envelope.svg-eO_-QNyE.js} +1 -1
  142. package/web/assets/{mdx-C4PcQ_oe.js → mdx-G_vwFSSe.js} +1 -1
  143. package/web/assets/{message-BWsbEnoG.js → message-CxPw04rG.js} +1 -1
  144. package/web/assets/{minus-BpDIA3FO.js → minus-Dp5ez1-1.js} +1 -1
  145. package/web/assets/{modal-DZYAJM4x.js → modal-CGT4d1lM.js} +1 -1
  146. package/web/assets/modal-D_N6NaGL.js +1 -0
  147. package/web/assets/{money-cashier-receipt.svg-DZQ9mrBZ.js → money-cashier-receipt.svg-EutWthy8.js} +1 -1
  148. package/web/assets/{money-currency-dollar-pay.svg-BCaw-GeJ.js → money-currency-dollar-pay.svg-MnLj-orw.js} +1 -1
  149. package/web/assets/{money-graph-arrow-increase.svg-DZXh-i2p.js → money-graph-arrow-increase.svg-CVCZ3TyJ.js} +1 -1
  150. package/web/assets/{money-graph-bar-chart-increase.svg-j_1tUlGM.js → money-graph-bar-chart-increase.svg-DiUmCuhj.js} +1 -1
  151. package/web/assets/{multiselect-CmjxW2sW.js → multiselect-C6uayHqj.js} +1 -1
  152. package/web/assets/{nature-ecology-leaf.svg-bajA57tM.js → nature-ecology-leaf.svg-ByaLs72Y.js} +1 -1
  153. package/web/assets/{password-W9W3PSE2.js → password-CxtOqagM.js} +1 -1
  154. package/web/assets/{phone-telephone.svg-DD5MGHqV.js → phone-telephone.svg-BKz6Jkwn.js} +1 -1
  155. package/web/assets/{plus-RuIcofM_.js → plus-BPT_7GGk.js} +1 -1
  156. package/web/assets/process.store-CMxuFjFg.js +1 -0
  157. package/web/assets/{programming-bug.svg-CjtqBc8Z.js → programming-bug.svg-BwSc8f0s.js} +1 -1
  158. package/web/assets/{programming-cloud.svg-BXQ_h3dK.js → programming-cloud.svg-CEIulNEp.js} +1 -1
  159. package/web/assets/{programming-computer-database-server.svg-D6TzOHsK.js → programming-computer-database-server.svg-Bc_F3NH0.js} +1 -1
  160. package/web/assets/{programming-computer-database.svg-Dmdh0lIx.js → programming-computer-database.svg-AYLkzJJE.js} +1 -1
  161. package/web/assets/{programming-module-four-layout.svg-CtGhpLhO.js → programming-module-four-layout.svg-DLpzPxNB.js} +1 -1
  162. package/web/assets/{programming-module-three.svg-hz_w8W7I.js → programming-module-three.svg-CcuZn8dz.js} +1 -1
  163. package/web/assets/{programming-module.svg-oDT_fQLn.js → programming-module.svg-BjbGpQeu.js} +1 -1
  164. package/web/assets/{programming-script-code.svg-CxHHTsaU.js → programming-script-code.svg-poyfodgC.js} +1 -1
  165. package/web/assets/{python-DH-AyaLR.js → python-DpMMlrWM.js} +1 -1
  166. package/web/assets/{razor-BUpT1gRX.js → razor-Ba_mg6U5.js} +1 -1
  167. package/web/assets/router-QZ5Z8Lh7.js +1 -0
  168. package/web/assets/settings-scope-D7umae8c.js +1 -0
  169. package/web/assets/{settings.store-Dj2nbYYG.js → settings.store-Dte8TdJb.js} +1 -1
  170. package/web/assets/{shopping-cart.svg-D1eK38-E.js → shopping-cart.svg-BX2KYVCw.js} +1 -1
  171. package/web/assets/{shopping-gift-present.svg-CxSfFNAS.js → shopping-gift-present.svg-BOl2vYLg.js} +1 -1
  172. package/web/assets/{shopping-shipping-box-parcel-package.svg-M5Njo2qJ.js → shopping-shipping-box-parcel-package.svg-gxfbOgnM.js} +1 -1
  173. package/web/assets/{src-CEK4EPEJ.js → src-D0LXRijj.js} +8 -8
  174. package/web/assets/{src-BTWvqafq.js → src-DWvNj-EG.js} +1 -1
  175. package/web/assets/{tabpanel-CWwOXePg.js → tabpanel-Bkt-f7d6.js} +1 -1
  176. package/web/assets/{tag-new-circle.svg-v_Go3fcT.js → tag-new-circle.svg-CTRMBJyc.js} +1 -1
  177. package/web/assets/{toggleswitch-C4A0_850.js → toggleswitch-DcDrXRKn.js} +1 -1
  178. package/web/assets/{travel-map-earth-globe.svg-Db2uRb3M.js → travel-map-earth-globe.svg-BPp4IapC.js} +1 -1
  179. package/web/assets/trpc-Dtgb4BMw.js +1 -0
  180. package/web/assets/{tsMode-CXB5XugS.js → tsMode-HfLOT-e5.js} +1 -1
  181. package/web/assets/{typescript-CHJkC9r6.js → typescript-DJAEsDnw.js} +1 -1
  182. package/web/assets/useAiChatDrawer-fzyQ-fyM.js +1 -0
  183. package/web/assets/useCloudOrg-BdpqnN19.css +1 -0
  184. package/web/assets/useCloudOrg-Bg7-icbW.js +97 -0
  185. package/web/assets/{useProjectCatalog-DDm0I6sX.js → useProjectCatalog-C95cDPIr.js} +1 -1
  186. package/web/assets/{xml-DB4EKWC9.js → xml-1frg7aol.js} +1 -1
  187. package/web/assets/{yaml-CqvLyuow.js → yaml-DXzDcMOS.js} +1 -1
  188. package/web/index.html +1 -1
  189. package/agent-manager-74WZPMVQ.js +0 -7
  190. package/chunk-YSJ6OJGN.js.map +0 -1
  191. package/src-6WVQ2FQV.js.map +0 -1
  192. package/web/assets/AgentTerminalPage-A8GIX6dZ.css +0 -1
  193. package/web/assets/AgentTerminalPage-DE3GUoXn.js +0 -1
  194. package/web/assets/AiChatPage-BIJczUeS.js +0 -1
  195. package/web/assets/CloudAccountPage-MSWkg9Ke.js +0 -1
  196. package/web/assets/SettingsPage-CmtRn6VJ.js +0 -2063
  197. package/web/assets/WikiPage-DZLKTPi3.js +0 -1
  198. package/web/assets/auth-errors-BOjTx5eo.js +0 -1
  199. package/web/assets/interface-content-folder.svg-DjEfXjEF.js +0 -1
  200. package/web/assets/modal-Fe2dzlxp.js +0 -1
  201. package/web/assets/process.store-COWqXNUm.js +0 -1
  202. package/web/assets/router-BIJ4goD-.js +0 -1
  203. package/web/assets/settings-scope-DGzA7Be-.js +0 -1
  204. package/web/assets/trpc-DfyQNjZd.js +0 -1
  205. package/web/assets/useAiChatDrawer-Cuhlc2BI.js +0 -1
  206. package/web/assets/useCloudOrg-DYOv1Oak.js +0 -93
  207. package/web/assets/useCloudOrg-Dc6yRgro.css +0 -1
  208. /package/{agent-manager-74WZPMVQ.js.map → agent-manager-UUSQK6S2.js.map} +0 -0
  209. /package/web/assets/{abap-Q7FyqTce.js → abap-BvxTqXT2.js} +0 -0
  210. /package/web/assets/{apex-DBNDq2a_.js → apex-CIPCCkBr.js} +0 -0
  211. /package/web/assets/{azcli-BHW8ozYN.js → azcli-Rs0NIwkA.js} +0 -0
  212. /package/web/assets/{bat-BL-_3Nfo.js → bat-BxAhM6gR.js} +0 -0
  213. /package/web/assets/{bicep-DR2vgumW.js → bicep-oV_ehPcG.js} +0 -0
  214. /package/web/assets/{cameligo-BCjoEAZU.js → cameligo-CJLaUyQs.js} +0 -0
  215. /package/web/assets/{clojure-zw1Irdul.js → clojure-CjvMureh.js} +0 -0
  216. /package/web/assets/{coffee-BdEjkiiW.js → coffee-motWC5XQ.js} +0 -0
  217. /package/web/assets/{cpp-DKUlBIAG.js → cpp-DiWIfYNM.js} +0 -0
  218. /package/web/assets/{csharp-BsNC4zVq.js → csharp-GBlGBeai.js} +0 -0
  219. /package/web/assets/{csp-X4Chv5_9.js → csp-tSyK5eO1.js} +0 -0
  220. /package/web/assets/{css-Dh0Dlycs.js → css-BkFK9HG_.js} +0 -0
  221. /package/web/assets/{cypher-BL_DRjGX.js → cypher-Bcp8PXr2.js} +0 -0
  222. /package/web/assets/{dart-DaM4j487.js → dart-uz9Rxe0M.js} +0 -0
  223. /package/web/assets/{dockerfile-Df5WJXAt.js → dockerfile-iJizx3Zp.js} +0 -0
  224. /package/web/assets/{ecl-BjUo3uTs.js → ecl-BalaS36Z.js} +0 -0
  225. /package/web/assets/{elixir-DrLHYSxt.js → elixir-D6CLrLGy.js} +0 -0
  226. /package/web/assets/{flow9-DKiuX7rg.js → flow9-CFt3-vVY.js} +0 -0
  227. /package/web/assets/{fsharp-CAN78557.js → fsharp-DGa7raxa.js} +0 -0
  228. /package/web/assets/{go-DGjr9vA5.js → go-wlqInk4z.js} +0 -0
  229. /package/web/assets/{graphql-CcoU3Cj2.js → graphql-CP1guigM.js} +0 -0
  230. /package/web/assets/{hcl-udfyCcTm.js → hcl-CK0UkKD0.js} +0 -0
  231. /package/web/assets/{ini-BVbXatjh.js → ini-Ch56nrUj.js} +0 -0
  232. /package/web/assets/{java-Drpmh61g.js → java-C9_WIayl.js} +0 -0
  233. /package/web/assets/{julia-asFGk-ZV.js → julia-Can2_mhR.js} +0 -0
  234. /package/web/assets/{kotlin-HmkKz1TT.js → kotlin-DUvGf_BX.js} +0 -0
  235. /package/web/assets/{less-C5i2m2Dn.js → less-DoTbG-rc.js} +0 -0
  236. /package/web/assets/{lexon-B3Xh2kL6.js → lexon-BFMO2_kL.js} +0 -0
  237. /package/web/assets/{lua-DnOtgOOu.js → lua-CC-QtBo7.js} +0 -0
  238. /package/web/assets/{m3-Brj4HNKq.js → m3-C51MyH5Q.js} +0 -0
  239. /package/web/assets/{markdown-C3-4Ntpz.js → markdown-CDwLHhgZ.js} +0 -0
  240. /package/web/assets/{mips-vFQKPHzn.js → mips-YuxZtPGU.js} +0 -0
  241. /package/web/assets/{msdax-D5MYLS2R.js → msdax-CJjWhmte.js} +0 -0
  242. /package/web/assets/{mysql-CRQHhUON.js → mysql-B1riwLaD.js} +0 -0
  243. /package/web/assets/{objective-c-8cZEp0HR.js → objective-c-drXT-gmc.js} +0 -0
  244. /package/web/assets/{pascal-BPn_2jro.js → pascal-KUYgrN-Z.js} +0 -0
  245. /package/web/assets/{pascaligo-L7QnU_8B.js → pascaligo-DQmQJP-r.js} +0 -0
  246. /package/web/assets/{perl-B9zSPnp3.js → perl-09XLBmCS.js} +0 -0
  247. /package/web/assets/{pgsql-DiRJukCJ.js → pgsql-BFj9IFFu.js} +0 -0
  248. /package/web/assets/{php-Dv4g8Lhr.js → php-UnC5BqwY.js} +0 -0
  249. /package/web/assets/{pla-CKAoz6vp.js → pla-BFuYrPHG.js} +0 -0
  250. /package/web/assets/{postiats-B_PYgUTS.js → postiats-n4ft3jnO.js} +0 -0
  251. /package/web/assets/{powerquery-CAagSyo-.js → powerquery-D-s-oFSc.js} +0 -0
  252. /package/web/assets/{powershell-Cj9BzLhS.js → powershell-CTboTf93.js} +0 -0
  253. /package/web/assets/{protobuf-DTRY4FFo.js → protobuf-Dt62GuJP.js} +0 -0
  254. /package/web/assets/{pug-qADGmCS8.js → pug-CEFWkUzw.js} +0 -0
  255. /package/web/assets/{qsharp-xkZT0ZOm.js → qsharp-B0DUmgPZ.js} +0 -0
  256. /package/web/assets/{r-C7wfNC2Z.js → r-BVnF0c4T.js} +0 -0
  257. /package/web/assets/{redis-BoccK80D.js → redis-DLl3KQXi.js} +0 -0
  258. /package/web/assets/{redshift-EL8PjTts.js → redshift-cif1I7h1.js} +0 -0
  259. /package/web/assets/{restructuredtext-CA6rgR7C.js → restructuredtext-PNfql36m.js} +0 -0
  260. /package/web/assets/{ruby-BymrInur.js → ruby-j3jxDjUN.js} +0 -0
  261. /package/web/assets/{rust-BTbPL-fg.js → rust-BaIO-mAt.js} +0 -0
  262. /package/web/assets/{sb-BTkOICcb.js → sb-D8XNVNUQ.js} +0 -0
  263. /package/web/assets/{scala-CzaUHeQF.js → scala-DiK9Ps90.js} +0 -0
  264. /package/web/assets/{scheme-DZe2DRuY.js → scheme-DPKqXHmF.js} +0 -0
  265. /package/web/assets/{scss-D5oFt9cg.js → scss-DpMwfP2H.js} +0 -0
  266. /package/web/assets/{shell-DCkIF5jZ.js → shell-Dw9mKVg2.js} +0 -0
  267. /package/web/assets/{solidity-CfOO4gXi.js → solidity-DTxo-7fe.js} +0 -0
  268. /package/web/assets/{sophia-0-sROOHR.js → sophia-BjA3Q87y.js} +0 -0
  269. /package/web/assets/{sparql-Dzzr9hol.js → sparql-q1EpMUqb.js} +0 -0
  270. /package/web/assets/{sql-DbXHiHh_.js → sql-CjcQ4wIr.js} +0 -0
  271. /package/web/assets/{st-DEaYV8xH.js → st-AuOpxVl7.js} +0 -0
  272. /package/web/assets/{swift-BQItveav.js → swift-BUWnv6f7.js} +0 -0
  273. /package/web/assets/{systemverilog-nE6YfGlx.js → systemverilog-FhXn-3OZ.js} +0 -0
  274. /package/web/assets/{tcl-Do7Q0SM0.js → tcl-B0lqcTtS.js} +0 -0
  275. /package/web/assets/{twig-B2CLZN2j.js → twig-B0OeGPVa.js} +0 -0
  276. /package/web/assets/{typespec-r9R1AgVi.js → typespec-Bmh6VX11.js} +0 -0
  277. /package/web/assets/{vb-DGnD02qr.js → vb-bmgX6veu.js} +0 -0
  278. /package/web/assets/{wgsl-C2fD4koY.js → wgsl-FflLnFqI.js} +0 -0
@@ -1,2 +1,2 @@
1
- import{$i as e,An as t,At as n,Ca as r,D as i,Dt as a,Ea as o,Fi as s,Ft as c,Gt as l,H as u,Hn as d,J as f,Ji as p,K as m,Kt as h,Li as g,Ln as _,Mn as v,Mt as y,Ni as b,Nn as x,Nt as S,Q as C,Qi as w,Qr as T,Rn as ee,Y as te,Zr as E,_a as D,_i as ne,_n as re,aa as O,ai as k,bn as A,di as j,dn as M,ei as N,en as P,fa as ie,fi as F,fn as I,gn as L,ha as ae,hi as oe,ii as R,it as z,ji as se,jt as ce,l as le,mi as B,na as ue,nt as de,oi as V,q as fe,qr as pe,ri as H,rn as me,si as U,st as he,tt as ge,ua as W,un as _e,vn as ve,wi as ye}from"./index-enuBsJBa.js";import"./cloud-session-DIhbWyP5.js";import"./src-BTWvqafq.js";import{t as be}from"./message-BWsbEnoG.js";import"./ProcessControls-DMxvJmDe.js";import{t as xe}from"./ServiceControlsBar-C8P9_qWK.js";import{n as Se,t as Ce}from"./column-BGKYk6b6.js";import{n as we}from"./plus-RuIcofM_.js";import{t as Te}from"./checkbox-iq9mU5eP.js";import{t as Ee}from"./toggleswitch-C4A0_850.js";import{a as De,i as Oe,n as ke,r as Ae,t as je}from"./tabpanel-CWwOXePg.js";import{n as Me,t as Ne}from"./VariablesTable-jo61MhbL.js";import{t as Pe}from"./autocomplete-CrMQ2sCk.js";import{t as Fe}from"./uuid-CXjA27vZ.js";import"./src-CEK4EPEJ.js";import"./w3c-keyname-2TLn3EjF.js";import"./SendToChatDialog-AHkuFQjt.js";import{n as Ie,t as Le}from"./ProcessMetrics-DK4Dgdb0.js";import{t as Re}from"./LogViewer-BiSD_TNt.js";import{t as ze}from"./divider-DnPOdDs3.js";import{t as Be}from"./settings.store-Dj2nbYYG.js";import{t as Ve}from"./WikiView-BpJECJ2Y.js";var He={key:0,class:`log-details`},Ue={class:`log-details__section`},We={class:`log-details__label`},Ge={class:`log-details__value log-details__value--box`},Ke={class:`log-details__section`},qe={class:`log-details__label`},Je={class:`log-details__value log-details__value--box log-details__value--code`},Ye={class:`log-details__section`},Xe={class:`log-details__label`},Ze={class:`log-details__value log-details__value--box`},Qe={class:`log-details__process`},$e={class:`log-details__section`},et={class:`log-details__label`},tt={class:`log-details__value log-details__value--box`},nt={key:0,class:`log-details__section`},rt={class:`log-details__label`},it={class:`log-details__value log-details__value--box log-details__value--code`,"data-testid":`log-details-cwd`},at={class:`log-details__section`},ot={class:`log-details__label`},st={class:`log-details__value log-details__value--box`},ct={key:1,class:`log-details__section`},lt={class:`log-details__label`},ut={class:`log-details__value log-details__value--box`},dt={key:2,class:`log-details__section`},ft={class:`log-details__label`},pt={class:`log-details__value log-details__value--box log-details__value--code`},mt=L(B({__name:`LogDetailsDrawer`,props:{visible:{type:Boolean},log:{}},emits:[`update:visible`,`view-process`],setup(e,{emit:t}){let n=e,{t:r}=d(),i=le(),a=t,c=H(()=>{if(!n.log)return``;let e=new Date(n.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`)}`}),l=H(()=>n.log?n.log.level.charAt(0).toUpperCase()+n.log.level.slice(1):``),u=H(()=>!n.log||n.log.pid==null?r(`logDetails.notAvailable`):String(n.log.pid)),f=H(()=>n.log?i.getByService(n.log.processId)[0]?.cwd??null:null);function p(){n.log&&a(`view-process`,n.log.processId)}function m(){a(`update:visible`,!1)}return(t,n)=>(s(),k(o(re),{visible:e.visible,position:`right`,header:o(r)(`logDetails.header`),style:{width:`440px`},"onUpdate:visible":m},{default:w(()=>[e.log?(s(),U(`div`,He,[R(`div`,Ue,[R(`div`,We,O(o(r)(`logDetails.type`)),1),R(`div`,Ge,O(l.value),1)]),R(`div`,Ke,[R(`div`,qe,O(o(r)(`logDetails.rawMessage`)),1),R(`div`,Je,O(e.log.raw),1)]),R(`div`,Ye,[R(`div`,Xe,O(o(r)(`logDetails.serviceId`)),1),R(`div`,Ze,[R(`div`,Qe,[R(`span`,null,O(e.log.processId),1),F(o(A),{label:o(r)(`logDetails.viewProcess`),icon:`pi pi-external-link`,size:`small`,outlined:``,onClick:p},null,8,[`label`])])])]),R(`div`,$e,[R(`div`,et,O(o(r)(`logDetails.pid`)),1),R(`div`,tt,O(u.value),1)]),f.value?(s(),U(`div`,nt,[R(`div`,rt,O(o(r)(`logDetails.cwd`)),1),R(`div`,it,O(f.value),1)])):V(``,!0),R(`div`,at,[R(`div`,ot,O(o(r)(`logDetails.timestamp`)),1),R(`div`,st,O(c.value),1)]),e.log.stream?(s(),U(`div`,ct,[R(`div`,lt,O(o(r)(`logDetails.stream`)),1),R(`div`,ut,O(e.log.stream),1)])):V(``,!0),e.log.metadata&&Object.keys(e.log.metadata).length>0?(s(),U(`div`,dt,[R(`div`,ft,O(o(r)(`logDetails.metadata`)),1),R(`div`,pt,O(JSON.stringify(e.log.metadata,null,2)),1)])):V(``,!0)])):V(``,!0)]),_:1},8,[`visible`,`header`]))}}),[[`__scopeId`,`data-v-4e3f7abe`]]),ht=500,gt=5,_t=z;function vt(e){return e+Math.random()*e*.3}function yt(e,t){let n=D([]),r=D(!1),i=null,a=0,o=null,s=l(()=>{a=0,r.value||w()}),c=[],u=null,d=D(0),f=D(0),m=0,g=0,_=null;function v(){_||=setInterval(()=>{d.value=m,f.value=g,m=0,g=0},1e3)}function y(){_&&=(clearInterval(_),null),d.value=0,f.value=0,m=0,g=0}function x(){if(u=null,c.length===0)return;let e=c;c=[],g+=e.length;let t=[...n.value,...e];t.length>ht&&(t=t.slice(t.length-ht)),n.value=t}function S(){!e.value||!t.value||(r.value=!0,i=h.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=[],c=[];return}m+=t.length,c.push(...t),u===null&&(u=requestAnimationFrame(x))},onError(e){console.error(`[useLogStream] Subscription error:`,e.message),r.value=!1,i=null,C()}}))}function C(){if(a>=gt){console.warn(`[useLogStream] Max retries (${gt}) reached`),P(`disconnected`);return}P(`reconnecting`);let e=vt(_t*2**a);a++,o=setTimeout(()=>{o=null,w()},e)}async function w(){if(!r.value&&!(!e.value||!t.value)){a=0;try{let r=await h.process.logs.query({agentId:e.value,processId:t.value});r.length>ht&&(r=r.slice(r.length-ht)),n.value=r,P(`connected`)}catch{}S()}}function T(){o&&=(clearTimeout(o),null),u!==null&&(cancelAnimationFrame(u),u=null),c=[],y(),i&&=(i.unsubscribe(),null),r.value=!1,a=0,n.value=[]}return p([e,t],([e,t],[n,i])=>{(e!==n||t!==i)&&(r.value&&T(),w())}),b(()=>{s(),T()}),{logs:n,isStreaming:r,start:w,stop:T,receivedPerSec:d,flushedPerSec:f,startStats:v,stopStats:y}}var bt={class:`service-terminal__toolbar`},xt={class:`service-terminal__toolbar-left`},St={key:0,class:`pid-option`},Ct={key:1,class:`pid-option`},wt={key:0,class:`pi pi-circle-fill pid-status-icon pid-status-icon--active`,style:{"margin-right":`0.5rem`}},Tt={key:1,class:`pi pi-circle-fill pid-status-icon pid-status-icon--stopped`,style:{"margin-right":`0.5rem`}},Et={class:`pid-option`},Dt={key:0,class:`pi pi-list`,style:{"margin-right":`0.5rem`}},Ot=[`title`],kt=[`title`],At={class:`service-terminal__toolbar-right`},jt={class:`service-terminal__content`,"data-testid":`service-terminal-content`},Mt={key:1,class:`service-terminal__shortcuts`},Nt={class:`service-terminal__command-input`},Pt={class:`service-terminal__bottom`},Ft=`runeya_command_history_`,It=50,Lt=L(B({__name:`ServiceTerminal`,props:{service:{},processes:{}},setup(e){let{t}=d(),n=e,r=H(()=>n.processes.find(e=>e.state===`running`||e.state===`starting`)??n.processes[0]??null),i=H(()=>r.value?.agentId??``),a=H(()=>r.value?.id??``),c=ee(),{logs:l,isStreaming:u,start:f,stop:m,receivedPerSec:_,flushedPerSec:v,startStats:y,stopStats:x}=yt(i,a),S=D(!1);p(S,e=>{e?y():x()});function C(e){e.ctrlKey&&e.shiftKey&&(e.key===`*`||e.key===`µ`)&&(e.preventDefault(),S.value=!S.value)}let T=H(()=>{let e=new Map;return l.value.forEach(t=>{if(t.pid!=null){let r=e.get(t.pid);if(r)r.lastSeen=new Date(Math.max(r.lastSeen.getTime(),new Date(t.timestamp).getTime())),r.logCount++;else{let r=n.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:!!r})}}}),Array.from(e.values()).sort((e,t)=>t.lastSeen.getTime()-e.lastSeen.getTime())}),te=H(()=>Oe.value===`all`?l.value:l.value.filter(e=>e.pid===Oe.value)),E=H(()=>T.value.filter(e=>e.isActive).length),ne=H(()=>{let e=[{label:t(`serviceTerminal.allProcesses`),value:`all`,badge:E.value>0?`${E.value} ${t(`serviceTerminal.active`)}`:void 0,isActive:void 0}];return T.value.forEach(({pid:t,logCount:n,isActive:r})=>{e.push({label:`PID: ${t}`,value:t,badge:`${n} logs`,isActive:r})}),e});H(()=>n.processes.filter(e=>e.state===`running`).length);async function re(){if(r.value)try{await h.process.clearLogBuffer.mutate({agentId:r.value.agentId,processId:r.value.id}),l.value=[]}catch(e){c.add({severity:`error`,summary:t(`serviceTerminal.error`),detail:e.message??t(`serviceTerminal.failedToClearLogs`),life:5e3})}}let j=H(()=>n.service.shortcuts??[]),P=D(new Set);async function ie(e){let i=r.value?.agentId??n.service.agentId,a=r.value?.id??n.service.id;if(!i){c.add({severity:`warn`,summary:t(`serviceTerminal.noAgent`),detail:t(`serviceTerminal.noAgentDesc`),life:3e3});return}if(P.value.has(e.id)){try{await h.process.cancelShortcut.mutate({agentId:i,processId:a,shortcutId:e.id})}catch{}return}P.value=new Set([...P.value,e.id]);try{await h.process.executeShortcut.mutate({agentId:i,processId:a,shortcut:e})}catch(e){c.add({severity:`error`,summary:t(`serviceTerminal.shortcutFailed`),detail:e.message??t(`serviceTerminal.shortcutFailed`),life:5e3})}finally{let t=new Set(P.value);t.delete(e.id),P.value=t}}let I=D(``),L=D(new Set),ae=H(()=>L.value.size>0),oe=D(null),z=D([]),ce=D(-1),le=`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(`,`),B=D([]);function de(e){let t=e.query.toLowerCase().trim();if(!t||!I.value.trim()){B.value=[];return}let n=[...z.value.slice().reverse(),...le],r=new Set;B.value=n.filter(e=>r.has(e)?!1:(r.add(e),e.toLowerCase().includes(t))).slice(0,10)}function fe(){try{let e=localStorage.getItem(Ft+n.service.id);e&&(z.value=JSON.parse(e))}catch{z.value=[]}}function pe(){try{localStorage.setItem(Ft+n.service.id,JSON.stringify(z.value))}catch{}}function he(e){z.value[z.value.length-1]!==e&&(z.value=[...z.value,e],z.value.length>It&&(z.value=z.value.slice(-It)),pe())}async function ge(){let e=r.value?.agentId??n.service.agentId,t=r.value?.id??n.service.id;if(e)try{await h.process.cancelAdHocCommand.mutate({agentId:e,processId:t})}catch{}}async function W(){if(!I.value.trim())return;let e=r.value?.agentId??n.service.agentId,i=r.value?.id??n.service.id;if(!e){c.add({severity:`warn`,summary:t(`serviceTerminal.noAgent`),detail:t(`serviceTerminal.noAgentDesc`),life:3e3});return}let a=Fe(),o=I.value.trim();he(o),I.value=``,B.value=[],ce.value=-1,L.value=new Set([...L.value,a]);try{await h.process.executeAdHocCommand.mutate({agentId:e,processId:i,command:o,commandId:a})}catch(e){c.add({severity:`error`,summary:t(`serviceTerminal.commandFailed`),detail:e.message??t(`serviceTerminal.commandFailed`),life:5e3})}finally{let e=new Set(L.value);e.delete(a),L.value=e,ye(()=>{document.querySelector(`.service-terminal__input`)?.focus()})}}function _e(e){if(e.key===`Enter`&&!e.shiftKey){e.preventDefault(),W();return}if(e.key===`ArrowUp`){if(e.preventDefault(),z.value.length===0)return;ce.value===-1?ce.value=z.value.length-1:ce.value>0&&ce.value--,I.value=z.value[ce.value]||``}else if(e.key===`ArrowDown`){if(e.preventDefault(),ce.value===-1)return;ce.value<z.value.length-1?(ce.value++,I.value=z.value[ce.value]||``):(ce.value=-1,I.value=``)}}function ve(){if(l.value.length===0)return;let e=l.value.map(e=>`[${new Date(e.timestamp).toISOString()}] ${e.level.toUpperCase().padEnd(5)} ${e.message}`),t=new Blob([e.join(`
1
+ import{$i as e,An as t,At as n,Ca as r,D as i,Dt as a,Ea as o,Fi as s,Ft as c,Gt as l,H as u,Hn as d,J as f,Ji as p,K as m,Kt as h,Li as g,Ln as _,Mn as v,Mt as y,Ni as b,Nn as x,Nt as S,Q as C,Qi as w,Qr as T,Rn as ee,Y as te,Zr as E,_a as D,_i as ne,_n as re,aa as O,ai as k,bn as A,di as j,dn as M,ei as N,en as P,fa as ie,fi as F,fn as I,gn as L,ha as ae,hi as oe,ii as R,it as z,ji as se,jt as ce,l as le,mi as B,na as ue,nt as de,oi as V,q as fe,qr as pe,ri as H,rn as me,si as U,st as he,tt as ge,ua as W,un as _e,vn as ve,wi as ye}from"./index-a6DAapTb.js";import"./cloud-session-CzYQ65k8.js";import"./src-DWvNj-EG.js";import{t as be}from"./message-CxPw04rG.js";import"./ProcessControls-BPQXGKib.js";import{t as xe}from"./ServiceControlsBar-BH1ZEFkK.js";import{n as Se,t as Ce}from"./column-CVuKYYbZ.js";import{n as we}from"./plus-BPT_7GGk.js";import{t as Te}from"./checkbox-CfwNXlF_.js";import{t as Ee}from"./toggleswitch-DcDrXRKn.js";import{a as De,i as Oe,n as ke,r as Ae,t as je}from"./tabpanel-Bkt-f7d6.js";import{n as Me,t as Ne}from"./VariablesTable-CSuAPeF-.js";import{t as Pe}from"./autocomplete-BakcEoGP.js";import{t as Fe}from"./uuid-CXjA27vZ.js";import"./src-D0LXRijj.js";import"./w3c-keyname-2TLn3EjF.js";import"./SendToChatDialog-o4y1Q-OD.js";import{n as Ie,t as Le}from"./ProcessMetrics-D7L708Em.js";import{t as Re}from"./LogViewer-BYNRWqlP.js";import{t as ze}from"./divider-BrO5nkpd.js";import{t as Be}from"./settings.store-Dte8TdJb.js";import{t as Ve}from"./WikiView-DxPrGyFy.js";var He={key:0,class:`log-details`},Ue={class:`log-details__section`},We={class:`log-details__label`},Ge={class:`log-details__value log-details__value--box`},Ke={class:`log-details__section`},qe={class:`log-details__label`},Je={class:`log-details__value log-details__value--box log-details__value--code`},Ye={class:`log-details__section`},Xe={class:`log-details__label`},Ze={class:`log-details__value log-details__value--box`},Qe={class:`log-details__process`},$e={class:`log-details__section`},et={class:`log-details__label`},tt={class:`log-details__value log-details__value--box`},nt={key:0,class:`log-details__section`},rt={class:`log-details__label`},it={class:`log-details__value log-details__value--box log-details__value--code`,"data-testid":`log-details-cwd`},at={class:`log-details__section`},ot={class:`log-details__label`},st={class:`log-details__value log-details__value--box`},ct={key:1,class:`log-details__section`},lt={class:`log-details__label`},ut={class:`log-details__value log-details__value--box`},dt={key:2,class:`log-details__section`},ft={class:`log-details__label`},pt={class:`log-details__value log-details__value--box log-details__value--code`},mt=L(B({__name:`LogDetailsDrawer`,props:{visible:{type:Boolean},log:{}},emits:[`update:visible`,`view-process`],setup(e,{emit:t}){let n=e,{t:r}=d(),i=le(),a=t,c=H(()=>{if(!n.log)return``;let e=new Date(n.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`)}`}),l=H(()=>n.log?n.log.level.charAt(0).toUpperCase()+n.log.level.slice(1):``),u=H(()=>!n.log||n.log.pid==null?r(`logDetails.notAvailable`):String(n.log.pid)),f=H(()=>n.log?i.getByService(n.log.processId)[0]?.cwd??null:null);function p(){n.log&&a(`view-process`,n.log.processId)}function m(){a(`update:visible`,!1)}return(t,n)=>(s(),k(o(re),{visible:e.visible,position:`right`,header:o(r)(`logDetails.header`),style:{width:`440px`},"onUpdate:visible":m},{default:w(()=>[e.log?(s(),U(`div`,He,[R(`div`,Ue,[R(`div`,We,O(o(r)(`logDetails.type`)),1),R(`div`,Ge,O(l.value),1)]),R(`div`,Ke,[R(`div`,qe,O(o(r)(`logDetails.rawMessage`)),1),R(`div`,Je,O(e.log.raw),1)]),R(`div`,Ye,[R(`div`,Xe,O(o(r)(`logDetails.serviceId`)),1),R(`div`,Ze,[R(`div`,Qe,[R(`span`,null,O(e.log.processId),1),F(o(A),{label:o(r)(`logDetails.viewProcess`),icon:`pi pi-external-link`,size:`small`,outlined:``,onClick:p},null,8,[`label`])])])]),R(`div`,$e,[R(`div`,et,O(o(r)(`logDetails.pid`)),1),R(`div`,tt,O(u.value),1)]),f.value?(s(),U(`div`,nt,[R(`div`,rt,O(o(r)(`logDetails.cwd`)),1),R(`div`,it,O(f.value),1)])):V(``,!0),R(`div`,at,[R(`div`,ot,O(o(r)(`logDetails.timestamp`)),1),R(`div`,st,O(c.value),1)]),e.log.stream?(s(),U(`div`,ct,[R(`div`,lt,O(o(r)(`logDetails.stream`)),1),R(`div`,ut,O(e.log.stream),1)])):V(``,!0),e.log.metadata&&Object.keys(e.log.metadata).length>0?(s(),U(`div`,dt,[R(`div`,ft,O(o(r)(`logDetails.metadata`)),1),R(`div`,pt,O(JSON.stringify(e.log.metadata,null,2)),1)])):V(``,!0)])):V(``,!0)]),_:1},8,[`visible`,`header`]))}}),[[`__scopeId`,`data-v-4e3f7abe`]]),ht=500,gt=5,_t=z;function vt(e){return e+Math.random()*e*.3}function yt(e,t){let n=D([]),r=D(!1),i=null,a=0,o=null,s=l(()=>{a=0,r.value||w()}),c=[],u=null,d=D(0),f=D(0),m=0,g=0,_=null;function v(){_||=setInterval(()=>{d.value=m,f.value=g,m=0,g=0},1e3)}function y(){_&&=(clearInterval(_),null),d.value=0,f.value=0,m=0,g=0}function x(){if(u=null,c.length===0)return;let e=c;c=[],g+=e.length;let t=[...n.value,...e];t.length>ht&&(t=t.slice(t.length-ht)),n.value=t}function S(){!e.value||!t.value||(r.value=!0,i=h.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=[],c=[];return}m+=t.length,c.push(...t),u===null&&(u=requestAnimationFrame(x))},onError(e){console.error(`[useLogStream] Subscription error:`,e.message),r.value=!1,i=null,C()}}))}function C(){if(a>=gt){console.warn(`[useLogStream] Max retries (${gt}) reached`),P(`disconnected`);return}P(`reconnecting`);let e=vt(_t*2**a);a++,o=setTimeout(()=>{o=null,w()},e)}async function w(){if(!r.value&&!(!e.value||!t.value)){a=0;try{let r=await h.process.logs.query({agentId:e.value,processId:t.value});r.length>ht&&(r=r.slice(r.length-ht)),n.value=r,P(`connected`)}catch{}S()}}function T(){o&&=(clearTimeout(o),null),u!==null&&(cancelAnimationFrame(u),u=null),c=[],y(),i&&=(i.unsubscribe(),null),r.value=!1,a=0,n.value=[]}return p([e,t],([e,t],[n,i])=>{(e!==n||t!==i)&&(r.value&&T(),w())}),b(()=>{s(),T()}),{logs:n,isStreaming:r,start:w,stop:T,receivedPerSec:d,flushedPerSec:f,startStats:v,stopStats:y}}var bt={class:`service-terminal__toolbar`},xt={class:`service-terminal__toolbar-left`},St={key:0,class:`pid-option`},Ct={key:1,class:`pid-option`},wt={key:0,class:`pi pi-circle-fill pid-status-icon pid-status-icon--active`,style:{"margin-right":`0.5rem`}},Tt={key:1,class:`pi pi-circle-fill pid-status-icon pid-status-icon--stopped`,style:{"margin-right":`0.5rem`}},Et={class:`pid-option`},Dt={key:0,class:`pi pi-list`,style:{"margin-right":`0.5rem`}},Ot=[`title`],kt=[`title`],At={class:`service-terminal__toolbar-right`},jt={class:`service-terminal__content`,"data-testid":`service-terminal-content`},Mt={key:1,class:`service-terminal__shortcuts`},Nt={class:`service-terminal__command-input`},Pt={class:`service-terminal__bottom`},Ft=`runeya_command_history_`,It=50,Lt=L(B({__name:`ServiceTerminal`,props:{service:{},processes:{}},setup(e){let{t}=d(),n=e,r=H(()=>n.processes.find(e=>e.state===`running`||e.state===`starting`)??n.processes[0]??null),i=H(()=>r.value?.agentId??``),a=H(()=>r.value?.id??``),c=ee(),{logs:l,isStreaming:u,start:f,stop:m,receivedPerSec:_,flushedPerSec:v,startStats:y,stopStats:x}=yt(i,a),S=D(!1);p(S,e=>{e?y():x()});function C(e){e.ctrlKey&&e.shiftKey&&(e.key===`*`||e.key===`µ`)&&(e.preventDefault(),S.value=!S.value)}let T=H(()=>{let e=new Map;return l.value.forEach(t=>{if(t.pid!=null){let r=e.get(t.pid);if(r)r.lastSeen=new Date(Math.max(r.lastSeen.getTime(),new Date(t.timestamp).getTime())),r.logCount++;else{let r=n.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:!!r})}}}),Array.from(e.values()).sort((e,t)=>t.lastSeen.getTime()-e.lastSeen.getTime())}),te=H(()=>Oe.value===`all`?l.value:l.value.filter(e=>e.pid===Oe.value)),E=H(()=>T.value.filter(e=>e.isActive).length),ne=H(()=>{let e=[{label:t(`serviceTerminal.allProcesses`),value:`all`,badge:E.value>0?`${E.value} ${t(`serviceTerminal.active`)}`:void 0,isActive:void 0}];return T.value.forEach(({pid:t,logCount:n,isActive:r})=>{e.push({label:`PID: ${t}`,value:t,badge:`${n} logs`,isActive:r})}),e});H(()=>n.processes.filter(e=>e.state===`running`).length);async function re(){if(r.value)try{await h.process.clearLogBuffer.mutate({agentId:r.value.agentId,processId:r.value.id}),l.value=[]}catch(e){c.add({severity:`error`,summary:t(`serviceTerminal.error`),detail:e.message??t(`serviceTerminal.failedToClearLogs`),life:5e3})}}let j=H(()=>n.service.shortcuts??[]),P=D(new Set);async function ie(e){let i=r.value?.agentId??n.service.agentId,a=r.value?.id??n.service.id;if(!i){c.add({severity:`warn`,summary:t(`serviceTerminal.noAgent`),detail:t(`serviceTerminal.noAgentDesc`),life:3e3});return}if(P.value.has(e.id)){try{await h.process.cancelShortcut.mutate({agentId:i,processId:a,shortcutId:e.id})}catch{}return}P.value=new Set([...P.value,e.id]);try{await h.process.executeShortcut.mutate({agentId:i,processId:a,shortcut:e})}catch(e){c.add({severity:`error`,summary:t(`serviceTerminal.shortcutFailed`),detail:e.message??t(`serviceTerminal.shortcutFailed`),life:5e3})}finally{let t=new Set(P.value);t.delete(e.id),P.value=t}}let I=D(``),L=D(new Set),ae=H(()=>L.value.size>0),oe=D(null),z=D([]),ce=D(-1),le=`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(`,`),B=D([]);function de(e){let t=e.query.toLowerCase().trim();if(!t||!I.value.trim()){B.value=[];return}let n=[...z.value.slice().reverse(),...le],r=new Set;B.value=n.filter(e=>r.has(e)?!1:(r.add(e),e.toLowerCase().includes(t))).slice(0,10)}function fe(){try{let e=localStorage.getItem(Ft+n.service.id);e&&(z.value=JSON.parse(e))}catch{z.value=[]}}function pe(){try{localStorage.setItem(Ft+n.service.id,JSON.stringify(z.value))}catch{}}function he(e){z.value[z.value.length-1]!==e&&(z.value=[...z.value,e],z.value.length>It&&(z.value=z.value.slice(-It)),pe())}async function ge(){let e=r.value?.agentId??n.service.agentId,t=r.value?.id??n.service.id;if(e)try{await h.process.cancelAdHocCommand.mutate({agentId:e,processId:t})}catch{}}async function W(){if(!I.value.trim())return;let e=r.value?.agentId??n.service.agentId,i=r.value?.id??n.service.id;if(!e){c.add({severity:`warn`,summary:t(`serviceTerminal.noAgent`),detail:t(`serviceTerminal.noAgentDesc`),life:3e3});return}let a=Fe(),o=I.value.trim();he(o),I.value=``,B.value=[],ce.value=-1,L.value=new Set([...L.value,a]);try{await h.process.executeAdHocCommand.mutate({agentId:e,processId:i,command:o,commandId:a})}catch(e){c.add({severity:`error`,summary:t(`serviceTerminal.commandFailed`),detail:e.message??t(`serviceTerminal.commandFailed`),life:5e3})}finally{let e=new Set(L.value);e.delete(a),L.value=e,ye(()=>{document.querySelector(`.service-terminal__input`)?.focus()})}}function _e(e){if(e.key===`Enter`&&!e.shiftKey){e.preventDefault(),W();return}if(e.key===`ArrowUp`){if(e.preventDefault(),z.value.length===0)return;ce.value===-1?ce.value=z.value.length-1:ce.value>0&&ce.value--,I.value=z.value[ce.value]||``}else if(e.key===`ArrowDown`){if(e.preventDefault(),ce.value===-1)return;ce.value<z.value.length-1?(ce.value++,I.value=z.value[ce.value]||``):(ce.value=-1,I.value=``)}}function ve(){if(l.value.length===0)return;let e=l.value.map(e=>`[${new Date(e.timestamp).toISOString()}] ${e.level.toUpperCase().padEnd(5)} ${e.message}`),t=new Blob([e.join(`
2
2
  `)],{type:`text/plain`}),r=URL.createObjectURL(t),i=document.createElement(`a`);i.href=r,i.download=`${n.service.name}-${new Date().toISOString().slice(0,19).replaceAll(`:`,`-`)}.log`,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(r)}let be=D(0),Se=0,Ce=null,we=null;p(r,e=>{if(!(e&&(e.state===`running`||e.state===`starting`))){Ce&&=(clearInterval(Ce),null),we=null,be.value=e?.uptime??0;return}let t=e.uptime??0;e.id!==we&&(Ce&&=(clearInterval(Ce),null),we=e.id,Se=e.startedAt?new Date(e.startedAt).getTime():Date.now()-t,be.value=Date.now()-Se,Ce=setInterval(()=>{be.value=Date.now()-Se},1e3))},{immediate:!0});let Te=D(!0),Ee=D(null),De=D(!1),Oe=D(`all`),ke=D(!1);function Ae(){ke.value=!ke.value}se(()=>{fe(),r.value&&f(),window.addEventListener(`keydown`,C)}),b(()=>{m(),window.removeEventListener(`keydown`,C),Ce&&clearInterval(Ce)});function je(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 Me(e){Ee.value=e,De.value=!0}function Ne(e){De.value=!1,c.add({severity:`info`,summary:`Process`,detail:`Process ID: ${e}`,life:3e3})}return(i,a)=>(s(),U(`div`,{class:ue([`service-terminal`,{"service-terminal--fullscreen":ke.value}]),"data-testid":`service-terminal`},[ke.value?(s(),k(xe,{key:0,service:e.service,processes:e.processes},null,8,[`service`,`processes`])):V(``,!0),R(`div`,bt,[R(`div`,xt,[F(o(A),{label:o(t)(`serviceTerminal.logs`),severity:Te.value?`primary`:`secondary`,text:``,size:`small`,onClick:a[0]||=e=>Te.value=!0},null,8,[`label`,`severity`]),F(o(me),{modelValue:Oe.value,"onUpdate:modelValue":a[1]||=e=>Oe.value=e,options:ne.value,"option-label":`label`,"option-value":`value`,class:`service-terminal__pid-selector`},{value:w(e=>[e.value===`all`?(s(),U(`div`,St,[a[5]||=R(`i`,{class:`pi pi-list`,style:{"margin-right":`0.5rem`}},null,-1),R(`span`,null,O(o(t)(`serviceTerminal.allProcesses`)),1),E.value>0?(s(),k(o(M),{key:0,value:`${E.value} ${o(t)(`serviceTerminal.active`)}`,severity:`secondary`,class:`pid-badge`},null,8,[`value`])):V(``,!0)])):(s(),U(`div`,Ct,[ne.value.find(t=>t.value===e.value)?.isActive?(s(),U(`i`,wt)):(s(),U(`i`,Tt)),R(`span`,null,`PID: `+O(e.value),1)]))]),option:w(e=>[R(`div`,Et,[e.option.value===`all`?(s(),U(`i`,Dt)):e.option.isActive?(s(),U(`i`,{key:1,class:`pi pi-circle-fill pid-status-icon pid-status-icon--active`,title:o(t)(`serviceTerminal.running`)},null,8,Ot)):(s(),U(`i`,{key:2,class:`pi pi-circle-fill pid-status-icon pid-status-icon--stopped`,title:o(t)(`serviceTerminal.stopped`)},null,8,kt)),R(`span`,null,O(e.option.label),1),e.option.badge?(s(),k(o(M),{key:3,value:e.option.badge,severity:`secondary`,class:`pid-badge`},null,8,[`value`])):V(``,!0)])]),_:1},8,[`modelValue`,`options`])]),R(`div`,At,[F(o(A),{icon:ke.value?`pi pi-window-minimize`:`pi pi-window-maximize`,text:``,rounded:``,size:`small`,title:ke.value?o(t)(`serviceTerminal.exitFullscreen`):o(t)(`serviceTerminal.fullscreen`),onClick:Ae},null,8,[`icon`,`title`]),F(o(A),{icon:`pi pi-download`,text:``,rounded:``,size:`small`,title:o(t)(`serviceTerminal.downloadLogs`),disabled:o(l).length===0,onClick:ve},null,8,[`title`,`disabled`]),F(o(A),{icon:`pi pi-trash`,text:``,rounded:``,size:`small`,title:o(t)(`serviceTerminal.clearLogs`),disabled:o(l).length===0,onClick:re},null,8,[`title`,`disabled`])])]),R(`div`,jt,[F(Re,{logs:te.value,loading:!1,"received-per-sec":o(_),"flushed-per-sec":o(v),"show-stats":S.value,"service-label":n.service.label||n.service.name,onLogClick:Me},null,8,[`logs`,`received-per-sec`,`flushed-per-sec`,`show-stats`,`service-label`])]),j.value.length>0?(s(),U(`div`,Mt,[(s(!0),U(N,null,g(j.value,e=>(s(),k(o(A),{key:e.id,label:e.label||e.command,"data-shortcut-id":e.id,class:`shortcut-badge`,icon:P.value.has(e.id)?`pi pi-stop`:`pi pi-play`,size:`small`,outlined:!P.value.has(e.id),severity:P.value.has(e.id)?`danger`:void 0,onClick:t=>ie(e)},null,8,[`label`,`data-shortcut-id`,`icon`,`outlined`,`severity`,`onClick`]))),128))])):V(``,!0),R(`div`,Nt,[a[6]||=R(`span`,{class:`service-terminal__prompt`,"data-testid":`terminal-prompt`},`>`,-1),F(o(Pe),{ref_key:`adHocCommandInput`,ref:oe,modelValue:I.value,"onUpdate:modelValue":a[2]||=e=>I.value=e,suggestions:B.value,class:`service-terminal__autocomplete`,"input-class":`service-terminal__input`,placeholder:o(t)(`serviceTerminal.enterCommand`),"aria-label":o(t)(`serviceTerminal.enterCommand`),disabled:!(r.value?.agentId??n.service.agentId),"data-testid":`terminal-command-input`,onComplete:de,onKeydown:_e},null,8,[`modelValue`,`suggestions`,`placeholder`,`aria-label`,`disabled`]),F(o(A),{icon:ae.value?`pi pi-stop`:`pi pi-play`,severity:ae.value?`danger`:void 0,size:`small`,"data-testid":`terminal-run-btn`,disabled:!(r.value?.agentId??n.service.agentId)||!I.value.trim()&&!ae.value,onClick:a[3]||=e=>ae.value?ge():W()},null,8,[`icon`,`severity`,`disabled`])]),R(`div`,Pt,[r.value?(s(),k(o(M),{key:0,icon:`pi pi-server`,value:r.value.agentId.slice(0,8),severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):V(``,!0),e.service.cwd?(s(),k(o(M),{key:1,icon:`pi pi-folder`,value:e.service.cwd,severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):V(``,!0),r.value&&(r.value.state===`running`||r.value.state===`starting`)?(s(),k(o(M),{key:2,icon:`pi pi-clock`,value:je(be.value/1e3),severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):V(``,!0)]),F(mt,{visible:De.value,"onUpdate:visible":a[4]||=e=>De.value=e,log:Ee.value,onViewProcess:Ne},null,8,[`visible`,`log`])],2))}}),[[`__scopeId`,`data-v-8ce2178d`]]),Rt=5,zt=z;function Bt(e){return e+Math.random()*e*.3}function Vt(e,t){let n=D(null),r=D(!1),i=D(!1),a=null,o=0,s=null;async function c(){if(!r.value){i.value=!0;try{n.value=await h.process.metrics.query({agentId:e.value,processId:t.value})}catch(e){console.error(`Failed to fetch initial metrics:`,y(e))}finally{i.value=!1}l()}}function l(){r.value=!0,a=h.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>=Rt){console.warn(`Metrics stream: max retries (${Rt}) reached, giving up`),P(`disconnected`);return}P(`reconnecting`);let e=Bt(zt*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 p([e,t],([e,t],[n,i])=>{(e!==n||t!==i)&&r.value&&(d(),c())}),b(()=>{d()}),{metrics:n,isStreaming:r,isLoading:i,start:c,stop:d}}var Ht={class:`service-metrics`,"data-testid":`service-metrics`},Ut={key:1,class:`service-metrics__skeleton`},Wt={class:`metric-skeleton`},Gt={class:`metric-skeleton`},Kt={key:2,class:`service-metrics__no-data`},qt={key:1,class:`service-metrics__no-process`},Jt=L(B({__name:`ServiceMetrics`,props:{service:{},processes:{}},setup(e){let t=e,n=H(()=>t.processes.find(e=>e.state===`running`||e.state===`starting`)??t.processes[0]??null),r=H(()=>n.value?.agentId??``),i=H(()=>n.value?.id??``),{t:a}=d(),{metrics:c,isLoading:l,start:u,stop:f}=Vt(r,i);return se(()=>{n.value&&u()}),b(()=>{f()}),(e,t)=>(s(),U(`div`,Ht,[n.value?(s(),U(N,{key:0},[o(c)?(s(),k(Le,{key:0,cpu:o(c).cpu,memory:o(c).memory},null,8,[`cpu`,`memory`])):o(l)?(s(),U(`div`,Ut,[R(`div`,Wt,[F(o(Ie),{width:`4rem`,height:`0.75rem`,class:`mb-2`}),F(o(Ie),{width:`3rem`,height:`1.75rem`,class:`mb-3`}),F(o(Ie),{width:`100%`,height:`6px`,"border-radius":`4px`})]),R(`div`,Gt,[F(o(Ie),{width:`4rem`,height:`0.75rem`,class:`mb-2`}),F(o(Ie),{width:`3rem`,height:`1.75rem`,class:`mb-3`}),F(o(Ie),{width:`6rem`,height:`0.65rem`})])])):(s(),U(`div`,Kt,O(o(a)(`serviceMetrics.noData`)),1))],64)):(s(),U(`div`,qt,[t[0]||=R(`i`,{class:`pi pi-info-circle`},null,-1),R(`span`,null,O(o(a)(`serviceMetrics.notRunning`)),1)]))]))}}),[[`__scopeId`,`data-v-94f5993b`]]),Yt=`runeya:debug`,Xt=D(localStorage.getItem(Yt)===`true`);function Zt(){function e(){Xt.value=!Xt.value,localStorage.setItem(Yt,String(Xt.value))}return{isDebug:Xt,toggle:e}}var Qt={class:`config-general`},$t={class:`config-card`},en={class:`config-card__header`},tn={class:`config-card`},nn={class:`config-card__header`},rn={class:`config-card__hint`},an={class:`config-card`},on={class:`config-card`},sn={class:`config-card__header`},cn={class:`config-card__hint`},ln={class:`config-card`},un={class:`config-card__header`},dn={class:`config-card__hint`},fn={class:`config-card`},pn={class:`config-card__header`},mn={class:`config-card__hint`},hn={class:`config-card`},gn={class:`config-card__header`},_n={class:`config-card__hint`},vn={class:`config-card`},yn={class:`config-card__header`},bn={class:`config-card__hint`},xn={class:`config-card`},Sn={class:`config-card__header`},Cn={class:`config-card__hint`},wn={class:`config-card__hint`},Tn={class:`config-card`},En={class:`config-card__header`},Dn={class:`config-card__hint`},On={class:`config-meta`},kn={class:`config-card config-card--inline`},An={class:`config-card__header`},jn={class:`config-card config-card--inline`},Mn={class:`config-card__header`},Nn=L(B({__name:`ServiceConfigGeneral`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let{t:n}=d(),r=ge(),i=H(()=>{let e=new Set;for(let t of r.services)for(let n of t.groups??[])e.add(n);return[...e].sort((e,t)=>e.localeCompare(t))}),a=D([]);function c(e){let t=e.query.trim().toLowerCase(),n=new Set(h.value.groups);a.value=i.value.filter(e=>!n.has(e)&&(!t||e.toLowerCase().includes(t)))}function l(e){let t=e.target,n=t.value.trim();n&&(h.value.groups.includes(n)||(h.value.groups=[...h.value.groups,n],C()),t.value=``,a.value=[])}let u=e,f=t;function m(e){return Object.entries(e??{}).map(([e,t])=>({key:e,value:t}))}let h=D({name:u.service.name,cwd:u.service.cwd??``,ports:(u.service.ports??[]).map(String),groups:[...u.service.groups??[]],description:u.service.description??``,docsPath:u.service.docsPath??``,url:u.service.url??``,openapiUrl:u.service.openapiUrl??``,gitRemote:u.service.git?.remote??``,gitHome:u.service.git?.home??``,autoRestart:u.service.autoRestart,clearLogsOnStart:u.service.clearLogsOnStart??!1}),_=D(m(u.service.meta));p(()=>u.service,e=>{h.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},_.value=m(e.meta)});function v(){_.value=[..._.value,{key:``,value:``}]}function y(e){_.value=_.value.filter((t,n)=>n!==e)}function b(e,t,n){_.value=_.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function x(){let e={};for(let{key:t,value:n}of _.value){let r=t.trim();r&&(e[r]=n)}return{name:h.value.name,cwd:h.value.cwd||null,ports:h.value.ports.map(Number).filter(e=>e>0&&e<=65535),groups:h.value.groups,description:h.value.description,docsPath:h.value.docsPath??``,url:h.value.url,openapiUrl:h.value.openapiUrl,git:h.value.gitRemote||h.value.gitHome?{remote:h.value.gitRemote||void 0,home:h.value.gitHome||void 0}:null,autoRestart:h.value.autoRestart,clearLogsOnStart:h.value.clearLogsOnStart,meta:Object.keys(e).length>0?e:null}}let S=null;function C(){S&&clearTimeout(S),S=setTimeout(()=>{f(`save`,x()),S=null},150)}return(e,t)=>(s(),U(`div`,Qt,[R(`div`,$t,[R(`div`,en,[t[12]||=R(`i`,{class:`pi pi-tag`},null,-1),R(`span`,null,O(o(n)(`serviceConfigGeneral.name`)),1)]),F(o(I),{modelValue:h.value.name,"onUpdate:modelValue":t[0]||=e=>h.value.name=e,class:`config-card__input`,onBlur:C,onKeydown:E(T(C,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),R(`div`,tn,[R(`div`,nn,[t[13]||=R(`i`,{class:`pi pi-folder`},null,-1),R(`span`,null,O(o(n)(`serviceConfigGeneral.workingDirectory`)),1)]),F(o(I),{modelValue:h.value.cwd,"onUpdate:modelValue":t[1]||=e=>h.value.cwd=e,class:`config-card__input`,placeholder:`.`,onBlur:C,onKeydown:E(T(C,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),R(`small`,rn,O(o(n)(`serviceConfigGeneral.cwdHint`)),1)]),R(`div`,an,[t[14]||=R(`div`,{class:`config-card__header`},[R(`i`,{class:`pi pi-file-edit`}),R(`span`,null,`Dossier de documentation (wiki)`)],-1),F(o(I),{modelValue:h.value.docsPath,"onUpdate:modelValue":t[2]||=e=>h.value.docsPath=e,class:`config-card__input`,placeholder:`(défaut : même que cwd)`,onBlur:C,onKeydown:E(T(C,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),t[15]||=R(`small`,{class:`config-card__hint`},[j(` Chemin relatif au cwd du service (ex. `),R(`code`,null,`docs`),j(`) ou absolu. Si vide, utilise le cwd. `)],-1)]),R(`div`,on,[R(`div`,sn,[t[16]||=R(`i`,{class:`pi pi-globe`},null,-1),R(`span`,null,O(o(n)(`serviceConfigGeneral.ports`)),1)]),F(o(Pe),{modelValue:h.value.ports,"onUpdate:modelValue":t[3]||=e=>h.value.ports=e,multiple:``,typeahead:!1,class:`config-card__input`,placeholder:o(n)(`serviceConfigGeneral.portsPlaceholder`),onChange:C},null,8,[`modelValue`,`placeholder`]),R(`small`,cn,O(o(n)(`serviceConfigGeneral.portsHint`)),1)]),R(`div`,ln,[R(`div`,un,[t[17]||=R(`i`,{class:`pi pi-th-large`},null,-1),R(`span`,null,O(o(n)(`serviceConfigGeneral.groups`)),1)]),F(o(Pe),{modelValue:h.value.groups,"onUpdate:modelValue":t[4]||=e=>h.value.groups=e,multiple:``,suggestions:a.value,"complete-on-focus":!0,class:`config-card__input`,placeholder:o(n)(`serviceConfigGeneral.groupsPlaceholder`),onComplete:c,onChange:C,onKeydown:E(l,[`enter`])},null,8,[`modelValue`,`suggestions`,`placeholder`]),R(`small`,dn,O(o(n)(`serviceConfigGeneral.groupsHint`)),1)]),R(`div`,fn,[R(`div`,pn,[t[18]||=R(`i`,{class:`pi pi-info-circle`},null,-1),R(`span`,null,O(o(n)(`serviceConfigGeneral.description`)),1)]),F(o(_e),{modelValue:h.value.description,"onUpdate:modelValue":t[5]||=e=>h.value.description=e,class:`config-card__input`,rows:2,onBlur:C},null,8,[`modelValue`]),R(`small`,mn,O(o(n)(`serviceConfigGeneral.descriptionHint`)),1)]),R(`div`,hn,[R(`div`,gn,[t[19]||=R(`i`,{class:`pi pi-external-link`},null,-1),R(`span`,null,O(o(n)(`serviceConfigGeneral.url`)),1)]),F(o(I),{modelValue:h.value.url,"onUpdate:modelValue":t[6]||=e=>h.value.url=e,class:`config-card__input`,placeholder:`https://...`,onBlur:C,onKeydown:E(T(C,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),R(`small`,_n,O(o(n)(`serviceConfigGeneral.urlHint`)),1)]),R(`div`,vn,[R(`div`,yn,[t[20]||=R(`i`,{class:`pi pi-book`},null,-1),R(`span`,null,O(o(n)(`serviceConfigGeneral.openapiUrl`)),1)]),F(o(I),{modelValue:h.value.openapiUrl,"onUpdate:modelValue":t[7]||=e=>h.value.openapiUrl=e,class:`config-card__input`,placeholder:`https://.../swagger.json`,onBlur:C,onKeydown:E(T(C,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),R(`small`,bn,O(o(n)(`serviceConfigGeneral.openapiUrlHint`)),1)]),R(`div`,xn,[R(`div`,Sn,[t[21]||=R(`i`,{class:`pi pi-github`},null,-1),R(`span`,null,O(o(n)(`serviceConfigGeneral.git`)),1)]),F(o(I),{modelValue:h.value.gitRemote,"onUpdate:modelValue":t[8]||=e=>h.value.gitRemote=e,class:`config-card__input`,placeholder:`git@github.com:org/repo.git`,onBlur:C,onKeydown:E(T(C,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),R(`small`,Cn,O(o(n)(`serviceConfigGeneral.gitRemoteHint`)),1),F(o(I),{modelValue:h.value.gitHome,"onUpdate:modelValue":t[9]||=e=>h.value.gitHome=e,class:`config-card__input`,style:{"margin-top":`0.5rem`},placeholder:`https://github.com/org/repo`,onBlur:C,onKeydown:E(T(C,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),R(`small`,wn,O(o(n)(`serviceConfigGeneral.gitHomeHint`)),1)]),R(`div`,Tn,[R(`div`,En,[t[22]||=R(`i`,{class:`pi pi-hashtag`},null,-1),R(`span`,null,O(o(n)(`serviceConfigGeneral.meta`)),1)]),R(`small`,Dn,O(o(n)(`serviceConfigGeneral.metaHint`)),1),R(`div`,On,[(s(!0),U(N,null,g(_.value,(e,t)=>(s(),U(`div`,{key:t,class:`config-meta__row`},[F(o(I),{"model-value":e.key,placeholder:o(n)(`serviceConfigGeneral.metaKeyPlaceholder`),class:`config-meta__input`,"onUpdate:modelValue":e=>b(t,`key`,e),onBlur:C,onKeydown:E(T(C,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),F(o(I),{"model-value":e.value,placeholder:o(n)(`serviceConfigGeneral.metaValuePlaceholder`),class:`config-meta__input config-meta__input--wide`,"onUpdate:modelValue":e=>b(t,`value`,e),onBlur:C,onKeydown:E(T(C,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),F(o(A),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:()=>{y(t),C()}},null,8,[`onClick`])]))),128)),F(o(A),{label:o(n)(`serviceConfigGeneral.addEntry`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,class:`config-meta__add`,onClick:v},null,8,[`label`])])]),R(`div`,kn,[R(`div`,An,[t[23]||=R(`i`,{class:`pi pi-refresh`},null,-1),R(`span`,null,O(o(n)(`serviceConfigGeneral.autoRestart`)),1)]),F(o(Ee),{modelValue:h.value.autoRestart,"onUpdate:modelValue":t[10]||=e=>h.value.autoRestart=e,onChange:C},null,8,[`modelValue`])]),R(`div`,jn,[R(`div`,Mn,[t[24]||=R(`i`,{class:`pi pi-trash`},null,-1),R(`span`,null,O(o(n)(`serviceConfigGeneral.clearLogs`)),1)]),F(o(Ee),{modelValue:h.value.clearLogsOnStart,"onUpdate:modelValue":t[11]||=e=>h.value.clearLogsOnStart=e,onChange:C},null,8,[`modelValue`])])]))}}),[[`__scopeId`,`data-v-e166143a`]]),Pn={class:`docker-config`},Fn={class:`docker-config__section`},In={for:`docker-mode-image`,class:`docker-config__section-title`},Ln={class:`docker-config__mode-toggle`},Rn={class:`docker-config__mode-option`},zn={class:`docker-config__mode-option`},Bn={key:0,class:`docker-config__section`},Vn={for:`docker-image`,class:`docker-config__label`},Hn={class:`docker-config__section`},Un={class:`docker-config__section`},Wn={for:`docker-build-context`,class:`docker-config__label`},Gn={class:`docker-config__section`},Kn={for:`docker-add-build-arg`,class:`docker-config__label`},qn={class:`docker-config__kv-list`},Jn={class:`docker-config__section`},Yn={for:`docker-target-stage`,class:`docker-config__label`},Xn={class:`docker-config__section`},Zn={for:`docker-user`,class:`docker-config__section-title`},Qn={class:`docker-config__section`},$n={for:`docker-user`,class:`docker-config__label`},er={class:`docker-config__section`},tr={for:`docker-network-mode`,class:`docker-config__label`},nr={key:2,class:`docker-config__section`},rr={for:`docker-add-port`,class:`docker-config__label`},ir={class:`docker-config__list`},ar={class:`docker-config__section`},or={for:`docker-add-volume`,class:`docker-config__label`},sr={class:`docker-config__checkbox-row`},cr={for:`mountRootpath`,class:`docker-config__checkbox-label`},lr={class:`docker-config__list`},ur={class:`docker-config__section`},dr={class:`docker-config__checkbox-row`},fr={for:`useNativeCommand`,class:`docker-config__checkbox-label`},pr={key:0,class:`docker-config__shell-row`},mr={for:`docker-native-shell`,class:`docker-config__label`},hr={class:`docker-config__hint`},gr={key:1,class:`docker-config__mode-toggle docker-config__mode-toggle--indented`},_r={class:`docker-config__mode-option`},vr={class:`docker-config__mode-option`},yr={class:`docker-config__section`},br={for:`docker-entrypoint`,class:`docker-config__label`},xr={class:`docker-config__section`},Sr={for:`docker-command`,class:`docker-config__label`},Cr={class:`docker-config__section`},wr={for:`docker-add-bootstrap`,class:`docker-config__section-title`},Tr={class:`docker-config__bootstrap-row`},Er={class:`docker-config__bootstrap-field`},Dr=[`for`],Or={class:`docker-config__bootstrap-field`},kr=[`for`],Ar={class:`docker-config__bootstrap-field docker-config__bootstrap-field--wide`},jr=[`for`],Mr={class:`docker-config__bootstrap-field`},Nr=[`for`],Pr={class:`docker-config__bootstrap-actions`},Fr={class:`docker-config__section`},Ir=L(B({__name:`ServiceConfigDocker`,props:{service:{}},emits:[`save`],setup(t,{emit:n}){let{t:r}=d(),a=t,c=n,l=a.service.dockerConfig??{},u=D(l.dockerfile?`build`:`image`),f=D(l.image??``),p=D(l.dockerfile??``),m=D(l.buildContext??``),h=D(Object.entries(l.buildArgs??{}).map(([e,t])=>({key:e,value:t}))),_=D(l.targetStage??``),v=D(l.networkMode??`host`),y=D([...l.ports??[]]),b=D([...l.volumes??[]]),x=D(l.mountRootpath??!1),S=D(l.entrypoint??``),C=D(l.command??``),ee=D(l.user??``),te=D(l.useNativeCommand??!1),ne=D(l.nativeCommandMode??`isolated`),re=D(l.nativeShell??`sh`),k=[{label:`sh (POSIX)`,value:`sh`},{label:`bash`,value:`bash`},{label:`zsh`,value:`zsh`},{label:`ash (Alpine)`,value:`ash`}],M=D([...l.bootstrapCommands??[]]),P=D(!1),ie=[{label:`Host (--network host)`,value:`host`},{label:`Bridge`,value:`bridge`}];function L(){h.value=[...h.value,{key:``,value:``}]}function ae(e){h.value=h.value.filter((t,n)=>n!==e)}function oe(e,t,n){h.value=h.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function z(){y.value=[...y.value,``]}function se(e){y.value=y.value.filter((t,n)=>n!==e)}function ce(e,t){y.value=y.value.map((n,r)=>r===e?t:n)}function le(){b.value=[...b.value,``]}function B(e){b.value=b.value.filter((t,n)=>n!==e)}function ue(e,t){b.value=b.value.map((n,r)=>r===e?t:n)}function de(){M.value=[...M.value,{id:Fe(),label:`Bootstrap`,entrypoint:`/bin/sh`,command:`-c ""`,user:void 0}]}function fe(e){M.value=M.value.filter((t,n)=>n!==e)}function H(e,t,n){M.value=M.value.map((r,i)=>i===e?{...r,[t]:n===``?void 0:n}:r)}function he(e,t){let n=[...M.value],r=e+t;r<0||r>=n.length||([n[e],n[r]]=[n[r],n[e]],M.value=n)}let ge=null;function W(){ge&&clearTimeout(ge),ge=setTimeout(()=>{let e={};for(let{key:t,value:n}of h.value)t.trim()&&(e[t.trim()]=n);c(`save`,{image:u.value===`image`&&f.value||void 0,dockerfile:u.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:x.value,entrypoint:S.value||void 0,command:C.value||void 0,user:ee.value||void 0,useNativeCommand:te.value,nativeCommandMode:ne.value,nativeShell:re.value,bootstrapCommands:M.value}),ge=null},150)}function _e(e){fe(e),W()}function ye(e,t){he(e,t),W()}function be(e){ae(e),W()}function xe(e){se(e),W()}function Se(e){B(e),W()}return(t,n)=>(s(),U(`div`,Pn,[R(`div`,Fn,[R(`label`,In,O(o(r)(`serviceConfigDocker.imageSource`)),1),R(`div`,Ln,[R(`label`,Rn,[e(R(`input`,{id:`docker-mode-image`,"onUpdate:modelValue":n[0]||=e=>u.value=e,type:`radio`,value:`image`,class:`docker-config__radio`,onChange:W},null,544),[[pe,u.value]]),j(` `+O(o(r)(`serviceConfigDocker.pullImage`)),1)]),R(`label`,zn,[e(R(`input`,{"onUpdate:modelValue":n[1]||=e=>u.value=e,type:`radio`,value:`build`,class:`docker-config__radio`,onChange:W},null,544),[[pe,u.value]]),j(` `+O(o(r)(`serviceConfigDocker.buildDockerfile`)),1)])])]),u.value===`image`?(s(),U(`div`,Bn,[R(`label`,Vn,O(o(r)(`serviceConfigDocker.image`)),1),F(o(I),{id:`docker-image`,modelValue:f.value,"onUpdate:modelValue":n[2]||=e=>f.value=e,placeholder:o(r)(`serviceConfigDocker.imagePlaceholder`),class:`docker-config__input`,onBlur:W,onKeydown:E(T(W,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])):V(``,!0),u.value===`build`?(s(),U(N,{key:1},[R(`div`,Hn,[n[18]||=R(`label`,{for:`docker-dockerfile-btn`,class:`docker-config__label`},`Dockerfile`,-1),F(o(A),{id:`docker-dockerfile-btn`,label:o(r)(`serviceConfigDocker.editDockerfile`),icon:`pi pi-file-edit`,severity:`secondary`,outlined:``,size:`small`,onClick:n[3]||=e=>P.value=!0},null,8,[`label`]),F(o(ve),{visible:P.value,"onUpdate:visible":n[6]||=e=>P.value=e,header:o(r)(`serviceConfigDocker.editDockerfile`),modal:``,style:{width:`800px`}},{footer:w(()=>[F(o(A),{label:o(r)(`serviceConfigDocker.closeDockerfile`),icon:`pi pi-times`,onClick:n[5]||=()=>{P.value=!1,W()}},null,8,[`label`])]),default:w(()=>[F(i,{modelValue:p.value,"onUpdate:modelValue":n[4]||=e=>p.value=e,language:`dockerfile`,style:{height:`400px`}},null,8,[`modelValue`])]),_:1},8,[`visible`,`header`])]),R(`div`,Un,[R(`label`,Wn,O(o(r)(`serviceConfigDocker.buildContext`)),1),F(o(I),{id:`docker-build-context`,modelValue:m.value,"onUpdate:modelValue":n[7]||=e=>m.value=e,placeholder:`.`,class:`docker-config__input`,onBlur:W,onKeydown:E(T(W,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),R(`div`,Gn,[R(`label`,Kn,O(o(r)(`serviceConfigDocker.buildArgs`)),1),R(`div`,qn,[(s(!0),U(N,null,g(h.value,(e,t)=>(s(),U(`div`,{key:t,class:`docker-config__kv-row`},[F(o(I),{"model-value":e.key,placeholder:o(r)(`serviceConfigDocker.argNamePlaceholder`),class:`docker-config__kv-input`,"onUpdate:modelValue":e=>oe(t,`key`,e),onBlur:W,onKeydown:E(T(W,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),F(o(I),{"model-value":e.value,placeholder:o(r)(`serviceConfigDocker.argValuePlaceholder`),class:`docker-config__kv-input`,"onUpdate:modelValue":e=>oe(t,`value`,e),onBlur:W,onKeydown:E(T(W,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),F(o(A),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>be(t)},null,8,[`onClick`])]))),128)),F(o(A),{id:`docker-add-build-arg`,label:o(r)(`serviceConfigDocker.addBuildArg`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:L},null,8,[`label`])])]),R(`div`,Jn,[R(`label`,Yn,O(o(r)(`serviceConfigDocker.targetStage`)),1),F(o(I),{id:`docker-target-stage`,modelValue:_.value,"onUpdate:modelValue":n[8]||=e=>_.value=e,placeholder:o(r)(`serviceConfigDocker.targetStagePlaceholder`),class:`docker-config__input`,onBlur:W,onKeydown:E(T(W,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])],64)):V(``,!0),F(o(ze)),R(`div`,Xn,[R(`label`,Zn,O(o(r)(`serviceConfigDocker.runtimeConfig`)),1)]),R(`div`,Qn,[R(`label`,$n,O(o(r)(`serviceConfigDocker.userGroup`)),1),F(o(I),{id:`docker-user`,modelValue:ee.value,"onUpdate:modelValue":n[9]||=e=>ee.value=e,placeholder:o(r)(`serviceConfigDocker.userGroupHint`),class:`docker-config__input`,onBlur:W,onKeydown:E(T(W,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),R(`div`,er,[R(`label`,tr,O(o(r)(`serviceConfigDocker.networkMode`)),1),F(o(me),{"input-id":`docker-network-mode`,modelValue:v.value,"onUpdate:modelValue":n[10]||=e=>v.value=e,options:ie,"option-label":`label`,"option-value":`value`,class:`docker-config__select`,onChange:W},null,8,[`modelValue`])]),v.value===`bridge`?(s(),U(`div`,nr,[R(`label`,rr,O(o(r)(`serviceConfigDocker.portMappings`)),1),R(`div`,ir,[(s(!0),U(N,null,g(y.value,(e,t)=>(s(),U(`div`,{key:t,class:`docker-config__list-row`},[F(o(I),{"model-value":e,placeholder:o(r)(`serviceConfigDocker.portPlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>ce(t,e),onBlur:W,onKeydown:E(T(W,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),F(o(A),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>xe(t)},null,8,[`onClick`])]))),128)),F(o(A),{id:`docker-add-port`,label:o(r)(`serviceConfigDocker.addPort`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:z},null,8,[`label`])])])):V(``,!0),R(`div`,ar,[R(`label`,or,O(o(r)(`serviceConfigDocker.volumes`)),1),R(`div`,sr,[F(o(Te),{modelValue:x.value,"onUpdate:modelValue":n[11]||=e=>x.value=e,binary:!0,"input-id":`mountRootpath`,onChange:W},null,8,[`modelValue`]),R(`label`,cr,O(o(r)(`serviceConfigDocker.autoMount`)),1)]),R(`div`,lr,[(s(!0),U(N,null,g(b.value,(e,t)=>(s(),U(`div`,{key:t,class:`docker-config__list-row`},[F(o(I),{"model-value":e,placeholder:o(r)(`serviceConfigDocker.volumePlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>ue(t,e),onBlur:W,onKeydown:E(T(W,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),F(o(A),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>Se(t)},null,8,[`onClick`])]))),128)),F(o(A),{id:`docker-add-volume`,label:o(r)(`serviceConfigDocker.addVolume`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:le},null,8,[`label`])])]),F(o(ze)),R(`div`,ur,[R(`div`,dr,[F(o(Te),{modelValue:te.value,"onUpdate:modelValue":n[12]||=e=>te.value=e,binary:!0,"input-id":`useNativeCommand`,onChange:W},null,8,[`modelValue`]),R(`label`,fr,O(o(r)(`serviceConfigDocker.runNative`)),1)]),n[21]||=R(`span`,{class:`docker-config__hint`},` When enabled, the service command is executed directly inside the container (ignores CMD override below). `,-1),te.value?(s(),U(`div`,pr,[R(`label`,mr,O(o(r)(`serviceConfigDocker.shell`)),1),F(o(me),{"input-id":`docker-native-shell`,modelValue:re.value,"onUpdate:modelValue":n[13]||=e=>re.value=e,options:k,"option-label":`label`,"option-value":`value`,class:`docker-config__select docker-config__select--small`,editable:``,placeholder:o(r)(`serviceConfigDocker.shellPlaceholder`),onChange:W},null,8,[`modelValue`,`placeholder`]),R(`span`,hr,[j(O(o(r)(`serviceConfigDocker.shellHint`))+` (`,1),n[19]||=R(`code`,null,`shell -c '...'`,-1),n[20]||=j(`)`,-1)])])):V(``,!0),te.value?(s(),U(`div`,gr,[R(`label`,_r,[e(R(`input`,{"onUpdate:modelValue":n[14]||=e=>ne.value=e,type:`radio`,value:`isolated`,class:`docker-config__radio`,onChange:W},null,544),[[pe,ne.value]]),j(` `+O(o(r)(`serviceConfigDocker.isolated`)),1)]),R(`label`,vr,[e(R(`input`,{"onUpdate:modelValue":n[15]||=e=>ne.value=e,type:`radio`,value:`shared`,class:`docker-config__radio`,onChange:W},null,544),[[pe,ne.value]]),j(` `+O(o(r)(`serviceConfigDocker.shared`)),1)])])):V(``,!0)]),te.value?V(``,!0):(s(),U(N,{key:3},[n[22]||=R(`div`,{class:`docker-config__section`},[R(`label`,{for:`docker-entrypoint`,class:`docker-config__section-title`},`Override`)],-1),R(`div`,yr,[R(`label`,br,O(o(r)(`serviceConfigDocker.entrypoint`)),1),F(o(I),{id:`docker-entrypoint`,modelValue:S.value,"onUpdate:modelValue":n[16]||=e=>S.value=e,placeholder:o(r)(`serviceConfigDocker.entrypointPlaceholder`),class:`docker-config__input`,onBlur:W,onKeydown:E(T(W,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),R(`div`,xr,[R(`label`,Sr,O(o(r)(`serviceConfigDocker.cmdOverride`)),1),F(o(I),{id:`docker-command`,modelValue:C.value,"onUpdate:modelValue":n[17]||=e=>C.value=e,placeholder:o(r)(`serviceConfigDocker.cmdPlaceholder`),class:`docker-config__input`,onBlur:W,onKeydown:E(T(W,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])],64)),F(o(ze)),R(`div`,Cr,[R(`label`,wr,[j(O(o(r)(`serviceConfigDocker.bootstrapCommands`))+` `,1),n[23]||=R(`span`,{class:`docker-config__hint-inline`},` — run sequentially before the service starts`,-1)])]),(s(!0),U(N,null,g(M.value,(e,t)=>(s(),U(`div`,{key:e.id,class:`docker-config__bootstrap-card`},[R(`div`,Tr,[R(`div`,Er,[R(`label`,{class:`docker-config__label`,for:`docker-bootstrap-label-${t}`},`Label`,8,Dr),F(o(I),{id:`docker-bootstrap-label-${t}`,"model-value":e.label,placeholder:o(r)(`serviceConfigDocker.bootstrapLabelPlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>H(t,`label`,e),onBlur:W,onKeydown:E(T(W,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),R(`div`,Or,[R(`label`,{class:`docker-config__label`,for:`docker-bootstrap-entrypoint-${t}`},`Entrypoint`,8,kr),F(o(I),{id:`docker-bootstrap-entrypoint-${t}`,"model-value":e.entrypoint??``,placeholder:`/bin/sh`,class:`docker-config__input`,"onUpdate:modelValue":e=>H(t,`entrypoint`,e),onBlur:W,onKeydown:E(T(W,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),R(`div`,Ar,[R(`label`,{class:`docker-config__label`,for:`docker-bootstrap-command-${t}`},`Command`,8,jr),F(o(I),{id:`docker-bootstrap-command-${t}`,"model-value":e.command,placeholder:`-c "npm install"`,class:`docker-config__input`,"onUpdate:modelValue":e=>H(t,`command`,e),onBlur:W,onKeydown:E(T(W,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),R(`div`,Mr,[R(`label`,{class:`docker-config__label`,for:`docker-bootstrap-user-${t}`},`User:Group`,8,Nr),F(o(I),{id:`docker-bootstrap-user-${t}`,"model-value":e.user??``,placeholder:o(r)(`serviceConfigDocker.userGroupHint`),class:`docker-config__input`,"onUpdate:modelValue":e=>H(t,`user`,e),onBlur:W,onKeydown:E(T(W,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),R(`div`,Pr,[F(o(A),{icon:`pi pi-arrow-up`,text:``,rounded:``,size:`small`,disabled:t===0,onClick:e=>ye(t,-1)},null,8,[`disabled`,`onClick`]),F(o(A),{icon:`pi pi-arrow-down`,text:``,rounded:``,size:`small`,disabled:t===M.value.length-1,onClick:e=>ye(t,1)},null,8,[`disabled`,`onClick`]),F(o(A),{icon:`pi pi-times`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>_e(t)},null,8,[`onClick`])])])]))),128)),R(`div`,Fr,[F(o(A),{id:`docker-add-bootstrap`,label:o(r)(`serviceConfigDocker.addBootstrapCommand`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:de},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-36904478`]]),Lr={class:`config-commands`},Rr={class:`config-commands__execution`},zr={class:`config-card config-card--execution`},Br={class:`config-card__header`},Vr={class:`config-card__hint`},Hr={class:`config-card config-card--execution`},Ur={class:`config-card__header`},Wr={key:0,class:`runner-option`},Gr={class:`runner-option`},Kr={class:`config-commands__tab-content`},qr={key:0,class:`config-commands__empty`},Jr={class:`config-commands__row`},Yr={class:`config-commands__field`},Xr=[`for`],Zr={class:`config-commands__field config-commands__field--wide`},Qr=[`for`],$r={class:`config-commands__field`},ei=[`for`],ti={class:`config-commands__actions-cell`},ni={class:`config-commands__footer`},ri={class:`config-commands__tab-content`},ii=`__inherit__`,ai=L(B({__name:`ServiceConfigCommands`,props:{service:{}},emits:[`save`,`dockerSave`],setup(e,{emit:t}){let n=e,r=t,{t:i}=d(),a=C(),c=null,l=D({agentId:n.service.agentId??ii,runner:n.service.runner});p(()=>n.service,e=>{l.value={agentId:e.agentId??ii,runner:e.runner}});let u=H(()=>[{label:i(`serviceConfigCommands.native`),value:`native`,icon:`pi pi-desktop`},{label:i(`serviceConfigCommands.docker`),value:`docker`,icon:`pi pi-box`}]),f=H(()=>u.value.find(e=>e.value===l.value.runner)?.icon??`pi pi-box`),m=H(()=>[{label:i(`serviceForm.agentInherit`),value:ii},...a.agents.map(e=>({label:`${e.config.name} (${e.status.connected?i(`serviceConfigCommands.online`):i(`serviceConfigCommands.offline`)})`,value:e.config.id}))]),h=D([...n.service.commands??[]]);p(()=>n.service,e=>{c||(h.value=[...e.commands??[]])});function _(){h.value=[...h.value,{id:Fe(),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(){c&&clearTimeout(c),c=setTimeout(()=>{r(`save`,{agentId:l.value.agentId===ii?null:l.value.agentId||null,runner:l.value.runner,commands:h.value}),c=null},150)}function x(e){r(`dockerSave`,e)}function S(e){v(e),b()}return(t,n)=>(s(),U(`div`,Lr,[R(`div`,Rr,[R(`div`,zr,[R(`div`,Br,[n[2]||=R(`i`,{class:`pi pi-server`},null,-1),R(`span`,null,O(o(i)(`serviceConfigCommands.agent`)),1)]),F(o(me),{modelValue:l.value.agentId,"onUpdate:modelValue":n[0]||=e=>l.value.agentId=e,options:m.value,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:b},null,8,[`modelValue`,`options`]),R(`small`,Vr,O(o(i)(`serviceForm.agentHintEdit`)),1)]),R(`div`,Hr,[R(`div`,Ur,[R(`i`,{class:ue(f.value)},null,2),R(`span`,null,O(o(i)(`serviceConfigCommands.runner`)),1)]),F(o(me),{modelValue:l.value.runner,"onUpdate:modelValue":n[1]||=e=>l.value.runner=e,options:u.value,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:b},{value:w(e=>[e.value?(s(),U(`div`,Wr,[R(`i`,{class:ue(u.value.find(t=>t.value===e.value)?.icon)},null,2),R(`span`,null,O(u.value.find(t=>t.value===e.value)?.label),1)])):V(``,!0)]),option:w(e=>[R(`div`,Gr,[R(`i`,{class:ue(e.option.icon)},null,2),R(`span`,null,O(e.option.label),1)])]),_:1},8,[`modelValue`,`options`])])]),F(o(De),{value:`0`},{default:w(()=>[F(o(Oe),null,{default:w(()=>[F(o(Ae),{value:`0`},{default:w(()=>[n[3]||=R(`i`,{class:`pi pi-desktop tab-icon`},null,-1),R(`span`,null,O(o(i)(`serviceConfigCommands.native`)),1)]),_:1}),F(o(Ae),{value:`1`},{default:w(()=>[n[4]||=R(`i`,{class:`pi pi-box tab-icon`},null,-1),R(`span`,null,O(o(i)(`serviceConfigCommands.docker`)),1)]),_:1})]),_:1}),F(o(ke),null,{default:w(()=>[F(o(je),{value:`0`},{default:w(()=>[R(`div`,Kr,[h.value.length===0?(s(),U(`div`,qr,[R(`p`,null,O(o(i)(`serviceConfigCommands.noCommands`)),1)])):V(``,!0),(s(!0),U(N,null,g(h.value,(e,t)=>(s(),U(`div`,{key:e.id,class:`config-card`},[R(`div`,Jr,[R(`div`,Yr,[R(`label`,{class:`config-commands__label`,for:`cmd-label-${t}`},O(o(i)(`serviceConfigCommands.labelPlaceholder`)),9,Xr),F(o(I),{id:`cmd-label-${t}`,"model-value":e.label,placeholder:o(i)(`serviceConfigCommands.labelPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>y(t,`label`,e),onBlur:b,onKeydown:E(T(b,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),R(`div`,Zr,[R(`label`,{class:`config-commands__label`,for:`cmd-command-${t}`},O(o(i)(`serviceConfigCommands.commandPlaceholder`)),9,Qr),F(o(I),{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:E(T(b,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),R(`div`,$r,[R(`label`,{class:`config-commands__label`,for:`cmd-cwd-${t}`},`Working Dir (optional)`,8,ei),F(o(I),{id:`cmd-cwd-${t}`,"model-value":e.cwd??``,placeholder:o(i)(`serviceConfigCommands.cwdPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>y(t,`cwd`,e),onBlur:b,onKeydown:E(T(b,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),R(`div`,ti,[F(o(A),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>S(t)},null,8,[`onClick`])])])]))),128)),R(`div`,ni,[F(o(A),{label:o(i)(`serviceConfigCommands.addCommand`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:_},null,8,[`label`])])])]),_:1}),F(o(je),{value:`1`},{default:w(()=>[R(`div`,ri,[F(Ir,{service:e.service,onSave:x},null,8,[`service`])])]),_:1})]),_:1})]),_:1})]))}}),[[`__scopeId`,`data-v-df297a71`]]),oi={class:`config-env`,"data-testid":`config-env`},si={key:0,class:`active-env-display`},ci={class:`active-env-label`},li={key:1,class:`inheritance-toggle`},ui={class:`inheritance-label`},di={class:`inherited-header`},fi={class:`inherited-row-key`},pi={class:`preview-key`},mi={class:`value-row`},hi=[`onClick`],gi=[`onClick`],_i={key:0,class:`secret-mask`},vi={key:1,class:`preview-value`},yi={class:`config-env__header`},bi={class:`config-env__title`},xi={class:`config-env__actions`},Si={key:3,class:`variables-view`},Ci={key:0},wi={key:1,class:`empty-state`},Ti={class:`inherited-header`},Ei={class:`passthrough-info`},Di={class:`preview-key`},Oi={key:0,class:`preview-value`},ki={key:1,class:`passthrough-undefined`},Ai={key:4,class:`empty-state`},ji={key:5,class:`empty-state`},Mi={class:`editor-container`},Ni={key:0,class:`editor-env-banner`},Pi={class:`editor-env-text`},Fi={class:`editor-section`,"data-testid":`variables-editor`},Ii={key:0,class:`loading-container`},Li={key:1,class:`preview-container`},Ri={class:`preview-info`},zi={class:`preview-key`},Bi={class:`value-row`},Vi=[`onClick`],Hi=[`onClick`],Ui={key:0,class:`secret-mask`},Wi={key:1,class:`preview-value`},Gi=L(B({__name:`ServiceConfigEnv`,props:{service:{},projectId:{},activeEnvironmentId:{}},setup(e){let t=e,{t:r}=d(),i=ee(),a=_(),l=ce(),g=n(),v=c(),y=C(),b=le(),x=H(()=>g.getByRef({id:t.projectId,orgId:v.activeOrgId})?.activeEnvironmentId??null),S=H(()=>l.findServiceEnvironment(t.service.id,x.value??``)),E=D(!1),ne=D(!1),re=D(!1),N=D(!1),P=D(null),ie=D(null),I=D([]),L=D({}),ae=D(new Set);function oe(e){let t=new Set(ae.value);t.has(e)?t.delete(e):t.add(e),ae.value=t}let z=D(null);function B(e,t){navigator.clipboard.writeText(t),z.value=e,setTimeout(()=>{z.value===e&&(z.value=null)},1500)}let de=D({}),pe=D(!1),me=H(()=>t.service.agentId?y.getById(t.service.agentId):null),he=H(()=>{let e=me.value?.status.lanIp;return e?{"service.HOST_LAN":e}:{}}),ge=H(()=>me.value?.config.passthroughEnv??[]),W=H(()=>ge.value.length>0);async function _e(){if(!t.service.agentId||!W.value){de.value={};return}pe.value=!0;try{de.value=await h.agent.getPassthroughEnv.query({id:t.service.agentId})}catch{de.value={}}finally{pe.value=!1}}let ye=H(()=>ge.value.map(e=>({name:e,value:de.value[e]??null}))),be=H(()=>!S.value||!x.value?!0:S.value.parentIds?.includes(x.value)??!0);async function xe(e){if(!(!S.value||!x.value)){N.value=!0;try{await l.update({id:S.value.id,parentIds:e?[x.value]:[]}),await je()}catch(e){i.add({severity:`error`,summary:r(`serviceConfigEnv.error`),detail:e.message??r(`serviceConfigEnv.failedToUpdateInheritance`),life:5e3})}finally{N.value=!1}}}let we=H(()=>{let e=g.getByRef({id:t.projectId,orgId:v.activeOrgId});return e?.activeEnvironmentId?l.getById(e.activeEnvironmentId):null});function Te(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 De=H(()=>P.value?Te(P.value.variables):[]),Oe=H(()=>{if(!S.value||!P.value?.sources)return De.value;let e=S.value.id;return De.value.filter(t=>P.value.sources[t.variableId]?.environmentId===e)}),ke=H(()=>{if(!S.value||!P.value?.sources)return[];let e=S.value.id;return De.value.filter(t=>P.value.sources[t.variableId]?.environmentId!==e)}),Ae=H(()=>{if(!P.value?.sources)return{};let e={};for(let[t,n]of Object.entries(P.value.sources))e[t]={environmentId:n.environmentId,overridden:n.overridden,...n.resolvedFrom?{resolvedFrom:n.resolvedFrom}:{},...n.overriddenBy?{overriddenBy:n.overriddenBy}:{}};return e});async function je(){if(S.value)try{P.value=await l.resolve(S.value.id)}catch(e){console.error(`Failed to resolve environment:`,e)}}async function Pe(){if(x.value)try{ie.value=await l.resolve(x.value)}catch{}}async function Fe(e){let t=e.toLowerCase(),n=ie.value??P.value;if(!n)return;let r=n.variables,i=Object.keys(n.env).filter(e=>e.toLowerCase().includes(t));I.value=i;let a={};if(r)for(let e of i){let t=Object.values(r).find(t=>t.key===e);t&&(a[e]={key:e,isSecret:t.value?.isSecret??!1,pre:t.value?.pre??``,post:t.value?.post??``})}L.value=a}async function Ie(){re.value=!0;try{await ze(),await je(),ne.value=!0}catch(e){i.add({severity:`error`,summary:r(`serviceConfigEnv.error`),detail:e.message??r(`serviceConfigEnv.failedToLoadPreview`),life:5e3})}finally{re.value=!1}}let Le=H(()=>P.value?Object.entries(P.value.env).map(([e,t])=>({key:e,value:Object.entries(he.value).reduce((e,[t,n])=>e.replaceAll(`{{${t}}}`,n),t)})):[]);function Re(e,t){return t?`***`:e.length>50?e.substring(0,47)+`...`:e}async function ze(){if(S.value)return S.value;if(!x.value)return null;let e=we.value;return e?(await l.create({name:`${t.service.name??t.service.id} — ${e.name}`,projectId:t.projectId,scope:`service`,reference:t.service.id,activateOn:x.value,parentIds:[x.value],variables:{}}),S.value):null}let Be=H(()=>{let e=b.getByService(t.service.id);return e.length>0?e[0]:null}),Ve=H(()=>{let e=Be.value?.state;return e===`running`||e===`errored`});async function He(){await ze(),E.value=!0,await Promise.all([je(),Pe()])}function Ue(){if(E.value=!1,!Ve.value||!Be.value)return;let e=Be.value.state===`running`?`restart`:`start`,n=t.service.name||t.service.id;a.require({message:r(e===`restart`?`serviceConfigEnv.restartConfirmMsg`:`serviceConfigEnv.startConfirmMsg`,{name:n}),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 n=t.service.agentId;if(!n)return;e===`restart`?(await b.restart(n,t.service.id),i.add({severity:`success`,summary:r(`serviceConfigEnv.serviceRestarted`),life:3e3})):(await b.start(n,t.service.id),i.add({severity:`success`,summary:r(`serviceConfigEnv.serviceStarted`),life:3e3}))}catch(t){i.add({severity:`error`,summary:r(`serviceConfigEnv.error`),detail:t.message??r(`serviceConfigEnv.failedToAction`,{action:e}),life:5e3})}}})}return p(we,async e=>{e&&await Promise.all([je(),Pe()])}),p(()=>t.service.agentId,()=>{_e()}),se(async()=>{t.projectId&&await l.fetchAll(t.projectId),await Promise.all([je(),Pe(),_e()])}),(t,n)=>(s(),U(`div`,oi,[x.value?(s(),U(`div`,si,[R(`span`,ci,O(o(r)(`serviceConfigEnv.activeEnvironment`)),1),F(Me,{"environment-id":x.value},null,8,[`environment-id`])])):V(``,!0),S.value&&we.value?(s(),U(`div`,li,[F(o(Ee),{"model-value":be.value,disabled:N.value,"onUpdate:modelValue":xe},null,8,[`model-value`,`disabled`]),R(`span`,ui,O(be.value?o(r)(`serviceConfigEnv.inheritsFrom`,{name:we.value.name}):o(r)(`serviceConfigEnv.isolated`,{name:we.value.name})),1)])):V(``,!0),ke.value.length>0?(s(),k(o(m),{key:2,class:`inherited-accordion`},{default:w(()=>[F(o(fe),{value:`inherited`},{default:w(()=>[F(o(f),null,{default:w(()=>[R(`span`,di,[n[6]||=R(`i`,{class:`pi pi-arrow-down-left`},null,-1),j(` `+O(o(r)(`serviceConfigEnv.inheritedVars`))+` `,1),F(o(M),{value:String(ke.value.length),severity:`secondary`,rounded:``},null,8,[`value`])])]),_:1}),F(o(te),null,{default:w(()=>[F(o(Se),{value:ke.value,size:`small`,"show-headers":!1},{default:w(()=>[F(o(Ce),{style:{width:`35%`}},{body:w(({data:e})=>[R(`div`,fi,[R(`code`,pi,O(e.key),1),Ae.value[e.variableId]?(s(),k(Me,{key:0,"environment-id":Ae.value[e.variableId].environmentId,class:`source-badge`},null,8,[`environment-id`])):V(``,!0)])]),_:1}),F(o(Ce),{style:{width:`65%`}},{body:w(({data:e})=>[R(`span`,mi,[R(`span`,{class:`value-actions`,onClick:n[0]||=T(()=>{},[`stop`])},[e.slot.isSecret?(s(),U(`i`,{key:0,class:ue([ae.value.has(e.variableId)?`pi pi-eye-slash`:`pi pi-eye`,`action-icon`]),onClick:t=>oe(e.variableId)},null,10,hi)):V(``,!0),R(`i`,{class:ue([z.value===e.variableId?`pi pi-check`:`pi pi-copy`,`action-icon`]),onClick:t=>B(e.variableId,e.slot.pre+e.slot.value+e.slot.post)},null,10,gi)]),e.slot.isSecret&&!ae.value.has(e.variableId)?(s(),U(`span`,_i,`***`)):(s(),U(`code`,vi,O(e.slot.pre)+O(e.slot.value)+O(e.slot.post),1))])]),_:1})]),_:1},8,[`value`])]),_:1})]),_:1})]),_:1})):V(``,!0),R(`div`,yi,[R(`h3`,bi,O(o(r)(`serviceConfigEnv.envVars`)),1),R(`div`,xi,[F(o(A),{label:o(r)(`serviceConfigEnv.editVariables`),icon:`pi pi-pencil`,size:`small`,outlined:``,"data-testid":`env-edit-btn`,disabled:!x.value,onClick:He},null,8,[`label`,`disabled`]),F(o(A),{label:o(r)(`serviceConfigEnv.preview`),icon:`pi pi-eye`,size:`small`,outlined:``,severity:`secondary`,loading:re.value,disabled:!x.value,"data-testid":`env-preview-btn`,onClick:Ie},null,8,[`label`,`loading`,`disabled`])])]),S.value?(s(),U(`div`,Si,[Oe.value.length>0?(s(),U(`div`,Ci,[F(Ne,{"environment-id":S.value.id,sources:Ae.value,"resolved-env":{...ie.value?.env??{},...P.value?.env??{}},"service-builtins":he.value,editable:!1,"show-overrides":!0,"show-override-badge":!0,"show-delete":!1,"show-add-button":!1,onVariablesChanged:je},null,8,[`environment-id`,`sources`,`resolved-env`,`service-builtins`])])):(s(),U(`div`,wi,[R(`p`,null,O(o(r)(`serviceConfigEnv.noVarsConfigured`)),1)])),W.value?(s(),k(o(m),{key:2,class:`inherited-accordion`},{default:w(()=>[F(o(fe),{value:`passthrough`},{default:w(()=>[F(o(f),null,{default:w(()=>[R(`span`,Ti,[n[7]||=R(`i`,{class:`pi pi-globe`},null,-1),j(` `+O(o(r)(`agentPage.passthrough.titleShort`))+` `,1),F(o(M),{value:String(ge.value.length),severity:`secondary`,rounded:``},null,8,[`value`])])]),_:1}),F(o(te),null,{default:w(()=>[R(`p`,Ei,O(o(r)(`serviceConfigEnv.passthroughInfo`)),1),pe.value?(s(),k(o(u),{key:0,style:{width:`24px`,height:`24px`}})):(s(),k(o(Se),{key:1,value:ye.value,stripedRows:``,size:`small`},{default:w(()=>[F(o(Ce),{field:`name`,header:o(r)(`common.key`),style:{width:`35%`}},{body:w(({data:e})=>[R(`code`,Di,O(e.name),1)]),_:1},8,[`header`]),F(o(Ce),{header:o(r)(`common.value`),style:{width:`65%`}},{body:w(({data:e})=>[e.value===null?(s(),U(`span`,ki,O(o(r)(`serviceConfigEnv.undefined`)),1)):(s(),U(`span`,Oi,O(e.value),1))]),_:1},8,[`header`])]),_:1},8,[`value`]))]),_:1})]),_:1})]),_:1})):V(``,!0)])):x.value?(s(),U(`div`,ji,[R(`p`,null,O(o(r)(`serviceConfigEnv.noVarsConfigured`)),1)])):(s(),U(`div`,Ai,[R(`p`,null,O(o(r)(`serviceConfigEnv.noActiveEnv`)),1)])),F(o(ve),{visible:E.value,header:o(r)(`serviceConfigEnv.editVarsHeader`),style:{width:`900px`},modal:``,"onUpdate:visible":n[2]||=e=>{e||Ue()}},{footer:w(()=>[F(o(A),{label:o(r)(`actions.close`),icon:`pi pi-times`,onClick:n[1]||=e=>Ue()},null,8,[`label`])]),default:w(()=>[R(`div`,Mi,[x.value?(s(),U(`div`,Ni,[R(`span`,Pi,O(o(r)(`serviceConfigEnv.editingVarsFor`,{name:e.service.name||e.service.id})),1),F(Me,{"environment-id":x.value},null,8,[`environment-id`])])):V(``,!0),R(`div`,Fi,[S.value?(s(),k(Ne,{key:0,"environment-id":S.value.id,editable:!0,sources:Ae.value,"autocomplete-enabled":!0,"autocomplete-suggestions":I.value,"autocomplete-meta":L.value,"resolved-env":{...ie.value?.env??{},...P.value?.env??{}},"service-builtins":he.value,"show-overrides":!0,onVariablesChanged:je,"show-delete":!0,"show-add-button":!0,onAutocompleteSearch:Fe},null,8,[`environment-id`,`sources`,`autocomplete-suggestions`,`autocomplete-meta`,`resolved-env`,`service-builtins`])):V(``,!0)])])]),_:1},8,[`visible`,`header`]),F(o(ve),{visible:ne.value,"onUpdate:visible":n[5]||=e=>ne.value=e,header:o(r)(`serviceConfigEnv.previewHeader`),style:{width:`700px`},modal:``,"data-testid":`env-preview-dialog`},{footer:w(()=>[F(o(A),{label:o(r)(`actions.close`),icon:`pi pi-times`,onClick:n[4]||=e=>ne.value=!1},null,8,[`label`])]),default:w(()=>[re.value?(s(),U(`div`,Ii,[F(o(u))])):P.value?(s(),U(`div`,Li,[R(`p`,Ri,O(o(r)(`serviceConfigEnv.injectedVarsInfo`)),1),F(o(Se),{value:Le.value,stripedRows:``,size:`small`,rows:15,paginator:Le.value.length>15},{default:w(()=>[F(o(Ce),{field:`key`,header:o(r)(`common.key`),style:{width:`35%`}},{body:w(({data:e})=>[R(`code`,zi,O(e.key),1)]),_:1},8,[`header`]),F(o(Ce),{header:o(r)(`common.value`),style:{width:`65%`}},{body:w(({data:e})=>[R(`span`,Bi,[R(`span`,{class:`value-actions`,onClick:n[3]||=T(()=>{},[`stop`])},[P.value.envSecrets.includes(e.key)?(s(),U(`i`,{key:0,class:ue([ae.value.has(`preview:`+e.key)?`pi pi-eye-slash`:`pi pi-eye`,`action-icon`]),onClick:t=>oe(`preview:`+e.key)},null,10,Vi)):V(``,!0),R(`i`,{class:ue([z.value===`preview:`+e.key?`pi pi-check`:`pi pi-copy`,`action-icon`]),onClick:t=>B(`preview:`+e.key,e.value)},null,10,Hi)]),P.value.envSecrets.includes(e.key)&&!ae.value.has(`preview:`+e.key)?(s(),U(`span`,Ui,`***`)):(s(),U(`span`,Wi,O(Re(e.value,!1)),1))])]),_:1},8,[`header`])]),_:1},8,[`value`,`paginator`])])):V(``,!0)]),_:1},8,[`visible`,`header`])]))}}),[[`__scopeId`,`data-v-db99b01e`]]),Ki={class:`config-health`},qi={class:`config-card config-card--inline`},Ji={class:`config-card__header`},Yi={class:`config-card`},Xi={class:`config-card__header`},Zi={class:`config-card`},Qi={class:`config-card__header`},$i={class:`config-card`},ea={class:`config-card__header`},ta={class:`config-card`},na={class:`config-card__header`},ra={key:1,class:`config-card`},ia={class:`config-card__header`},aa={class:`config-card__hint`},oa={class:`config-card`},sa={class:`config-card__header`},ca={class:`config-card`},la={class:`config-card__header`},ua={class:`config-card`},da={class:`config-card__header`},fa={class:`config-card`},pa={class:`config-card__header`},ma=L(B({__name:`ServiceConfigHealthCheck`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let n=e,r=t,{t:i}=d(),a=D(!!n.service.healthCheck),c=D({type:n.service.healthCheck?.type??`http`,path:n.service.healthCheck?.path??`/health`,interval:n.service.healthCheck?.interval??3e4,timeout:n.service.healthCheck?.timeout??5e3,retries:n.service.healthCheck?.retries??3,method:n.service.healthCheck?.method??`GET`,expectedStatus:n.service.healthCheck?.expectedStatus??200,initialDelay:n.service.healthCheck?.initialDelay??5e3,command:n.service.healthCheck?.command??``}),l=[{label:`HTTP Request`,value:`http`},{label:`Command`,value:`command`}],u=[{label:`GET`,value:`GET`},{label:`HEAD`,value:`HEAD`},{label:`POST`,value:`POST`},{label:`PUT`,value:`PUT`}];p(()=>n.service,e=>{a.value=!!e.healthCheck,c.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 f=null;function m(){f&&clearTimeout(f),f=setTimeout(()=>{if(!a.value)r(`save`,void 0);else{if(c.value.type===`http`&&!c.value.path?.trim()||c.value.type===`command`&&!c.value.command?.trim())return;r(`save`,{type:c.value.type,path:c.value.path,method:c.value.method,expectedStatus:c.value.expectedStatus,command:c.value.command||void 0,interval:c.value.interval,timeout:c.value.timeout,retries:c.value.retries,initialDelay:c.value.initialDelay})}f=null},150)}return(e,t)=>(s(),U(`div`,Ki,[R(`div`,qi,[R(`div`,Ji,[t[10]||=R(`i`,{class:`pi pi-heart`},null,-1),R(`span`,null,O(o(i)(`serviceConfigHealthCheck.enable`)),1)]),F(o(Ee),{modelValue:a.value,"onUpdate:modelValue":t[0]||=e=>a.value=e,onChange:m},null,8,[`modelValue`])]),a.value?(s(),U(N,{key:0},[R(`div`,Yi,[R(`div`,Xi,[t[11]||=R(`i`,{class:`pi pi-cog`},null,-1),R(`span`,null,O(o(i)(`serviceConfigHealthCheck.type`)),1)]),F(o(me),{modelValue:c.value.type,"onUpdate:modelValue":t[1]||=e=>c.value.type=e,options:l,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:m},null,8,[`modelValue`]),t[12]||=R(`small`,{class:`config-card__hint`},`HTTP checks a URL endpoint; Command runs a shell command (exit 0 = healthy)`,-1)]),c.value.type===`http`?(s(),U(N,{key:0},[R(`div`,Zi,[R(`div`,Qi,[t[13]||=R(`i`,{class:`pi pi-link`},null,-1),R(`span`,null,O(o(i)(`serviceConfigHealthCheck.path`)),1)]),F(o(I),{modelValue:c.value.path,"onUpdate:modelValue":t[2]||=e=>c.value.path=e,class:`config-card__input`,placeholder:`/health`,onBlur:m,onKeydown:E(T(m,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),R(`div`,$i,[R(`div`,ea,[t[14]||=R(`i`,{class:`pi pi-directions`},null,-1),R(`span`,null,O(o(i)(`serviceConfigHealthCheck.method`)),1)]),F(o(me),{modelValue:c.value.method,"onUpdate:modelValue":t[3]||=e=>c.value.method=e,options:u,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:m},null,8,[`modelValue`])]),R(`div`,ta,[R(`div`,na,[t[15]||=R(`i`,{class:`pi pi-check-circle`},null,-1),R(`span`,null,O(o(i)(`serviceConfigHealthCheck.expectedStatus`)),1)]),F(o(we),{modelValue:c.value.expectedStatus,"onUpdate:modelValue":t[4]||=e=>c.value.expectedStatus=e,class:`config-card__input`,"use-grouping":!1,min:100,max:599,onBlur:m,onKeydown:E(T(m,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),t[16]||=R(`small`,{class:`config-card__hint`},`HTTP status code to expect (default 200)`,-1)])],64)):V(``,!0),c.value.type===`command`?(s(),U(`div`,ra,[R(`div`,ia,[t[17]||=R(`i`,{class:`pi pi-code`},null,-1),R(`span`,null,O(o(i)(`serviceConfigHealthCheck.command`)),1)]),F(o(_e),{modelValue:c.value.command,"onUpdate:modelValue":t[5]||=e=>c.value.command=e,class:`config-card__input`,rows:`2`,placeholder:`curl -sf http://localhost:3000/health`,"auto-resize":``,onBlur:m},null,8,[`modelValue`]),R(`small`,aa,O(o(i)(`serviceConfigHealthCheck.commandHint`)),1)])):V(``,!0),R(`div`,oa,[R(`div`,sa,[t[18]||=R(`i`,{class:`pi pi-hourglass`},null,-1),R(`span`,null,O(o(i)(`serviceConfigHealthCheck.initialDelay`)),1)]),F(o(we),{modelValue:c.value.initialDelay,"onUpdate:modelValue":t[6]||=e=>c.value.initialDelay=e,class:`config-card__input`,"use-grouping":!1,min:0,onBlur:m,onKeydown:E(T(m,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),t[19]||=R(`small`,{class:`config-card__hint`},`Wait before first health check (ms)`,-1)]),R(`div`,ca,[R(`div`,la,[t[20]||=R(`i`,{class:`pi pi-clock`},null,-1),R(`span`,null,O(o(i)(`serviceConfigHealthCheck.interval`)),1)]),F(o(we),{modelValue:c.value.interval,"onUpdate:modelValue":t[7]||=e=>c.value.interval=e,class:`config-card__input`,"use-grouping":!1,min:1e3,onBlur:m,onKeydown:E(T(m,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),R(`div`,ua,[R(`div`,da,[t[21]||=R(`i`,{class:`pi pi-stopwatch`},null,-1),R(`span`,null,O(o(i)(`serviceConfigHealthCheck.timeout`)),1)]),F(o(we),{modelValue:c.value.timeout,"onUpdate:modelValue":t[8]||=e=>c.value.timeout=e,class:`config-card__input`,"use-grouping":!1,min:500,onBlur:m,onKeydown:E(T(m,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),R(`div`,fa,[R(`div`,pa,[t[22]||=R(`i`,{class:`pi pi-replay`},null,-1),R(`span`,null,O(o(i)(`serviceConfigHealthCheck.retries`)),1)]),F(o(we),{modelValue:c.value.retries,"onUpdate:modelValue":t[9]||=e=>c.value.retries=e,class:`config-card__input`,"use-grouping":!1,min:0,max:10,onBlur:m,onKeydown:E(T(m,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])],64)):V(``,!0)]))}}),[[`__scopeId`,`data-v-63e32039`]]),ha={class:`config-shortcuts`},ga={key:0,class:`config-shortcuts__empty`},_a={class:`config-shortcuts__row`},va={class:`config-shortcuts__field`},ya=[`for`],ba={class:`config-shortcuts__field config-shortcuts__field--wide`},xa=[`for`],Sa={class:`config-shortcuts__field`},Ca=[`for`],wa={class:`config-shortcuts__actions-cell`},Ta={class:`config-shortcuts__footer`},Ea=L(B({__name:`ServiceConfigShortcuts`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let n=e,{t:r}=d(),i=t,a=D([...n.service.shortcuts??[]]),c=null;p(()=>n.service,e=>{c||(a.value=[...e.shortcuts??[]])});function l(){a.value=[...a.value,{id:Fe(),label:``,command:``,cwd:void 0}]}function u(e){a.value=a.value.filter((t,n)=>n!==e)}function f(e,t,n){a.value=a.value.map((r,i)=>i===e?{...r,[t]:n||void 0}:r)}function m(){c&&clearTimeout(c),c=setTimeout(()=>{i(`save`,a.value),c=null},150)}function h(e){u(e),m()}return(e,t)=>(s(),U(`div`,ha,[a.value.length===0?(s(),U(`div`,ga,[R(`p`,null,O(o(r)(`serviceConfigShortcuts.empty`)),1)])):V(``,!0),(s(!0),U(N,null,g(a.value,(e,t)=>(s(),U(`div`,{key:e.id,class:`config-card`},[R(`div`,_a,[R(`div`,va,[R(`label`,{class:`config-shortcuts__label`,for:`shortcut-label-${t}`},O(o(r)(`serviceConfigShortcuts.label`)),9,ya),F(o(I),{id:`shortcut-label-${t}`,"model-value":e.label,placeholder:o(r)(`serviceConfigShortcuts.labelPlaceholder`),class:`config-card__input`,"data-testid":`shortcut-label-input`,"onUpdate:modelValue":e=>f(t,`label`,e),onBlur:m,onKeydown:E(T(m,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),R(`div`,ba,[R(`label`,{class:`config-shortcuts__label`,for:`shortcut-command-${t}`},O(o(r)(`serviceConfigShortcuts.command`)),9,xa),F(o(I),{id:`shortcut-command-${t}`,"model-value":e.command,placeholder:o(r)(`serviceConfigShortcuts.commandPlaceholder`),class:`config-card__input`,"data-testid":`shortcut-command-input`,"onUpdate:modelValue":e=>f(t,`command`,e),onBlur:m,onKeydown:E(T(m,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),R(`div`,Sa,[R(`label`,{class:`config-shortcuts__label`,for:`shortcut-cwd-${t}`},O(o(r)(`serviceConfigShortcuts.workingDir`)),9,Ca),F(o(I),{id:`shortcut-cwd-${t}`,"model-value":e.cwd??``,placeholder:o(r)(`serviceConfigShortcuts.cwdPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>f(t,`cwd`,e),onBlur:m,onKeydown:E(T(m,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),R(`div`,wa,[F(o(A),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>h(t)},null,8,[`onClick`])])])]))),128)),R(`div`,Ta,[F(o(A),{label:o(r)(`serviceConfigShortcuts.addShortcut`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,"data-testid":`add-shortcut-btn`,onClick:l},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-d6ecb989`]]),Da=Object.defineProperty,Oa=Object.getOwnPropertySymbols,ka=Object.prototype.hasOwnProperty,Aa=Object.prototype.propertyIsEnumerable,ja=(e,t,n)=>t in e?Da(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ma=(e,t)=>{for(var n in t||={})ka.call(t,n)&&ja(e,n,t[n]);if(Oa)for(var n of Oa(t))Aa.call(t,n)&&ja(e,n,t[n]);return e},Na=(e,t)=>{var n={};for(var r in e)ka.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Oa)for(var r of Oa(e))t.indexOf(r)<0&&Aa.call(e,r)&&(n[r]=e[r]);return n},Pa=`[vue-draggable-plus]: `;function Fa(e){console.warn(Pa+e)}function Ia(e){console.error(Pa+e)}function La(e,t,n){return n>=0&&n<e.length&&e.splice(n,0,e.splice(t,1)[0]),e}function Ra(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[Ra(n)]=e[n]),t),{})}function Ba(e,t){return Array.isArray(e)&&e.splice(t,1),e}function Va(e,t,n){return Array.isArray(e)&&e.splice(t,0,n),e}function Ha(e){return e===void 0}function Ua(e){return typeof e==`string`}function Wa(e,t,n){let r=e.children[n];e.insertBefore(t,r)}function Ga(e){e.parentNode&&e.parentNode.removeChild(e)}function Ka(e,t=document){let n=null;return n=typeof t?.querySelector==`function`?(t?.querySelector)?.call(t,e):document.querySelector(e),n||Fa(`Element not found: ${e}`),n}function qa(e,t,n=null){return function(...r){return e.apply(n,r),t.apply(n,r)}}function Ja(e,t){let n=Ma({},e);return Object.keys(t).forEach(r=>{n[r]?n[r]=qa(e[r],t[r]):n[r]=t[r]}),n}function Ya(e){return e instanceof HTMLElement}function Xa(e,t){Object.keys(e).forEach(n=>{t(n,e[n])})}function Za(e){return e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97)}var Qa=Object.assign;function $a(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 eo(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?$a(Object(n),!0).forEach(function(t){no(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$a(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function to(e){"@babel/helpers - typeof";return to=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},to(e)}function no(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ro(){return ro=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},ro.apply(this,arguments)}function io(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 ao(e,t){if(e==null)return{};var n=io(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 oo=`1.15.2`;function so(e){if(typeof window<`u`&&window.navigator)return!!navigator.userAgent.match(e)}var co=so(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),lo=so(/Edge/i),uo=so(/firefox/i),fo=so(/safari/i)&&!so(/chrome/i)&&!so(/android/i),po=so(/iP(ad|od|hone)/i),mo=so(/chrome/i)&&so(/android/i),ho={capture:!1,passive:!1};function G(e,t,n){e.addEventListener(t,n,!co&&ho)}function K(e,t,n){e.removeEventListener(t,n,!co&&ho)}function go(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 _o(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function vo(e,t,n,r){if(e){n||=document;do{if(t!=null&&(t[0]===`>`?e.parentNode===n&&go(e,t):go(e,t))||r&&e===n)return e;if(e===n)break}while(e=_o(e))}return null}var yo=/\s+/g;function bo(e,t,n){e&&t&&(e.classList?e.classList[n?`add`:`remove`](t):e.className=((` `+e.className+` `).replace(yo,` `).replace(` `+t+` `,` `)+(n?` `+t:``)).replace(yo,` `))}function q(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 xo(e,t){var n=``;if(typeof e==`string`)n=e;else do{var r=q(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 So(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 Co(){return document.scrollingElement||document.documentElement}function wo(e,t,n,r,i){if(!(!e.getBoundingClientRect&&e!==window)){var a,o,s,c,l,u,d;if(e!==window&&e.parentNode&&e!==Co()?(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,!co))do if(i&&i.getBoundingClientRect&&(q(i,`transform`)!==`none`||n&&q(i,`position`)!==`static`)){var f=i.getBoundingClientRect();o-=f.top+parseInt(q(i,`border-top-width`)),s-=f.left+parseInt(q(i,`border-left-width`)),c=o+a.height,l=s+a.width;break}while(i=i.parentNode);if(r&&e!==window){var p=xo(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 To(e,t,n){for(var r=jo(e,!0),i=wo(e)[t];r;){var a=wo(r)[n],o=void 0;if(o=i>=a,!o)return r;if(r===Co())break;r=jo(r,!1)}return!1}function Eo(e,t,n,r){for(var i=0,a=0,o=e.children;a<o.length;){if(o[a].style.display!==`none`&&o[a]!==$.ghost&&(r||o[a]!==$.dragged)&&vo(o[a],n.draggable,e,!1)){if(i===t)return o[a];i++}a++}return null}function Do(e,t){for(var n=e.lastElementChild;n&&(n===$.ghost||q(n,`display`)===`none`||t&&!go(n,t));)n=n.previousElementSibling;return n||null}function Oo(e,t){var n=0;if(!e||!e.parentNode)return-1;for(;e=e.previousElementSibling;)e.nodeName.toUpperCase()!==`TEMPLATE`&&e!==$.clone&&(!t||go(e,t))&&n++;return n}function ko(e){var t=0,n=0,r=Co();if(e)do{var i=xo(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 Ao(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 jo(e,t){if(!e||!e.getBoundingClientRect)return Co();var n=e,r=!1;do if(n.clientWidth<n.scrollWidth||n.clientHeight<n.scrollHeight){var i=q(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 Co();if(r||t)return n;r=!0}}while(n=n.parentNode);return Co()}function Mo(e,t){if(e&&t)for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function No(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 Po;function Fo(e,t){return function(){if(!Po){var n=arguments,r=this;n.length===1?e.call(r,n[0]):e.apply(r,n),Po=setTimeout(function(){Po=void 0},t)}}}function Io(){clearTimeout(Po),Po=void 0}function Lo(e,t,n){e.scrollLeft+=t,e.scrollTop+=n}function Ro(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 zo(e,t,n){var r={};return Array.from(e.children).forEach(function(i){if(!(!vo(i,t.draggable,e,!1)||i.animated||i===n)){var a=wo(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 Bo=`Sortable`+new Date().getTime();function Vo(){var e=[],t;return{captureAnimationState:function(){e=[],this.options.animation&&[].slice.call(this.el.children).forEach(function(t){if(!(q(t,`display`)===`none`||t===$.ghost)){e.push({target:t,rect:wo(t)});var n=eo({},e[e.length-1].rect);if(t.thisAnimationDuration){var r=xo(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(Ao(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=wo(n),c=n.prevFromRect,l=n.prevToRect,u=e.rect,d=xo(n,!0);d&&(s.top-=d.f,s.left-=d.e),n.toRect=s,n.thisAnimationDuration&&No(c,s)&&!No(o,s)&&(u.top-s.top)/(u.left-s.left)===(o.top-s.top)/(o.left-s.left)&&(t=Uo(u,c,l,r.options)),No(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){q(e,`transition`,``),q(e,`transform`,``);var i=xo(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,q(e,`transform`,`translate3d(`+s+`px,`+c+`px,0)`),this.forRepaintDummy=Ho(e),q(e,`transition`,`transform `+r+`ms`+(this.options.easing?` `+this.options.easing:``)),q(e,`transform`,`translate3d(0,0,0)`),typeof e.animated==`number`&&clearTimeout(e.animated),e.animated=setTimeout(function(){q(e,`transition`,``),q(e,`transform`,``),e.animated=!1,e.animatingX=!1,e.animatingY=!1},r)}}}}function Ho(e){return e.offsetWidth}function Uo(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 Wo=[],Go={initializeByDefault:!0},Ko={mount:function(e){for(var t in Go)Go.hasOwnProperty(t)&&!(t in e)&&(e[t]=Go[t]);Wo.forEach(function(t){if(t.pluginName===e.pluginName)throw`Sortable: Cannot mount plugin ${e.pluginName} more than once`}),Wo.push(e)},pluginEvent:function(e,t,n){var r=this;this.eventCanceled=!1,n.cancel=function(){r.eventCanceled=!0};var i=e+`Global`;Wo.forEach(function(r){t[r.pluginName]&&(t[r.pluginName][i]&&t[r.pluginName][i](eo({sortable:t},n)),t.options[r.pluginName]&&t[r.pluginName][e]&&t[r.pluginName][e](eo({sortable:t},n)))})},initializePlugins:function(e,t,n,r){for(var i in Wo.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,ro(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 Wo.forEach(function(r){typeof r.eventProperties==`function`&&ro(n,r.eventProperties.call(t[r.pluginName],e))}),n},modifyOption:function(e,t,n){var r;return Wo.forEach(function(i){e[i.pluginName]&&i.optionListeners&&typeof i.optionListeners[t]==`function`&&(r=i.optionListeners[t].call(e[i.pluginName],n))}),r}};function qo(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[Bo],t){var h,g=t.options,_=`on`+r.charAt(0).toUpperCase()+r.substr(1);window.CustomEvent&&!co&&!lo?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=eo(eo({},m),Ko.getEventProperties(r,t));for(var y in v)h[y]=v[y];n&&n.dispatchEvent(h),g[_]&&g[_].call(t,h)}}var Jo=[`evt`],Yo=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.evt,i=ao(n,Jo);Ko.pluginEvent.bind($)(e,t,eo({dragEl:J,parentEl:Y,ghostEl:X,rootEl:Z,nextEl:Zo,lastDownEl:Qo,cloneEl:Q,cloneHidden:$o,dragStarted:hs,putSortable:as,activeSortable:$.active,originalEvent:r,oldIndex:es,oldDraggableIndex:ns,newIndex:ts,newDraggableIndex:rs,hideGhostForTarget:Ps,unhideGhostForTarget:Fs,cloneNowHidden:function(){$o=!0},cloneNowShown:function(){$o=!1},dispatchSortableEvent:function(e){Xo({sortable:t,name:e,originalEvent:r})}},i))};function Xo(e){qo(eo({putSortable:as,cloneEl:Q,targetEl:J,rootEl:Z,oldIndex:es,oldDraggableIndex:ns,newIndex:ts,newDraggableIndex:rs},e))}var J,Y,X,Z,Zo,Qo,Q,$o,es,ts,ns,rs,is,as,os=!1,ss=!1,cs=[],ls,us,ds,fs,ps,ms,hs,gs,_s,vs=!1,ys=!1,bs,xs,Ss=[],Cs=!1,ws=[],Ts=typeof document<`u`,Es=po,Ds=lo||co?`cssFloat`:`float`,Os=Ts&&!mo&&!po&&`draggable`in document.createElement(`div`),ks=function(){if(Ts){if(co)return!1;var e=document.createElement(`x`);return e.style.cssText=`pointer-events:auto`,e.style.pointerEvents===`auto`}}(),As=function(e,t){var n=q(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),i=Eo(e,0,t),a=Eo(e,1,t),o=i&&q(i),s=a&&q(a),c=o&&parseInt(o.marginLeft)+parseInt(o.marginRight)+wo(i).width,l=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+wo(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[Ds]===`none`||a&&n[Ds]===`none`&&c+l>r)?`vertical`:`horizontal`},js=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},Ms=function(e,t){var n;return cs.some(function(r){var i=r[Bo].options.emptyInsertThreshold;if(!(!i||Do(r))){var a=wo(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},Ns=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||to(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},Ps=function(){!ks&&X&&q(X,`display`,`none`)},Fs=function(){!ks&&X&&q(X,`display`,``)};Ts&&!mo&&document.addEventListener(`click`,function(e){if(ss)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),ss=!1,!1},!0);var Is=function(e){if(J){e=e.touches?e.touches[0]:e;var t=Ms(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[Bo]._onDragOver(n)}}},Ls=function(e){J&&J.parentNode[Bo]._isOutsideThisEl(e.target)};function $(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=ro({},t),e[Bo]=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 As(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:$.supportPointer!==!1&&`PointerEvent`in window&&!fo,emptyInsertThreshold:5};for(var r in Ko.initializePlugins(this,e,n),n)!(r in t)&&(t[r]=n[r]);for(var i in Ns(t),this)i.charAt(0)===`_`&&typeof this[i]==`function`&&(this[i]=this[i].bind(this));this.nativeDraggable=t.forceFallback?!1:Os,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?G(e,`pointerdown`,this._onTapStart):(G(e,`mousedown`,this._onTapStart),G(e,`touchstart`,this._onTapStart)),this.nativeDraggable&&(G(e,`dragover`,this),G(e,`dragenter`,this)),cs.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),ro(this,Vo())}$.prototype={constructor:$,_isOutsideThisEl:function(e){!this.el.contains(e)&&e!==this.el&&(gs=null)},_getDirection:function(e,t){return typeof this.options.direction==`function`?this.options.direction.call(this,e,t,J):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(qs(n),!J&&!(/mousedown|pointerdown/.test(a)&&e.button!==0||r.disabled)&&!c.isContentEditable&&!(!this.nativeDraggable&&fo&&s&&s.tagName.toUpperCase()===`SELECT`)&&(s=vo(s,r.draggable,n,!1),!(s&&s.animated)&&Qo!==s)){if(es=Oo(s),ns=Oo(s,r.draggable),typeof l==`function`){if(l.call(this,e,s,this)){Xo({sortable:t,rootEl:c,name:`filter`,targetEl:s,toEl:n,fromEl:n}),Yo(`filter`,t,{evt:e}),i&&e.cancelable&&e.preventDefault();return}}else if(l&&(l=l.split(`,`).some(function(r){if(r=vo(c,r.trim(),n,!1),r)return Xo({sortable:t,rootEl:r,name:`filter`,targetEl:s,fromEl:n,toEl:n}),Yo(`filter`,t,{evt:e}),!0}),l)){i&&e.cancelable&&e.preventDefault();return}r.handle&&!vo(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&&!J&&n.parentNode===i){var c=wo(n);if(Z=i,J=n,Y=J.parentNode,Zo=J.nextSibling,Qo=n,is=a.group,$.dragged=J,ls={target:J,clientX:(t||e).clientX,clientY:(t||e).clientY},ps=ls.clientX-c.left,ms=ls.clientY-c.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,J.style[`will-change`]=`all`,s=function(){if(Yo(`delayEnded`,r,{evt:e}),$.eventCanceled){r._onDrop();return}r._disableDelayedDragEvents(),!uo&&r.nativeDraggable&&(J.draggable=!0),r._triggerDragStart(e,t),Xo({sortable:r,name:`choose`,originalEvent:e}),bo(J,a.chosenClass,!0)},a.ignore.split(`,`).forEach(function(e){So(J,e.trim(),Bs)}),G(o,`dragover`,Is),G(o,`mousemove`,Is),G(o,`touchmove`,Is),G(o,`mouseup`,r._onDrop),G(o,`touchend`,r._onDrop),G(o,`touchcancel`,r._onDrop),uo&&this.nativeDraggable&&(this.options.touchStartThreshold=4,J.draggable=!0),Yo(`delayStart`,this,{evt:e}),a.delay&&(!a.delayOnTouchOnly||t)&&(!this.nativeDraggable||!(lo||co))){if($.eventCanceled){this._onDrop();return}G(o,`mouseup`,r._disableDelayedDrag),G(o,`touchend`,r._disableDelayedDrag),G(o,`touchcancel`,r._disableDelayedDrag),G(o,`mousemove`,r._delayedDragTouchMoveHandler),G(o,`touchmove`,r._delayedDragTouchMoveHandler),a.supportPointer&&G(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(){J&&Bs(J),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;K(e,`mouseup`,this._disableDelayedDrag),K(e,`touchend`,this._disableDelayedDrag),K(e,`touchcancel`,this._disableDelayedDrag),K(e,`mousemove`,this._delayedDragTouchMoveHandler),K(e,`touchmove`,this._delayedDragTouchMoveHandler),K(e,`pointermove`,this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t||=e.pointerType==`touch`&&e,!this.nativeDraggable||t?this.options.supportPointer?G(document,`pointermove`,this._onTouchMove):t?G(document,`touchmove`,this._onTouchMove):G(document,`mousemove`,this._onTouchMove):(G(J,`dragend`,this),G(Z,`dragstart`,this._onDragStart));try{document.selection?Js(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(e,t){if(os=!1,Z&&J){Yo(`dragStarted`,this,{evt:t}),this.nativeDraggable&&G(document,`dragover`,Ls);var n=this.options;!e&&bo(J,n.dragClass,!1),bo(J,n.ghostClass,!0),$.active=this,e&&this._appendGhost(),Xo({sortable:this,name:`start`,originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(us){this._lastX=us.clientX,this._lastY=us.clientY,Ps();for(var e=document.elementFromPoint(us.clientX,us.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(us.clientX,us.clientY),e!==t);)t=e;if(J.parentNode[Bo]._isOutsideThisEl(e),t)do{if(t[Bo]){var n=void 0;if(n=t[Bo]._onDragOver({clientX:us.clientX,clientY:us.clientY,target:e,rootEl:t}),n&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);Fs()}},_onTouchMove:function(e){if(ls){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,i=e.touches?e.touches[0]:e,a=X&&xo(X,!0),o=X&&a&&a.a,s=X&&a&&a.d,c=Es&&xs&&ko(xs),l=(i.clientX-ls.clientX+r.x)/(o||1)+(c?c[0]-Ss[0]:0)/(o||1),u=(i.clientY-ls.clientY+r.y)/(s||1)+(c?c[1]-Ss[1]:0)/(s||1);if(!$.active&&!os){if(n&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))<n)return;this._onDragStart(e,!0)}if(X){a?(a.e+=l-(ds||0),a.f+=u-(fs||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})`;q(X,`webkitTransform`,d),q(X,`mozTransform`,d),q(X,`msTransform`,d),q(X,`transform`,d),ds=l,fs=u,us=i}e.cancelable&&e.preventDefault()}},_appendGhost:function(){if(!X){var e=this.options.fallbackOnBody?document.body:Z,t=wo(J,!0,Es,!0,e),n=this.options;if(Es){for(xs=e;q(xs,`position`)===`static`&&q(xs,`transform`)===`none`&&xs!==document;)xs=xs.parentNode;xs!==document.body&&xs!==document.documentElement?(xs===document&&(xs=Co()),t.top+=xs.scrollTop,t.left+=xs.scrollLeft):xs=Co(),Ss=ko(xs)}X=J.cloneNode(!0),bo(X,n.ghostClass,!1),bo(X,n.fallbackClass,!0),bo(X,n.dragClass,!0),q(X,`transition`,``),q(X,`transform`,``),q(X,`box-sizing`,`border-box`),q(X,`margin`,0),q(X,`top`,t.top),q(X,`left`,t.left),q(X,`width`,t.width),q(X,`height`,t.height),q(X,`opacity`,`0.8`),q(X,`position`,Es?`absolute`:`fixed`),q(X,`zIndex`,`100000`),q(X,`pointerEvents`,`none`),$.ghost=X,e.appendChild(X),q(X,`transform-origin`,ps/parseInt(X.style.width)*100+`% `+ms/parseInt(X.style.height)*100+`%`)}},_onDragStart:function(e,t){var n=this,r=e.dataTransfer,i=n.options;if(Yo(`dragStart`,this,{evt:e}),$.eventCanceled){this._onDrop();return}Yo(`setupClone`,this),$.eventCanceled||(Q=Ro(J),Q.removeAttribute(`id`),Q.draggable=!1,Q.style[`will-change`]=``,this._hideClone(),bo(Q,this.options.chosenClass,!1),$.clone=Q),n.cloneId=Js(function(){Yo(`clone`,n),!$.eventCanceled&&(n.options.removeCloneOnHide||Z.insertBefore(Q,J),n._hideClone(),Xo({sortable:n,name:`clone`}))}),!t&&bo(J,i.dragClass,!0),t?(ss=!0,n._loopId=setInterval(n._emulateDragOver,50)):(K(document,`mouseup`,n._onDrop),K(document,`touchend`,n._onDrop),K(document,`touchcancel`,n._onDrop),r&&(r.effectAllowed=`move`,i.setData&&i.setData.call(n,r,J)),G(document,`drop`,n),q(J,`transform`,`translateZ(0)`)),os=!0,n._dragStartId=Js(n._dragStarted.bind(n,t,e)),G(document,`selectstart`,n),hs=!0,fo&&q(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=$.active,l=is===s,u=o.sort,d=as||c,f,p=this,m=!1;if(Cs)return;function h(o,s){Yo(o,p,eo({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 zs(Z,t,J,r,n,wo(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&&(bo(J,as?as.options.ghostClass:c.options.ghostClass,!1),bo(J,o.ghostClass,!0)),as!==p&&p!==$.active?as=p:p===$.active&&as&&(as=null),d===p&&(p._ignoreWhileAnimating=n),p.animateAll(function(){h(`dragOverAnimationComplete`),p._ignoreWhileAnimating=null}),p!==d&&(d.animateAll(),d._ignoreWhileAnimating=null)),(n===J&&!J.animated||n===t&&!n.animated)&&(gs=null),!o.dragoverBubble&&!e.rootEl&&n!==document&&(J.parentNode[Bo]._isOutsideThisEl(e.target),!r&&Is(e)),!o.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),m=!0}function v(){ts=Oo(J),rs=Oo(J,o.draggable),Xo({sortable:p,name:`change`,toEl:t,newIndex:ts,newDraggableIndex:rs,originalEvent:e})}if(e.preventDefault!==void 0&&e.cancelable&&e.preventDefault(),n=vo(n,o.draggable,t,!0),h(`dragOver`),$.eventCanceled)return m;if(J.contains(e.target)||n.animated&&n.animatingX&&n.animatingY||p._ignoreWhileAnimating===n)return _(!1);if(ss=!1,c&&!o.disabled&&(l?u||(a=Y!==Z):as===this||(this.lastPutMode=is.checkPull(this,c,J,e))&&s.checkPut(this,c,J,e))){if(f=this._getDirection(e,n)===`vertical`,r=wo(J),h(`dragOverValid`),$.eventCanceled)return m;if(a)return Y=Z,g(),this._hideClone(),h(`revert`),$.eventCanceled||(Zo?Z.insertBefore(J,Zo):Z.appendChild(J)),_(!0);var y=Do(t,o.draggable);if(!y||Us(e,f,this)&&!y.animated){if(y===J)return _(!1);if(y&&t===e.target&&(n=y),n&&(i=wo(n)),zs(Z,t,J,r,n,i,e,!!n)!==!1)return g(),y&&y.nextSibling?t.insertBefore(J,y.nextSibling):t.appendChild(J),Y=t,v(),_(!0)}else if(y&&Hs(e,f,this)){var b=Eo(t,0,o,!0);if(b===J)return _(!1);if(n=b,i=wo(n),zs(Z,t,J,r,n,i,e,!1)!==!1)return g(),t.insertBefore(J,b),Y=t,v(),_(!0)}else if(n.parentNode===t){i=wo(n);var x=0,S,C=J.parentNode!==t,w=!js(J.animated&&J.toRect||r,n.animated&&n.toRect||i,f),T=f?`top`:`left`,ee=To(n,`top`,`top`)||To(J,`top`,`top`),te=ee?ee.scrollTop:void 0;gs!==n&&(S=i[T],vs=!1,ys=!w&&o.invertSwap||C),x=Ws(e,n,i,f,w?1:o.swapThreshold,o.invertedSwapThreshold==null?o.swapThreshold:o.invertedSwapThreshold,ys,gs===n);var E;if(x!==0){var D=Oo(J);do D-=x,E=Y.children[D];while(E&&(q(E,`display`)===`none`||E===X))}if(x===0||E===n)return _(!1);gs=n,_s=x;var ne=n.nextElementSibling,re=!1;re=x===1;var O=zs(Z,t,J,r,n,i,e,re);if(O!==!1)return(O===1||O===-1)&&(re=O===1),Cs=!0,setTimeout(Vs,30),g(),re&&!ne?t.appendChild(J):n.parentNode.insertBefore(J,re?ne:n),ee&&Lo(ee,0,te-ee.scrollTop),Y=J.parentNode,S!==void 0&&!ys&&(bs=Math.abs(S-wo(n)[T])),v(),_(!0)}if(t.contains(J))return _(!1)}return!1},_ignoreWhileAnimating:null,_offMoveEvents:function(){K(document,`mousemove`,this._onTouchMove),K(document,`touchmove`,this._onTouchMove),K(document,`pointermove`,this._onTouchMove),K(document,`dragover`,Is),K(document,`mousemove`,Is),K(document,`touchmove`,Is)},_offUpEvents:function(){var e=this.el.ownerDocument;K(e,`mouseup`,this._onDrop),K(e,`touchend`,this._onDrop),K(e,`pointerup`,this._onDrop),K(e,`touchcancel`,this._onDrop),K(document,`selectstart`,this)},_onDrop:function(e){var t=this.el,n=this.options;if(ts=Oo(J),rs=Oo(J,n.draggable),Yo(`drop`,this,{evt:e}),Y=J&&J.parentNode,ts=Oo(J),rs=Oo(J,n.draggable),$.eventCanceled){this._nulling();return}os=!1,ys=!1,vs=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),Ys(this.cloneId),Ys(this._dragStartId),this.nativeDraggable&&(K(document,`drop`,this),K(t,`dragstart`,this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),fo&&q(document.body,`user-select`,``),q(J,`transform`,``),e&&(hs&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),X&&X.parentNode&&X.parentNode.removeChild(X),(Z===Y||as&&as.lastPutMode!==`clone`)&&Q&&Q.parentNode&&Q.parentNode.removeChild(Q),J&&(this.nativeDraggable&&K(J,`dragend`,this),Bs(J),J.style[`will-change`]=``,hs&&!os&&bo(J,as?as.options.ghostClass:this.options.ghostClass,!1),bo(J,this.options.chosenClass,!1),Xo({sortable:this,name:`unchoose`,toEl:Y,newIndex:null,newDraggableIndex:null,originalEvent:e}),Z===Y?ts!==es&&ts>=0&&(Xo({sortable:this,name:`update`,toEl:Y,originalEvent:e}),Xo({sortable:this,name:`sort`,toEl:Y,originalEvent:e})):(ts>=0&&(Xo({rootEl:Y,name:`add`,toEl:Y,fromEl:Z,originalEvent:e}),Xo({sortable:this,name:`remove`,toEl:Y,originalEvent:e}),Xo({rootEl:Y,name:`sort`,toEl:Y,fromEl:Z,originalEvent:e}),Xo({sortable:this,name:`sort`,toEl:Y,originalEvent:e})),as&&as.save()),$.active&&((ts==null||ts===-1)&&(ts=es,rs=ns),Xo({sortable:this,name:`end`,toEl:Y,originalEvent:e}),this.save()))),this._nulling()},_nulling:function(){Yo(`nulling`,this),Z=J=Y=X=Zo=Q=Qo=$o=ls=us=hs=ts=rs=es=ns=gs=_s=as=is=$.dragged=$.ghost=$.clone=$.active=null,ws.forEach(function(e){e.checked=!0}),ws.length=ds=fs=0},handleEvent:function(e){switch(e.type){case`drop`:case`dragend`:this._onDrop(e);break;case`dragenter`:case`dragover`:J&&(this._onDragOver(e),Rs(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],vo(t,a.draggable,this.el,!1)&&e.push(t.getAttribute(a.dataIdAttr)||Ks(t));return e},sort:function(e,t){var n={},r=this.el;this.toArray().forEach(function(e,t){var i=r.children[t];vo(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 vo(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=Ko.modifyOption(this,e,t);r===void 0?n[e]=t:n[e]=r,e===`group`&&Ns(n)},destroy:function(){Yo(`destroy`,this);var e=this.el;e[Bo]=null,K(e,`mousedown`,this._onTapStart),K(e,`touchstart`,this._onTapStart),K(e,`pointerdown`,this._onTapStart),this.nativeDraggable&&(K(e,`dragover`,this),K(e,`dragenter`,this)),Array.prototype.forEach.call(e.querySelectorAll(`[draggable]`),function(e){e.removeAttribute(`draggable`)}),this._onDrop(),this._disableDelayedDragEvents(),cs.splice(cs.indexOf(this.el),1),this.el=e=null},_hideClone:function(){if(!$o){if(Yo(`hideClone`,this),$.eventCanceled)return;q(Q,`display`,`none`),this.options.removeCloneOnHide&&Q.parentNode&&Q.parentNode.removeChild(Q),$o=!0}},_showClone:function(e){if(e.lastPutMode!==`clone`){this._hideClone();return}if($o){if(Yo(`showClone`,this),$.eventCanceled)return;J.parentNode==Z&&!this.options.group.revertClone?Z.insertBefore(Q,J):Zo?Z.insertBefore(Q,Zo):Z.appendChild(Q),this.options.group.revertClone&&this.animate(J,Q),q(Q,`display`,``),$o=!1}}};function Rs(e){e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),e.cancelable&&e.preventDefault()}function zs(e,t,n,r,i,a,o,s){var c,l=e[Bo],u=l.options.onMove,d;return window.CustomEvent&&!co&&!lo?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||wo(t),c.willInsertAfter=s,c.originalEvent=o,e.dispatchEvent(c),u&&(d=u.call(l,c,o)),d}function Bs(e){e.draggable=!1}function Vs(){Cs=!1}function Hs(e,t,n){var r=wo(Eo(n.el,0,n.options,!0)),i=zo(n.el,n.options,X),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 Us(e,t,n){var r=wo(Do(n.el,n.options.draggable)),i=zo(n.el,n.options,X),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 Ws(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&&bs<l*i){if(!vs&&(_s===1?c>u+l*a/2:c<d-l*a/2)&&(vs=!0),vs)f=!0;else if(_s===1?c<u+bs:c>d-bs)return-_s}else if(c>u+l*(1-i)/2&&c<d-l*(1-i)/2)return Gs(t)}return f||=o,f&&(c<u+l*a/2||c>d-l*a/2)?c>u+l/2?1:-1:0}function Gs(e){return Oo(J)<Oo(e)?1:-1}function Ks(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 qs(e){ws.length=0;for(var t=e.getElementsByTagName(`input`),n=t.length;n--;){var r=t[n];r.checked&&ws.push(r)}}function Js(e){return setTimeout(e,0)}function Ys(e){return clearTimeout(e)}Ts&&G(document,`touchmove`,function(e){($.active||os)&&e.cancelable&&e.preventDefault()}),$.utils={on:G,off:K,css:q,find:So,is:function(e,t){return!!vo(e,t,e,!1)},extend:Mo,throttle:Fo,closest:vo,toggleClass:bo,clone:Ro,index:Oo,nextTick:Js,cancelNextTick:Ys,detectDirection:As,getChild:Eo},$.get=function(e){return e[Bo]},$.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&&($.utils=eo(eo({},$.utils),e.utils)),Ko.mount(e)})},$.create=function(e,t){return new $(e,t)},$.version=oo;var Xs=[],Zs,Qs,$s=!1,ec,tc,nc,rc;function ic(){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?G(document,`dragover`,this._handleAutoScroll):this.options.supportPointer?G(document,`pointermove`,this._handleFallbackAutoScroll):t.touches?G(document,`touchmove`,this._handleFallbackAutoScroll):G(document,`mousemove`,this._handleFallbackAutoScroll)},dragOverCompleted:function(e){var t=e.originalEvent;!this.options.dragOverBubble&&!t.rootEl&&this._handleAutoScroll(t)},drop:function(){this.sortable.nativeDraggable?K(document,`dragover`,this._handleAutoScroll):(K(document,`pointermove`,this._handleFallbackAutoScroll),K(document,`touchmove`,this._handleFallbackAutoScroll),K(document,`mousemove`,this._handleFallbackAutoScroll)),oc(),ac(),Io()},nulling:function(){nc=Qs=Zs=$s=rc=ec=tc=null,Xs.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(nc=e,t||this.options.forceAutoScrollFallback||lo||co||fo){sc(e,this.options,a,t);var o=jo(a,!0);$s&&(!rc||r!==ec||i!==tc)&&(rc&&oc(),rc=setInterval(function(){var a=jo(document.elementFromPoint(r,i),!0);a!==o&&(o=a,ac()),sc(e,n.options,a,t)},10),ec=r,tc=i)}else{if(!this.options.bubbleScroll||jo(a,!0)===Co()){ac();return}sc(e,this.options,jo(a,!1),!1)}}},ro(e,{pluginName:`scroll`,initializeByDefault:!0})}function ac(){Xs.forEach(function(e){clearInterval(e.pid)}),Xs=[]}function oc(){clearInterval(rc)}var sc=Fo(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=Co(),l=!1,u;Qs!==n&&(Qs=n,ac(),Zs=t.scroll,u=t.scrollFn,Zs===!0&&(Zs=jo(n,!0)));var d=0,f=Zs;do{var p=f,m=wo(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=q(p),ee=p.scrollLeft,te=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 E=x&&(Math.abs(v-i)<=o&&ee+y<C)-(Math.abs(_-i)<=o&&!!ee),D=S&&(Math.abs(g-a)<=o&&te+b<w)-(Math.abs(h-a)<=o&&!!te);if(!Xs[d])for(var ne=0;ne<=d;ne++)Xs[ne]||(Xs[ne]={});(Xs[d].vx!=E||Xs[d].vy!=D||Xs[d].el!==p)&&(Xs[d].el=p,Xs[d].vx=E,Xs[d].vy=D,clearInterval(Xs[d].pid),(E!=0||D!=0)&&(l=!0,Xs[d].pid=setInterval(function(){r&&this.layer===0&&$.active._onTouchMove(nc);var t=Xs[this.layer].vy?Xs[this.layer].vy*s:0,n=Xs[this.layer].vx?Xs[this.layer].vx*s:0;typeof u==`function`&&u.call($.dragged.parentNode[Bo],n,t,e,nc,Xs[this.layer].el)!==`continue`||Lo(Xs[this.layer].el,n,t)}.bind({layer:d}),24))),d++}while(t.bubbleScroll&&f!==c&&(f=jo(f,!1)));$s=l}},30),cc=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 lc(){}lc.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=Eo(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:cc},ro(lc,{pluginName:`revertOnSpill`});function uc(){}uc.prototype={onSpill:function(e){var t=e.dragEl,n=e.putSortable||this.sortable;n.captureAnimationState(),t.parentNode&&t.parentNode.removeChild(t),n.animateAll()},drop:cc},ro(uc,{pluginName:`removeOnSpill`}),$.mount(new ic),$.mount(uc,lc);function dc(e){return e==null?e:JSON.parse(JSON.stringify(e))}function fc(e){oe()&&b(e)}function pc(e){oe()?se(e):ye(e)}var mc=null,hc=null;function gc(e=null,t=null){mc=e,hc=t}function _c(){return{data:mc,clonedData:hc}}var vc=Symbol(`cloneElement`);function yc(...e){let t=oe()?.proxy,n=null,r=e[0],[,i,a]=e;Array.isArray(o(i))||(a=i,i=null);let s=null,{immediate:c=!0,clone:l=dc,forceFallback:u,fallbackOnBody:d,customUpdate:f}=o(a)??{};function m(e){let{from:t,oldIndex:r,item:a}=e,s=Array.from(t.childNodes);n=u&&!d?s.slice(0,-1):s;let c=o(o(i)?.[r]),f=l(c);gc(c,f),a[vc]=f}function h(e){let t=e.item[vc];if(!Ha(t)){if(Ga(e.item),ie(i)){let n=[...o(i)];i.value=Va(n,e.newDraggableIndex,t);return}Va(o(i),e.newDraggableIndex,t)}}function g(e){let{from:t,item:n,oldIndex:r,oldDraggableIndex:a,pullMode:s,clone:c}=e;if(Wa(t,n,r),s===`clone`){Ga(c);return}if(ie(i)){let e=[...o(i)];i.value=Ba(e,a);return}Ba(o(i),a)}function _(e){if(f){f(e);return}let{from:t,item:n,oldIndex:r,oldDraggableIndex:a,newDraggableIndex:s}=e;if(Ga(n),Wa(t,n,r),ie(i)){let e=[...o(i)];i.value=La(e,a,s);return}La(o(i),a,s)}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}ye(()=>{if(gc(),o)throw o})}let y={onUpdate:_,onStart:m,onAdd:h,onRemove:g,onEnd:v};function b(e){let n=o(r);return e||=Ua(n)?Ka(n,t?.$el):n,e&&!Ya(e)&&(e=e.$el),e||Ia(`Root element not found`),e}function x(){let e=o(a)??{},{immediate:t,clone:n}=e,r=Na(e,[`immediate`,`clone`]);return Xa(r,(e,t)=>{Za(e)&&(r[e]=(e,...n)=>(Qa(e,_c()),t(e,...n)))}),Ja(i===null?{}:y,r)}let S=e=>{e=b(e),s&&C.destroy(),s=new $(e,x())};p(()=>a,()=>{s&&Xa(x(),(e,t)=>{s?.option(e,t)})},{deep:!0});let C={option:(e,t)=>s?.option(e,t),destroy:()=>{s?.destroy(),s=null},save:()=>s?.save(),toArray:()=>s?.toArray(),closest:(...e)=>s?.closest(...e)};return pc(()=>{c&&S()}),fc(C.destroy),Ma({start:S,pause:()=>C?.option(`disabled`,!0),resume:()=>C?.option(`disabled`,!1)},C)}var bc=[`update`,`start`,`add`,`remove`,`choose`,`unchoose`,`end`,`sort`,`filter`,`clone`,`move`,`change`],xc=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`,...bc.map(e=>`on${e.replace(/^\S/,e=>e.toUpperCase())}`)],emits:[`update:modelValue`,...bc],setup(e,{slots:t,emit:n,expose:i,attrs:a}){let s=bc.reduce((e,t)=>{let r=`on${t.replace(/^\S/,e=>e.toUpperCase())}`;return e[r]=(...e)=>n(t,...e),e},{}),c=H(()=>{let t=r(e),{modelValue:n}=t,i=Na(t,[`modelValue`]),c=Object.entries(i).reduce((e,[t,n])=>{let r=o(n);return r!==void 0&&(e[t]=r),e},{});return Ma(Ma({},s),za(Ma(Ma({},a),c)))}),l=H({get:()=>e.modelValue,set:e=>n(`update:modelValue`,e)}),u=D(),d=ae(yc(e.target||u,l,c));return i(d),()=>ne(e.tag||`div`,{ref:u},(t?.default)?.call(t,d))}}),Sc={mounted:`mounted`,unmounted:`unmounted`};Sc.mounted,Sc.unmounted;var Cc={class:`config-log-parsers`},wc={class:`config-card`},Tc={class:`config-card__header`},Ec={class:`config-card__hint`},Dc={class:`config-card`},Oc={class:`config-card__header`},kc={class:`config-card__header-hint`},Ac={class:`config-log-parsers__order`},jc={class:`config-log-parsers__name`},Mc={key:1,class:`config-log-parsers__empty`},Nc={class:`config-log-parsers__add-row`},Pc={class:`config-log-parsers__footer`},Fc=L(B({__name:`ServiceConfigLogs`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let n=e,r=t,i=x(),{t:a}=d(),c=Be(),l=D([...n.service.parserIds??[]]);p(()=>n.service,e=>{l.value=[...e.parserIds??[]]});let u=H(()=>[...c.parsers].filter(e=>e.enabled).sort((e,t)=>e.name.localeCompare(t.name))),f=H(()=>u.value.filter(e=>!l.value.includes(e.id))),m=D(l.value.map(e=>c.parsers.find(t=>t.id===e)).filter(e=>e!==void 0));p(l,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]}),p(()=>c.parsers,()=>{m.value=l.value.map(e=>c.parsers.find(t=>t.id===e)).filter(e=>e!==void 0)});let h=D(null);function _(e){if(!e)return;let t=c.parsers.find(t=>t.id===e);t&&(l.value=[...l.value,e],m.value=[...m.value,t],h.value=null,b())}function v(e){l.value=l.value.filter(t=>t!==e),m.value=m.value.filter(t=>t.id!==e),b()}function y(){l.value=m.value.map(e=>e.id),b()}function b(){r(`save`,{parserIds:m.value.map(e=>e.id)})}return se(()=>{c.fetchParsers()}),(e,t)=>(s(),U(`div`,Cc,[R(`div`,wc,[R(`div`,Tc,[t[3]||=R(`i`,{class:`pi pi-code`},null,-1),R(`span`,null,O(o(a)(`serviceConfigLogs.jsParsers`)),1)]),R(`small`,Ec,O(o(a)(`serviceConfigLogs.jsParsersHint`)),1)]),R(`div`,Dc,[R(`div`,Oc,[t[4]||=R(`i`,{class:`pi pi-sort-alt`},null,-1),R(`span`,null,O(o(a)(`serviceConfigLogs.executionOrder`)),1),R(`small`,kc,O(o(a)(`serviceConfigLogs.executionOrderHint`)),1)]),m.value.length>0?(s(),k(o(xc),{key:0,modelValue:m.value,"onUpdate:modelValue":t[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:w(()=>[(s(!0),U(N,null,g(m.value,(e,n)=>(s(),U(`div`,{key:e.id,class:`config-log-parsers__drag-row`,"data-testid":`log-parsers-drag-row`},[t[5]||=R(`span`,{class:`drag-handle`,"data-testid":`drag-handle`},[R(`i`,{class:`pi pi-bars`})],-1),R(`span`,Ac,O(n+1),1),R(`span`,jc,O(e.name),1),e.builtin?(s(),k(o(M),{key:0,severity:`secondary`,class:`config-log-parsers__builtin-badge`},{default:w(()=>[j(O(o(a)(`serviceConfigLogs.builtin`)),1)]),_:1})):V(``,!0),e.enabled?V(``,!0):(s(),k(o(M),{key:1,severity:`warn`,class:`config-log-parsers__disabled-badge`},{default:w(()=>[j(O(o(a)(`serviceConfigLogs.disabled`)),1)]),_:1})),F(o(A),{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`])):V(``,!0),m.value.length===0?(s(),U(`div`,Mc,O(o(a)(`serviceConfigLogs.empty`)),1)):V(``,!0),R(`div`,Nc,[F(o(me),{modelValue:h.value,"onUpdate:modelValue":[t[1]||=e=>h.value=e,_],options:f.value,"option-label":`name`,"option-value":`id`,placeholder:o(a)(`serviceConfigLogs.addParser`),class:`config-log-parsers__add-select`,loading:o(c).loading,disabled:f.value.length===0},{option:w(({option:e})=>[R(`span`,null,O(e.name),1),e.builtin?(s(),k(o(M),{key:0,severity:`secondary`,class:`ml-2`,style:{"font-size":`0.65rem`,padding:`0.1rem 0.35rem`}},{default:w(()=>[j(O(o(a)(`serviceConfigLogs.builtin`)),1)]),_:1})):V(``,!0)]),_:1},8,[`modelValue`,`options`,`placeholder`,`loading`,`disabled`])])]),R(`div`,Pc,[F(o(A),{label:o(a)(`serviceConfigLogs.manageParsers`),icon:`pi pi-cog`,severity:`secondary`,outlined:``,size:`small`,onClick:t[2]||=e=>o(i).push({name:`settings`,query:{section:`parsers`}})},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-2a8eb0c6`]]),Ic={class:`config-log-sources`},Lc={class:`config-card`},Rc={class:`config-card__header`},zc={class:`config-card__hint`},Bc={key:0,class:`config-card config-card--list`},Vc={class:`source-row__info`},Hc={class:`source-row__type`},Uc={class:`source-row__label`},Wc={class:`source-row__actions`},Gc={key:1,class:`config-log-sources__empty`},Kc={class:`config-log-sources__footer`},qc={class:`dialog-form`},Jc={class:`dialog-form__field`},Yc={for:`lsrc-type`,class:`dialog-form__label`},Xc={class:`dialog-form__field`},Zc={for:`lsrc-path-file`,class:`dialog-form__label`},Qc={class:`dialog-form__field`},$c={for:`lsrc-encoding-file`,class:`dialog-form__label`},el={class:`dialog-form__field dialog-form__field--row`},tl={for:`lsrc-startFromEnd-file`,class:`dialog-form__label`},nl={class:`dialog-form__field dialog-form__field--row`},rl={for:`lsrc-createIfNotExists-file`,class:`dialog-form__label`},il={class:`dialog-form__field`},al={for:`lsrc-connectionString-mongo`,class:`dialog-form__label`},ol={class:`dialog-form__row`},sl={class:`dialog-form__field`},cl={class:`dialog-form__field`},ll={class:`dialog-form__row`},ul={class:`dialog-form__field`},dl={class:`dialog-form__field`},fl={class:`dialog-form__field`},pl={class:`dialog-form__row`},ml={class:`dialog-form__field dialog-form__field--grow`},hl={class:`dialog-form__field dialog-form__field--port`},gl={class:`dialog-form__row`},_l={class:`dialog-form__field`},vl={class:`dialog-form__field`},yl={class:`dialog-form__row`},bl={class:`dialog-form__field`},xl={class:`dialog-form__field`},Sl={class:`dialog-form__row`},Cl={class:`dialog-form__field`},wl={class:`dialog-form__field`},Tl={class:`dialog-form__row`},El={class:`dialog-form__field`},Dl={class:`dialog-form__field`},Ol={class:`dialog-form__field`},kl={key:3,class:`dialog-form__hint-block`},Al=L(B({__name:`ServiceConfigLogSources`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let{t:n}=d(),r=e,i=t,a=[{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 c(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 l=D([...r.service.logSources??[]]);p(()=>r.service.logSources,e=>{l.value=[...e??[]]});let u=D(!1),f=D(null),m=D(c(`console`));function h(){f.value=null,m.value=c(`file`),u.value=!0}function _(e){f.value=e,m.value={...l.value[e]},u.value=!0}function v(e){m.value=c(e)}function y(){f.value===null?l.value=[...l.value,{...m.value}]:l.value=l.value.map((e,t)=>t===f.value?{...m.value}:e),u.value=!1,i(`save`,{logSources:l.value})}function b(e){l.value=l.value.filter((t,n)=>n!==e),i(`save`,{logSources:l.value})}function x(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 S(e){return e===`console`?`pi-terminal`:e===`file`?`pi-file`:`pi-database`}return(e,t)=>(s(),U(`div`,Ic,[R(`div`,Lc,[R(`div`,Rc,[t[23]||=R(`i`,{class:`pi pi-inbox`},null,-1),R(`span`,null,O(o(n)(`serviceConfigLogSources.title`)),1)]),R(`small`,zc,O(o(n)(`serviceConfigLogSources.hint`)),1)]),l.value.length>0?(s(),U(`div`,Bc,[(s(!0),U(N,null,g(l.value,(e,t)=>(s(),U(`div`,{key:t,class:`source-row`},[R(`i`,{class:ue(`pi ${S(e.type)} source-row__icon`)},null,2),R(`div`,Vc,[R(`span`,Hc,O(e.type),1),R(`span`,Uc,O(x(e)),1)]),R(`div`,Wc,[F(o(A),{icon:`pi pi-pencil`,text:``,size:`small`,severity:`secondary`,onClick:e=>_(t)},null,8,[`onClick`]),F(o(A),{icon:`pi pi-trash`,text:``,size:`small`,severity:`danger`,onClick:e=>b(t)},null,8,[`onClick`])])]))),128))])):(s(),U(`div`,Gc,[t[24]||=R(`i`,{class:`pi pi-inbox config-log-sources__empty-icon`},null,-1),R(`p`,null,O(o(n)(`serviceConfigLogSources.empty`)),1),R(`small`,null,O(o(n)(`serviceConfigLogSources.emptyHint`)),1)])),R(`div`,Kc,[F(o(A),{label:o(n)(`serviceConfigLogSources.addSource`),icon:`pi pi-plus`,size:`small`,onClick:h},null,8,[`label`])]),F(o(ve),{visible:u.value,"onUpdate:visible":t[22]||=e=>u.value=e,header:f.value===null?o(n)(`serviceConfigLogSources.addDialog`):o(n)(`serviceConfigLogSources.editDialog`),modal:``,style:{width:`520px`}},{footer:w(()=>[F(o(A),{label:o(n)(`serviceConfigLogSources.cancel`),severity:`secondary`,outlined:``,onClick:t[21]||=e=>u.value=!1},null,8,[`label`]),F(o(A),{label:f.value===null?o(n)(`serviceConfigLogSources.add`):o(n)(`serviceConfigLogSources.save`),icon:`pi pi-check`,onClick:y},null,8,[`label`])]),default:w(()=>[R(`div`,qc,[R(`div`,Jc,[R(`label`,Yc,O(o(n)(`serviceConfigLogSources.type`)),1),F(o(me),{"input-id":`lsrc-type`,"model-value":m.value.type,options:a,"option-label":`label`,"option-value":`value`,class:`dialog-form__input`,"onUpdate:modelValue":v},null,8,[`model-value`])]),m.value.type===`file`?(s(),U(N,{key:0},[R(`div`,Xc,[R(`label`,Zc,[j(O(o(n)(`serviceConfigLogSources.path`))+` `,1),t[25]||=R(`span`,{class:`dialog-form__required`},`*`,-1)]),F(o(I),{id:`lsrc-path-file`,modelValue:m.value.path,"onUpdate:modelValue":t[0]||=e=>m.value.path=e,class:`dialog-form__input`,placeholder:`/var/log/app.log`},null,8,[`modelValue`])]),R(`div`,Qc,[R(`label`,$c,O(o(n)(`serviceConfigLogSources.encoding`)),1),F(o(I),{id:`lsrc-encoding-file`,modelValue:m.value.encoding,"onUpdate:modelValue":t[1]||=e=>m.value.encoding=e,class:`dialog-form__input`,placeholder:`utf-8`},null,8,[`modelValue`])]),R(`div`,el,[R(`label`,tl,O(o(n)(`serviceConfigLogSources.startFromEnd`)),1),F(o(Ee),{"input-id":`lsrc-startFromEnd-file`,modelValue:m.value.startFromEnd,"onUpdate:modelValue":t[2]||=e=>m.value.startFromEnd=e},null,8,[`modelValue`])]),R(`div`,nl,[R(`label`,rl,O(o(n)(`serviceConfigLogSources.createIfNotExists`)),1),F(o(Ee),{"input-id":`lsrc-createIfNotExists-file`,modelValue:m.value.createIfNotExists,"onUpdate:modelValue":t[3]||=e=>m.value.createIfNotExists=e},null,8,[`modelValue`])])],64)):m.value.type===`mongo`?(s(),U(N,{key:1},[R(`div`,il,[R(`label`,al,[j(O(o(n)(`serviceConfigLogSources.connectionString`))+` `,1),t[26]||=R(`span`,{class:`dialog-form__required`},`*`,-1)]),F(o(I),{id:`lsrc-connectionString-mongo`,modelValue:m.value.connectionString,"onUpdate:modelValue":t[4]||=e=>m.value.connectionString=e,class:`dialog-form__input`,placeholder:`mongodb://user:pass@host:27017`,type:`password`,autocomplete:`off`},null,8,[`modelValue`])]),R(`div`,ol,[R(`div`,sl,[t[27]||=R(`label`,{for:`lsrc-database-mongo`,class:`dialog-form__label`},[j(`Database `),R(`span`,{class:`dialog-form__required`},`*`)],-1),F(o(I),{id:`lsrc-database-mongo`,modelValue:m.value.database,"onUpdate:modelValue":t[5]||=e=>m.value.database=e,class:`dialog-form__input`,placeholder:`mydb`},null,8,[`modelValue`])]),R(`div`,cl,[t[28]||=R(`label`,{for:`lsrc-collection-mongo`,class:`dialog-form__label`},[j(`Collection `),R(`span`,{class:`dialog-form__required`},`*`)],-1),F(o(I),{id:`lsrc-collection-mongo`,modelValue:m.value.collection,"onUpdate:modelValue":t[6]||=e=>m.value.collection=e,class:`dialog-form__input`,placeholder:`logs`},null,8,[`modelValue`])])]),R(`div`,ll,[R(`div`,ul,[t[29]||=R(`label`,{for:`lsrc-timestampField-mongo`,class:`dialog-form__label`},`Timestamp field`,-1),F(o(I),{id:`lsrc-timestampField-mongo`,modelValue:m.value.timestampField,"onUpdate:modelValue":t[7]||=e=>m.value.timestampField=e,class:`dialog-form__input`,placeholder:`timestamp`},null,8,[`modelValue`])]),R(`div`,dl,[t[30]||=R(`label`,{for:`lsrc-messageField-mongo`,class:`dialog-form__label`},`Message field`,-1),F(o(I),{id:`lsrc-messageField-mongo`,modelValue:m.value.messageField,"onUpdate:modelValue":t[8]||=e=>m.value.messageField=e,class:`dialog-form__input`,placeholder:`message`},null,8,[`modelValue`])])]),R(`div`,fl,[t[31]||=R(`label`,{for:`lsrc-levelField-mongo`,class:`dialog-form__label`},[j(`Level field `),R(`span`,{class:`dialog-form__hint`},`(optional)`)],-1),F(o(I),{id:`lsrc-levelField-mongo`,modelValue:m.value.levelField,"onUpdate:modelValue":t[9]||=e=>m.value.levelField=e,class:`dialog-form__input`,placeholder:`level`},null,8,[`modelValue`])])],64)):m.value.type===`mysql`?(s(),U(N,{key:2},[R(`div`,pl,[R(`div`,ml,[t[32]||=R(`label`,{for:`lsrc-host-mysql`,class:`dialog-form__label`},[j(`Host `),R(`span`,{class:`dialog-form__required`},`*`)],-1),F(o(I),{id:`lsrc-host-mysql`,modelValue:m.value.host,"onUpdate:modelValue":t[10]||=e=>m.value.host=e,class:`dialog-form__input`,placeholder:`localhost`},null,8,[`modelValue`])]),R(`div`,hl,[t[33]||=R(`label`,{for:`lsrc-port-mysql`,class:`dialog-form__label`},`Port`,-1),F(o(we),{"input-id":`lsrc-port-mysql`,modelValue:m.value.port,"onUpdate:modelValue":t[11]||=e=>m.value.port=e,min:1,max:65535,class:`dialog-form__input`},null,8,[`modelValue`])])]),R(`div`,gl,[R(`div`,_l,[t[34]||=R(`label`,{for:`lsrc-user-mysql`,class:`dialog-form__label`},[j(`User `),R(`span`,{class:`dialog-form__required`},`*`)],-1),F(o(I),{id:`lsrc-user-mysql`,modelValue:m.value.user,"onUpdate:modelValue":t[12]||=e=>m.value.user=e,class:`dialog-form__input`,placeholder:`root`},null,8,[`modelValue`])]),R(`div`,vl,[t[35]||=R(`label`,{for:`lsrc-password-mysql`,class:`dialog-form__label`},`Password`,-1),F(o(I),{id:`lsrc-password-mysql`,modelValue:m.value.password,"onUpdate:modelValue":t[13]||=e=>m.value.password=e,class:`dialog-form__input`,type:`password`,autocomplete:`new-password`},null,8,[`modelValue`])])]),R(`div`,yl,[R(`div`,bl,[t[36]||=R(`label`,{for:`lsrc-database-mysql`,class:`dialog-form__label`},[j(`Database `),R(`span`,{class:`dialog-form__required`},`*`)],-1),F(o(I),{id:`lsrc-database-mysql`,modelValue:m.value.database,"onUpdate:modelValue":t[14]||=e=>m.value.database=e,class:`dialog-form__input`,placeholder:`app_db`},null,8,[`modelValue`])]),R(`div`,xl,[t[37]||=R(`label`,{for:`lsrc-table-mysql`,class:`dialog-form__label`},[j(`Table `),R(`span`,{class:`dialog-form__required`},`*`)],-1),F(o(I),{id:`lsrc-table-mysql`,modelValue:m.value.table,"onUpdate:modelValue":t[15]||=e=>m.value.table=e,class:`dialog-form__input`,placeholder:`logs`},null,8,[`modelValue`])])]),R(`div`,Sl,[R(`div`,Cl,[t[38]||=R(`label`,{for:`lsrc-timestampColumn-mysql`,class:`dialog-form__label`},`Timestamp column`,-1),F(o(I),{id:`lsrc-timestampColumn-mysql`,modelValue:m.value.timestampColumn,"onUpdate:modelValue":t[16]||=e=>m.value.timestampColumn=e,class:`dialog-form__input`,placeholder:`created_at`},null,8,[`modelValue`])]),R(`div`,wl,[t[39]||=R(`label`,{for:`lsrc-messageColumn-mysql`,class:`dialog-form__label`},`Message column`,-1),F(o(I),{id:`lsrc-messageColumn-mysql`,modelValue:m.value.messageColumn,"onUpdate:modelValue":t[17]||=e=>m.value.messageColumn=e,class:`dialog-form__input`,placeholder:`message`},null,8,[`modelValue`])])]),R(`div`,Tl,[R(`div`,El,[t[40]||=R(`label`,{for:`lsrc-levelColumn-mysql`,class:`dialog-form__label`},[j(`Level column `),R(`span`,{class:`dialog-form__hint`},`(optional)`)],-1),F(o(I),{id:`lsrc-levelColumn-mysql`,modelValue:m.value.levelColumn,"onUpdate:modelValue":t[18]||=e=>m.value.levelColumn=e,class:`dialog-form__input`,placeholder:`level`},null,8,[`modelValue`])]),R(`div`,Dl,[t[41]||=R(`label`,{for:`lsrc-pollIntervalMs-mysql`,class:`dialog-form__label`},`Poll interval (ms)`,-1),F(o(we),{"input-id":`lsrc-pollIntervalMs-mysql`,modelValue:m.value.pollIntervalMs,"onUpdate:modelValue":t[19]||=e=>m.value.pollIntervalMs=e,min:500,max:6e4,class:`dialog-form__input`},null,8,[`modelValue`])])]),R(`div`,Ol,[t[42]||=R(`label`,{for:`lsrc-query-mysql`,class:`dialog-form__label`},[j(`Custom query `),R(`span`,{class:`dialog-form__hint`},[j(`(optional, must include `),R(`code`,null,`WHERE … > ?`),j(`)`)])],-1),F(o(I),{id:`lsrc-query-mysql`,modelValue:m.value.query,"onUpdate:modelValue":t[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`?(s(),U(`small`,kl,`The console source captures stdout/stderr and is always active. Adding it here has no effect unless you want to track it explicitly.`)):V(``,!0)])]),_:1},8,[`visible`,`header`])]))}}),[[`__scopeId`,`data-v-1ceb461a`]]),jl={class:`config-traefik`},Ml={class:`traefik-entry__fields`},Nl=L(B({__name:`ServiceConfigTraefik`,props:{service:{}},emits:[`save`],setup(e,{emit:n}){let r=e,i=n,a=D([...r.service.localUrls??[]]),c=D(null);se(async()=>{r.service.agentId&&(c.value=(await h.settings.getAgentTraefikConfig.query({agentId:r.service.agentId})).enabled)});let l=null;p(()=>r.service,e=>{l||(a.value=[...e.localUrls??[]])});function u(){a.value=[...a.value,{url:``,port:3e3}]}function d(e){a.value=a.value.filter((t,n)=>n!==e),m()}function f(e,t,n){a.value=a.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function m(){l&&clearTimeout(l),l=setTimeout(()=>{i(`save`,{localUrls:a.value.filter(e=>e.url.trim())}),l=null},150)}return(e,n)=>(s(),U(`div`,jl,[c.value===!1?(s(),k(o(be),{key:0,severity:`warn`,closable:!1},{default:w(()=>[n[1]||=j(` Traefik n'est pas activé. Configurez-le dans `,-1),F(o(t),{to:{name:`settings`,query:{section:`agents`}}},{default:w(()=>[...n[0]||=[j(`Paramètres → Agents`,-1)]]),_:1}),n[2]||=j(` (bouton Traefik sur la ligne de l'agent) pour que ces URLs soient actives. `,-1)]),_:1})):V(``,!0),(s(!0),U(N,null,g(a.value,(e,t)=>(s(),U(`div`,{key:t,class:`traefik-entry`},[R(`div`,Ml,[F(o(I),{"model-value":e.url,class:`traefik-entry__url`,placeholder:`mon-app.local.mondomaine.com`,"onUpdate:modelValue":e=>f(t,`url`,e),onBlur:m,onKeydown:E(T(m,[`prevent`]),[`enter`])},null,8,[`model-value`,`onUpdate:modelValue`,`onKeydown`]),F(o(we),{"model-value":e.port,class:`traefik-entry__port`,min:1,max:65535,"use-grouping":!1,placeholder:`3000`,"onUpdate:modelValue":e=>{f(t,`port`,e??3e3),m()}},null,8,[`model-value`,`onUpdate:modelValue`]),F(o(A),{icon:`pi pi-trash`,severity:`danger`,text:``,size:`small`,onClick:e=>d(t)},null,8,[`onClick`])])]))),128)),F(o(A),{icon:`pi pi-plus`,label:`Ajouter une URL`,size:`small`,outlined:``,onClick:u})]))}}),[[`__scopeId`,`data-v-a71f945b`]]),Pl={class:`config-view`,"data-testid":`config-view`},Fl={class:`config-view__header`},Il={class:`config-view__title`},Ll={class:`config-view__actions`},Rl=L(B({__name:`ServiceConfigView`,props:{service:{},projectId:{}},emits:[`remove-service`],setup(e,{emit:t}){let r=e,i=t,{t:a}=d(),l=ge(),u=n(),f=c(),{isDebug:p}=Zt(),m=v(),h=x(),g=[`general`,`commands`,`shortcuts`,`env`,`health`,`log-parsers`,`log-sources`,`traefik`],_=H(()=>{let e=m.query.configTab;return g.includes(e)?e:`general`});function y(e){h.replace({query:{...m.query,configTab:e}})}let b=H(()=>u.getByRef({id:r.projectId,orgId:f.activeOrgId})?.activeEnvironmentId);async function S(e,t){await t()?p.value&&console.debug(`[autosave] ${e} saved`):console.error(`[autosave] ${e} failed:`,l.error??`Save failed`)}async function C(e){await S(`General`,()=>l.update(r.service.id,e))}async function T(e){await S(`Commands`,()=>l.update(r.service.id,e))}async function ee(e){await S(`Health check`,()=>l.update(r.service.id,{healthCheck:e??null}))}async function te(e){await S(`Shortcuts`,()=>l.update(r.service.id,{shortcuts:e}))}async function E(e){await S(`Docker`,()=>l.update(r.service.id,{dockerConfig:e}))}async function D(e){await S(`Log parsers`,()=>l.update(r.service.id,e))}async function ne(e){await S(`Log sources`,()=>l.update(r.service.id,e))}async function re(e){await S(`Traefik`,()=>l.update(r.service.id,e))}function k(){i(`remove-service`,r.service.id)}return(t,n)=>(s(),U(`div`,Pl,[R(`div`,Fl,[R(`h2`,Il,O(o(a)(`serviceConfigView.title`)),1),R(`div`,Ll,[F(o(A),{label:o(a)(`serviceConfigView.remove`),icon:`pi pi-trash`,severity:`danger`,size:`small`,outlined:``,onClick:k},null,8,[`label`])])]),F(o(De),{value:_.value,class:`config-view__tabs`,"onUpdate:value":y},{default:w(()=>[F(o(Oe),null,{default:w(()=>[F(o(Ae),{value:`general`,"data-testid":`tab-config`},{default:w(()=>[n[0]||=R(`i`,{class:`pi pi-cog tab-icon`},null,-1),R(`span`,null,O(o(a)(`serviceConfigView.tabGeneral`)),1)]),_:1}),F(o(Ae),{value:`commands`,"data-testid":`tab-commands`},{default:w(()=>[n[1]||=R(`i`,{class:`pi pi-code tab-icon`},null,-1),R(`span`,null,O(o(a)(`serviceConfigView.tabCommands`)),1)]),_:1}),F(o(Ae),{value:`shortcuts`,"data-testid":`tab-shortcuts`},{default:w(()=>[n[2]||=R(`i`,{class:`pi pi-bolt tab-icon`},null,-1),R(`span`,null,O(o(a)(`serviceConfigView.tabShortcuts`)),1)]),_:1}),F(o(Ae),{value:`env`,"data-testid":`tab-env`},{default:w(()=>[n[3]||=R(`i`,{class:`pi pi-database tab-icon`},null,-1),R(`span`,null,O(o(a)(`serviceConfigView.tabEnvironment`)),1)]),_:1}),F(o(Ae),{value:`health`},{default:w(()=>[n[4]||=R(`i`,{class:`pi pi-heart tab-icon`},null,-1),R(`span`,null,O(o(a)(`serviceConfigView.tabHealthCheck`)),1)]),_:1}),F(o(Ae),{value:`log-parsers`,"data-testid":`tab-log-parsers`},{default:w(()=>[n[5]||=R(`i`,{class:`pi pi-list tab-icon`},null,-1),R(`span`,null,O(o(a)(`serviceConfigView.tabLogParsers`)),1)]),_:1}),F(o(Ae),{value:`log-sources`},{default:w(()=>[n[6]||=R(`i`,{class:`pi pi-inbox tab-icon`},null,-1),R(`span`,null,O(o(a)(`serviceConfigView.tabLogSources`)),1)]),_:1}),F(o(Ae),{value:`traefik`},{default:w(()=>[...n[7]||=[R(`i`,{class:`pi pi-server tab-icon`},null,-1),R(`span`,null,`Traefik`,-1)]]),_:1})]),_:1}),F(o(ke),null,{default:w(()=>[F(o(je),{value:`general`},{default:w(()=>[F(Nn,{service:e.service,onSave:C},null,8,[`service`])]),_:1}),F(o(je),{value:`commands`},{default:w(()=>[F(ai,{service:e.service,onSave:T,onDockerSave:E},null,8,[`service`])]),_:1}),F(o(je),{value:`shortcuts`,"data-testid":`tabpanel-shortcuts`},{default:w(()=>[F(Ea,{service:e.service,onSave:te},null,8,[`service`])]),_:1}),F(o(je),{value:`env`},{default:w(()=>[F(Gi,{service:e.service,"project-id":e.projectId,"active-environment-id":b.value},null,8,[`service`,`project-id`,`active-environment-id`])]),_:1}),F(o(je),{value:`health`},{default:w(()=>[F(ma,{service:e.service,onSave:ee},null,8,[`service`])]),_:1}),F(o(je),{value:`log-parsers`,"data-testid":`tabpanel-log-parsers`},{default:w(()=>[F(Fc,{service:e.service,onSave:D},null,8,[`service`])]),_:1}),F(o(je),{value:`log-sources`},{default:w(()=>[F(Al,{service:e.service,onSave:ne},null,8,[`service`])]),_:1}),F(o(je),{value:`traefik`},{default:w(()=>[F(Nl,{service:e.service,onSave:re},null,8,[`service`])]),_:1})]),_:1})]),_:1},8,[`value`])]))}}),[[`__scopeId`,`data-v-af965568`]]),zl={key:0,class:`service-detail`},Bl={key:1,class:`service-detail__not-found`},Vl=L(B({__name:`ServiceDetailPage`,setup(e){let t=v(),r=x(),i=ee(),c=_(),{t:l}=d(),u=ge(),f=le(),m=n(),{setServiceContext:h}=S(),g=H(()=>t.params.id);p(g,e=>h(e),{immediate:!0}),b(()=>h(null));let y=H(()=>{let e=t.params.tab;return e===`terminal`||e===`metrics`||e===`config`||e===`git`||e===`wiki`?e:`terminal`}),C=H(()=>u.getById(g.value)),w=H(()=>f.getByService(g.value)),T=H(()=>m.currentProject?.id??``);function te(e){let t=u.getById(e);c.require({message:l(`serviceDetail.deleteConfirmMessage`,{name:t?.name??e}),header:l(`serviceDetail.deleteConfirmHeader`),icon:`pi pi-exclamation-triangle`,rejectLabel:l(`actions.cancel`),acceptLabel:l(`actions.delete`),acceptProps:{severity:`danger`},accept:async()=>{await u.remove(e)&&(i.add({severity:`success`,summary:l(`serviceDetail.removed`),detail:l(`serviceDetail.deleted`),life:3e3}),r.push(`/`))}})}return(e,t)=>C.value?(s(),U(`div`,zl,[y.value===`terminal`?(s(),k(Lt,{key:`terminal-`+g.value,service:C.value,processes:w.value},null,8,[`service`,`processes`])):y.value===`metrics`?(s(),k(Jt,{key:`metrics-`+g.value,service:C.value,processes:w.value},null,8,[`service`,`processes`])):y.value===`config`?(s(),k(Rl,{key:`config-`+g.value,service:C.value,"project-id":T.value,onRemoveService:te},null,8,[`service`,`project-id`])):y.value===`git`?(s(),k(a,{key:`git-`+g.value,"service-id":g.value},null,8,[`service-id`])):y.value===`wiki`?(s(),k(Ve,{key:`wiki-`+g.value,scope:`service:${g.value}`},null,8,[`scope`])):V(``,!0)])):(s(),U(`div`,Bl,[R(`p`,null,O(o(l)(`serviceDetail.notFound`)),1)]))}}),[[`__scopeId`,`data-v-e3e9fe7f`]]);export{Vl as default};
@@ -1 +1 @@
1
- import{At as e,Ea as t,Fi as n,Ft as r,H as i,Hn as ee,Kt as a,Li as te,Mn as ne,Mt as o,Nn as re,Q as ie,Qi as ae,Qr as s,Rn as oe,Zr as c,_a as l,aa as u,bn as d,ei as f,fi as p,fn as m,gn as h,ha as se,ii as g,ji as ce,l as le,mi as _,oi as v,ri as y,rn as b,si as x,tt as ue}from"./index-enuBsJBa.js";import{n as S}from"./plus-RuIcofM_.js";import{t as de}from"./fieldset-D9lkV70l.js";import{t as fe}from"./toggleswitch-C4A0_850.js";import{t as pe}from"./autocomplete-CrMQ2sCk.js";import{t as C}from"./divider-DnPOdDs3.js";var me={class:`service-form-page`},he={class:`page-header`},ge={key:0,class:`restart-banner`},_e={key:1,class:`loading-container`},ve={class:`form-section`},ye={class:`form-group`},be={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`},Pe={for:`svc-autorestart`},Fe={class:`form-section`},Ie={class:`section-header`},Le={key:0,class:`empty-env`},P={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=h(_({__name:`ServiceFormPage`,props:{id:{}},setup(h){let _=h,I=re(),Ke=ne(),L=oe(),R=e(),z=ue(),B=ie(),V=r(),qe=le(),{t:H}=ee(),U=y(()=>!!_.id),W=y(()=>Ke.query.projectId),G=l(!1),K=l(!1),q=l(null),J=l(null),Y=l(!1),X=se({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=y(()=>R.projects.map(e=>({label:e.name,value:e.id}))),Q=y(()=>[{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(_.id){G.value=!0;try{let e=await a.service.get.query({id:_.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:o(e)??H(`serviceForm.failedToLoad`),life:5e3}),I.back()}finally{G.value=!1}}}async function $(){if(!(!U.value||!_.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:_.id,...e}))?.stoppedForAgentChange?(q.value=e.agentId,J.value=_.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:o(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:o(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:o(e)??H(`serviceForm.failedToSave`),life:5e3})}finally{K.value=!1}}return ce(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()}),(e,r)=>(n(),x(`div`,me,[g(`div`,he,[p(t(d),{icon:`pi pi-arrow-left`,severity:`secondary`,text:``,rounded:``,onClick:r[0]||=e=>t(I).back()}),g(`h1`,null,u(U.value?t(H)(`serviceForm.editTitle`):t(H)(`serviceForm.createTitle`)),1)]),J.value?(n(),x(`div`,ge,[g(`span`,null,u(t(H)(`serviceForm.agentChangedServiceStopped`)),1),p(t(d),{label:t(H)(`serviceForm.restartNow`),icon:`pi pi-play`,severity:`warning`,size:`small`,loading:Y.value,onClick:et},null,8,[`label`,`loading`]),p(t(d),{icon:`pi pi-times`,severity:`secondary`,text:``,rounded:``,size:`small`,onClick:r[1]||=e=>{J.value=null,q.value=null}})])):v(``,!0),G.value?(n(),x(`div`,_e,[p(t(i))])):(n(),x(`form`,{key:2,class:`service-form`,onSubmit:s(tt,[`prevent`])},[U.value?(n(),x(f,{key:1},[g(`div`,M,[g(`div`,N,[g(`div`,xe,[g(`label`,Se,u(t(H)(`serviceForm.nameLabelShort`)),1),p(t(m),{id:`svc-name-edit`,modelValue:X.name,"onUpdate:modelValue":r[6]||=e=>X.name=e,placeholder:`my-service`,class:`w-full`,onBlur:$,onKeydown:c(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,Ce,[g(`label`,we,u(t(H)(`serviceForm.runnerLabel`)),1),p(t(b),{id:`svc-runner`,modelValue:X.runner,"onUpdate:modelValue":r[7]||=e=>X.runner=e,options:Je,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`])])]),g(`div`,Te,[g(`label`,Ee,u(t(H)(`serviceForm.agentLabel`)),1),p(t(b),{id:`svc-agent-edit`,modelValue:X.agentId,"onUpdate:modelValue":r[8]||=e=>X.agentId=e,options:Q.value,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`,`options`]),g(`small`,De,u(t(H)(`serviceForm.agentHintEdit`)),1)]),g(`div`,Oe,[g(`div`,ke,[g(`label`,Ae,u(t(H)(`serviceForm.cwdLabel`)),1),p(t(m),{id:`svc-cwd`,modelValue:X.cwd,"onUpdate:modelValue":r[9]||=e=>X.cwd=e,placeholder:`.`,class:`w-full`,onBlur:$,onKeydown:c(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,je,[g(`label`,Me,u(t(H)(`serviceForm.portsLabel`)),1),p(t(pe),{inputId:`svc-ports`,modelValue:X.ports,"onUpdate:modelValue":r[10]||=e=>X.ports=e,multiple:``,typeahead:!1,placeholder:t(H)(`serviceForm.portsPlaceholder`),class:`w-full`,onChange:$},null,8,[`modelValue`,`placeholder`])])]),g(`div`,Ne,[p(t(fe),{modelValue:X.autoRestart,"onUpdate:modelValue":r[11]||=e=>X.autoRestart=e,inputId:`svc-autorestart`,onChange:$},null,8,[`modelValue`]),g(`label`,Pe,u(t(H)(`serviceForm.autoRestart`)),1)])]),p(t(C)),g(`div`,Fe,[g(`div`,Ie,[g(`h3`,null,u(t(H)(`serviceForm.envVars`)),1),p(t(d),{label:t(H)(`serviceForm.addEnvVar`),icon:`pi pi-plus`,severity:`secondary`,size:`small`,onClick:Xe},null,8,[`label`])]),Z.value.length===0?(n(),x(`div`,Le,[g(`small`,null,u(t(H)(`serviceForm.noEnvVars`)),1)])):v(``,!0),(n(!0),x(f,null,te(Z.value,(e,i)=>(n(),x(`div`,{key:i,class:`env-row`},[p(t(m),{modelValue:e.key,"onUpdate:modelValue":t=>e.key=t,placeholder:`KEY`,class:`env-key`,onBlur:$,onKeydown:c(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),r[17]||=g(`span`,{class:`env-eq`},`=`,-1),p(t(m),{modelValue:e.value,"onUpdate:modelValue":t=>e.value=t,placeholder:`value`,class:`env-value`,onBlur:$,onKeydown:c(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),p(t(d),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:()=>{Ze(i),$()}},null,8,[`onClick`])]))),128))]),p(t(C)),p(t(de),{legend:t(H)(`serviceForm.healthCheck`),toggleable:!0,collapsed:!X.healthCheck.enabled,onToggle:r[16]||=e=>{X.healthCheck.enabled=!e.value,$()}},{default:ae(()=>[g(`div`,P,[g(`label`,Re,u(t(H)(`serviceForm.healthCheckPath`)),1),p(t(m),{id:`hc-path`,modelValue:X.healthCheck.path,"onUpdate:modelValue":r[12]||=e=>X.healthCheck.path=e,placeholder:`/health`,class:`w-full`,onBlur:$,onKeydown:c(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,ze,[g(`div`,Be,[g(`label`,Ve,u(t(H)(`serviceForm.interval`)),1),p(t(S),{id:`hc-interval`,modelValue:X.healthCheck.interval,"onUpdate:modelValue":r[13]||=e=>X.healthCheck.interval=e,min:1e3,step:1e3,class:`w-full`,onBlur:$,onKeydown:c(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,He,[g(`label`,Ue,u(t(H)(`serviceForm.timeout`)),1),p(t(S),{id:`hc-timeout`,modelValue:X.healthCheck.timeout,"onUpdate:modelValue":r[14]||=e=>X.healthCheck.timeout=e,min:500,step:500,class:`w-full`,onBlur:$,onKeydown:c(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,We,[g(`label`,Ge,u(t(H)(`serviceForm.retries`)),1),p(t(S),{id:`hc-retries`,modelValue:X.healthCheck.retries,"onUpdate:modelValue":r[15]||=e=>X.healthCheck.retries=e,min:0,max:20,class:`w-full`,onBlur:$,onKeydown:c(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])])]),_:1},8,[`legend`,`collapsed`]),p(t(C))],64)):(n(),x(f,{key:0},[g(`div`,ve,[g(`div`,ye,[g(`label`,be,u(t(H)(`serviceForm.projectLabel`)),1),p(t(b),{id:`svc-project`,modelValue:X.projectId,"onUpdate:modelValue":r[2]||=e=>X.projectId=e,options:Ye.value,optionLabel:`label`,optionValue:`value`,placeholder:t(H)(`serviceForm.projectPlaceholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),g(`small`,w,u(t(H)(`serviceForm.projectHint`)),1)]),g(`div`,T,[g(`label`,E,u(t(H)(`serviceForm.agentLabel`)),1),p(t(b),{id:`svc-agent`,modelValue:X.agentId,"onUpdate:modelValue":r[3]||=e=>X.agentId=e,options:Q.value,optionLabel:`label`,optionValue:`value`,placeholder:t(H)(`serviceForm.agentInherit`),"show-clear":``,class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),g(`small`,D,u(t(H)(`serviceForm.agentHint`)),1)]),g(`div`,O,[g(`label`,k,u(t(H)(`serviceForm.nameLabel`)),1),p(t(m),{id:`svc-name`,modelValue:X.name,"onUpdate:modelValue":r[4]||=e=>X.name=e,placeholder:`my-service`,class:`w-full`},null,8,[`modelValue`]),g(`small`,A,u(t(H)(`serviceForm.nameConfigHint`)),1)])]),p(t(C)),g(`div`,j,[p(t(d),{label:t(H)(`serviceForm.cancel`),severity:`secondary`,text:``,onClick:r[5]||=e=>t(I).back()},null,8,[`label`]),p(t(d),{label:t(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};
1
+ import{At as e,Ea as t,Fi as n,Ft as r,H as i,Hn as ee,Kt as a,Li as te,Mn as ne,Mt as o,Nn as re,Q as ie,Qi as ae,Qr as s,Rn as oe,Zr as c,_a as l,aa as u,bn as d,ei as f,fi as p,fn as m,gn as h,ha as se,ii as g,ji as ce,l as le,mi as _,oi as v,ri as y,rn as b,si as x,tt as ue}from"./index-a6DAapTb.js";import{n as S}from"./plus-BPT_7GGk.js";import{t as de}from"./fieldset-LX5cdTvN.js";import{t as fe}from"./toggleswitch-DcDrXRKn.js";import{t as pe}from"./autocomplete-BakcEoGP.js";import{t as C}from"./divider-BrO5nkpd.js";var me={class:`service-form-page`},he={class:`page-header`},ge={key:0,class:`restart-banner`},_e={key:1,class:`loading-container`},ve={class:`form-section`},ye={class:`form-group`},be={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`},Pe={for:`svc-autorestart`},Fe={class:`form-section`},Ie={class:`section-header`},Le={key:0,class:`empty-env`},P={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=h(_({__name:`ServiceFormPage`,props:{id:{}},setup(h){let _=h,I=re(),Ke=ne(),L=oe(),R=e(),z=ue(),B=ie(),V=r(),qe=le(),{t:H}=ee(),U=y(()=>!!_.id),W=y(()=>Ke.query.projectId),G=l(!1),K=l(!1),q=l(null),J=l(null),Y=l(!1),X=se({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=y(()=>R.projects.map(e=>({label:e.name,value:e.id}))),Q=y(()=>[{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(_.id){G.value=!0;try{let e=await a.service.get.query({id:_.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:o(e)??H(`serviceForm.failedToLoad`),life:5e3}),I.back()}finally{G.value=!1}}}async function $(){if(!(!U.value||!_.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:_.id,...e}))?.stoppedForAgentChange?(q.value=e.agentId,J.value=_.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:o(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:o(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:o(e)??H(`serviceForm.failedToSave`),life:5e3})}finally{K.value=!1}}return ce(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()}),(e,r)=>(n(),x(`div`,me,[g(`div`,he,[p(t(d),{icon:`pi pi-arrow-left`,severity:`secondary`,text:``,rounded:``,onClick:r[0]||=e=>t(I).back()}),g(`h1`,null,u(U.value?t(H)(`serviceForm.editTitle`):t(H)(`serviceForm.createTitle`)),1)]),J.value?(n(),x(`div`,ge,[g(`span`,null,u(t(H)(`serviceForm.agentChangedServiceStopped`)),1),p(t(d),{label:t(H)(`serviceForm.restartNow`),icon:`pi pi-play`,severity:`warning`,size:`small`,loading:Y.value,onClick:et},null,8,[`label`,`loading`]),p(t(d),{icon:`pi pi-times`,severity:`secondary`,text:``,rounded:``,size:`small`,onClick:r[1]||=e=>{J.value=null,q.value=null}})])):v(``,!0),G.value?(n(),x(`div`,_e,[p(t(i))])):(n(),x(`form`,{key:2,class:`service-form`,onSubmit:s(tt,[`prevent`])},[U.value?(n(),x(f,{key:1},[g(`div`,M,[g(`div`,N,[g(`div`,xe,[g(`label`,Se,u(t(H)(`serviceForm.nameLabelShort`)),1),p(t(m),{id:`svc-name-edit`,modelValue:X.name,"onUpdate:modelValue":r[6]||=e=>X.name=e,placeholder:`my-service`,class:`w-full`,onBlur:$,onKeydown:c(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,Ce,[g(`label`,we,u(t(H)(`serviceForm.runnerLabel`)),1),p(t(b),{id:`svc-runner`,modelValue:X.runner,"onUpdate:modelValue":r[7]||=e=>X.runner=e,options:Je,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`])])]),g(`div`,Te,[g(`label`,Ee,u(t(H)(`serviceForm.agentLabel`)),1),p(t(b),{id:`svc-agent-edit`,modelValue:X.agentId,"onUpdate:modelValue":r[8]||=e=>X.agentId=e,options:Q.value,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`,`options`]),g(`small`,De,u(t(H)(`serviceForm.agentHintEdit`)),1)]),g(`div`,Oe,[g(`div`,ke,[g(`label`,Ae,u(t(H)(`serviceForm.cwdLabel`)),1),p(t(m),{id:`svc-cwd`,modelValue:X.cwd,"onUpdate:modelValue":r[9]||=e=>X.cwd=e,placeholder:`.`,class:`w-full`,onBlur:$,onKeydown:c(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,je,[g(`label`,Me,u(t(H)(`serviceForm.portsLabel`)),1),p(t(pe),{inputId:`svc-ports`,modelValue:X.ports,"onUpdate:modelValue":r[10]||=e=>X.ports=e,multiple:``,typeahead:!1,placeholder:t(H)(`serviceForm.portsPlaceholder`),class:`w-full`,onChange:$},null,8,[`modelValue`,`placeholder`])])]),g(`div`,Ne,[p(t(fe),{modelValue:X.autoRestart,"onUpdate:modelValue":r[11]||=e=>X.autoRestart=e,inputId:`svc-autorestart`,onChange:$},null,8,[`modelValue`]),g(`label`,Pe,u(t(H)(`serviceForm.autoRestart`)),1)])]),p(t(C)),g(`div`,Fe,[g(`div`,Ie,[g(`h3`,null,u(t(H)(`serviceForm.envVars`)),1),p(t(d),{label:t(H)(`serviceForm.addEnvVar`),icon:`pi pi-plus`,severity:`secondary`,size:`small`,onClick:Xe},null,8,[`label`])]),Z.value.length===0?(n(),x(`div`,Le,[g(`small`,null,u(t(H)(`serviceForm.noEnvVars`)),1)])):v(``,!0),(n(!0),x(f,null,te(Z.value,(e,i)=>(n(),x(`div`,{key:i,class:`env-row`},[p(t(m),{modelValue:e.key,"onUpdate:modelValue":t=>e.key=t,placeholder:`KEY`,class:`env-key`,onBlur:$,onKeydown:c(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),r[17]||=g(`span`,{class:`env-eq`},`=`,-1),p(t(m),{modelValue:e.value,"onUpdate:modelValue":t=>e.value=t,placeholder:`value`,class:`env-value`,onBlur:$,onKeydown:c(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),p(t(d),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:()=>{Ze(i),$()}},null,8,[`onClick`])]))),128))]),p(t(C)),p(t(de),{legend:t(H)(`serviceForm.healthCheck`),toggleable:!0,collapsed:!X.healthCheck.enabled,onToggle:r[16]||=e=>{X.healthCheck.enabled=!e.value,$()}},{default:ae(()=>[g(`div`,P,[g(`label`,Re,u(t(H)(`serviceForm.healthCheckPath`)),1),p(t(m),{id:`hc-path`,modelValue:X.healthCheck.path,"onUpdate:modelValue":r[12]||=e=>X.healthCheck.path=e,placeholder:`/health`,class:`w-full`,onBlur:$,onKeydown:c(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,ze,[g(`div`,Be,[g(`label`,Ve,u(t(H)(`serviceForm.interval`)),1),p(t(S),{id:`hc-interval`,modelValue:X.healthCheck.interval,"onUpdate:modelValue":r[13]||=e=>X.healthCheck.interval=e,min:1e3,step:1e3,class:`w-full`,onBlur:$,onKeydown:c(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,He,[g(`label`,Ue,u(t(H)(`serviceForm.timeout`)),1),p(t(S),{id:`hc-timeout`,modelValue:X.healthCheck.timeout,"onUpdate:modelValue":r[14]||=e=>X.healthCheck.timeout=e,min:500,step:500,class:`w-full`,onBlur:$,onKeydown:c(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),g(`div`,We,[g(`label`,Ge,u(t(H)(`serviceForm.retries`)),1),p(t(S),{id:`hc-retries`,modelValue:X.healthCheck.retries,"onUpdate:modelValue":r[15]||=e=>X.healthCheck.retries=e,min:0,max:20,class:`w-full`,onBlur:$,onKeydown:c(s($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])])]),_:1},8,[`legend`,`collapsed`]),p(t(C))],64)):(n(),x(f,{key:0},[g(`div`,ve,[g(`div`,ye,[g(`label`,be,u(t(H)(`serviceForm.projectLabel`)),1),p(t(b),{id:`svc-project`,modelValue:X.projectId,"onUpdate:modelValue":r[2]||=e=>X.projectId=e,options:Ye.value,optionLabel:`label`,optionValue:`value`,placeholder:t(H)(`serviceForm.projectPlaceholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),g(`small`,w,u(t(H)(`serviceForm.projectHint`)),1)]),g(`div`,T,[g(`label`,E,u(t(H)(`serviceForm.agentLabel`)),1),p(t(b),{id:`svc-agent`,modelValue:X.agentId,"onUpdate:modelValue":r[3]||=e=>X.agentId=e,options:Q.value,optionLabel:`label`,optionValue:`value`,placeholder:t(H)(`serviceForm.agentInherit`),"show-clear":``,class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),g(`small`,D,u(t(H)(`serviceForm.agentHint`)),1)]),g(`div`,O,[g(`label`,k,u(t(H)(`serviceForm.nameLabel`)),1),p(t(m),{id:`svc-name`,modelValue:X.name,"onUpdate:modelValue":r[4]||=e=>X.name=e,placeholder:`my-service`,class:`w-full`},null,8,[`modelValue`]),g(`small`,A,u(t(H)(`serviceForm.nameConfigHint`)),1)])]),p(t(C)),g(`div`,j,[p(t(d),{label:t(H)(`serviceForm.cancel`),severity:`secondary`,text:``,onClick:r[5]||=e=>t(I).back()},null,8,[`label`]),p(t(d),{label:t(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};