@runeya/runeya 2.0.153 → 2.0.154
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-Z7SFBEXS.js → chat-COP27XB3.js} +3 -3
- package/{chunk-EUTW2S4P.js → chunk-OLHL5NFP.js} +7 -4
- package/chunk-OLHL5NFP.js.map +1 -0
- package/{chunk-QJSIN26R.js → chunk-VKYSHTYT.js} +443 -78
- package/chunk-VKYSHTYT.js.map +1 -0
- package/{companion-ZDEGNZ2G.js → companion-3MW23ONE.js} +2 -2
- package/index.js +7 -7
- package/{install-gate-TSCXUCYE.js → install-gate-3UVXPA57.js} +2 -2
- package/package.json +1 -1
- package/{src-NWPED6TK.js → src-K4E6GUCZ.js} +37 -25
- package/src-K4E6GUCZ.js.map +1 -0
- package/web/assets/{AgentScalarChatInterface.vue-CEMnvqfq.js → AgentScalarChatInterface.vue-BtA-f77q.js} +3 -3
- package/web/assets/{AgentTerminalPage-qQ96vm5Y.js → AgentTerminalPage-2Ky-vEkw.js} +1 -1
- package/web/assets/AiChatModals-BV3vIIqN.js +4 -0
- package/web/assets/AiChatModals-DS5R3Oz1.css +1 -0
- package/web/assets/AppLayout-BgPr-urw.css +1 -0
- package/web/assets/AppLayout-DsczwAFI.js +1 -0
- package/web/assets/{AuditPage-B-pCRqXH.js → AuditPage-DoKHFRJ7.js} +1 -1
- package/web/assets/{CloudAccountPage-C7aV6M8U.js → CloudAccountPage-CDQNalgx.js} +1 -1
- package/web/assets/{CloudMessagingPage-BTc8xbjF.js → CloudMessagingPage-DduCz3KB.js} +1 -1
- package/web/assets/{DashboardPage-CF7GLFlx.js → DashboardPage-ClJR5DiP.js} +1 -1
- package/web/assets/{DirectoryPickerDialog-bKqIFy8e.js → DirectoryPickerDialog-CVVg3SzI.js} +1 -1
- package/web/assets/{EnvironmentForm-kOyM5xTa.js → EnvironmentForm-eMpLFv_-.js} +1 -1
- package/web/assets/{EnvironmentFormPage-DfNI6meL.js → EnvironmentFormPage-DXH2lgk_.js} +1 -1
- package/web/assets/{EnvironmentListPage-C1VLgeeP.js → EnvironmentListPage-D-g_8lQw.js} +1 -1
- package/web/assets/{KanbanBoardPage-Bl6UnQ6P.js → KanbanBoardPage-BeSkCN6I.js} +3 -3
- package/web/assets/KanbanBoardPage-BrFqn87r.css +1 -0
- package/web/assets/{KanbanListPage-Dly6XiRC.js → KanbanListPage-DnhCC5ET.js} +1 -1
- package/web/assets/{LaunchProjectPage-DCrKSY8v.js → LaunchProjectPage-DyNqhic1.js} +1 -1
- package/web/assets/{LaunchServicesPage-Bl1pjfYH.js → LaunchServicesPage-bI7pVeU7.js} +1 -1
- package/web/assets/{LaunchShell-BcbfPDdc.js → LaunchShell-CokT4E5l.js} +1 -1
- package/web/assets/{LogViewer-C_XcH7Oe.js → LogViewer-Cs3Y8vaZ.js} +1 -1
- package/web/assets/{OrgKeyPrompt-BK6gkvaO.js → OrgKeyPrompt-DtgelhnI.js} +1 -1
- package/web/assets/{ProcessControls-BbRdiZsD.js → ProcessControls-CxlDLGiO.js} +1 -1
- package/web/assets/{ProcessDetailPage-W7S7ogas.js → ProcessDetailPage-D93cKCHb.js} +1 -1
- package/web/assets/{ProjectCreateDialog-q_39qiPd.js → ProjectCreateDialog-Bko_A5wp.js} +1 -1
- package/web/assets/{ProjectLocationGate-BFvdSy-B.js → ProjectLocationGate-jsy8WetY.js} +1 -1
- package/web/assets/{ProjectPublishDialog-DAJAvDTT.js → ProjectPublishDialog-7kR1zZAo.js} +1 -1
- package/web/assets/{RandomJobTestPage-A-I7cImN.js → RandomJobTestPage-Dp9prwa7.js} +1 -1
- package/web/assets/{ScenarioEditorPage-DXw4bCxb.js → ScenarioEditorPage-fv9yLH75.js} +1 -1
- package/web/assets/{SendToChatDialog-CbhE2WYO.js → SendToChatDialog-BVSbXcbf.js} +1 -1
- package/web/assets/{ServiceControlsBar-CudCeQql.js → ServiceControlsBar-DFECGWL8.js} +1 -1
- package/web/assets/{ServiceDetailPage-DQvL-VOx.js → ServiceDetailPage-BQA74240.js} +1 -1
- package/web/assets/{ServiceFormPage-0qXPeqrh.js → ServiceFormPage-ChsRsoLt.js} +1 -1
- package/web/assets/SettingsPage-BXKsN9Py.js +2086 -0
- package/web/assets/{SettingsPage-NpFX7FAy.css → SettingsPage-Dsuzjo8r.css} +1 -1
- package/web/assets/{UnlockPage-CtvaQt45.js → UnlockPage-DhEN16uX.js} +1 -1
- package/web/assets/{VaultMigrationPage-DtoAlng4.js → VaultMigrationPage-BgRNUuTP.js} +1 -1
- package/web/assets/{VersionBadge-CiBz82BB.js → VersionBadge-CXJ-2h5V.js} +1 -1
- package/web/assets/{WikiPage-cuKigw_5.js → WikiPage-BT5a9d5Q.js} +1 -1
- package/web/assets/{WikiView-BW-B83LB.js → WikiView-BNReLsq5.js} +1 -1
- package/web/assets/{add-scalar-classes-BPTxQDQd.js → add-scalar-classes-C_lKfiMa.js} +2 -2
- package/web/assets/{agent.store-DumNiX1X.js → agent.store-B6OM7edC.js} +1 -1
- package/web/assets/{auth-Qa1l14iV.js → auth-5bsz5kSC.js} +2 -2
- package/web/assets/{cloud-chat.store-TYR1_27Z.js → cloud-chat.store-Di38xQRJ.js} +1 -1
- package/web/assets/{cloud-client-CdOqrdP_.js → cloud-client-CEVx-bg6.js} +2 -2
- package/web/assets/{cloud-session-Dd7b9wxV.js → cloud-session-w6eNQX1X.js} +2 -2
- package/web/assets/composables-CCbqJqnd.js +1 -0
- package/web/assets/i18n-DbgjJIf8.js +1 -0
- package/web/assets/index-DB3-fmza.css +1 -0
- package/web/assets/{index-BCU69ZHl.js → index-mvpLwxNT.js} +74 -74
- package/web/assets/modal-Bslt0NZi.js +5 -0
- package/web/assets/{notification.store-D2olEA0V.js → notification.store-CAG1kWYq.js} +1 -1
- package/web/assets/{project-launch.store-MX5LzgIm.js → project-launch.store-Im5SMon9.js} +1 -1
- package/web/assets/{project.store-BFwiDQ1X.js → project.store-CITAykC3.js} +1 -1
- package/web/assets/{scenario.store-C8kW-yTN.js → scenario.store-C9sSoRzb.js} +2 -2
- package/web/assets/{service.store-B0Ass90H.js → service.store-CZJuuJiv.js} +1 -1
- package/web/assets/{settings-scope-D0hzzuyq.js → settings-scope-vcJEMNnD.js} +1 -1
- package/web/assets/{settings.store-B9Kp0l1G.js → settings.store-CydW_2jh.js} +1 -1
- package/web/assets/{src-DnjsM9el.js → src-CIOvFTGI.js} +23 -23
- package/web/assets/{src-DITmhvGS.js → src-COZZWm-m.js} +1 -1
- package/web/assets/src-DrVR8mhy.css +1 -0
- package/web/assets/{trpc-BvrR5qP9.js → trpc-BQ0mLnfI.js} +3 -3
- package/web/assets/{useCloudOrg-2vv5fVV6.js → useCloudOrg-CQvEbrZv.js} +1 -1
- package/web/assets/{useEnvVarAutocomplete-VVX3MC62.js → useEnvVarAutocomplete-hy3rO3SN.js} +1 -1
- package/web/assets/{useProjectCatalog-DsVvtBzo.js → useProjectCatalog-CWHpf3Yj.js} +1 -1
- package/web/assets/{useProjectCloudOrg-wv-RfsmO.js → useProjectCloudOrg-B3rNPes5.js} +1 -1
- package/web/assets/{useServiceUrlHost-C4Evrede.js → useServiceUrlHost-BFfie_6h.js} +1 -1
- package/web/index.html +17 -17
- package/chunk-EUTW2S4P.js.map +0 -1
- package/chunk-QJSIN26R.js.map +0 -1
- package/mcp-server/external.d.ts +0 -44
- package/mcp-server/index.d.ts +0 -1
- package/mcp-server/launch.d.ts +0 -89
- package/src-NWPED6TK.js.map +0 -1
- package/web/assets/AiChatModals-BmWxg-Sr.css +0 -1
- package/web/assets/AiChatModals-BsfKdbEA.js +0 -4
- package/web/assets/AppLayout-Djk3-XbN.css +0 -1
- package/web/assets/AppLayout-f0_BsXSc.js +0 -1
- package/web/assets/KanbanBoardPage-Cmu4Je4N.css +0 -1
- package/web/assets/SettingsPage-Bjn4bKPP.js +0 -2086
- package/web/assets/composables-DguCUR3O.js +0 -1
- package/web/assets/i18n-DipCGVKv.js +0 -1
- package/web/assets/index-Ck_3m_I9.css +0 -1
- package/web/assets/modal-BgrgFhyC.js +0 -5
- package/web/assets/src-CfDz-9Q6.css +0 -1
- /package/{chat-Z7SFBEXS.js.map → chat-COP27XB3.js.map} +0 -0
- /package/{companion-ZDEGNZ2G.js.map → companion-3MW23ONE.js.map} +0 -0
- /package/{install-gate-TSCXUCYE.js.map → install-gate-3UVXPA57.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e,C as t,_ as n}from"./reactivity.esm-bundler-BQ9SB2vv.js";import{$ as r,Ct as i,D as a,E as o,Ft as s,Ht as c,Yt as l,_ as u,b as d,bt as f,ct as p,en as m,ft as h,g,k as _,mt as v,nn as y,o as b,qt as x,rn as S,tt as C,v as w,wt as T,xt as E,y as D}from"./runtime-core.esm-bundler-DujKY9QV.js";import{C as O,n as k,t as A,w as j}from"./runtime-dom.esm-bundler-CyEVRK6B.js";import{n as M}from"./vue-i18n-o7yraQpR.js";import{n as N}from"./project-launch.store-MX5LzgIm.js";import{g as P}from"./useApi-s_02lHjl-DZYO2tHU.js";import{C as F,G as I,J as L,K as R,P as ee,T as z,U as te,V as B,Y as V,dt as H,ft as U,j as W}from"./src-Ck_MutzB.js";import{a as G}from"./app-mode-BVpTuh0i.js";import{r as K}from"./trpc-BvrR5qP9.js";import{n as q}from"./project.store-BFwiDQ1X.js";import{n as ne}from"./error-DpF7X5iu.js";import{r as re}from"./cloud-session-Dd7b9wxV.js";import{t as J}from"./service.store-B0Ass90H.js";import{t as Y}from"./agent.store-DumNiX1X.js";import{r as ie,t as ae}from"./process-BWkHpZOM.js";import{c as X}from"./index-BCU69ZHl.js";import{t as oe}from"./ProcessControls-BbRdiZsD.js";import{t as se}from"./DirectoryPickerDialog-bKqIFy8e.js";import{t as ce}from"./ProjectCreateDialog-q_39qiPd.js";import{t as le}from"./ProjectPublishDialog-DAJAvDTT.js";var ue={class:`card-title-row`},de=[`title`],fe={key:0,class:`card-description`},pe={class:`card-meta`},me={class:`meta-item`},he={key:0,class:`meta-item meta-item--cloud`},ge=U(_({__name:`ProjectCard`,props:{project:{},active:{type:Boolean}},emits:[`click`],setup(t,{emit:n}){let r=n,{t:i}=M(),a=g(()=>i(`dashboard.cloudProject`));function s(e,t){return!e||e.length<=t?e||``:e.slice(0,t)+`...`}return(n,i)=>(v(),w(e(B),{class:m([`project-card`,{"project-card--active":t.active}]),onClick:i[0]||=e=>r(`click`)},{title:x(()=>[u(`div`,ue,[u(`span`,{class:`card-title`,title:t.project.name},S(t.project.name),9,de),E(n.$slots,`actions`,{},void 0,!0)])]),content:x(()=>[t.project.description?(v(),d(`p`,fe,S(s(t.project.description,120)),1)):D(``,!0),u(`div`,pe,[u(`span`,me,[i[1]||=u(`i`,{class:`ti ti-box`},null,-1),o(` `+S(t.project.serviceIds.length)+` service`+S(t.project.serviceIds.length===1?``:`s`),1)]),t.project.orgId?(v(),d(`span`,he,[i[2]||=u(`i`,{class:`ti ti-cloud`},null,-1),o(S(a.value),1)])):D(``,!0)])]),_:3},8,[`class`]))}}),[[`__scopeId`,`data-v-95e62c18`]]),_e={class:`panel`},ve={class:`panel__header`},ye={class:`panel__title`},be={key:0,class:`panel__empty`},xe={key:1,class:`project-list`},Se=[`aria-label`,`onClick`],Ce={key:0,class:`project-menu`},we={class:`dialog-field`},Te={for:`dashboard-edit-name`},Ee={class:`dialog-field`},De={for:`dashboard-edit-desc`},Oe=U(_({__name:`ProjectsPanel`,setup(n){let{t:r}=M(),i=ee(),s=W(),c=q(),l=N(),{isLinked:p}=re(),m=t(!1),h=t(null),_=t(null),y=t(!1),C=t(!1),T=t(null),E=t(!1),k=t(null),A=t({name:``,description:``}),P=t(!1),I=t(null),R=g(()=>c.projects.find(e=>e.id===l.activeProjectId&&(e.orgId??null)===(l.activeOrgId??null))??null);function z(e){return R.value?.id===e.id&&(R.value?.orgId??null)===(e.orgId??null)}function B(e){l.setActiveProject(e.id,e.orgId??null)}function U(e,t){h.value=t,_.value?.toggle(e)}function G(){_.value?.hide()}function J(e){i.add({severity:`error`,summary:r(`common.error`),detail:ne(e),life:5e3})}function Y(e){i.add({severity:`success`,summary:r(`projectList.created`),detail:r(`projectList.createdDetail`,{name:e.name}),life:3e3})}function ie(e){G(),T.value=e,C.value=!0}function ae(e){k.value=e,A.value={name:e.name,description:e.description??``},E.value=!0,G()}async function X(){let e=k.value;if(e&&A.value.name.trim()){m.value=!0;try{if(!await c.update(e,{name:A.value.name.trim(),description:A.value.description.trim()})){J(c.error);return}E.value=!1,i.add({severity:`success`,summary:r(`projectDetail.nameUpdated`),life:2e3})}finally{m.value=!1}}}async function oe(e){if(G(),k.value=e,I.value=null,e.orgId)try{let{path:t}=await K.project.getLocalPath.query({id:e.id,orgId:e.orgId});I.value=t??null}catch{I.value=null}P.value=!0}function ue(e){I.value=e}function de(e){G(),s.require({message:r(`dashboard.deleteProjectMessage`,{name:e.name}),header:r(`projectDetail.deleteProjectTitle`),icon:`ti ti-alert-triangle`,rejectLabel:r(`projectDetail.deleteProjectCancel`),acceptLabel:r(`projectDetail.deleteProjectConfirm`),acceptProps:{severity:`danger`},accept:()=>{fe(e)}})}async function fe(e){let t=z(e);if(!await c.remove(e)){J(c.error);return}if(t){let e=c.projects[0];e?l.setActiveProject(e.id,e.orgId??null):l.resetLaunch()}i.add({severity:`success`,summary:r(`projectDetail.projectDeleted`),life:2e3})}return(t,n)=>(v(),d(`section`,_e,[u(`div`,ve,[u(`h2`,ye,S(e(r)(`dashboard.projects`)),1),a(e(te),{value:String(e(c).projectCount),severity:`secondary`},null,8,[`value`]),a(e(H),{icon:`ti ti-plus`,label:e(r)(`projectList.newProject`),size:`small`,variant:`text`,"data-testid":`new-project-btn`,onClick:n[0]||=e=>y.value=!0},null,8,[`label`])]),e(c).projects.length===0?(v(),d(`p`,be,S(e(r)(`dashboard.noProjects`)),1)):(v(),d(`div`,xe,[(v(!0),d(b,null,f(e(c).projects,t=>(v(),w(ge,{key:`${t.orgId??`local`}:${t.id}`,project:t,active:z(t),"data-testid":`project-row-link`,onClick:e=>B(t)},{actions:x(()=>[u(`button`,{type:`button`,class:`project-menu-button`,"aria-label":e(r)(`common.actions`),onClick:j(e=>U(e,t),[`stop`])},[...n[13]||=[u(`i`,{class:`ti ti-dots-vertical`},null,-1)]],8,Se)]),_:2},1032,[`project`,`active`,`onClick`]))),128))])),a(e(F),{ref_key:`menu`,ref:_},{default:x(()=>[h.value?(v(),d(`div`,Ce,[u(`button`,{type:`button`,class:`project-menu__item`,onClick:n[1]||=e=>ae(h.value)},[n[14]||=u(`i`,{class:`ti ti-pencil`},null,-1),o(S(e(r)(`dashboard.editProject`)),1)]),!h.value.orgId&&e(p)?(v(),d(`button`,{key:0,type:`button`,class:`project-menu__item`,"data-testid":`project-publish`,onClick:n[2]||=e=>ie(h.value)},[n[15]||=u(`i`,{class:`ti ti-cloud-upload`},null,-1),o(S(e(r)(`projectSwitcher.publish`)),1)])):D(``,!0),h.value.orgId?(v(),d(`button`,{key:1,type:`button`,class:`project-menu__item`,"data-testid":`project-local-path`,onClick:n[3]||=e=>oe(h.value)},[n[16]||=u(`i`,{class:`ti ti-folder-open`},null,-1),o(S(e(r)(`projectDetail.cloud.localPath`)),1)])):D(``,!0),u(`button`,{type:`button`,class:`project-menu__item project-menu__item--danger`,onClick:n[4]||=e=>de(h.value)},[n[17]||=u(`i`,{class:`ti ti-trash`},null,-1),o(S(e(r)(`projectDetail.deleteProjectTitle`)),1)])])):D(``,!0)]),_:1},512),a(ce,{visible:y.value,"onUpdate:visible":n[5]||=e=>y.value=e,onCreated:Y},null,8,[`visible`]),a(le,{visible:C.value,"onUpdate:visible":n[6]||=e=>C.value=e,project:T.value,onPublished:n[7]||=t=>e(c).fetchAll()},null,8,[`visible`,`project`]),a(e(V),{visible:E.value,"onUpdate:visible":n[11]||=e=>E.value=e,header:e(r)(`dashboard.editProject`),modal:``,style:{width:`420px`}},{footer:x(()=>[a(e(H),{label:e(r)(`actions.cancel`),severity:`secondary`,variant:`text`,disabled:m.value,onClick:n[10]||=e=>E.value=!1},null,8,[`label`,`disabled`]),a(e(H),{label:e(r)(`actions.save`),icon:`ti ti-check`,loading:m.value,disabled:!A.value.name.trim(),onClick:X},null,8,[`label`,`loading`,`disabled`])]),default:x(()=>[u(`div`,we,[u(`label`,Te,S(e(r)(`common.name`)),1),a(e(L),{id:`dashboard-edit-name`,modelValue:A.value.name,"onUpdate:modelValue":n[8]||=e=>A.value.name=e,autofocus:``,onKeyup:O(X,[`enter`])},null,8,[`modelValue`])]),u(`div`,Ee,[u(`label`,De,S(e(r)(`common.description`)),1),a(e(L),{id:`dashboard-edit-desc`,modelValue:A.value.description,"onUpdate:modelValue":n[9]||=e=>A.value.description=e,onKeyup:O(X,[`enter`])},null,8,[`modelValue`])])]),_:1},8,[`visible`,`header`]),k.value?.orgId?(v(),w(se,{key:2,visible:P.value,"onUpdate:visible":n[12]||=e=>P.value=e,"project-id":k.value.id,"org-id":k.value.orgId,"project-name":k.value.name,"initial-path":I.value,onChosen:ue},null,8,[`visible`,`project-id`,`org-id`,`project-name`,`initial-path`])):D(``,!0)]))}}),[[`__scopeId`,`data-v-76822031`]]);function ke(e,t){let n=new Map;for(let e of t)e.from!==e.to&&n.set(e.to,[...n.get(e.to)??[],e.from]);let r=new Map,i=new Set,a=e=>{let t=r.get(e);if(t!==void 0)return t;if(i.has(e))return 0;i.add(e);let o=0;for(let t of n.get(e)??[])o=Math.max(o,a(t)+1);return i.delete(e),r.set(e,o),o};for(let t of e)a(t.id);return r}function Ae(e,t,n){if(e.length===0)return{nodes:[],width:n.padding*2,height:n.padding*2};let r=ke(e,t),i=new Map;for(let t of e){let e=r.get(t.id)??0;i.set(e,[...i.get(e)??[],t])}let a=Math.max(...[...i.values()].map(e=>e.length)),o=Math.max(...i.keys()),s=n.padding*2+a*n.rowHeight,c=n.padding*2+(o+1)*n.columnWidth,l=[];for(let[e,t]of i){let r=(a-t.length)/2;t.forEach((t,i)=>{l.push({...t,depth:e,x:n.padding+e*n.columnWidth+n.columnWidth/2,y:n.padding+(r+i+.5)*n.rowHeight})})}let u=new Map(l.map(e=>[e.id,e]));return{nodes:e.map(e=>u.get(e.id)),width:c,height:s}}var je=.2,Z=1.1,Me=16;function Ne(e){return Math.min(3,Math.max(je,e))}function Pe(e,t,n){let r=Ne(e.scale*t),i=r/e.scale;return{scale:r,x:n.x-(n.x-e.x)*i,y:n.y-(n.y-e.y)*i}}function Fe(e,t,n){return{...e,x:e.x+t,y:e.y+n}}function Ie(e,t){if(t.width<=0||t.height<=0||e.width<=0||e.height<=0)return{x:0,y:0,scale:1};let n=Math.min(Me,t.width/4,t.height/4),r=Ne(Math.min(1,(t.width-2*n)/e.width,(t.height-2*n)/e.height));return{scale:r,x:(t.width-e.width*r)/2,y:(t.height-e.height*r)/2}}function Le(){let e=t({x:0,y:0,scale:1}),r=t(!1),i=null,a=!1;function o(t){t.preventDefault();let n=t.currentTarget.getBoundingClientRect(),r=t.deltaY<0?Z:1/Z;e.value=Pe(e.value,r,{x:t.clientX-n.left,y:t.clientY-n.top})}function s(t){if(!i)return;let n=t.clientX-i.x,r=t.clientY-i.y;(n!==0||r!==0)&&(a=!0),i={x:t.clientX,y:t.clientY},e.value=Fe(e.value,n,r)}function c(){i=null,r.value=!1,window.removeEventListener(`pointermove`,s),window.removeEventListener(`pointerup`,c),window.removeEventListener(`pointercancel`,c),a&&setTimeout(()=>{a=!1},0)}function l(e){e.button===0&&(a=!1,i={x:e.clientX,y:e.clientY},r.value=!0,window.addEventListener(`pointermove`,s),window.addEventListener(`pointerup`,c),window.addEventListener(`pointercancel`,c))}function u(t,n){e.value=Ie(t,n)}let d=e=>({x:e.width/2,y:e.height/2});function f(t){e.value=Pe(e.value,Z*Z,d(t))}function p(t){e.value=Pe(e.value,1/(Z*Z),d(t))}return n(c),{transform:e,isPanning:r,onWheel:o,onPointerDown:l,fit:u,zoomIn:f,zoomOut:p,dragJustEnded:()=>a}}var Re={class:`panel service-graph`},ze=[`aria-expanded`],Be={class:`panel__title`},Ve={class:`service-graph__hint`},He={key:0,class:`panel__empty`},Ue={key:1,class:`panel__empty`},We={key:2,class:`panel__empty`},Ge={key:0,class:`panel__empty`},Ke={class:`service-graph__controls`},qe=[`title`,`aria-label`],Je=[`title`,`aria-label`],Ye=[`title`,`aria-label`],Xe=[`viewBox`,`width`,`height`,`aria-label`],Ze=[`d`],Qe=[`aria-label`,`onMouseenter`,`onFocus`,`onClick`,`onKeydown`],$e=[`x`,`y`],et=[`x`,`y`],tt=[`x`,`y`],nt={key:1,class:`service-graph__keys`},rt={key:2,class:`service-graph__warnings`},it=210,at=84,ot=24,Q=150,st=44,ct=`runeya.dashboard.serviceGraphCollapsed`,lt=U(_({__name:`ServiceGraphPanel`,props:{project:{}},setup(n){let r=n,{t:i}=M(),a=P(),s=t([]),l=t([]),p=t([]),h=t(!1),_=t(!1),x=t(null);function w(){try{return localStorage.getItem(ct)!==`false`}catch{return!0}}let T=t(w());function E(){T.value=!T.value;try{localStorage.setItem(ct,String(T.value))}catch{}}c(T,e=>{e||N()});function k(){s.value=[],l.value=[],p.value=[]}let A=0;async function N(){let e=r.project,t=++A;if(!e||T.value){k(),h.value=!1,_.value=!1;return}h.value=!0,_.value=!1;try{let n=await K.project.graph.query({id:e.id,orgId:e.orgId??null});if(t!==A)return;s.value=n.nodes,l.value=n.edges,p.value=n.dangling}catch{if(t!==A)return;_.value=!0,k()}finally{t===A&&(h.value=!1)}}c(()=>r.project?`${r.project.id}|${r.project.orgId??``}`:null,N,{immediate:!0});let F=g(()=>Ae(s.value,l.value,{columnWidth:it,rowHeight:at,padding:ot})),I=g(()=>new Map(F.value.nodes.map(e=>[e.id,e]))),L=g(()=>l.value.flatMap(e=>{let t=I.value.get(e.from),n=I.value.get(e.to);if(!t||!n)return[];let r=t.x+Q/2,i=n.x-Q/2,a=Math.max(40,Math.abs(i-r)/2);return[{...e,id:`${e.from}->${e.to}`,path:`M ${r} ${t.y} C ${r+a} ${t.y}, ${i-a} ${n.y}, ${i} ${n.y}`}]}));function R(e){return x.value!==null&&(e.from===x.value||e.to===x.value)}function ee(e){return x.value===null||x.value===e?!1:!l.value.some(t=>t.from===x.value&&t.to===e||t.to===x.value&&t.from===e)}let z=g(()=>{if(!x.value)return[];let e=new Set;for(let t of l.value)if(t.from===x.value||t.to===x.value)for(let n of t.keys)e.add(n);return[...e].sort()});function te(e){return s.value.find(t=>t.id===e)}let B=t(null),V=Le(),{transform:H,isPanning:U}=V;function W(){return{width:B.value?.clientWidth??0,height:B.value?.clientHeight??0}}function G(){V.fit({width:F.value.width,height:F.value.height},W())}c(()=>`${F.value.width}x${F.value.height}`,()=>void C(G),{immediate:!0});function q(e){V.dragJustEnded()||a.push(`/services/${e}`)}return(t,n)=>(v(),d(`section`,Re,[u(`button`,{type:`button`,class:m([`panel__header service-graph__toggle`,{"service-graph__toggle--collapsed":T.value}]),"aria-expanded":!T.value,onClick:E},[u(`i`,{class:m([`ti`,T.value?`ti-chevron-right`:`ti-chevron-down`]),"aria-hidden":`true`},null,2),u(`h2`,Be,S(e(i)(`dashboard.graphTitle`)),1),u(`span`,Ve,S(e(i)(`dashboard.graphHint`)),1)],10,ze),T.value?D(``,!0):(v(),d(b,{key:0},[h.value?(v(),d(`p`,He,S(e(i)(`dashboard.graphLoading`)),1)):_.value?(v(),d(`p`,Ue,S(e(i)(`dashboard.graphFailed`)),1)):s.value.length===0?(v(),d(`p`,We,S(e(i)(`dashboard.graphNoServices`)),1)):(v(),d(b,{key:3},[l.value.length===0?(v(),d(`p`,Ge,S(e(i)(`dashboard.graphNoLinks`)),1)):D(``,!0),u(`div`,{ref_key:`frame`,ref:B,class:m([`service-graph__frame`,{"service-graph__frame--panning":e(U)}]),onWheel:n[7]||=(...t)=>e(V).onWheel&&e(V).onWheel(...t),onPointerdown:n[8]||=(...t)=>e(V).onPointerDown&&e(V).onPointerDown(...t),onDblclick:j(G,[`self`])},[u(`div`,Ke,[u(`button`,{type:`button`,class:`service-graph__control`,title:e(i)(`dashboard.graphZoomIn`),"aria-label":e(i)(`dashboard.graphZoomIn`),onClick:n[0]||=t=>e(V).zoomIn(W()),onPointerdown:n[1]||=j(()=>{},[`stop`])},[...n[9]||=[u(`i`,{class:`ti ti-plus`,"aria-hidden":`true`},null,-1)]],40,qe),u(`button`,{type:`button`,class:`service-graph__control`,title:e(i)(`dashboard.graphZoomOut`),"aria-label":e(i)(`dashboard.graphZoomOut`),onClick:n[2]||=t=>e(V).zoomOut(W()),onPointerdown:n[3]||=j(()=>{},[`stop`])},[...n[10]||=[u(`i`,{class:`ti ti-minus`,"aria-hidden":`true`},null,-1)]],40,Je),u(`button`,{type:`button`,class:`service-graph__control`,title:e(i)(`dashboard.graphFit`),"aria-label":e(i)(`dashboard.graphFit`),onClick:G,onPointerdown:n[4]||=j(()=>{},[`stop`])},[...n[11]||=[u(`i`,{class:`ti ti-arrows-move`,"aria-hidden":`true`},null,-1)]],40,Ye)]),(v(),d(`svg`,{class:`service-graph__svg`,viewBox:`0 0 ${F.value.width} ${F.value.height}`,width:F.value.width,height:F.value.height,style:y({transform:`translate(${e(H).x}px, ${e(H).y}px) scale(${e(H).scale})`}),role:`img`,"aria-label":e(i)(`dashboard.graphAria`,{count:l.value.length})},[n[12]||=u(`defs`,null,[u(`marker`,{id:`service-graph-arrow`,viewBox:`0 0 10 10`,refX:`9`,refY:`5`,markerWidth:`6`,markerHeight:`6`,orient:`auto-start-reverse`},[u(`path`,{d:`M 0 0 L 10 5 L 0 10 z`,class:`service-graph__arrow-head`})])],-1),(v(!0),d(b,null,f(L.value,e=>(v(),d(`path`,{key:e.id,d:e.path,class:m([`service-graph__edge`,{"service-graph__edge--active":R(e),"service-graph__edge--dimmed":x.value!==null&&!R(e)}]),"marker-end":`url(#service-graph-arrow)`},null,10,Ze))),128)),(v(!0),d(b,null,f(F.value.nodes,e=>(v(),d(`g`,{key:e.id,class:m([`service-graph__node`,{"service-graph__node--dimmed":ee(e.id)}]),tabindex:`0`,role:`button`,"aria-label":e.name,onMouseenter:t=>x.value=e.id,onMouseleave:n[5]||=e=>x.value=null,onFocus:t=>x.value=e.id,onBlur:n[6]||=e=>x.value=null,onClick:t=>q(e.id),onKeydown:[O(j(t=>q(e.id),[`prevent`]),[`enter`]),O(j(t=>q(e.id),[`prevent`]),[`space`])]},[u(`rect`,{x:e.x-Q/2,y:e.y-st/2,width:Q,height:st,rx:`8`,class:m([`service-graph__box`,{"service-graph__box--ambiguous":e.ambiguousSlug}])},null,10,$e),u(`text`,{x:e.x,y:e.y-3,class:`service-graph__name`},S(e.name),9,et),u(`text`,{x:e.x,y:e.y+12,class:`service-graph__slug`},S(e.slug),9,tt)],42,Qe))),128))],12,Xe))],34),z.value.length>0?(v(),d(`p`,nt,[o(S(e(i)(`dashboard.graphVia`))+` `,1),(v(!0),d(b,null,f(z.value,e=>(v(),d(`code`,{key:e},S(e),1))),128))])):D(``,!0),p.value.length>0?(v(),d(`ul`,rt,[(v(!0),d(b,null,f(p.value,t=>(v(),d(`li`,{key:`${t.from}-${t.slug}`},S(e(i)(`dashboard.graphDangling`,{service:te(t.from)?.name??t.from,slug:t.slug,keys:t.keys.join(`, `)})),1))),128))])):D(``,!0)],64))],64))]))}}),[[`__scopeId`,`data-v-06ba13f6`]]);function ut(e){if(e==null||!Number.isFinite(e)||e<0)return`—`;let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60);if(n<60)return`${n}m`;let r=Math.floor(n/60);return r<24?`${r}h ${n%60}m`:`${Math.floor(r/24)}d ${r%24}h`}var dt={key:0,class:`service-row__agent service-row__agent--missing`},ft={key:1,class:`service-row__agent`},pt=[`aria-label`],mt={class:`service-row__name`},ht={key:2,class:`service-row__state`},gt={key:3,class:`service-row__agent-hint`},_t={key:4,class:`ti ti-alert-triangle service-row__health`},vt=U(_({__name:`ServiceStatusRow`,props:{service:{},processes:{},now:{},showAgent:{type:Boolean}},setup(t){let n=t,{t:r}=M(),s=P(),c=Y(),f=g(()=>ae(n.processes)),p=g(()=>f.value?.state??`stopped`),h=g(()=>{switch(p.value){case`running`:return`success`;case`starting`:return`warn`;case`errored`:return`danger`;default:return`idle`}}),_=g(()=>ie(n.service)),y=g(()=>_.value?c.getById(_.value)?.config.name??_.value:null),x=g(()=>{let e=f.value;return!e||e.state!==`running`?null:e.startedAt?Math.max(0,n.now-new Date(e.startedAt).getTime()):e.uptime*1e3}),C=g(()=>f.value?.healthStatus===`unhealthy`);function w(){s.push(`/services/${n.service.id}`)}return(n,s)=>{let c=i(`tooltip`);return v(),d(`div`,{class:m([`service-row`,`service-row--${h.value}`])},[u(`button`,{type:`button`,class:`service-row__main`,"data-testid":`service-row-link`,onClick:w},[y.value?t.showAgent?l((v(),d(`span`,ft,[s[0]||=u(`i`,{class:`ti ti-server`},null,-1),o(S(y.value),1)])),[[c,y.value,void 0,{top:!0}]]):D(``,!0):(v(),d(`span`,dt,S(e(r)(`serviceHeader.noAgent`)),1)),l(u(`span`,{class:`service-row__dot`,role:`img`,"aria-label":e(r)(`status.${p.value}`)},null,8,pt),[[c,e(r)(`status.${p.value}`),void 0,{top:!0}]]),u(`span`,mt,S(t.service.name),1),p.value===`stopped`?D(``,!0):(v(),d(`span`,ht,[o(S(e(r)(`status.${p.value}`))+` `,1),x.value===null?D(``,!0):(v(),d(b,{key:0},[o(` · `+S(e(ut)(x.value)),1)],64))])),y.value&&!t.showAgent?(v(),d(`span`,gt,[s[1]||=u(`i`,{class:`ti ti-server`},null,-1),o(S(y.value),1)])):D(``,!0),C.value?l((v(),d(`i`,_t,null,512)),[[c,e(r)(`dashboard.unhealthy`),void 0,{top:!0}]]):D(``,!0)]),a(oe,{class:`service-row__controls`,compact:``,"agent-id":f.value?.agentId??_.value??``,"process-id":f.value?.id??t.service.id,state:p.value},null,8,[`agent-id`,`process-id`,`state`])],2)}}}),[[`__scopeId`,`data-v-b0350475`]]);function yt(){let e=X(),t=J(),n=g(()=>t.services.map(t=>{let n=e.getByService(t.id);return{service:t,processes:n,state:ae(n)?.state??`stopped`}}));return{states:n,runningCount:g(()=>n.value.filter(e=>e.state===`running`||e.state===`starting`).length),erroredCount:g(()=>n.value.filter(e=>e.state===`errored`).length),stoppedCount:g(()=>n.value.filter(e=>e.state===`stopped`).length)}}var bt={class:`panel`,"data-testid":`services-panel`},xt={class:`panel__header`},St={class:`panel__title`},Ct={class:`panel__count`},wt={key:0,class:`panel__empty`},Tt={key:1,class:`panel__empty`},Et={class:`service-group__count`},Dt=U(_({__name:`ServicesPanel`,props:r({project:{},now:{}},{filter:{default:`all`},filterModifiers:{}}),emits:[`update:filter`],setup(n){let r=n,{t:i}=M(),c=P(),l=Y(),p=g(()=>l.agents.length>1),h=s(n,`filter`),_=t(``),y=g(()=>[{value:`all`,label:i(`dashboard.filterAll`)},{value:`running`,label:i(`dashboard.filterRunning`)},{value:`issues`,label:i(`dashboard.filterIssues`)},{value:`stopped`,label:i(`dashboard.filterStopped`)}]),{states:C}=yt(),T=e=>e===`errored`?0:e===`starting`?1:e===`running`?2:3,E=e=>e===`errored`?`issues`:e===`running`||e===`starting`?`running`:`stopped`,O=g(()=>{let e=_.value.trim().toLowerCase();return[...C.value.filter(t=>e&&!t.service.name.toLowerCase().includes(e)?!1:h.value===`running`?t.state===`running`||t.state===`starting`:h.value===`issues`?t.state===`errored`:h.value!==`stopped`||t.state===`stopped`)].sort((e,t)=>T(e.state)-T(t.state)||e.service.name.localeCompare(t.service.name))}),A=g(()=>{let e=[];for(let t of O.value){let n=E(t.state),r=e.at(-1);r?.key!==n&&(r={key:n,label:i(n===`issues`?`dashboard.filterIssues`:n===`running`?`dashboard.filterRunning`:`dashboard.filterStopped`),entries:[]},e.push(r)),r.entries.push(t)}return e}),j=g(()=>h.value===`all`&&A.value.length>1);function N(){c.push({name:`service-create`,...r.project?{query:{projectId:r.project.id}}:{}})}return(t,r)=>(v(),d(`section`,bt,[u(`div`,xt,[u(`h2`,St,[o(S(e(i)(`dashboard.services`))+` `,1),u(`span`,Ct,S(e(C).length),1)]),a(e(R),{class:`panel__search`},{default:x(()=>[a(e(I),{class:`ti ti-search`}),a(e(L),{modelValue:_.value,"onUpdate:modelValue":r[0]||=e=>_.value=e,size:`small`,placeholder:e(i)(`projectDetail.searchServices`),"aria-label":e(i)(`projectDetail.searchServices`)},null,8,[`modelValue`,`placeholder`,`aria-label`])]),_:1}),a(e(H),{icon:`ti ti-plus`,label:e(i)(`projectDetail.createNew`),size:`small`,variant:`text`,onClick:N},null,8,[`label`])]),a(e(z),{modelValue:h.value,"onUpdate:modelValue":r[1]||=e=>h.value=e,class:`panel__filters`,options:y.value,"option-label":`label`,"option-value":`value`,size:`small`,"allow-empty":!1},null,8,[`modelValue`,`options`]),e(C).length===0?(v(),d(`p`,wt,S(e(i)(`dashboard.noServices`)),1)):O.value.length===0?(v(),d(`p`,Tt,S(e(i)(`dashboard.noServicesForFilter`)),1)):(v(),w(k,{key:2,tag:`div`,name:`service-list`,class:`service-list`},{default:x(()=>[(v(!0),d(b,null,f(A.value,e=>(v(),d(b,{key:e.key},[j.value?(v(),d(`h3`,{key:`group:${e.key}`,class:m([`service-group`,`service-group--${e.key}`])},[o(S(e.label)+` `,1),u(`span`,Et,S(e.entries.length),1)],2)):D(``,!0),(v(!0),d(b,null,f(e.entries,e=>(v(),w(vt,{key:e.service.id,service:e.service,processes:e.processes,now:n.now,"show-agent":p.value},null,8,[`service`,`processes`,`now`,`show-agent`]))),128))],64))),128))]),_:1}))]))}}),[[`__scopeId`,`data-v-140c1215`]]),Ot={class:`stat-tile__value`},kt={class:`stat-tile__label`},$=U(_({__name:`StatTile`,props:{icon:{},value:{},label:{},tone:{},to:{},selectable:{type:Boolean},active:{type:Boolean}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,i=P(),o=g(()=>n.tone??`neutral`),s=g(()=>!!n.to||!!n.selectable);function c(){n.to?i.push(n.to):n.selectable&&r(`select`)}return(t,r)=>(v(),w(T(s.value?`button`:`div`),{type:s.value?`button`:void 0,class:m([`stat-tile`,[`stat-tile--${o.value}`,{"stat-tile--pressable":s.value,"stat-tile--active":e.active}]]),"aria-pressed":e.selectable?!!e.active:void 0,onClick:c},{default:x(()=>[u(`i`,{class:m([`ti`,n.icon,`stat-tile__icon`])},null,2),u(`span`,Ot,[a(A,{name:`stat-value`,mode:`out-in`},{default:x(()=>[(v(),d(`span`,{key:String(n.value),class:`stat-tile__digits`},S(n.value),1))]),_:1})]),u(`span`,kt,S(n.label),1)]),_:1},8,[`type`,`class`,`aria-pressed`]))}}),[[`__scopeId`,`data-v-502c82fd`]]),At={class:`dashboard-page`},jt=[`aria-label`],Mt={class:`summary-strip__group`},Nt={class:`summary-strip__group summary-strip__group--end`},Pt={class:`dashboard-columns`},Ft={class:`dashboard-aside`},It={class:`panel`},Lt={class:`panel__header`},Rt={class:`panel__title`},zt={key:0,class:`panel__empty`},Bt={key:1,class:`agent-list`},Vt={class:`agent-item__name`},Ht={class:`agent-item__state`},Ut=U(_({__name:`DashboardPage`,setup(n){let{t:r}=M(),{lockedProjectId:i}=G(),o=q(),s=Y(),c=X(),l=J(),_=N(),y=t(Date.now()),x=null,C=t(null),T=g(()=>o.projects.find(e=>e.id===_.activeProjectId&&(e.orgId??null)===(_.activeOrgId??null))??null);p(async()=>{await Promise.all([o.fetchAll(),s.fetchAll(),c.fetchAll(),l.fetchAll()]),x=setInterval(()=>{y.value=Date.now()},1e3);try{let e=await K.wiki.list.query({scope:`global`}),t=0,n=e=>{for(let r of e)r.type===`file`?t+=1:r.type===`dir`&&Array.isArray(r.children)&&n(r.children)};n(e.entries),C.value=t}catch{C.value=null}}),h(()=>{x&&clearInterval(x)});let{runningCount:E,erroredCount:O,stoppedCount:k}=yt(),A=t(`all`);function j(e){A.value=A.value===e?`all`:e}let P=g(()=>s.agents.filter(e=>!e.status.connected).length);return(t,n)=>(v(),d(`div`,At,[u(`section`,{class:`summary-strip`,"aria-label":e(r)(`dashboard.healthBand`)},[u(`div`,Mt,[a($,{icon:`ti-player-play`,tone:`success`,value:e(E),label:e(r)(`dashboard.servicesRunning`),selectable:``,active:A.value===`running`,onSelect:n[0]||=e=>j(`running`)},null,8,[`value`,`label`,`active`]),a($,{icon:`ti-alert-triangle`,tone:e(O)>0?`danger`:`neutral`,value:e(O),label:e(r)(`dashboard.servicesErrored`),selectable:``,active:A.value===`issues`,onSelect:n[1]||=e=>j(`issues`)},null,8,[`tone`,`value`,`label`,`active`]),a($,{icon:`ti-player-pause`,tone:`neutral`,value:e(k),label:e(r)(`dashboard.servicesStopped`),selectable:``,active:A.value===`stopped`,onSelect:n[2]||=e=>j(`stopped`)},null,8,[`value`,`label`,`active`])]),u(`div`,Nt,[a($,{icon:`ti-server`,tone:P.value>0?`warn`:`success`,value:`${e(s).connectedAgents.length}/${e(s).agents.length}`,label:e(r)(`dashboard.agentsConnected`),to:`/settings?section=agents`},null,8,[`tone`,`value`,`label`]),a($,{icon:`ti-book`,value:C.value??`—`,label:e(r)(`dashboard.globalWiki`),to:`/wiki`},null,8,[`value`,`label`])])],8,jt),T.value?(v(),w(lt,{key:0,project:T.value},null,8,[`project`])):D(``,!0),u(`div`,Pt,[a(Dt,{filter:A.value,"onUpdate:filter":n[3]||=e=>A.value=e,project:T.value,now:y.value},null,8,[`filter`,`project`,`now`]),u(`div`,Ft,[e(i)?D(``,!0):(v(),w(Oe,{key:0})),u(`section`,It,[u(`div`,Lt,[u(`h2`,Rt,S(e(r)(`dashboard.agentStatus`)),1)]),e(s).agents.length===0?(v(),d(`p`,zt,S(e(r)(`dashboard.noAgents`)),1)):(v(),d(`ul`,Bt,[(v(!0),d(b,null,f(e(s).agents,t=>(v(),d(`li`,{key:t.config.id,class:`agent-item`},[u(`span`,{class:m([`agent-item__dot`,t.status.connected?`agent-item__dot--on`:`agent-item__dot--off`])},null,2),u(`span`,Vt,S(t.config.name),1),u(`span`,Ht,S(t.status.connected?e(r)(`dashboard.connected`):e(r)(`dashboard.disconnected`)),1)]))),128))]))])])])]))}}),[[`__scopeId`,`data-v-ef3e9fbe`]]);export{Ut as default};
|
|
1
|
+
import{B as e,C as t,_ as n}from"./reactivity.esm-bundler-BQ9SB2vv.js";import{$ as r,Ct as i,D as a,E as o,Ft as s,Ht as c,Yt as l,_ as u,b as d,bt as f,ct as p,en as m,ft as h,g,k as _,mt as v,nn as y,o as b,qt as x,rn as S,tt as C,v as w,wt as T,xt as E,y as D}from"./runtime-core.esm-bundler-DujKY9QV.js";import{C as O,n as k,t as A,w as j}from"./runtime-dom.esm-bundler-CyEVRK6B.js";import{n as M}from"./vue-i18n-o7yraQpR.js";import{n as N}from"./project-launch.store-Im5SMon9.js";import{g as P}from"./useApi-s_02lHjl-DZYO2tHU.js";import{C as F,G as I,J as L,K as R,P as ee,T as z,U as te,V as B,Y as V,dt as H,ft as U,j as W}from"./src-Ck_MutzB.js";import{a as G}from"./app-mode-BVpTuh0i.js";import{r as K}from"./trpc-BQ0mLnfI.js";import{n as q}from"./project.store-CITAykC3.js";import{n as ne}from"./error-DpF7X5iu.js";import{r as re}from"./cloud-session-w6eNQX1X.js";import{t as J}from"./service.store-CZJuuJiv.js";import{t as Y}from"./agent.store-B6OM7edC.js";import{r as ie,t as ae}from"./process-BWkHpZOM.js";import{c as X}from"./index-mvpLwxNT.js";import{t as oe}from"./ProcessControls-CxlDLGiO.js";import{t as se}from"./DirectoryPickerDialog-CVVg3SzI.js";import{t as ce}from"./ProjectCreateDialog-Bko_A5wp.js";import{t as le}from"./ProjectPublishDialog-7kR1zZAo.js";var ue={class:`card-title-row`},de=[`title`],fe={key:0,class:`card-description`},pe={class:`card-meta`},me={class:`meta-item`},he={key:0,class:`meta-item meta-item--cloud`},ge=U(_({__name:`ProjectCard`,props:{project:{},active:{type:Boolean}},emits:[`click`],setup(t,{emit:n}){let r=n,{t:i}=M(),a=g(()=>i(`dashboard.cloudProject`));function s(e,t){return!e||e.length<=t?e||``:e.slice(0,t)+`...`}return(n,i)=>(v(),w(e(B),{class:m([`project-card`,{"project-card--active":t.active}]),onClick:i[0]||=e=>r(`click`)},{title:x(()=>[u(`div`,ue,[u(`span`,{class:`card-title`,title:t.project.name},S(t.project.name),9,de),E(n.$slots,`actions`,{},void 0,!0)])]),content:x(()=>[t.project.description?(v(),d(`p`,fe,S(s(t.project.description,120)),1)):D(``,!0),u(`div`,pe,[u(`span`,me,[i[1]||=u(`i`,{class:`ti ti-box`},null,-1),o(` `+S(t.project.serviceIds.length)+` service`+S(t.project.serviceIds.length===1?``:`s`),1)]),t.project.orgId?(v(),d(`span`,he,[i[2]||=u(`i`,{class:`ti ti-cloud`},null,-1),o(S(a.value),1)])):D(``,!0)])]),_:3},8,[`class`]))}}),[[`__scopeId`,`data-v-95e62c18`]]),_e={class:`panel`},ve={class:`panel__header`},ye={class:`panel__title`},be={key:0,class:`panel__empty`},xe={key:1,class:`project-list`},Se=[`aria-label`,`onClick`],Ce={key:0,class:`project-menu`},we={class:`dialog-field`},Te={for:`dashboard-edit-name`},Ee={class:`dialog-field`},De={for:`dashboard-edit-desc`},Oe=U(_({__name:`ProjectsPanel`,setup(n){let{t:r}=M(),i=ee(),s=W(),c=q(),l=N(),{isLinked:p}=re(),m=t(!1),h=t(null),_=t(null),y=t(!1),C=t(!1),T=t(null),E=t(!1),k=t(null),A=t({name:``,description:``}),P=t(!1),I=t(null),R=g(()=>c.projects.find(e=>e.id===l.activeProjectId&&(e.orgId??null)===(l.activeOrgId??null))??null);function z(e){return R.value?.id===e.id&&(R.value?.orgId??null)===(e.orgId??null)}function B(e){l.setActiveProject(e.id,e.orgId??null)}function U(e,t){h.value=t,_.value?.toggle(e)}function G(){_.value?.hide()}function J(e){i.add({severity:`error`,summary:r(`common.error`),detail:ne(e),life:5e3})}function Y(e){i.add({severity:`success`,summary:r(`projectList.created`),detail:r(`projectList.createdDetail`,{name:e.name}),life:3e3})}function ie(e){G(),T.value=e,C.value=!0}function ae(e){k.value=e,A.value={name:e.name,description:e.description??``},E.value=!0,G()}async function X(){let e=k.value;if(e&&A.value.name.trim()){m.value=!0;try{if(!await c.update(e,{name:A.value.name.trim(),description:A.value.description.trim()})){J(c.error);return}E.value=!1,i.add({severity:`success`,summary:r(`projectDetail.nameUpdated`),life:2e3})}finally{m.value=!1}}}async function oe(e){if(G(),k.value=e,I.value=null,e.orgId)try{let{path:t}=await K.project.getLocalPath.query({id:e.id,orgId:e.orgId});I.value=t??null}catch{I.value=null}P.value=!0}function ue(e){I.value=e}function de(e){G(),s.require({message:r(`dashboard.deleteProjectMessage`,{name:e.name}),header:r(`projectDetail.deleteProjectTitle`),icon:`ti ti-alert-triangle`,rejectLabel:r(`projectDetail.deleteProjectCancel`),acceptLabel:r(`projectDetail.deleteProjectConfirm`),acceptProps:{severity:`danger`},accept:()=>{fe(e)}})}async function fe(e){let t=z(e);if(!await c.remove(e)){J(c.error);return}if(t){let e=c.projects[0];e?l.setActiveProject(e.id,e.orgId??null):l.resetLaunch()}i.add({severity:`success`,summary:r(`projectDetail.projectDeleted`),life:2e3})}return(t,n)=>(v(),d(`section`,_e,[u(`div`,ve,[u(`h2`,ye,S(e(r)(`dashboard.projects`)),1),a(e(te),{value:String(e(c).projectCount),severity:`secondary`},null,8,[`value`]),a(e(H),{icon:`ti ti-plus`,label:e(r)(`projectList.newProject`),size:`small`,variant:`text`,"data-testid":`new-project-btn`,onClick:n[0]||=e=>y.value=!0},null,8,[`label`])]),e(c).projects.length===0?(v(),d(`p`,be,S(e(r)(`dashboard.noProjects`)),1)):(v(),d(`div`,xe,[(v(!0),d(b,null,f(e(c).projects,t=>(v(),w(ge,{key:`${t.orgId??`local`}:${t.id}`,project:t,active:z(t),"data-testid":`project-row-link`,onClick:e=>B(t)},{actions:x(()=>[u(`button`,{type:`button`,class:`project-menu-button`,"aria-label":e(r)(`common.actions`),onClick:j(e=>U(e,t),[`stop`])},[...n[13]||=[u(`i`,{class:`ti ti-dots-vertical`},null,-1)]],8,Se)]),_:2},1032,[`project`,`active`,`onClick`]))),128))])),a(e(F),{ref_key:`menu`,ref:_},{default:x(()=>[h.value?(v(),d(`div`,Ce,[u(`button`,{type:`button`,class:`project-menu__item`,onClick:n[1]||=e=>ae(h.value)},[n[14]||=u(`i`,{class:`ti ti-pencil`},null,-1),o(S(e(r)(`dashboard.editProject`)),1)]),!h.value.orgId&&e(p)?(v(),d(`button`,{key:0,type:`button`,class:`project-menu__item`,"data-testid":`project-publish`,onClick:n[2]||=e=>ie(h.value)},[n[15]||=u(`i`,{class:`ti ti-cloud-upload`},null,-1),o(S(e(r)(`projectSwitcher.publish`)),1)])):D(``,!0),h.value.orgId?(v(),d(`button`,{key:1,type:`button`,class:`project-menu__item`,"data-testid":`project-local-path`,onClick:n[3]||=e=>oe(h.value)},[n[16]||=u(`i`,{class:`ti ti-folder-open`},null,-1),o(S(e(r)(`projectDetail.cloud.localPath`)),1)])):D(``,!0),u(`button`,{type:`button`,class:`project-menu__item project-menu__item--danger`,onClick:n[4]||=e=>de(h.value)},[n[17]||=u(`i`,{class:`ti ti-trash`},null,-1),o(S(e(r)(`projectDetail.deleteProjectTitle`)),1)])])):D(``,!0)]),_:1},512),a(ce,{visible:y.value,"onUpdate:visible":n[5]||=e=>y.value=e,onCreated:Y},null,8,[`visible`]),a(le,{visible:C.value,"onUpdate:visible":n[6]||=e=>C.value=e,project:T.value,onPublished:n[7]||=t=>e(c).fetchAll()},null,8,[`visible`,`project`]),a(e(V),{visible:E.value,"onUpdate:visible":n[11]||=e=>E.value=e,header:e(r)(`dashboard.editProject`),modal:``,style:{width:`420px`}},{footer:x(()=>[a(e(H),{label:e(r)(`actions.cancel`),severity:`secondary`,variant:`text`,disabled:m.value,onClick:n[10]||=e=>E.value=!1},null,8,[`label`,`disabled`]),a(e(H),{label:e(r)(`actions.save`),icon:`ti ti-check`,loading:m.value,disabled:!A.value.name.trim(),onClick:X},null,8,[`label`,`loading`,`disabled`])]),default:x(()=>[u(`div`,we,[u(`label`,Te,S(e(r)(`common.name`)),1),a(e(L),{id:`dashboard-edit-name`,modelValue:A.value.name,"onUpdate:modelValue":n[8]||=e=>A.value.name=e,autofocus:``,onKeyup:O(X,[`enter`])},null,8,[`modelValue`])]),u(`div`,Ee,[u(`label`,De,S(e(r)(`common.description`)),1),a(e(L),{id:`dashboard-edit-desc`,modelValue:A.value.description,"onUpdate:modelValue":n[9]||=e=>A.value.description=e,onKeyup:O(X,[`enter`])},null,8,[`modelValue`])])]),_:1},8,[`visible`,`header`]),k.value?.orgId?(v(),w(se,{key:2,visible:P.value,"onUpdate:visible":n[12]||=e=>P.value=e,"project-id":k.value.id,"org-id":k.value.orgId,"project-name":k.value.name,"initial-path":I.value,onChosen:ue},null,8,[`visible`,`project-id`,`org-id`,`project-name`,`initial-path`])):D(``,!0)]))}}),[[`__scopeId`,`data-v-76822031`]]);function ke(e,t){let n=new Map;for(let e of t)e.from!==e.to&&n.set(e.to,[...n.get(e.to)??[],e.from]);let r=new Map,i=new Set,a=e=>{let t=r.get(e);if(t!==void 0)return t;if(i.has(e))return 0;i.add(e);let o=0;for(let t of n.get(e)??[])o=Math.max(o,a(t)+1);return i.delete(e),r.set(e,o),o};for(let t of e)a(t.id);return r}function Ae(e,t,n){if(e.length===0)return{nodes:[],width:n.padding*2,height:n.padding*2};let r=ke(e,t),i=new Map;for(let t of e){let e=r.get(t.id)??0;i.set(e,[...i.get(e)??[],t])}let a=Math.max(...[...i.values()].map(e=>e.length)),o=Math.max(...i.keys()),s=n.padding*2+a*n.rowHeight,c=n.padding*2+(o+1)*n.columnWidth,l=[];for(let[e,t]of i){let r=(a-t.length)/2;t.forEach((t,i)=>{l.push({...t,depth:e,x:n.padding+e*n.columnWidth+n.columnWidth/2,y:n.padding+(r+i+.5)*n.rowHeight})})}let u=new Map(l.map(e=>[e.id,e]));return{nodes:e.map(e=>u.get(e.id)),width:c,height:s}}var je=.2,Z=1.1,Me=16;function Ne(e){return Math.min(3,Math.max(je,e))}function Pe(e,t,n){let r=Ne(e.scale*t),i=r/e.scale;return{scale:r,x:n.x-(n.x-e.x)*i,y:n.y-(n.y-e.y)*i}}function Fe(e,t,n){return{...e,x:e.x+t,y:e.y+n}}function Ie(e,t){if(t.width<=0||t.height<=0||e.width<=0||e.height<=0)return{x:0,y:0,scale:1};let n=Math.min(Me,t.width/4,t.height/4),r=Ne(Math.min(1,(t.width-2*n)/e.width,(t.height-2*n)/e.height));return{scale:r,x:(t.width-e.width*r)/2,y:(t.height-e.height*r)/2}}function Le(){let e=t({x:0,y:0,scale:1}),r=t(!1),i=null,a=!1;function o(t){t.preventDefault();let n=t.currentTarget.getBoundingClientRect(),r=t.deltaY<0?Z:1/Z;e.value=Pe(e.value,r,{x:t.clientX-n.left,y:t.clientY-n.top})}function s(t){if(!i)return;let n=t.clientX-i.x,r=t.clientY-i.y;(n!==0||r!==0)&&(a=!0),i={x:t.clientX,y:t.clientY},e.value=Fe(e.value,n,r)}function c(){i=null,r.value=!1,window.removeEventListener(`pointermove`,s),window.removeEventListener(`pointerup`,c),window.removeEventListener(`pointercancel`,c),a&&setTimeout(()=>{a=!1},0)}function l(e){e.button===0&&(a=!1,i={x:e.clientX,y:e.clientY},r.value=!0,window.addEventListener(`pointermove`,s),window.addEventListener(`pointerup`,c),window.addEventListener(`pointercancel`,c))}function u(t,n){e.value=Ie(t,n)}let d=e=>({x:e.width/2,y:e.height/2});function f(t){e.value=Pe(e.value,Z*Z,d(t))}function p(t){e.value=Pe(e.value,1/(Z*Z),d(t))}return n(c),{transform:e,isPanning:r,onWheel:o,onPointerDown:l,fit:u,zoomIn:f,zoomOut:p,dragJustEnded:()=>a}}var Re={class:`panel service-graph`},ze=[`aria-expanded`],Be={class:`panel__title`},Ve={class:`service-graph__hint`},He={key:0,class:`panel__empty`},Ue={key:1,class:`panel__empty`},We={key:2,class:`panel__empty`},Ge={key:0,class:`panel__empty`},Ke={class:`service-graph__controls`},qe=[`title`,`aria-label`],Je=[`title`,`aria-label`],Ye=[`title`,`aria-label`],Xe=[`viewBox`,`width`,`height`,`aria-label`],Ze=[`d`],Qe=[`aria-label`,`onMouseenter`,`onFocus`,`onClick`,`onKeydown`],$e=[`x`,`y`],et=[`x`,`y`],tt=[`x`,`y`],nt={key:1,class:`service-graph__keys`},rt={key:2,class:`service-graph__warnings`},it=210,at=84,ot=24,Q=150,st=44,ct=`runeya.dashboard.serviceGraphCollapsed`,lt=U(_({__name:`ServiceGraphPanel`,props:{project:{}},setup(n){let r=n,{t:i}=M(),a=P(),s=t([]),l=t([]),p=t([]),h=t(!1),_=t(!1),x=t(null);function w(){try{return localStorage.getItem(ct)!==`false`}catch{return!0}}let T=t(w());function E(){T.value=!T.value;try{localStorage.setItem(ct,String(T.value))}catch{}}c(T,e=>{e||N()});function k(){s.value=[],l.value=[],p.value=[]}let A=0;async function N(){let e=r.project,t=++A;if(!e||T.value){k(),h.value=!1,_.value=!1;return}h.value=!0,_.value=!1;try{let n=await K.project.graph.query({id:e.id,orgId:e.orgId??null});if(t!==A)return;s.value=n.nodes,l.value=n.edges,p.value=n.dangling}catch{if(t!==A)return;_.value=!0,k()}finally{t===A&&(h.value=!1)}}c(()=>r.project?`${r.project.id}|${r.project.orgId??``}`:null,N,{immediate:!0});let F=g(()=>Ae(s.value,l.value,{columnWidth:it,rowHeight:at,padding:ot})),I=g(()=>new Map(F.value.nodes.map(e=>[e.id,e]))),L=g(()=>l.value.flatMap(e=>{let t=I.value.get(e.from),n=I.value.get(e.to);if(!t||!n)return[];let r=t.x+Q/2,i=n.x-Q/2,a=Math.max(40,Math.abs(i-r)/2);return[{...e,id:`${e.from}->${e.to}`,path:`M ${r} ${t.y} C ${r+a} ${t.y}, ${i-a} ${n.y}, ${i} ${n.y}`}]}));function R(e){return x.value!==null&&(e.from===x.value||e.to===x.value)}function ee(e){return x.value===null||x.value===e?!1:!l.value.some(t=>t.from===x.value&&t.to===e||t.to===x.value&&t.from===e)}let z=g(()=>{if(!x.value)return[];let e=new Set;for(let t of l.value)if(t.from===x.value||t.to===x.value)for(let n of t.keys)e.add(n);return[...e].sort()});function te(e){return s.value.find(t=>t.id===e)}let B=t(null),V=Le(),{transform:H,isPanning:U}=V;function W(){return{width:B.value?.clientWidth??0,height:B.value?.clientHeight??0}}function G(){V.fit({width:F.value.width,height:F.value.height},W())}c(()=>`${F.value.width}x${F.value.height}`,()=>void C(G),{immediate:!0});function q(e){V.dragJustEnded()||a.push(`/services/${e}`)}return(t,n)=>(v(),d(`section`,Re,[u(`button`,{type:`button`,class:m([`panel__header service-graph__toggle`,{"service-graph__toggle--collapsed":T.value}]),"aria-expanded":!T.value,onClick:E},[u(`i`,{class:m([`ti`,T.value?`ti-chevron-right`:`ti-chevron-down`]),"aria-hidden":`true`},null,2),u(`h2`,Be,S(e(i)(`dashboard.graphTitle`)),1),u(`span`,Ve,S(e(i)(`dashboard.graphHint`)),1)],10,ze),T.value?D(``,!0):(v(),d(b,{key:0},[h.value?(v(),d(`p`,He,S(e(i)(`dashboard.graphLoading`)),1)):_.value?(v(),d(`p`,Ue,S(e(i)(`dashboard.graphFailed`)),1)):s.value.length===0?(v(),d(`p`,We,S(e(i)(`dashboard.graphNoServices`)),1)):(v(),d(b,{key:3},[l.value.length===0?(v(),d(`p`,Ge,S(e(i)(`dashboard.graphNoLinks`)),1)):D(``,!0),u(`div`,{ref_key:`frame`,ref:B,class:m([`service-graph__frame`,{"service-graph__frame--panning":e(U)}]),onWheel:n[7]||=(...t)=>e(V).onWheel&&e(V).onWheel(...t),onPointerdown:n[8]||=(...t)=>e(V).onPointerDown&&e(V).onPointerDown(...t),onDblclick:j(G,[`self`])},[u(`div`,Ke,[u(`button`,{type:`button`,class:`service-graph__control`,title:e(i)(`dashboard.graphZoomIn`),"aria-label":e(i)(`dashboard.graphZoomIn`),onClick:n[0]||=t=>e(V).zoomIn(W()),onPointerdown:n[1]||=j(()=>{},[`stop`])},[...n[9]||=[u(`i`,{class:`ti ti-plus`,"aria-hidden":`true`},null,-1)]],40,qe),u(`button`,{type:`button`,class:`service-graph__control`,title:e(i)(`dashboard.graphZoomOut`),"aria-label":e(i)(`dashboard.graphZoomOut`),onClick:n[2]||=t=>e(V).zoomOut(W()),onPointerdown:n[3]||=j(()=>{},[`stop`])},[...n[10]||=[u(`i`,{class:`ti ti-minus`,"aria-hidden":`true`},null,-1)]],40,Je),u(`button`,{type:`button`,class:`service-graph__control`,title:e(i)(`dashboard.graphFit`),"aria-label":e(i)(`dashboard.graphFit`),onClick:G,onPointerdown:n[4]||=j(()=>{},[`stop`])},[...n[11]||=[u(`i`,{class:`ti ti-arrows-move`,"aria-hidden":`true`},null,-1)]],40,Ye)]),(v(),d(`svg`,{class:`service-graph__svg`,viewBox:`0 0 ${F.value.width} ${F.value.height}`,width:F.value.width,height:F.value.height,style:y({transform:`translate(${e(H).x}px, ${e(H).y}px) scale(${e(H).scale})`}),role:`img`,"aria-label":e(i)(`dashboard.graphAria`,{count:l.value.length})},[n[12]||=u(`defs`,null,[u(`marker`,{id:`service-graph-arrow`,viewBox:`0 0 10 10`,refX:`9`,refY:`5`,markerWidth:`6`,markerHeight:`6`,orient:`auto-start-reverse`},[u(`path`,{d:`M 0 0 L 10 5 L 0 10 z`,class:`service-graph__arrow-head`})])],-1),(v(!0),d(b,null,f(L.value,e=>(v(),d(`path`,{key:e.id,d:e.path,class:m([`service-graph__edge`,{"service-graph__edge--active":R(e),"service-graph__edge--dimmed":x.value!==null&&!R(e)}]),"marker-end":`url(#service-graph-arrow)`},null,10,Ze))),128)),(v(!0),d(b,null,f(F.value.nodes,e=>(v(),d(`g`,{key:e.id,class:m([`service-graph__node`,{"service-graph__node--dimmed":ee(e.id)}]),tabindex:`0`,role:`button`,"aria-label":e.name,onMouseenter:t=>x.value=e.id,onMouseleave:n[5]||=e=>x.value=null,onFocus:t=>x.value=e.id,onBlur:n[6]||=e=>x.value=null,onClick:t=>q(e.id),onKeydown:[O(j(t=>q(e.id),[`prevent`]),[`enter`]),O(j(t=>q(e.id),[`prevent`]),[`space`])]},[u(`rect`,{x:e.x-Q/2,y:e.y-st/2,width:Q,height:st,rx:`8`,class:m([`service-graph__box`,{"service-graph__box--ambiguous":e.ambiguousSlug}])},null,10,$e),u(`text`,{x:e.x,y:e.y-3,class:`service-graph__name`},S(e.name),9,et),u(`text`,{x:e.x,y:e.y+12,class:`service-graph__slug`},S(e.slug),9,tt)],42,Qe))),128))],12,Xe))],34),z.value.length>0?(v(),d(`p`,nt,[o(S(e(i)(`dashboard.graphVia`))+` `,1),(v(!0),d(b,null,f(z.value,e=>(v(),d(`code`,{key:e},S(e),1))),128))])):D(``,!0),p.value.length>0?(v(),d(`ul`,rt,[(v(!0),d(b,null,f(p.value,t=>(v(),d(`li`,{key:`${t.from}-${t.slug}`},S(e(i)(`dashboard.graphDangling`,{service:te(t.from)?.name??t.from,slug:t.slug,keys:t.keys.join(`, `)})),1))),128))])):D(``,!0)],64))],64))]))}}),[[`__scopeId`,`data-v-06ba13f6`]]);function ut(e){if(e==null||!Number.isFinite(e)||e<0)return`—`;let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60);if(n<60)return`${n}m`;let r=Math.floor(n/60);return r<24?`${r}h ${n%60}m`:`${Math.floor(r/24)}d ${r%24}h`}var dt={key:0,class:`service-row__agent service-row__agent--missing`},ft={key:1,class:`service-row__agent`},pt=[`aria-label`],mt={class:`service-row__name`},ht={key:2,class:`service-row__state`},gt={key:3,class:`service-row__agent-hint`},_t={key:4,class:`ti ti-alert-triangle service-row__health`},vt=U(_({__name:`ServiceStatusRow`,props:{service:{},processes:{},now:{},showAgent:{type:Boolean}},setup(t){let n=t,{t:r}=M(),s=P(),c=Y(),f=g(()=>ae(n.processes)),p=g(()=>f.value?.state??`stopped`),h=g(()=>{switch(p.value){case`running`:return`success`;case`starting`:return`warn`;case`errored`:return`danger`;default:return`idle`}}),_=g(()=>ie(n.service)),y=g(()=>_.value?c.getById(_.value)?.config.name??_.value:null),x=g(()=>{let e=f.value;return!e||e.state!==`running`?null:e.startedAt?Math.max(0,n.now-new Date(e.startedAt).getTime()):e.uptime*1e3}),C=g(()=>f.value?.healthStatus===`unhealthy`);function w(){s.push(`/services/${n.service.id}`)}return(n,s)=>{let c=i(`tooltip`);return v(),d(`div`,{class:m([`service-row`,`service-row--${h.value}`])},[u(`button`,{type:`button`,class:`service-row__main`,"data-testid":`service-row-link`,onClick:w},[y.value?t.showAgent?l((v(),d(`span`,ft,[s[0]||=u(`i`,{class:`ti ti-server`},null,-1),o(S(y.value),1)])),[[c,y.value,void 0,{top:!0}]]):D(``,!0):(v(),d(`span`,dt,S(e(r)(`serviceHeader.noAgent`)),1)),l(u(`span`,{class:`service-row__dot`,role:`img`,"aria-label":e(r)(`status.${p.value}`)},null,8,pt),[[c,e(r)(`status.${p.value}`),void 0,{top:!0}]]),u(`span`,mt,S(t.service.name),1),p.value===`stopped`?D(``,!0):(v(),d(`span`,ht,[o(S(e(r)(`status.${p.value}`))+` `,1),x.value===null?D(``,!0):(v(),d(b,{key:0},[o(` · `+S(e(ut)(x.value)),1)],64))])),y.value&&!t.showAgent?(v(),d(`span`,gt,[s[1]||=u(`i`,{class:`ti ti-server`},null,-1),o(S(y.value),1)])):D(``,!0),C.value?l((v(),d(`i`,_t,null,512)),[[c,e(r)(`dashboard.unhealthy`),void 0,{top:!0}]]):D(``,!0)]),a(oe,{class:`service-row__controls`,compact:``,"agent-id":f.value?.agentId??_.value??``,"process-id":f.value?.id??t.service.id,state:p.value},null,8,[`agent-id`,`process-id`,`state`])],2)}}}),[[`__scopeId`,`data-v-b0350475`]]);function yt(){let e=X(),t=J(),n=g(()=>t.services.map(t=>{let n=e.getByService(t.id);return{service:t,processes:n,state:ae(n)?.state??`stopped`}}));return{states:n,runningCount:g(()=>n.value.filter(e=>e.state===`running`||e.state===`starting`).length),erroredCount:g(()=>n.value.filter(e=>e.state===`errored`).length),stoppedCount:g(()=>n.value.filter(e=>e.state===`stopped`).length)}}var bt={class:`panel`,"data-testid":`services-panel`},xt={class:`panel__header`},St={class:`panel__title`},Ct={class:`panel__count`},wt={key:0,class:`panel__empty`},Tt={key:1,class:`panel__empty`},Et={class:`service-group__count`},Dt=U(_({__name:`ServicesPanel`,props:r({project:{},now:{}},{filter:{default:`all`},filterModifiers:{}}),emits:[`update:filter`],setup(n){let r=n,{t:i}=M(),c=P(),l=Y(),p=g(()=>l.agents.length>1),h=s(n,`filter`),_=t(``),y=g(()=>[{value:`all`,label:i(`dashboard.filterAll`)},{value:`running`,label:i(`dashboard.filterRunning`)},{value:`issues`,label:i(`dashboard.filterIssues`)},{value:`stopped`,label:i(`dashboard.filterStopped`)}]),{states:C}=yt(),T=e=>e===`errored`?0:e===`starting`?1:e===`running`?2:3,E=e=>e===`errored`?`issues`:e===`running`||e===`starting`?`running`:`stopped`,O=g(()=>{let e=_.value.trim().toLowerCase();return[...C.value.filter(t=>e&&!t.service.name.toLowerCase().includes(e)?!1:h.value===`running`?t.state===`running`||t.state===`starting`:h.value===`issues`?t.state===`errored`:h.value!==`stopped`||t.state===`stopped`)].sort((e,t)=>T(e.state)-T(t.state)||e.service.name.localeCompare(t.service.name))}),A=g(()=>{let e=[];for(let t of O.value){let n=E(t.state),r=e.at(-1);r?.key!==n&&(r={key:n,label:i(n===`issues`?`dashboard.filterIssues`:n===`running`?`dashboard.filterRunning`:`dashboard.filterStopped`),entries:[]},e.push(r)),r.entries.push(t)}return e}),j=g(()=>h.value===`all`&&A.value.length>1);function N(){c.push({name:`service-create`,...r.project?{query:{projectId:r.project.id}}:{}})}return(t,r)=>(v(),d(`section`,bt,[u(`div`,xt,[u(`h2`,St,[o(S(e(i)(`dashboard.services`))+` `,1),u(`span`,Ct,S(e(C).length),1)]),a(e(R),{class:`panel__search`},{default:x(()=>[a(e(I),{class:`ti ti-search`}),a(e(L),{modelValue:_.value,"onUpdate:modelValue":r[0]||=e=>_.value=e,size:`small`,placeholder:e(i)(`projectDetail.searchServices`),"aria-label":e(i)(`projectDetail.searchServices`)},null,8,[`modelValue`,`placeholder`,`aria-label`])]),_:1}),a(e(H),{icon:`ti ti-plus`,label:e(i)(`projectDetail.createNew`),size:`small`,variant:`text`,onClick:N},null,8,[`label`])]),a(e(z),{modelValue:h.value,"onUpdate:modelValue":r[1]||=e=>h.value=e,class:`panel__filters`,options:y.value,"option-label":`label`,"option-value":`value`,size:`small`,"allow-empty":!1},null,8,[`modelValue`,`options`]),e(C).length===0?(v(),d(`p`,wt,S(e(i)(`dashboard.noServices`)),1)):O.value.length===0?(v(),d(`p`,Tt,S(e(i)(`dashboard.noServicesForFilter`)),1)):(v(),w(k,{key:2,tag:`div`,name:`service-list`,class:`service-list`},{default:x(()=>[(v(!0),d(b,null,f(A.value,e=>(v(),d(b,{key:e.key},[j.value?(v(),d(`h3`,{key:`group:${e.key}`,class:m([`service-group`,`service-group--${e.key}`])},[o(S(e.label)+` `,1),u(`span`,Et,S(e.entries.length),1)],2)):D(``,!0),(v(!0),d(b,null,f(e.entries,e=>(v(),w(vt,{key:e.service.id,service:e.service,processes:e.processes,now:n.now,"show-agent":p.value},null,8,[`service`,`processes`,`now`,`show-agent`]))),128))],64))),128))]),_:1}))]))}}),[[`__scopeId`,`data-v-140c1215`]]),Ot={class:`stat-tile__value`},kt={class:`stat-tile__label`},$=U(_({__name:`StatTile`,props:{icon:{},value:{},label:{},tone:{},to:{},selectable:{type:Boolean},active:{type:Boolean}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,i=P(),o=g(()=>n.tone??`neutral`),s=g(()=>!!n.to||!!n.selectable);function c(){n.to?i.push(n.to):n.selectable&&r(`select`)}return(t,r)=>(v(),w(T(s.value?`button`:`div`),{type:s.value?`button`:void 0,class:m([`stat-tile`,[`stat-tile--${o.value}`,{"stat-tile--pressable":s.value,"stat-tile--active":e.active}]]),"aria-pressed":e.selectable?!!e.active:void 0,onClick:c},{default:x(()=>[u(`i`,{class:m([`ti`,n.icon,`stat-tile__icon`])},null,2),u(`span`,Ot,[a(A,{name:`stat-value`,mode:`out-in`},{default:x(()=>[(v(),d(`span`,{key:String(n.value),class:`stat-tile__digits`},S(n.value),1))]),_:1})]),u(`span`,kt,S(n.label),1)]),_:1},8,[`type`,`class`,`aria-pressed`]))}}),[[`__scopeId`,`data-v-502c82fd`]]),At={class:`dashboard-page`},jt=[`aria-label`],Mt={class:`summary-strip__group`},Nt={class:`summary-strip__group summary-strip__group--end`},Pt={class:`dashboard-columns`},Ft={class:`dashboard-aside`},It={class:`panel`},Lt={class:`panel__header`},Rt={class:`panel__title`},zt={key:0,class:`panel__empty`},Bt={key:1,class:`agent-list`},Vt={class:`agent-item__name`},Ht={class:`agent-item__state`},Ut=U(_({__name:`DashboardPage`,setup(n){let{t:r}=M(),{lockedProjectId:i}=G(),o=q(),s=Y(),c=X(),l=J(),_=N(),y=t(Date.now()),x=null,C=t(null),T=g(()=>o.projects.find(e=>e.id===_.activeProjectId&&(e.orgId??null)===(_.activeOrgId??null))??null);p(async()=>{await Promise.all([o.fetchAll(),s.fetchAll(),c.fetchAll(),l.fetchAll()]),x=setInterval(()=>{y.value=Date.now()},1e3);try{let e=await K.wiki.list.query({scope:`global`}),t=0,n=e=>{for(let r of e)r.type===`file`?t+=1:r.type===`dir`&&Array.isArray(r.children)&&n(r.children)};n(e.entries),C.value=t}catch{C.value=null}}),h(()=>{x&&clearInterval(x)});let{runningCount:E,erroredCount:O,stoppedCount:k}=yt(),A=t(`all`);function j(e){A.value=A.value===e?`all`:e}let P=g(()=>s.agents.filter(e=>!e.status.connected).length);return(t,n)=>(v(),d(`div`,At,[u(`section`,{class:`summary-strip`,"aria-label":e(r)(`dashboard.healthBand`)},[u(`div`,Mt,[a($,{icon:`ti-player-play`,tone:`success`,value:e(E),label:e(r)(`dashboard.servicesRunning`),selectable:``,active:A.value===`running`,onSelect:n[0]||=e=>j(`running`)},null,8,[`value`,`label`,`active`]),a($,{icon:`ti-alert-triangle`,tone:e(O)>0?`danger`:`neutral`,value:e(O),label:e(r)(`dashboard.servicesErrored`),selectable:``,active:A.value===`issues`,onSelect:n[1]||=e=>j(`issues`)},null,8,[`tone`,`value`,`label`,`active`]),a($,{icon:`ti-player-pause`,tone:`neutral`,value:e(k),label:e(r)(`dashboard.servicesStopped`),selectable:``,active:A.value===`stopped`,onSelect:n[2]||=e=>j(`stopped`)},null,8,[`value`,`label`,`active`])]),u(`div`,Nt,[a($,{icon:`ti-server`,tone:P.value>0?`warn`:`success`,value:`${e(s).connectedAgents.length}/${e(s).agents.length}`,label:e(r)(`dashboard.agentsConnected`),to:`/settings?section=agents`},null,8,[`tone`,`value`,`label`]),a($,{icon:`ti-book`,value:C.value??`—`,label:e(r)(`dashboard.globalWiki`),to:`/wiki`},null,8,[`value`,`label`])])],8,jt),T.value?(v(),w(lt,{key:0,project:T.value},null,8,[`project`])):D(``,!0),u(`div`,Pt,[a(Dt,{filter:A.value,"onUpdate:filter":n[3]||=e=>A.value=e,project:T.value,now:y.value},null,8,[`filter`,`project`,`now`]),u(`div`,Ft,[e(i)?D(``,!0):(v(),w(Oe,{key:0})),u(`section`,It,[u(`div`,Lt,[u(`h2`,Rt,S(e(r)(`dashboard.agentStatus`)),1)]),e(s).agents.length===0?(v(),d(`p`,zt,S(e(r)(`dashboard.noAgents`)),1)):(v(),d(`ul`,Bt,[(v(!0),d(b,null,f(e(s).agents,t=>(v(),d(`li`,{key:t.config.id,class:`agent-item`},[u(`span`,{class:m([`agent-item__dot`,t.status.connected?`agent-item__dot--on`:`agent-item__dot--off`])},null,2),u(`span`,Vt,S(t.config.name),1),u(`span`,Ht,S(t.status.connected?e(r)(`dashboard.connected`):e(r)(`dashboard.disconnected`)),1)]))),128))]))])])])]))}}),[[`__scopeId`,`data-v-ef3e9fbe`]]);export{Ut as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e,C as t}from"./reactivity.esm-bundler-BQ9SB2vv.js";import{D as n,E as r,Ht as i,Rt as a,_ as o,b as s,bt as c,en as ee,g as l,k as u,mt as d,o as f,qt as p,rn as m,tt as te,v as h,y as g}from"./runtime-core.esm-bundler-DujKY9QV.js";import{C as _,w as v}from"./runtime-dom.esm-bundler-CyEVRK6B.js";import{n as ne}from"./vue-i18n-o7yraQpR.js";import{G as re,J as y,K as b,W as x,Y as ie,dt as S,ft as C}from"./src-Ck_MutzB.js";import{r as w}from"./trpc-
|
|
1
|
+
import{B as e,C as t}from"./reactivity.esm-bundler-BQ9SB2vv.js";import{D as n,E as r,Ht as i,Rt as a,_ as o,b as s,bt as c,en as ee,g as l,k as u,mt as d,o as f,qt as p,rn as m,tt as te,v as h,y as g}from"./runtime-core.esm-bundler-DujKY9QV.js";import{C as _,w as v}from"./runtime-dom.esm-bundler-CyEVRK6B.js";import{n as ne}from"./vue-i18n-o7yraQpR.js";import{G as re,J as y,K as b,W as x,Y as ie,dt as S,ft as C}from"./src-Ck_MutzB.js";import{r as w}from"./trpc-BQ0mLnfI.js";import{n as T}from"./error-DpF7X5iu.js";function E(e){let t=e.split(/\r?\n/).map(e=>e.trim()).find(e=>e.length>0)??``,n=t[0];if((n===`"`||n===`'`)&&t.endsWith(n)&&t.length>1&&(t=t.slice(1,-1).trim()),/^file:\/\//i.test(t)){try{t=decodeURIComponent(new URL(t).pathname)}catch{return``}return/^\/[A-Za-z]:/.test(t)&&(t=t.slice(1)),t}return/^[A-Za-z]:[\\/]/.test(t)||t.startsWith(`\\\\`)||(t=t.replace(/\\ /g,` `)),t}function D(e){let t=E(e);return t?t.includes(`/`)||t.includes(`\\`)||t.startsWith(`~`)||/^[A-Za-z]:$/.test(t):!1}var ae={class:`picker-lead`},oe={class:`picker-hint`},se={class:`picker-path`},ce=[`aria-label`],le={key:0,class:`ti ti-chevron-right picker-crumbs__sep`,"aria-hidden":`true`},ue={key:1,class:`picker-crumbs__current`,"aria-current":`page`},de=[`disabled`,`onClick`],fe={class:`picker-mode`,"aria-live":`polite`},pe={key:0,class:`picker-empty`},me={key:1,class:`picker-empty`},he={key:2,class:`picker-empty`},ge=[`onClick`],_e={class:`picker-row__name`},ve={key:0,class:`picker-row__badge`},ye={key:3,class:`picker-empty`},O=C(u({__name:`DirectoryPickerDialog`,props:{visible:{type:Boolean},mode:{},projectId:{},orgId:{},projectName:{},required:{type:Boolean},initialPath:{}},emits:[`update:visible`,`chosen`,`local-chosen`],setup(u,{emit:C}){let O=u,k=C,A=l(()=>O.mode===`local`),{t:j}=ne(),M=t(``),N=t(null),P=t([]),F=t(!1),I=t(!1),L=t(!1),R=t(``),z=t(null),B=t(null),V=t(``),H=e=>e.normalize(`NFD`).replace(/\p{Diacritic}/gu,``).toLowerCase(),U=l(()=>D(V.value)),W=l(()=>{if(U.value)return P.value;let e=H(V.value.trim());return e?P.value.filter(t=>H(t.name).includes(e)):P.value}),G=l(()=>!!M.value&&z.value?.ok===!0&&!L.value),K=l(()=>{let e=M.value;if(!e)return[];let t=/^[A-Za-z]:[\\/]/.test(e),n=t?`\\`:`/`,r=e.split(/[\\/]+/).filter(Boolean),i=[];t||i.push({label:j(`directoryPicker.root`),path:`/`});let a=``;return r.forEach((e,r)=>{a=t&&r===0?e:`${a}${n}${e}`,i.push({label:e,path:t&&r===0?`${e}${n}`:a})}),i}),q=l(()=>K.value.at(-1)?.label??``),be=l(()=>A.value&&B.value?.status===`importable`?j(`directoryPicker.importNamed`,{name:B.value.projectName??q.value}):A.value&&B.value?.status===`available`?j(`directoryPicker.createHere`,{name:q.value}):q.value?j(`directoryPicker.confirmNamed`,{name:q.value}):j(`directoryPicker.confirm`)),J=a(`filterInput`);async function Y(){await te(),J.value?.$el?.focus()}function xe(){if(U.value){let e=E(V.value);e&&Z(e);return}let e=W.value;e.length===1&&e[0]&&Z(e[0].path)}function Se(e){let t=e.clipboardData?.getData(`text`)??``;if(!D(t))return;let n=E(t);n&&(e.preventDefault(),V.value=n,Z(n))}function X(e,t){let n=e.currentTarget,r=Array.from(n.querySelectorAll(`.picker-row`));if(!r.length)return;let i=r.indexOf(document.activeElement),a=i===-1?t>0?0:r.length-1:i+t;r[Math.max(0,Math.min(r.length-1,a))]?.focus()}function Ce(e){(e.currentTarget.closest(`.r-dialog__body`)??document).querySelector(`.picker-row`)?.focus()}async function Z(e){I.value=!0,R.value=``;try{let t=await w.filesystem.listDirectories.query({path:e});M.value=t.path,N.value=t.parent,P.value=t.entries,F.value=t.truncated,V.value=``,Y(),await we()}catch(e){R.value=T(e)??j(`directoryPicker.readError`)}finally{I.value=!1}}async function we(){if(M.value){if(A.value){try{let e=await w.filesystem.checkLocalProjectTarget.query({path:M.value});B.value={status:e.status,projectName:e.projectName},z.value={ok:e.status===`available`||e.status===`importable`,reason:e.status===`available`||e.status===`importable`?null:e.status,otherProjectId:null}}catch{B.value=null,z.value={ok:!1,reason:`missing`,otherProjectId:null}}return}try{let e=await w.filesystem.checkProjectTarget.query({path:M.value,projectId:O.projectId??``,orgId:O.orgId??null});z.value={ok:e.ok,reason:e.reason,otherProjectId:e.otherProjectId}}catch{z.value={ok:!1,reason:`missing`,otherProjectId:null}}}}async function Q(){try{await Z((await w.filesystem.suggestedRoots.query())[0]?.path??`~`)}catch(e){R.value=T(e)??j(`directoryPicker.readError`)}}async function Te(){if(G.value){if(A.value){let e=B.value?.status;if(e!==`available`&&e!==`importable`)return;k(`local-chosen`,{path:M.value,status:e,projectName:B.value?.projectName??null}),k(`update:visible`,!1);return}L.value=!0,R.value=``;try{await w.project.setLocalPath.mutate({id:O.projectId??``,orgId:O.orgId??null,path:M.value}),k(`chosen`,M.value),k(`update:visible`,!1)}catch(e){R.value=T(e)??j(`directoryPicker.saveError`)}finally{L.value=!1}}}i(()=>O.visible,e=>{e&&!M.value&&(O.initialPath?Z(O.initialPath):Q())},{immediate:!0});let $=l(()=>{let e=z.value?.reason;return e?e===`has-runeya-project`?j(`directoryPicker.refusedHasProject`):e===`listed`?j(`directoryPicker.refusedListed`,{name:B.value?.projectName??``}):j(e===`cloud-linked`?`directoryPicker.refusedCloudLinked`:e===`unreadable`?`directoryPicker.refusedUnreadable`:e===`machine-root`?`serverErrors.LOCAL_PROJECT_IN_MACHINE_ROOT`:e===`taken`?`directoryPicker.refusedTaken`:`directoryPicker.refusedMissing`):``});return(t,i)=>(d(),h(e(ie),{visible:u.visible,modal:``,closable:!u.required,"close-on-escape":!u.required,header:A.value?e(j)(`directoryPicker.localTitle`):e(j)(`directoryPicker.title`,{project:u.projectName??``}),style:{width:`46rem`,maxWidth:`95vw`},"data-testid":`directory-picker`,"onUpdate:visible":i[5]||=e=>k(`update:visible`,e),onShow:Y},{footer:p(()=>[u.required?g(``,!0):(d(),h(e(S),{key:0,label:e(j)(`actions.cancel`),variant:`text`,onClick:i[4]||=e=>k(`update:visible`,!1)},null,8,[`label`])),n(e(S),{label:be.value,disabled:!G.value,loading:L.value,"data-testid":`directory-picker-confirm`,onClick:Te},null,8,[`label`,`disabled`,`loading`])]),default:p(()=>[o(`p`,ae,m(A.value?e(j)(`directoryPicker.localLead`):e(j)(`directoryPicker.lead`)),1),o(`p`,oe,m(A.value?e(j)(`directoryPicker.localHint`):e(j)(`directoryPicker.leadHint`)),1),o(`div`,se,[n(e(S),{icon:`ti ti-arrow-up`,variant:`text`,rounded:``,disabled:!N.value||I.value,"aria-label":e(j)(`directoryPicker.up`),"data-testid":`directory-picker-up`,onClick:i[0]||=e=>N.value&&Z(N.value)},null,8,[`disabled`,`aria-label`]),o(`nav`,{class:`picker-crumbs`,"aria-label":e(j)(`directoryPicker.crumbAria`),"data-testid":`directory-picker-current`},[(d(!0),s(f,null,c(K.value,(e,t)=>(d(),s(f,{key:e.path},[t?(d(),s(`i`,le)):g(``,!0),t===K.value.length-1?(d(),s(`span`,ue,m(e.label),1)):(d(),s(`button`,{key:2,type:`button`,class:`picker-crumbs__link`,disabled:I.value,onClick:t=>Z(e.path)},m(e.label),9,de))],64))),128))],8,ce)]),n(e(b),{class:`picker-filter`},{default:p(()=>[n(e(re),{class:`ti ti-search`}),n(e(y),{ref_key:`filterInput`,ref:J,modelValue:V.value,"onUpdate:modelValue":i[1]||=e=>V.value=e,placeholder:e(j)(`directoryPicker.filterPlaceholder`),"data-testid":`directory-picker-filter`,fluid:``,onKeydown:[_(v(Ce,[`prevent`]),[`down`]),_(xe,[`enter`])],onPaste:Se},null,8,[`modelValue`,`placeholder`,`onKeydown`])]),_:1}),o(`p`,fe,[U.value?(d(),s(f,{key:0},[r(m(e(j)(`directoryPicker.pathHint`)),1)],64)):g(``,!0)]),o(`div`,{class:`picker-list`,"data-testid":`directory-picker-list`,onKeydown:[i[2]||=_(v(e=>X(e,1),[`prevent`]),[`down`]),i[3]||=_(v(e=>X(e,-1),[`prevent`]),[`up`])]},[I.value?(d(),s(`p`,pe,m(e(j)(`directoryPicker.loading`)),1)):P.value.length?W.value.length?g(``,!0):(d(),s(`p`,he,m(e(j)(`directoryPicker.noMatch`,{filter:V.value})),1)):(d(),s(`p`,me,m(e(j)(`directoryPicker.empty`)),1)),(d(!0),s(f,null,c(W.value,t=>(d(),s(`button`,{key:t.path,type:`button`,class:ee([`picker-row`,{"picker-row--taken":t.hasRuneyaProject}]),onClick:e=>Z(t.path)},[i[6]||=o(`i`,{class:`ti ti-folder`},null,-1),o(`span`,_e,m(t.name),1),t.hasRuneyaProject?(d(),s(`span`,ve,m(e(j)(`directoryPicker.badgeHasProject`)),1)):g(``,!0)],10,ge))),128)),F.value?(d(),s(`p`,ye,m(e(j)(`directoryPicker.truncated`)),1)):g(``,!0)],32),$.value?(d(),h(e(x),{key:0,severity:`warn`,"data-testid":`directory-picker-refusal`},{default:p(()=>[r(m($.value),1)]),_:1})):g(``,!0),R.value?(d(),h(e(x),{key:1,severity:`error`,"data-testid":`directory-picker-error`},{default:p(()=>[r(m(R.value),1)]),_:1})):g(``,!0)]),_:1},8,[`visible`,`closable`,`close-on-escape`,`header`]))}}),[[`__scopeId`,`data-v-483feee4`]]);export{O as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e,C as t}from"./reactivity.esm-bundler-BQ9SB2vv.js";import{D as n,E as r,Ht as i,_ as a,b as o,ct as ee,en as s,g as c,k as l,mt as u,qt as d,rn as f,v as p,y as m}from"./runtime-core.esm-bundler-DujKY9QV.js";import{w as h}from"./runtime-dom.esm-bundler-CyEVRK6B.js";import{n as te}from"./vue-i18n-o7yraQpR.js";import{F as g,J as _,P as ne,S as re,U as ie,_ as v,a as ae,b as oe,c as y,dt as b,ft as x,g as se,h as ce,k as le,m as ue,n as de,p as fe,q as pe,r as S,v as me,x as he,y as C}from"./src-Ck_MutzB.js";import{r as ge}from"./project.store-BFwiDQ1X.js";import{t as _e}from"./agent.store-DumNiX1X.js";import{a as ve,n as ye,r as w,t as T}from"./useEnvVarAutocomplete-VVX3MC62.js";var E={class:`environment-form`},D={class:`form-group`},O={for:`name`},k={key:0,class:`text-red-500`},A={class:`form-group`},j={for:`description`},M={class:`form-row`},N={class:`form-group flex-1`},P={for:`color`},be={class:`color-field`},xe={class:`text-gray-500`},Se={class:`form-group flex-1`},Ce={for:`bgColor`},we={class:`color-field`},Te={class:`text-gray-500`},Ee={class:`form-group`},De={class:`switch-row`},Oe={for:`defaultSwitch`},ke={class:`text-gray-500`},Ae={key:0,class:`form-group`},je={for:`agentSelect`},Me={class:`text-gray-500`},Ne={class:`form-actions`},Pe={class:`tab-content`},Fe={class:`form-group`},Ie={for:`parents`},Le={style:{padding:`0.5rem 0.75rem`}},Re={class:`text-gray-500`},ze={key:1},F={class:`inherited-header`},Be={class:`inherited-row-key`},Ve={class:`preview-key`},He={class:`value-row`},Ue=[`onClick`],We=[`onClick`],Ge={key:0,class:`secret-mask`},Ke={key:1,class:`preview-value`},qe={key:2,class:`empty-variables`},I=`__inherit__`,L=x(l({__name:`EnvironmentForm`,props:{projectId:{},environmentId:{},initialData:{}},emits:[`save`,`cancel`],setup(l,{emit:x}){let L=l,Je=x,R=ge(),Ye=_e(),Xe=ne(),{t:z}=te(),B=t(!1),V=t(!1),H=t({}),U=e=>(e??``).replace(/^#/,``),W=t({name:L.initialData?.name??``,description:L.initialData?.description??``,parentIds:L.initialData?.parentIds??[],color:U(L.initialData?.color),bgColor:U(L.initialData?.bgColor),default:L.initialData?.default??!1,agentId:L.initialData?.agentId??I}),Ze=c(()=>(L.initialData?.scope??`global`)===`global`),Qe=c(()=>[{label:z(`environmentForm.agentDefaultInherit`),value:I},...Ye.agents.map(e=>({label:e.config.name||e.config.id,value:e.config.id}))]),G=c(()=>R.environments.filter(e=>!(L.initialData?.id&&e.id===L.initialData.id))),K=t(``),$e=c(()=>{let e=K.value.trim().toLowerCase();if(!e)return G.value;let t=e.split(/\s+/);return G.value.filter(e=>{let n=e.name.toLowerCase();return t.every(e=>n.includes(e))})}),q=c(()=>!!L.environmentId),J=t(null),{values:et}=ye({projectId:()=>L.projectId,environmentId:()=>L.environmentId,agentId:()=>W.value.agentId===I?void 0:W.value.agentId}),{suggestions:tt,meta:nt,search:rt}=T(()=>J.value),Y=t(new Set);function it(e){let t=new Set(Y.value);t.has(e)?t.delete(e):t.add(e),Y.value=t}let X=t(null);function at(e,t){navigator.clipboard.writeText(t),X.value=e,setTimeout(()=>{X.value===e&&(X.value=null)},1500)}async function ot(){if(q.value&&L.environmentId){V.value=!0;try{await R.update({id:L.environmentId,parentIds:W.value.parentIds}),await Z()}catch(e){Xe.add({severity:`error`,summary:z(`environmentForm.failedToSaveParents`),detail:e.message??``,life:5e3})}finally{V.value=!1}}}async function Z(){if(L.environmentId)try{J.value=await R.resolve(L.environmentId)}catch{J.value=null}}function st(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 ct=c(()=>J.value?st(J.value.variables):[]),Q=c(()=>!L.environmentId||!J.value?.sources?[]:ct.value.filter(e=>J.value.sources[e.variableId]?.environmentId!==L.environmentId)),$=c(()=>{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};return e});ee(()=>{q.value&&Z()});async function lt(){if(H.value={},!W.value.name.trim()){H.value.name=z(`environmentForm.nameRequired`);return}B.value=!0;try{let e=e=>e?e.startsWith(`#`)?e:`#${e}`:``,t=e(W.value.color),n=e(W.value.bgColor),r=W.value.agentId===I?void 0:W.value.agentId,i={projectId:L.projectId,name:W.value.name.trim(),description:W.value.description.trim(),parentIds:W.value.parentIds,...q.value?{}:{variables:{}},default:W.value.default,...t&&{color:t},...n&&{bgColor:n},agentId:r};Je(`save`,i)}finally{B.value=!1}}return i(()=>L.initialData,()=>{L.initialData&&(W.value.name=L.initialData.name??``,W.value.description=L.initialData.description??``,W.value.parentIds=L.initialData.parentIds??[],W.value.color=U(L.initialData.color),W.value.bgColor=U(L.initialData.bgColor),W.value.default=L.initialData.default??!1,W.value.agentId=L.initialData.agentId??I)}),(t,i)=>(u(),o(`div`,E,[n(e(he),{value:`0`,class:`environment-form__tabs`},{default:d(()=>[n(e(oe),null,{default:d(()=>[n(e(C),{value:`0`},{default:d(()=>[i[13]||=a(`i`,{class:`ti ti-settings tab-icon`},null,-1),a(`span`,null,f(e(z)(`environmentForm.tabConfiguration`)),1)]),_:1}),n(e(C),{value:`1`},{default:d(()=>[i[14]||=a(`i`,{class:`ti ti-database tab-icon`},null,-1),a(`span`,null,f(e(z)(`environmentForm.tabVariables`)),1)]),_:1})]),_:1}),n(e(me),null,{default:d(()=>[n(e(v),{value:`0`},{default:d(()=>[a(`form`,{onSubmit:h(lt,[`prevent`]),class:`tab-content`},[n(e(g),{legend:e(z)(`environmentForm.generalInfo`)},{default:d(()=>[a(`div`,D,[a(`label`,O,[r(f(e(z)(`environmentForm.nameLabel`))+` `,1),i[15]||=a(`span`,{class:`required`},`*`,-1)]),n(e(_),{id:`name`,modelValue:W.value.name,"onUpdate:modelValue":i[0]||=e=>W.value.name=e,placeholder:e(z)(`environmentForm.namePlaceholder`),class:`w-full`,disabled:B.value},null,8,[`modelValue`,`placeholder`,`disabled`]),H.value.name?(u(),o(`small`,k,f(H.value.name),1)):m(``,!0)]),a(`div`,A,[a(`label`,j,f(e(z)(`environmentForm.descriptionLabel`)),1),n(e(pe),{id:`description`,modelValue:W.value.description,"onUpdate:modelValue":i[1]||=e=>W.value.description=e,placeholder:e(z)(`environmentForm.descriptionPlaceholder`),rows:`3`,class:`w-full`,disabled:B.value},null,8,[`modelValue`,`placeholder`,`disabled`])])]),_:1},8,[`legend`]),n(e(g),{legend:e(z)(`environmentForm.appearance`)},{default:d(()=>[a(`div`,M,[a(`div`,N,[a(`label`,P,f(e(z)(`environmentForm.textColorLabel`)),1),a(`div`,be,[n(e(y),{id:`color`,modelValue:W.value.color,"onUpdate:modelValue":i[2]||=e=>W.value.color=e,disabled:B.value},null,8,[`modelValue`,`disabled`]),n(e(_),{modelValue:W.value.color,"onUpdate:modelValue":i[3]||=e=>W.value.color=e,placeholder:`#3B82F6`,class:`color-input`,disabled:B.value},null,8,[`modelValue`,`disabled`])]),a(`small`,xe,f(e(z)(`environmentForm.textColorHint`)),1)]),a(`div`,Se,[a(`label`,Ce,f(e(z)(`environmentForm.bgColorLabel`)),1),a(`div`,we,[n(e(y),{id:`bgColor`,modelValue:W.value.bgColor,"onUpdate:modelValue":i[4]||=e=>W.value.bgColor=e,disabled:B.value},null,8,[`modelValue`,`disabled`]),n(e(_),{modelValue:W.value.bgColor,"onUpdate:modelValue":i[5]||=e=>W.value.bgColor=e,placeholder:`#DBEAFE`,class:`color-input`,disabled:B.value},null,8,[`modelValue`,`disabled`])]),a(`small`,Te,f(e(z)(`environmentForm.bgColorHint`)),1)])])]),_:1},8,[`legend`]),n(e(g),{legend:e(z)(`environmentForm.settings`)},{default:d(()=>[a(`div`,Ee,[a(`div`,De,[a(`label`,Oe,f(e(z)(`environmentForm.defaultLabel`)),1),n(e(le),{id:`defaultSwitch`,modelValue:W.value.default,"onUpdate:modelValue":i[6]||=e=>W.value.default=e,disabled:B.value},null,8,[`modelValue`,`disabled`])]),a(`small`,ke,f(e(z)(`environmentForm.defaultHint`)),1)]),Ze.value?(u(),o(`div`,Ae,[a(`label`,je,f(e(z)(`environmentForm.agentDefaultLabel`)),1),n(e(re),{id:`agentSelect`,modelValue:W.value.agentId,"onUpdate:modelValue":i[7]||=e=>W.value.agentId=e,options:Qe.value,"option-label":`label`,"option-value":`value`,class:`w-full`,disabled:B.value},null,8,[`modelValue`,`options`,`disabled`]),a(`small`,Me,f(e(z)(`environmentForm.agentDefaultHint`)),1)])):m(``,!0)]),_:1},8,[`legend`]),a(`div`,Ne,[n(e(b),{type:`button`,label:e(z)(`environmentForm.cancel`),severity:`secondary`,disabled:B.value,onClick:i[8]||=e=>t.$emit(`cancel`)},null,8,[`label`,`disabled`]),n(e(b),{type:`submit`,label:e(z)(`environmentForm.save`),loading:B.value,disabled:B.value},null,8,[`label`,`loading`,`disabled`])])],32)]),_:1}),n(e(v),{value:`1`},{default:d(()=>[a(`div`,Pe,[G.value.length>0?(u(),p(e(g),{key:0,legend:e(z)(`environmentForm.inheritance`)},{default:d(()=>[a(`div`,Fe,[a(`label`,Ie,f(e(z)(`environmentForm.parentLabel`)),1),n(e(ae),{id:`parents`,modelValue:W.value.parentIds,"onUpdate:modelValue":i[10]||=e=>W.value.parentIds=e,options:$e.value,"option-label":`name`,"option-value":`id`,placeholder:e(z)(`environmentForm.parentPlaceholder`),disabled:B.value||V.value,loading:V.value,class:`w-full`,onShow:i[11]||=e=>K.value=``,onHide:ot},{header:d(()=>[a(`div`,Le,[n(e(_),{modelValue:K.value,"onUpdate:modelValue":i[9]||=e=>K.value=e,placeholder:e(z)(`environmentForm.parentFilter`),class:`w-full`,size:`small`},null,8,[`modelValue`,`placeholder`])])]),_:1},8,[`modelValue`,`options`,`placeholder`,`disabled`,`loading`]),a(`small`,Re,f(e(z)(`environmentForm.parentHint`)),1)])]),_:1},8,[`legend`])):m(``,!0),q.value&&L.environmentId?(u(),o(`div`,ze,[n(w,{"environment-id":L.environmentId,editable:!0,"autocomplete-enabled":!0,"autocomplete-suggestions":e(tt),"autocomplete-meta":e(nt),"resolved-env":J.value?.env??{},"resolved-variables":J.value?.variables??{},"service-builtins":e(et),"show-overrides":!0,"show-delete":!0,"show-add-button":!0,onAutocompleteSearch:e(rt),onVariablesChanged:Z},null,8,[`environment-id`,`autocomplete-suggestions`,`autocomplete-meta`,`resolved-env`,`resolved-variables`,`service-builtins`,`onAutocompleteSearch`]),Q.value.length>0?(u(),p(e(se),{key:0,class:`inherited-accordion`},{default:d(()=>[n(e(ce),{value:`inherited`},{default:d(()=>[n(e(ue),null,{default:d(()=>[a(`span`,F,[i[16]||=a(`i`,{class:`ti ti-arrow-down-left`},null,-1),r(` `+f(e(z)(`environmentForm.inheritedVariables`))+` `,1),n(e(ie),{value:String(Q.value.length),severity:`secondary`,rounded:``},null,8,[`value`])])]),_:1}),n(e(fe),null,{default:d(()=>[n(e(de),{value:Q.value,size:`small`,"show-headers":!1},{default:d(()=>[n(e(S),{style:{width:`35%`}},{body:d(({data:e})=>[a(`div`,Be,[a(`code`,Ve,f(e.key),1),$.value[e.variableId]?(u(),p(ve,{key:0,"environment-id":$.value[e.variableId].environmentId,class:`source-badge`},null,8,[`environment-id`])):m(``,!0)])]),_:1}),n(e(S),{style:{width:`65%`}},{body:d(({data:e})=>[a(`span`,He,[a(`span`,{class:`value-actions`,onClick:i[12]||=h(()=>{},[`stop`])},[e.slot.isSecret?(u(),o(`i`,{key:0,class:s([Y.value.has(e.variableId)?`ti ti-eye-off`:`ti ti-eye`,`action-icon`]),onClick:t=>it(e.variableId)},null,10,Ue)):m(``,!0),a(`i`,{class:s([X.value===e.variableId?`ti ti-check`:`ti ti-copy`,`action-icon`]),onClick:t=>at(e.variableId,e.slot.pre+e.slot.value+e.slot.post)},null,10,We)]),e.slot.isSecret&&!Y.value.has(e.variableId)?(u(),o(`span`,Ge,`***`)):(u(),o(`code`,Ke,f(e.slot.pre)+f(e.slot.value)+f(e.slot.post),1))])]),_:1})]),_:1},8,[`value`])]),_:1})]),_:1})]),_:1})):m(``,!0)])):(u(),o(`div`,qe,[i[17]||=a(`i`,{class:`ti ti-info-circle`},null,-1),a(`span`,null,f(e(z)(`environmentForm.variablesAfterCreate`)),1)]))])]),_:1})]),_:1})]),_:1})]))}}),[[`__scopeId`,`data-v-dd4b7dda`]]);export{L as t};
|
|
1
|
+
import{B as e,C as t}from"./reactivity.esm-bundler-BQ9SB2vv.js";import{D as n,E as r,Ht as i,_ as a,b as o,ct as ee,en as s,g as c,k as l,mt as u,qt as d,rn as f,v as p,y as m}from"./runtime-core.esm-bundler-DujKY9QV.js";import{w as h}from"./runtime-dom.esm-bundler-CyEVRK6B.js";import{n as te}from"./vue-i18n-o7yraQpR.js";import{F as g,J as _,P as ne,S as re,U as ie,_ as v,a as ae,b as oe,c as y,dt as b,ft as x,g as se,h as ce,k as le,m as ue,n as de,p as fe,q as pe,r as S,v as me,x as he,y as C}from"./src-Ck_MutzB.js";import{r as ge}from"./project.store-CITAykC3.js";import{t as _e}from"./agent.store-B6OM7edC.js";import{a as ve,n as ye,r as w,t as T}from"./useEnvVarAutocomplete-hy3rO3SN.js";var E={class:`environment-form`},D={class:`form-group`},O={for:`name`},k={key:0,class:`text-red-500`},A={class:`form-group`},j={for:`description`},M={class:`form-row`},N={class:`form-group flex-1`},P={for:`color`},be={class:`color-field`},xe={class:`text-gray-500`},Se={class:`form-group flex-1`},Ce={for:`bgColor`},we={class:`color-field`},Te={class:`text-gray-500`},Ee={class:`form-group`},De={class:`switch-row`},Oe={for:`defaultSwitch`},ke={class:`text-gray-500`},Ae={key:0,class:`form-group`},je={for:`agentSelect`},Me={class:`text-gray-500`},Ne={class:`form-actions`},Pe={class:`tab-content`},Fe={class:`form-group`},Ie={for:`parents`},Le={style:{padding:`0.5rem 0.75rem`}},Re={class:`text-gray-500`},ze={key:1},F={class:`inherited-header`},Be={class:`inherited-row-key`},Ve={class:`preview-key`},He={class:`value-row`},Ue=[`onClick`],We=[`onClick`],Ge={key:0,class:`secret-mask`},Ke={key:1,class:`preview-value`},qe={key:2,class:`empty-variables`},I=`__inherit__`,L=x(l({__name:`EnvironmentForm`,props:{projectId:{},environmentId:{},initialData:{}},emits:[`save`,`cancel`],setup(l,{emit:x}){let L=l,Je=x,R=ge(),Ye=_e(),Xe=ne(),{t:z}=te(),B=t(!1),V=t(!1),H=t({}),U=e=>(e??``).replace(/^#/,``),W=t({name:L.initialData?.name??``,description:L.initialData?.description??``,parentIds:L.initialData?.parentIds??[],color:U(L.initialData?.color),bgColor:U(L.initialData?.bgColor),default:L.initialData?.default??!1,agentId:L.initialData?.agentId??I}),Ze=c(()=>(L.initialData?.scope??`global`)===`global`),Qe=c(()=>[{label:z(`environmentForm.agentDefaultInherit`),value:I},...Ye.agents.map(e=>({label:e.config.name||e.config.id,value:e.config.id}))]),G=c(()=>R.environments.filter(e=>!(L.initialData?.id&&e.id===L.initialData.id))),K=t(``),$e=c(()=>{let e=K.value.trim().toLowerCase();if(!e)return G.value;let t=e.split(/\s+/);return G.value.filter(e=>{let n=e.name.toLowerCase();return t.every(e=>n.includes(e))})}),q=c(()=>!!L.environmentId),J=t(null),{values:et}=ye({projectId:()=>L.projectId,environmentId:()=>L.environmentId,agentId:()=>W.value.agentId===I?void 0:W.value.agentId}),{suggestions:tt,meta:nt,search:rt}=T(()=>J.value),Y=t(new Set);function it(e){let t=new Set(Y.value);t.has(e)?t.delete(e):t.add(e),Y.value=t}let X=t(null);function at(e,t){navigator.clipboard.writeText(t),X.value=e,setTimeout(()=>{X.value===e&&(X.value=null)},1500)}async function ot(){if(q.value&&L.environmentId){V.value=!0;try{await R.update({id:L.environmentId,parentIds:W.value.parentIds}),await Z()}catch(e){Xe.add({severity:`error`,summary:z(`environmentForm.failedToSaveParents`),detail:e.message??``,life:5e3})}finally{V.value=!1}}}async function Z(){if(L.environmentId)try{J.value=await R.resolve(L.environmentId)}catch{J.value=null}}function st(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 ct=c(()=>J.value?st(J.value.variables):[]),Q=c(()=>!L.environmentId||!J.value?.sources?[]:ct.value.filter(e=>J.value.sources[e.variableId]?.environmentId!==L.environmentId)),$=c(()=>{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};return e});ee(()=>{q.value&&Z()});async function lt(){if(H.value={},!W.value.name.trim()){H.value.name=z(`environmentForm.nameRequired`);return}B.value=!0;try{let e=e=>e?e.startsWith(`#`)?e:`#${e}`:``,t=e(W.value.color),n=e(W.value.bgColor),r=W.value.agentId===I?void 0:W.value.agentId,i={projectId:L.projectId,name:W.value.name.trim(),description:W.value.description.trim(),parentIds:W.value.parentIds,...q.value?{}:{variables:{}},default:W.value.default,...t&&{color:t},...n&&{bgColor:n},agentId:r};Je(`save`,i)}finally{B.value=!1}}return i(()=>L.initialData,()=>{L.initialData&&(W.value.name=L.initialData.name??``,W.value.description=L.initialData.description??``,W.value.parentIds=L.initialData.parentIds??[],W.value.color=U(L.initialData.color),W.value.bgColor=U(L.initialData.bgColor),W.value.default=L.initialData.default??!1,W.value.agentId=L.initialData.agentId??I)}),(t,i)=>(u(),o(`div`,E,[n(e(he),{value:`0`,class:`environment-form__tabs`},{default:d(()=>[n(e(oe),null,{default:d(()=>[n(e(C),{value:`0`},{default:d(()=>[i[13]||=a(`i`,{class:`ti ti-settings tab-icon`},null,-1),a(`span`,null,f(e(z)(`environmentForm.tabConfiguration`)),1)]),_:1}),n(e(C),{value:`1`},{default:d(()=>[i[14]||=a(`i`,{class:`ti ti-database tab-icon`},null,-1),a(`span`,null,f(e(z)(`environmentForm.tabVariables`)),1)]),_:1})]),_:1}),n(e(me),null,{default:d(()=>[n(e(v),{value:`0`},{default:d(()=>[a(`form`,{onSubmit:h(lt,[`prevent`]),class:`tab-content`},[n(e(g),{legend:e(z)(`environmentForm.generalInfo`)},{default:d(()=>[a(`div`,D,[a(`label`,O,[r(f(e(z)(`environmentForm.nameLabel`))+` `,1),i[15]||=a(`span`,{class:`required`},`*`,-1)]),n(e(_),{id:`name`,modelValue:W.value.name,"onUpdate:modelValue":i[0]||=e=>W.value.name=e,placeholder:e(z)(`environmentForm.namePlaceholder`),class:`w-full`,disabled:B.value},null,8,[`modelValue`,`placeholder`,`disabled`]),H.value.name?(u(),o(`small`,k,f(H.value.name),1)):m(``,!0)]),a(`div`,A,[a(`label`,j,f(e(z)(`environmentForm.descriptionLabel`)),1),n(e(pe),{id:`description`,modelValue:W.value.description,"onUpdate:modelValue":i[1]||=e=>W.value.description=e,placeholder:e(z)(`environmentForm.descriptionPlaceholder`),rows:`3`,class:`w-full`,disabled:B.value},null,8,[`modelValue`,`placeholder`,`disabled`])])]),_:1},8,[`legend`]),n(e(g),{legend:e(z)(`environmentForm.appearance`)},{default:d(()=>[a(`div`,M,[a(`div`,N,[a(`label`,P,f(e(z)(`environmentForm.textColorLabel`)),1),a(`div`,be,[n(e(y),{id:`color`,modelValue:W.value.color,"onUpdate:modelValue":i[2]||=e=>W.value.color=e,disabled:B.value},null,8,[`modelValue`,`disabled`]),n(e(_),{modelValue:W.value.color,"onUpdate:modelValue":i[3]||=e=>W.value.color=e,placeholder:`#3B82F6`,class:`color-input`,disabled:B.value},null,8,[`modelValue`,`disabled`])]),a(`small`,xe,f(e(z)(`environmentForm.textColorHint`)),1)]),a(`div`,Se,[a(`label`,Ce,f(e(z)(`environmentForm.bgColorLabel`)),1),a(`div`,we,[n(e(y),{id:`bgColor`,modelValue:W.value.bgColor,"onUpdate:modelValue":i[4]||=e=>W.value.bgColor=e,disabled:B.value},null,8,[`modelValue`,`disabled`]),n(e(_),{modelValue:W.value.bgColor,"onUpdate:modelValue":i[5]||=e=>W.value.bgColor=e,placeholder:`#DBEAFE`,class:`color-input`,disabled:B.value},null,8,[`modelValue`,`disabled`])]),a(`small`,Te,f(e(z)(`environmentForm.bgColorHint`)),1)])])]),_:1},8,[`legend`]),n(e(g),{legend:e(z)(`environmentForm.settings`)},{default:d(()=>[a(`div`,Ee,[a(`div`,De,[a(`label`,Oe,f(e(z)(`environmentForm.defaultLabel`)),1),n(e(le),{id:`defaultSwitch`,modelValue:W.value.default,"onUpdate:modelValue":i[6]||=e=>W.value.default=e,disabled:B.value},null,8,[`modelValue`,`disabled`])]),a(`small`,ke,f(e(z)(`environmentForm.defaultHint`)),1)]),Ze.value?(u(),o(`div`,Ae,[a(`label`,je,f(e(z)(`environmentForm.agentDefaultLabel`)),1),n(e(re),{id:`agentSelect`,modelValue:W.value.agentId,"onUpdate:modelValue":i[7]||=e=>W.value.agentId=e,options:Qe.value,"option-label":`label`,"option-value":`value`,class:`w-full`,disabled:B.value},null,8,[`modelValue`,`options`,`disabled`]),a(`small`,Me,f(e(z)(`environmentForm.agentDefaultHint`)),1)])):m(``,!0)]),_:1},8,[`legend`]),a(`div`,Ne,[n(e(b),{type:`button`,label:e(z)(`environmentForm.cancel`),severity:`secondary`,disabled:B.value,onClick:i[8]||=e=>t.$emit(`cancel`)},null,8,[`label`,`disabled`]),n(e(b),{type:`submit`,label:e(z)(`environmentForm.save`),loading:B.value,disabled:B.value},null,8,[`label`,`loading`,`disabled`])])],32)]),_:1}),n(e(v),{value:`1`},{default:d(()=>[a(`div`,Pe,[G.value.length>0?(u(),p(e(g),{key:0,legend:e(z)(`environmentForm.inheritance`)},{default:d(()=>[a(`div`,Fe,[a(`label`,Ie,f(e(z)(`environmentForm.parentLabel`)),1),n(e(ae),{id:`parents`,modelValue:W.value.parentIds,"onUpdate:modelValue":i[10]||=e=>W.value.parentIds=e,options:$e.value,"option-label":`name`,"option-value":`id`,placeholder:e(z)(`environmentForm.parentPlaceholder`),disabled:B.value||V.value,loading:V.value,class:`w-full`,onShow:i[11]||=e=>K.value=``,onHide:ot},{header:d(()=>[a(`div`,Le,[n(e(_),{modelValue:K.value,"onUpdate:modelValue":i[9]||=e=>K.value=e,placeholder:e(z)(`environmentForm.parentFilter`),class:`w-full`,size:`small`},null,8,[`modelValue`,`placeholder`])])]),_:1},8,[`modelValue`,`options`,`placeholder`,`disabled`,`loading`]),a(`small`,Re,f(e(z)(`environmentForm.parentHint`)),1)])]),_:1},8,[`legend`])):m(``,!0),q.value&&L.environmentId?(u(),o(`div`,ze,[n(w,{"environment-id":L.environmentId,editable:!0,"autocomplete-enabled":!0,"autocomplete-suggestions":e(tt),"autocomplete-meta":e(nt),"resolved-env":J.value?.env??{},"resolved-variables":J.value?.variables??{},"service-builtins":e(et),"show-overrides":!0,"show-delete":!0,"show-add-button":!0,onAutocompleteSearch:e(rt),onVariablesChanged:Z},null,8,[`environment-id`,`autocomplete-suggestions`,`autocomplete-meta`,`resolved-env`,`resolved-variables`,`service-builtins`,`onAutocompleteSearch`]),Q.value.length>0?(u(),p(e(se),{key:0,class:`inherited-accordion`},{default:d(()=>[n(e(ce),{value:`inherited`},{default:d(()=>[n(e(ue),null,{default:d(()=>[a(`span`,F,[i[16]||=a(`i`,{class:`ti ti-arrow-down-left`},null,-1),r(` `+f(e(z)(`environmentForm.inheritedVariables`))+` `,1),n(e(ie),{value:String(Q.value.length),severity:`secondary`,rounded:``},null,8,[`value`])])]),_:1}),n(e(fe),null,{default:d(()=>[n(e(de),{value:Q.value,size:`small`,"show-headers":!1},{default:d(()=>[n(e(S),{style:{width:`35%`}},{body:d(({data:e})=>[a(`div`,Be,[a(`code`,Ve,f(e.key),1),$.value[e.variableId]?(u(),p(ve,{key:0,"environment-id":$.value[e.variableId].environmentId,class:`source-badge`},null,8,[`environment-id`])):m(``,!0)])]),_:1}),n(e(S),{style:{width:`65%`}},{body:d(({data:e})=>[a(`span`,He,[a(`span`,{class:`value-actions`,onClick:i[12]||=h(()=>{},[`stop`])},[e.slot.isSecret?(u(),o(`i`,{key:0,class:s([Y.value.has(e.variableId)?`ti ti-eye-off`:`ti ti-eye`,`action-icon`]),onClick:t=>it(e.variableId)},null,10,Ue)):m(``,!0),a(`i`,{class:s([X.value===e.variableId?`ti ti-check`:`ti ti-copy`,`action-icon`]),onClick:t=>at(e.variableId,e.slot.pre+e.slot.value+e.slot.post)},null,10,We)]),e.slot.isSecret&&!Y.value.has(e.variableId)?(u(),o(`span`,Ge,`***`)):(u(),o(`code`,Ke,f(e.slot.pre)+f(e.slot.value)+f(e.slot.post),1))])]),_:1})]),_:1},8,[`value`])]),_:1})]),_:1})]),_:1})):m(``,!0)])):(u(),o(`div`,qe,[i[17]||=a(`i`,{class:`ti ti-info-circle`},null,-1),a(`span`,null,f(e(z)(`environmentForm.variablesAfterCreate`)),1)]))])]),_:1})]),_:1})]),_:1})]))}}),[[`__scopeId`,`data-v-dd4b7dda`]]);export{L as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e,C as t}from"./reactivity.esm-bundler-BQ9SB2vv.js";import{D as n,b as r,ct as i,g as a,k as o,mt as s,v as c,y as l}from"./runtime-core.esm-bundler-DujKY9QV.js";import{n as u}from"./vue-i18n-o7yraQpR.js";import{g as d,h as f}from"./useApi-s_02lHjl-DZYO2tHU.js";import{H as p,P as m,ft as h}from"./src-Ck_MutzB.js";import{r as g}from"./project.store-
|
|
1
|
+
import{B as e,C as t}from"./reactivity.esm-bundler-BQ9SB2vv.js";import{D as n,b as r,ct as i,g as a,k as o,mt as s,v as c,y as l}from"./runtime-core.esm-bundler-DujKY9QV.js";import{n as u}from"./vue-i18n-o7yraQpR.js";import{g as d,h as f}from"./useApi-s_02lHjl-DZYO2tHU.js";import{H as p,P as m,ft as h}from"./src-Ck_MutzB.js";import{r as g}from"./project.store-CITAykC3.js";import{n as _}from"./error-DpF7X5iu.js";import{t as v}from"./EnvironmentForm-eMpLFv_-.js";var y={class:`environment-form-page`},b={key:0,class:`loading`},x={key:1},S=h(o({__name:`EnvironmentFormPage`,setup(o){let{t:h}=u(),S=f(),C=d(),w=g(),T=m(),E=a(()=>S.params.projectId),D=a(()=>S.params.id),O=a(()=>!!D.value),k=t(!1),A=t(null);async function j(){if(O.value){k.value=!0;try{let e=w.getById(D.value);if(!e){console.error(`Environment not found`),N();return}A.value=e}catch(e){console.error(`Failed to load environment:`,_(e))}finally{k.value=!1}}}async function M(e){try{O.value&&A.value?(await w.update({...e,id:A.value.id}),await j(),T.add({severity:`success`,summary:h(`environmentFormPage.updated`),detail:`"${e.name}" ${h(`environmentFormPage.updatedDesc`)}`,life:3e3})):(await w.create(e),T.add({severity:`success`,summary:h(`environmentFormPage.created`),detail:`"${e.name}" ${h(`environmentFormPage.createdDesc`)}`,life:3e3}),N())}catch(e){console.error(`Save failed:`,_(e)),T.add({severity:`error`,summary:h(`environmentFormPage.saveFailed`),detail:_(e)??h(`environmentFormPage.saveFailedDesc`),life:5e3})}}function N(){C.back()}return i(async()=>{w.environments.length===0&&await w.fetchAll(E.value),O.value&&await j()}),(t,i)=>(s(),r(`div`,y,[k.value?(s(),r(`div`,b,[n(e(p))])):(s(),r(`div`,x,[A.value||!O.value?(s(),c(v,{key:0,"project-id":E.value,"environment-id":D.value,"initial-data":A.value,onSave:M,onCancel:N},null,8,[`project-id`,`environment-id`,`initial-data`])):l(``,!0)]))]))}}),[[`__scopeId`,`data-v-4e790e9c`]]);export{S as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e,C as t}from"./reactivity.esm-bundler-BQ9SB2vv.js";import{Ct as n,D as r,Yt as i,_ as a,b as o,bt as s,ct as c,en as l,g as u,k as d,mt as f,nn as p,o as ee,qt as m,rn as h,u as g,v as _,y as v}from"./runtime-core.esm-bundler-DujKY9QV.js";import{C as te,w as y}from"./runtime-dom.esm-bundler-CyEVRK6B.js";import{n as ne}from"./vue-i18n-o7yraQpR.js";import{n as b}from"./project-launch.store-
|
|
1
|
+
import{B as e,C as t}from"./reactivity.esm-bundler-BQ9SB2vv.js";import{Ct as n,D as r,Yt as i,_ as a,b as o,bt as s,ct as c,en as l,g as u,k as d,mt as f,nn as p,o as ee,qt as m,rn as h,u as g,v as _,y as v}from"./runtime-core.esm-bundler-DujKY9QV.js";import{C as te,w as y}from"./runtime-dom.esm-bundler-CyEVRK6B.js";import{n as ne}from"./vue-i18n-o7yraQpR.js";import{n as b}from"./project-launch.store-Im5SMon9.js";import{g as x,h as S}from"./useApi-s_02lHjl-DZYO2tHU.js";import{H as re,P as ie,U as C,V as ae,Y as oe,dt as w,ft as T,j as E}from"./src-Ck_MutzB.js";import{n as D,r as O}from"./project.store-CITAykC3.js";import{n as k}from"./error-DpF7X5iu.js";import{n as A}from"./page-actions-CSvO7j9F.js";import{t as j}from"./EnvironmentForm-eMpLFv_-.js";var M={class:`environment-list-page`},N={key:0,class:`loading`},P={key:1,class:`environments-grid`},F={class:`title-row`},I={class:`title-name`},L={class:`badges`},R=[`title`,`aria-label`,`aria-pressed`,`onClick`],z={key:0,class:`description`},se={key:1,class:`parents`},B={class:`var-count`},V={class:`actions`},H=T(d({__name:`EnvironmentListPage`,setup(d){let{t:T}=ne(),H=S(),U=x(),W=O(),G=D(),K=b(),ce=E(),q=ie(),J=u(()=>H.params.projectId),Y=t(!1),X=u(()=>G.getByRef({id:J.value,orgId:K.activeOrgId})??G.getById(J.value)),Z=u(()=>X.value?.activeEnvironmentId),le=u(()=>W.environments.filter(e=>e.scope===`global`||!e.scope)),ue=e=>e.map(e=>W.getById(e)?.name||e);function Q(e){if(e)return e.startsWith(`#`)?e:`#${e}`}c(async()=>{await W.fetchAll(J.value)});async function de(e){try{await W.create(e),Y.value=!1,q.add({severity:`success`,summary:T(`environmentList.created`),detail:T(`environmentList.createdDesc`),life:3e3})}catch(e){q.add({severity:`error`,summary:T(`environmentList.createError`),detail:k(e)??T(`environmentList.createErrorDesc`),life:5e3})}}function $(e){U.push(`/projects/${J.value}/environments/${e}/edit`)}async function fe(e){try{await W.update({id:e,default:!0}),q.add({severity:`success`,summary:T(`environmentList.defaultSet`),detail:T(`environmentList.defaultSetDesc`),life:3e3})}catch(e){q.add({severity:`error`,summary:T(`environmentList.failedToSetDefault`),detail:k(e),life:5e3})}}async function pe(e){try{if(!X.value)return;await G.setActiveEnvironment(X.value,e),await W.fetchAll(J.value),q.add({severity:`success`,summary:T(`environmentList.activated`),life:3e3})}catch(e){q.add({severity:`error`,summary:T(`environmentList.failedToActivate`),detail:k(e),life:5e3})}}function me(e,t){ce.require({message:T(`environmentList.deleteConfirmMsg`,{name:t}),header:T(`environmentList.deleteTitle`),icon:`ti ti-alert-triangle`,accept:async()=>{try{await W.deleteEnv(e),q.add({severity:`success`,summary:T(`environmentList.deleted`),detail:T(`environmentList.deletedDesc`),life:3e3})}catch(e){q.add({severity:`error`,summary:T(`environmentList.failedToDelete`),detail:k(e),life:5e3})}}})}return(t,c)=>{let u=n(`tooltip`);return f(),o(`div`,M,[(f(),_(g,{to:e(A),defer:``},[r(e(w),{icon:`ti ti-plus`,title:e(T)(`environmentList.createButton`),"aria-label":e(T)(`environmentList.createButton`),onClick:c[0]||=e=>Y.value=!0},null,8,[`title`,`aria-label`])],8,[`to`])),e(W).loading?(f(),o(`div`,N,[r(e(re))])):(f(),o(`div`,P,[(f(!0),o(ee,null,s(le.value,t=>(f(),_(e(ae),{key:t.id,class:l([`environment-card`,{active:t.id===Z.value,immutable:t.immutable}]),style:p(t.bgColor||t.color?{"--env-color":Q(t.bgColor)||Q(t.color)}:{}),tabindex:`0`,onClick:e=>$(t.id),onKeydown:te(y(e=>$(t.id),[`self`]),[`enter`])},{title:m(()=>[a(`div`,F,[a(`div`,I,[t.color||t.bgColor?(f(),o(`span`,{key:0,class:`env-swatch`,style:p({backgroundColor:Q(t.bgColor)||Q(t.color),color:Q(t.color)})},null,4)):v(``,!0),a(`span`,null,h(t.name),1)]),a(`div`,L,[t.immutable?(f(),_(e(C),{key:0,severity:`warn`,value:e(T)(`environmentList.immutableBadge`)},null,8,[`value`])):v(``,!0),t.id===Z.value?(f(),_(e(C),{key:1,severity:`success`,value:e(T)(`environmentList.activeBadge`)},null,8,[`value`])):v(``,!0),a(`button`,{type:`button`,class:l([`star-default`,{"star-default--on":t.default}]),title:t.default?e(T)(`environmentList.defaultEnv`):e(T)(`environmentList.setAsDefault`),"aria-label":t.default?e(T)(`environmentList.defaultEnv`):e(T)(`environmentList.setAsDefault`),"aria-pressed":!!t.default,onClick:y(e=>!t.default&&fe(t.id),[`stop`])},[a(`i`,{class:l([`ti`,t.default?`ti-star-filled`:`ti-star`]),"aria-hidden":`true`},null,2)],10,R)])])]),content:m(()=>[t.description?(f(),o(`p`,z,h(t.description),1)):v(``,!0),t.parentIds.length>0?(f(),o(`p`,se,h(e(T)(`environmentList.parents`,{names:ue(t.parentIds).join(`, `)})),1)):v(``,!0),a(`p`,B,h(e(T)(`environmentList.variableCount`,Object.keys(t.variables??{}).length)),1)]),footer:m(()=>[a(`div`,V,[t.id!==Z.value&&!t.immutable?i((f(),_(e(w),{key:0,onClick:y(e=>pe(t.id),[`stop`]),variant:`text`,rounded:``,icon:`ti ti-check`},null,8,[`onClick`])),[[u,e(T)(`environmentList.activateButton`),void 0,{top:!0}]]):v(``,!0),i(r(e(w),{onClick:y(e=>$(t.id),[`stop`]),variant:`text`,rounded:``,icon:`ti ti-pencil`},null,8,[`onClick`]),[[u,e(T)(`environmentList.editButton`),void 0,{top:!0}]]),!t.immutable&&t.id!==Z.value?i((f(),_(e(w),{key:1,onClick:y(e=>me(t.id,t.name),[`stop`]),variant:`text`,rounded:``,icon:`ti ti-trash`,severity:`danger`,"data-testid":`env-delete-btn`},null,8,[`onClick`])),[[u,e(T)(`environmentList.deleteButton`),void 0,{top:!0}]]):v(``,!0)])]),_:2},1032,[`class`,`style`,`onClick`,`onKeydown`]))),128))])),r(e(oe),{visible:Y.value,"onUpdate:visible":c[2]||=e=>Y.value=e,header:e(T)(`environments.createEnvironment`),style:{width:`600px`},modal:!1},{default:m(()=>[r(j,{"project-id":J.value,onSave:de,onCancel:c[1]||=e=>Y.value=!1},null,8,[`project-id`])]),_:1},8,[`visible`,`header`])])}}}),[[`__scopeId`,`data-v-3c91161e`]]);export{H as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/trpc-
|
|
2
|
-
import{B as e,C as t}from"./reactivity.esm-bundler-BQ9SB2vv.js";import{Ct as n,D as r,Ht as i,Yt as a,_ as o,b as s,bt as ee,ct as c,en as te,ft as ne,g as l,k as re,mt as u,o as ie,qt as d,rn as f,tt as ae,v as p,y as m}from"./runtime-core.esm-bundler-DujKY9QV.js";import{C as oe,w as h}from"./runtime-dom.esm-bundler-CyEVRK6B.js";import{n as se}from"./vue-i18n-o7yraQpR.js";import{a as ce,i as g,n as _}from"./project-launch.store-MX5LzgIm.js";import{g as le,h as ue}from"./useApi-s_02lHjl-DZYO2tHU.js";import{C as de,J as fe,S as pe,Y as v,dt as y,ft as b,j as me,q as he}from"./src-Ck_MutzB.js";import{r as ge}from"./scenario.store-C8kW-yTN.js";import{r as x}from"./trpc-BvrR5qP9.js";import{t as _e}from"./preload-helper-BZ1Pz5am.js";import{r as ve,t as ye}from"./cloud-auth-D_am4FlK.js";import{a as be,n as S,o as xe,r as Se,s as Ce}from"./cloud-client-CdOqrdP_.js";import{a as we,c as Te,i as Ee,n as De,o as Oe,t as ke}from"./composables-DguCUR3O.js";import{r as Ae,t as je}from"./AiChatModals-BsfKdbEA.js";import{t as Me}from"./useAiChatDrawer-D_ofn8Eo.js";import{t as Ne}from"./shared-sse-Dcj_cNvF.js";import{t as Pe}from"./useCloudOrg-2vv5fVV6.js";import{i as Fe,r as Ie,t as Le}from"./src-DnjsM9el.js";import{t as Re}from"./SendToChatDialog-CbhE2WYO.js";var ze=g(`kanban-queue`,()=>{let e=_();function n(){return{projectId:e.activeProjectId??void 0,orgId:e.activeOrgId}}let r=t({items:[],running:[],maxConcurrent:1}),i=null;async function a(){i||=x.kanbanQueue.onChanged.subscribe(void 0,{onData(e){r.value=e}})}function o(){i?.unsubscribe(),i=null}function s(e,t){return r.value.items.some(n=>n.boardId===e&&n.cardId===t)||r.value.running.some(n=>n.boardId===e&&n.cardId===t)}function ee(e,t){let n=r.value.items.find(n=>n.boardId===e&&n.cardId===t);return n?n.id:r.value.running.find(n=>n.boardId===e&&n.cardId===t)?.id??null}async function c(e){await x.kanbanQueue.add.mutate({...e,...n()})}async function te(e){await x.kanbanQueue.addColumn.mutate({...e,...n()})}async function ne(e){await x.kanbanQueue.remove.mutate({itemId:e})}async function l(){await x.kanbanQueue.stopAll.mutate()}async function re(e){await x.kanbanQueue.setMaxConcurrent.mutate({max:e})}return{state:r,init:a,destroy:o,isCardInQueue:s,getCardQueueItemId:ee,addCard:c,addColumn:te,removeItem:ne,stopAll:l,setMaxConcurrent:re}}),Be={key:0,class:`kanban-board-host`},Ve={class:`kb-boardmenu`},He={class:`upgrade-banner__cta`},Ue=[`onClick`],We={key:0,class:`kb-card__ai-badge kb-card__ai-badge--companion`},Ge={key:1,class:`kb-card__ai-badge kb-card__ai-badge--streaming`},Ke={key:2,class:`kb-card__ai-badge kb-card__ai-badge--unread`},qe={class:`kb-boardform`},Je={class:`kb-boardform__field`},Ye={for:`kb-board-name`},Xe={class:`kb-boardform__field`},Ze={for:`kb-board-desc`},Qe={class:`kb-boardform__field`},$e={for:`kb-board-instructions`},et={class:`kb-boardform__hint`},tt={class:`kb-dialog__footer`},nt={class:`kb-populate`},rt={class:`kb-populate__hint`},it={class:`kb-dialog__footer`},at={class:`kb-populate`},ot={class:`kb-populate__hint`},st={class:`kb-dialog__footer`},ct={key:0,class:`kb-queue-panel`},lt={class:`kb-queue-panel__header`},ut={class:`kb-queue-panel__title`},dt={class:`kb-queue-panel__concurrency`},ft={class:`kb-queue-panel__concurrency-label`},pt={class:`kb-queue-panel__concurrency-ctrl`},mt={key:0,class:`kb-queue-panel__section`},ht={class:`kb-queue-panel__section-title`},gt={class:`kb-queue-item__title`},_t={key:1,class:`kb-queue-panel__section`},vt={class:`kb-queue-panel__section-title`},yt={class:`kb-queue-item__title`},bt={key:2,class:`kb-queue-panel__empty`},xt={class:`kb-queue-panel__footer`},St={class:`kb-queue-col-dialog`},Ct={class:`kb-queue-col-dialog__field`},wt={for:`kanban-queue-runner`},Tt={class:`kb-queue-col-dialog__field`},Et={for:`kanban-queue-scenario`},Dt={class:`kb-dialog__footer`},Ot={key:1,class:`kanban-board-loading`},C=b(re({__name:`KanbanBoardPage`,props:{id:{}},setup(re){let g=re,{t:_}=se(),b=le(),x=ue(),{orgId:C,orgSlug:w,cloudUser:kt,members:At,available:jt}=Pe(),Mt=me();function Nt(e,t){return C.value?Ce(C.value,e,t):Promise.resolve(null)}function Pt(e){return be(e.id,C.value??``)}function Ft(e){return xe(e.id,e.contentType,C.value??``)}function It(e){return ye(e,{orgId:C.value})}let Lt=l(()=>At.value.map(e=>({userId:e.userId,name:e.name})));function Rt(e,t){return t?_(`kanban.board.${e}`,t):_(`kanban.board.${e}`)}let T=Ee(S,C,{streamUrl:Se,streamFactory:Ne,onConversationChanged:zt}),E=De(S,C);function zt(e){for(let t of e.cardIds)E.byCard.value[t]&&E.load(e.boardId,t)}function Bt(e){let t=T.activeBoard.value?.id;return t?E.load(t,e):Promise.resolve([])}function Vt(e,t,n){let r=T.activeBoard.value?.id;return r?E.link(r,e,t,n):Promise.resolve(!1)}function Ht(e,t){let n=T.activeBoard.value?.id;return n?E.resync(n,e,t):Promise.resolve(!1)}function Ut(e,t){let n=T.activeBoard.value?.id;return n?E.unlink(n,e,t):Promise.resolve(!1)}let Wt=Oe(S,C),{teams:Gt,myTeamIds:Kt,refresh:qt,refreshMine:Jt}=Te(S);i(C,e=>{e&&(qt(e),Jt(e))},{immediate:!0});let Yt=l(()=>{let e=At.value.find(e=>e.userId===kt.value?.id)?.role;return ke(e)?Gt.value.map(e=>e.id):Kt.value}),Xt=l(()=>Wt.templates.value.map(e=>({id:e.id,name:e.name,content:e.content}))),D=t(null),O=l(()=>T.activeBoard.value),k=l(()=>x.path.startsWith(`/issues/`)?`issues`:`kanban`),A=l(()=>`/${k.value}`),Zt=l(()=>`${k.value}-board`),Qt=l(()=>`${k.value}-card`),j=l(()=>O.value?.columns??[]),M=l(()=>!T.canWrite.value||!!O.value?.archived);i(jt,e=>{e||b.push(A.value)},{immediate:!0}),i([C,()=>g.id],async([e,t])=>{if(!e||!t)return;if(await T.openBoard(t),!T.activeBoard.value){b.push(A.value);return}let n=T.activeBoard.value.defaultView===`list`?`issues`:`kanban`;if(n!==k.value){let e=typeof x.params.cardId==`string`?x.params.cardId:``;b.replace({name:e?`${n}-card`:`${n}-board`,params:e?{id:t,cardId:e}:{id:t},query:x.query});return}await ae(),nn()},{immediate:!0});let N=l(()=>typeof x.params.cardId==`string`?x.params.cardId:``),P=!1,$t=!1;function en(e){for(let t of j.value){let n=t.cards.find(t=>t.id===e);if(n)return{colId:t.id,card:n}}return null}async function tn(e){let t=await T.loadCard(e);if(t&&N.value===e){P=!0;try{let e=t.card.archivedAt?t.card.archivedFrom?.columnId??``:t.columnId;D.value?.openCardEditor(e,t.card)}finally{P=!1}}}function nn(){let e=typeof x.query.card==`string`?x.query.card:``;if(e){b.replace({name:Qt.value,params:{id:g.id,cardId:e},query:{...x.query,card:void 0}});return}let t=N.value;if(t!==(D.value?.editingCard?.card.id??``)){P=!0;try{if(!t){D.value?.closeCardEditor();return}let e=en(t);if(e){D.value?.openCardEditor(e.colId,e.card);return}tn(t)}finally{P=!1}}}function rn(e){if(P)return;let t=e?.card.id??``;if(t!==N.value){if(t){$t=!0,b.push({name:Qt.value,params:{id:g.id,cardId:t}});return}if($t){$t=!1,b.back();return}b.replace({name:Zt.value,params:{id:g.id}})}}i(N,()=>nn());function an(e,t,n){return T.addComment(e,t,n)}async function on(e){T.markDirty(),await sn(e)||await T.discardLocalEdits()}async function sn(e){switch(e.kind){case`column-add`:return T.addColumn(e.title);case`column-rename`:return T.renameColumn(e.columnId,e.title);case`column-set-done`:return T.setColumnDone(e.columnId,e.done);case`column-delete`:return T.deleteColumn(e.columnId);case`columns-reorder`:return T.reorderColumns(e.columnIds);case`column-move`:return T.assignToColumnGroup({kind:`column`,id:e.columnId},e.groupId,e.columnIds);case`group-add`:return!!await T.addColumnGroup(e.title,{...e.color?{color:e.color}:{},...e.parentId?{parentId:e.parentId}:{}});case`group-update`:return T.updateColumnGroup(e.groupId,e.patch);case`card-group-color`:return T.setCardGroupColor(e.group,e.color);case`group-delete`:return T.deleteColumnGroup(e.groupId);case`group-assign`:return T.assignToColumnGroup(e.member,e.groupId);case`card-add`:return!!await T.addCard(e.columnId,{id:e.card.id,title:e.card.title,markdown:e.card.markdown,...e.card.priority===void 0?{}:{priority:e.card.priority},...e.card.groups?.length?{groups:e.card.groups}:{},...e.card.color?{color:e.card.color}:{},...e.card.deadline?{deadline:e.card.deadline}:{},...e.card.attachments?.length?{attachments:e.card.attachments}:{},...e.card.assignees?.length?{assignees:e.card.assignees.map(e=>e.id)}:{},placement:e.placement});case`card-update`:return T.updateCard(e.cardId,e.patch);case`card-delete`:return T.deleteCard(e.cardId);case`card-archive`:return T.archiveCard(e.cardId);case`card-unarchive`:return T.unarchiveCard(e.cardId,e.toColumnId);case`card-move`:return T.moveCard(e.cardId,e.toColumnId,e.toIndex);case`card-history`:return!0}}async function cn(e){O.value&&await T.setColumnSubscription(O.value.id,e.columnId,e.subscription,e.teamId)}function ln(){w.value&&window.open(`${ve()}/app/${w.value}/settings/org/billing`,`_blank`,`noopener`)}let F=ge(),{claudeCodeAvailable:un,codexAvailable:dn}=ce(F),I=Me(),L=t(!1),fn=t(null),pn=t(null),R=``,z=null;c(()=>{F.init()});function mn(e){return(e.conversationEvents??e.history??[]).filter(e=>e.type===`conversation_started`||e.type===`scenario_started`).map(e=>{let t=e.detail??``;return t.includes(` — `)?t.split(` — `).pop():t}).filter(Boolean)}function hn(e){return e&&F.conversations.some(t=>t.id===e)?e:null}function gn(e){return e.type===`comment`?hn(e.conversationId):e.type!==`conversation_started`&&e.type!==`scenario_started`||!e.detail?null:hn(e.detail.includes(` — `)?e.detail.split(` — `).pop():e.detail)}function _n(e){if(!O.value)return null;let t=mn(e),n=B.state.running.filter(t=>t.cardId===e.id);return[...t,...n.map(e=>e.conversationId)].some(e=>F.isCompanionThinkingFor(e))?`companion`:n.length>0?`streaming`:B.state.items.some(t=>t.cardId===e.id)?`unread`:t.some(e=>F.streamingConvIds.has(e))?`streaming`:t.some(e=>F.unreadConvIds.has(e))?`unread`:null}function vn(e){F.selectConversation(e),D.value?.closeCardEditor(),I.open()}async function yn(e,t,n){z&&await T.addCardEvent(z.card.id,t,n??e)}function bn(e){z={colId:e.colId,card:e.card};let t=e.draft.title||e.card.title||``,n=e.draft.markdown||e.card.markdown||``;R=n?`${t}\n\n${n}`:t,D.value?.saveCard(),L.value=!0}function xn(e){if(!O.value)return;let t=e.draft.title||e.card.title||_(`kanban.board.card.untitled`),n=j.value.find(t=>t.id===e.colId)?.title??``,r=(e.draft.markdown??``).trim(),i=w.value?`${ve()}/app/${w.value}/${k.value}/${O.value.id}/card/${e.card.id}`:`${window.location.origin}/${k.value}/${O.value.id}/card/${e.card.id}`,a=[`📋 ${t}`];n&&a.push(`📍 ${_(`kanban.board.editor.columnLabel`,{column:n})}`),r&&a.push(r),a.push(`🔗 [${_(`kanban.board.editor.openCardLink`)}](${i})`),pn.value?.open(a.join(`
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/trpc-BQ0mLnfI.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/reactivity.esm-bundler-BQ9SB2vv.js","assets/runtime-core.esm-bundler-DujKY9QV.js","assets/preload-helper-BZ1Pz5am.js","assets/auth-5bsz5kSC.js","assets/settings-scope-vcJEMNnD.js","assets/project.store-CITAykC3.js","assets/project-launch.store-Im5SMon9.js","assets/error-DpF7X5iu.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{B as e,C as t}from"./reactivity.esm-bundler-BQ9SB2vv.js";import{Ct as n,D as r,Ht as i,Yt as a,_ as o,b as s,bt as ee,ct as c,en as te,ft as ne,g as l,k as re,mt as u,o as ie,qt as d,rn as f,tt as ae,v as p,y as m}from"./runtime-core.esm-bundler-DujKY9QV.js";import{C as oe,w as h}from"./runtime-dom.esm-bundler-CyEVRK6B.js";import{n as se}from"./vue-i18n-o7yraQpR.js";import{a as ce,i as g,n as _}from"./project-launch.store-Im5SMon9.js";import{g as le,h as ue}from"./useApi-s_02lHjl-DZYO2tHU.js";import{C as de,J as fe,S as pe,Y as v,dt as y,ft as b,j as me,q as he}from"./src-Ck_MutzB.js";import{r as ge}from"./scenario.store-C9sSoRzb.js";import{r as x}from"./trpc-BQ0mLnfI.js";import{t as _e}from"./preload-helper-BZ1Pz5am.js";import{r as ve,t as ye}from"./cloud-auth-D_am4FlK.js";import{a as be,n as S,o as xe,r as Se,s as Ce}from"./cloud-client-CEVx-bg6.js";import{a as we,c as Te,i as Ee,n as De,o as Oe,t as ke}from"./composables-CCbqJqnd.js";import{r as Ae,t as je}from"./AiChatModals-BV3vIIqN.js";import{t as Me}from"./useAiChatDrawer-D_ofn8Eo.js";import{t as Ne}from"./shared-sse-Dcj_cNvF.js";import{t as Pe}from"./useCloudOrg-CQvEbrZv.js";import{i as Fe,r as Ie,t as Le}from"./src-CIOvFTGI.js";import{t as Re}from"./SendToChatDialog-BVSbXcbf.js";var ze=g(`kanban-queue`,()=>{let e=_();function n(){return{projectId:e.activeProjectId??void 0,orgId:e.activeOrgId}}let r=t({items:[],running:[],maxConcurrent:1}),i=null;async function a(){i||=x.kanbanQueue.onChanged.subscribe(void 0,{onData(e){r.value=e}})}function o(){i?.unsubscribe(),i=null}function s(e,t){return r.value.items.some(n=>n.boardId===e&&n.cardId===t)||r.value.running.some(n=>n.boardId===e&&n.cardId===t)}function ee(e,t){let n=r.value.items.find(n=>n.boardId===e&&n.cardId===t);return n?n.id:r.value.running.find(n=>n.boardId===e&&n.cardId===t)?.id??null}async function c(e){await x.kanbanQueue.add.mutate({...e,...n()})}async function te(e){await x.kanbanQueue.addColumn.mutate({...e,...n()})}async function ne(e){await x.kanbanQueue.remove.mutate({itemId:e})}async function l(){await x.kanbanQueue.stopAll.mutate()}async function re(e){await x.kanbanQueue.setMaxConcurrent.mutate({max:e})}return{state:r,init:a,destroy:o,isCardInQueue:s,getCardQueueItemId:ee,addCard:c,addColumn:te,removeItem:ne,stopAll:l,setMaxConcurrent:re}}),Be={key:0,class:`kanban-board-host`},Ve={class:`kb-boardmenu`},He={class:`upgrade-banner__cta`},Ue=[`onClick`],We={key:0,class:`kb-card__ai-badge kb-card__ai-badge--companion`},Ge={key:1,class:`kb-card__ai-badge kb-card__ai-badge--streaming`},Ke={key:2,class:`kb-card__ai-badge kb-card__ai-badge--unread`},qe={class:`kb-boardform`},Je={class:`kb-boardform__field`},Ye={for:`kb-board-name`},Xe={class:`kb-boardform__field`},Ze={for:`kb-board-desc`},Qe={class:`kb-boardform__field`},$e={for:`kb-board-instructions`},et={class:`kb-boardform__hint`},tt={class:`kb-dialog__footer`},nt={class:`kb-populate`},rt={class:`kb-populate__hint`},it={class:`kb-dialog__footer`},at={class:`kb-populate`},ot={class:`kb-populate__hint`},st={class:`kb-dialog__footer`},ct={key:0,class:`kb-queue-panel`},lt={class:`kb-queue-panel__header`},ut={class:`kb-queue-panel__title`},dt={class:`kb-queue-panel__concurrency`},ft={class:`kb-queue-panel__concurrency-label`},pt={class:`kb-queue-panel__concurrency-ctrl`},mt={key:0,class:`kb-queue-panel__section`},ht={class:`kb-queue-panel__section-title`},gt={class:`kb-queue-item__title`},_t={key:1,class:`kb-queue-panel__section`},vt={class:`kb-queue-panel__section-title`},yt={class:`kb-queue-item__title`},bt={key:2,class:`kb-queue-panel__empty`},xt={class:`kb-queue-panel__footer`},St={class:`kb-queue-col-dialog`},Ct={class:`kb-queue-col-dialog__field`},wt={for:`kanban-queue-runner`},Tt={class:`kb-queue-col-dialog__field`},Et={for:`kanban-queue-scenario`},Dt={class:`kb-dialog__footer`},Ot={key:1,class:`kanban-board-loading`},C=b(re({__name:`KanbanBoardPage`,props:{id:{}},setup(re){let g=re,{t:_}=se(),b=le(),x=ue(),{orgId:C,orgSlug:w,cloudUser:kt,members:At,available:jt}=Pe(),Mt=me();function Nt(e,t){return C.value?Ce(C.value,e,t):Promise.resolve(null)}function Pt(e){return be(e.id,C.value??``)}function Ft(e){return xe(e.id,e.contentType,C.value??``)}function It(e){return ye(e,{orgId:C.value})}let Lt=l(()=>At.value.map(e=>({userId:e.userId,name:e.name})));function Rt(e,t){return t?_(`kanban.board.${e}`,t):_(`kanban.board.${e}`)}let T=Ee(S,C,{streamUrl:Se,streamFactory:Ne,onConversationChanged:zt}),E=De(S,C);function zt(e){for(let t of e.cardIds)E.byCard.value[t]&&E.load(e.boardId,t)}function Bt(e){let t=T.activeBoard.value?.id;return t?E.load(t,e):Promise.resolve([])}function Vt(e,t,n){let r=T.activeBoard.value?.id;return r?E.link(r,e,t,n):Promise.resolve(!1)}function Ht(e,t){let n=T.activeBoard.value?.id;return n?E.resync(n,e,t):Promise.resolve(!1)}function Ut(e,t){let n=T.activeBoard.value?.id;return n?E.unlink(n,e,t):Promise.resolve(!1)}let Wt=Oe(S,C),{teams:Gt,myTeamIds:Kt,refresh:qt,refreshMine:Jt}=Te(S);i(C,e=>{e&&(qt(e),Jt(e))},{immediate:!0});let Yt=l(()=>{let e=At.value.find(e=>e.userId===kt.value?.id)?.role;return ke(e)?Gt.value.map(e=>e.id):Kt.value}),Xt=l(()=>Wt.templates.value.map(e=>({id:e.id,name:e.name,content:e.content}))),D=t(null),O=l(()=>T.activeBoard.value),k=l(()=>x.path.startsWith(`/issues/`)?`issues`:`kanban`),A=l(()=>`/${k.value}`),Zt=l(()=>`${k.value}-board`),Qt=l(()=>`${k.value}-card`),j=l(()=>O.value?.columns??[]),M=l(()=>!T.canWrite.value||!!O.value?.archived);i(jt,e=>{e||b.push(A.value)},{immediate:!0}),i([C,()=>g.id],async([e,t])=>{if(!e||!t)return;if(await T.openBoard(t),!T.activeBoard.value){b.push(A.value);return}let n=T.activeBoard.value.defaultView===`list`?`issues`:`kanban`;if(n!==k.value){let e=typeof x.params.cardId==`string`?x.params.cardId:``;b.replace({name:e?`${n}-card`:`${n}-board`,params:e?{id:t,cardId:e}:{id:t},query:x.query});return}await ae(),nn()},{immediate:!0});let N=l(()=>typeof x.params.cardId==`string`?x.params.cardId:``),P=!1,$t=!1;function en(e){for(let t of j.value){let n=t.cards.find(t=>t.id===e);if(n)return{colId:t.id,card:n}}return null}async function tn(e){let t=await T.loadCard(e);if(t&&N.value===e){P=!0;try{let e=t.card.archivedAt?t.card.archivedFrom?.columnId??``:t.columnId;D.value?.openCardEditor(e,t.card)}finally{P=!1}}}function nn(){let e=typeof x.query.card==`string`?x.query.card:``;if(e){b.replace({name:Qt.value,params:{id:g.id,cardId:e},query:{...x.query,card:void 0}});return}let t=N.value;if(t!==(D.value?.editingCard?.card.id??``)){P=!0;try{if(!t){D.value?.closeCardEditor();return}let e=en(t);if(e){D.value?.openCardEditor(e.colId,e.card);return}tn(t)}finally{P=!1}}}function rn(e){if(P)return;let t=e?.card.id??``;if(t!==N.value){if(t){$t=!0,b.push({name:Qt.value,params:{id:g.id,cardId:t}});return}if($t){$t=!1,b.back();return}b.replace({name:Zt.value,params:{id:g.id}})}}i(N,()=>nn());function an(e,t,n){return T.addComment(e,t,n)}async function on(e){T.markDirty(),await sn(e)||await T.discardLocalEdits()}async function sn(e){switch(e.kind){case`column-add`:return T.addColumn(e.title);case`column-rename`:return T.renameColumn(e.columnId,e.title);case`column-set-done`:return T.setColumnDone(e.columnId,e.done);case`column-delete`:return T.deleteColumn(e.columnId);case`columns-reorder`:return T.reorderColumns(e.columnIds);case`column-move`:return T.assignToColumnGroup({kind:`column`,id:e.columnId},e.groupId,e.columnIds);case`group-add`:return!!await T.addColumnGroup(e.title,{...e.color?{color:e.color}:{},...e.parentId?{parentId:e.parentId}:{}});case`group-update`:return T.updateColumnGroup(e.groupId,e.patch);case`card-group-color`:return T.setCardGroupColor(e.group,e.color);case`group-delete`:return T.deleteColumnGroup(e.groupId);case`group-assign`:return T.assignToColumnGroup(e.member,e.groupId);case`card-add`:return!!await T.addCard(e.columnId,{id:e.card.id,title:e.card.title,markdown:e.card.markdown,...e.card.priority===void 0?{}:{priority:e.card.priority},...e.card.groups?.length?{groups:e.card.groups}:{},...e.card.color?{color:e.card.color}:{},...e.card.deadline?{deadline:e.card.deadline}:{},...e.card.attachments?.length?{attachments:e.card.attachments}:{},...e.card.assignees?.length?{assignees:e.card.assignees.map(e=>e.id)}:{},placement:e.placement});case`card-update`:return T.updateCard(e.cardId,e.patch);case`card-delete`:return T.deleteCard(e.cardId);case`card-archive`:return T.archiveCard(e.cardId);case`card-unarchive`:return T.unarchiveCard(e.cardId,e.toColumnId);case`card-move`:return T.moveCard(e.cardId,e.toColumnId,e.toIndex);case`card-history`:return!0}}async function cn(e){O.value&&await T.setColumnSubscription(O.value.id,e.columnId,e.subscription,e.teamId)}function ln(){w.value&&window.open(`${ve()}/app/${w.value}/settings/org/billing`,`_blank`,`noopener`)}let F=ge(),{claudeCodeAvailable:un,codexAvailable:dn}=ce(F),I=Me(),L=t(!1),fn=t(null),pn=t(null),R=``,z=null;c(()=>{F.init()});function mn(e){return(e.conversationEvents??e.history??[]).filter(e=>e.type===`conversation_started`||e.type===`scenario_started`).map(e=>{let t=e.detail??``;return t.includes(` — `)?t.split(` — `).pop():t}).filter(Boolean)}function hn(e){return e&&F.conversations.some(t=>t.id===e)?e:null}function gn(e){return e.type===`comment`?hn(e.conversationId):e.type!==`conversation_started`&&e.type!==`scenario_started`||!e.detail?null:hn(e.detail.includes(` — `)?e.detail.split(` — `).pop():e.detail)}function _n(e){if(!O.value)return null;let t=mn(e),n=B.state.running.filter(t=>t.cardId===e.id);return[...t,...n.map(e=>e.conversationId)].some(e=>F.isCompanionThinkingFor(e))?`companion`:n.length>0?`streaming`:B.state.items.some(t=>t.cardId===e.id)?`unread`:t.some(e=>F.streamingConvIds.has(e))?`streaming`:t.some(e=>F.unreadConvIds.has(e))?`unread`:null}function vn(e){F.selectConversation(e),D.value?.closeCardEditor(),I.open()}async function yn(e,t,n){z&&await T.addCardEvent(z.card.id,t,n??e)}function bn(e){z={colId:e.colId,card:e.card};let t=e.draft.title||e.card.title||``,n=e.draft.markdown||e.card.markdown||``;R=n?`${t}\n\n${n}`:t,D.value?.saveCard(),L.value=!0}function xn(e){if(!O.value)return;let t=e.draft.title||e.card.title||_(`kanban.board.card.untitled`),n=j.value.find(t=>t.id===e.colId)?.title??``,r=(e.draft.markdown??``).trim(),i=w.value?`${ve()}/app/${w.value}/${k.value}/${O.value.id}/card/${e.card.id}`:`${window.location.origin}/${k.value}/${O.value.id}/card/${e.card.id}`,a=[`📋 ${t}`];n&&a.push(`📍 ${_(`kanban.board.editor.columnLabel`,{column:n})}`),r&&a.push(r),a.push(`🔗 [${_(`kanban.board.editor.openCardLink`)}](${i})`),pn.value?.open(a.join(`
|
|
3
3
|
|
|
4
|
-
`))}function Sn(){return{kanbanBoardId:O.value?.id,kanbanCardId:z?.card.id}}async function Cn(e,t){let n=R,r=await F.createConversation({title:`Kanban: ${z?.card.title||`Card`}`,runner:e,providerId:t,...Sn()}),i=r?yn(r.id,`conversation_started`):null;D.value?.closeCardEditor(),n?I.openWithKanbanContext(n):I.open(),await i}function wn(e,t,n){L.value=!1,fn.value?.showScenarioDialog(e,R,t,n??void 0)}async function Tn(e,t){L.value=!1,await Cn(e===`keep`?void 0:e,t??void 0)}async function En(e,t,n,r){let i=t||R,a=await F.createConversation({scenarioId:e,scenarioInput:i,title:`Kanban: ${z?.card.title||`Card`}`,...Sn()});if(i&&a){let t=n!==`keep`||r.trim()?{...n===`keep`?{}:{runnerOverride:n},...r.trim()?{modelOverride:r.trim()}:{}}:void 0;F.startScenarioRun(a.id,e,i,void 0,t)}let o=i&&a?yn(a.id,`scenario_started`,`Scenario run — ${a.id}`):null;D.value?.closeCardEditor(),I.open(),await o}let B=ze(),V=t(!1),H=t(!1),Dn=t(``),On=t([]),U=t(``),W=t(``),kn=t([]),G=l(()=>B.state.items.length+B.state.running.length);c(async()=>{B.init();try{let{trpc:e}=await _e(async()=>{let{trpc:e}=await import(`./trpc-BvrR5qP9.js`).then(e=>e.i);return{trpc:e}},__vite__mapDeps([0,1,2,3,4,5])),{settingsScope:t}=await _e(async()=>{let{settingsScope:e}=await import(`./settings-scope-D0hzzuyq.js`).then(e=>e.n);return{settingsScope:e}},__vite__mapDeps([6,1,3,2,7,8,0,4,5,9])),n=await e.scenario.list.query(t());kn.value=n.map(e=>({id:e.id,name:e.name}))}catch{}}),ne(()=>B.destroy());function An(e){Dn.value=e.id,On.value=e.cards.map(e=>e.id),U.value=``,W.value=``,H.value=!0}async function jn(){O.value&&(await B.addColumn({boardId:O.value.id,columnId:Dn.value,cardIds:On.value,runner:U.value||void 0,scenarioId:W.value||void 0}),H.value=!1)}async function Mn(e){if(!O.value)return;let t=B.getCardQueueItemId(O.value.id,e.id);t?await B.removeItem(t):await B.addCard({boardId:O.value.id,cardId:e.id})}function Nn(e){return j.value.flatMap(e=>e.cards).find(t=>t.id===e)?.title??e}let K=t(!1),q=t(!1),J=t(``);async function Pn(e,t){if(!O.value||!J.value.trim())return;let n=J.value.trim(),r=await F.createConversation({title:`Kanban populate: ${O.value.name.slice(0,30)}`,runner:e,providerId:t,kanbanBoardId:O.value.id});if(q.value=!1,J.value=``,r){if(e===`claude-code`||e===`codex`){I.openWithPopulateContext(n);return}I.openPopulate(),await ae(),F.send(n,()=>{})}}async function Fn(e,t,n){if(!O.value||!J.value.trim())return;let r=J.value.trim(),i=await F.createConversation({title:`Kanban populate: ${O.value.name.slice(0,30)}`,scenarioId:e,scenarioInput:r,...t===`keep`?{}:{runner:t},...n?{providerId:n}:{},kanbanBoardId:O.value.id});q.value=!1,J.value=``,i&&(F.startScenarioRun(i.id,e,r,void 0,t===`keep`?void 0:{runnerOverride:t}),I.open())}let In=t([]);async function Ln(){let e=await T.loadBoardColumns();In.value=e.filter(e=>e.id!==O.value?.id)}i(()=>[C.value,O.value?.id].join(`:`),()=>{Ln()},{immediate:!0});async function Rn(e,t,n){let r=await T.moveCardToBoard(e,t,n);return r&&Ln(),r}function zn(e){b.push({name:`kanban-card`,params:{id:e.boardId,cardId:e.cardId}})}async function Bn(e,t){return T.setCardParent(e,t?{boardId:g.id,cardId:t}:null)}let Y=t(!1),X=t({name:``,description:``,instructions:``});function Vn(){let e=O.value;e&&(X.value={name:e.name,description:e.description??``,instructions:e.instructions??``},Y.value=!0)}async function Hn(){let e=O.value;e&&X.value.name.trim()&&await T.updateBoardById(e.id,{name:X.value.name.trim(),description:X.value.description.trim(),instructions:X.value.instructions.trim()})&&(Y.value=!1)}function Un(){let e=O.value;if(!e)return;let t=!e.archived;Mt.require({message:_(t?`kanban.board.archiveBoard.confirm`:`kanban.board.archiveBoard.restoreConfirm`,{name:e.name}),header:_(t?`kanban.board.archiveBoard.header`:`kanban.board.archiveBoard.restoreHeader`),icon:`ti ti-inbox`,accept:async()=>{await T.updateBoardById(e.id,{archived:t})&&t&&await b.push(A.value)}})}function Wn(){let e=O.value;if(!e)return;let t=A.value;Mt.require({message:_(`kanban.list.dialogs.confirmDeleteMessage`,{name:e.name}),header:_(`kanban.list.dialogs.confirmDeleteHeader`),icon:`ti ti-trash`,acceptProps:{severity:`danger`},accept:async()=>{await T.deleteBoard(e.id)&&await b.push(t)}})}let Gn=we(S,C),Z=t(!1),Q=t(``),Kn=t(!1);function qn(){Q.value=O.value?.name??``,Kn.value=!1,Z.value=!0}async function Jn(){let e=O.value;e&&Q.value.trim()&&await Gn.createTemplate(Q.value.trim(),e.instructions??``,[...e.columns].sort((e,t)=>e.order-t.order).map(e=>({title:e.title,...e.groupId?{groupId:e.groupId}:{}})),(e.columnGroups??[]).map(e=>({id:e.id,title:e.title,...e.color?{color:e.color}:{},...e.parentId?{parentId:e.parentId}:{}})))&&(Kn.value=!0,Z.value=!1)}let Yn=t(null),Xn=t(null),Zn=(e,t)=>t?_(`kanban.list.${e}`,t):_(`kanban.list.${e}`),Qn=t(null),$n=(e,t)=>t?_(`kanban.${e}`,t):_(`kanban.${e}`);function er(e){b.push({name:Qt.value,params:{id:g.id,cardId:e}})}function tr(e){Qn.value=null,er(e)}function $(e){Yn.value?.hide(),e()}function nr(){J.value=``,K.value=!0}function rr(){J.value.trim()&&(K.value=!1,F.fetchProviders(),F.checkCliAvailability(),q.value=!0)}async function ir(e,t){await Pn(e===`keep`?void 0:e,t??void 0)}async function ar(e,t,n){await Fn(e,t,n)}return i(()=>F.streamingConvIds.size,()=>{T.refreshActiveBoard()}),(t,i)=>{let c=n(`tooltip`);return O.value?(u(),s(`div`,Be,[r(e(Fe),{ref_key:`boardRef`,ref:D,columns:j.value,"column-groups":O.value.columnGroups??[],"card-group-colors":O.value.cardGroupColors??[],name:O.value.name,"board-id":O.value.id,view:O.value.defaultView,"read-only":M.value,templates:Xt.value,t:Rt,"resolve-conversation-id":gn,"current-user-id":e(kt)?.id,members:Lt.value,"column-subscriptions":O.value.columnSubscriptions??{},teams:e(Gt),"manageable-team-ids":Yt.value,"column-team-subscriptions":O.value.columnTeamSubscriptions??{},"avatar-url":It,"upload-image":Nt,"fetch-attachment":Ft,"delete-attachment":Pt,"load-history":e(T).loadCardHistory,histories:e(T).cardHistories.value,"add-comment":an,"edit-comment":e(T).updateComment,"remove-comment":e(T).deleteComment,"move-card":e(T).moveCard,"other-boards":In.value,"move-card-to-board":Rn,"card-links":e(T).cardLinks.value,"linked-cards":e(T).linkedCards.value,"set-card-parent":Bn,"load-placements":e(T).loadCardPlacements,"place-card":e(T).addCardPlacement,"unplace-card":e(T).removeCardPlacement,"search-org-cards":e(T).searchOrgCards,"can-place":e(T).canWrite.value,"conversation-integrations":e(E).integrations.value,"card-conversations":e(E).byCard.value,"load-conversations":Bt,"search-conversations":e(E).search,"link-conversation":Vt,"unlink-conversation":Ut,"resync-conversation":Ht,"archived-cards":e(T).archivedCards.value,"loading-archive":e(T).loadingArchive.value,"archive-truncated":e(T).archiveTruncated.value,"search-matches":e(T).searchMatches.value,"search-truncated":e(T).searchTruncated.value,onIntent:on,onLoadArchive:e(T).loadArchivedCards,onSearchCards:e(T).searchCards,onBack:i[11]||=t=>e(b).push(A.value),onOpenConversation:vn,onCardOpen:rn,onUpdateColumnSubscription:cn,onOpenLinkedCard:zn},{"header-actions":d(()=>[G.value>0?(u(),p(e(y),{key:0,label:e(_)(`kanban.board.queue.panelHeader`),icon:`ti ti-list`,severity:`secondary`,variant:`outlined`,size:`small`,badge:String(G.value),"badge-severity":`warn`,onClick:i[0]||=e=>V.value=!V.value},null,8,[`label`,`badge`])):m(``,!0),O.value?a((u(),p(e(y),{key:1,icon:`ti ti-chart-line`,variant:`text`,rounded:``,size:`small`,"aria-label":e(_)(`kanban.list.flow.open`),onClick:i[1]||=e=>Xn.value=O.value},null,8,[`aria-label`])),[[c,e(_)(`kanban.list.flow.open`),void 0,{bottom:!0}]]):m(``,!0),O.value?a((u(),p(e(y),{key:2,icon:`ti ti-history`,variant:`text`,rounded:``,size:`small`,"aria-label":e(_)(`kanban.list.history.open`),onClick:i[2]||=e=>Qn.value=O.value},null,8,[`aria-label`])),[[c,e(_)(`kanban.list.history.open`),void 0,{bottom:!0}]]):m(``,!0),e(T).canWrite.value?(u(),p(e(y),{key:3,icon:`ti ti-dots-vertical`,severity:`secondary`,variant:`outlined`,size:`small`,title:e(_)(`kanban.board.actions.menu`),"aria-label":e(_)(`kanban.board.actions.menu`),onClick:i[3]||=e=>Yn.value?.toggle(e)},null,8,[`title`,`aria-label`])):m(``,!0),r(e(de),{ref_key:`boardMenu`,ref:Yn},{default:d(()=>[o(`div`,Ve,[M.value?m(``,!0):(u(),s(`button`,{key:0,class:`kb-boardmenu__item`,onClick:i[4]||=e=>$(Vn)},[i[33]||=o(`i`,{class:`ti ti-pencil`},null,-1),o(`span`,null,f(e(_)(`kanban.board.editBoard.action`)),1)])),M.value?m(``,!0):(u(),s(`button`,{key:1,class:`kb-boardmenu__item`,onClick:i[5]||=e=>$(nr)},[i[34]||=o(`i`,{class:`ti ti-sparkles`},null,-1),o(`span`,null,f(e(_)(`kanban.board.aiPopulate`)),1)])),!M.value&&O.value?.defaultView!==`list`?(u(),s(`button`,{key:2,class:`kb-boardmenu__item`,onClick:i[6]||=e=>$(qn)},[i[35]||=o(`i`,{class:`ti ti-bookmark`},null,-1),o(`span`,null,f(e(_)(`kanban.board.saveTemplate.action`)),1)])):m(``,!0),o(`button`,{class:`kb-boardmenu__item`,onClick:i[7]||=e=>$(Un)},[i[36]||=o(`i`,{class:`ti ti-inbox`},null,-1),o(`span`,null,f(O.value?.archived?e(_)(`kanban.list.restore`):e(_)(`kanban.list.archive`)),1)]),o(`button`,{class:`kb-boardmenu__item kb-boardmenu__item--danger`,onClick:i[8]||=e=>$(Wn)},[i[37]||=o(`i`,{class:`ti ti-trash`},null,-1),o(`span`,null,f(e(_)(`kanban.board.deleteBoard.action`)),1)])])]),_:1},512),r(e(Ie),{board:Xn.value,load:e(T).boardFlow,t:Zn,"avatar-url":It,"cards-openable":``,onClose:i[9]||=e=>Xn.value=null,onOpenCard:er},null,8,[`board`,`load`]),r(e(Le),{board:Qn.value,load:e(T).boardHistory,t:$n,onClose:i[10]||=e=>Qn.value=null,onOpenCard:tr},null,8,[`board`,`load`])]),banner:d(()=>[e(T).planLocked.value?(u(),s(`a`,{key:0,class:`upgrade-banner`,href:`#`,onClick:h(ln,[`prevent`])},[o(`span`,null,f(e(_)(`kanban.cloud.readOnlyNotice`)),1),o(`span`,He,f(e(_)(`kanban.cloud.upgradeCta`)),1)])):m(``,!0)]),"column-actions":d(({column:t})=>[M.value?m(``,!0):a((u(),p(e(y),{key:0,icon:`ti ti-list`,variant:`text`,rounded:``,size:`small`,onClick:h(e=>An(t),[`stop`])},null,8,[`onClick`])),[[c,e(_)(`kanban.board.queue.addColumnTooltip`),void 0,{bottom:!0}]])]),"card-actions":d(({card:t})=>[M.value?m(``,!0):a((u(),s(`button`,{key:0,class:te([`kb-card__queue-btn`,{"kb-card__queue-btn--active":O.value&&e(B).isCardInQueue(O.value.id,t.id)}]),onClick:h(e=>Mn(t),[`stop`])},[...i[38]||=[o(`i`,{class:`ti ti-list`},null,-1)]],10,Ue)),[[c,O.value&&e(B).isCardInQueue(O.value.id,t.id)?e(_)(`kanban.board.queue.tooltipInQueue`):e(_)(`kanban.board.queue.tooltip`),void 0,{bottom:!0}]])]),"card-badges":d(({card:t})=>[_n(t)===`companion`?a((u(),s(`span`,We,null,512)),[[c,e(_)(`kanban.board.aiStatus.companion`),void 0,{bottom:!0}]]):_n(t)===`streaming`?a((u(),s(`span`,Ge,null,512)),[[c,e(_)(`kanban.board.aiStatus.streaming`),void 0,{bottom:!0}]]):_n(t)===`unread`?a((u(),s(`span`,Ke,null,512)),[[c,e(_)(`kanban.board.aiStatus.unread`),void 0,{bottom:!0}]]):m(``,!0)]),"card-editor-actions":d(({card:t,colId:n,draft:i})=>[r(e(y),{label:e(_)(`kanban.board.editor.launchAi`),icon:`ti ti-sparkles`,severity:`secondary`,variant:`outlined`,size:`small`,disabled:M.value,onClick:e=>bn({card:t,colId:n,draft:i})},null,8,[`label`,`disabled`,`onClick`]),r(e(y),{label:e(_)(`kanban.board.editor.sendToChat`),icon:`ti ti-messages`,severity:`secondary`,variant:`outlined`,size:`small`,onClick:e=>xn({card:t,colId:n,draft:i})},null,8,[`label`,`onClick`])]),_:1},8,`columns.column-groups.card-group-colors.name.board-id.view.read-only.templates.current-user-id.members.column-subscriptions.teams.manageable-team-ids.column-team-subscriptions.load-history.histories.edit-comment.remove-comment.move-card.other-boards.card-links.linked-cards.load-placements.place-card.unplace-card.search-org-cards.can-place.conversation-integrations.card-conversations.search-conversations.archived-cards.loading-archive.archive-truncated.search-matches.search-truncated.onLoadArchive.onSearchCards`.split(`.`)),r(e(v),{visible:L.value,header:e(_)(`kanban.board.launchAiDialog.header`),modal:!0,style:{width:`700px`,maxHeight:`80vh`},"onUpdate:visible":i[12]||=e=>{e||(L.value=!1)}},{default:d(()=>[r(Ae,{compact:``,onSelectScenario:wn,onSkip:Tn})]),_:1},8,[`visible`,`header`]),r(je,{ref_key:`launchModalsRef`,ref:fn,onConfirmScenarioStart:En},null,512),r(Re,{ref_key:`sendToChatRef`,ref:pn},null,512),r(e(v),{visible:Y.value,header:e(_)(`kanban.board.editBoard.header`),modal:!0,style:{width:`550px`},"onUpdate:visible":i[17]||=e=>{e||(Y.value=!1)}},{footer:d(()=>[o(`div`,tt,[r(e(y),{label:e(_)(`actions.cancel`),variant:`text`,onClick:i[16]||=e=>Y.value=!1},null,8,[`label`]),r(e(y),{label:e(_)(`kanban.board.editBoard.save`),icon:`ti ti-check`,disabled:!X.value.name.trim(),onClick:Hn},null,8,[`label`,`disabled`])])]),default:d(()=>[o(`div`,qe,[o(`div`,Je,[o(`label`,Ye,f(e(_)(`kanban.list.nameLabel`)),1),r(e(fe),{id:`kb-board-name`,modelValue:X.value.name,"onUpdate:modelValue":i[13]||=e=>X.value.name=e,autofocus:``,class:`w-full`},null,8,[`modelValue`])]),o(`div`,Xe,[o(`label`,Ze,f(e(_)(`kanban.list.descriptionLabel`)),1),r(e(he),{id:`kb-board-desc`,modelValue:X.value.description,"onUpdate:modelValue":i[14]||=e=>X.value.description=e,rows:`3`,class:`w-full`},null,8,[`modelValue`])]),o(`div`,Qe,[o(`label`,$e,f(e(_)(`kanban.list.instructionsLabel`)),1),r(e(he),{id:`kb-board-instructions`,modelValue:X.value.instructions,"onUpdate:modelValue":i[15]||=e=>X.value.instructions=e,rows:`6`,class:`w-full`,placeholder:e(_)(`kanban.list.instructionsPlaceholder`)},null,8,[`modelValue`,`placeholder`]),o(`small`,et,f(e(_)(`kanban.list.instructionsHint`)),1)])])]),_:1},8,[`visible`,`header`]),r(e(v),{visible:Z.value,header:e(_)(`kanban.board.saveTemplate.header`),modal:!0,style:{width:`450px`},"onUpdate:visible":i[20]||=e=>{e||(Z.value=!1)}},{footer:d(()=>[o(`div`,it,[r(e(y),{label:e(_)(`actions.cancel`),variant:`text`,onClick:i[19]||=e=>Z.value=!1},null,8,[`label`]),r(e(y),{label:e(_)(`kanban.board.saveTemplate.save`),icon:`ti ti-bookmark`,disabled:!Q.value.trim(),onClick:Jn},null,8,[`label`,`disabled`])])]),default:d(()=>[o(`div`,nt,[o(`p`,rt,f(e(_)(`kanban.board.saveTemplate.hint`,{count:O.value?.columns.length??0})),1),r(e(fe),{modelValue:Q.value,"onUpdate:modelValue":i[18]||=e=>Q.value=e,class:`w-full`,autofocus:``,placeholder:e(_)(`kanban.board.saveTemplate.namePlaceholder`),onKeyup:oe(Jn,[`enter`])},null,8,[`modelValue`,`placeholder`])])]),_:1},8,[`visible`,`header`]),r(e(v),{visible:K.value,header:e(_)(`kanban.board.populateDialog.header`),modal:!0,style:{width:`550px`},"onUpdate:visible":i[23]||=e=>{e||(K.value=!1)}},{footer:d(()=>[o(`div`,st,[r(e(y),{label:e(_)(`actions.cancel`),variant:`text`,onClick:i[22]||=e=>K.value=!1},null,8,[`label`]),r(e(y),{label:e(_)(`kanban.board.populateDialog.generate`),icon:`ti ti-sparkles`,disabled:!J.value.trim(),onClick:rr},null,8,[`label`,`disabled`])])]),default:d(()=>[o(`div`,at,[o(`p`,ot,f(e(_)(`kanban.board.populateDialog.hint`)),1),r(e(he),{modelValue:J.value,"onUpdate:modelValue":i[21]||=e=>J.value=e,placeholder:e(_)(`kanban.board.populateDialog.placeholder`),autoResize:!0,rows:`4`,class:`w-full`,onKeydown:[oe(h(rr,[`ctrl`]),[`enter`]),oe(h(rr,[`meta`]),[`enter`])]},null,8,[`modelValue`,`placeholder`,`onKeydown`])])]),_:1},8,[`visible`,`header`]),r(e(v),{visible:q.value,header:e(_)(`kanban.board.populateDialog.header`),modal:!0,style:{width:`700px`,maxHeight:`80vh`},"onUpdate:visible":i[24]||=e=>{e||(q.value=!1)}},{default:d(()=>[r(Ae,{compact:``,onSelectScenario:ar,onSkip:ir})]),_:1},8,[`visible`,`header`]),V.value?(u(),s(`div`,ct,[o(`div`,lt,[o(`span`,ut,f(e(_)(`kanban.board.queue.panelHeader`)),1),r(e(y),{icon:`ti ti-x`,variant:`text`,rounded:``,size:`small`,onClick:i[25]||=e=>V.value=!1})]),o(`div`,dt,[o(`span`,ft,f(e(_)(`kanban.board.queue.concurrency`)),1),o(`div`,pt,[r(e(y),{icon:`ti ti-minus`,variant:`text`,rounded:``,size:`small`,disabled:e(B).state.maxConcurrent<=1,onClick:i[26]||=t=>e(B).setMaxConcurrent(e(B).state.maxConcurrent-1)},null,8,[`disabled`]),o(`span`,null,f(e(B).state.maxConcurrent),1),r(e(y),{icon:`ti ti-plus`,variant:`text`,rounded:``,size:`small`,onClick:i[27]||=t=>e(B).setMaxConcurrent(e(B).state.maxConcurrent+1)})])]),e(B).state.running.length>0?(u(),s(`div`,mt,[o(`div`,ht,f(e(_)(`kanban.board.queue.runningSection`,{count:e(B).state.running.length})),1),(u(!0),s(ie,null,ee(e(B).state.running.filter(e=>e.boardId===O.value?.id),t=>(u(),s(`div`,{key:t.id,class:`kb-queue-item kb-queue-item--running`},[i[39]||=o(`i`,{class:`ti ti-spin ti-loader-2`},null,-1),o(`span`,gt,f(Nn(t.cardId)),1),r(e(y),{icon:`ti ti-player-stop`,variant:`text`,rounded:``,size:`small`,severity:`danger`,onClick:n=>e(B).removeItem(t.id)},null,8,[`onClick`])]))),128))])):m(``,!0),e(B).state.items.length>0?(u(),s(`div`,_t,[o(`div`,vt,f(e(_)(`kanban.board.queue.waitingSection`,{count:e(B).state.items.length})),1),(u(!0),s(ie,null,ee(e(B).state.items.filter(e=>e.boardId===O.value?.id),t=>(u(),s(`div`,{key:t.id,class:`kb-queue-item`},[i[40]||=o(`i`,{class:`ti ti-clock`},null,-1),o(`span`,yt,f(Nn(t.cardId)),1),r(e(y),{icon:`ti ti-x`,variant:`text`,rounded:``,size:`small`,onClick:n=>e(B).removeItem(t.id)},null,8,[`onClick`])]))),128))])):m(``,!0),G.value===0?(u(),s(`div`,bt,f(e(_)(`kanban.board.queue.empty`)),1)):m(``,!0),o(`div`,xt,[r(e(y),{label:e(_)(`kanban.board.queue.stopAll`),icon:`ti ti-player-stop`,severity:`danger`,variant:`text`,size:`small`,disabled:G.value===0,onClick:i[28]||=t=>e(B).stopAll()},null,8,[`label`,`disabled`])])])):m(``,!0),r(e(v),{visible:H.value,header:e(_)(`kanban.board.queue.addColumnDialog.header`),modal:!0,style:{width:`420px`},"onUpdate:visible":i[32]||=e=>{e||(H.value=!1)}},{footer:d(()=>[o(`div`,Dt,[r(e(y),{label:e(_)(`actions.cancel`),variant:`text`,onClick:i[31]||=e=>H.value=!1},null,8,[`label`]),r(e(y),{label:e(_)(`kanban.board.queue.addColumnDialog.confirm`),icon:`ti ti-list`,onClick:jn},null,8,[`label`])])]),default:d(()=>[o(`div`,St,[o(`div`,Ct,[o(`label`,wt,f(e(_)(`kanban.board.queue.addColumnDialog.runner`)),1),r(e(pe),{modelValue:U.value,"onUpdate:modelValue":i[29]||=e=>U.value=e,"input-id":`kanban-queue-runner`,options:[{value:``,label:`Auto`},{value:`claude-code`,label:`Claude Code${e(un)?``:` (non installé)`}`,disabled:!e(un)},{value:`codex`,label:`Codex${e(dn)?``:` (non installé)`}`,disabled:!e(dn)}],"option-label":`label`,"option-value":`value`,"option-disabled":`disabled`,fluid:``},null,8,[`modelValue`,`options`])]),o(`div`,Tt,[o(`label`,Et,f(e(_)(`kanban.board.queue.addColumnDialog.scenario`)),1),r(e(pe),{modelValue:W.value,"onUpdate:modelValue":i[30]||=e=>W.value=e,"input-id":`kanban-queue-scenario`,options:[{id:``,name:e(_)(`kanban.board.queue.addColumnDialog.noScenario`)},...kn.value],"option-label":`name`,"option-value":`id`,fluid:``},null,8,[`modelValue`,`options`])])])]),_:1},8,[`visible`,`header`])])):e(T).loading.value?(u(),s(`div`,Ot,[...i[41]||=[o(`i`,{class:`ti ti-spin ti-loader-2`},null,-1)]])):m(``,!0)}}}),[[`__scopeId`,`data-v-c80283c8`]]);export{C as default};
|
|
4
|
+
`))}function Sn(){return{kanbanBoardId:O.value?.id,kanbanCardId:z?.card.id}}async function Cn(e,t){let n=R,r=await F.createConversation({title:`Kanban: ${z?.card.title||`Card`}`,runner:e,providerId:t,...Sn()}),i=r?yn(r.id,`conversation_started`):null;D.value?.closeCardEditor(),n?I.openWithKanbanContext(n):I.open(),await i}function wn(e,t,n){L.value=!1,fn.value?.showScenarioDialog(e,R,t,n??void 0)}async function Tn(e,t){L.value=!1,await Cn(e===`keep`?void 0:e,t??void 0)}async function En(e,t,n,r){let i=t||R,a=await F.createConversation({scenarioId:e,scenarioInput:i,title:`Kanban: ${z?.card.title||`Card`}`,...Sn()});if(i&&a){let t=n!==`keep`||r.trim()?{...n===`keep`?{}:{runnerOverride:n},...r.trim()?{modelOverride:r.trim()}:{}}:void 0;F.startScenarioRun(a.id,e,i,void 0,t)}let o=i&&a?yn(a.id,`scenario_started`,`Scenario run — ${a.id}`):null;D.value?.closeCardEditor(),I.open(),await o}let B=ze(),V=t(!1),H=t(!1),Dn=t(``),On=t([]),U=t(``),W=t(``),kn=t([]),G=l(()=>B.state.items.length+B.state.running.length);c(async()=>{B.init();try{let{trpc:e}=await _e(async()=>{let{trpc:e}=await import(`./trpc-BQ0mLnfI.js`).then(e=>e.i);return{trpc:e}},__vite__mapDeps([0,1,2,3,4,5])),{settingsScope:t}=await _e(async()=>{let{settingsScope:e}=await import(`./settings-scope-vcJEMNnD.js`).then(e=>e.n);return{settingsScope:e}},__vite__mapDeps([6,1,3,2,7,8,0,4,5,9])),n=await e.scenario.list.query(t());kn.value=n.map(e=>({id:e.id,name:e.name}))}catch{}}),ne(()=>B.destroy());function An(e){Dn.value=e.id,On.value=e.cards.map(e=>e.id),U.value=``,W.value=``,H.value=!0}async function jn(){O.value&&(await B.addColumn({boardId:O.value.id,columnId:Dn.value,cardIds:On.value,runner:U.value||void 0,scenarioId:W.value||void 0}),H.value=!1)}async function Mn(e){if(!O.value)return;let t=B.getCardQueueItemId(O.value.id,e.id);t?await B.removeItem(t):await B.addCard({boardId:O.value.id,cardId:e.id})}function Nn(e){return j.value.flatMap(e=>e.cards).find(t=>t.id===e)?.title??e}let K=t(!1),q=t(!1),J=t(``);async function Pn(e,t){if(!O.value||!J.value.trim())return;let n=J.value.trim(),r=await F.createConversation({title:`Kanban populate: ${O.value.name.slice(0,30)}`,runner:e,providerId:t,kanbanBoardId:O.value.id});if(q.value=!1,J.value=``,r){if(e===`claude-code`||e===`codex`){I.openWithPopulateContext(n);return}I.openPopulate(),await ae(),F.send(n,()=>{})}}async function Fn(e,t,n){if(!O.value||!J.value.trim())return;let r=J.value.trim(),i=await F.createConversation({title:`Kanban populate: ${O.value.name.slice(0,30)}`,scenarioId:e,scenarioInput:r,...t===`keep`?{}:{runner:t},...n?{providerId:n}:{},kanbanBoardId:O.value.id});q.value=!1,J.value=``,i&&(F.startScenarioRun(i.id,e,r,void 0,t===`keep`?void 0:{runnerOverride:t}),I.open())}let In=t([]);async function Ln(){let e=await T.loadBoardColumns();In.value=e.filter(e=>e.id!==O.value?.id)}i(()=>[C.value,O.value?.id].join(`:`),()=>{Ln()},{immediate:!0});async function Rn(e,t,n){let r=await T.moveCardToBoard(e,t,n);return r&&Ln(),r}function zn(e){b.push({name:`kanban-card`,params:{id:e.boardId,cardId:e.cardId}})}async function Bn(e,t){return T.setCardParent(e,t?{boardId:g.id,cardId:t}:null)}let Y=t(!1),X=t({name:``,description:``,instructions:``});function Vn(){let e=O.value;e&&(X.value={name:e.name,description:e.description??``,instructions:e.instructions??``},Y.value=!0)}async function Hn(){let e=O.value;e&&X.value.name.trim()&&await T.updateBoardById(e.id,{name:X.value.name.trim(),description:X.value.description.trim(),instructions:X.value.instructions.trim()})&&(Y.value=!1)}function Un(){let e=O.value;if(!e)return;let t=!e.archived;Mt.require({message:_(t?`kanban.board.archiveBoard.confirm`:`kanban.board.archiveBoard.restoreConfirm`,{name:e.name}),header:_(t?`kanban.board.archiveBoard.header`:`kanban.board.archiveBoard.restoreHeader`),icon:`ti ti-inbox`,accept:async()=>{await T.updateBoardById(e.id,{archived:t})&&t&&await b.push(A.value)}})}function Wn(){let e=O.value;if(!e)return;let t=A.value;Mt.require({message:_(`kanban.list.dialogs.confirmDeleteMessage`,{name:e.name}),header:_(`kanban.list.dialogs.confirmDeleteHeader`),icon:`ti ti-trash`,acceptProps:{severity:`danger`},accept:async()=>{await T.deleteBoard(e.id)&&await b.push(t)}})}let Gn=we(S,C),Z=t(!1),Q=t(``),Kn=t(!1);function qn(){Q.value=O.value?.name??``,Kn.value=!1,Z.value=!0}async function Jn(){let e=O.value;e&&Q.value.trim()&&await Gn.createTemplate(Q.value.trim(),e.instructions??``,[...e.columns].sort((e,t)=>e.order-t.order).map(e=>({title:e.title,...e.groupId?{groupId:e.groupId}:{}})),(e.columnGroups??[]).map(e=>({id:e.id,title:e.title,...e.color?{color:e.color}:{},...e.parentId?{parentId:e.parentId}:{}})))&&(Kn.value=!0,Z.value=!1)}let Yn=t(null),Xn=t(null),Zn=(e,t)=>t?_(`kanban.list.${e}`,t):_(`kanban.list.${e}`),Qn=t(null),$n=(e,t)=>t?_(`kanban.${e}`,t):_(`kanban.${e}`);function er(e){b.push({name:Qt.value,params:{id:g.id,cardId:e}})}function tr(e){Qn.value=null,er(e)}function $(e){Yn.value?.hide(),e()}function nr(){J.value=``,K.value=!0}function rr(){J.value.trim()&&(K.value=!1,F.fetchProviders(),F.checkCliAvailability(),q.value=!0)}async function ir(e,t){await Pn(e===`keep`?void 0:e,t??void 0)}async function ar(e,t,n){await Fn(e,t,n)}return i(()=>F.streamingConvIds.size,()=>{T.refreshActiveBoard()}),(t,i)=>{let c=n(`tooltip`);return O.value?(u(),s(`div`,Be,[r(e(Fe),{ref_key:`boardRef`,ref:D,columns:j.value,"column-groups":O.value.columnGroups??[],"card-group-colors":O.value.cardGroupColors??[],name:O.value.name,"board-id":O.value.id,view:O.value.defaultView,"read-only":M.value,templates:Xt.value,t:Rt,"resolve-conversation-id":gn,"current-user-id":e(kt)?.id,members:Lt.value,"column-subscriptions":O.value.columnSubscriptions??{},teams:e(Gt),"manageable-team-ids":Yt.value,"column-team-subscriptions":O.value.columnTeamSubscriptions??{},"avatar-url":It,"upload-image":Nt,"fetch-attachment":Ft,"delete-attachment":Pt,"load-history":e(T).loadCardHistory,histories:e(T).cardHistories.value,"add-comment":an,"edit-comment":e(T).updateComment,"remove-comment":e(T).deleteComment,"move-card":e(T).moveCard,"move-cards":e(T).moveCards,"other-boards":In.value,"move-card-to-board":Rn,"card-links":e(T).cardLinks.value,"linked-cards":e(T).linkedCards.value,"set-card-parent":Bn,"load-placements":e(T).loadCardPlacements,"place-card":e(T).addCardPlacement,"unplace-card":e(T).removeCardPlacement,"search-org-cards":e(T).searchOrgCards,"can-place":e(T).canWrite.value,"conversation-integrations":e(E).integrations.value,"card-conversations":e(E).byCard.value,"load-conversations":Bt,"search-conversations":e(E).search,"link-conversation":Vt,"unlink-conversation":Ut,"resync-conversation":Ht,"archived-cards":e(T).archivedCards.value,"loading-archive":e(T).loadingArchive.value,"archive-truncated":e(T).archiveTruncated.value,"search-matches":e(T).searchMatches.value,"search-truncated":e(T).searchTruncated.value,onIntent:on,onLoadArchive:e(T).loadArchivedCards,onSearchCards:e(T).searchCards,onBack:i[11]||=t=>e(b).push(A.value),onOpenConversation:vn,onCardOpen:rn,onUpdateColumnSubscription:cn,onOpenLinkedCard:zn},{"header-actions":d(()=>[G.value>0?(u(),p(e(y),{key:0,label:e(_)(`kanban.board.queue.panelHeader`),icon:`ti ti-list`,severity:`secondary`,variant:`outlined`,size:`small`,badge:String(G.value),"badge-severity":`warn`,onClick:i[0]||=e=>V.value=!V.value},null,8,[`label`,`badge`])):m(``,!0),O.value?a((u(),p(e(y),{key:1,icon:`ti ti-chart-line`,variant:`text`,rounded:``,size:`small`,"aria-label":e(_)(`kanban.list.flow.open`),onClick:i[1]||=e=>Xn.value=O.value},null,8,[`aria-label`])),[[c,e(_)(`kanban.list.flow.open`),void 0,{bottom:!0}]]):m(``,!0),O.value?a((u(),p(e(y),{key:2,icon:`ti ti-history`,variant:`text`,rounded:``,size:`small`,"aria-label":e(_)(`kanban.list.history.open`),onClick:i[2]||=e=>Qn.value=O.value},null,8,[`aria-label`])),[[c,e(_)(`kanban.list.history.open`),void 0,{bottom:!0}]]):m(``,!0),e(T).canWrite.value?(u(),p(e(y),{key:3,icon:`ti ti-dots-vertical`,severity:`secondary`,variant:`outlined`,size:`small`,title:e(_)(`kanban.board.actions.menu`),"aria-label":e(_)(`kanban.board.actions.menu`),onClick:i[3]||=e=>Yn.value?.toggle(e)},null,8,[`title`,`aria-label`])):m(``,!0),r(e(de),{ref_key:`boardMenu`,ref:Yn},{default:d(()=>[o(`div`,Ve,[M.value?m(``,!0):(u(),s(`button`,{key:0,class:`kb-boardmenu__item`,onClick:i[4]||=e=>$(Vn)},[i[33]||=o(`i`,{class:`ti ti-pencil`},null,-1),o(`span`,null,f(e(_)(`kanban.board.editBoard.action`)),1)])),M.value?m(``,!0):(u(),s(`button`,{key:1,class:`kb-boardmenu__item`,onClick:i[5]||=e=>$(nr)},[i[34]||=o(`i`,{class:`ti ti-sparkles`},null,-1),o(`span`,null,f(e(_)(`kanban.board.aiPopulate`)),1)])),!M.value&&O.value?.defaultView!==`list`?(u(),s(`button`,{key:2,class:`kb-boardmenu__item`,onClick:i[6]||=e=>$(qn)},[i[35]||=o(`i`,{class:`ti ti-bookmark`},null,-1),o(`span`,null,f(e(_)(`kanban.board.saveTemplate.action`)),1)])):m(``,!0),o(`button`,{class:`kb-boardmenu__item`,onClick:i[7]||=e=>$(Un)},[i[36]||=o(`i`,{class:`ti ti-inbox`},null,-1),o(`span`,null,f(O.value?.archived?e(_)(`kanban.list.restore`):e(_)(`kanban.list.archive`)),1)]),o(`button`,{class:`kb-boardmenu__item kb-boardmenu__item--danger`,onClick:i[8]||=e=>$(Wn)},[i[37]||=o(`i`,{class:`ti ti-trash`},null,-1),o(`span`,null,f(e(_)(`kanban.board.deleteBoard.action`)),1)])])]),_:1},512),r(e(Ie),{board:Xn.value,load:e(T).boardFlow,t:Zn,"avatar-url":It,"cards-openable":``,onClose:i[9]||=e=>Xn.value=null,onOpenCard:er},null,8,[`board`,`load`]),r(e(Le),{board:Qn.value,load:e(T).boardHistory,t:$n,onClose:i[10]||=e=>Qn.value=null,onOpenCard:tr},null,8,[`board`,`load`])]),banner:d(()=>[e(T).planLocked.value?(u(),s(`a`,{key:0,class:`upgrade-banner`,href:`#`,onClick:h(ln,[`prevent`])},[o(`span`,null,f(e(_)(`kanban.cloud.readOnlyNotice`)),1),o(`span`,He,f(e(_)(`kanban.cloud.upgradeCta`)),1)])):m(``,!0)]),"column-actions":d(({column:t})=>[M.value?m(``,!0):a((u(),p(e(y),{key:0,icon:`ti ti-list`,variant:`text`,rounded:``,size:`small`,onClick:h(e=>An(t),[`stop`])},null,8,[`onClick`])),[[c,e(_)(`kanban.board.queue.addColumnTooltip`),void 0,{bottom:!0}]])]),"card-actions":d(({card:t})=>[M.value?m(``,!0):a((u(),s(`button`,{key:0,class:te([`kb-card__queue-btn`,{"kb-card__queue-btn--active":O.value&&e(B).isCardInQueue(O.value.id,t.id)}]),onClick:h(e=>Mn(t),[`stop`])},[...i[38]||=[o(`i`,{class:`ti ti-list`},null,-1)]],10,Ue)),[[c,O.value&&e(B).isCardInQueue(O.value.id,t.id)?e(_)(`kanban.board.queue.tooltipInQueue`):e(_)(`kanban.board.queue.tooltip`),void 0,{bottom:!0}]])]),"card-badges":d(({card:t})=>[_n(t)===`companion`?a((u(),s(`span`,We,null,512)),[[c,e(_)(`kanban.board.aiStatus.companion`),void 0,{bottom:!0}]]):_n(t)===`streaming`?a((u(),s(`span`,Ge,null,512)),[[c,e(_)(`kanban.board.aiStatus.streaming`),void 0,{bottom:!0}]]):_n(t)===`unread`?a((u(),s(`span`,Ke,null,512)),[[c,e(_)(`kanban.board.aiStatus.unread`),void 0,{bottom:!0}]]):m(``,!0)]),"card-editor-actions":d(({card:t,colId:n,draft:i})=>[r(e(y),{label:e(_)(`kanban.board.editor.launchAi`),icon:`ti ti-sparkles`,severity:`secondary`,variant:`outlined`,size:`small`,disabled:M.value,onClick:e=>bn({card:t,colId:n,draft:i})},null,8,[`label`,`disabled`,`onClick`]),r(e(y),{label:e(_)(`kanban.board.editor.sendToChat`),icon:`ti ti-messages`,severity:`secondary`,variant:`outlined`,size:`small`,onClick:e=>xn({card:t,colId:n,draft:i})},null,8,[`label`,`onClick`])]),_:1},8,`columns.column-groups.card-group-colors.name.board-id.view.read-only.templates.current-user-id.members.column-subscriptions.teams.manageable-team-ids.column-team-subscriptions.load-history.histories.edit-comment.remove-comment.move-card.move-cards.other-boards.card-links.linked-cards.load-placements.place-card.unplace-card.search-org-cards.can-place.conversation-integrations.card-conversations.search-conversations.archived-cards.loading-archive.archive-truncated.search-matches.search-truncated.onLoadArchive.onSearchCards`.split(`.`)),r(e(v),{visible:L.value,header:e(_)(`kanban.board.launchAiDialog.header`),modal:!0,style:{width:`700px`,maxHeight:`80vh`},"onUpdate:visible":i[12]||=e=>{e||(L.value=!1)}},{default:d(()=>[r(Ae,{compact:``,onSelectScenario:wn,onSkip:Tn})]),_:1},8,[`visible`,`header`]),r(je,{ref_key:`launchModalsRef`,ref:fn,onConfirmScenarioStart:En},null,512),r(Re,{ref_key:`sendToChatRef`,ref:pn},null,512),r(e(v),{visible:Y.value,header:e(_)(`kanban.board.editBoard.header`),modal:!0,style:{width:`550px`},"onUpdate:visible":i[17]||=e=>{e||(Y.value=!1)}},{footer:d(()=>[o(`div`,tt,[r(e(y),{label:e(_)(`actions.cancel`),variant:`text`,onClick:i[16]||=e=>Y.value=!1},null,8,[`label`]),r(e(y),{label:e(_)(`kanban.board.editBoard.save`),icon:`ti ti-check`,disabled:!X.value.name.trim(),onClick:Hn},null,8,[`label`,`disabled`])])]),default:d(()=>[o(`div`,qe,[o(`div`,Je,[o(`label`,Ye,f(e(_)(`kanban.list.nameLabel`)),1),r(e(fe),{id:`kb-board-name`,modelValue:X.value.name,"onUpdate:modelValue":i[13]||=e=>X.value.name=e,autofocus:``,class:`w-full`},null,8,[`modelValue`])]),o(`div`,Xe,[o(`label`,Ze,f(e(_)(`kanban.list.descriptionLabel`)),1),r(e(he),{id:`kb-board-desc`,modelValue:X.value.description,"onUpdate:modelValue":i[14]||=e=>X.value.description=e,rows:`3`,class:`w-full`},null,8,[`modelValue`])]),o(`div`,Qe,[o(`label`,$e,f(e(_)(`kanban.list.instructionsLabel`)),1),r(e(he),{id:`kb-board-instructions`,modelValue:X.value.instructions,"onUpdate:modelValue":i[15]||=e=>X.value.instructions=e,rows:`6`,class:`w-full`,placeholder:e(_)(`kanban.list.instructionsPlaceholder`)},null,8,[`modelValue`,`placeholder`]),o(`small`,et,f(e(_)(`kanban.list.instructionsHint`)),1)])])]),_:1},8,[`visible`,`header`]),r(e(v),{visible:Z.value,header:e(_)(`kanban.board.saveTemplate.header`),modal:!0,style:{width:`450px`},"onUpdate:visible":i[20]||=e=>{e||(Z.value=!1)}},{footer:d(()=>[o(`div`,it,[r(e(y),{label:e(_)(`actions.cancel`),variant:`text`,onClick:i[19]||=e=>Z.value=!1},null,8,[`label`]),r(e(y),{label:e(_)(`kanban.board.saveTemplate.save`),icon:`ti ti-bookmark`,disabled:!Q.value.trim(),onClick:Jn},null,8,[`label`,`disabled`])])]),default:d(()=>[o(`div`,nt,[o(`p`,rt,f(e(_)(`kanban.board.saveTemplate.hint`,{count:O.value?.columns.length??0})),1),r(e(fe),{modelValue:Q.value,"onUpdate:modelValue":i[18]||=e=>Q.value=e,class:`w-full`,autofocus:``,placeholder:e(_)(`kanban.board.saveTemplate.namePlaceholder`),onKeyup:oe(Jn,[`enter`])},null,8,[`modelValue`,`placeholder`])])]),_:1},8,[`visible`,`header`]),r(e(v),{visible:K.value,header:e(_)(`kanban.board.populateDialog.header`),modal:!0,style:{width:`550px`},"onUpdate:visible":i[23]||=e=>{e||(K.value=!1)}},{footer:d(()=>[o(`div`,st,[r(e(y),{label:e(_)(`actions.cancel`),variant:`text`,onClick:i[22]||=e=>K.value=!1},null,8,[`label`]),r(e(y),{label:e(_)(`kanban.board.populateDialog.generate`),icon:`ti ti-sparkles`,disabled:!J.value.trim(),onClick:rr},null,8,[`label`,`disabled`])])]),default:d(()=>[o(`div`,at,[o(`p`,ot,f(e(_)(`kanban.board.populateDialog.hint`)),1),r(e(he),{modelValue:J.value,"onUpdate:modelValue":i[21]||=e=>J.value=e,placeholder:e(_)(`kanban.board.populateDialog.placeholder`),autoResize:!0,rows:`4`,class:`w-full`,onKeydown:[oe(h(rr,[`ctrl`]),[`enter`]),oe(h(rr,[`meta`]),[`enter`])]},null,8,[`modelValue`,`placeholder`,`onKeydown`])])]),_:1},8,[`visible`,`header`]),r(e(v),{visible:q.value,header:e(_)(`kanban.board.populateDialog.header`),modal:!0,style:{width:`700px`,maxHeight:`80vh`},"onUpdate:visible":i[24]||=e=>{e||(q.value=!1)}},{default:d(()=>[r(Ae,{compact:``,onSelectScenario:ar,onSkip:ir})]),_:1},8,[`visible`,`header`]),V.value?(u(),s(`div`,ct,[o(`div`,lt,[o(`span`,ut,f(e(_)(`kanban.board.queue.panelHeader`)),1),r(e(y),{icon:`ti ti-x`,variant:`text`,rounded:``,size:`small`,onClick:i[25]||=e=>V.value=!1})]),o(`div`,dt,[o(`span`,ft,f(e(_)(`kanban.board.queue.concurrency`)),1),o(`div`,pt,[r(e(y),{icon:`ti ti-minus`,variant:`text`,rounded:``,size:`small`,disabled:e(B).state.maxConcurrent<=1,onClick:i[26]||=t=>e(B).setMaxConcurrent(e(B).state.maxConcurrent-1)},null,8,[`disabled`]),o(`span`,null,f(e(B).state.maxConcurrent),1),r(e(y),{icon:`ti ti-plus`,variant:`text`,rounded:``,size:`small`,onClick:i[27]||=t=>e(B).setMaxConcurrent(e(B).state.maxConcurrent+1)})])]),e(B).state.running.length>0?(u(),s(`div`,mt,[o(`div`,ht,f(e(_)(`kanban.board.queue.runningSection`,{count:e(B).state.running.length})),1),(u(!0),s(ie,null,ee(e(B).state.running.filter(e=>e.boardId===O.value?.id),t=>(u(),s(`div`,{key:t.id,class:`kb-queue-item kb-queue-item--running`},[i[39]||=o(`i`,{class:`ti ti-spin ti-loader-2`},null,-1),o(`span`,gt,f(Nn(t.cardId)),1),r(e(y),{icon:`ti ti-player-stop`,variant:`text`,rounded:``,size:`small`,severity:`danger`,onClick:n=>e(B).removeItem(t.id)},null,8,[`onClick`])]))),128))])):m(``,!0),e(B).state.items.length>0?(u(),s(`div`,_t,[o(`div`,vt,f(e(_)(`kanban.board.queue.waitingSection`,{count:e(B).state.items.length})),1),(u(!0),s(ie,null,ee(e(B).state.items.filter(e=>e.boardId===O.value?.id),t=>(u(),s(`div`,{key:t.id,class:`kb-queue-item`},[i[40]||=o(`i`,{class:`ti ti-clock`},null,-1),o(`span`,yt,f(Nn(t.cardId)),1),r(e(y),{icon:`ti ti-x`,variant:`text`,rounded:``,size:`small`,onClick:n=>e(B).removeItem(t.id)},null,8,[`onClick`])]))),128))])):m(``,!0),G.value===0?(u(),s(`div`,bt,f(e(_)(`kanban.board.queue.empty`)),1)):m(``,!0),o(`div`,xt,[r(e(y),{label:e(_)(`kanban.board.queue.stopAll`),icon:`ti ti-player-stop`,severity:`danger`,variant:`text`,size:`small`,disabled:G.value===0,onClick:i[28]||=t=>e(B).stopAll()},null,8,[`label`,`disabled`])])])):m(``,!0),r(e(v),{visible:H.value,header:e(_)(`kanban.board.queue.addColumnDialog.header`),modal:!0,style:{width:`420px`},"onUpdate:visible":i[32]||=e=>{e||(H.value=!1)}},{footer:d(()=>[o(`div`,Dt,[r(e(y),{label:e(_)(`actions.cancel`),variant:`text`,onClick:i[31]||=e=>H.value=!1},null,8,[`label`]),r(e(y),{label:e(_)(`kanban.board.queue.addColumnDialog.confirm`),icon:`ti ti-list`,onClick:jn},null,8,[`label`])])]),default:d(()=>[o(`div`,St,[o(`div`,Ct,[o(`label`,wt,f(e(_)(`kanban.board.queue.addColumnDialog.runner`)),1),r(e(pe),{modelValue:U.value,"onUpdate:modelValue":i[29]||=e=>U.value=e,"input-id":`kanban-queue-runner`,options:[{value:``,label:`Auto`},{value:`claude-code`,label:`Claude Code${e(un)?``:` (non installé)`}`,disabled:!e(un)},{value:`codex`,label:`Codex${e(dn)?``:` (non installé)`}`,disabled:!e(dn)}],"option-label":`label`,"option-value":`value`,"option-disabled":`disabled`,fluid:``},null,8,[`modelValue`,`options`])]),o(`div`,Tt,[o(`label`,Et,f(e(_)(`kanban.board.queue.addColumnDialog.scenario`)),1),r(e(pe),{modelValue:W.value,"onUpdate:modelValue":i[30]||=e=>W.value=e,"input-id":`kanban-queue-scenario`,options:[{id:``,name:e(_)(`kanban.board.queue.addColumnDialog.noScenario`)},...kn.value],"option-label":`name`,"option-value":`id`,fluid:``},null,8,[`modelValue`,`options`])])])]),_:1},8,[`visible`,`header`])])):e(T).loading.value?(u(),s(`div`,Ot,[...i[41]||=[o(`i`,{class:`ti ti-spin ti-loader-2`},null,-1)]])):m(``,!0)}}}),[[`__scopeId`,`data-v-f4438111`]]);export{C as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.kb-boardform[data-v-f4438111]{flex-direction:column;gap:1rem;display:flex}.kb-boardform__field[data-v-f4438111]{flex-direction:column;gap:.35rem;display:flex}.kb-boardform__field label[data-v-f4438111]{font-size:.85rem;font-weight:500}.kb-boardform__hint[data-v-f4438111]{color:var(--r-text-muted);font-size:.75rem}.kb-boardmenu[data-v-f4438111]{flex-direction:column;min-width:12rem;display:flex}.kb-boardmenu__item[data-v-f4438111]{color:var(--r-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:.55rem;padding:.5rem .65rem;font-size:.85rem;display:flex}.kb-boardmenu__item[data-v-f4438111]:hover{background:var(--r-bg-hover)}.kb-boardmenu__item--danger[data-v-f4438111]{color:var(--r-red-500,#ef4444)}.kb-card:hover .kb-card__queue-btn[data-v-f4438111]{opacity:1}.kb-card__ai-badge[data-v-f4438111]{border-radius:50%;flex-shrink:0;width:8px;height:8px}.kb-card__ai-badge--companion[data-v-f4438111]{background:var(--r-purple-500,#a855f7);animation:1s ease-in-out infinite badge-blink-f4438111}.kb-card__ai-badge--streaming[data-v-f4438111]{background:var(--r-yellow-500,#eab308);animation:1s ease-in-out infinite badge-blink-f4438111}.kb-card__ai-badge--unread[data-v-f4438111]{background:var(--r-green-500,#22c55e)}@keyframes badge-blink-f4438111{0%,to{opacity:1}50%{opacity:.25}}.kb-populate[data-v-f4438111]{flex-direction:column;gap:.75rem;display:flex}.kb-populate__hint[data-v-f4438111]{color:var(--r-text-muted);margin:0;font-size:.8125rem;line-height:1.5}.kb-populate__provider-section[data-v-f4438111]{flex-direction:column;gap:.4rem;display:flex}.kb-populate__provider-label[data-v-f4438111]{text-transform:uppercase;letter-spacing:.05em;opacity:.45;font-size:.75rem;font-weight:600}.kb-populate__provider-grid[data-v-f4438111]{flex-wrap:wrap;gap:.5rem;display:flex}.kb-populate__provider-card[data-v-f4438111]{border:1px solid var(--r-surface-200);cursor:pointer;background:var(--r-bg);border-radius:6px;align-items:center;gap:.4rem;padding:.4rem .75rem;font-size:.8rem;transition:border-color .15s;display:flex}.kb-populate__provider-card[data-v-f4438111]:hover{border-color:var(--r-primary)}.kb-populate__provider-card--active[data-v-f4438111]{border-color:var(--r-primary);background:color-mix(in srgb, var(--r-primary) 8%, var(--r-bg));font-weight:600}.kb-card__queue-btn[data-v-f4438111]{width:20px;height:20px;color:var(--r-text-muted);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:.625rem;transition:opacity .15s,background .15s,color .15s;display:flex}.kb-card__queue-btn--active[data-v-f4438111]{opacity:1!important;color:var(--r-primary)!important}.kb-card__queue-btn[data-v-f4438111]:hover{background:color-mix(in srgb, var(--r-primary) 12%, var(--r-bg));color:var(--r-primary)}.kb-queue-panel[data-v-f4438111]{background:var(--r-bg);border-left:1px solid var(--r-border);z-index:100;flex-direction:column;width:320px;height:100%;display:flex;position:fixed;top:0;right:0;box-shadow:-4px 0 16px #0000001a}.kb-queue-panel__header[data-v-f4438111]{border-bottom:1px solid var(--r-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.kb-queue-panel__title[data-v-f4438111]{font-size:.9375rem;font-weight:600}.kb-queue-panel__concurrency[data-v-f4438111]{border-bottom:1px solid var(--r-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:.625rem 1rem;display:flex}.kb-queue-panel__concurrency-label[data-v-f4438111]{color:var(--r-text-muted);font-size:.8125rem}.kb-queue-panel__concurrency-ctrl[data-v-f4438111]{align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;display:flex}.kb-queue-panel__section[data-v-f4438111]{padding:.75rem 1rem 0}.kb-queue-panel__section-title[data-v-f4438111]{text-transform:uppercase;letter-spacing:.05em;color:var(--r-text-muted);margin-bottom:.5rem;font-size:.75rem;font-weight:600}.kb-queue-item[data-v-f4438111]{background:color-mix(in srgb, var(--r-primary) 6%, var(--r-bg));border-radius:6px;align-items:center;gap:.5rem;margin-bottom:.375rem;padding:.375rem .5rem;font-size:.8125rem;display:flex}.kb-queue-item--running[data-v-f4438111]{background:color-mix(in srgb, var(--r-primary) 8%, var(--r-bg));border:1px solid color-mix(in srgb, var(--r-primary) 20%, transparent)}.kb-queue-item__title[data-v-f4438111]{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.kb-queue-panel__empty[data-v-f4438111]{color:var(--r-text-muted);flex:1;justify-content:center;align-items:center;font-size:.875rem;display:flex}.kb-queue-panel__footer[data-v-f4438111]{border-top:1px solid var(--r-border);flex-shrink:0;padding:.75rem 1rem}.kb-queue-col-dialog[data-v-f4438111]{flex-direction:column;gap:1rem;display:flex}.kb-queue-col-dialog__field[data-v-f4438111]{flex-direction:column;gap:.375rem;display:flex}.kb-queue-col-dialog__field label[data-v-f4438111]{color:var(--r-text-muted);font-size:.8125rem;font-weight:500}.kb-dialog__footer[data-v-f4438111]{justify-content:flex-end;gap:.5rem;display:flex}.kanban-board-loading[data-v-f4438111]{height:100%;color:var(--r-text-muted);justify-content:center;align-items:center;display:flex}.kanban-board-host[data-v-f4438111]{height:100%}.upgrade-banner[data-v-f4438111]{background:color-mix(in srgb, var(--r-orange-500,#f97316) 12%, transparent);border:1px solid color-mix(in srgb, var(--r-orange-500,#f97316) 35%, transparent);color:var(--r-text);border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;margin:0 1rem .5rem;padding:.6rem .9rem;font-size:.8125rem;text-decoration:none;display:flex}.upgrade-banner__cta[data-v-f4438111]{color:var(--r-orange-500,#f97316);white-space:nowrap;font-weight:600}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e}from"./reactivity.esm-bundler-BQ9SB2vv.js";import{D as t,Ht as n,_ as r,b as i,g as a,k as o,mt as s,qt as c,rn as l,v as u,y as d}from"./runtime-core.esm-bundler-DujKY9QV.js";import{w as f}from"./runtime-dom.esm-bundler-CyEVRK6B.js";import{n as p}from"./vue-i18n-o7yraQpR.js";import{g as ee}from"./useApi-s_02lHjl-DZYO2tHU.js";import{dt as m,ft as h}from"./src-Ck_MutzB.js";import{n as g}from"./project.store-
|
|
1
|
+
import{B as e}from"./reactivity.esm-bundler-BQ9SB2vv.js";import{D as t,Ht as n,_ as r,b as i,g as a,k as o,mt as s,qt as c,rn as l,v as u,y as d}from"./runtime-core.esm-bundler-DujKY9QV.js";import{w as f}from"./runtime-dom.esm-bundler-CyEVRK6B.js";import{n as p}from"./vue-i18n-o7yraQpR.js";import{g as ee}from"./useApi-s_02lHjl-DZYO2tHU.js";import{dt as m,ft as h}from"./src-Ck_MutzB.js";import{n as g}from"./project.store-CITAykC3.js";import{r as _,t as v}from"./cloud-auth-D_am4FlK.js";import{n as y,r as b}from"./cloud-client-CEVx-bg6.js";import{a as x,i as S,o as C}from"./composables-CCbqJqnd.js";import{t as w}from"./shared-sse-Dcj_cNvF.js";import{n as T}from"./page-actions-CSvO7j9F.js";import{t as E}from"./useCloudOrg-CQvEbrZv.js";import{n as D}from"./src-CIOvFTGI.js";var O={class:`kanban-list-host`},k={key:0,class:`connect-cta`},A={class:`connect-cta__title`},j={class:`connect-cta__desc`},M={key:1,class:`notice`},N={class:`upgrade-banner__cta`},P=h(o({__name:`KanbanListPage`,props:{mode:{default:`board`}},setup(o){let{t:h,te:P}=p(),F=o,I=a(()=>F.mode===`list`?`/issues`:`/kanban`),L=ee(),{orgId:R,orgSlug:z,unavailability:B,cloudUser:V}=E();function H(e,t){let n=`kanban.issues.${e}`,r=F.mode===`list`&&P(n)?n:`kanban.list.${e}`;return t?h(r,t):h(r)}let U=S(y,R,{streamUrl:b,streamFactory:w}),W=C(y,R,{lazy:!0}),G=x(y,R,{lazy:!0});n(U.error,e=>{e&&console.error(`[kanban]`,e)}),n(W.error,e=>{e&&console.error(`[kanban:templates]`,e)}),n(G.error,e=>{e&&console.error(`[kanban:board-templates]`,e)});let K=a(()=>U.boards.value.map(e=>({id:e.id,name:e.name,description:e.description,instructions:e.instructions??``,archived:e.archived,columnCount:e.columnCount,cardCount:e.cardCount,projectIds:e.projectIds??[],defaultView:e.defaultView,columnStats:e.columnStats,lastActivityAt:e.lastActivityAt,assignees:e.assignees,assigneeCount:e.assigneeCount,week:e.week}))),q=g(),J=a(()=>q.projects.filter(e=>(e.orgId??null)===R.value).map(e=>({id:e.id,name:e.name})));function Y(){z.value&&window.open(`${_()}/app/${z.value}/settings/org/billing`,`_blank`,`noopener`)}async function X(e){let t=await U.createBoard(e.name,e.description,e.instructions,e.columns,e.columnGroups,e.projectIds,e.defaultView);t&&await L.push(`${I.value}/${t.id}?org=${R.value}`)}async function Z(e){await U.updateBoardById(e.id,{name:e.name,description:e.description,instructions:e.instructions,...e.projectIds?{projectIds:e.projectIds}:{}})}async function Q(e){await U.updateBoardById(e.id,{archived:e.archived})}async function $(e){await U.deleteBoard(e)}let te=a(()=>W.templates.value.map(e=>({id:e.id,name:e.name,content:e.content})));function ne(){W.ensureLoaded(),G.ensureLoaded()}let re=a(()=>G.templates.value.map(e=>({id:e.id,name:e.name,instructions:e.instructions,columns:e.columns,columnGroups:e.columnGroups})));return(n,a)=>(s(),i(`div`,O,[e(V)?e(R)?(s(),u(e(D),{key:2,boards:K.value,"read-only":!e(U).canWrite.value,"boards-limit":e(U).access.value?.boardsLimit??null,projects:J.value,"current-project-id":e(q).currentProject?.id??null,t:H,mode:o.mode,"show-title":!1,"actions-target":e(T),"load-flow":e(U).boardFlow,"avatar-url":t=>e(v)(t,{orgId:e(R)}),onOpen:a[1]||=t=>e(L).push(`${I.value}/${t}?org=${e(R)}`),onOpenCard:a[2]||=t=>e(L).push(`${I.value}/${t.boardId}/card/${t.cardId}?org=${e(R)}`),onCreate:X,onUpdate:Z,onArchive:Q,onDelete:$,"board-templates":re.value,onTemplatesNeeded:ne,onBoardTemplateDelete:a[3]||=t=>e(G).deleteTemplate(t),templates:te.value,onTemplateCreate:a[4]||=t=>e(W).createTemplate(t.name,t.content),onTemplateUpdate:a[5]||=t=>e(W).updateTemplate(t.id,{name:t.name,content:t.content}),onTemplateDelete:a[6]||=t=>e(W).deleteTemplate(t)},{banner:c(()=>[e(U).planLocked.value?(s(),i(`a`,{key:0,class:`upgrade-banner`,href:`#`,onClick:f(Y,[`prevent`])},[r(`span`,null,l(e(h)(`kanban.cloud.readOnlyNotice`)),1),r(`span`,N,l(e(h)(`kanban.cloud.upgradeCta`)),1)])):d(``,!0)]),_:1},8,[`boards`,`read-only`,`boards-limit`,`projects`,`current-project-id`,`mode`,`actions-target`,`load-flow`,`avatar-url`,`board-templates`,`templates`])):(s(),i(`div`,M,l(e(B)===`not-member`?e(h)(`kanban.cloud.orgNotAccessible`):e(h)(`kanban.cloud.noProjectOrg`)),1)):(s(),i(`div`,k,[a[7]||=r(`div`,{class:`connect-cta__badge`},[r(`i`,{class:`ti ti-layout-grid`})],-1),r(`h2`,A,l(e(h)(`kanban.cloud.notConnectedTitle`)),1),r(`p`,j,l(e(h)(`kanban.cloud.notConnectedDesc`)),1),t(e(m),{label:e(h)(`kanban.cloud.connectAction`),icon:`ti ti-cloud`,onClick:a[0]||=t=>e(L).push({name:`cloud-account`})},null,8,[`label`])]))]))}}),[[`__scopeId`,`data-v-756b9d7b`]]);export{P as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e,C as t}from"./reactivity.esm-bundler-BQ9SB2vv.js";import{Ct as n,D as r,E as i,Yt as a,_ as o,b as s,bt as c,ct as l,en as u,g as d,k as ee,mt as f,nn as p,o as m,qt as h,rn as g,v as _,y as v}from"./runtime-core.esm-bundler-DujKY9QV.js";import{n as te}from"./vue-i18n-o7yraQpR.js";import{n as ne}from"./project-launch.store-
|
|
1
|
+
import{B as e,C as t}from"./reactivity.esm-bundler-BQ9SB2vv.js";import{Ct as n,D as r,E as i,Yt as a,_ as o,b as s,bt as c,ct as l,en as u,g as d,k as ee,mt as f,nn as p,o as m,qt as h,rn as g,v as _,y as v}from"./runtime-core.esm-bundler-DujKY9QV.js";import{n as te}from"./vue-i18n-o7yraQpR.js";import{n as ne}from"./project-launch.store-Im5SMon9.js";import{g as re}from"./useApi-s_02lHjl-DZYO2tHU.js";import{G as ie,H as ae,J as oe,K as se,W as y,dt as b,ft as x}from"./src-Ck_MutzB.js";import{r as ce}from"./trpc-BQ0mLnfI.js";import{n as le}from"./project.store-CITAykC3.js";import{t as ue}from"./useProjectCatalog-CWHpf3Yj.js";import{r as S,t as de}from"./error-DpF7X5iu.js";import{r as fe}from"./cloud-session-w6eNQX1X.js";import{V as C}from"./index-mvpLwxNT.js";import{t as pe}from"./OrgKeyPrompt-DtgelhnI.js";import{t as me}from"./DirectoryPickerDialog-CVVg3SzI.js";import{t as he}from"./ProjectCreateDialog-Bko_A5wp.js";import{t as ge}from"./LaunchShell-CokT4E5l.js";var _e={key:0,class:`launch-loading`},ve={key:1,class:`launch-recent launch-stagger`},ye={class:`launch-recent__label`},be={key:0,class:`launch-split__main`},xe={key:1,class:`ti ti-device-desktop project-group__icon`},Se={class:`project-group__count`},Ce={class:`project-list`},we=[`aria-busy`,`onClick`],Te={class:`project-card__avatar`},w={key:1,class:`ti ti-folder`},T={class:`project-card__body`},E={class:`project-card__name`},D={class:`project-description`},O=[`title`],Ee={class:`project-card__meta`},De={class:`project-service-count`},Oe={key:1,class:`project-list__empty`},ke={key:1,class:`cloud-aside launch-stagger`,style:{"--stagger":1}},Ae={class:`cloud-aside__title`},je={class:`cloud-aside__text`},k=x(ee({__name:`LaunchProjectPage`,setup(ee){let x=re(),k=le(),A=ne(),{t:j}=te(),M=t(null),N=t(!0),P=ue(),F=t(``),I=t(``);function L(e,t){return`${e??`local`}:${t}`}let R=d(()=>{let e=[],t=k.projects.filter(e=>!e.orgId);e.push({key:`local`,label:j(`launchProject.groupLocal`),cloud:!1,projects:t.map(e=>({id:e.id,orgId:null,key:L(null,e.id),name:e.name,description:e.description,serviceCount:e.serviceIds.length}))});for(let t of P.orgGroups.value)e.push({key:t.orgId,label:t.name,cloud:!0,projects:t.projects.map(e=>{let n=k.getByRef({id:e.projectId,orgId:t.orgId});return{id:e.projectId,orgId:t.orgId,...t.accountId?{accountId:t.accountId}:{},key:L(t.orgId,e.projectId),name:e.name,description:n?.description??``,serviceCount:n?n.serviceIds.length:null}})});return e}),z=d(()=>{let e=new Map(R.value.flatMap(e=>e.projects).map(e=>[e.key,e]));return A.recentProjects.map(t=>e.get(L(t.orgId,t.id))).filter(e=>!!e)}),B=t({});async function V(){try{B.value=await ce.project.localPaths.query()}catch{}}l(async()=>{V(),await k.fetchAll(),N.value=!1,P.refreshCloud();let e=k.projects,t=A.getLastProjectId(),n=A.activeOrgId;t&&e.some(e=>e.id===t&&(e.orgId??null)===n)&&(M.value=L(n,t))});let H=d(()=>R.value.some(e=>e.projects.length>0)),U=t(``),Me=d(()=>{let e=U.value.trim().toLowerCase();return e?R.value.map(t=>({...t,projects:t.projects.filter(t=>t.name.toLowerCase().includes(e)||t.description.toLowerCase().includes(e))})).filter(e=>!e.cloud||e.projects.length>0):R.value}),Ne=d(()=>{let e=Me.value.map((e,t)=>({group:e,index:t}));return R.value.some(e=>e.cloud&&e.projects.length>0)?[{key:`local`,split:!1,groups:e.filter(e=>!e.group.cloud)},{key:`cloud`,split:!0,groups:e.filter(e=>e.group.cloud)}]:[{key:`local`,split:!0,groups:e}]}),W=t(null),G=t(!1),K=t(null),q=t(null),J=t(!1);async function Pe(e){if(I.value=``,e.status===`available`){K.value=null,q.value=e.path,G.value=!0;return}try{let t=await k.importLocal(e.path);await X({id:t.id,name:t.name,orgId:null})}catch(e){I.value=S(e,j)}}function Y(e){K.value=e.cloud?e.key:null,q.value=null,G.value=!0}async function X(e){V();let t=R.value.flatMap(e=>e.projects).find(t=>t.id===e.id&&t.orgId===e.orgId);t?await Z(t):await x.push(`/`)}async function Fe(){let e=W.value;W.value=null,e&&await Z(e.card)}async function Z(e){if(M.value=e.key,e.orgId!==null&&!k.getByRef({id:e.id,orgId:e.orgId})&&e.orgId){F.value=e.key,I.value=``;try{await P.pullProject(e.orgId,e.id,e.accountId)}catch(t){I.value=S(t,j),de(t)&&e.orgId&&(W.value={orgId:e.orgId,card:e});return}finally{F.value=``}}A.setActiveProject(e.id,e.orgId),x.push(`/launch/services`)}let{signIn:Ie}=fe(),Q=t(!1),$=t(``);async function Le(){Q.value=!0,$.value=``;try{await Ie()}catch{$.value=j(`launchProject.cloudUnreachable`),Q.value=!1}}return(t,l)=>{let d=n(`tooltip`);return f(),_(ge,{wide:``,title:e(j)(`launchProject.selectProject`),subtitle:e(j)(`launchProject.subtitle`)},{outside:h(()=>[r(pe,{"org-id":W.value?.orgId??null,reference:`cloud`,title:e(j)(`projectSwitcher.keyPromptTitle`),hint:e(j)(`projectSwitcher.keyPromptHint`),"confirm-label":e(j)(`projectSwitcher.keyPromptUse`),onClose:l[2]||=e=>W.value=null,onAdopted:Fe},null,8,[`org-id`,`title`,`hint`,`confirm-label`]),J.value?(f(),_(me,{key:0,visible:J.value,"onUpdate:visible":l[3]||=e=>J.value=e,mode:`local`,onLocalChosen:Pe},null,8,[`visible`])):v(``,!0),r(he,{visible:G.value,"onUpdate:visible":l[4]||=e=>G.value=e,"initial-target":K.value,"local-path":q.value,onCreated:X},null,8,[`visible`,`initial-target`,`local-path`])]),default:h(()=>[N.value?(f(),s(`div`,_e,[r(e(ae),{style:{width:`32px`,height:`32px`},"stroke-width":`4`})])):v(``,!0),I.value?(f(),_(e(y),{key:1,severity:`error`,class:`launch-error`},{default:h(()=>[i(g(I.value),1)]),_:1})):N.value?v(``,!0):(f(),s(m,{key:2},[H.value?(f(),_(e(se),{key:0,class:`launch-search launch-stagger`},{default:h(()=>[r(e(ie),{class:`ti ti-search`}),r(e(oe),{modelValue:U.value,"onUpdate:modelValue":l[0]||=e=>U.value=e,placeholder:e(j)(`launchProject.search`),"aria-label":e(j)(`launchProject.search`),fluid:``,"data-testid":`launch-project-search`},null,8,[`modelValue`,`placeholder`,`aria-label`])]),_:1})):v(``,!0),z.value.length&&!U.value.trim()?(f(),s(`div`,ve,[o(`span`,ye,g(e(j)(`launchProject.recent`)),1),(f(!0),s(m,null,c(z.value,t=>(f(),_(e(b),{key:t.key,label:t.name,icon:F.value===t.key?`ti ti-spin ti-loader-2`:`ti ti-history`,variant:`outlined`,size:`small`,disabled:!!F.value,onClick:e=>Z(t)},null,8,[`label`,`icon`,`disabled`,`onClick`]))),128))])):v(``,!0),(f(!0),s(m,null,c(Ne.value,t=>(f(),s(`div`,{key:t.key,class:u(t.split?[`launch-split`,{"launch-split--solo":!t.groups.length}]:`launch-row`)},[t.groups.length?(f(),s(`div`,be,[(f(!0),s(m,null,c(t.groups,({group:t,index:n})=>(f(),s(`section`,{key:t.key,class:`project-group`},[o(`h2`,{class:`project-group__title launch-stagger`,style:p({"--stagger":n*2})},[t.cloud?(f(),_(C,{key:0,"org-id":t.key,name:t.label,size:16},null,8,[`org-id`,`name`])):(f(),s(`i`,xe)),o(`span`,null,g(t.label),1),o(`span`,Se,g(t.projects.length),1),t.cloud?a((f(),_(e(b),{key:2,icon:`ti ti-plus`,variant:`text`,rounded:``,size:`small`,class:`project-group__create`,"aria-label":e(j)(`launchProject.createHere`,{group:t.label}),onClick:e=>Y(t)},null,8,[`aria-label`,`onClick`])),[[d,e(j)(`launchProject.createHere`,{group:t.label}),void 0,{bottom:!0}]]):v(``,!0)],4),o(`div`,Ce,[(f(!0),s(m,null,c(t.projects,(r,a)=>(f(),s(`button`,{key:r.key,type:`button`,class:u([`project-card launch-stagger`,{selected:M.value===r.key}]),style:p({"--stagger":n*2+a+1}),"aria-busy":F.value===r.key,onClick:e=>Z(r)},[o(`span`,Te,[r.orgId?(f(),_(C,{key:0,"org-id":r.orgId,name:t.label,size:20},null,8,[`org-id`,`name`])):(f(),s(`i`,w))]),o(`span`,T,[o(`span`,E,g(r.name),1),o(`span`,D,g(r.description||e(j)(`launchProject.noDescription`)),1),!r.orgId&&B.value[r.key]?(f(),s(`span`,{key:0,class:`project-card__path`,title:B.value[r.key]},[l[5]||=o(`i`,{class:`ti ti-folder-open`,"aria-hidden":`true`},null,-1),i(` `+g(B.value[r.key]),1)],8,O)):v(``,!0)]),o(`span`,Ee,[o(`span`,De,g(r.serviceCount===null?e(j)(`launchProject.notPulled`):e(j)(`launchProject.serviceCount`,r.serviceCount)),1),o(`i`,{class:u([`ti project-card__chevron`,F.value===r.key?`ti-spin ti-loader-2`:`ti-arrow-right`]),"aria-hidden":`true`},null,2)])],14,we))),128)),!t.cloud&&!U.value.trim()?(f(),_(e(b),{key:0,label:e(j)(`launchProject.importOrCreateLocal`),icon:`ti ti-folder-open`,variant:H.value?`outlined`:`filled`,fluid:``,"data-testid":`launch-import-or-create-local`,onClick:l[1]||=e=>J.value=!0},null,8,[`label`,`variant`])):v(``,!0),!t.projects.length&&(t.cloud||U.value.trim())?(f(),s(`p`,Oe,g(U.value.trim()?e(j)(`launchProject.noMatch`):e(j)(`launchProject.groupEmpty`)),1)):v(``,!0)])]))),128))])):v(``,!0),t.split?(f(),s(`aside`,ke,[l[6]||=o(`span`,{class:`cloud-aside__icon`,"aria-hidden":`true`},[o(`i`,{class:`ti ti-cloud`})],-1),o(`h2`,Ae,g(e(j)(`launchProject.missingTitle`)),1),o(`p`,je,g(e(j)(`launchProject.missingText`)),1),r(e(b),{loading:Q.value,label:e(j)(`launchProject.connectCloud`),icon:`ti ti-external-link`,fluid:``,class:`cloud-aside__action`,"data-testid":`launch-connect-cloud`,onClick:Le},null,8,[`loading`,`label`]),$.value?(f(),_(e(y),{key:0,severity:`error`},{default:h(()=>[i(g($.value),1)]),_:1})):v(``,!0)])):v(``,!0)],2))),128))],64))]),_:1},8,[`title`,`subtitle`])}}}),[[`__scopeId`,`data-v-07a89245`]]);export{k as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e,C as t}from"./reactivity.esm-bundler-BQ9SB2vv.js";import{D as n,E as r,_ as i,b as a,bt as o,ct as s,en as ee,ft as te,g as c,k as ne,mt as l,nn as re,o as u,qt as d,rn as f,v as p,y as m}from"./runtime-core.esm-bundler-DujKY9QV.js";import{n as ie}from"./vue-i18n-o7yraQpR.js";import{n as ae}from"./project-launch.store-
|
|
1
|
+
import{B as e,C as t}from"./reactivity.esm-bundler-BQ9SB2vv.js";import{D as n,E as r,_ as i,b as a,bt as o,ct as s,en as ee,ft as te,g as c,k as ne,mt as l,nn as re,o as u,qt as d,rn as f,v as p,y as m}from"./runtime-core.esm-bundler-DujKY9QV.js";import{n as ie}from"./vue-i18n-o7yraQpR.js";import{n as ae}from"./project-launch.store-Im5SMon9.js";import{g as oe}from"./useApi-s_02lHjl-DZYO2tHU.js";import{G as se,H as ce,J as le,K as ue,O as h,P as de,W as fe,dt as g,ft as _}from"./src-Ck_MutzB.js";import{a as pe}from"./app-mode-BVpTuh0i.js";import{n as me}from"./project.store-CITAykC3.js";import{r as he}from"./error-DpF7X5iu.js";import{t as ge}from"./service.store-CZJuuJiv.js";import{t as _e}from"./agent.store-B6OM7edC.js";import{n as ve,r as ye}from"./process-BWkHpZOM.js";import{c as be}from"./index-mvpLwxNT.js";import{t as xe}from"./ProjectLocationGate-jsy8WetY.js";import{t as v}from"./LaunchShell-CokT4E5l.js";var y={key:0,class:`launch-loading`},b={key:1,class:`launch-empty launch-stagger`},x={class:`empty-message`},S={class:`services-toolbar launch-stagger`,style:{"--stagger":1}},C={class:`service-list`},w=[`for`],T={class:`group-label`},E={class:`group-count`},D=[`for`],O={class:`service-info`},k={class:`service-name`},A={class:`service-command`},j={class:`service-runner`},M={key:0,class:`launch-actions`},Se={class:`launch-actions__count`},N=`__all__`,P=_(ne({__name:`LaunchServicesPage`,setup(ne){let _=oe(),P=de(),{t:F}=ie(),I=ae(),L=me(),R=ge(),z=_e(),B=be(),V=t(!0),H=t(!1),U=t([]),W=t(``),G=c(()=>L.currentProject),K=I.activeProjectId,q=I.activeRef(),J=c(()=>G.value?R.getByIds(G.value.serviceIds):[]),Y=c(()=>{if(!W.value)return J.value;let e=W.value.toLowerCase();return J.value.filter(t=>t.name.toLowerCase().includes(e)||(t.commands??[]).some(t=>t.command.toLowerCase().includes(e)))}),Ce=c(()=>{let e=new Map;for(let t of Y.value){let n=t.groups&&t.groups.length>0?t.groups:[N];for(let r of n){let n=e.get(r);n?n.push(t):e.set(r,[t])}}let t=G.value?.groupOrder??[],n=e=>{let n=t.indexOf(e);return n===-1?2**53-1:n},r=[...e.entries()].filter(([e])=>e!==N).sort(([e],[t])=>{let r=n(e),i=n(t);return r===i?e.localeCompare(t):r-i}).map(([e,t])=>({key:e,label:e,services:t})),i=e.get(N);return i&&i.length>0&&r.push({key:N,label:F(`launchServices.defaultGroup`),services:i}),r}),X=c(()=>J.value.length!==0&&J.value.every(e=>U.value.includes(e.id)));function Z(e){return e.services.length>0&&e.services.every(e=>U.value.includes(e.id))}function we(e){let t=e.services.map(e=>e.id);if(Z(e))U.value=U.value.filter(e=>!t.includes(e));else{let e=new Set(U.value);for(let n of t)e.add(n);U.value=[...e]}}let Q=c(()=>z.connectedAgents.length>0);s(async()=>{if(!K){_.replace(`/launch/project`);return}if(await Promise.all([L.fetchAll(),R.fetchAll(),z.fetchAll(),B.fetchAll()]),G.value){let e=ve(B.processes);if(G.value.serviceIds.some(t=>e.has(t))){I.completeLaunch(),_.replace(`/`);return}}if(z.subscribeStatus(),V.value=!1,G.value){let e=q?I.getSavedSelection(q):[],t=new Set(G.value.serviceIds);U.value=e.filter(e=>t.has(e))}}),te(()=>{z.unsubscribeStatus()});function Te(){X.value?U.value=[]:U.value=J.value.map(e=>e.id)}async function Ee(){if(!K||U.value.length===0)return;q&&I.saveSelection(q,U.value),I.completeLaunch(),_.push(`/`);let e=[];await Promise.all(U.value.map(async t=>{let n=R.services.find(e=>e.id===t);if(!n){e.push(`Service ${t} not found`);return}try{await B.start(ye(n)??``,n.id)}catch(t){e.push(he(t,F))}})),e.length>0&&P.add({severity:`warn`,summary:F(`launchServices.someServicesFailed`),detail:e.join(`; `),life:5e3})}function $(){K&&q&&I.saveSelection(q,U.value),I.completeLaunch(),_.push(`/`)}let{lockedProjectId:De}=pe();function Oe(){_.push(`/launch/project`)}return(t,s)=>(l(),p(v,{title:e(F)(`launchServices.selectServices`),subtitle:G.value?.name},{"before-mark":d(()=>[e(De)?m(``,!0):(l(),p(e(g),{key:0,icon:`ti ti-arrow-left`,label:e(F)(`actions.back`),variant:`text`,size:`small`,severity:`secondary`,class:`launch-back`,onClick:Oe},null,8,[`label`]))]),outside:d(()=>[!V.value&&J.value.length>0?(l(),a(`div`,M,[i(`span`,Se,f(e(F)(`launchServices.selectedCount`,U.value.length)),1),n(e(g),{label:e(F)(`launchServices.skip`),severity:`secondary`,variant:`text`,disabled:H.value,onClick:$},null,8,[`label`,`disabled`]),n(e(g),{label:e(F)(`launchServices.launch`),icon:`ti ti-player-play`,loading:H.value,disabled:U.value.length===0||!Q.value,class:`launch-actions__primary`,onClick:Ee},null,8,[`label`,`loading`,`disabled`])])):m(``,!0),n(xe)]),default:d(()=>[V.value?(l(),a(`div`,y,[n(e(ce),{style:{width:`32px`,height:`32px`},"stroke-width":`4`})])):J.value.length===0?(l(),a(`div`,b,[i(`p`,x,f(e(F)(`launchServices.noServices`)),1),n(e(g),{label:e(F)(`launchServices.skip`),icon:`ti ti-arrow-right`,"icon-pos":`right`,class:`launch-action`,onClick:$},null,8,[`label`])])):(l(),a(u,{key:2},[Q.value?m(``,!0):(l(),p(e(fe),{key:0,severity:`warn`,class:`launch-warning launch-stagger`},{default:d(()=>[r(f(e(F)(`launchServices.noAgents`)),1)]),_:1})),i(`div`,S,[n(e(ue),{class:`services-search`},{default:d(()=>[n(e(se),{class:`ti ti-search`}),n(e(le),{modelValue:W.value,"onUpdate:modelValue":s[0]||=e=>W.value=e,placeholder:e(F)(`launchServices.filter`),fluid:``},null,8,[`modelValue`,`placeholder`])]),_:1}),n(e(g),{label:X.value?e(F)(`launchServices.deselectAll`):e(F)(`launchServices.selectAll`),variant:`text`,size:`small`,onClick:Te},null,8,[`label`])]),i(`div`,C,[(l(!0),a(u,null,o(Ce.value,(t,r)=>(l(),a(`section`,{key:t.key,class:`service-group launch-stagger`,style:re({"--stagger":r+2})},[i(`label`,{class:`group-header`,for:`launch-group-`+t.key},[n(e(h),{inputId:`launch-group-`+t.key,"model-value":Z(t),binary:``,"onUpdate:modelValue":e=>we(t)},null,8,[`inputId`,`model-value`,`onUpdate:modelValue`]),i(`span`,T,f(t.label),1),i(`span`,E,f(t.services.length),1)],8,w),(l(!0),a(u,null,o(t.services,r=>(l(),a(`label`,{key:t.key+`:`+r.id,class:ee([`service-item`,{selected:U.value.includes(r.id)}]),for:`launch-svc-`+t.key+`:`+r.id},[n(e(h),{inputId:`launch-svc-`+t.key+`:`+r.id,modelValue:U.value,"onUpdate:modelValue":s[1]||=e=>U.value=e,value:r.id},null,8,[`inputId`,`modelValue`,`value`]),i(`span`,O,[i(`span`,k,f(r.name),1),i(`span`,A,f((r.commands??[]).map(e=>e.label||e.command).join(`, `)||e(F)(`launchServices.noCommands`)),1)]),i(`span`,j,f(r.runner),1)],10,D))),128))],4))),128))])],64))]),_:1},8,[`title`,`subtitle`]))}}),[[`__scopeId`,`data-v-6b9f7217`]]);export{P as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{D as e,_ as t,b as n,en as r,k as i,mt as a,rn as o,xt as s,y as c}from"./runtime-core.esm-bundler-DujKY9QV.js";import{ft as l}from"./src-Ck_MutzB.js";import{n as u,t as d}from"./VersionBadge-
|
|
1
|
+
import{D as e,_ as t,b as n,en as r,k as i,mt as a,rn as o,xt as s,y as c}from"./runtime-core.esm-bundler-DujKY9QV.js";import{ft as l}from"./src-Ck_MutzB.js";import{n as u,t as d}from"./VersionBadge-CXJ-2h5V.js";var f={class:`launch-page`,"data-testid":`page-content`},p={class:`launch-branding`},m={class:`launch-title`},h={key:0,class:`launch-subtitle`},g=l(i({__name:`LaunchShell`,props:{title:{},subtitle:{},wide:{type:Boolean}},setup(i){return(l,g)=>(a(),n(`div`,f,[t(`div`,{class:r([`launch-container`,{"launch-container--wide":i.wide}])},[t(`header`,p,[s(l.$slots,`before-mark`,{},void 0,!0),e(u,{class:`launch-mark`}),t(`h1`,m,o(i.title),1),i.subtitle?(a(),n(`p`,h,o(i.subtitle),1)):c(``,!0)]),s(l.$slots,`default`,{},void 0,!0)],2),s(l.$slots,`outside`,{},void 0,!0),e(d)]))}}),[[`__scopeId`,`data-v-0ff0b7cd`]]);export{g as t};
|