@runeya/runeya 2.0.45 → 2.0.46

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 (297) hide show
  1. package/agent/index.js +5 -5
  2. package/agent/index.js.map +1 -1
  3. package/agent-manager-JJYZDLNB.js +7 -0
  4. package/{chunk-B6C5AXMK.js → chunk-5PRQBES2.js} +247 -63
  5. package/chunk-5PRQBES2.js.map +1 -0
  6. package/index.js +1 -1
  7. package/package.json +1 -1
  8. package/{src-ZKQETCHR.js → src-5QPLS5TQ.js} +1102 -493
  9. package/src-5QPLS5TQ.js.map +1 -0
  10. package/web/assets/{AgentScalarChatInterface.vue-IDhv2vYG.js → AgentScalarChatInterface.vue-Z3BLbola.js} +1 -1
  11. package/web/assets/AgentTerminalPage-BlQ3k7VX.css +1 -0
  12. package/web/assets/AgentTerminalPage-Dg4kOMbK.js +1 -0
  13. package/web/assets/AiChatPage-0igbt0Ie.js +1 -0
  14. package/web/assets/AppLayout-BQpUnN2N.js +1 -0
  15. package/web/assets/{AppLayout-Bqs7ug1K.css → AppLayout-D1bdzemo.css} +1 -1
  16. package/web/assets/{AuditPage-D__LOvkN.js → AuditPage-zfim5OLa.js} +1 -1
  17. package/web/assets/{CloudAccountPage-ll1uAGyN.js → CloudAccountPage-BD-L27Wl.js} +1 -1
  18. package/web/assets/CloudAccountPage-CHZG-vv-.js +1 -0
  19. package/web/assets/CloudMessagingPage-BnaGxzNK.js +2 -0
  20. package/web/assets/CloudMessagingPage-x4bDmgyb.css +1 -0
  21. package/web/assets/{DashboardPage-XFl45skz.js → DashboardPage-ByzcpJV7.js} +1 -1
  22. package/web/assets/{EditorIcon-DHxnxi15.js → EditorIcon-jk0Nz8Mr.js} +1 -1
  23. package/web/assets/{EnvironmentForm-D_JXws5q.js → EnvironmentForm-BH4EMxM6.js} +1 -1
  24. package/web/assets/{EnvironmentFormPage-7YhkQZnF.js → EnvironmentFormPage-Bwjr8SsV.js} +1 -1
  25. package/web/assets/EnvironmentListPage-BgqHe-4p.js +1 -0
  26. package/web/assets/EnvironmentListPage-BwgJscFQ.css +1 -0
  27. package/web/assets/{EnvironmentSelector-zX2RSq7p.js → EnvironmentSelector-CBh21uuY.js} +1 -1
  28. package/web/assets/{KanbanBoardPage-CYiVnEsW.js → KanbanBoardPage-Dg0Od24D.js} +3 -3
  29. package/web/assets/{KanbanListPage-DA8VLR_A.js → KanbanListPage-C6bsD-gJ.js} +1 -1
  30. package/web/assets/LaunchProjectPage-BZe2kaRt.js +1 -0
  31. package/web/assets/LaunchProjectPage-Bqm88kwd.css +1 -0
  32. package/web/assets/LaunchServicesPage-B4xd4APa.js +1 -0
  33. package/web/assets/LaunchServicesPage-pWREsZTD.css +1 -0
  34. package/web/assets/{LogViewer-DfbwNIUv.js → LogViewer-BhaSYgvw.js} +1 -1
  35. package/web/assets/{ProcessControls-CZV4iizX.js → ProcessControls-lDF1qNIM.js} +1 -1
  36. package/web/assets/{ProcessDetailPage-CeatPGNs.js → ProcessDetailPage-DwaApuHs.js} +1 -1
  37. package/web/assets/{ProcessMetrics-C5U4PvOh.js → ProcessMetrics-rGmADRtS.js} +1 -1
  38. package/web/assets/ProjectDetailPage-BoIcnBMH.js +1 -0
  39. package/web/assets/ProjectDetailPage-hcU-rKhJ.css +1 -0
  40. package/web/assets/ProjectListPage-C3JtBL-6.js +1 -0
  41. package/web/assets/ProjectListPage-DYs6X7r2.css +1 -0
  42. package/web/assets/{RandomJobTestPage-ycTTIaQd.js → RandomJobTestPage-CndKGKYR.js} +1 -1
  43. package/web/assets/{ScenarioEditorPage-C1EV-XSW.js → ScenarioEditorPage-DU7tb4M-.js} +1 -1
  44. package/web/assets/{SendToChatDialog-28Mlo-hb.js → SendToChatDialog-CCRCitBB.js} +1 -1
  45. package/web/assets/{ServiceControlsBar-CdWFcbXZ.js → ServiceControlsBar-BjyMYoiN.js} +1 -1
  46. package/web/assets/{ServiceDetailPage-BvoD3SB6.css → ServiceDetailPage-BRg1byDZ.css} +1 -1
  47. package/web/assets/ServiceDetailPage-JqpmujmY.js +2 -0
  48. package/web/assets/ServiceFormPage-B8jcMT3b.css +1 -0
  49. package/web/assets/ServiceFormPage-DgNwiYzM.js +1 -0
  50. package/web/assets/{SettingsPage-B1jaxJGj.js → SettingsPage-BZM3WWqc.js} +4 -4
  51. package/web/assets/{UnlockPage-ktTtBOr2.js → UnlockPage-BcZ2vL57.js} +1 -1
  52. package/web/assets/{VariablesTable-B9Nhdk1_.js → VariablesTable-0Gz2ffiL.js} +1 -1
  53. package/web/assets/{VaultMigrationPage-Dy48s3x-.js → VaultMigrationPage-BxTBDL19.js} +1 -1
  54. package/web/assets/{VersionBadge-BdlVr8Tg.js → VersionBadge-DvsaGqvh.js} +1 -1
  55. package/web/assets/WikiPage-DkEQXkzp.js +1 -0
  56. package/web/assets/{WikiView-CJDAiZr5.js → WikiView-e81ejcA8.js} +1 -1
  57. package/web/assets/{add-scalar-classes-pA8osZfz.js → add-scalar-classes-Bh8ghfnQ.js} +3 -3
  58. package/web/assets/auth-errors-C1B7h06f.js +1 -0
  59. package/web/assets/{autocomplete-N91is6wh.js → autocomplete-CDWkaHAi.js} +1 -1
  60. package/web/assets/{basic-shape-diamond.svg-BllfU_oB.js → basic-shape-diamond.svg-7zqPzGW0.js} +1 -1
  61. package/web/assets/{basic-shape-hexagon.svg-DW5bh6IP.js → basic-shape-hexagon.svg-DQwxqMd2.js} +1 -1
  62. package/web/assets/{basic-shape-primary-circle-ellipse-round.svg-9uuUiv5o.js → basic-shape-primary-circle-ellipse-round.svg-Bqm796vK.js} +1 -1
  63. package/web/assets/{basic-shape-primary-square-rectangle.svg-B64Eo9nB.js → basic-shape-primary-square-rectangle.svg-D7eyO04i.js} +1 -1
  64. package/web/assets/{basic-shape-shield.svg-DOPLFilS.js → basic-shape-shield.svg-Bnc_pFVA.js} +1 -1
  65. package/web/assets/{browser-SZtn0i0X.js → browser-DeXg6zUY.js} +1 -1
  66. package/web/assets/{browser-DueDd93t.js → browser-LxxhMX-Z.js} +1 -1
  67. package/web/assets/{card-COABLB3K.js → card-RaXQSIfv.js} +1 -1
  68. package/web/assets/{checkbox-B_GT2gG5.js → checkbox-DnpUXs7B.js} +1 -1
  69. package/web/assets/{chip--NXSwDoR.js → chip-0f0r_-zR.js} +1 -1
  70. package/web/assets/{client-BhFbvoQd.js → client-CTzGkOjO.js} +1 -1
  71. package/web/assets/cloud-chat.store-D2oJ_DFn.js +1 -0
  72. package/web/assets/{cloud-session-BSsRB6P3.js → cloud-session-BLn7b3ke.js} +1 -1
  73. package/web/assets/{column-BtS8Diqq.js → column-DqAehgUU.js} +1 -1
  74. package/web/assets/{computer-device-desktop-monitor.svg-BzjC7P3F.js → computer-device-desktop-monitor.svg-k2x9Oiiu.js} +1 -1
  75. package/web/assets/{computer-device-desktop.svg-BecVq71S.js → computer-device-desktop.svg-CyFljvrh.js} +1 -1
  76. package/web/assets/{computer-device-laptop.svg-Dme_bl6m.js → computer-device-laptop.svg-ZKpV0gtW.js} +1 -1
  77. package/web/assets/{computer-device-mobile-phone-android-samsung-back.svg-DCxv5fub.js → computer-device-mobile-phone-android-samsung-back.svg-BkRkRpCh.js} +1 -1
  78. package/web/assets/{computer-device-mobile-phone-android-samsung.svg--sSW4sfn.js → computer-device-mobile-phone-android-samsung.svg-gpUXFo9R.js} +1 -1
  79. package/web/assets/{computer-device-mobile-phone-iphone-x-back.svg-h5Po-TDX.js → computer-device-mobile-phone-iphone-x-back.svg-CJwr0WJ3.js} +1 -1
  80. package/web/assets/{computer-device-mobile-phone-iphone-x.svg-C2Uy1WjT.js → computer-device-mobile-phone-iphone-x.svg-BsPF_njN.js} +1 -1
  81. package/web/assets/{computer-device-mobile-tablet-touch.svg-CaeEG4WK.js → computer-device-mobile-tablet-touch.svg-DON7qRSP.js} +1 -1
  82. package/web/assets/{computer-device-mobile-tablet.svg-BpXku7YF.js → computer-device-mobile-tablet.svg-BPnT3MvS.js} +1 -1
  83. package/web/assets/{computer-device-network-ethernet-cat6.svg-aNAbOQCS.js → computer-device-network-ethernet-cat6.svg-Bpjv_2ub.js} +1 -1
  84. package/web/assets/{computer-device-network-lan-www.svg-ClT8Xavc.js → computer-device-network-lan-www.svg-BhXBIyrf.js} +1 -1
  85. package/web/assets/{computer-device-network-wifi-connection.svg-BBVSSCLm.js → computer-device-network-wifi-connection.svg-DUaA1GcU.js} +1 -1
  86. package/web/assets/{computer-device-network-wifi-router.svg-DHEuRciK.js → computer-device-network-wifi-router.svg-k_DqQho1.js} +1 -1
  87. package/web/assets/{cssMode-X03N01aE.js → cssMode-CfVTS8OM.js} +1 -1
  88. package/web/assets/{divider-B8p6MBJX.js → divider-C1huit3M.js} +1 -1
  89. package/web/assets/{ecology-science-erlenmeyer-flask.svg-2iSCfC0H.js → ecology-science-erlenmeyer-flask.svg-D7pbgLTT.js} +1 -1
  90. package/web/assets/{fieldset-B9fGvXQ_.js → fieldset-BVRjgmg4.js} +1 -1
  91. package/web/assets/{freemarker2-BR_8OWIK.js → freemarker2-DsY_gjrP.js} +1 -1
  92. package/web/assets/{handlebars-B3tZa--p.js → handlebars-mh1HrGq7.js} +1 -1
  93. package/web/assets/{html-BZBK1HMw.js → html-BsaAhzOa.js} +1 -1
  94. package/web/assets/{htmlMode-BVt6cDn5.js → htmlMode-pIhI3cAi.js} +1 -1
  95. package/web/assets/{image-flash-lightning.svg-CGclepmP.js → image-flash-lightning.svg-DDbhd-eu.js} +1 -1
  96. package/web/assets/{image-picture-flower.svg-Cl3xtcRn.js → image-picture-flower.svg-Bbx1pu02.js} +1 -1
  97. package/web/assets/{index-BqCmf99K.css → index-D7XqcLhE.css} +1 -1
  98. package/web/assets/{index-BPW4FgHw.js → index-Do0zA8cN.js} +215 -215
  99. package/web/assets/{interface-alert-exclamation-diamond.svg-CmooSrfz.js → interface-alert-exclamation-diamond.svg-DUJeN1hs.js} +1 -1
  100. package/web/assets/{interface-alert-exclamation-triangle-warning.svg-CkbjudIG.js → interface-alert-exclamation-triangle-warning.svg-5y99yZSY.js} +1 -1
  101. package/web/assets/{interface-alert-information-circle.svg-BVOJniJB.js → interface-alert-information-circle.svg-DPGP01ZU.js} +1 -1
  102. package/web/assets/{interface-award-crown.svg-BtCDhizx.js → interface-award-crown.svg-GDQ8ZRUh.js} +1 -1
  103. package/web/assets/{interface-bookmark.svg-CI3C_CEm.js → interface-bookmark-tag.svg-D1NUMLB5.js} +1 -1
  104. package/web/assets/{interface-bookmark-tag.svg-DpZpJCxG.js → interface-bookmark.svg-CTZlXD4R.js} +1 -1
  105. package/web/assets/{interface-calendar-date-one.svg-DeSRwc9I.js → interface-calendar-date-one.svg-DXo4raY8.js} +1 -1
  106. package/web/assets/{interface-content-book-open-pages.svg-CsYHQiGg.js → interface-content-book-open-pages.svg-DTsCVw_D.js} +1 -1
  107. package/web/assets/{interface-content-book-page.svg-DusdhNh8.js → interface-content-book-page.svg-w9azHLUe.js} +1 -1
  108. package/web/assets/{interface-content-file.svg-BZpRl2vg.js → interface-content-file.svg-69CCnbNb.js} +1 -1
  109. package/web/assets/{interface-content-folder.svg-BHyjskUa.js → interface-content-folder.svg-85PnJNaK.js} +1 -1
  110. package/web/assets/interface-content-folder.svg-Db3hJMdF.js +1 -0
  111. package/web/assets/{interface-copy-clipboard.svg-CU8KQ56k.js → interface-copy-clipboard.svg-B0AfVljN.js} +1 -1
  112. package/web/assets/{interface-edit-attachment.svg-sLGtjIVg.js → interface-edit-attachment.svg-mFLLqqcw.js} +1 -1
  113. package/web/assets/{interface-edit-binocular.svg-Kr0btLKm.js → interface-edit-binocular.svg-CHzgny3z.js} +1 -1
  114. package/web/assets/{interface-edit-magic-wand.svg-DuZj2AYt.js → interface-edit-magic-wand.svg-BbJg9LMT.js} +1 -1
  115. package/web/assets/{interface-edit-tool-paint-roller.svg-Da6-5RAS.js → interface-edit-tool-paint-roller.svg-YKE28Xpc.js} +1 -1
  116. package/web/assets/{interface-edit-tool-pencil.svg-BoPw8ms_.js → interface-edit-tool-pencil.svg-Cy12MfEi.js} +1 -1
  117. package/web/assets/{interface-favorite-award.svg-C3ITWbq3.js → interface-favorite-award.svg-COiLJu4w.js} +1 -1
  118. package/web/assets/{interface-favorite-flag.svg-GCr6RXH0.js → interface-favorite-flag.svg-C0NtaPD_.js} +1 -1
  119. package/web/assets/{interface-favorite-heart.svg-BY9dqVB0.js → interface-favorite-heart.svg-CcKJOjOh.js} +1 -1
  120. package/web/assets/{interface-favorite-star.svg-uA4scusZ.js → interface-favorite-star.svg-C3vRaRtM.js} +1 -1
  121. package/web/assets/{interface-favorite-stars-sparkles.svg-BdSCoHYl.js → interface-favorite-stars-sparkles.svg-DN9WOkFs.js} +1 -1
  122. package/web/assets/{interface-hierarchy-flowchart.svg-CxNFchvq.js → interface-hierarchy-flowchart.svg-CffgUWNS.js} +1 -1
  123. package/web/assets/{interface-home-house.svg-DkrKouBb.js → interface-home-house.svg-B9c4N9Fi.js} +1 -1
  124. package/web/assets/{interface-hyperlink.svg-I-GxkQJY.js → interface-hyperlink.svg-B8dXB276.js} +1 -1
  125. package/web/assets/{interface-lighting-brightness.svg-BJR3bOQ-.js → interface-lighting-brightness.svg-BjFVAOW3.js} +1 -1
  126. package/web/assets/{interface-lock-closed.svg-C0b_bVUd.js → interface-lock-closed.svg-DwNcKmwu.js} +1 -1
  127. package/web/assets/{interface-lock-open-unlock.svg-BtmiNLaj.js → interface-lock-open-unlock.svg-BXZeKlHt.js} +1 -1
  128. package/web/assets/{interface-login-key.svg-DmYxn7RL.js → interface-login-key.svg-CQnZGVMJ.js} +1 -1
  129. package/web/assets/{interface-search.svg-C1pVTe7C.js → interface-search.svg-CXre9Ja4.js} +1 -1
  130. package/web/assets/{interface-setting-cog.svg-C42e2OTW.js → interface-setting-cog.svg-CGK2QxqV.js} +1 -1
  131. package/web/assets/{interface-share-megaphone-bullhorn.svg-o9tOlEh2.js → interface-share-megaphone-bullhorn.svg-BcdTvuin.js} +1 -1
  132. package/web/assets/{interface-share-rocket.svg-Da9sYj_t.js → interface-share-rocket.svg-DIvKBIQX.js} +1 -1
  133. package/web/assets/{interface-share-satellite.svg-B20KpyfR.js → interface-share-satellite.svg-DNbqAorz.js} +1 -1
  134. package/web/assets/{interface-share-space-ship.svg-B16T8uJ6.js → interface-share-space-ship.svg-Biobo33q.js} +1 -1
  135. package/web/assets/{interface-share.svg-Bwk_5ajK.js → interface-share.svg-DWjt5rBb.js} +1 -1
  136. package/web/assets/{interface-signal-square.svg-CAVSymjP.js → interface-signal-square.svg--hmv5CmE.js} +1 -1
  137. package/web/assets/{interface-time-clock-circle.svg-fjss8ru1.js → interface-time-clock-circle.svg-C1GnMIQD.js} +1 -1
  138. package/web/assets/{interface-time-hour-glass.svg-DaTX8FMo.js → interface-time-hour-glass.svg-BCRsHIbm.js} +1 -1
  139. package/web/assets/{interface-users-multiple.svg-D-EFFOw7.js → interface-users-multiple.svg-CUpeUldF.js} +1 -1
  140. package/web/assets/{interface-weather-moon.svg-CrrnEbU7.js → interface-weather-moon.svg-QXMY6B27.js} +1 -1
  141. package/web/assets/{javascript-C6MNjbYD.js → javascript-DKeyayKI.js} +1 -1
  142. package/web/assets/{jsonMode-CA2Tf-2T.js → jsonMode-I9zemAn2.js} +1 -1
  143. package/web/assets/{liquid-DBKs6KRv.js → liquid-xEdzGxP1.js} +1 -1
  144. package/web/assets/{lspLanguageFeatures-BPpii0dk.js → lspLanguageFeatures-DOVjCuiu.js} +1 -1
  145. package/web/assets/{mail-chat-bubble-square.svg-lR62-873.js → mail-chat-bubble-square.svg-CR8byO78.js} +1 -1
  146. package/web/assets/{mail-send-email-paper-airplane.svg-Bkg6W9qr.js → mail-send-email-paper-airplane.svg-B0cIMUKH.js} +1 -1
  147. package/web/assets/{mail-send-envelope.svg-CbNm7aaE.js → mail-send-envelope.svg-El4e7bXy.js} +1 -1
  148. package/web/assets/{mdx-nUeiRsUz.js → mdx-AWoH37r-.js} +1 -1
  149. package/web/assets/{message-D6qRK6Jo.js → message-CATQqbP_.js} +1 -1
  150. package/web/assets/{minus-DoeouXPt.js → minus-Sd1wO9DO.js} +1 -1
  151. package/web/assets/modal-BbDElcmR.js +1 -0
  152. package/web/assets/{modal-kvCAAvat.js → modal-ZXFHQ6vP.js} +1 -1
  153. package/web/assets/{money-cashier-receipt.svg-DV9XlLpx.js → money-cashier-receipt.svg-BIEGQvlX.js} +1 -1
  154. package/web/assets/{money-currency-dollar-pay.svg-_jLRI9-z.js → money-currency-dollar-pay.svg-BgCHAYq5.js} +1 -1
  155. package/web/assets/{money-graph-arrow-increase.svg-Tnvl7X21.js → money-graph-arrow-increase.svg-q6aDu3og.js} +1 -1
  156. package/web/assets/{money-graph-bar-chart-increase.svg-uo4bmQha.js → money-graph-bar-chart-increase.svg-mRvG_dWg.js} +1 -1
  157. package/web/assets/{multiselect-BJUl25Yx.js → multiselect-BK7hJt7W.js} +1 -1
  158. package/web/assets/{nature-ecology-leaf.svg-CFuPp8bO.js → nature-ecology-leaf.svg-DdhvC8mq.js} +1 -1
  159. package/web/assets/{password-Cmgp-gwd.js → password-Dnf9oU5a.js} +1 -1
  160. package/web/assets/{phone-telephone.svg-CPKz1YHt.js → phone-telephone.svg-CjbyxKZA.js} +1 -1
  161. package/web/assets/{plus-s_OJLoyY.js → plus-jYeRYaw9.js} +1 -1
  162. package/web/assets/process.store-C5LXrPXo.js +1 -0
  163. package/web/assets/{programming-bug.svg-fxsVnaeH.js → programming-bug.svg-DvDCWw4P.js} +1 -1
  164. package/web/assets/{programming-cloud.svg-BnU51aLl.js → programming-cloud.svg-2prWAqB7.js} +1 -1
  165. package/web/assets/{programming-computer-database-server.svg-BZgDGKJW.js → programming-computer-database-server.svg-CT7k5d_p.js} +1 -1
  166. package/web/assets/{programming-computer-database.svg-B5S5rAvT.js → programming-computer-database.svg-Dm7fpvII.js} +1 -1
  167. package/web/assets/{programming-module-four-layout.svg-QRzEO0n6.js → programming-module-four-layout.svg-DBv6QvEO.js} +1 -1
  168. package/web/assets/{programming-module-three.svg-CM_P7Vlm.js → programming-module-three.svg-BnP96bPJ.js} +1 -1
  169. package/web/assets/{programming-module.svg-3GTFIIEX.js → programming-module.svg-Bdr4ZdZO.js} +1 -1
  170. package/web/assets/{programming-script-code.svg-KtOz6fyB.js → programming-script-code.svg-DIcr6sF-.js} +1 -1
  171. package/web/assets/{python-Dm07kugX.js → python-C554d-pk.js} +1 -1
  172. package/web/assets/{razor-bhq-c8Pc.js → razor-BvOiTjBp.js} +1 -1
  173. package/web/assets/router-CCEIu6U5.js +1 -0
  174. package/web/assets/{settings.store-DkR2x1Gd.js → settings.store-DISlY-48.js} +1 -1
  175. package/web/assets/{shopping-cart.svg-z5f-zUgD.js → shopping-cart.svg-DoCVSOin.js} +1 -1
  176. package/web/assets/{shopping-gift-present.svg-BuM8QoB9.js → shopping-gift-present.svg-CgNqOSQr.js} +1 -1
  177. package/web/assets/{shopping-shipping-box-parcel-package.svg-CWw8lTQj.js → shopping-shipping-box-parcel-package.svg-YkVPEp7J.js} +1 -1
  178. package/web/assets/{src-BNgzvl34.js → src-Cvt5pswj.js} +1 -1
  179. package/web/assets/{src-G9u1k3Z0.js → src-DKVQlKvZ.js} +1 -1
  180. package/web/assets/{tabpanel-C_MAwvD8.js → tabpanel-DFoLVdFR.js} +1 -1
  181. package/web/assets/{tag-new-circle.svg-C2PwVxge.js → tag-new-circle.svg-BeUe12X2.js} +1 -1
  182. package/web/assets/{travel-map-earth-globe.svg-Cva7Lt5l.js → travel-map-earth-globe.svg-B1I1Ed-v.js} +1 -1
  183. package/web/assets/trpc-CVPkysoa.js +1 -0
  184. package/web/assets/{tsMode-CiozJEFc.js → tsMode-BPD-0Vep.js} +1 -1
  185. package/web/assets/{typescript-DjFjYcp9.js → typescript-Q2uKnndS.js} +1 -1
  186. package/web/assets/useAiChatDrawer-B70XYuU8.js +1 -0
  187. package/web/assets/useCloudOrg-CZ68epfW.js +1 -0
  188. package/web/assets/useProjectCatalog-Kh_sHbSD.js +1 -0
  189. package/web/assets/{xml-_A4d3R4e.js → xml-B0CfAsFk.js} +1 -1
  190. package/web/assets/{yaml-B2BOTmvS.js → yaml-B3zRI6AS.js} +1 -1
  191. package/web/index.html +2 -2
  192. package/agent-manager-RQEJLSSF.js +0 -7
  193. package/chunk-B6C5AXMK.js.map +0 -1
  194. package/src-ZKQETCHR.js.map +0 -1
  195. package/web/assets/AgentTerminalPage-BNUuSKXa.js +0 -1
  196. package/web/assets/AgentTerminalPage-CQxk6jVs.css +0 -1
  197. package/web/assets/AiChatPage-i_HxoGlU.js +0 -1
  198. package/web/assets/AppLayout-BtVQtKnv.js +0 -1
  199. package/web/assets/CloudAccountPage-CEf5yWA2.js +0 -1
  200. package/web/assets/CloudMessagingPage-B63PMN88.js +0 -2
  201. package/web/assets/CloudMessagingPage-DbhpPX4q.css +0 -1
  202. package/web/assets/EnvironmentListPage-BDqcug66.css +0 -1
  203. package/web/assets/EnvironmentListPage-DyNlU_ys.js +0 -1
  204. package/web/assets/LaunchProjectPage-B7ch8hBp.js +0 -1
  205. package/web/assets/LaunchProjectPage-CxXC2U3O.css +0 -1
  206. package/web/assets/LaunchServicesPage-BAvD32G1.css +0 -1
  207. package/web/assets/LaunchServicesPage-BxbnthGj.js +0 -1
  208. package/web/assets/ProjectDetailPage-B42imx75.css +0 -1
  209. package/web/assets/ProjectDetailPage-BaZIvewr.js +0 -1
  210. package/web/assets/ProjectListPage-BGU6SKAr.css +0 -1
  211. package/web/assets/ProjectListPage-BreaFS_h.js +0 -1
  212. package/web/assets/ServiceDetailPage-DAq3ofhT.js +0 -2
  213. package/web/assets/ServiceFormPage-BER91b-6.js +0 -1
  214. package/web/assets/ServiceFormPage-D31sr_k0.css +0 -1
  215. package/web/assets/WikiPage-CMqO84ak.js +0 -1
  216. package/web/assets/auth-errors-B3tAiztt.js +0 -1
  217. package/web/assets/cloud-chat.store-DEKUnKhm.js +0 -1
  218. package/web/assets/interface-content-folder.svg-CE1AjWC2.js +0 -1
  219. package/web/assets/modal-OTFsRnDn.js +0 -1
  220. package/web/assets/process.store-dKQhHReg.js +0 -1
  221. package/web/assets/router-BamtimoJ.js +0 -1
  222. package/web/assets/trpc-BdB_KPws.js +0 -1
  223. package/web/assets/useAiChatDrawer-DpUd_4Sa.js +0 -1
  224. package/web/assets/useCloudOrg-DcDNmhwp.js +0 -1
  225. /package/{agent-manager-RQEJLSSF.js.map → agent-manager-JJYZDLNB.js.map} +0 -0
  226. /package/web/assets/{abap-lJFTLuI6.js → abap-DMmvWZUy.js} +0 -0
  227. /package/web/assets/{apex-Bp0KWav8.js → apex-D89PiTzU.js} +0 -0
  228. /package/web/assets/{azcli-DBOe7Uvy.js → azcli-ChnjTTA5.js} +0 -0
  229. /package/web/assets/{bat-Dk_NT_by.js → bat-uLzQ_FhK.js} +0 -0
  230. /package/web/assets/{bicep-B07Mrlc7.js → bicep-CMOK7Q1v.js} +0 -0
  231. /package/web/assets/{cameligo-DL5eNXGn.js → cameligo-D1AyojFH.js} +0 -0
  232. /package/web/assets/{clojure-BzV2Yqu_.js → clojure-D9JoUgXn.js} +0 -0
  233. /package/web/assets/{coffee-Bjlj5hmf.js → coffee-D-5sSToL.js} +0 -0
  234. /package/web/assets/{cpp-C9oth5qz.js → cpp-BqT_t_y9.js} +0 -0
  235. /package/web/assets/{csharp-HyGd049S.js → csharp-CuToYI91.js} +0 -0
  236. /package/web/assets/{csp-DjCDOBuX.js → csp-CffcxvlO.js} +0 -0
  237. /package/web/assets/{css-DIL8RTJ3.js → css-CUD0biQW.js} +0 -0
  238. /package/web/assets/{cypher-DX1zPXL5.js → cypher-ByyWL_9U.js} +0 -0
  239. /package/web/assets/{dart-BBQZd_ZZ.js → dart-B__ipcUn.js} +0 -0
  240. /package/web/assets/{dockerfile-Cj0CaWYx.js → dockerfile-DS-_8bWw.js} +0 -0
  241. /package/web/assets/{ecl-BjmWCTJg.js → ecl-DWsNCBUj.js} +0 -0
  242. /package/web/assets/{elixir-3uWoEjXX.js → elixir-OfjEy-3g.js} +0 -0
  243. /package/web/assets/{flow9-D4r739e9.js → flow9-BPX22hxS.js} +0 -0
  244. /package/web/assets/{fsharp-B3ycAx5T.js → fsharp-CVJcfIUn.js} +0 -0
  245. /package/web/assets/{go-DFHBjfCl.js → go-CfRHZ3yg.js} +0 -0
  246. /package/web/assets/{graphql-DBjIbM_e.js → graphql-BZaO3ttK.js} +0 -0
  247. /package/web/assets/{hcl-Buu_1Hsp.js → hcl-BF9-qUku.js} +0 -0
  248. /package/web/assets/{ini-CgzZhgz_.js → ini-BUvw6xhr.js} +0 -0
  249. /package/web/assets/{java-BczDO0q5.js → java-BZ5BNd2x.js} +0 -0
  250. /package/web/assets/{julia-B142kn-7.js → julia-DN38cgYT.js} +0 -0
  251. /package/web/assets/{kotlin-42XMP7p1.js → kotlin-CjEJKT8q.js} +0 -0
  252. /package/web/assets/{less-BCIsKRqU.js → less-DMEH_Nwq.js} +0 -0
  253. /package/web/assets/{lexon-DTDOH1dQ.js → lexon-CKQUX8Ov.js} +0 -0
  254. /package/web/assets/{lua-BrH-CeNs.js → lua-CuWjKLJ0.js} +0 -0
  255. /package/web/assets/{m3-D-eUeHOI.js → m3-CEp1bVrM.js} +0 -0
  256. /package/web/assets/{markdown-DwpSjZTn.js → markdown-DxtQ_puq.js} +0 -0
  257. /package/web/assets/{mips-DoGTrjVk.js → mips-Dx7qydpO.js} +0 -0
  258. /package/web/assets/{msdax-CQ8McnjQ.js → msdax-DpNCaSiO.js} +0 -0
  259. /package/web/assets/{mysql-Cj3do0ZO.js → mysql-C3xsBDPP.js} +0 -0
  260. /package/web/assets/{objective-c-BZbR8TG8.js → objective-c-BbaVHCX1.js} +0 -0
  261. /package/web/assets/{pascal-23PRDHRq.js → pascal-sDju2faq.js} +0 -0
  262. /package/web/assets/{pascaligo-CxasKTLJ.js → pascaligo-ChCdOH6b.js} +0 -0
  263. /package/web/assets/{perl-Dhxz2Lhx.js → perl-BCgLFj01.js} +0 -0
  264. /package/web/assets/{pgsql-BIbUy7yD.js → pgsql-DtKby69f.js} +0 -0
  265. /package/web/assets/{php-B5qS9qgM.js → php-NYvR17Qb.js} +0 -0
  266. /package/web/assets/{pla-Bolz9fha.js → pla-gSg-RBG0.js} +0 -0
  267. /package/web/assets/{postiats-Ba6dE5lj.js → postiats-BQxHyDfy.js} +0 -0
  268. /package/web/assets/{powerquery-2jW3ONgo.js → powerquery-DzDmbVZN.js} +0 -0
  269. /package/web/assets/{powershell-CMfBIiJp.js → powershell-yy4Q5BEQ.js} +0 -0
  270. /package/web/assets/{protobuf-BpaquOUj.js → protobuf-B_hIk9q0.js} +0 -0
  271. /package/web/assets/{pug-cBG82Ydz.js → pug-CdeEb1ft.js} +0 -0
  272. /package/web/assets/{qsharp-DtqL8Lmt.js → qsharp-CiSquEgT.js} +0 -0
  273. /package/web/assets/{r-CKLew4sj.js → r-D1Ocz1x4.js} +0 -0
  274. /package/web/assets/{redis-BdDxRU-N.js → redis-D42Y12yz.js} +0 -0
  275. /package/web/assets/{redshift-X4a4MlqW.js → redshift-CS62MYfG.js} +0 -0
  276. /package/web/assets/{restructuredtext-LA4Fv05h.js → restructuredtext-CKFSMEXw.js} +0 -0
  277. /package/web/assets/{ruby-CibE_WVM.js → ruby-C4gTaeU3.js} +0 -0
  278. /package/web/assets/{rust-BK6RsiL0.js → rust-C_f2AiHQ.js} +0 -0
  279. /package/web/assets/{sb-BnCCt0Qj.js → sb-CdNdpP1r.js} +0 -0
  280. /package/web/assets/{scala-oaBDrVqj.js → scala-N4EWaFTL.js} +0 -0
  281. /package/web/assets/{scheme-C-wkLC01.js → scheme-CttIARxx.js} +0 -0
  282. /package/web/assets/{scss-BceVGOJY.js → scss-v0wtbxaE.js} +0 -0
  283. /package/web/assets/{shell-CxhBAFA5.js → shell-BJdEWXbc.js} +0 -0
  284. /package/web/assets/{solidity-D9sXgTfx.js → solidity-DKDa59zZ.js} +0 -0
  285. /package/web/assets/{sophia-C4VBhIEM.js → sophia--Kw-vDpr.js} +0 -0
  286. /package/web/assets/{sparql-DbsK2s9y.js → sparql-BI8jS9Pc.js} +0 -0
  287. /package/web/assets/{sql-CuGfE0wH.js → sql-Dz6z--6O.js} +0 -0
  288. /package/web/assets/{st-rB6Bqb2h.js → st-CT8D05gv.js} +0 -0
  289. /package/web/assets/{swift-BtHGe_4T.js → swift-Ayb3KzWx.js} +0 -0
  290. /package/web/assets/{systemverilog-CgKnzwU4.js → systemverilog-BtWJM9O5.js} +0 -0
  291. /package/web/assets/{tcl-DyqQWf87.js → tcl-BJvUWpbV.js} +0 -0
  292. /package/web/assets/{twig-C980XO5P.js → twig-c3YaBCU6.js} +0 -0
  293. /package/web/assets/{typespec-CVmA80px.js → typespec-gFCWLBoZ.js} +0 -0
  294. /package/web/assets/{uuid-2Kb5PDpq.js → uuid-B3B8HIK9.js} +0 -0
  295. /package/web/assets/{vb-rdNQv5VQ.js → vb-CVtfWXV2.js} +0 -0
  296. /package/web/assets/{w3c-keyname-B2B-WOb1.js → w3c-keyname-nn0G3QC2.js} +0 -0
  297. /package/web/assets/{wgsl-64oVbimL.js → wgsl-C_huaGQy.js} +0 -0
