@runeya/runeya 2.0.11 → 2.0.13
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.
- package/agent/index.js +107 -47
- package/agent/index.js.map +1 -1
- package/agent-manager-3DHUF2DC-KN6O7WSA.js +8 -0
- package/{chunk-6547GLUJ.js → chunk-AJW7LDO5.js} +6 -3
- package/chunk-AJW7LDO5.js.map +1 -0
- package/{dist-2H7XZQCV.js → dist-HGCFHXO4.js} +91 -45
- package/dist-HGCFHXO4.js.map +1 -0
- package/index.js +1 -1
- package/mcp-server/index.js +139 -1
- package/mcp-server/index.js.map +1 -1
- package/package.json +1 -1
- package/web/assets/AddressBar.vue-B6BOLYmO.js +1 -0
- package/web/assets/AgentScalarChatInterface.vue-DKSmjtvV.js +13 -0
- package/web/assets/AgentTerminalPage-BZ6jaRAs.js +1 -0
- package/web/assets/AiChatPage-C1r42kX7.js +1 -0
- package/web/assets/AppLayout-B7-y0tBI.css +1 -0
- package/web/assets/AppLayout-DnMCPCO8.js +1 -0
- package/web/assets/AuditPage-CTdEvLE-.js +1 -0
- package/web/assets/CodeInput.vue-Sp2dM8hl.js +1 -0
- package/web/assets/Collection.vue-CdPjaC9d.js +1 -0
- package/web/assets/CollectionAuthentication.vue-DMPykUah.js +1 -0
- package/web/assets/CollectionCookies.vue-DqNgVtd-.js +1 -0
- package/web/assets/CollectionEnvironment.vue-DKab6xJJ.js +1 -0
- package/web/assets/CollectionOverview.vue-DlODh8Vk.js +1 -0
- package/web/assets/CollectionScripts.vue-B2gkfo4d.js +1 -0
- package/web/assets/CollectionServers.vue-Br-QackN.js +1 -0
- package/web/assets/CollectionSettings.vue-Cm6NQbDm.js +1 -0
- package/web/assets/CollectionSync.vue-bB7sdahP.js +1 -0
- package/web/assets/CommandActionInput.vue-CZ3-rqSL.js +1 -0
- package/web/assets/Cookies.vue-Duz-a-ga.js +1 -0
- package/web/assets/DashboardPage-hIc9wP_Q.js +1 -0
- package/web/assets/DataTable.vue-Dorr-r7J.js +1 -0
- package/web/assets/DataTableCheckbox.vue-CATn-YYp.js +1 -0
- package/web/assets/{DataTableHeader.vue-D5k0UCfl.js → DataTableHeader.vue-C3SUSaR8.js} +1 -1
- package/web/assets/DataTableInput.vue-_06pwPUA.js +1 -0
- package/web/assets/DeleteSidebarListElement.vue-DoqRnMXx.js +1 -0
- package/web/assets/EditSidebarListElement.vue-BqTw6Tho.js +1 -0
- package/web/assets/{EditorIcon-DOV6wP8X.js → EditorIcon-CbpIT0A1.js} +2 -2
- package/web/assets/{EmptyState.vue-watFzTsD.js → EmptyState.vue-Bur5L0a4.js} +2 -2
- package/web/assets/Environment.vue-C50lH9cP.js +1 -0
- package/web/assets/EnvironmentForm-BDfzXuHx.js +108 -0
- package/web/assets/EnvironmentFormPage-CLylRN6B.js +1 -0
- package/web/assets/EnvironmentListPage-DlUT6LnX.js +1 -0
- package/web/assets/EnvironmentModal.vue-Dz5CArRX.js +1 -0
- package/web/assets/EnvironmentSelector-DHoYUCTH.js +1 -0
- package/web/assets/Form.vue-BzZCMgN1.js +1 -0
- package/web/assets/IconSelector.vue-BCmeqlrs.js +1 -0
- package/web/assets/KanbanBoardPage-DoXgFMvo.js +141 -0
- package/web/assets/{KanbanBoardPage-7nOYpwHn.css → KanbanBoardPage-hqNojI5j.css} +1 -1
- package/web/assets/KanbanListPage-BLdNz80q.js +1 -0
- package/web/assets/LaunchProjectPage-DjRA2D3h.js +1 -0
- package/web/assets/LaunchServicesPage-CKaGcu3z.js +1 -0
- package/web/assets/LogViewer-CtX_6uFM.js +3 -0
- package/web/assets/ProcessControls-BY-_9zo7.js +1 -0
- package/web/assets/ProcessDetailPage-Bqis1qMA.js +1 -0
- package/web/assets/{ProcessMetrics-9RjmvDOk.js → ProcessMetrics-DQybvwcA.js} +2 -2
- package/web/assets/ProjectDetailPage-FBPonwd5.js +1 -0
- package/web/assets/ProjectListPage-xwlVXN8A.js +1 -0
- package/web/assets/RandomJobTestPage-0pqne-FD.js +2 -0
- package/web/assets/Request.vue-Db4XEPKt.js +1 -0
- package/web/assets/RequestAuth.vue-CK1A6ySt.js +1 -0
- package/web/assets/RequestRoot.vue-BLF0GGT5.js +19 -0
- package/web/assets/ScalarAsciiArt.vue-BPdUsXWj.js +2 -0
- package/web/assets/{ScalarIconEyeSlash.vue-CwJnZ-zD.js → ScalarIconEyeSlash.vue-BBDBShRO.js} +1 -1
- package/web/assets/{ScalarIconTrash.vue-DAEOI9Kk.js → ScalarIconTrash.vue-Tpr15aNY.js} +1 -1
- package/web/assets/ScenarioEditorPage-DNuo-2Gi.js +14 -0
- package/web/assets/ServerVariablesForm.vue-XLQ145gw.js +1 -0
- package/web/assets/ServiceControlsBar-CCTGcA1t.js +1 -0
- package/web/assets/{ServiceDetailPage-znbWajpt.css → ServiceDetailPage-BELECRic.css} +1 -1
- package/web/assets/ServiceDetailPage-UVg73scN.js +2 -0
- package/web/assets/ServiceFormPage-F3boRKs-.js +1 -0
- package/web/assets/Settings.vue-D_1yQu6i.js +1 -0
- package/web/assets/SettingsPage-Cg78lQZF.js +225 -0
- package/web/assets/SetupKeyPage-BcaSoLjU.js +1 -0
- package/web/assets/SetupPage-mCVAKLtm.js +1 -0
- package/web/assets/Sidebar.vue-De4YlW0c.js +1 -0
- package/web/assets/SidebarButton.vue-CctYiTRp.js +1 -0
- package/web/assets/SidebarListElement.vue-Cv7jUZIM.js +1 -0
- package/web/assets/UnlockPage-BSpzyZnd.js +1 -0
- package/web/assets/VariablesTable-Dn3IvplD.js +1 -0
- package/web/assets/ViewLayout.vue-fiagi8zc.js +1 -0
- package/web/assets/ViewLayoutContent.vue-BehGrsED.js +1 -0
- package/web/assets/ViewLayoutSection.vue-D4icCgQI.js +1 -0
- package/web/assets/active-entities-CkBGjwu9.js +1 -0
- package/web/assets/api-reference-D1EfYtPj.js +1 -0
- package/web/assets/autocomplete-CjBHTJWh.js +422 -0
- package/web/assets/card-CsmU2iiY.js +32 -0
- package/web/assets/{checkbox-4z5ftHhs.js → checkbox-B5XZqi1U.js} +3 -3
- package/web/assets/{chip-KJbF4Jjk.js → chip-C4pSomPm.js} +2 -2
- package/web/assets/column-CR3Hix4J.js +763 -0
- package/web/assets/core-CtGUajLi.js +1 -0
- package/web/assets/cssMode-nuznbveH.js +4 -0
- package/web/assets/dist--ZlcDulO.js +192 -0
- package/web/assets/{dist-CpE_ZYIQ.js → dist-CXkMrHNP.js} +1 -1
- package/web/assets/dist-DH_zJr7W.js +1 -0
- package/web/assets/{dist-Cp1hgSqY.js → dist-WjGUyWSO.js} +2 -2
- package/web/assets/{divider-D-vBLTer.js → divider-CnJlD7qO.js} +2 -2
- package/web/assets/{fieldset-CSlJxjpZ.js → fieldset-D9zY6R6s.js} +2 -2
- package/web/assets/{freemarker2-Dsxb69Av.js → freemarker2-Bw43sOne.js} +1 -1
- package/web/assets/handlebars-C8qgW7u6.js +1 -0
- package/web/assets/html-Dy9PKnkr.js +1 -0
- package/web/assets/htmlMode-o8EU0tqo.js +4 -0
- package/web/assets/index-9i25DNQ4.css +1 -0
- package/web/assets/{index-C0UzL9Y-.js → index-CIcE6DNv.js} +1315 -1262
- package/web/assets/{javascript-Bmt68E8X.js → javascript-CuRngcUR.js} +1 -1
- package/web/assets/{jsonMode-CYcvn9c0.js → jsonMode-CsUIxwQq.js} +1 -1
- package/web/assets/{keyboard-DZklF_AY.js → keyboard-DhkINir5.js} +2 -2
- package/web/assets/{lib-B5TdN_ca.js → lib-E9M4L9vE.js} +1 -1
- package/web/assets/{library-DtrGq8p8.js → library-BXoSag-V.js} +1 -1
- package/web/assets/liquid-CraMnqaK.js +1 -0
- package/web/assets/mdx-DPSW5q1A.js +1 -0
- package/web/assets/{mediaTypes-Bz4C7Sle.js → mediaTypes-DDACekzr.js} +2 -2
- package/web/assets/{message-DFReN7Fq.js → message-DKOCajc6.js} +2 -2
- package/web/assets/{minus-t_EQEzUj.js → minus-CtlH9Syh.js} +2 -2
- package/web/assets/multiselect-sshNnjnF.js +251 -0
- package/web/assets/{password-D82un95s.js → password-Dv9g39jb.js} +4 -4
- package/web/assets/{plus-B-AhHpHU.js → plus-CG5Ui-l-.js} +6 -6
- package/web/assets/pretty-ms-D2BVTeMx.js +202 -0
- package/web/assets/process.store-CutdTiYB.js +1 -0
- package/web/assets/project.store-CVbXSH5d.js +1 -0
- package/web/assets/python-BLq8fVkV.js +1 -0
- package/web/assets/{radiobutton-Btattklk.js → radiobutton-Bz_ltBfM.js} +2 -2
- package/web/assets/razor-CVrBU-Fk.js +1 -0
- package/web/assets/router-CuxdGfLF.js +1 -0
- package/web/assets/settings.store-vM-8jbAF.js +1 -0
- package/web/assets/store-CTKZgNiD.js +1840 -0
- package/web/assets/{tabpanel-CIyzJ44J.js → tabpanel-DaZzgdrv.js} +3 -3
- package/web/assets/trpc-BIjF6nTt.js +1 -0
- package/web/assets/{tsMode-ChD0IpIg.js → tsMode-DO5zEzzD.js} +1 -1
- package/web/assets/typescript-Do-K_3Jj.js +1 -0
- package/web/assets/urls-BlVUwVFM.js +12 -0
- package/web/assets/{use-tree-walker-M4-Gn01v.js → use-tree-walker-xoEX554A.js} +1 -1
- package/web/assets/useAiChatDrawer-BJugMTj0.js +1 -0
- package/web/assets/{useClipboard-Cro2wlg3.js → useClipboard-B3J6cGK-.js} +1 -1
- package/web/assets/{useLayout-BciG4r-1.js → useLayout-DHrumlpr.js} +1 -1
- package/web/assets/{usePluginManager-BonTfGSN.js → usePluginManager-BEbBxZnF.js} +1 -1
- package/web/assets/useSidebar-BCBwVF2x.js +1 -0
- package/web/assets/{vue-router-DdBypSuY.js → vue-router-CuFIegGa.js} +1 -1
- package/web/assets/xml-BolCsFLY.js +1 -0
- package/web/assets/yaml-5iZTkCV3.js +1 -0
- package/web/index.html +2 -2
- package/agent-manager-V47DLMYP-26VYXTSG.js +0 -8
- package/chunk-6547GLUJ.js.map +0 -1
- package/dist-2H7XZQCV.js.map +0 -1
- package/web/assets/AddressBar.vue-BxQkuTJ-.js +0 -1
- package/web/assets/AgentScalarChatInterface.vue-BZyh4z8j.js +0 -13
- package/web/assets/AgentTerminalPage-SWnqcTm-.js +0 -1
- package/web/assets/AiChatPage-PJvieNVr.js +0 -1
- package/web/assets/AppLayout-CDtyYNWp.css +0 -1
- package/web/assets/AppLayout-qD2ReaTx.js +0 -1
- package/web/assets/AuditPage-DCvW5-HA.js +0 -1
- package/web/assets/CodeInput.vue-DDs5Eel7.js +0 -1
- package/web/assets/Collection.vue-HH2Z976J.js +0 -1
- package/web/assets/CollectionAuthentication.vue-BbsKOTJ9.js +0 -1
- package/web/assets/CollectionCookies.vue-Dzlq0l8S.js +0 -1
- package/web/assets/CollectionEnvironment.vue-BS9B1OU-.js +0 -1
- package/web/assets/CollectionOverview.vue-DXXQHn9J.js +0 -1
- package/web/assets/CollectionScripts.vue-TVNOxHuu.js +0 -1
- package/web/assets/CollectionServers.vue-DDyH4n80.js +0 -1
- package/web/assets/CollectionSettings.vue-BD5QvG5c.js +0 -1
- package/web/assets/CollectionSync.vue-g_NhkdXC.js +0 -1
- package/web/assets/CommandActionInput.vue-Cot3fJDd.js +0 -1
- package/web/assets/Cookies.vue-X8bc_7ud.js +0 -1
- package/web/assets/DashboardPage-BuP2oOo3.js +0 -1
- package/web/assets/DataTable.vue-DmcNIRcD.js +0 -1
- package/web/assets/DataTableCheckbox.vue-B7bvOQ_f.js +0 -1
- package/web/assets/DataTableInput.vue-DVUCY60y.js +0 -1
- package/web/assets/DeleteSidebarListElement.vue-CAri6AWj.js +0 -1
- package/web/assets/EditSidebarListElement.vue-DFY1ZZNE.js +0 -1
- package/web/assets/Environment.vue-BbpisYLs.js +0 -1
- package/web/assets/EnvironmentForm-CyJtNH2k.js +0 -108
- package/web/assets/EnvironmentFormPage-Du4EXZlm.js +0 -1
- package/web/assets/EnvironmentListPage-1Jdh0AWO.js +0 -1
- package/web/assets/EnvironmentModal.vue-DaI310h8.js +0 -1
- package/web/assets/EnvironmentSelector-BPhBcKYj.js +0 -1
- package/web/assets/Form.vue-CMWUiD6f.js +0 -1
- package/web/assets/IconSelector.vue-90PWhHNq.js +0 -1
- package/web/assets/KanbanBoardPage-DzFRgXlJ.js +0 -141
- package/web/assets/KanbanListPage-O3T-L6z3.js +0 -1
- package/web/assets/LaunchProjectPage-B2m_PflY.js +0 -1
- package/web/assets/LaunchServicesPage-DgfE9971.js +0 -1
- package/web/assets/LogViewer-CXVXsymr.js +0 -3
- package/web/assets/ProcessControls-DVQwL-qx.js +0 -1
- package/web/assets/ProcessDetailPage-8GtSwfXG.js +0 -1
- package/web/assets/ProjectDetailPage-B3s8bbmw.js +0 -1
- package/web/assets/ProjectListPage-HQ9gZWHw.js +0 -1
- package/web/assets/RandomJobTestPage-DAM5nNLf.js +0 -2
- package/web/assets/Request.vue-DiF4lAAD.js +0 -1
- package/web/assets/RequestAuth.vue-DHU9RNUf.js +0 -1
- package/web/assets/RequestRoot.vue-BiM2Tr20.js +0 -19
- package/web/assets/ScalarAsciiArt.vue-2vz_9aEa.js +0 -2
- package/web/assets/ScenarioEditorPage-BzPL_7Up.js +0 -14
- package/web/assets/ServerVariablesForm.vue-Dj2R8IEV.js +0 -1
- package/web/assets/ServiceControlsBar-CsHZTuPK.js +0 -1
- package/web/assets/ServiceDetailPage-Csf55wQD.js +0 -2
- package/web/assets/ServiceFormPage-DDJYv2z3.js +0 -1
- package/web/assets/Settings.vue-Dyzw_xwE.js +0 -1
- package/web/assets/SettingsPage-CYQGpGyw.js +0 -225
- package/web/assets/SetupKeyPage-CnaFhUR6.js +0 -1
- package/web/assets/SetupPage-sqBZmTQ9.js +0 -1
- package/web/assets/Sidebar.vue-DqiliUT_.js +0 -1
- package/web/assets/SidebarButton.vue-MCBoC3jO.js +0 -1
- package/web/assets/SidebarListElement.vue-DswWWg_S.js +0 -1
- package/web/assets/UnlockPage-rDy89SdE.js +0 -1
- package/web/assets/VariablesTable-CEaksHyg.js +0 -1
- package/web/assets/ViewLayout.vue-CgpeQh3K.js +0 -1
- package/web/assets/ViewLayoutContent.vue-DP_GK_Ip.js +0 -1
- package/web/assets/ViewLayoutSection.vue-YQYzkcAB.js +0 -1
- package/web/assets/active-entities-CWFFm964.js +0 -1
- package/web/assets/api-reference-UJl6P2J4.js +0 -1
- package/web/assets/autocomplete-CK9Z1-Wz.js +0 -422
- package/web/assets/card-DadsU5ZI.js +0 -32
- package/web/assets/column-Cp1kVQOt.js +0 -763
- package/web/assets/core-7y546zlP.js +0 -1
- package/web/assets/cssMode-CIUATcSv.js +0 -4
- package/web/assets/dist-BLSATgV0.js +0 -1
- package/web/assets/dist-DR4LqG1l.js +0 -192
- package/web/assets/editor.store-COpS72tz.js +0 -1
- package/web/assets/handlebars-ChbvHuc-.js +0 -1
- package/web/assets/html-DOIF2Zpc.js +0 -1
- package/web/assets/htmlMode-DKICvQwb.js +0 -4
- package/web/assets/index-A6eiSk8H.css +0 -1
- package/web/assets/liquid-3ot_oRqd.js +0 -1
- package/web/assets/mdx-Cm1rlDNM.js +0 -1
- package/web/assets/multiselect-BZbgA1pl.js +0 -251
- package/web/assets/pretty-ms-XBeIOdhN.js +0 -202
- package/web/assets/process.store-jv0SI_6q.js +0 -1
- package/web/assets/project.store-DHXLE6Lv.js +0 -1
- package/web/assets/python-BuQCsdKw.js +0 -1
- package/web/assets/razor-DgnEPQLs.js +0 -1
- package/web/assets/router-w5lyb-nn.js +0 -1
- package/web/assets/settings.store-bNnLJ43c.js +0 -1
- package/web/assets/store-DWOu5TTl.js +0 -1840
- package/web/assets/tag-DV-szbCr.js +0 -54
- package/web/assets/trpc-wp_QsEqG.js +0 -1
- package/web/assets/typescript-BRYpIqKe.js +0 -1
- package/web/assets/urls-CoBMqtDH.js +0 -12
- package/web/assets/useAiChatDrawer-BhlTNoXz.js +0 -1
- package/web/assets/useSidebar-77_u4hef.js +0 -1
- package/web/assets/xml-Cz29Bxul.js +0 -1
- package/web/assets/yaml-CiZl2tNW.js +0 -1
- /package/{agent-manager-V47DLMYP-26VYXTSG.js.map → agent-manager-3DHUF2DC-KN6O7WSA.js.map} +0 -0
- /package/web/assets/{_plugin-vue_export-helper-BVSTY9ge.js → _plugin-vue_export-helper-C08BWUE4.js} +0 -0
- /package/web/assets/{abap-BF8nUS5p.js → abap-BMPR0rjj.js} +0 -0
- /package/web/assets/{apex-Bbj_Fak2.js → apex-DYC4uYYf.js} +0 -0
- /package/web/assets/{azcli-B8w3JS7J.js → azcli-GZlxEjpa.js} +0 -0
- /package/web/assets/{base64-CG47Jc3Y.js → base64-VLYHbiMn.js} +0 -0
- /package/web/assets/{bat-CaNuqacB.js → bat-Cv8OxItG.js} +0 -0
- /package/web/assets/{bicep-DAvnLugW.js → bicep-CuCbE6Ue.js} +0 -0
- /package/web/assets/{cameligo-BlI8LCmP.js → cameligo-BEPX3585.js} +0 -0
- /package/web/assets/{clojure-CxxhrBQl.js → clojure--6rbXIPY.js} +0 -0
- /package/web/assets/{coffee-SkbnTBhO.js → coffee-ByvVcDGX.js} +0 -0
- /package/web/assets/{cpp-Dm2HJxj0.js → cpp-CECtPnZp.js} +0 -0
- /package/web/assets/{csharp-BOGHPGcq.js → csharp-DyYyZ8UX.js} +0 -0
- /package/web/assets/{csp-CMA_7tOs.js → csp-B9apvcI9.js} +0 -0
- /package/web/assets/{css-DU8LSGcn.js → css-CfdBNbB0.js} +0 -0
- /package/web/assets/{cypher-BZPsEDmT.js → cypher-BPqQq4XX.js} +0 -0
- /package/web/assets/{dart-C1tIJhFk.js → dart-BLToxiYU.js} +0 -0
- /package/web/assets/{dist-BPIMeATj.js → dist-COg0nRYK.js} +0 -0
- /package/web/assets/{dockerfile-z4dmGi5q.js → dockerfile-CKo5jN7V.js} +0 -0
- /package/web/assets/{ecl-Rv9JwhOI.js → ecl-qo8pi1Ty.js} +0 -0
- /package/web/assets/{elixir-DL6xFSed.js → elixir-Dv1YAMPJ.js} +0 -0
- /package/web/assets/{flow9-DFZ52-2d.js → flow9-BKTKs1nN.js} +0 -0
- /package/web/assets/{fsharp-RvVOB9Dm.js → fsharp-BPoxgmtD.js} +0 -0
- /package/web/assets/{go-B2USMDMv.js → go-DgJ-2ryf.js} +0 -0
- /package/web/assets/{graphql-CsHpCYeJ.js → graphql-YTK8zpFe.js} +0 -0
- /package/web/assets/{hcl-CK021J-J.js → hcl-tYOvwaJ3.js} +0 -0
- /package/web/assets/{ini-v1EoSUxR.js → ini-BTZ3lNbM.js} +0 -0
- /package/web/assets/{java-CUXpSPxY.js → java-boRe0CIQ.js} +0 -0
- /package/web/assets/{julia-DwKveiZg.js → julia-K6BtoWYX.js} +0 -0
- /package/web/assets/{kotlin-SsG_4ZBt.js → kotlin-CglG00z4.js} +0 -0
- /package/web/assets/{less-BviquM8A.js → less-DlnIYk4g.js} +0 -0
- /package/web/assets/{lexon-C8G_qWst.js → lexon-D4aKXJ0J.js} +0 -0
- /package/web/assets/{lua-xqYje_o5.js → lua-DeQCQ0IN.js} +0 -0
- /package/web/assets/{m3-B5PetinG.js → m3-yCjRJP_i.js} +0 -0
- /package/web/assets/{markdown-BksexNux.js → markdown-C2IT79AR.js} +0 -0
- /package/web/assets/{mips-DKSTezUQ.js → mips-BAnhwv_D.js} +0 -0
- /package/web/assets/{msdax-SeFNE86e.js → msdax-D1jHDTih.js} +0 -0
- /package/web/assets/{mysql-5TQWJDdB.js → mysql-CTJU-jL7.js} +0 -0
- /package/web/assets/{objective-c-DeaYl08g.js → objective-c-CwxzUA28.js} +0 -0
- /package/web/assets/{pascal-CGBtIfZg.js → pascal-DpSQp86i.js} +0 -0
- /package/web/assets/{pascaligo-B85wuk0w.js → pascaligo-C4F0Gc12.js} +0 -0
- /package/web/assets/{perl-Bl61zsEQ.js → perl-87HvGh3u.js} +0 -0
- /package/web/assets/{pgsql-KgXv5Cq7.js → pgsql-DUB3YVHd.js} +0 -0
- /package/web/assets/{php-KRRf0kxu.js → php-gpgbnwXh.js} +0 -0
- /package/web/assets/{pla-CFpO6lSz.js → pla-9VH1h0qA.js} +0 -0
- /package/web/assets/{postiats-B0jQ-DXO.js → postiats-DYNil0RB.js} +0 -0
- /package/web/assets/{powerquery-T9Ge5xUx.js → powerquery-Cyj_QMWN.js} +0 -0
- /package/web/assets/{powershell-rmYjKoE4.js → powershell-BxsWzjwy.js} +0 -0
- /package/web/assets/{protobuf-B--9ME3E.js → protobuf-CpB35fc2.js} +0 -0
- /package/web/assets/{pug-y0-ppnAV.js → pug-CQ3BHXrf.js} +0 -0
- /package/web/assets/{qsharp-DobgOAC8.js → qsharp-hvdiA16n.js} +0 -0
- /package/web/assets/{r-BHQZIThn.js → r-BcpSD-1e.js} +0 -0
- /package/web/assets/{redis-DMHMVIni.js → redis-B2JGUU7L.js} +0 -0
- /package/web/assets/{redshift-ilRjY5HF.js → redshift-DtV7K8A1.js} +0 -0
- /package/web/assets/{restructuredtext-jr4YYJbv.js → restructuredtext-avYcqBCA.js} +0 -0
- /package/web/assets/{ruby-D-h_0NIs.js → ruby-B75_Tp8C.js} +0 -0
- /package/web/assets/{rust-VxeTSQU2.js → rust-CHon-ZXH.js} +0 -0
- /package/web/assets/{sb-BlhKufrP.js → sb-iehvyQKY.js} +0 -0
- /package/web/assets/{scala-IAk6nSCU.js → scala-LBw1ennX.js} +0 -0
- /package/web/assets/{scheme-Dggdm5LS.js → scheme-BRK_sKgt.js} +0 -0
- /package/web/assets/{scss-Bzj9Cp1q.js → scss-CzbUsG5V.js} +0 -0
- /package/web/assets/{shell-CSwYJdGJ.js → shell-DdtWj1FH.js} +0 -0
- /package/web/assets/{solidity-DnWqIXnk.js → solidity-CBYPsj6K.js} +0 -0
- /package/web/assets/{sophia-ClaYC_5N.js → sophia-BAmZLhFu.js} +0 -0
- /package/web/assets/{sparql-CfjIZAcz.js → sparql-DzxQz_25.js} +0 -0
- /package/web/assets/{sql-DxdJ7snd.js → sql-CtZa8xg5.js} +0 -0
- /package/web/assets/{st-DJgQE1uj.js → st-3yAXYt2f.js} +0 -0
- /package/web/assets/{swift-5cz3wIvv.js → swift-nwo4k0Qx.js} +0 -0
- /package/web/assets/{systemverilog-C8-7QuIt.js → systemverilog-38mUSYaO.js} +0 -0
- /package/web/assets/{tcl-C99u42o5.js → tcl-DfkL3MZ2.js} +0 -0
- /package/web/assets/{twig-Cv9kOcBK.js → twig-C2_DTvv-.js} +0 -0
- /package/web/assets/{typespec-DF1s-ehc.js → typespec-Dn7A_7aO.js} +0 -0
- /package/web/assets/{uuid-6HQMUkhT.js → uuid-H0yY5A03.js} +0 -0
- /package/web/assets/{vb-4mpz9ITX.js → vb-ByZEqbuQ.js} +0 -0
- /package/web/assets/{w3c-keyname-emj7Fjc1.js → w3c-keyname-CXRaQfIQ.js} +0 -0
- /package/web/assets/{wgsl-xExw6Z08.js → wgsl-BqCLRRs9.js} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{Aa as e,B as t,Bi as n,Dn as r,En as i,Hi as a,Hn as o,I as s,K as c,Kn as l,M as u,N as d,O as f,Oa as p,Pi as m,R as h,Ri as g,Sa as _,Si as v,Ta as y,Tn as b,V as x,Vn as S,W as C,Wi as w,Y as T,Zn as ee,_a as E,_n as D,a as O,aa as k,ai as A,at as j,ct as te,di as M,ei as ne,f as re,fa as N,fi as P,gn as ie,h as ae,ha as oe,ii as F,it as se,ja as I,ji as ce,k as le,kn as L,mi as R,oa as ue,ot as de,p as fe,pi as z,pt as pe,qn as me,rt as he,si as B,st as ge,ta as _e,ua as ve,ui as V,ut as ye,vi as H,wi as be,wn as xe,xi as U,yi as W,z as Se,zn as Ce}from"./index-C0UzL9Y-.js";import{t as we}from"./project.store-DHXLE6Lv.js";import{t as Te}from"./tag-DV-szbCr.js";import{t as Ee}from"./editor.store-COpS72tz.js";import"./ProcessControls-DVQwL-qx.js";import{t as De}from"./ServiceControlsBar-CsHZTuPK.js";import{n as Oe,t as ke}from"./column-Cp1kVQOt.js";import{n as Ae}from"./plus-B-AhHpHU.js";import{t as je}from"./checkbox-4z5ftHhs.js";import{n as Me,t as Ne}from"./autocomplete-CK9Z1-Wz.js";import{a as Pe,i as Fe,n as Ie,r as Le,t as Re}from"./tabpanel-CIyzJ44J.js";import{n as ze,t as Be}from"./VariablesTable-CEaksHyg.js";import{t as Ve}from"./uuid-6HQMUkhT.js";import{t as He}from"./message-DFReN7Fq.js";import{n as Ue,t as We}from"./ProcessMetrics-9RjmvDOk.js";import{t as Ge}from"./LogViewer-CXVXsymr.js";import{t as Ke}from"./divider-D-vBLTer.js";import{t as qe}from"./settings.store-bNnLJ43c.js";var Je={key:0,class:`log-details`},Ye={class:`log-details__section`},Xe={class:`log-details__label`},Ze={class:`log-details__value log-details__value--box`},Qe={class:`log-details__section`},$e={class:`log-details__label`},et={class:`log-details__value log-details__value--box log-details__value--code`},tt={class:`log-details__section`},nt={class:`log-details__label`},rt={class:`log-details__value log-details__value--box`},it={class:`log-details__process`},at={class:`log-details__section`},ot={class:`log-details__label`},st={class:`log-details__value log-details__value--box`},ct={class:`log-details__section`},lt={class:`log-details__label`},ut={class:`log-details__value log-details__value--box`},dt={key:0,class:`log-details__section`},ft={class:`log-details__label`},pt={class:`log-details__value log-details__value--box`},mt={key:1,class:`log-details__section`},ht={class:`log-details__label`},gt={class:`log-details__value log-details__value--box log-details__value--code`},_t=b(U({__name:`LogDetailsDrawer`,props:{visible:{type:Boolean},log:{}},emits:[`update:visible`,`view-process`],setup(e,{emit:t}){let n=e,{t:r}=ee(),o=t,s=V(()=>{if(!n.log)return``;let e=new Date(n.log.timestamp);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)} ${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}:${String(e.getSeconds()).padStart(2,`0`)}`}),c=V(()=>n.log?n.log.level.charAt(0).toUpperCase()+n.log.level.slice(1):``),l=V(()=>!n.log||n.log.pid==null?r(`logDetails.notAvailable`):String(n.log.pid));function u(){n.log&&o(`view-process`,n.log.processId)}function d(){o(`update:visible`,!1)}return(t,n)=>(a(),P(y(i),{visible:e.visible,position:`right`,header:y(r)(`logDetails.header`),style:{width:`440px`},"onUpdate:visible":d},{default:k(()=>[e.log?(a(),R(`div`,Je,[M(`div`,Ye,[M(`div`,Xe,I(y(r)(`logDetails.type`)),1),M(`div`,Ze,I(c.value),1)]),M(`div`,Qe,[M(`div`,$e,I(y(r)(`logDetails.rawMessage`)),1),M(`div`,et,I(e.log.raw),1)]),M(`div`,tt,[M(`div`,nt,I(y(r)(`logDetails.serviceId`)),1),M(`div`,rt,[M(`div`,it,[M(`span`,null,I(e.log.processId),1),W(y(L),{label:y(r)(`logDetails.viewProcess`),icon:`pi pi-external-link`,size:`small`,outlined:``,onClick:u},null,8,[`label`])])])]),M(`div`,at,[M(`div`,ot,I(y(r)(`logDetails.pid`)),1),M(`div`,st,I(l.value),1)]),M(`div`,ct,[M(`div`,lt,I(y(r)(`logDetails.timestamp`)),1),M(`div`,ut,I(s.value),1)]),e.log.stream?(a(),R(`div`,dt,[M(`div`,ft,I(y(r)(`logDetails.stream`)),1),M(`div`,pt,I(e.log.stream),1)])):z(``,!0),e.log.metadata&&Object.keys(e.log.metadata).length>0?(a(),R(`div`,mt,[M(`div`,ht,I(y(r)(`logDetails.metadata`)),1),M(`div`,gt,I(JSON.stringify(e.log.metadata,null,2)),1)])):z(``,!0)])):z(``,!0)]),_:1},8,[`visible`,`header`]))}}),[[`__scopeId`,`data-v-5781eb9d`]]),vt=500,yt=5,bt=ye;function xt(e){return e+Math.random()*e*.3}function St(e,t){let r=E([]),i=E(!1),a=null,o=0,s=null,c=ie(()=>{o=0,i.value||x()}),l=[],u=null,d=E(0),f=E(0),p=0,m=0,h=null;function g(){h||=setInterval(()=>{d.value=p,f.value=m,p=0,m=0},1e3)}function _(){h&&=(clearInterval(h),null),d.value=0,f.value=0,p=0,m=0}function v(){if(u=null,l.length===0)return;let e=l;l=[],m+=e.length;let t=[...r.value,...e];t.length>vt&&(t=t.slice(t.length-vt)),r.value=t}function y(){!e.value||!t.value||(i.value=!0,a=D.process.onLog.subscribe({agentId:e.value,processId:t.value},{onData(e){let t=e;if(o=0,xe(`connected`),t.some(e=>e.__clearLogBuffer)){r.value=[],l=[];return}p+=t.length,l.push(...t),u===null&&(u=requestAnimationFrame(v))},onError(e){console.error(`[useLogStream] Subscription error:`,e.message),i.value=!1,a=null,b()}}))}function b(){if(o>=yt){console.warn(`[useLogStream] Max retries (${yt}) reached`),xe(`disconnected`);return}xe(`reconnecting`);let e=xt(bt*2**o);o++,s=setTimeout(()=>{s=null,x()},e)}async function x(){if(!i.value&&!(!e.value||!t.value)){o=0;try{let n=await D.process.logs.query({agentId:e.value,processId:t.value});n.length>vt&&(n=n.slice(n.length-vt)),r.value=n,xe(`connected`)}catch{}y()}}function S(){s&&=(clearTimeout(s),null),u!==null&&(cancelAnimationFrame(u),u=null),l=[],_(),a&&=(a.unsubscribe(),null),i.value=!1,o=0,r.value=[]}return _e([e,t],([e,t],[n,r])=>{(e!==n||t!==r)&&(i.value&&S(),x())}),n(()=>{c(),S()}),{logs:r,isStreaming:i,start:x,stop:S,receivedPerSec:d,flushedPerSec:f,startStats:g,stopStats:_}}var Ct={class:`service-terminal__toolbar`},wt={class:`service-terminal__toolbar-left`},Tt={key:0,class:`pid-option`},Et={key:1,class:`pid-option`},Dt={key:0,class:`pi pi-circle-fill pid-status-icon pid-status-icon--active`,style:{"margin-right":`0.5rem`}},Ot={key:1,class:`pi pi-circle-fill pid-status-icon pid-status-icon--stopped`,style:{"margin-right":`0.5rem`}},kt={class:`pid-option`},At={key:0,class:`pi pi-list`,style:{"margin-right":`0.5rem`}},jt=[`title`],Mt=[`title`],Nt={class:`service-terminal__toolbar-right`},Pt={class:`service-terminal__content`,"data-testid":`service-terminal-content`},Ft={key:1,class:`service-terminal__shortcuts`},It={class:`service-terminal__command-input`},Lt={class:`service-terminal__bottom`},Rt=`runeya_command_history_`,zt=50,Bt=b(U({__name:`ServiceTerminal`,props:{service:{},processes:{}},setup(e){let{t}=ee(),r=e,i=V(()=>r.processes.find(e=>e.state===`running`||e.state===`starting`)??r.processes[0]??null),o=V(()=>i.value?.agentId??``),s=V(()=>i.value?.id??``),l=me(),{logs:u,isStreaming:d,start:f,stop:m,receivedPerSec:h,flushedPerSec:_,startStats:v,stopStats:b}=St(o,s),x=E(!1);_e(x,e=>{e?v():b()});function S(e){e.ctrlKey&&e.shiftKey&&(e.key===`*`||e.key===`µ`)&&(e.preventDefault(),x.value=!x.value)}let C=V(()=>{let e=new Map;return u.value.forEach(t=>{if(t.pid!=null){let n=e.get(t.pid);if(n)n.lastSeen=new Date(Math.max(n.lastSeen.getTime(),new Date(t.timestamp).getTime())),n.logCount++;else{let n=r.processes.find(e=>e.pid===t.pid&&(e.state===`running`||e.state===`starting`));e.set(t.pid,{pid:t.pid,lastSeen:new Date(t.timestamp),logCount:1,isActive:!!n})}}}),Array.from(e.values()).sort((e,t)=>t.lastSeen.getTime()-e.lastSeen.getTime())}),T=V(()=>Oe.value===`all`?u.value:u.value.filter(e=>e.pid===Oe.value)),O=V(()=>C.value.filter(e=>e.isActive).length),A=V(()=>{let e=[{label:t(`serviceTerminal.allProcesses`),value:`all`,badge:O.value>0?`${O.value} ${t(`serviceTerminal.active`)}`:void 0,isActive:void 0}];return C.value.forEach(({pid:t,logCount:n,isActive:r})=>{e.push({label:`PID: ${t}`,value:t,badge:`${n} logs`,isActive:r})}),e});V(()=>r.processes.filter(e=>e.state===`running`).length);async function j(){if(i.value)try{await D.process.clearLogBuffer.mutate({agentId:i.value.agentId,processId:i.value.id}),u.value=[]}catch(e){l.add({severity:`error`,summary:t(`serviceTerminal.error`),detail:e.message??t(`serviceTerminal.failedToClearLogs`),life:5e3})}}let te=V(()=>r.service.shortcuts??[]),ne=E(new Set);async function re(e){let n=i.value?.agentId??r.service.agentId,a=i.value?.id??r.service.id;if(!n){l.add({severity:`warn`,summary:t(`serviceTerminal.noAgent`),detail:t(`serviceTerminal.noAgentDesc`),life:3e3});return}if(ne.value.has(e.id)){try{await D.process.cancelShortcut.mutate({agentId:n,processId:a,shortcutId:e.id})}catch{}return}ne.value=new Set([...ne.value,e.id]);try{await D.process.executeShortcut.mutate({agentId:n,processId:a,shortcut:e})}catch(e){l.add({severity:`error`,summary:t(`serviceTerminal.shortcutFailed`),detail:e.message??t(`serviceTerminal.shortcutFailed`),life:5e3})}finally{let t=new Set(ne.value);t.delete(e.id),ne.value=t}}let N=E(``),ie=E(new Set),ae=V(()=>ie.value.size>0),oe=E(null),F=E([]),se=E(-1),le=`ls,ls -la,ls -lh,pwd,echo,echo $PWD,cat,cat package.json,grep,find,find . -name,ps,ps aux,top,htop,df -h,du -sh,tail,tail -f,tail -n 100,head,head -n 20,wc -l,curl,wget,git status,git log,git diff,git branch,npm run,npm install,npm test,npm start,yarn,yarn install,yarn test,yarn build,docker ps,docker logs,docker exec,env,printenv,whoami,hostname,date,uptime`.split(`,`),ue=E([]);function de(e){let t=e.query.toLowerCase().trim();if(!t||!N.value.trim()){ue.value=[];return}let n=[...F.value.slice().reverse(),...le],r=new Set;ue.value=n.filter(e=>r.has(e)?!1:(r.add(e),e.toLowerCase().includes(t))).slice(0,10)}function fe(){try{let e=localStorage.getItem(Rt+r.service.id);e&&(F.value=JSON.parse(e))}catch{F.value=[]}}function pe(){try{localStorage.setItem(Rt+r.service.id,JSON.stringify(F.value))}catch{}}function he(e){F.value[F.value.length-1]!==e&&(F.value=[...F.value,e],F.value.length>zt&&(F.value=F.value.slice(-zt)),pe())}async function ge(){let e=i.value?.agentId??r.service.agentId,t=i.value?.id??r.service.id;if(e)try{await D.process.cancelAdHocCommand.mutate({agentId:e,processId:t})}catch{}}async function ve(){if(!N.value.trim())return;let e=i.value?.agentId??r.service.agentId,n=i.value?.id??r.service.id;if(!e){l.add({severity:`warn`,summary:t(`serviceTerminal.noAgent`),detail:t(`serviceTerminal.noAgentDesc`),life:3e3});return}let a=Ve(),o=N.value.trim();he(o),N.value=``,ue.value=[],se.value=-1,ie.value=new Set([...ie.value,a]);try{await D.process.executeAdHocCommand.mutate({agentId:e,processId:n,command:o,commandId:a})}catch(e){l.add({severity:`error`,summary:t(`serviceTerminal.commandFailed`),detail:e.message??t(`serviceTerminal.commandFailed`),life:5e3})}finally{let e=new Set(ie.value);e.delete(a),ie.value=e,ce(()=>{document.querySelector(`.service-terminal__input`)?.focus()})}}function ye(e){if(e.key===`Enter`&&!e.shiftKey){e.preventDefault(),ve();return}if(e.key===`ArrowUp`){if(e.preventDefault(),F.value.length===0)return;se.value===-1?se.value=F.value.length-1:se.value>0&&se.value--,N.value=F.value[se.value]||``}else if(e.key===`ArrowDown`){if(e.preventDefault(),se.value===-1)return;se.value<F.value.length-1?(se.value++,N.value=F.value[se.value]||``):(se.value=-1,N.value=``)}}function H(){if(u.value.length===0)return;let e=u.value.map(e=>`[${new Date(e.timestamp).toISOString()}] ${e.level.toUpperCase().padEnd(5)} ${e.message}`),t=new Blob([e.join(`
|
|
2
|
-
`)],{type:`text/plain`}),n=URL.createObjectURL(t),i=document.createElement(`a`);i.href=n,i.download=`${r.service.name}-${new Date().toISOString().slice(0,19).replace(/:/g,`-`)}.log`,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(n)}let be=E(0),xe=0,U=null,Se=null;_e(i,e=>{if(!(e&&(e.state===`running`||e.state===`starting`))){U&&=(clearInterval(U),null),Se=null,be.value=e?.uptime??0;return}let t=e.uptime??0;e.id!==Se&&(U&&=(clearInterval(U),null),Se=e.id,xe=e.startedAt?new Date(e.startedAt).getTime():Date.now()-t,be.value=Date.now()-xe,U=setInterval(()=>{be.value=Date.now()-xe},1e3))},{immediate:!0});let Ce=E(!0),we=E(null),Ee=E(!1),Oe=E(`all`),ke=E(!1);function Ae(){ke.value=!ke.value}g(()=>{fe(),i.value&&f(),window.addEventListener(`keydown`,S)}),n(()=>{m(),window.removeEventListener(`keydown`,S),U&&clearInterval(U)});function je(e){let t=Math.floor(e/3600),n=Math.floor(e%3600/60),r=Math.floor(e%60);return`${t.toString().padStart(2,`0`)}:${n.toString().padStart(2,`0`)}:${r.toString().padStart(2,`0`)}`}function Me(e){we.value=e,Ee.value=!0}function Pe(e){Ee.value=!1,l.add({severity:`info`,summary:`Process`,detail:`Process ID: ${e}`,life:3e3})}return(n,o)=>(a(),R(`div`,{class:p([`service-terminal`,{"service-terminal--fullscreen":ke.value}]),"data-testid":`service-terminal`},[ke.value?(a(),P(De,{key:0,service:e.service,processes:e.processes},null,8,[`service`,`processes`])):z(``,!0),M(`div`,Ct,[M(`div`,wt,[W(y(L),{label:y(t)(`serviceTerminal.logs`),severity:Ce.value?`primary`:`secondary`,text:``,size:`small`,onClick:o[0]||=e=>Ce.value=!0},null,8,[`label`,`severity`]),W(y(c),{modelValue:Oe.value,"onUpdate:modelValue":o[1]||=e=>Oe.value=e,options:A.value,"option-label":`label`,"option-value":`value`,class:`service-terminal__pid-selector`},{value:k(e=>[e.value===`all`?(a(),R(`div`,Tt,[o[5]||=M(`i`,{class:`pi pi-list`,style:{"margin-right":`0.5rem`}},null,-1),M(`span`,null,I(y(t)(`serviceTerminal.allProcesses`)),1),O.value>0?(a(),P(y(Te),{key:0,value:`${O.value} ${y(t)(`serviceTerminal.active`)}`,severity:`secondary`,class:`pid-badge`},null,8,[`value`])):z(``,!0)])):(a(),R(`div`,Et,[A.value.find(t=>t.value===e.value)?.isActive?(a(),R(`i`,Dt)):(a(),R(`i`,Ot)),M(`span`,null,`PID: `+I(e.value),1)]))]),option:k(e=>[M(`div`,kt,[e.option.value===`all`?(a(),R(`i`,At)):e.option.isActive?(a(),R(`i`,{key:1,class:`pi pi-circle-fill pid-status-icon pid-status-icon--active`,title:y(t)(`serviceTerminal.running`)},null,8,jt)):(a(),R(`i`,{key:2,class:`pi pi-circle-fill pid-status-icon pid-status-icon--stopped`,title:y(t)(`serviceTerminal.stopped`)},null,8,Mt)),M(`span`,null,I(e.option.label),1),e.option.badge?(a(),P(y(Te),{key:3,value:e.option.badge,severity:`secondary`,class:`pid-badge`},null,8,[`value`])):z(``,!0)])]),_:1},8,[`modelValue`,`options`])]),M(`div`,Nt,[W(y(L),{icon:ke.value?`pi pi-window-minimize`:`pi pi-window-maximize`,text:``,rounded:``,size:`small`,title:ke.value?y(t)(`serviceTerminal.exitFullscreen`):y(t)(`serviceTerminal.fullscreen`),onClick:Ae},null,8,[`icon`,`title`]),W(y(L),{icon:`pi pi-download`,text:``,rounded:``,size:`small`,title:y(t)(`serviceTerminal.downloadLogs`),disabled:y(u).length===0,onClick:H},null,8,[`title`,`disabled`]),W(y(L),{icon:`pi pi-trash`,text:``,rounded:``,size:`small`,title:y(t)(`serviceTerminal.clearLogs`),disabled:y(u).length===0,onClick:j},null,8,[`title`,`disabled`])])]),M(`div`,Pt,[W(Ge,{logs:T.value,loading:!1,"received-per-sec":y(h),"flushed-per-sec":y(_),"show-stats":x.value,"service-label":r.service.label||r.service.name,onLogClick:Me},null,8,[`logs`,`received-per-sec`,`flushed-per-sec`,`show-stats`,`service-label`])]),te.value.length>0?(a(),R(`div`,Ft,[(a(!0),R(B,null,w(te.value,e=>(a(),P(y(L),{key:e.id,label:e.label||e.command,"data-shortcut-id":e.id,class:`shortcut-badge`,icon:ne.value.has(e.id)?`pi pi-stop`:`pi pi-play`,size:`small`,outlined:!ne.value.has(e.id),severity:ne.value.has(e.id)?`danger`:void 0,onClick:t=>re(e)},null,8,[`label`,`data-shortcut-id`,`icon`,`outlined`,`severity`,`onClick`]))),128))])):z(``,!0),M(`div`,It,[o[6]||=M(`span`,{class:`service-terminal__prompt`,"data-testid":`terminal-prompt`},`>`,-1),W(y(Ne),{ref_key:`adHocCommandInput`,ref:oe,modelValue:N.value,"onUpdate:modelValue":o[2]||=e=>N.value=e,suggestions:ue.value,class:`service-terminal__autocomplete`,"input-class":`service-terminal__input`,placeholder:y(t)(`serviceTerminal.enterCommand`),"aria-label":y(t)(`serviceTerminal.enterCommand`),disabled:!(i.value?.agentId??r.service.agentId),"data-testid":`terminal-command-input`,onComplete:de,onKeydown:ye},null,8,[`modelValue`,`suggestions`,`placeholder`,`aria-label`,`disabled`]),W(y(L),{icon:ae.value?`pi pi-stop`:`pi pi-play`,severity:ae.value?`danger`:void 0,size:`small`,"data-testid":`terminal-run-btn`,disabled:!(i.value?.agentId??r.service.agentId)||!N.value.trim()&&!ae.value,onClick:o[3]||=e=>ae.value?ge():ve()},null,8,[`icon`,`severity`,`disabled`])]),M(`div`,Lt,[i.value?(a(),P(y(Te),{key:0,icon:`pi pi-server`,value:i.value.agentId.slice(0,8),severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):z(``,!0),e.service.cwd?(a(),P(y(Te),{key:1,icon:`pi pi-folder`,value:e.service.cwd,severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):z(``,!0),i.value&&(i.value.state===`running`||i.value.state===`starting`)?(a(),P(y(Te),{key:2,icon:`pi pi-clock`,value:je(be.value/1e3),severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):z(``,!0)]),W(_t,{visible:Ee.value,"onUpdate:visible":o[4]||=e=>Ee.value=e,log:we.value,onViewProcess:Pe},null,8,[`visible`,`log`])],2))}}),[[`__scopeId`,`data-v-6454acb1`]]),Vt=5,Ht=ye;function Ut(e){return e+Math.random()*e*.3}function Wt(e,t){let r=E(null),i=E(!1),a=E(!1),o=null,s=0,c=null;async function l(){if(!i.value){a.value=!0;try{r.value=await D.process.metrics.query({agentId:e.value,processId:t.value})}catch(e){console.error(`Failed to fetch initial metrics:`,j(e))}finally{a.value=!1}u()}}function u(){i.value=!0,o=D.process.onMetrics.subscribe({agentId:e.value,processId:t.value},{onData(e){s=0,xe(`connected`),r.value=e},onError(e){console.error(`Metrics stream error:`,e),i.value=!1,o=null,d()}})}function d(){if(s>=Vt){console.warn(`Metrics stream: max retries (${Vt}) reached, giving up`),xe(`disconnected`);return}xe(`reconnecting`);let e=Ut(Ht*2**s);s++,c=setTimeout(()=>{c=null,u()},e)}function f(){c&&=(clearTimeout(c),null),o&&=(o.unsubscribe(),null),i.value=!1,s=0}return _e([e,t],([e,t],[n,r])=>{(e!==n||t!==r)&&i.value&&(f(),l())}),n(()=>{f()}),{metrics:r,isStreaming:i,isLoading:a,start:l,stop:f}}var Gt={class:`service-metrics`,"data-testid":`service-metrics`},Kt={key:1,class:`service-metrics__skeleton`},qt={class:`metric-skeleton`},Jt={class:`metric-skeleton`},Yt={key:2,class:`service-metrics__no-data`},Xt={key:1,class:`service-metrics__no-process`},Zt=b(U({__name:`ServiceMetrics`,props:{service:{},processes:{}},setup(e){let t=e,r=V(()=>t.processes.find(e=>e.state===`running`||e.state===`starting`)??t.processes[0]??null),i=V(()=>r.value?.agentId??``),o=V(()=>r.value?.id??``),{t:s}=ee(),{metrics:c,isLoading:l,start:u,stop:d}=Wt(i,o);return g(()=>{r.value&&u()}),n(()=>{d()}),(e,t)=>(a(),R(`div`,Gt,[r.value?(a(),R(B,{key:0},[y(c)?(a(),P(We,{key:0,cpu:y(c).cpu,memory:y(c).memory},null,8,[`cpu`,`memory`])):y(l)?(a(),R(`div`,Kt,[M(`div`,qt,[W(y(Ue),{width:`4rem`,height:`0.75rem`,class:`mb-2`}),W(y(Ue),{width:`3rem`,height:`1.75rem`,class:`mb-3`}),W(y(Ue),{width:`100%`,height:`6px`,"border-radius":`4px`})]),M(`div`,Jt,[W(y(Ue),{width:`4rem`,height:`0.75rem`,class:`mb-2`}),W(y(Ue),{width:`3rem`,height:`1.75rem`,class:`mb-3`}),W(y(Ue),{width:`6rem`,height:`0.65rem`})])])):(a(),R(`div`,Yt,I(y(s)(`serviceMetrics.noData`)),1))],64)):(a(),R(`div`,Xt,[t[0]||=M(`i`,{class:`pi pi-info-circle`},null,-1),M(`span`,null,I(y(s)(`serviceMetrics.notRunning`)),1)]))]))}}),[[`__scopeId`,`data-v-94f5993b`]]),Qt=`runeya:debug`,$t=E(localStorage.getItem(Qt)===`true`);function en(){function e(){$t.value=!$t.value,localStorage.setItem(Qt,String($t.value))}return{isDebug:$t,toggle:e}}var tn={class:`config-general`},nn={class:`config-card`},rn={class:`config-card__header`},an={class:`config-card`},on={class:`config-card__header`},sn={class:`config-card__hint`},cn={class:`config-card`},ln={class:`config-card__header`},un={class:`config-card__hint`},dn={class:`config-card`},fn={class:`config-card__header`},pn={class:`config-card__hint`},mn={class:`config-card`},hn={class:`config-card__header`},gn={class:`config-card__hint`},_n={class:`config-card`},vn={class:`config-card__header`},yn={class:`config-card__hint`},bn={class:`config-card`},xn={class:`config-card__header`},Sn={class:`config-card__hint`},Cn={class:`config-card`},wn={class:`config-card__header`},Tn={class:`config-card__hint`},En={class:`config-card__hint`},Dn={class:`config-card`},On={class:`config-card__header`},kn={class:`config-card__hint`},An={class:`config-meta`},jn={class:`config-card config-card--inline`},Mn={class:`config-card__header`},Nn={class:`config-card config-card--inline`},Pn={class:`config-card__header`},Fn=b(U({__name:`ServiceConfigGeneral`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let{t:n}=ee(),r=e,i=t;function o(e){return Object.entries(e??{}).map(([e,t])=>({key:e,value:t}))}let s=E({name:r.service.name,cwd:r.service.cwd??``,ports:(r.service.ports??[]).map(String),groups:[...r.service.groups??[]],description:r.service.description??``,url:r.service.url??``,openapiUrl:r.service.openapiUrl??``,gitRemote:r.service.git?.remote??``,gitHome:r.service.git?.home??``,autoRestart:r.service.autoRestart,clearLogsOnStart:r.service.clearLogsOnStart??!1}),c=E(o(r.service.meta));_e(()=>r.service,e=>{s.value={name:e.name,cwd:e.cwd??``,ports:(e.ports??[]).map(String),groups:[...e.groups??[]],description:e.description??``,url:e.url??``,openapiUrl:e.openapiUrl??``,gitRemote:e.git?.remote??``,gitHome:e.git?.home??``,autoRestart:e.autoRestart,clearLogsOnStart:e.clearLogsOnStart??!1},c.value=o(e.meta)});function l(){c.value=[...c.value,{key:``,value:``}]}function u(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}:r)}function p(){let e={};for(let{key:t,value:n}of c.value){let r=t.trim();r&&(e[r]=n)}return{name:s.value.name,cwd:s.value.cwd||null,ports:s.value.ports.map(Number).filter(e=>e>0&&e<=65535),groups:s.value.groups,description:s.value.description,url:s.value.url,openapiUrl:s.value.openapiUrl,git:s.value.gitRemote||s.value.gitHome?{remote:s.value.gitRemote||void 0,home:s.value.gitHome||void 0}:null,autoRestart:s.value.autoRestart,clearLogsOnStart:s.value.clearLogsOnStart,meta:Object.keys(e).length>0?e:null}}let m=null;function h(){m&&clearTimeout(m),m=setTimeout(()=>{i(`save`,p()),m=null},150)}return(e,t)=>(a(),R(`div`,tn,[M(`div`,nn,[M(`div`,rn,[t[11]||=M(`i`,{class:`pi pi-tag`},null,-1),M(`span`,null,I(y(n)(`serviceConfigGeneral.name`)),1)]),W(y(T),{modelValue:s.value.name,"onUpdate:modelValue":t[0]||=e=>s.value.name=e,class:`config-card__input`,onBlur:h,onKeydown:F(A(h,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),M(`div`,an,[M(`div`,on,[t[12]||=M(`i`,{class:`pi pi-folder`},null,-1),M(`span`,null,I(y(n)(`serviceConfigGeneral.workingDirectory`)),1)]),W(y(T),{modelValue:s.value.cwd,"onUpdate:modelValue":t[1]||=e=>s.value.cwd=e,class:`config-card__input`,placeholder:`.`,onBlur:h,onKeydown:F(A(h,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),M(`small`,sn,I(y(n)(`serviceConfigGeneral.cwdHint`)),1)]),M(`div`,cn,[M(`div`,ln,[t[13]||=M(`i`,{class:`pi pi-globe`},null,-1),M(`span`,null,I(y(n)(`serviceConfigGeneral.ports`)),1)]),W(y(Ne),{modelValue:s.value.ports,"onUpdate:modelValue":t[2]||=e=>s.value.ports=e,multiple:``,typeahead:!1,class:`config-card__input`,placeholder:y(n)(`serviceConfigGeneral.portsPlaceholder`),onChange:h},null,8,[`modelValue`,`placeholder`]),M(`small`,un,I(y(n)(`serviceConfigGeneral.portsHint`)),1)]),M(`div`,dn,[M(`div`,fn,[t[14]||=M(`i`,{class:`pi pi-th-large`},null,-1),M(`span`,null,I(y(n)(`serviceConfigGeneral.groups`)),1)]),W(y(Ne),{modelValue:s.value.groups,"onUpdate:modelValue":t[3]||=e=>s.value.groups=e,multiple:``,typeahead:!1,class:`config-card__input`,placeholder:y(n)(`serviceConfigGeneral.groupsPlaceholder`),onChange:h},null,8,[`modelValue`,`placeholder`]),M(`small`,pn,I(y(n)(`serviceConfigGeneral.groupsHint`)),1)]),M(`div`,mn,[M(`div`,hn,[t[15]||=M(`i`,{class:`pi pi-info-circle`},null,-1),M(`span`,null,I(y(n)(`serviceConfigGeneral.description`)),1)]),W(y(d),{modelValue:s.value.description,"onUpdate:modelValue":t[4]||=e=>s.value.description=e,class:`config-card__input`,rows:2,onBlur:h},null,8,[`modelValue`]),M(`small`,gn,I(y(n)(`serviceConfigGeneral.descriptionHint`)),1)]),M(`div`,_n,[M(`div`,vn,[t[16]||=M(`i`,{class:`pi pi-external-link`},null,-1),M(`span`,null,I(y(n)(`serviceConfigGeneral.url`)),1)]),W(y(T),{modelValue:s.value.url,"onUpdate:modelValue":t[5]||=e=>s.value.url=e,class:`config-card__input`,placeholder:`https://...`,onBlur:h,onKeydown:F(A(h,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),M(`small`,yn,I(y(n)(`serviceConfigGeneral.urlHint`)),1)]),M(`div`,bn,[M(`div`,xn,[t[17]||=M(`i`,{class:`pi pi-book`},null,-1),M(`span`,null,I(y(n)(`serviceConfigGeneral.openapiUrl`)),1)]),W(y(T),{modelValue:s.value.openapiUrl,"onUpdate:modelValue":t[6]||=e=>s.value.openapiUrl=e,class:`config-card__input`,placeholder:`https://.../swagger.json`,onBlur:h,onKeydown:F(A(h,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),M(`small`,Sn,I(y(n)(`serviceConfigGeneral.openapiUrlHint`)),1)]),M(`div`,Cn,[M(`div`,wn,[t[18]||=M(`i`,{class:`pi pi-github`},null,-1),M(`span`,null,I(y(n)(`serviceConfigGeneral.git`)),1)]),W(y(T),{modelValue:s.value.gitRemote,"onUpdate:modelValue":t[7]||=e=>s.value.gitRemote=e,class:`config-card__input`,placeholder:`git@github.com:org/repo.git`,onBlur:h,onKeydown:F(A(h,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),M(`small`,Tn,I(y(n)(`serviceConfigGeneral.gitRemoteHint`)),1),W(y(T),{modelValue:s.value.gitHome,"onUpdate:modelValue":t[8]||=e=>s.value.gitHome=e,class:`config-card__input`,style:{"margin-top":`0.5rem`},placeholder:`https://github.com/org/repo`,onBlur:h,onKeydown:F(A(h,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),M(`small`,En,I(y(n)(`serviceConfigGeneral.gitHomeHint`)),1)]),M(`div`,Dn,[M(`div`,On,[t[19]||=M(`i`,{class:`pi pi-hashtag`},null,-1),M(`span`,null,I(y(n)(`serviceConfigGeneral.meta`)),1)]),M(`small`,kn,I(y(n)(`serviceConfigGeneral.metaHint`)),1),M(`div`,An,[(a(!0),R(B,null,w(c.value,(e,t)=>(a(),R(`div`,{key:t,class:`config-meta__row`},[W(y(T),{"model-value":e.key,placeholder:y(n)(`serviceConfigGeneral.metaKeyPlaceholder`),class:`config-meta__input`,"onUpdate:modelValue":e=>f(t,`key`,e),onBlur:h,onKeydown:F(A(h,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),W(y(T),{"model-value":e.value,placeholder:y(n)(`serviceConfigGeneral.metaValuePlaceholder`),class:`config-meta__input config-meta__input--wide`,"onUpdate:modelValue":e=>f(t,`value`,e),onBlur:h,onKeydown:F(A(h,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),W(y(L),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:()=>{u(t),h()}},null,8,[`onClick`])]))),128)),W(y(L),{label:y(n)(`serviceConfigGeneral.addEntry`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,class:`config-meta__add`,onClick:l},null,8,[`label`])])]),M(`div`,jn,[M(`div`,Mn,[t[20]||=M(`i`,{class:`pi pi-refresh`},null,-1),M(`span`,null,I(y(n)(`serviceConfigGeneral.autoRestart`)),1)]),W(y(Me),{modelValue:s.value.autoRestart,"onUpdate:modelValue":t[9]||=e=>s.value.autoRestart=e,onChange:h},null,8,[`modelValue`])]),M(`div`,Nn,[M(`div`,Pn,[t[21]||=M(`i`,{class:`pi pi-trash`},null,-1),M(`span`,null,I(y(n)(`serviceConfigGeneral.clearLogs`)),1)]),W(y(Me),{modelValue:s.value.clearLogsOnStart,"onUpdate:modelValue":t[10]||=e=>s.value.clearLogsOnStart=e,onChange:h},null,8,[`modelValue`])])]))}}),[[`__scopeId`,`data-v-03373387`]]),In={class:`docker-config`},Ln={class:`docker-config__section`},Rn={class:`docker-config__section-title`},zn={class:`docker-config__mode-toggle`},Bn={class:`docker-config__mode-option`},Vn={class:`docker-config__mode-option`},Hn={key:0,class:`docker-config__section`},Un={class:`docker-config__label`},Wn={class:`docker-config__section`},Gn={class:`docker-config__section`},Kn={class:`docker-config__label`},qn={class:`docker-config__section`},Jn={class:`docker-config__label`},Yn={class:`docker-config__kv-list`},Xn={class:`docker-config__section`},Zn={class:`docker-config__label`},Qn={class:`docker-config__section`},$n={class:`docker-config__section-title`},er={class:`docker-config__section`},tr={class:`docker-config__label`},nr={class:`docker-config__section`},rr={class:`docker-config__label`},ir={key:2,class:`docker-config__section`},ar={class:`docker-config__label`},or={class:`docker-config__list`},sr={class:`docker-config__section`},cr={class:`docker-config__label`},lr={class:`docker-config__checkbox-row`},ur={for:`mountRootpath`,class:`docker-config__checkbox-label`},dr={class:`docker-config__list`},fr={class:`docker-config__section`},pr={class:`docker-config__checkbox-row`},mr={for:`useNativeCommand`,class:`docker-config__checkbox-label`},hr={key:0,class:`docker-config__shell-row`},gr={class:`docker-config__label`},_r={class:`docker-config__hint`},vr={key:1,class:`docker-config__mode-toggle docker-config__mode-toggle--indented`},yr={class:`docker-config__mode-option`},br={class:`docker-config__mode-option`},xr={class:`docker-config__section`},Sr={class:`docker-config__label`},Cr={class:`docker-config__section`},wr={class:`docker-config__label`},Tr={class:`docker-config__section`},Er={class:`docker-config__section-title`},Dr={class:`docker-config__bootstrap-row`},Or={class:`docker-config__bootstrap-field`},kr={class:`docker-config__bootstrap-field`},Ar={class:`docker-config__bootstrap-field docker-config__bootstrap-field--wide`},jr={class:`docker-config__bootstrap-field`},Mr={class:`docker-config__bootstrap-actions`},Nr={class:`docker-config__section`},Pr=b(U({__name:`ServiceConfigDocker`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let{t:n}=ee(),i=e,o=t,s=i.service.dockerConfig??{},l=E(s.dockerfile?`build`:`image`),u=E(s.image??``),d=E(s.dockerfile??``),f=E(s.buildContext??``),p=E(Object.entries(s.buildArgs??{}).map(([e,t])=>({key:e,value:t}))),m=E(s.targetStage??``),h=E(s.networkMode??`host`),g=E([...s.ports??[]]),_=E([...s.volumes??[]]),v=E(s.mountRootpath??!1),b=E(s.entrypoint??``),x=E(s.command??``),S=E(s.user??``),C=E(s.useNativeCommand??!1),D=E(s.nativeCommandMode??`isolated`),O=E(s.nativeShell??`sh`),j=[{label:`sh (POSIX)`,value:`sh`},{label:`bash`,value:`bash`},{label:`zsh`,value:`zsh`},{label:`ash (Alpine)`,value:`ash`}],te=E([...s.bootstrapCommands??[]]),N=E(!1),P=[{label:`Host (--network host)`,value:`host`},{label:`Bridge`,value:`bridge`}];function ie(){p.value=[...p.value,{key:``,value:``}]}function ae(e){p.value=p.value.filter((t,n)=>n!==e)}function oe(e,t,n){p.value=p.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function se(){g.value=[...g.value,``]}function ce(e){g.value=g.value.filter((t,n)=>n!==e)}function le(e,t){g.value=g.value.map((n,r)=>r===e?t:n)}function de(){_.value=[..._.value,``]}function fe(e){_.value=_.value.filter((t,n)=>n!==e)}function pe(e,t){_.value=_.value.map((n,r)=>r===e?t:n)}function me(){te.value=[...te.value,{id:Ve(),label:`Bootstrap`,entrypoint:`/bin/sh`,command:`-c ""`,user:void 0}]}function he(e){te.value=te.value.filter((t,n)=>n!==e)}function ge(e,t,n){te.value=te.value.map((r,i)=>i===e?{...r,[t]:n===``?void 0:n}:r)}function _e(e,t){let n=[...te.value],r=e+t;r<0||r>=n.length||([n[e],n[r]]=[n[r],n[e]],te.value=n)}let ve=null;function V(){ve&&clearTimeout(ve),ve=setTimeout(()=>{let e={};for(let{key:t,value:n}of p.value)t.trim()&&(e[t.trim()]=n);o(`save`,{image:l.value===`image`&&u.value||void 0,dockerfile:l.value===`build`&&d.value||void 0,buildContext:f.value||void 0,buildArgs:e,targetStage:m.value||void 0,networkMode:h.value,ports:g.value.filter(Boolean),volumes:_.value.filter(Boolean),mountRootpath:v.value,entrypoint:b.value||void 0,command:x.value||void 0,user:S.value||void 0,useNativeCommand:C.value,nativeCommandMode:D.value,nativeShell:O.value,bootstrapCommands:te.value}),ve=null},150)}function ye(e){he(e),V()}function be(e,t){_e(e,t),V()}function xe(e){ae(e),V()}function U(e){ce(e),V()}function Se(e){fe(e),V()}return(e,t)=>(a(),R(`div`,In,[M(`div`,Ln,[M(`label`,Rn,I(y(n)(`serviceConfigDocker.imageSource`)),1),M(`div`,zn,[M(`label`,Bn,[ue(M(`input`,{"onUpdate:modelValue":t[0]||=e=>l.value=e,type:`radio`,value:`image`,class:`docker-config__radio`,onChange:V},null,544),[[ne,l.value]]),H(` `+I(y(n)(`serviceConfigDocker.pullImage`)),1)]),M(`label`,Vn,[ue(M(`input`,{"onUpdate:modelValue":t[1]||=e=>l.value=e,type:`radio`,value:`build`,class:`docker-config__radio`,onChange:V},null,544),[[ne,l.value]]),H(` `+I(y(n)(`serviceConfigDocker.buildDockerfile`)),1)])])]),l.value===`image`?(a(),R(`div`,Hn,[M(`label`,Un,I(y(n)(`serviceConfigDocker.image`)),1),W(y(T),{modelValue:u.value,"onUpdate:modelValue":t[2]||=e=>u.value=e,placeholder:y(n)(`serviceConfigDocker.imagePlaceholder`),class:`docker-config__input`,onBlur:V,onKeydown:F(A(V,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])):z(``,!0),l.value===`build`?(a(),R(B,{key:1},[M(`div`,Wn,[t[18]||=M(`label`,{class:`docker-config__label`},`Dockerfile`,-1),W(y(L),{label:y(n)(`serviceConfigDocker.editDockerfile`),icon:`pi pi-file-edit`,severity:`secondary`,outlined:``,size:`small`,onClick:t[3]||=e=>N.value=!0},null,8,[`label`]),W(y(r),{visible:N.value,"onUpdate:visible":t[6]||=e=>N.value=e,header:y(n)(`serviceConfigDocker.editDockerfile`),modal:``,style:{width:`800px`}},{footer:k(()=>[W(y(L),{label:y(n)(`serviceConfigDocker.closeDockerfile`),icon:`pi pi-times`,onClick:t[5]||=()=>{N.value=!1,V()}},null,8,[`label`])]),default:k(()=>[W(re,{modelValue:d.value,"onUpdate:modelValue":t[4]||=e=>d.value=e,language:`dockerfile`,style:{height:`400px`}},null,8,[`modelValue`])]),_:1},8,[`visible`,`header`])]),M(`div`,Gn,[M(`label`,Kn,I(y(n)(`serviceConfigDocker.buildContext`)),1),W(y(T),{modelValue:f.value,"onUpdate:modelValue":t[7]||=e=>f.value=e,placeholder:`.`,class:`docker-config__input`,onBlur:V,onKeydown:F(A(V,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),M(`div`,qn,[M(`label`,Jn,I(y(n)(`serviceConfigDocker.buildArgs`)),1),M(`div`,Yn,[(a(!0),R(B,null,w(p.value,(e,t)=>(a(),R(`div`,{key:t,class:`docker-config__kv-row`},[W(y(T),{"model-value":e.key,placeholder:y(n)(`serviceConfigDocker.argNamePlaceholder`),class:`docker-config__kv-input`,"onUpdate:modelValue":e=>oe(t,`key`,e),onBlur:V,onKeydown:F(A(V,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),W(y(T),{"model-value":e.value,placeholder:y(n)(`serviceConfigDocker.argValuePlaceholder`),class:`docker-config__kv-input`,"onUpdate:modelValue":e=>oe(t,`value`,e),onBlur:V,onKeydown:F(A(V,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),W(y(L),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>xe(t)},null,8,[`onClick`])]))),128)),W(y(L),{label:y(n)(`serviceConfigDocker.addBuildArg`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:ie},null,8,[`label`])])]),M(`div`,Xn,[M(`label`,Zn,I(y(n)(`serviceConfigDocker.targetStage`)),1),W(y(T),{modelValue:m.value,"onUpdate:modelValue":t[8]||=e=>m.value=e,placeholder:y(n)(`serviceConfigDocker.targetStagePlaceholder`),class:`docker-config__input`,onBlur:V,onKeydown:F(A(V,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])],64)):z(``,!0),W(y(Ke)),M(`div`,Qn,[M(`label`,$n,I(y(n)(`serviceConfigDocker.runtimeConfig`)),1)]),M(`div`,er,[M(`label`,tr,I(y(n)(`serviceConfigDocker.userGroup`)),1),W(y(T),{modelValue:S.value,"onUpdate:modelValue":t[9]||=e=>S.value=e,placeholder:y(n)(`serviceConfigDocker.userGroupHint`),class:`docker-config__input`,onBlur:V,onKeydown:F(A(V,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),M(`div`,nr,[M(`label`,rr,I(y(n)(`serviceConfigDocker.networkMode`)),1),W(y(c),{modelValue:h.value,"onUpdate:modelValue":t[10]||=e=>h.value=e,options:P,"option-label":`label`,"option-value":`value`,class:`docker-config__select`,onChange:V},null,8,[`modelValue`])]),h.value===`bridge`?(a(),R(`div`,ir,[M(`label`,ar,I(y(n)(`serviceConfigDocker.portMappings`)),1),M(`div`,or,[(a(!0),R(B,null,w(g.value,(e,t)=>(a(),R(`div`,{key:t,class:`docker-config__list-row`},[W(y(T),{"model-value":e,placeholder:y(n)(`serviceConfigDocker.portPlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>le(t,e),onBlur:V,onKeydown:F(A(V,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),W(y(L),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>U(t)},null,8,[`onClick`])]))),128)),W(y(L),{label:y(n)(`serviceConfigDocker.addPort`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:se},null,8,[`label`])])])):z(``,!0),M(`div`,sr,[M(`label`,cr,I(y(n)(`serviceConfigDocker.volumes`)),1),M(`div`,lr,[W(y(je),{modelValue:v.value,"onUpdate:modelValue":t[11]||=e=>v.value=e,binary:!0,"input-id":`mountRootpath`,onChange:V},null,8,[`modelValue`]),M(`label`,ur,I(y(n)(`serviceConfigDocker.autoMount`)),1)]),M(`div`,dr,[(a(!0),R(B,null,w(_.value,(e,t)=>(a(),R(`div`,{key:t,class:`docker-config__list-row`},[W(y(T),{"model-value":e,placeholder:y(n)(`serviceConfigDocker.volumePlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>pe(t,e),onBlur:V,onKeydown:F(A(V,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),W(y(L),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>Se(t)},null,8,[`onClick`])]))),128)),W(y(L),{label:y(n)(`serviceConfigDocker.addVolume`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:de},null,8,[`label`])])]),W(y(Ke)),M(`div`,fr,[M(`div`,pr,[W(y(je),{modelValue:C.value,"onUpdate:modelValue":t[12]||=e=>C.value=e,binary:!0,"input-id":`useNativeCommand`,onChange:V},null,8,[`modelValue`]),M(`label`,mr,I(y(n)(`serviceConfigDocker.runNative`)),1)]),t[21]||=M(`span`,{class:`docker-config__hint`},` When enabled, the service command is executed directly inside the container (ignores CMD override below). `,-1),C.value?(a(),R(`div`,hr,[M(`label`,gr,I(y(n)(`serviceConfigDocker.shell`)),1),W(y(c),{modelValue:O.value,"onUpdate:modelValue":t[13]||=e=>O.value=e,options:j,"option-label":`label`,"option-value":`value`,class:`docker-config__select docker-config__select--small`,editable:``,placeholder:y(n)(`serviceConfigDocker.shellPlaceholder`),onChange:V},null,8,[`modelValue`,`placeholder`]),M(`span`,_r,[H(I(y(n)(`serviceConfigDocker.shellHint`))+` (`,1),t[19]||=M(`code`,null,`shell -c '...'`,-1),t[20]||=H(`)`,-1)])])):z(``,!0),C.value?(a(),R(`div`,vr,[M(`label`,yr,[ue(M(`input`,{"onUpdate:modelValue":t[14]||=e=>D.value=e,type:`radio`,value:`isolated`,class:`docker-config__radio`,onChange:V},null,544),[[ne,D.value]]),H(` `+I(y(n)(`serviceConfigDocker.isolated`)),1)]),M(`label`,br,[ue(M(`input`,{"onUpdate:modelValue":t[15]||=e=>D.value=e,type:`radio`,value:`shared`,class:`docker-config__radio`,onChange:V},null,544),[[ne,D.value]]),H(` `+I(y(n)(`serviceConfigDocker.shared`)),1)])])):z(``,!0)]),C.value?z(``,!0):(a(),R(B,{key:3},[t[22]||=M(`div`,{class:`docker-config__section`},[M(`label`,{class:`docker-config__section-title`},`Override`)],-1),M(`div`,xr,[M(`label`,Sr,I(y(n)(`serviceConfigDocker.entrypoint`)),1),W(y(T),{modelValue:b.value,"onUpdate:modelValue":t[16]||=e=>b.value=e,placeholder:y(n)(`serviceConfigDocker.entrypointPlaceholder`),class:`docker-config__input`,onBlur:V,onKeydown:F(A(V,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),M(`div`,Cr,[M(`label`,wr,I(y(n)(`serviceConfigDocker.cmdOverride`)),1),W(y(T),{modelValue:x.value,"onUpdate:modelValue":t[17]||=e=>x.value=e,placeholder:y(n)(`serviceConfigDocker.cmdPlaceholder`),class:`docker-config__input`,onBlur:V,onKeydown:F(A(V,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])],64)),W(y(Ke)),M(`div`,Tr,[M(`label`,Er,[H(I(y(n)(`serviceConfigDocker.bootstrapCommands`))+` `,1),t[23]||=M(`span`,{class:`docker-config__hint-inline`},` — run sequentially before the service starts`,-1)])]),(a(!0),R(B,null,w(te.value,(e,r)=>(a(),R(`div`,{key:e.id,class:`docker-config__bootstrap-card`},[M(`div`,Dr,[M(`div`,Or,[t[24]||=M(`label`,{class:`docker-config__label`},`Label`,-1),W(y(T),{"model-value":e.label,placeholder:y(n)(`serviceConfigDocker.bootstrapLabelPlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>ge(r,`label`,e),onBlur:V,onKeydown:F(A(V,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),M(`div`,kr,[t[25]||=M(`label`,{class:`docker-config__label`},`Entrypoint`,-1),W(y(T),{"model-value":e.entrypoint??``,placeholder:`/bin/sh`,class:`docker-config__input`,"onUpdate:modelValue":e=>ge(r,`entrypoint`,e),onBlur:V,onKeydown:F(A(V,[`prevent`]),[`enter`])},null,8,[`model-value`,`onUpdate:modelValue`,`onKeydown`])]),M(`div`,Ar,[t[26]||=M(`label`,{class:`docker-config__label`},`Command`,-1),W(y(T),{"model-value":e.command,placeholder:`-c "npm install"`,class:`docker-config__input`,"onUpdate:modelValue":e=>ge(r,`command`,e),onBlur:V,onKeydown:F(A(V,[`prevent`]),[`enter`])},null,8,[`model-value`,`onUpdate:modelValue`,`onKeydown`])]),M(`div`,jr,[t[27]||=M(`label`,{class:`docker-config__label`},`User:Group`,-1),W(y(T),{"model-value":e.user??``,placeholder:y(n)(`serviceConfigDocker.userGroupHint`),class:`docker-config__input`,"onUpdate:modelValue":e=>ge(r,`user`,e),onBlur:V,onKeydown:F(A(V,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),M(`div`,Mr,[W(y(L),{icon:`pi pi-arrow-up`,text:``,rounded:``,size:`small`,disabled:r===0,onClick:e=>be(r,-1)},null,8,[`disabled`,`onClick`]),W(y(L),{icon:`pi pi-arrow-down`,text:``,rounded:``,size:`small`,disabled:r===te.value.length-1,onClick:e=>be(r,1)},null,8,[`disabled`,`onClick`]),W(y(L),{icon:`pi pi-times`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>ye(r)},null,8,[`onClick`])])])]))),128)),M(`div`,Nr,[W(y(L),{label:y(n)(`serviceConfigDocker.addBootstrapCommand`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:me},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-08f9eb76`]]),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={class:`config-commands__label`},Yr={class:`config-commands__field config-commands__field--wide`},Xr={class:`config-commands__label`},Zr={class:`config-commands__field`},Qr={class:`config-commands__actions-cell`},$r={class:`config-commands__footer`},ei={class:`config-commands__tab-content`},ti=`__inherit__`,ni=b(U({__name:`ServiceConfigCommands`,props:{service:{}},emits:[`save`,`dockerSave`],setup(e,{emit:t}){let n=e,r=t,{t:i}=ee(),o=C(),s=null,l=E({agentId:n.service.agentId??ti,runner:n.service.runner});_e(()=>n.service,e=>{l.value={agentId:e.agentId??ti,runner:e.runner}});let u=V(()=>[{label:i(`serviceConfigCommands.native`),value:`native`,icon:`pi pi-desktop`},{label:i(`serviceConfigCommands.docker`),value:`docker`,icon:`pi pi-box`}]),d=V(()=>u.value.find(e=>e.value===l.value.runner)?.icon??`pi pi-box`),f=V(()=>[{label:i(`serviceForm.agentInherit`),value:ti},...o.agents.map(e=>({label:`${e.config.name} (${e.status.connected?i(`serviceConfigCommands.online`):i(`serviceConfigCommands.offline`)})`,value:e.config.id}))]),m=E([...n.service.commands??[]]);_e(()=>n.service,e=>{s||(m.value=[...e.commands??[]])});function h(){m.value=[...m.value,{id:Ve(),label:``,command:``,cwd:void 0,shell:!0}]}function g(e){m.value=m.value.filter((t,n)=>n!==e)}function _(e,t,n){m.value=m.value.map((r,i)=>i===e?{...r,[t]:n===``?void 0:n}:r)}function v(){s&&clearTimeout(s),s=setTimeout(()=>{r(`save`,{agentId:l.value.agentId===ti?null:l.value.agentId||null,runner:l.value.runner,commands:m.value}),s=null},150)}function b(e){r(`dockerSave`,e)}function x(e){g(e),v()}return(t,n)=>(a(),R(`div`,Fr,[M(`div`,Ir,[M(`div`,Lr,[M(`div`,Rr,[n[2]||=M(`i`,{class:`pi pi-server`},null,-1),M(`span`,null,I(y(i)(`serviceConfigCommands.agent`)),1)]),W(y(c),{modelValue:l.value.agentId,"onUpdate:modelValue":n[0]||=e=>l.value.agentId=e,options:f.value,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:v},null,8,[`modelValue`,`options`]),M(`small`,zr,I(y(i)(`serviceForm.agentHintEdit`)),1)]),M(`div`,Br,[M(`div`,Vr,[M(`i`,{class:p(d.value)},null,2),M(`span`,null,I(y(i)(`serviceConfigCommands.runner`)),1)]),W(y(c),{modelValue:l.value.runner,"onUpdate:modelValue":n[1]||=e=>l.value.runner=e,options:u.value,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:v},{value:k(e=>[e.value?(a(),R(`div`,Hr,[M(`i`,{class:p(u.value.find(t=>t.value===e.value)?.icon)},null,2),M(`span`,null,I(u.value.find(t=>t.value===e.value)?.label),1)])):z(``,!0)]),option:k(e=>[M(`div`,Ur,[M(`i`,{class:p(e.option.icon)},null,2),M(`span`,null,I(e.option.label),1)])]),_:1},8,[`modelValue`,`options`])])]),W(y(Pe),{value:`0`},{default:k(()=>[W(y(Fe),null,{default:k(()=>[W(y(Le),{value:`0`},{default:k(()=>[n[3]||=M(`i`,{class:`pi pi-desktop tab-icon`},null,-1),M(`span`,null,I(y(i)(`serviceConfigCommands.native`)),1)]),_:1}),W(y(Le),{value:`1`},{default:k(()=>[n[4]||=M(`i`,{class:`pi pi-box tab-icon`},null,-1),M(`span`,null,I(y(i)(`serviceConfigCommands.docker`)),1)]),_:1})]),_:1}),W(y(Ie),null,{default:k(()=>[W(y(Re),{value:`0`},{default:k(()=>[M(`div`,Wr,[m.value.length===0?(a(),R(`div`,Gr,[M(`p`,null,I(y(i)(`serviceConfigCommands.noCommands`)),1)])):z(``,!0),(a(!0),R(B,null,w(m.value,(e,t)=>(a(),R(`div`,{key:e.id,class:`config-card`},[M(`div`,Kr,[M(`div`,qr,[M(`label`,Jr,I(y(i)(`serviceConfigCommands.labelPlaceholder`)),1),W(y(T),{"model-value":e.label,placeholder:y(i)(`serviceConfigCommands.labelPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>_(t,`label`,e),onBlur:v,onKeydown:F(A(v,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),M(`div`,Yr,[M(`label`,Xr,I(y(i)(`serviceConfigCommands.commandPlaceholder`)),1),W(y(T),{"model-value":e.command,placeholder:`e.g. npm start`,class:`config-card__input`,"onUpdate:modelValue":e=>_(t,`command`,e),onBlur:v,onKeydown:F(A(v,[`prevent`]),[`enter`])},null,8,[`model-value`,`onUpdate:modelValue`,`onKeydown`])]),M(`div`,Zr,[n[5]||=M(`label`,{class:`config-commands__label`},`Working Dir (optional)`,-1),W(y(T),{"model-value":e.cwd??``,placeholder:y(i)(`serviceConfigCommands.cwdPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>_(t,`cwd`,e),onBlur:v,onKeydown:F(A(v,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),M(`div`,Qr,[W(y(L),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>x(t)},null,8,[`onClick`])])])]))),128)),M(`div`,$r,[W(y(L),{label:y(i)(`serviceConfigCommands.addCommand`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:h},null,8,[`label`])])])]),_:1}),W(y(Re),{value:`1`},{default:k(()=>[M(`div`,ei,[W(Pr,{service:e.service,onSave:b},null,8,[`service`])])]),_:1})]),_:1})]),_:1})]))}}),[[`__scopeId`,`data-v-eab249e5`]]),ri={class:`config-env`,"data-testid":`config-env`},ii={key:0,class:`active-env-display`},ai={class:`active-env-label`},oi={key:1,class:`inheritance-toggle`},si={class:`inheritance-label`},ci={class:`config-env__header`},li={class:`config-env__title`},ui={class:`config-env__actions`},di={key:2,class:`variables-view`},fi={key:0},pi={key:1,class:`empty-state`},mi={class:`inherited-header`},hi={class:`inherited-row-key`},gi={class:`preview-key`},_i={class:`value-row`},vi=[`onClick`],yi=[`onClick`],bi={key:0,class:`secret-mask`},xi={key:1,class:`preview-value`},Si={class:`inherited-header`},Ci={class:`passthrough-info`},wi={class:`preview-key`},Ti={key:0,class:`preview-value`},Ei={key:1,class:`passthrough-undefined`},Di={key:3,class:`empty-state`},Oi={key:4,class:`empty-state`},ki={class:`editor-container`},Ai={key:0,class:`editor-env-banner`},ji={class:`editor-env-text`},Mi={class:`editor-section`,"data-testid":`variables-editor`},Ni={key:0,class:`loading-container`},Pi={key:1,class:`preview-container`},Fi={class:`preview-info`},Ii={class:`preview-key`},Li={class:`value-row`},Ri=[`onClick`],zi=[`onClick`],Bi={key:0,class:`secret-mask`},Vi={key:1,class:`preview-value`},Hi=b(U({__name:`ServiceConfigEnv`,props:{service:{},projectId:{},activeEnvironmentId:{}},setup(e){let n=e,{t:i}=ee(),o=me(),s=l(),c=de(),d=we(),f=C(),m=O(),_=V(()=>d.projects.find(e=>e.id===n.projectId)?.activeEnvironmentId??null),v=V(()=>c.findServiceEnvironment(n.service.id,_.value??``)),b=E(!1),S=E(!1),w=E(!1),T=E(!1),j=E(null),te=E(null),ne=E([]),re=E({}),N=E(new Set);function ie(e){let t=new Set(N.value);t.has(e)?t.delete(e):t.add(e),N.value=t}let ae=E(null);function oe(e,t){navigator.clipboard.writeText(t),ae.value=e,setTimeout(()=>{ae.value===e&&(ae.value=null)},1500)}let F=E({}),se=E(!1),ce=V(()=>n.service.agentId?f.getById(n.service.agentId):null),le=V(()=>{let e=ce.value?.status.lanIp;return e?{"service.HOST_LAN":e}:{}}),ue=V(()=>ce.value?.config.passthroughEnv??[]),fe=V(()=>ue.value.length>0);async function pe(){if(!n.service.agentId||!fe.value){F.value={};return}se.value=!0;try{F.value=await D.agent.getPassthroughEnv.query({id:n.service.agentId})}catch{F.value={}}finally{se.value=!1}}let he=V(()=>ue.value.map(e=>({name:e,value:F.value[e]??null}))),B=V(()=>!v.value||!_.value?!0:v.value.parentIds?.includes(_.value)??!0);async function ge(e){if(!(!v.value||!_.value)){T.value=!0;try{await c.update({id:v.value.id,parentIds:e?[_.value]:[]}),await Ee()}catch(e){o.add({severity:`error`,summary:i(`serviceConfigEnv.error`),detail:e.message??i(`serviceConfigEnv.failedToUpdateInheritance`),life:5e3})}finally{T.value=!1}}}let ve=V(()=>{let e=d.projects.find(e=>e.id===n.projectId);return e?.activeEnvironmentId?c.getById(e.activeEnvironmentId):null});function ye(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 be=V(()=>j.value?ye(j.value.variables):[]),xe=V(()=>{if(!v.value||!j.value?.sources)return be.value;let e=v.value.id;return be.value.filter(t=>j.value.sources[t.variableId]?.environmentId===e)}),U=V(()=>{if(!v.value||!j.value?.sources)return[];let e=v.value.id;return be.value.filter(t=>j.value.sources[t.variableId]?.environmentId!==e)}),Ce=V(()=>{if(!j.value?.sources)return{};let e={};for(let[t,n]of Object.entries(j.value.sources))e[t]={environmentId:n.environmentId,overridden:n.overridden,...n.resolvedFrom?{resolvedFrom:n.resolvedFrom}:{}};return e});async function Ee(){if(v.value)try{j.value=await c.resolve(v.value.id)}catch(e){console.error(`Failed to resolve environment:`,e)}}async function De(){if(_.value)try{te.value=await c.resolve(_.value)}catch{}}async function Ae(e){let t=e.toLowerCase(),n=te.value??j.value;if(!n)return;let r=n.variables,i=Object.keys(n.env).filter(e=>e.toLowerCase().includes(t));ne.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??``})}re.value=a}async function je(){w.value=!0;try{await Fe(),await Ee(),S.value=!0}catch(e){o.add({severity:`error`,summary:i(`serviceConfigEnv.error`),detail:e.message??i(`serviceConfigEnv.failedToLoadPreview`),life:5e3})}finally{w.value=!1}}let Ne=V(()=>j.value?Object.entries(j.value.env).map(([e,t])=>({key:e,value:Object.entries(le.value).reduce((e,[t,n])=>e.replaceAll(`{{${t}}}`,n),t)})):[]);function Pe(e,t){return t?`***`:e.length>50?e.substring(0,47)+`...`:e}async function Fe(){if(v.value)return v.value;if(!_.value)return null;let e=ve.value;return e?(await c.create({name:`${n.service.name??n.service.id} — ${e.name}`,projectId:n.projectId,scope:`service`,reference:n.service.id,activateOn:_.value,parentIds:[_.value],variables:{}}),v.value):null}let Ie=V(()=>{let e=m.getByService(n.service.id);return e.length>0?e[0]:null}),Le=V(()=>{let e=Ie.value?.state;return e===`running`||e===`errored`});async function Re(){await Fe(),b.value=!0,await Promise.all([Ee(),De()])}function Ve(){if(b.value=!1,!Le.value||!Ie.value)return;let e=Ie.value.state===`running`?`restart`:`start`,t=n.service.name||n.service.id;s.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=n.service.agentId;if(!t)return;e===`restart`?(await m.restart(t,n.service.id),o.add({severity:`success`,summary:i(`serviceConfigEnv.serviceRestarted`),life:3e3})):(await m.start(t,n.service.id),o.add({severity:`success`,summary:i(`serviceConfigEnv.serviceStarted`),life:3e3}))}catch(t){o.add({severity:`error`,summary:i(`serviceConfigEnv.error`),detail:t.message??i(`serviceConfigEnv.failedToAction`,{action:e}),life:5e3})}}})}return _e(ve,async e=>{e&&await Promise.all([Ee(),De()])}),_e(()=>n.service.agentId,()=>{pe()}),g(async()=>{n.projectId&&await c.fetchAll(n.projectId),await Promise.all([Ee(),De(),pe()])}),(n,o)=>(a(),R(`div`,ri,[_.value?(a(),R(`div`,ii,[M(`span`,ai,I(y(i)(`serviceConfigEnv.activeEnvironment`)),1),W(ze,{"environment-id":_.value},null,8,[`environment-id`])])):z(``,!0),v.value&&ve.value?(a(),R(`div`,oi,[W(y(Me),{"model-value":B.value,disabled:T.value,"onUpdate:modelValue":ge},null,8,[`model-value`,`disabled`]),M(`span`,si,I(B.value?y(i)(`serviceConfigEnv.inheritsFrom`,{name:ve.value.name}):y(i)(`serviceConfigEnv.isolated`,{name:ve.value.name})),1)])):z(``,!0),M(`div`,ci,[M(`h3`,li,I(y(i)(`serviceConfigEnv.envVars`)),1),M(`div`,ui,[W(y(L),{label:y(i)(`serviceConfigEnv.editVariables`),icon:`pi pi-pencil`,size:`small`,outlined:``,"data-testid":`env-edit-btn`,disabled:!_.value,onClick:Re},null,8,[`label`,`disabled`]),W(y(L),{label:y(i)(`serviceConfigEnv.preview`),icon:`pi pi-eye`,size:`small`,outlined:``,severity:`secondary`,loading:w.value,disabled:!_.value,"data-testid":`env-preview-btn`,onClick:je},null,8,[`label`,`loading`,`disabled`])])]),v.value?(a(),R(`div`,di,[xe.value.length>0?(a(),R(`div`,fi,[W(Be,{"environment-id":v.value.id,sources:Ce.value,"resolved-env":{...te.value?.env??{},...j.value?.env??{}},"service-builtins":le.value,editable:!1,"show-overrides":!1,"show-override-badge":!0,"show-delete":!1,"show-add-button":!1},null,8,[`environment-id`,`sources`,`resolved-env`,`service-builtins`])])):(a(),R(`div`,pi,[M(`p`,null,I(y(i)(`serviceConfigEnv.noVarsConfigured`)),1)])),U.value.length>0?(a(),P(y(h),{key:2,class:`inherited-accordion`},{default:k(()=>[W(y(Se),{value:`inherited`},{default:k(()=>[W(y(t),null,{default:k(()=>[M(`span`,mi,[o[6]||=M(`i`,{class:`pi pi-arrow-down-left`},null,-1),H(` `+I(y(i)(`serviceConfigEnv.inheritedVars`))+` `,1),W(y(Te),{value:String(U.value.length),severity:`secondary`,rounded:``},null,8,[`value`])])]),_:1}),W(y(x),null,{default:k(()=>[W(y(Oe),{value:U.value,size:`small`,"show-headers":!1},{default:k(()=>[W(y(ke),{style:{width:`35%`}},{body:k(({data:e})=>[M(`div`,hi,[M(`code`,gi,I(e.key),1),Ce.value[e.variableId]?(a(),P(ze,{key:0,"environment-id":Ce.value[e.variableId].environmentId,class:`source-badge`},null,8,[`environment-id`])):z(``,!0)])]),_:1}),W(y(ke),{style:{width:`65%`}},{body:k(({data:e})=>[M(`span`,_i,[M(`span`,{class:`value-actions`,onClick:o[0]||=A(()=>{},[`stop`])},[e.slot.isSecret?(a(),R(`i`,{key:0,class:p([N.value.has(e.variableId)?`pi pi-eye-slash`:`pi pi-eye`,`action-icon`]),onClick:t=>ie(e.variableId)},null,10,vi)):z(``,!0),M(`i`,{class:p([ae.value===e.variableId?`pi pi-check`:`pi pi-copy`,`action-icon`]),onClick:t=>oe(e.variableId,e.slot.pre+e.slot.value+e.slot.post)},null,10,yi)]),e.slot.isSecret&&!N.value.has(e.variableId)?(a(),R(`span`,bi,`***`)):(a(),R(`code`,xi,I(e.slot.pre)+I(e.slot.value)+I(e.slot.post),1))])]),_:1})]),_:1},8,[`value`])]),_:1})]),_:1})]),_:1})):z(``,!0),fe.value?(a(),P(y(h),{key:3,class:`inherited-accordion`},{default:k(()=>[W(y(Se),{value:`passthrough`},{default:k(()=>[W(y(t),null,{default:k(()=>[M(`span`,Si,[o[7]||=M(`i`,{class:`pi pi-globe`},null,-1),H(` `+I(y(i)(`agentPage.passthrough.titleShort`))+` `,1),W(y(Te),{value:String(ue.value.length),severity:`secondary`,rounded:``},null,8,[`value`])])]),_:1}),W(y(x),null,{default:k(()=>[M(`p`,Ci,I(y(i)(`serviceConfigEnv.passthroughInfo`)),1),se.value?(a(),P(y(u),{key:0,style:{width:`24px`,height:`24px`}})):(a(),P(y(Oe),{key:1,value:he.value,stripedRows:``,size:`small`},{default:k(()=>[W(y(ke),{field:`name`,header:y(i)(`common.key`),style:{width:`35%`}},{body:k(({data:e})=>[M(`code`,wi,I(e.name),1)]),_:1},8,[`header`]),W(y(ke),{header:y(i)(`common.value`),style:{width:`65%`}},{body:k(({data:e})=>[e.value===null?(a(),R(`span`,Ei,I(y(i)(`serviceConfigEnv.undefined`)),1)):(a(),R(`span`,Ti,I(e.value),1))]),_:1},8,[`header`])]),_:1},8,[`value`]))]),_:1})]),_:1})]),_:1})):z(``,!0)])):_.value?(a(),R(`div`,Oi,[M(`p`,null,I(y(i)(`serviceConfigEnv.noVarsConfigured`)),1)])):(a(),R(`div`,Di,[M(`p`,null,I(y(i)(`serviceConfigEnv.noActiveEnv`)),1)])),W(y(r),{visible:b.value,header:y(i)(`serviceConfigEnv.editVarsHeader`),style:{width:`900px`},modal:``,"onUpdate:visible":o[2]||=e=>{e||Ve()}},{footer:k(()=>[W(y(L),{label:y(i)(`actions.close`),icon:`pi pi-times`,onClick:o[1]||=e=>Ve()},null,8,[`label`])]),default:k(()=>[M(`div`,ki,[_.value?(a(),R(`div`,Ai,[M(`span`,ji,I(y(i)(`serviceConfigEnv.editingVarsFor`,{name:e.service.name||e.service.id})),1),W(ze,{"environment-id":_.value},null,8,[`environment-id`])])):z(``,!0),M(`div`,Mi,[v.value?(a(),P(Be,{key:0,"environment-id":v.value.id,editable:!0,"autocomplete-enabled":!0,"autocomplete-suggestions":ne.value,"autocomplete-meta":re.value,"resolved-env":{...te.value?.env??{},...j.value?.env??{}},"service-builtins":le.value,"show-overrides":!0,"show-delete":!0,"show-add-button":!0,onAutocompleteSearch:Ae},null,8,[`environment-id`,`autocomplete-suggestions`,`autocomplete-meta`,`resolved-env`,`service-builtins`])):z(``,!0)])])]),_:1},8,[`visible`,`header`]),W(y(r),{visible:S.value,"onUpdate:visible":o[5]||=e=>S.value=e,header:y(i)(`serviceConfigEnv.previewHeader`),style:{width:`700px`},modal:``,"data-testid":`env-preview-dialog`},{footer:k(()=>[W(y(L),{label:y(i)(`actions.close`),icon:`pi pi-times`,onClick:o[4]||=e=>S.value=!1},null,8,[`label`])]),default:k(()=>[w.value?(a(),R(`div`,Ni,[W(y(u))])):j.value?(a(),R(`div`,Pi,[M(`p`,Fi,I(y(i)(`serviceConfigEnv.injectedVarsInfo`)),1),W(y(Oe),{value:Ne.value,stripedRows:``,size:`small`,rows:15,paginator:Ne.value.length>15},{default:k(()=>[W(y(ke),{field:`key`,header:y(i)(`common.key`),style:{width:`35%`}},{body:k(({data:e})=>[M(`code`,Ii,I(e.key),1)]),_:1},8,[`header`]),W(y(ke),{header:y(i)(`common.value`),style:{width:`65%`}},{body:k(({data:e})=>[M(`span`,Li,[M(`span`,{class:`value-actions`,onClick:o[3]||=A(()=>{},[`stop`])},[j.value.envSecrets.includes(e.key)?(a(),R(`i`,{key:0,class:p([N.value.has(`preview:`+e.key)?`pi pi-eye-slash`:`pi pi-eye`,`action-icon`]),onClick:t=>ie(`preview:`+e.key)},null,10,Ri)):z(``,!0),M(`i`,{class:p([ae.value===`preview:`+e.key?`pi pi-check`:`pi pi-copy`,`action-icon`]),onClick:t=>oe(`preview:`+e.key,e.value)},null,10,zi)]),j.value.envSecrets.includes(e.key)&&!N.value.has(`preview:`+e.key)?(a(),R(`span`,Bi,`***`)):(a(),R(`span`,Vi,I(Pe(e.value,!1)),1))])]),_:1},8,[`header`])]),_:1},8,[`value`,`paginator`])])):z(``,!0)]),_:1},8,[`visible`,`header`])]))}}),[[`__scopeId`,`data-v-a6a198b8`]]),Ui={class:`config-health`},Wi={class:`config-card config-card--inline`},Gi={class:`config-card__header`},Ki={class:`config-card`},qi={class:`config-card__header`},Ji={class:`config-card`},Yi={class:`config-card__header`},Xi={class:`config-card`},Zi={class:`config-card__header`},Qi={class:`config-card`},$i={class:`config-card__header`},ea={key:1,class:`config-card`},ta={class:`config-card__header`},na={class:`config-card__hint`},ra={class:`config-card`},ia={class:`config-card__header`},aa={class:`config-card`},oa={class:`config-card__header`},sa={class:`config-card`},ca={class:`config-card__header`},la={class:`config-card`},ua={class:`config-card__header`},da=b(U({__name:`ServiceConfigHealthCheck`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let n=e,r=t,{t:i}=ee(),o=E(!!n.service.healthCheck),s=E({type:n.service.healthCheck?.type??`http`,path:n.service.healthCheck?.path??`/health`,interval:n.service.healthCheck?.interval??3e4,timeout:n.service.healthCheck?.timeout??5e3,retries:n.service.healthCheck?.retries??3,method:n.service.healthCheck?.method??`GET`,expectedStatus:n.service.healthCheck?.expectedStatus??200,initialDelay:n.service.healthCheck?.initialDelay??5e3,command:n.service.healthCheck?.command??``}),l=[{label:`HTTP Request`,value:`http`},{label:`Command`,value:`command`}],u=[{label:`GET`,value:`GET`},{label:`HEAD`,value:`HEAD`},{label:`POST`,value:`POST`},{label:`PUT`,value:`PUT`}];_e(()=>n.service,e=>{o.value=!!e.healthCheck,s.value={type:e.healthCheck?.type??`http`,path:e.healthCheck?.path??`/health`,interval:e.healthCheck?.interval??3e4,timeout:e.healthCheck?.timeout??5e3,retries:e.healthCheck?.retries??3,method:e.healthCheck?.method??`GET`,expectedStatus:e.healthCheck?.expectedStatus??200,initialDelay:e.healthCheck?.initialDelay??5e3,command:e.healthCheck?.command??``}});let f=null;function p(){f&&clearTimeout(f),f=setTimeout(()=>{if(!o.value)r(`save`,void 0);else{if(s.value.type===`http`&&!s.value.path?.trim()||s.value.type===`command`&&!s.value.command?.trim())return;r(`save`,{type:s.value.type,path:s.value.path,method:s.value.method,expectedStatus:s.value.expectedStatus,command:s.value.command||void 0,interval:s.value.interval,timeout:s.value.timeout,retries:s.value.retries,initialDelay:s.value.initialDelay})}f=null},150)}return(e,t)=>(a(),R(`div`,Ui,[M(`div`,Wi,[M(`div`,Gi,[t[10]||=M(`i`,{class:`pi pi-heart`},null,-1),M(`span`,null,I(y(i)(`serviceConfigHealthCheck.enable`)),1)]),W(y(Me),{modelValue:o.value,"onUpdate:modelValue":t[0]||=e=>o.value=e,onChange:p},null,8,[`modelValue`])]),o.value?(a(),R(B,{key:0},[M(`div`,Ki,[M(`div`,qi,[t[11]||=M(`i`,{class:`pi pi-cog`},null,-1),M(`span`,null,I(y(i)(`serviceConfigHealthCheck.type`)),1)]),W(y(c),{modelValue:s.value.type,"onUpdate:modelValue":t[1]||=e=>s.value.type=e,options:l,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:p},null,8,[`modelValue`]),t[12]||=M(`small`,{class:`config-card__hint`},`HTTP checks a URL endpoint; Command runs a shell command (exit 0 = healthy)`,-1)]),s.value.type===`http`?(a(),R(B,{key:0},[M(`div`,Ji,[M(`div`,Yi,[t[13]||=M(`i`,{class:`pi pi-link`},null,-1),M(`span`,null,I(y(i)(`serviceConfigHealthCheck.path`)),1)]),W(y(T),{modelValue:s.value.path,"onUpdate:modelValue":t[2]||=e=>s.value.path=e,class:`config-card__input`,placeholder:`/health`,onBlur:p,onKeydown:F(A(p,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),M(`div`,Xi,[M(`div`,Zi,[t[14]||=M(`i`,{class:`pi pi-directions`},null,-1),M(`span`,null,I(y(i)(`serviceConfigHealthCheck.method`)),1)]),W(y(c),{modelValue:s.value.method,"onUpdate:modelValue":t[3]||=e=>s.value.method=e,options:u,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:p},null,8,[`modelValue`])]),M(`div`,Qi,[M(`div`,$i,[t[15]||=M(`i`,{class:`pi pi-check-circle`},null,-1),M(`span`,null,I(y(i)(`serviceConfigHealthCheck.expectedStatus`)),1)]),W(y(Ae),{modelValue:s.value.expectedStatus,"onUpdate:modelValue":t[4]||=e=>s.value.expectedStatus=e,class:`config-card__input`,"use-grouping":!1,min:100,max:599,onBlur:p,onKeydown:F(A(p,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),t[16]||=M(`small`,{class:`config-card__hint`},`HTTP status code to expect (default 200)`,-1)])],64)):z(``,!0),s.value.type===`command`?(a(),R(`div`,ea,[M(`div`,ta,[t[17]||=M(`i`,{class:`pi pi-code`},null,-1),M(`span`,null,I(y(i)(`serviceConfigHealthCheck.command`)),1)]),W(y(d),{modelValue:s.value.command,"onUpdate:modelValue":t[5]||=e=>s.value.command=e,class:`config-card__input`,rows:`2`,placeholder:`curl -sf http://localhost:3000/health`,"auto-resize":``,onBlur:p},null,8,[`modelValue`]),M(`small`,na,I(y(i)(`serviceConfigHealthCheck.commandHint`)),1)])):z(``,!0),M(`div`,ra,[M(`div`,ia,[t[18]||=M(`i`,{class:`pi pi-hourglass`},null,-1),M(`span`,null,I(y(i)(`serviceConfigHealthCheck.initialDelay`)),1)]),W(y(Ae),{modelValue:s.value.initialDelay,"onUpdate:modelValue":t[6]||=e=>s.value.initialDelay=e,class:`config-card__input`,"use-grouping":!1,min:0,onBlur:p,onKeydown:F(A(p,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),t[19]||=M(`small`,{class:`config-card__hint`},`Wait before first health check (ms)`,-1)]),M(`div`,aa,[M(`div`,oa,[t[20]||=M(`i`,{class:`pi pi-clock`},null,-1),M(`span`,null,I(y(i)(`serviceConfigHealthCheck.interval`)),1)]),W(y(Ae),{modelValue:s.value.interval,"onUpdate:modelValue":t[7]||=e=>s.value.interval=e,class:`config-card__input`,"use-grouping":!1,min:1e3,onBlur:p,onKeydown:F(A(p,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),M(`div`,sa,[M(`div`,ca,[t[21]||=M(`i`,{class:`pi pi-stopwatch`},null,-1),M(`span`,null,I(y(i)(`serviceConfigHealthCheck.timeout`)),1)]),W(y(Ae),{modelValue:s.value.timeout,"onUpdate:modelValue":t[8]||=e=>s.value.timeout=e,class:`config-card__input`,"use-grouping":!1,min:500,onBlur:p,onKeydown:F(A(p,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),M(`div`,la,[M(`div`,ua,[t[22]||=M(`i`,{class:`pi pi-replay`},null,-1),M(`span`,null,I(y(i)(`serviceConfigHealthCheck.retries`)),1)]),W(y(Ae),{modelValue:s.value.retries,"onUpdate:modelValue":t[9]||=e=>s.value.retries=e,class:`config-card__input`,"use-grouping":!1,min:0,max:10,onBlur:p,onKeydown:F(A(p,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])],64)):z(``,!0)]))}}),[[`__scopeId`,`data-v-63e32039`]]),fa={class:`config-shortcuts`},pa={key:0,class:`config-shortcuts__empty`},ma={class:`config-shortcuts__row`},ha={class:`config-shortcuts__field`},ga={class:`config-shortcuts__label`},_a={class:`config-shortcuts__field config-shortcuts__field--wide`},va={class:`config-shortcuts__label`},ya={class:`config-shortcuts__field`},ba={class:`config-shortcuts__label`},xa={class:`config-shortcuts__actions-cell`},Sa={class:`config-shortcuts__footer`},Ca=b(U({__name:`ServiceConfigShortcuts`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let n=e,{t:r}=ee(),i=t,o=E([...n.service.shortcuts??[]]),s=null;_e(()=>n.service,e=>{s||(o.value=[...e.shortcuts??[]])});function c(){o.value=[...o.value,{id:Ve(),label:``,command:``,cwd:void 0}]}function l(e){o.value=o.value.filter((t,n)=>n!==e)}function u(e,t,n){o.value=o.value.map((r,i)=>i===e?{...r,[t]:n||void 0}:r)}function d(){s&&clearTimeout(s),s=setTimeout(()=>{i(`save`,o.value),s=null},150)}function f(e){l(e),d()}return(e,t)=>(a(),R(`div`,fa,[o.value.length===0?(a(),R(`div`,pa,[M(`p`,null,I(y(r)(`serviceConfigShortcuts.empty`)),1)])):z(``,!0),(a(!0),R(B,null,w(o.value,(e,t)=>(a(),R(`div`,{key:e.id,class:`config-card`},[M(`div`,ma,[M(`div`,ha,[M(`label`,ga,I(y(r)(`serviceConfigShortcuts.label`)),1),W(y(T),{"model-value":e.label,placeholder:y(r)(`serviceConfigShortcuts.labelPlaceholder`),class:`config-card__input`,"data-testid":`shortcut-label-input`,"onUpdate:modelValue":e=>u(t,`label`,e),onBlur:d,onKeydown:F(A(d,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),M(`div`,_a,[M(`label`,va,I(y(r)(`serviceConfigShortcuts.command`)),1),W(y(T),{"model-value":e.command,placeholder:y(r)(`serviceConfigShortcuts.commandPlaceholder`),class:`config-card__input`,"data-testid":`shortcut-command-input`,"onUpdate:modelValue":e=>u(t,`command`,e),onBlur:d,onKeydown:F(A(d,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),M(`div`,ya,[M(`label`,ba,I(y(r)(`serviceConfigShortcuts.workingDir`)),1),W(y(T),{"model-value":e.cwd??``,placeholder:y(r)(`serviceConfigShortcuts.cwdPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>u(t,`cwd`,e),onBlur:d,onKeydown:F(A(d,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),M(`div`,xa,[W(y(L),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>f(t)},null,8,[`onClick`])])])]))),128)),M(`div`,Sa,[W(y(L),{label:y(r)(`serviceConfigShortcuts.addShortcut`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,"data-testid":`add-shortcut-btn`,onClick:c},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-7cab9b4c`]]),wa=Object.defineProperty,Ta=Object.getOwnPropertySymbols,Ea=Object.prototype.hasOwnProperty,Da=Object.prototype.propertyIsEnumerable,Oa=(e,t,n)=>t in e?wa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ka=(e,t)=>{for(var n in t||={})Ea.call(t,n)&&Oa(e,n,t[n]);if(Ta)for(var n of Ta(t))Da.call(t,n)&&Oa(e,n,t[n]);return e},Aa=(e,t)=>{var n={};for(var r in e)Ea.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Ta)for(var r of Ta(e))t.indexOf(r)<0&&Da.call(e,r)&&(n[r]=e[r]);return n},ja=`[vue-draggable-plus]: `;function Ma(e){console.warn(ja+e)}function Na(e){console.error(ja+e)}function Pa(e,t,n){return n>=0&&n<e.length&&e.splice(n,0,e.splice(t,1)[0]),e}function Fa(e){return e.replace(/-(\w)/g,(e,t)=>t?t.toUpperCase():``)}function Ia(e){return Object.keys(e).reduce((t,n)=>(e[n]!==void 0&&(t[Fa(n)]=e[n]),t),{})}function La(e,t){return Array.isArray(e)&&e.splice(t,1),e}function Ra(e,t,n){return Array.isArray(e)&&e.splice(t,0,n),e}function za(e){return e===void 0}function Ba(e){return typeof e==`string`}function Va(e,t,n){let r=e.children[n];e.insertBefore(t,r)}function Ha(e){e.parentNode&&e.parentNode.removeChild(e)}function Ua(e,t=document){let n=null;return n=typeof t?.querySelector==`function`?(t?.querySelector)?.call(t,e):document.querySelector(e),n||Ma(`Element not found: ${e}`),n}function Wa(e,t,n=null){return function(...r){return e.apply(n,r),t.apply(n,r)}}function Ga(e,t){let n=ka({},e);return Object.keys(t).forEach(r=>{n[r]?n[r]=Wa(e[r],t[r]):n[r]=t[r]}),n}function Ka(e){return e instanceof HTMLElement}function qa(e,t){Object.keys(e).forEach(n=>{t(n,e[n])})}function Ja(e){return e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97)}var Ya=Object.assign;function Xa(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 Za(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Xa(Object(n),!0).forEach(function(t){$a(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xa(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Qa(e){"@babel/helpers - typeof";return Qa=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},Qa(e)}function $a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function eo(){return eo=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},eo.apply(this,arguments)}function to(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 no(e,t){if(e==null)return{};var n=to(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 ro=`1.15.2`;function io(e){if(typeof window<`u`&&window.navigator)return!!navigator.userAgent.match(e)}var ao=io(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),oo=io(/Edge/i),so=io(/firefox/i),co=io(/safari/i)&&!io(/chrome/i)&&!io(/android/i),lo=io(/iP(ad|od|hone)/i),uo=io(/chrome/i)&&io(/android/i),fo={capture:!1,passive:!1};function G(e,t,n){e.addEventListener(t,n,!ao&&fo)}function K(e,t,n){e.removeEventListener(t,n,!ao&&fo)}function po(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 mo(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function ho(e,t,n,r){if(e){n||=document;do{if(t!=null&&(t[0]===`>`?e.parentNode===n&&po(e,t):po(e,t))||r&&e===n)return e;if(e===n)break}while(e=mo(e))}return null}var go=/\s+/g;function _o(e,t,n){e&&t&&(e.classList?e.classList[n?`add`:`remove`](t):e.className=((` `+e.className+` `).replace(go,` `).replace(` `+t+` `,` `)+(n?` `+t:``)).replace(go,` `))}function q(e,t,n){var r=e&&e.style;if(r){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,``):e.currentStyle&&(n=e.currentStyle),t===void 0?n:n[t];!(t in r)&&t.indexOf(`webkit`)===-1&&(t=`-webkit-`+t),r[t]=n+(typeof n==`string`?``:`px`)}}function vo(e,t){var n=``;if(typeof e==`string`)n=e;else do{var r=q(e,`transform`);r&&r!==`none`&&(n=r+` `+n)}while(!t&&(e=e.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(n)}function yo(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 bo(){return document.scrollingElement||document.documentElement}function xo(e,t,n,r,i){if(!(!e.getBoundingClientRect&&e!==window)){var a,o,s,c,l,u,d;if(e!==window&&e.parentNode&&e!==bo()?(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,!ao))do if(i&&i.getBoundingClientRect&&(q(i,`transform`)!==`none`||n&&q(i,`position`)!==`static`)){var f=i.getBoundingClientRect();o-=f.top+parseInt(q(i,`border-top-width`)),s-=f.left+parseInt(q(i,`border-left-width`)),c=o+a.height,l=s+a.width;break}while(i=i.parentNode);if(r&&e!==window){var p=vo(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=xo(e)[t];r;){var a=xo(r)[n],o=void 0;if(o=i>=a,!o)return r;if(r===bo())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]!==$.ghost&&(r||o[a]!==$.dragged)&&ho(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===$.ghost||q(n,`display`)===`none`||t&&!po(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!==$.clone&&(!t||po(e,t))&&n++;return n}function Eo(e){var t=0,n=0,r=bo();if(e)do{var i=vo(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 bo();var n=e,r=!1;do if(n.clientWidth<n.scrollWidth||n.clientHeight<n.scrollHeight){var i=q(n);if(n.clientWidth<n.scrollWidth&&(i.overflowX==`auto`||i.overflowX==`scroll`)||n.clientHeight<n.scrollHeight&&(i.overflowY==`auto`||i.overflowY==`scroll`)){if(!n.getBoundingClientRect||n===document.body)return bo();if(r||t)return n;r=!0}}while(n=n.parentNode);return bo()}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(!(!ho(i,t.draggable,e,!1)||i.animated||i===n)){var a=xo(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(!(q(t,`display`)===`none`||t===$.ghost)){e.push({target:t,rect:xo(t)});var n=Za({},e[e.length-1].rect);if(t.thisAnimationDuration){var r=vo(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=xo(n),c=n.prevFromRect,l=n.prevToRect,u=e.rect,d=vo(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){q(e,`transition`,``),q(e,`transform`,``);var i=vo(this.el),a=i&&i.a,o=i&&i.d,s=(t.left-n.left)/(a||1),c=(t.top-n.top)/(o||1);e.animatingX=!!s,e.animatingY=!!c,q(e,`transform`,`translate3d(`+s+`px,`+c+`px,0)`),this.forRepaintDummy=zo(e),q(e,`transition`,`transform `+r+`ms`+(this.options.easing?` `+this.options.easing:``)),q(e,`transform`,`translate3d(0,0,0)`),typeof e.animated==`number`&&clearTimeout(e.animated),e.animated=setTimeout(function(){q(e,`transition`,``),q(e,`transform`,``),e.animated=!1,e.animatingX=!1,e.animatingY=!1},r)}}}}function 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](Za({sortable:t},n)),t.options[r.pluginName]&&t[r.pluginName][e]&&t[r.pluginName][e](Za({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,eo(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`&&eo(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&&!ao&&!oo?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=Za(Za({},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=no(n,Go);Uo.pluginEvent.bind($)(e,t,Za({dragEl:J,parentEl:Y,ghostEl:X,rootEl:Z,nextEl:Jo,lastDownEl:Yo,cloneEl:Q,cloneHidden:Xo,dragStarted:fs,putSortable:ns,activeSortable:$.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(Za({putSortable:ns,cloneEl:Q,targetEl:J,rootEl:Z,oldIndex:Zo,oldDraggableIndex:$o,newIndex:Qo,newDraggableIndex:es},e))}var J,Y,X,Z,Jo,Yo,Q,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=lo,ws=oo||ao?`cssFloat`:`float`,Ts=Ss&&!uo&&!lo&&`draggable`in document.createElement(`div`),Es=function(){if(Ss){if(ao)return!1;var e=document.createElement(`x`);return e.style.cssText=`pointer-events:auto`,e.style.pointerEvents===`auto`}}(),Ds=function(e,t){var n=q(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&&q(i),s=a&&q(a),c=o&&parseInt(o.marginLeft)+parseInt(o.marginRight)+xo(i).width,l=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+xo(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=xo(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||Qa(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&&X&&q(X,`display`,`none`)},Ms=function(){!Es&&X&&q(X,`display`,``)};Ss&&!uo&&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(J){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){J&&J.parentNode[Lo]._isOutsideThisEl(e.target)};function $(e,t){if(!(e&&e.nodeType&&e.nodeType===1))throw`Sortable: \`el\` must be an HTMLElement, not ${{}.toString.call(e)}`;this.el=e,this.options=t=eo({},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:$.supportPointer!==!1&&`PointerEvent`in window&&!co,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?G(e,`pointerdown`,this._onTapStart):(G(e,`mousedown`,this._onTapStart),G(e,`touchstart`,this._onTapStart)),this.nativeDraggable&&(G(e,`dragover`,this),G(e,`dragenter`,this)),as.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),eo(this,Ro())}$.prototype={constructor:$,_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,J):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,r=this.options,i=r.preventOnFilter,a=e.type,o=e.touches&&e.touches[0]||e.pointerType&&e.pointerType===`touch`&&e,s=(o||e).target,c=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||s,l=r.filter;if(Ws(n),!J&&!(/mousedown|pointerdown/.test(a)&&e.button!==0||r.disabled)&&!c.isContentEditable&&!(!this.nativeDraggable&&co&&s&&s.tagName.toUpperCase()===`SELECT`)&&(s=ho(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=ho(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&&!ho(c,r.handle,n,!1)||this._prepareDragStart(e,o,s)}}},_prepareDragStart:function(e,t,n){var r=this,i=r.el,a=r.options,o=i.ownerDocument,s;if(n&&!J&&n.parentNode===i){var c=xo(n);if(Z=i,J=n,Y=J.parentNode,Jo=J.nextSibling,Yo=n,ts=a.group,$.dragged=J,os={target:J,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,J.style[`will-change`]=`all`,s=function(){if(Ko(`delayEnded`,r,{evt:e}),$.eventCanceled){r._onDrop();return}r._disableDelayedDragEvents(),!so&&r.nativeDraggable&&(J.draggable=!0),r._triggerDragStart(e,t),qo({sortable:r,name:`choose`,originalEvent:e}),_o(J,a.chosenClass,!0)},a.ignore.split(`,`).forEach(function(e){yo(J,e.trim(),Ls)}),G(o,`dragover`,Ns),G(o,`mousemove`,Ns),G(o,`touchmove`,Ns),G(o,`mouseup`,r._onDrop),G(o,`touchend`,r._onDrop),G(o,`touchcancel`,r._onDrop),so&&this.nativeDraggable&&(this.options.touchStartThreshold=4,J.draggable=!0),Ko(`delayStart`,this,{evt:e}),a.delay&&(!a.delayOnTouchOnly||t)&&(!this.nativeDraggable||!(oo||ao))){if($.eventCanceled){this._onDrop();return}G(o,`mouseup`,r._disableDelayedDrag),G(o,`touchend`,r._disableDelayedDrag),G(o,`touchcancel`,r._disableDelayedDrag),G(o,`mousemove`,r._delayedDragTouchMoveHandler),G(o,`touchmove`,r._delayedDragTouchMoveHandler),a.supportPointer&&G(o,`pointermove`,r._delayedDragTouchMoveHandler),r._dragStartTimer=setTimeout(s,a.delay)}else s()}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){J&&Ls(J),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;K(e,`mouseup`,this._disableDelayedDrag),K(e,`touchend`,this._disableDelayedDrag),K(e,`touchcancel`,this._disableDelayedDrag),K(e,`mousemove`,this._delayedDragTouchMoveHandler),K(e,`touchmove`,this._delayedDragTouchMoveHandler),K(e,`pointermove`,this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t||=e.pointerType==`touch`&&e,!this.nativeDraggable||t?this.options.supportPointer?G(document,`pointermove`,this._onTouchMove):t?G(document,`touchmove`,this._onTouchMove):G(document,`mousemove`,this._onTouchMove):(G(J,`dragend`,this),G(Z,`dragstart`,this._onDragStart));try{document.selection?Gs(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(e,t){if(rs=!1,Z&&J){Ko(`dragStarted`,this,{evt:t}),this.nativeDraggable&&G(document,`dragover`,Ps);var n=this.options;!e&&_o(J,n.dragClass,!1),_o(J,n.ghostClass,!0),$.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(J.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=X&&vo(X,!0),o=X&&a&&a.a,s=X&&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(!$.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(X){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})`;q(X,`webkitTransform`,d),q(X,`mozTransform`,d),q(X,`msTransform`,d),q(X,`transform`,d),cs=l,ls=u,ss=i}e.cancelable&&e.preventDefault()}},_appendGhost:function(){if(!X){var e=this.options.fallbackOnBody?document.body:Z,t=xo(J,!0,Cs,!0,e),n=this.options;if(Cs){for(vs=e;q(vs,`position`)===`static`&&q(vs,`transform`)===`none`&&vs!==document;)vs=vs.parentNode;vs!==document.body&&vs!==document.documentElement?(vs===document&&(vs=bo()),t.top+=vs.scrollTop,t.left+=vs.scrollLeft):vs=bo(),ys=Eo(vs)}X=J.cloneNode(!0),_o(X,n.ghostClass,!1),_o(X,n.fallbackClass,!0),_o(X,n.dragClass,!0),q(X,`transition`,``),q(X,`transform`,``),q(X,`box-sizing`,`border-box`),q(X,`margin`,0),q(X,`top`,t.top),q(X,`left`,t.left),q(X,`width`,t.width),q(X,`height`,t.height),q(X,`opacity`,`0.8`),q(X,`position`,Cs?`absolute`:`fixed`),q(X,`zIndex`,`100000`),q(X,`pointerEvents`,`none`),$.ghost=X,e.appendChild(X),q(X,`transform-origin`,us/parseInt(X.style.width)*100+`% `+ds/parseInt(X.style.height)*100+`%`)}},_onDragStart:function(e,t){var n=this,r=e.dataTransfer,i=n.options;if(Ko(`dragStart`,this,{evt:e}),$.eventCanceled){this._onDrop();return}Ko(`setupClone`,this),$.eventCanceled||(Q=Fo(J),Q.removeAttribute(`id`),Q.draggable=!1,Q.style[`will-change`]=``,this._hideClone(),_o(Q,this.options.chosenClass,!1),$.clone=Q),n.cloneId=Gs(function(){Ko(`clone`,n),!$.eventCanceled&&(n.options.removeCloneOnHide||Z.insertBefore(Q,J),n._hideClone(),qo({sortable:n,name:`clone`}))}),!t&&_o(J,i.dragClass,!0),t?(is=!0,n._loopId=setInterval(n._emulateDragOver,50)):(K(document,`mouseup`,n._onDrop),K(document,`touchend`,n._onDrop),K(document,`touchcancel`,n._onDrop),r&&(r.effectAllowed=`move`,i.setData&&i.setData.call(n,r,J)),G(document,`drop`,n),q(J,`transform`,`translateZ(0)`)),rs=!0,n._dragStartId=Gs(n._dragStarted.bind(n,t,e)),G(document,`selectstart`,n),fs=!0,co&&q(document.body,`user-select`,`none`)},_onDragOver:function(e){var t=this.el,n=e.target,r,i,a,o=this.options,s=o.group,c=$.active,l=ts===s,u=o.sort,d=ns||c,f,p=this,m=!1;if(bs)return;function h(o,s){Ko(o,p,Za({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(Z,t,J,r,n,xo(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&&(_o(J,ns?ns.options.ghostClass:c.options.ghostClass,!1),_o(J,o.ghostClass,!0)),ns!==p&&p!==$.active?ns=p:p===$.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===J&&!J.animated||n===t&&!n.animated)&&(ps=null),!o.dragoverBubble&&!e.rootEl&&n!==document&&(J.parentNode[Lo]._isOutsideThisEl(e.target),!r&&Ns(e)),!o.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),m=!0}function v(){Qo=To(J),es=To(J,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=ho(n,o.draggable,t,!0),h(`dragOver`),$.eventCanceled)return m;if(J.contains(e.target)||n.animated&&n.animatingX&&n.animatingY||p._ignoreWhileAnimating===n)return _(!1);if(is=!1,c&&!o.disabled&&(l?u||(a=Y!==Z):ns===this||(this.lastPutMode=ts.checkPull(this,c,J,e))&&s.checkPut(this,c,J,e))){if(f=this._getDirection(e,n)===`vertical`,r=xo(J),h(`dragOverValid`),$.eventCanceled)return m;if(a)return Y=Z,g(),this._hideClone(),h(`revert`),$.eventCanceled||(Jo?Z.insertBefore(J,Jo):Z.appendChild(J)),_(!0);var y=wo(t,o.draggable);if(!y||Bs(e,f,this)&&!y.animated){if(y===J)return _(!1);if(y&&t===e.target&&(n=y),n&&(i=xo(n)),Is(Z,t,J,r,n,i,e,!!n)!==!1)return g(),y&&y.nextSibling?t.insertBefore(J,y.nextSibling):t.appendChild(J),Y=t,v(),_(!0)}else if(y&&zs(e,f,this)){var b=Co(t,0,o,!0);if(b===J)return _(!1);if(n=b,i=xo(n),Is(Z,t,J,r,n,i,e,!1)!==!1)return g(),t.insertBefore(J,b),Y=t,v(),_(!0)}else if(n.parentNode===t){i=xo(n);var x=0,S,C=J.parentNode!==t,w=!Os(J.animated&&J.toRect||r,n.animated&&n.toRect||i,f),T=f?`top`:`left`,ee=So(n,`top`,`top`)||So(J,`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(J);do O-=x,D=Y.children[O];while(D&&(q(D,`display`)===`none`||D===X))}if(x===0||D===n)return _(!1);ps=n,ms=x;var k=n.nextElementSibling,A=!1;A=x===1;var j=Is(Z,t,J,r,n,i,e,A);if(j!==!1)return(j===1||j===-1)&&(A=j===1),bs=!0,setTimeout(Rs,30),g(),A&&!k?t.appendChild(J):n.parentNode.insertBefore(J,A?k:n),ee&&Po(ee,0,E-ee.scrollTop),Y=J.parentNode,S!==void 0&&!gs&&(_s=Math.abs(S-xo(n)[T])),v(),_(!0)}if(t.contains(J))return _(!1)}return!1},_ignoreWhileAnimating:null,_offMoveEvents:function(){K(document,`mousemove`,this._onTouchMove),K(document,`touchmove`,this._onTouchMove),K(document,`pointermove`,this._onTouchMove),K(document,`dragover`,Ns),K(document,`mousemove`,Ns),K(document,`touchmove`,Ns)},_offUpEvents:function(){var e=this.el.ownerDocument;K(e,`mouseup`,this._onDrop),K(e,`touchend`,this._onDrop),K(e,`pointerup`,this._onDrop),K(e,`touchcancel`,this._onDrop),K(document,`selectstart`,this)},_onDrop:function(e){var t=this.el,n=this.options;if(Qo=To(J),es=To(J,n.draggable),Ko(`drop`,this,{evt:e}),Y=J&&J.parentNode,Qo=To(J),es=To(J,n.draggable),$.eventCanceled){this._nulling();return}rs=!1,gs=!1,hs=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),Ks(this.cloneId),Ks(this._dragStartId),this.nativeDraggable&&(K(document,`drop`,this),K(t,`dragstart`,this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),co&&q(document.body,`user-select`,``),q(J,`transform`,``),e&&(fs&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),X&&X.parentNode&&X.parentNode.removeChild(X),(Z===Y||ns&&ns.lastPutMode!==`clone`)&&Q&&Q.parentNode&&Q.parentNode.removeChild(Q),J&&(this.nativeDraggable&&K(J,`dragend`,this),Ls(J),J.style[`will-change`]=``,fs&&!rs&&_o(J,ns?ns.options.ghostClass:this.options.ghostClass,!1),_o(J,this.options.chosenClass,!1),qo({sortable:this,name:`unchoose`,toEl:Y,newIndex:null,newDraggableIndex:null,originalEvent:e}),Z===Y?Qo!==Zo&&Qo>=0&&(qo({sortable:this,name:`update`,toEl:Y,originalEvent:e}),qo({sortable:this,name:`sort`,toEl:Y,originalEvent:e})):(Qo>=0&&(qo({rootEl:Y,name:`add`,toEl:Y,fromEl:Z,originalEvent:e}),qo({sortable:this,name:`remove`,toEl:Y,originalEvent:e}),qo({rootEl:Y,name:`sort`,toEl:Y,fromEl:Z,originalEvent:e}),qo({sortable:this,name:`sort`,toEl:Y,originalEvent:e})),ns&&ns.save()),$.active&&((Qo==null||Qo===-1)&&(Qo=Zo,es=$o),qo({sortable:this,name:`end`,toEl:Y,originalEvent:e}),this.save()))),this._nulling()},_nulling:function(){Ko(`nulling`,this),Z=J=Y=X=Jo=Q=Yo=Xo=os=ss=fs=Qo=es=Zo=$o=ps=ms=ns=ts=$.dragged=$.ghost=$.clone=$.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`:J&&(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],ho(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];ho(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 ho(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,K(e,`mousedown`,this._onTapStart),K(e,`touchstart`,this._onTapStart),K(e,`pointerdown`,this._onTapStart),this.nativeDraggable&&(K(e,`dragover`,this),K(e,`dragenter`,this)),Array.prototype.forEach.call(e.querySelectorAll(`[draggable]`),function(e){e.removeAttribute(`draggable`)}),this._onDrop(),this._disableDelayedDragEvents(),as.splice(as.indexOf(this.el),1),this.el=e=null},_hideClone:function(){if(!Xo){if(Ko(`hideClone`,this),$.eventCanceled)return;q(Q,`display`,`none`),this.options.removeCloneOnHide&&Q.parentNode&&Q.parentNode.removeChild(Q),Xo=!0}},_showClone:function(e){if(e.lastPutMode!==`clone`){this._hideClone();return}if(Xo){if(Ko(`showClone`,this),$.eventCanceled)return;J.parentNode==Z&&!this.options.group.revertClone?Z.insertBefore(Q,J):Jo?Z.insertBefore(Q,Jo):Z.appendChild(Q),this.options.group.revertClone&&this.animate(J,Q),q(Q,`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&&!ao&&!oo?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||xo(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=xo(Co(n.el,0,n.options,!0)),i=Io(n.el,n.options,X),a=10;return t?e.clientX<i.left-a||e.clientY<r.top&&e.clientX<r.right:e.clientY<i.top-a||e.clientY<r.bottom&&e.clientX<r.left}function Bs(e,t,n){var r=xo(wo(n.el,n.options.draggable)),i=Io(n.el,n.options,X),a=10;return t?e.clientX>i.right+a||e.clientY>r.bottom&&e.clientX>r.left:e.clientY>i.bottom+a||e.clientX>r.right&&e.clientY>r.top}function 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(J)<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&&G(document,`touchmove`,function(e){($.active||rs)&&e.cancelable&&e.preventDefault()}),$.utils={on:G,off:K,css:q,find:yo,is:function(e,t){return!!ho(e,t,e,!1)},extend:ko,throttle:Mo,closest:ho,toggleClass:_o,clone:Fo,index:To,nextTick:Gs,cancelNextTick:Ks,detectDirection:Ds,getChild:Co},$.get=function(e){return e[Lo]},$.mount=function(){var e=[...arguments];e[0].constructor===Array&&(e=e[0]),e.forEach(function(e){if(!e.prototype||!e.prototype.constructor)throw`Sortable: Mounted plugin must be a constructor function, not ${{}.toString.call(e)}`;e.utils&&($.utils=Za(Za({},$.utils),e.utils)),Uo.mount(e)})},$.create=function(e,t){return new $(e,t)},$.version=ro;var qs=[],Js,Ys,Xs=!1,Zs,Qs,$s,ec;function tc(){function e(){for(var e in this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0},this)e.charAt(0)===`_`&&typeof this[e]==`function`&&(this[e]=this[e].bind(this))}return e.prototype={dragStarted:function(e){var t=e.originalEvent;this.sortable.nativeDraggable?G(document,`dragover`,this._handleAutoScroll):this.options.supportPointer?G(document,`pointermove`,this._handleFallbackAutoScroll):t.touches?G(document,`touchmove`,this._handleFallbackAutoScroll):G(document,`mousemove`,this._handleFallbackAutoScroll)},dragOverCompleted:function(e){var t=e.originalEvent;!this.options.dragOverBubble&&!t.rootEl&&this._handleAutoScroll(t)},drop:function(){this.sortable.nativeDraggable?K(document,`dragover`,this._handleAutoScroll):(K(document,`pointermove`,this._handleFallbackAutoScroll),K(document,`touchmove`,this._handleFallbackAutoScroll),K(document,`mousemove`,this._handleFallbackAutoScroll)),rc(),nc(),No()},nulling:function(){$s=Ys=Js=Xs=ec=Zs=Qs=null,qs.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($s=e,t||this.options.forceAutoScrollFallback||oo||ao||co){ic(e,this.options,a,t);var o=Oo(a,!0);Xs&&(!ec||r!==Zs||i!==Qs)&&(ec&&rc(),ec=setInterval(function(){var a=Oo(document.elementFromPoint(r,i),!0);a!==o&&(o=a,nc()),ic(e,n.options,a,t)},10),Zs=r,Qs=i)}else{if(!this.options.bubbleScroll||Oo(a,!0)===bo()){nc();return}ic(e,this.options,Oo(a,!1),!1)}}},eo(e,{pluginName:`scroll`,initializeByDefault:!0})}function nc(){qs.forEach(function(e){clearInterval(e.pid)}),qs=[]}function rc(){clearInterval(ec)}var ic=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=bo(),l=!1,u;Ys!==n&&(Ys=n,nc(),Js=t.scroll,u=t.scrollFn,Js===!0&&(Js=Oo(n,!0)));var d=0,f=Js;do{var p=f,m=xo(p),h=m.top,g=m.bottom,_=m.left,v=m.right,y=m.width,b=m.height,x=void 0,S=void 0,C=p.scrollWidth,w=p.scrollHeight,T=q(p),ee=p.scrollLeft,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(!qs[d])for(var k=0;k<=d;k++)qs[k]||(qs[k]={});(qs[d].vx!=D||qs[d].vy!=O||qs[d].el!==p)&&(qs[d].el=p,qs[d].vx=D,qs[d].vy=O,clearInterval(qs[d].pid),(D!=0||O!=0)&&(l=!0,qs[d].pid=setInterval(function(){r&&this.layer===0&&$.active._onTouchMove($s);var t=qs[this.layer].vy?qs[this.layer].vy*s:0,n=qs[this.layer].vx?qs[this.layer].vx*s:0;typeof u==`function`&&u.call($.dragged.parentNode[Lo],n,t,e,$s,qs[this.layer].el)!==`continue`||Po(qs[this.layer].el,n,t)}.bind({layer:d}),24))),d++}while(t.bubbleScroll&&f!==c&&(f=Oo(f,!1)));Xs=l}},30),ac=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 oc(){}oc.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:ac},eo(oc,{pluginName:`revertOnSpill`});function sc(){}sc.prototype={onSpill:function(e){var t=e.dragEl,n=e.putSortable||this.sortable;n.captureAnimationState(),t.parentNode&&t.parentNode.removeChild(t),n.animateAll()},drop:ac},eo(sc,{pluginName:`removeOnSpill`}),$.mount(new tc),$.mount(sc,oc);function cc(e){return e==null?e:JSON.parse(JSON.stringify(e))}function lc(e){v()&&n(e)}function uc(e){v()?g(e):ce(e)}var dc=null,fc=null;function pc(e=null,t=null){dc=e,fc=t}function mc(){return{data:dc,clonedData:fc}}var hc=Symbol(`cloneElement`);function gc(...e){let t=v()?.proxy,n=null,r=e[0],[,i,a]=e;Array.isArray(y(i))||(a=i,i=null);let o=null,{immediate:s=!0,clone:c=cc,forceFallback:l,fallbackOnBody:u,customUpdate:d}=y(a)??{};function f(e){let{from:t,oldIndex:r,item:a}=e,o=Array.from(t.childNodes);n=l&&!u?o.slice(0,-1):o;let s=y(y(i)?.[r]),d=c(s);pc(s,d),a[hc]=d}function p(e){let t=e.item[hc];if(!za(t)){if(Ha(e.item),N(i)){let n=[...y(i)];i.value=Ra(n,e.newDraggableIndex,t);return}Ra(y(i),e.newDraggableIndex,t)}}function m(e){let{from:t,item:n,oldIndex:r,oldDraggableIndex:a,pullMode:o,clone:s}=e;if(Va(t,n,r),o===`clone`){Ha(s);return}if(N(i)){let e=[...y(i)];i.value=La(e,a);return}La(y(i),a)}function h(e){if(d){d(e);return}let{from:t,item:n,oldIndex:r,oldDraggableIndex:a,newDraggableIndex:o}=e;if(Ha(n),Va(t,n,r),N(i)){let e=[...y(i)];i.value=Pa(e,a,o);return}Pa(y(i),a,o)}function g(e){let{newIndex:t,oldIndex:r,from:i,to:a}=e,o=null,s=t===r&&i===a;try{if(s){let e=null;n?.some((t,r)=>{if(e&&n?.length!==a.childNodes.length)return i.insertBefore(e,t.nextSibling),!0;let o=a.childNodes[r];e=a?.replaceChild(t,o)})}}catch(e){o=e}finally{n=null}ce(()=>{if(pc(),o)throw o})}let _={onUpdate:h,onStart:f,onAdd:p,onRemove:m,onEnd:g};function b(e){let n=y(r);return e||=Ba(n)?Ua(n,t?.$el):n,e&&!Ka(e)&&(e=e.$el),e||Na(`Root element not found`),e}function x(){let e=y(a)??{},{immediate:t,clone:n}=e,r=Aa(e,[`immediate`,`clone`]);return qa(r,(e,t)=>{Ja(e)&&(r[e]=(e,...n)=>(Ya(e,mc()),t(e,...n)))}),Ga(i===null?{}:_,r)}let S=e=>{e=b(e),o&&C.destroy(),o=new $(e,x())};_e(()=>a,()=>{o&&qa(x(),(e,t)=>{o?.option(e,t)})},{deep:!0});let C={option:(e,t)=>o?.option(e,t),destroy:()=>{o?.destroy(),o=null},save:()=>o?.save(),toArray:()=>o?.toArray(),closest:(...e)=>o?.closest(...e)};return uc(()=>{s&&S()}),lc(C.destroy),ka({start:S,pause:()=>C?.option(`disabled`,!0),resume:()=>C?.option(`disabled`,!1)},C)}var _c=[`update`,`start`,`add`,`remove`,`choose`,`unchoose`,`end`,`sort`,`filter`,`clone`,`move`,`change`],vc=U({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`,..._c.map(e=>`on${e.replace(/^\S/,e=>e.toUpperCase())}`)],emits:[`update:modelValue`,..._c],setup(e,{slots:t,emit:n,expose:r,attrs:i}){let a=_c.reduce((e,t)=>{let r=`on${t.replace(/^\S/,e=>e.toUpperCase())}`;return e[r]=(...e)=>n(t,...e),e},{}),o=V(()=>{let t=_(e),{modelValue:n}=t,r=Aa(t,[`modelValue`]),o=Object.entries(r).reduce((e,[t,n])=>{let r=y(n);return r!==void 0&&(e[t]=r),e},{});return ka(ka({},a),Ia(ka(ka({},i),o)))}),s=V({get:()=>e.modelValue,set:e=>n(`update:modelValue`,e)}),c=E(),l=oe(gc(e.target||c,s,o));return r(l),()=>be(e.tag||`div`,{ref:c},(t?.default)?.call(t,l))}}),yc={mounted:`mounted`,unmounted:`unmounted`};yc.mounted,yc.unmounted;var bc={class:`config-log-parsers`},xc={class:`config-card`},Sc={class:`config-card__header`},Cc={class:`config-card__hint`},wc={class:`config-card`},Tc={class:`config-card__header`},Ec={class:`config-card__header-hint`},Dc={class:`config-log-parsers__order`},Oc={class:`config-log-parsers__name`},kc={key:1,class:`config-log-parsers__empty`},Ac={class:`config-log-parsers__add-row`},jc={class:`config-log-parsers__footer`},Mc=b(U({__name:`ServiceConfigLogs`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let n=e,r=t,i=o(),{t:s}=ee(),l=qe(),u=E([...n.service.parserIds??[]]);_e(()=>n.service,e=>{u.value=[...e.parserIds??[]]});let d=V(()=>[...l.parsers].filter(e=>e.enabled).sort((e,t)=>e.name.localeCompare(t.name))),f=V(()=>d.value.filter(e=>!u.value.includes(e.id))),p=E(u.value.map(e=>l.parsers.find(t=>t.id===e)).filter(e=>e!==void 0));_e(u,e=>{let t=p.value.filter(t=>e.includes(t.id)),n=e.filter(e=>!t.find(t=>t.id===e)).map(e=>l.parsers.find(t=>t.id===e)).filter(e=>e!==void 0);p.value=[...t,...n]}),_e(()=>l.parsers,()=>{p.value=u.value.map(e=>l.parsers.find(t=>t.id===e)).filter(e=>e!==void 0)});let m=E(null);function h(e){if(!e)return;let t=l.parsers.find(t=>t.id===e);t&&(u.value=[...u.value,e],p.value=[...p.value,t],m.value=null,b())}function _(e){u.value=u.value.filter(t=>t!==e),p.value=p.value.filter(t=>t.id!==e),b()}function v(){u.value=p.value.map(e=>e.id),b()}function b(){r(`save`,{parserIds:p.value.map(e=>e.id)})}return g(()=>{l.fetchParsers()}),(e,t)=>(a(),R(`div`,bc,[M(`div`,xc,[M(`div`,Sc,[t[3]||=M(`i`,{class:`pi pi-code`},null,-1),M(`span`,null,I(y(s)(`serviceConfigLogs.jsParsers`)),1)]),M(`small`,Cc,I(y(s)(`serviceConfigLogs.jsParsersHint`)),1)]),M(`div`,wc,[M(`div`,Tc,[t[4]||=M(`i`,{class:`pi pi-sort-alt`},null,-1),M(`span`,null,I(y(s)(`serviceConfigLogs.executionOrder`)),1),M(`small`,Ec,I(y(s)(`serviceConfigLogs.executionOrderHint`)),1)]),p.value.length>0?(a(),P(y(vc),{key:0,modelValue:p.value,"onUpdate:modelValue":t[0]||=e=>p.value=e,animation:150,handle:`.drag-handle`,class:`config-log-parsers__drag-list`,"data-testid":`log-parsers-drag-list`,onEnd:v},{default:k(()=>[(a(!0),R(B,null,w(p.value,(e,n)=>(a(),R(`div`,{key:e.id,class:`config-log-parsers__drag-row`,"data-testid":`log-parsers-drag-row`},[t[5]||=M(`span`,{class:`drag-handle`,"data-testid":`drag-handle`},[M(`i`,{class:`pi pi-bars`})],-1),M(`span`,Dc,I(n+1),1),M(`span`,Oc,I(e.name),1),e.builtin?(a(),P(y(Te),{key:0,severity:`secondary`,class:`config-log-parsers__builtin-badge`},{default:k(()=>[H(I(y(s)(`serviceConfigLogs.builtin`)),1)]),_:1})):z(``,!0),e.enabled?z(``,!0):(a(),P(y(Te),{key:1,severity:`warn`,class:`config-log-parsers__disabled-badge`},{default:k(()=>[H(I(y(s)(`serviceConfigLogs.disabled`)),1)]),_:1})),W(y(L),{icon:`pi pi-trash`,severity:`danger`,text:``,size:`small`,class:`config-log-parsers__delete`,onClick:t=>_(e.id)},null,8,[`onClick`])]))),128))]),_:1},8,[`modelValue`])):z(``,!0),p.value.length===0?(a(),R(`div`,kc,I(y(s)(`serviceConfigLogs.empty`)),1)):z(``,!0),M(`div`,Ac,[W(y(c),{modelValue:m.value,"onUpdate:modelValue":[t[1]||=e=>m.value=e,h],options:f.value,"option-label":`name`,"option-value":`id`,placeholder:y(s)(`serviceConfigLogs.addParser`),class:`config-log-parsers__add-select`,loading:y(l).loading,disabled:f.value.length===0},{option:k(({option:e})=>[M(`span`,null,I(e.name),1),e.builtin?(a(),P(y(Te),{key:0,severity:`secondary`,class:`ml-2`,style:{"font-size":`0.65rem`,padding:`0.1rem 0.35rem`}},{default:k(()=>[H(I(y(s)(`serviceConfigLogs.builtin`)),1)]),_:1})):z(``,!0)]),_:1},8,[`modelValue`,`options`,`placeholder`,`loading`,`disabled`])])]),M(`div`,jc,[W(y(L),{label:y(s)(`serviceConfigLogs.manageParsers`),icon:`pi pi-cog`,severity:`secondary`,outlined:``,size:`small`,onClick:t[2]||=e=>y(i).push({name:`settings`,query:{section:`parsers`}})},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-2a8eb0c6`]]),Nc={class:`config-log-sources`},Pc={class:`config-card`},Fc={class:`config-card__header`},Ic={class:`config-card__hint`},Lc={key:0,class:`config-card config-card--list`},Rc={class:`source-row__info`},zc={class:`source-row__type`},Bc={class:`source-row__label`},Vc={class:`source-row__actions`},Hc={key:1,class:`config-log-sources__empty`},Uc={class:`config-log-sources__footer`},Wc={class:`dialog-form`},Gc={class:`dialog-form__field`},Kc={class:`dialog-form__label`},qc={class:`dialog-form__field`},Jc={class:`dialog-form__label`},Yc={class:`dialog-form__field`},Xc={class:`dialog-form__label`},Zc={class:`dialog-form__field dialog-form__field--row`},Qc={class:`dialog-form__label`},$c={class:`dialog-form__field dialog-form__field--row`},el={class:`dialog-form__label`},tl={class:`dialog-form__field`},nl={class:`dialog-form__label`},rl={class:`dialog-form__row`},il={class:`dialog-form__field`},al={class:`dialog-form__field`},ol={class:`dialog-form__row`},sl={class:`dialog-form__field`},cl={class:`dialog-form__field`},ll={class:`dialog-form__field`},ul={class:`dialog-form__row`},dl={class:`dialog-form__field dialog-form__field--grow`},fl={class:`dialog-form__field dialog-form__field--port`},pl={class:`dialog-form__row`},ml={class:`dialog-form__field`},hl={class:`dialog-form__field`},gl={class:`dialog-form__row`},_l={class:`dialog-form__field`},vl={class:`dialog-form__field`},yl={class:`dialog-form__row`},bl={class:`dialog-form__field`},xl={class:`dialog-form__field`},Sl={class:`dialog-form__row`},Cl={class:`dialog-form__field`},wl={class:`dialog-form__field`},Tl={class:`dialog-form__field`},El={key:3,class:`dialog-form__hint-block`},Dl=b(U({__name:`ServiceConfigLogSources`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let{t:n}=ee(),i=e,o=t,s=[{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=E([...i.service.logSources??[]]);_e(()=>i.service.logSources,e=>{u.value=[...e??[]]});let d=E(!1),f=E(null),m=E(l(`console`));function h(){f.value=null,m.value=l(`file`),d.value=!0}function g(e){f.value=e,m.value={...u.value[e]},d.value=!0}function _(e){m.value=l(e)}function v(){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,o(`save`,{logSources:u.value})}function b(e){u.value=u.value.filter((t,n)=>n!==e),o(`save`,{logSources:u.value})}function x(e){return e.type===`console`?`Console`:e.type===`file`?e.path||`(no path)`:e.type===`mongo`?e.database?`mongo/${e.database}/${e.collection}`:`(not configured)`:e.type===`mysql`?e.database?`mysql/${e.host}/${e.database}/${e.table}`:`(not configured)`:e.type}function S(e){return e===`console`?`pi-terminal`:e===`file`?`pi-file`:`pi-database`}return(e,t)=>(a(),R(`div`,Nc,[M(`div`,Pc,[M(`div`,Fc,[t[23]||=M(`i`,{class:`pi pi-inbox`},null,-1),M(`span`,null,I(y(n)(`serviceConfigLogSources.title`)),1)]),M(`small`,Ic,I(y(n)(`serviceConfigLogSources.hint`)),1)]),u.value.length>0?(a(),R(`div`,Lc,[(a(!0),R(B,null,w(u.value,(e,t)=>(a(),R(`div`,{key:t,class:`source-row`},[M(`i`,{class:p(`pi ${S(e.type)} source-row__icon`)},null,2),M(`div`,Rc,[M(`span`,zc,I(e.type),1),M(`span`,Bc,I(x(e)),1)]),M(`div`,Vc,[W(y(L),{icon:`pi pi-pencil`,text:``,size:`small`,severity:`secondary`,onClick:e=>g(t)},null,8,[`onClick`]),W(y(L),{icon:`pi pi-trash`,text:``,size:`small`,severity:`danger`,onClick:e=>b(t)},null,8,[`onClick`])])]))),128))])):(a(),R(`div`,Hc,[t[24]||=M(`i`,{class:`pi pi-inbox config-log-sources__empty-icon`},null,-1),M(`p`,null,I(y(n)(`serviceConfigLogSources.empty`)),1),M(`small`,null,I(y(n)(`serviceConfigLogSources.emptyHint`)),1)])),M(`div`,Uc,[W(y(L),{label:y(n)(`serviceConfigLogSources.addSource`),icon:`pi pi-plus`,size:`small`,onClick:h},null,8,[`label`])]),W(y(r),{visible:d.value,"onUpdate:visible":t[22]||=e=>d.value=e,header:f.value===null?y(n)(`serviceConfigLogSources.addDialog`):y(n)(`serviceConfigLogSources.editDialog`),modal:``,style:{width:`520px`}},{footer:k(()=>[W(y(L),{label:y(n)(`serviceConfigLogSources.cancel`),severity:`secondary`,outlined:``,onClick:t[21]||=e=>d.value=!1},null,8,[`label`]),W(y(L),{label:f.value===null?y(n)(`serviceConfigLogSources.add`):y(n)(`serviceConfigLogSources.save`),icon:`pi pi-check`,onClick:v},null,8,[`label`])]),default:k(()=>[M(`div`,Wc,[M(`div`,Gc,[M(`label`,Kc,I(y(n)(`serviceConfigLogSources.type`)),1),W(y(c),{"model-value":m.value.type,options:s,"option-label":`label`,"option-value":`value`,class:`dialog-form__input`,"onUpdate:modelValue":_},null,8,[`model-value`])]),m.value.type===`file`?(a(),R(B,{key:0},[M(`div`,qc,[M(`label`,Jc,[H(I(y(n)(`serviceConfigLogSources.path`))+` `,1),t[25]||=M(`span`,{class:`dialog-form__required`},`*`,-1)]),W(y(T),{modelValue:m.value.path,"onUpdate:modelValue":t[0]||=e=>m.value.path=e,class:`dialog-form__input`,placeholder:`/var/log/app.log`},null,8,[`modelValue`])]),M(`div`,Yc,[M(`label`,Xc,I(y(n)(`serviceConfigLogSources.encoding`)),1),W(y(T),{modelValue:m.value.encoding,"onUpdate:modelValue":t[1]||=e=>m.value.encoding=e,class:`dialog-form__input`,placeholder:`utf-8`},null,8,[`modelValue`])]),M(`div`,Zc,[M(`label`,Qc,I(y(n)(`serviceConfigLogSources.startFromEnd`)),1),W(y(Me),{modelValue:m.value.startFromEnd,"onUpdate:modelValue":t[2]||=e=>m.value.startFromEnd=e},null,8,[`modelValue`])]),M(`div`,$c,[M(`label`,el,I(y(n)(`serviceConfigLogSources.createIfNotExists`)),1),W(y(Me),{modelValue:m.value.createIfNotExists,"onUpdate:modelValue":t[3]||=e=>m.value.createIfNotExists=e},null,8,[`modelValue`])])],64)):m.value.type===`mongo`?(a(),R(B,{key:1},[M(`div`,tl,[M(`label`,nl,[H(I(y(n)(`serviceConfigLogSources.connectionString`))+` `,1),t[26]||=M(`span`,{class:`dialog-form__required`},`*`,-1)]),W(y(T),{modelValue:m.value.connectionString,"onUpdate:modelValue":t[4]||=e=>m.value.connectionString=e,class:`dialog-form__input`,placeholder:`mongodb://user:pass@host:27017`,type:`password`,autocomplete:`off`},null,8,[`modelValue`])]),M(`div`,rl,[M(`div`,il,[t[27]||=M(`label`,{class:`dialog-form__label`},[H(`Database `),M(`span`,{class:`dialog-form__required`},`*`)],-1),W(y(T),{modelValue:m.value.database,"onUpdate:modelValue":t[5]||=e=>m.value.database=e,class:`dialog-form__input`,placeholder:`mydb`},null,8,[`modelValue`])]),M(`div`,al,[t[28]||=M(`label`,{class:`dialog-form__label`},[H(`Collection `),M(`span`,{class:`dialog-form__required`},`*`)],-1),W(y(T),{modelValue:m.value.collection,"onUpdate:modelValue":t[6]||=e=>m.value.collection=e,class:`dialog-form__input`,placeholder:`logs`},null,8,[`modelValue`])])]),M(`div`,ol,[M(`div`,sl,[t[29]||=M(`label`,{class:`dialog-form__label`},`Timestamp field`,-1),W(y(T),{modelValue:m.value.timestampField,"onUpdate:modelValue":t[7]||=e=>m.value.timestampField=e,class:`dialog-form__input`,placeholder:`timestamp`},null,8,[`modelValue`])]),M(`div`,cl,[t[30]||=M(`label`,{class:`dialog-form__label`},`Message field`,-1),W(y(T),{modelValue:m.value.messageField,"onUpdate:modelValue":t[8]||=e=>m.value.messageField=e,class:`dialog-form__input`,placeholder:`message`},null,8,[`modelValue`])])]),M(`div`,ll,[t[31]||=M(`label`,{class:`dialog-form__label`},[H(`Level field `),M(`span`,{class:`dialog-form__hint`},`(optional)`)],-1),W(y(T),{modelValue:m.value.levelField,"onUpdate:modelValue":t[9]||=e=>m.value.levelField=e,class:`dialog-form__input`,placeholder:`level`},null,8,[`modelValue`])])],64)):m.value.type===`mysql`?(a(),R(B,{key:2},[M(`div`,ul,[M(`div`,dl,[t[32]||=M(`label`,{class:`dialog-form__label`},[H(`Host `),M(`span`,{class:`dialog-form__required`},`*`)],-1),W(y(T),{modelValue:m.value.host,"onUpdate:modelValue":t[10]||=e=>m.value.host=e,class:`dialog-form__input`,placeholder:`localhost`},null,8,[`modelValue`])]),M(`div`,fl,[t[33]||=M(`label`,{class:`dialog-form__label`},`Port`,-1),W(y(Ae),{modelValue:m.value.port,"onUpdate:modelValue":t[11]||=e=>m.value.port=e,min:1,max:65535,class:`dialog-form__input`},null,8,[`modelValue`])])]),M(`div`,pl,[M(`div`,ml,[t[34]||=M(`label`,{class:`dialog-form__label`},[H(`User `),M(`span`,{class:`dialog-form__required`},`*`)],-1),W(y(T),{modelValue:m.value.user,"onUpdate:modelValue":t[12]||=e=>m.value.user=e,class:`dialog-form__input`,placeholder:`root`},null,8,[`modelValue`])]),M(`div`,hl,[t[35]||=M(`label`,{class:`dialog-form__label`},`Password`,-1),W(y(T),{modelValue:m.value.password,"onUpdate:modelValue":t[13]||=e=>m.value.password=e,class:`dialog-form__input`,type:`password`,autocomplete:`new-password`},null,8,[`modelValue`])])]),M(`div`,gl,[M(`div`,_l,[t[36]||=M(`label`,{class:`dialog-form__label`},[H(`Database `),M(`span`,{class:`dialog-form__required`},`*`)],-1),W(y(T),{modelValue:m.value.database,"onUpdate:modelValue":t[14]||=e=>m.value.database=e,class:`dialog-form__input`,placeholder:`app_db`},null,8,[`modelValue`])]),M(`div`,vl,[t[37]||=M(`label`,{class:`dialog-form__label`},[H(`Table `),M(`span`,{class:`dialog-form__required`},`*`)],-1),W(y(T),{modelValue:m.value.table,"onUpdate:modelValue":t[15]||=e=>m.value.table=e,class:`dialog-form__input`,placeholder:`logs`},null,8,[`modelValue`])])]),M(`div`,yl,[M(`div`,bl,[t[38]||=M(`label`,{class:`dialog-form__label`},`Timestamp column`,-1),W(y(T),{modelValue:m.value.timestampColumn,"onUpdate:modelValue":t[16]||=e=>m.value.timestampColumn=e,class:`dialog-form__input`,placeholder:`created_at`},null,8,[`modelValue`])]),M(`div`,xl,[t[39]||=M(`label`,{class:`dialog-form__label`},`Message column`,-1),W(y(T),{modelValue:m.value.messageColumn,"onUpdate:modelValue":t[17]||=e=>m.value.messageColumn=e,class:`dialog-form__input`,placeholder:`message`},null,8,[`modelValue`])])]),M(`div`,Sl,[M(`div`,Cl,[t[40]||=M(`label`,{class:`dialog-form__label`},[H(`Level column `),M(`span`,{class:`dialog-form__hint`},`(optional)`)],-1),W(y(T),{modelValue:m.value.levelColumn,"onUpdate:modelValue":t[18]||=e=>m.value.levelColumn=e,class:`dialog-form__input`,placeholder:`level`},null,8,[`modelValue`])]),M(`div`,wl,[t[41]||=M(`label`,{class:`dialog-form__label`},`Poll interval (ms)`,-1),W(y(Ae),{modelValue:m.value.pollIntervalMs,"onUpdate:modelValue":t[19]||=e=>m.value.pollIntervalMs=e,min:500,max:6e4,class:`dialog-form__input`},null,8,[`modelValue`])])]),M(`div`,Tl,[t[42]||=M(`label`,{class:`dialog-form__label`},[H(`Custom query `),M(`span`,{class:`dialog-form__hint`},[H(`(optional, must include `),M(`code`,null,`WHERE … > ?`),H(`)`)])],-1),W(y(T),{modelValue:m.value.query,"onUpdate:modelValue":t[20]||=e=>m.value.query=e,class:`dialog-form__input`,placeholder:`SELECT * FROM logs WHERE created_at > ? ORDER BY id ASC`},null,8,[`modelValue`])])],64)):m.value.type===`console`?(a(),R(`small`,El,`The console source captures stdout/stderr and is always active. Adding it here has no effect unless you want to track it explicitly.`)):z(``,!0)])]),_:1},8,[`visible`,`header`])]))}}),[[`__scopeId`,`data-v-9795b10b`]]),Ol={class:`config-traefik`},kl={class:`traefik-entry__fields`},Al=b(U({__name:`ServiceConfigTraefik`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let n=e,r=t,i=E([...n.service.localUrls??[]]),o=E(null);g(async()=>{n.service.agentId&&(o.value=(await D.settings.getAgentTraefikConfig.query({agentId:n.service.agentId})).enabled)});let s=null;_e(()=>n.service,e=>{s||(i.value=[...e.localUrls??[]])});function c(){i.value=[...i.value,{url:``,port:3e3}]}function l(e){i.value=i.value.filter((t,n)=>n!==e),d()}function u(e,t,n){i.value=i.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function d(){s&&clearTimeout(s),s=setTimeout(()=>{r(`save`,{localUrls:i.value.filter(e=>e.url.trim())}),s=null},150)}return(e,t)=>(a(),R(`div`,Ol,[o.value===!1?(a(),P(y(He),{key:0,severity:`warn`,closable:!1},{default:k(()=>[t[1]||=H(` Traefik n'est pas activé. Configurez-le dans `,-1),W(y(Ce),{to:`/settings`},{default:k(()=>[...t[0]||=[H(`Paramètres → Traefik`,-1)]]),_:1}),t[2]||=H(` pour que ces URLs soient actives. `,-1)]),_:1})):z(``,!0),(a(!0),R(B,null,w(i.value,(e,t)=>(a(),R(`div`,{key:t,class:`traefik-entry`},[M(`div`,kl,[W(y(T),{"model-value":e.url,class:`traefik-entry__url`,placeholder:`mon-app.local.mondomaine.com`,"onUpdate:modelValue":e=>u(t,`url`,e),onBlur:d,onKeydown:F(A(d,[`prevent`]),[`enter`])},null,8,[`model-value`,`onUpdate:modelValue`,`onKeydown`]),W(y(Ae),{"model-value":e.port,class:`traefik-entry__port`,min:1,max:65535,"use-grouping":!1,placeholder:`3000`,"onUpdate:modelValue":e=>{u(t,`port`,e??3e3),d()}},null,8,[`model-value`,`onUpdate:modelValue`]),W(y(L),{icon:`pi pi-trash`,severity:`danger`,text:``,size:`small`,onClick:e=>l(t)},null,8,[`onClick`])])]))),128)),W(y(L),{icon:`pi pi-plus`,label:`Ajouter une URL`,size:`small`,outlined:``,onClick:c})]))}}),[[`__scopeId`,`data-v-f22ba351`]]),jl={class:`config-view`,"data-testid":`config-view`},Ml={class:`config-view__header`},Nl={class:`config-view__title`},Pl={class:`config-view__actions`},Fl=b(U({__name:`ServiceConfigView`,props:{service:{},projectId:{}},emits:[`remove-service`],setup(e,{emit:t}){let n=e,r=t,{t:i}=ee(),s=se(),c=we(),{isDebug:l}=en(),u=S(),d=o(),f=[`general`,`commands`,`shortcuts`,`env`,`health`,`log-parsers`,`log-sources`,`traefik`],p=V(()=>{let e=u.query.configTab;return f.includes(e)?e:`general`});function m(e){d.replace({query:{...u.query,configTab:e}})}let h=V(()=>c.projects.find(e=>e.id===n.projectId)?.activeEnvironmentId);async function g(e,t){await t()?l.value&&console.debug(`[autosave] ${e} saved`):console.error(`[autosave] ${e} failed:`,s.error??`Save failed`)}async function _(e){await g(`General`,()=>s.update(n.service.id,e))}async function v(e){await g(`Commands`,()=>s.update(n.service.id,e))}async function b(e){await g(`Health check`,()=>s.update(n.service.id,{healthCheck:e??null}))}async function x(e){await g(`Shortcuts`,()=>s.update(n.service.id,{shortcuts:e}))}async function C(e){await g(`Docker`,()=>s.update(n.service.id,{dockerConfig:e}))}async function w(e){await g(`Log parsers`,()=>s.update(n.service.id,e))}async function T(e){await g(`Log sources`,()=>s.update(n.service.id,e))}async function E(e){await g(`Traefik`,()=>s.update(n.service.id,e))}function D(){r(`remove-service`,n.service.id)}return(t,n)=>(a(),R(`div`,jl,[M(`div`,Ml,[M(`h2`,Nl,I(y(i)(`serviceConfigView.title`)),1),M(`div`,Pl,[W(y(L),{label:y(i)(`serviceConfigView.remove`),icon:`pi pi-trash`,severity:`danger`,size:`small`,outlined:``,onClick:D},null,8,[`label`])])]),W(y(Pe),{value:p.value,class:`config-view__tabs`,"onUpdate:value":m},{default:k(()=>[W(y(Fe),null,{default:k(()=>[W(y(Le),{value:`general`,"data-testid":`tab-config`},{default:k(()=>[n[0]||=M(`i`,{class:`pi pi-cog tab-icon`},null,-1),M(`span`,null,I(y(i)(`serviceConfigView.tabGeneral`)),1)]),_:1}),W(y(Le),{value:`commands`,"data-testid":`tab-commands`},{default:k(()=>[n[1]||=M(`i`,{class:`pi pi-code tab-icon`},null,-1),M(`span`,null,I(y(i)(`serviceConfigView.tabCommands`)),1)]),_:1}),W(y(Le),{value:`shortcuts`,"data-testid":`tab-shortcuts`},{default:k(()=>[n[2]||=M(`i`,{class:`pi pi-bolt tab-icon`},null,-1),M(`span`,null,I(y(i)(`serviceConfigView.tabShortcuts`)),1)]),_:1}),W(y(Le),{value:`env`,"data-testid":`tab-env`},{default:k(()=>[n[3]||=M(`i`,{class:`pi pi-database tab-icon`},null,-1),M(`span`,null,I(y(i)(`serviceConfigView.tabEnvironment`)),1)]),_:1}),W(y(Le),{value:`health`},{default:k(()=>[n[4]||=M(`i`,{class:`pi pi-heart tab-icon`},null,-1),M(`span`,null,I(y(i)(`serviceConfigView.tabHealthCheck`)),1)]),_:1}),W(y(Le),{value:`log-parsers`,"data-testid":`tab-log-parsers`},{default:k(()=>[n[5]||=M(`i`,{class:`pi pi-list tab-icon`},null,-1),M(`span`,null,I(y(i)(`serviceConfigView.tabLogParsers`)),1)]),_:1}),W(y(Le),{value:`log-sources`},{default:k(()=>[n[6]||=M(`i`,{class:`pi pi-inbox tab-icon`},null,-1),M(`span`,null,I(y(i)(`serviceConfigView.tabLogSources`)),1)]),_:1}),W(y(Le),{value:`traefik`},{default:k(()=>[...n[7]||=[M(`i`,{class:`pi pi-server tab-icon`},null,-1),M(`span`,null,`Traefik`,-1)]]),_:1})]),_:1}),W(y(Ie),null,{default:k(()=>[W(y(Re),{value:`general`},{default:k(()=>[W(Fn,{service:e.service,onSave:_},null,8,[`service`])]),_:1}),W(y(Re),{value:`commands`},{default:k(()=>[W(ni,{service:e.service,onSave:v,onDockerSave:C},null,8,[`service`])]),_:1}),W(y(Re),{value:`shortcuts`,"data-testid":`tabpanel-shortcuts`},{default:k(()=>[W(Ca,{service:e.service,onSave:x},null,8,[`service`])]),_:1}),W(y(Re),{value:`env`},{default:k(()=>[W(Hi,{service:e.service,"project-id":e.projectId,"active-environment-id":h.value},null,8,[`service`,`project-id`,`active-environment-id`])]),_:1}),W(y(Re),{value:`health`},{default:k(()=>[W(da,{service:e.service,onSave:b},null,8,[`service`])]),_:1}),W(y(Re),{value:`log-parsers`,"data-testid":`tabpanel-log-parsers`},{default:k(()=>[W(Mc,{service:e.service,onSave:w},null,8,[`service`])]),_:1}),W(y(Re),{value:`log-sources`},{default:k(()=>[W(Dl,{service:e.service,onSave:T},null,8,[`service`])]),_:1}),W(y(Re),{value:`traefik`},{default:k(()=>[W(Al,{service:e.service,onSave:E},null,8,[`service`])]),_:1})]),_:1})]),_:1},8,[`value`])]))}}),[[`__scopeId`,`data-v-51a781dd`]]),Il=b(U({__name:`MonacoDiffEditor`,props:{original:{},modified:{},language:{default:`plaintext`},height:{default:`100%`},theme:{default:`monokai`}},setup(t){window.MonacoEnvironment||(window.MonacoEnvironment={getWorker(){return new fe}}),ae.defineTheme(`monokai`,{base:`vs-dark`,inherit:!0,rules:[{token:`comment`,foreground:`75715E`,fontStyle:`italic`},{token:`string`,foreground:`E6DB74`},{token:`keyword`,foreground:`F92672`},{token:`number`,foreground:`AE81FF`},{token:`regexp`,foreground:`E6DB74`},{token:`type`,foreground:`66D9EF`,fontStyle:`italic`},{token:`type.identifier`,foreground:`A6E22E`},{token:`delimiter`,foreground:`F8F8F2`},{token:`delimiter.bracket`,foreground:`F8F8F2`},{token:`tag`,foreground:`F92672`},{token:`attribute.name`,foreground:`A6E22E`},{token:`attribute.value`,foreground:`E6DB74`},{token:`variable`,foreground:`F8F8F2`},{token:`variable.predefined`,foreground:`66D9EF`},{token:`constant`,foreground:`AE81FF`},{token:`function`,foreground:`A6E22E`},{token:`operator`,foreground:`F92672`},{token:`identifier`,foreground:`F8F8F2`},{token:`meta.tag`,foreground:`F92672`}],colors:{"editor.background":`#272822`,"editor.foreground":`#F8F8F2`,"editor.lineHighlightBackground":`#3E3D32`,"editor.selectionBackground":`#49483E`,"editorCursor.foreground":`#F8F8F0`,"editorWhitespace.foreground":`#464741`,"editorIndentGuide.background":`#464741`,"editorLineNumber.foreground":`#90908A`,"editorLineNumber.activeForeground":`#F8F8F2`,"diffEditor.insertedTextBackground":`#A6E22E26`,"diffEditor.removedTextBackground":`#F9267226`,"diffEditor.insertedLineBackground":`#A6E22E15`,"diffEditor.removedLineBackground":`#F9267215`}});let n=t,r=E(),i=null,o=null,s=null;return g(()=>{r.value&&(o=ae.createModel(n.original,n.language),s=ae.createModel(n.modified,n.language),i=ae.createDiffEditor(r.value,{theme:n.theme,readOnly:!0,minimap:{enabled:!1},scrollBeyondLastLine:!1,automaticLayout:!0,fontSize:13,fontFamily:`'Monaco', 'Menlo', 'Ubuntu Mono', Courier, monospace`,renderSideBySide:!0,overviewRulerLanes:0,scrollbar:{verticalScrollbarSize:8,horizontalScrollbarSize:8},originalEditable:!1,ignoreTrimWhitespace:!1}),i.setModel({original:o,modified:s}))}),m(()=>{o?.dispose(),s?.dispose(),i?.dispose(),o=null,s=null,i=null}),(n,i)=>(a(),R(`div`,{ref_key:`editorContainer`,ref:r,style:e({height:t.height,width:`100%`}),class:`monaco-diff-container`},null,4))}}),[[`__scopeId`,`data-v-3051d904`]]),Ll={class:`git-panel`},Rl={key:0,class:`git-panel__unavailable`},zl={class:`git-panel__unavailable-title`},Bl={class:`git-panel__unavailable-detail`},Vl={key:1,class:`git-panel__header`},Hl={class:`git-panel__branch`},Ul={class:`branch-name`},Wl={key:2,class:`upstream-label`},Gl={class:`git-panel__actions`},Kl={class:`git-panel__tabs`},ql={key:0,class:`tab-badge`},Jl={class:`git-panel__file-list`},Yl={class:`git-commit-area`},Xl={class:`commit-actions`},Zl={class:`generate-popover`},Ql={key:0,class:`git-empty`},$l={class:`git-section-header`},eu=[`onClick`],tu={class:`file-name`},nu={class:`git-section-header`},ru=[`onClick`],iu={class:`file-name`},au={class:`file-actions`},ou={class:`git-section-header`},su=[`onClick`],cu={class:`file-name`},lu={class:`git-panel__diff-pane`},uu={class:`git-section-header diff-header`},du={class:`diff-header-actions`},fu={key:1,class:`diff-placeholder`},pu={key:1,class:`git-panel__content`},mu={key:0,class:`git-empty`},hu={class:`commit-hash`},gu={class:`commit-info`},_u={class:`commit-subject`},vu={class:`commit-meta`},yu={key:2,class:`git-panel__content`},bu={class:`git-section-header`},xu={class:`create-branch`},Su={class:`git-section-header`},Cu={class:`branch-label`},wu={class:`git-section-header`},Tu={class:`branch-label`},Eu=b(U({__name:`ServiceConfigGit`,props:{serviceId:{}},setup(e){let t=e,r=me(),i=o(),{t:l}=ee(),u=Ee(),m=E(!1),h=E(),_=V(()=>u.getEffectiveEditor(t.serviceId)),{openWithDiffContext:v}=ge();function b(){!ie.value||!F.value||v(`\`\`\`diff\n// ${F.value}\n${ie.value}\n\`\`\``)}async function x(){let e=_.value;if(!(!e||!F.value))try{await D.editor.openFile.mutate({editorKey:e.key,serviceId:t.serviceId,relativePath:F.value})}catch(e){r.add({severity:`error`,summary:l(`git.errorTitle`),detail:e instanceof Error?e.message:String(e),life:4e3})}}let S=E(!1),C=E(!1),O=E(null),j=E([]),te=E({current:``,branches:[]}),ne=E([]),re=E(``),N=E(``),ie=E(``),ae=E(``),oe=E(``),F=E(``),se=E(!1),ce=E(`status`),ue=E(`origin`),de=E(``);function fe(e){let t=e.toLowerCase();return t.includes(`fetch failed`)||t.includes(`http 404`)||t.includes(`agent`)&&(t.includes(`not found`)||t.includes(`not connected`))}let pe=V(()=>ne.value.map(e=>({label:e.name,value:e.name}))),_e=V(()=>!!O.value?.upstream),ve=V(()=>te.value.branches.filter(e=>!e.remote));async function ye(e,t){de.value=e;try{await t()}catch(e){let t=e instanceof Error?e.message:String(e);r.add({severity:`error`,summary:l(`git.errorTitle`),detail:t,life:6e3})}finally{de.value=``}}async function be(){S.value=!0;try{let[e,n,r]=await Promise.all([D.git.status.query({serviceId:t.serviceId}),D.git.branches.query({serviceId:t.serviceId}),D.git.remotes.query({serviceId:t.serviceId})]);C.value=!1,O.value=e,te.value=n,ne.value=r,ne.value.length&&!ne.value.find(e=>e.name===ue.value)&&(ue.value=ne.value[0]?.name??`origin`)}catch(e){let t=e instanceof Error?e.message:String(e);O.value=null,fe(t)?C.value=!0:(C.value=!1,r.add({severity:`error`,summary:l(`git.errorTitle`),detail:t,life:6e3}))}finally{S.value=!1}}async function xe(){try{let e=await D.git.status.query({serviceId:t.serviceId});C.value=!1,O.value=e}catch(e){fe(e instanceof Error?e.message:String(e))&&(C.value=!0)}}async function U(){try{j.value=await D.git.log.query({serviceId:t.serviceId,limit:50})}catch(e){let t=e instanceof Error?e.message:String(e);fe(t)||r.add({severity:`error`,summary:l(`git.errorTitle`),detail:t,life:6e3})}}function Se(e){return{ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,json:`json`,md:`markdown`,css:`css`,scss:`scss`,less:`less`,html:`html`,vue:`html`,xml:`xml`,yaml:`yaml`,yml:`yaml`,py:`python`,rs:`rust`,go:`go`,java:`java`,sh:`shell`,sql:`sql`,toml:`ini`,php:`php`,rb:`ruby`,c:`c`,cpp:`cpp`,h:`c`,hpp:`cpp`,swift:`swift`,kt:`kotlin`,lua:`lua`,r:`r`,pl:`perl`,bat:`bat`,ps1:`powershell`}[e.split(`.`).pop()?.toLowerCase()??``]||`plaintext`}let Ce=V(()=>F.value?Se(F.value):`plaintext`);async function we(e,n=!1,r=!1){let i=await D.git.diff.query({serviceId:t.serviceId,path:e,staged:n,untracked:r});ie.value=i.diff,ae.value=i.original,oe.value=i.modified,F.value=e??``,se.value=n}async function De(e){await ye(`stage:`+e,async()=>{await D.git.stage.mutate({serviceId:t.serviceId,paths:[e]}),await xe()})}async function Oe(){await ye(`stageAll`,async()=>{await D.git.stageAll.mutate({serviceId:t.serviceId}),await xe()})}async function ke(e){await ye(`unstage:`+e,async()=>{await D.git.unstage.mutate({serviceId:t.serviceId,paths:[e]}),await xe()})}async function Ae(e){await ye(`discard:`+e,async()=>{await D.git.discard.mutate({serviceId:t.serviceId,paths:[e]}),await xe()})}async function je(){await ye(`generateCommit`,async()=>{re.value=(await D.git.generateCommitMessage.mutate({serviceId:t.serviceId})).message})}async function Me(){if(!re.value.trim()){r.add({severity:`warn`,summary:l(`git.errorTitle`),detail:l(`git.commitRequired`),life:3e3});return}await ye(`commit`,async()=>{let e=await D.git.commit.mutate({serviceId:t.serviceId,message:re.value});r.add({severity:`success`,summary:l(`git.committed`),detail:e.output,life:4e3}),re.value=``,await xe()})}async function Ne(){await ye(`push`,async()=>{let e=await D.git.push.mutate({serviceId:t.serviceId,remote:ue.value,setUpstream:!_e.value});r.add({severity:`success`,summary:l(`git.pushed`),detail:e.output||l(`git.done`),life:4e3}),await be()})}async function Pe(){await ye(`pull`,async()=>{let e=await D.git.pull.mutate({serviceId:t.serviceId,remote:ue.value});r.add({severity:`success`,summary:l(`git.pulled`),detail:e.output||l(`git.done`),life:4e3}),await be()})}async function Fe(){await ye(`fetch`,async()=>{await D.git.fetch.mutate({serviceId:t.serviceId,remote:ue.value}),r.add({severity:`success`,summary:l(`git.fetched`),detail:l(`git.fetchedDetail`),life:3e3}),await be()})}async function Ie(e){await ye(`checkout`,async()=>{await D.git.checkout.mutate({serviceId:t.serviceId,branch:e}),r.add({severity:`success`,summary:l(`git.checkedOut`),detail:e,life:3e3}),await be()})}async function Le(e){await ye(`merge-${e}`,async()=>{let n=await D.git.merge.mutate({serviceId:t.serviceId,branch:e});r.add({severity:`success`,summary:l(`git.merged`),detail:n.output||l(`git.done`),life:4e3}),await be()})}async function Re(e){await ye(`rebase-${e}`,async()=>{let n=await D.git.rebase.mutate({serviceId:t.serviceId,branch:e});r.add({severity:`success`,summary:l(`git.rebased`),detail:n.output||l(`git.done`),life:4e3}),await be()})}async function ze(){N.value.trim()&&await ye(`create-branch`,async()=>{await D.git.checkout.mutate({serviceId:t.serviceId,branch:N.value,create:!0}),r.add({severity:`success`,summary:l(`git.branchCreated`),detail:N.value,life:3e3}),N.value=``,await be()})}let Be=null,Ve=null;async function He(){try{let e=await D.settings.listAIProviders.query();m.value=e.some(e=>e.active),he()&&console.log(`[git] AI providers:`,e.map(e=>({name:e.name,active:e.active})),`→ hasActive:`,m.value)}catch{m.value=!1}}return g(()=>{be(),He(),Be=D.git.onStatusChange.subscribe({serviceId:t.serviceId},{onData(e){O.value=e,C.value=!1},onError(e){let t=e?.message??``;t.includes(`PRECONDITION_FAILED`)||t.includes(`Unresolved variables`)}}),Ve=setInterval(be,1e4)}),n(()=>{Be?.unsubscribe(),Be=null,Ve!==null&&(clearInterval(Ve),Ve=null)}),(e,t)=>(a(),R(`div`,Ll,[C.value?(a(),R(`div`,Rl,[t[12]||=M(`i`,{class:`pi pi-server git-panel__unavailable-icon`},null,-1),M(`span`,zl,I(y(l)(`git.agentUnavailable`)),1),M(`span`,Bl,I(y(l)(`git.agentUnavailableDetail`)),1),W(y(L),{label:y(l)(`git.retry`),icon:`pi pi-refresh`,size:`small`,onClick:be},null,8,[`label`])])):z(``,!0),C.value?z(``,!0):(a(),R(`div`,Vl,[M(`div`,Hl,[t[13]||=M(`i`,{class:`pi pi-github`},null,-1),M(`span`,Ul,I(O.value?.branch??`…`),1),O.value&&O.value.ahead>0?(a(),P(y(Te),{key:0,value:`↑${O.value.ahead}`,severity:`info`,class:`ahead-tag`},null,8,[`value`])):z(``,!0),O.value&&O.value.behind>0?(a(),P(y(Te),{key:1,value:`↓${O.value.behind}`,severity:`warn`,class:`behind-tag`},null,8,[`value`])):z(``,!0),O.value?.upstream?(a(),R(`span`,Wl,`→ `+I(O.value.upstream),1)):z(``,!0)]),M(`div`,Gl,[pe.value.length?(a(),P(y(c),{key:0,modelValue:ue.value,"onUpdate:modelValue":t[0]||=e=>ue.value=e,options:pe.value,"option-label":`label`,"option-value":`value`,size:`small`,class:`remote-select`},null,8,[`modelValue`,`options`])):z(``,!0),W(y(L),{icon:`pi pi-download`,label:y(l)(`git.pull`),size:`small`,outlined:``,loading:de.value===`pull`,onClick:Pe},null,8,[`label`,`loading`]),W(y(L),{icon:`pi pi-cloud-upload`,label:y(l)(`git.push`),size:`small`,outlined:``,loading:de.value===`push`,onClick:Ne},null,8,[`label`,`loading`]),W(y(L),{icon:`pi pi-sync`,label:y(l)(`git.fetch`),size:`small`,outlined:``,loading:de.value===`fetch`,onClick:Fe},null,8,[`label`,`loading`]),W(y(L),{icon:`pi pi-refresh`,size:`small`,text:``,loading:S.value,onClick:be},null,8,[`loading`])])])),C.value?z(``,!0):(a(),R(B,{key:2},[M(`div`,Kl,[M(`button`,{class:p([`git-tab`,{active:ce.value===`status`}]),onClick:t[1]||=e=>ce.value=`status`},[t[14]||=M(`i`,{class:`pi pi-file-edit`},null,-1),H(` `+I(y(l)(`git.tabChanges`))+` `,1),O.value?(a(),R(`span`,ql,I(O.value.staged.length+O.value.unstaged.length+O.value.untracked.length),1)):z(``,!0)],2),M(`button`,{class:p([`git-tab`,{active:ce.value===`log`}]),onClick:t[2]||=e=>{ce.value=`log`,U()}},[t[15]||=M(`i`,{class:`pi pi-history`},null,-1),H(` `+I(y(l)(`git.tabHistory`)),1)],2),M(`button`,{class:p([`git-tab`,{active:ce.value===`branches`}]),onClick:t[3]||=e=>ce.value=`branches`},[t[16]||=M(`i`,{class:`pi pi-github`},null,-1),H(` `+I(y(l)(`git.tabBranches`)),1)],2)]),ce.value===`status`?(a(),P(y(le),{key:0,class:`git-panel__status-split`,"gutter-size":6},{default:k(()=>[W(y(f),{size:30,"min-size":15,class:`git-panel__file-list-panel`},{default:k(()=>[M(`div`,Jl,[M(`div`,Yl,[W(y(d),{modelValue:re.value,"onUpdate:modelValue":t[4]||=e=>re.value=e,placeholder:y(l)(`git.commitPlaceholder`),rows:`3`,class:`commit-message`,"auto-resize":``},null,8,[`modelValue`,`placeholder`]),M(`div`,Xl,[W(y(L),{icon:`pi pi-sparkles`,label:y(l)(`git.generateMessage`),size:`small`,outlined:``,disabled:!O.value?.staged.length||!m.value,loading:de.value===`generateCommit`,onClick:t[5]||=e=>m.value?je():void 0,onMouseenter:t[6]||=e=>m.value?void 0:h.value?.show(e),onMouseleave:t[7]||=e=>m.value?void 0:h.value?.hide()},null,8,[`label`,`disabled`,`loading`]),W(y(s),{ref_key:`generatePopover`,ref:h},{default:k(()=>[M(`div`,Zl,[M(`p`,null,I(y(l)(`git.noProviderMessage`)),1),W(y(L),{label:y(l)(`git.goToSettings`),icon:`pi pi-cog`,size:`small`,text:``,onClick:t[8]||=e=>{y(i).push({name:`settings`,query:{section:`ai`}}),h.value?.hide()}},null,8,[`label`])])]),_:1},512),W(y(L),{label:y(l)(`git.commit`),icon:`pi pi-check`,size:`small`,disabled:!re.value.trim()||!O.value?.staged.length,loading:de.value===`commit`,onClick:Me},null,8,[`label`,`disabled`,`loading`])])]),O.value&&O.value.staged.length===0&&O.value.unstaged.length===0&&O.value.untracked.length===0?(a(),R(`div`,Ql,[t[17]||=M(`i`,{class:`pi pi-check-circle`},null,-1),M(`span`,null,I(y(l)(`git.workingTreeClean`)),1)])):z(``,!0),O.value&&O.value.staged.length>0?(a(),R(B,{key:1},[M(`div`,$l,[M(`span`,null,I(y(l)(`git.staged`,{count:O.value.staged.length})),1),W(y(L),{size:`small`,text:``,label:y(l)(`git.unstageAll`),onClick:t[9]||=e=>ke(`--all`)},null,8,[`label`])]),(a(!0),R(B,null,w(O.value.staged,e=>(a(),R(`div`,{key:`staged-`+e,class:p([`git-file staged`,{selected:F.value===e&&se.value}]),onClick:t=>we(e,!0)},[t[18]||=M(`i`,{class:`pi pi-plus file-icon`},null,-1),M(`span`,tu,I(e),1),W(y(L),{icon:`pi pi-minus`,size:`small`,text:``,severity:`secondary`,class:`file-action`,title:y(l)(`git.unstage`),onClick:A(t=>ke(e),[`stop`])},null,8,[`title`,`onClick`])],10,eu))),128))],64)):z(``,!0),O.value&&O.value.unstaged.length>0?(a(),R(B,{key:2},[M(`div`,nu,[M(`span`,null,I(y(l)(`git.unstaged`,{count:O.value.unstaged.length})),1),W(y(L),{size:`small`,text:``,label:y(l)(`git.stageAll`),onClick:Oe},null,8,[`label`])]),(a(!0),R(B,null,w(O.value.unstaged,e=>(a(),R(`div`,{key:`unstaged-`+e,class:p([`git-file unstaged`,{selected:F.value===e&&!se.value}]),onClick:t=>we(e,!1)},[t[19]||=M(`i`,{class:`pi pi-pencil file-icon`},null,-1),M(`span`,iu,I(e),1),M(`div`,au,[W(y(L),{icon:`pi pi-plus`,size:`small`,text:``,title:y(l)(`git.stage`),class:`file-action`,onClick:A(t=>De(e),[`stop`])},null,8,[`title`,`onClick`]),W(y(L),{icon:`pi pi-trash`,size:`small`,text:``,severity:`danger`,title:y(l)(`git.discard`),class:`file-action`,onClick:A(t=>Ae(e),[`stop`])},null,8,[`title`,`onClick`])])],10,ru))),128))],64)):z(``,!0),O.value&&O.value.untracked.length>0?(a(),R(B,{key:3},[M(`div`,ou,[M(`span`,null,I(y(l)(`git.untracked`,{count:O.value.untracked.length})),1)]),(a(!0),R(B,null,w(O.value.untracked,e=>(a(),R(`div`,{key:`untracked-`+e,class:`git-file untracked`,onClick:t=>we(e,!1,!0)},[t[20]||=M(`i`,{class:`pi pi-question-circle file-icon`},null,-1),M(`span`,cu,I(e),1),W(y(L),{icon:`pi pi-plus`,size:`small`,text:``,title:y(l)(`git.stage`),class:`file-action`,onClick:A(t=>De(e),[`stop`])},null,8,[`title`,`onClick`])],8,su))),128))],64)):z(``,!0)])]),_:1}),W(y(f),{size:70,"min-size":30,class:`git-panel__diff-pane-panel`},{default:k(()=>[M(`div`,lu,[F.value?(a(),R(B,{key:0},[M(`div`,uu,[M(`span`,null,I(y(l)(`git.diff`,{path:F.value||`all`})),1),M(`div`,du,[W(y(L),{icon:`pi pi-comment`,size:`small`,text:``,title:y(l)(`git.askAiAboutDiff`),onClick:b},null,8,[`title`]),_.value?(a(),P(y(L),{key:0,icon:`pi pi-external-link`,size:`small`,text:``,title:y(l)(`git.openInEditor`,{editor:_.value.name}),onClick:x},null,8,[`title`])):z(``,!0),W(y(L),{icon:`pi pi-times`,size:`small`,text:``,onClick:t[10]||=e=>{F.value=``,ie.value=``,ae.value=``,oe.value=``}})])]),(a(),P(Il,{key:F.value+`:`+se.value,original:ae.value,modified:oe.value,language:Ce.value,height:`100%`},null,8,[`original`,`modified`,`language`]))],64)):(a(),R(`div`,fu,[t[21]||=M(`i`,{class:`pi pi-code`},null,-1),M(`span`,null,I(y(l)(`git.selectFileForDiff`)),1)]))])]),_:1})]),_:1})):ce.value===`log`?(a(),R(`div`,pu,[j.value.length===0?(a(),R(`div`,mu,[t[22]||=M(`i`,{class:`pi pi-history`},null,-1),M(`span`,null,I(y(l)(`git.noCommits`)),1)])):z(``,!0),(a(!0),R(B,null,w(j.value,e=>(a(),R(`div`,{key:e.hash,class:`git-commit-entry`},[M(`div`,hu,I(e.shortHash),1),M(`div`,gu,[M(`div`,_u,I(e.subject),1),M(`div`,vu,I(e.author)+` · `+I(new Date(e.date).toLocaleString()),1)])]))),128))])):ce.value===`branches`?(a(),R(`div`,yu,[M(`div`,bu,I(y(l)(`git.newBranch`)),1),M(`div`,xu,[W(y(T),{modelValue:N.value,"onUpdate:modelValue":t[11]||=e=>N.value=e,placeholder:y(l)(`git.branchNamePlaceholder`),size:`small`,class:`branch-input`},null,8,[`modelValue`,`placeholder`]),W(y(L),{label:y(l)(`git.createAndCheckout`),icon:`pi pi-plus`,size:`small`,disabled:!N.value.trim(),loading:de.value===`create-branch`,onClick:ze},null,8,[`label`,`disabled`,`loading`])]),M(`div`,Su,I(y(l)(`git.localBranches`,{count:ve.value.length})),1),(a(!0),R(B,null,w(ve.value,e=>(a(),R(`div`,{key:e.name,class:p([`git-branch-entry`,{current:e.current}])},[t[23]||=M(`i`,{class:`pi pi-github branch-icon`},null,-1),M(`span`,Cu,I(e.name),1),e.current?(a(),P(y(Te),{key:0,value:y(l)(`git.current`),severity:`success`,class:`current-tag`},null,8,[`value`])):(a(),P(y(L),{key:1,label:y(l)(`git.checkout`),size:`small`,text:``,loading:de.value===`checkout`,class:`checkout-btn`,onClick:t=>Ie(e.name)},null,8,[`label`,`loading`,`onClick`])),e.current?z(``,!0):(a(),P(y(L),{key:2,label:y(l)(`git.merge`),size:`small`,text:``,severity:`secondary`,loading:de.value===`merge-${e.name}`,class:`checkout-btn`,onClick:t=>Le(e.name)},null,8,[`label`,`loading`,`onClick`])),e.current?z(``,!0):(a(),P(y(L),{key:3,label:y(l)(`git.rebase`),size:`small`,text:``,severity:`secondary`,loading:de.value===`rebase-${e.name}`,class:`checkout-btn`,onClick:t=>Re(e.name)},null,8,[`label`,`loading`,`onClick`]))],2))),128)),te.value.branches.filter(e=>e.remote).length?(a(),R(B,{key:0},[M(`div`,wu,I(y(l)(`git.remoteBranches`)),1),(a(!0),R(B,null,w(te.value.branches.filter(e=>e.remote),e=>(a(),R(`div`,{key:e.name,class:`git-branch-entry remote`},[t[24]||=M(`i`,{class:`pi pi-globe branch-icon`},null,-1),M(`span`,Tu,I(e.name.replace(/^remotes\//,``)),1)]))),128))],64)):z(``,!0)])):z(``,!0)],64))]))}}),[[`__scopeId`,`data-v-c703ddb4`]]),Du={key:0,class:`service-detail`},Ou={key:1,class:`service-detail__not-found`},ku=b(U({__name:`ServiceDetailPage`,setup(e){let t=S(),r=o(),i=me(),s=l(),{t:c}=ee(),u=se(),d=O(),f=we(),{setServiceContext:p}=ge(),m=V(()=>t.params.id);_e(m,e=>p(e),{immediate:!0}),n(()=>p(null));let h=V(()=>{let e=t.params.tab;return e===`terminal`||e===`metrics`||e===`config`||e===`git`?e:`terminal`}),g=V(()=>u.getById(m.value)),_=V(()=>d.getByService(m.value)),v=V(()=>f.currentProject?.id??``);function b(e){let t=u.getById(e);s.require({message:c(`serviceDetail.deleteConfirmMessage`,{name:t?.name??e}),header:c(`serviceDetail.deleteConfirmHeader`),icon:`pi pi-exclamation-triangle`,rejectLabel:c(`actions.cancel`),acceptLabel:c(`actions.delete`),acceptProps:{severity:`danger`},accept:async()=>{await u.remove(e)&&(i.add({severity:`success`,summary:c(`serviceDetail.removed`),detail:c(`serviceDetail.deleted`),life:3e3}),r.push(`/`))}})}return(e,t)=>g.value?(a(),R(`div`,Du,[h.value===`terminal`?(a(),P(Bt,{key:`terminal-`+m.value,service:g.value,processes:_.value},null,8,[`service`,`processes`])):h.value===`metrics`?(a(),P(Zt,{key:`metrics-`+m.value,service:g.value,processes:_.value},null,8,[`service`,`processes`])):h.value===`config`?(a(),P(Fl,{key:`config-`+m.value,service:g.value,"project-id":v.value,onRemoveService:b},null,8,[`service`,`project-id`])):h.value===`git`?(a(),P(Eu,{key:`git-`+m.value,"service-id":m.value},null,8,[`service-id`])):z(``,!0)])):(a(),R(`div`,Ou,[M(`p`,null,I(y(c)(`serviceDetail.notFound`)),1)]))}}),[[`__scopeId`,`data-v-460acc37`]]);export{ku as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Hi as e,Hn as t,K as n,M as r,Ri as i,Ta as a,Tn as o,Vn as ee,W as te,Wi as ne,Y as s,Zn as re,_a as c,_n as l,a as ie,aa as ae,ai as u,at as d,di as f,ha as oe,ii as p,it as se,ja as m,kn as h,mi as g,pi as _,qn as ce,s as le,si as v,ui as y,xi as b,yi as x}from"./index-C0UzL9Y-.js";import{t as ue}from"./project.store-DHXLE6Lv.js";import{n as S}from"./plus-B-AhHpHU.js";import{t as de}from"./fieldset-CSlJxjpZ.js";import{n as fe,t as pe}from"./autocomplete-CK9Z1-Wz.js";import{t as C}from"./divider-D-vBLTer.js";var me={class:`service-form-page`},he={class:`page-header`},ge={key:0,class:`restart-banner`},_e={key:1,class:`loading-container`},ve={class:`form-section`},ye={class:`form-group`},be={for:`svc-project`},w={class:`form-hint`},T={class:`form-group`},E={for:`svc-agent`},D={class:`form-hint`},O={class:`form-group`},k={for:`svc-name`},A={class:`form-hint`},j={class:`form-actions`},M={class:`form-section`},N={class:`form-row`},xe={class:`form-group flex-1`},Se={for:`svc-name`},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={class:`form-group switch-group`},P={for:`svc-autorestart`},Ne={class:`form-section`},Pe={class:`section-header`},Fe={key:0,class:`empty-env`},Ie={class:`form-group`},Le={for:`hc-path`},Re={class:`form-row`},ze={class:`form-group flex-1`},Be={for:`hc-interval`},Ve={class:`form-group flex-1`},He={for:`hc-timeout`},Ue={class:`form-group flex-1`},We={for:`hc-retries`},F=`__inherit__`,I=o(b({__name:`ServiceFormPage`,props:{id:{}},setup(o){let b=o,I=t(),Ge=ee(),L=ce(),R=ue(),z=se(),B=te(),V=le(),Ke=ie(),{t:H}=re(),U=y(()=>!!b.id),W=y(()=>Ge.query.projectId),G=c(!1),K=c(!1),q=c(null),J=c(null),Y=c(!1),X=oe({projectId:``,agentId:F,name:``,cwd:``,ports:[],runner:`native`,autoRestart:!1,healthCheck:{enabled:!1,path:``,interval:3e4,timeout:5e3,retries:3}}),Z=c([]),qe=[{label:`Native`,value:`native`},{label:`Docker`,value:`docker`}],Je=y(()=>R.projects.map(e=>({label:e.name,value:e.id}))),Q=y(()=>[{label:H(`serviceForm.agentInherit`),value:F},...B.agents.map(e=>({label:`${e.config.name} ${e.status.connected?`(Online)`:`(Offline)`}`,value:e.config.id}))]);function Ye(){Z.value=[...Z.value,{key:``,value:``,isSecret:!1}]}function Xe(e){Z.value=Z.value.filter((t,n)=>n!==e)}function Ze(){let e={},t=!1;for(let n of Z.value){let r=n.key.trim();r&&(e[r]={value:{value:n.value,pre:``,post:``,isSecret:n.isSecret}},t=!0)}return t?e:void 0}async function Qe(){if(b.id){G.value=!0;try{let e=await l.service.get.query({id:b.id});X.agentId=e.agentId??F,X.name=e.name,X.cwd=e.cwd??``,X.ports=(e.ports??[]).map(String),X.runner=e.runner,X.autoRestart=e.autoRestart,e.healthCheck&&(X.healthCheck.enabled=!0,X.healthCheck.path=e.healthCheck.path,X.healthCheck.interval=e.healthCheck.interval,X.healthCheck.timeout=e.healthCheck.timeout,X.healthCheck.retries=e.healthCheck.retries),e.variables&&typeof e.variables==`object`&&Object.keys(e.variables).length>0&&(Z.value=Object.entries(e.variables).map(([e,t])=>{let n=t;return{key:e,value:n.value.value??``,isSecret:n.value.isSecret??!1}}))}catch(e){L.add({severity:`error`,summary:H(`serviceForm.error`),detail:d(e)??H(`serviceForm.failedToLoad`),life:5e3}),I.back()}finally{G.value=!1}}}async function $(){if(!(!U.value||!b.id||K.value||G.value)){if(!X.name.trim()){L.add({severity:`warn`,summary:H(`serviceForm.validation`),detail:H(`serviceForm.nameRequired`),life:3e3});return}K.value=!0;try{let e={agentId:X.agentId===F?null:X.agentId||null,name:X.name.trim(),cwd:X.cwd.trim()||void 0,ports:X.ports.map(Number).filter(e=>e>0&&e<=65535),runner:X.runner,autoRestart:X.autoRestart,variables:Ze(),healthCheck:X.healthCheck.enabled?{path:X.healthCheck.path,interval:X.healthCheck.interval,timeout:X.healthCheck.timeout,retries:X.healthCheck.retries}:void 0};(await l.service.update.mutate({id:b.id,...e}))?.stoppedForAgentChange?(q.value=e.agentId,J.value=b.id,L.add({severity:`warn`,summary:H(`serviceForm.saved`),detail:H(`serviceForm.agentChangedServiceStopped`),life:4e3})):L.add({severity:`success`,summary:H(`serviceForm.saved`),life:1500})}catch(e){L.add({severity:`error`,summary:H(`serviceForm.error`),detail:d(e)??H(`serviceForm.failedToSave`),life:5e3})}finally{K.value=!1}}}async function $e(){if(!(!q.value||!J.value)){Y.value=!0;try{await Ke.start(q.value,J.value),q.value=null,J.value=null,L.add({severity:`success`,summary:H(`serviceForm.restarted`),life:2e3})}catch(e){L.add({severity:`error`,summary:H(`serviceForm.error`),detail:d(e),life:5e3})}finally{Y.value=!1}}}async function et(){if(!X.name.trim()){L.add({severity:`warn`,summary:H(`serviceForm.validation`),detail:H(`serviceForm.nameRequired`),life:3e3});return}if(!X.projectId){L.add({severity:`warn`,summary:H(`serviceForm.validation`),detail:H(`serviceForm.projectRequired`),life:3e3});return}K.value=!0;try{let e=await z.create({name:X.name.trim(),...X.agentId&&X.agentId!==F?{agentId:X.agentId}:{}});if(!e)throw Error(z.error??`Failed to create service`);await R.addService(X.projectId,e.id),L.add({severity:`success`,summary:H(`serviceForm.serviceCreated`),detail:H(`serviceForm.configureAfterCreate`),life:3e3}),I.push({name:`service-detail`,params:{id:e.id,tab:`config`}})}catch(e){L.add({severity:`error`,summary:H(`serviceForm.error`),detail:d(e)??H(`serviceForm.failedToSave`),life:5e3})}finally{K.value=!1}}return i(async()=>{await Promise.all([R.fetchAll(),B.fetchAll()]),W.value?X.projectId=W.value:!X.projectId&&V.activeProjectId&&(X.projectId=V.activeProjectId),U.value&&await Qe()}),(t,i)=>(e(),g(`div`,me,[f(`div`,he,[x(a(h),{icon:`pi pi-arrow-left`,severity:`secondary`,text:``,rounded:``,onClick:i[0]||=e=>a(I).back()}),f(`h1`,null,m(U.value?a(H)(`serviceForm.editTitle`):a(H)(`serviceForm.createTitle`)),1)]),J.value?(e(),g(`div`,ge,[f(`span`,null,m(a(H)(`serviceForm.agentChangedServiceStopped`)),1),x(a(h),{label:a(H)(`serviceForm.restartNow`),icon:`pi pi-play`,severity:`warning`,size:`small`,loading:Y.value,onClick:$e},null,8,[`label`,`loading`]),x(a(h),{icon:`pi pi-times`,severity:`secondary`,text:``,rounded:``,size:`small`,onClick:i[1]||=e=>{J.value=null,q.value=null}})])):_(``,!0),G.value?(e(),g(`div`,_e,[x(a(r))])):(e(),g(`form`,{key:2,class:`service-form`,onSubmit:u(et,[`prevent`])},[U.value?(e(),g(v,{key:1},[f(`div`,M,[f(`div`,N,[f(`div`,xe,[f(`label`,Se,m(a(H)(`serviceForm.nameLabelShort`)),1),x(a(s),{id:`svc-name`,modelValue:X.name,"onUpdate:modelValue":i[6]||=e=>X.name=e,placeholder:`my-service`,class:`w-full`,onBlur:$,onKeydown:p(u($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),f(`div`,Ce,[f(`label`,we,m(a(H)(`serviceForm.runnerLabel`)),1),x(a(n),{id:`svc-runner`,modelValue:X.runner,"onUpdate:modelValue":i[7]||=e=>X.runner=e,options:qe,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`])])]),f(`div`,Te,[f(`label`,Ee,m(a(H)(`serviceForm.agentLabel`)),1),x(a(n),{id:`svc-agent-edit`,modelValue:X.agentId,"onUpdate:modelValue":i[8]||=e=>X.agentId=e,options:Q.value,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`,`options`]),f(`small`,De,m(a(H)(`serviceForm.agentHintEdit`)),1)]),f(`div`,Oe,[f(`div`,ke,[f(`label`,Ae,m(a(H)(`serviceForm.cwdLabel`)),1),x(a(s),{id:`svc-cwd`,modelValue:X.cwd,"onUpdate:modelValue":i[9]||=e=>X.cwd=e,placeholder:`.`,class:`w-full`,onBlur:$,onKeydown:p(u($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),f(`div`,je,[f(`label`,null,m(a(H)(`serviceForm.portsLabel`)),1),x(a(pe),{modelValue:X.ports,"onUpdate:modelValue":i[10]||=e=>X.ports=e,multiple:``,typeahead:!1,placeholder:a(H)(`serviceForm.portsPlaceholder`),class:`w-full`,onChange:$},null,8,[`modelValue`,`placeholder`])])]),f(`div`,Me,[x(a(fe),{modelValue:X.autoRestart,"onUpdate:modelValue":i[11]||=e=>X.autoRestart=e,inputId:`svc-autorestart`,onChange:$},null,8,[`modelValue`]),f(`label`,P,m(a(H)(`serviceForm.autoRestart`)),1)])]),x(a(C)),f(`div`,Ne,[f(`div`,Pe,[f(`h3`,null,m(a(H)(`serviceForm.envVars`)),1),x(a(h),{label:a(H)(`serviceForm.addEnvVar`),icon:`pi pi-plus`,severity:`secondary`,size:`small`,onClick:Ye},null,8,[`label`])]),Z.value.length===0?(e(),g(`div`,Fe,[f(`small`,null,m(a(H)(`serviceForm.noEnvVars`)),1)])):_(``,!0),(e(!0),g(v,null,ne(Z.value,(t,n)=>(e(),g(`div`,{key:n,class:`env-row`},[x(a(s),{modelValue:t.key,"onUpdate:modelValue":e=>t.key=e,placeholder:`KEY`,class:`env-key`,onBlur:$,onKeydown:p(u($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),i[17]||=f(`span`,{class:`env-eq`},`=`,-1),x(a(s),{modelValue:t.value,"onUpdate:modelValue":e=>t.value=e,placeholder:`value`,class:`env-value`,onBlur:$,onKeydown:p(u($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),x(a(h),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:()=>{Xe(n),$()}},null,8,[`onClick`])]))),128))]),x(a(C)),x(a(de),{legend:a(H)(`serviceForm.healthCheck`),toggleable:!0,collapsed:!X.healthCheck.enabled,onToggle:i[16]||=e=>{X.healthCheck.enabled=!e.value,$()}},{default:ae(()=>[f(`div`,Ie,[f(`label`,Le,m(a(H)(`serviceForm.healthCheckPath`)),1),x(a(s),{id:`hc-path`,modelValue:X.healthCheck.path,"onUpdate:modelValue":i[12]||=e=>X.healthCheck.path=e,placeholder:`/health`,class:`w-full`,onBlur:$,onKeydown:p(u($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),f(`div`,Re,[f(`div`,ze,[f(`label`,Be,m(a(H)(`serviceForm.interval`)),1),x(a(S),{id:`hc-interval`,modelValue:X.healthCheck.interval,"onUpdate:modelValue":i[13]||=e=>X.healthCheck.interval=e,min:1e3,step:1e3,class:`w-full`,onBlur:$,onKeydown:p(u($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),f(`div`,Ve,[f(`label`,He,m(a(H)(`serviceForm.timeout`)),1),x(a(S),{id:`hc-timeout`,modelValue:X.healthCheck.timeout,"onUpdate:modelValue":i[14]||=e=>X.healthCheck.timeout=e,min:500,step:500,class:`w-full`,onBlur:$,onKeydown:p(u($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),f(`div`,Ue,[f(`label`,We,m(a(H)(`serviceForm.retries`)),1),x(a(S),{id:`hc-retries`,modelValue:X.healthCheck.retries,"onUpdate:modelValue":i[15]||=e=>X.healthCheck.retries=e,min:0,max:20,class:`w-full`,onBlur:$,onKeydown:p(u($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])])]),_:1},8,[`legend`,`collapsed`]),x(a(C))],64)):(e(),g(v,{key:0},[f(`div`,ve,[f(`div`,ye,[f(`label`,be,m(a(H)(`serviceForm.projectLabel`)),1),x(a(n),{id:`svc-project`,modelValue:X.projectId,"onUpdate:modelValue":i[2]||=e=>X.projectId=e,options:Je.value,optionLabel:`label`,optionValue:`value`,placeholder:a(H)(`serviceForm.projectPlaceholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),f(`small`,w,m(a(H)(`serviceForm.projectHint`)),1)]),f(`div`,T,[f(`label`,E,m(a(H)(`serviceForm.agentLabel`)),1),x(a(n),{id:`svc-agent`,modelValue:X.agentId,"onUpdate:modelValue":i[3]||=e=>X.agentId=e,options:Q.value,optionLabel:`label`,optionValue:`value`,placeholder:a(H)(`serviceForm.agentInherit`),"show-clear":``,class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),f(`small`,D,m(a(H)(`serviceForm.agentHint`)),1)]),f(`div`,O,[f(`label`,k,m(a(H)(`serviceForm.nameLabel`)),1),x(a(s),{id:`svc-name`,modelValue:X.name,"onUpdate:modelValue":i[4]||=e=>X.name=e,placeholder:`my-service`,class:`w-full`},null,8,[`modelValue`]),f(`small`,A,m(a(H)(`serviceForm.nameConfigHint`)),1)])]),x(a(C)),f(`div`,j,[x(a(h),{label:a(H)(`serviceForm.cancel`),severity:`secondary`,text:``,onClick:i[5]||=e=>a(I).back()},null,8,[`label`]),x(a(h),{label:a(H)(`serviceForm.create`),icon:`pi pi-check`,loading:K.value,type:`submit`},null,8,[`label`,`loading`])])],64))],32))]))}}),[[`__scopeId`,`data-v-39a96e7b`]]);export{I as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Aa as e,Gi as t,Hi as n,Ji as r,Oa as i,Ta as a,Wi as o,_a as s,aa as c,di as l,fi as u,ja as d,mi as f,pi as p,si as m,ui as h,vi as g,xi as _,yi as v}from"./index-C0UzL9Y-.js";import{V as y,hn as b,it as x,vn as S,yn as C}from"./dist-DR4LqG1l.js";import{a as w,t as T}from"./store-DWOu5TTl.js";import{t as E}from"./active-entities-CWFFm964.js";import{t as D}from"./ViewLayout.vue-CgpeQh3K.js";import{t as O}from"./ViewLayoutContent.vue-DP_GK_Ip.js";var k=_({__name:`IntegrationLogo`,props:{integration:{}},setup(e){let t=e,r=[`adonisjs`,`astro`,`dotnet`,`elysiajs`,`express`,`fastapi`,`fastify`,`go`,`hono`,`laravel`,`litestar`,`nestjs`,`nextjs`,`nitro`,`nuxt`,`platformatic`,`react`,`rust`,`svelte`],i=h(()=>{let e=`Openapi`,n=t.integration?.toLocaleLowerCase();if(!n)return e;let i=n.charAt(0).toUpperCase()+n.slice(1);return r.includes(n)?i:e});return(e,t)=>(n(),u(a(y),{class:`h-full w-full rounded-lg`,logo:i.value},null,8,[`logo`]))}}),A={class:`flex flex-col gap-2`},j=_({__name:`SettingsAppearance`,setup(e){let{colorMode:t,setColorMode:r}=x(),o=S({base:`w-full shadow-none text-c-1 justify-start pl-2 gap-2 border`,variants:{active:{true:`bg-primary text-c-1 hover:bg-inherit`,false:`bg-b-1 hover:bg-b-2`}}});return(e,s)=>(n(),f(`div`,A,[v(a(b),{class:i(a(C)(a(o)({active:a(t)===`system`}))),onClick:s[0]||=e=>a(r)(`system`)},{default:c(()=>[l(`div`,{class:i([`flex h-5 w-5 items-center justify-center rounded-full border-[1.5px] p-1`,{"bg-c-accent text-b-1 border-transparent":a(t)===`system`}])},[a(t)===`system`?(n(),u(a(y),{key:0,icon:`Checkmark`,size:`xs`,thickness:`3.5`})):p(``,!0)],2),s[3]||=g(` System Preference (default) `,-1)]),_:1},8,[`class`]),v(a(b),{class:i(a(C)(a(o)({active:a(t)===`light`}))),onClick:s[1]||=e=>a(r)(`light`)},{default:c(()=>[l(`div`,{class:i([`flex h-5 w-5 items-center justify-center rounded-full border-[1.5px] p-1`,{"bg-c-accent text-b-1 border-transparent":a(t)===`light`}])},[a(t)===`light`?(n(),u(a(y),{key:0,icon:`Checkmark`,size:`xs`,thickness:`3.5`})):p(``,!0)],2),s[4]||=g(` Light Mode Always `,-1)]),_:1},8,[`class`]),v(a(b),{class:i(a(C)(a(o)({active:a(t)===`dark`}))),onClick:s[2]||=e=>a(r)(`dark`)},{default:c(()=>[l(`div`,{class:i([`flex h-5 w-5 items-center justify-center rounded-full border-[1.5px] p-1`,{"bg-c-accent text-b-1 border-transparent":a(t)===`dark`}])},[a(t)===`dark`?(n(),u(a(y),{key:0,icon:`Checkmark`,size:`xs`,thickness:`3.5`})):p(``,!0)],2),s[5]||=g(` Dark Mode Always `,-1)]),_:1},8,[`class`])]))}}),M={class:`flex flex-col gap-2`},N={key:0,class:`font-bold`},P={key:1,class:`text-c-2 mb-4 leading-[21px]`},F=_({__name:`SettingsSection`,setup(e){return(e,r)=>(n(),f(`div`,M,[e.$slots.title?(n(),f(`h3`,N,[t(e.$slots,`title`)])):p(``,!0),e.$slots.description?(n(),f(`p`,P,[t(e.$slots,`description`)])):p(``,!0),t(e.$slots,`default`)]))}}),I={class:`bg-b-1 h-full w-full overflow-auto`},L={class:`mr-auto ml-auto w-full max-w-[720px] px-5 py-5`},R={class:`flex flex-col gap-8`},z={class:`flex flex-col gap-2`},B={class:`flex flex-col gap-2`},V={class:`grid grid-cols-2 gap-2`},H={class:`flex items-center gap-2`},U={class:`flex items-center gap-1`},W={class:`grid grid-cols-2 gap-2`},G={class:`flex items-center gap-2`},K={class:`flex items-center gap-1`},q={class:`size-7 rounded-xl`},J=`https://proxy.scalar.com`,Y=_({__name:`SettingsGeneral`,setup(t){let{activeWorkspace:r}=E(),{proxyUrl:s,workspaceMutators:h}=T(),_=[`default`,`alternate`,`purple`,`solarized`,`saturn`,`kepler`],x=[`elysiajs`,`fastify`],D=e=>({default:{light:`#fff`,dark:`#0f0f0f`,accent:`#0099ff`},alternate:{light:`#f9f9f9`,dark:`#131313`,accent:`#e7e7e7`},moon:{light:`#ccc9b3`,dark:`#313332`,accent:`#645b0f`},purple:{light:`#f5f6f8`,dark:`#22252b`,accent:`#5469d4`},solarized:{light:`#fdf6e3`,dark:`#00212b`,accent:`#007acc`},bluePlanet:{light:`#f0f2f5`,dark:`#000e23`,accent:`#e0e2e6`},saturn:{light:`#e4e4df`,dark:`#2c2c30`,accent:`#1763a6`},kepler:{light:`#f6f6f6`,dark:`#0d0f1e`,accent:`#7070ff`},mars:{light:`#f2efe8`,dark:`#321116`,accent:`#c75549`},deepSpace:{light:`#f4f4f5`,dark:`#09090b`,accent:`#8ab4f8`},laserwave:{light:`#f4f2f7`,dark:`#27212e`,accent:`#ed78c2`},none:{light:`#ffffff`,dark:`#000000`,accent:`#3b82f6`}})[e]||{light:`#ffffff`,dark:`#000000`,accent:`#3b82f6`},O=e=>h.edit(r.value?.uid,`themeId`,e),A=S({base:`w-full shadow-none text-c-1 justify-start pl-2 gap-2 border`,variants:{active:{true:`bg-primary text-c-1 hover:bg-inherit`,false:`bg-b-1 hover:bg-b-2`}}}),M=e=>h.edit(r.value?.uid,`proxyUrl`,e);return(t,h)=>(n(),f(`div`,I,[l(`div`,L,[l(`div`,R,[h[13]||=l(`div`,null,[l(`h2`,{class:`mt-10 text-xl font-bold`},`Settings`)],-1),v(F,null,{title:c(()=>[...h[3]||=[g(` CORS Proxy `,-1)]]),description:c(()=>[...h[4]||=[g(` Browsers block cross-origin requests for security. We provide a public proxy to `,-1),l(`a`,{class:`hover:text-c-1 underline-offset-2`,href:`https://en.wikipedia.org/wiki/Cross-origin_resource_sharing`,target:`_blank`},` bypass CORS issues `,-1),g(` . Check the `,-1),l(`a`,{class:`hover:text-c-1 underline-offset-2`,href:`https://github.com/scalar/scalar/tree/main/examples/proxy-server`,target:`_blank`},` source code on GitHub `,-1),g(` . `,-1)]]),default:c(()=>[l(`div`,z,[v(a(b),{class:i(a(C)(a(A)({active:a(r)?.proxyUrl===J}))),onClick:h[0]||=e=>M(J)},{default:c(()=>[l(`div`,{class:i([`flex h-5 w-5 items-center justify-center rounded-full border-[1.5px] p-1`,{"bg-c-accent text-b-1 border-transparent":a(r)?.proxyUrl===J}])},[a(r)?.proxyUrl===J?(n(),u(a(y),{key:0,icon:`Checkmark`,size:`xs`,thickness:`3.5`})):p(``,!0)],2),h[5]||=g(` Use proxy.scalar.com (default) `,-1)]),_:1},8,[`class`]),a(s)&&a(s)!==J?(n(),u(a(b),{key:0,class:i(a(C)(a(A)({active:a(r)?.proxyUrl===a(s)}))),onClick:h[1]||=e=>M(a(s))},{default:c(()=>[l(`div`,{class:i([`flex h-5 w-5 items-center justify-center rounded-full border-[1.5px] p-1`,{"bg-c-accent text-b-1 border-transparent":a(r)?.proxyUrl===a(s)}])},[a(r)?.proxyUrl===a(s)?(n(),u(a(y),{key:0,icon:`Checkmark`,size:`xs`,thickness:`3.5`})):p(``,!0)],2),g(` Use custom proxy (`+d(a(s))+`) `,1)]),_:1},8,[`class`])):p(``,!0),v(a(b),{class:i(a(C)(a(A)({active:!a(r)?.proxyUrl}))),onClick:h[2]||=e=>M(void 0)},{default:c(()=>[l(`div`,{class:i([`flex h-5 w-5 items-center justify-center rounded-full border-[1.5px] p-1`,!a(r)?.proxyUrl&&`bg-c-accent text-b-1 border-transparent`])},[a(r)?.proxyUrl?p(``,!0):(n(),u(a(y),{key:0,icon:`Checkmark`,size:`xs`,thickness:`3.5`}))],2),h[6]||=g(` Skip the proxy `,-1)]),_:1},8,[`class`])])]),_:1}),v(F,null,{title:c(()=>[...h[7]||=[g(` Themes `,-1)]]),description:c(()=>[...h[8]||=[g(` We've got a whole rainbow of themes for you to play with: `,-1)]]),default:c(()=>[l(`div`,B,[l(`div`,V,[(n(),f(m,null,o(_,t=>v(a(b),{key:t,class:i(a(C)(a(A)({active:a(r)?.themeId===t}))),onClick:e=>O(t)},{default:c(()=>[l(`div`,H,[l(`div`,{class:i([`flex h-5 w-5 items-center justify-center rounded-full border-[1.5px] p-1`,{"bg-c-accent text-b-1 border-transparent":a(r)?.themeId===t}])},[a(r)?.themeId===t?(n(),u(a(y),{key:0,icon:`Checkmark`,size:`xs`,thickness:`3.5`})):p(``,!0)],2),g(` `+d(a(w)[t]),1)]),l(`div`,U,[l(`span`,{class:`border-c-3 -mr-3 inline-block h-5 w-5 rounded-full`,style:e({backgroundColor:D(t).light})},null,4),l(`span`,{class:`border-c-3 -mr-3 inline-block h-5 w-5 rounded-full`,style:e({backgroundColor:D(t).dark})},null,4),l(`span`,{class:`border-c-3 inline-block h-5 w-5 rounded-full`,style:e({backgroundColor:D(t).accent})},null,4)])]),_:2},1032,[`class`,`onClick`])),64))])])]),_:1}),v(F,null,{title:c(()=>[...h[9]||=[g(` Framework Themes `,-1)]]),description:c(()=>[...h[10]||=[g(` Are you a real fan? Show your support by using your favorite framework's theme! `,-1)]]),default:c(()=>[l(`div`,W,[(n(),f(m,null,o(x,e=>v(a(b),{key:e,class:i(a(C)(a(A)({active:a(r)?.themeId===e}))),onClick:t=>O(e)},{default:c(()=>[l(`div`,G,[l(`div`,{class:i([`flex h-5 w-5 items-center justify-center rounded-full border-[1.5px] p-1`,{"bg-c-accent text-b-1 border-transparent":a(r)?.themeId===e}])},[a(r)?.themeId===e?(n(),u(a(y),{key:0,icon:`Checkmark`,size:`xs`,thickness:`3.5`})):p(``,!0)],2),g(` `+d(a(w)[e]),1)]),l(`div`,K,[l(`div`,q,[v(k,{integration:e},null,8,[`integration`])])])]),_:2},1032,[`class`,`onClick`])),64))])]),_:1}),v(F,null,{title:c(()=>[...h[11]||=[g(` Appearance `,-1)]]),description:c(()=>[...h[12]||=[g(` Choose between light, dark, or system-based appearance for your workspace. `,-1)]]),default:c(()=>[v(j)]),_:1})])])]))}}),X=_({__name:`Settings`,setup(e){let t={general:{component:Y,title:`general`}},i=s(`general`);return(e,a)=>(n(),u(D,null,{default:c(()=>[v(O,{class:`flex-1`},{default:c(()=>[t[i.value]?(n(),u(r(t[i.value].component),{key:0})):p(``,!0)]),_:1})]),_:1}))}});export{X as default};
|