@highstate/designer 0.30.2 → 0.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{BWDN-9Hx.js → 01ZR8FKx.js} +1 -1
  3. package/.output/public/_nuxt/{Cofyfw8g.js → 0MzBjiBY.js} +1 -1
  4. package/.output/public/_nuxt/{VQuDbHHR.js → 4vGmo7Ws.js} +1 -1
  5. package/.output/public/_nuxt/{Lo988ya0.js → AKCe9LNp.js} +1 -1
  6. package/.output/public/_nuxt/B7roF3kx.js +1 -0
  7. package/.output/public/_nuxt/{DhjMLkwg.js → B9ZfIHZw.js} +1 -1
  8. package/.output/public/_nuxt/{Ct3ssWsd.js → BASNc1ws.js} +1 -1
  9. package/.output/public/_nuxt/{CJVpO6nQ.js → BCJUQ-QU.js} +1 -1
  10. package/.output/public/_nuxt/{C7lm33JZ.js → BDLjTA3_.js} +1 -1
  11. package/.output/public/_nuxt/{DysjCpM9.js → BHpMD-mY.js} +1 -1
  12. package/.output/public/_nuxt/BKWHojhU.js +1 -0
  13. package/.output/public/_nuxt/{DsxZEVxb.js → BLfHOckY.js} +7 -7
  14. package/.output/public/_nuxt/{2jnOiqNC.js → BNEHDwNV.js} +1 -1
  15. package/.output/public/_nuxt/BOtPOJrV.js +1 -0
  16. package/.output/public/_nuxt/{k0GHL-8U.js → BQvzkDFt.js} +1 -1
  17. package/.output/public/_nuxt/{DmGf47KM.js → BVxJafKI.js} +1 -1
  18. package/.output/public/_nuxt/BhtYnCk1.js +1 -0
  19. package/.output/public/_nuxt/{5-u3YHQd.js → BipPPoWE.js} +1 -1
  20. package/.output/public/_nuxt/{CW9RwN2l.js → Bkhf7GZT.js} +1 -1
  21. package/.output/public/_nuxt/{D3MpZ_Sw.js → BnH0SUiF.js} +1 -1
  22. package/.output/public/_nuxt/{BwBpcI2q.js → BrgLtl1N.js} +1 -1
  23. package/.output/public/_nuxt/BscvYf-N.js +2 -0
  24. package/.output/public/_nuxt/BsfH1i0r.js +1 -0
  25. package/.output/public/_nuxt/{3RbcgHkU.js → Btw6kqCM.js} +1 -1
  26. package/.output/public/_nuxt/{DcDfdgW1.js → BuVA3kO7.js} +1 -1
  27. package/.output/public/_nuxt/{Bc-UhGEo.js → BvF6CC6t.js} +1 -1
  28. package/.output/public/_nuxt/{aPAh1oAW.js → BvcB3_Ox.js} +1 -1
  29. package/.output/public/_nuxt/{SCrI01L1.js → Bw8W7XlP.js} +1 -1
  30. package/.output/public/_nuxt/{D6EnKPw6.js → ByVvJoFt.js} +1 -1
  31. package/.output/public/_nuxt/{DZH0GUvg.js → BzHexD0k.js} +1 -1
  32. package/.output/public/_nuxt/{A3pA-dEU.js → BzfFclT9.js} +1 -1
  33. package/.output/public/_nuxt/{CSWVWBW7.js → C0QrjxaL.js} +1 -1
  34. package/.output/public/_nuxt/{D-LsJ2ZE.js → C3Nw-pxO.js} +1 -1
  35. package/.output/public/_nuxt/C3dDboVU.js +1 -0
  36. package/.output/public/_nuxt/{CbVegJaT.js → C50Jf3QI.js} +1 -1
  37. package/.output/public/_nuxt/{DXfLpys7.js → C9U9g4dI.js} +1 -1
  38. package/.output/public/_nuxt/{CNrxBMAX.js → C9khB4Xk.js} +1 -1
  39. package/.output/public/_nuxt/{Cq4nuP-7.js → CAqURRGH.js} +1 -1
  40. package/.output/public/_nuxt/{CZyQa1Zc.js → CBtqoa0c.js} +1 -1
  41. package/.output/public/_nuxt/CEY3Obon.js +1 -0
  42. package/.output/public/_nuxt/{Dr_haoD_.js → CFMSQg2L.js} +1 -1
  43. package/.output/public/_nuxt/{DKbLex6i.js → CHVFVVjA.js} +1 -1
  44. package/.output/public/_nuxt/{hvsd0Qgg.js → CJnh15-L.js} +1 -1
  45. package/.output/public/_nuxt/{DsRcdFOB.js → CQ57LN-w.js} +1 -1
  46. package/.output/public/_nuxt/{CAGxZJ_q.js → CVCvRHBP.js} +1 -1
  47. package/.output/public/_nuxt/{B3xH1Y0W.js → Cc4wgJ1h.js} +1 -1
  48. package/.output/public/_nuxt/{DwfxqiyB.js → CcDGEY8Q.js} +1 -1
  49. package/.output/public/_nuxt/{DgMGRJzb.js → CcgfvGG3.js} +1 -1
  50. package/.output/public/_nuxt/{BxFuzIIZ.js → Cn0h663F.js} +1 -1
  51. package/.output/public/_nuxt/{DmVwOSq5.js → CqCN84b-.js} +1 -1
  52. package/.output/public/_nuxt/{DyhJj7Ha.js → CrAApG3c.js} +1 -1
  53. package/.output/public/_nuxt/{LC_ejPos.js → CvFUo4Re.js} +1 -1
  54. package/.output/public/_nuxt/{Doxnvpyq.js → Cy6PxgoV.js} +1 -1
  55. package/.output/public/_nuxt/{EKqCuazP.js → D2UhOMoe.js} +1 -1
  56. package/.output/public/_nuxt/{Dpa6A3ZD.js → D3W9Jfu7.js} +1 -1
  57. package/.output/public/_nuxt/{zQpq8Nlt.js → D4O2OVDh.js} +1 -1
  58. package/.output/public/_nuxt/{DGnuSaKc.js → D6CGQiZp.js} +1 -1
  59. package/.output/public/_nuxt/{JoXnlJ5o.js → D84zi-ec.js} +1 -1
  60. package/.output/public/_nuxt/D8M0limG.js +1 -0
  61. package/.output/public/_nuxt/{CPTDoFCr.js → DDJReq2V.js} +1 -1
  62. package/.output/public/_nuxt/{DZXawbDK.js → DEI-Qge8.js} +1 -1
  63. package/.output/public/_nuxt/{CriYd4Xu.js → DKWb1hup.js} +1 -1
  64. package/.output/public/_nuxt/{CC9Mjlxx.js → DQ-NJtj8.js} +1 -1
  65. package/.output/public/_nuxt/{D7ydzmTA.js → DRhnxQ4y.js} +1 -1
  66. package/.output/public/_nuxt/{_c6GHTN4.js → DTSgpdAF.js} +1 -1
  67. package/.output/public/_nuxt/{DEdaEI2J.js → DXmPWjsX.js} +1 -1
  68. package/.output/public/_nuxt/{O5iT7Vr2.js → DYnMeE8e.js} +1 -1
  69. package/.output/public/_nuxt/{BKZ346WY.js → DfDsDJD2.js} +1 -1
  70. package/.output/public/_nuxt/{u9IB9fko.js → DjTKfsHU.js} +1 -1
  71. package/.output/public/_nuxt/{C7Ij7g1p.js → DlfNK0cA.js} +1 -1
  72. package/.output/public/_nuxt/{DH_B79BE.js → DpUEzsMu.js} +1 -1
  73. package/.output/public/_nuxt/{Eovi5v4f.js → DrfPDWCl.js} +2 -2
  74. package/.output/public/_nuxt/{Bsca_muP.js → Dtu55PAv.js} +2 -2
  75. package/.output/public/_nuxt/DvLL-V6a.js +1 -0
  76. package/.output/public/_nuxt/{B2Q2xBzH.js → Dz1kPrb2.js} +1 -1
  77. package/.output/public/_nuxt/DzP42O4c.js +1 -0
  78. package/.output/public/_nuxt/DzlC1Z8c.js +1 -0
  79. package/.output/public/_nuxt/{BYaYzU2p.js → H3fZkrEW.js} +1 -1
  80. package/.output/public/_nuxt/SVmeI-Hd.js +1 -0
  81. package/.output/public/_nuxt/{BzOk-KTc.js → UY6IumFv.js} +1 -1
  82. package/.output/public/_nuxt/{CVfWNyhe.js → Ztua2i2Y.js} +1 -1
  83. package/.output/public/_nuxt/builds/latest.json +1 -1
  84. package/.output/public/_nuxt/builds/meta/1548c3a0-586d-4ea6-8f99-85c2e41a6384.json +1 -0
  85. package/.output/public/_nuxt/{C4hwWhkw.js → d5T4DP7z.js} +4 -4
  86. package/.output/public/_nuxt/{DkZkynzL.js → iHlZS5Nr.js} +1 -1
  87. package/.output/public/_nuxt/{BSawHEJh.js → iX982afC.js} +1 -1
  88. package/.output/public/_nuxt/{D1nRrnR_.js → kwdF6vE0.js} +1 -1
  89. package/.output/public/_nuxt/{DS4ev0Th.js → mUQQEHsz.js} +1 -1
  90. package/.output/public/_nuxt/{Deh8i6lm.js → oLJXBT2A.js} +1 -1
  91. package/.output/public/_nuxt/{B8N1sP4y.js → rErpME9V.js} +1 -1
  92. package/.output/public/_nuxt/ue1Ve9YE.js +1 -0
  93. package/.output/public/_nuxt/{y7qbSnME.js → xdzoAViU.js} +1 -1
  94. package/.output/public/_nuxt/{BExqDRwH.js → zcI5daFe.js} +1 -1
  95. package/.output/public/_nuxt/{DqaT_RDK.js → zzNAWI73.js} +1 -1
  96. package/.output/server/index.mjs +1263 -1257
  97. package/.output/server/package.json +1 -1
  98. package/package.json +1 -1
  99. package/.output/public/_nuxt/352AptFn.js +0 -1
  100. package/.output/public/_nuxt/BuIQ2wGk.js +0 -1
  101. package/.output/public/_nuxt/C-mYaH7u.js +0 -1
  102. package/.output/public/_nuxt/C2i4Pe8_.js +0 -1
  103. package/.output/public/_nuxt/CFc9rdAS.js +0 -2
  104. package/.output/public/_nuxt/CYKlIh8L.js +0 -1
  105. package/.output/public/_nuxt/DJwAKlaO.js +0 -1
  106. package/.output/public/_nuxt/DOo85agn.js +0 -1
  107. package/.output/public/_nuxt/DT8lV676.js +0 -1
  108. package/.output/public/_nuxt/DXVNaud5.js +0 -1
  109. package/.output/public/_nuxt/Desw6Usx.js +0 -1
  110. package/.output/public/_nuxt/builds/meta/1650eab6-34df-4e48-8781-d470432f4280.json +0 -1
  111. package/.output/public/_nuxt/dYgxrjeZ.js +0 -1
  112. package/.output/public/_nuxt/mxKUVBjZ.js +0 -1
  113. package/.output/public/_nuxt/p1qmzON1.js +0 -1
