@runeya/runeya 2.0.104 → 2.0.106
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/{chat-3XDVULFH.js → chat-N6XONNVG.js} +3 -3
- package/{chunk-AAK7ACHG.js → chunk-CQCCVPTX.js} +3 -3
- package/{chunk-IOAGFK3P.js → chunk-YQISK6BL.js} +16 -8
- package/chunk-YQISK6BL.js.map +1 -0
- package/{companion-MUFVXURV.js → companion-7AFRBUQI.js} +2 -2
- package/index.js +3 -3
- package/package.json +1 -1
- package/{src-TEL7L4K2.js → src-US4EBM64.js} +4 -4
- package/web/assets/AgentScalarChatInterface.vue-BXv2YF_7.js +13 -0
- package/web/assets/AgentTerminalPage-HbM44kg8.js +1 -0
- package/web/assets/{AgentTerminalPage-BD2w4XRc.css → AgentTerminalPage-JZtlA7HB.css} +1 -1
- package/web/assets/AiChatPage-BTsALiaV.js +1 -0
- package/web/assets/AppLayout-DJ1dZUtQ.js +1 -0
- package/web/assets/{AppLayout-CYQBjQBU.css → AppLayout-EhZfYcsl.css} +1 -1
- package/web/assets/AuditPage-CF53LMHt.js +1 -0
- package/web/assets/CloudAccountPage-BttYjaR8.js +1 -0
- package/web/assets/CloudAccountPage-Dou70Ljn.js +1 -0
- package/web/assets/CloudMessagingPage-D15sTToL.js +2 -0
- package/web/assets/DashboardPage-CspSBpVO.css +1 -0
- package/web/assets/DashboardPage-inYgcB3J.js +164 -0
- package/web/assets/DirectoryPickerDialog-BbYn-Yjo.css +1 -0
- package/web/assets/DirectoryPickerDialog-DDWbon2r.js +1 -0
- package/web/assets/{EditorIcon-CA5ff6aq.js → EditorIcon-BWhMJTSH.js} +2 -2
- package/web/assets/EnvironmentForm-DG_9AXml.js +108 -0
- package/web/assets/EnvironmentFormPage-DYmI2BfZ.js +1 -0
- package/web/assets/EnvironmentListPage-D2l91HzS.js +1 -0
- package/web/assets/KanbanBoardPage-BPH1ywhH.js +4 -0
- package/web/assets/KanbanListPage-Bj9-EbPv.js +1 -0
- package/web/assets/LaunchProjectPage-ObKhBvlS.js +1 -0
- package/web/assets/LaunchServicesPage-CAdAAyfG.js +1 -0
- package/web/assets/LogViewer-QRpqcjXC.js +3 -0
- package/web/assets/OrgKeyPrompt-uMjz7Y5A.js +1 -0
- package/web/assets/ProcessControls-B6blcC2b.js +1 -0
- package/web/assets/ProcessControls-Dk1xgpaC.css +1 -0
- package/web/assets/ProcessDetailPage-Bi5vk4ah.js +1 -0
- package/web/assets/{ProcessMetrics-xWpkhjoe.js → ProcessMetrics-luXa72sd.js} +2 -2
- package/web/assets/RandomJobTestPage-uuy7by63.js +2 -0
- package/web/assets/ScenarioEditorPage-oyhLaoVE.js +14 -0
- package/web/assets/SendToChatDialog-BnZEu35Q.js +1 -0
- package/web/assets/ServiceControlsBar-BtnWYJmp.css +1 -0
- package/web/assets/ServiceControlsBar-Dp3r57J4.js +1 -0
- package/web/assets/ServiceDetailPage-DBm79vOL.js +2 -0
- package/web/assets/{ServiceDetailPage-IU_BrMof.css → ServiceDetailPage-DpgtCJPg.css} +1 -1
- package/web/assets/ServiceFormPage-BGWjKCUH.js +1 -0
- package/web/assets/SettingsPage-BIVmZT7t.js +2063 -0
- package/web/assets/{SettingsPage-Dw6tbcbw.css → SettingsPage-CrzdGJlG.css} +1 -1
- package/web/assets/UnlockPage-DYRFhdrT.js +1 -0
- package/web/assets/VariablesTable-Cbc_RlnE.js +1 -0
- package/web/assets/VaultMigrationPage-GlJyIJAw.js +1 -0
- package/web/assets/VersionBadge-CSX89ryT.js +1 -0
- package/web/assets/WikiPage-DAPhZkpS.js +1 -0
- package/web/assets/WikiView-DyU4eNEh.js +1 -0
- package/web/assets/add-scalar-classes-CxpzHvBM.js +387 -0
- package/web/assets/autocomplete-COj-K1Nc.js +308 -0
- package/web/assets/{basic-shape-diamond.svg-irIu-f9l.js → basic-shape-diamond.svg-Dw9kJc3l.js} +1 -1
- package/web/assets/{basic-shape-hexagon.svg-DasEKbDT.js → basic-shape-hexagon.svg-DeTUNvAm.js} +1 -1
- package/web/assets/{basic-shape-primary-circle-ellipse-round.svg-DFanDXAm.js → basic-shape-primary-circle-ellipse-round.svg-CZe21n5k.js} +1 -1
- package/web/assets/{basic-shape-primary-square-rectangle.svg-Dkyo9dlJ.js → basic-shape-primary-square-rectangle.svg-DIvBb7uH.js} +1 -1
- package/web/assets/{basic-shape-shield.svg-3imE69mJ.js → basic-shape-shield.svg-D2Ttq4yx.js} +1 -1
- package/web/assets/{browser-DUQZPder.js → browser-8qE0e05E.js} +1 -1
- package/web/assets/{browser-Aa5s7rfo.js → browser-BtPtEa-Z.js} +1 -1
- package/web/assets/card-pbrPkbmk.js +32 -0
- package/web/assets/{checkbox-tdxfIWhT.js → checkbox-g16PaQaN.js} +3 -3
- package/web/assets/{chip-DQ2M3lMV.js → chip-B1jaR69s.js} +2 -2
- package/web/assets/client-DZg134cQ.js +24 -0
- package/web/assets/cloud-chat.store-D899jVQ4.js +1 -0
- package/web/assets/cloud-session-DSjPbs8C.js +1 -0
- package/web/assets/column-Pmg7Ma5f.js +907 -0
- package/web/assets/{computer-device-desktop-monitor.svg-CYOP3WaB.js → computer-device-desktop-monitor.svg-BpU1vmqL.js} +1 -1
- package/web/assets/{computer-device-desktop.svg-qlrBIvQY.js → computer-device-desktop.svg-CofWATKj.js} +1 -1
- package/web/assets/{computer-device-laptop.svg-IHPj_lEm.js → computer-device-laptop.svg-Bk0WdntU.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung-back.svg-DKPSbT77.js → computer-device-mobile-phone-android-samsung-back.svg-4jDLeTUE.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung.svg-s5qvH0rw.js → computer-device-mobile-phone-android-samsung.svg-BtDfk53W.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x-back.svg-B77oIjAn.js → computer-device-mobile-phone-iphone-x-back.svg-mrfLt2LS.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x.svg-Cnz0nuie.js → computer-device-mobile-phone-iphone-x.svg-D3hLzA-f.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet-touch.svg-CGw0OJdZ.js → computer-device-mobile-tablet-touch.svg-URFOvX2G.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet.svg-BllNUwYz.js → computer-device-mobile-tablet.svg-CIdkHAYo.js} +1 -1
- package/web/assets/{computer-device-network-ethernet-cat6.svg-CDcu8JSm.js → computer-device-network-ethernet-cat6.svg-BEC9unNd.js} +1 -1
- package/web/assets/{computer-device-network-lan-www.svg-Cr2Mzrgm.js → computer-device-network-lan-www.svg-C_WEyWn-.js} +1 -1
- package/web/assets/{computer-device-network-wifi-connection.svg-BdIGk-iA.js → computer-device-network-wifi-connection.svg-D2xhIyf7.js} +1 -1
- package/web/assets/{computer-device-network-wifi-router.svg-ChrqaXoE.js → computer-device-network-wifi-router.svg-DwIQxKAQ.js} +1 -1
- package/web/assets/{cssMode-DQ3QWGDZ.js → cssMode-YcxdUWNT.js} +1 -1
- package/web/assets/{divider-BnVkpmcn.js → divider-C95jkWZ7.js} +2 -2
- package/web/assets/{docx-preview-DOVrOL2W.js → docx-preview-B1K7Js_Q.js} +1 -1
- package/web/assets/{ecology-science-erlenmeyer-flask.svg-Bz0bzqPi.js → ecology-science-erlenmeyer-flask.svg-DOmkHECy.js} +1 -1
- package/web/assets/{fieldset-CaBT4en1.js → fieldset-DEPqiZWe.js} +2 -2
- package/web/assets/{freemarker2-e7ZK44f9.js → freemarker2-Bzhvjbz4.js} +1 -1
- package/web/assets/{handlebars-BunSmNEk.js → handlebars-CymxzXg4.js} +1 -1
- package/web/assets/{html-t6Ga4VcA.js → html-CouVDmTR.js} +1 -1
- package/web/assets/{htmlMode-CjsAz81L.js → htmlMode-Be-vsCic.js} +1 -1
- package/web/assets/{image-flash-lightning.svg-CSanVzgy.js → image-flash-lightning.svg-CTaPLIBa.js} +1 -1
- package/web/assets/{image-picture-flower.svg-DUlCxHzi.js → image-picture-flower.svg-BkIdyuJf.js} +1 -1
- package/web/assets/{index-DWQLzWm4.css → index-DWNL2YPM.css} +1 -1
- package/web/assets/{index-CNqv4qMO.js → index-DkeyMLje.js} +301 -301
- package/web/assets/{interface-alert-exclamation-diamond.svg-C-uhPFKN.js → interface-alert-exclamation-diamond.svg-LE6wXJfb.js} +1 -1
- package/web/assets/{interface-alert-exclamation-triangle-warning.svg-BnSCXw68.js → interface-alert-exclamation-triangle-warning.svg-DnJUBUVG.js} +1 -1
- package/web/assets/{interface-alert-information-circle.svg-CTGCb0Yf.js → interface-alert-information-circle.svg-BBESAf3A.js} +1 -1
- package/web/assets/{interface-award-crown.svg-T-Lov9NP.js → interface-award-crown.svg-A9FnpbJ_.js} +1 -1
- package/web/assets/{interface-bookmark.svg-CZekkdj9.js → interface-bookmark-tag.svg-CONBx7yi.js} +1 -1
- package/web/assets/{interface-bookmark-tag.svg-DLjS0Lnz.js → interface-bookmark.svg-BMCuN1KQ.js} +1 -1
- package/web/assets/{interface-calendar-date-one.svg-DmD4yfdS.js → interface-calendar-date-one.svg-BsHBSc-o.js} +1 -1
- package/web/assets/{interface-content-book-open-pages.svg-wHqGX15c.js → interface-content-book-open-pages.svg-BsndNDne.js} +1 -1
- package/web/assets/{interface-content-book-page.svg-MCSanA32.js → interface-content-book-page.svg-D9O4ldas.js} +1 -1
- package/web/assets/{interface-content-file.svg-DBpf8dcs.js → interface-content-file.svg-3hZDtYrB.js} +1 -1
- package/web/assets/{interface-content-folder.svg-DZSoYO0L.js → interface-content-folder.svg-D2PGz4rg.js} +1 -1
- package/web/assets/interface-content-folder.svg-GTysMuP_.js +1 -0
- package/web/assets/{interface-copy-clipboard.svg-C1-sJNwr.js → interface-copy-clipboard.svg-DDENzgQo.js} +1 -1
- package/web/assets/{interface-edit-attachment.svg-CpxThva3.js → interface-edit-attachment.svg-D2cQZV5Q.js} +1 -1
- package/web/assets/{interface-edit-binocular.svg-BHfWW26z.js → interface-edit-binocular.svg-DrIFa0gk.js} +1 -1
- package/web/assets/{interface-edit-magic-wand.svg-DcC6CJBy.js → interface-edit-magic-wand.svg-AnGByEQd.js} +1 -1
- package/web/assets/{interface-edit-tool-paint-roller.svg-BhReRG-a.js → interface-edit-tool-paint-roller.svg-KNrFMeco.js} +1 -1
- package/web/assets/{interface-edit-tool-pencil.svg-CztZ4Olx.js → interface-edit-tool-pencil.svg-DF9u9WDQ.js} +1 -1
- package/web/assets/{interface-favorite-award.svg-C0kleqGy.js → interface-favorite-award.svg-mkb9vXWE.js} +1 -1
- package/web/assets/{interface-favorite-flag.svg-B-VJ_w7p.js → interface-favorite-flag.svg-BDIYdX-W.js} +1 -1
- package/web/assets/{interface-favorite-heart.svg-CuRtXB-S.js → interface-favorite-heart.svg-DtIvO6z9.js} +1 -1
- package/web/assets/{interface-favorite-star.svg-DtEkT0h3.js → interface-favorite-star.svg-CEv2Io1P.js} +1 -1
- package/web/assets/{interface-favorite-stars-sparkles.svg-ffOT-I95.js → interface-favorite-stars-sparkles.svg-D0SoJbJE.js} +1 -1
- package/web/assets/{interface-hierarchy-flowchart.svg-C5eB0vng.js → interface-hierarchy-flowchart.svg-B-kMOZH8.js} +1 -1
- package/web/assets/{interface-home-house.svg-Djr3DBJk.js → interface-home-house.svg-FOYUzOig.js} +1 -1
- package/web/assets/{interface-hyperlink.svg-BaesgCsY.js → interface-hyperlink.svg-BaPGYtZM.js} +1 -1
- package/web/assets/{interface-lighting-brightness.svg-CiNPNypw.js → interface-lighting-brightness.svg-ddMiifOe.js} +1 -1
- package/web/assets/{interface-lock-closed.svg-Dk3IIjH4.js → interface-lock-closed.svg-WGGCrOPW.js} +1 -1
- package/web/assets/{interface-lock-open-unlock.svg-DGG8lod0.js → interface-lock-open-unlock.svg-BHdzRkd9.js} +1 -1
- package/web/assets/{interface-login-key.svg-ZREdsGBv.js → interface-login-key.svg-C-CaH8gN.js} +1 -1
- package/web/assets/{interface-search.svg-AF3hFV8X.js → interface-search.svg-BWvztnST.js} +1 -1
- package/web/assets/{interface-setting-cog.svg-CxjXHOho.js → interface-setting-cog.svg-BiiP7i7e.js} +1 -1
- package/web/assets/{interface-share-megaphone-bullhorn.svg-C-Ou9l0X.js → interface-share-megaphone-bullhorn.svg-BaNwYllj.js} +1 -1
- package/web/assets/{interface-share-rocket.svg-CERB2Bts.js → interface-share-rocket.svg-DpVzHxi1.js} +1 -1
- package/web/assets/{interface-share-satellite.svg-BfHWK0sr.js → interface-share-satellite.svg-DVMadDln.js} +1 -1
- package/web/assets/{interface-share-space-ship.svg-lWM8H0aF.js → interface-share-space-ship.svg-B1a7LlLT.js} +1 -1
- package/web/assets/{interface-share.svg-CFf-5WEt.js → interface-share.svg-BknNtx4U.js} +1 -1
- package/web/assets/{interface-signal-square.svg-BIiI1WkB.js → interface-signal-square.svg-DTf1mlii.js} +1 -1
- package/web/assets/{interface-time-clock-circle.svg-MloMulBj.js → interface-time-clock-circle.svg-DT6LHPex.js} +1 -1
- package/web/assets/{interface-time-hour-glass.svg-BOxCCGI2.js → interface-time-hour-glass.svg-CNCTqw_R.js} +1 -1
- package/web/assets/{interface-users-multiple.svg-4T9srtFC.js → interface-users-multiple.svg-DuMlS4pH.js} +1 -1
- package/web/assets/{interface-weather-moon.svg-CKHzp1q9.js → interface-weather-moon.svg-BfOraF6E.js} +1 -1
- package/web/assets/{javascript-D9xsJ3Az.js → javascript-CSbYcb4a.js} +1 -1
- package/web/assets/{jsonMode-DuBcXIAs.js → jsonMode-BfABTJ_P.js} +2 -2
- package/web/assets/{liquid-DEC7GfIV.js → liquid-D8zk2iFJ.js} +1 -1
- package/web/assets/{lspLanguageFeatures-BWtjzx_b.js → lspLanguageFeatures-CDjcX5cq.js} +3 -3
- package/web/assets/{mail-chat-bubble-square.svg-Bnr_lHI8.js → mail-chat-bubble-square.svg-B57LhJ7L.js} +1 -1
- package/web/assets/{mail-send-email-paper-airplane.svg-BX3SaAOF.js → mail-send-email-paper-airplane.svg-Zh4WfmfD.js} +1 -1
- package/web/assets/{mail-send-envelope.svg-ZUoORksb.js → mail-send-envelope.svg-B3JTaotd.js} +1 -1
- package/web/assets/{mdx-HOoxTDWS.js → mdx-Rt1S5V6O.js} +1 -1
- package/web/assets/{minus-BBEVgxJH.js → minus-h_LYd9EK.js} +2 -2
- package/web/assets/modal--Ilf4bg_.js +5 -0
- package/web/assets/modal-Wk0CWaUJ.js +1 -0
- package/web/assets/{money-cashier-receipt.svg-DZ3PFTDB.js → money-cashier-receipt.svg-BYcjjmII.js} +1 -1
- package/web/assets/{money-currency-dollar-pay.svg-MP_zZSsR.js → money-currency-dollar-pay.svg-D_eoPfYw.js} +1 -1
- package/web/assets/{money-graph-arrow-increase.svg-zF1qoCJ1.js → money-graph-arrow-increase.svg-BVafbTUR.js} +1 -1
- package/web/assets/{money-graph-bar-chart-increase.svg-BDD2RhNd.js → money-graph-bar-chart-increase.svg-DFCnoSVq.js} +1 -1
- package/web/assets/multiselect-DlGWFLJR.js +251 -0
- package/web/assets/{nature-ecology-leaf.svg-C8ROcT5o.js → nature-ecology-leaf.svg-DI19KkR3.js} +1 -1
- package/web/assets/{password-4B0Jk2Id.js → password-BQyr-83Q.js} +4 -4
- package/web/assets/{phone-telephone.svg-DKK-lUXQ.js → phone-telephone.svg-si7GWPbw.js} +1 -1
- package/web/assets/{plus-CTzNAMSa.js → plus-yTeMgVZF.js} +6 -6
- package/web/assets/process-DIamAPAU.js +1 -0
- package/web/assets/process.store-CvrK-4rR.js +1 -0
- package/web/assets/{programming-bug.svg-D2E8tMFA.js → programming-bug.svg-C8_FsRk_.js} +1 -1
- package/web/assets/{programming-cloud.svg-BGnh40iK.js → programming-cloud.svg-Djjnh8pM.js} +1 -1
- package/web/assets/{programming-computer-database-server.svg-BVAuZnpu.js → programming-computer-database-server.svg-Cw72ZkUG.js} +1 -1
- package/web/assets/{programming-computer-database.svg-Cw61nQGg.js → programming-computer-database.svg-C0Z7_RVR.js} +1 -1
- package/web/assets/{programming-module-four-layout.svg-DoU0KSeo.js → programming-module-four-layout.svg-BvERcUAT.js} +1 -1
- package/web/assets/{programming-module-three.svg-DVhh6Qdu.js → programming-module-three.svg-BkoUon6u.js} +1 -1
- package/web/assets/{programming-module.svg-DvJfoHtJ.js → programming-module.svg-CK1yw5W-.js} +1 -1
- package/web/assets/{programming-script-code.svg-C-tp6SrH.js → programming-script-code.svg-BhU73hpj.js} +1 -1
- package/web/assets/project-launch.store-D5cyKKyw.js +1 -0
- package/web/assets/project.store-OwPRdjA0.js +1 -0
- package/web/assets/{python--BJI87h8.js → python-CSf8HAN9.js} +1 -1
- package/web/assets/{razor-CyKegkVq.js → razor-BKjp9q-U.js} +1 -1
- package/web/assets/router-DuWVvMLT.js +1 -0
- package/web/assets/settings-scope-D7NFCXjg.js +1 -0
- package/web/assets/settings.store-BBoXO9_c.js +1 -0
- package/web/assets/{shopping-cart.svg-LfGHmiMy.js → shopping-cart.svg-CgRtQ4k-.js} +1 -1
- package/web/assets/{shopping-gift-present.svg-DQxn6jVj.js → shopping-gift-present.svg-XdAdBUaO.js} +1 -1
- package/web/assets/{shopping-shipping-box-parcel-package.svg-0_aBSgUi.js → shopping-shipping-box-parcel-package.svg-BaFPv3xL.js} +1 -1
- package/web/assets/src-CRQ32_Qg.js +1 -0
- package/web/assets/{src-DmAdua1A.js → src-DeCIcklm.js} +33 -33
- package/web/assets/src-S24lFUYb.js +572 -0
- package/web/assets/tabpanel-DbMhKzgJ.js +150 -0
- package/web/assets/{tag-new-circle.svg-83yDHm_4.js → tag-new-circle.svg-BwxdYwp4.js} +1 -1
- package/web/assets/theme-pRVEu5SJ.js +1 -0
- package/web/assets/{toggleswitch-98WbJy1b.js → toggleswitch-DKXm3drm.js} +2 -2
- package/web/assets/{travel-map-earth-globe.svg-Ih5Yi-jq.js → travel-map-earth-globe.svg-B3QIUens.js} +1 -1
- package/web/assets/trpc-Cf_8kWCl.js +1 -0
- package/web/assets/{tsMode-ocCX3Kwn.js → tsMode-KbYg0Qfw.js} +6 -6
- package/web/assets/{typescript-BNLFcH9T.js → typescript-UzU12abv.js} +1 -1
- package/web/assets/useAiChatDrawer-DCVhP5N0.js +1 -0
- package/web/assets/useCloudOrg-CXvwb5Fo.js +1 -0
- package/web/assets/useProjectCatalog-Bth_aDP4.js +1 -0
- package/web/assets/useProjectCloudOrg-MUCjKP3P.js +1 -0
- package/web/assets/{xml-DcSXqrs-.js → xml-CkgxvNFc.js} +1 -1
- package/web/assets/{yaml-BNINCoLr.js → yaml-Cjr4aAq9.js} +1 -1
- package/web/index.html +13 -3
- package/chunk-IOAGFK3P.js.map +0 -1
- package/web/assets/AgentScalarChatInterface.vue-CveVquKX.js +0 -13
- package/web/assets/AgentTerminalPage-DkNOUzXx.js +0 -1
- package/web/assets/AiChatPage-CTF8FIV4.js +0 -1
- package/web/assets/AppLayout-agjOv6PY.js +0 -1
- package/web/assets/AuditPage-dgYwbpdR.js +0 -1
- package/web/assets/CloudAccountPage-Bx9gNcJQ.js +0 -1
- package/web/assets/CloudAccountPage-DEnVoeik.js +0 -1
- package/web/assets/CloudMessagingPage-qKrKfB-F.js +0 -2
- package/web/assets/DashboardPage-Bwq2Nhg2.js +0 -1
- package/web/assets/DashboardPage-CSkUCQHY.css +0 -1
- package/web/assets/DirectoryPickerDialog-CSGtvSIk.css +0 -1
- package/web/assets/DirectoryPickerDialog-D8XDtgZh.js +0 -1
- package/web/assets/EnvironmentForm-CzSZiA51.js +0 -108
- package/web/assets/EnvironmentFormPage-CuSgaY1_.js +0 -1
- package/web/assets/EnvironmentListPage-Dsw3CJvc.js +0 -1
- package/web/assets/KanbanBoardPage-CUVcQ4YW.js +0 -4
- package/web/assets/KanbanListPage-CGhlz8Pe.js +0 -1
- package/web/assets/LaunchProjectPage-BveJC98q.js +0 -1
- package/web/assets/LaunchServicesPage-B0W02JDF.js +0 -1
- package/web/assets/LogViewer-Rr_WYaUa.js +0 -3
- package/web/assets/OrgKeyPrompt-CG2-L3Lf.js +0 -1
- package/web/assets/ProcessControls-CKmB6sB9.css +0 -1
- package/web/assets/ProcessControls-DvSw2AQV.js +0 -1
- package/web/assets/ProcessDetailPage-Decf7LjW.js +0 -1
- package/web/assets/ProjectDetailPage-CLbj9ZT4.css +0 -1
- package/web/assets/ProjectDetailPage-xg7x2vFI.js +0 -1
- package/web/assets/ProjectListPage-Bv2fwGla.js +0 -1
- package/web/assets/ProjectListPage-DYs6X7r2.css +0 -1
- package/web/assets/RandomJobTestPage-BEn1gSo3.js +0 -2
- package/web/assets/ScenarioEditorPage-CLiTQe4B.js +0 -14
- package/web/assets/SendToChatDialog-DdvfNdWg.js +0 -1
- package/web/assets/ServiceControlsBar-DKc2e9Ns.js +0 -1
- package/web/assets/ServiceControlsBar-D_S_sGQj.css +0 -1
- package/web/assets/ServiceDetailPage-BfkVlUEh.js +0 -2
- package/web/assets/ServiceFormPage-BTJBk_wB.js +0 -1
- package/web/assets/SettingsPage-BlOHIALT.js +0 -2063
- package/web/assets/UnlockPage-u3Zqu1aU.js +0 -1
- package/web/assets/VariablesTable-MFZSG4LV.js +0 -1
- package/web/assets/VaultMigrationPage-CTMCgOtW.js +0 -1
- package/web/assets/VersionBadge-D5zxX_zs.js +0 -1
- package/web/assets/WikiPage-BkQZP60x.js +0 -1
- package/web/assets/WikiView-CFX5gG2s.js +0 -1
- package/web/assets/add-scalar-classes-ClMP-KRl.js +0 -387
- package/web/assets/autocomplete-CBY4HTQR.js +0 -308
- package/web/assets/card-D-ziPwAg.js +0 -32
- package/web/assets/client-w--F512m.js +0 -24
- package/web/assets/cloud-chat.store-DwSl7oKq.js +0 -1
- package/web/assets/cloud-session-Do-zjE8q.js +0 -1
- package/web/assets/column-Bv9vDejf.js +0 -907
- package/web/assets/interface-content-folder.svg-ZujlG0Az.js +0 -1
- package/web/assets/modal-DM9X_PVj.js +0 -5
- package/web/assets/modal-lOChu0a6.js +0 -1
- package/web/assets/multiselect-BGmyQeLC.js +0 -251
- package/web/assets/process.store-hTCiNh-E.js +0 -1
- package/web/assets/router-CjeDvoXv.js +0 -1
- package/web/assets/settings-scope-78RP25Qh.js +0 -1
- package/web/assets/settings.store-D0Rg-dsM.js +0 -1
- package/web/assets/src-BVvRi5bZ.js +0 -1
- package/web/assets/src-COTZAWP1.js +0 -572
- package/web/assets/tabpanel-DHCbTagN.js +0 -150
- package/web/assets/theme-CDWRcPhl.js +0 -1
- package/web/assets/trpc-BOcC0r-H.js +0 -1
- package/web/assets/useAiChatDrawer-DVacYOFX.js +0 -1
- package/web/assets/useCloudOrg-D_o0-v2z.js +0 -1
- package/web/assets/useProjectCatalog-CSqoTWGy.js +0 -1
- package/web/assets/useProjectCloudOrg-iblWkaw9.js +0 -1
- /package/{chat-3XDVULFH.js.map → chat-N6XONNVG.js.map} +0 -0
- /package/{chunk-AAK7ACHG.js.map → chunk-CQCCVPTX.js.map} +0 -0
- /package/{companion-MUFVXURV.js.map → companion-7AFRBUQI.js.map} +0 -0
- /package/{src-TEL7L4K2.js.map → src-US4EBM64.js.map} +0 -0
- /package/web/assets/{abap-PT-N0eyj.js → abap-DIWaXxy4.js} +0 -0
- /package/web/assets/{apex-BYovhaVz.js → apex-D4-KnjW_.js} +0 -0
- /package/web/assets/{azcli-DOxZ9r2f.js → azcli-IfDsRCLo.js} +0 -0
- /package/web/assets/{bat-B29juGG4.js → bat-DWkIEnW3.js} +0 -0
- /package/web/assets/{bicep-7-ApPSlE.js → bicep-CsOqEKmZ.js} +0 -0
- /package/web/assets/{browser-N7UrAcvB.js → browser-BRPZK8RN.js} +0 -0
- /package/web/assets/{cameligo-BipBUQCp.js → cameligo-CVJihesZ.js} +0 -0
- /package/web/assets/{clojure-DBgUdyK0.js → clojure-CPXjbAsV.js} +0 -0
- /package/web/assets/{coffee-DIU_x8Zp.js → coffee-Dk6AGUBs.js} +0 -0
- /package/web/assets/{cpp-CAPjLTys.js → cpp-D8TcNCkN.js} +0 -0
- /package/web/assets/{csharp-kFCIHjec.js → csharp-B_ijQZWm.js} +0 -0
- /package/web/assets/{csp-BFKsjgRE.js → csp-CT_qVlF1.js} +0 -0
- /package/web/assets/{css-C3uiAvXV.js → css-BNKulUcx.js} +0 -0
- /package/web/assets/{cypher-BC8El989.js → cypher-BZUAEEC-.js} +0 -0
- /package/web/assets/{dart-BAClpSRO.js → dart-H8Ri9IID.js} +0 -0
- /package/web/assets/{dockerfile-DVZSJ3rq.js → dockerfile-BibtL7_E.js} +0 -0
- /package/web/assets/{ecl-Dis7T_5W.js → ecl-Cq6OzwoI.js} +0 -0
- /package/web/assets/{elixir-B0xfsmfq.js → elixir-DEzZo1Bn.js} +0 -0
- /package/web/assets/{flow9-DbTJxEBz.js → flow9-CJjg7TJH.js} +0 -0
- /package/web/assets/{fsharp-DTOqftZo.js → fsharp-vGx-8LrK.js} +0 -0
- /package/web/assets/{go-KWOR5hag.js → go-CHEkyua-.js} +0 -0
- /package/web/assets/{graphql-DjYFSl6G.js → graphql--iPbFyYe.js} +0 -0
- /package/web/assets/{hcl-D8RrENjV.js → hcl-C8EkclQS.js} +0 -0
- /package/web/assets/{ini-BOtkgeoY.js → ini-DkuTJDAH.js} +0 -0
- /package/web/assets/{java-DKd4_eEX.js → java-DzuDjs1c.js} +0 -0
- /package/web/assets/{julia-XpEGblEj.js → julia-BUS80tf_.js} +0 -0
- /package/web/assets/{kotlin-BZv3QweN.js → kotlin-s0eIc-h2.js} +0 -0
- /package/web/assets/{less-H5kV6pUj.js → less-o5f3n-o_.js} +0 -0
- /package/web/assets/{lexon-Bg4gEB0s.js → lexon-AgKBNlrf.js} +0 -0
- /package/web/assets/{lua-D7eb4Dnq.js → lua-DUTvSobZ.js} +0 -0
- /package/web/assets/{m3-BjDYXZ0c.js → m3-DoULJRPc.js} +0 -0
- /package/web/assets/{markdown-Cl5YxO_y.js → markdown-f9-EhcTi.js} +0 -0
- /package/web/assets/{mips-sklxJ87A.js → mips-aCd_43tp.js} +0 -0
- /package/web/assets/{msdax-C0nZ2Nk3.js → msdax-cwHq3sFu.js} +0 -0
- /package/web/assets/{mysql-D6eZPdeQ.js → mysql-ITCpZRvB.js} +0 -0
- /package/web/assets/{objective-c-W10E2fSz.js → objective-c-BjU-4cpP.js} +0 -0
- /package/web/assets/{pascal-Cd0rtL9J.js → pascal-Dmt8LI08.js} +0 -0
- /package/web/assets/{pascaligo-BbE09f5f.js → pascaligo-DrXjRBef.js} +0 -0
- /package/web/assets/{perl-bnuvlUCT.js → perl-BbJKyW-Z.js} +0 -0
- /package/web/assets/{pgsql-BETeeS25.js → pgsql-CLT36ygM.js} +0 -0
- /package/web/assets/{php-zaSPUC-m.js → php-BIcyBKEQ.js} +0 -0
- /package/web/assets/{pla-ChOKgzpJ.js → pla-sVewnHw1.js} +0 -0
- /package/web/assets/{postiats-By_SllB5.js → postiats-D9DrURSm.js} +0 -0
- /package/web/assets/{powerquery-CB5gIeJ1.js → powerquery-BEjdKhpn.js} +0 -0
- /package/web/assets/{powershell-CgdaEQwq.js → powershell-BynZyJK1.js} +0 -0
- /package/web/assets/{protobuf-P7fNUpCt.js → protobuf-BQ34Qnv5.js} +0 -0
- /package/web/assets/{pug-DZaxV_Nc.js → pug--jmF9o7P.js} +0 -0
- /package/web/assets/{qsharp-BdkO9QAN.js → qsharp-BDe4Axn9.js} +0 -0
- /package/web/assets/{r-C-pPWc3R.js → r-DpjaSKX3.js} +0 -0
- /package/web/assets/{redis-BT1HxrEq.js → redis-C_Q-xUDt.js} +0 -0
- /package/web/assets/{redshift-CDnJNPnz.js → redshift-CHNShrpo.js} +0 -0
- /package/web/assets/{restructuredtext-Bt8v-MuE.js → restructuredtext-CVN0W1xR.js} +0 -0
- /package/web/assets/{ruby-BLxqHkKg.js → ruby-CaKcv4f1.js} +0 -0
- /package/web/assets/{rust-CIh7vugr.js → rust-CbqMT_Ew.js} +0 -0
- /package/web/assets/{sb-eE41pfwD.js → sb-DIdUmAXV.js} +0 -0
- /package/web/assets/{scala-COBuWHwn.js → scala-DVyALEcz.js} +0 -0
- /package/web/assets/{scheme-BsGc_ajc.js → scheme-Cox4VpHa.js} +0 -0
- /package/web/assets/{scss-DLmucKJk.js → scss-MW_l4ZY_.js} +0 -0
- /package/web/assets/{shared-sse---by8uTc.js → shared-sse-BjXwPkLo.js} +0 -0
- /package/web/assets/{shell-8IUXMVcg.js → shell-CP5qAt5e.js} +0 -0
- /package/web/assets/{solidity-DUTott7T.js → solidity-1ctHOHIb.js} +0 -0
- /package/web/assets/{sophia-GqIrTWz8.js → sophia-DRAqvk2I.js} +0 -0
- /package/web/assets/{sparql-BfkJA0CL.js → sparql-8_9Nt5xp.js} +0 -0
- /package/web/assets/{sql-BF_o1CCN.js → sql-owsrW4c3.js} +0 -0
- /package/web/assets/{st-B6_wiXyW.js → st-BDgXslxD.js} +0 -0
- /package/web/assets/{swift-BHDD2Ajh.js → swift-TE6gFxno.js} +0 -0
- /package/web/assets/{systemverilog-BG_Ebh2a.js → systemverilog-DVGMenxt.js} +0 -0
- /package/web/assets/{tcl-ocTQVTM_.js → tcl-D6NP8_oR.js} +0 -0
- /package/web/assets/{twig-CF5whnDX.js → twig-CVnYtCc5.js} +0 -0
- /package/web/assets/{typespec-5BWfbhTE.js → typespec-BkD2qKRU.js} +0 -0
- /package/web/assets/{uuid-FpfcaBnR.js → uuid-u4W9vzU3.js} +0 -0
- /package/web/assets/{vb-agPNUcOk.js → vb--Oo_cy-E.js} +0 -0
- /package/web/assets/{w3c-keyname-2_K_z_q5.js → w3c-keyname-Dfw8VxXe.js} +0 -0
- /package/web/assets/{wgsl-CufoMn6o.js → wgsl-CrnkJFcw.js} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{$ as e,$n as t,Bn as n,Ca as r,Di as i,Ea as a,Ei as o,F as s,Fi as c,Gi as l,Gt as u,Ia as d,Ii as f,In as p,Kt as m,Ln as h,Mi as g,Na as _,Ni as v,Nn as y,Oi as b,Q as x,Qi as S,Qn as C,Ra as w,Ri as T,Rn as ee,Ti as E,Tn as D,Vt as O,Wa as k,Wt as te,Xn as ne,Yt as re,at as ie,ba as A,bn as ae,bt as oe,cr as se,ct as ce,d as le,dn as ue,ea as de,et as fe,fn as j,ft as M,gt as pe,ha as N,ht as me,ia as he,in as ge,ir as _e,ja as ve,lt as ye,mi as be,na as P,qa as F,qt as xe,rr as I,tt as Se,un as Ce,ut as we,vi as L,vt as Te,wi as R,wn as Ee,xi as z,xn as De,ya as B,yi as V,yt as Oe}from"./index-CNqv4qMO.js";import"./cloud-session-Do-zjE8q.js";import"./src-BVvRi5bZ.js";import"./useProjectCloudOrg-iblWkaw9.js";import{n as ke,t as Ae}from"./ServiceControlsBar-DKc2e9Ns.js";import"./ProcessControls-DvSw2AQV.js";import{t as je}from"./uuid-FpfcaBnR.js";import{n as Me,t as Ne}from"./column-Bv9vDejf.js";import{n as Pe}from"./plus-CTzNAMSa.js";import{t as Fe}from"./checkbox-tdxfIWhT.js";import{t as Ie}from"./toggleswitch-98WbJy1b.js";import{i as Le,n as Re,o as ze,r as Be,t as Ve}from"./tabpanel-DHCbTagN.js";import{n as He,t as Ue}from"./VariablesTable-MFZSG4LV.js";import{t as We}from"./autocomplete-CBY4HTQR.js";import"./src-DmAdua1A.js";import"./w3c-keyname-2_K_z_q5.js";import"./SendToChatDialog-DdvfNdWg.js";import{n as Ge,t as Ke}from"./ProcessMetrics-xWpkhjoe.js";import{t as qe}from"./LogViewer-Rr_WYaUa.js";import{t as Je}from"./divider-BnVkpmcn.js";import{t as Ye}from"./settings.store-D0Rg-dsM.js";import{t as Xe}from"./WikiView-CFX5gG2s.js";var Ze={key:0,class:`log-details`},Qe={class:`log-details__section`},$e={class:`log-details__label`},et={class:`log-details__value log-details__value--box`},tt={class:`log-details__section`},nt={class:`log-details__label`},rt={class:`log-details__value log-details__value--box log-details__value--code`},it={class:`log-details__section`},at={class:`log-details__label`},ot={class:`log-details__value log-details__value--box`},st={class:`log-details__process`},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 log-details__value--code`,"data-testid":`log-details-cwd`},mt={class:`log-details__section`},ht={class:`log-details__label`},gt={class:`log-details__value log-details__value--box`},_t={key:1,class:`log-details__section`},vt={class:`log-details__label`},yt={class:`log-details__value log-details__value--box`},bt={key:2,class:`log-details__section`},xt={class:`log-details__label`},St={class:`log-details__value log-details__value--box log-details__value--code`},Ct=p(c({__name:`LogDetailsDrawer`,props:{visible:{type:Boolean},log:{}},emits:[`update:visible`,`view-process`],setup(e,{emit:t}){let r=e,{t:s}=se(),c=le(),l=t,u=R(()=>{if(!r.log)return``;let e=new Date(r.log.timestamp);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)} ${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}:${String(e.getSeconds()).padStart(2,`0`)}`}),d=R(()=>r.log?r.log.level.charAt(0).toUpperCase()+r.log.level.slice(1):``),f=R(()=>!r.log||r.log.pid==null?s(`logDetails.notAvailable`):String(r.log.pid)),p=R(()=>r.log?c.getByService(r.log.processId)[0]?.cwd??null:null);function m(){r.log&&l(`view-process`,r.log.processId)}function g(){l(`update:visible`,!1)}return(t,r)=>(P(),o(F(h),{visible:e.visible,position:`right`,header:F(s)(`logDetails.header`),style:{width:`440px`},"onUpdate:visible":g},{default:B(()=>[e.log?(P(),b(`div`,Ze,[E(`div`,Qe,[E(`div`,$e,a(F(s)(`logDetails.type`)),1),E(`div`,et,a(d.value),1)]),E(`div`,tt,[E(`div`,nt,a(F(s)(`logDetails.rawMessage`)),1),E(`div`,rt,a(e.log.raw),1)]),E(`div`,it,[E(`div`,at,a(F(s)(`logDetails.serviceId`)),1),E(`div`,ot,[E(`div`,st,[E(`span`,null,a(e.log.processId),1),v(F(n),{label:F(s)(`logDetails.viewProcess`),icon:`pi pi-external-link`,size:`small`,outlined:``,onClick:m},null,8,[`label`])])])]),E(`div`,ct,[E(`div`,lt,a(F(s)(`logDetails.pid`)),1),E(`div`,ut,a(f.value),1)]),p.value?(P(),b(`div`,dt,[E(`div`,ft,a(F(s)(`logDetails.cwd`)),1),E(`div`,pt,a(p.value),1)])):i(``,!0),E(`div`,mt,[E(`div`,ht,a(F(s)(`logDetails.timestamp`)),1),E(`div`,gt,a(u.value),1)]),e.log.stream?(P(),b(`div`,_t,[E(`div`,vt,a(F(s)(`logDetails.stream`)),1),E(`div`,yt,a(e.log.stream),1)])):i(``,!0),e.log.metadata&&Object.keys(e.log.metadata).length>0?(P(),b(`div`,bt,[E(`div`,xt,a(F(s)(`logDetails.metadata`)),1),E(`div`,St,a(JSON.stringify(e.log.metadata,null,2)),1)])):i(``,!0)])):i(``,!0)]),_:1},8,[`visible`,`header`]))}}),[[`__scopeId`,`data-v-4e3f7abe`]]),wt=500,Tt=5,Et=M;function Dt(e){return e+Math.random()*e*.3}function Ot(e,t){let n=w([]),r=w(!1),i=null,a=0,o=null,s=Ee(()=>{a=0,r.value||x()}),c=[],l=null,u=w(0),d=w(0),f=0,p=0,m=null;function h(){m||=setInterval(()=>{u.value=f,d.value=p,f=0,p=0},1e3)}function g(){m&&=(clearInterval(m),null),u.value=0,d.value=0,f=0,p=0}function _(){if(l=null,c.length===0)return;let e=c;c=[],p+=e.length;let t=[...n.value,...e];t.length>wt&&(t=t.slice(t.length-wt)),n.value=t}function v(){!e.value||!t.value||(r.value=!0,i=D.process.onLog.subscribe({agentId:e.value,processId:t.value},{onData(e){let t=e;if(a=0,y(`connected`),t.some(e=>e.__clearLogBuffer)){n.value=[],c=[];return}f+=t.length,c.push(...t),l===null&&(l=requestAnimationFrame(_))},onError(e){console.error(`[useLogStream] Subscription error:`,e.message),r.value=!1,i=null,b()}}))}function b(){if(a>=Tt){console.warn(`[useLogStream] Max retries (${Tt}) reached`),y(`disconnected`);return}y(`reconnecting`);let e=Dt(Et*2**a);a++,o=setTimeout(()=>{o=null,x()},e)}async function x(){if(!r.value&&!(!e.value||!t.value)){a=0;try{let r=await D.process.logs.query({agentId:e.value,processId:t.value});r.length>wt&&(r=r.slice(r.length-wt)),n.value=r,y(`connected`)}catch{}v()}}function S(){o&&=(clearTimeout(o),null),l!==null&&(cancelAnimationFrame(l),l=null),c=[],g(),i&&=(i.unsubscribe(),null),r.value=!1,a=0,n.value=[]}return N([e,t],([e,t],[n,i])=>{(e!==n||t!==i)&&(r.value&&S(),x())}),de(()=>{s(),S()}),{logs:n,isStreaming:r,start:x,stop:S,receivedPerSec:u,flushedPerSec:d,startStats:h,stopStats:g}}var kt={class:`service-terminal__toolbar`},At={class:`service-terminal__toolbar-left`},jt={key:0,class:`pid-option`},Mt={key:1,class:`pid-option`},Nt={key:0,class:`pi pi-circle-fill pid-status-icon pid-status-icon--active`,style:{"margin-right":`0.5rem`}},Pt={key:1,class:`pi pi-circle-fill pid-status-icon pid-status-icon--stopped`,style:{"margin-right":`0.5rem`}},Ft={class:`pid-option`},It={key:0,class:`pi pi-list`,style:{"margin-right":`0.5rem`}},Lt=[`title`],Rt=[`title`],zt={class:`service-terminal__toolbar-right`},Bt={class:`service-terminal__content`,"data-testid":`service-terminal-content`},Vt={key:1,class:`service-terminal__shortcuts`},Ht={class:`service-terminal__command-input`},Ut={class:`service-terminal__bottom`},Wt=`runeya_command_history_`,Gt=50,Kt=p(c({__name:`ServiceTerminal`,props:{service:{},processes:{}},setup(e){let{t}=se(),s=e,c=R(()=>s.processes.find(e=>e.state===`running`||e.state===`starting`)??s.processes[0]??null),u=R(()=>c.value?.agentId??``),d=R(()=>c.value?.id??``),f=_e(),{logs:p,isStreaming:m,start:h,stop:g,receivedPerSec:_,flushedPerSec:y,startStats:x,stopStats:C}=Ot(u,d),T=w(!1);N(T,e=>{e?x():C()});function ee(e){e.ctrlKey&&e.shiftKey&&(e.key===`*`||e.key===`µ`)&&(e.preventDefault(),T.value=!T.value)}let O=R(()=>{let e=new Map;return p.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=s.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())}),k=R(()=>Me.value===`all`?p.value:p.value.filter(e=>e.pid===Me.value)),te=R(()=>O.value.filter(e=>e.isActive).length),ne=R(()=>{let e=[{label:t(`serviceTerminal.allProcesses`),value:`all`,badge:te.value>0?`${te.value} ${t(`serviceTerminal.active`)}`:void 0,isActive:void 0}];return O.value.forEach(({pid:t,logCount:n,isActive:r})=>{e.push({label:`PID: ${t}`,value:t,badge:`${n} logs`,isActive:r})}),e});R(()=>s.processes.filter(e=>e.state===`running`).length);async function re(){if(c.value)try{await D.process.clearLogBuffer.mutate({agentId:c.value.agentId,processId:c.value.id}),p.value=[]}catch(e){f.add({severity:`error`,summary:t(`serviceTerminal.error`),detail:e.message??t(`serviceTerminal.failedToClearLogs`),life:5e3})}}let ie=R(()=>s.service.shortcuts??[]),A=w(new Set);async function ae(e){let n=c.value?.agentId??s.service.agentId,r=c.value?.id??s.service.id;if(!n){f.add({severity:`warn`,summary:t(`serviceTerminal.noAgent`),detail:t(`serviceTerminal.noAgentDesc`),life:3e3});return}if(A.value.has(e.id)){try{await D.process.cancelShortcut.mutate({agentId:n,processId:r,shortcutId:e.id})}catch{}return}A.value=new Set([...A.value,e.id]);try{await D.process.executeShortcut.mutate({agentId:n,processId:r,shortcut:e})}catch(e){f.add({severity:`error`,summary:t(`serviceTerminal.shortcutFailed`),detail:e.message??t(`serviceTerminal.shortcutFailed`),life:5e3})}finally{let t=new Set(A.value);t.delete(e.id),A.value=t}}let oe=w(``),ce=w(new Set),le=R(()=>ce.value.size>0),fe=w(null),j=w([]),M=w(-1),pe=`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(`,`),me=w([]);function ve(e){let t=e.query.toLowerCase().trim();if(!t||!oe.value.trim()){me.value=[];return}let n=[...j.value.slice().reverse(),...pe],r=new Set;me.value=n.filter(e=>r.has(e)?!1:(r.add(e),e.toLowerCase().includes(t))).slice(0,10)}function ye(){try{let e=localStorage.getItem(Wt+s.service.id);e&&(j.value=JSON.parse(e))}catch{j.value=[]}}function be(){try{localStorage.setItem(Wt+s.service.id,JSON.stringify(j.value))}catch{}}function xe(e){j.value[j.value.length-1]!==e&&(j.value=[...j.value,e],j.value.length>Gt&&(j.value=j.value.slice(-Gt)),be())}async function I(){let e=c.value?.agentId??s.service.agentId,t=c.value?.id??s.service.id;if(e)try{await D.process.cancelAdHocCommand.mutate({agentId:e,processId:t})}catch{}}async function Se(){if(!oe.value.trim())return;let e=c.value?.agentId??s.service.agentId,n=c.value?.id??s.service.id;if(!e){f.add({severity:`warn`,summary:t(`serviceTerminal.noAgent`),detail:t(`serviceTerminal.noAgentDesc`),life:3e3});return}let r=je(),i=oe.value.trim();xe(i),oe.value=``,me.value=[],M.value=-1,ce.value=new Set([...ce.value,r]);try{await D.process.executeAdHocCommand.mutate({agentId:e,processId:n,command:i,commandId:r})}catch(e){f.add({severity:`error`,summary:t(`serviceTerminal.commandFailed`),detail:e.message??t(`serviceTerminal.commandFailed`),life:5e3})}finally{let e=new Set(ce.value);e.delete(r),ce.value=e,l(()=>{document.querySelector(`.service-terminal__input`)?.focus()})}}function Ce(e){if(e.key===`Enter`&&!e.shiftKey){e.preventDefault(),Se();return}if(e.key===`ArrowUp`){if(e.preventDefault(),j.value.length===0)return;M.value===-1?M.value=j.value.length-1:M.value>0&&M.value--,oe.value=j.value[M.value]||``}else if(e.key===`ArrowDown`){if(e.preventDefault(),M.value===-1)return;M.value<j.value.length-1?(M.value++,oe.value=j.value[M.value]||``):(M.value=-1,oe.value=``)}}function we(){if(p.value.length===0)return;let e=p.value.map(e=>`[${new Date(e.timestamp).toISOString()}] ${e.level.toUpperCase().padEnd(5)} ${e.message}`),t=new Blob([e.join(`
|
|
2
|
-
`)],{type:`text/plain`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`${s.service.name}-${new Date().toISOString().slice(0,19).replaceAll(`:`,`-`)}.log`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}let L=w(0),Te=0,Ee=null,De=null;N(c,e=>{if(!(e&&(e.state===`running`||e.state===`starting`))){Ee&&=(clearInterval(Ee),null),De=null,L.value=e?.uptime??0;return}let t=e.uptime??0;e.id!==De&&(Ee&&=(clearInterval(Ee),null),De=e.id,Te=e.startedAt?new Date(e.startedAt).getTime():Date.now()-t,L.value=Date.now()-Te,Ee=setInterval(()=>{L.value=Date.now()-Te},1e3))},{immediate:!0});let V=w(!0),Oe=w(null),ke=w(!1),Me=w(`all`),Ne=w(!1);function Pe(){Ne.value=!Ne.value}S(()=>{ye(),c.value&&h(),window.addEventListener(`keydown`,ee)}),de(()=>{g(),window.removeEventListener(`keydown`,ee),Ee&&clearInterval(Ee)});function Fe(e){let t=Math.floor(e/3600),n=Math.floor(e%3600/60),r=Math.floor(e%60);return`${t.toString().padStart(2,`0`)}:${n.toString().padStart(2,`0`)}:${r.toString().padStart(2,`0`)}`}function Ie(e){Oe.value=e,ke.value=!0}function Le(e){ke.value=!1,f.add({severity:`info`,summary:`Process`,detail:`Process ID: ${e}`,life:3e3})}return(l,u)=>(P(),b(`div`,{class:r([`service-terminal`,{"service-terminal--fullscreen":Ne.value}]),"data-testid":`service-terminal`},[Ne.value?(P(),o(Ae,{key:0,service:e.service,processes:e.processes},null,8,[`service`,`processes`])):i(``,!0),E(`div`,kt,[E(`div`,At,[v(F(n),{label:F(t)(`serviceTerminal.logs`),severity:V.value?`primary`:`secondary`,text:``,size:`small`,onClick:u[0]||=e=>V.value=!0},null,8,[`label`,`severity`]),v(F(ge),{modelValue:Me.value,"onUpdate:modelValue":u[1]||=e=>Me.value=e,options:ne.value,"option-label":`label`,"option-value":`value`,class:`service-terminal__pid-selector`},{value:B(e=>[e.value===`all`?(P(),b(`div`,jt,[u[5]||=E(`i`,{class:`pi pi-list`,style:{"margin-right":`0.5rem`}},null,-1),E(`span`,null,a(F(t)(`serviceTerminal.allProcesses`)),1),te.value>0?(P(),o(F(ue),{key:0,value:`${te.value} ${F(t)(`serviceTerminal.active`)}`,severity:`secondary`,class:`pid-badge`},null,8,[`value`])):i(``,!0)])):(P(),b(`div`,Mt,[ne.value.find(t=>t.value===e.value)?.isActive?(P(),b(`i`,Nt)):(P(),b(`i`,Pt)),E(`span`,null,`PID: `+a(e.value),1)]))]),option:B(e=>[E(`div`,Ft,[e.option.value===`all`?(P(),b(`i`,It)):e.option.isActive?(P(),b(`i`,{key:1,class:`pi pi-circle-fill pid-status-icon pid-status-icon--active`,title:F(t)(`serviceTerminal.running`)},null,8,Lt)):(P(),b(`i`,{key:2,class:`pi pi-circle-fill pid-status-icon pid-status-icon--stopped`,title:F(t)(`serviceTerminal.stopped`)},null,8,Rt)),E(`span`,null,a(e.option.label),1),e.option.badge?(P(),o(F(ue),{key:3,value:e.option.badge,severity:`secondary`,class:`pid-badge`},null,8,[`value`])):i(``,!0)])]),_:1},8,[`modelValue`,`options`])]),E(`div`,zt,[v(F(n),{icon:Ne.value?`pi pi-window-minimize`:`pi pi-window-maximize`,text:``,rounded:``,size:`small`,title:Ne.value?F(t)(`serviceTerminal.exitFullscreen`):F(t)(`serviceTerminal.fullscreen`),onClick:Pe},null,8,[`icon`,`title`]),v(F(n),{icon:`pi pi-download`,text:``,rounded:``,size:`small`,title:F(t)(`serviceTerminal.downloadLogs`),disabled:F(p).length===0,onClick:we},null,8,[`title`,`disabled`]),v(F(n),{icon:`pi pi-trash`,text:``,rounded:``,size:`small`,title:F(t)(`serviceTerminal.clearLogs`),disabled:F(p).length===0,onClick:re},null,8,[`title`,`disabled`])])]),E(`div`,Bt,[v(qe,{logs:k.value,loading:!1,"received-per-sec":F(_),"flushed-per-sec":F(y),"show-stats":T.value,"service-label":s.service.label||s.service.name,onLogClick:Ie},null,8,[`logs`,`received-per-sec`,`flushed-per-sec`,`show-stats`,`service-label`])]),ie.value.length>0?(P(),b(`div`,Vt,[(P(!0),b(z,null,he(ie.value,e=>(P(),o(F(n),{key:e.id,label:e.label||e.command,"data-shortcut-id":e.id,class:`shortcut-badge`,icon:A.value.has(e.id)?`pi pi-stop`:`pi pi-play`,size:`small`,outlined:!A.value.has(e.id),severity:A.value.has(e.id)?`danger`:void 0,onClick:t=>ae(e)},null,8,[`label`,`data-shortcut-id`,`icon`,`outlined`,`severity`,`onClick`]))),128))])):i(``,!0),E(`div`,Ht,[u[6]||=E(`span`,{class:`service-terminal__prompt`,"data-testid":`terminal-prompt`},`>`,-1),v(F(We),{ref_key:`adHocCommandInput`,ref:fe,modelValue:oe.value,"onUpdate:modelValue":u[2]||=e=>oe.value=e,suggestions:me.value,class:`service-terminal__autocomplete`,"input-class":`service-terminal__input`,placeholder:F(t)(`serviceTerminal.enterCommand`),"aria-label":F(t)(`serviceTerminal.enterCommand`),disabled:!(c.value?.agentId??s.service.agentId),"data-testid":`terminal-command-input`,onComplete:ve,onKeydown:Ce},null,8,[`modelValue`,`suggestions`,`placeholder`,`aria-label`,`disabled`]),v(F(n),{icon:le.value?`pi pi-stop`:`pi pi-play`,severity:le.value?`danger`:void 0,size:`small`,"data-testid":`terminal-run-btn`,disabled:!(c.value?.agentId??s.service.agentId)||!oe.value.trim()&&!le.value,onClick:u[3]||=e=>le.value?I():Se()},null,8,[`icon`,`severity`,`disabled`])]),E(`div`,Ut,[c.value?(P(),o(F(ue),{key:0,icon:`pi pi-server`,value:c.value.agentId.slice(0,8),severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):i(``,!0),e.service.cwd?(P(),o(F(ue),{key:1,icon:`pi pi-folder`,value:e.service.cwd,severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):i(``,!0),c.value&&(c.value.state===`running`||c.value.state===`starting`)?(P(),o(F(ue),{key:2,icon:`pi pi-clock`,value:Fe(L.value/1e3),severity:`secondary`,class:`service-terminal__pill`},null,8,[`value`])):i(``,!0)]),v(Ct,{visible:ke.value,"onUpdate:visible":u[4]||=e=>ke.value=e,log:Oe.value,onViewProcess:Le},null,8,[`visible`,`log`])],2))}}),[[`__scopeId`,`data-v-8ce2178d`]]),qt=5,Jt=M;function Yt(e){return e+Math.random()*e*.3}function Xt(e,t){let n=w(null),r=w(!1),i=w(!1),a=null,o=0,s=null;async function c(){if(!r.value){i.value=!0;try{n.value=await D.process.metrics.query({agentId:e.value,processId:t.value})}catch(e){console.error(`Failed to fetch initial metrics:`,m(e))}finally{i.value=!1}l()}}function l(){r.value=!0,a=D.process.onMetrics.subscribe({agentId:e.value,processId:t.value},{onData(e){o=0,y(`connected`),n.value=e},onError(e){console.error(`Metrics stream error:`,e),r.value=!1,a=null,u()}})}function u(){if(o>=qt){console.warn(`Metrics stream: max retries (${qt}) reached, giving up`),y(`disconnected`);return}y(`reconnecting`);let e=Yt(Jt*2**o);o++,s=setTimeout(()=>{s=null,l()},e)}function d(){s&&=(clearTimeout(s),null),a&&=(a.unsubscribe(),null),r.value=!1,o=0}return N([e,t],([e,t],[n,i])=>{(e!==n||t!==i)&&r.value&&(d(),c())}),de(()=>{d()}),{metrics:n,isStreaming:r,isLoading:i,start:c,stop:d}}var Zt={class:`service-metrics`,"data-testid":`service-metrics`},Qt={key:1,class:`service-metrics__skeleton`},$t={class:`metric-skeleton`},en={class:`metric-skeleton`},tn={key:2,class:`service-metrics__no-data`},nn={key:1,class:`service-metrics__no-process`},rn=p(c({__name:`ServiceMetrics`,props:{service:{},processes:{}},setup(e){let t=e,n=R(()=>t.processes.find(e=>e.state===`running`||e.state===`starting`)??t.processes[0]??null),r=R(()=>n.value?.agentId??``),i=R(()=>n.value?.id??``),{t:s}=se(),{metrics:c,isLoading:l,start:u,stop:d}=Xt(r,i);return S(()=>{n.value&&u()}),de(()=>{d()}),(e,t)=>(P(),b(`div`,Zt,[n.value?(P(),b(z,{key:0},[F(c)?(P(),o(Ke,{key:0,cpu:F(c).cpu,memory:F(c).memory},null,8,[`cpu`,`memory`])):F(l)?(P(),b(`div`,Qt,[E(`div`,$t,[v(F(Ge),{width:`4rem`,height:`0.75rem`,class:`mb-2`}),v(F(Ge),{width:`3rem`,height:`1.75rem`,class:`mb-3`}),v(F(Ge),{width:`100%`,height:`6px`,"border-radius":`4px`})]),E(`div`,en,[v(F(Ge),{width:`4rem`,height:`0.75rem`,class:`mb-2`}),v(F(Ge),{width:`3rem`,height:`1.75rem`,class:`mb-3`}),v(F(Ge),{width:`6rem`,height:`0.65rem`})])])):(P(),b(`div`,tn,a(F(s)(`serviceMetrics.noData`)),1))],64)):(P(),b(`div`,nn,[t[0]||=E(`i`,{class:`pi pi-info-circle`},null,-1),E(`span`,null,a(F(s)(`serviceMetrics.notRunning`)),1)]))]))}}),[[`__scopeId`,`data-v-94f5993b`]]),an=`runeya:debug`,on=w(localStorage.getItem(an)===`true`);function sn(){function e(){on.value=!on.value,localStorage.setItem(an,String(on.value))}return{isDebug:on,toggle:e}}var cn={class:`config-general`},ln={class:`config-card`},un={class:`config-card__header`},dn={class:`config-card`},fn={class:`config-card__header`},pn={class:`config-card__hint`},mn={class:`config-card`},hn={class:`config-card`},gn={class:`config-card__header`},_n={class:`config-card__hint`},vn={class:`config-card`},yn={class:`config-card__header`},bn={class:`config-card__hint`},xn={class:`config-card`},Sn={class:`config-card__header`},Cn={class:`config-card__hint`},wn={class:`config-card`},Tn={class:`config-card__header`},En={class:`config-card__hint`},Dn={class:`config-card`},On={class:`config-card__header`},kn={class:`config-card__hint`},An={class:`config-card`},jn={class:`config-card__header`},Mn={class:`config-card__hint`},Nn={class:`config-card__hint`},Pn={class:`config-card`},Fn={class:`config-card__header`},In={class:`config-card__hint`},Ln={class:`config-meta`},Rn={class:`config-card config-card--inline`},zn={class:`config-card__header`},Bn={class:`config-card config-card--inline`},Vn={class:`config-card__header`},Hn=150,Un=p(c({__name:`ServiceConfigGeneral`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let{t:r}=se(),i=ce(),o=te(),s=w([]);function c(e){let t=e.query.trim().toLowerCase(),n=new Set(y.value.groups);s.value=h.value.filter(e=>!n.has(e)&&(!t||e.toLowerCase().includes(t)))}function l(e,t){let n=t.trim();if(n){if(e===`ports`){let e=Number(n);if(!Number.isInteger(e)||e<1||e>65535||y.value.ports.includes(String(e)))return;y.value.ports=[...y.value.ports,String(e)]}else{if(y.value.groups.includes(n))return;y.value.groups=[...y.value.groups,n]}O()}}function u(e){let t=e.target;l(`groups`,t.value),t.value=``,s.value=[]}function d(e,t){let n=e.target;!n||typeof n.value!=`string`||!n.value.trim()||setTimeout(()=>{l(t,n.value),n.value=``},Hn)}let f=e,p=t,m=R(()=>o.projects.find(e=>e.serviceIds.includes(f.service.id)&&(e.orgId??null)===(f.service.orgId??null))??null),h=R(()=>{let e=m.value;if(!e)return[];let t=new Set;for(let n of e.serviceIds)for(let e of i.getById(n)?.groups??[])t.add(e);return[...t].sort((e,t)=>e.localeCompare(t))});function _(e){return Object.entries(e??{}).map(([e,t])=>({key:e,value:t}))}let y=w({name:f.service.name,cwd:f.service.cwd??``,ports:(f.service.ports??[]).map(String),groups:[...f.service.groups??[]],description:f.service.description??``,docsPath:f.service.docsPath??``,url:f.service.url??``,openapiUrl:f.service.openapiUrl??``,gitRemote:f.service.git?.remote??``,gitHome:f.service.git?.home??``,autoRestart:f.service.autoRestart,clearLogsOnStart:f.service.clearLogsOnStart??!1}),x=w(_(f.service.meta));N(()=>f.service,e=>{y.value={name:e.name,cwd:e.cwd??``,ports:(e.ports??[]).map(String),groups:[...e.groups??[]],description:e.description??``,docsPath:e.docsPath??``,url:e.url??``,openapiUrl:e.openapiUrl??``,gitRemote:e.git?.remote??``,gitHome:e.git?.home??``,autoRestart:e.autoRestart,clearLogsOnStart:e.clearLogsOnStart??!1},x.value=_(e.meta)});function S(){x.value=[...x.value,{key:``,value:``}]}function C(e){x.value=x.value.filter((t,n)=>n!==e)}function T(e,t,n){x.value=x.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function ee(){let e={};for(let{key:t,value:n}of x.value){let r=t.trim();r&&(e[r]=n)}return{name:y.value.name,cwd:y.value.cwd||null,ports:y.value.ports.map(Number).filter(e=>e>0&&e<=65535),groups:y.value.groups,description:y.value.description,docsPath:y.value.docsPath??``,url:y.value.url,openapiUrl:y.value.openapiUrl,git:y.value.gitRemote||y.value.gitHome?{remote:y.value.gitRemote||void 0,home:y.value.gitHome||void 0}:null,autoRestart:y.value.autoRestart,clearLogsOnStart:y.value.clearLogsOnStart,meta:Object.keys(e).length>0?e:null}}let D=null;function O(){D&&clearTimeout(D),D=setTimeout(()=>{p(`save`,ee()),D=null},150)}return(e,t)=>(P(),b(`div`,cn,[E(`div`,ln,[E(`div`,un,[t[14]||=E(`i`,{class:`pi pi-tag`},null,-1),E(`span`,null,a(F(r)(`serviceConfigGeneral.name`)),1)]),v(F(j),{modelValue:y.value.name,"onUpdate:modelValue":t[0]||=e=>y.value.name=e,class:`config-card__input`,onBlur:O,onKeydown:L(V(O,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),E(`div`,dn,[E(`div`,fn,[t[15]||=E(`i`,{class:`pi pi-folder`},null,-1),E(`span`,null,a(F(r)(`serviceConfigGeneral.workingDirectory`)),1)]),v(F(j),{modelValue:y.value.cwd,"onUpdate:modelValue":t[1]||=e=>y.value.cwd=e,class:`config-card__input`,placeholder:`.`,onBlur:O,onKeydown:L(V(O,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),E(`small`,pn,a(F(r)(`serviceConfigGeneral.cwdHint`)),1)]),E(`div`,mn,[t[16]||=E(`div`,{class:`config-card__header`},[E(`i`,{class:`pi pi-file-edit`}),E(`span`,null,`Dossier de documentation (wiki)`)],-1),v(F(j),{modelValue:y.value.docsPath,"onUpdate:modelValue":t[2]||=e=>y.value.docsPath=e,class:`config-card__input`,placeholder:`(défaut : même que cwd)`,onBlur:O,onKeydown:L(V(O,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),t[17]||=E(`small`,{class:`config-card__hint`},[g(` Chemin relatif au cwd du service (ex. `),E(`code`,null,`docs`),g(`) ou absolu. Si vide, utilise le cwd. `)],-1)]),E(`div`,hn,[E(`div`,gn,[t[18]||=E(`i`,{class:`pi pi-globe`},null,-1),E(`span`,null,a(F(r)(`serviceConfigGeneral.ports`)),1)]),v(F(We),{modelValue:y.value.ports,"onUpdate:modelValue":t[3]||=e=>y.value.ports=e,multiple:``,typeahead:!1,class:`config-card__input`,placeholder:F(r)(`serviceConfigGeneral.portsPlaceholder`),onChange:O,onBlur:t[4]||=e=>d(e,`ports`)},null,8,[`modelValue`,`placeholder`]),E(`small`,_n,a(F(r)(`serviceConfigGeneral.portsHint`)),1)]),E(`div`,vn,[E(`div`,yn,[t[19]||=E(`i`,{class:`pi pi-th-large`},null,-1),E(`span`,null,a(F(r)(`serviceConfigGeneral.groups`)),1)]),v(F(We),{modelValue:y.value.groups,"onUpdate:modelValue":t[5]||=e=>y.value.groups=e,multiple:``,suggestions:s.value,"complete-on-focus":!0,class:`config-card__input`,placeholder:F(r)(`serviceConfigGeneral.groupsPlaceholder`),onComplete:c,onChange:O,onKeydown:L(u,[`enter`]),onBlur:t[6]||=e=>d(e,`groups`)},null,8,[`modelValue`,`suggestions`,`placeholder`]),E(`small`,bn,a(F(r)(`serviceConfigGeneral.groupsHint`)),1)]),E(`div`,xn,[E(`div`,Sn,[t[20]||=E(`i`,{class:`pi pi-info-circle`},null,-1),E(`span`,null,a(F(r)(`serviceConfigGeneral.description`)),1)]),v(F(Ce),{modelValue:y.value.description,"onUpdate:modelValue":t[7]||=e=>y.value.description=e,class:`config-card__input`,rows:2,onBlur:O},null,8,[`modelValue`]),E(`small`,Cn,a(F(r)(`serviceConfigGeneral.descriptionHint`)),1)]),E(`div`,wn,[E(`div`,Tn,[t[21]||=E(`i`,{class:`pi pi-external-link`},null,-1),E(`span`,null,a(F(r)(`serviceConfigGeneral.url`)),1)]),v(F(j),{modelValue:y.value.url,"onUpdate:modelValue":t[8]||=e=>y.value.url=e,class:`config-card__input`,placeholder:`https://...`,onBlur:O,onKeydown:L(V(O,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),E(`small`,En,a(F(r)(`serviceConfigGeneral.urlHint`)),1)]),E(`div`,Dn,[E(`div`,On,[t[22]||=E(`i`,{class:`pi pi-book`},null,-1),E(`span`,null,a(F(r)(`serviceConfigGeneral.openapiUrl`)),1)]),v(F(j),{modelValue:y.value.openapiUrl,"onUpdate:modelValue":t[9]||=e=>y.value.openapiUrl=e,class:`config-card__input`,placeholder:`https://.../swagger.json`,onBlur:O,onKeydown:L(V(O,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),E(`small`,kn,a(F(r)(`serviceConfigGeneral.openapiUrlHint`)),1)]),E(`div`,An,[E(`div`,jn,[t[23]||=E(`i`,{class:`pi pi-github`},null,-1),E(`span`,null,a(F(r)(`serviceConfigGeneral.git`)),1)]),v(F(j),{modelValue:y.value.gitRemote,"onUpdate:modelValue":t[10]||=e=>y.value.gitRemote=e,class:`config-card__input`,placeholder:`git@github.com:org/repo.git`,onBlur:O,onKeydown:L(V(O,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),E(`small`,Mn,a(F(r)(`serviceConfigGeneral.gitRemoteHint`)),1),v(F(j),{modelValue:y.value.gitHome,"onUpdate:modelValue":t[11]||=e=>y.value.gitHome=e,class:`config-card__input`,style:{"margin-top":`0.5rem`},placeholder:`https://github.com/org/repo`,onBlur:O,onKeydown:L(V(O,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),E(`small`,Nn,a(F(r)(`serviceConfigGeneral.gitHomeHint`)),1)]),E(`div`,Pn,[E(`div`,Fn,[t[24]||=E(`i`,{class:`pi pi-hashtag`},null,-1),E(`span`,null,a(F(r)(`serviceConfigGeneral.meta`)),1)]),E(`small`,In,a(F(r)(`serviceConfigGeneral.metaHint`)),1),E(`div`,Ln,[(P(!0),b(z,null,he(x.value,(e,t)=>(P(),b(`div`,{key:t,class:`config-meta__row`},[v(F(j),{"model-value":e.key,placeholder:F(r)(`serviceConfigGeneral.metaKeyPlaceholder`),class:`config-meta__input`,"onUpdate:modelValue":e=>T(t,`key`,e),onBlur:O,onKeydown:L(V(O,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),v(F(j),{"model-value":e.value,placeholder:F(r)(`serviceConfigGeneral.metaValuePlaceholder`),class:`config-meta__input config-meta__input--wide`,"onUpdate:modelValue":e=>T(t,`value`,e),onBlur:O,onKeydown:L(V(O,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),v(F(n),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:()=>{C(t),O()}},null,8,[`onClick`])]))),128)),v(F(n),{label:F(r)(`serviceConfigGeneral.addEntry`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,class:`config-meta__add`,onClick:S},null,8,[`label`])])]),E(`div`,Rn,[E(`div`,zn,[t[25]||=E(`i`,{class:`pi pi-refresh`},null,-1),E(`span`,null,a(F(r)(`serviceConfigGeneral.autoRestart`)),1)]),v(F(Ie),{modelValue:y.value.autoRestart,"onUpdate:modelValue":t[12]||=e=>y.value.autoRestart=e,onChange:O},null,8,[`modelValue`])]),E(`div`,Bn,[E(`div`,Vn,[t[26]||=E(`i`,{class:`pi pi-trash`},null,-1),E(`span`,null,a(F(r)(`serviceConfigGeneral.clearLogs`)),1)]),v(F(Ie),{modelValue:y.value.clearLogsOnStart,"onUpdate:modelValue":t[13]||=e=>y.value.clearLogsOnStart=e,onChange:O},null,8,[`modelValue`])])]))}}),[[`__scopeId`,`data-v-6fef6778`]]),Wn={class:`docker-config`},Gn={class:`docker-config__section`},Kn={for:`docker-mode-image`,class:`docker-config__section-title`},qn={class:`docker-config__mode-toggle`},Jn={class:`docker-config__mode-option`},Yn={class:`docker-config__mode-option`},Xn={key:0,class:`docker-config__section`},Zn={for:`docker-image`,class:`docker-config__label`},Qn={class:`docker-config__section`},$n={class:`docker-config__section`},er={for:`docker-build-context`,class:`docker-config__label`},tr={class:`docker-config__section`},nr={for:`docker-add-build-arg`,class:`docker-config__label`},rr={class:`docker-config__kv-list`},ir={class:`docker-config__section`},ar={for:`docker-target-stage`,class:`docker-config__label`},or={class:`docker-config__section`},sr={for:`docker-user`,class:`docker-config__section-title`},cr={class:`docker-config__section`},lr={for:`docker-user`,class:`docker-config__label`},ur={class:`docker-config__section`},dr={for:`docker-network-mode`,class:`docker-config__label`},fr={key:2,class:`docker-config__section`},pr={for:`docker-add-port`,class:`docker-config__label`},mr={class:`docker-config__list`},hr={class:`docker-config__section`},gr={for:`docker-add-volume`,class:`docker-config__label`},_r={class:`docker-config__checkbox-row`},vr={for:`mountRootpath`,class:`docker-config__checkbox-label`},yr={class:`docker-config__list`},br={class:`docker-config__section`},xr={class:`docker-config__checkbox-row`},Sr={for:`useNativeCommand`,class:`docker-config__checkbox-label`},Cr={key:0,class:`docker-config__shell-row`},wr={for:`docker-native-shell`,class:`docker-config__label`},Tr={class:`docker-config__hint`},Er={key:1,class:`docker-config__mode-toggle docker-config__mode-toggle--indented`},Dr={class:`docker-config__mode-option`},Or={class:`docker-config__mode-option`},kr={class:`docker-config__section`},Ar={for:`docker-entrypoint`,class:`docker-config__label`},jr={class:`docker-config__section`},Mr={for:`docker-command`,class:`docker-config__label`},Nr={class:`docker-config__section`},Pr={for:`docker-add-bootstrap`,class:`docker-config__section-title`},Fr={class:`docker-config__hint-inline`},Ir={class:`docker-config__bootstrap-row`},Lr={class:`docker-config__bootstrap-field`},Rr=[`for`],zr={class:`docker-config__bootstrap-field`},Br=[`for`],Vr={class:`docker-config__bootstrap-field docker-config__bootstrap-field--wide`},Hr=[`for`],Ur={class:`docker-config__bootstrap-field`},Wr=[`for`],Gr={class:`docker-config__bootstrap-actions`},Kr={class:`docker-config__section`},qr=p(c({__name:`ServiceConfigDocker`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let{t:r}=se(),o=e,c=t,l=o.service.dockerConfig??{},u=w(l.dockerfile?`build`:`image`),d=w(l.image??``),f=w(l.dockerfile??``),p=w(l.buildContext??``),m=w(Object.entries(l.buildArgs??{}).map(([e,t])=>({key:e,value:t}))),h=w(l.targetStage??``),_=w(l.networkMode??`host`),y=w([...l.ports??[]]),x=w([...l.volumes??[]]),S=w(l.mountRootpath??!1),C=w(l.entrypoint??``),T=w(l.command??``),D=w(l.user??``),O=w(l.useNativeCommand??!1),k=w(l.nativeCommandMode??`isolated`),te=w(l.nativeShell??`sh`),ne=[{label:`sh (POSIX)`,value:`sh`},{label:`bash`,value:`bash`},{label:`zsh`,value:`zsh`},{label:`ash (Alpine)`,value:`ash`}],re=w([...l.bootstrapCommands??[]]),ie=w(!1),ae=[{label:`Host (--network host)`,value:`host`},{label:`Bridge`,value:`bridge`}];function oe(){m.value=[...m.value,{key:``,value:``}]}function ce(e){m.value=m.value.filter((t,n)=>n!==e)}function le(e,t,n){m.value=m.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function ue(){y.value=[...y.value,``]}function de(e){y.value=y.value.filter((t,n)=>n!==e)}function fe(e,t){y.value=y.value.map((n,r)=>r===e?t:n)}function M(){x.value=[...x.value,``]}function pe(e){x.value=x.value.filter((t,n)=>n!==e)}function N(e,t){x.value=x.value.map((n,r)=>r===e?t:n)}function me(){re.value=[...re.value,{id:je(),label:`Bootstrap`,entrypoint:`/bin/sh`,command:`-c ""`,user:void 0}]}function _e(e){re.value=re.value.filter((t,n)=>n!==e)}function ve(e,t,n){re.value=re.value.map((r,i)=>i===e?{...r,[t]:n===``?void 0:n}:r)}function ye(e,t){let n=[...re.value],r=e+t;r<0||r>=n.length||([n[e],n[r]]=[n[r],n[e]],re.value=n)}let xe=null;function I(){xe&&clearTimeout(xe),xe=setTimeout(()=>{let e={};for(let{key:t,value:n}of m.value)t.trim()&&(e[t.trim()]=n);c(`save`,{image:u.value===`image`&&d.value||void 0,dockerfile:u.value===`build`&&f.value||void 0,buildContext:p.value||void 0,buildArgs:e,targetStage:h.value||void 0,networkMode:_.value,ports:y.value.filter(Boolean),volumes:x.value.filter(Boolean),mountRootpath:S.value,entrypoint:C.value||void 0,command:T.value||void 0,user:D.value||void 0,useNativeCommand:O.value,nativeCommandMode:k.value,nativeShell:te.value,bootstrapCommands:re.value}),xe=null},150)}function Se(e){_e(e),I()}function Ce(e,t){ye(e,t),I()}function we(e){ce(e),I()}function Te(e){de(e),I()}function R(e){pe(e),I()}return(e,t)=>(P(),b(`div`,Wn,[E(`div`,Gn,[E(`label`,Kn,a(F(r)(`serviceConfigDocker.imageSource`)),1),E(`div`,qn,[E(`label`,Jn,[A(E(`input`,{id:`docker-mode-image`,"onUpdate:modelValue":t[0]||=e=>u.value=e,type:`radio`,value:`image`,class:`docker-config__radio`,onChange:I},null,544),[[be,u.value]]),g(` `+a(F(r)(`serviceConfigDocker.pullImage`)),1)]),E(`label`,Yn,[A(E(`input`,{"onUpdate:modelValue":t[1]||=e=>u.value=e,type:`radio`,value:`build`,class:`docker-config__radio`,onChange:I},null,544),[[be,u.value]]),g(` `+a(F(r)(`serviceConfigDocker.buildDockerfile`)),1)])])]),u.value===`image`?(P(),b(`div`,Xn,[E(`label`,Zn,a(F(r)(`serviceConfigDocker.image`)),1),v(F(j),{id:`docker-image`,modelValue:d.value,"onUpdate:modelValue":t[2]||=e=>d.value=e,placeholder:F(r)(`serviceConfigDocker.imagePlaceholder`),class:`docker-config__input`,onBlur:I,onKeydown:L(V(I,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])):i(``,!0),u.value===`build`?(P(),b(z,{key:1},[E(`div`,Qn,[t[18]||=E(`label`,{for:`docker-dockerfile-btn`,class:`docker-config__label`},`Dockerfile`,-1),v(F(n),{id:`docker-dockerfile-btn`,label:F(r)(`serviceConfigDocker.editDockerfile`),icon:`pi pi-file-edit`,severity:`secondary`,outlined:``,size:`small`,onClick:t[3]||=e=>ie.value=!0},null,8,[`label`]),v(F(ee),{visible:ie.value,"onUpdate:visible":t[6]||=e=>ie.value=e,header:F(r)(`serviceConfigDocker.editDockerfile`),modal:``,style:{width:`800px`}},{footer:B(()=>[v(F(n),{label:F(r)(`serviceConfigDocker.closeDockerfile`),icon:`pi pi-times`,onClick:t[5]||=()=>{ie.value=!1,I()}},null,8,[`label`])]),default:B(()=>[v(s,{modelValue:f.value,"onUpdate:modelValue":t[4]||=e=>f.value=e,language:`dockerfile`,style:{height:`400px`}},null,8,[`modelValue`])]),_:1},8,[`visible`,`header`])]),E(`div`,$n,[E(`label`,er,a(F(r)(`serviceConfigDocker.buildContext`)),1),v(F(j),{id:`docker-build-context`,modelValue:p.value,"onUpdate:modelValue":t[7]||=e=>p.value=e,placeholder:`.`,class:`docker-config__input`,onBlur:I,onKeydown:L(V(I,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),E(`div`,tr,[E(`label`,nr,a(F(r)(`serviceConfigDocker.buildArgs`)),1),E(`div`,rr,[(P(!0),b(z,null,he(m.value,(e,t)=>(P(),b(`div`,{key:t,class:`docker-config__kv-row`},[v(F(j),{"model-value":e.key,placeholder:F(r)(`serviceConfigDocker.argNamePlaceholder`),class:`docker-config__kv-input`,"onUpdate:modelValue":e=>le(t,`key`,e),onBlur:I,onKeydown:L(V(I,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),v(F(j),{"model-value":e.value,placeholder:F(r)(`serviceConfigDocker.argValuePlaceholder`),class:`docker-config__kv-input`,"onUpdate:modelValue":e=>le(t,`value`,e),onBlur:I,onKeydown:L(V(I,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),v(F(n),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>we(t)},null,8,[`onClick`])]))),128)),v(F(n),{id:`docker-add-build-arg`,label:F(r)(`serviceConfigDocker.addBuildArg`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:oe},null,8,[`label`])])]),E(`div`,ir,[E(`label`,ar,a(F(r)(`serviceConfigDocker.targetStage`)),1),v(F(j),{id:`docker-target-stage`,modelValue:h.value,"onUpdate:modelValue":t[8]||=e=>h.value=e,placeholder:F(r)(`serviceConfigDocker.targetStagePlaceholder`),class:`docker-config__input`,onBlur:I,onKeydown:L(V(I,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])],64)):i(``,!0),v(F(Je)),E(`div`,or,[E(`label`,sr,a(F(r)(`serviceConfigDocker.runtimeConfig`)),1)]),E(`div`,cr,[E(`label`,lr,a(F(r)(`serviceConfigDocker.userGroup`)),1),v(F(j),{id:`docker-user`,modelValue:D.value,"onUpdate:modelValue":t[9]||=e=>D.value=e,placeholder:F(r)(`serviceConfigDocker.userGroupHint`),class:`docker-config__input`,onBlur:I,onKeydown:L(V(I,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),E(`div`,ur,[E(`label`,dr,a(F(r)(`serviceConfigDocker.networkMode`)),1),v(F(ge),{"input-id":`docker-network-mode`,modelValue:_.value,"onUpdate:modelValue":t[10]||=e=>_.value=e,options:ae,"option-label":`label`,"option-value":`value`,class:`docker-config__select`,onChange:I},null,8,[`modelValue`])]),_.value===`bridge`?(P(),b(`div`,fr,[E(`label`,pr,a(F(r)(`serviceConfigDocker.portMappings`)),1),E(`div`,mr,[(P(!0),b(z,null,he(y.value,(e,t)=>(P(),b(`div`,{key:t,class:`docker-config__list-row`},[v(F(j),{"model-value":e,placeholder:F(r)(`serviceConfigDocker.portPlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>fe(t,e),onBlur:I,onKeydown:L(V(I,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),v(F(n),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>Te(t)},null,8,[`onClick`])]))),128)),v(F(n),{id:`docker-add-port`,label:F(r)(`serviceConfigDocker.addPort`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:ue},null,8,[`label`])])])):i(``,!0),E(`div`,hr,[E(`label`,gr,a(F(r)(`serviceConfigDocker.volumes`)),1),E(`div`,_r,[v(F(Fe),{modelValue:S.value,"onUpdate:modelValue":t[11]||=e=>S.value=e,binary:!0,"input-id":`mountRootpath`,onChange:I},null,8,[`modelValue`]),E(`label`,vr,a(F(r)(`serviceConfigDocker.autoMount`)),1)]),E(`div`,yr,[(P(!0),b(z,null,he(x.value,(e,t)=>(P(),b(`div`,{key:t,class:`docker-config__list-row`},[v(F(j),{"model-value":e,placeholder:F(r)(`serviceConfigDocker.volumePlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>N(t,e),onBlur:I,onKeydown:L(V(I,[`prevent`]),[`enter`])},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`]),v(F(n),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>R(t)},null,8,[`onClick`])]))),128)),v(F(n),{id:`docker-add-volume`,label:F(r)(`serviceConfigDocker.addVolume`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:M},null,8,[`label`])])]),v(F(Je)),E(`div`,br,[E(`div`,xr,[v(F(Fe),{modelValue:O.value,"onUpdate:modelValue":t[12]||=e=>O.value=e,binary:!0,"input-id":`useNativeCommand`,onChange:I},null,8,[`modelValue`]),E(`label`,Sr,a(F(r)(`serviceConfigDocker.runNative`)),1)]),t[21]||=E(`span`,{class:`docker-config__hint`},` When enabled, the service command is executed directly inside the container (ignores CMD override below). `,-1),O.value?(P(),b(`div`,Cr,[E(`label`,wr,a(F(r)(`serviceConfigDocker.shell`)),1),v(F(ge),{"input-id":`docker-native-shell`,modelValue:te.value,"onUpdate:modelValue":t[13]||=e=>te.value=e,options:ne,"option-label":`label`,"option-value":`value`,class:`docker-config__select docker-config__select--small`,editable:``,placeholder:F(r)(`serviceConfigDocker.shellPlaceholder`),onChange:I},null,8,[`modelValue`,`placeholder`]),E(`span`,Tr,[g(a(F(r)(`serviceConfigDocker.shellHint`))+` (`,1),t[19]||=E(`code`,null,`shell -c '...'`,-1),t[20]||=g(`)`,-1)])])):i(``,!0),O.value?(P(),b(`div`,Er,[E(`label`,Dr,[A(E(`input`,{"onUpdate:modelValue":t[14]||=e=>k.value=e,type:`radio`,value:`isolated`,class:`docker-config__radio`,onChange:I},null,544),[[be,k.value]]),g(` `+a(F(r)(`serviceConfigDocker.isolated`)),1)]),E(`label`,Or,[A(E(`input`,{"onUpdate:modelValue":t[15]||=e=>k.value=e,type:`radio`,value:`shared`,class:`docker-config__radio`,onChange:I},null,544),[[be,k.value]]),g(` `+a(F(r)(`serviceConfigDocker.shared`)),1)])])):i(``,!0)]),O.value?i(``,!0):(P(),b(z,{key:3},[t[22]||=E(`div`,{class:`docker-config__section`},[E(`label`,{for:`docker-entrypoint`,class:`docker-config__section-title`},`Override`)],-1),E(`div`,kr,[E(`label`,Ar,a(F(r)(`serviceConfigDocker.entrypoint`)),1),v(F(j),{id:`docker-entrypoint`,modelValue:C.value,"onUpdate:modelValue":t[16]||=e=>C.value=e,placeholder:F(r)(`serviceConfigDocker.entrypointPlaceholder`),class:`docker-config__input`,onBlur:I,onKeydown:L(V(I,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),E(`div`,jr,[E(`label`,Mr,a(F(r)(`serviceConfigDocker.cmdOverride`)),1),v(F(j),{id:`docker-command`,modelValue:T.value,"onUpdate:modelValue":t[17]||=e=>T.value=e,placeholder:F(r)(`serviceConfigDocker.cmdPlaceholder`),class:`docker-config__input`,onBlur:I,onKeydown:L(V(I,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])])],64)),v(F(Je)),E(`div`,Nr,[E(`label`,Pr,[g(a(F(r)(`serviceConfigDocker.bootstrapCommands`))+` `,1),E(`span`,Fr,` — `+a(F(r)(`serviceConfigDocker.bootstrapCommandsHint`)),1)])]),(P(!0),b(z,null,he(re.value,(e,t)=>(P(),b(`div`,{key:e.id,class:`docker-config__bootstrap-card`},[E(`div`,Ir,[E(`div`,Lr,[E(`label`,{class:`docker-config__label`,for:`docker-bootstrap-label-${t}`},`Label`,8,Rr),v(F(j),{id:`docker-bootstrap-label-${t}`,"model-value":e.label,placeholder:F(r)(`serviceConfigDocker.bootstrapLabelPlaceholder`),class:`docker-config__input`,"onUpdate:modelValue":e=>ve(t,`label`,e),onBlur:I,onKeydown:L(V(I,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),E(`div`,zr,[E(`label`,{class:`docker-config__label`,for:`docker-bootstrap-entrypoint-${t}`},`Entrypoint`,8,Br),v(F(j),{id:`docker-bootstrap-entrypoint-${t}`,"model-value":e.entrypoint??``,placeholder:`/bin/sh`,class:`docker-config__input`,"onUpdate:modelValue":e=>ve(t,`entrypoint`,e),onBlur:I,onKeydown:L(V(I,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),E(`div`,Vr,[E(`label`,{class:`docker-config__label`,for:`docker-bootstrap-command-${t}`},`Command`,8,Hr),v(F(j),{id:`docker-bootstrap-command-${t}`,"model-value":e.command,placeholder:`-c "npm install"`,class:`docker-config__input`,"onUpdate:modelValue":e=>ve(t,`command`,e),onBlur:I,onKeydown:L(V(I,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),E(`div`,Ur,[E(`label`,{class:`docker-config__label`,for:`docker-bootstrap-user-${t}`},`User:Group`,8,Wr),v(F(j),{id:`docker-bootstrap-user-${t}`,"model-value":e.user??``,placeholder:F(r)(`serviceConfigDocker.userGroupHint`),class:`docker-config__input`,"onUpdate:modelValue":e=>ve(t,`user`,e),onBlur:I,onKeydown:L(V(I,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),E(`div`,Gr,[v(F(n),{icon:`pi pi-arrow-up`,text:``,rounded:``,size:`small`,disabled:t===0,onClick:e=>Ce(t,-1)},null,8,[`disabled`,`onClick`]),v(F(n),{icon:`pi pi-arrow-down`,text:``,rounded:``,size:`small`,disabled:t===re.value.length-1,onClick:e=>Ce(t,1)},null,8,[`disabled`,`onClick`]),v(F(n),{icon:`pi pi-times`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>Se(t)},null,8,[`onClick`])])])]))),128)),E(`div`,Kr,[v(F(n),{id:`docker-add-bootstrap`,label:F(r)(`serviceConfigDocker.addBootstrapCommand`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:me},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-91c13548`]]),Jr={class:`config-commands`},Yr={class:`config-commands__execution`},Xr={class:`config-card config-card--execution`},Zr={class:`config-card__header`},Qr={class:`config-card__hint`},$r={class:`config-card config-card--execution`},ei={class:`config-card__header`},ti={key:0,class:`runner-option`},ni={class:`runner-option`},ri={class:`config-commands__tab-content`},ii={key:0,class:`config-commands__empty`},ai={class:`config-commands__row`},oi={class:`config-commands__field`},si=[`for`],ci={class:`config-commands__field config-commands__field--wide`},li=[`for`],ui={class:`config-commands__field`},di=[`for`],fi={class:`config-commands__actions-cell`},pi={class:`config-commands__footer`},mi={class:`config-commands__tab-content`},hi=`__inherit__`,gi=p(c({__name:`ServiceConfigCommands`,props:{service:{}},emits:[`save`,`dockerSave`],setup(e,{emit:t}){let o=e,s=t,{t:c}=se(),l=ie(),u=null,d=w({agentId:o.service.agentId??hi,runner:o.service.runner});N(()=>o.service,e=>{d.value={agentId:e.agentId??hi,runner:e.runner}});let f=R(()=>[{label:c(`serviceConfigCommands.native`),value:`native`,icon:`pi pi-desktop`},{label:c(`serviceConfigCommands.docker`),value:`docker`,icon:`pi pi-box`}]),p=R(()=>f.value.find(e=>e.value===d.value.runner)?.icon??`pi pi-box`),m=R(()=>[{label:c(`serviceForm.agentInherit`),value:hi},...l.agents.map(e=>({label:`${e.config.name} (${e.status.connected?c(`serviceConfigCommands.online`):c(`serviceConfigCommands.offline`)})`,value:e.config.id}))]),h=w([...o.service.commands??[]]);N(()=>o.service,e=>{u||(h.value=[...e.commands??[]])});function g(){h.value=[...h.value,{id:je(),label:``,command:``,cwd:void 0,shell:!0}]}function _(e){h.value=h.value.filter((t,n)=>n!==e)}function y(e,t,n){h.value=h.value.map((r,i)=>i===e?{...r,[t]:n===``?void 0:n}:r)}function x(){u&&clearTimeout(u),u=setTimeout(()=>{s(`save`,{agentId:d.value.agentId===hi?null:d.value.agentId||null,runner:d.value.runner,commands:h.value}),u=null},150)}function S(e){s(`dockerSave`,e)}function C(e){_(e),x()}return(t,o)=>(P(),b(`div`,Jr,[E(`div`,Yr,[E(`div`,Xr,[E(`div`,Zr,[o[2]||=E(`i`,{class:`pi pi-server`},null,-1),E(`span`,null,a(F(c)(`serviceConfigCommands.agent`)),1)]),v(F(ge),{modelValue:d.value.agentId,"onUpdate:modelValue":o[0]||=e=>d.value.agentId=e,options:m.value,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:x},null,8,[`modelValue`,`options`]),E(`small`,Qr,a(F(c)(`serviceForm.agentHintEdit`)),1)]),E(`div`,$r,[E(`div`,ei,[E(`i`,{class:r(p.value)},null,2),E(`span`,null,a(F(c)(`serviceConfigCommands.runner`)),1)]),v(F(ge),{modelValue:d.value.runner,"onUpdate:modelValue":o[1]||=e=>d.value.runner=e,options:f.value,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:x},{value:B(e=>[e.value?(P(),b(`div`,ti,[E(`i`,{class:r(f.value.find(t=>t.value===e.value)?.icon)},null,2),E(`span`,null,a(f.value.find(t=>t.value===e.value)?.label),1)])):i(``,!0)]),option:B(e=>[E(`div`,ni,[E(`i`,{class:r(e.option.icon)},null,2),E(`span`,null,a(e.option.label),1)])]),_:1},8,[`modelValue`,`options`])])]),v(F(ze),{value:`0`},{default:B(()=>[v(F(Le),null,{default:B(()=>[v(F(Be),{value:`0`},{default:B(()=>[o[3]||=E(`i`,{class:`pi pi-desktop tab-icon`},null,-1),E(`span`,null,a(F(c)(`serviceConfigCommands.native`)),1)]),_:1}),v(F(Be),{value:`1`},{default:B(()=>[o[4]||=E(`i`,{class:`pi pi-box tab-icon`},null,-1),E(`span`,null,a(F(c)(`serviceConfigCommands.docker`)),1)]),_:1})]),_:1}),v(F(Re),null,{default:B(()=>[v(F(Ve),{value:`0`},{default:B(()=>[E(`div`,ri,[h.value.length===0?(P(),b(`div`,ii,[E(`p`,null,a(F(c)(`serviceConfigCommands.noCommands`)),1)])):i(``,!0),(P(!0),b(z,null,he(h.value,(e,t)=>(P(),b(`div`,{key:e.id,class:`config-card`},[E(`div`,ai,[E(`div`,oi,[E(`label`,{class:`config-commands__label`,for:`cmd-label-${t}`},a(F(c)(`serviceConfigCommands.labelPlaceholder`)),9,si),v(F(j),{id:`cmd-label-${t}`,"model-value":e.label,placeholder:F(c)(`serviceConfigCommands.labelPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>y(t,`label`,e),onBlur:x,onKeydown:L(V(x,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),E(`div`,ci,[E(`label`,{class:`config-commands__label`,for:`cmd-command-${t}`},a(F(c)(`serviceConfigCommands.commandPlaceholder`)),9,li),v(F(j),{id:`cmd-command-${t}`,"model-value":e.command,placeholder:`e.g. npm start`,class:`config-card__input`,"onUpdate:modelValue":e=>y(t,`command`,e),onBlur:x,onKeydown:L(V(x,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`onUpdate:modelValue`,`onKeydown`])]),E(`div`,ui,[E(`label`,{class:`config-commands__label`,for:`cmd-cwd-${t}`},`Working Dir (optional)`,8,di),v(F(j),{id:`cmd-cwd-${t}`,"model-value":e.cwd??``,placeholder:F(c)(`serviceConfigCommands.cwdPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>y(t,`cwd`,e),onBlur:x,onKeydown:L(V(x,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),E(`div`,fi,[v(F(n),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>C(t)},null,8,[`onClick`])])])]))),128)),E(`div`,pi,[v(F(n),{label:F(c)(`serviceConfigCommands.addCommand`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,onClick:g},null,8,[`label`])])])]),_:1}),v(F(Ve),{value:`1`},{default:B(()=>[E(`div`,mi,[v(qr,{service:e.service,onSave:S},null,8,[`service`])])]),_:1})]),_:1})]),_:1})]))}}),[[`__scopeId`,`data-v-df297a71`]]),_i={class:`config-env`,"data-testid":`config-env`},vi={key:0,class:`active-env-display`},yi={class:`active-env-label`},bi={key:1,class:`inheritance-toggle`},xi={class:`inheritance-label`},Si={class:`inherited-header`},Ci={class:`inherited-row-key`},wi={class:`preview-key`},Ti={class:`value-row`},Ei=[`onClick`],Di=[`onClick`],Oi={key:0,class:`secret-mask`},ki={key:1,class:`preview-value`},Ai={class:`config-env__header`},ji={class:`config-env__title`},Mi={class:`config-env__actions`},Ni={key:3,class:`variables-view`},Pi={key:0},Fi={key:1,class:`empty-state`},Ii={class:`inherited-header`},Li={class:`passthrough-info`},Ri={class:`preview-key`},zi={key:0,class:`preview-value`},Bi={key:1,class:`passthrough-undefined`},Vi={key:4,class:`empty-state`},Hi={key:5,class:`empty-state`},Ui={class:`editor-container`},Wi={key:0,class:`editor-env-banner`},Gi={class:`editor-env-text`},Ki={class:`editor-section`,"data-testid":`variables-editor`},qi={key:0,class:`loading-container`},Ji={key:1,class:`preview-container`},Yi={class:`preview-info`},Xi={class:`preview-key`},Zi={class:`value-row`},Qi=[`onClick`],$i=[`onClick`],ea={key:0,class:`secret-mask`},ta={key:1,class:`preview-value`},na=p(c({__name:`ServiceConfigEnv`,props:{service:{},projectId:{},activeEnvironmentId:{}},setup(t){let s=t,{t:c}=se(),l=_e(),d=I(),f=u(),p=te(),m=re(),h=ie(),_=le(),y=ce(),{urlHost:C}=ke(()=>L.value?.config.id),T=R(()=>p.getByRef({id:s.projectId,orgId:m.activeOrgId})?.activeEnvironmentId??null),O=R(()=>f.findServiceEnvironment(s.service.id,T.value??``)),k=w(!1),ne=w(!1),A=w(!1),de=w(!1),j=w(null),M=w(null),me=w([]),he=w({}),ge=w(new Set);function ve(e){let t=new Set(ge.value);t.has(e)?t.delete(e):t.add(e),ge.value=t}let be=w(null);function xe(e,t){navigator.clipboard.writeText(t),be.value=e,setTimeout(()=>{be.value===e&&(be.value=null)},1500)}let Ce=w({}),we=w(!1),L=R(()=>{let e=s.service.agentId??ze.value?.agentId;return e?h.getById(e):h.agents.find(e=>e.isLocal)??null}),Ee=R(()=>{let e={};for(let t of ye)e[t.name]=``;Object.assign(e,Te(s.service.ports)),e[`service.NAME`]=s.service.name,e[`service.ID`]=s.service.id,Object.assign(e,oe(s.service,C.value)),s.service.url&&(e[`service.BASE_URL`]=s.service.url);let t=L.value?.status;t?.lanIp&&(e[`agent.HOST_LAN`]=t.lanIp),t?.os&&(e[`agent.OS`]=t.os),t?.home&&(e[`agent.HOME`]=t.home),L.value&&(e[`agent.NAME`]=L.value.config.name);let n=z(t?.cwd,t?.home);n&&(e[`service.CWD`]=n);let r=p.getByRef({id:s.projectId,orgId:m.activeOrgId});r&&(e[`project.NAME`]=r.name);let i=T.value?f.getById(T.value):null;i&&(e[`runeya.ENV_NAME`]=i.name);for(let t of De.value)Object.assign(e,pe({name:t.name,id:t.id,ports:t.ports,localUrls:t.localUrls,url:t.url},C.value));return e});function z(e,t){let n=(s.service.resolvedCwd??s.service.cwd??``).trim();return n?n.startsWith(`~/`)&&t?t+n.slice(1):n.includes(`$`)?null:n.startsWith(`/`)||/^[A-Za-z]:[\\/]/.test(n)?n:null:e??null}let De=R(()=>{let e=p.getByRef({id:s.projectId,orgId:m.activeOrgId});if(!e)return[];let t=e.serviceIds.filter(e=>e!==s.service.id).map(e=>y.getById(e)).filter(e=>!!e),n=new Map;for(let e of t){let t=Oe(e.name);t&&n.set(t,(n.get(t)??0)+1)}return t.filter(e=>(n.get(Oe(e.name))??0)===1)}),Ae=R(()=>L.value?.config.passthroughEnv??[]),je=R(()=>Ae.value.length>0);async function Pe(){if(!s.service.agentId||!je.value){Ce.value={};return}we.value=!0;try{Ce.value=await D.agent.getPassthroughEnv.query({id:s.service.agentId})}catch{Ce.value={}}finally{we.value=!1}}let Fe=R(()=>Ae.value.map(e=>({name:e,value:Ce.value[e]??null}))),Le=R(()=>!O.value||!T.value?!0:O.value.parentIds?.includes(T.value)??!0);async function Re(e){if(!(!O.value||!T.value)){de.value=!0;try{await f.update({id:O.value.id,parentIds:e?[T.value]:[]}),await qe()}catch(e){l.add({severity:`error`,summary:c(`serviceConfigEnv.error`),detail:e.message??c(`serviceConfigEnv.failedToUpdateInheritance`),life:5e3})}finally{de.value=!1}}}let ze=R(()=>{let e=p.getByRef({id:s.projectId,orgId:m.activeOrgId});return e?.activeEnvironmentId?f.getById(e.activeEnvironmentId):null});function Be(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 Ve=R(()=>j.value?Be(j.value.variables):[]),We=R(()=>{if(!O.value||!j.value?.sources)return Ve.value;let e=O.value.id;return Ve.value.filter(t=>j.value.sources[t.variableId]?.environmentId===e)}),Ge=R(()=>{if(!O.value||!j.value?.sources)return[];let e=O.value.id;return Ve.value.filter(t=>j.value.sources[t.variableId]?.environmentId!==e)}),Ke=R(()=>{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}:{},...n.overriddenBy?{overriddenBy:n.overriddenBy}:{}};return e});async function qe(){if(O.value)try{j.value=await f.resolve(O.value.id)}catch(e){console.error(`Failed to resolve environment:`,e)}}async function Je(){if(T.value)try{M.value=await f.resolve(T.value)}catch{}}async function Ye(e){let t=e.toLowerCase(),n=M.value??j.value;if(!n)return;let r=n.variables,i=Object.keys(n.env).filter(e=>e.toLowerCase().includes(t));me.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??``})}he.value=a}async function Xe(){A.value=!0;try{await $e(),await qe(),ne.value=!0}catch(e){l.add({severity:`error`,summary:c(`serviceConfigEnv.error`),detail:e.message??c(`serviceConfigEnv.failedToLoadPreview`),life:5e3})}finally{A.value=!1}}let Ze=R(()=>j.value?Object.entries(j.value.env).map(([e,t])=>({key:e,value:Object.entries(Ee.value).reduce((e,[t,n])=>e.replaceAll(`{{${t}}}`,n),t)})):[]);function Qe(e,t){return t?`***`:e.length>50?e.substring(0,47)+`...`:e}async function $e(){if(O.value)return O.value;if(!T.value)return null;let e=ze.value;return e?(await f.create({name:`${s.service.name??s.service.id} — ${e.name}`,projectId:s.projectId,scope:`service`,reference:s.service.id,activateOn:T.value,parentIds:[T.value],variables:{}}),O.value):null}let et=R(()=>{let e=_.getByService(s.service.id);return e.length>0?e[0]:null}),tt=R(()=>{let e=et.value?.state;return e===`running`||e===`errored`});async function nt(){await $e(),k.value=!0,await Promise.all([qe(),Je()])}function rt(){if(k.value=!1,!tt.value||!et.value)return;let e=et.value.state===`running`?`restart`:`start`,t=s.service.name||s.service.id;d.require({message:c(e===`restart`?`serviceConfigEnv.restartConfirmMsg`:`serviceConfigEnv.startConfirmMsg`,{name:t}),header:c(e===`restart`?`serviceConfigEnv.restartTitle`:`serviceConfigEnv.startTitle`),icon:`pi pi-refresh`,acceptLabel:c(e===`restart`?`serviceConfigEnv.restartTitle`:`actions.start`),rejectLabel:c(`serviceConfigEnv.notNow`),accept:async()=>{try{let t=s.service.agentId;if(!t)return;e===`restart`?(await _.restart(t,s.service.id),l.add({severity:`success`,summary:c(`serviceConfigEnv.serviceRestarted`),life:3e3})):(await _.start(t,s.service.id),l.add({severity:`success`,summary:c(`serviceConfigEnv.serviceStarted`),life:3e3}))}catch(t){l.add({severity:`error`,summary:c(`serviceConfigEnv.error`),detail:t.message??c(`serviceConfigEnv.failedToAction`,{action:e}),life:5e3})}}})}return N(ze,async e=>{e&&await Promise.all([qe(),Je()])}),N(()=>s.service.agentId,()=>{Pe()}),S(async()=>{s.projectId&&await f.fetchAll(s.projectId),await Promise.all([qe(),Je(),Pe()])}),(s,l)=>(P(),b(`div`,_i,[T.value?(P(),b(`div`,vi,[E(`span`,yi,a(F(c)(`serviceConfigEnv.activeEnvironment`)),1),v(He,{"environment-id":T.value},null,8,[`environment-id`])])):i(``,!0),O.value&&ze.value?(P(),b(`div`,bi,[v(F(Ie),{"model-value":Le.value,disabled:de.value,"onUpdate:modelValue":Re},null,8,[`model-value`,`disabled`]),E(`span`,xi,a(Le.value?F(c)(`serviceConfigEnv.inheritsFrom`,{name:ze.value.name}):F(c)(`serviceConfigEnv.isolated`,{name:ze.value.name})),1)])):i(``,!0),Ge.value.length>0?(P(),o(F(x),{key:2,class:`inherited-accordion`},{default:B(()=>[v(F(e),{value:`inherited`},{default:B(()=>[v(F(fe),null,{default:B(()=>[E(`span`,Si,[l[6]||=E(`i`,{class:`pi pi-arrow-down-left`},null,-1),g(` `+a(F(c)(`serviceConfigEnv.inheritedVars`))+` `,1),v(F(ue),{value:String(Ge.value.length),severity:`secondary`,rounded:``},null,8,[`value`])])]),_:1}),v(F(Se),null,{default:B(()=>[v(F(Me),{value:Ge.value,size:`small`,"show-headers":!1},{default:B(()=>[v(F(Ne),{style:{width:`35%`}},{body:B(({data:e})=>[E(`div`,Ci,[E(`code`,wi,a(e.key),1),Ke.value[e.variableId]?(P(),o(He,{key:0,"environment-id":Ke.value[e.variableId].environmentId,class:`source-badge`},null,8,[`environment-id`])):i(``,!0)])]),_:1}),v(F(Ne),{style:{width:`65%`}},{body:B(({data:e})=>[E(`span`,Ti,[E(`span`,{class:`value-actions`,onClick:l[0]||=V(()=>{},[`stop`])},[e.slot.isSecret?(P(),b(`i`,{key:0,class:r([ge.value.has(e.variableId)?`pi pi-eye-slash`:`pi pi-eye`,`action-icon`]),onClick:t=>ve(e.variableId)},null,10,Ei)):i(``,!0),E(`i`,{class:r([be.value===e.variableId?`pi pi-check`:`pi pi-copy`,`action-icon`]),onClick:t=>xe(e.variableId,e.slot.pre+e.slot.value+e.slot.post)},null,10,Di)]),e.slot.isSecret&&!ge.value.has(e.variableId)?(P(),b(`span`,Oi,`***`)):(P(),b(`code`,ki,a(e.slot.pre)+a(e.slot.value)+a(e.slot.post),1))])]),_:1})]),_:1},8,[`value`])]),_:1})]),_:1})]),_:1})):i(``,!0),E(`div`,Ai,[E(`h3`,ji,a(F(c)(`serviceConfigEnv.envVars`)),1),E(`div`,Mi,[v(F(n),{label:F(c)(`serviceConfigEnv.editVariables`),icon:`pi pi-pencil`,size:`small`,outlined:``,"data-testid":`env-edit-btn`,disabled:!T.value,onClick:nt},null,8,[`label`,`disabled`]),v(F(n),{label:F(c)(`serviceConfigEnv.preview`),icon:`pi pi-eye`,size:`small`,outlined:``,severity:`secondary`,loading:A.value,disabled:!T.value,"data-testid":`env-preview-btn`,onClick:Xe},null,8,[`label`,`loading`,`disabled`])])]),O.value?(P(),b(`div`,Ni,[We.value.length>0?(P(),b(`div`,Pi,[v(Ue,{"environment-id":O.value.id,sources:Ke.value,"resolved-env":{...M.value?.env??{},...j.value?.env??{}},"service-builtins":Ee.value,editable:!1,"show-overrides":!0,"show-override-badge":!0,"show-delete":!1,"show-add-button":!1,onVariablesChanged:qe},null,8,[`environment-id`,`sources`,`resolved-env`,`service-builtins`])])):(P(),b(`div`,Fi,[E(`p`,null,a(F(c)(`serviceConfigEnv.noVarsConfigured`)),1)])),je.value?(P(),o(F(x),{key:2,class:`inherited-accordion`},{default:B(()=>[v(F(e),{value:`passthrough`},{default:B(()=>[v(F(fe),null,{default:B(()=>[E(`span`,Ii,[l[7]||=E(`i`,{class:`pi pi-globe`},null,-1),g(` `+a(F(c)(`agentPage.passthrough.titleShort`))+` `,1),v(F(ue),{value:String(Ae.value.length),severity:`secondary`,rounded:``},null,8,[`value`])])]),_:1}),v(F(Se),null,{default:B(()=>[E(`p`,Li,a(F(c)(`serviceConfigEnv.passthroughInfo`)),1),we.value?(P(),o(F(ae),{key:0,style:{width:`24px`,height:`24px`}})):(P(),o(F(Me),{key:1,value:Fe.value,stripedRows:``,size:`small`},{default:B(()=>[v(F(Ne),{field:`name`,header:F(c)(`common.key`),style:{width:`35%`}},{body:B(({data:e})=>[E(`code`,Ri,a(e.name),1)]),_:1},8,[`header`]),v(F(Ne),{header:F(c)(`common.value`),style:{width:`65%`}},{body:B(({data:e})=>[e.value===null?(P(),b(`span`,Bi,a(F(c)(`serviceConfigEnv.undefined`)),1)):(P(),b(`span`,zi,a(e.value),1))]),_:1},8,[`header`])]),_:1},8,[`value`]))]),_:1})]),_:1})]),_:1})):i(``,!0)])):T.value?(P(),b(`div`,Hi,[E(`p`,null,a(F(c)(`serviceConfigEnv.noVarsConfigured`)),1)])):(P(),b(`div`,Vi,[E(`p`,null,a(F(c)(`serviceConfigEnv.noActiveEnv`)),1)])),v(F(ee),{visible:k.value,header:F(c)(`serviceConfigEnv.editVarsHeader`),style:{width:`900px`},modal:``,"onUpdate:visible":l[2]||=e=>{e||rt()}},{footer:B(()=>[v(F(n),{label:F(c)(`actions.close`),icon:`pi pi-times`,onClick:l[1]||=e=>rt()},null,8,[`label`])]),default:B(()=>[E(`div`,Ui,[T.value?(P(),b(`div`,Wi,[E(`span`,Gi,a(F(c)(`serviceConfigEnv.editingVarsFor`,{name:t.service.name||t.service.id})),1),v(He,{"environment-id":T.value},null,8,[`environment-id`])])):i(``,!0),E(`div`,Ki,[O.value?(P(),o(Ue,{key:0,"environment-id":O.value.id,editable:!0,sources:Ke.value,"autocomplete-enabled":!0,"autocomplete-suggestions":me.value,"autocomplete-meta":he.value,"resolved-env":{...M.value?.env??{},...j.value?.env??{}},"service-builtins":Ee.value,"show-overrides":!0,onVariablesChanged:qe,"show-delete":!0,"show-add-button":!0,onAutocompleteSearch:Ye},null,8,[`environment-id`,`sources`,`autocomplete-suggestions`,`autocomplete-meta`,`resolved-env`,`service-builtins`])):i(``,!0)])])]),_:1},8,[`visible`,`header`]),v(F(ee),{visible:ne.value,"onUpdate:visible":l[5]||=e=>ne.value=e,header:F(c)(`serviceConfigEnv.previewHeader`),style:{width:`700px`},modal:``,"data-testid":`env-preview-dialog`},{footer:B(()=>[v(F(n),{label:F(c)(`actions.close`),icon:`pi pi-times`,onClick:l[4]||=e=>ne.value=!1},null,8,[`label`])]),default:B(()=>[A.value?(P(),b(`div`,qi,[v(F(ae))])):j.value?(P(),b(`div`,Ji,[E(`p`,Yi,a(F(c)(`serviceConfigEnv.injectedVarsInfo`)),1),v(F(Me),{value:Ze.value,stripedRows:``,size:`small`,rows:15,paginator:Ze.value.length>15},{default:B(()=>[v(F(Ne),{field:`key`,header:F(c)(`common.key`),style:{width:`35%`}},{body:B(({data:e})=>[E(`code`,Xi,a(e.key),1)]),_:1},8,[`header`]),v(F(Ne),{header:F(c)(`common.value`),style:{width:`65%`}},{body:B(({data:e})=>[E(`span`,Zi,[E(`span`,{class:`value-actions`,onClick:l[3]||=V(()=>{},[`stop`])},[j.value.envSecrets.includes(e.key)?(P(),b(`i`,{key:0,class:r([ge.value.has(`preview:`+e.key)?`pi pi-eye-slash`:`pi pi-eye`,`action-icon`]),onClick:t=>ve(`preview:`+e.key)},null,10,Qi)):i(``,!0),E(`i`,{class:r([be.value===`preview:`+e.key?`pi pi-check`:`pi pi-copy`,`action-icon`]),onClick:t=>xe(`preview:`+e.key,e.value)},null,10,$i)]),j.value.envSecrets.includes(e.key)&&!ge.value.has(`preview:`+e.key)?(P(),b(`span`,ea,`***`)):(P(),b(`span`,ta,a(Qe(e.value,!1)),1))])]),_:1},8,[`header`])]),_:1},8,[`value`,`paginator`])])):i(``,!0)]),_:1},8,[`visible`,`header`])]))}}),[[`__scopeId`,`data-v-8ebbf924`]]),ra={class:`config-health`},ia={class:`config-card config-card--inline`},aa={class:`config-card__header`},oa={class:`config-card`},sa={class:`config-card__header`},ca={class:`config-card`},la={class:`config-card__header`},ua={class:`config-card`},da={class:`config-card__header`},fa={class:`config-card`},pa={class:`config-card__header`},ma={key:1,class:`config-card`},ha={class:`config-card__header`},ga={class:`config-card__hint`},_a={class:`config-card`},va={class:`config-card__header`},ya={class:`config-card`},ba={class:`config-card__header`},xa={class:`config-card`},Sa={class:`config-card__header`},Ca={class:`config-card`},wa={class:`config-card__header`},Ta=p(c({__name:`ServiceConfigHealthCheck`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let n=e,r=t,{t:o}=se(),s=w(!!n.service.healthCheck),c=w({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`}];N(()=>n.service,e=>{s.value=!!e.healthCheck,c.value={type:e.healthCheck?.type??`http`,path:e.healthCheck?.path??`/health`,interval:e.healthCheck?.interval??3e4,timeout:e.healthCheck?.timeout??5e3,retries:e.healthCheck?.retries??3,method:e.healthCheck?.method??`GET`,expectedStatus:e.healthCheck?.expectedStatus??200,initialDelay:e.healthCheck?.initialDelay??5e3,command:e.healthCheck?.command??``}});let d=null;function f(){d&&clearTimeout(d),d=setTimeout(()=>{if(!s.value)r(`save`,void 0);else{if(c.value.type===`http`&&!c.value.path?.trim()||c.value.type===`command`&&!c.value.command?.trim())return;r(`save`,{type:c.value.type,path:c.value.path,method:c.value.method,expectedStatus:c.value.expectedStatus,command:c.value.command||void 0,interval:c.value.interval,timeout:c.value.timeout,retries:c.value.retries,initialDelay:c.value.initialDelay})}d=null},150)}return(e,t)=>(P(),b(`div`,ra,[E(`div`,ia,[E(`div`,aa,[t[10]||=E(`i`,{class:`pi pi-heart`},null,-1),E(`span`,null,a(F(o)(`serviceConfigHealthCheck.enable`)),1)]),v(F(Ie),{modelValue:s.value,"onUpdate:modelValue":t[0]||=e=>s.value=e,onChange:f},null,8,[`modelValue`])]),s.value?(P(),b(z,{key:0},[E(`div`,oa,[E(`div`,sa,[t[11]||=E(`i`,{class:`pi pi-cog`},null,-1),E(`span`,null,a(F(o)(`serviceConfigHealthCheck.type`)),1)]),v(F(ge),{modelValue:c.value.type,"onUpdate:modelValue":t[1]||=e=>c.value.type=e,options:l,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:f},null,8,[`modelValue`]),t[12]||=E(`small`,{class:`config-card__hint`},`HTTP checks a URL endpoint; Command runs a shell command (exit 0 = healthy)`,-1)]),c.value.type===`http`?(P(),b(z,{key:0},[E(`div`,ca,[E(`div`,la,[t[13]||=E(`i`,{class:`pi pi-link`},null,-1),E(`span`,null,a(F(o)(`serviceConfigHealthCheck.path`)),1)]),v(F(j),{modelValue:c.value.path,"onUpdate:modelValue":t[2]||=e=>c.value.path=e,class:`config-card__input`,placeholder:`/health`,onBlur:f,onKeydown:L(V(f,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),E(`div`,ua,[E(`div`,da,[t[14]||=E(`i`,{class:`pi pi-directions`},null,-1),E(`span`,null,a(F(o)(`serviceConfigHealthCheck.method`)),1)]),v(F(ge),{modelValue:c.value.method,"onUpdate:modelValue":t[3]||=e=>c.value.method=e,options:u,"option-label":`label`,"option-value":`value`,class:`config-card__input`,onChange:f},null,8,[`modelValue`])]),E(`div`,fa,[E(`div`,pa,[t[15]||=E(`i`,{class:`pi pi-check-circle`},null,-1),E(`span`,null,a(F(o)(`serviceConfigHealthCheck.expectedStatus`)),1)]),v(F(Pe),{modelValue:c.value.expectedStatus,"onUpdate:modelValue":t[4]||=e=>c.value.expectedStatus=e,class:`config-card__input`,"use-grouping":!1,min:100,max:599,onBlur:f,onKeydown:L(V(f,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),t[16]||=E(`small`,{class:`config-card__hint`},`HTTP status code to expect (default 200)`,-1)])],64)):i(``,!0),c.value.type===`command`?(P(),b(`div`,ma,[E(`div`,ha,[t[17]||=E(`i`,{class:`pi pi-code`},null,-1),E(`span`,null,a(F(o)(`serviceConfigHealthCheck.command`)),1)]),v(F(Ce),{modelValue:c.value.command,"onUpdate:modelValue":t[5]||=e=>c.value.command=e,class:`config-card__input`,rows:`2`,placeholder:`curl -sf http://localhost:3000/health`,"auto-resize":``,onBlur:f},null,8,[`modelValue`]),E(`small`,ga,a(F(o)(`serviceConfigHealthCheck.commandHint`)),1)])):i(``,!0),E(`div`,_a,[E(`div`,va,[t[18]||=E(`i`,{class:`pi pi-hourglass`},null,-1),E(`span`,null,a(F(o)(`serviceConfigHealthCheck.initialDelay`)),1)]),v(F(Pe),{modelValue:c.value.initialDelay,"onUpdate:modelValue":t[6]||=e=>c.value.initialDelay=e,class:`config-card__input`,"use-grouping":!1,min:0,onBlur:f,onKeydown:L(V(f,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`]),t[19]||=E(`small`,{class:`config-card__hint`},`Wait before first health check (ms)`,-1)]),E(`div`,ya,[E(`div`,ba,[t[20]||=E(`i`,{class:`pi pi-clock`},null,-1),E(`span`,null,a(F(o)(`serviceConfigHealthCheck.interval`)),1)]),v(F(Pe),{modelValue:c.value.interval,"onUpdate:modelValue":t[7]||=e=>c.value.interval=e,class:`config-card__input`,"use-grouping":!1,min:1e3,onBlur:f,onKeydown:L(V(f,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),E(`div`,xa,[E(`div`,Sa,[t[21]||=E(`i`,{class:`pi pi-stopwatch`},null,-1),E(`span`,null,a(F(o)(`serviceConfigHealthCheck.timeout`)),1)]),v(F(Pe),{modelValue:c.value.timeout,"onUpdate:modelValue":t[8]||=e=>c.value.timeout=e,class:`config-card__input`,"use-grouping":!1,min:500,onBlur:f,onKeydown:L(V(f,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),E(`div`,Ca,[E(`div`,wa,[t[22]||=E(`i`,{class:`pi pi-replay`},null,-1),E(`span`,null,a(F(o)(`serviceConfigHealthCheck.retries`)),1)]),v(F(Pe),{modelValue:c.value.retries,"onUpdate:modelValue":t[9]||=e=>c.value.retries=e,class:`config-card__input`,"use-grouping":!1,min:0,max:10,onBlur:f,onKeydown:L(V(f,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])],64)):i(``,!0)]))}}),[[`__scopeId`,`data-v-63e32039`]]),Ea={class:`config-shortcuts`},Da={key:0,class:`config-shortcuts__empty`},Oa={class:`config-shortcuts__row`},ka={class:`config-shortcuts__field`},Aa=[`for`],ja={class:`config-shortcuts__field config-shortcuts__field--wide`},Ma=[`for`],Na={class:`config-shortcuts__field`},Pa=[`for`],Fa={class:`config-shortcuts__actions-cell`},Ia={class:`config-shortcuts__footer`},La=p(c({__name:`ServiceConfigShortcuts`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let r=e,{t:o}=se(),s=t,c=w([...r.service.shortcuts??[]]),l=null;N(()=>r.service,e=>{l||(c.value=[...e.shortcuts??[]])});function u(){c.value=[...c.value,{id:je(),label:``,command:``,cwd:void 0}]}function d(e){c.value=c.value.filter((t,n)=>n!==e)}function f(e,t,n){c.value=c.value.map((r,i)=>i===e?{...r,[t]:n||void 0}:r)}function p(){l&&clearTimeout(l),l=setTimeout(()=>{s(`save`,c.value),l=null},150)}function m(e){d(e),p()}return(e,t)=>(P(),b(`div`,Ea,[c.value.length===0?(P(),b(`div`,Da,[E(`p`,null,a(F(o)(`serviceConfigShortcuts.empty`)),1)])):i(``,!0),(P(!0),b(z,null,he(c.value,(e,t)=>(P(),b(`div`,{key:e.id,class:`config-card`},[E(`div`,Oa,[E(`div`,ka,[E(`label`,{class:`config-shortcuts__label`,for:`shortcut-label-${t}`},a(F(o)(`serviceConfigShortcuts.label`)),9,Aa),v(F(j),{id:`shortcut-label-${t}`,"model-value":e.label,placeholder:F(o)(`serviceConfigShortcuts.labelPlaceholder`),class:`config-card__input`,"data-testid":`shortcut-label-input`,"onUpdate:modelValue":e=>f(t,`label`,e),onBlur:p,onKeydown:L(V(p,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),E(`div`,ja,[E(`label`,{class:`config-shortcuts__label`,for:`shortcut-command-${t}`},a(F(o)(`serviceConfigShortcuts.command`)),9,Ma),v(F(j),{id:`shortcut-command-${t}`,"model-value":e.command,placeholder:F(o)(`serviceConfigShortcuts.commandPlaceholder`),class:`config-card__input`,"data-testid":`shortcut-command-input`,"onUpdate:modelValue":e=>f(t,`command`,e),onBlur:p,onKeydown:L(V(p,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),E(`div`,Na,[E(`label`,{class:`config-shortcuts__label`,for:`shortcut-cwd-${t}`},a(F(o)(`serviceConfigShortcuts.workingDir`)),9,Pa),v(F(j),{id:`shortcut-cwd-${t}`,"model-value":e.cwd??``,placeholder:F(o)(`serviceConfigShortcuts.cwdPlaceholder`),class:`config-card__input`,"onUpdate:modelValue":e=>f(t,`cwd`,e),onBlur:p,onKeydown:L(V(p,[`prevent`]),[`enter`])},null,8,[`id`,`model-value`,`placeholder`,`onUpdate:modelValue`,`onKeydown`])]),E(`div`,Fa,[v(F(n),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:e=>m(t)},null,8,[`onClick`])])])]))),128)),E(`div`,Ia,[v(F(n),{label:F(o)(`serviceConfigShortcuts.addShortcut`),icon:`pi pi-plus`,severity:`secondary`,outlined:``,size:`small`,"data-testid":`add-shortcut-btn`,onClick:u},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-d6ecb989`]]),Ra=Object.defineProperty,za=Object.getOwnPropertySymbols,Ba=Object.prototype.hasOwnProperty,Va=Object.prototype.propertyIsEnumerable,Ha=(e,t,n)=>t in e?Ra(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ua=(e,t)=>{for(var n in t||={})Ba.call(t,n)&&Ha(e,n,t[n]);if(za)for(var n of za(t))Va.call(t,n)&&Ha(e,n,t[n]);return e},Wa=(e,t)=>{var n={};for(var r in e)Ba.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&za)for(var r of za(e))t.indexOf(r)<0&&Va.call(e,r)&&(n[r]=e[r]);return n},Ga=`[vue-draggable-plus]: `;function Ka(e){console.warn(Ga+e)}function qa(e){console.error(Ga+e)}function Ja(e,t,n){return n>=0&&n<e.length&&e.splice(n,0,e.splice(t,1)[0]),e}function Ya(e){return e.replace(/-(\w)/g,(e,t)=>t?t.toUpperCase():``)}function Xa(e){return Object.keys(e).reduce((t,n)=>(e[n]!==void 0&&(t[Ya(n)]=e[n]),t),{})}function Za(e,t){return Array.isArray(e)&&e.splice(t,1),e}function Qa(e,t,n){return Array.isArray(e)&&e.splice(t,0,n),e}function $a(e){return e===void 0}function eo(e){return typeof e==`string`}function to(e,t,n){let r=e.children[n];e.insertBefore(t,r)}function no(e){e.parentNode&&e.parentNode.removeChild(e)}function ro(e,t=document){let n=null;return n=typeof t?.querySelector==`function`?(t?.querySelector)?.call(t,e):document.querySelector(e),n||Ka(`Element not found: ${e}`),n}function io(e,t,n=null){return function(...r){return e.apply(n,r),t.apply(n,r)}}function ao(e,t){let n=Ua({},e);return Object.keys(t).forEach(r=>{n[r]?n[r]=io(e[r],t[r]):n[r]=t[r]}),n}function oo(e){return e instanceof HTMLElement}function so(e,t){Object.keys(e).forEach(n=>{t(n,e[n])})}function co(e){return e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97)}var lo=Object.assign;function uo(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 fo(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?uo(Object(n),!0).forEach(function(t){mo(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):uo(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function po(e){"@babel/helpers - typeof";return po=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},po(e)}function mo(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ho(){return ho=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},ho.apply(this,arguments)}function go(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 _o(e,t){if(e==null)return{};var n=go(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 vo=`1.15.2`;function yo(e){if(typeof window<`u`&&window.navigator)return!!navigator.userAgent.match(e)}var bo=yo(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),xo=yo(/Edge/i),So=yo(/firefox/i),Co=yo(/safari/i)&&!yo(/chrome/i)&&!yo(/android/i),wo=yo(/iP(ad|od|hone)/i),To=yo(/chrome/i)&&yo(/android/i),Eo={capture:!1,passive:!1};function H(e,t,n){e.addEventListener(t,n,!bo&&Eo)}function U(e,t,n){e.removeEventListener(t,n,!bo&&Eo)}function Do(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 Oo(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function ko(e,t,n,r){if(e){n||=document;do{if(t!=null&&(t[0]===`>`?e.parentNode===n&&Do(e,t):Do(e,t))||r&&e===n)return e;if(e===n)break}while(e=Oo(e))}return null}var Ao=/\s+/g;function jo(e,t,n){e&&t&&(e.classList?e.classList[n?`add`:`remove`](t):e.className=((` `+e.className+` `).replace(Ao,` `).replace(` `+t+` `,` `)+(n?` `+t:``)).replace(Ao,` `))}function W(e,t,n){var r=e&&e.style;if(r){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,``):e.currentStyle&&(n=e.currentStyle),t===void 0?n:n[t];!(t in r)&&t.indexOf(`webkit`)===-1&&(t=`-webkit-`+t),r[t]=n+(typeof n==`string`?``:`px`)}}function Mo(e,t){var n=``;if(typeof e==`string`)n=e;else do{var r=W(e,`transform`);r&&r!==`none`&&(n=r+` `+n)}while(!t&&(e=e.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(n)}function No(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 Po(){return document.scrollingElement||document.documentElement}function G(e,t,n,r,i){if(!(!e.getBoundingClientRect&&e!==window)){var a,o,s,c,l,u,d;if(e!==window&&e.parentNode&&e!==Po()?(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,!bo))do if(i&&i.getBoundingClientRect&&(W(i,`transform`)!==`none`||n&&W(i,`position`)!==`static`)){var f=i.getBoundingClientRect();o-=f.top+parseInt(W(i,`border-top-width`)),s-=f.left+parseInt(W(i,`border-left-width`)),c=o+a.height,l=s+a.width;break}while(i=i.parentNode);if(r&&e!==window){var p=Mo(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 Fo(e,t,n){for(var r=Vo(e,!0),i=G(e)[t];r;){var a=G(r)[n],o=void 0;if(o=i>=a,!o)return r;if(r===Po())break;r=Vo(r,!1)}return!1}function Io(e,t,n,r){for(var i=0,a=0,o=e.children;a<o.length;){if(o[a].style.display!==`none`&&o[a]!==Q.ghost&&(r||o[a]!==Q.dragged)&&ko(o[a],n.draggable,e,!1)){if(i===t)return o[a];i++}a++}return null}function Lo(e,t){for(var n=e.lastElementChild;n&&(n===Q.ghost||W(n,`display`)===`none`||t&&!Do(n,t));)n=n.previousElementSibling;return n||null}function Ro(e,t){var n=0;if(!e||!e.parentNode)return-1;for(;e=e.previousElementSibling;)e.nodeName.toUpperCase()!==`TEMPLATE`&&e!==Q.clone&&(!t||Do(e,t))&&n++;return n}function zo(e){var t=0,n=0,r=Po();if(e)do{var i=Mo(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 Bo(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 Vo(e,t){if(!e||!e.getBoundingClientRect)return Po();var n=e,r=!1;do if(n.clientWidth<n.scrollWidth||n.clientHeight<n.scrollHeight){var i=W(n);if(n.clientWidth<n.scrollWidth&&(i.overflowX==`auto`||i.overflowX==`scroll`)||n.clientHeight<n.scrollHeight&&(i.overflowY==`auto`||i.overflowY==`scroll`)){if(!n.getBoundingClientRect||n===document.body)return Po();if(r||t)return n;r=!0}}while(n=n.parentNode);return Po()}function Ho(e,t){if(e&&t)for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function Uo(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 Wo;function Go(e,t){return function(){if(!Wo){var n=arguments,r=this;n.length===1?e.call(r,n[0]):e.apply(r,n),Wo=setTimeout(function(){Wo=void 0},t)}}}function Ko(){clearTimeout(Wo),Wo=void 0}function qo(e,t,n){e.scrollLeft+=t,e.scrollTop+=n}function Jo(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 Yo(e,t,n){var r={};return Array.from(e.children).forEach(function(i){if(!(!ko(i,t.draggable,e,!1)||i.animated||i===n)){var a=G(i);r.left=Math.min(r.left??1/0,a.left),r.top=Math.min(r.top??1/0,a.top),r.right=Math.max(r.right??-1/0,a.right),r.bottom=Math.max(r.bottom??-1/0,a.bottom)}}),r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}var Xo=`Sortable`+new Date().getTime();function Zo(){var e=[],t;return{captureAnimationState:function(){e=[],this.options.animation&&[].slice.call(this.el.children).forEach(function(t){if(!(W(t,`display`)===`none`||t===Q.ghost)){e.push({target:t,rect:G(t)});var n=fo({},e[e.length-1].rect);if(t.thisAnimationDuration){var r=Mo(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(Bo(e,{target:t}),1)},animateAll:function(n){var r=this;if(!this.options.animation){clearTimeout(t),typeof n==`function`&&n();return}var i=!1,a=0;e.forEach(function(e){var t=0,n=e.target,o=n.fromRect,s=G(n),c=n.prevFromRect,l=n.prevToRect,u=e.rect,d=Mo(n,!0);d&&(s.top-=d.f,s.left-=d.e),n.toRect=s,n.thisAnimationDuration&&Uo(c,s)&&!Uo(o,s)&&(u.top-s.top)/(u.left-s.left)===(o.top-s.top)/(o.left-s.left)&&(t=$o(u,c,l,r.options)),Uo(s,o)||(n.prevFromRect=o,n.prevToRect=s,t||=r.options.animation,r.animate(n,u,s,t)),t&&(i=!0,a=Math.max(a,t),clearTimeout(n.animationResetTimer),n.animationResetTimer=setTimeout(function(){n.animationTime=0,n.prevFromRect=null,n.fromRect=null,n.prevToRect=null,n.thisAnimationDuration=null},t),n.thisAnimationDuration=t)}),clearTimeout(t),i?t=setTimeout(function(){typeof n==`function`&&n()},a):typeof n==`function`&&n(),e=[]},animate:function(e,t,n,r){if(r){W(e,`transition`,``),W(e,`transform`,``);var i=Mo(this.el),a=i&&i.a,o=i&&i.d,s=(t.left-n.left)/(a||1),c=(t.top-n.top)/(o||1);e.animatingX=!!s,e.animatingY=!!c,W(e,`transform`,`translate3d(`+s+`px,`+c+`px,0)`),this.forRepaintDummy=Qo(e),W(e,`transition`,`transform `+r+`ms`+(this.options.easing?` `+this.options.easing:``)),W(e,`transform`,`translate3d(0,0,0)`),typeof e.animated==`number`&&clearTimeout(e.animated),e.animated=setTimeout(function(){W(e,`transition`,``),W(e,`transform`,``),e.animated=!1,e.animatingX=!1,e.animatingY=!1},r)}}}}function Qo(e){return e.offsetWidth}function $o(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 es=[],ts={initializeByDefault:!0},ns={mount:function(e){for(var t in ts)ts.hasOwnProperty(t)&&!(t in e)&&(e[t]=ts[t]);es.forEach(function(t){if(t.pluginName===e.pluginName)throw`Sortable: Cannot mount plugin ${e.pluginName} more than once`}),es.push(e)},pluginEvent:function(e,t,n){var r=this;this.eventCanceled=!1,n.cancel=function(){r.eventCanceled=!0};var i=e+`Global`;es.forEach(function(r){t[r.pluginName]&&(t[r.pluginName][i]&&t[r.pluginName][i](fo({sortable:t},n)),t.options[r.pluginName]&&t[r.pluginName][e]&&t[r.pluginName][e](fo({sortable:t},n)))})},initializePlugins:function(e,t,n,r){for(var i in es.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,ho(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 es.forEach(function(r){typeof r.eventProperties==`function`&&ho(n,r.eventProperties.call(t[r.pluginName],e))}),n},modifyOption:function(e,t,n){var r;return es.forEach(function(i){e[i.pluginName]&&i.optionListeners&&typeof i.optionListeners[t]==`function`&&(r=i.optionListeners[t].call(e[i.pluginName],n))}),r}};function rs(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[Xo],t){var h,g=t.options,_=`on`+r.charAt(0).toUpperCase()+r.substr(1);window.CustomEvent&&!bo&&!xo?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=fo(fo({},m),ns.getEventProperties(r,t));for(var y in v)h[y]=v[y];n&&n.dispatchEvent(h),g[_]&&g[_].call(t,h)}}var is=[`evt`],as=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.evt,i=_o(n,is);ns.pluginEvent.bind(Q)(e,t,fo({dragEl:K,parentEl:q,ghostEl:J,rootEl:Y,nextEl:ss,lastDownEl:cs,cloneEl:X,cloneHidden:ls,dragStarted:ws,putSortable:Z,activeSortable:Q.active,originalEvent:r,oldIndex:us,oldDraggableIndex:fs,newIndex:ds,newDraggableIndex:ps,hideGhostForTarget:Us,unhideGhostForTarget:Ws,cloneNowHidden:function(){ls=!0},cloneNowShown:function(){ls=!1},dispatchSortableEvent:function(e){os({sortable:t,name:e,originalEvent:r})}},i))};function os(e){rs(fo({putSortable:Z,cloneEl:X,targetEl:K,rootEl:Y,oldIndex:us,oldDraggableIndex:fs,newIndex:ds,newDraggableIndex:ps},e))}var K,q,J,Y,ss,cs,X,ls,us,ds,fs,ps,ms,Z,hs=!1,gs=!1,_s=[],vs,ys,bs,xs,Ss,Cs,ws,Ts,Es,Ds=!1,Os=!1,ks,As,js=[],Ms=!1,Ns=[],Ps=typeof document<`u`,Fs=wo,Is=xo||bo?`cssFloat`:`float`,Ls=Ps&&!To&&!wo&&`draggable`in document.createElement(`div`),Rs=function(){if(Ps){if(bo)return!1;var e=document.createElement(`x`);return e.style.cssText=`pointer-events:auto`,e.style.pointerEvents===`auto`}}(),zs=function(e,t){var n=W(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),i=Io(e,0,t),a=Io(e,1,t),o=i&&W(i),s=a&&W(a),c=o&&parseInt(o.marginLeft)+parseInt(o.marginRight)+G(i).width,l=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+G(a).width;if(n.display===`flex`)return n.flexDirection===`column`||n.flexDirection===`column-reverse`?`vertical`:`horizontal`;if(n.display===`grid`)return n.gridTemplateColumns.split(` `).length<=1?`vertical`:`horizontal`;if(i&&o.float&&o.float!==`none`){var u=o.float===`left`?`left`:`right`;return a&&(s.clear===`both`||s.clear===u)?`vertical`:`horizontal`}return i&&(o.display===`block`||o.display===`flex`||o.display===`table`||o.display===`grid`||c>=r&&n[Is]===`none`||a&&n[Is]===`none`&&c+l>r)?`vertical`:`horizontal`},Bs=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},Vs=function(e,t){var n;return _s.some(function(r){var i=r[Xo].options.emptyInsertThreshold;if(!(!i||Lo(r))){var a=G(r),o=e>=a.left-i&&e<=a.right+i,s=t>=a.top-i&&t<=a.bottom+i;if(o&&s)return n=r}}),n},Hs=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||po(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},Us=function(){!Rs&&J&&W(J,`display`,`none`)},Ws=function(){!Rs&&J&&W(J,`display`,``)};Ps&&!To&&document.addEventListener(`click`,function(e){if(gs)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),gs=!1,!1},!0);var Gs=function(e){if(K){e=e.touches?e.touches[0]:e;var t=Vs(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[Xo]._onDragOver(n)}}},Ks=function(e){K&&K.parentNode[Xo]._isOutsideThisEl(e.target)};function Q(e,t){if(!(e&&e.nodeType&&e.nodeType===1))throw`Sortable: \`el\` must be an HTMLElement, not ${{}.toString.call(e)}`;this.el=e,this.options=t=ho({},t),e[Xo]=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 zs(e,this.options)},ghostClass:`sortable-ghost`,chosenClass:`sortable-chosen`,dragClass:`sortable-drag`,ignore:`a, img`,filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData(`Text`,t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:`data-id`,delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:`sortable-fallback`,fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:Q.supportPointer!==!1&&`PointerEvent`in window&&!Co,emptyInsertThreshold:5};for(var r in ns.initializePlugins(this,e,n),n)!(r in t)&&(t[r]=n[r]);for(var i in Hs(t),this)i.charAt(0)===`_`&&typeof this[i]==`function`&&(this[i]=this[i].bind(this));this.nativeDraggable=t.forceFallback?!1:Ls,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?H(e,`pointerdown`,this._onTapStart):(H(e,`mousedown`,this._onTapStart),H(e,`touchstart`,this._onTapStart)),this.nativeDraggable&&(H(e,`dragover`,this),H(e,`dragenter`,this)),_s.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),ho(this,Zo())}Q.prototype={constructor:Q,_isOutsideThisEl:function(e){!this.el.contains(e)&&e!==this.el&&(Ts=null)},_getDirection:function(e,t){return typeof this.options.direction==`function`?this.options.direction.call(this,e,t,K):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,r=this.options,i=r.preventOnFilter,a=e.type,o=e.touches&&e.touches[0]||e.pointerType&&e.pointerType===`touch`&&e,s=(o||e).target,c=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||s,l=r.filter;if(nc(n),!K&&!(/mousedown|pointerdown/.test(a)&&e.button!==0||r.disabled)&&!c.isContentEditable&&!(!this.nativeDraggable&&Co&&s&&s.tagName.toUpperCase()===`SELECT`)&&(s=ko(s,r.draggable,n,!1),!(s&&s.animated)&&cs!==s)){if(us=Ro(s),fs=Ro(s,r.draggable),typeof l==`function`){if(l.call(this,e,s,this)){os({sortable:t,rootEl:c,name:`filter`,targetEl:s,toEl:n,fromEl:n}),as(`filter`,t,{evt:e}),i&&e.cancelable&&e.preventDefault();return}}else if(l&&(l=l.split(`,`).some(function(r){if(r=ko(c,r.trim(),n,!1),r)return os({sortable:t,rootEl:r,name:`filter`,targetEl:s,fromEl:n,toEl:n}),as(`filter`,t,{evt:e}),!0}),l)){i&&e.cancelable&&e.preventDefault();return}r.handle&&!ko(c,r.handle,n,!1)||this._prepareDragStart(e,o,s)}}},_prepareDragStart:function(e,t,n){var r=this,i=r.el,a=r.options,o=i.ownerDocument,s;if(n&&!K&&n.parentNode===i){var c=G(n);if(Y=i,K=n,q=K.parentNode,ss=K.nextSibling,cs=n,ms=a.group,Q.dragged=K,vs={target:K,clientX:(t||e).clientX,clientY:(t||e).clientY},Ss=vs.clientX-c.left,Cs=vs.clientY-c.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,K.style[`will-change`]=`all`,s=function(){if(as(`delayEnded`,r,{evt:e}),Q.eventCanceled){r._onDrop();return}r._disableDelayedDragEvents(),!So&&r.nativeDraggable&&(K.draggable=!0),r._triggerDragStart(e,t),os({sortable:r,name:`choose`,originalEvent:e}),jo(K,a.chosenClass,!0)},a.ignore.split(`,`).forEach(function(e){No(K,e.trim(),Ys)}),H(o,`dragover`,Gs),H(o,`mousemove`,Gs),H(o,`touchmove`,Gs),H(o,`mouseup`,r._onDrop),H(o,`touchend`,r._onDrop),H(o,`touchcancel`,r._onDrop),So&&this.nativeDraggable&&(this.options.touchStartThreshold=4,K.draggable=!0),as(`delayStart`,this,{evt:e}),a.delay&&(!a.delayOnTouchOnly||t)&&(!this.nativeDraggable||!(xo||bo))){if(Q.eventCanceled){this._onDrop();return}H(o,`mouseup`,r._disableDelayedDrag),H(o,`touchend`,r._disableDelayedDrag),H(o,`touchcancel`,r._disableDelayedDrag),H(o,`mousemove`,r._delayedDragTouchMoveHandler),H(o,`touchmove`,r._delayedDragTouchMoveHandler),a.supportPointer&&H(o,`pointermove`,r._delayedDragTouchMoveHandler),r._dragStartTimer=setTimeout(s,a.delay)}else s()}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){K&&Ys(K),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;U(e,`mouseup`,this._disableDelayedDrag),U(e,`touchend`,this._disableDelayedDrag),U(e,`touchcancel`,this._disableDelayedDrag),U(e,`mousemove`,this._delayedDragTouchMoveHandler),U(e,`touchmove`,this._delayedDragTouchMoveHandler),U(e,`pointermove`,this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t||=e.pointerType==`touch`&&e,!this.nativeDraggable||t?this.options.supportPointer?H(document,`pointermove`,this._onTouchMove):t?H(document,`touchmove`,this._onTouchMove):H(document,`mousemove`,this._onTouchMove):(H(K,`dragend`,this),H(Y,`dragstart`,this._onDragStart));try{document.selection?rc(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(e,t){if(hs=!1,Y&&K){as(`dragStarted`,this,{evt:t}),this.nativeDraggable&&H(document,`dragover`,Ks);var n=this.options;!e&&jo(K,n.dragClass,!1),jo(K,n.ghostClass,!0),Q.active=this,e&&this._appendGhost(),os({sortable:this,name:`start`,originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(ys){this._lastX=ys.clientX,this._lastY=ys.clientY,Us();for(var e=document.elementFromPoint(ys.clientX,ys.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(ys.clientX,ys.clientY),e!==t);)t=e;if(K.parentNode[Xo]._isOutsideThisEl(e),t)do{if(t[Xo]){var n=void 0;if(n=t[Xo]._onDragOver({clientX:ys.clientX,clientY:ys.clientY,target:e,rootEl:t}),n&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);Ws()}},_onTouchMove:function(e){if(vs){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,i=e.touches?e.touches[0]:e,a=J&&Mo(J,!0),o=J&&a&&a.a,s=J&&a&&a.d,c=Fs&&As&&zo(As),l=(i.clientX-vs.clientX+r.x)/(o||1)+(c?c[0]-js[0]:0)/(o||1),u=(i.clientY-vs.clientY+r.y)/(s||1)+(c?c[1]-js[1]:0)/(s||1);if(!Q.active&&!hs){if(n&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))<n)return;this._onDragStart(e,!0)}if(J){a?(a.e+=l-(bs||0),a.f+=u-(xs||0)):a={a:1,b:0,c:0,d:1,e:l,f:u};var d=`matrix(${a.a},${a.b},${a.c},${a.d},${a.e},${a.f})`;W(J,`webkitTransform`,d),W(J,`mozTransform`,d),W(J,`msTransform`,d),W(J,`transform`,d),bs=l,xs=u,ys=i}e.cancelable&&e.preventDefault()}},_appendGhost:function(){if(!J){var e=this.options.fallbackOnBody?document.body:Y,t=G(K,!0,Fs,!0,e),n=this.options;if(Fs){for(As=e;W(As,`position`)===`static`&&W(As,`transform`)===`none`&&As!==document;)As=As.parentNode;As!==document.body&&As!==document.documentElement?(As===document&&(As=Po()),t.top+=As.scrollTop,t.left+=As.scrollLeft):As=Po(),js=zo(As)}J=K.cloneNode(!0),jo(J,n.ghostClass,!1),jo(J,n.fallbackClass,!0),jo(J,n.dragClass,!0),W(J,`transition`,``),W(J,`transform`,``),W(J,`box-sizing`,`border-box`),W(J,`margin`,0),W(J,`top`,t.top),W(J,`left`,t.left),W(J,`width`,t.width),W(J,`height`,t.height),W(J,`opacity`,`0.8`),W(J,`position`,Fs?`absolute`:`fixed`),W(J,`zIndex`,`100000`),W(J,`pointerEvents`,`none`),Q.ghost=J,e.appendChild(J),W(J,`transform-origin`,Ss/parseInt(J.style.width)*100+`% `+Cs/parseInt(J.style.height)*100+`%`)}},_onDragStart:function(e,t){var n=this,r=e.dataTransfer,i=n.options;if(as(`dragStart`,this,{evt:e}),Q.eventCanceled){this._onDrop();return}as(`setupClone`,this),Q.eventCanceled||(X=Jo(K),X.removeAttribute(`id`),X.draggable=!1,X.style[`will-change`]=``,this._hideClone(),jo(X,this.options.chosenClass,!1),Q.clone=X),n.cloneId=rc(function(){as(`clone`,n),!Q.eventCanceled&&(n.options.removeCloneOnHide||Y.insertBefore(X,K),n._hideClone(),os({sortable:n,name:`clone`}))}),!t&&jo(K,i.dragClass,!0),t?(gs=!0,n._loopId=setInterval(n._emulateDragOver,50)):(U(document,`mouseup`,n._onDrop),U(document,`touchend`,n._onDrop),U(document,`touchcancel`,n._onDrop),r&&(r.effectAllowed=`move`,i.setData&&i.setData.call(n,r,K)),H(document,`drop`,n),W(K,`transform`,`translateZ(0)`)),hs=!0,n._dragStartId=rc(n._dragStarted.bind(n,t,e)),H(document,`selectstart`,n),ws=!0,Co&&W(document.body,`user-select`,`none`)},_onDragOver:function(e){var t=this.el,n=e.target,r,i,a,o=this.options,s=o.group,c=Q.active,l=ms===s,u=o.sort,d=Z||c,f,p=this,m=!1;if(Ms)return;function h(o,s){as(o,p,fo({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 Js(Y,t,K,r,n,G(n),e,i)},changed:v},s))}function g(){h(`dragOverAnimationCapture`),p.captureAnimationState(),p!==d&&d.captureAnimationState()}function _(r){return h(`dragOverCompleted`,{insertion:r}),r&&(l?c._hideClone():c._showClone(p),p!==d&&(jo(K,Z?Z.options.ghostClass:c.options.ghostClass,!1),jo(K,o.ghostClass,!0)),Z!==p&&p!==Q.active?Z=p:p===Q.active&&Z&&(Z=null),d===p&&(p._ignoreWhileAnimating=n),p.animateAll(function(){h(`dragOverAnimationComplete`),p._ignoreWhileAnimating=null}),p!==d&&(d.animateAll(),d._ignoreWhileAnimating=null)),(n===K&&!K.animated||n===t&&!n.animated)&&(Ts=null),!o.dragoverBubble&&!e.rootEl&&n!==document&&(K.parentNode[Xo]._isOutsideThisEl(e.target),!r&&Gs(e)),!o.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),m=!0}function v(){ds=Ro(K),ps=Ro(K,o.draggable),os({sortable:p,name:`change`,toEl:t,newIndex:ds,newDraggableIndex:ps,originalEvent:e})}if(e.preventDefault!==void 0&&e.cancelable&&e.preventDefault(),n=ko(n,o.draggable,t,!0),h(`dragOver`),Q.eventCanceled)return m;if(K.contains(e.target)||n.animated&&n.animatingX&&n.animatingY||p._ignoreWhileAnimating===n)return _(!1);if(gs=!1,c&&!o.disabled&&(l?u||(a=q!==Y):Z===this||(this.lastPutMode=ms.checkPull(this,c,K,e))&&s.checkPut(this,c,K,e))){if(f=this._getDirection(e,n)===`vertical`,r=G(K),h(`dragOverValid`),Q.eventCanceled)return m;if(a)return q=Y,g(),this._hideClone(),h(`revert`),Q.eventCanceled||(ss?Y.insertBefore(K,ss):Y.appendChild(K)),_(!0);var y=Lo(t,o.draggable);if(!y||Qs(e,f,this)&&!y.animated){if(y===K)return _(!1);if(y&&t===e.target&&(n=y),n&&(i=G(n)),Js(Y,t,K,r,n,i,e,!!n)!==!1)return g(),y&&y.nextSibling?t.insertBefore(K,y.nextSibling):t.appendChild(K),q=t,v(),_(!0)}else if(y&&Zs(e,f,this)){var b=Io(t,0,o,!0);if(b===K)return _(!1);if(n=b,i=G(n),Js(Y,t,K,r,n,i,e,!1)!==!1)return g(),t.insertBefore(K,b),q=t,v(),_(!0)}else if(n.parentNode===t){i=G(n);var x=0,S,C=K.parentNode!==t,w=!Bs(K.animated&&K.toRect||r,n.animated&&n.toRect||i,f),T=f?`top`:`left`,ee=Fo(n,`top`,`top`)||Fo(K,`top`,`top`),E=ee?ee.scrollTop:void 0;Ts!==n&&(S=i[T],Ds=!1,Os=!w&&o.invertSwap||C),x=$s(e,n,i,f,w?1:o.swapThreshold,o.invertedSwapThreshold==null?o.swapThreshold:o.invertedSwapThreshold,Os,Ts===n);var D;if(x!==0){var O=Ro(K);do O-=x,D=q.children[O];while(D&&(W(D,`display`)===`none`||D===J))}if(x===0||D===n)return _(!1);Ts=n,Es=x;var k=n.nextElementSibling,te=!1;te=x===1;var ne=Js(Y,t,K,r,n,i,e,te);if(ne!==!1)return(ne===1||ne===-1)&&(te=ne===1),Ms=!0,setTimeout(Xs,30),g(),te&&!k?t.appendChild(K):n.parentNode.insertBefore(K,te?k:n),ee&&qo(ee,0,E-ee.scrollTop),q=K.parentNode,S!==void 0&&!Os&&(ks=Math.abs(S-G(n)[T])),v(),_(!0)}if(t.contains(K))return _(!1)}return!1},_ignoreWhileAnimating:null,_offMoveEvents:function(){U(document,`mousemove`,this._onTouchMove),U(document,`touchmove`,this._onTouchMove),U(document,`pointermove`,this._onTouchMove),U(document,`dragover`,Gs),U(document,`mousemove`,Gs),U(document,`touchmove`,Gs)},_offUpEvents:function(){var e=this.el.ownerDocument;U(e,`mouseup`,this._onDrop),U(e,`touchend`,this._onDrop),U(e,`pointerup`,this._onDrop),U(e,`touchcancel`,this._onDrop),U(document,`selectstart`,this)},_onDrop:function(e){var t=this.el,n=this.options;if(ds=Ro(K),ps=Ro(K,n.draggable),as(`drop`,this,{evt:e}),q=K&&K.parentNode,ds=Ro(K),ps=Ro(K,n.draggable),Q.eventCanceled){this._nulling();return}hs=!1,Os=!1,Ds=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),ic(this.cloneId),ic(this._dragStartId),this.nativeDraggable&&(U(document,`drop`,this),U(t,`dragstart`,this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),Co&&W(document.body,`user-select`,``),W(K,`transform`,``),e&&(ws&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),J&&J.parentNode&&J.parentNode.removeChild(J),(Y===q||Z&&Z.lastPutMode!==`clone`)&&X&&X.parentNode&&X.parentNode.removeChild(X),K&&(this.nativeDraggable&&U(K,`dragend`,this),Ys(K),K.style[`will-change`]=``,ws&&!hs&&jo(K,Z?Z.options.ghostClass:this.options.ghostClass,!1),jo(K,this.options.chosenClass,!1),os({sortable:this,name:`unchoose`,toEl:q,newIndex:null,newDraggableIndex:null,originalEvent:e}),Y===q?ds!==us&&ds>=0&&(os({sortable:this,name:`update`,toEl:q,originalEvent:e}),os({sortable:this,name:`sort`,toEl:q,originalEvent:e})):(ds>=0&&(os({rootEl:q,name:`add`,toEl:q,fromEl:Y,originalEvent:e}),os({sortable:this,name:`remove`,toEl:q,originalEvent:e}),os({rootEl:q,name:`sort`,toEl:q,fromEl:Y,originalEvent:e}),os({sortable:this,name:`sort`,toEl:q,originalEvent:e})),Z&&Z.save()),Q.active&&((ds==null||ds===-1)&&(ds=us,ps=fs),os({sortable:this,name:`end`,toEl:q,originalEvent:e}),this.save()))),this._nulling()},_nulling:function(){as(`nulling`,this),Y=K=q=J=ss=X=cs=ls=vs=ys=ws=ds=ps=us=fs=Ts=Es=Z=ms=Q.dragged=Q.ghost=Q.clone=Q.active=null,Ns.forEach(function(e){e.checked=!0}),Ns.length=bs=xs=0},handleEvent:function(e){switch(e.type){case`drop`:case`dragend`:this._onDrop(e);break;case`dragenter`:case`dragover`:K&&(this._onDragOver(e),qs(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],ko(t,a.draggable,this.el,!1)&&e.push(t.getAttribute(a.dataIdAttr)||tc(t));return e},sort:function(e,t){var n={},r=this.el;this.toArray().forEach(function(e,t){var i=r.children[t];ko(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 ko(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=ns.modifyOption(this,e,t);r===void 0?n[e]=t:n[e]=r,e===`group`&&Hs(n)},destroy:function(){as(`destroy`,this);var e=this.el;e[Xo]=null,U(e,`mousedown`,this._onTapStart),U(e,`touchstart`,this._onTapStart),U(e,`pointerdown`,this._onTapStart),this.nativeDraggable&&(U(e,`dragover`,this),U(e,`dragenter`,this)),Array.prototype.forEach.call(e.querySelectorAll(`[draggable]`),function(e){e.removeAttribute(`draggable`)}),this._onDrop(),this._disableDelayedDragEvents(),_s.splice(_s.indexOf(this.el),1),this.el=e=null},_hideClone:function(){if(!ls){if(as(`hideClone`,this),Q.eventCanceled)return;W(X,`display`,`none`),this.options.removeCloneOnHide&&X.parentNode&&X.parentNode.removeChild(X),ls=!0}},_showClone:function(e){if(e.lastPutMode!==`clone`){this._hideClone();return}if(ls){if(as(`showClone`,this),Q.eventCanceled)return;K.parentNode==Y&&!this.options.group.revertClone?Y.insertBefore(X,K):ss?Y.insertBefore(X,ss):Y.appendChild(X),this.options.group.revertClone&&this.animate(K,X),W(X,`display`,``),ls=!1}}};function qs(e){e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),e.cancelable&&e.preventDefault()}function Js(e,t,n,r,i,a,o,s){var c,l=e[Xo],u=l.options.onMove,d;return window.CustomEvent&&!bo&&!xo?c=new CustomEvent(`move`,{bubbles:!0,cancelable:!0}):(c=document.createEvent(`Event`),c.initEvent(`move`,!0,!0)),c.to=t,c.from=e,c.dragged=n,c.draggedRect=r,c.related=i||t,c.relatedRect=a||G(t),c.willInsertAfter=s,c.originalEvent=o,e.dispatchEvent(c),u&&(d=u.call(l,c,o)),d}function Ys(e){e.draggable=!1}function Xs(){Ms=!1}function Zs(e,t,n){var r=G(Io(n.el,0,n.options,!0)),i=Yo(n.el,n.options,J),a=10;return t?e.clientX<i.left-a||e.clientY<r.top&&e.clientX<r.right:e.clientY<i.top-a||e.clientY<r.bottom&&e.clientX<r.left}function Qs(e,t,n){var r=G(Lo(n.el,n.options.draggable)),i=Yo(n.el,n.options,J),a=10;return t?e.clientX>i.right+a||e.clientY>r.bottom&&e.clientX>r.left:e.clientY>i.bottom+a||e.clientX>r.right&&e.clientY>r.top}function $s(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&&ks<l*i){if(!Ds&&(Es===1?c>u+l*a/2:c<d-l*a/2)&&(Ds=!0),Ds)f=!0;else if(Es===1?c<u+ks:c>d-ks)return-Es}else if(c>u+l*(1-i)/2&&c<d-l*(1-i)/2)return ec(t)}return f||=o,f&&(c<u+l*a/2||c>d-l*a/2)?c>u+l/2?1:-1:0}function ec(e){return Ro(K)<Ro(e)?1:-1}function tc(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 nc(e){Ns.length=0;for(var t=e.getElementsByTagName(`input`),n=t.length;n--;){var r=t[n];r.checked&&Ns.push(r)}}function rc(e){return setTimeout(e,0)}function ic(e){return clearTimeout(e)}Ps&&H(document,`touchmove`,function(e){(Q.active||hs)&&e.cancelable&&e.preventDefault()}),Q.utils={on:H,off:U,css:W,find:No,is:function(e,t){return!!ko(e,t,e,!1)},extend:Ho,throttle:Go,closest:ko,toggleClass:jo,clone:Jo,index:Ro,nextTick:rc,cancelNextTick:ic,detectDirection:zs,getChild:Io},Q.get=function(e){return e[Xo]},Q.mount=function(){var e=[...arguments];e[0].constructor===Array&&(e=e[0]),e.forEach(function(e){if(!e.prototype||!e.prototype.constructor)throw`Sortable: Mounted plugin must be a constructor function, not ${{}.toString.call(e)}`;e.utils&&(Q.utils=fo(fo({},Q.utils),e.utils)),ns.mount(e)})},Q.create=function(e,t){return new Q(e,t)},Q.version=vo;var $=[],ac,oc,sc=!1,cc,lc,uc,dc;function fc(){function e(){for(var e in this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0},this)e.charAt(0)===`_`&&typeof this[e]==`function`&&(this[e]=this[e].bind(this))}return e.prototype={dragStarted:function(e){var t=e.originalEvent;this.sortable.nativeDraggable?H(document,`dragover`,this._handleAutoScroll):this.options.supportPointer?H(document,`pointermove`,this._handleFallbackAutoScroll):t.touches?H(document,`touchmove`,this._handleFallbackAutoScroll):H(document,`mousemove`,this._handleFallbackAutoScroll)},dragOverCompleted:function(e){var t=e.originalEvent;!this.options.dragOverBubble&&!t.rootEl&&this._handleAutoScroll(t)},drop:function(){this.sortable.nativeDraggable?U(document,`dragover`,this._handleAutoScroll):(U(document,`pointermove`,this._handleFallbackAutoScroll),U(document,`touchmove`,this._handleFallbackAutoScroll),U(document,`mousemove`,this._handleFallbackAutoScroll)),mc(),pc(),Ko()},nulling:function(){uc=oc=ac=sc=dc=cc=lc=null,$.length=0},_handleFallbackAutoScroll:function(e){this._handleAutoScroll(e,!0)},_handleAutoScroll:function(e,t){var n=this,r=(e.touches?e.touches[0]:e).clientX,i=(e.touches?e.touches[0]:e).clientY,a=document.elementFromPoint(r,i);if(uc=e,t||this.options.forceAutoScrollFallback||xo||bo||Co){hc(e,this.options,a,t);var o=Vo(a,!0);sc&&(!dc||r!==cc||i!==lc)&&(dc&&mc(),dc=setInterval(function(){var a=Vo(document.elementFromPoint(r,i),!0);a!==o&&(o=a,pc()),hc(e,n.options,a,t)},10),cc=r,lc=i)}else{if(!this.options.bubbleScroll||Vo(a,!0)===Po()){pc();return}hc(e,this.options,Vo(a,!1),!1)}}},ho(e,{pluginName:`scroll`,initializeByDefault:!0})}function pc(){$.forEach(function(e){clearInterval(e.pid)}),$=[]}function mc(){clearInterval(dc)}var hc=Go(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=Po(),l=!1,u;oc!==n&&(oc=n,pc(),ac=t.scroll,u=t.scrollFn,ac===!0&&(ac=Vo(n,!0)));var d=0,f=ac;do{var p=f,m=G(p),h=m.top,g=m.bottom,_=m.left,v=m.right,y=m.width,b=m.height,x=void 0,S=void 0,C=p.scrollWidth,w=p.scrollHeight,T=W(p),ee=p.scrollLeft,E=p.scrollTop;p===c?(x=y<C&&(T.overflowX===`auto`||T.overflowX===`scroll`||T.overflowX===`visible`),S=b<w&&(T.overflowY===`auto`||T.overflowY===`scroll`||T.overflowY===`visible`)):(x=y<C&&(T.overflowX===`auto`||T.overflowX===`scroll`),S=b<w&&(T.overflowY===`auto`||T.overflowY===`scroll`));var D=x&&(Math.abs(v-i)<=o&&ee+y<C)-(Math.abs(_-i)<=o&&!!ee),O=S&&(Math.abs(g-a)<=o&&E+b<w)-(Math.abs(h-a)<=o&&!!E);if(!$[d])for(var k=0;k<=d;k++)$[k]||($[k]={});($[d].vx!=D||$[d].vy!=O||$[d].el!==p)&&($[d].el=p,$[d].vx=D,$[d].vy=O,clearInterval($[d].pid),(D!=0||O!=0)&&(l=!0,$[d].pid=setInterval(function(){r&&this.layer===0&&Q.active._onTouchMove(uc);var t=$[this.layer].vy?$[this.layer].vy*s:0,n=$[this.layer].vx?$[this.layer].vx*s:0;typeof u==`function`&&u.call(Q.dragged.parentNode[Xo],n,t,e,uc,$[this.layer].el)!==`continue`||qo($[this.layer].el,n,t)}.bind({layer:d}),24))),d++}while(t.bubbleScroll&&f!==c&&(f=Vo(f,!1)));sc=l}},30),gc=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 _c(){}_c.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=Io(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:gc},ho(_c,{pluginName:`revertOnSpill`});function vc(){}vc.prototype={onSpill:function(e){var t=e.dragEl,n=e.putSortable||this.sortable;n.captureAnimationState(),t.parentNode&&t.parentNode.removeChild(t),n.animateAll()},drop:gc},ho(vc,{pluginName:`removeOnSpill`}),Q.mount(new fc),Q.mount(vc,_c);function yc(e){return e==null?e:JSON.parse(JSON.stringify(e))}function bc(e){f()&&de(e)}function xc(e){f()?S(e):l(e)}var Sc=null,Cc=null;function wc(e=null,t=null){Sc=e,Cc=t}function Tc(){return{data:Sc,clonedData:Cc}}var Ec=Symbol(`cloneElement`);function Dc(...e){let t=f()?.proxy,n=null,r=e[0],[,i,a]=e;Array.isArray(F(i))||(a=i,i=null);let o=null,{immediate:s=!0,clone:c=yc,forceFallback:u,fallbackOnBody:d,customUpdate:p}=F(a)??{};function m(e){let{from:t,oldIndex:r,item:a}=e,o=Array.from(t.childNodes);n=u&&!d?o.slice(0,-1):o;let s=F(F(i)?.[r]),l=c(s);wc(s,l),a[Ec]=l}function h(e){let t=e.item[Ec];if(!$a(t)){if(no(e.item),_(i)){let n=[...F(i)];i.value=Qa(n,e.newDraggableIndex,t);return}Qa(F(i),e.newDraggableIndex,t)}}function g(e){let{from:t,item:n,oldIndex:r,oldDraggableIndex:a,pullMode:o,clone:s}=e;if(to(t,n,r),o===`clone`){no(s);return}if(_(i)){let e=[...F(i)];i.value=Za(e,a);return}Za(F(i),a)}function v(e){if(p){p(e);return}let{from:t,item:n,oldIndex:r,oldDraggableIndex:a,newDraggableIndex:o}=e;if(no(n),to(t,n,r),_(i)){let e=[...F(i)];i.value=Ja(e,a,o);return}Ja(F(i),a,o)}function y(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}l(()=>{if(wc(),o)throw o})}let b={onUpdate:v,onStart:m,onAdd:h,onRemove:g,onEnd:y};function x(e){let n=F(r);return e||=eo(n)?ro(n,t?.$el):n,e&&!oo(e)&&(e=e.$el),e||qa(`Root element not found`),e}function S(){let e=F(a)??{},{immediate:t,clone:n}=e,r=Wa(e,[`immediate`,`clone`]);return so(r,(e,t)=>{co(e)&&(r[e]=(e,...n)=>(lo(e,Tc()),t(e,...n)))}),ao(i===null?{}:b,r)}let C=e=>{e=x(e),o&&w.destroy(),o=new Q(e,S())};N(()=>a,()=>{o&&so(S(),(e,t)=>{o?.option(e,t)})},{deep:!0});let w={option:(e,t)=>o?.option(e,t),destroy:()=>{o?.destroy(),o=null},save:()=>o?.save(),toArray:()=>o?.toArray(),closest:(...e)=>o?.closest(...e)};return xc(()=>{s&&C()}),bc(w.destroy),Ua({start:C,pause:()=>w?.option(`disabled`,!0),resume:()=>w?.option(`disabled`,!1)},w)}var Oc=[`update`,`start`,`add`,`remove`,`choose`,`unchoose`,`end`,`sort`,`filter`,`clone`,`move`,`change`],kc=c({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`,...Oc.map(e=>`on${e.replace(/^\S/,e=>e.toUpperCase())}`)],emits:[`update:modelValue`,...Oc],setup(e,{slots:t,emit:n,expose:r,attrs:i}){let a=Oc.reduce((e,t)=>{let r=`on${t.replace(/^\S/,e=>e.toUpperCase())}`;return e[r]=(...e)=>n(t,...e),e},{}),o=R(()=>{let t=k(e),{modelValue:n}=t,r=Wa(t,[`modelValue`]),o=Object.entries(r).reduce((e,[t,n])=>{let r=F(n);return r!==void 0&&(e[t]=r),e},{});return Ua(Ua({},a),Xa(Ua(Ua({},i),o)))}),s=R({get:()=>e.modelValue,set:e=>n(`update:modelValue`,e)}),c=w(),l=d(Dc(e.target||c,s,o));return r(l),()=>T(e.tag||`div`,{ref:c},(t?.default)?.call(t,l))}}),Ac={mounted:`mounted`,unmounted:`unmounted`};Ac.mounted,Ac.unmounted;var jc={class:`config-log-parsers`},Mc={class:`config-card`},Nc={class:`config-card__header`},Pc={class:`config-card__hint`},Fc={class:`config-card`},Ic={class:`config-card__header`},Lc={class:`config-card__header-hint`},Rc={class:`config-log-parsers__order`},zc={class:`config-log-parsers__name`},Bc={key:1,class:`config-log-parsers__empty`},Vc={class:`config-log-parsers__add-row`},Hc={class:`config-log-parsers__footer`},Uc=p(c({__name:`ServiceConfigLogs`,props:{service:{}},emits:[`save`],setup(e,{emit:r}){let s=e,c=r,l=t(),{t:u}=se(),d=Ye(),f=w([...s.service.parserIds??[]]);N(()=>s.service,e=>{f.value=[...e.parserIds??[]]});let p=R(()=>[...d.parsers].filter(e=>e.enabled).sort((e,t)=>e.name.localeCompare(t.name))),m=R(()=>p.value.filter(e=>!f.value.includes(e.id))),h=w(f.value.map(e=>d.parsers.find(t=>t.id===e)).filter(e=>e!==void 0));N(f,e=>{let t=h.value.filter(t=>e.includes(t.id)),n=e.filter(e=>!t.find(t=>t.id===e)).map(e=>d.parsers.find(t=>t.id===e)).filter(e=>e!==void 0);h.value=[...t,...n]}),N(()=>d.parsers,()=>{h.value=f.value.map(e=>d.parsers.find(t=>t.id===e)).filter(e=>e!==void 0)});let _=w(null);function y(e){if(!e)return;let t=d.parsers.find(t=>t.id===e);t&&(f.value=[...f.value,e],h.value=[...h.value,t],_.value=null,T())}function x(e){f.value=f.value.filter(t=>t!==e),h.value=h.value.filter(t=>t.id!==e),T()}function C(){f.value=h.value.map(e=>e.id),T()}function T(){c(`save`,{parserIds:h.value.map(e=>e.id)})}return S(()=>{d.fetchParsers(),d.subscribeParsers()}),de(()=>{d.unsubscribeParsers()}),(e,t)=>(P(),b(`div`,jc,[E(`div`,Mc,[E(`div`,Nc,[t[3]||=E(`i`,{class:`pi pi-code`},null,-1),E(`span`,null,a(F(u)(`serviceConfigLogs.jsParsers`)),1)]),E(`small`,Pc,a(F(u)(`serviceConfigLogs.jsParsersHint`)),1)]),E(`div`,Fc,[E(`div`,Ic,[t[4]||=E(`i`,{class:`pi pi-sort-alt`},null,-1),E(`span`,null,a(F(u)(`serviceConfigLogs.executionOrder`)),1),E(`small`,Lc,a(F(u)(`serviceConfigLogs.executionOrderHint`)),1)]),h.value.length>0?(P(),o(F(kc),{key:0,modelValue:h.value,"onUpdate:modelValue":t[0]||=e=>h.value=e,animation:150,handle:`.drag-handle`,class:`config-log-parsers__drag-list`,"data-testid":`log-parsers-drag-list`,onEnd:C},{default:B(()=>[(P(!0),b(z,null,he(h.value,(e,r)=>(P(),b(`div`,{key:e.id,class:`config-log-parsers__drag-row`,"data-testid":`log-parsers-drag-row`},[t[5]||=E(`span`,{class:`drag-handle`,"data-testid":`drag-handle`},[E(`i`,{class:`pi pi-bars`})],-1),E(`span`,Rc,a(r+1),1),E(`span`,zc,a(e.name),1),e.builtin?(P(),o(F(ue),{key:0,severity:`secondary`,class:`config-log-parsers__builtin-badge`},{default:B(()=>[g(a(F(u)(`serviceConfigLogs.builtin`)),1)]),_:1})):i(``,!0),e.enabled?i(``,!0):(P(),o(F(ue),{key:1,severity:`warn`,class:`config-log-parsers__disabled-badge`},{default:B(()=>[g(a(F(u)(`serviceConfigLogs.disabled`)),1)]),_:1})),v(F(n),{icon:`pi pi-trash`,severity:`danger`,text:``,size:`small`,class:`config-log-parsers__delete`,onClick:t=>x(e.id)},null,8,[`onClick`])]))),128))]),_:1},8,[`modelValue`])):i(``,!0),h.value.length===0?(P(),b(`div`,Bc,a(F(u)(`serviceConfigLogs.empty`)),1)):i(``,!0),E(`div`,Vc,[v(F(ge),{modelValue:_.value,"onUpdate:modelValue":[t[1]||=e=>_.value=e,y],options:m.value,"option-label":`name`,"option-value":`id`,placeholder:F(u)(`serviceConfigLogs.addParser`),class:`config-log-parsers__add-select`,loading:F(d).loading,disabled:m.value.length===0},{option:B(({option:e})=>[E(`span`,null,a(e.name),1),e.builtin?(P(),o(F(ue),{key:0,severity:`secondary`,class:`ml-2`,style:{"font-size":`0.65rem`,padding:`0.1rem 0.35rem`}},{default:B(()=>[g(a(F(u)(`serviceConfigLogs.builtin`)),1)]),_:1})):i(``,!0)]),_:1},8,[`modelValue`,`options`,`placeholder`,`loading`,`disabled`])])]),E(`div`,Hc,[v(F(n),{label:F(u)(`serviceConfigLogs.manageParsers`),icon:`pi pi-cog`,severity:`secondary`,outlined:``,size:`small`,onClick:t[2]||=e=>F(l).push({name:`settings`,query:{section:`parsers`}})},null,8,[`label`])])]))}}),[[`__scopeId`,`data-v-73b711b6`]]),Wc={class:`config-log-sources`},Gc={class:`config-card`},Kc={class:`config-card__header`},qc={class:`config-card__hint`},Jc={key:0,class:`config-card config-card--list`},Yc={class:`source-row__info`},Xc={class:`source-row__type`},Zc={class:`source-row__label`},Qc={class:`source-row__actions`},$c={key:1,class:`config-log-sources__empty`},el={class:`config-log-sources__footer`},tl={class:`dialog-form`},nl={class:`dialog-form__field`},rl={for:`lsrc-type`,class:`dialog-form__label`},il={class:`dialog-form__field`},al={for:`lsrc-path-file`,class:`dialog-form__label`},ol={class:`dialog-form__field`},sl={for:`lsrc-encoding-file`,class:`dialog-form__label`},cl={class:`dialog-form__field dialog-form__field--row`},ll={for:`lsrc-startFromEnd-file`,class:`dialog-form__label`},ul={class:`dialog-form__field dialog-form__field--row`},dl={for:`lsrc-createIfNotExists-file`,class:`dialog-form__label`},fl={class:`dialog-form__field`},pl={for:`lsrc-connectionString-mongo`,class:`dialog-form__label`},ml={class:`dialog-form__row`},hl={class:`dialog-form__field`},gl={class:`dialog-form__field`},_l={class:`dialog-form__row`},vl={class:`dialog-form__field`},yl={class:`dialog-form__field`},bl={class:`dialog-form__field`},xl={class:`dialog-form__row`},Sl={class:`dialog-form__field dialog-form__field--grow`},Cl={class:`dialog-form__field dialog-form__field--port`},wl={class:`dialog-form__row`},Tl={class:`dialog-form__field`},El={class:`dialog-form__field`},Dl={class:`dialog-form__row`},Ol={class:`dialog-form__field`},kl={class:`dialog-form__field`},Al={class:`dialog-form__row`},jl={class:`dialog-form__field`},Ml={class:`dialog-form__field`},Nl={class:`dialog-form__row`},Pl={class:`dialog-form__field`},Fl={class:`dialog-form__field`},Il={class:`dialog-form__field`},Ll={key:3,class:`dialog-form__hint-block`},Rl=p(c({__name:`ServiceConfigLogSources`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let{t:o}=se(),s=e,c=t,l=[{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 u(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 d=w([...s.service.logSources??[]]);N(()=>s.service.logSources,e=>{d.value=[...e??[]]});let f=w(!1),p=w(null),m=w(u(`console`));function h(){p.value=null,m.value=u(`file`),f.value=!0}function _(e){p.value=e,m.value={...d.value[e]},f.value=!0}function y(e){m.value=u(e)}function x(){p.value===null?d.value=[...d.value,{...m.value}]:d.value=d.value.map((e,t)=>t===p.value?{...m.value}:e),f.value=!1,c(`save`,{logSources:d.value})}function S(e){d.value=d.value.filter((t,n)=>n!==e),c(`save`,{logSources:d.value})}function C(e){return e.type===`console`?`Console`:e.type===`file`?e.path||`(no path)`:e.type===`mongo`?e.database?`mongo/${e.database}/${e.collection}`:`(not configured)`:e.type===`mysql`?e.database?`mysql/${e.host}/${e.database}/${e.table}`:`(not configured)`:e.type}function T(e){return e===`console`?`pi-terminal`:e===`file`?`pi-file`:`pi-database`}return(e,t)=>(P(),b(`div`,Wc,[E(`div`,Gc,[E(`div`,Kc,[t[23]||=E(`i`,{class:`pi pi-inbox`},null,-1),E(`span`,null,a(F(o)(`serviceConfigLogSources.title`)),1)]),E(`small`,qc,a(F(o)(`serviceConfigLogSources.hint`)),1)]),d.value.length>0?(P(),b(`div`,Jc,[(P(!0),b(z,null,he(d.value,(e,t)=>(P(),b(`div`,{key:t,class:`source-row`},[E(`i`,{class:r(`pi ${T(e.type)} source-row__icon`)},null,2),E(`div`,Yc,[E(`span`,Xc,a(e.type),1),E(`span`,Zc,a(C(e)),1)]),E(`div`,Qc,[v(F(n),{icon:`pi pi-pencil`,text:``,size:`small`,severity:`secondary`,onClick:e=>_(t)},null,8,[`onClick`]),v(F(n),{icon:`pi pi-trash`,text:``,size:`small`,severity:`danger`,onClick:e=>S(t)},null,8,[`onClick`])])]))),128))])):(P(),b(`div`,$c,[t[24]||=E(`i`,{class:`pi pi-inbox config-log-sources__empty-icon`},null,-1),E(`p`,null,a(F(o)(`serviceConfigLogSources.empty`)),1),E(`small`,null,a(F(o)(`serviceConfigLogSources.emptyHint`)),1)])),E(`div`,el,[v(F(n),{label:F(o)(`serviceConfigLogSources.addSource`),icon:`pi pi-plus`,size:`small`,onClick:h},null,8,[`label`])]),v(F(ee),{visible:f.value,"onUpdate:visible":t[22]||=e=>f.value=e,header:p.value===null?F(o)(`serviceConfigLogSources.addDialog`):F(o)(`serviceConfigLogSources.editDialog`),modal:``,style:{width:`520px`}},{footer:B(()=>[v(F(n),{label:F(o)(`serviceConfigLogSources.cancel`),severity:`secondary`,outlined:``,onClick:t[21]||=e=>f.value=!1},null,8,[`label`]),v(F(n),{label:p.value===null?F(o)(`serviceConfigLogSources.add`):F(o)(`serviceConfigLogSources.save`),icon:`pi pi-check`,onClick:x},null,8,[`label`])]),default:B(()=>[E(`div`,tl,[E(`div`,nl,[E(`label`,rl,a(F(o)(`serviceConfigLogSources.type`)),1),v(F(ge),{"input-id":`lsrc-type`,"model-value":m.value.type,options:l,"option-label":`label`,"option-value":`value`,class:`dialog-form__input`,"onUpdate:modelValue":y},null,8,[`model-value`])]),m.value.type===`file`?(P(),b(z,{key:0},[E(`div`,il,[E(`label`,al,[g(a(F(o)(`serviceConfigLogSources.path`))+` `,1),t[25]||=E(`span`,{class:`dialog-form__required`},`*`,-1)]),v(F(j),{id:`lsrc-path-file`,modelValue:m.value.path,"onUpdate:modelValue":t[0]||=e=>m.value.path=e,class:`dialog-form__input`,placeholder:`/var/log/app.log`},null,8,[`modelValue`])]),E(`div`,ol,[E(`label`,sl,a(F(o)(`serviceConfigLogSources.encoding`)),1),v(F(j),{id:`lsrc-encoding-file`,modelValue:m.value.encoding,"onUpdate:modelValue":t[1]||=e=>m.value.encoding=e,class:`dialog-form__input`,placeholder:`utf-8`},null,8,[`modelValue`])]),E(`div`,cl,[E(`label`,ll,a(F(o)(`serviceConfigLogSources.startFromEnd`)),1),v(F(Ie),{"input-id":`lsrc-startFromEnd-file`,modelValue:m.value.startFromEnd,"onUpdate:modelValue":t[2]||=e=>m.value.startFromEnd=e},null,8,[`modelValue`])]),E(`div`,ul,[E(`label`,dl,a(F(o)(`serviceConfigLogSources.createIfNotExists`)),1),v(F(Ie),{"input-id":`lsrc-createIfNotExists-file`,modelValue:m.value.createIfNotExists,"onUpdate:modelValue":t[3]||=e=>m.value.createIfNotExists=e},null,8,[`modelValue`])])],64)):m.value.type===`mongo`?(P(),b(z,{key:1},[E(`div`,fl,[E(`label`,pl,[g(a(F(o)(`serviceConfigLogSources.connectionString`))+` `,1),t[26]||=E(`span`,{class:`dialog-form__required`},`*`,-1)]),v(F(j),{id:`lsrc-connectionString-mongo`,modelValue:m.value.connectionString,"onUpdate:modelValue":t[4]||=e=>m.value.connectionString=e,class:`dialog-form__input`,placeholder:`mongodb://user:pass@host:27017`,type:`password`,autocomplete:`off`},null,8,[`modelValue`])]),E(`div`,ml,[E(`div`,hl,[t[27]||=E(`label`,{for:`lsrc-database-mongo`,class:`dialog-form__label`},[g(`Database `),E(`span`,{class:`dialog-form__required`},`*`)],-1),v(F(j),{id:`lsrc-database-mongo`,modelValue:m.value.database,"onUpdate:modelValue":t[5]||=e=>m.value.database=e,class:`dialog-form__input`,placeholder:`mydb`},null,8,[`modelValue`])]),E(`div`,gl,[t[28]||=E(`label`,{for:`lsrc-collection-mongo`,class:`dialog-form__label`},[g(`Collection `),E(`span`,{class:`dialog-form__required`},`*`)],-1),v(F(j),{id:`lsrc-collection-mongo`,modelValue:m.value.collection,"onUpdate:modelValue":t[6]||=e=>m.value.collection=e,class:`dialog-form__input`,placeholder:`logs`},null,8,[`modelValue`])])]),E(`div`,_l,[E(`div`,vl,[t[29]||=E(`label`,{for:`lsrc-timestampField-mongo`,class:`dialog-form__label`},`Timestamp field`,-1),v(F(j),{id:`lsrc-timestampField-mongo`,modelValue:m.value.timestampField,"onUpdate:modelValue":t[7]||=e=>m.value.timestampField=e,class:`dialog-form__input`,placeholder:`timestamp`},null,8,[`modelValue`])]),E(`div`,yl,[t[30]||=E(`label`,{for:`lsrc-messageField-mongo`,class:`dialog-form__label`},`Message field`,-1),v(F(j),{id:`lsrc-messageField-mongo`,modelValue:m.value.messageField,"onUpdate:modelValue":t[8]||=e=>m.value.messageField=e,class:`dialog-form__input`,placeholder:`message`},null,8,[`modelValue`])])]),E(`div`,bl,[t[31]||=E(`label`,{for:`lsrc-levelField-mongo`,class:`dialog-form__label`},[g(`Level field `),E(`span`,{class:`dialog-form__hint`},`(optional)`)],-1),v(F(j),{id:`lsrc-levelField-mongo`,modelValue:m.value.levelField,"onUpdate:modelValue":t[9]||=e=>m.value.levelField=e,class:`dialog-form__input`,placeholder:`level`},null,8,[`modelValue`])])],64)):m.value.type===`mysql`?(P(),b(z,{key:2},[E(`div`,xl,[E(`div`,Sl,[t[32]||=E(`label`,{for:`lsrc-host-mysql`,class:`dialog-form__label`},[g(`Host `),E(`span`,{class:`dialog-form__required`},`*`)],-1),v(F(j),{id:`lsrc-host-mysql`,modelValue:m.value.host,"onUpdate:modelValue":t[10]||=e=>m.value.host=e,class:`dialog-form__input`,placeholder:`localhost`},null,8,[`modelValue`])]),E(`div`,Cl,[t[33]||=E(`label`,{for:`lsrc-port-mysql`,class:`dialog-form__label`},`Port`,-1),v(F(Pe),{"input-id":`lsrc-port-mysql`,modelValue:m.value.port,"onUpdate:modelValue":t[11]||=e=>m.value.port=e,min:1,max:65535,class:`dialog-form__input`},null,8,[`modelValue`])])]),E(`div`,wl,[E(`div`,Tl,[t[34]||=E(`label`,{for:`lsrc-user-mysql`,class:`dialog-form__label`},[g(`User `),E(`span`,{class:`dialog-form__required`},`*`)],-1),v(F(j),{id:`lsrc-user-mysql`,modelValue:m.value.user,"onUpdate:modelValue":t[12]||=e=>m.value.user=e,class:`dialog-form__input`,placeholder:`root`},null,8,[`modelValue`])]),E(`div`,El,[t[35]||=E(`label`,{for:`lsrc-password-mysql`,class:`dialog-form__label`},`Password`,-1),v(F(j),{id:`lsrc-password-mysql`,modelValue:m.value.password,"onUpdate:modelValue":t[13]||=e=>m.value.password=e,class:`dialog-form__input`,type:`password`,autocomplete:`new-password`},null,8,[`modelValue`])])]),E(`div`,Dl,[E(`div`,Ol,[t[36]||=E(`label`,{for:`lsrc-database-mysql`,class:`dialog-form__label`},[g(`Database `),E(`span`,{class:`dialog-form__required`},`*`)],-1),v(F(j),{id:`lsrc-database-mysql`,modelValue:m.value.database,"onUpdate:modelValue":t[14]||=e=>m.value.database=e,class:`dialog-form__input`,placeholder:`app_db`},null,8,[`modelValue`])]),E(`div`,kl,[t[37]||=E(`label`,{for:`lsrc-table-mysql`,class:`dialog-form__label`},[g(`Table `),E(`span`,{class:`dialog-form__required`},`*`)],-1),v(F(j),{id:`lsrc-table-mysql`,modelValue:m.value.table,"onUpdate:modelValue":t[15]||=e=>m.value.table=e,class:`dialog-form__input`,placeholder:`logs`},null,8,[`modelValue`])])]),E(`div`,Al,[E(`div`,jl,[t[38]||=E(`label`,{for:`lsrc-timestampColumn-mysql`,class:`dialog-form__label`},`Timestamp column`,-1),v(F(j),{id:`lsrc-timestampColumn-mysql`,modelValue:m.value.timestampColumn,"onUpdate:modelValue":t[16]||=e=>m.value.timestampColumn=e,class:`dialog-form__input`,placeholder:`created_at`},null,8,[`modelValue`])]),E(`div`,Ml,[t[39]||=E(`label`,{for:`lsrc-messageColumn-mysql`,class:`dialog-form__label`},`Message column`,-1),v(F(j),{id:`lsrc-messageColumn-mysql`,modelValue:m.value.messageColumn,"onUpdate:modelValue":t[17]||=e=>m.value.messageColumn=e,class:`dialog-form__input`,placeholder:`message`},null,8,[`modelValue`])])]),E(`div`,Nl,[E(`div`,Pl,[t[40]||=E(`label`,{for:`lsrc-levelColumn-mysql`,class:`dialog-form__label`},[g(`Level column `),E(`span`,{class:`dialog-form__hint`},`(optional)`)],-1),v(F(j),{id:`lsrc-levelColumn-mysql`,modelValue:m.value.levelColumn,"onUpdate:modelValue":t[18]||=e=>m.value.levelColumn=e,class:`dialog-form__input`,placeholder:`level`},null,8,[`modelValue`])]),E(`div`,Fl,[t[41]||=E(`label`,{for:`lsrc-pollIntervalMs-mysql`,class:`dialog-form__label`},`Poll interval (ms)`,-1),v(F(Pe),{"input-id":`lsrc-pollIntervalMs-mysql`,modelValue:m.value.pollIntervalMs,"onUpdate:modelValue":t[19]||=e=>m.value.pollIntervalMs=e,min:500,max:6e4,class:`dialog-form__input`},null,8,[`modelValue`])])]),E(`div`,Il,[t[42]||=E(`label`,{for:`lsrc-query-mysql`,class:`dialog-form__label`},[g(`Custom query `),E(`span`,{class:`dialog-form__hint`},[g(`(optional, must include `),E(`code`,null,`WHERE … > ?`),g(`)`)])],-1),v(F(j),{id:`lsrc-query-mysql`,modelValue:m.value.query,"onUpdate:modelValue":t[20]||=e=>m.value.query=e,class:`dialog-form__input`,placeholder:`SELECT * FROM logs WHERE created_at > ? ORDER BY id ASC`},null,8,[`modelValue`])])],64)):m.value.type===`console`?(P(),b(`small`,Ll,`The console source captures stdout/stderr and is always active. Adding it here has no effect unless you want to track it explicitly.`)):i(``,!0)])]),_:1},8,[`visible`,`header`])]))}}),[[`__scopeId`,`data-v-1ceb461a`]]),zl={class:`config-traefik`},Bl={class:`traefik-entry__fields`},Vl=p(c({__name:`ServiceConfigTraefik`,props:{service:{}},emits:[`save`],setup(e,{emit:t}){let r=e,a=t,s=w([...r.service.localUrls??[]]),c=w(null);S(async()=>{r.service.agentId&&(c.value=(await D.settings.getAgentTraefikConfig.query({agentId:r.service.agentId})).enabled)});let l=null;N(()=>r.service,e=>{l||(s.value=[...e.localUrls??[]])});function u(){s.value=[...s.value,{url:``,port:3e3}]}function d(e){s.value=s.value.filter((t,n)=>n!==e),p()}function f(e,t,n){s.value=s.value.map((r,i)=>i===e?{...r,[t]:n}:r)}function p(){l&&clearTimeout(l),l=setTimeout(()=>{a(`save`,{localUrls:s.value.filter(e=>e.url.trim())}),l=null},150)}return(e,t)=>(P(),b(`div`,zl,[c.value===!1?(P(),o(F(De),{key:0,severity:`warn`,closable:!1},{default:B(()=>[t[1]||=g(` Traefik n'est pas activé. Configurez-le dans `,-1),v(F(ne),{to:{name:`settings`,query:{section:`agents`}}},{default:B(()=>[...t[0]||=[g(`Paramètres → Agents`,-1)]]),_:1}),t[2]||=g(` (bouton Traefik sur la ligne de l'agent) pour que ces URLs soient actives. `,-1)]),_:1})):i(``,!0),(P(!0),b(z,null,he(s.value,(e,t)=>(P(),b(`div`,{key:t,class:`traefik-entry`},[E(`div`,Bl,[v(F(j),{"model-value":e.url,class:`traefik-entry__url`,placeholder:`mon-app.local.mondomaine.com`,"onUpdate:modelValue":e=>f(t,`url`,e),onBlur:p,onKeydown:L(V(p,[`prevent`]),[`enter`])},null,8,[`model-value`,`onUpdate:modelValue`,`onKeydown`]),v(F(Pe),{"model-value":e.port,class:`traefik-entry__port`,min:1,max:65535,"use-grouping":!1,placeholder:`3000`,"onUpdate:modelValue":e=>{f(t,`port`,e??3e3),p()}},null,8,[`model-value`,`onUpdate:modelValue`]),v(F(n),{icon:`pi pi-trash`,severity:`danger`,text:``,size:`small`,onClick:e=>d(t)},null,8,[`onClick`])])]))),128)),v(F(n),{icon:`pi pi-plus`,label:`Ajouter une URL`,size:`small`,outlined:``,onClick:u})]))}}),[[`__scopeId`,`data-v-a71f945b`]]),Hl={class:`config-view`,"data-testid":`config-view`},Ul={class:`config-view__header`},Wl={class:`config-view__title`},Gl={class:`config-view__actions`},Kl=p(c({__name:`ServiceConfigView`,props:{service:{},projectId:{}},emits:[`remove-service`],setup(e,{emit:r}){let i=e,o=r,{t:s}=se(),c=ce(),l=te(),u=re(),{isDebug:d}=sn(),f=C(),p=t(),m=[`general`,`commands`,`shortcuts`,`env`,`health`,`log-parsers`,`log-sources`,`traefik`],h=R(()=>{let e=f.query.configTab;return m.includes(e)?e:`general`});function g(e){p.replace({query:{...f.query,configTab:e}})}let _=R(()=>l.getByRef({id:i.projectId,orgId:u.activeOrgId})?.activeEnvironmentId);async function y(e,t){await t()?d.value&&console.debug(`[autosave] ${e} saved`):console.error(`[autosave] ${e} failed:`,c.error??`Save failed`)}async function x(e){await y(`General`,()=>c.update(i.service.id,e))}async function S(e){await y(`Commands`,()=>c.update(i.service.id,e))}async function w(e){await y(`Health check`,()=>c.update(i.service.id,{healthCheck:e??null}))}async function T(e){await y(`Shortcuts`,()=>c.update(i.service.id,{shortcuts:e}))}async function ee(e){await y(`Docker`,()=>c.update(i.service.id,{dockerConfig:e}))}async function D(e){await y(`Log parsers`,()=>c.update(i.service.id,e))}async function O(e){await y(`Log sources`,()=>c.update(i.service.id,e))}async function k(e){await y(`Traefik`,()=>c.update(i.service.id,e))}function ne(){o(`remove-service`,i.service.id)}return(t,r)=>(P(),b(`div`,Hl,[E(`div`,Ul,[E(`h2`,Wl,a(F(s)(`serviceConfigView.title`)),1),E(`div`,Gl,[v(F(n),{label:F(s)(`serviceConfigView.remove`),icon:`pi pi-trash`,severity:`danger`,size:`small`,outlined:``,onClick:ne},null,8,[`label`])])]),v(F(ze),{value:h.value,class:`config-view__tabs`,"onUpdate:value":g},{default:B(()=>[v(F(Le),null,{default:B(()=>[v(F(Be),{value:`general`,"data-testid":`tab-config`},{default:B(()=>[r[0]||=E(`i`,{class:`pi pi-cog tab-icon`},null,-1),E(`span`,null,a(F(s)(`serviceConfigView.tabGeneral`)),1)]),_:1}),v(F(Be),{value:`commands`,"data-testid":`tab-commands`},{default:B(()=>[r[1]||=E(`i`,{class:`pi pi-code tab-icon`},null,-1),E(`span`,null,a(F(s)(`serviceConfigView.tabCommands`)),1)]),_:1}),v(F(Be),{value:`shortcuts`,"data-testid":`tab-shortcuts`},{default:B(()=>[r[2]||=E(`i`,{class:`pi pi-bolt tab-icon`},null,-1),E(`span`,null,a(F(s)(`serviceConfigView.tabShortcuts`)),1)]),_:1}),v(F(Be),{value:`env`,"data-testid":`tab-env`},{default:B(()=>[r[3]||=E(`i`,{class:`pi pi-database tab-icon`},null,-1),E(`span`,null,a(F(s)(`serviceConfigView.tabEnvironment`)),1)]),_:1}),v(F(Be),{value:`health`},{default:B(()=>[r[4]||=E(`i`,{class:`pi pi-heart tab-icon`},null,-1),E(`span`,null,a(F(s)(`serviceConfigView.tabHealthCheck`)),1)]),_:1}),v(F(Be),{value:`log-parsers`,"data-testid":`tab-log-parsers`},{default:B(()=>[r[5]||=E(`i`,{class:`pi pi-list tab-icon`},null,-1),E(`span`,null,a(F(s)(`serviceConfigView.tabLogParsers`)),1)]),_:1}),v(F(Be),{value:`log-sources`},{default:B(()=>[r[6]||=E(`i`,{class:`pi pi-inbox tab-icon`},null,-1),E(`span`,null,a(F(s)(`serviceConfigView.tabLogSources`)),1)]),_:1}),v(F(Be),{value:`traefik`},{default:B(()=>[...r[7]||=[E(`i`,{class:`pi pi-server tab-icon`},null,-1),E(`span`,null,`Traefik`,-1)]]),_:1})]),_:1}),v(F(Re),null,{default:B(()=>[v(F(Ve),{value:`general`},{default:B(()=>[v(Un,{service:e.service,onSave:x},null,8,[`service`])]),_:1}),v(F(Ve),{value:`commands`},{default:B(()=>[v(gi,{service:e.service,onSave:S,onDockerSave:ee},null,8,[`service`])]),_:1}),v(F(Ve),{value:`shortcuts`,"data-testid":`tabpanel-shortcuts`},{default:B(()=>[v(La,{service:e.service,onSave:T},null,8,[`service`])]),_:1}),v(F(Ve),{value:`env`},{default:B(()=>[v(na,{service:e.service,"project-id":e.projectId,"active-environment-id":_.value},null,8,[`service`,`project-id`,`active-environment-id`])]),_:1}),v(F(Ve),{value:`health`},{default:B(()=>[v(Ta,{service:e.service,onSave:w},null,8,[`service`])]),_:1}),v(F(Ve),{value:`log-parsers`,"data-testid":`tabpanel-log-parsers`},{default:B(()=>[v(Uc,{service:e.service,onSave:D},null,8,[`service`])]),_:1}),v(F(Ve),{value:`log-sources`},{default:B(()=>[v(Rl,{service:e.service,onSave:O},null,8,[`service`])]),_:1}),v(F(Ve),{value:`traefik`},{default:B(()=>[v(Vl,{service:e.service,onSave:k},null,8,[`service`])]),_:1})]),_:1})]),_:1},8,[`value`])]))}}),[[`__scopeId`,`data-v-af965568`]]),ql={key:0,class:`service-detail`},Jl={key:1,class:`service-detail__not-found`},Yl=p(c({__name:`ServiceDetailPage`,setup(e){let n=C(),r=t(),s=_e(),c=I(),{t:l}=se(),u=ce(),d=le(),f=te(),{setServiceContext:p}=xe(),m=R(()=>n.params.id);N(m,e=>p(e),{immediate:!0}),de(()=>p(null));let h=R(()=>{let e=n.params.tab;return e===`terminal`||e===`metrics`||e===`config`||e===`git`||e===`wiki`?e:`terminal`}),g=R(()=>u.getById(m.value)),_=R(()=>d.getByService(m.value)),v=R(()=>f.currentProject?.id??``);function y(e){let t=u.getById(e);c.require({message:l(`serviceDetail.deleteConfirmMessage`,{name:t?.name??e}),header:l(`serviceDetail.deleteConfirmHeader`),icon:`pi pi-exclamation-triangle`,rejectLabel:l(`actions.cancel`),acceptLabel:l(`actions.delete`),acceptProps:{severity:`danger`},accept:async()=>{await u.remove(e)&&(s.add({severity:`success`,summary:l(`serviceDetail.removed`),detail:l(`serviceDetail.deleted`),life:3e3}),r.push(`/`))}})}return(e,t)=>g.value?(P(),b(`div`,ql,[h.value===`terminal`?(P(),o(Kt,{key:`terminal-`+m.value,service:g.value,processes:_.value},null,8,[`service`,`processes`])):h.value===`metrics`?(P(),o(rn,{key:`metrics-`+m.value,service:g.value,processes:_.value},null,8,[`service`,`processes`])):h.value===`config`?(P(),o(Kl,{key:`config-`+m.value,service:g.value,"project-id":v.value,onRemoveService:y},null,8,[`service`,`project-id`])):h.value===`git`?(P(),o(O,{key:`git-`+m.value,"service-id":m.value},null,8,[`service-id`])):h.value===`wiki`?(P(),o(Xe,{key:`wiki-`+m.value,scope:`service:${m.value}`},null,8,[`scope`])):i(``,!0)])):(P(),b(`div`,Jl,[E(`p`,null,a(F(l)(`serviceDetail.notFound`)),1)]))}}),[[`__scopeId`,`data-v-e3e9fe7f`]]);export{Yl as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$n as e,Bn as t,Di as n,Ea as r,Fi as i,Ia as ee,In as a,Kt as o,Ni as s,Oi as c,Qi as te,Qn as ne,Ra as l,Ti as u,Tn as d,Wt as re,Yt as ie,at as ae,bn as oe,cr as se,ct as ce,d as le,fn as f,ia as ue,in as p,ir as de,na as m,qa as h,vi as g,wi as _,xi as v,ya as fe,yi as y}from"./index-CNqv4qMO.js";import{n as b}from"./plus-CTzNAMSa.js";import{t as pe}from"./fieldset-CaBT4en1.js";import{t as me}from"./toggleswitch-98WbJy1b.js";import{t as he}from"./autocomplete-CBY4HTQR.js";import{t as x}from"./divider-BnVkpmcn.js";var ge={class:`service-form-page`},_e={class:`page-header`},ve={key:0,class:`restart-banner`},ye={key:1,class:`loading-container`},be={class:`form-section`},S={class:`form-group`},C={for:`svc-project`},w={class:`form-hint`},T={class:`form-group`},E={for:`svc-agent`},D={class:`form-hint`},O={class:`form-group`},k={for:`svc-name`},A={class:`form-hint`},j={class:`form-actions`},M={class:`form-section`},N={class:`form-row`},xe={class:`form-group flex-1`},Se={for:`svc-name-edit`},Ce={class:`form-group`,style:{width:`160px`}},we={for:`svc-runner`},Te={class:`form-group`},Ee={for:`svc-agent-edit`},De={class:`form-hint`},Oe={class:`form-row`},ke={class:`form-group flex-1`},Ae={for:`svc-cwd`},je={class:`form-group`,style:{"min-width":`200px`}},Me={for:`svc-ports`},P={class:`form-group switch-group`},Ne={for:`svc-autorestart`},Pe={class:`form-section`},Fe={class:`section-header`},Ie={key:0,class:`empty-env`},Le={class:`form-group`},Re={for:`hc-path`},ze={class:`form-row`},Be={class:`form-group flex-1`},Ve={for:`hc-interval`},He={class:`form-group flex-1`},Ue={for:`hc-timeout`},We={class:`form-group flex-1`},Ge={for:`hc-retries`},F=`__inherit__`,I=a(i({__name:`ServiceFormPage`,props:{id:{}},setup(i){let a=i,I=e(),Ke=ne(),L=de(),R=re(),z=ce(),B=ae(),V=ie(),qe=le(),{t:H}=se(),U=_(()=>!!a.id),W=_(()=>Ke.query.projectId),G=l(!1),K=l(!1),q=l(null),J=l(null),Y=l(!1),X=ee({projectId:``,agentId:F,name:``,cwd:``,ports:[],runner:`native`,autoRestart:!1,healthCheck:{enabled:!1,path:``,interval:3e4,timeout:5e3,retries:3}}),Z=l([]),Je=[{label:`Native`,value:`native`},{label:`Docker`,value:`docker`}],Ye=_(()=>R.projects.map(e=>({label:e.name,value:e.id}))),Q=_(()=>[{label:H(`serviceForm.agentInherit`),value:F},...B.agents.map(e=>({label:`${e.config.name} ${e.status.connected?`(Online)`:`(Offline)`}`,value:e.config.id}))]);function Xe(){Z.value=[...Z.value,{key:``,value:``,isSecret:!1}]}function Ze(e){Z.value=Z.value.filter((t,n)=>n!==e)}function Qe(){let e={},t=!1;for(let n of Z.value){let r=n.key.trim();r&&(e[r]={value:{value:n.value,pre:``,post:``,isSecret:n.isSecret}},t=!0)}return t?e:void 0}async function $e(){if(a.id){G.value=!0;try{let e=await d.service.get.query({id:a.id});X.agentId=e.agentId??F,X.name=e.name,X.cwd=e.cwd??``,X.ports=(e.ports??[]).map(String),X.runner=e.runner,X.autoRestart=e.autoRestart,e.healthCheck&&(X.healthCheck.enabled=!0,X.healthCheck.path=e.healthCheck.path,X.healthCheck.interval=e.healthCheck.interval,X.healthCheck.timeout=e.healthCheck.timeout,X.healthCheck.retries=e.healthCheck.retries),e.variables&&typeof e.variables==`object`&&Object.keys(e.variables).length>0&&(Z.value=Object.entries(e.variables).map(([e,t])=>{let n=t;return{key:e,value:n.value.value??``,isSecret:n.value.isSecret??!1}}))}catch(e){L.add({severity:`error`,summary:H(`serviceForm.error`),detail:o(e)??H(`serviceForm.failedToLoad`),life:5e3}),I.back()}finally{G.value=!1}}}async function $(){if(!(!U.value||!a.id||K.value||G.value)){if(!X.name.trim()){L.add({severity:`warn`,summary:H(`serviceForm.validation`),detail:H(`serviceForm.nameRequired`),life:3e3});return}K.value=!0;try{let e={agentId:X.agentId===F?null:X.agentId||null,name:X.name.trim(),cwd:X.cwd.trim()||void 0,ports:X.ports.map(Number).filter(e=>e>0&&e<=65535),runner:X.runner,autoRestart:X.autoRestart,variables:Qe(),healthCheck:X.healthCheck.enabled?{path:X.healthCheck.path,interval:X.healthCheck.interval,timeout:X.healthCheck.timeout,retries:X.healthCheck.retries}:void 0};(await d.service.update.mutate({id:a.id,...e}))?.stoppedForAgentChange?(q.value=e.agentId,J.value=a.id,L.add({severity:`warn`,summary:H(`serviceForm.saved`),detail:H(`serviceForm.agentChangedServiceStopped`),life:4e3})):L.add({severity:`success`,summary:H(`serviceForm.saved`),life:1500})}catch(e){L.add({severity:`error`,summary:H(`serviceForm.error`),detail:o(e)??H(`serviceForm.failedToSave`),life:5e3})}finally{K.value=!1}}}async function et(){if(!(!q.value||!J.value)){Y.value=!0;try{await qe.start(q.value,J.value),q.value=null,J.value=null,L.add({severity:`success`,summary:H(`serviceForm.restarted`),life:2e3})}catch(e){L.add({severity:`error`,summary:H(`serviceForm.error`),detail:o(e),life:5e3})}finally{Y.value=!1}}}async function tt(){if(!X.name.trim()){L.add({severity:`warn`,summary:H(`serviceForm.validation`),detail:H(`serviceForm.nameRequired`),life:3e3});return}if(!X.projectId){L.add({severity:`warn`,summary:H(`serviceForm.validation`),detail:H(`serviceForm.projectRequired`),life:3e3});return}K.value=!0;try{let e=await z.create({name:X.name.trim(),...X.agentId&&X.agentId!==F?{agentId:X.agentId}:{}});if(!e)throw Error(z.error??`Failed to create service`);let t=R.getByRef({id:X.projectId,orgId:V.activeOrgId})??R.getById(X.projectId);await R.addService(t??{id:X.projectId},e.id),L.add({severity:`success`,summary:H(`serviceForm.serviceCreated`),detail:H(`serviceForm.configureAfterCreate`),life:3e3}),I.push({name:`service-detail`,params:{id:e.id,tab:`config`}})}catch(e){L.add({severity:`error`,summary:H(`serviceForm.error`),detail:o(e)??H(`serviceForm.failedToSave`),life:5e3})}finally{K.value=!1}}return te(async()=>{await Promise.all([R.fetchAll(),B.fetchAll()]),W.value?X.projectId=W.value:!X.projectId&&V.activeProjectId&&(X.projectId=V.activeProjectId),U.value&&await $e()}),(e,i)=>(m(),c(`div`,ge,[u(`div`,_e,[s(h(t),{icon:`pi pi-arrow-left`,severity:`secondary`,text:``,rounded:``,onClick:i[0]||=e=>h(I).back()}),u(`h1`,null,r(U.value?h(H)(`serviceForm.editTitle`):h(H)(`serviceForm.createTitle`)),1)]),J.value?(m(),c(`div`,ve,[u(`span`,null,r(h(H)(`serviceForm.agentChangedServiceStopped`)),1),s(h(t),{label:h(H)(`serviceForm.restartNow`),icon:`pi pi-play`,severity:`warning`,size:`small`,loading:Y.value,onClick:et},null,8,[`label`,`loading`]),s(h(t),{icon:`pi pi-times`,severity:`secondary`,text:``,rounded:``,size:`small`,onClick:i[1]||=e=>{J.value=null,q.value=null}})])):n(``,!0),G.value?(m(),c(`div`,ye,[s(h(oe))])):(m(),c(`form`,{key:2,class:`service-form`,onSubmit:y(tt,[`prevent`])},[U.value?(m(),c(v,{key:1},[u(`div`,M,[u(`div`,N,[u(`div`,xe,[u(`label`,Se,r(h(H)(`serviceForm.nameLabelShort`)),1),s(h(f),{id:`svc-name-edit`,modelValue:X.name,"onUpdate:modelValue":i[6]||=e=>X.name=e,placeholder:`my-service`,class:`w-full`,onBlur:$,onKeydown:g(y($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),u(`div`,Ce,[u(`label`,we,r(h(H)(`serviceForm.runnerLabel`)),1),s(h(p),{id:`svc-runner`,modelValue:X.runner,"onUpdate:modelValue":i[7]||=e=>X.runner=e,options:Je,optionLabel:`label`,optionValue:`value`,class:`w-full`,onChange:$},null,8,[`modelValue`])])]),u(`div`,Te,[u(`label`,Ee,r(h(H)(`serviceForm.agentLabel`)),1),s(h(p),{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`]),u(`small`,De,r(h(H)(`serviceForm.agentHintEdit`)),1)]),u(`div`,Oe,[u(`div`,ke,[u(`label`,Ae,r(h(H)(`serviceForm.cwdLabel`)),1),s(h(f),{id:`svc-cwd`,modelValue:X.cwd,"onUpdate:modelValue":i[9]||=e=>X.cwd=e,placeholder:`.`,class:`w-full`,onBlur:$,onKeydown:g(y($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),u(`div`,je,[u(`label`,Me,r(h(H)(`serviceForm.portsLabel`)),1),s(h(he),{inputId:`svc-ports`,modelValue:X.ports,"onUpdate:modelValue":i[10]||=e=>X.ports=e,multiple:``,typeahead:!1,placeholder:h(H)(`serviceForm.portsPlaceholder`),class:`w-full`,onChange:$},null,8,[`modelValue`,`placeholder`])])]),u(`div`,P,[s(h(me),{modelValue:X.autoRestart,"onUpdate:modelValue":i[11]||=e=>X.autoRestart=e,inputId:`svc-autorestart`,onChange:$},null,8,[`modelValue`]),u(`label`,Ne,r(h(H)(`serviceForm.autoRestart`)),1)])]),s(h(x)),u(`div`,Pe,[u(`div`,Fe,[u(`h3`,null,r(h(H)(`serviceForm.envVars`)),1),s(h(t),{label:h(H)(`serviceForm.addEnvVar`),icon:`pi pi-plus`,severity:`secondary`,size:`small`,onClick:Xe},null,8,[`label`])]),Z.value.length===0?(m(),c(`div`,Ie,[u(`small`,null,r(h(H)(`serviceForm.noEnvVars`)),1)])):n(``,!0),(m(!0),c(v,null,ue(Z.value,(e,n)=>(m(),c(`div`,{key:n,class:`env-row`},[s(h(f),{modelValue:e.key,"onUpdate:modelValue":t=>e.key=t,placeholder:`KEY`,class:`env-key`,onBlur:$,onKeydown:g(y($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),i[17]||=u(`span`,{class:`env-eq`},`=`,-1),s(h(f),{modelValue:e.value,"onUpdate:modelValue":t=>e.value=t,placeholder:`value`,class:`env-value`,onBlur:$,onKeydown:g(y($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onUpdate:modelValue`,`onKeydown`]),s(h(t),{icon:`pi pi-trash`,severity:`danger`,text:``,rounded:``,size:`small`,onClick:()=>{Ze(n),$()}},null,8,[`onClick`])]))),128))]),s(h(x)),s(h(pe),{legend:h(H)(`serviceForm.healthCheck`),toggleable:!0,collapsed:!X.healthCheck.enabled,onToggle:i[16]||=e=>{X.healthCheck.enabled=!e.value,$()}},{default:fe(()=>[u(`div`,Le,[u(`label`,Re,r(h(H)(`serviceForm.healthCheckPath`)),1),s(h(f),{id:`hc-path`,modelValue:X.healthCheck.path,"onUpdate:modelValue":i[12]||=e=>X.healthCheck.path=e,placeholder:`/health`,class:`w-full`,onBlur:$,onKeydown:g(y($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),u(`div`,ze,[u(`div`,Be,[u(`label`,Ve,r(h(H)(`serviceForm.interval`)),1),s(h(b),{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:g(y($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),u(`div`,He,[u(`label`,Ue,r(h(H)(`serviceForm.timeout`)),1),s(h(b),{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:g(y($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])]),u(`div`,We,[u(`label`,Ge,r(h(H)(`serviceForm.retries`)),1),s(h(b),{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:g(y($,[`prevent`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])])]),_:1},8,[`legend`,`collapsed`]),s(h(x))],64)):(m(),c(v,{key:0},[u(`div`,be,[u(`div`,S,[u(`label`,C,r(h(H)(`serviceForm.projectLabel`)),1),s(h(p),{id:`svc-project`,modelValue:X.projectId,"onUpdate:modelValue":i[2]||=e=>X.projectId=e,options:Ye.value,optionLabel:`label`,optionValue:`value`,placeholder:h(H)(`serviceForm.projectPlaceholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),u(`small`,w,r(h(H)(`serviceForm.projectHint`)),1)]),u(`div`,T,[u(`label`,E,r(h(H)(`serviceForm.agentLabel`)),1),s(h(p),{id:`svc-agent`,modelValue:X.agentId,"onUpdate:modelValue":i[3]||=e=>X.agentId=e,options:Q.value,optionLabel:`label`,optionValue:`value`,placeholder:h(H)(`serviceForm.agentInherit`),"show-clear":``,class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),u(`small`,D,r(h(H)(`serviceForm.agentHint`)),1)]),u(`div`,O,[u(`label`,k,r(h(H)(`serviceForm.nameLabel`)),1),s(h(f),{id:`svc-name`,modelValue:X.name,"onUpdate:modelValue":i[4]||=e=>X.name=e,placeholder:`my-service`,class:`w-full`},null,8,[`modelValue`]),u(`small`,A,r(h(H)(`serviceForm.nameConfigHint`)),1)])]),s(h(x)),u(`div`,j,[s(h(t),{label:h(H)(`serviceForm.cancel`),severity:`secondary`,text:``,onClick:i[5]||=e=>h(I).back()},null,8,[`label`]),s(h(t),{label:h(H)(`serviceForm.create`),icon:`pi pi-check`,loading:K.value,type:`submit`},null,8,[`label`,`loading`])])],64))],32))]))}}),[[`__scopeId`,`data-v-47e4793d`]]);export{I as default};
|