@@ -1,2 +0,0 @@
1
- import{$ as e,$r as t,Bi as n,Bt as r,C as i,Ci as a,Di as o,Dn as s,En as c,Et as l,G as u,Gi as d,H as f,In as p,J as m,Ji as h,Kr as g,Mn as _,Ot as v,Q as y,Qr as b,R as x,Ti as S,U as C,Ur as w,Vt as T,W as ee,Wi as E,Wr as D,Xr as O,Yr as k,Yt as A,Z as te,Zi as j,Zr as M,Zt as ne,an as N,c as re,dn as ie,et as ae,fn as oe,gi as P,ha as se,ia as ce,ii as F,in as le,jn as ue,ki as de,la as I,li as fe,mn as L,na as pe,oi as R,on as z,ot as me,ri as B,rt as he,sa as ge,si as _e,tt as ve,un as V,va as H,wn as ye,zr as be}from"./index-BPW4FgHw.js";import"./cloud-session-BSsRB6P3.js";import"./src-BNgzvl34.js";import{t as xe}from"./message-D6qRK6Jo.js";import"./ProcessControls-CZV4iizX.js";import{t as Se}from"./ServiceControlsBar-CdWFcbXZ.js";import{n as Ce,t as we}from"./column-BtS8Diqq.js";import{n as Te}from"./plus-s_OJLoyY.js";import{t as Ee}from"./checkbox-B_GT2gG5.js";import{n as De,t as Oe}from"./autocomplete-N91is6wh.js";import{a as ke,i as Ae,n as je,r as Me,t as Ne}from"./tabpanel-C_MAwvD8.js";import{n as Pe,t as Fe}from"./VariablesTable-B9Nhdk1_.js";import{t as Ie}from"./uuid-2Kb5PDpq.js";import"./src-G9u1k3Z0.js";import"./w3c-keyname-B2B-WOb1.js";import"./SendToChatDialog-28Mlo-hb.js";import{n as Le,t as Re}from"./ProcessMetrics-C5U4PvOh.js";import{t as ze}from"./LogViewer-DfbwNIUv.js";import{t as Be}from"./divider-B8p6MBJX.js";import{t as Ve}from"./settings.store-DkR2x1Gd.js";import{t as He}from"./WikiView-CJDAiZr5.js";var Ue={key:0,class:`log-details`},We={class:`log-details__section`},Ge={class:`log-details__label`},Ke={class:`log-details__value log-details__value--box`},qe={class:`log-details__section`},Je={class:`log-details__label`},Ye={class:`log-details__value log-details__value--box log-details__value--code`},Xe={class:`log-details__section`},Ze={class:`log-details__label`},Qe={class:`log-details__value log-details__value--box`},$e={class:`log-details__process`},et={class:`log-details__section`},tt={class:`log-details__label`},nt={class:`log-details__value log-details__value--box`},rt={class:`log-details__section`},it={class:`log-details__label`},at={class:`log-details__value log-details__value--box`},ot={key:0,class:`log-details__section`},st={class:`log-details__label`},ct={class:`log-details__value log-details__value--box`},lt={key:1,class:`log-details__section`},ut={class:`log-details__label`},dt={class:`log-details__value log-details__value--box log-details__value--code`},ft=V(R({__name:`LogDetailsDrawer`,props:{visible:{type:Boolean},log:{}},emits:[`update:visible`,`view-process`],setup(e,{emit:n}){let r=e,{t:i}=p(),a=n,s=k(()=>{if(!r.log)return``;let e=new Date(r.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`)}`}),c=k(()=>r.log?r.log.level.charAt(0).toUpperCase()+r.log.level.slice(1):``),l=k(()=>!r.log||r.log.pid==null?i(`logDetails.notAvailable`):String(r.log.pid));function u(){r.log&&a(`view-process`,r.log.processId)}function d(){a(`update:visible`,!1)}return(n,r)=>(o(),M(H(ie),{visible:e.visible,position:`right`,header:H(i)(`logDetails.header`),style:{width:`440px`},"onUpdate:visible":d},{default:E(()=>[e.log?(o(),t(`div`,Ue,[O(`div`,We,[O(`div`,Ge,j(H(i)(`logDetails.type`)),1),O(`div`,Ke,j(c.value),1)]),O(`div`,qe,[O(`div`,Je,j(H(i)(`logDetails.rawMessage`)),1),O(`div`,Ye,j(e.log.raw),1)]),O(`div`,Xe,[O(`div`,Ze,j(H(i)(`logDetails.serviceId`)),1),O(`div`,Qe,[O(`div`,$e,[O(`span`,null,j(e.log.processId),1),F(H(L),{label:H(i)(`logDetails.viewProcess`),icon:`pi pi-external-link`,size:`small`,outlined:``,onClick:u},null,8,[`label`])])])]),O(`div`,et,[O(`div`,tt,j(H(i)(`logDetails.pid`)),1),O(`div`,nt,j(l.value),1)]),O(`div`,rt,[O(`div`,it,j(H(i)(`logDetails.timestamp`)),1),O(`div`,at,j(s.value),1)]),e.log.stream?(o(),t(`div`,ot,[O(`div`,st,j(H(i)(`logDetails.stream`)),1),O(`div`,ct,j(e.log.stream),1)])):b(``,!0),e.log.metadata&&Object.keys(e.log.metadata).length>0?(o(),t(`div`,lt,[O(`div`,ut,j(H(i)(`logDetails.metadata`)),1),O(`div`,dt,j(JSON.stringify(e.log.metadata,null,2)),1)])):b(``,!0)])):b(``,!0)]),_:1},8,[`visible`,`header`]))}}),[[`__scopeId`,`data-v-5781eb9d`]]),pt=500,mt=5,ht=he;function gt(e){return e+Math.random()*e*.3}function _t(e,t){let i=I([]),a=I(!1),o=null,s=0,c=null,l=r(()=>{s=0,a.value||C()}),u=[],d=null,f=I(0),p=I(0),m=0,h=0,g=null;function _(){g||=setInterval(()=>{f.value=m,p.value=h,m=0,h=0},1e3)}function v(){g&&=(clearInterval(g),null),f.value=0,p.value=0,m=0,h=0}function y(){if(d=null,u.length===0)return;let e=u;u=[],h+=e.length;let t=[...i.value,...e];t.length>pt&&(t=t.slice(t.length-pt)),i.value=t}function b(){!e.value||!t.value||(a.value=!0,o=T.process.onLog.subscribe({agentId:e.value,processId:t.value},{onData(e){let t=e;if(s=0,A(`connected`),t.some(e=>e.__clearLogBuffer)){i.value=[],u=[];return}m+=t.length,u.push(...t),d===null&&(d=requestAnimationFrame(y))},onError(e){console.error(`[useLogStream] Subscription error:`,e.message),a.value=!1,o=null,x()}}))}function x(){if(s>=mt){console.warn(`[useLogStream] Max retries (${mt}) reached`),A(`disconnected`);return}A(`reconnecting`);let e=gt(ht*2**s);s++,c=setTimeout(()=>{c=null,C()},e)}async function C(){if(!a.value&&!(!e.value||!t.value)){s=0;try{let n=await T.process.logs.query({agentId:e.value,processId:t.value});n.length>pt&&(n=n.slice(n.length-pt)),i.value=n,A(`connected`)}catch{}b()}}function w(){c&&=(clearTimeout(c),null),d!==null&&(cancelAnimationFrame(d),d=null),u=[],v(),o&&=(o.unsubscribe(),null),a.value=!1,s=0,i.value=[]}return n([e,t],([e,t],[n,r])=>{(e!==n||t!==r)&&(a.value&&w(),C())}),S(()=>{l(),w()}),{logs:i,isStreaming:a,start:C,stop:w,receivedPerSec:f,flushedPerSec:p,startStats:_,stopStats:v}}var vt={class:`service-terminal__toolbar`},yt={class:`service-terminal__toolbar-left`},bt={key:0,class:`pid-option`},xt={key:1,class:`pid-option`},St={key:0,class:`pi pi-circle-fill pid-status-icon pid-status-icon--active`,style:{"margin-right":`0.5rem`}},Ct={key:1,class:`pi pi-circle-fill pid-status-icon pid-status-icon--stopped`,style:{"margin-right":`0.5rem`}},wt={class:`pid-option`},Tt={key:0,class:`pi pi-list`,style:{"margin-right":`0.5rem`}},Et=[`title`],Dt=[`title`],Ot={class:`service-terminal__toolbar-right`},kt={class:`service-terminal__content`,"data-testid":`service-terminal-content`},At={key:1,class:`service-terminal__shortcuts`},jt={class:`service-terminal__command-input`},Mt={class:`service-terminal__bottom`},Nt=`runeya_command_history_`,Pt=50,Ft=V(R({__name:`ServiceTerminal`,props:{service:{},processes:{}},setup(e){let{t:r}=p(),i=e,s=k(()=>i.processes.find(e=>e.state===`running`||e.state===`starting`)??i.processes[0]??null),c=k(()=>s.value?.agentId??``),l=k(()=>s.value?.id??``),u=_(),{logs:d,isStreaming:f,start:m,stop:v,receivedPerSec:y,flushedPerSec:x,startStats:C,stopStats:w}=_t(c,l),ee=I(!1);n(ee,e=>{e?C():w()});function D(e){e.ctrlKey&&e.shiftKey&&(e.key===`*`||e.key===`µ`)&&(e.preventDefault(),ee.value=!ee.value)}let A=k(()=>{let e=new Map;return d.value.forEach(t=>{if(t.pid!=null){let n=e.get(t.pid);if(n)n.lastSeen=new Date(Math.max(n.lastSeen.getTime(),new Date(t.timestamp).getTime())),n.logCount++;else{let n=i.processes.find(e=>e.pid===t.pid&&(e.state===`running`||e.state===`starting`));e.set(t.pid,{pid:t.pid,lastSeen:new Date(t.timestamp),logCount:1,isActive:!!n})}}}),Array.from(e.values()).sort((e,t)=>t.lastSeen.getTime()-e.lastSeen.getTime())}),te=k(()=>je.value===`all`?d.value:d.value.filter(e=>e.pid===je.value)),re=k(()=>A.value.filter(e=>e.isActive).length),ie=k(()=>{let e=[{label:r(`serviceTerminal.allProcesses`),value:`all`,badge:re.value>0?`${re.value} ${r(`serviceTerminal.active`)}`:void 0,isActive:void 0}];return A.value.forEach(({pid:t,logCount:n,isActive:r})=>{e.push({label:`PID: ${t}`,value:t,badge:`${n} logs`,isActive:r})}),e});k(()=>i.processes.filter(e=>e.state===`running`).length);async function ae(){if(s.value)try{await T.process.clearLogBuffer.mutate({agentId:s.value.agentId,processId:s.value.id}),d.value=[]}catch(e){u.add({severity:`error`,summary:r(`serviceTerminal.error`),detail:e.message??r(`serviceTerminal.failedToClearLogs`),life:5e3})}}let oe=k(()=>i.service.shortcuts??[]),se=I(new Set);async function ce(e){let t=s.value?.agentId??i.service.agentId,n=s.value?.id??i.service.id;if(!t){u.add({severity:`warn`,summary:r(`serviceTerminal.noAgent`),detail:r(`serviceTerminal.noAgentDesc`),life:3e3});return}if(se.value.has(e.id)){try{await T.process.cancelShortcut.mutate({agentId:t,processId:n,shortcutId:e.id})}catch{}return}se.value=new Set([...se.value,e.id]);try{await T.process.executeShortcut.mutate({agentId:t,processId:n,shortcut:e})}catch(e){u.add({severity:`error`,summary:r(`serviceTerminal.shortcutFailed`),detail:e.message??r(`serviceTerminal.shortcutFailed`),life:5e3})}finally{let t=new Set(se.value);t.delete(e.id),se.value=t}}let le=I(``),ue=I(new Set),fe=k(()=>ue.value.size>0),pe=I(null),R=I([]),z=I(-1),me=`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=I([]);function he(e){let t=e.query.toLowerCase().trim();if(!t||!le.value.trim()){B.value=[];return}let n=[...R.value.slice().reverse(),...me],r=new Set;B.value=n.filter(e=>r.has(e)?!1:(r.add(e),e.toLowerCase().includes(t))).slice(0,10)}function ge(){try{let e=localStorage.getItem(Nt+i.service.id);e&&(R.value=JSON.parse(e))}catch{R.value=[]}}function _e(){try{localStorage.setItem(Nt+i.service.id,JSON.stringify(R.value))}catch{}}function ve(e){R.value[R.value.length-1]!==e&&(R.value=[...R.value,e],R.value.length>Pt&&(R.value=R.value.slice(-Pt)),_e())}async function V(){let e=s.value?.agentId??i.service.agentId,t=s.value?.id??i.service.id;if(e)try{await T.process.cancelAdHocCommand.mutate({agentId:e,processId:t})}catch{}}async function ye(){if(!le.value.trim())return;let e=s.value?.agentId??i.service.agentId,t=s.value?.id??i.service.id;if(!e){u.add({severity:`warn`,summary:r(`serviceTerminal.noAgent`),detail:r(`serviceTerminal.noAgentDesc`),life:3e3});return}let n=Ie(),a=le.value.trim();ve(a),le.value=``,B.value=[],z.value=-1,ue.value=new Set([...ue.value,n]);try{await T.process.executeAdHocCommand.mutate({agentId:e,processId:t,command:a,commandId:n})}catch(e){u.add({severity:`error`,summary:r(`serviceTerminal.commandFailed`),detail:e.message??r(`serviceTerminal.commandFailed`),life:5e3})}finally{let e=new Set(ue.value);e.delete(n),ue.value=e,P(()=>{document.querySelector(`.service-terminal__input`)?.focus()})}}function be(e){if(e.key===`Enter`&&!e.shiftKey){e.preventDefault(),ye();return}if(e.key===`ArrowUp`){if(e.preventDefault(),R.value.length===0)return;z.value===-1?z.value=R.value.length-1:z.value>0&&z.value--,le.value=R.value[z.value]||``}else if(e.key===`ArrowDown`){if(e.preventDefault(),z.value===-1)return;z.value<R.value.length-1?(z.value++,le.value=R.value[z.value]||``):(z.value=-1,le.value=``)}}function xe(){if(d.value.length===0)return;let e=d.value.map(e=>`[${new Date(e.timestamp).toISOString()}] ${e.level.toUpperCase().padEnd(5)} ${e.message}`),t=new Blob([e.join(`
2
- `)],{type:`text/plain`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`${i.service.name}-${new Date().toISOString().slice(0,19).replaceAll(`:`,`-`)}.log`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}let Ce=I(0),we=0,Te=null,Ee=null;n(s,e=>{if(!(e&&(e.state===`running`||e.state===`starting`))){Te&&=(clearInterval(Te),null),Ee=null,Ce.value=e?.uptime??0;return}let t=e.uptime??0;e.id!==Ee&&(Te&&=(clearInterval(Te),null),Ee=e.id,we=e.startedAt?new Date(e.startedAt).getTime():Date.now()-t,Ce.value=Date.now()-we,Te=setInterval(()=>{Ce.value=Date.now()-we},1e3))},{immediate:!0});let De=I(!0),ke=I(null),Ae=I(!1),je=I(`all`),Me=I(!1);function Ne(){Me.value=!Me.value}a(()=>{ge(),s.value&&m(),window.addEventListener(`keydown`,D)}),S(()=>{v(),window.removeEventListener(`keydown`,D),Te&&clearInterval(Te)});function Pe(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 Fe(e){ke.value=e,Ae.value=!0}function Le(e){Ae.value=!1,u.add({severity:`info`,summary:`Process`,detail:`Process ID: ${e}`,life:3e3})}return(n,a)=>(o(),t(`div`,{class:h([`service-terminal`,{"service-terminal--fullscreen":Me.value}]),"data-testid":`service-terminal`},[Me.value?(o(),M(Se,{key:0,service:e.service,processes:e.processes},null,8,[`service`,`processes`])):b(``,!0),O(`div`,vt,[O(`div`,yt,[F(H(L),{label:H(r)(`serviceTerminal.logs`),severity:De.value?`primary`:`secondary`,text:``,size:`small`,onClick:a[0]||=e=>De.value=!0},null,8,[`label`,`severity`]),F(H(ne),{modelValue:je.value,"onUpdate:modelValue":a[1]||=e=>je.value=e,options:ie.value,"option-label":`label`,"option-value":`value`,class:`service-terminal__pid-selector`},{value:E(e=>[e.value===`all`?(o(),t(`div`,bt,[a[5]||=O(`i`,{class:`pi pi-list`,style:{"margin-right":`0.5rem`}},null,-1),O(`span`,null,j(H(r)(`serviceTerminal.allProcesses`)),1),re.value>0?(o(),M(H(N),{key:0,value:`${re.value} ${H(r)(`serviceTerminal.active`)}`,severity:`secondary`,class:`pid-badge`},null,8,[`value`])):b(``,!0)])):(o(),t(`div`,xt,[ie.value.find(t=>t.value===e.value)?.isActive?(o(),t(`i`,St)):(o(),t(`i`,Ct)),O(`span`,null,`PID: `+j(e.value),1)]))]),option:E(e=>[O(`div`,wt,[e.option.value===`all`?(o(),t(`i`,Tt)):e.option.isActive?(o(),t(`i`,{key:1,class:`pi pi-circle-fill pid-status-icon pid-status-icon--active`,title:H(r)(`serviceTerminal.running`)},null,8,Et)):(o(),t(`i`,{key:2,class:`pi pi-circle-fill pid-status-icon pid-status-icon--stopped`,title:H(r)(`serviceTerminal.stopped`)},null,8,Dt)),O(`span`,null,j(e.option.label),1),e.option.badge?(o(),M(H(N),{key:3,value:e.option.badge,severity:`secondary`,class:`pid-badge`},null,8,[`value`])):b(``,!0)])]),_:1},8,[`modelValue`,`options`])]),O(`div`,Ot,[F(H(L),{icon:Me.value?`pi pi-window-minimize`:`pi pi-window-maximize`,text:``,rounded:``,size:`small`,title:Me.value?H(r)(`serviceTerminal.exitFullscreen`):H(r)(`serviceTerminal.fullscreen`),onClick:Ne},null,8,[`icon`,`title`]),F(H(L),{icon:`pi pi-download`,text:``,rounded:``,size:`small`,title:H(r)(`serviceTerminal.downloadLogs`),disabled:H(d).length===0,onClick:xe},null,8,[`title`,`disabled`]),F(H(L),{icon:`pi pi-trash`,text:``,rounded:``,size:`small`,title:H(r)(`serviceTerminal.clearLogs`),disabled:H(d).length===0,onClick:ae},null,8,[`title`,`disabled`])])]),O(`div`,kt,[F(ze,{logs:te.value,loading:!1,"received-per-sec":H(y),"flushed-per-sec":H(x),"show-stats":ee.value,"service-label":i.service.label||i.service.name,onLogClick:Fe},null,8,[`logs`,`received-per-sec`,`flushed-per-sec`,`show-stats`,`service-label`])]),oe.value.length>0?(o(),t(`div`,At,[(o(!0),t(g,null,de(oe.value,e=>(o(),M(H(L),{key:e.id,label:e.label||e.command,"data-shortcut-id":e.id,class:`shortcut-badge`,icon:se.value.has(e.id)?`pi pi-stop`:`pi pi-play`,size:`small`,outlined:!se.value.has(e.id),severity:se.value.has(e.id)?`danger`:void 0,onClick:t=>ce(e)},null,8,[`label`,`data-shortcut-id`,`icon`,`outlined`,`severity`,`onClick`]))),128))])):b(``,!0),O(`div`,jt,[a[6]||=O(`span`,{class:`service-terminal__prompt`,"data-testid":`terminal-prompt`},`>`,-1),F(H(Oe),{ref_key:`adHocCommandInput`,ref:pe,modelValue:le.value,"onUpdate:modelValue":a[2]||=e=>le.value=e,suggestions:B.value,class:`service-terminal__autocomplete`,"input-class":`service-terminal__input`,placeholder:H(r)(`serviceTerminal.enterCommand`),"aria-label":H(r)(`serviceTerminal.enterCommand`),disabled:!(s.value?.agentId??i.service.agentId),"data-testid":`terminal-command-input`,onComplete:he,onKeydown:be},null,8,[`modelValue`,`suggestions`,`placeholder`,`aria-label`,`disabled`]),F(H(L),{icon:fe.value?`pi pi-stop`:`pi pi-play`,severity:fe.value?`danger`:void 0,size:`small`,"data-testid":`terminal-run-btn`,disabled:!(s.value?.agentId??i.service.agentId)||!le.value.trim()&&!fe.value,onClick:a[3]||=e=>fe.value?V():ye()},null,8,[`icon`,`severity`,`disabled`])]),O(`div`,Mt,[s.value?(o(),M(H(N),{key:0,icon:`pi pi-server`,value:s.value.agentId.slice(0,8),severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):b(``,!0),e.service.cwd?(o(),M(H(N),{key:1,icon:`pi pi-folder`,value:e.service.cwd,severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):b(``,!0),s.value&&(s.value.state===`running`||s.value.state===`starting`)?(o(),M(H(N),{key:2,icon:`pi pi-clock`,value:Pe(Ce.value/1e3),severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):b(``,!0)]),F(ft,{visible:Ae.value,"onUpdate:visible":a[4]||=e=>Ae.value=e,log:ke.value,onViewProcess:Le},null,8,[`visible`,`log`])],2))}}),[[`__scopeId`,`data-v-8ce2178d`]]),It=5,Lt=he;function Rt(e){return e+Math.random()*e*.3}function zt(t,r){let i=I(null),a=I(!1),o=I(!1),s=null,c=0,l=null;async function u(){if(!a.value){o.value=!0;try{i.value=await T.process.metrics.query({agentId:t.value,processId:r.value})}catch(t){console.error(`Failed to fetch initial metrics:`,e(t))}finally{o.value=!1}d()}}function d(){a.value=!0,s=T.process.onMetrics.subscribe({agentId:t.value,processId:r.value},{onData(e){c=0,A(`connected`),i.value=e},onError(e){console.error(`Metrics stream error:`,e),a.value=!1,s=null,f()}})}function f(){if(c>=It){console.warn(`Metrics stream: max retries (${It}) reached, giving up`),A(`disconnected`);return}A(`reconnecting`);let e=Rt(Lt*2**c);c++,l=setTimeout(()=>{l=null,d()},e)}function p(){l&&=(clearTimeout(l),null),s&&=(s.unsubscribe(),null),a.value=!1,c=0}return n([t,r],([e,t],[n,r])=>{(e!==n||t!==r)&&a.value&&(p(),u())}),S(()=>{p()}),{metrics:i,isStreaming:a,isLoading:o,start:u,stop:p}}var Bt={class:`service-metrics`,"data-testid":`service-metrics`},Vt={key:1,class:`service-metrics__skeleton`},Ht={class:`metric-skeleton`},Ut={class:`metric-skeleton`},Wt={key:2,class:`service-metrics__no-data`},Gt={key:1,class:`service-metrics__no-process`},Kt=V(R({__name:`ServiceMetrics`,props:{service:{},processes:{}},setup(e){let n=e,r=k(()=>n.processes.find(e=>e.state===`running`||e.state===`starting`)??n.processes[0]??null),i=k(()=>r.value?.agentId??``),s=k(()=>r.value?.id??``),{t:c}=p(),{metrics:l,isLoading:u,start:d,stop:f}=zt(i,s);return a(()=>{r.value&&d()}),S(()=>{f()}),(e,n)=>(o(),t(`div`,Bt,[r.value?(o(),t(g,{key:0},[H(l)?(o(),M(Re,{key:0,cpu:H(l).cpu,memory:H(l).memory},null,8,[`cpu`,`memory`])):H(u)?(o(),t(`div`,Vt,[O(`div`,Ht,[F(H(Le),{width:`4rem`,height:`0.75rem`,class:`mb-2`}),F(H(Le),{width:`3rem`,height:`1.75rem`,class:`mb-3`}),F(H(Le),{width:`100%`,height:`6px`,"border-radius":`4px`})]),O(`div`,Ut,[F(H(Le),{width:`4rem`,height:`0.75rem`,class:`mb-2`}),F(H(Le),{width:`3rem`,height:`1.75rem`,class:`mb-3`}),F(H(Le),{width:`6rem`,height:`0.65rem`})])])):(o(),t(`div`,Wt,j(H(c)(`serviceMetrics.noData`)),1))],64)):(o(),t(`div`,Gt,[n[0]||=O(`i`,{class:`pi pi-info-circle`},null,-1),O(`span`,null,j(H(c)(`serviceMetrics.notRunning`)),1)]))]))}}),[[`__scopeId`,`data-v-94f5993b`]]),qt=`runeya:debug`,Jt=I(localStorage.getItem(qt)===`true`);function Yt(){function e(){Jt.value=!Jt.value,localStorage.setItem(qt,String(Jt.value))}return{isDebug:Jt,toggle:e}}var Xt={class:`config-general`},Zt={class:`config-card`},Qt={class:`config-card__header`},$t={class:`config-card`},en={class:`config-card__header`},tn={class:`config-card__hint`},nn={class:`config-card`},rn={class:`config-card`},an={class:`config-card__header`},on={class:`config-card__hint`},sn={class:`config-card`},cn={class:`config-card__header`},ln={class:`config-card__hint`},un={class:`config-card`},dn={class:`config-card__header`},fn={class:`config-card__hint`},pn={class:`config-card`},mn={class:`config-card__header`},hn={class:`config-card__hint`},gn={class:`config-card`},_n={class:`config-card__header`},vn={class:`config-card__hint`},yn={class:`config-card`},bn={class:`config-card__header`},xn={class:`config-card__hint`},Sn={class:`config-card__hint`},Cn={class:`config-card`},wn={class:`config-card__header`},Tn={class:`config-card__hint`},En={class:`config-meta`},Dn={class:`config-card config-card--inline`},On={class:`config-card__header`},kn={class:`config-card config-card--inline`},An={class:`config-card__header`},jn=V(R({__name:`ServiceConfigGeneral`,props:{service:{}},emits:[`save`],setup(e,{emit:r}){let{t:i}=p(),a=y(),s=k(()=>{let e=new Set;for(let t of a.services)for(let n of t.groups??[])e.add(n);return[...e].sort((e,t)=>e.localeCompare(t))}),c=I([]);function l(e){let t=e.query.trim().toLowerCase(),n=new Set(h.value.groups);c.value=s.value.filter(e=>!n.has(e)&&(!t||e.toLowerCase().includes(t)))}function u(e){let t=e.target,n=t.value.trim();n&&(h.value.groups.includes(n)||(h.value.groups=[...h.value.groups,n],T()),t.value=``,c.value=[])}let d=e,f=r;function m(e){return Object.entries(e??{}).map(([e,t])=>({key:e,value:t}))}let h=I({name:d.service.name,cwd:d.service.cwd??``,ports:(d.service.ports??[]).map(String),groups:[...d.service.groups??[]],description:d.service.description??``,docsPath:d.service.docsPath??``,url:d.service.url??``,openapiUrl:d.service.openapiUrl??``,gitRemote:d.service.git?.remote??``,gitHome:d.service.git?.home??``,autoRestart:d.service.autoRestart,clearLogsOnStart:d.service.clearLogsOnStart??!1}),_=I(m(d.service.meta));n(()=>d.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 b(e){_.value=_.value.filter((t,n)=>n!==e)}function x(e,t,n){_.value=_.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function S(){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 C=null;function T(){C&&clearTimeout(C),C=setTimeout(()=>{f(`save`,S()),C=null},150)}return(e,n)=>(o(),t(`div`,Xt,[O(`div`,Zt,[O(`div`,Qt,[n[12]||=O(`i`,{class:`pi pi-tag`},null,-1),O(`span`,null,j(H(i)(`serviceConfigGeneral.name`)),1)]),F(H(z),{modelValue:h.value.name,"onUpdate:modelValue":n[0]||=e=>h.value.name=e,class:`config-card__input`,onBlur:T,onKeydown:w(D(T,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),O(`div`,$t,[O(`div`,en,[n[13]||=O(`i`,{class:`pi pi-folder`},null,-1),O(`span`,null,j(H(i)(`serviceConfigGeneral.workingDirectory`)),1)]),F(H(z),{modelValue:h.value.cwd,"onUpdate:modelValue":n[1]||=e=>h.value.cwd=e,class:`config-card__input`,placeholder:`.`,onBlur:T,onKeydown:w(D(T,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),O(`small`,tn,j(H(i)(`serviceConfigGeneral.cwdHint`)),1)]),O(`div`,nn,[n[14]||=O(`div`,{class:`config-card__header`},[O(`i`,{class:`pi pi-file-edit`}),O(`span`,null,`Dossier de documentation (wiki)`)],-1),F(H(z),{modelValue:h.value.docsPath,"onUpdate:modelValue":n[2]||=e=>h.value.docsPath=e,class:`config-card__input`,placeholder:`(défaut : même que cwd)`,onBlur:T,onKeydown:w(D(T,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),n[15]||=O(`small`,{class:`config-card__hint`},[B(` Chemin relatif au cwd du service (ex. `),O(`code`,null,`docs`),B(`) ou absolu. Si vide, utilise le cwd. `)],-1)]),O(`div`,rn,[O(`div`,an,[n[16]||=O(`i`,{class:`pi pi-globe`},null,-1),O(`span`,null,j(H(i)(`serviceConfigGeneral.ports`)),1)]),F(H(Oe),{modelValue:h.value.ports,"onUpdate:modelValue":n[3]||=e=>h.value.ports=e,multiple:``,typeahead:!1,class:`config-card__input`,placeholder:H(i)(`serviceConfigGeneral.portsPlaceholder`),onChange:T},null,8,[`modelValue`,`placeholder`]),O(`small`,on,j(H(i)(`serviceConfigGeneral.portsHint`)),1)]),O(`div`,sn,[O(`div`,cn,[n[17]||=O(`i`,{class:`pi pi-th-large`},null,-1),O(`span`,null,j(H(i)(`serviceConfigGeneral.groups`)),1)]),F(H(Oe),{modelValue:h.value.groups,"onUpdate:modelValue":n[4]||=e=>h.value.groups=e,multiple:``,suggestions:c.value,"complete-on-focus":!0,class:`config-card__input`,placeholder:H(i)(`serviceConfigGeneral.groupsPlaceholder`),onComplete:l,onChange:T,onKeydown:w(u,[`enter`])},null,8,[`modelValue`,`suggestions`,`placeholder`]),O(`small`,ln,j(H(i)(`serviceConfigGeneral.groupsHint`)),1)]),O(`div`,un,[O(`div`,dn,[n[18]||=O(`i`,{class:`pi pi-info-circle`},null,-1),O(`span`,null,j(H(i)(`serviceConfigGeneral.description`)),1)]),F(H(le),{modelValue:h.value.description,"onUpdate:modelValue":n[5]||=e=>h.value.description=e,class:`config-card__input`,rows:2,onBlur:T},null,8,[`modelValue`]),O(`small`,fn,j(H(i)(`serviceConfigGeneral.descriptionHint`)),1)]),O(`div`,pn,[O(`div`,mn,[n[19]||=O(`i`,{class:`pi pi-external-link`},null,-1),O(`span`,null,j(H(i)(`serviceConfigGeneral.url`)),1)]),F(H(z),{modelValue:h.value.url,"onUpdate:modelValue":n[6]||=e=>h.value.url=e,class:`config-card__input`,placeholder:`https://...`,onBlur:T,onKeydown:w(D(T,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),O(`small`,hn,j(H(i)(`serviceConfigGeneral.urlHint`)),1)]),O(`div`,gn,[O(`div`,_n,[n[20]||=O(`i`,{class:`pi pi-book`},null,-1),O(`span`,null,j(H(i)(`serviceConfigGeneral.openapiUrl`)),1)]),F(H(z),{modelValue:h.value.openapiUrl,"onUpdate:modelValue":n[7]||=e=>h.value.openapiUrl=e,class:`config-card__input`,placeholder:`https://.../swagger.json`,onBlur:T,onKeydown:w(D(T,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),O(`small`,vn,j(H(i)(`serviceConfigGeneral.openapiUrlHint`)),1)]),O(`div`,yn,[O(`div`,bn,[n[21]||=O(`i`,{class:`pi pi-github`},null,-1),O(`span`,null,j(H(i)(`serviceConfigGeneral.git`)),1)]),F(H(z),{modelValue:h.value.gitRemote,"onUpdate:modelValue":n[8]||=e=>h.value.gitRemote=e,class:`config-card__input`,placeholder:`git@github.com:org/repo.git`,onBlur:T,onKeydown:w(D(T,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),O(`small`,xn,j(H(i)(`serviceConfigGeneral.gitRemoteHint`)),1),F(H(z),{modelValue:h.value.gitHome,"onUpdate:modelValue":n[9]||=e=>h.value.gitHome=e,class:`config-card__input`,style:{"margin-top":`0.5rem`},placeholder:`https://github.com/org/repo`,onBlur:T,onKeydown:w(D(T,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),O(`small`,Sn,j(H(i)(`serviceConfigGeneral.gitHomeHint`)),1)]),O(`div`,Cn,[O(`div`,wn,[n[22]||=O(`i`,{class:`pi pi-hashtag`},null,-1),O(`span`,null,j(H(i)(`serviceConfigGeneral.meta`)),1)]),O(`small`,Tn,j(H(i)(`serviceConfigGeneral.metaHint`)),1),O(`div`,En,[(o(!0),t(g,null,de(_.value,(e,n)=>(o(),t(`div`,{key:n,class:`config-meta__row`},[F(H(z),{"model-value":e.key,placeholder:H(i)(`serviceConfigGeneral.metaKeyPlaceholder`),class:`config-meta__input`,"onUpdate:modelValue":e=>x(n,`key`,e),onBlur:T,onKeydown:w(D(T,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),F(H(z),{"model-value":e.value,placeholder:H(i)(`serviceConfigGeneral.metaValuePlaceholder`),class:`config-meta__input config-meta__input--wide`,"onUpdate:modelValue":e=>x(n,`value`,e),onBlur:T,onKeydown:w(D(T,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),F(H(L),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:()=>{b(n),T()}},null,8,[`onClick`])]))),128)),F(H(L),{label:H(i)(`serviceConfigGeneral.addEntry`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,class:`config-meta__add`,onClick:v},null,8,[`label`])])]),O(`div`,Dn,[O(`div`,On,[n[23]||=O(`i`,{class:`pi pi-refresh`},null,-1),O(`span`,null,j(H(i)(`serviceConfigGeneral.autoRestart`)),1)]),F(H(De),{modelValue:h.value.autoRestart,"onUpdate:modelValue":n[10]||=e=>h.value.autoRestart=e,onChange:T},null,8,[`modelValue`])]),O(`div`,kn,[O(`div`,An,[n[24]||=O(`i`,{class:`pi pi-trash`},null,-1),O(`span`,null,j(H(i)(`serviceConfigGeneral.clearLogs`)),1)]),F(H(De),{modelValue:h.value.clearLogsOnStart,"onUpdate:modelValue":n[11]||=e=>h.value.clearLogsOnStart=e,onChange:T},null,8,[`modelValue`])])]))}}),[[`__scopeId`,`data-v-e166143a`]]),Mn={class:`docker-config`},Nn={class:`docker-config__section`},Pn={for:`docker-mode-image`,class:`docker-config__section-title`},Fn={class:`docker-config__mode-toggle`},In={class:`docker-config__mode-option`},Ln={class:`docker-config__mode-option`},Rn={key:0,class:`docker-config__section`},zn={for:`docker-image`,class:`docker-config__label`},Bn={class:`docker-config__section`},Vn={class:`docker-config__section`},Hn={for:`docker-build-context`,class:`docker-config__label`},Un={class:`docker-config__section`},Wn={for:`docker-add-build-arg`,class:`docker-config__label`},Gn={class:`docker-config__kv-list`},Kn={class:`docker-config__section`},qn={for:`docker-target-stage`,class:`docker-config__label`},Jn={class:`docker-config__section`},Yn={for:`docker-user`,class:`docker-config__section-title`},Xn={class:`docker-config__section`},Zn={for:`docker-user`,class:`docker-config__label`},Qn={class:`docker-config__section`},$n={for:`docker-network-mode`,class:`docker-config__label`},er={key:2,class:`docker-config__section`},tr={for:`docker-add-port`,class:`docker-config__label`},nr={class:`docker-config__list`},rr={class:`docker-config__section`},ir={for:`docker-add-volume`,class:`docker-config__label`},ar={class:`docker-config__checkbox-row`},or={for:`mountRootpath`,class:`docker-config__checkbox-label`},sr={class:`docker-config__list`},cr={class:`docker-config__section`},lr={class:`docker-config__checkbox-row`},ur={for:`useNativeCommand`,class:`docker-config__checkbox-label`},dr={key:0,class:`docker-config__shell-row`},fr={for:`docker-native-shell`,class:`docker-config__label`},pr={class:`docker-config__hint`},mr={key:1,class:`docker-config__mode-toggle docker-config__mode-toggle--indented`},hr={class:`docker-config__mode-option`},gr={class:`docker-config__mode-option`},_r={class:`docker-config__section`},vr={for:`docker-entrypoint`,class:`docker-config__label`},yr={class:`docker-config__section`},br={for:`docker-command`,class:`docker-config__label`},xr={class:`docker-config__section`},Sr={for:`docker-add-bootstrap`,class:`docker-config__section-title`},Cr={class:`docker-config__bootstrap-row`},wr={class:`docker-config__bootstrap-field`},Tr=[`for`],Er={class:`docker-config__bootstrap-field`},Dr=[`for`],Or={class:`docker-config__bootstrap-field docker-config__bootstrap-field--wide`},kr=[`for`],Ar={class:`docker-config__bootstrap-field`},jr=[`for`],Mr={class:`docker-config__bootstrap-actions`},Nr={class:`docker-config__section`},Pr=V(R({__name:`ServiceConfigDocker`,props:{service:{}},emits:[`save`],setup(e,{emit:n}){let{t:r}=p(),a=e,s=n,c=a.service.dockerConfig??{},l=I(c.dockerfile?`build`:`image`),u=I(c.image??``),f=I(c.dockerfile??``),m=I(c.buildContext??``),h=I(Object.entries(c.buildArgs??{}).map(([e,t])=>({key:e,value:t}))),_=I(c.targetStage??``),v=I(c.networkMode??`host`),y=I([...c.ports??[]]),x=I([...c.volumes??[]]),S=I(c.mountRootpath??!1),C=I(c.entrypoint??``),T=I(c.command??``),ee=I(c.user??``),k=I(c.useNativeCommand??!1),A=I(c.nativeCommandMode??`isolated`),te=I(c.nativeShell??`sh`),M=[{label:`sh (POSIX)`,value:`sh`},{label:`bash`,value:`bash`},{label:`zsh`,value:`zsh`},{label:`ash (Alpine)`,value:`ash`}],N=I([...c.bootstrapCommands??[]]),re=I(!1),ie=[{label:`Host (--network host)`,value:`host`},{label:`Bridge`,value:`bridge`}];function ae(){h.value=[...h.value,{key:``,value:``}]}function P(e){h.value=h.value.filter((t,n)=>n!==e)}function se(e,t,n){h.value=h.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function ce(){y.value=[...y.value,``]}function le(e){y.value=y.value.filter((t,n)=>n!==e)}function ue(e,t){y.value=y.value.map((n,r)=>r===e?t:n)}function fe(){x.value=[...x.value,``]}function pe(e){x.value=x.value.filter((t,n)=>n!==e)}function R(e,t){x.value=x.value.map((n,r)=>r===e?t:n)}function me(){N.value=[...N.value,{id:Ie(),label:`Bootstrap`,entrypoint:`/bin/sh`,command:`-c ""`,user:void 0}]}function he(e){N.value=N.value.filter((t,n)=>n!==e)}function ge(e,t,n){N.value=N.value.map((r,i)=>i===e?{...r,[t]:n===``?void 0:n}:r)}function _e(e,t){let n=[...N.value],r=e+t;r<0||r>=n.length||([n[e],n[r]]=[n[r],n[e]],N.value=n)}let ve=null;function V(){ve&&clearTimeout(ve),ve=setTimeout(()=>{let e={};for(let{key:t,value:n}of h.value)t.trim()&&(e[t.trim()]=n);s(`save`,{image:l.value===`image`&&u.value||void 0,dockerfile:l.value===`build`&&f.value||void 0,buildContext:m.value||void 0,buildArgs:e,targetStage:_.value||void 0,networkMode:v.value,ports:y.value.filter(Boolean),volumes:x.value.filter(Boolean),mountRootpath:S.value,entrypoint:C.value||void 0,command:T.value||void 0,user:ee.value||void 0,useNativeCommand:k.value,nativeCommandMode:A.value,nativeShell:te.value,bootstrapCommands:N.value}),ve=null},150)}function ye(e){he(e),V()}function xe(e,t){_e(e,t),V()}function Se(e){P(e),V()}function Ce(e){le(e),V()}function we(e){pe(e),V()}return(e,n)=>(o(),t(`div`,Mn,[O(`div`,Nn,[O(`label`,Pn,j(H(r)(`serviceConfigDocker.imageSource`)),1),O(`div`,Fn,[O(`label`,In,[d(O(`input`,{id:`docker-mode-image`,"onUpdate:modelValue":n[0]||=e=>l.value=e,type:`radio`,value:`image`,class:`docker-config__radio`,onChange:V},null,544),[[be,l.value]]),B(` `+j(H(r)(`serviceConfigDocker.pullImage`)),1)]),O(`label`,Ln,[d(O(`input`,{"onUpdate:modelValue":n[1]||=e=>l.value=e,type:`radio`,value:`build`,class:`docker-config__radio`,onChange:V},null,544),[[be,l.value]]),B(` `+j(H(r)(`serviceConfigDocker.buildDockerfile`)),1)])])]),l.value===`image`?(o(),t(`div`,Rn,[O(`label`,zn,j(H(r)(`serviceConfigDocker.image`)),1),F(H(z),{id:`docker-image`,modelValue:u.value,"onUpdate:modelValue":n[2]||=e=>u.value=e,placeholder:H(r)(`serviceConfigDocker.imagePlaceholder`),class:`docker-config__input`,onBlur:V,onKeydown:w(D(V,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])):b(``,!0),l.value===`build`?(o(),t(g,{key:1},[O(`div`,Bn,[n[18]||=O(`label`,{for:`docker-dockerfile-btn`,class:`docker-config__label`},`Dockerfile`,-1),F(H(L),{id:`docker-dockerfile-btn`,label:H(r)(`serviceConfigDocker.editDockerfile`),icon:`pi pi-file-edit`,severity:`secondary`,outlined:``,size:`small`,onClick:n[3]||=e=>re.value=!0},null,8,[`label`]),F(H(oe),{visible:re.value,"onUpdate:visible":n[6]||=e=>re.value=e,header:H(r)(`serviceConfigDocker.editDockerfile`),modal:``,style:{width:`800px`}},{footer:E(()=>[F(H(L),{label:H(r)(`serviceConfigDocker.closeDockerfile`),icon:`pi pi-times`,onClick:n[5]||=()=>{re.value=!1,V()}},null,8,[`label`])]),default:E(()=>[F(i,{modelValue:f.value,"onUpdate:modelValue":n[4]||=e=>f.value=e,language:`dockerfile`,style:{height:`400px`}},null,8,[`modelValue`])]),_:1},8,[`visible`,`header`])]),O(`div`,Vn,[O(`label`,Hn,j(H(r)(`serviceConfigDocker.buildContext`)),1),F(H(z),{id:`docker-build-context`,modelValue:m.value,"onUpdate:modelValue":n[7]||=e=>m.value=e,placeholder:`.`,class:`docker-config__input`,onBlur:V,onKeydown:w(D(V,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),O(`div`,Un,[O(`label`,Wn,j(H(r)(`serviceConfigDocker.buildArgs`)),1),O(`div`,Gn,[(o(!0),t(g,null,de(h.value,(e,n)=>(o(),t(`div`,{key:n,class:`docker-config__kv-row`},[F(H(z),{"model-value":e.key,placeholder:H(r)(`serviceConfigDocker.argNamePlaceholder`),class:`docker-config__kv-input`,"onUpdate:modelValue":e=>se(n,`key`,e),onBlur:V,onKeydown:w(D(V,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),F(H(z),{"model-value":e.value,placeholder:H(r)(`serviceConfigDocker.argValuePlaceholder`),class:`docker-config__kv-input`,"onUpdate:modelValue":e=>se(n,`value`,e),onBlur:V,onKeydown:w(D(V,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),F(H(L),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>Se(n)},null,8,[`onClick`])]))),128)),F(H(L),{id:`docker-add-build-arg`,label:H(r)(`serviceConfigDocker.addBuildArg`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:ae},null,8,[`label`])])]),O(`div`,Kn,[O(`label`,qn,j(H(r)(`serviceConfigDocker.targetStage`)),1),F(H(z),{id:`docker-target-stage`,modelValue:_.value,"onUpdate:modelValue":n[8]||=e=>_.value=e,placeholder:H(r)(`serviceConfigDocker.targetStagePlaceholder`),class:`docker-config__input`,onBlur:V,onKeydown:w(D(V,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])],64)):b(``,!0),F(H(Be)),O(`div`,Jn,[O(`label`,Yn,j(H(r)(`serviceConfigDocker.runtimeConfig`)),1)]),O(`div`,Xn,[O(`label`,Zn,j(H(r)(`serviceConfigDocker.userGroup`)),1),F(H(z),{id:`docker-user`,modelValue:ee.value,"onUpdate:modelValue":n[9]||=e=>ee.value=e,placeholder:H(r)(`serviceConfigDocker.userGroupHint`),class:`docker-config__input`,onBlur:V,onKeydown:w(D(V,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),O(`div`,Qn,[O(`label`,$n,j(H(r)(`serviceConfigDocker.networkMode`)),1),F(H(ne),{"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:V},null,8,[`modelValue`])]),v.value===`bridge`?(o(),t(`div`,er,[O(`label`,tr,j(H(r)(`serviceConfigDocker.portMappings`)),1),O(`div`,nr,[(o(!0),t(g,null,de(y.value,(e,n)=>(o(),t(`div`,{key:n,class:`docker-config__list-row`},[F(H(z),{"model-value":e,placeholder:H(r)(`serviceConfigDocker.portPlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>ue(n,e),onBlur:V,onKeydown:w(D(V,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),F(H(L),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>Ce(n)},null,8,[`onClick`])]))),128)),F(H(L),{id:`docker-add-port`,label:H(r)(`serviceConfigDocker.addPort`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:ce},null,8,[`label`])])])):b(``,!0),O(`div`,rr,[O(`label`,ir,j(H(r)(`serviceConfigDocker.volumes`)),1),O(`div`,ar,[F(H(Ee),{modelValue:S.value,"onUpdate:modelValue":n[11]||=e=>S.value=e,binary:!0,"input-id":`mountRootpath`,onChange:V},null,8,[`modelValue`]),O(`label`,or,j(H(r)(`serviceConfigDocker.autoMount`)),1)]),O(`div`,sr,[(o(!0),t(g,null,de(x.value,(e,n)=>(o(),t(`div`,{key:n,class:`docker-config__list-row`},[F(H(z),{"model-value":e,placeholder:H(r)(`serviceConfigDocker.volumePlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>R(n,e),onBlur:V,onKeydown:w(D(V,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),F(H(L),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>we(n)},null,8,[`onClick`])]))),128)),F(H(L),{id:`docker-add-volume`,label:H(r)(`serviceConfigDocker.addVolume`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:fe},null,8,[`label`])])]),F(H(Be)),O(`div`,cr,[O(`div`,lr,[F(H(Ee),{modelValue:k.value,"onUpdate:modelValue":n[12]||=e=>k.value=e,binary:!0,"input-id":`useNativeCommand`,onChange:V},null,8,[`modelValue`]),O(`label`,ur,j(H(r)(`serviceConfigDocker.runNative`)),1)]),n[21]||=O(`span`,{class:`docker-config__hint`},` When enabled, the service command is executed directly inside the container (ignores CMD override below). `,-1),k.value?(o(),t(`div`,dr,[O(`label`,fr,j(H(r)(`serviceConfigDocker.shell`)),1),F(H(ne),{"input-id":`docker-native-shell`,modelValue:te.value,"onUpdate:modelValue":n[13]||=e=>te.value=e,options:M,"option-label":`label`,"option-value":`value`,class:`docker-config__select docker-config__select--small`,editable:``,placeholder:H(r)(`serviceConfigDocker.shellPlaceholder`),onChange:V},null,8,[`modelValue`,`placeholder`]),O(`span`,pr,[B(j(H(r)(`serviceConfigDocker.shellHint`))+` (`,1),n[19]||=O(`code`,null,`shell -c '...'`,-1),n[20]||=B(`)`,-1)])])):b(``,!0),k.value?(o(),t(`div`,mr,[O(`label`,hr,[d(O(`input`,{"onUpdate:modelValue":n[14]||=e=>A.value=e,type:`radio`,value:`isolated`,class:`docker-config__radio`,onChange:V},null,544),[[be,A.value]]),B(` `+j(H(r)(`serviceConfigDocker.isolated`)),1)]),O(`label`,gr,[d(O(`input`,{"onUpdate:modelValue":n[15]||=e=>A.value=e,type:`radio`,value:`shared`,class:`docker-config__radio`,onChange:V},null,544),[[be,A.value]]),B(` `+j(H(r)(`serviceConfigDocker.shared`)),1)])])):b(``,!0)]),k.value?b(``,!0):(o(),t(g,{key:3},[n[22]||=O(`div`,{class:`docker-config__section`},[O(`label`,{for:`docker-entrypoint`,class:`docker-config__section-title`},`Override`)],-1),O(`div`,_r,[O(`label`,vr,j(H(r)(`serviceConfigDocker.entrypoint`)),1),F(H(z),{id:`docker-entrypoint`,modelValue:C.value,"onUpdate:modelValue":n[16]||=e=>C.value=e,placeholder:H(r)(`serviceConfigDocker.entrypointPlaceholder`),class:`docker-config__input`,onBlur:V,onKeydown:w(D(V,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),O(`div`,yr,[O(`label`,br,j(H(r)(`serviceConfigDocker.cmdOverride`)),1),F(H(z),{id:`docker-command`,modelValue:T.value,"onUpdate:modelValue":n[17]||=e=>T.value=e,placeholder:H(r)(`serviceConfigDocker.cmdPlaceholder`),class:`docker-config__input`,onBlur:V,onKeydown:w(D(V,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])],64)),F(H(Be)),O(`div`,xr,[O(`label`,Sr,[B(j(H(r)(`serviceConfigDocker.bootstrapCommands`))+` `,1),n[23]||=O(`span`,{class:`docker-config__hint-inline`},` — run sequentially before the service starts`,-1)])]),(o(!0),t(g,null,de(N.value,(e,n)=>(o(),t(`div`,{key:e.id,class:`docker-config__bootstrap-card`},[O(`div`,Cr,[O(`div`,wr,[O(`label`,{class:`docker-config__label`,for:`docker-bootstrap-label-${n}`},`Label`,8,Tr),F(H(z),{id:`docker-bootstrap-label-${n}`,"model-value":e.label,placeholder:H(r)(`serviceConfigDocker.bootstrapLabelPlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>ge(n,`label`,e),onBlur:V,onKeydown:w(D(V,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),O(`div`,Er,[O(`label`,{class:`docker-config__label`,for:`docker-bootstrap-entrypoint-${n}`},`Entrypoint`,8,Dr),F(H(z),{id:`docker-bootstrap-entrypoint-${n}`,"model-value":e.entrypoint??``,placeholder:`/bin/sh`,class:`docker-config__input`,"onUpdate:modelValue":e=>ge(n,`entrypoint`,e),onBlur:V,onKeydown:w(D(V,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),O(`div`,Or,[O(`label`,{class:`docker-config__label`,for:`docker-bootstrap-command-${n}`},`Command`,8,kr),F(H(z),{id:`docker-bootstrap-command-${n}`,"model-value":e.command,placeholder:`-c "npm install"`,class:`docker-config__input`,"onUpdate:modelValue":e=>ge(n,`command`,e),onBlur:V,onKeydown:w(D(V,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),O(`div`,Ar,[O(`label`,{class:`docker-config__label`,for:`docker-bootstrap-user-${n}`},`User:Group`,8,jr),F(H(z),{id:`docker-bootstrap-user-${n}`,"model-value":e.user??``,placeholder:H(r)(`serviceConfigDocker.userGroupHint`),class:`docker-config__input`,"onUpdate:modelValue":e=>ge(n,`user`,e),onBlur:V,onKeydown:w(D(V,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),O(`div`,Mr,[F(H(L),{icon:`pi pi-arrow-up`,text:``,rounded:``,size:`small`,disabled:n===0,onClick:e=>xe(n,-1)},null,8,[`disabled`,`onClick`]),F(H(L),{icon:`pi pi-arrow-down`,text:``,rounded:``,size:`small`,disabled:n===N.value.length-1,onClick:e=>xe(n,1)},null,8,[`disabled`,`onClick`]),F(H(L),{icon:`pi pi-times`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>ye(n)},null,8,[`onClick`])])])]))),128)),O(`div`,Nr,[F(H(L),{id:`docker-add-bootstrap`,label:H(r)(`serviceConfigDocker.addBootstrapCommand`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:me},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-36904478`]]),Fr={class:`config-commands`},Ir={class:`config-commands__execution`},Lr={class:`config-card config-card--execution`},Rr={class:`config-card__header`},zr={class:`config-card__hint`},Br={class:`config-card config-card--execution`},Vr={class:`config-card__header`},Hr={key:0,class:`runner-option`},Ur={class:`runner-option`},Wr={class:`config-commands__tab-content`},Gr={key:0,class:`config-commands__empty`},Kr={class:`config-commands__row`},qr={class:`config-commands__field`},Jr=[`for`],Yr={class:`config-commands__field config-commands__field--wide`},Xr=[`for`],Zr={class:`config-commands__field`},Qr=[`for`],$r={class:`config-commands__actions-cell`},ei={class:`config-commands__footer`},ti={class:`config-commands__tab-content`},ni=`__inherit__`,ri=V(R({__name:`ServiceConfigCommands`,props:{service:{}},emits:[`save`,`dockerSave`],setup(e,{emit:r}){let i=e,a=r,{t:s}=p(),c=m(),l=null,u=I({agentId:i.service.agentId??ni,runner:i.service.runner});n(()=>i.service,e=>{u.value={agentId:e.agentId??ni,runner:e.runner}});let d=k(()=>[{label:s(`serviceConfigCommands.native`),value:`native`,icon:`pi pi-desktop`},{label:s(`serviceConfigCommands.docker`),value:`docker`,icon:`pi pi-box`}]),f=k(()=>d.value.find(e=>e.value===u.value.runner)?.icon??`pi pi-box`),_=k(()=>[{label:s(`serviceForm.agentInherit`),value:ni},...c.agents.map(e=>({label:`${e.config.name} (${e.status.connected?s(`serviceConfigCommands.online`):s(`serviceConfigCommands.offline`)})`,value:e.config.id}))]),v=I([...i.service.commands??[]]);n(()=>i.service,e=>{l||(v.value=[...e.commands??[]])});function y(){v.value=[...v.value,{id:Ie(),label:``,command:``,cwd:void 0,shell:!0}]}function x(e){v.value=v.value.filter((t,n)=>n!==e)}function S(e,t,n){v.value=v.value.map((r,i)=>i===e?{...r,[t]:n===``?void 0:n}:r)}function C(){l&&clearTimeout(l),l=setTimeout(()=>{a(`save`,{agentId:u.value.agentId===ni?null:u.value.agentId||null,runner:u.value.runner,commands:v.value}),l=null},150)}function T(e){a(`dockerSave`,e)}function ee(e){x(e),C()}return(n,r)=>(o(),t(`div`,Fr,[O(`div`,Ir,[O(`div`,Lr,[O(`div`,Rr,[r[2]||=O(`i`,{class:`pi pi-server`},null,-1),O(`span`,null,j(H(s)(`serviceConfigCommands.agent`)),1)]),F(H(ne),{modelValue:u.value.agentId,"onUpdate:modelValue":r[0]||=e=>u.value.agentId=e,options:_.value,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:C},null,8,[`modelValue`,`options`]),O(`small`,zr,j(H(s)(`serviceForm.agentHintEdit`)),1)]),O(`div`,Br,[O(`div`,Vr,[O(`i`,{class:h(f.value)},null,2),O(`span`,null,j(H(s)(`serviceConfigCommands.runner`)),1)]),F(H(ne),{modelValue:u.value.runner,"onUpdate:modelValue":r[1]||=e=>u.value.runner=e,options:d.value,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:C},{value:E(e=>[e.value?(o(),t(`div`,Hr,[O(`i`,{class:h(d.value.find(t=>t.value===e.value)?.icon)},null,2),O(`span`,null,j(d.value.find(t=>t.value===e.value)?.label),1)])):b(``,!0)]),option:E(e=>[O(`div`,Ur,[O(`i`,{class:h(e.option.icon)},null,2),O(`span`,null,j(e.option.label),1)])]),_:1},8,[`modelValue`,`options`])])]),F(H(ke),{value:`0`},{default:E(()=>[F(H(Ae),null,{default:E(()=>[F(H(Me),{value:`0`},{default:E(()=>[r[3]||=O(`i`,{class:`pi pi-desktop tab-icon`},null,-1),O(`span`,null,j(H(s)(`serviceConfigCommands.native`)),1)]),_:1}),F(H(Me),{value:`1`},{default:E(()=>[r[4]||=O(`i`,{class:`pi pi-box tab-icon`},null,-1),O(`span`,null,j(H(s)(`serviceConfigCommands.docker`)),1)]),_:1})]),_:1}),F(H(je),null,{default:E(()=>[F(H(Ne),{value:`0`},{default:E(()=>[O(`div`,Wr,[v.value.length===0?(o(),t(`div`,Gr,[O(`p`,null,j(H(s)(`serviceConfigCommands.noCommands`)),1)])):b(``,!0),(o(!0),t(g,null,de(v.value,(e,n)=>(o(),t(`div`,{key:e.id,class:`config-card`},[O(`div`,Kr,[O(`div`,qr,[O(`label`,{class:`config-commands__label`,for:`cmd-label-${n}`},j(H(s)(`serviceConfigCommands.labelPlaceholder`)),9,Jr),F(H(z),{id:`cmd-label-${n}`,"model-value":e.label,placeholder:H(s)(`serviceConfigCommands.labelPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>S(n,`label`,e),onBlur:C,onKeydown:w(D(C,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),O(`div`,Yr,[O(`label`,{class:`config-commands__label`,for:`cmd-command-${n}`},j(H(s)(`serviceConfigCommands.commandPlaceholder`)),9,Xr),F(H(z),{id:`cmd-command-${n}`,"model-value":e.command,placeholder:`e.g. npm start`,class:`config-card__input`,"onUpdate:modelValue":e=>S(n,`command`,e),onBlur:C,onKeydown:w(D(C,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),O(`div`,Zr,[O(`label`,{class:`config-commands__label`,for:`cmd-cwd-${n}`},`Working Dir (optional)`,8,Qr),F(H(z),{id:`cmd-cwd-${n}`,"model-value":e.cwd??``,placeholder:H(s)(`serviceConfigCommands.cwdPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>S(n,`cwd`,e),onBlur:C,onKeydown:w(D(C,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),O(`div`,$r,[F(H(L),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>ee(n)},null,8,[`onClick`])])])]))),128)),O(`div`,ei,[F(H(L),{label:H(s)(`serviceConfigCommands.addCommand`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:y},null,8,[`label`])])])]),_:1}),F(H(Ne),{value:`1`},{default:E(()=>[O(`div`,ti,[F(Pr,{service:e.service,onSave:T},null,8,[`service`])])]),_:1})]),_:1})]),_:1})]))}}),[[`__scopeId`,`data-v-df297a71`]]),ii={class:`config-env`,"data-testid":`config-env`},ai={key:0,class:`active-env-display`},oi={class:`active-env-label`},si={key:1,class:`inheritance-toggle`},ci={class:`inheritance-label`},li={class:`inherited-header`},ui={class:`inherited-row-key`},di={class:`preview-key`},fi={class:`value-row`},pi=[`onClick`],mi=[`onClick`],hi={key:0,class:`secret-mask`},gi={key:1,class:`preview-value`},_i={class:`config-env__header`},vi={class:`config-env__title`},yi={class:`config-env__actions`},bi={key:3,class:`variables-view`},xi={key:0},Si={key:1,class:`empty-state`},Ci={class:`inherited-header`},wi={class:`passthrough-info`},Ti={class:`preview-key`},Ei={key:0,class:`preview-value`},Di={key:1,class:`passthrough-undefined`},Oi={key:4,class:`empty-state`},ki={key:5,class:`empty-state`},Ai={class:`editor-container`},ji={key:0,class:`editor-env-banner`},Mi={class:`editor-env-text`},Ni={class:`editor-section`,"data-testid":`variables-editor`},Pi={key:0,class:`loading-container`},Fi={key:1,class:`preview-container`},Ii={class:`preview-info`},Li={class:`preview-key`},Ri={class:`value-row`},zi=[`onClick`],Bi=[`onClick`],Vi={key:0,class:`secret-mask`},Hi={key:1,class:`preview-value`},Ui=V(R({__name:`ServiceConfigEnv`,props:{service:{},projectId:{},activeEnvironmentId:{}},setup(e){let r=e,{t:i}=p(),s=_(),c=ue(),l=ae(),d=te(),g=m(),v=re(),y=k(()=>d.projects.find(e=>e.id===r.projectId)?.activeEnvironmentId??null),S=k(()=>l.findServiceEnvironment(r.service.id,y.value??``)),w=I(!1),A=I(!1),ne=I(!1),ie=I(!1),P=I(null),se=I(null),ce=I([]),le=I({}),de=I(new Set);function fe(e){let t=new Set(de.value);t.has(e)?t.delete(e):t.add(e),de.value=t}let pe=I(null);function R(e,t){navigator.clipboard.writeText(t),pe.value=e,setTimeout(()=>{pe.value===e&&(pe.value=null)},1500)}let z=I({}),me=I(!1),he=k(()=>r.service.agentId?g.getById(r.service.agentId):null),ge=k(()=>{let e=he.value?.status.lanIp;return e?{"service.HOST_LAN":e}:{}}),_e=k(()=>he.value?.config.passthroughEnv??[]),ve=k(()=>_e.value.length>0);async function V(){if(!r.service.agentId||!ve.value){z.value={};return}me.value=!0;try{z.value=await T.agent.getPassthroughEnv.query({id:r.service.agentId})}catch{z.value={}}finally{me.value=!1}}let ye=k(()=>_e.value.map(e=>({name:e,value:z.value[e]??null}))),be=k(()=>!S.value||!y.value?!0:S.value.parentIds?.includes(y.value)??!0);async function xe(e){if(!(!S.value||!y.value)){ie.value=!0;try{await l.update({id:S.value.id,parentIds:e?[y.value]:[]}),await je()}catch(e){s.add({severity:`error`,summary:i(`serviceConfigEnv.error`),detail:e.message??i(`serviceConfigEnv.failedToUpdateInheritance`),life:5e3})}finally{ie.value=!1}}}let Se=k(()=>{let e=d.projects.find(e=>e.id===r.projectId);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 Ee=k(()=>P.value?Te(P.value.variables):[]),Oe=k(()=>{if(!S.value||!P.value?.sources)return Ee.value;let e=S.value.id;return Ee.value.filter(t=>P.value.sources[t.variableId]?.environmentId===e)}),ke=k(()=>{if(!S.value||!P.value?.sources)return[];let e=S.value.id;return Ee.value.filter(t=>P.value.sources[t.variableId]?.environmentId!==e)}),Ae=k(()=>{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 Me(){if(y.value)try{se.value=await l.resolve(y.value)}catch{}}async function Ne(e){let t=e.toLowerCase(),n=se.value??P.value;if(!n)return;let r=n.variables,i=Object.keys(n.env).filter(e=>e.toLowerCase().includes(t));ce.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??``})}le.value=a}async function Ie(){ne.value=!0;try{await ze(),await je(),A.value=!0}catch(e){s.add({severity:`error`,summary:i(`serviceConfigEnv.error`),detail:e.message??i(`serviceConfigEnv.failedToLoadPreview`),life:5e3})}finally{ne.value=!1}}let Le=k(()=>P.value?Object.entries(P.value.env).map(([e,t])=>({key:e,value:Object.entries(ge.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(!y.value)return null;let e=Se.value;return e?(await l.create({name:`${r.service.name??r.service.id} — ${e.name}`,projectId:r.projectId,scope:`service`,reference:r.service.id,activateOn:y.value,parentIds:[y.value],variables:{}}),S.value):null}let Be=k(()=>{let e=v.getByService(r.service.id);return e.length>0?e[0]:null}),Ve=k(()=>{let e=Be.value?.state;return e===`running`||e===`errored`});async function He(){await ze(),w.value=!0,await Promise.all([je(),Me()])}function Ue(){if(w.value=!1,!Ve.value||!Be.value)return;let e=Be.value.state===`running`?`restart`:`start`,t=r.service.name||r.service.id;c.require({message:i(e===`restart`?`serviceConfigEnv.restartConfirmMsg`:`serviceConfigEnv.startConfirmMsg`,{name:t}),header:i(e===`restart`?`serviceConfigEnv.restartTitle`:`serviceConfigEnv.startTitle`),icon:`pi pi-refresh`,acceptLabel:i(e===`restart`?`serviceConfigEnv.restartTitle`:`actions.start`),rejectLabel:i(`serviceConfigEnv.notNow`),accept:async()=>{try{let t=r.service.agentId;if(!t)return;e===`restart`?(await v.restart(t,r.service.id),s.add({severity:`success`,summary:i(`serviceConfigEnv.serviceRestarted`),life:3e3})):(await v.start(t,r.service.id),s.add({severity:`success`,summary:i(`serviceConfigEnv.serviceStarted`),life:3e3}))}catch(t){s.add({severity:`error`,summary:i(`serviceConfigEnv.error`),detail:t.message??i(`serviceConfigEnv.failedToAction`,{action:e}),life:5e3})}}})}return n(Se,async e=>{e&&await Promise.all([je(),Me()])}),n(()=>r.service.agentId,()=>{V()}),a(async()=>{r.projectId&&await l.fetchAll(r.projectId),await Promise.all([je(),Me(),V()])}),(n,r)=>(o(),t(`div`,ii,[y.value?(o(),t(`div`,ai,[O(`span`,oi,j(H(i)(`serviceConfigEnv.activeEnvironment`)),1),F(Pe,{"environment-id":y.value},null,8,[`environment-id`])])):b(``,!0),S.value&&Se.value?(o(),t(`div`,si,[F(H(De),{"model-value":be.value,disabled:ie.value,"onUpdate:modelValue":xe},null,8,[`model-value`,`disabled`]),O(`span`,ci,j(be.value?H(i)(`serviceConfigEnv.inheritsFrom`,{name:Se.value.name}):H(i)(`serviceConfigEnv.isolated`,{name:Se.value.name})),1)])):b(``,!0),ke.value.length>0?(o(),M(H(f),{key:2,class:`inherited-accordion`},{default:E(()=>[F(H(C),{value:`inherited`},{default:E(()=>[F(H(ee),null,{default:E(()=>[O(`span`,li,[r[6]||=O(`i`,{class:`pi pi-arrow-down-left`},null,-1),B(` `+j(H(i)(`serviceConfigEnv.inheritedVars`))+` `,1),F(H(N),{value:String(ke.value.length),severity:`secondary`,rounded:``},null,8,[`value`])])]),_:1}),F(H(u),null,{default:E(()=>[F(H(Ce),{value:ke.value,size:`small`,"show-headers":!1},{default:E(()=>[F(H(we),{style:{width:`35%`}},{body:E(({data:e})=>[O(`div`,ui,[O(`code`,di,j(e.key),1),Ae.value[e.variableId]?(o(),M(Pe,{key:0,"environment-id":Ae.value[e.variableId].environmentId,class:`source-badge`},null,8,[`environment-id`])):b(``,!0)])]),_:1}),F(H(we),{style:{width:`65%`}},{body:E(({data:e})=>[O(`span`,fi,[O(`span`,{class:`value-actions`,onClick:r[0]||=D(()=>{},[`stop`])},[e.slot.isSecret?(o(),t(`i`,{key:0,class:h([de.value.has(e.variableId)?`pi pi-eye-slash`:`pi pi-eye`,`action-icon`]),onClick:t=>fe(e.variableId)},null,10,pi)):b(``,!0),O(`i`,{class:h([pe.value===e.variableId?`pi pi-check`:`pi pi-copy`,`action-icon`]),onClick:t=>R(e.variableId,e.slot.pre+e.slot.value+e.slot.post)},null,10,mi)]),e.slot.isSecret&&!de.value.has(e.variableId)?(o(),t(`span`,hi,`***`)):(o(),t(`code`,gi,j(e.slot.pre)+j(e.slot.value)+j(e.slot.post),1))])]),_:1})]),_:1},8,[`value`])]),_:1})]),_:1})]),_:1})):b(``,!0),O(`div`,_i,[O(`h3`,vi,j(H(i)(`serviceConfigEnv.envVars`)),1),O(`div`,yi,[F(H(L),{label:H(i)(`serviceConfigEnv.editVariables`),icon:`pi pi-pencil`,size:`small`,outlined:``,"data-testid":`env-edit-btn`,disabled:!y.value,onClick:He},null,8,[`label`,`disabled`]),F(H(L),{label:H(i)(`serviceConfigEnv.preview`),icon:`pi pi-eye`,size:`small`,outlined:``,severity:`secondary`,loading:ne.value,disabled:!y.value,"data-testid":`env-preview-btn`,onClick:Ie},null,8,[`label`,`loading`,`disabled`])])]),S.value?(o(),t(`div`,bi,[Oe.value.length>0?(o(),t(`div`,xi,[F(Fe,{"environment-id":S.value.id,sources:Ae.value,"resolved-env":{...se.value?.env??{},...P.value?.env??{}},"service-builtins":ge.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`])])):(o(),t(`div`,Si,[O(`p`,null,j(H(i)(`serviceConfigEnv.noVarsConfigured`)),1)])),ve.value?(o(),M(H(f),{key:2,class:`inherited-accordion`},{default:E(()=>[F(H(C),{value:`passthrough`},{default:E(()=>[F(H(ee),null,{default:E(()=>[O(`span`,Ci,[r[7]||=O(`i`,{class:`pi pi-globe`},null,-1),B(` `+j(H(i)(`agentPage.passthrough.titleShort`))+` `,1),F(H(N),{value:String(_e.value.length),severity:`secondary`,rounded:``},null,8,[`value`])])]),_:1}),F(H(u),null,{default:E(()=>[O(`p`,wi,j(H(i)(`serviceConfigEnv.passthroughInfo`)),1),me.value?(o(),M(H(x),{key:0,style:{width:`24px`,height:`24px`}})):(o(),M(H(Ce),{key:1,value:ye.value,stripedRows:``,size:`small`},{default:E(()=>[F(H(we),{field:`name`,header:H(i)(`common.key`),style:{width:`35%`}},{body:E(({data:e})=>[O(`code`,Ti,j(e.name),1)]),_:1},8,[`header`]),F(H(we),{header:H(i)(`common.value`),style:{width:`65%`}},{body:E(({data:e})=>[e.value===null?(o(),t(`span`,Di,j(H(i)(`serviceConfigEnv.undefined`)),1)):(o(),t(`span`,Ei,j(e.value),1))]),_:1},8,[`header`])]),_:1},8,[`value`]))]),_:1})]),_:1})]),_:1})):b(``,!0)])):y.value?(o(),t(`div`,ki,[O(`p`,null,j(H(i)(`serviceConfigEnv.noVarsConfigured`)),1)])):(o(),t(`div`,Oi,[O(`p`,null,j(H(i)(`serviceConfigEnv.noActiveEnv`)),1)])),F(H(oe),{visible:w.value,header:H(i)(`serviceConfigEnv.editVarsHeader`),style:{width:`900px`},modal:``,"onUpdate:visible":r[2]||=e=>{e||Ue()}},{footer:E(()=>[F(H(L),{label:H(i)(`actions.close`),icon:`pi pi-times`,onClick:r[1]||=e=>Ue()},null,8,[`label`])]),default:E(()=>[O(`div`,Ai,[y.value?(o(),t(`div`,ji,[O(`span`,Mi,j(H(i)(`serviceConfigEnv.editingVarsFor`,{name:e.service.name||e.service.id})),1),F(Pe,{"environment-id":y.value},null,8,[`environment-id`])])):b(``,!0),O(`div`,Ni,[S.value?(o(),M(Fe,{key:0,"environment-id":S.value.id,editable:!0,sources:Ae.value,"autocomplete-enabled":!0,"autocomplete-suggestions":ce.value,"autocomplete-meta":le.value,"resolved-env":{...se.value?.env??{},...P.value?.env??{}},"service-builtins":ge.value,"show-overrides":!0,onVariablesChanged:je,"show-delete":!0,"show-add-button":!0,onAutocompleteSearch:Ne},null,8,[`environment-id`,`sources`,`autocomplete-suggestions`,`autocomplete-meta`,`resolved-env`,`service-builtins`])):b(``,!0)])])]),_:1},8,[`visible`,`header`]),F(H(oe),{visible:A.value,"onUpdate:visible":r[5]||=e=>A.value=e,header:H(i)(`serviceConfigEnv.previewHeader`),style:{width:`700px`},modal:``,"data-testid":`env-preview-dialog`},{footer:E(()=>[F(H(L),{label:H(i)(`actions.close`),icon:`pi pi-times`,onClick:r[4]||=e=>A.value=!1},null,8,[`label`])]),default:E(()=>[ne.value?(o(),t(`div`,Pi,[F(H(x))])):P.value?(o(),t(`div`,Fi,[O(`p`,Ii,j(H(i)(`serviceConfigEnv.injectedVarsInfo`)),1),F(H(Ce),{value:Le.value,stripedRows:``,size:`small`,rows:15,paginator:Le.value.length>15},{default:E(()=>[F(H(we),{field:`key`,header:H(i)(`common.key`),style:{width:`35%`}},{body:E(({data:e})=>[O(`code`,Li,j(e.key),1)]),_:1},8,[`header`]),F(H(we),{header:H(i)(`common.value`),style:{width:`65%`}},{body:E(({data:e})=>[O(`span`,Ri,[O(`span`,{class:`value-actions`,onClick:r[3]||=D(()=>{},[`stop`])},[P.value.envSecrets.includes(e.key)?(o(),t(`i`,{key:0,class:h([de.value.has(`preview:`+e.key)?`pi pi-eye-slash`:`pi pi-eye`,`action-icon`]),onClick:t=>fe(`preview:`+e.key)},null,10,zi)):b(``,!0),O(`i`,{class:h([pe.value===`preview:`+e.key?`pi pi-check`:`pi pi-copy`,`action-icon`]),onClick:t=>R(`preview:`+e.key,e.value)},null,10,Bi)]),P.value.envSecrets.includes(e.key)&&!de.value.has(`preview:`+e.key)?(o(),t(`span`,Vi,`***`)):(o(),t(`span`,Hi,j(Re(e.value,!1)),1))])]),_:1},8,[`header`])]),_:1},8,[`value`,`paginator`])])):b(``,!0)]),_:1},8,[`visible`,`header`])]))}}),[[`__scopeId`,`data-v-752c8dec`]]),Wi={class:`config-health`},Gi={class:`config-card config-card--inline`},Ki={class:`config-card__header`},qi={class:`config-card`},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={key:1,class:`config-card`},na={class:`config-card__header`},ra={class:`config-card__hint`},ia={class:`config-card`},aa={class:`config-card__header`},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=V(R({__name:`ServiceConfigHealthCheck`,props:{service:{}},emits:[`save`],setup(e,{emit:r}){let i=e,a=r,{t:s}=p(),c=I(!!i.service.healthCheck),l=I({type:i.service.healthCheck?.type??`http`,path:i.service.healthCheck?.path??`/health`,interval:i.service.healthCheck?.interval??3e4,timeout:i.service.healthCheck?.timeout??5e3,retries:i.service.healthCheck?.retries??3,method:i.service.healthCheck?.method??`GET`,expectedStatus:i.service.healthCheck?.expectedStatus??200,initialDelay:i.service.healthCheck?.initialDelay??5e3,command:i.service.healthCheck?.command??``}),u=[{label:`HTTP Request`,value:`http`},{label:`Command`,value:`command`}],d=[{label:`GET`,value:`GET`},{label:`HEAD`,value:`HEAD`},{label:`POST`,value:`POST`},{label:`PUT`,value:`PUT`}];n(()=>i.service,e=>{c.value=!!e.healthCheck,l.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(!c.value)a(`save`,void 0);else{if(l.value.type===`http`&&!l.value.path?.trim()||l.value.type===`command`&&!l.value.command?.trim())return;a(`save`,{type:l.value.type,path:l.value.path,method:l.value.method,expectedStatus:l.value.expectedStatus,command:l.value.command||void 0,interval:l.value.interval,timeout:l.value.timeout,retries:l.value.retries,initialDelay:l.value.initialDelay})}f=null},150)}return(e,n)=>(o(),t(`div`,Wi,[O(`div`,Gi,[O(`div`,Ki,[n[10]||=O(`i`,{class:`pi pi-heart`},null,-1),O(`span`,null,j(H(s)(`serviceConfigHealthCheck.enable`)),1)]),F(H(De),{modelValue:c.value,"onUpdate:modelValue":n[0]||=e=>c.value=e,onChange:m},null,8,[`modelValue`])]),c.value?(o(),t(g,{key:0},[O(`div`,qi,[O(`div`,Ji,[n[11]||=O(`i`,{class:`pi pi-cog`},null,-1),O(`span`,null,j(H(s)(`serviceConfigHealthCheck.type`)),1)]),F(H(ne),{modelValue:l.value.type,"onUpdate:modelValue":n[1]||=e=>l.value.type=e,options:u,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:m},null,8,[`modelValue`]),n[12]||=O(`small`,{class:`config-card__hint`},`HTTP checks a URL endpoint; Command runs a shell command (exit 0 = healthy)`,-1)]),l.value.type===`http`?(o(),t(g,{key:0},[O(`div`,Yi,[O(`div`,Xi,[n[13]||=O(`i`,{class:`pi pi-link`},null,-1),O(`span`,null,j(H(s)(`serviceConfigHealthCheck.path`)),1)]),F(H(z),{modelValue:l.value.path,"onUpdate:modelValue":n[2]||=e=>l.value.path=e,class:`config-card__input`,placeholder:`/health`,onBlur:m,onKeydown:w(D(m,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),O(`div`,Zi,[O(`div`,Qi,[n[14]||=O(`i`,{class:`pi pi-directions`},null,-1),O(`span`,null,j(H(s)(`serviceConfigHealthCheck.method`)),1)]),F(H(ne),{modelValue:l.value.method,"onUpdate:modelValue":n[3]||=e=>l.value.method=e,options:d,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:m},null,8,[`modelValue`])]),O(`div`,$i,[O(`div`,ea,[n[15]||=O(`i`,{class:`pi pi-check-circle`},null,-1),O(`span`,null,j(H(s)(`serviceConfigHealthCheck.expectedStatus`)),1)]),F(H(Te),{modelValue:l.value.expectedStatus,"onUpdate:modelValue":n[4]||=e=>l.value.expectedStatus=e,class:`config-card__input`,"use-grouping":!1,min:100,max:599,onBlur:m,onKeydown:w(D(m,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),n[16]||=O(`small`,{class:`config-card__hint`},`HTTP status code to expect (default 200)`,-1)])],64)):b(``,!0),l.value.type===`command`?(o(),t(`div`,ta,[O(`div`,na,[n[17]||=O(`i`,{class:`pi pi-code`},null,-1),O(`span`,null,j(H(s)(`serviceConfigHealthCheck.command`)),1)]),F(H(le),{modelValue:l.value.command,"onUpdate:modelValue":n[5]||=e=>l.value.command=e,class:`config-card__input`,rows:`2`,placeholder:`curl -sf http://localhost:3000/health`,"auto-resize":``,onBlur:m},null,8,[`modelValue`]),O(`small`,ra,j(H(s)(`serviceConfigHealthCheck.commandHint`)),1)])):b(``,!0),O(`div`,ia,[O(`div`,aa,[n[18]||=O(`i`,{class:`pi pi-hourglass`},null,-1),O(`span`,null,j(H(s)(`serviceConfigHealthCheck.initialDelay`)),1)]),F(H(Te),{modelValue:l.value.initialDelay,"onUpdate:modelValue":n[6]||=e=>l.value.initialDelay=e,class:`config-card__input`,"use-grouping":!1,min:0,onBlur:m,onKeydown:w(D(m,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),n[19]||=O(`small`,{class:`config-card__hint`},`Wait before first health check (ms)`,-1)]),O(`div`,oa,[O(`div`,sa,[n[20]||=O(`i`,{class:`pi pi-clock`},null,-1),O(`span`,null,j(H(s)(`serviceConfigHealthCheck.interval`)),1)]),F(H(Te),{modelValue:l.value.interval,"onUpdate:modelValue":n[7]||=e=>l.value.interval=e,class:`config-card__input`,"use-grouping":!1,min:1e3,onBlur:m,onKeydown:w(D(m,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),O(`div`,ca,[O(`div`,la,[n[21]||=O(`i`,{class:`pi pi-stopwatch`},null,-1),O(`span`,null,j(H(s)(`serviceConfigHealthCheck.timeout`)),1)]),F(H(Te),{modelValue:l.value.timeout,"onUpdate:modelValue":n[8]||=e=>l.value.timeout=e,class:`config-card__input`,"use-grouping":!1,min:500,onBlur:m,onKeydown:w(D(m,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),O(`div`,ua,[O(`div`,da,[n[22]||=O(`i`,{class:`pi pi-replay`},null,-1),O(`span`,null,j(H(s)(`serviceConfigHealthCheck.retries`)),1)]),F(H(Te),{modelValue:l.value.retries,"onUpdate:modelValue":n[9]||=e=>l.value.retries=e,class:`config-card__input`,"use-grouping":!1,min:0,max:10,onBlur:m,onKeydown:w(D(m,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])],64)):b(``,!0)]))}}),[[`__scopeId`,`data-v-63e32039`]]),pa={class:`config-shortcuts`},ma={key:0,class:`config-shortcuts__empty`},ha={class:`config-shortcuts__row`},ga={class:`config-shortcuts__field`},_a=[`for`],va={class:`config-shortcuts__field config-shortcuts__field--wide`},ya=[`for`],ba={class:`config-shortcuts__field`},xa=[`for`],Sa={class:`config-shortcuts__actions-cell`},Ca={class:`config-shortcuts__footer`},wa=V(R({__name:`ServiceConfigShortcuts`,props:{service:{}},emits:[`save`],setup(e,{emit:r}){let i=e,{t:a}=p(),s=r,c=I([...i.service.shortcuts??[]]),l=null;n(()=>i.service,e=>{l||(c.value=[...e.shortcuts??[]])});function u(){c.value=[...c.value,{id:Ie(),label:``,command:``,cwd:void 0}]}function d(e){c.value=c.value.filter((t,n)=>n!==e)}function f(e,t,n){c.value=c.value.map((r,i)=>i===e?{...r,[t]:n||void 0}:r)}function m(){l&&clearTimeout(l),l=setTimeout(()=>{s(`save`,c.value),l=null},150)}function h(e){d(e),m()}return(e,n)=>(o(),t(`div`,pa,[c.value.length===0?(o(),t(`div`,ma,[O(`p`,null,j(H(a)(`serviceConfigShortcuts.empty`)),1)])):b(``,!0),(o(!0),t(g,null,de(c.value,(e,n)=>(o(),t(`div`,{key:e.id,class:`config-card`},[O(`div`,ha,[O(`div`,ga,[O(`label`,{class:`config-shortcuts__label`,for:`shortcut-label-${n}`},j(H(a)(`serviceConfigShortcuts.label`)),9,_a),F(H(z),{id:`shortcut-label-${n}`,"model-value":e.label,placeholder:H(a)(`serviceConfigShortcuts.labelPlaceholder`),class:`config-card__input`,"data-testid":`shortcut-label-input`,"onUpdate:modelValue":e=>f(n,`label`,e),onBlur:m,onKeydown:w(D(m,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),O(`div`,va,[O(`label`,{class:`config-shortcuts__label`,for:`shortcut-command-${n}`},j(H(a)(`serviceConfigShortcuts.command`)),9,ya),F(H(z),{id:`shortcut-command-${n}`,"model-value":e.command,placeholder:H(a)(`serviceConfigShortcuts.commandPlaceholder`),class:`config-card__input`,"data-testid":`shortcut-command-input`,"onUpdate:modelValue":e=>f(n,`command`,e),onBlur:m,onKeydown:w(D(m,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),O(`div`,ba,[O(`label`,{class:`config-shortcuts__label`,for:`shortcut-cwd-${n}`},j(H(a)(`serviceConfigShortcuts.workingDir`)),9,xa),F(H(z),{id:`shortcut-cwd-${n}`,"model-value":e.cwd??``,placeholder:H(a)(`serviceConfigShortcuts.cwdPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>f(n,`cwd`,e),onBlur:m,onKeydown:w(D(m,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),O(`div`,Sa,[F(H(L),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>h(n)},null,8,[`onClick`])])])]))),128)),O(`div`,Ca,[F(H(L),{label:H(a)(`serviceConfigShortcuts.addShortcut`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,"data-testid":`add-shortcut-btn`,onClick:u},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-d6ecb989`]]),Ta=Object.defineProperty,Ea=Object.getOwnPropertySymbols,Da=Object.prototype.hasOwnProperty,Oa=Object.prototype.propertyIsEnumerable,ka=(e,t,n)=>t in e?Ta(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Aa=(e,t)=>{for(var n in t||={})Da.call(t,n)&&ka(e,n,t[n]);if(Ea)for(var n of Ea(t))Oa.call(t,n)&&ka(e,n,t[n]);return e},ja=(e,t)=>{var n={};for(var r in e)Da.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Ea)for(var r of Ea(e))t.indexOf(r)<0&&Oa.call(e,r)&&(n[r]=e[r]);return n},Ma=`[vue-draggable-plus]: `;function Na(e){console.warn(Ma+e)}function Pa(e){console.error(Ma+e)}function Fa(e,t,n){return n>=0&&n<e.length&&e.splice(n,0,e.splice(t,1)[0]),e}function Ia(e){return e.replace(/-(\w)/g,(e,t)=>t?t.toUpperCase():``)}function La(e){return Object.keys(e).reduce((t,n)=>(e[n]!==void 0&&(t[Ia(n)]=e[n]),t),{})}function Ra(e,t){return Array.isArray(e)&&e.splice(t,1),e}function za(e,t,n){return Array.isArray(e)&&e.splice(t,0,n),e}function Ba(e){return e===void 0}function Va(e){return typeof e==`string`}function Ha(e,t,n){let r=e.children[n];e.insertBefore(t,r)}function Ua(e){e.parentNode&&e.parentNode.removeChild(e)}function Wa(e,t=document){let n=null;return n=typeof t?.querySelector==`function`?(t?.querySelector)?.call(t,e):document.querySelector(e),n||Na(`Element not found: ${e}`),n}function Ga(e,t,n=null){return function(...r){return e.apply(n,r),t.apply(n,r)}}function Ka(e,t){let n=Aa({},e);return Object.keys(t).forEach(r=>{n[r]?n[r]=Ga(e[r],t[r]):n[r]=t[r]}),n}function qa(e){return e instanceof HTMLElement}function Ja(e,t){Object.keys(e).forEach(n=>{t(n,e[n])})}function Ya(e){return e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97)}var Xa=Object.assign;function Za(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 Qa(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Za(Object(n),!0).forEach(function(t){eo(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Za(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function $a(e){"@babel/helpers - typeof";return $a=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},$a(e)}function eo(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function to(){return to=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},to.apply(this,arguments)}function no(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 ro(e,t){if(e==null)return{};var n=no(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 io=`1.15.2`;function ao(e){if(typeof window<`u`&&window.navigator)return!!navigator.userAgent.match(e)}var oo=ao(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),so=ao(/Edge/i),co=ao(/firefox/i),lo=ao(/safari/i)&&!ao(/chrome/i)&&!ao(/android/i),uo=ao(/iP(ad|od|hone)/i),fo=ao(/chrome/i)&&ao(/android/i),po={capture:!1,passive:!1};function U(e,t,n){e.addEventListener(t,n,!oo&&po)}function W(e,t,n){e.removeEventListener(t,n,!oo&&po)}function mo(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 ho(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function go(e,t,n,r){if(e){n||=document;do{if(t!=null&&(t[0]===`>`?e.parentNode===n&&mo(e,t):mo(e,t))||r&&e===n)return e;if(e===n)break}while(e=ho(e))}return null}var _o=/\s+/g;function vo(e,t,n){e&&t&&(e.classList?e.classList[n?`add`:`remove`](t):e.className=((` `+e.className+` `).replace(_o,` `).replace(` `+t+` `,` `)+(n?` `+t:``)).replace(_o,` `))}function G(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 yo(e,t){var n=``;if(typeof e==`string`)n=e;else do{var r=G(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 bo(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 xo(){return document.scrollingElement||document.documentElement}function K(e,t,n,r,i){if(!(!e.getBoundingClientRect&&e!==window)){var a,o,s,c,l,u,d;if(e!==window&&e.parentNode&&e!==xo()?(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,!oo))do if(i&&i.getBoundingClientRect&&(G(i,`transform`)!==`none`||n&&G(i,`position`)!==`static`)){var f=i.getBoundingClientRect();o-=f.top+parseInt(G(i,`border-top-width`)),s-=f.left+parseInt(G(i,`border-left-width`)),c=o+a.height,l=s+a.width;break}while(i=i.parentNode);if(r&&e!==window){var p=yo(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 So(e,t,n){for(var r=Oo(e,!0),i=K(e)[t];r;){var a=K(r)[n],o=void 0;if(o=i>=a,!o)return r;if(r===xo())break;r=Oo(r,!1)}return!1}function Co(e,t,n,r){for(var i=0,a=0,o=e.children;a<o.length;){if(o[a].style.display!==`none`&&o[a]!==Q.ghost&&(r||o[a]!==Q.dragged)&&go(o[a],n.draggable,e,!1)){if(i===t)return o[a];i++}a++}return null}function wo(e,t){for(var n=e.lastElementChild;n&&(n===Q.ghost||G(n,`display`)===`none`||t&&!mo(n,t));)n=n.previousElementSibling;return n||null}function To(e,t){var n=0;if(!e||!e.parentNode)return-1;for(;e=e.previousElementSibling;)e.nodeName.toUpperCase()!==`TEMPLATE`&&e!==Q.clone&&(!t||mo(e,t))&&n++;return n}function Eo(e){var t=0,n=0,r=xo();if(e)do{var i=yo(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 Do(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 Oo(e,t){if(!e||!e.getBoundingClientRect)return xo();var n=e,r=!1;do if(n.clientWidth<n.scrollWidth||n.clientHeight<n.scrollHeight){var i=G(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 xo();if(r||t)return n;r=!0}}while(n=n.parentNode);return xo()}function ko(e,t){if(e&&t)for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function Ao(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 jo;function Mo(e,t){return function(){if(!jo){var n=arguments,r=this;n.length===1?e.call(r,n[0]):e.apply(r,n),jo=setTimeout(function(){jo=void 0},t)}}}function No(){clearTimeout(jo),jo=void 0}function Po(e,t,n){e.scrollLeft+=t,e.scrollTop+=n}function Fo(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 Io(e,t,n){var r={};return Array.from(e.children).forEach(function(i){if(!(!go(i,t.draggable,e,!1)||i.animated||i===n)){var a=K(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 Lo=`Sortable`+new Date().getTime();function Ro(){var e=[],t;return{captureAnimationState:function(){e=[],this.options.animation&&[].slice.call(this.el.children).forEach(function(t){if(!(G(t,`display`)===`none`||t===Q.ghost)){e.push({target:t,rect:K(t)});var n=Qa({},e[e.length-1].rect);if(t.thisAnimationDuration){var r=yo(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(Do(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=K(n),c=n.prevFromRect,l=n.prevToRect,u=e.rect,d=yo(n,!0);d&&(s.top-=d.f,s.left-=d.e),n.toRect=s,n.thisAnimationDuration&&Ao(c,s)&&!Ao(o,s)&&(u.top-s.top)/(u.left-s.left)===(o.top-s.top)/(o.left-s.left)&&(t=Bo(u,c,l,r.options)),Ao(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){G(e,`transition`,``),G(e,`transform`,``);var i=yo(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,G(e,`transform`,`translate3d(`+s+`px,`+c+`px,0)`),this.forRepaintDummy=zo(e),G(e,`transition`,`transform `+r+`ms`+(this.options.easing?` `+this.options.easing:``)),G(e,`transform`,`translate3d(0,0,0)`),typeof e.animated==`number`&&clearTimeout(e.animated),e.animated=setTimeout(function(){G(e,`transition`,``),G(e,`transform`,``),e.animated=!1,e.animatingX=!1,e.animatingY=!1},r)}}}}function zo(e){return e.offsetWidth}function Bo(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 Vo=[],Ho={initializeByDefault:!0},Uo={mount:function(e){for(var t in Ho)Ho.hasOwnProperty(t)&&!(t in e)&&(e[t]=Ho[t]);Vo.forEach(function(t){if(t.pluginName===e.pluginName)throw`Sortable: Cannot mount plugin ${e.pluginName} more than once`}),Vo.push(e)},pluginEvent:function(e,t,n){var r=this;this.eventCanceled=!1,n.cancel=function(){r.eventCanceled=!0};var i=e+`Global`;Vo.forEach(function(r){t[r.pluginName]&&(t[r.pluginName][i]&&t[r.pluginName][i](Qa({sortable:t},n)),t.options[r.pluginName]&&t[r.pluginName][e]&&t[r.pluginName][e](Qa({sortable:t},n)))})},initializePlugins:function(e,t,n,r){for(var i in Vo.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,to(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 Vo.forEach(function(r){typeof r.eventProperties==`function`&&to(n,r.eventProperties.call(t[r.pluginName],e))}),n},modifyOption:function(e,t,n){var r;return Vo.forEach(function(i){e[i.pluginName]&&i.optionListeners&&typeof i.optionListeners[t]==`function`&&(r=i.optionListeners[t].call(e[i.pluginName],n))}),r}};function Wo(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[Lo],t){var h,g=t.options,_=`on`+r.charAt(0).toUpperCase()+r.substr(1);window.CustomEvent&&!oo&&!so?h=new CustomEvent(r,{bubbles:!0,cancelable:!0}):(h=document.createEvent(`Event`),h.initEvent(r,!0,!0)),h.to=o||n,h.from=s||n,h.item=i||n,h.clone=a,h.oldIndex=c,h.newIndex=l,h.oldDraggableIndex=u,h.newDraggableIndex=d,h.originalEvent=f,h.pullMode=p?p.lastPutMode:void 0;var v=Qa(Qa({},m),Uo.getEventProperties(r,t));for(var y in v)h[y]=v[y];n&&n.dispatchEvent(h),g[_]&&g[_].call(t,h)}}var Go=[`evt`],Ko=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.evt,i=ro(n,Go);Uo.pluginEvent.bind(Q)(e,t,Qa({dragEl:q,parentEl:J,ghostEl:Y,rootEl:X,nextEl:Jo,lastDownEl:Yo,cloneEl:Z,cloneHidden:Xo,dragStarted:fs,putSortable:ns,activeSortable:Q.active,originalEvent:r,oldIndex:Zo,oldDraggableIndex:$o,newIndex:Qo,newDraggableIndex:es,hideGhostForTarget:js,unhideGhostForTarget:Ms,cloneNowHidden:function(){Xo=!0},cloneNowShown:function(){Xo=!1},dispatchSortableEvent:function(e){qo({sortable:t,name:e,originalEvent:r})}},i))};function qo(e){Wo(Qa({putSortable:ns,cloneEl:Z,targetEl:q,rootEl:X,oldIndex:Zo,oldDraggableIndex:$o,newIndex:Qo,newDraggableIndex:es},e))}var q,J,Y,X,Jo,Yo,Z,Xo,Zo,Qo,$o,es,ts,ns,rs=!1,is=!1,as=[],os,ss,cs,ls,us,ds,fs,ps,ms,hs=!1,gs=!1,_s,vs,ys=[],bs=!1,xs=[],Ss=typeof document<`u`,Cs=uo,ws=so||oo?`cssFloat`:`float`,Ts=Ss&&!fo&&!uo&&`draggable`in document.createElement(`div`),Es=function(){if(Ss){if(oo)return!1;var e=document.createElement(`x`);return e.style.cssText=`pointer-events:auto`,e.style.pointerEvents===`auto`}}(),Ds=function(e,t){var n=G(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),i=Co(e,0,t),a=Co(e,1,t),o=i&&G(i),s=a&&G(a),c=o&&parseInt(o.marginLeft)+parseInt(o.marginRight)+K(i).width,l=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+K(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[ws]===`none`||a&&n[ws]===`none`&&c+l>r)?`vertical`:`horizontal`},Os=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},ks=function(e,t){var n;return as.some(function(r){var i=r[Lo].options.emptyInsertThreshold;if(!(!i||wo(r))){var a=K(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},As=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||$a(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},js=function(){!Es&&Y&&G(Y,`display`,`none`)},Ms=function(){!Es&&Y&&G(Y,`display`,``)};Ss&&!fo&&document.addEventListener(`click`,function(e){if(is)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),is=!1,!1},!0);var Ns=function(e){if(q){e=e.touches?e.touches[0]:e;var t=ks(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[Lo]._onDragOver(n)}}},Ps=function(e){q&&q.parentNode[Lo]._isOutsideThisEl(e.target)};function Q(e,t){if(!(e&&e.nodeType&&e.nodeType===1))throw`Sortable: \`el\` must be an HTMLElement, not ${{}.toString.call(e)}`;this.el=e,this.options=t=to({},t),e[Lo]=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 Ds(e,this.options)},ghostClass:`sortable-ghost`,chosenClass:`sortable-chosen`,dragClass:`sortable-drag`,ignore:`a, img`,filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData(`Text`,t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:`data-id`,delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:`sortable-fallback`,fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:Q.supportPointer!==!1&&`PointerEvent`in window&&!lo,emptyInsertThreshold:5};for(var r in Uo.initializePlugins(this,e,n),n)!(r in t)&&(t[r]=n[r]);for(var i in As(t),this)i.charAt(0)===`_`&&typeof this[i]==`function`&&(this[i]=this[i].bind(this));this.nativeDraggable=t.forceFallback?!1:Ts,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?U(e,`pointerdown`,this._onTapStart):(U(e,`mousedown`,this._onTapStart),U(e,`touchstart`,this._onTapStart)),this.nativeDraggable&&(U(e,`dragover`,this),U(e,`dragenter`,this)),as.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),to(this,Ro())}Q.prototype={constructor:Q,_isOutsideThisEl:function(e){!this.el.contains(e)&&e!==this.el&&(ps=null)},_getDirection:function(e,t){return typeof this.options.direction==`function`?this.options.direction.call(this,e,t,q):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(Ws(n),!q&&!(/mousedown|pointerdown/.test(a)&&e.button!==0||r.disabled)&&!c.isContentEditable&&!(!this.nativeDraggable&&lo&&s&&s.tagName.toUpperCase()===`SELECT`)&&(s=go(s,r.draggable,n,!1),!(s&&s.animated)&&Yo!==s)){if(Zo=To(s),$o=To(s,r.draggable),typeof l==`function`){if(l.call(this,e,s,this)){qo({sortable:t,rootEl:c,name:`filter`,targetEl:s,toEl:n,fromEl:n}),Ko(`filter`,t,{evt:e}),i&&e.cancelable&&e.preventDefault();return}}else if(l&&(l=l.split(`,`).some(function(r){if(r=go(c,r.trim(),n,!1),r)return qo({sortable:t,rootEl:r,name:`filter`,targetEl:s,fromEl:n,toEl:n}),Ko(`filter`,t,{evt:e}),!0}),l)){i&&e.cancelable&&e.preventDefault();return}r.handle&&!go(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&&!q&&n.parentNode===i){var c=K(n);if(X=i,q=n,J=q.parentNode,Jo=q.nextSibling,Yo=n,ts=a.group,Q.dragged=q,os={target:q,clientX:(t||e).clientX,clientY:(t||e).clientY},us=os.clientX-c.left,ds=os.clientY-c.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,q.style[`will-change`]=`all`,s=function(){if(Ko(`delayEnded`,r,{evt:e}),Q.eventCanceled){r._onDrop();return}r._disableDelayedDragEvents(),!co&&r.nativeDraggable&&(q.draggable=!0),r._triggerDragStart(e,t),qo({sortable:r,name:`choose`,originalEvent:e}),vo(q,a.chosenClass,!0)},a.ignore.split(`,`).forEach(function(e){bo(q,e.trim(),Ls)}),U(o,`dragover`,Ns),U(o,`mousemove`,Ns),U(o,`touchmove`,Ns),U(o,`mouseup`,r._onDrop),U(o,`touchend`,r._onDrop),U(o,`touchcancel`,r._onDrop),co&&this.nativeDraggable&&(this.options.touchStartThreshold=4,q.draggable=!0),Ko(`delayStart`,this,{evt:e}),a.delay&&(!a.delayOnTouchOnly||t)&&(!this.nativeDraggable||!(so||oo))){if(Q.eventCanceled){this._onDrop();return}U(o,`mouseup`,r._disableDelayedDrag),U(o,`touchend`,r._disableDelayedDrag),U(o,`touchcancel`,r._disableDelayedDrag),U(o,`mousemove`,r._delayedDragTouchMoveHandler),U(o,`touchmove`,r._delayedDragTouchMoveHandler),a.supportPointer&&U(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(){q&&Ls(q),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;W(e,`mouseup`,this._disableDelayedDrag),W(e,`touchend`,this._disableDelayedDrag),W(e,`touchcancel`,this._disableDelayedDrag),W(e,`mousemove`,this._delayedDragTouchMoveHandler),W(e,`touchmove`,this._delayedDragTouchMoveHandler),W(e,`pointermove`,this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t||=e.pointerType==`touch`&&e,!this.nativeDraggable||t?this.options.supportPointer?U(document,`pointermove`,this._onTouchMove):t?U(document,`touchmove`,this._onTouchMove):U(document,`mousemove`,this._onTouchMove):(U(q,`dragend`,this),U(X,`dragstart`,this._onDragStart));try{document.selection?Gs(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(e,t){if(rs=!1,X&&q){Ko(`dragStarted`,this,{evt:t}),this.nativeDraggable&&U(document,`dragover`,Ps);var n=this.options;!e&&vo(q,n.dragClass,!1),vo(q,n.ghostClass,!0),Q.active=this,e&&this._appendGhost(),qo({sortable:this,name:`start`,originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(ss){this._lastX=ss.clientX,this._lastY=ss.clientY,js();for(var e=document.elementFromPoint(ss.clientX,ss.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(ss.clientX,ss.clientY),e!==t);)t=e;if(q.parentNode[Lo]._isOutsideThisEl(e),t)do{if(t[Lo]){var n=void 0;if(n=t[Lo]._onDragOver({clientX:ss.clientX,clientY:ss.clientY,target:e,rootEl:t}),n&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);Ms()}},_onTouchMove:function(e){if(os){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,i=e.touches?e.touches[0]:e,a=Y&&yo(Y,!0),o=Y&&a&&a.a,s=Y&&a&&a.d,c=Cs&&vs&&Eo(vs),l=(i.clientX-os.clientX+r.x)/(o||1)+(c?c[0]-ys[0]:0)/(o||1),u=(i.clientY-os.clientY+r.y)/(s||1)+(c?c[1]-ys[1]:0)/(s||1);if(!Q.active&&!rs){if(n&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))<n)return;this._onDragStart(e,!0)}if(Y){a?(a.e+=l-(cs||0),a.f+=u-(ls||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})`;G(Y,`webkitTransform`,d),G(Y,`mozTransform`,d),G(Y,`msTransform`,d),G(Y,`transform`,d),cs=l,ls=u,ss=i}e.cancelable&&e.preventDefault()}},_appendGhost:function(){if(!Y){var e=this.options.fallbackOnBody?document.body:X,t=K(q,!0,Cs,!0,e),n=this.options;if(Cs){for(vs=e;G(vs,`position`)===`static`&&G(vs,`transform`)===`none`&&vs!==document;)vs=vs.parentNode;vs!==document.body&&vs!==document.documentElement?(vs===document&&(vs=xo()),t.top+=vs.scrollTop,t.left+=vs.scrollLeft):vs=xo(),ys=Eo(vs)}Y=q.cloneNode(!0),vo(Y,n.ghostClass,!1),vo(Y,n.fallbackClass,!0),vo(Y,n.dragClass,!0),G(Y,`transition`,``),G(Y,`transform`,``),G(Y,`box-sizing`,`border-box`),G(Y,`margin`,0),G(Y,`top`,t.top),G(Y,`left`,t.left),G(Y,`width`,t.width),G(Y,`height`,t.height),G(Y,`opacity`,`0.8`),G(Y,`position`,Cs?`absolute`:`fixed`),G(Y,`zIndex`,`100000`),G(Y,`pointerEvents`,`none`),Q.ghost=Y,e.appendChild(Y),G(Y,`transform-origin`,us/parseInt(Y.style.width)*100+`% `+ds/parseInt(Y.style.height)*100+`%`)}},_onDragStart:function(e,t){var n=this,r=e.dataTransfer,i=n.options;if(Ko(`dragStart`,this,{evt:e}),Q.eventCanceled){this._onDrop();return}Ko(`setupClone`,this),Q.eventCanceled||(Z=Fo(q),Z.removeAttribute(`id`),Z.draggable=!1,Z.style[`will-change`]=``,this._hideClone(),vo(Z,this.options.chosenClass,!1),Q.clone=Z),n.cloneId=Gs(function(){Ko(`clone`,n),!Q.eventCanceled&&(n.options.removeCloneOnHide||X.insertBefore(Z,q),n._hideClone(),qo({sortable:n,name:`clone`}))}),!t&&vo(q,i.dragClass,!0),t?(is=!0,n._loopId=setInterval(n._emulateDragOver,50)):(W(document,`mouseup`,n._onDrop),W(document,`touchend`,n._onDrop),W(document,`touchcancel`,n._onDrop),r&&(r.effectAllowed=`move`,i.setData&&i.setData.call(n,r,q)),U(document,`drop`,n),G(q,`transform`,`translateZ(0)`)),rs=!0,n._dragStartId=Gs(n._dragStarted.bind(n,t,e)),U(document,`selectstart`,n),fs=!0,lo&&G(document.body,`user-select`,`none`)},_onDragOver:function(e){var t=this.el,n=e.target,r,i,a,o=this.options,s=o.group,c=Q.active,l=ts===s,u=o.sort,d=ns||c,f,p=this,m=!1;if(bs)return;function h(o,s){Ko(o,p,Qa({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 Is(X,t,q,r,n,K(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&&(vo(q,ns?ns.options.ghostClass:c.options.ghostClass,!1),vo(q,o.ghostClass,!0)),ns!==p&&p!==Q.active?ns=p:p===Q.active&&ns&&(ns=null),d===p&&(p._ignoreWhileAnimating=n),p.animateAll(function(){h(`dragOverAnimationComplete`),p._ignoreWhileAnimating=null}),p!==d&&(d.animateAll(),d._ignoreWhileAnimating=null)),(n===q&&!q.animated||n===t&&!n.animated)&&(ps=null),!o.dragoverBubble&&!e.rootEl&&n!==document&&(q.parentNode[Lo]._isOutsideThisEl(e.target),!r&&Ns(e)),!o.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),m=!0}function v(){Qo=To(q),es=To(q,o.draggable),qo({sortable:p,name:`change`,toEl:t,newIndex:Qo,newDraggableIndex:es,originalEvent:e})}if(e.preventDefault!==void 0&&e.cancelable&&e.preventDefault(),n=go(n,o.draggable,t,!0),h(`dragOver`),Q.eventCanceled)return m;if(q.contains(e.target)||n.animated&&n.animatingX&&n.animatingY||p._ignoreWhileAnimating===n)return _(!1);if(is=!1,c&&!o.disabled&&(l?u||(a=J!==X):ns===this||(this.lastPutMode=ts.checkPull(this,c,q,e))&&s.checkPut(this,c,q,e))){if(f=this._getDirection(e,n)===`vertical`,r=K(q),h(`dragOverValid`),Q.eventCanceled)return m;if(a)return J=X,g(),this._hideClone(),h(`revert`),Q.eventCanceled||(Jo?X.insertBefore(q,Jo):X.appendChild(q)),_(!0);var y=wo(t,o.draggable);if(!y||Bs(e,f,this)&&!y.animated){if(y===q)return _(!1);if(y&&t===e.target&&(n=y),n&&(i=K(n)),Is(X,t,q,r,n,i,e,!!n)!==!1)return g(),y&&y.nextSibling?t.insertBefore(q,y.nextSibling):t.appendChild(q),J=t,v(),_(!0)}else if(y&&zs(e,f,this)){var b=Co(t,0,o,!0);if(b===q)return _(!1);if(n=b,i=K(n),Is(X,t,q,r,n,i,e,!1)!==!1)return g(),t.insertBefore(q,b),J=t,v(),_(!0)}else if(n.parentNode===t){i=K(n);var x=0,S,C=q.parentNode!==t,w=!Os(q.animated&&q.toRect||r,n.animated&&n.toRect||i,f),T=f?`top`:`left`,ee=So(n,`top`,`top`)||So(q,`top`,`top`),E=ee?ee.scrollTop:void 0;ps!==n&&(S=i[T],hs=!1,gs=!w&&o.invertSwap||C),x=Vs(e,n,i,f,w?1:o.swapThreshold,o.invertedSwapThreshold==null?o.swapThreshold:o.invertedSwapThreshold,gs,ps===n);var D;if(x!==0){var O=To(q);do O-=x,D=J.children[O];while(D&&(G(D,`display`)===`none`||D===Y))}if(x===0||D===n)return _(!1);ps=n,ms=x;var k=n.nextElementSibling,A=!1;A=x===1;var te=Is(X,t,q,r,n,i,e,A);if(te!==!1)return(te===1||te===-1)&&(A=te===1),bs=!0,setTimeout(Rs,30),g(),A&&!k?t.appendChild(q):n.parentNode.insertBefore(q,A?k:n),ee&&Po(ee,0,E-ee.scrollTop),J=q.parentNode,S!==void 0&&!gs&&(_s=Math.abs(S-K(n)[T])),v(),_(!0)}if(t.contains(q))return _(!1)}return!1},_ignoreWhileAnimating:null,_offMoveEvents:function(){W(document,`mousemove`,this._onTouchMove),W(document,`touchmove`,this._onTouchMove),W(document,`pointermove`,this._onTouchMove),W(document,`dragover`,Ns),W(document,`mousemove`,Ns),W(document,`touchmove`,Ns)},_offUpEvents:function(){var e=this.el.ownerDocument;W(e,`mouseup`,this._onDrop),W(e,`touchend`,this._onDrop),W(e,`pointerup`,this._onDrop),W(e,`touchcancel`,this._onDrop),W(document,`selectstart`,this)},_onDrop:function(e){var t=this.el,n=this.options;if(Qo=To(q),es=To(q,n.draggable),Ko(`drop`,this,{evt:e}),J=q&&q.parentNode,Qo=To(q),es=To(q,n.draggable),Q.eventCanceled){this._nulling();return}rs=!1,gs=!1,hs=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),Ks(this.cloneId),Ks(this._dragStartId),this.nativeDraggable&&(W(document,`drop`,this),W(t,`dragstart`,this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),lo&&G(document.body,`user-select`,``),G(q,`transform`,``),e&&(fs&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),Y&&Y.parentNode&&Y.parentNode.removeChild(Y),(X===J||ns&&ns.lastPutMode!==`clone`)&&Z&&Z.parentNode&&Z.parentNode.removeChild(Z),q&&(this.nativeDraggable&&W(q,`dragend`,this),Ls(q),q.style[`will-change`]=``,fs&&!rs&&vo(q,ns?ns.options.ghostClass:this.options.ghostClass,!1),vo(q,this.options.chosenClass,!1),qo({sortable:this,name:`unchoose`,toEl:J,newIndex:null,newDraggableIndex:null,originalEvent:e}),X===J?Qo!==Zo&&Qo>=0&&(qo({sortable:this,name:`update`,toEl:J,originalEvent:e}),qo({sortable:this,name:`sort`,toEl:J,originalEvent:e})):(Qo>=0&&(qo({rootEl:J,name:`add`,toEl:J,fromEl:X,originalEvent:e}),qo({sortable:this,name:`remove`,toEl:J,originalEvent:e}),qo({rootEl:J,name:`sort`,toEl:J,fromEl:X,originalEvent:e}),qo({sortable:this,name:`sort`,toEl:J,originalEvent:e})),ns&&ns.save()),Q.active&&((Qo==null||Qo===-1)&&(Qo=Zo,es=$o),qo({sortable:this,name:`end`,toEl:J,originalEvent:e}),this.save()))),this._nulling()},_nulling:function(){Ko(`nulling`,this),X=q=J=Y=Jo=Z=Yo=Xo=os=ss=fs=Qo=es=Zo=$o=ps=ms=ns=ts=Q.dragged=Q.ghost=Q.clone=Q.active=null,xs.forEach(function(e){e.checked=!0}),xs.length=cs=ls=0},handleEvent:function(e){switch(e.type){case`drop`:case`dragend`:this._onDrop(e);break;case`dragenter`:case`dragover`:q&&(this._onDragOver(e),Fs(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],go(t,a.draggable,this.el,!1)&&e.push(t.getAttribute(a.dataIdAttr)||Us(t));return e},sort:function(e,t){var n={},r=this.el;this.toArray().forEach(function(e,t){var i=r.children[t];go(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 go(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=Uo.modifyOption(this,e,t);r===void 0?n[e]=t:n[e]=r,e===`group`&&As(n)},destroy:function(){Ko(`destroy`,this);var e=this.el;e[Lo]=null,W(e,`mousedown`,this._onTapStart),W(e,`touchstart`,this._onTapStart),W(e,`pointerdown`,this._onTapStart),this.nativeDraggable&&(W(e,`dragover`,this),W(e,`dragenter`,this)),Array.prototype.forEach.call(e.querySelectorAll(`[draggable]`),function(e){e.removeAttribute(`draggable`)}),this._onDrop(),this._disableDelayedDragEvents(),as.splice(as.indexOf(this.el),1),this.el=e=null},_hideClone:function(){if(!Xo){if(Ko(`hideClone`,this),Q.eventCanceled)return;G(Z,`display`,`none`),this.options.removeCloneOnHide&&Z.parentNode&&Z.parentNode.removeChild(Z),Xo=!0}},_showClone:function(e){if(e.lastPutMode!==`clone`){this._hideClone();return}if(Xo){if(Ko(`showClone`,this),Q.eventCanceled)return;q.parentNode==X&&!this.options.group.revertClone?X.insertBefore(Z,q):Jo?X.insertBefore(Z,Jo):X.appendChild(Z),this.options.group.revertClone&&this.animate(q,Z),G(Z,`display`,``),Xo=!1}}};function Fs(e){e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),e.cancelable&&e.preventDefault()}function Is(e,t,n,r,i,a,o,s){var c,l=e[Lo],u=l.options.onMove,d;return window.CustomEvent&&!oo&&!so?c=new CustomEvent(`move`,{bubbles:!0,cancelable:!0}):(c=document.createEvent(`Event`),c.initEvent(`move`,!0,!0)),c.to=t,c.from=e,c.dragged=n,c.draggedRect=r,c.related=i||t,c.relatedRect=a||K(t),c.willInsertAfter=s,c.originalEvent=o,e.dispatchEvent(c),u&&(d=u.call(l,c,o)),d}function Ls(e){e.draggable=!1}function Rs(){bs=!1}function zs(e,t,n){var r=K(Co(n.el,0,n.options,!0)),i=Io(n.el,n.options,Y),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 Bs(e,t,n){var r=K(wo(n.el,n.options.draggable)),i=Io(n.el,n.options,Y),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 Vs(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&&_s<l*i){if(!hs&&(ms===1?c>u+l*a/2:c<d-l*a/2)&&(hs=!0),hs)f=!0;else if(ms===1?c<u+_s:c>d-_s)return-ms}else if(c>u+l*(1-i)/2&&c<d-l*(1-i)/2)return Hs(t)}return f||=o,f&&(c<u+l*a/2||c>d-l*a/2)?c>u+l/2?1:-1:0}function Hs(e){return To(q)<To(e)?1:-1}function Us(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 Ws(e){xs.length=0;for(var t=e.getElementsByTagName(`input`),n=t.length;n--;){var r=t[n];r.checked&&xs.push(r)}}function Gs(e){return setTimeout(e,0)}function Ks(e){return clearTimeout(e)}Ss&&U(document,`touchmove`,function(e){(Q.active||rs)&&e.cancelable&&e.preventDefault()}),Q.utils={on:U,off:W,css:G,find:bo,is:function(e,t){return!!go(e,t,e,!1)},extend:ko,throttle:Mo,closest:go,toggleClass:vo,clone:Fo,index:To,nextTick:Gs,cancelNextTick:Ks,detectDirection:Ds,getChild:Co},Q.get=function(e){return e[Lo]},Q.mount=function(){var e=[...arguments];e[0].constructor===Array&&(e=e[0]),e.forEach(function(e){if(!e.prototype||!e.prototype.constructor)throw`Sortable: Mounted plugin must be a constructor function, not ${{}.toString.call(e)}`;e.utils&&(Q.utils=Qa(Qa({},Q.utils),e.utils)),Uo.mount(e)})},Q.create=function(e,t){return new Q(e,t)},Q.version=io;var $=[],qs,Js,Ys=!1,Xs,Zs,Qs,$s;function ec(){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?U(document,`dragover`,this._handleAutoScroll):this.options.supportPointer?U(document,`pointermove`,this._handleFallbackAutoScroll):t.touches?U(document,`touchmove`,this._handleFallbackAutoScroll):U(document,`mousemove`,this._handleFallbackAutoScroll)},dragOverCompleted:function(e){var t=e.originalEvent;!this.options.dragOverBubble&&!t.rootEl&&this._handleAutoScroll(t)},drop:function(){this.sortable.nativeDraggable?W(document,`dragover`,this._handleAutoScroll):(W(document,`pointermove`,this._handleFallbackAutoScroll),W(document,`touchmove`,this._handleFallbackAutoScroll),W(document,`mousemove`,this._handleFallbackAutoScroll)),nc(),tc(),No()},nulling:function(){Qs=Js=qs=Ys=$s=Xs=Zs=null,$.length=0},_handleFallbackAutoScroll:function(e){this._handleAutoScroll(e,!0)},_handleAutoScroll:function(e,t){var n=this,r=(e.touches?e.touches[0]:e).clientX,i=(e.touches?e.touches[0]:e).clientY,a=document.elementFromPoint(r,i);if(Qs=e,t||this.options.forceAutoScrollFallback||so||oo||lo){rc(e,this.options,a,t);var o=Oo(a,!0);Ys&&(!$s||r!==Xs||i!==Zs)&&($s&&nc(),$s=setInterval(function(){var a=Oo(document.elementFromPoint(r,i),!0);a!==o&&(o=a,tc()),rc(e,n.options,a,t)},10),Xs=r,Zs=i)}else{if(!this.options.bubbleScroll||Oo(a,!0)===xo()){tc();return}rc(e,this.options,Oo(a,!1),!1)}}},to(e,{pluginName:`scroll`,initializeByDefault:!0})}function tc(){$.forEach(function(e){clearInterval(e.pid)}),$=[]}function nc(){clearInterval($s)}var rc=Mo(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=xo(),l=!1,u;Js!==n&&(Js=n,tc(),qs=t.scroll,u=t.scrollFn,qs===!0&&(qs=Oo(n,!0)));var d=0,f=qs;do{var p=f,m=K(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=G(p),ee=p.scrollLeft,E=p.scrollTop;p===c?(x=y<C&&(T.overflowX===`auto`||T.overflowX===`scroll`||T.overflowX===`visible`),S=b<w&&(T.overflowY===`auto`||T.overflowY===`scroll`||T.overflowY===`visible`)):(x=y<C&&(T.overflowX===`auto`||T.overflowX===`scroll`),S=b<w&&(T.overflowY===`auto`||T.overflowY===`scroll`));var D=x&&(Math.abs(v-i)<=o&&ee+y<C)-(Math.abs(_-i)<=o&&!!ee),O=S&&(Math.abs(g-a)<=o&&E+b<w)-(Math.abs(h-a)<=o&&!!E);if(!$[d])for(var k=0;k<=d;k++)$[k]||($[k]={});($[d].vx!=D||$[d].vy!=O||$[d].el!==p)&&($[d].el=p,$[d].vx=D,$[d].vy=O,clearInterval($[d].pid),(D!=0||O!=0)&&(l=!0,$[d].pid=setInterval(function(){r&&this.layer===0&&Q.active._onTouchMove(Qs);var t=$[this.layer].vy?$[this.layer].vy*s:0,n=$[this.layer].vx?$[this.layer].vx*s:0;typeof u==`function`&&u.call(Q.dragged.parentNode[Lo],n,t,e,Qs,$[this.layer].el)!==`continue`||Po($[this.layer].el,n,t)}.bind({layer:d}),24))),d++}while(t.bubbleScroll&&f!==c&&(f=Oo(f,!1)));Ys=l}},30),ic=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 ac(){}ac.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=Co(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:ic},to(ac,{pluginName:`revertOnSpill`});function oc(){}oc.prototype={onSpill:function(e){var t=e.dragEl,n=e.putSortable||this.sortable;n.captureAnimationState(),t.parentNode&&t.parentNode.removeChild(t),n.animateAll()},drop:ic},to(oc,{pluginName:`removeOnSpill`}),Q.mount(new ec),Q.mount(oc,ac);function sc(e){return e==null?e:JSON.parse(JSON.stringify(e))}function cc(e){_e()&&S(e)}function lc(e){_e()?a(e):P(e)}var uc=null,dc=null;function fc(e=null,t=null){uc=e,dc=t}function pc(){return{data:uc,clonedData:dc}}var mc=Symbol(`cloneElement`);function hc(...e){let t=_e()?.proxy,r=null,i=e[0],[,a,o]=e;Array.isArray(H(a))||(o=a,a=null);let s=null,{immediate:c=!0,clone:l=sc,forceFallback:u,fallbackOnBody:d,customUpdate:f}=H(o)??{};function p(e){let{from:t,oldIndex:n,item:i}=e,o=Array.from(t.childNodes);r=u&&!d?o.slice(0,-1):o;let s=H(H(a)?.[n]),c=l(s);fc(s,c),i[mc]=c}function m(e){let t=e.item[mc];if(!Ba(t)){if(Ua(e.item),ce(a)){let n=[...H(a)];a.value=za(n,e.newDraggableIndex,t);return}za(H(a),e.newDraggableIndex,t)}}function h(e){let{from:t,item:n,oldIndex:r,oldDraggableIndex:i,pullMode:o,clone:s}=e;if(Ha(t,n,r),o===`clone`){Ua(s);return}if(ce(a)){let e=[...H(a)];a.value=Ra(e,i);return}Ra(H(a),i)}function g(e){if(f){f(e);return}let{from:t,item:n,oldIndex:r,oldDraggableIndex:i,newDraggableIndex:o}=e;if(Ua(n),Ha(t,n,r),ce(a)){let e=[...H(a)];a.value=Fa(e,i,o);return}Fa(H(a),i,o)}function _(e){let{newIndex:t,oldIndex:n,from:i,to:a}=e,o=null,s=t===n&&i===a;try{if(s){let e=null;r?.some((t,n)=>{if(e&&r?.length!==a.childNodes.length)return i.insertBefore(e,t.nextSibling),!0;let o=a.childNodes[n];e=a?.replaceChild(t,o)})}}catch(e){o=e}finally{r=null}P(()=>{if(fc(),o)throw o})}let v={onUpdate:g,onStart:p,onAdd:m,onRemove:h,onEnd:_};function y(e){let n=H(i);return e||=Va(n)?Wa(n,t?.$el):n,e&&!qa(e)&&(e=e.$el),e||Pa(`Root element not found`),e}function b(){let e=H(o)??{},{immediate:t,clone:n}=e,r=ja(e,[`immediate`,`clone`]);return Ja(r,(e,t)=>{Ya(e)&&(r[e]=(e,...n)=>(Xa(e,pc()),t(e,...n)))}),Ka(a===null?{}:v,r)}let x=e=>{e=y(e),s&&S.destroy(),s=new Q(e,b())};n(()=>o,()=>{s&&Ja(b(),(e,t)=>{s?.option(e,t)})},{deep:!0});let S={option:(e,t)=>s?.option(e,t),destroy:()=>{s?.destroy(),s=null},save:()=>s?.save(),toArray:()=>s?.toArray(),closest:(...e)=>s?.closest(...e)};return lc(()=>{c&&x()}),cc(S.destroy),Aa({start:x,pause:()=>S?.option(`disabled`,!0),resume:()=>S?.option(`disabled`,!1)},S)}var gc=[`update`,`start`,`add`,`remove`,`choose`,`unchoose`,`end`,`sort`,`filter`,`clone`,`move`,`change`],_c=R({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`,...gc.map(e=>`on${e.replace(/^\S/,e=>e.toUpperCase())}`)],emits:[`update:modelValue`,...gc],setup(e,{slots:t,emit:n,expose:r,attrs:i}){let a=gc.reduce((e,t)=>{let r=`on${t.replace(/^\S/,e=>e.toUpperCase())}`;return e[r]=(...e)=>n(t,...e),e},{}),o=k(()=>{let t=se(e),{modelValue:n}=t,r=ja(t,[`modelValue`]),o=Object.entries(r).reduce((e,[t,n])=>{let r=H(n);return r!==void 0&&(e[t]=r),e},{});return Aa(Aa({},a),La(Aa(Aa({},i),o)))}),s=k({get:()=>e.modelValue,set:e=>n(`update:modelValue`,e)}),c=I(),l=ge(hc(e.target||c,s,o));return r(l),()=>fe(e.tag||`div`,{ref:c},(t?.default)?.call(t,l))}}),vc={mounted:`mounted`,unmounted:`unmounted`};vc.mounted,vc.unmounted;var yc={class:`config-log-parsers`},bc={class:`config-card`},xc={class:`config-card__header`},Sc={class:`config-card__hint`},Cc={class:`config-card`},wc={class:`config-card__header`},Tc={class:`config-card__header-hint`},Ec={class:`config-log-parsers__order`},Dc={class:`config-log-parsers__name`},Oc={key:1,class:`config-log-parsers__empty`},kc={class:`config-log-parsers__add-row`},Ac={class:`config-log-parsers__footer`},jc=V(R({__name:`ServiceConfigLogs`,props:{service:{}},emits:[`save`],setup(e,{emit:r}){let i=e,c=r,l=s(),{t:u}=p(),d=Ve(),f=I([...i.service.parserIds??[]]);n(()=>i.service,e=>{f.value=[...e.parserIds??[]]});let m=k(()=>[...d.parsers].filter(e=>e.enabled).sort((e,t)=>e.name.localeCompare(t.name))),h=k(()=>m.value.filter(e=>!f.value.includes(e.id))),_=I(f.value.map(e=>d.parsers.find(t=>t.id===e)).filter(e=>e!==void 0));n(f,e=>{let t=_.value.filter(t=>e.includes(t.id)),n=e.filter(e=>!t.find(t=>t.id===e)).map(e=>d.parsers.find(t=>t.id===e)).filter(e=>e!==void 0);_.value=[...t,...n]}),n(()=>d.parsers,()=>{_.value=f.value.map(e=>d.parsers.find(t=>t.id===e)).filter(e=>e!==void 0)});let v=I(null);function y(e){if(!e)return;let t=d.parsers.find(t=>t.id===e);t&&(f.value=[...f.value,e],_.value=[..._.value,t],v.value=null,C())}function x(e){f.value=f.value.filter(t=>t!==e),_.value=_.value.filter(t=>t.id!==e),C()}function S(){f.value=_.value.map(e=>e.id),C()}function C(){c(`save`,{parserIds:_.value.map(e=>e.id)})}return a(()=>{d.fetchParsers()}),(e,n)=>(o(),t(`div`,yc,[O(`div`,bc,[O(`div`,xc,[n[3]||=O(`i`,{class:`pi pi-code`},null,-1),O(`span`,null,j(H(u)(`serviceConfigLogs.jsParsers`)),1)]),O(`small`,Sc,j(H(u)(`serviceConfigLogs.jsParsersHint`)),1)]),O(`div`,Cc,[O(`div`,wc,[n[4]||=O(`i`,{class:`pi pi-sort-alt`},null,-1),O(`span`,null,j(H(u)(`serviceConfigLogs.executionOrder`)),1),O(`small`,Tc,j(H(u)(`serviceConfigLogs.executionOrderHint`)),1)]),_.value.length>0?(o(),M(H(_c),{key:0,modelValue:_.value,"onUpdate:modelValue":n[0]||=e=>_.value=e,animation:150,handle:`.drag-handle`,class:`config-log-parsers__drag-list`,"data-testid":`log-parsers-drag-list`,onEnd:S},{default:E(()=>[(o(!0),t(g,null,de(_.value,(e,r)=>(o(),t(`div`,{key:e.id,class:`config-log-parsers__drag-row`,"data-testid":`log-parsers-drag-row`},[n[5]||=O(`span`,{class:`drag-handle`,"data-testid":`drag-handle`},[O(`i`,{class:`pi pi-bars`})],-1),O(`span`,Ec,j(r+1),1),O(`span`,Dc,j(e.name),1),e.builtin?(o(),M(H(N),{key:0,severity:`secondary`,class:`config-log-parsers__builtin-badge`},{default:E(()=>[B(j(H(u)(`serviceConfigLogs.builtin`)),1)]),_:1})):b(``,!0),e.enabled?b(``,!0):(o(),M(H(N),{key:1,severity:`warn`,class:`config-log-parsers__disabled-badge`},{default:E(()=>[B(j(H(u)(`serviceConfigLogs.disabled`)),1)]),_:1})),F(H(L),{icon:`pi pi-trash`,severity:`danger`,text:``,size:`small`,class:`config-log-parsers__delete`,onClick:t=>x(e.id)},null,8,[`onClick`])]))),128))]),_:1},8,[`modelValue`])):b(``,!0),_.value.length===0?(o(),t(`div`,Oc,j(H(u)(`serviceConfigLogs.empty`)),1)):b(``,!0),O(`div`,kc,[F(H(ne),{modelValue:v.value,"onUpdate:modelValue":[n[1]||=e=>v.value=e,y],options:h.value,"option-label":`name`,"option-value":`id`,placeholder:H(u)(`serviceConfigLogs.addParser`),class:`config-log-parsers__add-select`,loading:H(d).loading,disabled:h.value.length===0},{option:E(({option:e})=>[O(`span`,null,j(e.name),1),e.builtin?(o(),M(H(N),{key:0,severity:`secondary`,class:`ml-2`,style:{"font-size":`0.65rem`,padding:`0.1rem 0.35rem`}},{default:E(()=>[B(j(H(u)(`serviceConfigLogs.builtin`)),1)]),_:1})):b(``,!0)]),_:1},8,[`modelValue`,`options`,`placeholder`,`loading`,`disabled`])])]),O(`div`,Ac,[F(H(L),{label:H(u)(`serviceConfigLogs.manageParsers`),icon:`pi pi-cog`,severity:`secondary`,outlined:``,size:`small`,onClick:n[2]||=e=>H(l).push({name:`settings`,query:{section:`parsers`}})},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-2a8eb0c6`]]),Mc={class:`config-log-sources`},Nc={class:`config-card`},Pc={class:`config-card__header`},Fc={class:`config-card__hint`},Ic={key:0,class:`config-card config-card--list`},Lc={class:`source-row__info`},Rc={class:`source-row__type`},zc={class:`source-row__label`},Bc={class:`source-row__actions`},Vc={key:1,class:`config-log-sources__empty`},Hc={class:`config-log-sources__footer`},Uc={class:`dialog-form`},Wc={class:`dialog-form__field`},Gc={for:`lsrc-type`,class:`dialog-form__label`},Kc={class:`dialog-form__field`},qc={for:`lsrc-path-file`,class:`dialog-form__label`},Jc={class:`dialog-form__field`},Yc={for:`lsrc-encoding-file`,class:`dialog-form__label`},Xc={class:`dialog-form__field dialog-form__field--row`},Zc={for:`lsrc-startFromEnd-file`,class:`dialog-form__label`},Qc={class:`dialog-form__field dialog-form__field--row`},$c={for:`lsrc-createIfNotExists-file`,class:`dialog-form__label`},el={class:`dialog-form__field`},tl={for:`lsrc-connectionString-mongo`,class:`dialog-form__label`},nl={class:`dialog-form__row`},rl={class:`dialog-form__field`},il={class:`dialog-form__field`},al={class:`dialog-form__row`},ol={class:`dialog-form__field`},sl={class:`dialog-form__field`},cl={class:`dialog-form__field`},ll={class:`dialog-form__row`},ul={class:`dialog-form__field dialog-form__field--grow`},dl={class:`dialog-form__field dialog-form__field--port`},fl={class:`dialog-form__row`},pl={class:`dialog-form__field`},ml={class:`dialog-form__field`},hl={class:`dialog-form__row`},gl={class:`dialog-form__field`},_l={class:`dialog-form__field`},vl={class:`dialog-form__row`},yl={class:`dialog-form__field`},bl={class:`dialog-form__field`},xl={class:`dialog-form__row`},Sl={class:`dialog-form__field`},Cl={class:`dialog-form__field`},wl={class:`dialog-form__field`},Tl={key:3,class:`dialog-form__hint-block`},El=V(R({__name:`ServiceConfigLogSources`,props:{service:{}},emits:[`save`],setup(e,{emit:r}){let{t:i}=p(),a=e,s=r,c=[{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 l(e){return e===`console`?{type:`console`}:e===`file`?{type:`file`,path:``,encoding:`utf-8`,startFromEnd:!0,createIfNotExists:!1}:e===`mongo`?{type:`mongo`,connectionString:``,database:``,collection:``,timestampField:`timestamp`,messageField:`message`}:{type:`mysql`,host:`localhost`,port:3306,user:``,password:``,database:``,table:``,timestampColumn:`created_at`,messageColumn:`message`,pollIntervalMs:2e3}}let u=I([...a.service.logSources??[]]);n(()=>a.service.logSources,e=>{u.value=[...e??[]]});let d=I(!1),f=I(null),m=I(l(`console`));function _(){f.value=null,m.value=l(`file`),d.value=!0}function v(e){f.value=e,m.value={...u.value[e]},d.value=!0}function y(e){m.value=l(e)}function x(){f.value===null?u.value=[...u.value,{...m.value}]:u.value=u.value.map((e,t)=>t===f.value?{...m.value}:e),d.value=!1,s(`save`,{logSources:u.value})}function S(e){u.value=u.value.filter((t,n)=>n!==e),s(`save`,{logSources:u.value})}function C(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 w(e){return e===`console`?`pi-terminal`:e===`file`?`pi-file`:`pi-database`}return(e,n)=>(o(),t(`div`,Mc,[O(`div`,Nc,[O(`div`,Pc,[n[23]||=O(`i`,{class:`pi pi-inbox`},null,-1),O(`span`,null,j(H(i)(`serviceConfigLogSources.title`)),1)]),O(`small`,Fc,j(H(i)(`serviceConfigLogSources.hint`)),1)]),u.value.length>0?(o(),t(`div`,Ic,[(o(!0),t(g,null,de(u.value,(e,n)=>(o(),t(`div`,{key:n,class:`source-row`},[O(`i`,{class:h(`pi ${w(e.type)} source-row__icon`)},null,2),O(`div`,Lc,[O(`span`,Rc,j(e.type),1),O(`span`,zc,j(C(e)),1)]),O(`div`,Bc,[F(H(L),{icon:`pi pi-pencil`,text:``,size:`small`,severity:`secondary`,onClick:e=>v(n)},null,8,[`onClick`]),F(H(L),{icon:`pi pi-trash`,text:``,size:`small`,severity:`danger`,onClick:e=>S(n)},null,8,[`onClick`])])]))),128))])):(o(),t(`div`,Vc,[n[24]||=O(`i`,{class:`pi pi-inbox config-log-sources__empty-icon`},null,-1),O(`p`,null,j(H(i)(`serviceConfigLogSources.empty`)),1),O(`small`,null,j(H(i)(`serviceConfigLogSources.emptyHint`)),1)])),O(`div`,Hc,[F(H(L),{label:H(i)(`serviceConfigLogSources.addSource`),icon:`pi pi-plus`,size:`small`,onClick:_},null,8,[`label`])]),F(H(oe),{visible:d.value,"onUpdate:visible":n[22]||=e=>d.value=e,header:f.value===null?H(i)(`serviceConfigLogSources.addDialog`):H(i)(`serviceConfigLogSources.editDialog`),modal:``,style:{width:`520px`}},{footer:E(()=>[F(H(L),{label:H(i)(`serviceConfigLogSources.cancel`),severity:`secondary`,outlined:``,onClick:n[21]||=e=>d.value=!1},null,8,[`label`]),F(H(L),{label:f.value===null?H(i)(`serviceConfigLogSources.add`):H(i)(`serviceConfigLogSources.save`),icon:`pi pi-check`,onClick:x},null,8,[`label`])]),default:E(()=>[O(`div`,Uc,[O(`div`,Wc,[O(`label`,Gc,j(H(i)(`serviceConfigLogSources.type`)),1),F(H(ne),{"input-id":`lsrc-type`,"model-value":m.value.type,options:c,"option-label":`label`,"option-value":`value`,class:`dialog-form__input`,"onUpdate:modelValue":y},null,8,[`model-value`])]),m.value.type===`file`?(o(),t(g,{key:0},[O(`div`,Kc,[O(`label`,qc,[B(j(H(i)(`serviceConfigLogSources.path`))+` `,1),n[25]||=O(`span`,{class:`dialog-form__required`},`*`,-1)]),F(H(z),{id:`lsrc-path-file`,modelValue:m.value.path,"onUpdate:modelValue":n[0]||=e=>m.value.path=e,class:`dialog-form__input`,placeholder:`/var/log/app.log`},null,8,[`modelValue`])]),O(`div`,Jc,[O(`label`,Yc,j(H(i)(`serviceConfigLogSources.encoding`)),1),F(H(z),{id:`lsrc-encoding-file`,modelValue:m.value.encoding,"onUpdate:modelValue":n[1]||=e=>m.value.encoding=e,class:`dialog-form__input`,placeholder:`utf-8`},null,8,[`modelValue`])]),O(`div`,Xc,[O(`label`,Zc,j(H(i)(`serviceConfigLogSources.startFromEnd`)),1),F(H(De),{"input-id":`lsrc-startFromEnd-file`,modelValue:m.value.startFromEnd,"onUpdate:modelValue":n[2]||=e=>m.value.startFromEnd=e},null,8,[`modelValue`])]),O(`div`,Qc,[O(`label`,$c,j(H(i)(`serviceConfigLogSources.createIfNotExists`)),1),F(H(De),{"input-id":`lsrc-createIfNotExists-file`,modelValue:m.value.createIfNotExists,"onUpdate:modelValue":n[3]||=e=>m.value.createIfNotExists=e},null,8,[`modelValue`])])],64)):m.value.type===`mongo`?(o(),t(g,{key:1},[O(`div`,el,[O(`label`,tl,[B(j(H(i)(`serviceConfigLogSources.connectionString`))+` `,1),n[26]||=O(`span`,{class:`dialog-form__required`},`*`,-1)]),F(H(z),{id:`lsrc-connectionString-mongo`,modelValue:m.value.connectionString,"onUpdate:modelValue":n[4]||=e=>m.value.connectionString=e,class:`dialog-form__input`,placeholder:`mongodb://user:pass@host:27017`,type:`password`,autocomplete:`off`},null,8,[`modelValue`])]),O(`div`,nl,[O(`div`,rl,[n[27]||=O(`label`,{for:`lsrc-database-mongo`,class:`dialog-form__label`},[B(`Database `),O(`span`,{class:`dialog-form__required`},`*`)],-1),F(H(z),{id:`lsrc-database-mongo`,modelValue:m.value.database,"onUpdate:modelValue":n[5]||=e=>m.value.database=e,class:`dialog-form__input`,placeholder:`mydb`},null,8,[`modelValue`])]),O(`div`,il,[n[28]||=O(`label`,{for:`lsrc-collection-mongo`,class:`dialog-form__label`},[B(`Collection `),O(`span`,{class:`dialog-form__required`},`*`)],-1),F(H(z),{id:`lsrc-collection-mongo`,modelValue:m.value.collection,"onUpdate:modelValue":n[6]||=e=>m.value.collection=e,class:`dialog-form__input`,placeholder:`logs`},null,8,[`modelValue`])])]),O(`div`,al,[O(`div`,ol,[n[29]||=O(`label`,{for:`lsrc-timestampField-mongo`,class:`dialog-form__label`},`Timestamp field`,-1),F(H(z),{id:`lsrc-timestampField-mongo`,modelValue:m.value.timestampField,"onUpdate:modelValue":n[7]||=e=>m.value.timestampField=e,class:`dialog-form__input`,placeholder:`timestamp`},null,8,[`modelValue`])]),O(`div`,sl,[n[30]||=O(`label`,{for:`lsrc-messageField-mongo`,class:`dialog-form__label`},`Message field`,-1),F(H(z),{id:`lsrc-messageField-mongo`,modelValue:m.value.messageField,"onUpdate:modelValue":n[8]||=e=>m.value.messageField=e,class:`dialog-form__input`,placeholder:`message`},null,8,[`modelValue`])])]),O(`div`,cl,[n[31]||=O(`label`,{for:`lsrc-levelField-mongo`,class:`dialog-form__label`},[B(`Level field `),O(`span`,{class:`dialog-form__hint`},`(optional)`)],-1),F(H(z),{id:`lsrc-levelField-mongo`,modelValue:m.value.levelField,"onUpdate:modelValue":n[9]||=e=>m.value.levelField=e,class:`dialog-form__input`,placeholder:`level`},null,8,[`modelValue`])])],64)):m.value.type===`mysql`?(o(),t(g,{key:2},[O(`div`,ll,[O(`div`,ul,[n[32]||=O(`label`,{for:`lsrc-host-mysql`,class:`dialog-form__label`},[B(`Host `),O(`span`,{class:`dialog-form__required`},`*`)],-1),F(H(z),{id:`lsrc-host-mysql`,modelValue:m.value.host,"onUpdate:modelValue":n[10]||=e=>m.value.host=e,class:`dialog-form__input`,placeholder:`localhost`},null,8,[`modelValue`])]),O(`div`,dl,[n[33]||=O(`label`,{for:`lsrc-port-mysql`,class:`dialog-form__label`},`Port`,-1),F(H(Te),{"input-id":`lsrc-port-mysql`,modelValue:m.value.port,"onUpdate:modelValue":n[11]||=e=>m.value.port=e,min:1,max:65535,class:`dialog-form__input`},null,8,[`modelValue`])])]),O(`div`,fl,[O(`div`,pl,[n[34]||=O(`label`,{for:`lsrc-user-mysql`,class:`dialog-form__label`},[B(`User `),O(`span`,{class:`dialog-form__required`},`*`)],-1),F(H(z),{id:`lsrc-user-mysql`,modelValue:m.value.user,"onUpdate:modelValue":n[12]||=e=>m.value.user=e,class:`dialog-form__input`,placeholder:`root`},null,8,[`modelValue`])]),O(`div`,ml,[n[35]||=O(`label`,{for:`lsrc-password-mysql`,class:`dialog-form__label`},`Password`,-1),F(H(z),{id:`lsrc-password-mysql`,modelValue:m.value.password,"onUpdate:modelValue":n[13]||=e=>m.value.password=e,class:`dialog-form__input`,type:`password`,autocomplete:`new-password`},null,8,[`modelValue`])])]),O(`div`,hl,[O(`div`,gl,[n[36]||=O(`label`,{for:`lsrc-database-mysql`,class:`dialog-form__label`},[B(`Database `),O(`span`,{class:`dialog-form__required`},`*`)],-1),F(H(z),{id:`lsrc-database-mysql`,modelValue:m.value.database,"onUpdate:modelValue":n[14]||=e=>m.value.database=e,class:`dialog-form__input`,placeholder:`app_db`},null,8,[`modelValue`])]),O(`div`,_l,[n[37]||=O(`label`,{for:`lsrc-table-mysql`,class:`dialog-form__label`},[B(`Table `),O(`span`,{class:`dialog-form__required`},`*`)],-1),F(H(z),{id:`lsrc-table-mysql`,modelValue:m.value.table,"onUpdate:modelValue":n[15]||=e=>m.value.table=e,class:`dialog-form__input`,placeholder:`logs`},null,8,[`modelValue`])])]),O(`div`,vl,[O(`div`,yl,[n[38]||=O(`label`,{for:`lsrc-timestampColumn-mysql`,class:`dialog-form__label`},`Timestamp column`,-1),F(H(z),{id:`lsrc-timestampColumn-mysql`,modelValue:m.value.timestampColumn,"onUpdate:modelValue":n[16]||=e=>m.value.timestampColumn=e,class:`dialog-form__input`,placeholder:`created_at`},null,8,[`modelValue`])]),O(`div`,bl,[n[39]||=O(`label`,{for:`lsrc-messageColumn-mysql`,class:`dialog-form__label`},`Message column`,-1),F(H(z),{id:`lsrc-messageColumn-mysql`,modelValue:m.value.messageColumn,"onUpdate:modelValue":n[17]||=e=>m.value.messageColumn=e,class:`dialog-form__input`,placeholder:`message`},null,8,[`modelValue`])])]),O(`div`,xl,[O(`div`,Sl,[n[40]||=O(`label`,{for:`lsrc-levelColumn-mysql`,class:`dialog-form__label`},[B(`Level column `),O(`span`,{class:`dialog-form__hint`},`(optional)`)],-1),F(H(z),{id:`lsrc-levelColumn-mysql`,modelValue:m.value.levelColumn,"onUpdate:modelValue":n[18]||=e=>m.value.levelColumn=e,class:`dialog-form__input`,placeholder:`level`},null,8,[`modelValue`])]),O(`div`,Cl,[n[41]||=O(`label`,{for:`lsrc-pollIntervalMs-mysql`,class:`dialog-form__label`},`Poll interval (ms)`,-1),F(H(Te),{"input-id":`lsrc-pollIntervalMs-mysql`,modelValue:m.value.pollIntervalMs,"onUpdate:modelValue":n[19]||=e=>m.value.pollIntervalMs=e,min:500,max:6e4,class:`dialog-form__input`},null,8,[`modelValue`])])]),O(`div`,wl,[n[42]||=O(`label`,{for:`lsrc-query-mysql`,class:`dialog-form__label`},[B(`Custom query `),O(`span`,{class:`dialog-form__hint`},[B(`(optional, must include `),O(`code`,null,`WHERE … > ?`),B(`)`)])],-1),F(H(z),{id:`lsrc-query-mysql`,modelValue:m.value.query,"onUpdate:modelValue":n[20]||=e=>m.value.query=e,class:`dialog-form__input`,placeholder:`SELECT * FROM logs WHERE created_at > ? ORDER BY id ASC`},null,8,[`modelValue`])])],64)):m.value.type===`console`?(o(),t(`small`,Tl,`The console source captures stdout/stderr and is always active. Adding it here has no effect unless you want to track it explicitly.`)):b(``,!0)])]),_:1},8,[`visible`,`header`])]))}}),[[`__scopeId`,`data-v-1ceb461a`]]),Dl={class:`config-traefik`},Ol={class:`traefik-entry__fields`},kl=V(R({__name:`ServiceConfigTraefik`,props:{service:{}},emits:[`save`],setup(e,{emit:r}){let i=e,s=r,c=I([...i.service.localUrls??[]]),l=I(null);a(async()=>{i.service.agentId&&(l.value=(await T.settings.getAgentTraefikConfig.query({agentId:i.service.agentId})).enabled)});let u=null;n(()=>i.service,e=>{u||(c.value=[...e.localUrls??[]])});function d(){c.value=[...c.value,{url:``,port:3e3}]}function f(e){c.value=c.value.filter((t,n)=>n!==e),m()}function p(e,t,n){c.value=c.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function m(){u&&clearTimeout(u),u=setTimeout(()=>{s(`save`,{localUrls:c.value.filter(e=>e.url.trim())}),u=null},150)}return(e,n)=>(o(),t(`div`,Dl,[l.value===!1?(o(),M(H(xe),{key:0,severity:`warn`,closable:!1},{default:E(()=>[n[1]||=B(` Traefik n'est pas activé. Configurez-le dans `,-1),F(H(ye),{to:{name:`settings`,query:{section:`agents`}}},{default:E(()=>[...n[0]||=[B(`Paramètres → Agents`,-1)]]),_:1}),n[2]||=B(` (bouton Traefik sur la ligne de l'agent) pour que ces URLs soient actives. `,-1)]),_:1})):b(``,!0),(o(!0),t(g,null,de(c.value,(e,n)=>(o(),t(`div`,{key:n,class:`traefik-entry`},[O(`div`,Ol,[F(H(z),{"model-value":e.url,class:`traefik-entry__url`,placeholder:`mon-app.local.mondomaine.com`,"onUpdate:modelValue":e=>p(n,`url`,e),onBlur:m,onKeydown:w(D(m,[`prevent`]),[`enter`])},null,8,[`model-value`,`onUpdate:modelValue`,`onKeydown`]),F(H(Te),{"model-value":e.port,class:`traefik-entry__port`,min:1,max:65535,"use-grouping":!1,placeholder:`3000`,"onUpdate:modelValue":e=>{p(n,`port`,e??3e3),m()}},null,8,[`model-value`,`onUpdate:modelValue`]),F(H(L),{icon:`pi pi-trash`,severity:`danger`,text:``,size:`small`,onClick:e=>f(n)},null,8,[`onClick`])])]))),128)),F(H(L),{icon:`pi pi-plus`,label:`Ajouter une URL`,size:`small`,outlined:``,onClick:d})]))}}),[[`__scopeId`,`data-v-a71f945b`]]),Al={class:`config-view`,"data-testid":`config-view`},jl={class:`config-view__header`},Ml={class:`config-view__title`},Nl={class:`config-view__actions`},Pl=V(R({__name:`ServiceConfigView`,props:{service:{},projectId:{}},emits:[`remove-service`],setup(e,{emit:n}){let r=e,i=n,{t:a}=p(),l=y(),u=te(),{isDebug:d}=Yt(),f=c(),m=s(),h=[`general`,`commands`,`shortcuts`,`env`,`health`,`log-parsers`,`log-sources`,`traefik`],g=k(()=>{let e=f.query.configTab;return h.includes(e)?e:`general`});function _(e){m.replace({query:{...f.query,configTab:e}})}let v=k(()=>u.projects.find(e=>e.id===r.projectId)?.activeEnvironmentId);async function b(e,t){await t()?d.value&&console.debug(`[autosave] ${e} saved`):console.error(`[autosave] ${e} failed:`,l.error??`Save failed`)}async function x(e){await b(`General`,()=>l.update(r.service.id,e))}async function S(e){await b(`Commands`,()=>l.update(r.service.id,e))}async function C(e){await b(`Health check`,()=>l.update(r.service.id,{healthCheck:e??null}))}async function w(e){await b(`Shortcuts`,()=>l.update(r.service.id,{shortcuts:e}))}async function T(e){await b(`Docker`,()=>l.update(r.service.id,{dockerConfig:e}))}async function ee(e){await b(`Log parsers`,()=>l.update(r.service.id,e))}async function D(e){await b(`Log sources`,()=>l.update(r.service.id,e))}async function A(e){await b(`Traefik`,()=>l.update(r.service.id,e))}function M(){i(`remove-service`,r.service.id)}return(n,r)=>(o(),t(`div`,Al,[O(`div`,jl,[O(`h2`,Ml,j(H(a)(`serviceConfigView.title`)),1),O(`div`,Nl,[F(H(L),{label:H(a)(`serviceConfigView.remove`),icon:`pi pi-trash`,severity:`danger`,size:`small`,outlined:``,onClick:M},null,8,[`label`])])]),F(H(ke),{value:g.value,class:`config-view__tabs`,"onUpdate:value":_},{default:E(()=>[F(H(Ae),null,{default:E(()=>[F(H(Me),{value:`general`,"data-testid":`tab-config`},{default:E(()=>[r[0]||=O(`i`,{class:`pi pi-cog tab-icon`},null,-1),O(`span`,null,j(H(a)(`serviceConfigView.tabGeneral`)),1)]),_:1}),F(H(Me),{value:`commands`,"data-testid":`tab-commands`},{default:E(()=>[r[1]||=O(`i`,{class:`pi pi-code tab-icon`},null,-1),O(`span`,null,j(H(a)(`serviceConfigView.tabCommands`)),1)]),_:1}),F(H(Me),{value:`shortcuts`,"data-testid":`tab-shortcuts`},{default:E(()=>[r[2]||=O(`i`,{class:`pi pi-bolt tab-icon`},null,-1),O(`span`,null,j(H(a)(`serviceConfigView.tabShortcuts`)),1)]),_:1}),F(H(Me),{value:`env`,"data-testid":`tab-env`},{default:E(()=>[r[3]||=O(`i`,{class:`pi pi-database tab-icon`},null,-1),O(`span`,null,j(H(a)(`serviceConfigView.tabEnvironment`)),1)]),_:1}),F(H(Me),{value:`health`},{default:E(()=>[r[4]||=O(`i`,{class:`pi pi-heart tab-icon`},null,-1),O(`span`,null,j(H(a)(`serviceConfigView.tabHealthCheck`)),1)]),_:1}),F(H(Me),{value:`log-parsers`,"data-testid":`tab-log-parsers`},{default:E(()=>[r[5]||=O(`i`,{class:`pi pi-list tab-icon`},null,-1),O(`span`,null,j(H(a)(`serviceConfigView.tabLogParsers`)),1)]),_:1}),F(H(Me),{value:`log-sources`},{default:E(()=>[r[6]||=O(`i`,{class:`pi pi-inbox tab-icon`},null,-1),O(`span`,null,j(H(a)(`serviceConfigView.tabLogSources`)),1)]),_:1}),F(H(Me),{value:`traefik`},{default:E(()=>[...r[7]||=[O(`i`,{class:`pi pi-server tab-icon`},null,-1),O(`span`,null,`Traefik`,-1)]]),_:1})]),_:1}),F(H(je),null,{default:E(()=>[F(H(Ne),{value:`general`},{default:E(()=>[F(jn,{service:e.service,onSave:x},null,8,[`service`])]),_:1}),F(H(Ne),{value:`commands`},{default:E(()=>[F(ri,{service:e.service,onSave:S,onDockerSave:T},null,8,[`service`])]),_:1}),F(H(Ne),{value:`shortcuts`,"data-testid":`tabpanel-shortcuts`},{default:E(()=>[F(wa,{service:e.service,onSave:w},null,8,[`service`])]),_:1}),F(H(Ne),{value:`env`},{default:E(()=>[F(Ui,{service:e.service,"project-id":e.projectId,"active-environment-id":v.value},null,8,[`service`,`project-id`,`active-environment-id`])]),_:1}),F(H(Ne),{value:`health`},{default:E(()=>[F(fa,{service:e.service,onSave:C},null,8,[`service`])]),_:1}),F(H(Ne),{value:`log-parsers`,"data-testid":`tabpanel-log-parsers`},{default:E(()=>[F(jc,{service:e.service,onSave:ee},null,8,[`service`])]),_:1}),F(H(Ne),{value:`log-sources`},{default:E(()=>[F(El,{service:e.service,onSave:D},null,8,[`service`])]),_:1}),F(H(Ne),{value:`traefik`},{default:E(()=>[F(kl,{service:e.service,onSave:A},null,8,[`service`])]),_:1})]),_:1})]),_:1},8,[`value`])]))}}),[[`__scopeId`,`data-v-51a781dd`]]),Fl={key:0,class:`service-detail`},Il={key:1,class:`service-detail__not-found`},Ll=V(R({__name:`ServiceDetailPage`,setup(e){let r=c(),i=s(),a=_(),u=ue(),{t:d}=p(),f=y(),m=re(),h=te(),{setServiceContext:g}=v(),x=k(()=>r.params.id);n(x,e=>g(e),{immediate:!0}),S(()=>g(null));let C=k(()=>{let e=r.params.tab;return e===`terminal`||e===`metrics`||e===`config`||e===`git`||e===`wiki`?e:`terminal`}),w=k(()=>f.getById(x.value)),T=k(()=>m.getByService(x.value)),ee=k(()=>h.currentProject?.id??``);function E(e){let t=f.getById(e);u.require({message:d(`serviceDetail.deleteConfirmMessage`,{name:t?.name??e}),header:d(`serviceDetail.deleteConfirmHeader`),icon:`pi pi-exclamation-triangle`,rejectLabel:d(`actions.cancel`),acceptLabel:d(`actions.delete`),acceptProps:{severity:`danger`},accept:async()=>{await f.remove(e)&&(a.add({severity:`success`,summary:d(`serviceDetail.removed`),detail:d(`serviceDetail.deleted`),life:3e3}),i.push(`/`))}})}return(e,n)=>w.value?(o(),t(`div`,Fl,[C.value===`terminal`?(o(),M(Ft,{key:`terminal-`+x.value,service:w.value,processes:T.value},null,8,[`service`,`processes`])):C.value===`metrics`?(o(),M(Kt,{key:`metrics-`+x.value,service:w.value,processes:T.value},null,8,[`service`,`processes`])):C.value===`config`?(o(),M(Pl,{key:`config-`+x.value,service:w.value,"project-id":ee.value,onRemoveService:E},null,8,[`service`,`project-id`])):C.value===`git`?(o(),M(l,{key:`git-`+x.value,"service-id":x.value},null,8,[`service-id`])):C.value===`wiki`?(o(),M(He,{key:`wiki-`+x.value,scope:`service:${x.value}`},null,8,[`scope`])):b(``,!0)])):(o(),t(`div`,Il,[O(`p`,null,j(H(d)(`serviceDetail.notFound`)),1)]))}}),[[`__scopeId`,`data-v-e3e9fe7f`]]);export{Ll as default};
@@ -1 +0,0 @@
1
- import{$ as e,$r as t,At as n,Ci as r,Di as i,Dn as ee,En as te,In as ne,J as re,Kr as a,Mn as ie,Q as ae,Qr as o,R as oe,Ur as s,Vt as c,Wi as se,Wr as l,Xr as u,Yr as d,Z as ce,Zi as f,Zt as p,c as le,ii as m,ki as ue,la as h,mn as g,oi as _,on as v,sa as de,un as y,va as b}from"./index-BPW4FgHw.js";import{n as x}from"./plus-s_OJLoyY.js";import{t as fe}from"./fieldset-B9fGvXQ_.js";import{n as pe,t as me}from"./autocomplete-N91is6wh.js";import{t as S}from"./divider-B8p6MBJX.js";var he={class:`service-form-page`},ge={class:`page-header`},_e={key:0,class:`restart-banner`},ve={key:1,class:`loading-container`},ye={class:`form-section`},be={class:`form-group`},C={for:`svc-project`},w={class:`form-hint`},T={class:`form-group`},E={for:`svc-agent`},D={class:`form-hint`},O={class:`form-group`},k={for:`svc-name`},A={class:`form-hint`},j={class:`form-actions`},M={class:`form-section`},N={class:`form-row`},xe={class:`form-group flex-1`},Se={for:`svc-name-edit`},Ce={class:`form-group`,style:{width:`160px`}},we={for:`svc-runner`},Te={class:`form-group`},Ee={for:`svc-agent-edit`},De={class:`form-hint`},Oe={class:`form-row`},ke={class:`form-group flex-1`},Ae={for:`svc-cwd`},je={class:`form-group`,style:{"min-width":`200px`}},Me={for:`svc-ports`},Ne={class:`form-group switch-group`},Pe={for:`svc-autorestart`},Fe={class:`form-section`},Ie={class:`section-header`},Le={key:0,class:`empty-env`},Re={class:`form-group`},ze={for:`hc-path`},Be={class:`form-row`},Ve={class:`form-group flex-1`},He={for:`hc-interval`},Ue={class:`form-group flex-1`},We={for:`hc-timeout`},Ge={class:`form-group flex-1`},Ke={for:`hc-retries`},P=`__inherit__`,F=y(_({__name:`ServiceFormPage`,props:{id:{}},setup(_){let y=_,F=ee(),qe=te(),I=ie(),L=ce(),R=ae(),z=re(),B=n(),Je=le(),{t:V}=ne(),H=d(()=>!!y.id),U=d(()=>qe.query.projectId),W=h(!1),G=h(!1),K=h(null),q=h(null),J=h(!1),Y=de({projectId:``,agentId:P,name:``,cwd:``,ports:[],runner:`native`,autoRestart:!1,healthCheck:{enabled:!1,path:``,interval:3e4,timeout:5e3,retries:3}}),X=h([]),Ye=[{label:`Native`,value:`native`},{label:`Docker`,value:`docker`}],Xe=d(()=>L.projects.map(e=>({label:e.name,value:e.id}))),Z=d(()=>[{label:V(`serviceForm.agentInherit`),value:P},...z.agents.map(e=>({label:`${e.config.name} ${e.status.connected?`(Online)`:`(Offline)`}`,value:e.config.id}))]);function Q(){X.value=[...X.value,{key:``,value:``,isSecret:!1}]}function Ze(e){X.value=X.value.filter((t,n)=>n!==e)}function Qe(){let e={},t=!1;for(let n of X.value){let r=n.key.trim();r&&(e[r]={value:{value:n.value,pre:``,post:``,isSecret:n.isSecret}},t=!0)}return t?e:void 0}async function $e(){if(y.id){W.value=!0;try{let e=await c.service.get.query({id:y.id});Y.agentId=e.agentId??P,Y.name=e.name,Y.cwd=e.cwd??``,Y.ports=(e.ports??[]).map(String),Y.runner=e.runner,Y.autoRestart=e.autoRestart,e.healthCheck&&(Y.healthCheck.enabled=!0,Y.healthCheck.path=e.healthCheck.path,Y.healthCheck.interval=e.healthCheck.interval,Y.healthCheck.timeout=e.healthCheck.timeout,Y.healthCheck.retries=e.healthCheck.retries),e.variables&&typeof e.variables==`object`&&Object.keys(e.variables).length>0&&(X.value=Object.entries(e.variables).map(([e,t])=>{let n=t;return{key:e,value:n.value.value??``,isSecret:n.value.isSecret??!1}}))}catch(t){I.add({severity:`error`,summary:V(`serviceForm.error`),detail:e(t)??V(`serviceForm.failedToLoad`),life:5e3}),F.back()}finally{W.value=!1}}}async function $(){if(!(!H.value||!y.id||G.value||W.value)){if(!Y.name.trim()){I.add({severity:`warn`,summary:V(`serviceForm.validation`),detail:V(`serviceForm.nameRequired`),life:3e3});return}G.value=!0;try{let e={agentId:Y.agentId===P?null:Y.agentId||null,name:Y.name.trim(),cwd:Y.cwd.trim()||void 0,ports:Y.ports.map(Number).filter(e=>e>0&&e<=65535),runner:Y.runner,autoRestart:Y.autoRestart,variables:Qe(),healthCheck:Y.healthCheck.enabled?{path:Y.healthCheck.path,interval:Y.healthCheck.interval,timeout:Y.healthCheck.timeout,retries:Y.healthCheck.retries}:void 0};(await c.service.update.mutate({id:y.id,...e}))?.stoppedForAgentChange?(K.value=e.agentId,q.value=y.id,I.add({severity:`warn`,summary:V(`serviceForm.saved`),detail:V(`serviceForm.agentChangedServiceStopped`),life:4e3})):I.add({severity:`success`,summary:V(`serviceForm.saved`),life:1500})}catch(t){I.add({severity:`error`,summary:V(`serviceForm.error`),detail:e(t)??V(`serviceForm.failedToSave`),life:5e3})}finally{G.value=!1}}}async function et(){if(!(!K.value||!q.value)){J.value=!0;try{await Je.start(K.value,q.value),K.value=null,q.value=null,I.add({severity:`success`,summary:V(`serviceForm.restarted`),life:2e3})}catch(t){I.add({severity:`error`,summary:V(`serviceForm.error`),detail:e(t),life:5e3})}finally{J.value=!1}}}async function tt(){if(!Y.name.trim()){I.add({severity:`warn`,summary:V(`serviceForm.validation`),detail:V(`serviceForm.nameRequired`),life:3e3});return}if(!Y.projectId){I.add({severity:`warn`,summary:V(`serviceForm.validation`),detail:V(`serviceForm.projectRequired`),life:3e3});return}G.value=!0;try{let e=await R.create({name:Y.name.trim(),...Y.agentId&&Y.agentId!==P?{agentId:Y.agentId}:{}});if(!e)throw Error(R.error??`Failed to create service`);await L.addService(Y.projectId,e.id),I.add({severity:`success`,summary:V(`serviceForm.serviceCreated`),detail:V(`serviceForm.configureAfterCreate`),life:3e3}),F.push({name:`service-detail`,params:{id:e.id,tab:`config`}})}catch(t){I.add({severity:`error`,summary:V(`serviceForm.error`),detail:e(t)??V(`serviceForm.failedToSave`),life:5e3})}finally{G.value=!1}}return r(async()=>{await Promise.all([L.fetchAll(),z.fetchAll()]),U.value?Y.projectId=U.value:!Y.projectId&&B.activeProjectId&&(Y.projectId=B.activeProjectId),H.value&&await $e()}),(e,n)=>(i(),t(`div`,he,[u(`div`,ge,[m(b(g),{icon:`pi pi-arrow-left`,severity:`secondary`,text:``,rounded:``,onClick:n[0]||=e=>b(F).back()}),u(`h1`,null,f(H.value?b(V)(`serviceForm.editTitle`):b(V)(`serviceForm.createTitle`)),1)]),q.value?(i(),t(`div`,_e,[u(`span`,null,f(b(V)(`serviceForm.agentChangedServiceStopped`)),1),m(b(g),{label:b(V)(`serviceForm.restartNow`),icon:`pi pi-play`,severity:`warning`,size:`small`,loading:J.value,onClick:et},null,8,[`label`,`loading`]),m(b(g),{icon:`pi pi-times`,severity:`secondary`,text:``,rounded:``,size:`small`,onClick:n[1]||=e=>{q.value=null,K.value=null}})])):o(``,!0),W.value?(i(),t(`div`,ve,[m(b(oe))])):(i(),t(`form`,{key:2,class:`service-form`,onSubmit:l(tt,[`prevent`])},[H.value?(i(),t(a,{key:1},[u(`div`,M,[u(`div`,N,[u(`div`,xe,[u(`label`,Se,f(b(V)(`serviceForm.nameLabelShort`)),1),m(b(v),{id:`svc-name-edit`,modelValue:Y.name,"onUpdate:modelValue":n[6]||=e=>Y.name=e,placeholder:`my-service`,class:`w-full`,onBlur:$,onKeydown:s(l($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),u(`div`,Ce,[u(`label`,we,f(b(V)(`serviceForm.runnerLabel`)),1),m(b(p),{id:`svc-runner`,modelValue:Y.runner,"onUpdate:modelValue":n[7]||=e=>Y.runner=e,options:Ye,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`])])]),u(`div`,Te,[u(`label`,Ee,f(b(V)(`serviceForm.agentLabel`)),1),m(b(p),{id:`svc-agent-edit`,modelValue:Y.agentId,"onUpdate:modelValue":n[8]||=e=>Y.agentId=e,options:Z.value,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`,`options`]),u(`small`,De,f(b(V)(`serviceForm.agentHintEdit`)),1)]),u(`div`,Oe,[u(`div`,ke,[u(`label`,Ae,f(b(V)(`serviceForm.cwdLabel`)),1),m(b(v),{id:`svc-cwd`,modelValue:Y.cwd,"onUpdate:modelValue":n[9]||=e=>Y.cwd=e,placeholder:`.`,class:`w-full`,onBlur:$,onKeydown:s(l($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),u(`div`,je,[u(`label`,Me,f(b(V)(`serviceForm.portsLabel`)),1),m(b(me),{inputId:`svc-ports`,modelValue:Y.ports,"onUpdate:modelValue":n[10]||=e=>Y.ports=e,multiple:``,typeahead:!1,placeholder:b(V)(`serviceForm.portsPlaceholder`),class:`w-full`,onChange:$},null,8,[`modelValue`,`placeholder`])])]),u(`div`,Ne,[m(b(pe),{modelValue:Y.autoRestart,"onUpdate:modelValue":n[11]||=e=>Y.autoRestart=e,inputId:`svc-autorestart`,onChange:$},null,8,[`modelValue`]),u(`label`,Pe,f(b(V)(`serviceForm.autoRestart`)),1)])]),m(b(S)),u(`div`,Fe,[u(`div`,Ie,[u(`h3`,null,f(b(V)(`serviceForm.envVars`)),1),m(b(g),{label:b(V)(`serviceForm.addEnvVar`),icon:`pi pi-plus`,severity:`secondary`,size:`small`,onClick:Q},null,8,[`label`])]),X.value.length===0?(i(),t(`div`,Le,[u(`small`,null,f(b(V)(`serviceForm.noEnvVars`)),1)])):o(``,!0),(i(!0),t(a,null,ue(X.value,(e,r)=>(i(),t(`div`,{key:r,class:`env-row`},[m(b(v),{modelValue:e.key,"onUpdate:modelValue":t=>e.key=t,placeholder:`KEY`,class:`env-key`,onBlur:$,onKeydown:s(l($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),n[17]||=u(`span`,{class:`env-eq`},`=`,-1),m(b(v),{modelValue:e.value,"onUpdate:modelValue":t=>e.value=t,placeholder:`value`,class:`env-value`,onBlur:$,onKeydown:s(l($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),m(b(g),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:()=>{Ze(r),$()}},null,8,[`onClick`])]))),128))]),m(b(S)),m(b(fe),{legend:b(V)(`serviceForm.healthCheck`),toggleable:!0,collapsed:!Y.healthCheck.enabled,onToggle:n[16]||=e=>{Y.healthCheck.enabled=!e.value,$()}},{default:se(()=>[u(`div`,Re,[u(`label`,ze,f(b(V)(`serviceForm.healthCheckPath`)),1),m(b(v),{id:`hc-path`,modelValue:Y.healthCheck.path,"onUpdate:modelValue":n[12]||=e=>Y.healthCheck.path=e,placeholder:`/health`,class:`w-full`,onBlur:$,onKeydown:s(l($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),u(`div`,Be,[u(`div`,Ve,[u(`label`,He,f(b(V)(`serviceForm.interval`)),1),m(b(x),{id:`hc-interval`,modelValue:Y.healthCheck.interval,"onUpdate:modelValue":n[13]||=e=>Y.healthCheck.interval=e,min:1e3,step:1e3,class:`w-full`,onBlur:$,onKeydown:s(l($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),u(`div`,Ue,[u(`label`,We,f(b(V)(`serviceForm.timeout`)),1),m(b(x),{id:`hc-timeout`,modelValue:Y.healthCheck.timeout,"onUpdate:modelValue":n[14]||=e=>Y.healthCheck.timeout=e,min:500,step:500,class:`w-full`,onBlur:$,onKeydown:s(l($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),u(`div`,Ge,[u(`label`,Ke,f(b(V)(`serviceForm.retries`)),1),m(b(x),{id:`hc-retries`,modelValue:Y.healthCheck.retries,"onUpdate:modelValue":n[15]||=e=>Y.healthCheck.retries=e,min:0,max:20,class:`w-full`,onBlur:$,onKeydown:s(l($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])])]),_:1},8,[`legend`,`collapsed`]),m(b(S))],64)):(i(),t(a,{key:0},[u(`div`,ye,[u(`div`,be,[u(`label`,C,f(b(V)(`serviceForm.projectLabel`)),1),m(b(p),{id:`svc-project`,modelValue:Y.projectId,"onUpdate:modelValue":n[2]||=e=>Y.projectId=e,options:Xe.value,optionLabel:`label`,optionValue:`value`,placeholder:b(V)(`serviceForm.projectPlaceholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),u(`small`,w,f(b(V)(`serviceForm.projectHint`)),1)]),u(`div`,T,[u(`label`,E,f(b(V)(`serviceForm.agentLabel`)),1),m(b(p),{id:`svc-agent`,modelValue:Y.agentId,"onUpdate:modelValue":n[3]||=e=>Y.agentId=e,options:Z.value,optionLabel:`label`,optionValue:`value`,placeholder:b(V)(`serviceForm.agentInherit`),"show-clear":``,class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),u(`small`,D,f(b(V)(`serviceForm.agentHint`)),1)]),u(`div`,O,[u(`label`,k,f(b(V)(`serviceForm.nameLabel`)),1),m(b(v),{id:`svc-name`,modelValue:Y.name,"onUpdate:modelValue":n[4]||=e=>Y.name=e,placeholder:`my-service`,class:`w-full`},null,8,[`modelValue`]),u(`small`,A,f(b(V)(`serviceForm.nameConfigHint`)),1)])]),m(b(S)),u(`div`,j,[m(b(g),{label:b(V)(`serviceForm.cancel`),severity:`secondary`,text:``,onClick:n[5]||=e=>b(F).back()},null,8,[`label`]),m(b(g),{label:b(V)(`serviceForm.create`),icon:`pi pi-check`,loading:G.value,type:`submit`},null,8,[`label`,`loading`])])],64))],32))]))}}),[[`__scopeId`,`data-v-fb2efeb4`]]);export{F as default};
@@ -1 +0,0 @@
1
- .service-form-page[data-v-fb2efeb4]{max-width:800px;margin:0 auto;padding:1.5rem}.page-header[data-v-fb2efeb4]{align-items:center;gap:.5rem;margin-bottom:1.5rem;display:flex}.page-header h1[data-v-fb2efeb4]{margin:0;font-size:1.5rem;font-weight:700}.restart-banner[data-v-fb2efeb4]{background:var(--p-yellow-100,#fef3c7);border:1px solid var(--p-yellow-400,#f59e0b);color:var(--p-yellow-900,#78350f);border-radius:6px;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem;display:flex}.restart-banner span[data-v-fb2efeb4]{flex:1}.loading-container[data-v-fb2efeb4]{justify-content:center;padding:3rem 0;display:flex}.service-form[data-v-fb2efeb4]{flex-direction:column;gap:0;display:flex}.form-section[data-v-fb2efeb4]{flex-direction:column;gap:1rem;display:flex}.section-header[data-v-fb2efeb4]{justify-content:space-between;align-items:center;display:flex}.section-header h3[data-v-fb2efeb4]{margin:0;font-size:1.05rem;font-weight:600}.form-row[data-v-fb2efeb4]{align-items:flex-start;gap:1rem;display:flex}.flex-1[data-v-fb2efeb4]{flex:1}.form-group[data-v-fb2efeb4]{flex-direction:column;gap:.3rem;display:flex}.form-group label[data-v-fb2efeb4]{font-size:.875rem;font-weight:500}.form-hint[data-v-fb2efeb4]{color:var(--p-text-muted-color);font-size:.78rem}.switch-group[data-v-fb2efeb4]{flex-direction:row;align-items:center;gap:.6rem}.switch-group label[data-v-fb2efeb4]{font-weight:400}.w-full[data-v-fb2efeb4]{width:100%}.empty-env[data-v-fb2efeb4]{text-align:center;color:var(--p-text-muted-color);border:1px dashed var(--p-content-border-color);border-radius:6px;padding:.75rem}.env-row[data-v-fb2efeb4]{align-items:center;gap:.5rem;display:flex}.env-key[data-v-fb2efeb4]{width:200px;font-family:Fira Code,Cascadia Code,monospace;font-size:.85rem}.env-eq[data-v-fb2efeb4]{color:var(--p-text-muted-color);font-weight:700}.env-value[data-v-fb2efeb4]{flex:1;font-family:Fira Code,Cascadia Code,monospace;font-size:.85rem}.form-actions[data-v-fb2efeb4]{justify-content:flex-end;gap:.5rem;padding-top:.5rem;display:flex}
@@ -1 +0,0 @@
1
- import{Di as e,Zr as t,oi as n}from"./index-BPW4FgHw.js";import"./src-G9u1k3Z0.js";import"./w3c-keyname-B2B-WOb1.js";import{t as r}from"./WikiView-CJDAiZr5.js";var i=n({__name:`WikiPage`,setup(n){return(n,i)=>(e(),t(r,{scope:`global`}))}});export{i as default};
@@ -1 +0,0 @@
1
- import{In as e}from"./index-BPW4FgHw.js";function t(){let{t,te:n}=e();return(e,r)=>e&&n(`authErrors.${e}`)?t(`authErrors.${e}`):e?t(`authErrors.default`):r}export{t};
@@ -1 +0,0 @@
1
- import{At as e,Bi as t,Yr as n,Z as r,f as i,jr as a,p as o,v as s,x as c}from"./index-BPW4FgHw.js";import{t as l}from"./cloud-session-BSsRB6P3.js";import{i as u,r as d}from"./src-BNgzvl34.js";import{t as f}from"./auth-errors-B3tAiztt.js";const p=a(`cloud-chat`,()=>{let{user:a}=l(),p=n(()=>!!a.value),m=c(o,f());t(()=>a.value?.id,e=>{e&&m.refresh()},{immediate:!0});let h=r(),g=e(),_=n(()=>{let e=g.activeProjectId??h.projects[0]?.id;return e?h.getById(e)?.orgId??null:null}),v=s(o,n(()=>{let e=m.organizations.value;if(!e.length)return``;let t=_.value;return t&&e.some(e=>e.id===t)?t:e[0].id}),{streamUrl:i}),y=n(()=>Object.values(v.unread.value).reduce((e,t)=>e+t,0));d(o);let b=0,x=!1;t(y,e=>{x&&e>b&&u(),b=e,x=!0},{immediate:!0});function S(){v.unread.value={}}function C(e){v.unread.value[e]&&(v.unread.value={...v.unread.value,[e]:0})}return{connected:p,unreadCount:y,clearUnread:S,noteChannelRead:C}});export{p as t};
@@ -1 +0,0 @@
1
- import{n as e,r as t,t as n}from"./interface-content-folder.svg-BHyjskUa.js";export{n as default,e as interface_content_folder_exports,t as render};
@@ -1 +0,0 @@
1
- import"./w3c-keyname-B2B-WOb1.js";import{s as e}from"./add-scalar-classes-pA8osZfz.js";import{n as t,t as n}from"./modal-kvCAAvat.js";import"./browser-SZtn0i0X.js";export{n as createApiClientModal};
@@ -1 +0,0 @@
1
- import{c as e}from"./index-BPW4FgHw.js";export{e as useProcessStore};
@@ -1 +0,0 @@
1
- import{o as e}from"./index-BPW4FgHw.js";export{e as router};
@@ -1 +0,0 @@
1
- import{Bt as e,Vt as t,zt as n}from"./index-BPW4FgHw.js";export{t as trpc};
@@ -1 +0,0 @@
1
- import{Ot as e}from"./index-BPW4FgHw.js";export{e as useAiChatDrawer};
@@ -1 +0,0 @@
1
- import{$r as e,Ai as t,At as n,B as r,Bi as i,Di as a,Dn as o,En as s,Gi as c,Ji as l,Kr as u,Mi as d,Qr as f,Ur as p,Wi as m,Wr as h,Xi as g,Xr as _,Xt as ee,Yr as v,Z as y,Zi as b,Zr as x,Zt as te,en as S,fn as ne,gi as C,ii as w,in as T,jn as re,ki as E,la as D,mn as O,oi as k,on as ie,p as A,ri as j,sa as M,tn as ae,un as oe,va as N,x as P,yi as se,z as ce}from"./index-BPW4FgHw.js";import{t as F}from"./cloud-session-BSsRB6P3.js";import{t as le}from"./auth-errors-B3tAiztt.js";import{t as ue}from"./checkbox-B_GT2gG5.js";import{t as de}from"./card-COABLB3K.js";import{t as fe}from"./multiselect-BJUl25Yx.js";import{a as pe,i as me,n as he,r as ge,t as _e}from"./tabpanel-C_MAwvD8.js";import{t as ve}from"./src-G9u1k3Z0.js";var I={key:0,class:`kb-files__thumb`},ye=[`src`,`alt`],be={key:1,class:`pi pi-file kb-files__icon`},xe=[`title`,`onClick`],Se=[`title`],Ce={class:`kb-files__size`},we=[`title`,`onClick`],Te=oe(k({__name:`AttachmentList`,props:{files:{},preview:{},openable:{type:Boolean,default:!0},removable:{type:Boolean,default:!1},removeLabel:{default:``},compact:{type:Boolean,default:!1}},emits:[`open`,`remove`],setup(t,{emit:n}){let r=n;function i(e){return e<1024?`${e} B`:e<1024*1024?`${Math.round(e/1024)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}return(n,o)=>t.files.length?(a(),e(`ul`,{key:0,class:l([`kb-files`,{"kb-files--inline":t.compact}])},[(a(!0),e(u,null,E(t.files,(n,s)=>(a(),e(`li`,{key:n.id,class:`kb-files__item`},[t.preview(n)?(a(),e(`span`,I,[_(`img`,{src:t.preview(n),alt:n.name},null,8,ye)])):(a(),e(`i`,be)),t.openable?(a(),e(`button`,{key:2,class:`kb-files__name`,title:n.name,onClick:h(e=>r(`open`,n),[`stop`])},b(n.name),9,xe)):(a(),e(`span`,{key:3,class:`kb-files__name kb-files__name--static`,title:n.name},b(n.name),9,Se)),_(`span`,Ce,b(i(n.size)),1),t.removable?(a(),e(`button`,{key:4,class:`kb-files__remove`,title:t.removeLabel,onClick:h(e=>r(`remove`,s),[`stop`])},[...o[0]||=[_(`i`,{class:`pi pi-times`},null,-1)]],8,we)):f(``,!0)]))),128))],2)):f(``,!0)}}),[[`__scopeId`,`data-v-f30e50ba`]]),Ee={key:0,class:`kb-upload`},L={key:0,class:`kb-upload__list`},De=[`title`],Oe={class:`kb-upload__bar`},R={class:`kb-upload__pct`},z={key:1,class:`kb-upload__status`},ke={key:2,class:`kb-upload__errors`},Ae=oe(k({__name:`UploadProgress`,props:{queue:{},errors:{},uploading:{type:Boolean,default:!1},uploadingLabel:{default:``}},setup(t){return(n,r)=>t.queue.length||t.errors.length||t.uploading&&!t.queue.length?(a(),e(`div`,Ee,[t.queue.length?(a(),e(`ul`,L,[(a(!0),e(u,null,E(t.queue,t=>(a(),e(`li`,{key:t.key},[_(`span`,{class:`kb-upload__name`,title:t.name},b(t.name),9,De),_(`span`,Oe,[_(`span`,{class:`kb-upload__bar-fill`,style:g({width:`${Math.round(t.ratio*100)}%`})},null,4)]),_(`span`,R,b(Math.round(t.ratio*100))+`%`,1)]))),128))])):t.uploading?(a(),e(`p`,z,b(t.uploadingLabel),1)):f(``,!0),t.errors.length?(a(),e(`ul`,ke,[(a(!0),e(u,null,E(t.errors,(t,n)=>(a(),e(`li`,{key:n},b(t.name)+` — `+b(t.reason),1))),128))])):f(``,!0)])):f(``,!0)}}),[[`__scopeId`,`data-v-06e54521`]]),je={class:`kb-header`},Me={class:`kb-header__search`},Ne={key:0,class:`kb-header__readonly`},Pe={key:1,class:`kb-header__saving`},Fe={class:`kb-board`},Ie=[`data-col-id`,`draggable`,`onDragstart`,`onDragover`,`onDragleave`,`onDrop`,`onTouchstart`],Le=[`title`,`onClick`],Re={class:`kb-col__count`},ze={key:0,class:`pi pi-bell kb-col__bell--on`},Be={key:1,class:`kb-col__header`},Ve=[`value`,`readonly`,`onBlur`],He={class:`kb-col__header-right`},Ue={class:`kb-col__count`},We=[`onClick`],Ge={key:3,class:`kb-col__cards`},Ke=[`data-card-id`,`draggable`,`onDragstart`,`onDragover`,`onTouchstart`,`onClick`],qe={class:`kb-card__top`},Je={class:`kb-card__title`},Ye={class:`kb-card__actions`},Xe=[`onClick`],Ze={key:0,class:`kb-card__assignees`},Qe=[`title`],$e=[`src`,`onError`],et={key:1,class:`kb-card__badges`},tt={key:0,class:`pi pi-align-left`},nt={key:1,class:`kb-card__img-badge`},rt={key:2,class:`kb-card__img-badge`},it={key:0,class:`kb-col__empty`},at=[`onClick`],ot={class:`kb-subscribe__lead`},st={class:`kb-subscribe__legend`},ct={class:`kb-subscribe__options`},lt={class:`kb-subscribe__no`},ut={class:`kb-subscribe__legend`},dt={class:`kb-subscribe__options`},ft={class:`kb-subscribe__channels`},pt={class:`kb-tpl-intro`},mt={class:`kb-tpl-list`},ht=[`onClick`],gt={key:0,class:`kb-add-col`},_t={key:0,class:`kb-add-col__form`},vt={class:`kb-add-col__actions`},yt={key:0,class:`kb-dialog`},bt={class:`kb-dialog__main`},xt={class:`kb-dialog__edit-content`},St={class:`kb-dialog__field`},Ct={for:`kanban-card-title`,class:`kb-dialog__label`},wt={class:`kb-dialog__field`},Tt={for:`kanban-card-content`,class:`kb-dialog__label`},Et={class:`kb-dialog__field`},Dt={for:`kanban-card-images`,class:`kb-dialog__label`},Ot={key:0,class:`kb-dialog__images`},kt=[`src`],At=[`onClick`],jt={key:1,class:`kb-dialog__upload`},Mt={class:`kb-comments`},Nt={key:0,class:`kb-comments__empty`},Pt={key:1,class:`kb-comments__list`},Ft=[`onClick`],It={key:0,class:`pi pi-sparkles`},Lt=[`src`,`onError`],Rt={key:3,class:`pi pi-user`},zt={class:`kb-comments__body`},Bt={class:`kb-comments__meta`},Vt={class:`kb-comments__author`},Ht={class:`kb-comments__time`},Ut={key:0,class:`kb-comments__edited`},Wt={key:1,class:`kb-comments__tools`},Gt=[`title`,`onClick`],Kt=[`title`,`onClick`],qt={class:`kb-comments__actions`},Jt=[`onClick`,`innerHTML`],Yt=[`onClick`],Xt=[`onKeydown`],Zt={class:`kb-comments__actions`},Qt=[`title`],$t={class:`kb-comments__hint`},en={class:`kb-history`},tn={key:0,class:`kb-history__empty`},nn={key:1,class:`kb-history__timeline`},rn=[`onClick`],an={class:`kb-history__icon`},on={class:`kb-history__body`},sn={class:`kb-history__label`},cn={key:0,class:`pi pi-external-link`,style:{"font-size":`0.625rem`,"margin-left":`0.25rem`}},ln={key:0,class:`kb-history__detail`},un={class:`kb-history__time`},dn={class:`kb-side`},fn={key:0,class:`kb-side__block`},pn={class:`kb-side__label`},mn=[`title`],hn=[`src`,`onError`],gn={class:`kb-assignee`},_n=[`src`,`onError`],vn={class:`kb-side__hint`},yn={class:`kb-side__block`},bn={class:`kb-side__label`},xn={class:`kb-side__block kb-side__meta`},Sn={key:0},Cn={key:1,class:`kb-side__block`},wn={class:`kb-side__label`},Tn={class:`kb-side__convs`},En=[`title`,`onClick`],Dn={class:`kb-side__conv-label`},On={key:2,class:`kb-side__block`},kn={class:`kb-side__label`},An={class:`kb-side__actions`},jn={key:3,class:`kb-side__block kb-side__danger`},Mn={class:`kb-dialog__footer`},Nn={key:0,class:`kb-dialog__unsaved`},Pn={key:0,class:`kb-viewer`},Fn=[`src`,`alt`],In=[`src`,`title`],Ln=[`src`],Rn=[`src`],zn={key:4,class:`kb-viewer__text`},Bn={key:0,class:`kb-colmenu`},Vn={class:`kb-colmenu__host`},Hn=512*1024,Un=55*1024*1024,Wn=5*1024*1024,Gn=400,Kn=8,qn=60,Jn=12,B=oe(k({__name:`KanbanBoard`,props:{columns:{},name:{},readOnly:{type:Boolean,default:!1},saving:{type:Boolean,default:!1},t:{},resolveConversationId:{type:Function,default:void 0},currentUserId:{default:void 0},members:{default:()=>[]},avatarUrl:{type:Function,default:void 0},uploadImage:{type:Function,default:void 0},fetchAttachment:{type:Function,default:void 0},columnSubscriptions:{default:void 0},deleteAttachment:{type:Function,default:void 0},templates:{default:()=>[]},loadHistory:{type:Function,default:void 0},histories:{default:void 0},addComment:{type:Function,default:void 0},editComment:{type:Function,default:void 0},removeComment:{type:Function,default:void 0},moveCard:{type:Function,default:void 0}},emits:[`change`,`back`,`open-conversation`,`card-open`,`update-column-subscription`],setup(n,{expose:o,emit:s}){let y=n,S=v(()=>y.loadHistory!==void 0),T=s,k=re(),A=y.t;function ae(){if(crypto.randomUUID)return crypto.randomUUID();let e=new Uint8Array(16);crypto.getRandomValues(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e).map(e=>e.toString(16).padStart(2,`0`)).join(``);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function oe(e){return JSON.parse(JSON.stringify(e))}let P=D(oe(y.columns));i(()=>y.columns,e=>{P.value=oe(e),pr()});function F(e){P.value=e,T(`change`,e)}let le=D(``),de=D(!1),I=D(``),ye=v(()=>[...P.value].sort((e,t)=>e.order-t.order).map(e=>({...e,cards:[...e.cards].sort((e,t)=>e.order-t.order)}))),be=v(()=>{let e=le.value.trim().toLowerCase();return e?ye.value.map(t=>({...t,cards:t.cards.filter(t=>t.title.toLowerCase().includes(e)||t.markdown&&t.markdown.toLowerCase().includes(e))})):ye.value});function xe(e){return P.value.find(t=>t.id===e)?.title??``}function Se(e,t,n){e.history=[...e.history??[],{type:t,timestamp:new Date().toISOString(),detail:n}]}function Ce(){y.readOnly||!I.value.trim()||(F([...P.value,{id:ae(),title:I.value.trim(),order:P.value.length,cards:[]}]),I.value=``,de.value=!1)}function we(e){if(y.readOnly)return;let t=P.value.find(t=>t.id===e);k.require({message:A(`column.confirmDeleteMessage`,{title:t?.title??``,count:t?.cards.length??0}),header:A(`column.confirmDeleteHeader`),icon:`pi pi-trash`,acceptClass:`p-button-danger`,accept:()=>F(P.value.filter(t=>t.id!==e))})}function Ee(e,t){y.readOnly||!t.trim()||F(P.value.map(n=>n.id===e?{...n,title:t.trim()}:n))}let L=D(null),De=D(``),Oe=D(``),R=D([]),z=D([]),ke=D(!1),B=D([]),V=D([]),Yn=0,H=D([]),Xn=M(new Map),Zn=D([]),Qn=D(``),$n=D(`edit`),U=D(``),W=D([]),er=D(null),tr=D(null),G=D(null),nr=D(``);async function rr(){await C(),tr.value?.scrollIntoView({block:`end`})}i(L,e=>T(`card-open`,e));let ir=D(null),ar=D(`bottom`);function or(e,t=`bottom`){if(!y.readOnly){if(ar.value=t,y.templates.length===0){cr(e,``);return}ir.value=e}}function sr(e){let t=ir.value;ir.value=null,t&&cr(t,e?.content??``)}function cr(e,t){let n=P.value.find(t=>t.id===e);if(!n)return;let r=new Date().toISOString();lr(e,{id:ae(),title:A(`card.defaultTitle`),markdown:t,images:[],order:ar.value===`top`?0:n.cards.length,...S.value?{}:{history:[{type:`created`,timestamp:r,detail:A(`card.inColumn`,{name:xe(e)})}]},createdAt:r,updatedAt:r})}function lr(e,t){if(L.value={colId:e,card:{...t,history:[...t.history??[]]}},y.loadHistory&&P.value.some(e=>e.cards.some(e=>e.id===t.id))){let n=y.histories?.[t.id];n&&(L.value={colId:e,card:{...t,history:n}}),y.loadHistory(t.id)}De.value=t.title,Oe.value=t.markdown??``,R.value=[...t.images],z.value=[...t.attachments??[]],B.value=[],H.value=[],U.value=``,W.value=[],xr(z.value),xr((t.history??[]).flatMap(e=>e.attachments??[])),Zn.value=(t.assignees??[]).map(e=>e.id),Qn.value=e,$n.value=`edit`}i(()=>L.value?y.histories?.[L.value.card.id]:void 0,e=>{let t=L.value;!e||!t||t.card.history===e||(L.value={colId:t.colId,card:{...t.card,history:e}},xr(e.flatMap(e=>e.attachments??[])))});let ur=v(()=>{let e=L.value;return e?!P.value.some(t=>t.cards.some(t=>t.id===e.card.id)):!1}),dr=v(()=>{let e=L.value;if(!e)return!1;if(ur.value)return!0;let t=e.card,n=(e,t)=>JSON.stringify(e)===JSON.stringify(t);return De.value!==t.title||Oe.value!==(t.markdown??``)||Qn.value!==e.colId||!n(R.value,t.images)||!n(z.value,t.attachments??[])||!n(Zn.value,(t.assignees??[]).map(e=>e.id))||U.value.trim().length>0||W.value.length>0||G.value!==null});function fr(){if(!dr.value){hr();return}k.require({message:A(`editor.confirmDiscardMessage`),header:A(`editor.confirmDiscardHeader`),icon:`pi pi-exclamation-triangle`,acceptClass:`p-button-danger`,acceptLabel:A(`editor.discard`),rejectLabel:A(`editor.keepEditing`),accept:()=>hr()})}function pr(){let e=L.value;if(!e)return;let t=P.value.flatMap(e=>e.cards).find(t=>t.id===e.card.id);if(!t||t.history===void 0)return;let n=e=>`${e.type}|${e.timestamp}|${e.detail??``}`,r=new Set((t.history??[]).map(n)),i=[...t.history??[],...(e.card.history??[]).filter(e=>!r.has(n(e)))].sort((e,t)=>e.timestamp.localeCompare(t.timestamp));L.value={colId:e.colId,card:{...e.card,history:i}}}function mr(){let e=H.value;if(H.value=[],y.deleteAttachment)for(let t of e)y.deleteAttachment(t)}function hr(){L.value=null,Hr(),Ar(),Sr(),mr()}function gr(){if(y.readOnly||!L.value)return;let{colId:e,card:t}=L.value,n=De.value||A(`card.untitled`),r=S.value?[]:[...t.history??[]],i=()=>new Date().toISOString();!S.value&&n!==t.title&&t.title!==A(`card.defaultTitle`)&&r.push({type:`title_changed`,timestamp:i(),detail:`"${t.title}" → "${n}"`}),!S.value&&Oe.value!==t.markdown&&r.push({type:`edited`,timestamp:i()});let a=S.value?0:R.value.length-t.images.length;a>0?r.push({type:`image_added`,timestamp:i(),detail:`${a} image(s) added`}):a<0&&r.push({type:`image_removed`,timestamp:i(),detail:`${Math.abs(a)} image(s) removed`});let o=Zn.value.map(e=>({id:e,name:y.members.find(t=>t.userId===e)?.name??e})),s=S.value?[]:o.filter(e=>!(t.assignees??[]).some(t=>t.id===e.id));s.length&&r.push({type:`edited`,timestamp:i(),detail:A(`editor.assignedDetail`,{names:s.map(e=>e.name).join(`, `)})});let c={...t,title:n,markdown:Oe.value,images:R.value,attachments:z.value,assignees:o,history:S.value?t.history:r,updatedAt:i()},l=Qn.value||e;!S.value&&l!==e&&r.push({type:`moved`,timestamp:i(),detail:`${xe(e)} → ${xe(l)}`}),F(P.value.map(t=>{if(t.id===e&&l!==e)return{...t,cards:t.cards.filter(e=>e.id!==c.id)};if(t.id!==l)return t;if(t.cards.some(e=>e.id===c.id))return{...t,cards:t.cards.map(e=>e.id===c.id?c:e)};let n=ar.value===`top`?[c,...t.cards]:[...t.cards,c];return{...t,cards:n.map((e,t)=>({...e,order:t}))}})),H.value=[],L.value={colId:l,card:c},Qn.value=l}function _r(e,t){if(y.readOnly)return;let n=P.value.find(t=>t.id===e)?.cards.find(e=>e.id===t);k.require({message:A(`editor.confirmDeleteMessage`,{title:n?.title??``}),header:A(`editor.confirmDeleteHeader`),icon:`pi pi-trash`,acceptClass:`p-button-danger`,accept:()=>{F(P.value.map(n=>n.id===e?{...n,cards:n.cards.filter(e=>e.id!==t)}:n)),hr()}})}function vr(){if(y.readOnly||!L.value||!U.value.trim()&&!W.value.length)return;let{colId:e,card:t}=L.value,n=W.value;if(y.addComment){let e=U.value.trim(),r=t.id;U.value=``,H.value=H.value.filter(e=>!n.some(t=>t.id===e.id)),W.value=[],y.addComment(r,e,n.length?{attachments:n}:{});return}let r={type:`comment`,timestamp:new Date().toISOString(),detail:U.value.trim(),author:`user`,...n.length?{attachments:n}:{}},i=[...t.history??[],r];L.value={colId:e,card:{...t,history:i}},U.value=``,H.value=H.value.filter(e=>!n.some(t=>t.id===e.id)),W.value=[],F(P.value.map(n=>n.id===e?{...n,cards:n.cards.map(e=>e.id===t.id?{...e,history:i}:e)}:n))}let yr=/^image\/(png|jpeg|webp|gif)$/;function br(e){return Xn.get(e.id)}async function xr(e){if(y.fetchAttachment)for(let t of e){if(!yr.test(t.contentType)||Xn.has(t.id))continue;let e=await y.fetchAttachment(t);e&&Xn.set(t.id,e)}}function Sr(){for(let e of Xn.values())URL.revokeObjectURL(e);Xn.clear()}let Cr=/^video\/(mp4|webm|ogg)$/,wr=/^audio\/(mpeg|mp3|ogg|wav|x-wav|webm)$/,Tr=/^(text\/|application\/(json|xml|xhtml\+xml|javascript|x-yaml|yaml)$)/;function Er(e){let t=e.contentType||``;return yr.test(t)?`image`:t===`application/pdf`?`pdf`:Cr.test(t)?`video`:wr.test(t)?`audio`:Tr.test(t)&&e.size<=Hn?`text`:null}let K=D(null);async function Dr(e){let t=Er(e),n=Xn.get(e.id),r=n??await y.fetchAttachment?.(e)??null;if(!r){B.value=[...B.value,{name:e.name,reason:A(`editor.downloadFailed`)}];return}if(!t){Or(r,e.name,!n);return}let i;if(t===`text`)try{i=await(await fetch(r)).text()}catch{Or(r,e.name,!n);return}Ar(),K.value={file:e,url:r,kind:t,text:i,cached:!!n}}function Or(e,t,n){let r=document.createElement(`a`);r.href=e,r.download=t||`file`,r.rel=`noopener`,document.body.appendChild(r),r.click(),r.remove(),n&&setTimeout(()=>URL.revokeObjectURL(e),6e4)}function kr(){let e=K.value;e&&Or(e.url,e.file.name,!1)}function Ar(){let e=K.value;K.value=null,e&&!e.cached&&URL.revokeObjectURL(e.url)}function jr(e){z.value=z.value.filter((t,n)=>n!==e)}let Mr=M(new Set);function Nr(e){return e.split(/\s+/).filter(Boolean).slice(0,2).map(e=>e[0]?.toUpperCase()??``).join(``)}let Pr=v(()=>y.members.map(e=>({id:e.userId,label:e.name})));function Fr(e){return y.members.find(t=>t.userId===e)?.name??e}function Ir(e){let t=0;for(let n=0;n<e.length;n+=1)t=(t*31+e.charCodeAt(n))%360;return{background:`linear-gradient(135deg, hsl(${t} 62% 52%), hsl(${(t+40)%360} 62% 46%))`}}function Lr(e){return!!y.currentUserId&&e.authorUser?.id===y.currentUserId}function Rr(e){return e.author===`ai`?null:e.authorUser?.id??null}function zr(e){return e.author===`ai`?A(`comments.authorAi`):Lr(e)?A(`comments.authorYou`):e.authorUser?.name??A(`comments.authorYou`)}function Br(e){if(!L.value)return;let{colId:t,card:n}=L.value;L.value={colId:t,card:{...n,history:e}},F(P.value.map(r=>r.id===t?{...r,cards:r.cards.map(t=>t.id===n.id?{...t,history:e}:t)}:r))}function Vr(e){G.value=e.id??null,nr.value=e.detail??``}function Hr(){G.value=null,nr.value=``}function Ur(){let e=G.value,t=nr.value.trim();if(y.readOnly||!e||!t||!L.value)return;let{card:n}=L.value,r=(n.history??[]).map(n=>n.id===e?{...n,detail:t,editedAt:new Date().toISOString()}:n);if(y.editComment){let r=(n.history??[]).find(t=>t.id===e);y.editComment(n.id,e,t,r?.attachments)}else Br(r);Hr()}function Wr(e){return e.id??`${e.type}|${e.timestamp}`}function Gr(e){return e.type===`comment`&&e.author===`ai`}function Kr(e){return Lr(e)||Gr(e)}function qr(e){if(y.readOnly||!Kr(e)||!L.value)return;let t=Wr(e);k.require({message:A(`comments.confirmDeleteMessage`),header:A(`comments.confirmDeleteHeader`),icon:`pi pi-trash`,acceptClass:`p-button-danger`,accept:()=>{let n=L.value;if(!n)return;let r=(n.card.history??[]).filter(e=>Wr(e)!==t);y.removeComment&&e.id?y.removeComment(n.card.id,e.id):Br(r)}})}let Jr=v(()=>y.columnSubscriptions!==void 0),q=D(null),Yr=[`entered`,`left`,`created`,`deleted`],Xr=[`email`,`chat`],Zr=[...Yr],Qr=[...Xr],$r=D([...Zr]),ei=D([...Qr]);function ti(e){return y.columnSubscriptions?.[e]??null}function ni(e){return ti(e)!==null}let ri=M(new Set),ii=new Map,ai=null;function oi(e,t){t.scrollWidth>t.clientWidth+1||t.scrollHeight>t.clientHeight+1?ri.add(e):ri.delete(e)}function si(e,t){let n=ii.get(t);if(n&&n!==e&&ai?.unobserve(n),!(e instanceof HTMLElement)){ii.delete(t),ri.delete(t);return}ii.set(t,e),typeof ResizeObserver<`u`&&(ai??=new ResizeObserver(e=>{for(let t of e)for(let[e,n]of ii)n===t.target&&oi(e,n)}),ai.observe(e)),oi(t,e)}i(()=>P.value.map(e=>e.title).join(`\0`),()=>void C(()=>{for(let[e,t]of ii)oi(e,t)})),se(()=>ai?.disconnect());function ci(e,t){return{value:ri.has(e)?t:``,showDelay:0,hideDelay:0}}let li=D(null),ui=D(null);function di(e,t){ui.value=t,li.value?.toggle(e)}function fi(e){let t=ui.value;t&&(li.value?.hide(),e(t.id))}function pi(e){let t=ti(e);$r.value=t?[...t.kinds]:[...Zr],ei.value=t?[...t.channels]:[...Qr],q.value=e}let mi=v(()=>$r.value.length>0&&ei.value.length>0);function hi(){let e=q.value;!e||!mi.value||(T(`update-column-subscription`,{columnId:e,subscription:{kinds:[...$r.value],channels:[...ei.value]}}),q.value=null)}function gi(){let e=q.value;e&&(T(`update-column-subscription`,{columnId:e,subscription:null}),q.value=null)}let _i=v(()=>y.columns.find(e=>e.id===q.value)??null),vi=M(new Set),yi=M(new Set),bi=v(()=>`runeya.kanban.collapsedColumns.${y.name}`),xi=v(()=>`runeya.kanban.expandedColumns.${y.name}`);function Si(e,t){t.clear();try{let n=window.localStorage.getItem(e);if(!n)return;let r=JSON.parse(n);if(Array.isArray(r))for(let e of r)typeof e==`string`&&t.add(e)}catch{}}function Ci(){Si(bi.value,vi),Si(xi.value,yi)}function wi(){try{window.localStorage.setItem(bi.value,JSON.stringify([...vi])),window.localStorage.setItem(xi.value,JSON.stringify([...yi]))}catch{}}Ci(),i(bi,Ci);function Ti(e){let t=y.columns.find(t=>t.id===e);return!!t&&t.cards.length===0}function Ei(e){return vi.has(e)?!0:Ti(e)&&!yi.has(e)}function Di(e){Ei(e)?(vi.delete(e),Ti(e)&&yi.add(e)):(yi.delete(e),Ti(e)||vi.add(e)),wi()}let Oi=v(()=>(L.value?.card.history??[]).filter(e=>e.type===`comment`));i([$n,Oi],([e])=>{e===`comments`&&(rr(),Vi())}),i(()=>L.value?.card.id,()=>{Mi.clear(),Ni.clear()});function ki(e){if(/^(https?:|mailto:)/i.test(e)){window.open(e,`_blank`,`noopener,noreferrer`);return}e.startsWith(`#`)||/^\//.test(e)&&window.open(e,`_blank`,`noopener,noreferrer`)}function Ai(e){let t=(e.target?.closest(`a`))?.getAttribute(`href`);return t?(e.preventDefault(),e.stopPropagation(),ki(t),!0):!1}function ji(e){return e?ce.sanitize(r.parse(e,{async:!1}),{ALLOWED_TAGS:[`p`,`br`,`strong`,`em`,`del`,`code`,`pre`,`blockquote`,`ul`,`ol`,`li`,`h1`,`h2`,`h3`,`h4`,`a`,`span`],ALLOWED_ATTR:[`href`,`target`,`rel`,`class`]}):``}let Mi=M(new Set),Ni=M(new Set);function Pi(e,t){return e.id??`i${t}`}function Fi(e,t){return Mi.has(Pi(e,t))}function Ii(e,t){let n=Pi(e,t);return Ni.has(n)||Mi.has(n)}function Li(e,t){let n=Pi(e,t);Mi.has(n)?Mi.delete(n):Mi.add(n)}function Ri(e,t,n){Ai(n)||Ui(e)||Ii(e,t)&&(n.stopPropagation(),Li(e,t))}let zi=new Map;function Bi(e,t,n){let r=Pi(t,n);if(!(e instanceof HTMLElement)){zi.delete(r);return}zi.set(r,e),!Mi.has(r)&&(e.scrollHeight-e.clientHeight>1?Ni.add(r):Ni.delete(r))}async function Vi(){await C();for(let[e,t]of zi)Mi.has(e)||(t.scrollHeight-t.clientHeight>1?Ni.add(e):Ni.delete(e))}function Hi(e){return y.resolveConversationId?y.resolveConversationId(e):e.conversationId??null}function Ui(e){return!!Hi(e)}let Wi=v(()=>{let e=L.value?.card;if(!e)return[];let t=e.conversationEvents??e.history??[],n=new Set,r=[];for(let e of t){if(e.type!==`conversation_started`&&e.type!==`scenario_started`)continue;let t=Hi(e);if(!t||n.has(t))continue;n.add(t);let i=e.detail??``,a=i.includes(` — `)?i.slice(0,i.lastIndexOf(` — `)).trim():``,o=Ji(e.timestamp);r.push({id:t,label:o,title:a||qi.value[e.type]})}return r});function Gi(e){let t=Hi(e);t&&T(`open-conversation`,t)}let Ki={created:`pi pi-plus-circle`,edited:`pi pi-pencil`,moved:`pi pi-arrow-right-arrow-left`,image_added:`pi pi-image`,image_removed:`pi pi-trash`,title_changed:`pi pi-tag`,conversation_started:`pi pi-comments`,scenario_started:`pi pi-sitemap`,comment:`pi pi-comment`},qi=v(()=>({created:A(`history.events.created`),edited:A(`history.events.edited`),moved:A(`history.events.moved`),image_added:A(`history.events.image_added`),image_removed:A(`history.events.image_removed`),title_changed:A(`history.events.title_changed`),conversation_started:A(`history.events.conversation_started`),scenario_started:A(`history.events.scenario_started`),comment:A(`history.events.comment`)}));function Ji(e){let t=new Date(e);return`${t.toLocaleDateString()} ${t.toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`})}`}function Yi(e){return new Promise(t=>{let n=new FileReader;n.onload=()=>t(typeof n.result==`string`?n.result:null),n.onerror=()=>t(null),n.readAsDataURL(e)})}async function Xi(e){let t=[];for(let n of e){if(n.size===0){B.value=[...B.value,{name:n.name,reason:A(`editor.uploadEmpty`)}];continue}if(n.size>Un){B.value=[...B.value,{name:n.name,reason:A(`editor.uploadTooLarge`)}];continue}if(!y.uploadImage){B.value=[...B.value,{name:n.name,reason:A(`editor.uploadUnavailable`)}];continue}let e=`${Yn+=1}`;V.value=[...V.value,{key:e,name:n.name,ratio:0}];try{let r=await y.uploadImage(n,t=>{V.value=V.value.map(n=>n.key===e?{...n,ratio:t}:n)});r?(t.push(r),H.value=[...H.value,r]):B.value=[...B.value,{name:n.name,reason:A(`editor.uploadFailed`)}]}finally{V.value=V.value.filter(t=>t.key!==e)}}return t}async function Zi(e){let t=e.target;if(!t.files)return;let n=Array.from(t.files);t.value=``,ke.value=!0,B.value=[];try{let e=await Xi(n);W.value=[...W.value,...e],xr(e)}finally{ke.value=!1}}function Qi(e){W.value=W.value.filter((t,n)=>n!==e)}async function $i(e){let t=e.target;if(!t.files)return;let n=Array.from(t.files);t.value=``,ke.value=!0,B.value=[],V.value=[];try{if(y.uploadImage){let e=await Xi(n);z.value=[...z.value,...e],xr(e);return}for(let e of n){if(!e.type.startsWith(`image/`)||e.size>Wn){B.value=[...B.value,{name:e.name,reason:A(`editor.uploadUnavailable`)}];continue}let t=await Yi(e);if(!t){B.value=[...B.value,{name:e.name,reason:A(`editor.uploadFailed`)}];continue}R.value=[...R.value,t],er.value?.insertImage(t)}}finally{ke.value=!1}}function ea(e){k.require({message:A(`editor.confirmRemoveImageMessage`),header:A(`editor.confirmRemoveImageHeader`),icon:`pi pi-trash`,acceptClass:`p-button-danger`,accept:()=>{R.value=R.value.filter((t,n)=>n!==e)}})}let J=D(null),Y=D(null),X=D(null),Z=D(null),ta=D(`before`),Q=D(null),na=D(`before`),ra=D(null),$=D(null),ia=D(!1),aa=null,oa=null,sa=null,ca=D(null);function la(e,t){aa&&cancelAnimationFrame(aa);let n=ca.value?.querySelector(`.kb-board`),r=()=>{let i=!1;if(n){let t=n.getBoundingClientRect();e<t.left+qn&&n.scrollLeft>0?(n.scrollLeft-=Jn,i=!0):e>t.right-qn&&n.scrollLeft<n.scrollWidth-n.clientWidth&&(n.scrollLeft+=Jn,i=!0)}$.value&&($.value.style.display=`none`);let a=document.elementFromPoint(e,t);if($.value&&($.value.style.display=``),a){let e=a.closest(`.kb-col__cards`);if(e){let n=e.getBoundingClientRect();t<n.top+qn&&e.scrollTop>0?(e.scrollTop-=Jn,i=!0):t>n.bottom-qn&&e.scrollTop<e.scrollHeight-e.clientHeight&&(e.scrollTop+=Jn,i=!0)}}aa=i&&ia.value?requestAnimationFrame(r):null};aa=requestAnimationFrame(r)}function ua(){aa&&=(cancelAnimationFrame(aa),null)}function da(){oa&&=(clearTimeout(oa),null),sa=null}function fa(){if(!sa)return;let{type:e,colId:t,cardId:n,el:r}=sa;ra.value=e,ia.value=!0,e===`card`&&n?(J.value={colId:t,cardId:n},Y.value=null):(Y.value=t,J.value=null),navigator.vibrate&&navigator.vibrate(30);let i=e===`card`?r.closest(`.kb-card`):r.closest(`.kb-col`);if(i){let e=i.cloneNode(!0);e.style.cssText=`position:fixed;pointer-events:none;z-index:9999;opacity:0.8;width:${i.getBoundingClientRect().width}px;transform:rotate(2deg);`,document.body.appendChild(e),$.value=e}sa=null}function pa(e,t,n,r){if(y.readOnly)return;da();let i=e.touches[0],a=i.clientX,o=i.clientY;sa={type:t,colId:n,cardId:r,el:e.target};let s=e=>{let t=e.touches[0],n=t.clientX-a,r=t.clientY-o;Math.sqrt(n*n+r*r)>Kn&&(da(),document.removeEventListener(`touchmove`,s))};document.addEventListener(`touchmove`,s,{passive:!0}),oa=setTimeout(()=>{document.removeEventListener(`touchmove`,s),fa()},Gn)}function ma(e){if(!ia.value)return;e.preventDefault();let t=e.touches[0];$.value&&($.value.style.left=`${t.clientX-40}px`,$.value.style.top=`${t.clientY-20}px`),la(t.clientX,t.clientY),$.value&&($.value.style.display=`none`);let n=document.elementFromPoint(t.clientX,t.clientY);if($.value&&($.value.style.display=``),n){if(ra.value===`card`){let e=n.closest(`.kb-card`),r=n.closest(`.kb-col`);if(e&&r){let n=e.dataset.cardId||``,i=r.dataset.colId||``;if(n&&i){X.value=i,Z.value=n;let r=e.getBoundingClientRect();ta.value=t.clientY-r.top<r.height/2?`before`:`after`}}else if(r){let e=r.dataset.colId||``;e&&(X.value=e,Z.value=null)}}else if(ra.value===`column`){let e=n.closest(`.kb-col`);if(e){let n=e.dataset.colId||``;if(n&&n!==Y.value){Q.value=n;let r=e.getBoundingClientRect();na.value=t.clientX-r.left<r.width/2?`before`:`after`}}}}}function ha(){da(),ua(),$.value&&=($.value.remove(),null),ia.value&&(ra.value===`card`&&X.value?ya(X.value):ra.value===`column`&&Q.value&&wa(Q.value)),ra.value=null,ia.value=!1,_a()}function ga(e,t,n){y.readOnly||(J.value={colId:t,cardId:n},Y.value=null,e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`type`,`card`)))}function _a(){J.value=null,X.value=null,Z.value=null,Y.value=null,Q.value=null}function va(e,t,n){if(!J.value)return;e.preventDefault(),e.stopPropagation(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),X.value=t,Z.value=n;let r=e.currentTarget.getBoundingClientRect();ta.value=e.clientY-r.top<r.height/2?`before`:`after`}function ya(e){if(y.readOnly)return;if(Y.value){wa(e);return}if(!J.value)return;let{colId:t,cardId:n}=J.value,r=xe(t),i=xe(e),a=null,o=P.value.map(e=>e.id===t?(a=e.cards.find(e=>e.id===n)??null,{...e,cards:e.cards.filter(e=>e.id!==n)}):e),s=0;if(a){let n={...a};!S.value&&t!==e&&Se(n,`moved`,`"${r}" → "${i}"`),o=o.map(t=>{if(t.id!==e)return t;let r=[...t.cards].sort((e,t)=>e.order-t.order),i=r.length;if(Z.value){let e=r.findIndex(e=>e.id===Z.value);e!==-1&&(i=ta.value===`before`?e:e+1)}return s=i,r.splice(i,0,n),{...t,cards:r.map((e,t)=>({...e,order:t}))}})}if(J.value=null,X.value=null,Z.value=null,y.moveCard&&a){P.value=o,y.moveCard(a.id,e,s);return}F(o)}function ba(e,t){!J.value&&!Y.value||(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),J.value&&(X.value=t,Z.value=null))}function xa(e){X.value===e&&(X.value=null)}function Sa(e,t){y.readOnly||(Y.value=t,J.value=null,e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`type`,`column`)))}function Ca(e,t){if(!Y.value||Y.value===t)return;e.preventDefault(),e.stopPropagation(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),Q.value=t;let n=e.currentTarget.getBoundingClientRect();na.value=e.clientX-n.left<n.width/2?`before`:`after`}function wa(e){if(y.readOnly||!Y.value||Y.value===e){Y.value=null,Q.value=null;return}let t=[...P.value].sort((e,t)=>e.order-t.order),n=t.findIndex(e=>e.id===Y.value),r=t.splice(n,1)[0],i=t.findIndex(t=>t.id===e);t.splice(na.value===`before`?i:i+1,0,r),Y.value=null,Q.value=null,F(t.map((e,t)=>({...e,order:t})))}return o({openCardEditor:lr,closeCardEditor:hr,saveCard:gr,editingCard:L}),(r,i)=>{let o=d(`tooltip`);return a(),e(`div`,{ref_key:`rootEl`,ref:ca,class:`kb`},[_(`header`,je,[w(N(O),{icon:`pi pi-arrow-left`,text:``,rounded:``,size:`small`,onClick:i[0]||=e=>T(`back`)}),c((a(),e(`h1`,{class:`kb-header__title`,ref:e=>si(e,`board`)},[j(b(n.name),1)])),[[o,ci(`board`,n.name),void 0,{bottom:!0}]]),t(r.$slots,`header-actions`,{},void 0,!0),_(`span`,Me,[i[32]||=_(`i`,{class:`pi pi-search`},null,-1),w(N(ie),{modelValue:le.value,"onUpdate:modelValue":i[1]||=e=>le.value=e,placeholder:N(A)(`searchPlaceholder`),size:`small`,class:`kb-header__search-input`},null,8,[`modelValue`,`placeholder`]),le.value?(a(),x(N(O),{key:0,icon:`pi pi-times`,text:``,rounded:``,size:`small`,onClick:i[2]||=e=>le.value=``})):f(``,!0)]),n.readOnly?(a(),e(`span`,Ne,[i[33]||=_(`i`,{class:`pi pi-lock`},null,-1),j(` `+b(N(A)(`readOnly.badge`)),1)])):n.saving?(a(),e(`span`,Pe,[i[34]||=_(`i`,{class:`pi pi-spin pi-spinner`,style:{"font-size":`0.75rem`}},null,-1),j(` `+b(N(A)(`saving`)),1)])):f(``,!0)]),t(r.$slots,`banner`,{},void 0,!0),_(`div`,Fe,[(a(!0),e(u,null,E(be.value,s=>(a(),e(`div`,{key:s.id,class:l([`kb-col`,{"kb-col--collapsed":Ei(s.id),"kb-col--dragover":X.value===s.id&&!!J.value,"kb-col--dragging":Y.value===s.id,"kb-col--col-drop-before":Q.value===s.id&&na.value===`before`,"kb-col--col-drop-after":Q.value===s.id&&na.value===`after`}]),"data-col-id":s.id,draggable:!n.readOnly,onDragstart:e=>Sa(e,s.id),onDragover:e=>{Ca(e,s.id),ba(e,s.id)},onDragleave:e=>xa(s.id),onDrop:h(e=>ya(s.id),[`prevent`]),onDragend:_a,onTouchstart:e=>pa(e,`column`,s.id),onTouchmove:ma,onTouchend:ha,onContextmenu:i[6]||=h(()=>{},[`prevent`])},[Ei(s.id)?(a(),e(`button`,{key:0,class:l([`kb-col__strip`,{"kb-col__strip--empty":s.cards.length===0}]),title:N(A)(`column.expand`),onClick:e=>Di(s.id)},[i[35]||=_(`i`,{class:`pi pi-angle-double-right`},null,-1),_(`span`,Re,b(s.cards.length),1),ni(s.id)?(a(),e(`i`,ze)):f(``,!0),c((a(),e(`span`,{class:`kb-col__strip-title`,ref_for:!0,ref:e=>si(e,`strip:${s.id}`)},[j(b(s.title),1)])),[[o,ci(`strip:${s.id}`,s.title),void 0,{right:!0}]])],10,Le)):(a(),e(`div`,Be,[c(_(`input`,{class:`kb-col__title`,ref_for:!0,ref:e=>si(e,`col:${s.id}`),value:s.title,readonly:n.readOnly,draggable:`false`,onBlur:e=>Ee(s.id,e.target.value),onKeyup:i[3]||=p(e=>e.target.blur(),[`enter`]),onMousedown:i[4]||=h(()=>{},[`stop`])},null,40,Ve),[[o,ci(`col:${s.id}`,s.title),void 0,{bottom:!0}]]),_(`div`,He,[Jr.value&&ni(s.id)?c((a(),x(N(O),{key:0,icon:`pi pi-bell`,text:``,rounded:``,size:`small`,class:`kb-col__bell--on`,onClick:e=>pi(s.id)},null,8,[`onClick`])),[[o,N(A)(`column.unsubscribe`),void 0,{bottom:!0}]]):f(``,!0),c(w(N(O),{icon:`pi pi-ellipsis-v`,text:``,rounded:``,size:`small`,class:l([`kb-col__menu-btn`,{"kb-col__menu-btn--open":ui.value?.id===s.id}]),onClick:e=>di(e,s)},null,8,[`class`,`onClick`]),[[o,N(A)(`column.menu`),void 0,{bottom:!0}]]),_(`span`,Ue,b(s.cards.length),1)])])),!n.readOnly&&!Ei(s.id)?(a(),e(`button`,{key:2,class:`kb-col__add-card kb-col__add-card--top`,onClick:e=>or(s.id,`top`)},[i[36]||=_(`i`,{class:`pi pi-plus`},null,-1),j(` `+b(N(A)(`column.addCard`)),1)],8,We)):f(``,!0),Ei(s.id)?f(``,!0):(a(),e(`div`,Ge,[(a(!0),e(u,null,E(s.cards,d=>(a(),e(`div`,{key:d.id,class:l([`kb-card`,{"kb-card--drop-before":Z.value===d.id&&ta.value===`before`,"kb-card--drop-after":Z.value===d.id&&ta.value===`after`}]),"data-card-id":d.id,draggable:!n.readOnly,onDragstart:h(e=>ga(e,s.id,d.id),[`stop`]),onDragover:e=>va(e,s.id,d.id),onDragend:_a,onTouchstart:h(e=>pa(e,`card`,s.id,d.id),[`stop`]),onTouchmove:ma,onTouchend:ha,onContextmenu:i[5]||=h(()=>{},[`prevent`]),onClick:e=>lr(s.id,d)},[_(`div`,qe,[_(`span`,Je,b(d.title),1),_(`div`,Ye,[t(r.$slots,`card-actions`,{card:d,column:s},void 0,!0),n.readOnly?f(``,!0):c((a(),e(`button`,{key:0,class:`kb-card__delete`,onClick:h(e=>_r(s.id,d.id),[`stop`])},[...i[37]||=[_(`i`,{class:`pi pi-times`},null,-1)]],8,Xe)),[[o,N(A)(`card.deleteTooltip`),void 0,{bottom:!0}]])])]),d.assignees?.length?(a(),e(`div`,Ze,[(a(!0),e(u,null,E(d.assignees,t=>(a(),e(`span`,{key:t.id,class:`kb-card__avatar`,style:g(Ir(t.id)),title:t.name},[n.avatarUrl&&!Mr.has(t.id)?(a(),e(`img`,{key:0,src:n.avatarUrl(t.id),alt:``,onError:e=>Mr.add(t.id)},null,40,$e)):(a(),e(u,{key:1},[j(b(Nr(t.name)),1)],64))],12,Qe))),128))])):f(``,!0),d.markdown||d.images.length||d.commentCount||r.$slots[`card-badges`]?(a(),e(`div`,et,[d.markdown?(a(),e(`i`,tt)):f(``,!0),d.images.length?(a(),e(`span`,nt,[i[38]||=_(`i`,{class:`pi pi-image`},null,-1),j(` `+b(d.images.length),1)])):f(``,!0),d.commentCount?(a(),e(`span`,rt,[i[39]||=_(`i`,{class:`pi pi-comment`},null,-1),j(` `+b(d.commentCount),1)])):f(``,!0),t(r.$slots,`card-badges`,{card:d},void 0,!0)])):f(``,!0)],42,Ke))),128)),s.cards.length===0?(a(),e(`div`,it,b(N(A)(`column.dropZone`)),1)):f(``,!0)])),!n.readOnly&&!Ei(s.id)?(a(),e(`button`,{key:4,class:`kb-col__add-card`,onClick:e=>or(s.id)},[i[40]||=_(`i`,{class:`pi pi-plus`},null,-1),j(` `+b(N(A)(`column.addCard`)),1)],8,at)):f(``,!0)],42,Ie))),128)),w(N(ne),{visible:q.value!==null,modal:``,header:N(A)(`column.subscribeTitle`),style:{width:`30rem`},"onUpdate:visible":i[10]||=e=>{e||(q.value=null)}},{footer:m(()=>[ni(q.value??``)?(a(),x(N(O),{key:0,label:N(A)(`column.unsubscribe`),severity:`danger`,text:``,onClick:gi},null,8,[`label`])):f(``,!0),w(N(O),{label:N(A)(`editor.cancel`),text:``,onClick:i[9]||=e=>q.value=null},null,8,[`label`]),w(N(O),{label:ni(q.value??``)?N(A)(`editor.save`):N(A)(`column.subscribeConfirm`),icon:`pi pi-bell`,disabled:!mi.value,onClick:hi},null,8,[`label`,`disabled`])]),default:m(()=>[_(`p`,ot,b(N(A)(`column.subscribeIntro`,{column:_i.value?.title??``})),1),_(`p`,st,b(N(A)(`column.subscribeEventsLabel`)),1),_(`div`,ct,[(a(),e(u,null,E(Yr,e=>_(`label`,{key:e,class:`kb-subscribe__option`},[w(N(ue),{modelValue:$r.value,"onUpdate:modelValue":i[7]||=e=>$r.value=e,value:e},null,8,[`modelValue`,`value`]),_(`span`,null,b(N(A)(`column.subscribeKind.${e}`)),1)])),64))]),_(`p`,lt,[i[41]||=_(`i`,{class:`pi pi-times`},null,-1),j(` `+b(N(A)(`column.subscribeNotReorder`)),1)]),_(`p`,ut,b(N(A)(`column.subscribeChannelsLabel`)),1),_(`div`,dt,[(a(),e(u,null,E(Xr,e=>_(`label`,{key:e,class:`kb-subscribe__option`},[w(N(ue),{modelValue:ei.value,"onUpdate:modelValue":i[8]||=e=>ei.value=e,value:e},null,8,[`modelValue`,`value`]),_(`span`,null,b(N(A)(`column.subscribeChannel.${e}`)),1)])),64))]),_(`p`,ft,b(N(A)(`column.subscribeOwnActions`)),1)]),_:1},8,[`visible`,`header`]),w(N(ne),{visible:ir.value!==null,header:N(A)(`templates.pickHeader`),modal:!0,style:{width:`420px`},"onUpdate:visible":i[12]||=e=>{e||(ir.value=null)}},{default:m(()=>[_(`p`,pt,b(N(A)(`templates.pickIntro`)),1),_(`div`,mt,[_(`button`,{class:`kb-tpl-option`,onClick:i[11]||=e=>sr(null)},[i[42]||=_(`i`,{class:`pi pi-file`},null,-1),j(` `+b(N(A)(`templates.blank`)),1)]),(a(!0),e(u,null,E(n.templates,t=>(a(),e(`button`,{key:t.id,class:`kb-tpl-option`,onClick:e=>sr(t)},[i[43]||=_(`i`,{class:`pi pi-file-edit`},null,-1),j(` `+b(t.name),1)],8,ht))),128))])]),_:1},8,[`visible`,`header`]),n.readOnly?f(``,!0):(a(),e(`div`,gt,[de.value?(a(),e(`div`,_t,[w(N(ie),{modelValue:I.value,"onUpdate:modelValue":i[13]||=e=>I.value=e,placeholder:N(A)(`column.titlePlaceholder`),autofocus:``,class:`w-full`,onKeyup:[p(Ce,[`enter`]),i[14]||=p(e=>de.value=!1,[`escape`])]},null,8,[`modelValue`,`placeholder`]),_(`div`,vt,[w(N(O),{label:N(A)(`addColumnButton`),size:`small`,disabled:!I.value.trim(),onClick:Ce},null,8,[`label`,`disabled`]),w(N(O),{icon:`pi pi-times`,text:``,size:`small`,onClick:i[15]||=e=>de.value=!1})])])):(a(),e(`button`,{key:1,class:`kb-add-col__trigger`,onClick:i[16]||=e=>de.value=!0},[i[44]||=_(`i`,{class:`pi pi-plus`},null,-1),j(` `+b(N(A)(`addColumn`)),1)]))]))]),w(N(ne),{visible:!!L.value,header:N(A)(`editor.header`),modal:!0,"dismissable-mask":!dr.value,class:`kb-card-dialog`,style:{width:`min(1400px, 92vw)`,height:`90vh`},breakpoints:{"1040px":`95vw`},"onUpdate:visible":i[26]||=e=>{e||fr()}},{footer:m(()=>[_(`div`,Mn,[dr.value&&!n.readOnly?(a(),e(`span`,Nn,[i[59]||=_(`i`,{class:`pi pi-exclamation-circle`},null,-1),j(` `+b(N(A)(`editor.unsavedHint`)),1)])):f(``,!0),w(N(O),{label:N(A)(`editor.close`),text:``,onClick:fr},null,8,[`label`]),n.readOnly?f(``,!0):(a(),x(N(O),{key:1,label:N(A)(`editor.save`),icon:`pi pi-check`,onClick:gr},null,8,[`label`]))])]),default:m(()=>[L.value?(a(),e(`div`,yt,[_(`div`,bt,[w(N(pe),{value:$n.value,"onUpdate:value":i[22]||=e=>$n.value=e},{default:m(()=>[w(N(me),null,{default:m(()=>[w(N(ge),{value:`edit`},{default:m(()=>[i[45]||=_(`i`,{class:`pi pi-pencil`,style:{"margin-right":`0.375rem`}},null,-1),j(b(N(A)(`editor.tabs.edit`)),1)]),_:1}),w(N(ge),{value:`comments`},{default:m(()=>[i[46]||=_(`i`,{class:`pi pi-comments`,style:{"margin-right":`0.375rem`}},null,-1),j(b(N(A)(`editor.tabs.comments`,{count:Oi.value.length||(L.value.card.commentCount??0)})),1)]),_:1}),w(N(ge),{value:`history`},{default:m(()=>[i[47]||=_(`i`,{class:`pi pi-history`,style:{"margin-right":`0.375rem`}},null,-1),j(b(N(A)(`editor.tabs.history`,{count:L.value.card.history?.length??0})),1)]),_:1})]),_:1}),w(N(he),null,{default:m(()=>[w(N(_e),{value:`edit`},{default:m(()=>[_(`div`,xt,[_(`div`,St,[_(`label`,Ct,b(N(A)(`editor.titleLabel`)),1),w(N(ie),{id:`kanban-card-title`,modelValue:De.value,"onUpdate:modelValue":i[17]||=e=>De.value=e,disabled:n.readOnly,autofocus:``,onKeyup:p(gr,[`enter`])},null,8,[`modelValue`,`disabled`])]),_(`div`,wt,[_(`label`,Tt,b(N(A)(`editor.contentLabel`)),1),w(N(ve),{id:`kanban-card-content`,ref_key:`tiptapRef`,ref:er,modelValue:Oe.value,"onUpdate:modelValue":i[18]||=e=>Oe.value=e,markdown:``,"min-height":`20rem`,"max-height":`none`,editable:!n.readOnly,placeholder:N(A)(`editor.contentPlaceholder`),mentions:Pr.value,onLinkClick:ki},null,8,[`modelValue`,`editable`,`placeholder`,`mentions`])]),_(`div`,Et,[_(`label`,Dt,b(N(A)(`editor.filesLabel`)),1),R.value.length?(a(),e(`div`,Ot,[(a(!0),e(u,null,E(R.value,(t,r)=>(a(),e(`div`,{key:r,class:`kb-dialog__thumb`},[_(`img`,{src:t,alt:`attachment`},null,8,kt),n.readOnly?f(``,!0):(a(),e(`button`,{key:0,class:`kb-dialog__thumb-remove`,onClick:e=>ea(r)},[...i[48]||=[_(`i`,{class:`pi pi-times`},null,-1)]],8,At))]))),128))])):f(``,!0),w(Te,{files:z.value,preview:br,removable:!n.readOnly,"remove-label":N(A)(`editor.removeFile`),onOpen:Dr,onRemove:jr},null,8,[`files`,`removable`,`remove-label`]),w(Ae,{queue:V.value,errors:B.value,uploading:ke.value,"uploading-label":N(A)(`editor.uploading`)},null,8,[`queue`,`errors`,`uploading`,`uploading-label`]),n.readOnly?f(``,!0):(a(),e(`label`,jt,[i[49]||=_(`i`,{class:`pi pi-upload`},null,-1),j(` `+b(N(A)(`editor.attachFile`))+` `,1),_(`input`,{id:`kanban-card-images`,type:`file`,multiple:``,onChange:$i},null,32)]))])])]),_:1}),w(N(_e),{value:`comments`},{default:m(()=>[_(`div`,Mt,[Oi.value.length?(a(),e(`div`,Pt,[(a(!0),e(u,null,E(Oi.value,(t,r)=>(a(),e(`div`,{key:r,class:l([`kb-comments__item`,{"kb-comments__item--ai":t.author===`ai`,"kb-comments__item--clickable":Ui(t)}]),onClick:e=>Ui(t)&&Gi(t)},[_(`div`,{class:l([`kb-comments__avatar`,{"kb-comments__avatar--photo":!!Rr(t)}]),style:g(Rr(t)?Ir(Rr(t)):void 0)},[t.author===`ai`?(a(),e(`i`,It)):Rr(t)&&n.avatarUrl&&!Mr.has(Rr(t))?(a(),e(`img`,{key:1,src:n.avatarUrl(Rr(t)),alt:``,onError:e=>Mr.add(Rr(t))},null,40,Lt)):t.authorUser?.name?(a(),e(u,{key:2},[j(b(Nr(t.authorUser.name)),1)],64)):(a(),e(`i`,Rt))],6),_(`div`,zt,[_(`div`,Bt,[_(`span`,Vt,b(zr(t)),1),_(`span`,Ht,b(Ji(t.timestamp)),1),t.editedAt?(a(),e(`span`,Ut,b(N(A)(`comments.edited`)),1)):f(``,!0),!n.readOnly&&Kr(t)&&G.value!==t.id?(a(),e(`span`,Wt,[Lr(t)?(a(),e(`button`,{key:0,class:`kb-comments__tool`,title:N(A)(`comments.edit`),onClick:h(e=>Vr(t),[`stop`])},[...i[51]||=[_(`i`,{class:`pi pi-pencil`},null,-1)]],8,Gt)):f(``,!0),_(`button`,{class:`kb-comments__tool`,title:N(A)(`comments.delete`),onClick:h(e=>qr(t),[`stop`])},[...i[52]||=[_(`i`,{class:`pi pi-trash`},null,-1)]],8,Kt)])):f(``,!0)]),G.value===t.id?(a(),e(`div`,{key:0,class:`kb-comments__edit`,onClick:i[20]||=h(()=>{},[`stop`])},[w(N(ve),{modelValue:nr.value,"onUpdate:modelValue":i[19]||=e=>nr.value=e,markdown:``,"min-height":`1.4rem`,"max-height":`7.1rem`,mentions:Pr.value,onLinkClick:ki},null,8,[`modelValue`,`mentions`]),_(`div`,qt,[w(N(O),{label:N(A)(`editor.cancel`),size:`small`,text:``,onClick:Hr},null,8,[`label`]),w(N(O),{label:N(A)(`editor.save`),size:`small`,disabled:!nr.value.trim(),onClick:Ur},null,8,[`label`,`disabled`])])])):t.detail?(a(),e(u,{key:1},[_(`div`,{ref_for:!0,ref:e=>Bi(e,t,r),class:l([`kb-comments__text kb-comments__text--markdown`,{"kb-comments__text--clamped":!Fi(t,r),"kb-comments__text--toggleable":Ii(t,r)&&!Ui(t)}]),onClick:e=>Ri(t,r,e),innerHTML:ji(t.detail)},null,10,Jt),Ii(t,r)?(a(),e(`button`,{key:0,class:`kb-comments__more`,onClick:h(e=>Li(t,r),[`stop`])},b(Fi(t,r)?N(A)(`comments.showLess`):N(A)(`comments.showMore`)),9,Yt)):f(``,!0)],64)):f(``,!0),G.value===t.id?f(``,!0):(a(),x(Te,{key:2,files:t.attachments??[],preview:br,compact:``,onOpen:Dr},null,8,[`files`]))])],10,Ft))),128)),_(`div`,{ref_key:`commentsEndEl`,ref:tr},null,512)])):(a(),e(`div`,Nt,[i[50]||=_(`i`,{class:`pi pi-comments`},null,-1),_(`span`,null,b(N(A)(`comments.empty`)),1)])),n.readOnly?f(``,!0):(a(),e(`div`,{key:2,class:`kb-comments__input`,onKeydown:[p(h(vr,[`ctrl`,`prevent`]),[`enter`]),p(h(vr,[`meta`,`prevent`]),[`enter`])]},[w(N(ve),{modelValue:U.value,"onUpdate:modelValue":i[21]||=e=>U.value=e,markdown:``,placeholder:N(A)(`comments.placeholder`),"min-height":`1.4rem`,"max-height":`7.1rem`,mentions:Pr.value,onLinkClick:ki},null,8,[`modelValue`,`placeholder`,`mentions`]),w(Te,{files:W.value,preview:br,openable:!1,removable:``,"remove-label":N(A)(`editor.removeFile`),compact:``,onRemove:Qi},null,8,[`files`,`remove-label`]),w(Ae,{queue:V.value,errors:B.value,uploading:ke.value,"uploading-label":N(A)(`editor.uploading`)},null,8,[`queue`,`errors`,`uploading`,`uploading-label`]),_(`div`,Zt,[_(`label`,{class:`kb-comments__attach`,title:N(A)(`comments.attach`)},[i[53]||=_(`i`,{class:`pi pi-paperclip`},null,-1),_(`input`,{type:`file`,multiple:``,onChange:Zi},null,32)],8,Qt),_(`span`,$t,b(N(A)(`comments.sendHint`)),1),w(N(O),{label:N(A)(`comments.send`),icon:`pi pi-send`,size:`small`,disabled:!U.value.trim()&&!W.value.length,onClick:vr},null,8,[`label`,`disabled`])])],40,Xt))])]),_:1}),w(N(_e),{value:`history`},{default:m(()=>[_(`div`,en,[L.value.card.history?.length?(a(),e(`div`,nn,[(a(!0),e(u,null,E([...L.value.card.history].reverse(),(t,n)=>(a(),e(`div`,{key:n,class:l([`kb-history__item`,{"kb-history__item--clickable":Ui(t)}]),onClick:e=>Ui(t)&&Gi(t)},[_(`div`,an,[_(`i`,{class:l(Ki[t.type])},null,2)]),_(`div`,on,[_(`span`,sn,[j(b(qi.value[t.type])+` `,1),Ui(t)?(a(),e(`i`,cn)):f(``,!0)]),t.detail?(a(),e(`span`,ln,b(t.detail),1)):f(``,!0),_(`span`,un,b(Ji(t.timestamp)),1)])],10,rn))),128))])):(a(),e(`div`,tn,[i[54]||=_(`i`,{class:`pi pi-clock`},null,-1),_(`span`,null,b(N(A)(`history.empty`)),1)]))])]),_:1})]),_:1})]),_:1},8,[`value`])]),_(`aside`,dn,[n.members.length?(a(),e(`div`,fn,[_(`span`,pn,b(N(A)(`editor.assigneesLabel`)),1),w(N(fe),{modelValue:Zn.value,"onUpdate:modelValue":i[23]||=e=>Zn.value=e,options:n.members,"option-label":`name`,"option-value":`userId`,placeholder:N(A)(`editor.assigneesPlaceholder`),disabled:n.readOnly,display:`chip`,filter:``,class:`kb-side__control`},{chip:m(({value:t})=>[_(`span`,{class:`kb-card__avatar`,style:g(Ir(t)),title:Fr(t)},[n.avatarUrl&&!Mr.has(t)?(a(),e(`img`,{key:0,src:n.avatarUrl(t),alt:``,onError:e=>Mr.add(t)},null,40,hn)):(a(),e(u,{key:1},[j(b(Nr(Fr(t))),1)],64))],12,mn)]),option:m(({option:t})=>[_(`span`,gn,[_(`span`,{class:`kb-card__avatar`,style:g(Ir(t.userId))},[n.avatarUrl&&!Mr.has(t.userId)?(a(),e(`img`,{key:0,src:n.avatarUrl(t.userId),alt:``,onError:e=>Mr.add(t.userId)},null,40,_n)):(a(),e(u,{key:1},[j(b(Nr(t.name)),1)],64))],4),j(` `+b(t.name),1)])]),_:1},8,[`modelValue`,`options`,`placeholder`,`disabled`]),_(`p`,vn,b(N(A)(`editor.assigneesHint`)),1)])):f(``,!0),_(`div`,yn,[_(`span`,bn,b(N(A)(`editor.columnSettingLabel`)),1),w(N(te),{modelValue:Qn.value,"onUpdate:modelValue":i[24]||=e=>Qn.value=e,options:ye.value,"option-label":`title`,"option-value":`id`,disabled:n.readOnly,class:`kb-side__control`},null,8,[`modelValue`,`options`,`disabled`])]),_(`div`,xn,[L.value.card.createdBy?(a(),e(`p`,Sn,[i[55]||=_(`i`,{class:`pi pi-user`},null,-1),j(` `+b(N(A)(`editor.createdBy`,{name:L.value.card.createdBy.name})),1)])):f(``,!0),_(`p`,null,[i[56]||=_(`i`,{class:`pi pi-calendar-plus`},null,-1),j(` `+b(Ji(L.value.card.createdAt)),1)]),_(`p`,null,[i[57]||=_(`i`,{class:`pi pi-clock`},null,-1),j(` `+b(Ji(L.value.card.updatedAt)),1)])]),Wi.value.length?(a(),e(`div`,Cn,[_(`span`,wn,b(N(A)(`editor.conversationsLabel`)),1),_(`div`,Tn,[(a(!0),e(u,null,E(Wi.value,t=>(a(),e(`a`,{key:t.id,class:`kb-side__conv`,title:t.title,onClick:e=>T(`open-conversation`,t.id)},[i[58]||=_(`i`,{class:`pi pi-comments`},null,-1),_(`span`,Dn,b(t.label),1)],8,En))),128))])])):f(``,!0),r.$slots[`card-editor-actions`]?(a(),e(`div`,On,[_(`span`,kn,b(N(A)(`editor.actionsLabel`)),1),_(`div`,An,[t(r.$slots,`card-editor-actions`,{card:L.value.card,colId:L.value.colId,draft:{title:De.value,markdown:Oe.value}},void 0,!0)])])):f(``,!0),!n.readOnly&&!ur.value?(a(),e(`div`,jn,[w(N(O),{label:N(A)(`editor.deleteCard`),icon:`pi pi-trash`,severity:`danger`,text:``,size:`small`,onClick:i[25]||=e=>_r(L.value.colId,L.value.card.id)},null,8,[`label`])])):f(``,!0)])])):f(``,!0)]),_:3},8,[`visible`,`header`,`dismissable-mask`]),w(N(ne),{visible:!!K.value,header:K.value?.file.name??``,modal:!0,"dismissable-mask":``,class:`kb-viewer-dialog`,style:{width:`min(1200px, 92vw)`,height:`88vh`},"onUpdate:visible":i[27]||=e=>{e||Ar()}},{footer:m(()=>[w(N(O),{label:N(A)(`editor.viewerDownload`),icon:`pi pi-download`,text:``,onClick:kr},null,8,[`label`]),w(N(O),{label:N(A)(`editor.close`),onClick:Ar},null,8,[`label`])]),default:m(()=>[K.value?(a(),e(`div`,Pn,[K.value.kind===`image`?(a(),e(`img`,{key:0,src:K.value.url,alt:K.value.file.name,class:`kb-viewer__image`},null,8,Fn)):K.value.kind===`pdf`?(a(),e(`iframe`,{key:1,src:K.value.url,title:K.value.file.name,class:`kb-viewer__frame`},null,8,In)):K.value.kind===`video`?(a(),e(`video`,{key:2,src:K.value.url,controls:``,class:`kb-viewer__media`},null,8,Ln)):K.value.kind===`audio`?(a(),e(`audio`,{key:3,src:K.value.url,controls:``,class:`kb-viewer__audio`},null,8,Rn)):(a(),e(`pre`,zn,b(K.value.text),1))])):f(``,!0)]),_:1},8,[`visible`,`header`]),w(N(ee),{ref_key:`colMenu`,ref:li,onHide:i[31]||=e=>ui.value=null},{default:m(()=>[ui.value?(a(),e(`div`,Bn,[_(`div`,Vn,[t(r.$slots,`column-actions`,{column:ui.value},void 0,!0)]),Jr.value?(a(),e(`button`,{key:0,class:`kb-colmenu__item`,onClick:i[28]||=e=>fi(pi)},[i[60]||=_(`i`,{class:`pi pi-bell`},null,-1),_(`span`,null,b(ni(ui.value.id)?N(A)(`column.unsubscribe`):N(A)(`column.subscribe`)),1)])):f(``,!0),_(`button`,{class:`kb-colmenu__item`,onClick:i[29]||=e=>fi(Di)},[i[61]||=_(`i`,{class:`pi pi-angle-double-left`},null,-1),_(`span`,null,b(N(A)(`column.collapse`)),1)]),n.readOnly?f(``,!0):(a(),e(`button`,{key:1,class:`kb-colmenu__item kb-colmenu__item--danger`,onClick:i[30]||=e=>fi(we)},[i[62]||=_(`i`,{class:`pi pi-trash`},null,-1),_(`span`,null,b(N(A)(`column.deleteTooltip`)),1)]))])):f(``,!0)]),_:3},512)],512)}}}),[[`__scopeId`,`data-v-11477a2a`]]),V={class:`kanban-list-page`},Yn={class:`page-header`},H={class:`page-header__right`},Xn={key:0,class:`empty-state`},Zn={class:`board-grid`},Qn={key:0,class:`board-desc`},$n={key:0,class:`empty-state`},U={class:`board-grid`},W={key:0,class:`board-desc`},er={class:`dialog-field`},tr={for:`kanlist-new-name`},G={class:`dialog-field`},nr={for:`kanlist-new-desc`},rr={class:`dialog-field`},ir={for:`kanlist-edit-name`},ar={class:`dialog-field`},or={for:`kanlist-edit-desc`},sr={class:`dialog-field`},cr={for:`kanlist-tpl-name`},lr={class:`dialog-field`},ur={for:`kanlist-tpl-content`},dr={class:`hint`},fr={class:`templates-intro`},pr={key:0,class:`empty-state`},mr={key:1,class:`template-list`},hr={class:`template-row__name`},gr={key:0,class:`template-row__actions`},_r=oe(k({__name:`KanbanList`,props:{boards:{},readOnly:{type:Boolean,default:!1},boardsLimit:{default:null},templates:{default:null},t:{}},emits:[`open`,`create`,`update`,`archive`,`delete`,`template-create`,`template-update`,`template-delete`],setup(n,{emit:r}){let i=n,o=r,s=re(),g=i.t,ee=D(!1),y=D(``),te=D(``),C=D(null),k=D(``);function A(e){return e.normalize(`NFD`).replace(/\p{Diacritic}/gu,``).toLowerCase()}let M=v(()=>{let e=A(k.value.trim());return e?i.boards.filter(t=>A(t.name).includes(e)||A(t.description??``).includes(e)):i.boards}),oe=v(()=>M.value.filter(e=>!e.archived)),P=v(()=>M.value.filter(e=>e.archived)),se=v(()=>k.value.trim().length>0),ce=v(()=>i.boardsLimit!==null&&i.boards.length>=i.boardsLimit),F=v(()=>!i.readOnly&&!ce.value);function le(){!F.value||!y.value.trim()||(o(`create`,{name:y.value.trim(),description:te.value.trim()}),ee.value=!1,y.value=``,te.value=``)}function ue(){C.value&&=(o(`update`,{...C.value}),null)}let fe=D(!1),I=D(null);function ye(){I.value={id:null,name:``,content:``}}function be(e){I.value={id:e.id,name:e.name,content:e.content}}function xe(){let e=I.value;if(!e||!e.name.trim())return;let t={name:e.name.trim(),content:e.content};e.id?o(`template-update`,{id:e.id,...t}):o(`template-create`,t),I.value=null}function Se(e){s.require({message:g(`templates.confirmDeleteMessage`,{name:e.name}),header:g(`templates.confirmDeleteHeader`),icon:`pi pi-trash`,acceptClass:`p-button-danger`,accept:()=>o(`template-delete`,e.id)})}function Ce(e,t){s.require({message:g(`dialogs.confirmDeleteMessage`,{name:t}),header:g(`dialogs.confirmDeleteHeader`),icon:`pi pi-trash`,acceptClass:`p-button-danger`,accept:()=>o(`delete`,e)})}return(r,i)=>{let s=d(`tooltip`);return a(),e(`div`,V,[_(`div`,Yn,[_(`h1`,null,b(N(g)(`title`)),1),_(`span`,H,[w(N(ae),null,{default:m(()=>[w(N(S),{class:`pi pi-search`}),w(N(ie),{modelValue:k.value,"onUpdate:modelValue":i[0]||=e=>k.value=e,placeholder:N(g)(`searchPlaceholder`),class:`search-input`},null,8,[`modelValue`,`placeholder`])]),_:1}),n.boardsLimit===null?f(``,!0):(a(),e(`span`,{key:0,class:l([`quota`,{"quota--full":ce.value}])},b(N(g)(`quota`,{used:n.boards.length,limit:n.boardsLimit})),3)),n.templates?(a(),x(N(O),{key:1,label:N(g)(`templates.manage`),icon:`pi pi-file-edit`,severity:`secondary`,outlined:``,onClick:i[1]||=e=>fe.value=!0},null,8,[`label`])):f(``,!0),n.readOnly?f(``,!0):(a(),x(N(O),{key:2,label:N(g)(`dialogs.newBoard`),icon:`pi pi-plus`,disabled:ce.value,onClick:i[2]||=e=>ee.value=!0},null,8,[`label`,`disabled`]))])]),t(r.$slots,`banner`,{},void 0,!0),w(N(pe),{value:`active`},{default:m(()=>[w(N(me),null,{default:m(()=>[w(N(ge),{value:`active`},{default:m(()=>[j(b(N(g)(`tabs.active`)),1)]),_:1}),w(N(ge),{value:`archived`},{default:m(()=>[j(b(N(g)(`tabs.archived`,{count:P.value.length})),1)]),_:1})]),_:1}),w(N(he),null,{default:m(()=>[w(N(_e),{value:`active`},{default:m(()=>[oe.value.length===0?(a(),e(`div`,Xn,b(se.value?N(g)(`noResults`,{query:k.value.trim()}):N(g)(`empty`)),1)):f(``,!0),_(`div`,Zn,[(a(!0),e(u,null,E(oe.value,t=>(a(),x(N(de),{key:t.id,class:`board-card`,onClick:e=>o(`open`,t.id)},{title:m(()=>[j(b(t.name),1)]),subtitle:m(()=>[j(b(N(g)(`columns`,{count:t.columnCount})),1)]),content:m(()=>[t.description?(a(),e(`p`,Qn,b(t.description),1)):f(``,!0)]),footer:m(()=>[n.readOnly?f(``,!0):(a(),e(`div`,{key:0,class:`board-actions`,onClick:i[3]||=h(()=>{},[`stop`])},[w(N(O),{icon:`pi pi-pencil`,text:``,size:`small`,onClick:e=>C.value={id:t.id,name:t.name,description:t.description}},null,8,[`onClick`]),c(w(N(O),{icon:`pi pi-inbox`,text:``,size:`small`,severity:`secondary`,onClick:e=>o(`archive`,{id:t.id,archived:!0})},null,8,[`onClick`]),[[s,N(g)(`archive`)]]),w(N(O),{icon:`pi pi-trash`,text:``,size:`small`,severity:`danger`,onClick:e=>Ce(t.id,t.name)},null,8,[`onClick`])]))]),_:2},1032,[`onClick`]))),128))])]),_:1}),w(N(_e),{value:`archived`},{default:m(()=>[P.value.length===0?(a(),e(`div`,$n,b(se.value?N(g)(`noResults`,{query:k.value.trim()}):N(g)(`archivedEmpty`)),1)):f(``,!0),_(`div`,U,[(a(!0),e(u,null,E(P.value,t=>(a(),x(N(de),{key:t.id,class:`board-card archived`},{title:m(()=>[j(b(t.name),1)]),content:m(()=>[t.description?(a(),e(`p`,W,b(t.description),1)):f(``,!0)]),footer:m(()=>[n.readOnly?f(``,!0):(a(),e(`div`,{key:0,class:`board-actions`,onClick:i[4]||=h(()=>{},[`stop`])},[w(N(O),{label:N(g)(`restore`),icon:`pi pi-replay`,text:``,size:`small`,onClick:e=>o(`archive`,{id:t.id,archived:!1})},null,8,[`label`,`onClick`]),w(N(O),{icon:`pi pi-trash`,text:``,size:`small`,severity:`danger`,onClick:e=>Ce(t.id,t.name)},null,8,[`onClick`])]))]),_:2},1024))),128))])]),_:1})]),_:1})]),_:1}),w(N(ne),{visible:ee.value,"onUpdate:visible":i[8]||=e=>ee.value=e,header:N(g)(`dialogs.newBoard`),modal:!0,style:{width:`450px`}},{footer:m(()=>[w(N(O),{label:N(g)(`cancel`),text:``,onClick:i[7]||=e=>ee.value=!1},null,8,[`label`]),w(N(O),{label:N(g)(`create`),icon:`pi pi-check`,disabled:!y.value.trim(),onClick:le},null,8,[`label`,`disabled`])]),default:m(()=>[_(`div`,er,[_(`label`,tr,b(N(g)(`nameLabel`)),1),w(N(ie),{id:`kanlist-new-name`,modelValue:y.value,"onUpdate:modelValue":i[5]||=e=>y.value=e,autofocus:``,class:`w-full`,onKeyup:p(le,[`enter`])},null,8,[`modelValue`])]),_(`div`,G,[_(`label`,nr,b(N(g)(`descriptionLabel`)),1),w(N(T),{id:`kanlist-new-desc`,modelValue:te.value,"onUpdate:modelValue":i[6]||=e=>te.value=e,rows:`3`,class:`w-full`},null,8,[`modelValue`])])]),_:1},8,[`visible`,`header`]),w(N(ne),{visible:!!C.value,header:N(g)(`dialogs.editBoard`),modal:!0,style:{width:`450px`},"onUpdate:visible":i[12]||=e=>{e||(C.value=null)}},{footer:m(()=>[w(N(O),{label:N(g)(`cancel`),text:``,onClick:i[11]||=e=>C.value=null},null,8,[`label`]),w(N(O),{label:N(g)(`save`),icon:`pi pi-check`,onClick:ue},null,8,[`label`])]),default:m(()=>[C.value?(a(),e(u,{key:0},[_(`div`,rr,[_(`label`,ir,b(N(g)(`nameLabel`)),1),w(N(ie),{id:`kanlist-edit-name`,modelValue:C.value.name,"onUpdate:modelValue":i[9]||=e=>C.value.name=e,class:`w-full`,onKeyup:p(ue,[`enter`])},null,8,[`modelValue`])]),_(`div`,ar,[_(`label`,or,b(N(g)(`descriptionLabel`)),1),w(N(T),{id:`kanlist-edit-desc`,modelValue:C.value.description,"onUpdate:modelValue":i[10]||=e=>C.value.description=e,rows:`3`,class:`w-full`},null,8,[`modelValue`])])],64)):f(``,!0)]),_:1},8,[`visible`,`header`]),w(N(ne),{visible:fe.value,"onUpdate:visible":[i[17]||=e=>fe.value=e,i[18]||=e=>{e||(I.value=null)}],header:N(g)(`templates.manage`),modal:!0,class:`template-dialog`,style:{width:`min(1100px, 92vw)`,height:`90vh`}},{footer:m(()=>[I.value?(a(),e(u,{key:0},[w(N(O),{label:N(g)(`cancel`),text:``,onClick:i[15]||=e=>I.value=null},null,8,[`label`]),w(N(O),{label:N(g)(`save`),icon:`pi pi-check`,disabled:!I.value.name.trim(),onClick:xe},null,8,[`label`,`disabled`])],64)):(a(),e(u,{key:1},[n.readOnly?f(``,!0):(a(),x(N(O),{key:0,label:N(g)(`templates.new`),icon:`pi pi-plus`,onClick:ye},null,8,[`label`])),w(N(O),{label:N(g)(`close`),text:``,onClick:i[16]||=e=>fe.value=!1},null,8,[`label`])],64))]),default:m(()=>[I.value?(a(),e(u,{key:0},[_(`div`,sr,[_(`label`,cr,b(N(g)(`templates.nameLabel`)),1),w(N(ie),{id:`kanlist-tpl-name`,modelValue:I.value.name,"onUpdate:modelValue":i[13]||=e=>I.value.name=e,autofocus:``,class:`w-full`},null,8,[`modelValue`])]),_(`div`,lr,[_(`label`,ur,b(N(g)(`templates.contentLabel`)),1),w(N(ve),{id:`kanlist-tpl-content`,modelValue:I.value.content,"onUpdate:modelValue":i[14]||=e=>I.value.content=e,markdown:``,"min-height":`18rem`,"max-height":`60vh`,placeholder:N(g)(`templates.contentPlaceholder`)},null,8,[`modelValue`,`placeholder`]),_(`small`,dr,b(N(g)(`templates.contentHint`)),1)])],64)):(a(),e(u,{key:1},[_(`p`,fr,b(N(g)(`templates.intro`)),1),!n.templates||n.templates.length===0?(a(),e(`div`,pr,b(N(g)(`templates.empty`)),1)):(a(),e(`ul`,mr,[(a(!0),e(u,null,E(n.templates,t=>(a(),e(`li`,{key:t.id,class:`template-row`},[_(`span`,hr,b(t.name),1),n.readOnly?f(``,!0):(a(),e(`span`,gr,[w(N(O),{icon:`pi pi-pencil`,text:``,size:`small`,onClick:e=>be(t)},null,8,[`onClick`]),w(N(O),{icon:`pi pi-trash`,text:``,size:`small`,severity:`danger`,onClick:e=>Se(t)},null,8,[`onClick`])]))]))),128))]))],64))]),_:1},8,[`visible`,`header`])])}}}),[[`__scopeId`,`data-v-b163e877`]]);function vr(){let e=s(),t=o(),{user:r}=F(),a=P(A,le()),c=D(typeof e.query.org==`string`?e.query.org:``),l=D(``),u=D([]),d=y(),f=n(),p=v(()=>{let e=f.activeProjectId??d.projects[0]?.id;return e?d.getById(e)?.orgId??null:null});return i(()=>r.value?.id,e=>{e&&a.refresh()},{immediate:!0}),i(a.organizations,e=>{if(c.value||!e.length)return;let t=p.value;c.value=t&&e.some(e=>e.id===t)?t:e[0].id},{immediate:!0}),i(c,async n=>{if(t.replace({query:{...e.query,...n?{org:n}:{org:void 0}}}),u.value=[],l.value=``,!n)return;let r=await A.organization.getFullOrganization({query:{organizationId:n}});if(r.error||!r.data)return;let i=r.data;l.value=i.slug??``,u.value=(i.members??[]).map(e=>({userId:e.userId,name:e.user?.name||e.user?.email||`?`,email:e.user?.email??``}))},{immediate:!0}),{orgId:c,orgSlug:l,members:u,organizations:a.organizations,cloudUser:r}}export{_r as n,B as r,vr as t};
File without changes
File without changes
File without changes
File without changes