@@ -0,0 +1 @@
1
+ import{D as P,s as E,E as L,P as H,n as O}from"#entry";import{E as R,aP as I,Y as f,_ as h,D as t,V as m,a2 as s,a6 as U,W as g,Z as S,$ as W,a0 as y,ak as $,a as A,aX as F,a1 as j,a7 as J,J as M,r as X,j as b}from"./-NXdyIEV.js";import"./DlfNK0cA.js";import{S as Y}from"./DXmPWjsX.js";import{I as Z}from"./Dtu55PAv.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./4vGmo7Ws.js";import"./D9y446qR.js";import"./zPZwXEME.js";const q={class:"d-flex align-center justify-space-between mb-4",style:{"flex-shrink":"0"}},G={class:"d-flex align-center"},K={class:"text-subtitle-1 font-weight-medium"},Q={style:{flex:"1","min-height":"0","overflow-y":"auto"}},ee={class:"mr-2"},te=["onClick"],oe={class:"d-flex flex-column flex-grow-1 mr-4"},ne={key:0,class:"text-caption text-medium-emphasis"},he=R({__name:"index",async setup(ie){let c,l;const{projectStore:d,instancesStore:_,libraryStore:k,stateStore:x,validationStore:V,infoStore:r}=P();d.initializing?([c,l]=I(()=>L(()=>d.initialized).toBe(!0)),await c,l(),d.addLibraryRoot()):([c,l]=I(()=>d.initialize1()),await c,l(),[c,l]=I(()=>d.initialize2()),await c,l());const p=X(""),z=E(p,300),D=b(()=>{const o=[..._.instances.values()],n=z.value.toLowerCase().trim(),e=(n?o.filter(i=>i.id.includes(n)):o).map(i=>{const a=k.library.components[i.type];return{...i,meta:{title:a.meta.title,description:i.name,color:a.meta.color,icon:a.meta.icon??"iconamoon:component",iconColor:a.meta.iconColor,secondaryIcon:a.meta.secondaryIcon,secondaryIconColor:a.meta.secondaryIconColor}}}),u=e.filter(i=>!i.parentId),w=i=>i.map(a=>{const C=e.filter(N=>N.parentId===a.id);return{...a,children:C.length>0?w(C):void 0}});return w(u)}),B=b(()=>{if(!r.projectInfo)return[];const o=r.projectInfo;return[{id:o.id,meta:{title:o.meta.title||o.name,description:o.id,icon:o.meta.icon||"mdi-folder-outline",iconColor:o.meta.iconColor},children:D.value}]}),T=o=>{if(o.id===r.projectInfo?.id)return;const n=x.getInstanceState(o.id);n&&O({name:"settings.instance-details",params:{projectId:d.projectId,stateId:n.id}})};return(o,n)=>(m(),f(t(Y),{title:"Instances",icon:"mdi-cube-outline",description:"View and manage instances created in this project."},{default:h(({height:v})=>[s("div",{class:"instances-tree",style:U({height:v,display:"flex",flexDirection:"column"})},[s("div",q,[s("div",G,[g(S,{class:"mr-2"},{default:h(()=>[...n[1]||(n[1]=[W("mdi-format-list-bulleted",-1)])]),_:1}),s("span",K,y(t(_).instances.size)+" instance "+y(t(_).instances.size===1?"":"s"),1)]),g($,{modelValue:t(p),"onUpdate:modelValue":n[0]||(n[0]=e=>A(p)?p.value=e:null),"prepend-inner-icon":"mdi-magnify",placeholder:"Search instances...",variant:"outlined",density:"compact",clearable:"","hide-details":"",style:{"max-width":"300px"}},null,8,["modelValue"])]),s("div",Q,[g(F,{items:t(B),"item-title":"meta.title","item-value":"id","open-strategy":"multiple","select-strategy":"independent",density:"compact","indent-lines":"",opened:[t(r).projectInfo?.id]},{prepend:h(({item:e,isOpen:u})=>[s("div",ee,[e.id!==t(r).projectInfo?.id?(m(),f(t(Z),{key:0,state:t(x).instanceStates.get(e.id),"expected-input-hash":t(x).inputHashOutputs.get(e.id)?.inputHash,"validation-output":t(V).validationOutputs.get(e.id)},null,8,["state","expected-input-hash","validation-output"])):(m(),f(S,{key:1,icon:u?"mdi-folder-open-outline":"mdi-folder-outline",size:"20",color:e.meta.iconColor},null,8,["icon","color"]))])]),title:h(({item:e})=>[s("div",{class:"d-flex align-center flex-grow-1",style:{cursor:"pointer"},onClick:u=>T(e)},[e.meta.icon&&e.id!==t(r).projectInfo?.id?(m(),f(t(H),{key:0,icon:e.meta.icon,color:e.meta.iconColor,width:"24",class:"mr-3"},null,8,["icon","color"])):j("",!0),s("div",oe,[s("div",{class:J(["font-weight-medium",e.id===t(r).projectInfo?.id?"text-h6":"text-body-1"])},y(e.meta.title||"Unnamed"),3),e.meta.description?(m(),M("div",ne,y(e.meta.description),1)):j("",!0)])],8,te)]),_:1},8,["items","opened"])])],4)]),_:1}))}});export{he as default};
@@ -1 +1 @@
1
- import{C as x}from"./A3pA-dEU.js";import{E as h,V as g,Y as y,ai as S,a6 as C,D as f,_ as d,a5 as c,W as k,j as p}from"./-NXdyIEV.js";const v={done:!1,hasNext:!1};function B(e,...o){let a=e,t=o.map(l=>"lazy"in l?w(l):void 0),n=0;for(;n<o.length;){if(t[n]===void 0||!N(a)){let r=o[n];a=r(a),n+=1;continue}let l=[];for(let r=n;r<o.length;r++){let i=t[r];if(i===void 0||(l.push(i),i.isSingle))break}let s=[];for(let r of a)if(b(r,s,l))break;let{isSingle:u}=l.at(-1);a=u?s[0]:s,n+=l.length}return a}function b(e,o,a){if(a.length===0)return o.push(e),!1;let t=e,n=v,l=!1;for(let[s,u]of a.entries()){let{index:r,items:i}=u;if(i.push(t),n=u(t,r,i),u.index+=1,n.hasNext){if(n.hasMany??!1){for(let m of n.next)if(b(m,o,a.slice(s+1)))return!0;return l}t=n.next}if(!n.hasNext)break;n.done&&(l=!0)}return n.hasNext&&o.push(t),l}function w(e){let{lazy:o,lazyArgs:a}=e,t=o(...a);return Object.assign(t,{isSingle:o.single??!1,index:0,items:[]})}function N(e){return typeof e=="string"||typeof e=="object"&&!!e&&Symbol.iterator in e}const F=h({__name:"ComponentCard",props:{component:{},subtitle:{},text:{},blueprintStatus:{default:"default"},selected:{type:Boolean,default:!1}},setup(e){const o=p(()=>{const t={borderRadius:"4px"};switch(e.blueprintStatus){case"blueprint-valid":return{...t,opacity:"0.7",outline:"2px solid #4CAF50",backgroundColor:"rgba(76, 175, 80, 0.1)",boxShadow:"0 0 10px rgba(76, 175, 80, 0.3)"};case"blueprint-invalid":return{...t,opacity:"0.7",outline:"2px solid #F44336",backgroundColor:"rgba(244, 67, 54, 0.1)",boxShadow:"0 0 10px rgba(244, 67, 54, 0.3)"}}return e.selected?{...t,outline:"2px solid #2196F3",boxShadow:"0 0 8px rgba(33, 150, 243, 0.4)"}:t}),a=p(()=>e.blueprintStatus!=="default"?"#424242":e.component.meta.color??"#2d2d2d");return(t,n)=>(g(),y(S,{width:360,title:e.component.meta.title,subtitle:e.subtitle,text:e.text,color:f(a),style:C(f(o)),variant:"flat"},{prepend:d(()=>[k(x,{meta:e.component.meta},null,8,["meta"])]),append:d(()=>[c(t.$slots,"append")]),default:d(()=>[c(t.$slots,"default")]),_:3},8,["title","subtitle","text","color","style"]))}});export{F as _,v as a,B as t};
1
+ import{C as x}from"./BzfFclT9.js";import{E as h,V as g,Y as y,ai as S,a6 as C,D as f,_ as d,a5 as c,W as k,j as p}from"./-NXdyIEV.js";const v={done:!1,hasNext:!1};function B(e,...o){let a=e,t=o.map(l=>"lazy"in l?w(l):void 0),n=0;for(;n<o.length;){if(t[n]===void 0||!N(a)){let r=o[n];a=r(a),n+=1;continue}let l=[];for(let r=n;r<o.length;r++){let i=t[r];if(i===void 0||(l.push(i),i.isSingle))break}let s=[];for(let r of a)if(b(r,s,l))break;let{isSingle:u}=l.at(-1);a=u?s[0]:s,n+=l.length}return a}function b(e,o,a){if(a.length===0)return o.push(e),!1;let t=e,n=v,l=!1;for(let[s,u]of a.entries()){let{index:r,items:i}=u;if(i.push(t),n=u(t,r,i),u.index+=1,n.hasNext){if(n.hasMany??!1){for(let m of n.next)if(b(m,o,a.slice(s+1)))return!0;return l}t=n.next}if(!n.hasNext)break;n.done&&(l=!0)}return n.hasNext&&o.push(t),l}function w(e){let{lazy:o,lazyArgs:a}=e,t=o(...a);return Object.assign(t,{isSingle:o.single??!1,index:0,items:[]})}function N(e){return typeof e=="string"||typeof e=="object"&&!!e&&Symbol.iterator in e}const F=h({__name:"ComponentCard",props:{component:{},subtitle:{},text:{},blueprintStatus:{default:"default"},selected:{type:Boolean,default:!1}},setup(e){const o=p(()=>{const t={borderRadius:"4px"};switch(e.blueprintStatus){case"blueprint-valid":return{...t,opacity:"0.7",outline:"2px solid #4CAF50",backgroundColor:"rgba(76, 175, 80, 0.1)",boxShadow:"0 0 10px rgba(76, 175, 80, 0.3)"};case"blueprint-invalid":return{...t,opacity:"0.7",outline:"2px solid #F44336",backgroundColor:"rgba(244, 67, 54, 0.1)",boxShadow:"0 0 10px rgba(244, 67, 54, 0.3)"}}return e.selected?{...t,outline:"2px solid #2196F3",boxShadow:"0 0 8px rgba(33, 150, 243, 0.4)"}:t}),a=p(()=>e.blueprintStatus!=="default"?"#424242":e.component.meta.color??"#2d2d2d");return(t,n)=>(g(),y(S,{width:360,title:e.component.meta.title,subtitle:e.subtitle,text:e.text,color:f(a),style:C(f(o)),variant:"flat"},{prepend:d(()=>[k(x,{meta:e.component.meta},null,8,["meta"])]),append:d(()=>[c(t.$slots,"append")]),default:d(()=>[c(t.$slots,"default")]),_:3},8,["title","subtitle","text","color","style"]))}});export{F as _,v as a,B as t};
@@ -1 +1 @@
1
- import{v as L,_ as W,z as Y,A as F}from"#entry";import{V as G,s as J}from"./D4_5UqG-.js";import{_ as Q}from"./CriYd4Xu.js";import{E as H,aG as X,w as Z,V as I,Y as N,_ as c,W as s,ai as h,aj as _,aU as ee,aV as D,a2 as V,ak as T,a as g,D as r,aW as te,aN as ae,aI as ie,$ as w,a1 as se,as as le,aJ as ne,aK as re,at as B,ah as oe,aO as q,r as y,j as m,u as ue}from"./-NXdyIEV.js";import"./C7Ij7g1p.js";const ce={class:"builder"},de={class:"preview"},me=H({__name:"BackendApiKeyDialog",props:q({apiKey:{},serviceAccounts:{},restrictionOptions:{},loading:{type:Boolean}},{visible:{type:Boolean,required:!0},visibleModifiers:{}}),emits:q(["save"],["update:visible"]),setup(a,{emit:p}){const v=X(a,"visible"),A=p,d=y(""),l=y(""),o=y(),u=y(""),n=y([]),O=m(()=>J(n.value)),x=m(()=>a.serviceAccounts.find(i=>i.id===o.value)?.rules??[]),j=m(()=>!!d.value.trim()),R=m(()=>a.serviceAccounts.some(i=>i.id===o.value)),U=m(()=>!u.value||!Number.isNaN(new Date(u.value).getTime())),k=m(()=>n.value.length===0||L.safeParse(n.value).success),S=m(()=>n.value.length===0||n.value.every(i=>i.permissions.every(e=>x.value.some(t=>t.permissions.includes(e)&&P(t,i))))),K=m(()=>j.value&&R.value&&U.value&&k.value&&S.value);Z(()=>[v.value,a.apiKey,a.serviceAccounts],()=>{v.value&&(d.value=a.apiKey?.meta.title??"",l.value=a.apiKey?.meta.description??"",o.value=a.apiKey?.serviceAccountId??a.serviceAccounts.find(i=>i.systemName==="admin")?.id,u.value=a.apiKey?.expiresAt?E(a.apiKey.expiresAt):"",n.value=a.apiKey?.restrictionRules??[])},{immediate:!0});function E(i){const e=new Date(i),t=e.getTimezoneOffset()*6e4;return new Date(e.getTime()-t).toISOString().slice(0,16)}function M(){!K.value||!o.value||A("save",{meta:{title:d.value.trim(),description:l.value.trim()||void 0},serviceAccountId:o.value,restrictionRules:n.value,expiresAt:u.value?new Date(u.value):null})}function $(i){o.value=i,n.value=[]}function P(i,e){return i.restrictions?e.restrictions?i.restrictions.every(t=>{const f=e.restrictions?.find(b=>b.type===t.type);if(!f)return!1;const z=C(t);return C(f).every(b=>z.includes(b))&&(!("recursive"in f)||!f.recursive||"recursive"in t&&t.recursive)}):!1:!0}function C(i){switch(i.type){case"resources":return i.resourceIds;case"projects":return i.projectIds;case"project-spaces":case"projects-in-spaces":return i.projectSpaceIds}}return(i,e)=>(I(),N(oe,{modelValue:v.value,"onUpdate:modelValue":e[5]||(e[5]=t=>v.value=t),"max-width":"1200",class:"api-key-dialog"},{default:c(()=>[s(h,{title:a.apiKey?"Edit backend API key":"Create backend API key"},{default:c(()=>[s(_,{class:"content"},{default:c(()=>[s(ee,{"no-gutters":"",class:"fill-height"},{default:c(()=>[s(D,{cols:"12",md:"6",class:"pr-md-4 column"},{default:c(()=>[e[7]||(e[7]=V("div",{class:"text-overline mb-2"},"Metadata",-1)),s(T,{modelValue:r(d),"onUpdate:modelValue":e[0]||(e[0]=t=>g(d)?d.value=t:null),class:"flex-grow-0",label:"Title",variant:"outlined",density:"compact",rules:[t=>!!t?.trim()||"Title is required"],required:""},null,8,["modelValue","rules"]),s(te,{modelValue:r(l),"onUpdate:modelValue":e[1]||(e[1]=t=>g(l)?l.value=t:null),class:"flex-grow-0",label:"Description",variant:"outlined",density:"compact",rows:"2"},null,8,["modelValue"]),s(ae,{"model-value":r(o),class:"flex-grow-0",items:a.serviceAccounts,"item-title":"meta.title","item-value":"id",label:"Service account",variant:"outlined",density:"compact",rules:[t=>a.serviceAccounts.some(f=>f.id===t)||"Service account is required"],required:"","onUpdate:modelValue":$},null,8,["model-value","items","rules"]),s(T,{modelValue:r(u),"onUpdate:modelValue":e[2]||(e[2]=t=>g(u)?u.value=t:null),class:"expires-at-field flex-grow-0",type:"datetime-local",label:"Expires at",variant:"outlined",density:"compact",clearable:"",rules:[t=>!t||!Number.isNaN(new Date(t).getTime())||"Expiration must be a valid date and time"]},null,8,["modelValue","rules"]),V("div",ce,[s(Q,{modelValue:r(n),"onUpdate:modelValue":e[3]||(e[3]=t=>g(n)?n.value=t:null),options:a.restrictionOptions,"allowed-rules":r(x),"section-title":"Restriction Rules","allow-empty":""},null,8,["modelValue","options","allowed-rules"])]),r(n).length>0&&r(k)&&!r(S)?(I(),N(ie,{key:0,type:"error",variant:"outlined",density:"compact",class:"flex-grow-0 mt-2"},{default:c(()=>[...e[6]||(e[6]=[w(" Restriction rules exceed the selected service account permissions. ",-1)])]),_:1})):se("",!0)]),_:1}),s(le,{vertical:"",class:"d-none d-md-flex"}),s(D,{cols:"12",md:"6",class:"pl-md-4 column"},{default:c(()=>[e[8]||(e[8]=V("div",{class:"text-overline mb-2"},"Restriction preview",-1)),V("div",de,[s(r(G),{value:r(O),theme:"dark-plus",language:"yaml",options:{readOnly:!0,minimap:{enabled:!1},automaticLayout:!0}},null,8,["value"])])]),_:1})]),_:1})]),_:1}),s(ne,null,{default:c(()=>[s(re),s(B,{disabled:a.loading,onClick:e[4]||(e[4]=t=>v.value=!1)},{default:c(()=>[...e[9]||(e[9]=[w("Cancel",-1)])]),_:1},8,["disabled"]),s(B,{color:"primary",disabled:!r(K),loading:a.loading,onClick:M},{default:c(()=>[...e[10]||(e[10]=[w("Save",-1)])]),_:1},8,["disabled","loading"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"]))}}),Ae=W(me,[["__scopeId","data-v-7aef4723"]]),be=Y("backend-api-key-settings",()=>{const{$client:a}=ue(),p=F(l=>a.backendApiKeySettings.query.query(l));async function v(l){const o=await a.backendApiKeySettings.create.mutate(l);return await p.load(),o}async function A(l,o){const u=await a.backendApiKeySettings.update.mutate({apiKeyId:l,apiKey:o});return await p.load(),u}async function d(l){await a.backendApiKeySettings.delete.mutate({apiKeyId:l}),await p.load()}return{items:p,get:async l=>await a.backendApiKeySettings.get.query({apiKeyId:l}),create:v,update:A,delete:d,getServiceAccountOptions:async()=>await a.backendApiKeySettings.getServiceAccountOptions.query()}});export{Ae as B,be as u};
1
+ import{x as W,_ as Y,A as z,B as F}from"#entry";import{V as G,s as J}from"./D4_5UqG-.js";import{_ as Q}from"./DKWb1hup.js";import{E as H,aG as X,w as Z,V as I,Y as N,_ as c,W as s,ai as h,aj as _,aU as ee,aV as D,a2 as V,ak as B,a as g,D as r,aW as te,aN as ae,aI as ie,$ as x,a1 as se,as as le,aJ as ne,aK as re,at as T,ah as oe,aO as q,r as y,j as m,u as ue}from"./-NXdyIEV.js";import"./DlfNK0cA.js";const ce={class:"builder"},de={class:"preview"},me=H({__name:"BackendApiKeyDialog",props:q({apiKey:{},serviceAccounts:{},restrictionOptions:{},loading:{type:Boolean}},{visible:{type:Boolean,required:!0},visibleModifiers:{}}),emits:q(["save"],["update:visible"]),setup(a,{emit:p}){const v=X(a,"visible"),A=p,d=y(""),l=y(""),o=y(),u=y(""),n=y([]),O=m(()=>J(n.value)),w=m(()=>a.serviceAccounts.find(i=>i.id===o.value)?.rules??[]),j=m(()=>!!d.value.trim()),R=m(()=>a.serviceAccounts.some(i=>i.id===o.value)),U=m(()=>!u.value||!Number.isNaN(new Date(u.value).getTime())),k=m(()=>n.value.length===0||W.safeParse(n.value).success),S=m(()=>n.value.length===0||n.value.every(i=>i.permissions.every(e=>w.value.some(t=>t.permissions.includes(e)&&P(t,i))))),K=m(()=>j.value&&R.value&&U.value&&k.value&&S.value);Z(()=>[v.value,a.apiKey,a.serviceAccounts],()=>{v.value&&(d.value=a.apiKey?.meta.title??"",l.value=a.apiKey?.meta.description??"",o.value=a.apiKey?.serviceAccountId??a.serviceAccounts.find(i=>i.systemName==="admin")?.id,u.value=a.apiKey?.expiresAt?E(a.apiKey.expiresAt):"",n.value=a.apiKey?.restrictionRules??[])},{immediate:!0});function E(i){const e=new Date(i),t=e.getTimezoneOffset()*6e4;return new Date(e.getTime()-t).toISOString().slice(0,16)}function M(){!K.value||!o.value||A("save",{meta:{title:d.value.trim(),description:l.value.trim()||void 0},serviceAccountId:o.value,restrictionRules:n.value,expiresAt:u.value?new Date(u.value):null})}function $(i){o.value=i,n.value=[]}function P(i,e){return i.restrictions?e.restrictions?i.restrictions.every(t=>{const f=e.restrictions?.find(b=>b.type===t.type);if(!f)return!1;const L=C(t);return C(f).every(b=>L.includes(b))&&(!("recursive"in f)||!f.recursive||"recursive"in t&&t.recursive)}):!1:!0}function C(i){switch(i.type){case"resources":return i.resourceIds;case"projects":return i.projectIds;case"project-spaces":case"projects-in-spaces":return i.projectSpaceIds}}return(i,e)=>(I(),N(oe,{modelValue:v.value,"onUpdate:modelValue":e[5]||(e[5]=t=>v.value=t),"max-width":"1200",class:"api-key-dialog"},{default:c(()=>[s(h,{title:a.apiKey?"Edit backend API key":"Create backend API key"},{default:c(()=>[s(_,{class:"content"},{default:c(()=>[s(ee,{"no-gutters":"",class:"fill-height"},{default:c(()=>[s(D,{cols:"12",md:"6",class:"pr-md-4 column"},{default:c(()=>[e[7]||(e[7]=V("div",{class:"text-overline mb-2"},"Metadata",-1)),s(B,{modelValue:r(d),"onUpdate:modelValue":e[0]||(e[0]=t=>g(d)?d.value=t:null),class:"flex-grow-0",label:"Title",variant:"outlined",density:"compact",rules:[t=>!!t?.trim()||"Title is required"],required:""},null,8,["modelValue","rules"]),s(te,{modelValue:r(l),"onUpdate:modelValue":e[1]||(e[1]=t=>g(l)?l.value=t:null),class:"flex-grow-0",label:"Description",variant:"outlined",density:"compact",rows:"2"},null,8,["modelValue"]),s(ae,{"model-value":r(o),class:"flex-grow-0",items:a.serviceAccounts,"item-title":"meta.title","item-value":"id",label:"Service account",variant:"outlined",density:"compact",rules:[t=>a.serviceAccounts.some(f=>f.id===t)||"Service account is required"],required:"","onUpdate:modelValue":$},null,8,["model-value","items","rules"]),s(B,{modelValue:r(u),"onUpdate:modelValue":e[2]||(e[2]=t=>g(u)?u.value=t:null),class:"expires-at-field flex-grow-0",type:"datetime-local",label:"Expires at",variant:"outlined",density:"compact",clearable:"",rules:[t=>!t||!Number.isNaN(new Date(t).getTime())||"Expiration must be a valid date and time"]},null,8,["modelValue","rules"]),V("div",ce,[s(Q,{modelValue:r(n),"onUpdate:modelValue":e[3]||(e[3]=t=>g(n)?n.value=t:null),options:a.restrictionOptions,"allowed-rules":r(w),"section-title":"Restriction Rules","allow-empty":""},null,8,["modelValue","options","allowed-rules"])]),r(n).length>0&&r(k)&&!r(S)?(I(),N(ie,{key:0,type:"error",variant:"outlined",density:"compact",class:"flex-grow-0 mt-2"},{default:c(()=>[...e[6]||(e[6]=[x(" Restriction rules exceed the selected service account permissions. ",-1)])]),_:1})):se("",!0)]),_:1}),s(le,{vertical:"",class:"d-none d-md-flex"}),s(D,{cols:"12",md:"6",class:"pl-md-4 column"},{default:c(()=>[e[8]||(e[8]=V("div",{class:"text-overline mb-2"},"Restriction preview",-1)),V("div",de,[s(r(G),{value:r(O),theme:"dark-plus",language:"yaml",options:{readOnly:!0,minimap:{enabled:!1},automaticLayout:!0}},null,8,["value"])])]),_:1})]),_:1})]),_:1}),s(ne,null,{default:c(()=>[s(re),s(T,{disabled:a.loading,onClick:e[4]||(e[4]=t=>v.value=!1)},{default:c(()=>[...e[9]||(e[9]=[x("Cancel",-1)])]),_:1},8,["disabled"]),s(T,{color:"primary",disabled:!r(K),loading:a.loading,onClick:M},{default:c(()=>[...e[10]||(e[10]=[x("Save",-1)])]),_:1},8,["disabled","loading"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"]))}}),Ae=Y(me,[["__scopeId","data-v-7aef4723"]]),be=z("backend-api-key-settings",()=>{const{$client:a}=ue(),p=F(l=>a.backendApiKeySettings.query.query(l));async function v(l){const o=await a.backendApiKeySettings.create.mutate(l);return await p.load(),o}async function A(l,o){const u=await a.backendApiKeySettings.update.mutate({apiKeyId:l,apiKey:o});return await p.load(),u}async function d(l){await a.backendApiKeySettings.delete.mutate({apiKeyId:l}),await p.load()}return{items:p,get:async l=>await a.backendApiKeySettings.get.query({apiKeyId:l}),create:v,update:A,delete:d,getServiceAccountOptions:async()=>await a.backendApiKeySettings.getServiceAccountOptions.query()}});export{Ae as B,be as u};
@@ -1 +1 @@
1
- import"#entry";import{_ as c}from"./B2Q2xBzH.js";import{_ as d}from"./hvsd0Qgg.js";import{E as f,V as i,Y as a,D as m,ao as o,_ as s,$ as n,W as r,Z as l}from"./-NXdyIEV.js";const I=f({__name:"OwnerRefChip",props:{item:{}},setup(t){return(u,e)=>t.item.stateId?(i(),a(m(d),{key:0,item:{stateId:t.item.stateId}},null,8,["item"])):t.item.serviceAccountId?(i(),a(m(c),{key:1,item:{serviceAccountId:t.item.serviceAccountId,serviceAccountMeta:t.item.serviceAccountMeta}},null,8,["item"])):t.item.systemName?(i(),a(o,{key:2,color:"info",variant:"flat",size:"small",class:"font-weight-bold"},{prepend:s(()=>[r(l,{class:"mr-1"},{default:s(()=>[...e[0]||(e[0]=[n("mdi-crown",-1)])]),_:1})]),default:s(()=>[e[1]||(e[1]=n(" system ",-1))]),_:1})):(i(),a(o,{key:3,color:"secondary",variant:"flat",size:"small",class:"font-weight-bold"},{prepend:s(()=>[r(l,{class:"mr-1"},{default:s(()=>[...e[2]||(e[2]=[n("mdi-help-circle",-1)])]),_:1})]),default:s(()=>[e[3]||(e[3]=n(" unknown ",-1))]),_:1}))}});export{I as _};
1
+ import"#entry";import{_ as c}from"./Dz1kPrb2.js";import{_ as d}from"./CJnh15-L.js";import{E as f,V as i,Y as a,D as m,ao as o,_ as s,$ as n,W as r,Z as l}from"./-NXdyIEV.js";const I=f({__name:"OwnerRefChip",props:{item:{}},setup(t){return(u,e)=>t.item.stateId?(i(),a(m(d),{key:0,item:{stateId:t.item.stateId}},null,8,["item"])):t.item.serviceAccountId?(i(),a(m(c),{key:1,item:{serviceAccountId:t.item.serviceAccountId,serviceAccountMeta:t.item.serviceAccountMeta}},null,8,["item"])):t.item.systemName?(i(),a(o,{key:2,color:"info",variant:"flat",size:"small",class:"font-weight-bold"},{prepend:s(()=>[r(l,{class:"mr-1"},{default:s(()=>[...e[0]||(e[0]=[n("mdi-crown",-1)])]),_:1})]),default:s(()=>[e[1]||(e[1]=n(" system ",-1))]),_:1})):(i(),a(o,{key:3,color:"secondary",variant:"flat",size:"small",class:"font-weight-bold"},{prepend:s(()=>[r(l,{class:"mr-1"},{default:s(()=>[...e[2]||(e[2]=[n("mdi-help-circle",-1)])]),_:1})]),default:s(()=>[e[3]||(e[3]=n(" unknown ",-1))]),_:1}))}});export{I as _};
@@ -1 +1 @@
1
- import{E as f,aG as k,w as A,V as B,Y as V,_ as r,W as o,ai as w,aj as p,ak as R,a as m,D as v,aW as C,aJ as q,aK as x,at as g,$ as S,ah as T,aO as b,r as y,u as j}from"./-NXdyIEV.js";import{z as D,A as P}from"#entry";const O=f({__name:"BackendServiceAccountDialog",props:b({serviceAccount:{},loading:{type:Boolean}},{visible:{type:Boolean,required:!0},visibleModifiers:{}}),emits:b(["save"],["update:visible"]),setup(t,{emit:s}){const l=k(t,"visible"),d=s,i=y(""),e=y("");A(()=>[l.value,t.serviceAccount],()=>{l.value&&(i.value=t.serviceAccount?.meta.title??"",e.value=t.serviceAccount?.meta.description??"")},{immediate:!0});function n(){i.value.trim()&&d("save",{meta:{title:i.value.trim(),description:e.value.trim()||void 0}})}return(u,a)=>(B(),V(T,{modelValue:l.value,"onUpdate:modelValue":a[3]||(a[3]=c=>l.value=c),"max-width":"620"},{default:r(()=>[o(w,{title:t.serviceAccount?"Edit backend service account":"Create backend service account",color:"#2d2d2d"},{default:r(()=>[o(p,{class:"pt-4"},{default:r(()=>[o(R,{modelValue:v(i),"onUpdate:modelValue":a[0]||(a[0]=c=>m(i)?i.value=c:null),class:"mb-4",label:"Title",variant:"outlined",density:"compact",rules:[c=>!!c?.trim()||"Title is required"],required:"",autofocus:""},null,8,["modelValue","rules"]),o(C,{modelValue:v(e),"onUpdate:modelValue":a[1]||(a[1]=c=>m(e)?e.value=c:null),label:"Description",variant:"outlined",density:"compact",rows:"3"},null,8,["modelValue"])]),_:1}),o(q,null,{default:r(()=>[o(x),o(g,{disabled:t.loading,onClick:a[2]||(a[2]=c=>l.value=!1)},{default:r(()=>[...a[4]||(a[4]=[S("Cancel",-1)])]),_:1},8,["disabled"]),o(g,{color:"primary",disabled:!v(i).trim(),loading:t.loading,onClick:n},{default:r(()=>[...a[5]||(a[5]=[S("Save",-1)])]),_:1},8,["disabled","loading"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"]))}}),U=D("backend-service-account-settings",()=>{const{$client:t}=j(),s=P(e=>t.backendServiceAccountSettings.query.query(e));async function l(e){const n=await t.backendServiceAccountSettings.create.mutate(e);return await s.load(),n}async function d(e,n){const u=await t.backendServiceAccountSettings.update.mutate({serviceAccountId:e,serviceAccount:n});return await s.load(),u}async function i(e){await t.backendServiceAccountSettings.delete.mutate({serviceAccountId:e}),await s.load()}return{items:s,get:async e=>await t.backendServiceAccountSettings.get.query({serviceAccountId:e}),create:l,update:d,delete:i,getRoleBindings:async e=>await t.backendServiceAccountSettings.getRoleBindings.query({serviceAccountId:e}),getRoleBindingsByRole:async e=>await t.backendServiceAccountSettings.getRoleBindingsByRole.query({roleId:e}),addRoleBinding:async(e,n)=>await t.backendServiceAccountSettings.addRoleBinding.mutate({roleId:e,serviceAccountId:n}),removeRoleBinding:async(e,n)=>await t.backendServiceAccountSettings.removeRoleBinding.mutate({roleId:e,serviceAccountId:n}),getProjectBindingOptions:async e=>await t.backendServiceAccountSettings.getProjectBindingOptions.query({serviceAccountId:e}),setProjectBinding:async(e,n,u)=>await t.backendServiceAccountSettings.setProjectBinding.mutate({serviceAccountId:e,projectId:n,projectServiceAccountId:u})}});export{O as _,U as u};
1
+ import{E as f,aG as B,w as k,V as A,Y as V,_ as r,W as o,ai as w,aj as p,ak as R,a as m,D as v,aW as C,aJ as q,aK as x,at as g,$ as S,ah as T,aO as b,r as y,u as j}from"./-NXdyIEV.js";import{A as D,B as P}from"#entry";const O=f({__name:"BackendServiceAccountDialog",props:b({serviceAccount:{},loading:{type:Boolean}},{visible:{type:Boolean,required:!0},visibleModifiers:{}}),emits:b(["save"],["update:visible"]),setup(t,{emit:s}){const l=B(t,"visible"),d=s,i=y(""),e=y("");k(()=>[l.value,t.serviceAccount],()=>{l.value&&(i.value=t.serviceAccount?.meta.title??"",e.value=t.serviceAccount?.meta.description??"")},{immediate:!0});function n(){i.value.trim()&&d("save",{meta:{title:i.value.trim(),description:e.value.trim()||void 0}})}return(u,a)=>(A(),V(T,{modelValue:l.value,"onUpdate:modelValue":a[3]||(a[3]=c=>l.value=c),"max-width":"620"},{default:r(()=>[o(w,{title:t.serviceAccount?"Edit backend service account":"Create backend service account",color:"#2d2d2d"},{default:r(()=>[o(p,{class:"pt-4"},{default:r(()=>[o(R,{modelValue:v(i),"onUpdate:modelValue":a[0]||(a[0]=c=>m(i)?i.value=c:null),class:"mb-4",label:"Title",variant:"outlined",density:"compact",rules:[c=>!!c?.trim()||"Title is required"],required:"",autofocus:""},null,8,["modelValue","rules"]),o(C,{modelValue:v(e),"onUpdate:modelValue":a[1]||(a[1]=c=>m(e)?e.value=c:null),label:"Description",variant:"outlined",density:"compact",rows:"3"},null,8,["modelValue"])]),_:1}),o(q,null,{default:r(()=>[o(x),o(g,{disabled:t.loading,onClick:a[2]||(a[2]=c=>l.value=!1)},{default:r(()=>[...a[4]||(a[4]=[S("Cancel",-1)])]),_:1},8,["disabled"]),o(g,{color:"primary",disabled:!v(i).trim(),loading:t.loading,onClick:n},{default:r(()=>[...a[5]||(a[5]=[S("Save",-1)])]),_:1},8,["disabled","loading"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"]))}}),U=D("backend-service-account-settings",()=>{const{$client:t}=j(),s=P(e=>t.backendServiceAccountSettings.query.query(e));async function l(e){const n=await t.backendServiceAccountSettings.create.mutate(e);return await s.load(),n}async function d(e,n){const u=await t.backendServiceAccountSettings.update.mutate({serviceAccountId:e,serviceAccount:n});return await s.load(),u}async function i(e){await t.backendServiceAccountSettings.delete.mutate({serviceAccountId:e}),await s.load()}return{items:s,get:async e=>await t.backendServiceAccountSettings.get.query({serviceAccountId:e}),create:l,update:d,delete:i,getRoleBindings:async e=>await t.backendServiceAccountSettings.getRoleBindings.query({serviceAccountId:e}),getRoleBindingsByRole:async e=>await t.backendServiceAccountSettings.getRoleBindingsByRole.query({roleId:e}),addRoleBinding:async(e,n)=>await t.backendServiceAccountSettings.addRoleBinding.mutate({roleId:e,serviceAccountId:n}),removeRoleBinding:async(e,n)=>await t.backendServiceAccountSettings.removeRoleBinding.mutate({roleId:e,serviceAccountId:n}),getProjectBindingOptions:async e=>await t.backendServiceAccountSettings.getProjectBindingOptions.query({serviceAccountId:e}),setProjectBinding:async(e,n,u)=>await t.backendServiceAccountSettings.setProjectBinding.mutate({serviceAccountId:e,projectId:n,projectServiceAccountId:u})}});export{O as _,U as u};
@@ -1 +1 @@
1
- import{n as c}from"#entry";import"./C7Ij7g1p.js";import{E as n,V as o,Y as s,au as r,_ as l,a2 as d,a0 as m,W as u,at as f,ag as p,D as v}from"./-NXdyIEV.js";const b=n({__name:"TableItemAction",props:{icon:{},tooltip:{},variant:{default:"text"},size:{default:"small"},color:{},disabled:{type:Boolean,default:!1}},emits:["click"],setup(a){return(e,t)=>(o(),s(r,{location:"top"},{activator:l(({props:i})=>[u(f,p(i,{icon:a.icon,variant:a.variant,size:a.size,color:a.color,disabled:a.disabled,onClick:t[0]||(t[0]=g=>e.$emit("click"))}),null,16,["icon","variant","size","color","disabled"])]),default:l(()=>[d("span",null,m(a.tooltip),1)]),_:1}))}}),V=n({__name:"ShowDetailsAction",props:{pageName:{},pageParams:{},variant:{default:"text"},size:{default:"small"},disabled:{type:Boolean,default:!1}},setup(a){const e=()=>{c({name:a.pageName,params:a.pageParams})};return(t,i)=>(o(),s(v(b),{icon:"mdi-eye",tooltip:"View Details",variant:a.variant,size:a.size,disabled:a.disabled,onClick:e},null,8,["variant","size","disabled"]))}});export{V as _,b as a};
1
+ import{n as c}from"#entry";import"./DlfNK0cA.js";import{E as n,V as o,Y as s,au as r,_ as l,a2 as d,a0 as m,W as u,at as f,ag as p,D as v}from"./-NXdyIEV.js";const b=n({__name:"TableItemAction",props:{icon:{},tooltip:{},variant:{default:"text"},size:{default:"small"},color:{},disabled:{type:Boolean,default:!1}},emits:["click"],setup(a){return(e,t)=>(o(),s(r,{location:"top"},{activator:l(({props:i})=>[u(f,p(i,{icon:a.icon,variant:a.variant,size:a.size,color:a.color,disabled:a.disabled,onClick:t[0]||(t[0]=g=>e.$emit("click"))}),null,16,["icon","variant","size","color","disabled"])]),default:l(()=>[d("span",null,m(a.tooltip),1)]),_:1}))}}),V=n({__name:"ShowDetailsAction",props:{pageName:{},pageParams:{},variant:{default:"text"},size:{default:"small"},disabled:{type:Boolean,default:!1}},setup(a){const e=()=>{c({name:a.pageName,params:a.pageParams})};return(t,i)=>(o(),s(v(b),{icon:"mdi-eye",tooltip:"View Details",variant:a.variant,size:a.size,disabled:a.disabled,onClick:e},null,8,["variant","size","disabled"]))}});export{V as _,b as a};
@@ -0,0 +1 @@
1
+ import{k as Y,q as J,T as Z,U as M,V as _,W as O,X as ee,D as R,L as te,K as ae,C as oe,G as se,H as ie,Q as ne,O as re,v as z,E as L,n as le}from"#entry";import{E as A,V,Y as F,D as e,_ as i,W as s,n as G,aP as h,at as de,$ as H,a2 as q,a0 as ue,ai as pe,aL as me,aj as ge,aS as ve,a1 as ce}from"./-NXdyIEV.js";import{I as T}from"./CHVFVVjA.js";import{S as fe}from"./DlfNK0cA.js";import{D as ye,a as Pe}from"./BvF6CC6t.js";import{O as Ie}from"./0MzBjiBY.js";import{_ as I}from"./DSTHpVUV.js";import{_ as be}from"./CVCvRHBP.js";import{_ as Se}from"./BvcB3_Ox.js";import{_ as je}from"./zcI5daFe.js";import{_ as Be}from"./iHlZS5Nr.js";import{_ as he}from"./BDLjTA3_.js";import{_ as Ue}from"./BQvzkDFt.js";import{_ as we}from"./BVxJafKI.js";import{G as ke,H as Ce,I as xe}from"./Btw6kqCM.js";import{u as Le}from"./BASNc1ws.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./4vGmo7Ws.js";import"./D9y446qR.js";import"./D4_5UqG-.js";import"./DfDsDJD2.js";import"./M3Z1JMP1.js";import"./C9khB4Xk.js";import"./Dz1kPrb2.js";import"./CrAApG3c.js";import"./CJnh15-L.js";import"./CBtqoa0c.js";import"./iX982afC.js";import"./DjTKfsHU.js";import"./DfvKjH24.js";import"./BxAss8Tj.js";import"./BzfFclT9.js";import"./C50Jf3QI.js";import"./BqAcL3eq.js";import"./BbYXjaP8.js";const Te=A({__name:"PreviewCanvas",props:{instances:{},hubs:{default:()=>[]},components:{},entities:{},autoPosition:{type:Boolean,default:!0},interactive:{type:Boolean,default:!1}},emits:["ready"],setup(o,{emit:d}){const u=d,j=Y.createId(),B=J.child({customCanvasId:j}),{outputs:b,dependentMap:P,set:U,dispatchInitialNodes:w}=Z("InputResolver",B,ee,!0),k=async n=>{n.nodeFactory.createNodesForModels(o.instances,o.hubs,{readonly:!0});for(const l of o.instances){const C=o.components[l.type];U(`instance:${l.id}`,{kind:"instance",instance:l,component:C,entities:o.entities})}for(const l of o.hubs)U(`hub:${l.id}`,{kind:"hub",hub:l,entities:o.entities});const S=[w()];o.autoPosition?S.push(M(n.vueFlowStore).then(()=>_(n.vueFlowStore)).then(()=>n.vueFlowStore.fitView()).then(()=>G()).then(()=>O(n.vueFlowStore,n.onNodesMoved,n.edgeEndpointOffsets))):S.push(M(n.vueFlowStore).then(()=>n.vueFlowStore.fitView()).then(()=>G()).then(()=>O(n.vueFlowStore,n.onNodesMoved,n.edgeEndpointOffsets))),await Promise.all(S),u("ready")};return(n,S)=>(V(),F(ke,{"canvas-id":["custom",e(j)],onInit:k,"input-resolver-outputs":e(b),components:o.components,entities:o.entities,minimap:!1,interactive:o.interactive},{"node-instance":i(({data:l})=>[s(e(xe),{instance:l.instance,component:o.components[l.instance.type],entities:o.entities,"input-resolver-outputs":e(b),"input-resolver-dependent-map":e(P),editable:""},null,8,["instance","component","entities","input-resolver-outputs","input-resolver-dependent-map"])]),"node-hub":i(({data:l})=>[s(Ce,{hub:l.hub},null,8,["hub"])]),_:1},8,["canvas-id","input-resolver-outputs","components","entities","interactive"]))}}),Ve={class:"d-flex ga-6",style:{"min-height":"400px"}},Fe={class:"text-body-2 text-capitalize"},ft=A({__name:"[stateId]",props:{params:{}},async setup(o){let d,u;const{instancesStore:j,stateStore:B,libraryStore:b}=R(),{projectStore:P}=R(),U=te(),w=ae(),k=oe(),n=se(),S=ie(),l=ne(),C=re(),W=Le.ensureCreated(o.params.projectId);P.initializing?([d,u]=h(()=>L(()=>P.initialized).toBe(!0)),await d,u(),P.addLibraryRoot()):([d,u]=h(()=>P.initialize1()),await d,u(),[d,u]=h(()=>P.initialize2()),await d,u()),[d,u]=h(()=>L(()=>j.initializationPhase!=="loading").toBe(!0)),await d,u(),[d,u]=h(()=>L(()=>B.statesLoaded).toBe(!0)),await d,u();const x=B.getStateByStateId(o.params.stateId)?.instanceId;if(!x)throw z({statusCode:404,statusMessage:"Instance not found for the given state ID"});const y=j.instances.get(x);if(!y)throw z({statusCode:404,statusMessage:"Instance not found"});const N=b.library.components[y.type],$=N?.meta,K=[{key:"instanceId",label:"Instance ID"},{key:"stateId",label:"State ID"},{key:"type",label:"Component Type"},{key:"kind",label:"Kind"}],Q=b.library.components,X=b.library.entities,p=l.forState(o.params.stateId),m=S.forState(o.params.stateId),g=k.forState(o.params.stateId),v=n.forState(o.params.stateId),c=C.forState(o.params.stateId),f=U.forState(o.params.stateId),D=B.instanceStates.get(x)?.lastOperationState?.operationId,r=D?w.snapshotsForInstanceOperation(o.params.stateId,D):null;return p.load(),m.load(),g.load(),v.load(),c.load(),f.load(),r&&r.load(),(E,t)=>(V(),F(e(Pe),null,{default:i(()=>[s(fe,{meta:e($),"fallback-icon":"mdi-cube-outline",title:e(N).meta.title,description:e(y).name},{actions:i(()=>[s(de,{variant:"outlined","prepend-icon":"mdi-vector-square",onClick:t[0]||(t[0]=()=>{e(W).requestInstanceFocus(e(y).id),("navigateTo"in E?E.navigateTo:e(le))({name:"project",params:{projectId:o.params.projectId}})})},{default:i(()=>[...t[29]||(t[29]=[H(" View in Canvas ",-1)])]),_:1})]),_:1},8,["meta","title","description"]),q("div",Ve,[s(e(ye),{title:"Instance Details",items:K,style:{flex:"1"}},{"item.instanceId":i(()=>[s(e(T),{truncate:!1,value:e(y).id},null,8,["value"])]),"item.stateId":i(()=>[s(e(T),{truncate:!1,value:o.params.stateId},null,8,["value"])]),"item.type":i(()=>[s(e(T),{truncate:!1,value:e(y).type},null,8,["value"])]),"item.kind":i(()=>[q("div",Fe,ue(e(y).kind),1)]),_:1}),s(pe,{style:{flex:"1",border:"solid 2px #2d2d2d"},elevation:0},{default:i(()=>[s(me,{class:"d-flex align-center"},{default:i(()=>[...t[30]||(t[30]=[H("Preview",-1)])]),_:1}),s(ge,{class:"pa-0",style:{height:"350px"}},{default:i(()=>[s(e(Te),{instances:[e(y)],hubs:[],components:e(Q),entities:e(X),"auto-position":!1},null,8,["instances","components","entities"])]),_:1})]),_:1})]),s(ve,{elevation:0},{default:i(()=>[s(e(Ie),{title:"Instance Model",data:e(y)},null,8,["data"]),s(e(I),{title:"Terminals",icon:"mdi-console",count:e(p).data.value.total},{default:i(()=>[s(e(be),{search:e(p).search.value,"onUpdate:search":t[1]||(t[1]=a=>e(p).search.value=a),"sort-by":e(p).sortBy.value,"onUpdate:sortBy":t[2]||(t[2]=a=>e(p).sortBy.value=a),page:e(p).page.value,"onUpdate:page":t[3]||(t[3]=a=>e(p).page.value=a),"items-per-page":e(p).itemsPerPage.value,"onUpdate:itemsPerPage":t[4]||(t[4]=a=>e(p).itemsPerPage.value=a),"project-id":o.params.projectId,data:e(p).data.value,loading:e(p).isLoading.value,"hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading"])]),_:1},8,["count"]),s(e(I),{title:"Secrets",icon:"mdi-key-variant",count:e(m).data.value.total},{default:i(()=>[s(e(Se),{search:e(m).search.value,"onUpdate:search":t[5]||(t[5]=a=>e(m).search.value=a),"sort-by":e(m).sortBy.value,"onUpdate:sortBy":t[6]||(t[6]=a=>e(m).sortBy.value=a),page:e(m).page.value,"onUpdate:page":t[7]||(t[7]=a=>e(m).page.value=a),"items-per-page":e(m).itemsPerPage.value,"onUpdate:itemsPerPage":t[8]||(t[8]=a=>e(m).itemsPerPage.value=a),"project-id":o.params.projectId,data:e(m).data.value,loading:e(m).isLoading.value,"hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading"])]),_:1},8,["count"]),s(e(I),{title:"Pages",icon:"mdi-file-document-outline",count:e(g).data.value.total},{default:i(()=>[s(e(je),{search:e(g).search.value,"onUpdate:search":t[9]||(t[9]=a=>e(g).search.value=a),"sort-by":e(g).sortBy.value,"onUpdate:sortBy":t[10]||(t[10]=a=>e(g).sortBy.value=a),page:e(g).page.value,"onUpdate:page":t[11]||(t[11]=a=>e(g).page.value=a),"items-per-page":e(g).itemsPerPage.value,"onUpdate:itemsPerPage":t[12]||(t[12]=a=>e(g).itemsPerPage.value=a),"project-id":o.params.projectId,data:e(g).data.value,loading:e(g).isLoading.value,"hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading"])]),_:1},8,["count"]),s(e(I),{title:"Panels",icon:"mdi-view-dashboard-outline",count:e(v).data.value.total},{default:i(()=>[s(e(Be),{search:e(v).search.value,"onUpdate:search":t[13]||(t[13]=a=>e(v).search.value=a),"sort-by":e(v).sortBy.value,"onUpdate:sortBy":t[14]||(t[14]=a=>e(v).sortBy.value=a),page:e(v).page.value,"onUpdate:page":t[15]||(t[15]=a=>e(v).page.value=a),"items-per-page":e(v).itemsPerPage.value,"onUpdate:itemsPerPage":t[16]||(t[16]=a=>e(v).itemsPerPage.value=a),"project-id":o.params.projectId,data:e(v).data.value,loading:e(v).isLoading.value,"hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading"])]),_:1},8,["count"]),s(e(I),{title:"Triggers",icon:"mdi-lightning-bolt",count:e(c).data.value.total},{default:i(()=>[s(e(he),{search:e(c).search.value,"onUpdate:search":t[17]||(t[17]=a=>e(c).search.value=a),"sort-by":e(c).sortBy.value,"onUpdate:sortBy":t[18]||(t[18]=a=>e(c).sortBy.value=a),page:e(c).page.value,"onUpdate:page":t[19]||(t[19]=a=>e(c).page.value=a),"items-per-page":e(c).itemsPerPage.value,"onUpdate:itemsPerPage":t[20]||(t[20]=a=>e(c).itemsPerPage.value=a),"project-id":o.params.projectId,data:e(c).data.value,loading:e(c).isLoading.value,"hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading"])]),_:1},8,["count"]),s(e(I),{title:"Artifacts",icon:"mdi-package-variant",count:e(f).data.value.total},{default:i(()=>[s(e(Ue),{search:e(f).search.value,"onUpdate:search":t[21]||(t[21]=a=>e(f).search.value=a),"sort-by":e(f).sortBy.value,"onUpdate:sortBy":t[22]||(t[22]=a=>e(f).sortBy.value=a),page:e(f).page.value,"onUpdate:page":t[23]||(t[23]=a=>e(f).page.value=a),"items-per-page":e(f).itemsPerPage.value,"onUpdate:itemsPerPage":t[24]||(t[24]=a=>e(f).itemsPerPage.value=a),"project-id":o.params.projectId,data:e(f).data.value,loading:e(f).isLoading.value,"hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading"])]),_:1},8,["count"]),e(r)?(V(),F(e(I),{key:0,title:"Entities",icon:"mdi-database",count:e(r).data.value.total},{default:i(()=>[s(e(we),{search:e(r).search.value,"onUpdate:search":t[25]||(t[25]=a=>e(r).search.value=a),"sort-by":e(r).sortBy.value,"onUpdate:sortBy":t[26]||(t[26]=a=>e(r).sortBy.value=a),page:e(r).page.value,"onUpdate:page":t[27]||(t[27]=a=>e(r).page.value=a),"items-per-page":e(r).itemsPerPage.value,"onUpdate:itemsPerPage":t[28]||(t[28]=a=>e(r).itemsPerPage.value=a),"project-id":o.params.projectId,data:e(r).data.value,loading:e(r).isLoading.value,"fallback-icon-meta":e($),"hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading","fallback-icon-meta"])]),_:1},8,["count"])):ce("",!0)]),_:1})]),_:1}))}});export{ft as default};
@@ -1 +1 @@
1
- import{i as C,bF as M,D as k,bG as P,C as T,l as z}from"#entry";import{G as L}from"./zPZwXEME.js";import{u as D,B as h,M as _,r as W,E as g,aP as f,V as S,Y as A,_ as j,D as x,W as H}from"./-NXdyIEV.js";import{P as N}from"./DJwAKlaO.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./DyDuNLRY.js";function E(){return navigator.userAgent.includes("Mac")}function G(s,n){const e=h(null),t=h(null),u=W(!1),{$client:r}=D(),l=C(),w=async d=>{e.value=d;async function i(a,o){if(o==="restart"){if(u.value)return;u.value=!0,e.value.writeln(">>> Restarting terminal session... <<<");const m=await r.terminal.getOrCreateTerminalSession.mutate({projectId:s,terminalId:t.value.terminalId});l.closeTerminalPanel(s,t.value.id),l.openTerminalPanel(s,m.id)}else(E()?a.metaKey:a.ctrlKey)&&window.open(o,"_blank")}const c={activate:(a,o)=>{i(a,o)},hover:(a,o,m)=>{},leave:(a,o,m)=>{},allowNonHttpProtocols:!0},p=new M.WebLinksAddon(i,c);e.value.loadAddon(p),e.value.options.linkHandler=c,await b();const{unsubscribe:v}=r.terminal.watchSession.subscribe({projectId:s,sessionId:n},{onData(a){if(t.value=a,a.finishedAt){const B=`\x1B[1m\x1B[33m${`>>> Terminal session finished at ${new Date(a.finishedAt).toLocaleString("en-US")} <<<`}\x1B[0m`,$="\x1B]8;;restart\x1B\\>>> Click here to restart <<<\x1B]8;;\x1B\\";e.value.writeln(""),e.value.writeln(B),e.value.writeln($),v()}}});_(v),await k(t).not.toBeNull(),t.value.finishedAt||(y(),e.value.focus())},b=async()=>{const d=await r.terminal.getSessionHistory.query({projectId:s,sessionId:n});for(const i of d)e.value.write(i.content)},y=()=>{const i=`${location.protocol==="https:"?"wss":"ws"}://${location.host}`,c=new WebSocket(`${i}/api/projects/${s}/terminal-sessions/${n}?screenSize=${e.value.cols}x${e.value.rows}`),p=new P.AttachAddon(c);e.value.loadAddon(p),_(()=>c.close())};return{initialize:w,session:t}}const R=g({__name:"TerminalSession",props:{sessionId:{}},async setup(s){let n,e;const{projectStore:t}=T();t.initializing?([n,e]=f(()=>k(()=>t.initialized).toBe(!0)),await n,e(),t.addLibraryRoot()):([n,e]=f(()=>t.initialize1()),await n,e(),[n,e]=f(()=>t.initialize2()),await n,e());const{initialize:u}=G(t.projectId,s.sessionId),r=l=>{u(l)};return(l,w)=>(S(),A(L,{onLoad:r}))}}),J=g({__name:"[sessionId]",props:{params:{}},setup(s){return z(s.params.projectId),(n,e)=>(S(),A(x(N),{"project-id":s.params.projectId,"can-unlock":""},{default:j(()=>[H(x(R),{"session-id":s.params.sessionId},null,8,["session-id"])]),_:1},8,["project-id"]))}});export{J as default};
1
+ import{i as M,bF as C,E as k,bG as P,D as T,m as z}from"#entry";import{G as L}from"./zPZwXEME.js";import{u as D,B as h,M as _,r as W,E as g,aP as f,V as S,Y as A,_ as j,D as x,W as H}from"./-NXdyIEV.js";import{P as E}from"./DzP42O4c.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./DyDuNLRY.js";function N(){return navigator.userAgent.includes("Mac")}function G(s,n){const e=h(null),t=h(null),u=W(!1),{$client:r}=D(),l=M(),w=async d=>{e.value=d;async function i(a,o){if(o==="restart"){if(u.value)return;u.value=!0,e.value.writeln(">>> Restarting terminal session... <<<");const m=await r.terminal.getOrCreateTerminalSession.mutate({projectId:s,terminalId:t.value.terminalId});l.closeTerminalPanel(s,t.value.id),l.openTerminalPanel(s,m.id)}else(N()?a.metaKey:a.ctrlKey)&&window.open(o,"_blank")}const c={activate:(a,o)=>{i(a,o)},hover:(a,o,m)=>{},leave:(a,o,m)=>{},allowNonHttpProtocols:!0},p=new C.WebLinksAddon(i,c);e.value.loadAddon(p),e.value.options.linkHandler=c,await b();const{unsubscribe:v}=r.terminal.watchSession.subscribe({projectId:s,sessionId:n},{onData(a){if(t.value=a,a.finishedAt){const B=`\x1B[1m\x1B[33m${`>>> Terminal session finished at ${new Date(a.finishedAt).toLocaleString("en-US")} <<<`}\x1B[0m`,$="\x1B]8;;restart\x1B\\>>> Click here to restart <<<\x1B]8;;\x1B\\";e.value.writeln(""),e.value.writeln(B),e.value.writeln($),v()}}});_(v),await k(t).not.toBeNull(),t.value.finishedAt||(y(),e.value.focus())},b=async()=>{const d=await r.terminal.getSessionHistory.query({projectId:s,sessionId:n});for(const i of d)e.value.write(i.content)},y=()=>{const i=`${location.protocol==="https:"?"wss":"ws"}://${location.host}`,c=new WebSocket(`${i}/api/projects/${s}/terminal-sessions/${n}?screenSize=${e.value.cols}x${e.value.rows}`),p=new P.AttachAddon(c);e.value.loadAddon(p),_(()=>c.close())};return{initialize:w,session:t}}const R=g({__name:"TerminalSession",props:{sessionId:{}},async setup(s){let n,e;const{projectStore:t}=T();t.initializing?([n,e]=f(()=>k(()=>t.initialized).toBe(!0)),await n,e(),t.addLibraryRoot()):([n,e]=f(()=>t.initialize1()),await n,e(),[n,e]=f(()=>t.initialize2()),await n,e());const{initialize:u}=G(t.projectId,s.sessionId),r=l=>{u(l)};return(l,w)=>(S(),A(L,{onLoad:r}))}}),J=g({__name:"[sessionId]",props:{params:{}},setup(s){return z(s.params.projectId),(n,e)=>(S(),A(x(E),{"project-id":s.params.projectId,"can-unlock":""},{default:j(()=>[H(x(R),{"session-id":s.params.sessionId},null,8,["session-id"])]),_:1},8,["project-id"]))}});export{J as default};
@@ -1 +1 @@
1
- import{a3 as v,_ as x}from"#entry";import{E as m,V as f,J as p,a2 as u,a0 as n,D as s,W as i,at as _,_ as c,Z as h,$ as d,au as y}from"./-NXdyIEV.js";import"./C7Ij7g1p.js";const $=e=>e?e.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):"Unknown",g=e=>{if(!e)return"Unknown";const o=Date.now()-e.getTime(),t=Math.floor(o/(1e3*60*60*24)),a=Math.floor(o/(1e3*60*60)),l=Math.floor(o/(1e3*60));return t>0?`${t} day${t===1?"":"s"} ago`:a>0?`${a} hour${a===1?"":"s"} ago`:l>0?`${l} minute${l===1?"":"s"} ago`:"Just now"},T=e=>`${e.slice(0,8)}...${e.slice(-8)}`,C={class:"d-flex align-center"},b={class:"text-caption text-medium-emphasis font-mono mr-2"},w=m({__name:"IdTableCell",props:{value:{},truncate:{type:Boolean,default:!0},copyFullText:{default:"Copy full ID"}},setup(e){const{copy:r}=v();return(o,t)=>(f(),p("div",C,[u("code",b,n(e.truncate?s(T)(e.value):e.value),1),i(_,{icon:"mdi-content-copy",variant:"text",size:"x-small",onClick:t[0]||(t[0]=a=>s(r)(e.value))},{default:c(()=>[i(h,{size:"16"},{default:c(()=>[...t[1]||(t[1]=[d("mdi-content-copy",-1)])]),_:1}),i(y,{activator:"parent",location:"top"},{default:c(()=>[d(n(e.copyFullText),1)]),_:1})]),_:1})]))}}),M=x(w,[["__scopeId","data-v-0dcfb73b"]]),I={class:"text-body-2"},V={class:"text-caption text-medium-emphasis"},N=m({__name:"TimeTableCell",props:{value:{}},setup(e){return(r,o)=>(f(),p("div",null,[u("div",I,n(s($)(e.value)),1),u("div",V,n(s(g)(e.value)),1)]))}});export{M as I,N as _};
1
+ import{a3 as v,_ as x}from"#entry";import{E as m,V as f,J as p,a2 as u,a0 as n,D as s,W as i,at as _,_ as c,Z as h,$ as d,au as y}from"./-NXdyIEV.js";import"./DlfNK0cA.js";const $=e=>e?e.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):"Unknown",g=e=>{if(!e)return"Unknown";const o=Date.now()-e.getTime(),t=Math.floor(o/(1e3*60*60*24)),a=Math.floor(o/(1e3*60*60)),l=Math.floor(o/(1e3*60));return t>0?`${t} day${t===1?"":"s"} ago`:a>0?`${a} hour${a===1?"":"s"} ago`:l>0?`${l} minute${l===1?"":"s"} ago`:"Just now"},T=e=>`${e.slice(0,8)}...${e.slice(-8)}`,C={class:"d-flex align-center"},b={class:"text-caption text-medium-emphasis font-mono mr-2"},w=m({__name:"IdTableCell",props:{value:{},truncate:{type:Boolean,default:!0},copyFullText:{default:"Copy full ID"}},setup(e){const{copy:r}=v();return(o,t)=>(f(),p("div",C,[u("code",b,n(e.truncate?s(T)(e.value):e.value),1),i(_,{icon:"mdi-content-copy",variant:"text",size:"x-small",onClick:t[0]||(t[0]=a=>s(r)(e.value))},{default:c(()=>[i(h,{size:"16"},{default:c(()=>[...t[1]||(t[1]=[d("mdi-content-copy",-1)])]),_:1}),i(y,{activator:"parent",location:"top"},{default:c(()=>[d(n(e.copyFullText),1)]),_:1})]),_:1})]))}}),M=x(w,[["__scopeId","data-v-0dcfb73b"]]),I={class:"text-body-2"},V={class:"text-caption text-medium-emphasis"},N=m({__name:"TimeTableCell",props:{value:{}},setup(e){return(r,o)=>(f(),p("div",null,[u("div",I,n(s($)(e.value)),1),u("div",V,n(s(g)(e.value)),1)]))}});export{M as I,N as _};
@@ -1 +1 @@
1
- import{C as m}from"#entry";import{E as u}from"./DyhJj7Ha.js";import{E as p,V as d,Y as f,D as s,j as a}from"./-NXdyIEV.js";const y=p({__name:"InstanceRefChip",props:{item:{}},setup(n){const{instancesStore:r,libraryStore:i,stateStore:c}=m(),t=a(()=>{const e=c.stateIdToStateMap.get(n.item.stateId);return e?r.instances.get(e.instanceId):null}),o=a(()=>t.value?i.library.components[t.value.type]?.meta??null:null),l=a(()=>t.value?{title:t.value.name,icon:o.value?.icon,iconColor:o.value?.iconColor}:null);return(e,I)=>(d(),f(s(u),{id:n.item.stateId,meta:s(l),"fallback-icon":"mdi-cube-outline","page-name":"settings.instance-details","page-params":{stateId:n.item.stateId}},null,8,["id","meta","page-params"]))}});export{y as _};
1
+ import{D as m}from"#entry";import{E as u}from"./CrAApG3c.js";import{E as p,V as d,Y as f,D as s,j as a}from"./-NXdyIEV.js";const C=p({__name:"InstanceRefChip",props:{item:{}},setup(n){const{instancesStore:r,libraryStore:i,stateStore:c}=m(),t=a(()=>{const e=c.stateIdToStateMap.get(n.item.stateId);return e?r.instances.get(e.instanceId):null}),o=a(()=>t.value?i.library.components[t.value.type]?.meta??null:null),l=a(()=>t.value?{title:t.value.name,icon:o.value?.icon,iconColor:o.value?.iconColor}:null);return(e,I)=>(d(),f(s(u),{id:n.item.stateId,meta:s(l),"fallback-icon":"mdi-cube-outline","page-name":"settings.instance-details","page-params":{stateId:n.item.stateId}},null,8,["id","meta","page-params"]))}});export{C as _};
@@ -1 +1 @@
1
- import{S as y,b as i}from"./BKZ346WY.js";import"#entry";import{_ as P}from"./CNrxBMAX.js";import"./C7Ij7g1p.js";import{_ as b,a as p}from"./CZyQa1Zc.js";import{E as v,aG as o,V as B,Y as k,_ as c,a2 as $,W as r,D as s,aO as u}from"./-NXdyIEV.js";const C={class:"d-flex justify-center ga-1"},D=v({__name:"ApiKeysTable",props:u({projectId:{},data:{},loading:{type:Boolean},hideHeader:{type:Boolean},height:{}},{search:{},searchModifiers:{},sortBy:{},sortByModifiers:{},page:{},pageModifiers:{},itemsPerPage:{},itemsPerPageModifiers:{}}),emits:u(["delete","rotate"],["update:search","update:sortBy","update:page","update:itemsPerPage"]),setup(a){const d=o(a,"search"),n=o(a,"sortBy"),l=o(a,"page"),m=o(a,"itemsPerPage"),h=[i.name,i.id,{title:"Owner",key:"owner",sortable:!1},i.createdAt,i.actions];return(g,t)=>(B(),k(s(y),{search:d.value,"onUpdate:search":t[0]||(t[0]=e=>d.value=e),"sort-by":n.value,"onUpdate:sortBy":t[1]||(t[1]=e=>n.value=e),page:l.value,"onUpdate:page":t[2]||(t[2]=e=>l.value=e),"items-per-page":m.value,"onUpdate:itemsPerPage":t[3]||(t[3]=e=>m.value=e),headers:h,data:a.data,loading:a.loading,"hide-header":a.hideHeader,height:a.height},{"item.owner":c(({item:e})=>[r(s(P),{item:e},null,8,["item"])]),"item.actions":c(({item:e})=>[$("div",C,[r(s(b),{"page-name":"settings.api-key-details","page-params":{projectId:a.projectId,apiKeyId:e.id}},null,8,["page-params"]),r(s(p),{icon:"mdi-refresh",tooltip:"Rotate token",disabled:e.managed,onClick:f=>g.$emit("rotate",e)},null,8,["disabled","onClick"]),r(s(p),{icon:"mdi-delete-outline",tooltip:"Delete API key",color:"error",disabled:e.managed,onClick:f=>g.$emit("delete",e)},null,8,["disabled","onClick"])])]),_:1},8,["search","sort-by","page","items-per-page","data","loading","hide-header","height"]))}});export{D as _};
1
+ import{S as y,b as i}from"./DfDsDJD2.js";import"#entry";import{_ as P}from"./C9khB4Xk.js";import"./DlfNK0cA.js";import{_ as b,a as p}from"./CBtqoa0c.js";import{E as v,aG as o,V as B,Y as k,_ as c,a2 as $,W as r,D as s,aO as u}from"./-NXdyIEV.js";const C={class:"d-flex justify-center ga-1"},D=v({__name:"ApiKeysTable",props:u({projectId:{},data:{},loading:{type:Boolean},hideHeader:{type:Boolean},height:{}},{search:{},searchModifiers:{},sortBy:{},sortByModifiers:{},page:{},pageModifiers:{},itemsPerPage:{},itemsPerPageModifiers:{}}),emits:u(["delete","rotate"],["update:search","update:sortBy","update:page","update:itemsPerPage"]),setup(a){const d=o(a,"search"),n=o(a,"sortBy"),l=o(a,"page"),m=o(a,"itemsPerPage"),h=[i.name,i.id,{title:"Owner",key:"owner",sortable:!1},i.createdAt,i.actions];return(g,t)=>(B(),k(s(y),{search:d.value,"onUpdate:search":t[0]||(t[0]=e=>d.value=e),"sort-by":n.value,"onUpdate:sortBy":t[1]||(t[1]=e=>n.value=e),page:l.value,"onUpdate:page":t[2]||(t[2]=e=>l.value=e),"items-per-page":m.value,"onUpdate:itemsPerPage":t[3]||(t[3]=e=>m.value=e),headers:h,data:a.data,loading:a.loading,"hide-header":a.hideHeader,height:a.height},{"item.owner":c(({item:e})=>[r(s(P),{item:e},null,8,["item"])]),"item.actions":c(({item:e})=>[$("div",C,[r(s(b),{"page-name":"settings.api-key-details","page-params":{projectId:a.projectId,apiKeyId:e.id}},null,8,["page-params"]),r(s(p),{icon:"mdi-refresh",tooltip:"Rotate token",disabled:e.managed,onClick:f=>g.$emit("rotate",e)},null,8,["disabled","onClick"]),r(s(p),{icon:"mdi-delete-outline",tooltip:"Delete API key",color:"error",disabled:e.managed,onClick:f=>g.$emit("delete",e)},null,8,["disabled","onClick"])])]),_:1},8,["search","sort-by","page","items-per-page","data","loading","hide-header","height"]))}});export{D as _};
@@ -1 +1 @@
1
- import{S as u,b as r}from"./BKZ346WY.js";import"#entry";import{t as f}from"./M3Z1JMP1.js";import{_ as h}from"./D9y446qR.js";import{_ as c}from"./CNrxBMAX.js";import"./C7Ij7g1p.js";import{_ as y}from"./CZyQa1Zc.js";import{E as P,aG as i,V as B,Y as b,D as s,_ as o,W as m,aO as v}from"./-NXdyIEV.js";const T=P({__name:"TerminalsTable",props:v({projectId:{},data:{},loading:{type:Boolean},hideHeader:{type:Boolean},height:{}},{search:{},searchModifiers:{},sortBy:{},sortByModifiers:{},page:{},pageModifiers:{},itemsPerPage:{},itemsPerPageModifiers:{}}),emits:["update:search","update:sortBy","update:page","update:itemsPerPage"],setup(a){const n=i(a,"search"),d=i(a,"sortBy"),l=i(a,"page"),p=i(a,"itemsPerPage"),g=[{title:"Status",key:"status",sortable:!1},r.name,{key:"owner",title:"Owner",sortable:!1},r.id,r.createdAt,r.actions];return(M,t)=>(B(),b(s(u),{search:n.value,"onUpdate:search":t[0]||(t[0]=e=>n.value=e),"sort-by":d.value,"onUpdate:sortBy":t[1]||(t[1]=e=>d.value=e),page:l.value,"onUpdate:page":t[2]||(t[2]=e=>l.value=e),"items-per-page":p.value,"onUpdate:itemsPerPage":t[3]||(t[3]=e=>p.value=e),headers:g,data:a.data,loading:a.loading,"hide-header":a.hideHeader,height:a.height},{"item.status":o(({item:e})=>[m(s(h),{status:e.status,"status-map":s(f)},null,8,["status","status-map"])]),"item.owner":o(({item:e})=>[m(s(c),{item:e},null,8,["item"])]),"item.actions":o(({item:e})=>[m(s(y),{"page-name":"settings.terminal-details","page-params":{projectId:a.projectId,terminalId:e.id}},null,8,["page-params"])]),_:1},8,["search","sort-by","page","items-per-page","data","loading","hide-header","height"]))}});export{T as _};
1
+ import{S as u,b as r}from"./DfDsDJD2.js";import"#entry";import{t as f}from"./M3Z1JMP1.js";import{_ as h}from"./D9y446qR.js";import{_ as c}from"./C9khB4Xk.js";import"./DlfNK0cA.js";import{_ as y}from"./CBtqoa0c.js";import{E as P,aG as i,V as B,Y as b,D as s,_ as o,W as m,aO as v}from"./-NXdyIEV.js";const T=P({__name:"TerminalsTable",props:v({projectId:{},data:{},loading:{type:Boolean},hideHeader:{type:Boolean},height:{}},{search:{},searchModifiers:{},sortBy:{},sortByModifiers:{},page:{},pageModifiers:{},itemsPerPage:{},itemsPerPageModifiers:{}}),emits:["update:search","update:sortBy","update:page","update:itemsPerPage"],setup(a){const n=i(a,"search"),d=i(a,"sortBy"),l=i(a,"page"),p=i(a,"itemsPerPage"),g=[{title:"Status",key:"status",sortable:!1},r.name,{key:"owner",title:"Owner",sortable:!1},r.id,r.createdAt,r.actions];return(M,t)=>(B(),b(s(u),{search:n.value,"onUpdate:search":t[0]||(t[0]=e=>n.value=e),"sort-by":d.value,"onUpdate:sortBy":t[1]||(t[1]=e=>d.value=e),page:l.value,"onUpdate:page":t[2]||(t[2]=e=>l.value=e),"items-per-page":p.value,"onUpdate:itemsPerPage":t[3]||(t[3]=e=>p.value=e),headers:g,data:a.data,loading:a.loading,"hide-header":a.hideHeader,height:a.height},{"item.status":o(({item:e})=>[m(s(h),{status:e.status,"status-map":s(f)},null,8,["status","status-map"])]),"item.owner":o(({item:e})=>[m(s(c),{item:e},null,8,["item"])]),"item.actions":o(({item:e})=>[m(s(y),{"page-name":"settings.terminal-details","page-params":{projectId:a.projectId,terminalId:e.id}},null,8,["page-params"])]),_:1},8,["search","sort-by","page","items-per-page","data","loading","hide-header","height"]))}});export{T as _};
@@ -1 +1 @@
1
- import{C as n,H as d,D as g}from"#entry";import"./C7Ij7g1p.js";import{S as l}from"./DEdaEI2J.js";import{_ as c}from"./CVfWNyhe.js";import{E as u,aP as p,Y as f,_ as P,D as t,V as y,W as _}from"./-NXdyIEV.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./VQuDbHHR.js";import"./D9y446qR.js";import"./BKZ346WY.js";import"./DKbLex6i.js";import"./CNrxBMAX.js";import"./B2Q2xBzH.js";import"./DyhJj7Ha.js";import"./hvsd0Qgg.js";import"./CZyQa1Zc.js";const H=u({__name:"index",async setup(j){let o,s;const{projectStore:a}=n(),e=d();return a.initializing?([o,s]=p(()=>g(()=>a.initialized).toBe(!0)),await o,s(),a.addLibraryRoot()):([o,s]=p(()=>a.initialize1()),await o,s(),[o,s]=p(()=>a.initialize2()),await o,s()),e.items.load(),(w,i)=>(y(),f(t(l),{title:"Workers",icon:"mdi-progress-wrench",description:"Manage the workers that are processing tasks and operations in your project."},{default:P(({height:m})=>[_(t(c),{search:t(e).items.search,"onUpdate:search":i[0]||(i[0]=r=>t(e).items.search=r),"sort-by":t(e).items.sortBy,"onUpdate:sortBy":i[1]||(i[1]=r=>t(e).items.sortBy=r),page:t(e).items.page,"onUpdate:page":i[2]||(i[2]=r=>t(e).items.page=r),"items-per-page":t(e).items.itemsPerPage,"onUpdate:itemsPerPage":i[3]||(i[3]=r=>t(e).items.itemsPerPage=r),"project-id":t(a).projectId,data:t(e).items.data,loading:t(e).items.isLoading,height:m},null,8,["search","sort-by","page","items-per-page","project-id","data","loading","height"])]),_:1}))}});export{H as default};
1
+ import{D as n,I as d,E as g}from"#entry";import"./DlfNK0cA.js";import{S as l}from"./DXmPWjsX.js";import{_ as c}from"./Ztua2i2Y.js";import{E as u,aP as p,Y as f,_ as P,D as t,V as y,W as _}from"./-NXdyIEV.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./4vGmo7Ws.js";import"./D9y446qR.js";import"./DfDsDJD2.js";import"./CHVFVVjA.js";import"./C9khB4Xk.js";import"./Dz1kPrb2.js";import"./CrAApG3c.js";import"./CJnh15-L.js";import"./CBtqoa0c.js";const A=u({__name:"index",async setup(j){let o,s;const{projectStore:a}=n(),e=d();return a.initializing?([o,s]=p(()=>g(()=>a.initialized).toBe(!0)),await o,s(),a.addLibraryRoot()):([o,s]=p(()=>a.initialize1()),await o,s(),[o,s]=p(()=>a.initialize2()),await o,s()),e.items.load(),(w,i)=>(y(),f(t(l),{title:"Workers",icon:"mdi-progress-wrench",description:"Manage the workers that are processing tasks and operations in your project."},{default:P(({height:m})=>[_(t(c),{search:t(e).items.search,"onUpdate:search":i[0]||(i[0]=r=>t(e).items.search=r),"sort-by":t(e).items.sortBy,"onUpdate:sortBy":i[1]||(i[1]=r=>t(e).items.sortBy=r),page:t(e).items.page,"onUpdate:page":i[2]||(i[2]=r=>t(e).items.page=r),"items-per-page":t(e).items.itemsPerPage,"onUpdate:itemsPerPage":i[3]||(i[3]=r=>t(e).items.itemsPerPage=r),"project-id":t(a).projectId,data:t(e).items.data,loading:t(e).items.isLoading,height:m},null,8,["search","sort-by","page","items-per-page","project-id","data","loading","height"])]),_:1}))}});export{A as default};
@@ -1 +1 @@
1
- import{s as h,_,C as ee,I as te,K as ae,B as oe,F as le,G as ie,bt as se,P as re,H as ne,t as de,u as ue,D as ce}from"#entry";import{_ as q,I as ve}from"./DKbLex6i.js";import{S as me}from"./C7Ij7g1p.js";import{E as O,aG as pe,u as ge,aP as D,V as B,J as L,D as e,Y as K,aI as Q,_ as s,$ as k,a0 as H,a1 as N,a2 as P,W as o,a as z,aN as fe,at as x,aa as Y,ab as ye,aQ as Pe,aO as be,r as A,j as J,ah as Se,aR as Ae,aS as Ie,ai as je,aj as Be,aJ as Ue,aK as ke}from"./-NXdyIEV.js";import{_ as we}from"./D5xxahUY.js";import{D as Ce,a as Ve}from"./Bc-UhGEo.js";import{_ as U}from"./DSTHpVUV.js";import{_ as xe}from"./CAGxZJ_q.js";import{_ as Re}from"./aPAh1oAW.js";import{_ as $e}from"./BExqDRwH.js";import{_ as De}from"./DkZkynzL.js";import{_ as Le}from"./DsRcdFOB.js";import{_ as Ne}from"./CVfWNyhe.js";import{_ as Te}from"./k0GHL-8U.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./VQuDbHHR.js";import"./D9y446qR.js";import"./BKZ346WY.js";import"./M3Z1JMP1.js";import"./CNrxBMAX.js";import"./B2Q2xBzH.js";import"./DyhJj7Ha.js";import"./hvsd0Qgg.js";import"./CZyQa1Zc.js";import"./BSawHEJh.js";import"./u9IB9fko.js";const Ee={class:"pa-4"},Ke={class:"binding-form mb-6"},ze={class:"text-right"},Fe={key:0},Me=O({__name:"ProjectServiceAccountRoleBindingsTable",props:be({projectId:{},serviceAccountId:{},readonly:{type:Boolean}},{count:{default:0},countModifiers:{}}),emits:["update:count"],async setup(l){let d,b;const w=pe(l,"count"),{$client:V}=ge(),R=A([]),$=A([]),j=A(null),S=A(!1),I=A(null),T=J(()=>{const r=new Map(R.value.map(i=>[i.roleId,i]));return $.value.filter(i=>r.has(i.id)).map(i=>({...i,binding:r.get(i.id)}))}),F=J(()=>{const r=new Set(R.value.map(i=>i.roleId));return $.value.filter(i=>!r.has(i.id))});async function n(){S.value=!0;try{const r=await V.projectServiceAccountSettings.getRoleBindings.query({projectId:l.projectId,serviceAccountId:l.serviceAccountId}),i=await h(u=>V.projectRoleSettings.query.query({projectId:l.projectId,query:u}));R.value=r,$.value=i,w.value=r.length,I.value=null}catch(r){I.value=r instanceof Error?r.message:"Failed to load role bindings"}finally{S.value=!1}}async function M(){if(j.value){S.value=!0;try{await V.projectServiceAccountSettings.addRoleBinding.mutate({projectId:l.projectId,serviceAccountId:l.serviceAccountId,roleId:j.value}),j.value=null,await n()}catch(r){I.value=r instanceof Error?r.message:"Failed to update role bindings"}finally{S.value=!1}}}async function C(r){S.value=!0;try{await V.projectServiceAccountSettings.removeRoleBinding.mutate({projectId:l.projectId,serviceAccountId:l.serviceAccountId,roleId:r}),await n()}catch(i){I.value=i instanceof Error?i.message:"Failed to update role bindings"}finally{S.value=!1}}return[d,b]=D(()=>n()),await d,b(),(r,i)=>(B(),L("div",Ee,[e(I)?(B(),K(Q,{key:0,type:"error",density:"compact",class:"mb-4"},{default:s(()=>[k(H(e(I)),1)]),_:1})):N("",!0),P("div",Ke,[o(fe,{modelValue:e(j),"onUpdate:modelValue":i[0]||(i[0]=u=>z(j)?j.value=u:null),items:e(F),"item-title":"meta.title","item-value":"id",label:"Role",density:"compact",variant:"outlined","hide-details":"",disabled:l.readonly||e(S)},null,8,["modelValue","items","disabled"]),o(x,{class:"binding-action",color:"primary",disabled:l.readonly||!e(j),loading:e(S),onClick:M},{default:s(()=>[...i[1]||(i[1]=[k(" Add ",-1)])]),_:1},8,["disabled","loading"])]),o(Pe,null,{default:s(()=>[i[3]||(i[3]=P("thead",null,[P("tr",null,[P("th",null,"Role"),P("th",null,"Created"),P("th",{class:"text-right"},"Actions")])],-1)),P("tbody",null,[(B(!0),L(Y,null,ye(e(T),u=>(B(),L("tr",{key:u.id},[P("td",null,H(u.meta.title),1),P("td",null,[o(q,{value:u.binding.createdAt},null,8,["value"])]),P("td",ze,[o(x,{icon:"mdi-delete-outline",variant:"text",size:"small",disabled:l.readonly,onClick:W=>C(u.id)},null,8,["disabled","onClick"])])]))),128)),!e(S)&&e(T).length===0?(B(),L("tr",Fe,[...i[2]||(i[2]=[P("td",{colspan:"3",class:"text-center text-medium-emphasis py-4"},"No roles",-1)])])):N("",!0)])]),_:1})]))}}),qe=_(Me,[["__scopeId","data-v-b5c984d1"]]),We={class:"d-flex ga-2"},yt=O({__name:"[serviceAccountId]",props:{params:{}},async setup(l){let d,b;const{projectStore:w}=ee(),V=te(),R=ae(),$=oe(),j=le(),S=ie(),I=se(),T=re(),F=ne();w.initializing?([d,b]=D(()=>ce(()=>w.initialized).toBe(!0)),await d,b(),w.addLibraryRoot()):([d,b]=D(()=>w.initialize1()),await d,b(),[d,b]=D(()=>w.initialize2()),await d,b());const n=A(([d,b]=D(()=>I.get(l.params.serviceAccountId)),d=await d,b(),d));if(!n.value)throw de({statusCode:404,statusMessage:"Service Account not found"});const M=ue(),C=A(!1),r=A(!1),i=A(!1),u=A(!1);async function W(G){i.value=!0;try{n.value=await I.update(l.params.serviceAccountId,G),C.value=!1}finally{i.value=!1}}async function X(){u.value=!0;try{await I.delete(l.params.serviceAccountId),await M.push({name:"settings.service-accounts",params:{projectId:l.params.projectId}})}finally{u.value=!1}}const Z=[{key:"serviceAccountId",label:"Service Account ID"},{key:"name",label:"Name"},{key:"createdAt",label:"Created"},{key:"updatedAt",label:"Last Updated"}],c=V.forServiceAccount(l.params.serviceAccountId),v=T.forServiceAccount(l.params.serviceAccountId),m=$.forServiceAccount(l.params.serviceAccountId),p=j.forServiceAccount(l.params.serviceAccountId),g=S.forServiceAccount(l.params.serviceAccountId),f=F.forServiceAccount(l.params.serviceAccountId),y=R.forServiceAccount(l.params.serviceAccountId),E=A(0);return c.load(),v.load(),m.load(),p.load(),g.load(),f.load(),y.load(),(G,t)=>(B(),L(Y,null,[e(n)?(B(),K(e(Ve),{key:0},{default:s(()=>[o(me,{meta:e(n).meta,"fallback-icon":"mdi-account-circle",title:e(n).meta.title,description:e(n).meta.description},Ae({_:2},[e(n).systemName?void 0:{name:"actions",fn:s(()=>[P("div",We,[o(x,{variant:"outlined","prepend-icon":"mdi-pencil",onClick:t[0]||(t[0]=a=>C.value=!0)},{default:s(()=>[...t[34]||(t[34]=[k(" Edit ",-1)])]),_:1}),o(x,{color:"error",variant:"outlined","prepend-icon":"mdi-delete",onClick:t[1]||(t[1]=a=>r.value=!0)},{default:s(()=>[...t[35]||(t[35]=[k(" Delete ",-1)])]),_:1})])]),key:"0"}]),1032,["meta","title","description"]),e(n).systemName?(B(),K(Q,{key:0,type:"info",variant:"tonal",style:{flex:"none"}},{default:s(()=>[...t[36]||(t[36]=[k(" This system-managed service account is read-only. ",-1)])]),_:1})):N("",!0),o(e(Ce),{title:"Service Account Details",items:Z},{"item.serviceAccountId":s(()=>[o(e(ve),{value:e(n).id},null,8,["value"])]),"item.createdAt":s(()=>[o(e(q),{value:e(n).createdAt},null,8,["value"])]),"item.updatedAt":s(()=>[o(e(q),{value:e(n).updatedAt},null,8,["value"])]),_:1}),o(Ie,{elevation:0},{default:s(()=>[o(e(U),{title:"Roles",icon:"mdi-shield-account",count:e(E)},{default:s(()=>[o(e(qe),{count:e(E),"onUpdate:count":t[2]||(t[2]=a=>z(E)?E.value=a:null),"project-id":l.params.projectId,"service-account-id":e(n).id,readonly:!!e(n).systemName},null,8,["count","project-id","service-account-id","readonly"])]),_:1},8,["count"]),o(e(U),{title:"API Keys",icon:"mdi-key-variant",count:e(c).data.value.total},{default:s(()=>[o(e(Le),{search:e(c).search.value,"onUpdate:search":t[3]||(t[3]=a=>e(c).search.value=a),"sort-by":e(c).sortBy.value,"onUpdate:sortBy":t[4]||(t[4]=a=>e(c).sortBy.value=a),page:e(c).page.value,"onUpdate:page":t[5]||(t[5]=a=>e(c).page.value=a),"items-per-page":e(c).itemsPerPage.value,"onUpdate:itemsPerPage":t[6]||(t[6]=a=>e(c).itemsPerPage.value=a),"project-id":l.params.projectId,data:e(c).data.value,loading:e(c).isLoading.value,"hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading"])]),_:1},8,["count"]),o(e(U),{title:"Terminals",icon:"mdi-console",count:e(v).data.value.total},{default:s(()=>[o(e(xe),{search:e(v).search.value,"onUpdate:search":t[7]||(t[7]=a=>e(v).search.value=a),"sort-by":e(v).sortBy.value,"onUpdate:sortBy":t[8]||(t[8]=a=>e(v).sortBy.value=a),page:e(v).page.value,"onUpdate:page":t[9]||(t[9]=a=>e(v).page.value=a),"items-per-page":e(v).itemsPerPage.value,"onUpdate:itemsPerPage":t[10]||(t[10]=a=>e(v).itemsPerPage.value=a),"project-id":l.params.projectId,data:e(v).data.value,loading:e(v).isLoading.value,"hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading"])]),_:1},8,["count"]),o(e(U),{title:"Pages",icon:"mdi-file-document-outline",count:e(m).data.value.total},{default:s(()=>[o(e($e),{search:e(m).search.value,"onUpdate:search":t[11]||(t[11]=a=>e(m).search.value=a),"sort-by":e(m).sortBy.value,"onUpdate:sortBy":t[12]||(t[12]=a=>e(m).sortBy.value=a),page:e(m).page.value,"onUpdate:page":t[13]||(t[13]=a=>e(m).page.value=a),"items-per-page":e(m).itemsPerPage.value,"onUpdate:itemsPerPage":t[14]||(t[14]=a=>e(m).itemsPerPage.value=a),"project-id":l.params.projectId,data:e(m).data.value,loading:e(m).isLoading.value,"hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading"])]),_:1},8,["count"]),o(e(U),{title:"Panels",icon:"mdi-view-dashboard-outline",count:e(p).data.value.total},{default:s(()=>[o(e(De),{search:e(p).search.value,"onUpdate:search":t[15]||(t[15]=a=>e(p).search.value=a),"sort-by":e(p).sortBy.value,"onUpdate:sortBy":t[16]||(t[16]=a=>e(p).sortBy.value=a),page:e(p).page.value,"onUpdate:page":t[17]||(t[17]=a=>e(p).page.value=a),"items-per-page":e(p).itemsPerPage.value,"onUpdate:itemsPerPage":t[18]||(t[18]=a=>e(p).itemsPerPage.value=a),"project-id":l.params.projectId,data:e(p).data.value,loading:e(p).isLoading.value,"hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading"])]),_:1},8,["count"]),o(e(U),{title:"Secrets",icon:"mdi-key-variant",count:e(g).data.value.total},{default:s(()=>[o(e(Re),{search:e(g).search.value,"onUpdate:search":t[19]||(t[19]=a=>e(g).search.value=a),"sort-by":e(g).sortBy.value,"onUpdate:sortBy":t[20]||(t[20]=a=>e(g).sortBy.value=a),page:e(g).page.value,"onUpdate:page":t[21]||(t[21]=a=>e(g).page.value=a),"items-per-page":e(g).itemsPerPage.value,"onUpdate:itemsPerPage":t[22]||(t[22]=a=>e(g).itemsPerPage.value=a),"project-id":l.params.projectId,data:e(g).data.value,loading:e(g).isLoading.value,"hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading"])]),_:1},8,["count"]),o(e(U),{title:"Workers",icon:"mdi-progress-wrench",count:e(f).data.value.total},{default:s(()=>[o(e(Ne),{search:e(f).search.value,"onUpdate:search":t[23]||(t[23]=a=>e(f).search.value=a),"sort-by":e(f).sortBy.value,"onUpdate:sortBy":t[24]||(t[24]=a=>e(f).sortBy.value=a),page:e(f).page.value,"onUpdate:page":t[25]||(t[25]=a=>e(f).page.value=a),"items-per-page":e(f).itemsPerPage.value,"onUpdate:itemsPerPage":t[26]||(t[26]=a=>e(f).itemsPerPage.value=a),"project-id":l.params.projectId,data:e(f).data.value,loading:e(f).isLoading.value,"hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading"])]),_:1},8,["count"]),o(e(U),{title:"Artifacts",icon:"mdi-package-variant",count:e(y).data.value.total},{default:s(()=>[o(e(Te),{search:e(y).search.value,"onUpdate:search":t[27]||(t[27]=a=>e(y).search.value=a),"sort-by":e(y).sortBy.value,"onUpdate:sortBy":t[28]||(t[28]=a=>e(y).sortBy.value=a),page:e(y).page.value,"onUpdate:page":t[29]||(t[29]=a=>e(y).page.value=a),"items-per-page":e(y).itemsPerPage.value,"onUpdate:itemsPerPage":t[30]||(t[30]=a=>e(y).itemsPerPage.value=a),"project-id":l.params.projectId,data:e(y).data.value,loading:e(y).isLoading.value,"hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading"])]),_:1},8,["count"])]),_:1})]),_:1})):N("",!0),e(n)?(B(),K(e(we),{key:1,visible:e(C),"onUpdate:visible":t[31]||(t[31]=a=>z(C)?C.value=a:null),"service-account":e(n),loading:e(i),onSave:W},null,8,["visible","service-account","loading"])):N("",!0),o(Se,{modelValue:e(r),"onUpdate:modelValue":t[33]||(t[33]=a=>z(r)?r.value=a:null),"max-width":"480"},{default:s(()=>[o(je,{title:"Delete project service account"},{default:s(()=>[o(Be,null,{default:s(()=>[...t[37]||(t[37]=[k(" This permanently deletes the service account and all of its role bindings. ",-1)])]),_:1}),o(Ue,null,{default:s(()=>[o(ke),o(x,{disabled:e(u),onClick:t[32]||(t[32]=a=>r.value=!1)},{default:s(()=>[...t[38]||(t[38]=[k("Cancel",-1)])]),_:1},8,["disabled"]),o(x,{color:"error",loading:e(u),onClick:X},{default:s(()=>[...t[39]||(t[39]=[k("Delete",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64))}});export{yt as default};
1
+ import{t as h,_,D as ee,J as te,L as ae,C as oe,G as le,H as ie,bt as se,Q as re,I as ne,v as de,u as ue,E as ce}from"#entry";import{_ as q,I as ve}from"./CHVFVVjA.js";import{S as me}from"./DlfNK0cA.js";import{E as Q,aG as pe,u as ge,aP as D,V as B,J as L,D as e,Y as z,aI as O,_ as s,$ as k,a0 as G,a1 as N,a2 as P,W as o,a as K,aN as fe,at as x,aa as Y,ab as ye,aQ as Pe,aO as be,r as A,j as H,ah as Se,aR as Ae,aS as Ie,ai as je,aj as Be,aJ as Ue,aK as ke}from"./-NXdyIEV.js";import{_ as we}from"./D5xxahUY.js";import{D as Ce,a as Ve}from"./BvF6CC6t.js";import{_ as U}from"./DSTHpVUV.js";import{_ as xe}from"./CVCvRHBP.js";import{_ as Re}from"./BvcB3_Ox.js";import{_ as $e}from"./zcI5daFe.js";import{_ as De}from"./iHlZS5Nr.js";import{_ as Le}from"./CQ57LN-w.js";import{_ as Ne}from"./Ztua2i2Y.js";import{_ as Te}from"./BQvzkDFt.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./4vGmo7Ws.js";import"./D9y446qR.js";import"./DfDsDJD2.js";import"./M3Z1JMP1.js";import"./C9khB4Xk.js";import"./Dz1kPrb2.js";import"./CrAApG3c.js";import"./CJnh15-L.js";import"./CBtqoa0c.js";import"./iX982afC.js";import"./DjTKfsHU.js";const Ee={class:"pa-4"},ze={class:"binding-form mb-6"},Ke={class:"text-right"},Me={key:0},Fe=Q({__name:"ProjectServiceAccountRoleBindingsTable",props:be({projectId:{},serviceAccountId:{},readonly:{type:Boolean}},{count:{default:0},countModifiers:{}}),emits:["update:count"],async setup(l){let d,b;const w=pe(l,"count"),{$client:V}=ge(),R=A([]),$=A([]),j=A(null),S=A(!1),I=A(null),T=H(()=>{const r=new Map(R.value.map(i=>[i.roleId,i]));return $.value.filter(i=>r.has(i.id)).map(i=>({...i,binding:r.get(i.id)}))}),M=H(()=>{const r=new Set(R.value.map(i=>i.roleId));return $.value.filter(i=>!r.has(i.id))});async function n(){S.value=!0;try{const r=await V.projectServiceAccountSettings.getRoleBindings.query({projectId:l.projectId,serviceAccountId:l.serviceAccountId}),i=await h(u=>V.projectRoleSettings.query.query({projectId:l.projectId,query:u}));R.value=r,$.value=i,w.value=r.length,I.value=null}catch(r){I.value=r instanceof Error?r.message:"Failed to load role bindings"}finally{S.value=!1}}async function F(){if(j.value){S.value=!0;try{await V.projectServiceAccountSettings.addRoleBinding.mutate({projectId:l.projectId,serviceAccountId:l.serviceAccountId,roleId:j.value}),j.value=null,await n()}catch(r){I.value=r instanceof Error?r.message:"Failed to update role bindings"}finally{S.value=!1}}}async function C(r){S.value=!0;try{await V.projectServiceAccountSettings.removeRoleBinding.mutate({projectId:l.projectId,serviceAccountId:l.serviceAccountId,roleId:r}),await n()}catch(i){I.value=i instanceof Error?i.message:"Failed to update role bindings"}finally{S.value=!1}}return[d,b]=D(()=>n()),await d,b(),(r,i)=>(B(),L("div",Ee,[e(I)?(B(),z(O,{key:0,type:"error",density:"compact",class:"mb-4"},{default:s(()=>[k(G(e(I)),1)]),_:1})):N("",!0),P("div",ze,[o(fe,{modelValue:e(j),"onUpdate:modelValue":i[0]||(i[0]=u=>K(j)?j.value=u:null),items:e(M),"item-title":"meta.title","item-value":"id",label:"Role",density:"compact",variant:"outlined","hide-details":"",disabled:l.readonly||e(S)},null,8,["modelValue","items","disabled"]),o(x,{class:"binding-action",color:"primary",disabled:l.readonly||!e(j),loading:e(S),onClick:F},{default:s(()=>[...i[1]||(i[1]=[k(" Add ",-1)])]),_:1},8,["disabled","loading"])]),o(Pe,null,{default:s(()=>[i[3]||(i[3]=P("thead",null,[P("tr",null,[P("th",null,"Role"),P("th",null,"Created"),P("th",{class:"text-right"},"Actions")])],-1)),P("tbody",null,[(B(!0),L(Y,null,ye(e(T),u=>(B(),L("tr",{key:u.id},[P("td",null,G(u.meta.title),1),P("td",null,[o(q,{value:u.binding.createdAt},null,8,["value"])]),P("td",Ke,[o(x,{icon:"mdi-delete-outline",variant:"text",size:"small",disabled:l.readonly,onClick:J=>C(u.id)},null,8,["disabled","onClick"])])]))),128)),!e(S)&&e(T).length===0?(B(),L("tr",Me,[...i[2]||(i[2]=[P("td",{colspan:"3",class:"text-center text-medium-emphasis py-4"},"No roles",-1)])])):N("",!0)])]),_:1})]))}}),qe=_(Fe,[["__scopeId","data-v-b5c984d1"]]),Je={class:"d-flex ga-2"},yt=Q({__name:"[serviceAccountId]",props:{params:{}},async setup(l){let d,b;const{projectStore:w}=ee(),V=te(),R=ae(),$=oe(),j=le(),S=ie(),I=se(),T=re(),M=ne();w.initializing?([d,b]=D(()=>ce(()=>w.initialized).toBe(!0)),await d,b(),w.addLibraryRoot()):([d,b]=D(()=>w.initialize1()),await d,b(),[d,b]=D(()=>w.initialize2()),await d,b());const n=A(([d,b]=D(()=>I.get(l.params.serviceAccountId)),d=await d,b(),d));if(!n.value)throw de({statusCode:404,statusMessage:"Service Account not found"});const F=ue(),C=A(!1),r=A(!1),i=A(!1),u=A(!1);async function J(W){i.value=!0;try{n.value=await I.update(l.params.serviceAccountId,W),C.value=!1}finally{i.value=!1}}async function X(){u.value=!0;try{await I.delete(l.params.serviceAccountId),await F.push({name:"settings.service-accounts",params:{projectId:l.params.projectId}})}finally{u.value=!1}}const Z=[{key:"serviceAccountId",label:"Service Account ID"},{key:"name",label:"Name"},{key:"createdAt",label:"Created"},{key:"updatedAt",label:"Last Updated"}],c=V.forServiceAccount(l.params.serviceAccountId),v=T.forServiceAccount(l.params.serviceAccountId),m=$.forServiceAccount(l.params.serviceAccountId),p=j.forServiceAccount(l.params.serviceAccountId),g=S.forServiceAccount(l.params.serviceAccountId),f=M.forServiceAccount(l.params.serviceAccountId),y=R.forServiceAccount(l.params.serviceAccountId),E=A(0);return c.load(),v.load(),m.load(),p.load(),g.load(),f.load(),y.load(),(W,t)=>(B(),L(Y,null,[e(n)?(B(),z(e(Ve),{key:0},{default:s(()=>[o(me,{meta:e(n).meta,"fallback-icon":"mdi-account-circle",title:e(n).meta.title,description:e(n).meta.description},Ae({_:2},[e(n).systemName?void 0:{name:"actions",fn:s(()=>[P("div",Je,[o(x,{variant:"outlined","prepend-icon":"mdi-pencil",onClick:t[0]||(t[0]=a=>C.value=!0)},{default:s(()=>[...t[34]||(t[34]=[k(" Edit ",-1)])]),_:1}),o(x,{color:"error",variant:"outlined","prepend-icon":"mdi-delete",onClick:t[1]||(t[1]=a=>r.value=!0)},{default:s(()=>[...t[35]||(t[35]=[k(" Delete ",-1)])]),_:1})])]),key:"0"}]),1032,["meta","title","description"]),e(n).systemName?(B(),z(O,{key:0,type:"info",variant:"tonal",style:{flex:"none"}},{default:s(()=>[...t[36]||(t[36]=[k(" This system-managed service account is read-only. ",-1)])]),_:1})):N("",!0),o(e(Ce),{title:"Service Account Details",items:Z},{"item.serviceAccountId":s(()=>[o(e(ve),{value:e(n).id},null,8,["value"])]),"item.createdAt":s(()=>[o(e(q),{value:e(n).createdAt},null,8,["value"])]),"item.updatedAt":s(()=>[o(e(q),{value:e(n).updatedAt},null,8,["value"])]),_:1}),o(Ie,{elevation:0},{default:s(()=>[o(e(U),{title:"Roles",icon:"mdi-shield-account",count:e(E)},{default:s(()=>[o(e(qe),{count:e(E),"onUpdate:count":t[2]||(t[2]=a=>K(E)?E.value=a:null),"project-id":l.params.projectId,"service-account-id":e(n).id,readonly:!!e(n).systemName},null,8,["count","project-id","service-account-id","readonly"])]),_:1},8,["count"]),o(e(U),{title:"API Keys",icon:"mdi-key-variant",count:e(c).data.value.total},{default:s(()=>[o(e(Le),{search:e(c).search.value,"onUpdate:search":t[3]||(t[3]=a=>e(c).search.value=a),"sort-by":e(c).sortBy.value,"onUpdate:sortBy":t[4]||(t[4]=a=>e(c).sortBy.value=a),page:e(c).page.value,"onUpdate:page":t[5]||(t[5]=a=>e(c).page.value=a),"items-per-page":e(c).itemsPerPage.value,"onUpdate:itemsPerPage":t[6]||(t[6]=a=>e(c).itemsPerPage.value=a),"project-id":l.params.projectId,data:e(c).data.value,loading:e(c).isLoading.value,"hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading"])]),_:1},8,["count"]),o(e(U),{title:"Terminals",icon:"mdi-console",count:e(v).data.value.total},{default:s(()=>[o(e(xe),{search:e(v).search.value,"onUpdate:search":t[7]||(t[7]=a=>e(v).search.value=a),"sort-by":e(v).sortBy.value,"onUpdate:sortBy":t[8]||(t[8]=a=>e(v).sortBy.value=a),page:e(v).page.value,"onUpdate:page":t[9]||(t[9]=a=>e(v).page.value=a),"items-per-page":e(v).itemsPerPage.value,"onUpdate:itemsPerPage":t[10]||(t[10]=a=>e(v).itemsPerPage.value=a),"project-id":l.params.projectId,data:e(v).data.value,loading:e(v).isLoading.value,"hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading"])]),_:1},8,["count"]),o(e(U),{title:"Pages",icon:"mdi-file-document-outline",count:e(m).data.value.total},{default:s(()=>[o(e($e),{search:e(m).search.value,"onUpdate:search":t[11]||(t[11]=a=>e(m).search.value=a),"sort-by":e(m).sortBy.value,"onUpdate:sortBy":t[12]||(t[12]=a=>e(m).sortBy.value=a),page:e(m).page.value,"onUpdate:page":t[13]||(t[13]=a=>e(m).page.value=a),"items-per-page":e(m).itemsPerPage.value,"onUpdate:itemsPerPage":t[14]||(t[14]=a=>e(m).itemsPerPage.value=a),"project-id":l.params.projectId,data:e(m).data.value,loading:e(m).isLoading.value,"hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading"])]),_:1},8,["count"]),o(e(U),{title:"Panels",icon:"mdi-view-dashboard-outline",count:e(p).data.value.total},{default:s(()=>[o(e(De),{search:e(p).search.value,"onUpdate:search":t[15]||(t[15]=a=>e(p).search.value=a),"sort-by":e(p).sortBy.value,"onUpdate:sortBy":t[16]||(t[16]=a=>e(p).sortBy.value=a),page:e(p).page.value,"onUpdate:page":t[17]||(t[17]=a=>e(p).page.value=a),"items-per-page":e(p).itemsPerPage.value,"onUpdate:itemsPerPage":t[18]||(t[18]=a=>e(p).itemsPerPage.value=a),"project-id":l.params.projectId,data:e(p).data.value,loading:e(p).isLoading.value,"hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading"])]),_:1},8,["count"]),o(e(U),{title:"Secrets",icon:"mdi-key-variant",count:e(g).data.value.total},{default:s(()=>[o(e(Re),{search:e(g).search.value,"onUpdate:search":t[19]||(t[19]=a=>e(g).search.value=a),"sort-by":e(g).sortBy.value,"onUpdate:sortBy":t[20]||(t[20]=a=>e(g).sortBy.value=a),page:e(g).page.value,"onUpdate:page":t[21]||(t[21]=a=>e(g).page.value=a),"items-per-page":e(g).itemsPerPage.value,"onUpdate:itemsPerPage":t[22]||(t[22]=a=>e(g).itemsPerPage.value=a),"project-id":l.params.projectId,data:e(g).data.value,loading:e(g).isLoading.value,"hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading"])]),_:1},8,["count"]),o(e(U),{title:"Workers",icon:"mdi-progress-wrench",count:e(f).data.value.total},{default:s(()=>[o(e(Ne),{search:e(f).search.value,"onUpdate:search":t[23]||(t[23]=a=>e(f).search.value=a),"sort-by":e(f).sortBy.value,"onUpdate:sortBy":t[24]||(t[24]=a=>e(f).sortBy.value=a),page:e(f).page.value,"onUpdate:page":t[25]||(t[25]=a=>e(f).page.value=a),"items-per-page":e(f).itemsPerPage.value,"onUpdate:itemsPerPage":t[26]||(t[26]=a=>e(f).itemsPerPage.value=a),"project-id":l.params.projectId,data:e(f).data.value,loading:e(f).isLoading.value,"hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading"])]),_:1},8,["count"]),o(e(U),{title:"Artifacts",icon:"mdi-package-variant",count:e(y).data.value.total},{default:s(()=>[o(e(Te),{search:e(y).search.value,"onUpdate:search":t[27]||(t[27]=a=>e(y).search.value=a),"sort-by":e(y).sortBy.value,"onUpdate:sortBy":t[28]||(t[28]=a=>e(y).sortBy.value=a),page:e(y).page.value,"onUpdate:page":t[29]||(t[29]=a=>e(y).page.value=a),"items-per-page":e(y).itemsPerPage.value,"onUpdate:itemsPerPage":t[30]||(t[30]=a=>e(y).itemsPerPage.value=a),"project-id":l.params.projectId,data:e(y).data.value,loading:e(y).isLoading.value,"hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading"])]),_:1},8,["count"])]),_:1})]),_:1})):N("",!0),e(n)?(B(),z(e(we),{key:1,visible:e(C),"onUpdate:visible":t[31]||(t[31]=a=>K(C)?C.value=a:null),"service-account":e(n),loading:e(i),onSave:J},null,8,["visible","service-account","loading"])):N("",!0),o(Se,{modelValue:e(r),"onUpdate:modelValue":t[33]||(t[33]=a=>K(r)?r.value=a:null),"max-width":"480"},{default:s(()=>[o(je,{title:"Delete project service account"},{default:s(()=>[o(Be,null,{default:s(()=>[...t[37]||(t[37]=[k(" This permanently deletes the service account and all of its role bindings. ",-1)])]),_:1}),o(Ue,null,{default:s(()=>[o(ke),o(x,{disabled:e(u),onClick:t[32]||(t[32]=a=>r.value=!1)},{default:s(()=>[...t[38]||(t[38]=[k("Cancel",-1)])]),_:1},8,["disabled"]),o(x,{color:"error",loading:e(u),onClick:X},{default:s(()=>[...t[39]||(t[39]=[k("Delete",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64))}});export{yt as default};
@@ -1 +1 @@
1
- import{s as O,_ as G,u as H,t as K}from"#entry";import{_ as D,I as Q}from"./DKbLex6i.js";import{S as W}from"./C7Ij7g1p.js";import{u as Y,_ as X}from"./Cq4nuP-7.js";import{E as N,aG as M,u as F,aP as P,V as f,J as S,D as e,Y as $,aI as E,_ as i,$ as A,a0 as h,a1 as _,a2 as s,W as n,a as R,aN as q,at as w,aa as T,ab as L,aQ as z,aO as J,r as v,j as U,ao as Z,d as ee,ah as te,aR as ae,aS as ne,ai as le,aj as ie,aJ as oe,aK as se}from"./-NXdyIEV.js";import{D as de,a as ue}from"./Bc-UhGEo.js";import{_ as j}from"./DSTHpVUV.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./VQuDbHHR.js";import"./D9y446qR.js";const ce={class:"pa-4"},re={class:"binding-form mb-6"},me={class:"text-right"},ve={key:0},fe=N({__name:"BackendServiceAccountRoleBindingsTable",props:J({serviceAccountId:{},readonly:{type:Boolean}},{count:{default:0},countModifiers:{}}),emits:["update:count"],async setup(m){let k,B;const C=M(m,"count"),{$client:I}=F(),y=v([]),l=v([]),d=v(null),u=v(!1),p=v(null),V=U(()=>{const c=new Map(y.value.map(a=>[a.roleId,a]));return l.value.filter(a=>c.has(a.id)).map(a=>({...a,binding:c.get(a.id)}))}),o=U(()=>{const c=new Set(y.value.map(a=>a.roleId));return l.value.filter(a=>!c.has(a.id))});async function r(){u.value=!0;try{const c=await I.backendServiceAccountSettings.getRoleBindings.query({serviceAccountId:m.serviceAccountId}),a=await O(t=>I.backendRoleSettings.query.query(t));y.value=c,C.value=c.length,l.value=a,p.value=null}catch(c){p.value=c instanceof Error?c.message:"Failed to load role bindings"}finally{u.value=!1}}async function g(){if(d.value){u.value=!0;try{await I.backendServiceAccountSettings.addRoleBinding.mutate({roleId:d.value,serviceAccountId:m.serviceAccountId}),d.value=null,await r()}catch(c){p.value=c instanceof Error?c.message:"Failed to update role bindings"}finally{u.value=!1}}}async function x(c){u.value=!0;try{await I.backendServiceAccountSettings.removeRoleBinding.mutate({roleId:c,serviceAccountId:m.serviceAccountId}),await r()}catch(a){p.value=a instanceof Error?a.message:"Failed to update role bindings"}finally{u.value=!1}}return[k,B]=P(()=>r()),await k,B(),(c,a)=>(f(),S("div",ce,[e(p)?(f(),$(E,{key:0,type:"error",density:"compact",class:"mb-4"},{default:i(()=>[A(h(e(p)),1)]),_:1})):_("",!0),s("div",re,[n(q,{modelValue:e(d),"onUpdate:modelValue":a[0]||(a[0]=t=>R(d)?d.value=t:null),items:e(o),"item-title":"meta.title","item-value":"id",label:"Role",density:"compact",variant:"outlined","hide-details":"",disabled:m.readonly||e(u)},null,8,["modelValue","items","disabled"]),n(w,{class:"binding-action",color:"primary",disabled:m.readonly||!e(d),loading:e(u),onClick:g},{default:i(()=>[...a[1]||(a[1]=[A(" Add ",-1)])]),_:1},8,["disabled","loading"])]),n(z,null,{default:i(()=>[a[3]||(a[3]=s("thead",null,[s("tr",null,[s("th",null,"Role"),s("th",null,"Created"),s("th",{class:"text-right"},"Actions")])],-1)),s("tbody",null,[(f(!0),S(T,null,L(e(V),t=>(f(),S("tr",{key:t.id},[s("td",null,h(t.meta.title),1),s("td",null,[n(D,{value:t.binding.createdAt},null,8,["value"])]),s("td",me,[n(w,{icon:"mdi-delete-outline",variant:"text",size:"small",disabled:m.readonly,onClick:b=>x(t.id)},null,8,["disabled","onClick"])])]))),128)),!e(u)&&e(V).length===0?(f(),S("tr",ve,[...a[2]||(a[2]=[s("td",{colspan:"3",class:"text-center text-medium-emphasis py-4"},"No roles",-1)])])):_("",!0)])]),_:1})]))}}),ge=G(fe,[["__scopeId","data-v-3c9cd839"]]),ye={class:"pa-4"},pe={key:0},be=N({__name:"BackendProjectBindingsTable",props:J({serviceAccountId:{},readonly:{type:Boolean}},{count:{default:0},countModifiers:{}}),emits:["update:count"],async setup(m){let k,B;const C=M(m,"count"),{$client:I}=F(),y=v([]),l=ee(new Set),d=v(null);async function u(){try{y.value=await I.backendServiceAccountSettings.getProjectBindingOptions.query({serviceAccountId:m.serviceAccountId}),C.value=y.value.filter(o=>o.binding).length,d.value=null}catch(o){d.value=o instanceof Error?o.message:"Failed to load project bindings"}}function p(o){return o.serviceAccounts.length>0||!o.binding?o.serviceAccounts:[{id:o.binding.projectServiceAccountId,meta:{title:o.binding.projectServiceAccountId},systemName:null}]}async function V(o,r){l.add(o);try{await I.backendServiceAccountSettings.setProjectBinding.mutate({serviceAccountId:m.serviceAccountId,projectId:o,projectServiceAccountId:r}),await u()}finally{l.delete(o)}}return[k,B]=P(()=>u()),await k,B(),(o,r)=>(f(),S("div",ye,[e(d)?(f(),$(E,{key:0,type:"error",density:"compact",class:"mb-4"},{default:i(()=>[A(h(e(d)),1)]),_:1})):_("",!0),n(z,null,{default:i(()=>[r[1]||(r[1]=s("thead",null,[s("tr",null,[s("th",null,"Project"),s("th",null,"Status"),s("th",null,"Project service account")])],-1)),s("tbody",null,[(f(!0),S(T,null,L(e(y),g=>(f(),S("tr",{key:g.projectId},[s("td",null,h(g.projectMeta.title),1),s("td",null,[n(Z,{color:g.unlocked?"success":"warning",size:"small"},{default:i(()=>[A(h(g.unlocked?"Unlocked":"Locked"),1)]),_:2},1032,["color"])]),s("td",null,[n(q,{"model-value":g.binding?.projectServiceAccountId??null,items:p(g),"item-title":"meta.title","item-value":"id",density:"compact",variant:"outlined","hide-details":"",clearable:"",disabled:m.readonly||!g.unlocked,loading:e(l).has(g.projectId),"onUpdate:modelValue":x=>V(g.projectId,x)},null,8,["model-value","items","disabled","loading","onUpdate:modelValue"])])]))),128)),e(y).length===0?(f(),S("tr",pe,[...r[0]||(r[0]=[s("td",{colspan:"3",class:"text-center text-medium-emphasis py-4"},"No projects",-1)])])):_("",!0)])]),_:1})]))}}),ke={class:"d-flex ga-2"},he=N({__name:"[serviceAccountId]",props:{params:{}},async setup(m){let k,B;const C=Y(),I=H(),y=m.params.serviceAccountId,l=v(([k,B]=P(()=>C.get(y)),k=await k,B(),k)),d=v(!1),u=v(!1),p=v(!1),V=v(!1),o=v(0),r=v(0);if(!l.value)throw K({statusCode:404,statusMessage:"Backend service account not found"});const g=[{key:"id",label:"Service account ID"},{key:"createdAt",label:"Created"},{key:"updatedAt",label:"Last updated"}];async function x(a){p.value=!0;try{l.value=await C.update(y,a),d.value=!1}finally{p.value=!1}}async function c(){V.value=!0;try{await C.delete(y),await I.push({name:"settings.backend-service-accounts"})}finally{V.value=!1}}return(a,t)=>(f(),S(T,null,[e(l)?(f(),$(e(ue),{key:0},{default:i(()=>[n(e(W),{meta:e(l).meta,"fallback-icon":"mdi-account-key",title:e(l).meta.title,description:e(l).meta.description},ae({_:2},[e(l).systemName?void 0:{name:"actions",fn:i(()=>[s("div",ke,[n(w,{variant:"outlined","prepend-icon":"mdi-pencil",onClick:t[0]||(t[0]=b=>d.value=!0)},{default:i(()=>[...t[7]||(t[7]=[A(" Edit ",-1)])]),_:1}),n(w,{color:"error",variant:"outlined","prepend-icon":"mdi-delete",onClick:t[1]||(t[1]=b=>u.value=!0)},{default:i(()=>[...t[8]||(t[8]=[A(" Delete ",-1)])]),_:1})])]),key:"0"}]),1032,["meta","title","description"]),e(l).systemName?(f(),$(E,{key:0,type:"info",variant:"tonal",style:{flex:"none"}},{default:i(()=>[...t[9]||(t[9]=[A(" This system-managed service account is read-only. ",-1)])]),_:1})):_("",!0),n(e(de),{title:"Backend Service Account Details",items:g},{"item.id":i(()=>[n(e(Q),{value:e(l).id},null,8,["value"])]),"item.createdAt":i(()=>[n(e(D),{value:e(l).createdAt},null,8,["value"])]),"item.updatedAt":i(()=>[n(e(D),{value:e(l).updatedAt},null,8,["value"])]),_:1}),n(ne,{elevation:0},{default:i(()=>[n(e(j),{title:"Roles",icon:"mdi-shield-account",count:e(o)},{default:i(()=>[n(e(ge),{count:e(o),"onUpdate:count":t[2]||(t[2]=b=>R(o)?o.value=b:null),"service-account-id":e(l).id,readonly:!!e(l).systemName},null,8,["count","service-account-id","readonly"])]),_:1},8,["count"]),n(e(j),{title:"Projects",icon:"mdi-folder-key",count:e(r)},{default:i(()=>[n(e(be),{count:e(r),"onUpdate:count":t[3]||(t[3]=b=>R(r)?r.value=b:null),"service-account-id":e(l).id,readonly:!!e(l).systemName},null,8,["count","service-account-id","readonly"])]),_:1},8,["count"])]),_:1})]),_:1})):_("",!0),e(l)?(f(),$(e(X),{key:1,visible:e(d),"onUpdate:visible":t[4]||(t[4]=b=>R(d)?d.value=b:null),"service-account":e(l),loading:e(p),onSave:x},null,8,["visible","service-account","loading"])):_("",!0),n(te,{modelValue:e(u),"onUpdate:modelValue":t[6]||(t[6]=b=>R(u)?u.value=b:null),"max-width":"480"},{default:i(()=>[n(le,{title:"Delete backend service account"},{default:i(()=>[n(ie,null,{default:i(()=>[...t[10]||(t[10]=[A(" This permanently deletes the service account and all of its role and project bindings. ",-1)])]),_:1}),n(oe,null,{default:i(()=>[n(se),n(w,{variant:"text",onClick:t[5]||(t[5]=b=>u.value=!1)},{default:i(()=>[...t[11]||(t[11]=[A("Cancel",-1)])]),_:1}),n(w,{color:"error",loading:e(V),onClick:c},{default:i(()=>[...t[12]||(t[12]=[A("Delete",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64))}});export{he as default};
1
+ import{t as O,_ as G,u as H,v as K}from"#entry";import{_ as D,I as Q}from"./CHVFVVjA.js";import{S as W}from"./DlfNK0cA.js";import{u as Y,_ as X}from"./CAqURRGH.js";import{E as N,aG as M,u as F,aP as P,V as f,J as S,D as e,Y as $,aI as E,_ as i,$ as A,a0 as h,a1 as _,a2 as s,W as n,a as R,aN as q,at as w,aa as T,ab as L,aQ as z,aO as J,r as v,j as U,ao as Z,d as ee,ah as te,aR as ae,aS as ne,ai as le,aj as ie,aJ as oe,aK as se}from"./-NXdyIEV.js";import{D as de,a as ue}from"./BvF6CC6t.js";import{_ as j}from"./DSTHpVUV.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./4vGmo7Ws.js";import"./D9y446qR.js";const ce={class:"pa-4"},re={class:"binding-form mb-6"},me={class:"text-right"},ve={key:0},fe=N({__name:"BackendServiceAccountRoleBindingsTable",props:J({serviceAccountId:{},readonly:{type:Boolean}},{count:{default:0},countModifiers:{}}),emits:["update:count"],async setup(m){let k,B;const C=M(m,"count"),{$client:I}=F(),y=v([]),l=v([]),d=v(null),u=v(!1),p=v(null),V=U(()=>{const c=new Map(y.value.map(a=>[a.roleId,a]));return l.value.filter(a=>c.has(a.id)).map(a=>({...a,binding:c.get(a.id)}))}),o=U(()=>{const c=new Set(y.value.map(a=>a.roleId));return l.value.filter(a=>!c.has(a.id))});async function r(){u.value=!0;try{const c=await I.backendServiceAccountSettings.getRoleBindings.query({serviceAccountId:m.serviceAccountId}),a=await O(t=>I.backendRoleSettings.query.query(t));y.value=c,C.value=c.length,l.value=a,p.value=null}catch(c){p.value=c instanceof Error?c.message:"Failed to load role bindings"}finally{u.value=!1}}async function g(){if(d.value){u.value=!0;try{await I.backendServiceAccountSettings.addRoleBinding.mutate({roleId:d.value,serviceAccountId:m.serviceAccountId}),d.value=null,await r()}catch(c){p.value=c instanceof Error?c.message:"Failed to update role bindings"}finally{u.value=!1}}}async function x(c){u.value=!0;try{await I.backendServiceAccountSettings.removeRoleBinding.mutate({roleId:c,serviceAccountId:m.serviceAccountId}),await r()}catch(a){p.value=a instanceof Error?a.message:"Failed to update role bindings"}finally{u.value=!1}}return[k,B]=P(()=>r()),await k,B(),(c,a)=>(f(),S("div",ce,[e(p)?(f(),$(E,{key:0,type:"error",density:"compact",class:"mb-4"},{default:i(()=>[A(h(e(p)),1)]),_:1})):_("",!0),s("div",re,[n(q,{modelValue:e(d),"onUpdate:modelValue":a[0]||(a[0]=t=>R(d)?d.value=t:null),items:e(o),"item-title":"meta.title","item-value":"id",label:"Role",density:"compact",variant:"outlined","hide-details":"",disabled:m.readonly||e(u)},null,8,["modelValue","items","disabled"]),n(w,{class:"binding-action",color:"primary",disabled:m.readonly||!e(d),loading:e(u),onClick:g},{default:i(()=>[...a[1]||(a[1]=[A(" Add ",-1)])]),_:1},8,["disabled","loading"])]),n(z,null,{default:i(()=>[a[3]||(a[3]=s("thead",null,[s("tr",null,[s("th",null,"Role"),s("th",null,"Created"),s("th",{class:"text-right"},"Actions")])],-1)),s("tbody",null,[(f(!0),S(T,null,L(e(V),t=>(f(),S("tr",{key:t.id},[s("td",null,h(t.meta.title),1),s("td",null,[n(D,{value:t.binding.createdAt},null,8,["value"])]),s("td",me,[n(w,{icon:"mdi-delete-outline",variant:"text",size:"small",disabled:m.readonly,onClick:b=>x(t.id)},null,8,["disabled","onClick"])])]))),128)),!e(u)&&e(V).length===0?(f(),S("tr",ve,[...a[2]||(a[2]=[s("td",{colspan:"3",class:"text-center text-medium-emphasis py-4"},"No roles",-1)])])):_("",!0)])]),_:1})]))}}),ge=G(fe,[["__scopeId","data-v-3c9cd839"]]),ye={class:"pa-4"},pe={key:0},be=N({__name:"BackendProjectBindingsTable",props:J({serviceAccountId:{},readonly:{type:Boolean}},{count:{default:0},countModifiers:{}}),emits:["update:count"],async setup(m){let k,B;const C=M(m,"count"),{$client:I}=F(),y=v([]),l=ee(new Set),d=v(null);async function u(){try{y.value=await I.backendServiceAccountSettings.getProjectBindingOptions.query({serviceAccountId:m.serviceAccountId}),C.value=y.value.filter(o=>o.binding).length,d.value=null}catch(o){d.value=o instanceof Error?o.message:"Failed to load project bindings"}}function p(o){return o.serviceAccounts.length>0||!o.binding?o.serviceAccounts:[{id:o.binding.projectServiceAccountId,meta:{title:o.binding.projectServiceAccountId},systemName:null}]}async function V(o,r){l.add(o);try{await I.backendServiceAccountSettings.setProjectBinding.mutate({serviceAccountId:m.serviceAccountId,projectId:o,projectServiceAccountId:r}),await u()}finally{l.delete(o)}}return[k,B]=P(()=>u()),await k,B(),(o,r)=>(f(),S("div",ye,[e(d)?(f(),$(E,{key:0,type:"error",density:"compact",class:"mb-4"},{default:i(()=>[A(h(e(d)),1)]),_:1})):_("",!0),n(z,null,{default:i(()=>[r[1]||(r[1]=s("thead",null,[s("tr",null,[s("th",null,"Project"),s("th",null,"Status"),s("th",null,"Project service account")])],-1)),s("tbody",null,[(f(!0),S(T,null,L(e(y),g=>(f(),S("tr",{key:g.projectId},[s("td",null,h(g.projectMeta.title),1),s("td",null,[n(Z,{color:g.unlocked?"success":"warning",size:"small"},{default:i(()=>[A(h(g.unlocked?"Unlocked":"Locked"),1)]),_:2},1032,["color"])]),s("td",null,[n(q,{"model-value":g.binding?.projectServiceAccountId??null,items:p(g),"item-title":"meta.title","item-value":"id",density:"compact",variant:"outlined","hide-details":"",clearable:"",disabled:m.readonly||!g.unlocked,loading:e(l).has(g.projectId),"onUpdate:modelValue":x=>V(g.projectId,x)},null,8,["model-value","items","disabled","loading","onUpdate:modelValue"])])]))),128)),e(y).length===0?(f(),S("tr",pe,[...r[0]||(r[0]=[s("td",{colspan:"3",class:"text-center text-medium-emphasis py-4"},"No projects",-1)])])):_("",!0)])]),_:1})]))}}),ke={class:"d-flex ga-2"},he=N({__name:"[serviceAccountId]",props:{params:{}},async setup(m){let k,B;const C=Y(),I=H(),y=m.params.serviceAccountId,l=v(([k,B]=P(()=>C.get(y)),k=await k,B(),k)),d=v(!1),u=v(!1),p=v(!1),V=v(!1),o=v(0),r=v(0);if(!l.value)throw K({statusCode:404,statusMessage:"Backend service account not found"});const g=[{key:"id",label:"Service account ID"},{key:"createdAt",label:"Created"},{key:"updatedAt",label:"Last updated"}];async function x(a){p.value=!0;try{l.value=await C.update(y,a),d.value=!1}finally{p.value=!1}}async function c(){V.value=!0;try{await C.delete(y),await I.push({name:"settings.backend-service-accounts"})}finally{V.value=!1}}return(a,t)=>(f(),S(T,null,[e(l)?(f(),$(e(ue),{key:0},{default:i(()=>[n(e(W),{meta:e(l).meta,"fallback-icon":"mdi-account-key",title:e(l).meta.title,description:e(l).meta.description},ae({_:2},[e(l).systemName?void 0:{name:"actions",fn:i(()=>[s("div",ke,[n(w,{variant:"outlined","prepend-icon":"mdi-pencil",onClick:t[0]||(t[0]=b=>d.value=!0)},{default:i(()=>[...t[7]||(t[7]=[A(" Edit ",-1)])]),_:1}),n(w,{color:"error",variant:"outlined","prepend-icon":"mdi-delete",onClick:t[1]||(t[1]=b=>u.value=!0)},{default:i(()=>[...t[8]||(t[8]=[A(" Delete ",-1)])]),_:1})])]),key:"0"}]),1032,["meta","title","description"]),e(l).systemName?(f(),$(E,{key:0,type:"info",variant:"tonal",style:{flex:"none"}},{default:i(()=>[...t[9]||(t[9]=[A(" This system-managed service account is read-only. ",-1)])]),_:1})):_("",!0),n(e(de),{title:"Backend Service Account Details",items:g},{"item.id":i(()=>[n(e(Q),{value:e(l).id},null,8,["value"])]),"item.createdAt":i(()=>[n(e(D),{value:e(l).createdAt},null,8,["value"])]),"item.updatedAt":i(()=>[n(e(D),{value:e(l).updatedAt},null,8,["value"])]),_:1}),n(ne,{elevation:0},{default:i(()=>[n(e(j),{title:"Roles",icon:"mdi-shield-account",count:e(o)},{default:i(()=>[n(e(ge),{count:e(o),"onUpdate:count":t[2]||(t[2]=b=>R(o)?o.value=b:null),"service-account-id":e(l).id,readonly:!!e(l).systemName},null,8,["count","service-account-id","readonly"])]),_:1},8,["count"]),n(e(j),{title:"Projects",icon:"mdi-folder-key",count:e(r)},{default:i(()=>[n(e(be),{count:e(r),"onUpdate:count":t[3]||(t[3]=b=>R(r)?r.value=b:null),"service-account-id":e(l).id,readonly:!!e(l).systemName},null,8,["count","service-account-id","readonly"])]),_:1},8,["count"])]),_:1})]),_:1})):_("",!0),e(l)?(f(),$(e(X),{key:1,visible:e(d),"onUpdate:visible":t[4]||(t[4]=b=>R(d)?d.value=b:null),"service-account":e(l),loading:e(p),onSave:x},null,8,["visible","service-account","loading"])):_("",!0),n(te,{modelValue:e(u),"onUpdate:modelValue":t[6]||(t[6]=b=>R(u)?u.value=b:null),"max-width":"480"},{default:i(()=>[n(le,{title:"Delete backend service account"},{default:i(()=>[n(ie,null,{default:i(()=>[...t[10]||(t[10]=[A(" This permanently deletes the service account and all of its role and project bindings. ",-1)])]),_:1}),n(oe,null,{default:i(()=>[n(se),n(w,{variant:"text",onClick:t[5]||(t[5]=b=>u.value=!1)},{default:i(()=>[...t[11]||(t[11]=[A("Cancel",-1)])]),_:1}),n(w,{color:"error",loading:e(V),onClick:c},{default:i(()=>[...t[12]||(t[12]=[A("Delete",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64))}});export{he as default};
@@ -1 +1 @@
1
- import{_ as d}from"#entry";import{E as u,aG as p,V as m,Y as f,_ as t,W as a,ai as v,aj as V,aI as k,$ as s,a2 as i,a0 as c,aK as r,D as y,aJ as b,at as g,ah as x,aO as C}from"./-NXdyIEV.js";import{I as _}from"./BqAcL3eq.js";import"./C7Ij7g1p.js";const I={class:"d-flex align-center token-value pa-3"},w=u({__name:"ApiKeyTokenDialog",props:C({token:{}},{visible:{type:Boolean,required:!0},visibleModifiers:{}}),emits:["update:visible"],setup(o){const l=p(o,"visible");return(A,e)=>(m(),f(x,{modelValue:l.value,"onUpdate:modelValue":e[1]||(e[1]=n=>l.value=n),"max-width":"680",persistent:""},{default:t(()=>[a(v,{title:"API key token"},{default:t(()=>[a(V,null,{default:t(()=>[a(k,{type:"warning",variant:"tonal",class:"mb-4"},{default:t(()=>[...e[2]||(e[2]=[s(" Copy this token now. It will not be shown again. ",-1)])]),_:1}),i("div",I,[i("code",null,c(o.token),1),a(r),a(y(_),{content:o.token},null,8,["content"])])]),_:1}),a(b,null,{default:t(()=>[a(r),a(g,{color:"primary",onClick:e[0]||(e[0]=n=>l.value=!1)},{default:t(()=>[...e[3]||(e[3]=[s("I have copied the token",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"]))}}),M=d(w,[["__scopeId","data-v-8d23b27d"]]);export{M as A};
1
+ import{_ as d}from"#entry";import{E as u,aG as p,V as m,Y as f,_ as t,W as a,ai as v,aj as V,aI as k,$ as s,a2 as i,a0 as c,aK as r,D as y,aJ as b,at as g,ah as x,aO as C}from"./-NXdyIEV.js";import{I as _}from"./BqAcL3eq.js";import"./DlfNK0cA.js";const I={class:"d-flex align-center token-value pa-3"},w=u({__name:"ApiKeyTokenDialog",props:C({token:{}},{visible:{type:Boolean,required:!0},visibleModifiers:{}}),emits:["update:visible"],setup(o){const l=p(o,"visible");return(A,e)=>(m(),f(x,{modelValue:l.value,"onUpdate:modelValue":e[1]||(e[1]=n=>l.value=n),"max-width":"680",persistent:""},{default:t(()=>[a(v,{title:"API key token"},{default:t(()=>[a(V,null,{default:t(()=>[a(k,{type:"warning",variant:"tonal",class:"mb-4"},{default:t(()=>[...e[2]||(e[2]=[s(" Copy this token now. It will not be shown again. ",-1)])]),_:1}),i("div",I,[i("code",null,c(o.token),1),a(r),a(y(_),{content:o.token},null,8,["content"])])]),_:1}),a(b,null,{default:t(()=>[a(r),a(g,{color:"primary",onClick:e[0]||(e[0]=n=>l.value=!1)},{default:t(()=>[...e[3]||(e[3]=[s("I have copied the token",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"]))}}),M=d(w,[["__scopeId","data-v-8d23b27d"]]);export{M as A};
@@ -1 +1 @@
1
- import{K as m,C as d,D as g}from"#entry";import"./C7Ij7g1p.js";import{S as c}from"./DEdaEI2J.js";import{_ as l}from"./k0GHL-8U.js";import{E as f,aP as n,Y as u,_ as y,D as t,V as P,W as _}from"./-NXdyIEV.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./VQuDbHHR.js";import"./D9y446qR.js";import"./BKZ346WY.js";import"./DKbLex6i.js";import"./CZyQa1Zc.js";const V=f({__name:"index",async setup(j){let r,o;const e=m(),{projectStore:s}=d();return s.initializing?([r,o]=n(()=>g(()=>s.initialized).toBe(!0)),await r,o(),s.addLibraryRoot()):([r,o]=n(()=>s.initialize1()),await r,o(),[r,o]=n(()=>s.initialize2()),await r,o()),e.items.load(),(S,i)=>(P(),u(t(c),{title:"Artifacts",icon:"mdi-package-variant",description:"Manage the artifacts produced by units or other components in your project."},{default:y(({height:p})=>[_(t(l),{search:t(e).items.search,"onUpdate:search":i[0]||(i[0]=a=>t(e).items.search=a),"sort-by":t(e).items.sortBy,"onUpdate:sortBy":i[1]||(i[1]=a=>t(e).items.sortBy=a),page:t(e).items.page,"onUpdate:page":i[2]||(i[2]=a=>t(e).items.page=a),"items-per-page":t(e).items.itemsPerPage,"onUpdate:itemsPerPage":i[3]||(i[3]=a=>t(e).items.itemsPerPage=a),"project-id":t(s).projectId,data:t(e).items.data,loading:t(e).items.isLoading,height:p},null,8,["search","sort-by","page","items-per-page","project-id","data","loading","height"])]),_:1}))}});export{V as default};
1
+ import{L as m,D as d,E as g}from"#entry";import"./DlfNK0cA.js";import{S as c}from"./DXmPWjsX.js";import{_ as l}from"./BQvzkDFt.js";import{E as f,aP as n,Y as u,_ as y,D as t,V as P,W as _}from"./-NXdyIEV.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./4vGmo7Ws.js";import"./D9y446qR.js";import"./DfDsDJD2.js";import"./CHVFVVjA.js";import"./CBtqoa0c.js";const E=f({__name:"index",async setup(j){let r,o;const e=m(),{projectStore:s}=d();return s.initializing?([r,o]=n(()=>g(()=>s.initialized).toBe(!0)),await r,o(),s.addLibraryRoot()):([r,o]=n(()=>s.initialize1()),await r,o(),[r,o]=n(()=>s.initialize2()),await r,o()),e.items.load(),(S,i)=>(P(),u(t(c),{title:"Artifacts",icon:"mdi-package-variant",description:"Manage the artifacts produced by units or other components in your project."},{default:y(({height:p})=>[_(t(l),{search:t(e).items.search,"onUpdate:search":i[0]||(i[0]=a=>t(e).items.search=a),"sort-by":t(e).items.sortBy,"onUpdate:sortBy":i[1]||(i[1]=a=>t(e).items.sortBy=a),page:t(e).items.page,"onUpdate:page":i[2]||(i[2]=a=>t(e).items.page=a),"items-per-page":t(e).items.itemsPerPage,"onUpdate:itemsPerPage":i[3]||(i[3]=a=>t(e).items.itemsPerPage=a),"project-id":t(s).projectId,data:t(e).items.data,loading:t(e).items.isLoading,height:p},null,8,["search","sort-by","page","items-per-page","project-id","data","loading","height"])]),_:1}))}});export{E as default};
@@ -1 +1 @@
1
- import{n as m,_ as s}from"#entry";import{E as r,V as t,Y as o,ao as f,_ as c,$ as d,a0 as u,D as n,a1 as g,j as h}from"./-NXdyIEV.js";import{_ as x}from"./VQuDbHHR.js";const C=r({__name:"EntityRefChip",props:{id:{},fallbackIcon:{},pageName:{},pageParams:{},meta:{},color:{},maxLength:{default:20}},setup(a){const i=()=>{m({name:a.pageName,params:a.pageParams})},l=h(()=>{const e=a.meta?.title??a.id;return e.length<=a.maxLength?e:`${e.slice(0,a.maxLength)}...`});return(e,k)=>(t(),o(f,{color:a.meta?.color??a.color,class:"font-weight-bold cursor-pointer",size:"small",onClick:i},{prepend:c(()=>[a.meta?.icon||a.fallbackIcon?(t(),o(n(x),{key:0,icon:a.fallbackIcon,"custom-icon":a.meta?.icon,color:a.meta?.iconColor,size:16,class:"mr-1"},null,8,["icon","custom-icon","color"])):g("",!0)]),default:c(()=>[d(" "+u(n(l)),1)]),_:1},8,["color"]))}}),I=s(C,[["__scopeId","data-v-cf302215"]]);export{I as E};
1
+ import{n as m,_ as s}from"#entry";import{E as r,V as t,Y as o,ao as f,_ as c,$ as d,a0 as u,D as n,a1 as g,j as h}from"./-NXdyIEV.js";import{_ as x}from"./4vGmo7Ws.js";const C=r({__name:"EntityRefChip",props:{id:{},fallbackIcon:{},pageName:{},pageParams:{},meta:{},color:{},maxLength:{default:20}},setup(a){const i=()=>{m({name:a.pageName,params:a.pageParams})},l=h(()=>{const e=a.meta?.title??a.id;return e.length<=a.maxLength?e:`${e.slice(0,a.maxLength)}...`});return(e,k)=>(t(),o(f,{color:a.meta?.color??a.color,class:"font-weight-bold cursor-pointer",size:"small",onClick:i},{prepend:c(()=>[a.meta?.icon||a.fallbackIcon?(t(),o(n(x),{key:0,icon:a.fallbackIcon,"custom-icon":a.meta?.icon,color:a.meta?.iconColor,size:16,class:"mr-1"},null,8,["icon","custom-icon","color"])):g("",!0)]),default:c(()=>[d(" "+u(n(l)),1)]),_:1},8,["color"]))}}),I=s(C,[["__scopeId","data-v-cf302215"]]);export{I as E};
@@ -1 +1 @@
1
- import{C as J,O as De,bB as je,bC as Ae,_ as be,i as pe,aR as Ve,n as ze,aI as Ge,bi as ve,aW as Re,bD as Ee,b1 as qe}from"#entry";import{E as z,V as l,Y as $,ai as ce,_ as o,W as n,aj as fe,$ as j,a0 as q,D as e,al as We,a1 as V,j as S,a_ as me,J as B,aX as Te,a2 as O,a7 as Oe,aG as _,aa as A,ab as se,aY as ye,aO as ee,w as te,ah as we,aT as Pe,aU as Fe,aV as ue,ak as He,a as Y,aW as Ye,as as R,aI as he,aJ as Ie,aK as ke,at as re,Z as de,r as C,b4 as Se,am as xe,an as ge,bi as Je,ap as Me,m as Ke,M as Qe,a5 as Xe}from"./-NXdyIEV.js";import{H as Ze,I as _e}from"./3RbcgHkU.js";import{I as et}from"./Bsca_muP.js";import{_ as L,a as tt}from"./D3MpZ_Sw.js";import{C as nt}from"./A3pA-dEU.js";import{P as at}from"./DsxZEVxb.js";const $e=z({__name:"EditorLoader",props:{text:{},value:{}},setup(t){const{instancesStore:a}=J(),y=S(()=>t.value===-1?t.text:`${t.text} ${t.value}/${a.totalInstanceCount}...`);return(w,i)=>t.text?(l(),$(ce,{key:0,variant:"tonal"},{default:o(()=>[n(fe,{class:"text-overline"},{default:o(()=>[j(q(e(y)),1)]),_:1}),n(We,{indeterminate:t.value===-1,"model-value":t.value,max:e(a).totalInstanceCount,height:4,color:"primary",class:"w-full"},null,8,["indeterminate","model-value","max"])]),_:1})):V("",!0)}}),Rt=z({__name:"EditorLoaderPopup",setup(t){const{instancesStore:a,stateStore:y}=J(),w=S(()=>a.initializationPhase==="resolving"||y.initializationPhase==="calculating");return(i,v)=>e(w)?(l(),$(ce,{key:0,variant:"tonal"},{default:o(()=>[e(a).initializationPhase==="resolving"?(l(),$($e,{key:0,text:"Resolving instance inputs",value:e(a).resolvedInstanceCount},null,8,["value"])):V("",!0),e(y).initializationPhase==="calculating"?(l(),$($e,{key:1,text:"Detecting instance changes",value:e(y).calculatedInputHashCount},null,8,["value"])):V("",!0)]),_:1})):V("",!0)}}),Et=z({__name:"HubNodeWrapper",props:{id:{},type:{},selected:{type:Boolean},connectable:{type:[Boolean,Number,String,Function]},position:{},dimensions:{},label:{},isValidTargetPos:{type:Function},isValidSourcePos:{type:Function},parent:{},parentNodeId:{},dragging:{type:Boolean},resizing:{type:Boolean},zIndex:{},targetPosition:{},sourcePosition:{},dragHandle:{},data:{},events:{}},setup(t){const{stateStore:a}=J(),y=me("contextMenu");return(w,i)=>(l(),$(Ze,{hub:t.data.hub,onContextmenu:i[0]||(i[0]=v=>e(y)?.showContextMenu(v))},{default:o(()=>[n(e(Be),{ref_key:"contextMenu",ref:y,title:"Hub",subtitle:t.data.hub.id,"is-deletable":v=>e(a).isNodeDeletable(v)},null,8,["subtitle","is-deletable"])]),_:1},8,["hub"]))}}),st={key:0},ot={class:"d-flex flex-column"},it={key:0,class:"text-caption text-medium-emphasis"},lt={key:1,class:"text-body-2 text-medium-emphasis pa-4"},rt=z({__name:"OperationPlanTree",props:{phases:{}},setup(t){const{instancesStore:a,libraryStore:y}=J(),w=S(()=>{const p=[];for(const s of t.phases){const d={id:`phase-${s.type}`,title:`${s.type.charAt(0).toUpperCase()+s.type.slice(1)} Phase`,subtitle:`${s.instances.length} instance${s.instances.length===1?"":"s"}`,icon:r(s.type),iconColor:I(s.type),phaseType:s.type,children:[]},c=i(s.instances);d.children=c,p.push(d)}return p}),i=p=>{const s=new Map;for(const c of p)s.has(c.id)||s.set(c.id,{...c,children:[]});for(const c of p)c.parentId&&s.has(c.parentId)&&s.get(c.parentId).children.push(c);return p.filter(c=>!c.parentId||!s.has(c.parentId)).map(c=>v(c,s))},v=(p,s)=>{const d=a.instances.get(p.id),c=d?y.library.components[d.type]:null,h={id:p.id,title:c&&d?`${c.meta.title} "${d.name}"`:p.id,subtitle:p.message,icon:c?.meta.icon??"iconamoon:component",iconColor:c?.meta.iconColor,phaseType:"instance"},g=s.get(p.id);return g&&g.children.length>0&&(h.children=g.children.map(f=>v(f,s))),h},r=p=>{switch(p){case"preview":return"mdi-eye";case"destroy":return"mdi-delete";case"update":return"mdi-update";case"refresh":return"mdi-refresh";default:return"mdi-cog"}},I=p=>{switch(p){case"preview":return"secondary";case"destroy":return"error";case"update":return"primary";case"refresh":return"info";default:return"secondary"}};return(p,s)=>t.phases.length>0?(l(),B("div",st,[n(Te,{items:e(w),"item-title":"title","item-value":"id",density:"compact","open-all":"","indent-lines":"","bg-color":"#2d2d2d"},{prepend:o(({item:d})=>[n(e(De),{icon:d.icon,color:d.iconColor,width:"20",class:"mr-2"},null,8,["icon","color"])]),title:o(({item:d})=>[O("div",ot,[O("div",{class:Oe(["text-body-2",d.phaseType==="instance"?"font-weight-regular":"font-weight-medium"])},q(d.title),3),d.subtitle?(l(),B("div",it,q(d.subtitle),1)):V("",!0)])]),_:1},8,["items"])])):(l(),B("div",lt," No changes planned for this operation. "))}}),dt={key:0},ct={class:"text-caption"},ut=z({__name:"OperationOptions",props:ee({operation:{},compositeTargetsOnly:{type:Boolean,default:!1}},{options:{default:{}},optionsModifiers:{}}),emits:["update:options"],setup(t){const a=_(t,"options"),y=S(()=>Ue(t.operation,{compositeTargetsOnly:t.compositeTargetsOnly})),w=(i,v)=>{const r=v??!1;i==="forceUpdateDependencies"&&r&&(a.value.ignoreChangedDependencies=!1,a.value.ignoreDependencies=!1),i==="ignoreChangedDependencies"&&r&&(a.value.forceUpdateDependencies=!1,a.value.ignoreDependencies=!1),i==="ignoreDependencies"&&r&&(a.value.forceUpdateDependencies=!1,a.value.ignoreChangedDependencies=!1),i==="onlyDestroyGhosts"&&r&&(a.value.firstDestroyGhosts=!1,a.value.ignoreGhosts=!1),i==="firstDestroyGhosts"&&r&&(a.value.onlyDestroyGhosts=!1,a.value.ignoreGhosts=!1),i==="ignoreGhosts"&&r&&(a.value.onlyDestroyGhosts=!1,a.value.firstDestroyGhosts=!1),a.value[i]=r};return(i,v)=>a.value?(l(),B("div",dt,[(l(!0),B(A,null,se(e(y),r=>(l(),B(A,{key:r.key},[n(ye,{"model-value":a.value[r.key],"onUpdate:modelValue":I=>w(r.key,I),class:Oe(r===e(y)[0]?"mt-2":""),label:r.label,density:"compact","hide-details":""},null,8,["model-value","onUpdate:modelValue","class","label"]),O("div",ct,q(r.description),1)],64))),128))])):V("",!0)}}),pt={class:"metadata-section"},ft={class:"options-header"},mt={class:"text-body-2 text-medium-emphasis mb-4"},vt={class:"options-scrollable"},gt={class:"plan-header"},yt={class:"plan-scrollable"},ht={key:0,class:"plan-warnings"},bt=z({__name:"InstanceOperationDialog",props:ee({instances:{},component:{},operation:{}},{visible:{type:Boolean},visibleModifiers:{}}),emits:["update:visible"],setup(t){const a=_(t,"visible"),{operationsStore:y,projectStore:w}=J(),i=S(()=>t.instances.length>1),v=S(()=>t.instances[0]),r=C({forceUpdateDependencies:!1,ignoreDependencies:!1,ignoreChangedDependencies:!1,forceUpdateChildren:!1,onlyDestroyGhosts:!1,firstDestroyGhosts:!1,ignoreGhosts:!1,destroyDependentInstances:!1,invokeDestroyTriggers:!0,deleteUnreachableResources:!1,forceDeleteState:!1,allowPartialCompositeInstanceUpdate:!1,allowPartialCompositeInstanceDestruction:!1,refresh:!1}),I=C([]),p=C(!1),s=C(null),d=C(""),c=C(""),h=S(()=>t.instances.every(b=>b.kind==="composite"));te([()=>t.operation,()=>t.instances],()=>{t.instances.length!==0&&(d.value=i.value?je(t.operation,t.instances):Ae(t.operation,v.value),r.value={...r.value,destroyDependentInstances:t.operation==="destroy"})},{immediate:!0}),te(()=>r.value,()=>{g()},{deep:!0}),te(()=>a.value,b=>{b&&g()});const g=async()=>{if(a.value){p.value=!0,s.value=null;try{const b=await y.planOperation({projectId:w.projectId,type:t.operation,instanceIds:t.instances.map(u=>u.id),options:r.value});I.value=b}catch(b){console.error("Failed to load operation plan:",b),s.value=b instanceof Error?b.message:"Unknown error"}finally{p.value=!1}}},f=S(()=>{const b=new Set,u=new Set,U=new Set,ne=new Set,k=new Set;for(const m of I.value)for(const x of m.instances){if(k.add(x.id),m.type==="update"){b.add(x.id);continue}if(m.type==="destroy"){u.add(x.id);continue}if(m.type==="refresh"){U.add(x.id);continue}m.type==="preview"&&ne.add(x.id)}return{update:b.size,destroy:u.size,refresh:U.size,preview:ne.size,unique:k.size}}),M=S(()=>{const b=Ue(t.operation,{compositeTargetsOnly:h.value}).filter(u=>!!u.warning&&!!r.value[u.key]).map(u=>u.warning);return[...new Set(b)]}),D=b=>`${b} instance${b===1?"":"s"}`,P=S(()=>{switch(t.operation){case"update":return"Update";case"preview":return"Preview";case"refresh":return"Refresh";case"destroy":return"Destroy";case"recreate":return"Recreate";default:return"Unknown operation"}}),W=S(()=>{const b=f.value;switch(t.operation){case"update":{const{update:u}=b;return u===0?P.value:`Update ${D(u)}`}case"recreate":return b.unique===0?P.value:`Recreate ${D(b.unique)}`;case"destroy":return b.destroy===0?P.value:`Destroy ${D(b.destroy)}`;case"refresh":return b.refresh===0?P.value:`Refresh ${D(b.refresh)}`;case"preview":return b.preview===0?P.value:`Preview ${D(b.preview)}`;default:return b.unique===0?P.value:`${P.value} ${D(b.unique)}`}}),E=S(()=>{switch(t.operation){case"update":return"primary";case"preview":return"secondary";case"refresh":return"info";case"destroy":return"error";case"recreate":return"warning";default:return"primary"}}),G=C(!1),H=async()=>{G.value=!0;try{await y.launchOperation({projectId:w.projectId,type:t.operation,instanceIds:t.instances.map(b=>b.id),options:r.value,meta:{title:d.value,description:c.value}}),a.value=!1}finally{G.value=!1}},K=S(()=>i.value?`${P.value} ${t.instances.length} instances`:t.component?`${P.value} ${t.component.meta.title} "${v.value.name}"`:`${P.value} "${v.value.name}"`);return(b,u)=>(l(),$(we,{modelValue:a.value,"onUpdate:modelValue":u[4]||(u[4]=U=>a.value=U),"max-width":"1200px",class:"operation-dialog"},{default:o(()=>[n(ce,{title:e(K),color:t.component?.meta.color??"#2d2d2d",class:"operation-card"},{prepend:o(()=>[t.component&&!e(i)?(l(),$(e(nt),{key:0,meta:t.component.meta},null,8,["meta"])):e(i)?(l(),$(de,{key:1},{default:o(()=>[...u[5]||(u[5]=[j("mdi-format-list-bulleted",-1)])]),_:1})):(l(),$(de,{key:2},{default:o(()=>[...u[6]||(u[6]=[j("mdi-cube-outline",-1)])]),_:1}))]),default:o(()=>[n(fe,{class:"operation-card-content"},{default:o(()=>[n(Pe,{fluid:"",class:"pa-0 fill-height"},{default:o(()=>[n(Fe,{"no-gutters":"",class:"fill-height"},{default:o(()=>[n(ue,{cols:"12",md:"5",class:"pr-md-4 column-container"},{default:o(()=>[O("div",pt,[u[7]||(u[7]=O("div",{class:"text-overline mb-2"},"Metadata",-1)),n(He,{modelValue:e(d),"onUpdate:modelValue":u[0]||(u[0]=U=>Y(d)?d.value=U:null),label:"Title",variant:"outlined",density:"compact",class:"mb-3",hint:"A descriptive title for this operation (optional)","persistent-hint":""},null,8,["modelValue"]),n(Ye,{modelValue:e(c),"onUpdate:modelValue":u[1]||(u[1]=U=>Y(c)?c.value=U:null),label:"Description",variant:"outlined",density:"compact",rows:"2",hint:"Describe the purpose of this operation (optional)","persistent-hint":""},null,8,["modelValue"])]),n(R,{class:"my-4"}),O("div",ft,[u[10]||(u[10]=O("div",{class:"text-overline mb-2"},"Options",-1)),O("p",mt,[u[8]||(u[8]=j(" Configure how the ",-1)),O("b",null,q(t.operation),1),u[9]||(u[9]=j(" operation should be executed. These options control the behavior and scope of the operation. ",-1))])]),O("div",vt,[n(ut,{options:e(r),"onUpdate:options":u[2]||(u[2]=U=>Y(r)?r.value=U:null),operation:t.operation,"composite-targets-only":e(h)},null,8,["options","operation","composite-targets-only"])])]),_:1}),n(R,{vertical:"",class:"d-none d-md-flex"}),n(ue,{cols:"12",md:"7",class:"pl-md-4 column-container"},{default:o(()=>[O("div",gt,[u[11]||(u[11]=O("div",{class:"text-overline mb-2"},"Execution Plan",-1)),u[12]||(u[12]=O("p",{class:"text-body-2 text-medium-emphasis mb-4"}," Preview of instances that will be affected by this operation. The plan shows the execution phases and which instances will be processed. ",-1)),e(s)?(l(),$(he,{key:0,type:"error",variant:"outlined",density:"compact",class:"mb-3"},{default:o(()=>[j(" Failed to load operation plan: "+q(e(s)),1)]),_:1})):V("",!0)]),O("div",yt,[n(rt,{phases:e(I)},null,8,["phases"])]),e(M).length>0?(l(),B("div",ht,[(l(!0),B(A,null,se(e(M),U=>(l(),$(he,{key:U,density:"compact",type:"warning",variant:"outlined"},{default:o(()=>[j(q(U),1)]),_:2},1024))),128))])):V("",!0)]),_:1})]),_:1})]),_:1})]),_:1}),n(Ie,null,{default:o(()=>[n(ke),n(re,{onClick:u[3]||(u[3]=U=>a.value=!1)},{default:o(()=>[...u[13]||(u[13]=[j("Cancel",-1)])]),_:1}),n(re,{color:e(E),loading:e(G),disabled:e(p),onClick:H},{default:o(()=>[j(q(e(W)),1)]),_:1},8,["color","loading","disabled"])]),_:1})]),_:1},8,["title","color"])]),_:1},8,["modelValue"]))}}),wt=be(bt,[["__scopeId","data-v-542509f5"]]),It={class:"tree-scrollable"},kt={class:"d-flex flex-column"},St={class:"text-body-2 font-weight-regular"},xt={class:"text-caption text-medium-emphasis"},Ct=z({__name:"ForgetInstanceStateDialog",props:ee({instances:{}},{visible:{type:Boolean},visibleModifiers:{}}),emits:["update:visible"],setup(t){const a=_(t,"visible"),{stateStore:y,libraryStore:w}=J(),i=S(()=>t.instances.length>1),v=S(()=>t.instances[0]),r=C(!1),I=C(!1),p=C(!1),s=S(()=>t.instances.map(h=>{const g=w.library.components?.[h.type];return{id:h.id,title:g?`${g.meta.title} "${h.name}"`:`${h.type} "${h.name}"`,subtitle:h.id,icon:g?.meta.icon??"iconamoon:component",iconColor:g?.meta.iconColor}})),d=async()=>{r.value=!0;try{await y.forgetInstanceStates(t.instances.map(h=>h.id),I.value,p.value),a.value=!1}finally{r.value=!1}},c=S(()=>{if(t.instances.length===0)return"Forget state";if(!i.value){const h=v.value,g=w.library.components?.[h.type];return g?`Forget state of ${g.meta.title} "${h.name}"`:`Forget state of ${h.type} "${h.name}"`}return`Forget state of ${t.instances.length} instances`});return(h,g)=>(l(),$(we,{modelValue:a.value,"onUpdate:modelValue":g[3]||(g[3]=f=>a.value=f),"max-width":"1200px",class:"forget-dialog"},{default:o(()=>[n(ce,{title:e(c),color:"#2d2d2d",class:"forget-card"},{default:o(()=>[n(fe,{class:"forget-card-content"},{default:o(()=>[n(Pe,{fluid:"",class:"pa-0 fill-height"},{default:o(()=>[n(Fe,{"no-gutters":"",class:"fill-height"},{default:o(()=>[n(ue,{cols:"12",md:"5",class:"pr-md-4 column-container"},{default:o(()=>[g[5]||(g[5]=O("div",{class:"text-overline mb-2"},"Options",-1)),n(ye,{modelValue:e(I),"onUpdate:modelValue":g[0]||(g[0]=f=>Y(I)?I.value=f:null),label:"Delete all secrets associated with this instance",density:"compact","hide-details":""},null,8,["modelValue"]),n(ye,{modelValue:e(p),"onUpdate:modelValue":g[1]||(g[1]=f=>Y(p)?p.value=f:null),label:"Clear all terminal data associated with this instance",density:"compact","hide-details":""},null,8,["modelValue"]),n(he,{density:"compact",type:"warning",variant:"outlined",class:"mt-4 alert-auto"},{default:o(()=>[...g[4]||(g[4]=[O("div",null," No destroy operation will be performed, so all resources will be left in place and unreachable by HighState. ",-1),O("div",null," You should only use this operation when the instance is unreachable/unrecoverable and you want to start from scratch. ",-1)])]),_:1})]),_:1}),n(R,{vertical:"",class:"d-none d-md-flex"}),n(ue,{cols:"12",md:"7",class:"pl-md-4 mt-4 mt-md-0 column-container"},{default:o(()=>[g[6]||(g[6]=O("div",{class:"text-overline mb-2"},"Instances",-1)),O("div",It,[n(Te,{items:e(s),"item-title":"title","item-value":"id",density:"compact","bg-color":"#2d2d2d",class:"forget-instance-tree"},{prepend:o(({item:f})=>[n(e(De),{icon:f.icon,color:f.iconColor,width:"20",class:"mr-2"},null,8,["icon","color"])]),title:o(({item:f})=>[O("div",kt,[O("div",St,q(f.title),1),O("div",xt,q(f.subtitle),1)])]),_:1},8,["items"])])]),_:1})]),_:1})]),_:1})]),_:1}),n(Ie,null,{default:o(()=>[n(ke),n(re,{onClick:g[2]||(g[2]=f=>a.value=!1)},{default:o(()=>[...g[7]||(g[7]=[j("Cancel",-1)])]),_:1}),n(re,{loading:e(r),onClick:d},{default:o(()=>[j(" Forget State"+q(e(i)?` (${t.instances.length})`:""),1)]),_:1},8,["loading"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"]))}}),$t=be(Ct,[["__scopeId","data-v-7881a32c"]]),Dt={class:"session-list-cointainer"},Vt=z({__name:"TerminalListSubmenu",props:ee({stateId:{},terminalIds:{}},{visible:{type:Boolean},visibleModifiers:{}}),emits:["update:visible"],setup(t){const{instancesStore:a,stateStore:y}=J(),{state:w,execute:i,isLoading:v}=y.getTerminalsState(S(()=>t.terminalIds)),{state:r,execute:I,isLoading:p}=a.getTerminalSessionsState(S(()=>t.stateId)),s=_(t,"visible");te(s,f=>{f&&(I(),i())});const d=f=>f.finishedAt?`Finished at ${new Date(f.finishedAt).toLocaleString()}`:`Started at ${new Date(f.startedAt).toLocaleString()}`,c=f=>{const M=Je();return f.finishedAt?"#9E9E9E":M.current.value.colors.success},h=C(null),g=async f=>{h.value=f;try{await a.openTerminal(f,!0)}finally{h.value=null}};return(f,M)=>(l(),$(e(L),{icon:"mdi-console",title:"Terminals"},{append:o(()=>[n(de,{icon:"mdi-menu-right",size:"x-small"})]),default:o(()=>[n(Se,{modelValue:s.value,"onUpdate:modelValue":M[0]||(M[0]=D=>s.value=D),"open-on-focus":!1,"open-on-hover":"","close-on-content-click":!1,submenu:"",activator:"parent"},{default:o(()=>[n(xe,{density:"compact",variant:"text"},{default:o(()=>[n(ge,{class:"text-overline"},{default:o(()=>[...M[1]||(M[1]=[j("Available Terminals",-1)])]),_:1}),(l(!0),B(A,null,se(e(w),D=>(l(),$(e(L),{key:D.id,disabled:!!e(h),title:D.meta.title,subtitle:D.meta.description,"custom-icon":D.meta.icon,loading:e(h)===D.id,icon:"mdi-console",onClick:P=>g(D.id)},null,8,["disabled","title","subtitle","custom-icon","loading","onClick"]))),128)),n(R,{class:"mt-2 mb-2"}),n(ge,{class:"text-overline"},{default:o(()=>[...M[2]||(M[2]=[j("Sessions",-1)])]),_:1}),O("div",Dt,[(l(!0),B(A,null,se(e(r),D=>(l(),$(e(L),{key:D.id,title:D.meta.title,subtitle:d(D),"custom-icon":D.meta.icon,icon:"mdi-console",color:c(D),onClick:P=>e(a).openTerminalSession(D)},null,8,["title","subtitle","custom-icon","color","onClick"]))),128))]),e(r).length===0?(l(),$(ge,{key:0,class:"text-disabled"},{default:o(()=>[...M[3]||(M[3]=[j(" No sessions found ",-1)])]),_:1})):V("",!0)]),_:1})]),_:1},8,["modelValue"])]),_:1}))}}),Tt=be(Vt,[["__scopeId","data-v-7c86584d"]]),Ot=z({__name:"PageListSubmenu",props:ee({pageIds:{}},{visible:{type:Boolean},visibleModifiers:{}}),emits:["update:visible"],setup(t){const{projectStore:a,stateStore:y}=J(),w=pe(),i=C({}),v=C(!1),r=_(t,"visible");te(r,async p=>{if(p){v.value=!0;try{i.value=await y.getPages(t.pageIds)}finally{v.value=!1}}});const I=async p=>{await w.openPage(a.projectId,p)};return(p,s)=>(l(),$(e(L),{icon:"mdi-file-document",title:"Pages"},{append:o(()=>[n(de,{icon:"mdi-menu-right",size:"x-small"})]),default:o(()=>[n(Se,{modelValue:r.value,"onUpdate:modelValue":s[0]||(s[0]=d=>r.value=d),"open-on-focus":!1,"open-on-hover":"","close-on-content-click":!1,submenu:"",activator:"parent"},{default:o(()=>[n(xe,{density:"compact",variant:"text"},{default:o(()=>[(l(!0),B(A,null,se(t.pageIds,d=>(l(),$(e(L),{key:d,title:e(i)[d]?.meta.title??d,subtitle:e(i)[d]?.meta.description,"custom-icon":e(i)[d]?.meta.icon,disabled:!e(i)[d],icon:"mdi-file-document",onClick:c=>I(d)},null,8,["title","subtitle","custom-icon","disabled","onClick"]))),128)),e(v)?(l(),$(Me,{key:0,title:"Loading pages..."})):V("",!0)]),_:1})]),_:1},8,["modelValue"])]),_:1}))}}),Pt=z({__name:"PanelListSubmenu",props:ee({panelIds:{}},{visible:{type:Boolean},visibleModifiers:{}}),emits:["update:visible"],setup(t){const{projectStore:a,stateStore:y}=J(),w=pe(),i=C([]),v=C(!1),r=_(t,"visible");return te(r,async I=>{if(I){v.value=!0;try{i.value=await y.getPanels(t.panelIds)}finally{v.value=!1}}}),(I,p)=>(l(),$(e(L),{icon:"mdi-view-dashboard-outline",title:"Panels"},{append:o(()=>[n(de,{icon:"mdi-menu-right",size:"x-small"})]),default:o(()=>[n(Se,{modelValue:r.value,"onUpdate:modelValue":p[0]||(p[0]=s=>r.value=s),"open-on-focus":!1,"open-on-hover":"","close-on-content-click":!1,submenu:"",activator:"parent"},{default:o(()=>[n(xe,{density:"compact",variant:"text"},{default:o(()=>[(l(!0),B(A,null,se(e(i),s=>(l(),$(e(L),{key:s.id,title:s.meta.title,subtitle:s.meta.description,"custom-icon":s.meta.icon,icon:"mdi-view-dashboard-outline",onClick:d=>e(w).openPanel(e(a).projectId,s.id)},null,8,["title","subtitle","custom-icon","onClick"]))),128)),e(v)?(l(),$(Me,{key:0,title:"Loading panels..."})):V("",!0)]),_:1})]),_:1},8,["modelValue"])]),_:1}))}}),Ft=z({__name:"InstanceContextMenu",props:{instance:{},component:{},state:{},terminalIds:{},stores:{},operation:{},locked:{type:Boolean},editable:{type:Boolean},ghost:{type:Boolean,default:!1}},setup(t,{expose:a}){const y=S(()=>t.terminalIds??t.state?.terminalIds??[]),{projectStore:w,stateStore:i,operationsStore:v}=t.stores,r=pe(),{selection:I}=Ve(),p=C(!1),s=C(!1),d=C("update"),c=C([]),h=C(!1),g=C([]),f=S(()=>I.selectedInstances.length>1&&I.selectedInstances.some(m=>m.id===t.instance.id)?I.selectedInstances:[t.instance]),M=S(()=>f.value.length>1),D=(k,m,x)=>{if(x==="preview"&&(M.value||k.kind!=="unit"))return!1;const Q=Ge(m?.lastOperationState?.status);switch(x){case"update":return!Q;case"refresh":return ve(m)&&!Q;case"preview":return!Q;case"recreate":case"destroy":return ve(m)&&!Q;default:return!1}},P=k=>t.ghost&&k!=="destroy"?!1:f.value.some(m=>{const x=i.instanceStates.get(m.id);return D(m,x,k)}),W=k=>t.ghost&&k!=="destroy"?!1:f.value.every(m=>{const x=i.instanceStates.get(m.id);return D(m,x,k)}),E=S(()=>f.value.some(k=>{const m=i.instanceStates.get(k.id);return ve(m)})),G=k=>{const m=f.value.length;return m===1?k==="update"?E.value?"Update":"Create":k.charAt(0).toUpperCase()+k.slice(1):k==="update"?`${E.value?"Update":"Create"} selected (${m})`:`${k.charAt(0).toUpperCase()+k.slice(1)} selected (${m})`},H=k=>{if(M.value)return"mdi-format-list-bulleted";switch(k){case"update":return E.value?"mdi-play":"mdi-rocket-launch";case"refresh":return"mdi-reload";case"preview":return"mdi-eye";case"recreate":return"mdi-restart";case"destroy":return"mdi-stop";default:return"mdi-play"}},K=k=>{d.value=k,c.value=f.value,s.value=!0,p.value=!1,I.clearSelection()},b=()=>{g.value=f.value,h.value=!0,p.value=!1,I.clearSelection()},u=me("contextMenu"),U=async k=>{u.value&&await u.value.showContextMenu(k)},ne=async()=>{if(f.value.length!==1||t.instance.kind!=="unit"){p.value=!1;return}const k=await v.launchInstanceOperation("preview",t.instance);p.value=!1,t.state&&await r.openLogsPanel(w.projectId,k.id,t.state.id)};return a({showContextMenu:U}),(k,m)=>(l(),B(A,null,[n(e(Be),{ref_key:"contextMenu",ref:u,visible:e(p),"onUpdate:visible":m[6]||(m[6]=x=>Y(p)?p.value=x:null),title:"Instance",subtitle:t.instance.id,"is-deletable":x=>t.stores.stateStore.isNodeDeletable(x)},{default:o(()=>[P("update")?(l(),$(e(L),{key:0,title:G("update"),icon:H("update"),color:"primary",disabled:t.locked||!W("update"),onClick:m[0]||(m[0]=x=>K("update"))},null,8,["title","icon","disabled"])):V("",!0),P("refresh")?(l(),$(e(L),{key:1,title:G("refresh"),icon:H("refresh"),color:"primary",disabled:t.locked||!W("refresh"),onClick:m[1]||(m[1]=x=>K("refresh"))},null,8,["title","icon","disabled"])):V("",!0),P("preview")?(l(),$(e(L),{key:2,title:G("preview"),icon:H("preview"),color:"secondary",disabled:t.locked||!W("preview"),onClick:ne},null,8,["title","icon","disabled"])):V("",!0),t.state?.lastOperationState?(l(),B(A,{key:3},[n(R),n(e(L),{title:"Open Logs",icon:"mdi-text",color:"primary",onClick:m[2]||(m[2]=x=>e(i).openInstanceLogs(t.instance))})],64)):V("",!0),n(R),n(e(L),{title:"View in Settings",icon:"mdi-cog",color:"primary",onClick:m[3]||(m[3]=()=>{const x=e(i).getInstanceState(t.instance.id);x&&("navigateTo"in k?k.navigateTo:e(ze))({name:"settings.instance-details",params:{projectId:e(w).projectId,stateId:x.id}}),p.value=!1})}),t.state?.id&&e(y).length>0?(l(),B(A,{key:4},[n(R),n(Tt,{"state-id":t.state.id,"terminal-ids":e(y)},null,8,["state-id","terminal-ids"])],64)):V("",!0),t.state?.pageIds?.length?(l(),B(A,{key:5},[n(R),n(Ot,{"page-ids":t.state.pageIds},null,8,["page-ids"])],64)):V("",!0),t.state?.panelIds?.length?(l(),B(A,{key:6},[n(R),n(Pt,{"panel-ids":t.state.panelIds},null,8,["panel-ids"])],64)):V("",!0),e(E)||t.ghost?(l(),B(A,{key:7},[n(R),P("recreate")?(l(),$(e(L),{key:0,title:G("recreate"),icon:H("recreate"),color:"warning",disabled:t.locked||!W("recreate"),onClick:m[4]||(m[4]=x=>K("recreate"))},null,8,["title","icon","disabled"])):V("",!0),P("destroy")?(l(),$(e(L),{key:1,title:G("destroy"),icon:H("destroy"),color:"error",disabled:t.locked||!W("destroy"),onClick:m[5]||(m[5]=x=>K("destroy"))},null,8,["title","icon","disabled"])):V("",!0),n(e(L),{title:e(M)?`Forget State selected (${e(f).length})`:"Forget State",icon:"mdi-delete-forever",color:"error",disabled:t.locked,onClick:b},null,8,["title","disabled"])],64)):V("",!0)]),_:1},8,["visible","subtitle","is-deletable"]),n(wt,{visible:e(s),"onUpdate:visible":m[7]||(m[7]=x=>Y(s)?s.value=x:null),operation:e(d),instances:e(c),component:t.component},null,8,["visible","operation","instances","component"]),n($t,{visible:e(h),"onUpdate:visible":m[8]||(m[8]=x=>Y(h)?h.value=x:null),instances:e(g)},null,8,["visible","instances"])],64))}}),Mt=[{key:"forceUpdateDependencies",label:"Force update dependencies",description:"Force update all dependencies regardless of their current state. Bypasses hash-based change detection for dependency chains.",showForOperations:["update"]},{key:"ignoreChangedDependencies",label:"Ignore changed dependencies",description:"Skip only changed dependencies. Failed or undeployed dependencies of selected instances are still included.",showForOperations:["update"]},{key:"ignoreDependencies",label:"Ignore dependencies",description:"Skip all dependencies of selected instances, including failed and undeployed prerequisites. Operate only on explicitly selected instances.",warning:"This is manual mode. The operation may fail unless every required prerequisite instance is selected explicitly.",showForOperations:["update"]},{key:"forceUpdateChildren",label:"Force update children instances",description:"Force update all children of composite instances regardless of their state. Overrides selective child inclusion logic.",showForOperations:["update"]},{key:"onlyDestroyGhosts",label:"Only destroy ghosts",description:"Skip update phase and run only ghost cleanup destroy phase for affected composite instances.",showForOperations:["update"],requiresCompositeTargets:!0},{key:"firstDestroyGhosts",label:"Destroy ghosts before update",description:"Run ghost cleanup destroy phase before update phase for affected composite instances.",showForOperations:["update"],requiresCompositeTargets:!0},{key:"ignoreGhosts",label:"Ignore ghosts",description:"Skip ghost cleanup destroy phase for update operations.",showForOperations:["update"],requiresCompositeTargets:!0},{key:"destroyDependentInstances",label:"Destroy dependent instances",description:"Include dependent instances when destroying instances. Traverses the dependency graph in reverse to prevent orphaned instances.",defaultValue:!0,showForOperations:["destroy","recreate"]},{key:"invokeDestroyTriggers",label:"Invoke destroy triggers",description:"Execute destroy triggers when destroying instances. Controls trigger execution during the destruction phase.",defaultValue:!0},{key:"deleteUnreachableResources",label:"Delete unreachable resources",description:"Delete Pulumi resources that are no longer referenced in the state. Deletes orphaned resources within individual instances.",warning:"All resources that will not be reachable at the moment of the destroy operation will be removed from the state. Only use when you are sure that these resources do not actually exist!"},{key:"forceDeleteState",label:"Force delete state",description:"Force deletion of instance state even if the destroy operation fails. Bypasses normal destroy procedures as emergency fallback.",warning:"This will delete the stack state and all resources in it even if the destroy operation failed. Use only when the stack is unrecoverable and you want to start from scratch.",showForOperations:["destroy","recreate"]},{key:"allowPartialCompositeInstanceUpdate",label:"Allow partial update of composite instances",description:"Allow update of individual composite children without requiring all siblings. When enabled, only necessary children are included.",showForOperations:["update","recreate"]},{key:"allowPartialCompositeInstanceDestruction",label:"Allow partial destruction of composite instances",description:"Allow partial destruction of composite instances during cascade operations. When enabled, cascade destruction includes only directly dependent children.",showForOperations:["destroy","recreate"]},{key:"refresh",label:"Refresh state before operation",description:"Also refresh the state of instances during the operation. Synchronizes state with actual infrastructure."},{key:"debug",label:"Enable debug logging",description:"Enable debug logging for Pulumi engine and resource providers. Sets TF_LOG=DEBUG for Terraform providers.",warning:"Debug mode may expose sensitive information including credentials in the logs. Use only when absolutely necessary for troubleshooting."}],Ue=(t,a)=>Mt.filter(y=>y.requiresCompositeTargets&&!a?.compositeTargetsOnly?!1:y.showForOperations?y.showForOperations.includes(t):!0),Ut=z({__name:"PageDialog",props:ee({meta:{},content:{}},{visible:{type:Boolean},visibleModifiers:{}}),emits:["update:visible"],setup(t){const a=_(t,"visible");return(y,w)=>(l(),$(we,{modelValue:a.value,"onUpdate:modelValue":w[1]||(w[1]=i=>a.value=i),"max-width":"80vh","max-height":"60vh"},{default:o(()=>[n(ce,{title:t.meta.title,color:"#2d2d2d"},{default:o(()=>[n(fe,{style:{"overflow-y":"scroll"}},{default:o(()=>[n(at,{content:t.content},null,8,["content"])]),_:1}),n(Ie,null,{default:o(()=>[n(ke),n(re,{onClick:w[0]||(w[0]=i=>a.value=!1)},{default:o(()=>[...w[2]||(w[2]=[j("Close",-1)])]),_:1})]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"]))}}),qt=z({__name:"InstanceNodeWrapper",props:{id:{},type:{},selected:{type:Boolean},connectable:{type:[Boolean,Number,String,Function]},position:{},dimensions:{},label:{},isValidTargetPos:{type:Function},isValidSourcePos:{type:Function},parent:{},parentNodeId:{},dragging:{type:Boolean},resizing:{type:Boolean},zIndex:{},targetPosition:{},sourcePosition:{},dragHandle:{},data:{},events:{}},setup(t){const a=J(),y=pe(),{projectStore:w,stateStore:i,instancesStore:v,libraryStore:r,operationsStore:I,validationStore:p}=a,s=S(()=>t.data.instance),d=S(()=>{const F=v.getInstanceComponent(s.value);if(!F)throw new Error(`component "${s.value.type}" for instance "${s.value.id}" not found in library`);return F}),c=S(()=>i.instanceStates.get(s.value.id)),h=S(()=>c.value&&i.instanceLocks.get(c.value.id)),g=S(()=>I.getLastInstanceOperation(s.value.id)),f=S(()=>v.isGhostInstance(s.value.id)),M=C(!1),D=C(!1),P=C(),W=C([]),E=C(!1),G=C(!1),H=C({}),K=async()=>{M.value=!0;try{if(!c.value?.pageIds)return;const F=c.value.pageIds;if(!F.length)return;const T=await i.getPage(F[0]);if(!T)return;P.value=T.meta,W.value=T.content,D.value=!0}finally{M.value=!1}},b=C(!1),u=C(!1),U=S(()=>{const F=c.value?.terminalIds??[];if(d.value.kind!=="composite")return F;const T=new Set,N=new Set,X=[],ae=Z=>{for(const le of Z??[])N.has(le)||(N.add(le),X.push(le))},Ce=Z=>{if(T.has(Z))return;T.add(Z);const le=i.instanceStates.get(Z);ae(le?.terminalIds);for(const Le of v.getInstanceChildren(Z))Ce(Le.id)};ae(F);for(const Z of v.getInstanceChildren(s.value.id))Ce(Z.id);return X}),ne=async()=>{b.value=!0;try{if(U.value.length===0)return;await v.openTerminal(U.value[0])}finally{b.value=!1}},k=async()=>{u.value=!0;try{const F=c.value?.panelIds?.[0];if(!F)return;await y.openPanel(w.projectId,F)}finally{u.value=!1}},m=async()=>{G.value=!0;try{if(!c.value)return;const F=await a.stateStore.getInstanceSecrets(c.value.id);H.value={...F},E.value=!0}finally{G.value=!1}},x=async()=>{const F=c.value?.id??s.value.id;await y.openCompositeInstancePanel(w.projectId,F)},Q=me("contextMenu"),oe=Re(),ie=C(null),Ne=F=>f.value?!1:Ee(oe,r.library,v.inputResolverOutputs,F);return te(()=>({ghost:f.value,initialized:oe.areNodesInitialized.value}),({ghost:F,initialized:T})=>{if(!T)return;const N=oe.findNode(t.id);if(N){if(!F){if(ie.value){const{connectable:X,draggable:ae}=ie.value;oe.updateNode(t.id,()=>({connectable:X,draggable:ae})),ie.value=null}return}ie.value||(ie.value={connectable:!!N.connectable,draggable:N.draggable??!0}),oe.updateNode(t.id,()=>({connectable:!1,draggable:!0}))}},{immediate:!0}),(F,T)=>(l(),$(_e,{"editing-secrets":e(E),"onUpdate:editingSecrets":T[1]||(T[1]=N=>Y(E)?E.value=N:null),"loading-secrets":e(G),"initial-secrets":e(H),"loading-page":e(M),instance:t.data.instance,component:e(d),entities:e(r).library.entities,"project-id":e(w).projectId,"input-resolver-outputs":e(v).inputResolverOutputs,"input-resolver-dependent-map":e(v).inputResolverDependentMap,"is-valid-connection":Ne,"instance-lock":e(h),state:e(c),"terminal-ids":e(U),"loading-panel":e(u),editable:t.data.editable&&!e(f),ghost:e(f),stores:("markRaw"in F?F.markRaw:e(Ke))(e(a)),"workspace-store":e(y),"all-instances":e(v).instances,"onSave:args":T[2]||(T[2]=(N,X,ae)=>e(v).updateInstance(N,X,ae)),"onSave:secrets":T[3]||(T[3]=(N,X)=>e(i).updateInstanceSecrets(N,X)),"onOpen:secrets":m,"onOpen:terminal":ne,"onOpen:panel":k,"onOperation:launch":T[4]||(T[4]=N=>e(I).launchQuickInstanceOperation(N,t.data.instance)),"onOperation:cancel":T[5]||(T[5]=N=>e(I).cancelInstanceOperation(e(c).lastOperationState.operationId,t.data.instance.id)),onContextmenu:T[6]||(T[6]=N=>e(Q)?.showContextMenu(N)),"onOpen:composite":x,"onOpen:page":K},{status:o(()=>[n(e(et),{state:e(c),operation:e(g),"expected-input-hash":e(i).inputHashOutputs.get(e(s).id)?.inputHash,"validation-output":e(p).validationOutputs.get(e(s).id)},null,8,["state","operation","expected-input-hash","validation-output"])]),default:o(()=>[n(e(Ft),{ref_key:"contextMenu",ref:Q,stores:e(a),instance:e(s),component:e(d),state:e(c),"terminal-ids":e(U),editable:t.data.editable&&!e(f),locked:!!e(h),ghost:e(f)},null,8,["stores","instance","component","state","terminal-ids","editable","locked","ghost"]),e(P)?(l(),$(e(Ut),{key:0,visible:e(D),"onUpdate:visible":T[0]||(T[0]=N=>Y(D)?D.value=N:null),meta:e(P),content:e(W)},null,8,["visible","meta","content"])):V("",!0)]),_:1},8,["editing-secrets","loading-secrets","initial-secrets","loading-page","instance","component","entities","project-id","input-resolver-outputs","input-resolver-dependent-map","instance-lock","state","terminal-ids","loading-panel","editable","ghost","stores","workspace-store","all-instances"]))}}),Be=z({__name:"NodeContextMenu",props:ee({title:{},subtitle:{},isDeletable:{type:Function}},{visible:{type:Boolean,default:!1},visibleModifiers:{}}),emits:["update:visible"],setup(t,{expose:a}){const{selection:y,vueFlowStore:w,deleteNodes:i}=Ve(),v=_(t,"visible"),r=qe(),I=me("contextMenu"),p=async h=>{I.value&&await I.value.showContextMenu(h)},{off:s}=w.onViewportChange(()=>{v.value=!1});Qe(()=>{s(),v.value=!1}),a({showContextMenu:p});const d=S(()=>t.isDeletable(r.node)?y.selectedNodeIds.has(r.id)?Array.from(y.selectedNodes).filter(t.isDeletable):[r.node]:[]),c=S(()=>d.value.length===1?"Delete":`Delete selected (${d.value.length})`);return(h,g)=>(l(),$(tt,{ref_key:"contextMenu",ref:I,visible:v.value,"onUpdate:visible":g[1]||(g[1]=f=>v.value=f),title:t.title,subtitle:t.subtitle},{default:o(()=>[h.$slots.default?(l(),B(A,{key:0},[n(R),Xe(h.$slots,"default")],64)):V("",!0),e(d).length>0?(l(),B(A,{key:1},[n(R),n(L,{title:e(c),icon:"mdi-delete",color:"error",onClick:g[0]||(g[0]=f=>e(i)(e(d)))},null,8,["title"])],64)):V("",!0)]),_:3},8,["visible","title","subtitle"]))}});export{Rt as _,Et as a,qt as b,Ft as c};
1
+ import{D as J,P as De,bB as je,bC as Ae,_ as be,i as pe,aR as Ve,n as ze,aI as Ge,bi as ve,aW as Re,bD as Ee,b1 as qe}from"#entry";import{E as z,V as l,Y as $,ai as ce,_ as o,W as n,aj as fe,$ as j,a0 as q,D as e,al as We,a1 as V,j as S,a_ as me,J as B,aX as Te,a2 as O,a7 as Oe,aG as _,aa as A,ab as se,aY as ye,aO as ee,w as te,ah as we,aT as Pe,aU as Fe,aV as ue,ak as He,a as Y,aW as Ye,as as R,aI as he,aJ as Ie,aK as ke,at as re,Z as de,r as C,b4 as Se,am as xe,an as ge,bi as Je,ap as Me,m as Ke,M as Qe,a5 as Xe}from"./-NXdyIEV.js";import{H as Ze,I as _e}from"./Btw6kqCM.js";import{I as et}from"./Dtu55PAv.js";import{_ as L,a as tt}from"./BnH0SUiF.js";import{C as nt}from"./BzfFclT9.js";import{P as at}from"./BLfHOckY.js";const $e=z({__name:"EditorLoader",props:{text:{},value:{}},setup(t){const{instancesStore:a}=J(),y=S(()=>t.value===-1?t.text:`${t.text} ${t.value}/${a.totalInstanceCount}...`);return(w,i)=>t.text?(l(),$(ce,{key:0,variant:"tonal"},{default:o(()=>[n(fe,{class:"text-overline"},{default:o(()=>[j(q(e(y)),1)]),_:1}),n(We,{indeterminate:t.value===-1,"model-value":t.value,max:e(a).totalInstanceCount,height:4,color:"primary",class:"w-full"},null,8,["indeterminate","model-value","max"])]),_:1})):V("",!0)}}),Rt=z({__name:"EditorLoaderPopup",setup(t){const{instancesStore:a,stateStore:y}=J(),w=S(()=>a.initializationPhase==="resolving"||y.initializationPhase==="calculating");return(i,v)=>e(w)?(l(),$(ce,{key:0,variant:"tonal"},{default:o(()=>[e(a).initializationPhase==="resolving"?(l(),$($e,{key:0,text:"Resolving instance inputs",value:e(a).resolvedInstanceCount},null,8,["value"])):V("",!0),e(y).initializationPhase==="calculating"?(l(),$($e,{key:1,text:"Detecting instance changes",value:e(y).calculatedInputHashCount},null,8,["value"])):V("",!0)]),_:1})):V("",!0)}}),Et=z({__name:"HubNodeWrapper",props:{id:{},type:{},selected:{type:Boolean},connectable:{type:[Boolean,Number,String,Function]},position:{},dimensions:{},label:{},isValidTargetPos:{type:Function},isValidSourcePos:{type:Function},parent:{},parentNodeId:{},dragging:{type:Boolean},resizing:{type:Boolean},zIndex:{},targetPosition:{},sourcePosition:{},dragHandle:{},data:{},events:{}},setup(t){const{stateStore:a}=J(),y=me("contextMenu");return(w,i)=>(l(),$(Ze,{hub:t.data.hub,onContextmenu:i[0]||(i[0]=v=>e(y)?.showContextMenu(v))},{default:o(()=>[n(e(Be),{ref_key:"contextMenu",ref:y,title:"Hub",subtitle:t.data.hub.id,"is-deletable":v=>e(a).isNodeDeletable(v)},null,8,["subtitle","is-deletable"])]),_:1},8,["hub"]))}}),st={key:0},ot={class:"d-flex flex-column"},it={key:0,class:"text-caption text-medium-emphasis"},lt={key:1,class:"text-body-2 text-medium-emphasis pa-4"},rt=z({__name:"OperationPlanTree",props:{phases:{}},setup(t){const{instancesStore:a,libraryStore:y}=J(),w=S(()=>{const p=[];for(const s of t.phases){const d={id:`phase-${s.type}`,title:`${s.type.charAt(0).toUpperCase()+s.type.slice(1)} Phase`,subtitle:`${s.instances.length} instance${s.instances.length===1?"":"s"}`,icon:r(s.type),iconColor:I(s.type),phaseType:s.type,children:[]},c=i(s.instances);d.children=c,p.push(d)}return p}),i=p=>{const s=new Map;for(const c of p)s.has(c.id)||s.set(c.id,{...c,children:[]});for(const c of p)c.parentId&&s.has(c.parentId)&&s.get(c.parentId).children.push(c);return p.filter(c=>!c.parentId||!s.has(c.parentId)).map(c=>v(c,s))},v=(p,s)=>{const d=a.instances.get(p.id),c=d?y.library.components[d.type]:null,h={id:p.id,title:c&&d?`${c.meta.title} "${d.name}"`:p.id,subtitle:p.message,icon:c?.meta.icon??"iconamoon:component",iconColor:c?.meta.iconColor,phaseType:"instance"},g=s.get(p.id);return g&&g.children.length>0&&(h.children=g.children.map(f=>v(f,s))),h},r=p=>{switch(p){case"preview":return"mdi-eye";case"destroy":return"mdi-delete";case"update":return"mdi-update";case"refresh":return"mdi-refresh";default:return"mdi-cog"}},I=p=>{switch(p){case"preview":return"secondary";case"destroy":return"error";case"update":return"primary";case"refresh":return"info";default:return"secondary"}};return(p,s)=>t.phases.length>0?(l(),B("div",st,[n(Te,{items:e(w),"item-title":"title","item-value":"id",density:"compact","open-all":"","indent-lines":"","bg-color":"#2d2d2d"},{prepend:o(({item:d})=>[n(e(De),{icon:d.icon,color:d.iconColor,width:"20",class:"mr-2"},null,8,["icon","color"])]),title:o(({item:d})=>[O("div",ot,[O("div",{class:Oe(["text-body-2",d.phaseType==="instance"?"font-weight-regular":"font-weight-medium"])},q(d.title),3),d.subtitle?(l(),B("div",it,q(d.subtitle),1)):V("",!0)])]),_:1},8,["items"])])):(l(),B("div",lt," No changes planned for this operation. "))}}),dt={key:0},ct={class:"text-caption"},ut=z({__name:"OperationOptions",props:ee({operation:{},compositeTargetsOnly:{type:Boolean,default:!1}},{options:{default:{}},optionsModifiers:{}}),emits:["update:options"],setup(t){const a=_(t,"options"),y=S(()=>Ue(t.operation,{compositeTargetsOnly:t.compositeTargetsOnly})),w=(i,v)=>{const r=v??!1;i==="forceUpdateDependencies"&&r&&(a.value.ignoreChangedDependencies=!1,a.value.ignoreDependencies=!1),i==="ignoreChangedDependencies"&&r&&(a.value.forceUpdateDependencies=!1,a.value.ignoreDependencies=!1),i==="ignoreDependencies"&&r&&(a.value.forceUpdateDependencies=!1,a.value.ignoreChangedDependencies=!1),i==="onlyDestroyGhosts"&&r&&(a.value.firstDestroyGhosts=!1,a.value.ignoreGhosts=!1),i==="firstDestroyGhosts"&&r&&(a.value.onlyDestroyGhosts=!1,a.value.ignoreGhosts=!1),i==="ignoreGhosts"&&r&&(a.value.onlyDestroyGhosts=!1,a.value.firstDestroyGhosts=!1),a.value[i]=r};return(i,v)=>a.value?(l(),B("div",dt,[(l(!0),B(A,null,se(e(y),r=>(l(),B(A,{key:r.key},[n(ye,{"model-value":a.value[r.key],"onUpdate:modelValue":I=>w(r.key,I),class:Oe(r===e(y)[0]?"mt-2":""),label:r.label,density:"compact","hide-details":""},null,8,["model-value","onUpdate:modelValue","class","label"]),O("div",ct,q(r.description),1)],64))),128))])):V("",!0)}}),pt={class:"metadata-section"},ft={class:"options-header"},mt={class:"text-body-2 text-medium-emphasis mb-4"},vt={class:"options-scrollable"},gt={class:"plan-header"},yt={class:"plan-scrollable"},ht={key:0,class:"plan-warnings"},bt=z({__name:"InstanceOperationDialog",props:ee({instances:{},component:{},operation:{}},{visible:{type:Boolean},visibleModifiers:{}}),emits:["update:visible"],setup(t){const a=_(t,"visible"),{operationsStore:y,projectStore:w}=J(),i=S(()=>t.instances.length>1),v=S(()=>t.instances[0]),r=C({forceUpdateDependencies:!1,ignoreDependencies:!1,ignoreChangedDependencies:!1,forceUpdateChildren:!1,onlyDestroyGhosts:!1,firstDestroyGhosts:!1,ignoreGhosts:!1,destroyDependentInstances:!1,invokeDestroyTriggers:!0,deleteUnreachableResources:!1,forceDeleteState:!1,allowPartialCompositeInstanceUpdate:!1,allowPartialCompositeInstanceDestruction:!1,refresh:!1}),I=C([]),p=C(!1),s=C(null),d=C(""),c=C(""),h=S(()=>t.instances.every(b=>b.kind==="composite"));te([()=>t.operation,()=>t.instances],()=>{t.instances.length!==0&&(d.value=i.value?je(t.operation,t.instances):Ae(t.operation,v.value),r.value={...r.value,destroyDependentInstances:t.operation==="destroy"})},{immediate:!0}),te(()=>r.value,()=>{g()},{deep:!0}),te(()=>a.value,b=>{b&&g()});const g=async()=>{if(a.value){p.value=!0,s.value=null;try{const b=await y.planOperation({projectId:w.projectId,type:t.operation,instanceIds:t.instances.map(u=>u.id),options:r.value});I.value=b}catch(b){console.error("Failed to load operation plan:",b),s.value=b instanceof Error?b.message:"Unknown error"}finally{p.value=!1}}},f=S(()=>{const b=new Set,u=new Set,U=new Set,ne=new Set,k=new Set;for(const m of I.value)for(const x of m.instances){if(k.add(x.id),m.type==="update"){b.add(x.id);continue}if(m.type==="destroy"){u.add(x.id);continue}if(m.type==="refresh"){U.add(x.id);continue}m.type==="preview"&&ne.add(x.id)}return{update:b.size,destroy:u.size,refresh:U.size,preview:ne.size,unique:k.size}}),M=S(()=>{const b=Ue(t.operation,{compositeTargetsOnly:h.value}).filter(u=>!!u.warning&&!!r.value[u.key]).map(u=>u.warning);return[...new Set(b)]}),D=b=>`${b} instance${b===1?"":"s"}`,P=S(()=>{switch(t.operation){case"update":return"Update";case"preview":return"Preview";case"refresh":return"Refresh";case"destroy":return"Destroy";case"recreate":return"Recreate";default:return"Unknown operation"}}),W=S(()=>{const b=f.value;switch(t.operation){case"update":{const{update:u}=b;return u===0?P.value:`Update ${D(u)}`}case"recreate":return b.unique===0?P.value:`Recreate ${D(b.unique)}`;case"destroy":return b.destroy===0?P.value:`Destroy ${D(b.destroy)}`;case"refresh":return b.refresh===0?P.value:`Refresh ${D(b.refresh)}`;case"preview":return b.preview===0?P.value:`Preview ${D(b.preview)}`;default:return b.unique===0?P.value:`${P.value} ${D(b.unique)}`}}),E=S(()=>{switch(t.operation){case"update":return"primary";case"preview":return"secondary";case"refresh":return"info";case"destroy":return"error";case"recreate":return"warning";default:return"primary"}}),G=C(!1),H=async()=>{G.value=!0;try{await y.launchOperation({projectId:w.projectId,type:t.operation,instanceIds:t.instances.map(b=>b.id),options:r.value,meta:{title:d.value,description:c.value}}),a.value=!1}finally{G.value=!1}},K=S(()=>i.value?`${P.value} ${t.instances.length} instances`:t.component?`${P.value} ${t.component.meta.title} "${v.value.name}"`:`${P.value} "${v.value.name}"`);return(b,u)=>(l(),$(we,{modelValue:a.value,"onUpdate:modelValue":u[4]||(u[4]=U=>a.value=U),"max-width":"1200px",class:"operation-dialog"},{default:o(()=>[n(ce,{title:e(K),color:t.component?.meta.color??"#2d2d2d",class:"operation-card"},{prepend:o(()=>[t.component&&!e(i)?(l(),$(e(nt),{key:0,meta:t.component.meta},null,8,["meta"])):e(i)?(l(),$(de,{key:1},{default:o(()=>[...u[5]||(u[5]=[j("mdi-format-list-bulleted",-1)])]),_:1})):(l(),$(de,{key:2},{default:o(()=>[...u[6]||(u[6]=[j("mdi-cube-outline",-1)])]),_:1}))]),default:o(()=>[n(fe,{class:"operation-card-content"},{default:o(()=>[n(Pe,{fluid:"",class:"pa-0 fill-height"},{default:o(()=>[n(Fe,{"no-gutters":"",class:"fill-height"},{default:o(()=>[n(ue,{cols:"12",md:"5",class:"pr-md-4 column-container"},{default:o(()=>[O("div",pt,[u[7]||(u[7]=O("div",{class:"text-overline mb-2"},"Metadata",-1)),n(He,{modelValue:e(d),"onUpdate:modelValue":u[0]||(u[0]=U=>Y(d)?d.value=U:null),label:"Title",variant:"outlined",density:"compact",class:"mb-3",hint:"A descriptive title for this operation (optional)","persistent-hint":""},null,8,["modelValue"]),n(Ye,{modelValue:e(c),"onUpdate:modelValue":u[1]||(u[1]=U=>Y(c)?c.value=U:null),label:"Description",variant:"outlined",density:"compact",rows:"2",hint:"Describe the purpose of this operation (optional)","persistent-hint":""},null,8,["modelValue"])]),n(R,{class:"my-4"}),O("div",ft,[u[10]||(u[10]=O("div",{class:"text-overline mb-2"},"Options",-1)),O("p",mt,[u[8]||(u[8]=j(" Configure how the ",-1)),O("b",null,q(t.operation),1),u[9]||(u[9]=j(" operation should be executed. These options control the behavior and scope of the operation. ",-1))])]),O("div",vt,[n(ut,{options:e(r),"onUpdate:options":u[2]||(u[2]=U=>Y(r)?r.value=U:null),operation:t.operation,"composite-targets-only":e(h)},null,8,["options","operation","composite-targets-only"])])]),_:1}),n(R,{vertical:"",class:"d-none d-md-flex"}),n(ue,{cols:"12",md:"7",class:"pl-md-4 column-container"},{default:o(()=>[O("div",gt,[u[11]||(u[11]=O("div",{class:"text-overline mb-2"},"Execution Plan",-1)),u[12]||(u[12]=O("p",{class:"text-body-2 text-medium-emphasis mb-4"}," Preview of instances that will be affected by this operation. The plan shows the execution phases and which instances will be processed. ",-1)),e(s)?(l(),$(he,{key:0,type:"error",variant:"outlined",density:"compact",class:"mb-3"},{default:o(()=>[j(" Failed to load operation plan: "+q(e(s)),1)]),_:1})):V("",!0)]),O("div",yt,[n(rt,{phases:e(I)},null,8,["phases"])]),e(M).length>0?(l(),B("div",ht,[(l(!0),B(A,null,se(e(M),U=>(l(),$(he,{key:U,density:"compact",type:"warning",variant:"outlined"},{default:o(()=>[j(q(U),1)]),_:2},1024))),128))])):V("",!0)]),_:1})]),_:1})]),_:1})]),_:1}),n(Ie,null,{default:o(()=>[n(ke),n(re,{onClick:u[3]||(u[3]=U=>a.value=!1)},{default:o(()=>[...u[13]||(u[13]=[j("Cancel",-1)])]),_:1}),n(re,{color:e(E),loading:e(G),disabled:e(p),onClick:H},{default:o(()=>[j(q(e(W)),1)]),_:1},8,["color","loading","disabled"])]),_:1})]),_:1},8,["title","color"])]),_:1},8,["modelValue"]))}}),wt=be(bt,[["__scopeId","data-v-542509f5"]]),It={class:"tree-scrollable"},kt={class:"d-flex flex-column"},St={class:"text-body-2 font-weight-regular"},xt={class:"text-caption text-medium-emphasis"},Ct=z({__name:"ForgetInstanceStateDialog",props:ee({instances:{}},{visible:{type:Boolean},visibleModifiers:{}}),emits:["update:visible"],setup(t){const a=_(t,"visible"),{stateStore:y,libraryStore:w}=J(),i=S(()=>t.instances.length>1),v=S(()=>t.instances[0]),r=C(!1),I=C(!1),p=C(!1),s=S(()=>t.instances.map(h=>{const g=w.library.components?.[h.type];return{id:h.id,title:g?`${g.meta.title} "${h.name}"`:`${h.type} "${h.name}"`,subtitle:h.id,icon:g?.meta.icon??"iconamoon:component",iconColor:g?.meta.iconColor}})),d=async()=>{r.value=!0;try{await y.forgetInstanceStates(t.instances.map(h=>h.id),I.value,p.value),a.value=!1}finally{r.value=!1}},c=S(()=>{if(t.instances.length===0)return"Forget state";if(!i.value){const h=v.value,g=w.library.components?.[h.type];return g?`Forget state of ${g.meta.title} "${h.name}"`:`Forget state of ${h.type} "${h.name}"`}return`Forget state of ${t.instances.length} instances`});return(h,g)=>(l(),$(we,{modelValue:a.value,"onUpdate:modelValue":g[3]||(g[3]=f=>a.value=f),"max-width":"1200px",class:"forget-dialog"},{default:o(()=>[n(ce,{title:e(c),color:"#2d2d2d",class:"forget-card"},{default:o(()=>[n(fe,{class:"forget-card-content"},{default:o(()=>[n(Pe,{fluid:"",class:"pa-0 fill-height"},{default:o(()=>[n(Fe,{"no-gutters":"",class:"fill-height"},{default:o(()=>[n(ue,{cols:"12",md:"5",class:"pr-md-4 column-container"},{default:o(()=>[g[5]||(g[5]=O("div",{class:"text-overline mb-2"},"Options",-1)),n(ye,{modelValue:e(I),"onUpdate:modelValue":g[0]||(g[0]=f=>Y(I)?I.value=f:null),label:"Delete all secrets associated with this instance",density:"compact","hide-details":""},null,8,["modelValue"]),n(ye,{modelValue:e(p),"onUpdate:modelValue":g[1]||(g[1]=f=>Y(p)?p.value=f:null),label:"Clear all terminal data associated with this instance",density:"compact","hide-details":""},null,8,["modelValue"]),n(he,{density:"compact",type:"warning",variant:"outlined",class:"mt-4 alert-auto"},{default:o(()=>[...g[4]||(g[4]=[O("div",null," No destroy operation will be performed, so all resources will be left in place and unreachable by HighState. ",-1),O("div",null," You should only use this operation when the instance is unreachable/unrecoverable and you want to start from scratch. ",-1)])]),_:1})]),_:1}),n(R,{vertical:"",class:"d-none d-md-flex"}),n(ue,{cols:"12",md:"7",class:"pl-md-4 mt-4 mt-md-0 column-container"},{default:o(()=>[g[6]||(g[6]=O("div",{class:"text-overline mb-2"},"Instances",-1)),O("div",It,[n(Te,{items:e(s),"item-title":"title","item-value":"id",density:"compact","bg-color":"#2d2d2d",class:"forget-instance-tree"},{prepend:o(({item:f})=>[n(e(De),{icon:f.icon,color:f.iconColor,width:"20",class:"mr-2"},null,8,["icon","color"])]),title:o(({item:f})=>[O("div",kt,[O("div",St,q(f.title),1),O("div",xt,q(f.subtitle),1)])]),_:1},8,["items"])])]),_:1})]),_:1})]),_:1})]),_:1}),n(Ie,null,{default:o(()=>[n(ke),n(re,{onClick:g[2]||(g[2]=f=>a.value=!1)},{default:o(()=>[...g[7]||(g[7]=[j("Cancel",-1)])]),_:1}),n(re,{loading:e(r),onClick:d},{default:o(()=>[j(" Forget State"+q(e(i)?` (${t.instances.length})`:""),1)]),_:1},8,["loading"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"]))}}),$t=be(Ct,[["__scopeId","data-v-7881a32c"]]),Dt={class:"session-list-cointainer"},Vt=z({__name:"TerminalListSubmenu",props:ee({stateId:{},terminalIds:{}},{visible:{type:Boolean},visibleModifiers:{}}),emits:["update:visible"],setup(t){const{instancesStore:a,stateStore:y}=J(),{state:w,execute:i,isLoading:v}=y.getTerminalsState(S(()=>t.terminalIds)),{state:r,execute:I,isLoading:p}=a.getTerminalSessionsState(S(()=>t.stateId)),s=_(t,"visible");te(s,f=>{f&&(I(),i())});const d=f=>f.finishedAt?`Finished at ${new Date(f.finishedAt).toLocaleString()}`:`Started at ${new Date(f.startedAt).toLocaleString()}`,c=f=>{const M=Je();return f.finishedAt?"#9E9E9E":M.current.value.colors.success},h=C(null),g=async f=>{h.value=f;try{await a.openTerminal(f,!0)}finally{h.value=null}};return(f,M)=>(l(),$(e(L),{icon:"mdi-console",title:"Terminals"},{append:o(()=>[n(de,{icon:"mdi-menu-right",size:"x-small"})]),default:o(()=>[n(Se,{modelValue:s.value,"onUpdate:modelValue":M[0]||(M[0]=D=>s.value=D),"open-on-focus":!1,"open-on-hover":"","close-on-content-click":!1,submenu:"",activator:"parent"},{default:o(()=>[n(xe,{density:"compact",variant:"text"},{default:o(()=>[n(ge,{class:"text-overline"},{default:o(()=>[...M[1]||(M[1]=[j("Available Terminals",-1)])]),_:1}),(l(!0),B(A,null,se(e(w),D=>(l(),$(e(L),{key:D.id,disabled:!!e(h),title:D.meta.title,subtitle:D.meta.description,"custom-icon":D.meta.icon,loading:e(h)===D.id,icon:"mdi-console",onClick:P=>g(D.id)},null,8,["disabled","title","subtitle","custom-icon","loading","onClick"]))),128)),n(R,{class:"mt-2 mb-2"}),n(ge,{class:"text-overline"},{default:o(()=>[...M[2]||(M[2]=[j("Sessions",-1)])]),_:1}),O("div",Dt,[(l(!0),B(A,null,se(e(r),D=>(l(),$(e(L),{key:D.id,title:D.meta.title,subtitle:d(D),"custom-icon":D.meta.icon,icon:"mdi-console",color:c(D),onClick:P=>e(a).openTerminalSession(D)},null,8,["title","subtitle","custom-icon","color","onClick"]))),128))]),e(r).length===0?(l(),$(ge,{key:0,class:"text-disabled"},{default:o(()=>[...M[3]||(M[3]=[j(" No sessions found ",-1)])]),_:1})):V("",!0)]),_:1})]),_:1},8,["modelValue"])]),_:1}))}}),Tt=be(Vt,[["__scopeId","data-v-7c86584d"]]),Ot=z({__name:"PageListSubmenu",props:ee({pageIds:{}},{visible:{type:Boolean},visibleModifiers:{}}),emits:["update:visible"],setup(t){const{projectStore:a,stateStore:y}=J(),w=pe(),i=C({}),v=C(!1),r=_(t,"visible");te(r,async p=>{if(p){v.value=!0;try{i.value=await y.getPages(t.pageIds)}finally{v.value=!1}}});const I=async p=>{await w.openPage(a.projectId,p)};return(p,s)=>(l(),$(e(L),{icon:"mdi-file-document",title:"Pages"},{append:o(()=>[n(de,{icon:"mdi-menu-right",size:"x-small"})]),default:o(()=>[n(Se,{modelValue:r.value,"onUpdate:modelValue":s[0]||(s[0]=d=>r.value=d),"open-on-focus":!1,"open-on-hover":"","close-on-content-click":!1,submenu:"",activator:"parent"},{default:o(()=>[n(xe,{density:"compact",variant:"text"},{default:o(()=>[(l(!0),B(A,null,se(t.pageIds,d=>(l(),$(e(L),{key:d,title:e(i)[d]?.meta.title??d,subtitle:e(i)[d]?.meta.description,"custom-icon":e(i)[d]?.meta.icon,disabled:!e(i)[d],icon:"mdi-file-document",onClick:c=>I(d)},null,8,["title","subtitle","custom-icon","disabled","onClick"]))),128)),e(v)?(l(),$(Me,{key:0,title:"Loading pages..."})):V("",!0)]),_:1})]),_:1},8,["modelValue"])]),_:1}))}}),Pt=z({__name:"PanelListSubmenu",props:ee({panelIds:{}},{visible:{type:Boolean},visibleModifiers:{}}),emits:["update:visible"],setup(t){const{projectStore:a,stateStore:y}=J(),w=pe(),i=C([]),v=C(!1),r=_(t,"visible");return te(r,async I=>{if(I){v.value=!0;try{i.value=await y.getPanels(t.panelIds)}finally{v.value=!1}}}),(I,p)=>(l(),$(e(L),{icon:"mdi-view-dashboard-outline",title:"Panels"},{append:o(()=>[n(de,{icon:"mdi-menu-right",size:"x-small"})]),default:o(()=>[n(Se,{modelValue:r.value,"onUpdate:modelValue":p[0]||(p[0]=s=>r.value=s),"open-on-focus":!1,"open-on-hover":"","close-on-content-click":!1,submenu:"",activator:"parent"},{default:o(()=>[n(xe,{density:"compact",variant:"text"},{default:o(()=>[(l(!0),B(A,null,se(e(i),s=>(l(),$(e(L),{key:s.id,title:s.meta.title,subtitle:s.meta.description,"custom-icon":s.meta.icon,icon:"mdi-view-dashboard-outline",onClick:d=>e(w).openPanel(e(a).projectId,s.id)},null,8,["title","subtitle","custom-icon","onClick"]))),128)),e(v)?(l(),$(Me,{key:0,title:"Loading panels..."})):V("",!0)]),_:1})]),_:1},8,["modelValue"])]),_:1}))}}),Ft=z({__name:"InstanceContextMenu",props:{instance:{},component:{},state:{},terminalIds:{},stores:{},operation:{},locked:{type:Boolean},editable:{type:Boolean},ghost:{type:Boolean,default:!1}},setup(t,{expose:a}){const y=S(()=>t.terminalIds??t.state?.terminalIds??[]),{projectStore:w,stateStore:i,operationsStore:v}=t.stores,r=pe(),{selection:I}=Ve(),p=C(!1),s=C(!1),d=C("update"),c=C([]),h=C(!1),g=C([]),f=S(()=>I.selectedInstances.length>1&&I.selectedInstances.some(m=>m.id===t.instance.id)?I.selectedInstances:[t.instance]),M=S(()=>f.value.length>1),D=(k,m,x)=>{if(x==="preview"&&(M.value||k.kind!=="unit"))return!1;const Q=Ge(m?.lastOperationState?.status);switch(x){case"update":return!Q;case"refresh":return ve(m)&&!Q;case"preview":return!Q;case"recreate":case"destroy":return ve(m)&&!Q;default:return!1}},P=k=>t.ghost&&k!=="destroy"?!1:f.value.some(m=>{const x=i.instanceStates.get(m.id);return D(m,x,k)}),W=k=>t.ghost&&k!=="destroy"?!1:f.value.every(m=>{const x=i.instanceStates.get(m.id);return D(m,x,k)}),E=S(()=>f.value.some(k=>{const m=i.instanceStates.get(k.id);return ve(m)})),G=k=>{const m=f.value.length;return m===1?k==="update"?E.value?"Update":"Create":k.charAt(0).toUpperCase()+k.slice(1):k==="update"?`${E.value?"Update":"Create"} selected (${m})`:`${k.charAt(0).toUpperCase()+k.slice(1)} selected (${m})`},H=k=>{if(M.value)return"mdi-format-list-bulleted";switch(k){case"update":return E.value?"mdi-play":"mdi-rocket-launch";case"refresh":return"mdi-reload";case"preview":return"mdi-eye";case"recreate":return"mdi-restart";case"destroy":return"mdi-stop";default:return"mdi-play"}},K=k=>{d.value=k,c.value=f.value,s.value=!0,p.value=!1,I.clearSelection()},b=()=>{g.value=f.value,h.value=!0,p.value=!1,I.clearSelection()},u=me("contextMenu"),U=async k=>{u.value&&await u.value.showContextMenu(k)},ne=async()=>{if(f.value.length!==1||t.instance.kind!=="unit"){p.value=!1;return}const k=await v.launchInstanceOperation("preview",t.instance);p.value=!1,t.state&&await r.openLogsPanel(w.projectId,k.id,t.state.id)};return a({showContextMenu:U}),(k,m)=>(l(),B(A,null,[n(e(Be),{ref_key:"contextMenu",ref:u,visible:e(p),"onUpdate:visible":m[6]||(m[6]=x=>Y(p)?p.value=x:null),title:"Instance",subtitle:t.instance.id,"is-deletable":x=>t.stores.stateStore.isNodeDeletable(x)},{default:o(()=>[P("update")?(l(),$(e(L),{key:0,title:G("update"),icon:H("update"),color:"primary",disabled:t.locked||!W("update"),onClick:m[0]||(m[0]=x=>K("update"))},null,8,["title","icon","disabled"])):V("",!0),P("refresh")?(l(),$(e(L),{key:1,title:G("refresh"),icon:H("refresh"),color:"primary",disabled:t.locked||!W("refresh"),onClick:m[1]||(m[1]=x=>K("refresh"))},null,8,["title","icon","disabled"])):V("",!0),P("preview")?(l(),$(e(L),{key:2,title:G("preview"),icon:H("preview"),color:"secondary",disabled:t.locked||!W("preview"),onClick:ne},null,8,["title","icon","disabled"])):V("",!0),t.state?.lastOperationState?(l(),B(A,{key:3},[n(R),n(e(L),{title:"Open Logs",icon:"mdi-text",color:"primary",onClick:m[2]||(m[2]=x=>e(i).openInstanceLogs(t.instance))})],64)):V("",!0),n(R),n(e(L),{title:"View in Settings",icon:"mdi-cog",color:"primary",onClick:m[3]||(m[3]=()=>{const x=e(i).getInstanceState(t.instance.id);x&&("navigateTo"in k?k.navigateTo:e(ze))({name:"settings.instance-details",params:{projectId:e(w).projectId,stateId:x.id}}),p.value=!1})}),t.state?.id&&e(y).length>0?(l(),B(A,{key:4},[n(R),n(Tt,{"state-id":t.state.id,"terminal-ids":e(y)},null,8,["state-id","terminal-ids"])],64)):V("",!0),t.state?.pageIds?.length?(l(),B(A,{key:5},[n(R),n(Ot,{"page-ids":t.state.pageIds},null,8,["page-ids"])],64)):V("",!0),t.state?.panelIds?.length?(l(),B(A,{key:6},[n(R),n(Pt,{"panel-ids":t.state.panelIds},null,8,["panel-ids"])],64)):V("",!0),e(E)||t.ghost?(l(),B(A,{key:7},[n(R),P("recreate")?(l(),$(e(L),{key:0,title:G("recreate"),icon:H("recreate"),color:"warning",disabled:t.locked||!W("recreate"),onClick:m[4]||(m[4]=x=>K("recreate"))},null,8,["title","icon","disabled"])):V("",!0),P("destroy")?(l(),$(e(L),{key:1,title:G("destroy"),icon:H("destroy"),color:"error",disabled:t.locked||!W("destroy"),onClick:m[5]||(m[5]=x=>K("destroy"))},null,8,["title","icon","disabled"])):V("",!0),n(e(L),{title:e(M)?`Forget State selected (${e(f).length})`:"Forget State",icon:"mdi-delete-forever",color:"error",disabled:t.locked,onClick:b},null,8,["title","disabled"])],64)):V("",!0)]),_:1},8,["visible","subtitle","is-deletable"]),n(wt,{visible:e(s),"onUpdate:visible":m[7]||(m[7]=x=>Y(s)?s.value=x:null),operation:e(d),instances:e(c),component:t.component},null,8,["visible","operation","instances","component"]),n($t,{visible:e(h),"onUpdate:visible":m[8]||(m[8]=x=>Y(h)?h.value=x:null),instances:e(g)},null,8,["visible","instances"])],64))}}),Mt=[{key:"forceUpdateDependencies",label:"Force update dependencies",description:"Force update all dependencies regardless of their current state. Bypasses hash-based change detection for dependency chains.",showForOperations:["update"]},{key:"ignoreChangedDependencies",label:"Ignore changed dependencies",description:"Skip only changed dependencies. Failed or undeployed dependencies of selected instances are still included.",showForOperations:["update"]},{key:"ignoreDependencies",label:"Ignore dependencies",description:"Skip all dependencies of selected instances, including failed and undeployed prerequisites. Operate only on explicitly selected instances.",warning:"This is manual mode. The operation may fail unless every required prerequisite instance is selected explicitly.",showForOperations:["update"]},{key:"forceUpdateChildren",label:"Force update children instances",description:"Force update all children of composite instances regardless of their state. Overrides selective child inclusion logic.",showForOperations:["update"]},{key:"onlyDestroyGhosts",label:"Only destroy ghosts",description:"Skip update phase and run only ghost cleanup destroy phase for affected composite instances.",showForOperations:["update"],requiresCompositeTargets:!0},{key:"firstDestroyGhosts",label:"Destroy ghosts before update",description:"Run ghost cleanup destroy phase before update phase for affected composite instances.",showForOperations:["update"],requiresCompositeTargets:!0},{key:"ignoreGhosts",label:"Ignore ghosts",description:"Skip ghost cleanup destroy phase for update operations.",showForOperations:["update"],requiresCompositeTargets:!0},{key:"destroyDependentInstances",label:"Destroy dependent instances",description:"Include dependent instances when destroying instances. Traverses the dependency graph in reverse to prevent orphaned instances.",defaultValue:!0,showForOperations:["destroy","recreate"]},{key:"invokeDestroyTriggers",label:"Invoke destroy triggers",description:"Execute destroy triggers when destroying instances. Controls trigger execution during the destruction phase.",defaultValue:!0},{key:"deleteUnreachableResources",label:"Delete unreachable resources",description:"Delete Pulumi resources that are no longer referenced in the state. Deletes orphaned resources within individual instances.",warning:"All resources that will not be reachable at the moment of the destroy operation will be removed from the state. Only use when you are sure that these resources do not actually exist!"},{key:"forceDeleteState",label:"Force delete state",description:"Force deletion of instance state even if the destroy operation fails. Bypasses normal destroy procedures as emergency fallback.",warning:"This will delete the stack state and all resources in it even if the destroy operation failed. Use only when the stack is unrecoverable and you want to start from scratch.",showForOperations:["destroy","recreate"]},{key:"allowPartialCompositeInstanceUpdate",label:"Allow partial update of composite instances",description:"Allow update of individual composite children without requiring all siblings. When enabled, only necessary children are included.",showForOperations:["update","recreate"]},{key:"allowPartialCompositeInstanceDestruction",label:"Allow partial destruction of composite instances",description:"Allow partial destruction of composite instances during cascade operations. When enabled, cascade destruction includes only directly dependent children.",showForOperations:["destroy","recreate"]},{key:"refresh",label:"Refresh state before operation",description:"Also refresh the state of instances during the operation. Synchronizes state with actual infrastructure."},{key:"debug",label:"Enable debug logging",description:"Enable debug logging for Pulumi engine and resource providers. Sets TF_LOG=DEBUG for Terraform providers.",warning:"Debug mode may expose sensitive information including credentials in the logs. Use only when absolutely necessary for troubleshooting."}],Ue=(t,a)=>Mt.filter(y=>y.requiresCompositeTargets&&!a?.compositeTargetsOnly?!1:y.showForOperations?y.showForOperations.includes(t):!0),Ut=z({__name:"PageDialog",props:ee({meta:{},content:{}},{visible:{type:Boolean},visibleModifiers:{}}),emits:["update:visible"],setup(t){const a=_(t,"visible");return(y,w)=>(l(),$(we,{modelValue:a.value,"onUpdate:modelValue":w[1]||(w[1]=i=>a.value=i),"max-width":"80vh","max-height":"60vh"},{default:o(()=>[n(ce,{title:t.meta.title,color:"#2d2d2d"},{default:o(()=>[n(fe,{style:{"overflow-y":"scroll"}},{default:o(()=>[n(at,{content:t.content},null,8,["content"])]),_:1}),n(Ie,null,{default:o(()=>[n(ke),n(re,{onClick:w[0]||(w[0]=i=>a.value=!1)},{default:o(()=>[...w[2]||(w[2]=[j("Close",-1)])]),_:1})]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"]))}}),qt=z({__name:"InstanceNodeWrapper",props:{id:{},type:{},selected:{type:Boolean},connectable:{type:[Boolean,Number,String,Function]},position:{},dimensions:{},label:{},isValidTargetPos:{type:Function},isValidSourcePos:{type:Function},parent:{},parentNodeId:{},dragging:{type:Boolean},resizing:{type:Boolean},zIndex:{},targetPosition:{},sourcePosition:{},dragHandle:{},data:{},events:{}},setup(t){const a=J(),y=pe(),{projectStore:w,stateStore:i,instancesStore:v,libraryStore:r,operationsStore:I,validationStore:p}=a,s=S(()=>t.data.instance),d=S(()=>{const F=v.getInstanceComponent(s.value);if(!F)throw new Error(`component "${s.value.type}" for instance "${s.value.id}" not found in library`);return F}),c=S(()=>i.instanceStates.get(s.value.id)),h=S(()=>c.value&&i.instanceLocks.get(c.value.id)),g=S(()=>I.getLastInstanceOperation(s.value.id)),f=S(()=>v.isGhostInstance(s.value.id)),M=C(!1),D=C(!1),P=C(),W=C([]),E=C(!1),G=C(!1),H=C({}),K=async()=>{M.value=!0;try{if(!c.value?.pageIds)return;const F=c.value.pageIds;if(!F.length)return;const T=await i.getPage(F[0]);if(!T)return;P.value=T.meta,W.value=T.content,D.value=!0}finally{M.value=!1}},b=C(!1),u=C(!1),U=S(()=>{const F=c.value?.terminalIds??[];if(d.value.kind!=="composite")return F;const T=new Set,N=new Set,X=[],ae=Z=>{for(const le of Z??[])N.has(le)||(N.add(le),X.push(le))},Ce=Z=>{if(T.has(Z))return;T.add(Z);const le=i.instanceStates.get(Z);ae(le?.terminalIds);for(const Le of v.getInstanceChildren(Z))Ce(Le.id)};ae(F);for(const Z of v.getInstanceChildren(s.value.id))Ce(Z.id);return X}),ne=async()=>{b.value=!0;try{if(U.value.length===0)return;await v.openTerminal(U.value[0])}finally{b.value=!1}},k=async()=>{u.value=!0;try{const F=c.value?.panelIds?.[0];if(!F)return;await y.openPanel(w.projectId,F)}finally{u.value=!1}},m=async()=>{G.value=!0;try{if(!c.value)return;const F=await a.stateStore.getInstanceSecrets(c.value.id);H.value={...F},E.value=!0}finally{G.value=!1}},x=async()=>{const F=c.value?.id??s.value.id;await y.openCompositeInstancePanel(w.projectId,F)},Q=me("contextMenu"),oe=Re(),ie=C(null),Ne=F=>f.value?!1:Ee(oe,r.library,v.inputResolverOutputs,F);return te(()=>({ghost:f.value,initialized:oe.areNodesInitialized.value}),({ghost:F,initialized:T})=>{if(!T)return;const N=oe.findNode(t.id);if(N){if(!F){if(ie.value){const{connectable:X,draggable:ae}=ie.value;oe.updateNode(t.id,()=>({connectable:X,draggable:ae})),ie.value=null}return}ie.value||(ie.value={connectable:!!N.connectable,draggable:N.draggable??!0}),oe.updateNode(t.id,()=>({connectable:!1,draggable:!0}))}},{immediate:!0}),(F,T)=>(l(),$(_e,{"editing-secrets":e(E),"onUpdate:editingSecrets":T[1]||(T[1]=N=>Y(E)?E.value=N:null),"loading-secrets":e(G),"initial-secrets":e(H),"loading-page":e(M),instance:t.data.instance,component:e(d),entities:e(r).library.entities,"project-id":e(w).projectId,"input-resolver-outputs":e(v).inputResolverOutputs,"input-resolver-dependent-map":e(v).inputResolverDependentMap,"is-valid-connection":Ne,"instance-lock":e(h),state:e(c),"terminal-ids":e(U),"loading-panel":e(u),editable:t.data.editable&&!e(f),ghost:e(f),stores:("markRaw"in F?F.markRaw:e(Ke))(e(a)),"workspace-store":e(y),"all-instances":e(v).instances,"onSave:args":T[2]||(T[2]=(N,X,ae)=>e(v).updateInstance(N,X,ae)),"onSave:secrets":T[3]||(T[3]=(N,X)=>e(i).updateInstanceSecrets(N,X)),"onOpen:secrets":m,"onOpen:terminal":ne,"onOpen:panel":k,"onOperation:launch":T[4]||(T[4]=N=>e(I).launchQuickInstanceOperation(N,t.data.instance)),"onOperation:cancel":T[5]||(T[5]=N=>e(I).cancelInstanceOperation(e(c).lastOperationState.operationId,t.data.instance.id)),onContextmenu:T[6]||(T[6]=N=>e(Q)?.showContextMenu(N)),"onOpen:composite":x,"onOpen:page":K},{status:o(()=>[n(e(et),{state:e(c),operation:e(g),"expected-input-hash":e(i).inputHashOutputs.get(e(s).id)?.inputHash,"validation-output":e(p).validationOutputs.get(e(s).id)},null,8,["state","operation","expected-input-hash","validation-output"])]),default:o(()=>[n(e(Ft),{ref_key:"contextMenu",ref:Q,stores:e(a),instance:e(s),component:e(d),state:e(c),"terminal-ids":e(U),editable:t.data.editable&&!e(f),locked:!!e(h),ghost:e(f)},null,8,["stores","instance","component","state","terminal-ids","editable","locked","ghost"]),e(P)?(l(),$(e(Ut),{key:0,visible:e(D),"onUpdate:visible":T[0]||(T[0]=N=>Y(D)?D.value=N:null),meta:e(P),content:e(W)},null,8,["visible","meta","content"])):V("",!0)]),_:1},8,["editing-secrets","loading-secrets","initial-secrets","loading-page","instance","component","entities","project-id","input-resolver-outputs","input-resolver-dependent-map","instance-lock","state","terminal-ids","loading-panel","editable","ghost","stores","workspace-store","all-instances"]))}}),Be=z({__name:"NodeContextMenu",props:ee({title:{},subtitle:{},isDeletable:{type:Function}},{visible:{type:Boolean,default:!1},visibleModifiers:{}}),emits:["update:visible"],setup(t,{expose:a}){const{selection:y,vueFlowStore:w,deleteNodes:i}=Ve(),v=_(t,"visible"),r=qe(),I=me("contextMenu"),p=async h=>{I.value&&await I.value.showContextMenu(h)},{off:s}=w.onViewportChange(()=>{v.value=!1});Qe(()=>{s(),v.value=!1}),a({showContextMenu:p});const d=S(()=>t.isDeletable(r.node)?y.selectedNodeIds.has(r.id)?Array.from(y.selectedNodes).filter(t.isDeletable):[r.node]:[]),c=S(()=>d.value.length===1?"Delete":`Delete selected (${d.value.length})`);return(h,g)=>(l(),$(tt,{ref_key:"contextMenu",ref:I,visible:v.value,"onUpdate:visible":g[1]||(g[1]=f=>v.value=f),title:t.title,subtitle:t.subtitle},{default:o(()=>[h.$slots.default?(l(),B(A,{key:0},[n(R),Xe(h.$slots,"default")],64)):V("",!0),e(d).length>0?(l(),B(A,{key:1},[n(R),n(L,{title:e(c),icon:"mdi-delete",color:"error",onClick:g[0]||(g[0]=f=>e(i)(e(d)))},null,8,["title"])],64)):V("",!0)]),_:3},8,["visible","title","subtitle"]))}});export{Rt as _,Et as a,qt as b,Ft as c};