docker-client-mx 1.35.1 → 1.37.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 (79) hide show
  1. package/dist/docker-desktop-mx/browser/{chunk-DYUws9mp.js → chunk-85ZfO9F8.js} +1 -1
  2. package/dist/docker-desktop-mx/browser/chunk-BBim8Gdo.js +1 -0
  3. package/dist/docker-desktop-mx/browser/chunk-BEoyPb75.js +1 -0
  4. package/dist/docker-desktop-mx/browser/{chunk-DRT1vtH_.js → chunk-BRMUzx40.js} +2 -2
  5. package/dist/docker-desktop-mx/browser/{chunk-V8IwFs3U.js → chunk-Bdz1JYTl.js} +1 -1
  6. package/dist/docker-desktop-mx/browser/{chunk-DFUzAyI0.js → chunk-BqwibbR9.js} +1 -1
  7. package/dist/docker-desktop-mx/browser/{chunk-BDeMOmys.js → chunk-BsvB6MmB.js} +1 -1
  8. package/dist/docker-desktop-mx/browser/{chunk-BgAYDwld.js → chunk-CBFZokW4.js} +1 -1
  9. package/dist/docker-desktop-mx/browser/chunk-CFXWwPKo.js +1 -0
  10. package/dist/docker-desktop-mx/browser/{chunk-CfF5fStd.js → chunk-CJPEgaYc.js} +2 -2
  11. package/dist/docker-desktop-mx/browser/{chunk-oQtDYwMw.js → chunk-CKodeenq.js} +1 -1
  12. package/dist/docker-desktop-mx/browser/chunk-CQIXZf41.js +1 -0
  13. package/dist/docker-desktop-mx/browser/chunk-CRVM0rcA.js +1 -0
  14. package/dist/docker-desktop-mx/browser/chunk-CUr0g3Yg.js +2 -0
  15. package/dist/docker-desktop-mx/browser/chunk-C_xeoQ-e.js +1 -0
  16. package/dist/docker-desktop-mx/browser/chunk-ChbnoZwy.js +1 -0
  17. package/dist/docker-desktop-mx/browser/{chunk-CKI6HOt5.js → chunk-CnbHjkCv.js} +1 -1
  18. package/dist/docker-desktop-mx/browser/{chunk-Dj0SqC61.js → chunk-CnjgTml5.js} +1 -1
  19. package/dist/docker-desktop-mx/browser/{chunk-C-mSD_ks.js → chunk-CxswDxfD.js} +1 -1
  20. package/dist/docker-desktop-mx/browser/{chunk-C7ZKT99Y.js → chunk-D0FWgHJO.js} +1 -1
  21. package/dist/docker-desktop-mx/browser/chunk-D6QO1pHf.js +1 -0
  22. package/dist/docker-desktop-mx/browser/chunk-DUvIPvPb.js +1 -0
  23. package/dist/docker-desktop-mx/browser/{chunk-Dh7vYMc8.js → chunk-D_aXkfN2.js} +1 -1
  24. package/dist/docker-desktop-mx/browser/chunk-DanrBswj.js +4 -0
  25. package/dist/docker-desktop-mx/browser/{chunk-DSXCkEOA.js → chunk-DnXZxwhv.js} +1 -1
  26. package/dist/docker-desktop-mx/browser/{chunk-DAJsomrJ.js → chunk-DppHyEV4.js} +1 -1
  27. package/dist/docker-desktop-mx/browser/chunk-Fctw84Xo.js +1 -0
  28. package/dist/docker-desktop-mx/browser/{chunk-Duka1ezn.js → chunk-GRa_eWyd.js} +1 -1
  29. package/dist/docker-desktop-mx/browser/chunk-MG8VVeEh.js +1 -0
  30. package/dist/docker-desktop-mx/browser/chunk-NszG4cuZ.js +1 -0
  31. package/dist/docker-desktop-mx/browser/chunk-_ngdOVTJ.js +1 -0
  32. package/dist/docker-desktop-mx/browser/chunk-aZl-0gS4.js +1 -0
  33. package/dist/docker-desktop-mx/browser/{chunk-MHYwHTvv.js → chunk-cfauKEfy.js} +1 -1
  34. package/dist/docker-desktop-mx/browser/chunk-ibW6UTMN.js +1 -0
  35. package/dist/docker-desktop-mx/browser/{chunk-BDwzLH5E.js → chunk-rv2Wq9aE.js} +1 -1
  36. package/dist/docker-desktop-mx/browser/{chunk-Dk2BOjJw.js → chunk-t-OrhYrD.js} +1 -1
  37. package/dist/docker-desktop-mx/browser/index.html +2 -2
  38. package/dist/docker-desktop-mx/browser/main-5BW3ZB5N.js +1 -0
  39. package/dist/docker-desktop-mx/browser/styles-QQZVKMBI.css +1 -0
  40. package/dist-electron/attention.js +4 -1
  41. package/dist-electron/attention.js.map +1 -1
  42. package/dist-electron/channels.js +6 -0
  43. package/dist-electron/channels.js.map +1 -1
  44. package/dist-electron/ipc.js +23 -0
  45. package/dist-electron/ipc.js.map +1 -1
  46. package/dist-electron/log-export.js +83 -0
  47. package/dist-electron/log-export.js.map +1 -0
  48. package/dist-electron/main.js +31 -0
  49. package/dist-electron/main.js.map +1 -1
  50. package/dist-electron/memory-limit.js +58 -0
  51. package/dist-electron/memory-limit.js.map +1 -0
  52. package/dist-electron/palette-ai.js +139 -0
  53. package/dist-electron/palette-ai.js.map +1 -0
  54. package/dist-electron/preload.js +16 -2
  55. package/dist-electron/preload.js.map +1 -1
  56. package/dist-electron/settings.js +24 -0
  57. package/dist-electron/settings.js.map +1 -1
  58. package/dist-electron/updates.js +14 -0
  59. package/dist-electron/updates.js.map +1 -1
  60. package/package.json +1 -1
  61. package/dist/docker-desktop-mx/browser/chunk-BIryu19T.js +0 -1
  62. package/dist/docker-desktop-mx/browser/chunk-BgSpSEgy.js +0 -1
  63. package/dist/docker-desktop-mx/browser/chunk-Bo4H3_Rk.js +0 -1
  64. package/dist/docker-desktop-mx/browser/chunk-C38PgGs5.js +0 -1
  65. package/dist/docker-desktop-mx/browser/chunk-C5hTG6ZQ.js +0 -1
  66. package/dist/docker-desktop-mx/browser/chunk-CSTPKCSb.js +0 -1
  67. package/dist/docker-desktop-mx/browser/chunk-CkcMOifC.js +0 -1
  68. package/dist/docker-desktop-mx/browser/chunk-CmXGNv0-.js +0 -1
  69. package/dist/docker-desktop-mx/browser/chunk-Cs8Jh9po.js +0 -1
  70. package/dist/docker-desktop-mx/browser/chunk-DIjFiJIb.js +0 -1
  71. package/dist/docker-desktop-mx/browser/chunk-DOxgdvK8.js +0 -4
  72. package/dist/docker-desktop-mx/browser/chunk-DrmeYv5g.js +0 -1
  73. package/dist/docker-desktop-mx/browser/chunk-GNa4NoSX.js +0 -2
  74. package/dist/docker-desktop-mx/browser/chunk-ltArY2xW.js +0 -1
  75. package/dist/docker-desktop-mx/browser/chunk-sKoSitq-.js +0 -1
  76. package/dist/docker-desktop-mx/browser/chunk-tewFiBKE.js +0 -1
  77. package/dist/docker-desktop-mx/browser/chunk-uyqlb3cB.js +0 -1
  78. package/dist/docker-desktop-mx/browser/main-EZ2B2NFK.js +0 -1
  79. package/dist/docker-desktop-mx/browser/styles-JS3HDDI4.css +0 -1
@@ -1 +1 @@
1
- import{$n as sT,Bn as oT,H as Kr,P as I,Pt as X,_r as wt,an as f,jn as lT,lr as ve,o as $t,rn as eH}from"./chunk-DOxgdvK8.js";import{n as u,t as f$1}from"./chunk-C7ZKT99Y.js";import{i as h$1,r as d}from"./chunk-Dj0SqC61.js";function M(n){let e=oT().images.check,t=p=>n.filter(f=>f.state===p).length,s=t(`update`),o=[s===0?e.allCurrent:e.updates(s)];return t(`unknown`)>0&&o.push(e.notInRegistry(t(`unknown`))),t(`error`)>0&&o.push(e.uncheckable(t(`error`))),e.summary(o.join(`, `),n.length)}var h;var P=f(()=>{Kr();h$1();lT();f$1();sT();Kr();h=class n{toast=I(u);items=wt([]);busy=wt(!1);loadProblem=wt(null);running=wt(new Set);updateResults=wt(null);checking=wt(!1);images=this.items.asReadonly();loading=this.busy.asReadonly();problem=this.loadProblem.asReadonly();pending=this.running.asReadonly();updates=this.updateResults.asReadonly();checkingUpdates=this.checking.asReadonly();totalBytes=$t(()=>[...new Map(this.items().map(e=>[e.id,e.sizeBytes]))].reduce((e,[,t])=>e+t,0));unusedCount=$t(()=>this.items().filter(e=>e.inUseBy===0).length);constructor(){I(ve).onDestroy(window.electron.events.subscribe(e=>{e.includes(`image`)&&this.refresh()}))}async refresh(){this.busy.set(!0);try{this.items.set(await window.electron.images.list()),this.loadProblem.set(null)}catch(e){this.loadProblem.set(eH(e))}finally{this.busy.set(!1)}}async remove(e,t){this.running.update(s=>new Set(s).add(e));try{let s=await window.electron.images.remove(e,t);s.ok||this.toast.error(s.problem)}finally{this.running.update(s=>{let o=new Set(s);return o.delete(e),o})}await this.refresh()}async removeMany(e,t){await Promise.all(e.map(s=>this.remove(s,t)))}async prune(e){this.busy.set(!0);try{let t=await window.electron.images.prune(e);t.ok?this.toast.success(t.removed===0?oT().common.nothingToPrune:oT().images.pruned(t.removed,d(t.reclaimedBytes))):this.toast.error(t.problem)}finally{this.busy.set(!1)}await this.refresh()}async checkUpdates(){this.checking.set(!0);try{let e=await window.electron.images.checkUpdates();this.updateResults.set(new Map(e.map(t=>[t.reference,t]))),this.toast.success(M(e))}catch(e){this.toast.error(eH(e))}finally{this.checking.set(!1)}}async recheckIfChecked(){this.updateResults()!==null&&await this.checkUpdates()}static ɵfac=function(t){return new(t||n)};static ɵprov=X({token:n,factory:n.ɵfac,providedIn:`root`})}});export{h as n,P as t};
1
+ import{A as I,Mn as lk,R as Kr,Vn as ok,W as Lt,_r as wt,er as sk,ln as f,lr as ve,sn as eH,zt as X}from"./chunk-DanrBswj.js";import{n as u,t as f$1}from"./chunk-D0FWgHJO.js";import{i as h$1,r as d}from"./chunk-CnjgTml5.js";function M(n){let e=ok().images.check,t=p=>n.filter(f=>f.state===p).length,s=t(`update`),o=[s===0?e.allCurrent:e.updates(s)];return t(`unknown`)>0&&o.push(e.notInRegistry(t(`unknown`))),t(`error`)>0&&o.push(e.uncheckable(t(`error`))),e.summary(o.join(`, `),n.length)}var h;var P=f(()=>{Kr();h$1();lk();f$1();sk();Kr();h=class n{toast=I(u);items=wt([]);busy=wt(!1);loadProblem=wt(null);running=wt(new Set);updateResults=wt(null);checking=wt(!1);images=this.items.asReadonly();loading=this.busy.asReadonly();problem=this.loadProblem.asReadonly();pending=this.running.asReadonly();updates=this.updateResults.asReadonly();checkingUpdates=this.checking.asReadonly();totalBytes=Lt(()=>[...new Map(this.items().map(e=>[e.id,e.sizeBytes]))].reduce((e,[,t])=>e+t,0));unusedCount=Lt(()=>this.items().filter(e=>e.inUseBy===0).length);constructor(){I(ve).onDestroy(window.electron.events.subscribe(e=>{e.includes(`image`)&&this.refresh()}))}async refresh(){this.busy.set(!0);try{this.items.set(await window.electron.images.list()),this.loadProblem.set(null)}catch(e){this.loadProblem.set(eH(e))}finally{this.busy.set(!1)}}async remove(e,t){this.running.update(s=>new Set(s).add(e));try{let s=await window.electron.images.remove(e,t);s.ok||this.toast.error(s.problem)}finally{this.running.update(s=>{let o=new Set(s);return o.delete(e),o})}await this.refresh()}async removeMany(e,t){await Promise.all(e.map(s=>this.remove(s,t)))}async prune(e){this.busy.set(!0);try{let t=await window.electron.images.prune(e);t.ok?this.toast.success(t.removed===0?ok().common.nothingToPrune:ok().images.pruned(t.removed,d(t.reclaimedBytes))):this.toast.error(t.problem)}finally{this.busy.set(!1)}await this.refresh()}async checkUpdates(){this.checking.set(!0);try{let e=await window.electron.images.checkUpdates();this.updateResults.set(new Map(e.map(t=>[t.reference,t]))),this.toast.success(M(e))}catch(e){this.toast.error(eH(e))}finally{this.checking.set(!1)}}async recheckIfChecked(){this.updateResults()!==null&&await this.checkUpdates()}static ɵfac=function(t){return new(t||n)};static ɵprov=X({token:n,factory:n.ɵfac,providedIn:`root`})}});export{h as n,P as t};
@@ -1 +1 @@
1
- import{$n as sT,Bn as oT,En as kc,Fn as mj,Ft as Xm,Gn as pg,H as Kr,M as HC,Sn as jc,Tr as zr,V as Km,Vt as _c,W as Ld,Wt as ag,_t as Sc,an as f,bt as Tc,hr as wc,in as ec,jt as Wr,lt as RC,o as $t,on as fS,qn as qr,r as $d}from"./chunk-DOxgdvK8.js";function B(n){let t=S.exec(n);if(t!==null){let o=m[t[1].toLowerCase()];if(o!==void 0)return o}let e=k.exec(n);if(e!==null)return m[e[1].toLowerCase()]??null;let r=O.exec(n);return r===null?null:m[r[1].toLowerCase()]??null}function H(n,t){return t.size===0||(n===`error`||n===`warn`)&&t.has(n)}function U(n){let t=0,e=0;for(let r of n)t+=r===`error`?1:0,e+=r===`warn`?1:0;return{error:t,warn:e}}function j(n,t){let e=n.trim();if(e===``)return P;let r=/^\/(.+)\/([a-z]*)$/.exec(e);if(r===null){let o=t?e:e.toLowerCase();return{test:a=>(t?a:a.toLowerCase()).includes(o),problem:null}}try{let o=r[2].includes(`i`)||t?r[2]:`${r[2]}i`,a=new RegExp(r[1],o);return{test:M=>a.test(M),problem:null}}catch(o){return{test:()=>!0,problem:oT().logs.invalidExpression(o instanceof Error?o.message:String(o))}}}var m;var O;var S;var k;var G;var P;var V=f(()=>{sT();m={err:`error`,error:`error`,fatal:`error`,panic:`error`,critical:`error`,wrn:`warn`,warn:`warn`,warning:`warn`,inf:`info`,info:`info`,notice:`info`,dbg:`debug`,debug:`debug`,trace:`debug`},O=/\b(ERR|ERROR|FATAL|PANIC|CRITICAL|WRN|WARN|WARNING|INF|INFO|NOTICE|DBG|DEBUG|TRACE)\b/,S=/\b(?:level|lvl|severity)["']?\s*[=:]\s*["']?([A-Za-z]+)/i,k=/\[(err|error|fatal|panic|critical|wrn|warn|warning|inf|info|notice|dbg|debug|trace)\]/i;G={error:`text-danger`,warn:`text-warn`,info:`text-ok`,debug:`text-ink-500`};P={test:()=>!0,problem:null}});function W(n,t){if(n&1){let e=RC();qr(0,`button`,2),Xm(`click`,function(){let o=Ld(e).$implicit;return $d(HC().toggle(o))}),fS(1),qr(2,`span`,3),fS(3),Wr()()}if(n&2){let e=t.$implicit,r=HC();ag(`border-danger`,e===`error`&&r.chosen().has(e))(`text-danger`,e===`error`&&r.chosen().has(e))(`border-warn`,e===`warn`&&r.chosen().has(e))(`text-warn`,e===`warn`&&r.chosen().has(e)),Km(`title`,r.t().unknownHidden),zr(`aria-pressed`,r.chosen().has(e))(`data-testid`,`level-`+e),ec(),_c(` `,e===`error`?r.t().errors:r.t().warnings,` `),ec(2),pg(e===`error`?r.errors():r.warnings())}}var T;var $=f(()=>{Kr();sT();Kr();T=class n{chosen=mj.required();errors=jc(0);warnings=jc(0);levels=[`error`,`warn`];t=$t(()=>oT().logs.levels);toggle(t){let e=new Set(this.chosen());e.delete(t)||e.add(t),this.chosen.set(e)}static ɵfac=function(e){return new(e||n)};static ɵcmp=wc({type:n,selectors:[[`app-level-filter`]],inputs:{chosen:[1,`chosen`],errors:[1,`errors`],warnings:[1,`warnings`]},outputs:{chosen:`chosenChange`},decls:3,vars:1,consts:[[`role`,`group`,1,`flex`,`items-center`,`gap-1`],[`type`,`button`,1,`mx-btn`,`mx-focus`,3,`border-danger`,`text-danger`,`border-warn`,`text-warn`,`title`],[`type`,`button`,1,`mx-btn`,`mx-focus`,3,`click`,`title`],[1,`text-[11px]`,`tabular-nums`,`opacity-70`]],template:function(e,r){e&1&&(qr(0,`div`,0),Tc(1,W,4,13,`button`,1,Sc),Wr()),e&2&&(zr(`aria-label`,r.t().label),ec(),kc(r.levels))},encapsulation:2})}});export{T as a,j as c,H as i,B as n,U as o,G as r,V as s,$ as t};
1
+ import{Bt as Xm,Ct as Tc,En as jc,Fn as mj,Gn as pg,It as Wr,Jt as ag,L as Km,O as HC,On as kc,R as Kr,Tr as zr,V as Ld,Vn as ok,W as Lt,cn as ec,er as sk,hr as wc,ln as f,qn as qr,r as Ac,tt as Od,un as fS,ut as RC,vt as Sc}from"./chunk-DanrBswj.js";function B(n){let t=S.exec(n);if(t!==null){let o=m[t[1].toLowerCase()];if(o!==void 0)return o}let e=k.exec(n);if(e!==null)return m[e[1].toLowerCase()]??null;let r=O.exec(n);return r===null?null:m[r[1].toLowerCase()]??null}function H(n,t){return t.size===0||(n===`error`||n===`warn`)&&t.has(n)}function U(n){let t=0,e=0;for(let r of n)t+=r===`error`?1:0,e+=r===`warn`?1:0;return{error:t,warn:e}}function j(n,t){let e=n.trim();if(e===``)return P;let r=/^\/(.+)\/([a-z]*)$/.exec(e);if(r===null){let o=t?e:e.toLowerCase();return{test:a=>(t?a:a.toLowerCase()).includes(o),problem:null}}try{let o=r[2].includes(`i`)||t?r[2]:`${r[2]}i`,a=new RegExp(r[1],o);return{test:M=>a.test(M),problem:null}}catch(o){return{test:()=>!0,problem:ok().logs.invalidExpression(o instanceof Error?o.message:String(o))}}}var m;var O;var S;var k;var G;var P;var V=f(()=>{sk();m={err:`error`,error:`error`,fatal:`error`,panic:`error`,critical:`error`,wrn:`warn`,warn:`warn`,warning:`warn`,inf:`info`,info:`info`,notice:`info`,dbg:`debug`,debug:`debug`,trace:`debug`},O=/\b(ERR|ERROR|FATAL|PANIC|CRITICAL|WRN|WARN|WARNING|INF|INFO|NOTICE|DBG|DEBUG|TRACE)\b/,S=/\b(?:level|lvl|severity)["']?\s*[=:]\s*["']?([A-Za-z]+)/i,k=/\[(err|error|fatal|panic|critical|wrn|warn|warning|inf|info|notice|dbg|debug|trace)\]/i;G={error:`text-danger`,warn:`text-warn`,info:`text-ok`,debug:`text-ink-500`};P={test:()=>!0,problem:null}});function W(n,t){if(n&1){let e=RC();qr(0,`button`,2),Xm(`click`,function(){let o=Od(e).$implicit;return Ld(HC().toggle(o))}),fS(1),qr(2,`span`,3),fS(3),Wr()()}if(n&2){let e=t.$implicit,r=HC();ag(`border-danger`,e===`error`&&r.chosen().has(e))(`text-danger`,e===`error`&&r.chosen().has(e))(`border-warn`,e===`warn`&&r.chosen().has(e))(`text-warn`,e===`warn`&&r.chosen().has(e)),Km(`title`,r.t().unknownHidden),zr(`aria-pressed`,r.chosen().has(e))(`data-testid`,`level-`+e),ec(),Ac(` `,e===`error`?r.t().errors:r.t().warnings,` `),ec(2),pg(e===`error`?r.errors():r.warnings())}}var T;var $=f(()=>{Kr();sk();Kr();T=class n{chosen=mj.required();errors=jc(0);warnings=jc(0);levels=[`error`,`warn`];t=Lt(()=>ok().logs.levels);toggle(t){let e=new Set(this.chosen());e.delete(t)||e.add(t),this.chosen.set(e)}static ɵfac=function(e){return new(e||n)};static ɵcmp=wc({type:n,selectors:[[`app-level-filter`]],inputs:{chosen:[1,`chosen`],errors:[1,`errors`],warnings:[1,`warnings`]},outputs:{chosen:`chosenChange`},decls:3,vars:1,consts:[[`role`,`group`,1,`flex`,`items-center`,`gap-1`],[`type`,`button`,1,`mx-btn`,`mx-focus`,3,`border-danger`,`text-danger`,`border-warn`,`text-warn`,`title`],[`type`,`button`,1,`mx-btn`,`mx-focus`,3,`click`,`title`],[1,`text-[11px]`,`tabular-nums`,`opacity-70`]],template:function(e,r){e&1&&(qr(0,`div`,0),kc(1,W,4,13,`button`,1,Sc),Wr()),e&2&&(zr(`aria-label`,r.t().label),ec(),Tc(r.levels))},encapsulation:2})}});export{T as a,j as c,H as i,B as n,U as o,G as r,V as s,$ as t};
@@ -0,0 +1 @@
1
+ import{A as I,Ct as Tc,Dn as kC,Dt as Ty,F as J0,Ft as Wm,Gn as pg,Gt as _S,H as Li,I as Jm,In as nS,J as My,Jt as ag,Kt as _m,Mn as lk,O as HC,On as kc,Pt as W,R as Kr,S as G,Sn as hg,T as Gm,Tr as zr,V as Ld,Vn as ok,W as Lt,X as Nc,_r as wt,_t as SS,cn as ec,ct as Qm,er as sk,gt as SC,hr as wc,in as dk,ln as f,lr as ve,r as Ac,sn as eH,sr as vS,tt as Od,un as fS,ur as vg,ut as RC,wn as ik,wr as zC}from"./chunk-DanrBswj.js";import{n as u,t as f$1}from"./chunk-D0FWgHJO.js";import"./chunk-CxswDxfD.js";import{i as p,t as W$1}from"./chunk-rv2Wq9aE.js";import{n as x,t as u$1}from"./chunk-CQIXZf41.js";import{F as tn,u as Me$1}from"./chunk-ChbnoZwy.js";import"./chunk-BsvB6MmB.js";import"./chunk-CFXWwPKo.js";import{n as W$2,t as J}from"./chunk-MG8VVeEh.js";import{n as P,t as K}from"./chunk-NszG4cuZ.js";var se;var le=f(()=>{se=[`claude-opus-5`,`claude-sonnet-5`,`claude-haiku-4-5`]});function Se(a,n){if(a&1&&(Li(0,`span`,34),fS(1),Nc()),a&2){let e=HC(2);ec(),pg(e.t().inUse)}}function Ce(a,n){if(a&1&&(Li(0,`span`,34),fS(1),Nc()),a&2){let e=HC(2);ec(),pg(e.t().cli)}}function ke(a,n){if(a&1&&(Li(0,`div`,36),fS(1),Nc()),a&2){let e=HC().$implicit;ec(),pg(e.description)}}function we(a,n){if(a&1&&(Li(0,`div`,37),fS(1),Nc()),a&2){let e=HC().$implicit;ec(),pg(e.reason)}}function Ee(a,n){a&1&&Qm(0)}function Te(a,n){if(a&1){let e=RC();Li(0,`li`,5)(1,`div`,30)(2,`div`,31)(3,`div`,32)(4,`span`,33),fS(5),Nc(),SC(6,Se,2,1,`span`,34),SC(7,Ce,2,1,`span`,34),Nc(),Li(8,`div`,35),fS(9),Nc(),SC(10,ke,2,1,`div`,36),SC(11,we,2,1,`div`,37),Nc(),Li(12,`button`,38),Jm(`click`,function(){let l=Od(e).$implicit;return Ld(HC().test(l.name,{context:l.name}))}),fS(13),Nc(),Li(14,`button`,39),Jm(`click`,function(){let l=Od(e).$implicit;return Ld(HC().askRemove(l.name))}),Gm(15,`app-icon`,40),Nc()(),_m(16,Ee,1,0,`ng-container`,28),Nc()}if(a&2){let e=n.$implicit,t=HC(),l=zC(48);zr(`data-testid`,`server-`+e.name),ec(5),pg(e.name),ec(),kC(e.active?6:-1),ec(),kC(e.currentInCli?7:-1),ec(2),pg(e.host),ec(),kC(e.description?10:-1),ec(),kC(!e.supported&&e.reason?11:-1),ec(),Wm(`disabled`,!e.supported||t.testing()!==null),ec(),Ac(` `,t.testing()===e.name?t.t().testing:t.t().test,` `),ec(),Wm(`title`,e.active||e.currentInCli?t.t().removeBlocked:t.t().remove)(`disabled`,e.active||e.currentInCli),zr(`aria-label`,t.t().remove),ec(),Wm(`size`,14),ec(),Wm(`ngTemplateOutlet`,l)(`ngTemplateOutletContext`,SS(15,de,e.name))}}function Ie(a,n){if(a&1&&(Li(0,`li`,6),fS(1),Nc()),a&2){let e=HC();ec(),pg(e.t().empty)}}function Pe(a,n){if(a&1){let e=RC();Li(0,`label`,15)(1,`span`,10),fS(2),Nc(),Li(3,`input`,41),Jm(`input`,function(l){Od(e);return Ld(HC().username.set(l.target.value))}),Nc()()}if(a&2){let e=HC();ec(2),pg(e.t().add.username),ec(),nS(e.input),Wm(`placeholder`,e.t().add.usernamePlaceholder)(`value`,e.username())}}function De(a,n){if(a&1&&(Li(0,`p`,22),fS(1),Nc()),a&2){let e=HC();ec(),pg(e.t().add.tcpWarning)}}function Me(a,n){a&1&&(Li(0,`p`,23),fS(1),Nc()),a&2&&(ec(),pg(n))}function Ve(a,n){a&1&&Qm(0)}function Ae(a,n){if(a&1&&(Li(0,`p`,43),fS(1),Nc()),a&2){let e=HC(),t=HC(2);ec(),pg(t.t().connected(e.version,e.os,e.arch))}}function Ne(a,n){if(a&1){let e=RC();Li(0,`p`,45),fS(1),Nc(),Li(2,`div`,46)(3,`code`,47),fS(4),Nc(),Li(5,`button`,48),Jm(`click`,function(){let l=Od(e),s=HC(3).$implicit;return Ld(HC().trust(s,l.name,l.fingerprint))}),fS(6),Nc()()}if(a&2){let e=n,t=HC(4);ec(),pg(t.t().unknownHostKey(e.name,e.type)),ec(3),pg(e.fingerprint),ec(),Wm(`disabled`,t.testing()!==null),ec(),Ac(` `,t.t().trust,` `)}}function Ue(a,n){if(a&1&&(Li(0,`p`,44),fS(1),Nc(),SC(2,Ne,7,4)),a&2){let e,t=HC();ec(),pg(t.problem),ec(),kC((e=t.unknownHostKey)?2:-1,e)}}function Oe(a,n){a&1&&(Li(0,`div`,42),SC(1,Ae,2,1,`p`,43)(2,Ue,3,2),Nc()),a&2&&(ec(),kC(n.ok?1:2))}function Fe(a,n){if(a&1&&SC(0,Oe,3,1,`div`,42),a&2){let e,t=n.$implicit;kC((e=HC().results()[t])?0:-1,e)}}var de;var he;var F;var Le;var L;var pe=f(()=>{Me$1();Kr();W$1();lk();sk();J();dk();f$1();Kr();de=a=>({$implicit:a}),he=(a,n)=>n.name;F=`:form`,Le=`mx-focus mt-1 w-full rounded-md border border-ink-700 bg-ink-800 px-3 py-1.5 text-[13px] text-ink-100 placeholder:text-ink-500`,L=class a{contexts=I(p);toast=I(u);t=Lt(()=>ok().settings.servers);form=F;input=Le;servers=Lt(()=>this.contexts.contexts().filter(n=>n.name!=="default"));name=wt(``);kind=wt(`ssh`);username=wt(``);host=wt(``);port=wt(``);description=wt(``);formProblem=wt(null);saving=wt(!1);testing=wt(null);results=wt({});confirmOpen=wt(!1);removing=wt(null);filledIn=Lt(()=>this.name().trim()!==``&&this.host().trim()!==``);constructor(){this.contexts.load()}async test(n,e){this.testing.set(n);try{let t=await window.electron.contexts.test(e);this.results.update(l=>G(W({},l),{[n]:t}))}catch(t){this.results.update(l=>G(W({},l),{[n]:{ok:!1,problem:eH(t),unknownHostKey:null}}))}finally{this.testing.set(null)}}async testForm(){let n=this.server();n!==null&&(this.formProblem.set(null),await this.test(F,{server:n}))}async trust(n,e,t){try{let s=await window.electron.contexts.trustHostKey(e,t);if(!s.ok){this.results.update(_=>G(W({},_),{[n]:{ok:!1,problem:s.problem,unknownHostKey:null}}));return}}catch(s){this.results.update(_=>G(W({},_),{[n]:{ok:!1,problem:eH(s),unknownHostKey:null}}));return}let l=n===F?this.server():null;await this.test(n,l===null?{context:n}:{server:l})}async add(n){n.preventDefault();let e=this.server();if(!(e===null||this.saving())){this.saving.set(!0);try{let t=await window.electron.contexts.create(e);if(!t.ok){this.formProblem.set(t.problem);return}this.toast.success(this.t().add.added(e.name)),this.reset(),await this.contexts.load()}catch(t){this.formProblem.set(eH(t))}finally{this.saving.set(!1)}}}askRemove(n){this.removing.set(n),this.confirmOpen.set(!0)}async remove(){let n=this.removing();if(n!==null)try{let e=await window.electron.contexts.remove(n);if(!e.ok){this.toast.error(e.problem);return}this.forgetResult(n),await this.contexts.load()}catch(e){this.toast.error(eH(e))}finally{this.removing.set(null)}}server(){let n=this.port().trim(),e=n===``?null:Number(n);if(e!==null&&(!Number.isInteger(e)||e<1||e>65535))return this.formProblem.set(ok().settings.servers.add.port+`: 1–65535`),null;let t=this.username().trim(),l=this.description().trim();return{name:this.name().trim(),description:l===``?null:l,kind:this.kind(),host:this.host().trim(),port:e,username:this.kind()===`ssh`&&t!==``?t:null}}reset(){this.name.set(``),this.username.set(``),this.host.set(``),this.port.set(``),this.description.set(``),this.formProblem.set(null),this.forgetResult(F)}forgetResult(n){this.results.update(e=>Object.fromEntries(Object.entries(e).filter(([t])=>t!==n)))}static ɵfac=function(e){return new(e||a)};static ɵcmp=wc({type:a,selectors:[[`app-servers-settings`]],decls:50,vars:50,consts:[[`outcome`,``],[`data-testid`,`servers-settings`,1,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`px-4`,`py-3`],[1,`text-[13px]`,`font-medium`,`text-ink-200`],[1,`mt-1`,`text-[12px]`,`text-ink-500`],[1,`mt-3`,`divide-y`,`divide-ink-700`,`border-y`,`border-ink-700`],[1,`py-2.5`],[1,`py-2.5`,`text-[13px]`,`text-ink-400`],[`data-testid`,`server-form`,1,`mt-4`,3,`submit`],[1,`mt-2`,`grid`,`grid-cols-6`,`gap-3`],[1,`col-span-3`,`block`],[1,`text-[12px]`,`text-ink-400`],[`type`,`text`,`data-testid`,`server-name`,`autocomplete`,`off`,`spellcheck`,`false`,3,`input`,`placeholder`,`value`],[`data-testid`,`server-kind`,3,`change`],[`value`,`ssh`,3,`selected`],[`value`,`tcp`,3,`selected`],[1,`col-span-2`,`block`],[1,`block`],[`type`,`text`,`data-testid`,`server-host`,`autocomplete`,`off`,`spellcheck`,`false`,3,`input`,`placeholder`,`value`],[1,`col-span-1`,`block`],[`type`,`text`,`inputmode`,`numeric`,`data-testid`,`server-port`,`autocomplete`,`off`,3,`input`,`placeholder`,`value`],[1,`col-span-6`,`block`],[`type`,`text`,`data-testid`,`server-description`,`autocomplete`,`off`,3,`input`,`placeholder`,`value`],[1,`mt-2`,`text-[12px]`,`text-warn`],[`data-testid`,`server-form-problem`,1,`mt-2`,`text-[12px]`,`text-danger`],[1,`mt-3`,`flex`,`justify-end`,`gap-2`],[`type`,`button`,`data-testid`,`server-form-test`,1,`mx-btn`,`mx-focus`,3,`click`,`disabled`],[`type`,`submit`,`data-testid`,`server-add`,1,`mx-btn`,`mx-focus`,3,`disabled`],[`name`,`plus`,3,`size`],[4,`ngTemplateOutlet`,`ngTemplateOutletContext`],[3,`openChange`,`confirmed`,`open`,`title`,`description`],[1,`flex`,`items-center`,`gap-3`],[1,`min-w-0`,`flex-1`],[1,`flex`,`items-center`,`gap-2`],[1,`text-[13px]`,`text-ink-100`],[1,`rounded`,`bg-ink-700`,`px-1.5`,`text-[11px]`,`text-ink-200`],[1,`truncate`,`font-mono`,`text-[12px]`,`text-ink-400`],[1,`text-[12px]`,`text-ink-500`],[1,`text-[12px]`,`text-danger`],[`type`,`button`,`data-testid`,`server-test`,1,`mx-btn`,`mx-focus`,3,`click`,`disabled`],[`type`,`button`,`data-testid`,`server-remove`,1,`mx-btn`,`mx-focus`,3,`click`,`title`,`disabled`],[`name`,`trash`,3,`size`],[`type`,`text`,`data-testid`,`server-username`,`autocomplete`,`off`,`spellcheck`,`false`,3,`input`,`placeholder`,`value`],[`data-testid`,`server-test-result`,1,`mt-2`,`text-[12px]`],[1,`text-ok`],[1,`text-danger`],[1,`mt-2`,`text-ink-300`],[1,`mt-1`,`flex`,`items-center`,`gap-3`],[`data-testid`,`server-fingerprint`,1,`min-w-0`,`flex-1`,`truncate`,`font-mono`,`text-ink-100`],[`type`,`button`,`data-testid`,`server-trust`,1,`mx-btn`,`mx-focus`,3,`click`,`disabled`]],template:function(e,t){if(e&1){let l=RC();Li(0,`div`,1)(1,`h2`,2),fS(2),Nc(),Li(3,`p`,3),fS(4),Nc(),Li(5,`ul`,4),kc(6,Te,17,17,`li`,5,he,!1,Ie,2,1,`li`,6),Nc(),Li(9,`form`,7),Jm(`submit`,function(_){return t.add(_)}),Li(10,`h3`,2),fS(11),Nc(),Li(12,`div`,8)(13,`label`,9)(14,`span`,10),fS(15),Nc(),Li(16,`input`,11),Jm(`input`,function(_){return t.name.set(_.target.value)}),Nc()(),Li(17,`label`,9)(18,`span`,10),fS(19),Nc(),Li(20,`select`,12),Jm(`change`,function(_){return t.kind.set(_.target.value)}),Li(21,`option`,13),fS(22),Nc(),Li(23,`option`,14),fS(24),Nc()()(),SC(25,Pe,4,5,`label`,15),Li(26,`label`,16)(27,`span`,10),fS(28),Nc(),Li(29,`input`,17),Jm(`input`,function(_){return t.host.set(_.target.value)}),Nc()(),Li(30,`label`,18)(31,`span`,10),fS(32),Nc(),Li(33,`input`,19),Jm(`input`,function(_){return t.port.set(_.target.value)}),Nc()(),Li(34,`label`,20)(35,`span`,10),fS(36),Nc(),Li(37,`input`,21),Jm(`input`,function(_){return t.description.set(_.target.value)}),Nc()()(),SC(38,De,2,1,`p`,22),SC(39,Me,2,1,`p`,23),Li(40,`div`,24)(41,`button`,25),Jm(`click`,function(){return t.testForm()}),fS(42),Nc(),Li(43,`button`,26),Gm(44,`app-icon`,27),fS(45),Nc()(),_m(46,Ve,1,0,`ng-container`,28),Nc()(),_m(47,Fe,1,1,`ng-template`,null,0,_S),Li(49,`app-confirm-dialog`,29),vg(`openChange`,function(_){return Od(l),vS(t.confirmOpen,_)||(t.confirmOpen=_),Ld(_)}),Jm(`confirmed`,function(){return t.remove()}),Nc()}if(e&2){let l,s=zC(48);ec(2),pg(t.t().heading),ec(2),pg(t.t().hint),ec(2),Tc(t.servers()),ec(5),pg(t.t().add.heading),ec(4),pg(t.t().add.name),ec(),nS(t.input),Wm(`placeholder`,t.t().add.namePlaceholder)(`value`,t.name()),ec(3),pg(t.t().add.kind),ec(),nS(t.input),ec(),Wm(`selected`,t.kind()===`ssh`),ec(),pg(t.t().add.ssh),ec(),Wm(`selected`,t.kind()===`tcp`),ec(),pg(t.t().add.tcp),ec(),kC(t.kind()===`ssh`?25:-1),ec(),ag(`col-span-3`,t.kind()===`ssh`)(`col-span-5`,t.kind()===`tcp`),ec(2),pg(t.t().add.host),ec(),nS(t.input),Wm(`placeholder`,t.t().add.hostPlaceholder)(`value`,t.host()),ec(3),pg(t.t().add.port),ec(),nS(t.input),Wm(`placeholder`,t.kind()===`ssh`?`22`:`2375`)(`value`,t.port()),ec(3),pg(t.t().add.description),ec(),nS(t.input),Wm(`placeholder`,t.t().add.descriptionPlaceholder)(`value`,t.description()),ec(),kC(t.kind()===`tcp`?38:-1),ec(),kC((l=t.formProblem())?39:-1,l),ec(2),Wm(`disabled`,!t.filledIn()||t.testing()!==null),ec(),Ac(` `,t.testing()===t.form?t.t().testing:t.t().test,` `),ec(),Wm(`disabled`,!t.filledIn()||t.saving()),ec(),Wm(`size`,14),ec(),Ac(` `,t.t().add.submit,` `),ec(),Wm(`ngTemplateOutlet`,s)(`ngTemplateOutletContext`,SS(48,de,t.form)),ec(3),hg(`open`,t.confirmOpen),Wm(`title`,t.t().removeTitle(t.removing()??``))(`description`,t.t().removeDescription)}},dependencies:[W$2,My,tn],encapsulation:2})}});function Ke(a,n){if(a&1&&(Li(0,`option`,10),fS(1),Nc()),a&2){let e=n.$implicit,t=HC();Wm(`value`,e.value)(`selected`,e.value===t.language),zr(`lang`,e.value),ec(),pg(e.name)}}function Re(a,n){if(a&1&&(Li(0,`p`,17),fS(1),Nc()),a&2){let e=HC(2);ec(),pg(e.t().startup.shortcutTaken)}}function $e(a,n){if(a&1&&(Li(0,`span`,24),fS(1),Nc()),a&2){let e=HC(2);ec(),pg(e.t().update.version(n.current))}}function He(a,n){if(a&1){let e=RC();Li(0,`button`,33),Jm(`click`,function(){Od(e);return Ld(HC(2).install())}),fS(1),Nc()}if(a&2){let e=HC(2);ec(),Ac(` `,e.t().update.install,` `)}}function je(a,n){if(a&1){let e=RC();Li(0,`button`,34),Jm(`click`,function(){Od(e);return Ld(HC(2).check())}),fS(1),Nc()}if(a&2){let e=HC(2);Wm(`disabled`,e.updateState()===`checking`||e.updateState()===`downloading`),ec(),Ac(` `,e.t().update.check,` `)}}function ze(a,n){if(a&1){let e=RC();Li(0,`div`,27)(1,`app-filter-switch`,16),Jm(`onChange`,function(l){Od(e);return Ld(HC(2).update({autoUpdate:l}))}),Nc()()}if(a&2){let e=HC(),t=HC();ec(),Wm(`label`,t.t().update.auto)(`on`,e.autoUpdate)}}function We(a,n){if(a&1&&(Li(0,`option`,10),fS(1),Nc()),a&2){let e=n.$implicit,t=HC();Wm(`value`,e.value)(`selected`,e.value===t.assistantModel),ec(),pg(e.name)}}function Be(a,n){if(a&1){let e=RC();Li(0,`div`,7)(1,`span`,37),fS(2),Nc(),Li(3,`button`,38),Jm(`click`,function(){Od(e);return Ld(HC(3).clearKey())}),Gm(4,`app-icon`,39),fS(5),Nc()()}if(a&2){let e=HC(3);ec(2),pg(e.t().assistant.configured),ec(2),Wm(`size`,14),ec(),Ac(` `,e.t().assistant.clearKey,` `)}}function Ge(a,n){if(a&1){let e=RC();Li(0,`form`,40),Jm(`submit`,function(l){Od(e);return Ld(HC(3).saveKey(l))}),Li(1,`label`,41),fS(2),Nc(),Li(3,`input`,42),Jm(`input`,function(l){Od(e);return Ld(HC(3).keyDraft.set(l.target.value))}),Nc(),Li(4,`button`,43),fS(5),Nc()()}if(a&2){let e=HC(),t=HC(2);ec(2),pg(t.t().assistant.keyLabel),ec(),Wm(`value`,t.keyDraft())(`disabled`,!e.storageAvailable),ec(),Wm(`disabled`,!e.storageAvailable||t.keyDraft().trim()===``),ec(),Ac(` `,t.common().save,` `)}}function qe(a,n){a&1&&(Li(0,`p`,36),fS(1),Nc()),a&2&&(ec(),pg(n))}function Je(a,n){if(a&1&&(SC(0,Be,6,3,`div`,7)(1,Ge,6,5,`form`,35),SC(2,qe,2,1,`p`,36),Li(3,`p`,11),fS(4),Nc()),a&2){let e,t=HC(2);kC(n.configured?0:1),ec(2),kC((e=t.keyProblem())?2:-1,e),ec(2),pg(t.t().assistant.hint)}}function Qe(a,n){if(a&1){let e=RC();Li(0,`div`,3)(1,`div`,4)(2,`div`,5)(3,`h2`,6),fS(4),Nc(),Li(5,`div`,7)(6,`label`,8),fS(7),Nc(),Li(8,`select`,9),Jm(`change`,function(l){Od(e);return Ld(HC().chooseLanguage(l.target.value))}),kc(9,Ke,2,4,`option`,10,ce),Nc()(),Li(11,`p`,11),fS(12),Nc()(),Li(13,`div`,12)(14,`h2`,6),fS(15),Nc(),Li(16,`div`,13)(17,`app-filter-switch`,14),Jm(`onChange`,function(l){Od(e);return Ld(HC().update({startAtLogin:l}))}),Nc()(),Li(18,`p`,11),fS(19),Nc(),Li(20,`div`,15)(21,`app-filter-switch`,16),Jm(`onChange`,function(l){Od(e);return Ld(HC().update({paletteShortcut:l}))}),Nc()(),SC(22,Re,2,1,`p`,17),Nc(),Li(23,`div`,12)(24,`h2`,6),fS(25),Nc(),Li(26,`div`,18)(27,`div`,19)(28,`app-filter-switch`,16),Jm(`onChange`,function(l){Od(e);return Ld(HC().update({notifyCrash:l}))}),Nc()(),Li(29,`div`,20)(30,`app-filter-switch`,16),Jm(`onChange`,function(l){Od(e);return Ld(HC().update({notifyUnhealthy:l}))}),Nc()(),Li(31,`div`,21)(32,`app-filter-switch`,16),Jm(`onChange`,function(l){Od(e);return Ld(HC().update({notifyWiring:l}))}),Nc()()(),Li(33,`p`,11),fS(34),Nc()(),Li(35,`div`,22)(36,`div`,23)(37,`h2`,6),fS(38),Nc(),SC(39,$e,2,1,`span`,24),SC(40,He,2,1,`button`,25)(41,je,2,2,`button`,26),Nc(),SC(42,ze,2,2,`div`,27),Li(43,`p`,28),fS(44),Nc()(),Li(45,`div`,29)(46,`h2`,6),fS(47,`Claude`),Nc(),Li(48,`div`,30)(49,`label`,31),fS(50),Nc(),Li(51,`select`,32),Jm(`change`,function(l){Od(e);return Ld(HC().update({assistantModel:l.target.value}))}),kc(52,We,2,3,`option`,10,ce),Nc()(),Li(54,`p`,11),fS(55),Nc(),SC(56,Je,5,3),Nc()(),Gm(57,`app-servers-settings`),Nc()}if(a&2){let e,t,l=n,s=HC();ec(4),pg(s.t().language.heading),ec(3),pg(s.t().language.label),ec(2),Tc(s.languages),ec(3),pg(s.t().language.hint),ec(3),pg(s.t().startup.heading),ec(2),Wm(`label`,s.t().startup.startAtLogin)(`on`,l.startAtLogin)(`disabled`,!l.startAtLoginAvailable),ec(2),Ac(` `,l.startAtLoginAvailable?s.t().startup.hintAvailable:s.t().startup.hintUnavailable,` `),ec(2),Wm(`label`,s.t().startup.paletteShortcut)(`on`,l.paletteShortcut),ec(),kC(l.paletteShortcut&&!l.paletteShortcutActive?22:-1),ec(3),pg(s.t().notifications.heading),ec(3),Wm(`label`,s.t().notifications.crash)(`on`,l.notifyCrash),ec(2),Wm(`label`,s.t().notifications.unhealthy)(`on`,l.notifyUnhealthy),ec(2),Wm(`label`,s.t().notifications.wiring)(`on`,l.notifyWiring),ec(2),pg(s.t().notifications.hint),ec(4),pg(s.t().update.heading),ec(),kC((e=s.appUpdate())?39:-1,e),ec(),kC(s.updateState()===`ready`?40:s.updateState()!==`unavailable`?41:-1),ec(2),kC(s.updateState()!==`unavailable`?42:-1),ec(2),pg(s.updateText()),ec(6),pg(s.t().assistant.model),ec(2),Tc(s.models),ec(3),pg(s.t().assistant.modelHint),ec(),kC((t=s.assistant())?56:-1,t)}}var ce;var Xe;var me;f(()=>{Kr();le();sk();lk();K();dk();x();pe();Kr();ce=(a,n)=>n.value;Xe={"claude-opus-5":`Opus 5`,"claude-sonnet-5":`Sonnet 5`,"claude-haiku-4-5":`Haiku 4.5`},me=class a{t=Lt(()=>ok().settings);common=Lt(()=>ok().common);languages=Object.keys(J0).map(n=>({value:n,name:J0[n]}));models=se.map(n=>({value:n,name:Xe[n]}));settings=wt(null);problem=wt(null);appUpdate=wt(null);assistant=wt(null);keyDraft=wt(``);keyProblem=wt(null);updateState=Lt(()=>this.appUpdate()?.status.state??`unavailable`);updateText=Lt(()=>{let n=this.appUpdate()?.status??{state:`unavailable`},e=this.t().update;switch(n.state){case`unavailable`:return e.unavailable;case`idle`:return e.idle;case`checking`:return e.checking;case`upToDate`:return e.upToDate(new Date(n.checkedAt).toLocaleTimeString(ik(),{hour:`2-digit`,minute:`2-digit`}));case`downloading`:return e.downloading(n.version,n.percent);case`ready`:return e.ready(n.version);case`error`:return e.error(n.problem)}});constructor(){this.load(),this.loadAppUpdate(),this.loadAssistant();let n=window.electron.appUpdate.onChange(e=>this.appUpdate.set(e));I(ve).onDestroy(n)}async check(){try{this.appUpdate.set(await window.electron.appUpdate.check())}catch(n){this.problem.set(eH(n))}}async install(){try{await window.electron.appUpdate.install()}catch(n){this.problem.set(eH(n))}}async update(n){try{this.settings.set(await window.electron.settings.update(n)),this.problem.set(null)}catch(e){this.problem.set(eH(e)),await this.load()}}async chooseLanguage(n){Ty(n),await this.update({language:n}),Ty(this.settings()?.language??n)}async saveKey(n){n.preventDefault();try{let e=await window.electron.assistant.setKey(this.keyDraft());if(!e.ok){this.keyProblem.set(e.problem);return}this.keyDraft.set(``),this.keyProblem.set(null),await this.loadAssistant()}catch(e){this.keyProblem.set(eH(e))}}async clearKey(){try{this.assistant.set(await window.electron.assistant.clearKey()),this.keyProblem.set(null)}catch(n){this.keyProblem.set(eH(n))}}async loadAssistant(){try{this.assistant.set(await window.electron.assistant.status())}catch(n){this.problem.set(eH(n))}}async loadAppUpdate(){try{this.appUpdate.set(await window.electron.appUpdate.get())}catch(n){this.problem.set(eH(n))}}async load(){try{this.settings.set(await window.electron.settings.get())}catch(n){this.problem.set(eH(n))}}static ɵfac=function(e){return new(e||a)};static ɵcmp=wc({type:a,selectors:[[`app-settings-page`]],decls:5,vars:3,consts:[[1,`h-full`,`overflow-y-auto`,`px-6`,`pt-5`,`pb-8`],[1,`text-xl`,`font-semibold`,`tracking-tight`,`text-ink-100`],[3,`problem`],[1,`mt-4`,`grid`,`max-w-6xl`,`items-start`,`gap-4`,`lg:grid-cols-2`],[1,`space-y-4`],[`data-testid`,`setting-language`,1,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`px-4`,`py-3`],[1,`text-[13px]`,`font-medium`,`text-ink-200`],[1,`mt-3`,`flex`,`items-center`,`gap-3`],[`for`,`setting-language`,1,`text-[13px]`,`text-ink-300`],[`id`,`setting-language`,1,`mx-focus`,`rounded-md`,`border`,`border-ink-700`,`bg-ink-800`,`px-2.5`,`py-1.5`,`text-[13px]`,`text-ink-100`,3,`change`],[3,`value`,`selected`],[1,`mt-2`,`text-[12px]`,`text-ink-500`],[1,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`px-4`,`py-3`],[`data-testid`,`setting-start-at-login`,1,`mt-3`],[3,`onChange`,`label`,`on`,`disabled`],[`data-testid`,`setting-palette-shortcut`,1,`mt-3`],[3,`onChange`,`label`,`on`],[`data-testid`,`shortcut-taken`,1,`mt-2`,`text-[12px]`,`text-warn`],[1,`mt-3`,`space-y-2.5`],[`data-testid`,`setting-notify-crash`],[`data-testid`,`setting-notify-unhealthy`],[`data-testid`,`setting-notify-wiring`],[`data-testid`,`app-update`,1,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`px-4`,`py-3`],[1,`flex`,`items-center`,`gap-3`],[1,`font-mono`,`text-[12px]`,`text-ink-500`],[`type`,`button`,`data-testid`,`app-update-install`,1,`mx-btn`,`mx-focus`,`ml-auto`],[`type`,`button`,`data-testid`,`app-update-check`,1,`mx-btn`,`mx-focus`,`ml-auto`,3,`disabled`],[`data-testid`,`setting-auto-update`,1,`mt-3`],[`data-testid`,`app-update-status`,1,`mt-2`,`text-[12px]`,`text-ink-500`],[`data-testid`,`assistant-settings`,1,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`px-4`,`py-3`],[`data-testid`,`setting-assistant-model`,1,`mt-3`,`flex`,`items-center`,`gap-3`],[`for`,`setting-assistant-model`,1,`text-[13px]`,`text-ink-300`],[`id`,`setting-assistant-model`,1,`mx-focus`,`rounded-md`,`border`,`border-ink-700`,`bg-ink-800`,`px-2.5`,`py-1.5`,`text-[13px]`,`text-ink-100`,3,`change`],[`type`,`button`,`data-testid`,`app-update-install`,1,`mx-btn`,`mx-focus`,`ml-auto`,3,`click`],[`type`,`button`,`data-testid`,`app-update-check`,1,`mx-btn`,`mx-focus`,`ml-auto`,3,`click`,`disabled`],[1,`mt-3`,`flex`,`gap-2`],[1,`mt-2`,`text-[12px]`,`text-danger`],[1,`text-[13px]`,`text-ink-300`],[`type`,`button`,`data-testid`,`assistant-clear-key`,1,`mx-btn`,`mx-focus`,`ml-auto`,3,`click`],[`name`,`trash`,3,`size`],[1,`mt-3`,`flex`,`gap-2`,3,`submit`],[`for`,`assistant-key`,1,`sr-only`],[`id`,`assistant-key`,`type`,`password`,`placeholder`,`sk-ant-…`,`autocomplete`,`off`,`spellcheck`,`false`,1,`mx-focus`,`min-w-0`,`flex-1`,`rounded-md`,`border`,`border-ink-700`,`bg-ink-800`,`px-3`,`py-1.5`,`font-mono`,`text-[13px]`,`text-ink-100`,`placeholder:text-ink-500`,3,`input`,`value`,`disabled`],[`type`,`submit`,`data-testid`,`assistant-save-key`,1,`mx-btn`,`mx-focus`,3,`disabled`]],template:function(e,t){if(e&1&&(Li(0,`section`,0)(1,`h1`,1),fS(2),Nc(),Gm(3,`app-page-messages`,2),SC(4,Qe,58,27,`div`,3),Nc()),e&2){let l;ec(2),pg(t.t().title),ec(),Wm(`problem`,t.problem()),ec(),kC((l=t.settings())?4:-1,l)}},dependencies:[P,u$1,My,L],encapsulation:2})}})();export{me as SettingsPage};
@@ -1 +1 @@
1
- import{H as Kr,Pt as X,_r as wt,an as f}from"./chunk-DOxgdvK8.js";function m(e){document.documentElement.dataset.theme=e}function h(){try{let e=localStorage.getItem(c);return e===`light`||e===`dark`?e:null}catch{return null}}function s(){try{return matchMedia(`(prefers-color-scheme: dark)`).matches}catch{return!1}}function d(){return h()??(s()?`dark`:`light`)}var c;var a;var u=f(()=>{Kr();Kr();c=`mx.theme`;a=class e{current=wt(d());theme=this.current.asReadonly();toggle(){let t=this.current()===`dark`?`light`:`dark`;this.current.set(t),m(t);try{localStorage.setItem(c,t)}catch{}}static ɵfac=function(i){return new(i||e)};static ɵprov=X({token:e,factory:e.ɵfac,providedIn:`root`})}});export{u as i,d as n,m as r,a as t};
1
+ import{R as Kr,_r as wt,ln as f,zt as X}from"./chunk-DanrBswj.js";function m(e){document.documentElement.dataset.theme=e}function h(){try{let e=localStorage.getItem(c);return e===`light`||e===`dark`?e:null}catch{return null}}function s(){try{return matchMedia(`(prefers-color-scheme: dark)`).matches}catch{return!1}}function d(){return h()??(s()?`dark`:`light`)}var c;var a;var u=f(()=>{Kr();Kr();c=`mx.theme`;a=class e{current=wt(d());theme=this.current.asReadonly();toggle(){let t=this.current()===`dark`?`light`:`dark`;this.current.set(t),m(t);try{localStorage.setItem(c,t)}catch{}}static ɵfac=function(i){return new(i||e)};static ɵprov=X({token:e,factory:e.ɵfac,providedIn:`root`})}});export{u as i,d as n,m as r,a as t};
@@ -0,0 +1 @@
1
+ import{En as jc,Fn as mj,Ft as Wm,Gn as pg,H as Li,I as Jm,J as My,Kn as pj,Kt as _m,O as HC,R as Kr,Sn as hg,T as Gm,V as Ld,Vn as ok,W as Lt,X as Nc,cn as ec,er as sk,hr as wc,in as dk,ln as f,r as Ac,sr as vS,tt as Od,un as fS,ur as vg,ut as RC}from"./chunk-DanrBswj.js";import{a as Ni,c as Ri,h as ki,i as Mi,n as Ii,o as Oi,p as ho,s as Pi,t as Ai}from"./chunk-CFXWwPKo.js";function H(o,u){if(o&1){let e=RC();Gm(0,`div`,2),Li(1,`div`,3)(2,`div`,4)(3,`div`,5)(4,`span`,6),Gm(5,`app-icon`,7),Nc(),Li(6,`div`,8)(7,`h2`,9),fS(8),Nc(),Li(9,`p`,10),fS(10),Nc()()(),Li(11,`div`,11)(12,`button`,12),Gm(13,`app-icon`,13),fS(14),Nc(),Li(15,`button`,14),Jm(`click`,function(){Od(e);return Ld(HC().accept())}),Gm(16,`app-icon`,15),fS(17),Nc()()()()}if(o&2){let e=HC();ec(5),Wm(`size`,20),ec(3),pg(e.title()),ec(2),pg(e.description()),ec(3),Wm(`size`,14),ec(),Ac(` `,e.cancelLabel(),` `),ec(2),Wm(`name`,e.confirmIcon())(`size`,14),ec(),Ac(` `,e.shownConfirmLabel(),` `)}}var W;var J=f(()=>{Kr();ho();sk();dk();Kr();W=class o{open=mj(!1);title=jc.required();description=jc.required();confirmLabel=jc(null);confirmIcon=jc(`trash`);confirmed=pj();cancelLabel=Lt(()=>ok().common.cancel);shownConfirmLabel=Lt(()=>this.confirmLabel()??ok().shell.confirmDialog.confirm);accept(){this.open.set(!1),this.confirmed.emit()}static ɵfac=function(e){return new(e||o)};static ɵcmp=wc({type:o,selectors:[[`app-confirm-dialog`]],inputs:{open:[1,`open`],title:[1,`title`],description:[1,`description`],confirmLabel:[1,`confirmLabel`],confirmIcon:[1,`confirmIcon`]},outputs:{open:`openChange`,confirmed:`confirmed`},decls:2,vars:1,consts:[[`rdxAlertDialogRoot`,``,3,`openChange`,`open`],[`rdxAlertDialogPortal`,``],[`rdxAlertDialogBackdrop`,``,1,`fixed`,`inset-0`,`z-40`,`bg-black/50`],[`rdxAlertDialogViewport`,``,`rdxDialogViewport`,``,1,`fixed`,`inset-0`,`z-50`,`grid`,`place-items-center`,`p-4`],[`rdxAlertDialogPopup`,``,1,`w-full`,`max-w-md`,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`p-5`,`shadow-2xl`],[1,`flex`,`gap-3`],[1,`mt-0.5`,`text-danger`],[`name`,`warning`,3,`size`],[1,`min-w-0`],[`rdxAlertDialogTitle`,``,1,`text-[15px]`,`font-semibold`,`text-ink-100`],[`rdxAlertDialogDescription`,``,1,`mt-1.5`,`text-[13px]`,`text-ink-300`],[1,`mt-5`,`flex`,`justify-end`,`gap-2`],[`type`,`button`,`rdxAlertDialogClose`,``,1,`mx-btn`,`mx-focus`],[`name`,`close`,3,`size`],[`type`,`button`,1,`mx-btn`,`mx-focus`,`border-danger`,`bg-danger`,`text-white`,`hover:border-danger`,`hover:bg-danger`,`hover:text-white`,3,`click`],[3,`name`,`size`]],template:function(e,d){e&1&&(Li(0,`div`,0),vg(`openChange`,function(c){return vS(d.open,c)||(d.open=c),c}),_m(1,H,18,8,`ng-template`,1),Nc()),e&2&&hg(`open`,d.open)},dependencies:[Ni,Ai,Oi,ki,Ii,Pi,Mi,Ri,My],encapsulation:2})}});export{W as n,J as t};
@@ -0,0 +1 @@
1
+ import{A as I,En as jc,Fn as mj,Ft as Wm,Gn as pg,H as Li,I as Jm,Kn as pj,L as Km,R as Kr,T as Gm,Tn as jE,Tr as zr,W as Lt,X as Nc,Zn as rf,_ as ES,_r as wt,cn as ec,h as Dj,hr as wc,ln as f,t as $E,un as fS,yr as xm}from"./chunk-DanrBswj.js";import{L as xo,N as sr,T as jn,_ as Vn,d as Qo,m as To,o as Ho,z as zo}from"./chunk-ChbnoZwy.js";var X;var G;var J;var p;var E;var j=f(()=>{Kr();Kr();sr();sr();[X,G]=xo(`RdxSwitchContext`,`components/switch`),J=()=>{let i=I(p),f=To();return{checked:i.checkedState,disabled:Lt(()=>!!f.disabled()),readonly:i.readonly,required:i.required,name:i.name,form:i.form,value:i.submitValue,ariaLabel:i.ariaLabel,ariaLabelledBy:i.ariaLabelledBy,registerNativeInput:n=>i.registerNativeInput(n),markAsTouched:()=>i.markAsTouched()}},p=(()=>{class i extends Ho{constructor(){super(),this.cva=To(),this.id=jc(jn(`rdx-switch-`)),this.defaultChecked=jc(void 0,{transform:e=>e===void 0?void 0:Dj(e)}),this.checked=mj(!1),this.disabled=jc(!1,{transform:Dj}),this.readonly=jc(!1,{transform:Dj}),this.required=jc(!1,{transform:Dj}),this.name=jc(),this.form=jc(),this.submitValue=jc(`on`,{alias:`value`}),this.uncheckedValue=jc(),this.ariaLabelledBy=jc(void 0,{alias:`aria-labelledby`}),this.ariaLabel=jc(void 0,{alias:`aria-label`}),this.onCheckedChange=pj(),this.checkedState=Lt(()=>!!this.cva.value()),this.isDisabled=Lt(()=>!!this.cva.disabled()),this.nativeInput=wt(null),this.nativeInputOwnsValue=Lt(()=>this.nativeInput()!==null&&(this.checkedState()||this.uncheckedValue()===void 0)),this.invalidState=this.formUi.invalidState,this.touchedState=this.formUi.touchedState,this.dirtyState=this.formUi.dirtyState,Qo({name:this.name,form:this.form,disabled:this.isDisabled,value:this.checkedState,serialize:e=>{let t=e?this.submitValue():this.uncheckedValue();return t===void 0?[]:[t]},hasNativeControl:this.nativeInputOwnsValue,syncNativeControl:()=>{let e=this.nativeInput();e&&(e.checked=this.checkedState())},defaultValue:()=>this.defaultChecked()??this.checkedState(),onReset:e=>{this.checked.set(e),this.resetNgControl(e)||this.cva.writeValue(e),this.formUi.resetInteractionState?.()}});let n=!1;rf(()=>{let e=this.defaultChecked();!n&&e!==void 0&&(n=!0,this.checked.set(e),this.cva.setValue(e))})}formUiTouchTarget(){return To()}markAsTouched(){this.formUi.markAsTouched()}toggle(n){if(this.isDisabled()||this.readonly())return;let e=!this.cva.value(),t=n?.currentTarget instanceof HTMLElement?n.currentTarget:void 0,{eventDetails:d}=zo(`none`,n??new Event(`switch.checked-change`),t);this.onCheckedChange.emit({checked:e,eventDetails:d}),!d.isCanceled()&&(this.checked.set(e),this.cva.setValue(e),this.formUi.markDirty())}registerNativeInput(n){return this.nativeInput.set(n),()=>{this.nativeInput()===n&&this.nativeInput.set(null)}}static{this.ɵfac=function(e){return new(e||i)}}static{this.ɵdir=$E({type:i,selectors:[[`button`,`rdxSwitchRoot`,``]],hostAttrs:[`role`,`switch`,`type`,`button`],hostVars:15,hostBindings:function(e,t){e&1&&Jm(`click`,function(O){return t.toggle(O)})(`blur`,function(){return t.markAsTouched()}),e&2&&(Km(`id`,t.id()),zr(`aria-checked`,t.checkedState())(`aria-required`,t.required()?`true`:void 0)(`aria-readonly`,t.readonly()?`true`:void 0)(`aria-invalid`,t.displayValid()===!1?`true`:void 0)(`data-checked`,t.checkedState()?``:void 0)(`data-unchecked`,t.checkedState()?void 0:``)(`data-disabled`,t.isDisabled()?``:void 0)(`data-readonly`,t.readonly()?``:void 0)(`data-required`,t.required()?``:void 0)(`data-invalid`,t.displayValid()===!1?``:void 0)(`data-valid`,t.displayValid()===!0?``:void 0)(`data-touched`,t.touchedState()?``:void 0)(`data-dirty`,t.dirtyState()?``:void 0)(`disabled`,t.isDisabled()?``:void 0))},inputs:{id:[1,`id`],defaultChecked:[1,`defaultChecked`],checked:[1,`checked`],disabled:[1,`disabled`],readonly:[1,`readonly`],required:[1,`required`],name:[1,`name`],form:[1,`form`],submitValue:[1,`value`,`submitValue`],uncheckedValue:[1,`uncheckedValue`],ariaLabelledBy:[1,`aria-labelledby`,`ariaLabelledBy`],ariaLabel:[1,`aria-label`,`ariaLabel`]},outputs:{checked:`checkedChange`,onCheckedChange:`onCheckedChange`},exportAs:[`rdxSwitchRoot`],features:[ES([G(J)]),jE([{directive:Vn,inputs:[`value`,`checked`,`disabled`,`disabled`]}]),xm]})}}return i})(),E=(()=>{class i{constructor(){this.rootContext=X()}static{this.ɵfac=function(e){return new(e||i)}}static{this.ɵdir=$E({type:i,selectors:[[`span`,`rdxSwitchThumb`,``]],hostVars:5,hostBindings:function(e,t){e&2&&zr(`data-checked`,t.rootContext.checked()?``:void 0)(`data-unchecked`,t.rootContext.checked()?void 0:``)(`data-disabled`,t.rootContext.disabled()?``:void 0)(`data-readonly`,t.rootContext.readonly()?``:void 0)(`data-required`,t.rootContext.required()?``:void 0)},exportAs:[`rdxSwitchThumb`]})}}return i})()});var P;var K=f(()=>{Kr();j();Kr();P=class i{label=jc.required();on=mj.required();disabled=jc(!1);static ɵfac=function(n){return new(n||i)};static ɵcmp=wc({type:i,selectors:[[`app-filter-switch`]],hostAttrs:[1,`flex`,`items-center`,`gap-2`,`text-[13px]`,`text-ink-300`],inputs:{label:[1,`label`],on:[1,`on`],disabled:[1,`disabled`]},outputs:{on:`onChange`},decls:4,vars:4,consts:[[`type`,`button`,`rdxSwitchRoot`,``,1,`mx-focus`,`relative`,`h-5`,`w-9`,`shrink-0`,`cursor-pointer`,`rounded-full`,`border`,`border-ink-700`,`bg-ink-800`,`transition-colors`,`data-[checked]:border-accent`,`data-[checked]:bg-accent`,`disabled:cursor-not-allowed`,`disabled:opacity-50`,3,`onCheckedChange`,`checked`,`disabled`],[`rdxSwitchThumb`,``,1,`block`,`size-3.5`,`translate-x-[3px]`,`rounded-full`,`bg-ink-400`,`transition-transform`,`data-[checked]:translate-x-[19px]`,`data-[checked]:bg-white`]],template:function(n,e){n&1&&(Li(0,`button`,0),Jm(`onCheckedChange`,function(d){return e.on.set(d.checked)}),Gm(1,`span`,1),Nc(),Li(2,`span`),fS(3),Nc()),n&2&&(Wm(`checked`,e.on())(`disabled`,e.disabled()),zr(`aria-label`,e.label()),ec(3),pg(e.label()))},dependencies:[p,E],encapsulation:2})}});export{P as n,K as t};
@@ -0,0 +1 @@
1
+ import{A as I,Ct as Tc,Dn as kC,En as jc,Fn as mj,Ft as Wm,Gn as pg,H as Li,I as Jm,In as nS,J as My,Kt as _m,Mn as lk,O as HC,On as kc,R as Kr,Sn as hg,T as Gm,V as Ld,Vn as ok,W as Lt,X as Nc,Zn as rf,_r as wt,_t as SS,cn as ec,er as sk,gt as SC,hr as wc,in as dk,ln as f,r as Ac,sn as eH,sr as vS,tt as Od,un as fS,ur as vg,ut as RC,wt as Tg}from"./chunk-DanrBswj.js";import"./chunk-D0FWgHJO.js";import{n as y,t as f$1}from"./chunk-BqwibbR9.js";import{n as p,t as M}from"./chunk-85ZfO9F8.js";import{n as o,t as i}from"./chunk-D_aXkfN2.js";import{n as x,t as u}from"./chunk-CQIXZf41.js";import"./chunk-ChbnoZwy.js";import{a as Yt,r as Q$1,s as fe$1,u as ra}from"./chunk-CRVM0rcA.js";import"./chunk-BsvB6MmB.js";import{_ as pn,d as dn,f as fn,g as ln,l as an,m as ie,r as Je$1,u as cn,v as un}from"./chunk-CFXWwPKo.js";import{n as V,t as G}from"./chunk-CBFZokW4.js";import{n as W,t as J}from"./chunk-MG8VVeEh.js";import{i as z,n as oe,r as x$1}from"./chunk-aZl-0gS4.js";import{n as P,t as K}from"./chunk-NszG4cuZ.js";function Ie(i,t){i&1&&(Li(0,`p`,22),fS(1),Nc()),i&2&&(ec(),pg(t))}function Ee(i,t){if(i&1){let n=RC();Gm(0,`div`,2),Li(1,`div`,3)(2,`div`,4)(3,`h2`,5),fS(4),Nc(),Li(5,`p`,6),fS(6),Nc(),Li(7,`form`,7),Jm(`submit`,function(m){Od(n);return Ld(HC().submit(m))}),Li(8,`label`,8)(9,`span`,9),fS(10),Nc(),Li(11,`input`,10),Jm(`input`,function(m){Od(n);return Ld(HC().name.set(m.target.value))}),Nc()(),Li(12,`label`,11)(13,`input`,12),Jm(`change`,function(m){Od(n);return Ld(HC().internal.set(m.target.checked))}),Nc(),Li(14,`span`)(15,`span`,13),fS(16),Nc(),Li(17,`span`,14),fS(18),Nc()()(),Li(19,`details`,15)(20,`summary`,16),fS(21),Nc(),Li(22,`label`,17)(23,`span`,9),fS(24),Nc(),Li(25,`input`,18),Jm(`input`,function(m){Od(n);return Ld(HC().driver.set(m.target.value))}),Nc(),Li(26,`span`,19),fS(27),Nc()(),Li(28,`label`,17)(29,`span`,9),fS(30),Nc(),Li(31,`input`,20),Jm(`input`,function(m){Od(n);return Ld(HC().subnet.set(m.target.value))}),Nc(),Li(32,`span`,19),fS(33),Nc()(),Li(34,`label`,17)(35,`span`,9),fS(36),Nc(),Li(37,`input`,21),Jm(`input`,function(m){Od(n);return Ld(HC().gateway.set(m.target.value))}),Nc(),Li(38,`span`,19),fS(39),Nc()()(),SC(40,Ie,2,1,`p`,22),Li(41,`div`,23)(42,`button`,24),Gm(43,`app-icon`,25),fS(44),Nc(),Li(45,`button`,26),Gm(46,`app-icon`,27),fS(47),Nc()()()()()}if(i&2){let n,e=HC();ec(4),pg(e.t().title),ec(2),pg(e.t().description),ec(4),pg(e.t().nameLabel),ec(),nS(e.field),Wm(`placeholder`,e.t().namePlaceholder)(`value`,e.name())(`disabled`,e.busy()),ec(2),Wm(`checked`,e.internal())(`disabled`,e.busy()),ec(3),pg(e.t().internal),ec(2),pg(e.t().internalHint),ec(),Wm(`open`,e.advanced()),ec(2),pg(e.t().advanced),ec(3),pg(e.t().driverLabel),ec(),nS(e.field),Wm(`value`,e.driver())(`disabled`,e.busy()),ec(2),pg(e.t().driverHint),ec(3),pg(e.t().subnetLabel),ec(),nS(e.field),Wm(`value`,e.subnet())(`disabled`,e.busy()),ec(2),pg(e.t().subnetHint),ec(3),pg(e.t().gatewayLabel),ec(),nS(e.field),Wm(`value`,e.gateway())(`disabled`,e.busy()),ec(2),pg(e.t().gatewayHint),ec(),kC((n=e.problem())?40:-1,n),ec(3),Wm(`size`,14),ec(),Ac(` `,e.common().cancel,` `),ec(),Wm(`disabled`,!e.canSubmit()),ec(),Wm(`size`,14),ec(),Ac(` `,e.busy()?e.t().creating:e.t().submit,` `)}}var Pe;var Q;var be=f(()=>{Kr();Je$1();f$1();dk();sk();Kr();Pe=`mx-focus mt-1 w-full rounded-md border border-ink-700 bg-ink-800 px-3 py-1.5 text-[13px] text-ink-100 placeholder:text-ink-500`,Q=class i{store=I(y);open=mj(!1);t=Lt(()=>ok().networks.createDialog);common=Lt(()=>ok().common);field=Pe;name=wt(``);internal=wt(!1);driver=wt(`bridge`);subnet=wt(``);gateway=wt(``);busy=wt(!1);problem=wt(null);advanced=Lt(()=>this.driver().trim()!==`bridge`||this.subnet().trim()!==``||this.gateway().trim()!==``);canSubmit=Lt(()=>!this.busy()&&this.name().trim()!==``&&this.driver().trim()!==``);constructor(){rf(()=>{this.open()&&Tg(()=>{this.name.set(``),this.internal.set(!1),this.driver.set(`bridge`),this.subnet.set(``),this.gateway.set(``),this.problem.set(null)})})}submit(t){if(t.preventDefault(),!this.canSubmit())return;let n=this.subnet().trim(),e=this.gateway().trim();this.busy.set(!0),this.problem.set(null),this.store.create({name:this.name().trim(),driver:this.driver().trim(),internal:this.internal(),subnet:n===``?null:n,gateway:e===``?null:e}).then(m=>{this.problem.set(m),m===null&&this.open.set(!1)}).finally(()=>this.busy.set(!1))}static ɵfac=function(n){return new(n||i)};static ɵcmp=wc({type:i,selectors:[[`app-create-network-dialog`]],inputs:{open:[1,`open`]},outputs:{open:`openChange`},decls:2,vars:1,consts:[[`rdxDialogRoot`,``,3,`openChange`,`open`],[`rdxDialogPortal`,``],[`rdxDialogBackdrop`,``,1,`fixed`,`inset-0`,`z-40`,`bg-black/50`],[`rdxDialogViewport`,``,1,`fixed`,`inset-0`,`z-50`,`grid`,`place-items-center`,`p-4`],[`rdxDialogPopup`,``,1,`w-full`,`max-w-md`,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`p-5`,`shadow-2xl`],[`rdxDialogTitle`,``,1,`text-[15px]`,`font-semibold`,`text-ink-100`],[`rdxDialogDescription`,``,1,`mt-1`,`text-[13px]`,`text-ink-400`],[1,`mt-4`,`space-y-3`,3,`submit`],[1,`block`],[1,`text-[12px]`,`text-ink-400`],[`type`,`text`,`autocomplete`,`off`,`spellcheck`,`false`,3,`input`,`placeholder`,`value`,`disabled`],[1,`flex`,`cursor-pointer`,`items-start`,`gap-2.5`],[`type`,`checkbox`,1,`mx-focus`,`mt-0.5`,`accent-accent`,3,`change`,`checked`,`disabled`],[1,`block`,`text-[13px]`,`text-ink-100`],[1,`block`,`text-[12px]`,`text-ink-500`],[1,`text-[12px]`,`text-ink-400`,3,`open`],[1,`cursor-pointer`,`select-none`],[1,`mt-2`,`block`],[`type`,`text`,`autocomplete`,`off`,`spellcheck`,`false`,3,`input`,`value`,`disabled`],[1,`mt-1`,`block`,`text-[12px]`,`text-ink-500`],[`type`,`text`,`placeholder`,`172.30.0.0/16`,`autocomplete`,`off`,`spellcheck`,`false`,3,`input`,`value`,`disabled`],[`type`,`text`,`placeholder`,`172.30.0.1`,`autocomplete`,`off`,`spellcheck`,`false`,3,`input`,`value`,`disabled`],[`role`,`alert`,1,`text-[13px]`,`text-danger`],[1,`flex`,`justify-end`,`gap-2`,`pt-2`],[`type`,`button`,`rdxDialogClose`,``,1,`mx-btn`,`mx-focus`],[`name`,`close`,3,`size`],[`type`,`submit`,1,`mx-btn`,`mx-focus`,3,`disabled`],[`name`,`plus`,3,`size`]],template:function(n,e){n&1&&(Li(0,`div`,0),vg(`openChange`,function(l){return vS(e.open,l)||(e.open=l),l}),_m(1,Ee,48,38,`ng-template`,1),Nc()),n&2&&hg(`open`,e.open)},dependencies:[ie,ln,an,pn,cn,fn,dn,un,My],encapsulation:2})}});function Le(i,t){i&1&&(Li(0,`p`,7),fS(1),Nc()),i&2&&(ec(),pg(t))}function Ve(i,t){if(i&1&&(Li(0,`p`,8),fS(1),Nc()),i&2){let n=HC(2);ec(),pg(n.t().loading)}}function ze(i,t){if(i&1&&(Li(0,`p`,8),fS(1),Nc()),i&2){let n=HC(2);ec(),pg(n.t().empty)}}function Oe(i,t){i&1&&(Li(0,`span`,16),fS(1),Nc()),i&2&&(ec(),pg(t))}function We(i,t){if(i&1){let n=RC();Li(0,`li`,13),Gm(1,`span`,14),Li(2,`a`,15),Jm(`click`,function(){Od(n);return Ld(HC(3).open.set(!1))}),fS(3),Nc(),SC(4,Oe,2,1,`span`,16),Li(5,`span`,17),fS(6),Nc()()}if(i&2){let n,e=t.$implicit,m=HC(3);ec(),nS(e.running?`bg-ok`:`bg-ink-600`),ec(),Wm(`routerLink`,SS(8,Te,e.id)),ec(),pg(e.name),ec(),kC((n=e.composeProject)?4:-1,n),ec(),nS(e.ipAddress?`text-ink-300`:`text-ink-600`),ec(),Ac(` `,e.ipAddress??(e.running?m.t().noAddress:m.t().stopped),` `)}}function Be(i,t){if(i&1&&(Li(0,`ul`,9),kc(1,We,7,10,`li`,13,Re),Nc()),i&2){let n=HC(2);ec(),Tc(n.members())}}function Ae(i,t){if(i&1&&(Gm(0,`div`,2),Li(1,`div`,3)(2,`div`,4)(3,`h2`,5),fS(4),Nc(),Li(5,`p`,6),fS(6),Nc(),SC(7,Le,2,1,`p`,7)(8,Ve,2,1,`p`,8)(9,ze,2,1,`p`,8)(10,Be,3,0,`ul`,9),Li(11,`div`,10)(12,`button`,11),Gm(13,`app-icon`,12),fS(14),Nc()()()()),i&2){let n,e=HC();ec(4),pg(e.t().title(e.network())),ec(2),pg(e.t().description),ec(),kC((n=e.problem())?7:e.members()===null?8:e.members()?.length===0?9:10,n),ec(6),Wm(`size`,14),ec(),Ac(` `,e.common().close,` `)}}var Te;var Re;var U;var ye=f(()=>{Kr();ra();Je$1();lk();dk();sk();Kr();Te=i=>[`/containers`,i],Re=(i,t)=>t.id;U=class i{open=mj(!1);network=jc.required();t=Lt(()=>ok().networks.members);common=Lt(()=>ok().common);members=wt(null);problem=wt(null);constructor(){rf(()=>{if(!this.open())return;let t=this.network();Tg(()=>{this.load(t)})})}async load(t){this.members.set(null),this.problem.set(null);try{this.members.set(await window.electron.networks.members(t))}catch(n){this.problem.set(eH(n))}}static ɵfac=function(n){return new(n||i)};static ɵcmp=wc({type:i,selectors:[[`app-network-members-dialog`]],inputs:{open:[1,`open`],network:[1,`network`]},outputs:{open:`openChange`},decls:2,vars:1,consts:[[`rdxDialogRoot`,``,3,`openChange`,`open`],[`rdxDialogPortal`,``],[`rdxDialogBackdrop`,``,1,`fixed`,`inset-0`,`z-40`,`bg-black/50`],[`rdxDialogViewport`,``,1,`fixed`,`inset-0`,`z-50`,`grid`,`place-items-center`,`p-4`],[`rdxDialogPopup`,``,`data-testid`,`network-members-dialog`,1,`flex`,`max-h-[85vh]`,`w-full`,`max-w-xl`,`flex-col`,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`p-5`,`shadow-2xl`],[`rdxDialogTitle`,``,1,`text-[15px]`,`font-semibold`,`text-ink-100`],[`rdxDialogDescription`,``,1,`mt-1`,`text-[13px]`,`text-ink-400`],[1,`mt-4`,`rounded-md`,`border`,`border-danger/40`,`bg-danger/10`,`px-3`,`py-2`,`text-[13px]`,`text-danger`],[1,`mt-4`,`text-[13px]`,`text-ink-400`],[`data-testid`,`network-member-list`,1,`mt-3`,`min-h-0`,`flex-1`,`divide-y`,`divide-ink-800`,`overflow-auto`],[1,`mt-4`,`flex`,`justify-end`],[`type`,`button`,`rdxDialogClose`,``,1,`mx-btn`,`mx-focus`],[`name`,`close`,3,`size`],[1,`flex`,`items-center`,`gap-3`,`py-2`,`text-[13px]`],[`aria-hidden`,`true`,1,`size-2`,`shrink-0`,`rounded-full`],[1,`mx-focus`,`min-w-0`,`flex-1`,`truncate`,`text-ink-100`,`hover:text-accent`,`hover:underline`,3,`click`,`routerLink`],[1,`shrink-0`,`text-[12px]`,`text-ink-500`],[1,`w-32`,`shrink-0`,`text-right`,`font-mono`,`text-[12px]`]],template:function(n,e){n&1&&(Li(0,`div`,0),vg(`openChange`,function(l){return vS(e.open,l)||(e.open=l),l}),_m(1,Ae,15,5,`ng-template`,1),Nc()),n&2&&hg(`open`,e.open)},dependencies:[ie,ln,an,pn,cn,fn,dn,un,Yt,My],encapsulation:2})}});function Fe(i,t){if(i&1&&(Li(0,`span`,16),fS(1),Nc()),i&2){let n=HC();ec(),pg(n.t().refreshing)}}function je(i,t){if(i&1){let n=RC();Li(0,`div`,18)(1,`span`,30),fS(2),Nc(),Li(3,`button`,31),Jm(`click`,function(){Od(n);return Ld(HC().askRemoveSelected())}),Gm(4,`app-icon`,32),fS(5),Nc()()}if(i&2){let n=HC();ec(2),pg(n.t().selected(n.selected().size)),ec(2),Wm(`size`,14),ec(),Ac(` `,n.common().remove,` `)}}function He(i,t){if(i&1&&(Li(0,`span`,35),fS(1),Nc()),i&2){let n=HC(2);ec(),pg(n.t().builtIn)}}function Ke(i,t){if(i&1&&(Li(0,`span`,35),fS(1),Nc()),i&2){let n=HC(2);ec(),pg(n.t().internal)}}function qe(i,t){if(i&1&&(Li(0,`div`,36),fS(1),Nc()),i&2){let n=HC().$implicit;ec(),pg(n.composeProject)}}function Qe(i,t){if(i&1&&(Li(0,`div`,33)(1,`span`,34),fS(2),Nc(),SC(3,He,2,1,`span`,35),SC(4,Ke,2,1,`span`,35),Nc(),SC(5,qe,2,1,`div`,36)),i&2){let n=t.$implicit;ec(),Wm(`title`,n.shortId),ec(),pg(n.name),ec(),kC(n.builtIn?3:-1),ec(),kC(n.internal?4:-1),ec(),kC(n.composeProject?5:-1)}}function Ue(i,t){if(i&1&&(Li(0,`span`,37),fS(1),Nc()),i&2){let n=t.$implicit;ec(),pg(n.driver)}}function Ge(i,t){if(i&1&&(Li(0,`span`,38),fS(1),Nc()),i&2){let n=t.$implicit;ec(),pg(n.scope)}}function Je(i,t){if(i&1&&(Li(0,`span`,39),fS(1),Nc()),i&2){let n=HC().$implicit;ec(),pg(n.subnet)}}function Xe(i,t){i&1&&(Li(0,`span`,40),fS(1,`—`),Nc())}function Ye(i,t){if(i&1&&SC(0,Je,2,1,`span`,39)(1,Xe,2,0,`span`,40),i&2){let n=t.$implicit;kC(n.subnet?0:1)}}function Ze(i,t){if(i&1&&(Li(0,`span`,41),fS(1),Nc()),i&2){let n=HC().$implicit,e=HC();ec(),pg(e.t().containerCount(n.connected))}}function $e(i,t){i&1&&(Li(0,`span`,40),fS(1,`—`),Nc())}function et(i,t){if(i&1&&SC(0,Ze,2,1,`span`,41)(1,$e,2,0,`span`,40),i&2){let n=t.$implicit;kC(n.connected>0?0:1)}}function tt(i,t){if(i&1){let n=RC();Li(0,`div`,42)(1,`app-action-menu`,43),Jm(`picked`,function(m){let l=Od(n).$implicit;return Ld(HC().onRowMenu(m,l))}),Nc()()}if(i&2){let n=t.$implicit,e=HC();ec(),Wm(`label`,e.t().rowMenu(n.name))(`items`,e.rowMenu(n))}}var fe;f(()=>{Kr();f$1();M();G();J();oe();K();dk();x();be();sk();ye();ra();o();Kr();fe=class i$1{store=I(y);preferences=I(p);t=Lt(()=>ok().networks);common=Lt(()=>ok().common);columns=Lt(()=>{let t=this.t().columns;return[{key:`name`,label:t.name},{key:`driver`,label:t.driver,width:`100px`},{key:`scope`,label:t.scope,width:`90px`},{key:`subnet`,label:t.subnet,width:`160px`},{key:`connected`,label:t.connected,width:`120px`},{key:`actions`,label:t.actions,width:`84px`,align:`right`}]});loading=this.store.loading;problem=this.store.problem;pending=this.store.pending;unusedCount=this.store.unusedCount;search=wt(``);zoek=jc(void 0);hideBuiltIn=this.preferences.flag(`networks.hideBuiltIn`);selected=wt(new Set);action=wt(null);confirmOpen=wt(!1);createOpen=wt(!1);membersOpen=wt(!1);membersNetwork=wt(``);rows=Lt(()=>{let t=this.search().trim().toLowerCase(),n=this.hideBuiltIn();return this.store.networks().filter(e=>n&&e.builtIn?!1:t===``||`${e.name} ${e.driver}`.toLowerCase().includes(t))});trackKey=t=>t.id;leden=jc(void 0);router=I(fe$1);route=I(Q$1);constructor(){rf(()=>{let t=this.leden();t!==void 0&&Tg(()=>{this.membersNetwork.set(t),this.membersOpen.set(!0),i(this.router,this.route,`leden`)})}),rf(()=>{let t=this.zoek();t!==void 0&&Tg(()=>this.search.set(t))}),this.store.refresh()}removalReason(t){return t.builtIn?this.t().builtInReason:t.connected>0?this.t().connectedReason(t.connected):this.common().remove}rowMenu(t){return[{id:`members`,label:this.t().rowMembers,icon:`containers`},{id:`remove`,label:this.common().remove,icon:`trash`,disabled:!this.canRemove(t)||this.pending().has(t.id),danger:!0,hint:this.removalReason(t),separated:!0}]}onRowMenu(t,n){t===`members`?(this.membersNetwork.set(n.name),this.membersOpen.set(!0)):this.askRemove(n)}canRemove(t){return!t.builtIn&&t.connected===0}askRemove(t){let n=this.t().remove;this.action.set({ids:[t.id],title:n.title,description:n.description(t.name),confirmLabel:this.common().remove}),this.confirmOpen.set(!0)}askRemoveSelected(){let t=[...this.selected()],n=this.t().remove;this.action.set({ids:t,title:n.manyTitle,description:n.manyDescription(t.length),confirmLabel:this.common().remove}),this.confirmOpen.set(!0)}menuItems=Lt(()=>[{id:`create`,label:this.t().menu.create,icon:`plus`},{id:`prune-unused`,label:this.t().menu.pruneUnused,icon:`broom`,separated:!0}]);onMenu(t){t===`create`?this.createOpen.set(!0):this.askPrune()}askPrune(){let t=this.t().prune;this.action.set({ids:[],title:t.title,description:t.description,confirmLabel:t.confirm}),this.confirmOpen.set(!0)}confirm(){let t=this.action();t!==null&&(t.ids.length===0?this.store.prune():(this.store.removeMany(t.ids),this.selected.set(new Set)),this.action.set(null))}actionTitle(){return this.action()?.title??``}actionDescription(){return this.action()?.description??``}actionConfirmLabel(){return this.action()?.confirmLabel??this.common().remove}actionConfirmIcon(){return this.action()?.ids.length===0?`broom`:`trash`}static ɵfac=function(n){return new(n||i$1)};static ɵcmp=wc({type:i$1,selectors:[[`app-networks-page`]],inputs:{zoek:[1,`zoek`],leden:[1,`leden`]},decls:35,vars:27,consts:[[1,`flex`,`h-full`,`flex-col`],[1,`shrink-0`,`px-6`,`pt-5`,`pb-3`],[1,`flex`,`flex-wrap`,`items-start`,`gap-4`],[1,`text-xl`,`font-semibold`,`tracking-tight`,`text-ink-100`],[1,`mt-3`],[1,`text-[12px]`,`text-ink-400`],[1,`text-[15px]`,`font-medium`,`text-ink-100`],[1,`ml-auto`],[3,`picked`,`label`,`items`],[1,`mt-4`,`flex`,`flex-wrap`,`items-center`,`gap-4`],[1,`relative`,`flex`,`items-center`],[1,`pointer-events-none`,`absolute`,`left-2.5`,`text-ink-500`],[`name`,`search`,3,`size`],[1,`sr-only`],[`type`,`search`,1,`mx-focus`,`w-72`,`rounded-md`,`border`,`border-ink-700`,`bg-ink-850`,`py-1.5`,`pr-3`,`pl-8`,`text-[13px]`,`text-ink-100`,`placeholder:text-ink-500`,3,`input`,`placeholder`,`value`],[3,`onChange`,`label`,`on`],[1,`text-[12px]`,`text-ink-500`],[3,`problem`],[1,`mt-3`,`flex`,`items-center`,`gap-2`,`rounded-md`,`border`,`border-ink-700`,`bg-ink-850`,`px-3`,`py-2`],[1,`min-h-0`,`flex-1`,`overflow-y-auto`,`px-6`,`pb-6`],[3,`selectedChange`,`columns`,`rows`,`trackKey`,`selected`,`emptyMessage`],[`appCell`,`name`],[`appCell`,`driver`],[`appCell`,`scope`],[`appCell`,`subnet`],[`appCell`,`connected`],[`appCell`,`actions`],[3,`openChange`,`open`],[3,`openChange`,`open`,`network`],[3,`openChange`,`confirmed`,`open`,`title`,`description`,`confirmLabel`,`confirmIcon`],[1,`text-[13px]`,`text-ink-200`],[`type`,`button`,1,`mx-btn`,`mx-focus`,`ml-auto`,`text-danger`,`hover:text-danger`,3,`click`],[`name`,`trash`,3,`size`],[1,`flex`,`items-center`,`gap-2`],[1,`truncate`,`text-ink-100`,3,`title`],[1,`shrink-0`,`rounded`,`border`,`border-ink-700`,`px-1`,`text-[10px]`,`text-ink-500`],[1,`truncate`,`text-[11px]`,`text-ink-500`],[1,`text-ink-300`],[1,`text-ink-400`],[1,`font-mono`,`text-[12px]`,`text-ink-300`],[1,`text-ink-600`],[1,`text-ink-200`],[1,`flex`,`items-center`,`justify-end`],[`compact`,``,3,`picked`,`label`,`items`]],template:function(n,e){n&1&&(Li(0,`section`,0)(1,`div`,1)(2,`div`,2)(3,`div`)(4,`h1`,3),fS(5),Nc(),Li(6,`div`,4)(7,`div`,5),fS(8),Nc(),Li(9,`div`,6),fS(10),Nc()()(),Li(11,`div`,7)(12,`app-action-menu`,8),Jm(`picked`,function(l){return e.onMenu(l)}),Nc()()(),Li(13,`div`,9)(14,`label`,10)(15,`span`,11),Gm(16,`app-icon`,12),Nc(),Li(17,`span`,13),fS(18),Nc(),Li(19,`input`,14),Jm(`input`,function(l){return e.search.set(l.target.value)}),Nc()(),Li(20,`app-filter-switch`,15),vg(`onChange`,function(l){return vS(e.hideBuiltIn,l)||(e.hideBuiltIn=l),l}),Nc(),SC(21,Fe,2,1,`span`,16),Nc(),Gm(22,`app-page-messages`,17),SC(23,je,6,3,`div`,18),Nc(),Li(24,`div`,19)(25,`app-data-table`,20),vg(`selectedChange`,function(l){return vS(e.selected,l)||(e.selected=l),l}),_m(26,Qe,6,5,`ng-template`,21)(27,Ue,2,1,`ng-template`,22)(28,Ge,2,1,`ng-template`,23)(29,Ye,2,1,`ng-template`,24)(30,et,2,1,`ng-template`,25)(31,tt,2,2,`ng-template`,26),Nc()()(),Li(32,`app-create-network-dialog`,27),vg(`openChange`,function(l){return vS(e.createOpen,l)||(e.createOpen=l),l}),Nc(),Li(33,`app-network-members-dialog`,28),vg(`openChange`,function(l){return vS(e.membersOpen,l)||(e.membersOpen=l),l}),Nc(),Li(34,`app-confirm-dialog`,29),vg(`openChange`,function(l){return vS(e.confirmOpen,l)||(e.confirmOpen=l),l}),Jm(`confirmed`,function(){return e.confirm()}),Nc()),n&2&&(ec(5),pg(e.t().title),ec(3),pg(e.t().unused),ec(2),pg(e.unusedCount()),ec(2),Wm(`label`,e.t().menuLabel)(`items`,e.menuItems()),ec(4),Wm(`size`,15),ec(2),pg(e.t().searchLabel),ec(),Wm(`placeholder`,e.t().searchLabel)(`value`,e.search()),ec(),Wm(`label`,e.t().hideBuiltIn),hg(`on`,e.hideBuiltIn),ec(),kC(e.loading()?21:-1),ec(),Wm(`problem`,e.problem()),ec(),kC(e.selected().size>0?23:-1),ec(2),Wm(`columns`,e.columns())(`rows`,e.rows())(`trackKey`,e.trackKey),hg(`selected`,e.selected),Wm(`emptyMessage`,e.t().empty),ec(7),hg(`open`,e.createOpen),ec(),hg(`open`,e.membersOpen),Wm(`network`,e.membersNetwork()),ec(),hg(`open`,e.confirmOpen),Wm(`title`,e.actionTitle())(`description`,e.actionDescription())(`confirmLabel`,e.actionConfirmLabel())(`confirmIcon`,e.actionConfirmIcon()))},dependencies:[z,x$1,My,W,u,P,V,Q,U],encapsulation:2})}})();export{fe as NetworksPage};
@@ -0,0 +1 @@
1
+ import{$n as sg,A as I$1,Cn as hj,Ct as Tc,Dn as kC,En as jc,Fn as mj,Ft as Wm,H as Li,I as Jm,Jt as ag,O as HC,On as kc,R as Kr,T as Gm,Tr as zr,V as Ld,Vn as ok,W as Lt,X as Nc,_t as SS,a as Ar,ar as tg,cn as ec,ct as Qm,dr as vj,er as sk,gt as SC,hr as wc,ln as f,o as BC,r as Ac,t as $E,tt as Od,un as fS,ut as RC}from"./chunk-DanrBswj.js";import{F as tn,u as Me}from"./chunk-ChbnoZwy.js";function U(t,n){return this.trackKey()(n)}function W(t,n){t&1&&Gm(0,`col`,1)}function X(t,n){if(t&1&&Gm(0,`col`),t&2){let e=n.$implicit;sg(`width`,e.width??null)}}function Y(t,n){if(t&1){let e=RC();Li(0,`th`,4)(1,`input`,6),Jm(`change`,function(){Od(e);return Ld(HC().toggleAll())}),Nc()()}if(t&2){let e=HC();ec(),Wm(`checked`,e.allSelected())(`indeterminate`,e.someSelected()),zr(`aria-label`,e.allSelected()?e.t().clearSelection:e.t().selectAll)}}function Z(t,n){if(t&1&&(Li(0,`th`,7),fS(1),Nc()),t&2){let e=n.$implicit;ag(`text-right`,e.align===`right`),ec(),Ac(` `,e.label,` `)}}function ee(t,n){if(t&1&&(Li(0,`tr`,8)(1,`td`,10),Qm(2,11),Nc()()),t&2){let e=HC().$implicit,a=HC();ec(),zr(`colspan`,a.columnCount()),ec(),Wm(`ngTemplateOutlet`,a.groupHeader().template)(`ngTemplateOutletContext`,SS(3,I,e))}}function te(t,n){if(t&1){let e=RC();Li(0,`td`,10)(1,`input`,13),Jm(`change`,function(){Od(e);let d=HC().$implicit,$=HC(2);return Ld($.toggleOne($.trackKey()(d)))}),Nc()()}if(t&2){let e=HC().$implicit,a=HC(2);ec(),Wm(`checked`,a.selected().has(a.trackKey()(e))),zr(`aria-label`,a.t().select(a.trackKey()(e)))}}function ne(t,n){if(t&1&&(Li(0,`td`,10),Qm(1,11),Nc()),t&2){let e=n.$implicit,a=HC().$implicit,d=HC(2);ag(`text-right`,e.align===`right`),ec(),Wm(`ngTemplateOutlet`,d.cellFor(e.key))(`ngTemplateOutletContext`,SS(4,I,a))}}function ae(t,n){if(t&1&&(Li(0,`tr`,9),SC(1,te,2,2,`td`,10),kc(2,ne,2,6,`td`,12,_),Nc()),t&2){let e=HC(2);ec(),kC(e.selectable()?1:-1),ec(),Tc(e.columns())}}function ie(t,n){if(t&1&&(SC(0,ee,3,5,`tr`,8),kc(1,ae,4,1,`tr`,9,U,!0)),t&2){let e=n.$implicit;kC(HC().showHeaders()?0:-1),ec(),Tc(e.rows)}}function le(t,n){if(t&1&&(Li(0,`tr`)(1,`td`,14),fS(2),Nc()()),t&2){let e=HC();ec(),zr(`colspan`,e.columnCount()),ec(),Ac(` `,e.emptyMessage()??e.t().empty,` `)}}var I;var _;var x;var h;var z;var oe=f(()=>{Me();Kr();sk();Kr();I=t=>({$implicit:t}),_=(t,n)=>n.key;x=class t{appCell=jc.required();template=I$1(Ar);static ɵfac=function(e){return new(e||t)};static ɵdir=$E({type:t,selectors:[[`ng-template`,`appCell`,``]],inputs:{appCell:[1,`appCell`]}})},h=class t{template=I$1(Ar);static ɵfac=function(e){return new(e||t)};static ɵdir=$E({type:t,selectors:[[`ng-template`,`appGroupHeader`,``]]})},z=class t{columns=jc.required();rows=jc.required();trackKey=jc.required();selectable=jc(!0);emptyMessage=jc(null);selected=mj(new Set);groups=jc(null);cells=vj(x);groupHeader=hj(h);t=Lt(()=>ok().shell.dataTable);blocks=Lt(()=>this.groups()??[{key:``,rows:this.rows()}]);showHeaders=Lt(()=>this.groups()!==null&&this.groupHeader()!==void 0);isEmpty=Lt(()=>this.blocks().length===0||!this.showHeaders()&&this.rows().length===0);cellsByKey=Lt(()=>new Map(this.cells().map(n=>[n.appCell(),n.template])));columnCount=Lt(()=>this.columns().length+(this.selectable()?1:0));allSelected=Lt(()=>this.rows().length>0&&this.selected().size===this.rows().length);someSelected=Lt(()=>this.selected().size>0&&!this.allSelected());cellFor(n){return this.cellsByKey().get(n)??null}toggleAll(){this.selected.set(this.allSelected()?new Set:new Set(this.rows().map(n=>this.trackKey()(n))))}toggleOne(n){let e=new Set(this.selected());e.delete(n)||e.add(n),this.selected.set(e)}static ɵfac=function(e){return new(e||t)};static ɵcmp=wc({type:t,selectors:[[`app-data-table`]],contentQueries:function(e,a,d){e&1&&tg(d,a.cells,x,4)(d,a.groupHeader,h,5),e&2&&BC(2)},inputs:{columns:[1,`columns`],rows:[1,`rows`],trackKey:[1,`trackKey`],selectable:[1,`selectable`],emptyMessage:[1,`emptyMessage`],selected:[1,`selected`],groups:[1,`groups`]},outputs:{selected:`selectedChange`},decls:14,vars:3,consts:[[1,`w-full`,`table-fixed`,`border-collapse`,`text-[13px]`],[1,`w-10`],[3,`width`],[1,`border-b`,`border-ink-700`,`text-left`,`text-ink-400`],[1,`px-3`,`py-2`],[`scope`,`col`,1,`truncate`,`px-3`,`py-2`,`font-medium`,3,`text-right`],[`type`,`checkbox`,1,`mx-focus`,`accent-accent`,3,`change`,`checked`,`indeterminate`],[`scope`,`col`,1,`truncate`,`px-3`,`py-2`,`font-medium`],[1,`border-b`,`border-ink-800`,`bg-ink-850`],[1,`border-b`,`border-ink-800`,`transition-colors`,`hover:bg-ink-850`],[1,`px-3`,`py-1.5`],[3,`ngTemplateOutlet`,`ngTemplateOutletContext`],[1,`px-3`,`py-1.5`,3,`text-right`],[`type`,`checkbox`,1,`mx-focus`,`accent-accent`,3,`change`,`checked`],[1,`px-3`,`py-10`,`text-center`,`text-ink-400`]],template:function(e,a){e&1&&(Li(0,`table`,0)(1,`colgroup`),SC(2,W,1,0,`col`,1),kc(3,X,1,2,`col`,2,_),Nc(),Li(5,`thead`)(6,`tr`,3),SC(7,Y,2,3,`th`,4),kc(8,Z,2,3,`th`,5,_),Nc()(),Li(10,`tbody`),kc(11,ie,3,1,null,null,_),SC(13,le,3,2,`tr`),Nc()()),e&2&&(ec(2),kC(a.selectable()?2:-1),ec(),Tc(a.columns()),ec(4),kC(a.selectable()?7:-1),ec(),Tc(a.columns()),ec(3),Tc(a.blocks()),ec(2),kC(a.isEmpty()?13:-1))},dependencies:[tn],encapsulation:2})}});export{z as i,oe as n,x as r,h as t};
@@ -1 +1 @@
1
- import{H as Kr,P as I,Pt as X,_r as wt,an as f,jn as lT,lr as ve,o as $t,rn as eH}from"./chunk-DOxgdvK8.js";import{n as u$1,t as f$1}from"./chunk-C7ZKT99Y.js";var u;var v=f(()=>{Kr();lT();f$1();Kr();u=class o{toast=I(u$1);items=wt([]);measurements=wt(new Map);busy=wt(!1);loadProblem=wt(null);running=wt(new Set);containers=this.items.asReadonly();stats=this.measurements.asReadonly();loading=this.busy.asReadonly();problem=this.loadProblem.asReadonly();pending=this.running.asReadonly();runningIds=$t(()=>this.items().filter(e=>e.state===`running`).map(e=>e.id),{equal:(e,n)=>e.length===n.length&&e.every((t,a)=>t===n[a])});constructor(){let e=I(ve);e.onDestroy(window.electron.events.subscribe(n=>{n.includes(`container`)&&this.refresh()})),e.onDestroy(window.electron.containers.onStats(n=>this.applyStats(n)))}async refresh(){this.busy.set(!0);try{this.items.set(await window.electron.containers.list()),this.loadProblem.set(null)}catch(e){this.loadProblem.set(eH(e))}finally{this.busy.set(!1)}}watchStats(e){window.electron.containers.watchStats(e)}async run(e,n){this.running.update(t=>new Set(t).add(n));try{let t=await window.electron.containers.action(e,n);t.ok||this.toast.error(t.problem)}finally{this.running.update(t=>{let a=new Set(t);return a.delete(n),a})}}async runMany(e,n){await Promise.all(n.map(t=>this.run(e,t)))}applyStats(e){let n=new Map(this.measurements());for(let t of e)n.set(t.id,t);this.measurements.set(n)}static ɵfac=function(n){return new(n||o)};static ɵprov=X({token:o,factory:o.ɵfac,providedIn:`root`})}});export{v as n,u as t};
1
+ import{A as I,Mn as lk,R as Kr,W as Lt,_r as wt,ln as f,lr as ve,sn as eH,zt as X}from"./chunk-DanrBswj.js";import{n as u$1,t as f$1}from"./chunk-D0FWgHJO.js";var u;var v=f(()=>{Kr();lk();f$1();Kr();u=class o{toast=I(u$1);items=wt([]);measurements=wt(new Map);busy=wt(!1);loadProblem=wt(null);running=wt(new Set);containers=this.items.asReadonly();stats=this.measurements.asReadonly();loading=this.busy.asReadonly();problem=this.loadProblem.asReadonly();pending=this.running.asReadonly();runningIds=Lt(()=>this.items().filter(e=>e.state===`running`).map(e=>e.id),{equal:(e,n)=>e.length===n.length&&e.every((t,a)=>t===n[a])});constructor(){let e=I(ve);e.onDestroy(window.electron.events.subscribe(n=>{n.includes(`container`)&&this.refresh()})),e.onDestroy(window.electron.containers.onStats(n=>this.applyStats(n)))}async refresh(){this.busy.set(!0);try{this.items.set(await window.electron.containers.list()),this.loadProblem.set(null)}catch(e){this.loadProblem.set(eH(e))}finally{this.busy.set(!1)}}watchStats(e){window.electron.containers.watchStats(e)}async run(e,n){this.running.update(t=>new Set(t).add(n));try{let t=await window.electron.containers.action(e,n);t.ok||this.toast.error(t.problem)}finally{this.running.update(t=>{let a=new Set(t);return a.delete(n),a})}}async runMany(e,n){await Promise.all(n.map(t=>this.run(e,t)))}applyStats(e){let n=new Map(this.measurements());for(let t of e)n.set(t.id,t);this.measurements.set(n)}static ɵfac=function(n){return new(n||o)};static ɵprov=X({token:o,factory:o.ɵfac,providedIn:`root`})}});export{v as n,u as t};
@@ -0,0 +1 @@
1
+ import{A as I,Ct as Tc,Dn as kC,En as jc,Ft as Wm,Gn as pg,H as Li,I as Jm,In as nS,J as My,Jt as ag,N as Ij,O as HC,On as kc,Pn as mg,Qn as rg,R as Kr,Sn as hg,T as Gm,Tr as zr,V as Ld,Vn as ok,W as Lt,X as Nc,Zn as rf,_n as gj,_r as wt,cn as ec,er as sk,gt as SC,hr as wc,in as dk,ln as f,lr as ve,o as BC,r as Ac,sr as vS,tt as Od,un as fS,ur as vg,ut as RC,vt as Sc,wt as Tg,zt as X}from"./chunk-DanrBswj.js";import"./chunk-D0FWgHJO.js";import{n as p,t as M}from"./chunk-85ZfO9F8.js";import{n as v,t as u}from"./chunk-cfauKEfy.js";import{n as o,t as i}from"./chunk-D_aXkfN2.js";import"./chunk-ChbnoZwy.js";import{r as Q,s as fe,u as ra}from"./chunk-CRVM0rcA.js";import{a as T,c as j,i as H,n as B,o as U,r as G,s as V,t as $}from"./chunk-DppHyEV4.js";import{n as P,t as K}from"./chunk-NszG4cuZ.js";var de;var D;var pe=f(()=>{Kr();v();M();Kr();de=5e3,D=class i{store=I(u);project=I(p).choice(`logs.project`);buffer=wt([]);dropped=wt(!1);following=wt(!1);lines=this.buffer.asReadonly();truncated=this.dropped.asReadonly();active=this.following.asReadonly();sources=Lt(()=>this.store.containers().filter(e=>e.state===`running`).filter(e=>this.project()===null||e.composeProject===this.project()).map(e=>({containerId:e.id,containerName:e.name,composeProject:e.composeProject,composeService:e.composeService})),{equal:(e,t)=>e.length===t.length&&e.every((n,d)=>n.containerId===t[d].containerId)});constructor(){let e=I(ve);e.onDestroy(window.electron.logs.onAllLines(t=>this.append(t))),rf(()=>{let t=this.following()?this.sources():[];window.electron.logs.watchAll(t)}),e.onDestroy(()=>{window.electron.logs.watchAll([])})}attach(){this.following.set(!0)}detach(){this.following.set(!1)}clear(){this.buffer.set([]),this.dropped.set(!1)}async follow(e){e!==this.project()&&(await window.electron.logs.watchAll([]),this.clear(),this.project.set(e))}append(e){if(!this.following())return;let t=[...this.buffer(),...e];if(t.length>de){this.dropped.set(!0),this.buffer.set(t.slice(t.length-de));return}this.buffer.set(t)}static ɵfac=function(t){return new(t||i)};static ɵprov=X({token:i,factory:i.ɵfac,providedIn:`root`})}});function we(i,e){return this.trackId(e)}function Se(i,e){if(i&1&&(Li(0,`option`,37),fS(1),Nc()),i&2){let t=e.$implicit,n=HC(2);Wm(`value`,t)(`selected`,n.project()===t),ec(),pg(t)}}function Le(i,e){if(i&1){let t=RC();Li(0,`select`,35),Jm(`change`,function(d){Od(t);return Ld(HC().chooseProject(d.target.value))}),Li(1,`option`,36),fS(2),Nc(),kc(3,Se,2,3,`option`,37,Sc),Nc()}if(i&2){let t=HC();zr(`aria-label`,t.t().projectLabel),ec(),Wm(`selected`,t.project()===null),ec(),pg(t.t().allProjects),ec(),Tc(t.projects())}}function ke(i,e){if(i&1&&(Li(0,`span`,18),fS(1),Nc()),i&2){let t=HC();ec(),mg(`(`,t.sources().length-t.hidden().size,`/`,t.sources().length,`)`)}}function Pe(i,e){if(i&1){let t=RC();Li(0,`label`,38)(1,`input`,41),Jm(`change`,function(){let d=Od(t).$implicit;return Ld(HC(2).toggleSource(d.containerId))}),Nc(),Li(2,`span`,42),fS(3),Nc()()}if(i&2){let t=e.$implicit,n=HC(2);ec(),Wm(`checked`,!n.hidden().has(t.containerId)),ec(2),pg(n.labelOf(t.containerId))}}function Ee(i,e){if(i&1&&(Li(0,`p`,39),fS(1),Nc()),i&2){let t=HC(2);ec(),pg(t.t().nothingRunning)}}function Te(i,e){if(i&1){let t=RC();Li(0,`button`,43),Jm(`click`,function(){Od(t);return Ld(HC(2).showAllSources())}),fS(1),Nc()}if(i&2){let t=HC(2);ec(),Ac(` `,t.t().showAll,` `)}}function Ie(i,e){if(i&1&&(Li(0,`div`,19),kc(1,Pe,4,2,`label`,38,Ce,!1,Ee,2,1,`p`,39),SC(4,Te,2,1,`button`,40),Nc()),i&2){let t=HC();ec(),Tc(t.sources()),ec(3),kC(t.hidden().size>0?4:-1)}}function je(i,e){i&1&&(Li(0,`p`,23),fS(1),Nc()),i&2&&(ec(),pg(e))}function Me(i,e){i&1&&Gm(0,`col`,26)}function De(i,e){if(i&1&&(Li(0,`th`,30),fS(1),Nc()),i&2){let t=HC();ec(),pg(t.t().columns.time)}}function Ne(i,e){if(i&1&&(Li(0,`td`,44),fS(1),Nc()),i&2){let t=HC().$implicit;ec(),pg(t.time)}}function Re(i,e){if(i&1&&(Li(0,`tr`,32),SC(1,Ne,2,1,`td`,44),Li(2,`td`,45),fS(3),Nc(),Li(4,`td`,46),fS(5),Nc()()),i&2){let t=e.$implicit,n=HC();ec(),kC(n.showTimestamps()?1:-1),ec(),Wm(`title`,t.object),ec(),pg(t.object),ec(),nS(n.colorOf(t.level)),ec(),Ac(` `,t.text,` `)}}function Oe(i,e){if(i&1&&fS(0),i&2){let t=HC(2);Ac(` `,t.t().allFiltered(t.hiddenCount()),` `)}}function ze(i,e){if(i&1&&fS(0),i&2)Ac(` `,HC(2).t().empty,` `)}function Ve(i,e){if(i&1&&(Li(0,`tr`)(1,`td`,47),SC(2,Oe,1,1)(3,ze,1,1),Nc()()),i&2){let t=HC();ec(),zr(`colspan`,t.showTimestamps()?3:2),ec(),kC(t.hiddenCount()>0?2:3)}}function Fe(i,e){if(i&1&&(Li(0,`span`),fS(1),Nc()),i&2){let t=HC();ec(),pg(t.t().filteredOut(t.hiddenCount()))}}function Ae(i,e){if(i&1&&(Li(0,`span`,34),fS(1),Nc()),i&2){let t=HC();ec(),pg(t.t().truncated)}}var be;var Ce;var me;f(()=>{Kr();ra();o();v();V();pe();M();sk();K();dk();$();Kr();be=[`viewport`];Ce=(i,e)=>e.containerId;me=class i$1{logs=I(D);containers=I(u);preferences=I(p);viewport=gj(`viewport`);stick=!0;t=Lt(()=>ok().logs);truncated=this.logs.truncated;search=wt(``);caseSensitive=this.preferences.flag(`logs.caseSensitive`);showTimestamps=this.preferences.flag(`logs.allTimestamps`,!0);filterOpen=wt(!1);hidden=this.preferences.names(`logs.hiddenSources`);matcher=Lt(()=>j(this.search(),this.caseSensitive()));sources=Lt(()=>[...this.logs.sources()].sort((e,t)=>this.labelOf(e.containerId).localeCompare(this.labelOf(t.containerId))));levels=wt(new Set);matching=Lt(()=>{let e=this.matcher(),t=this.hidden();return this.logs.lines().filter(n=>!t.has(n.source.containerId)&&e.test(n.text)).map(n=>this.toRow(n))});levelCounts=Lt(()=>U(this.matching().map(e=>e.level)));rows=Lt(()=>{let e=this.levels();return e.size===0?this.matching():this.matching().filter(t=>H(t.level,e))});problem=Lt(()=>this.matcher().problem);hiddenCount=Lt(()=>this.logs.lines().length-this.rows().length);trackId=e=>e.id;project=this.logs.project;projects=Lt(()=>[...new Set(this.containers.containers().filter(e=>e.state===`running`&&e.composeProject!==null).map(e=>e.composeProject))].sort((e,t)=>e.localeCompare(t)));volg=jc(void 0);router=I(fe);route=I(Q);constructor(){rf(()=>{let e=this.volg();e!==void 0&&Tg(()=>{this.logs.follow(e),i(this.router,this.route,`volg`)})}),this.logs.attach(),I(ve).onDestroy(()=>this.logs.detach()),Ij(()=>{let e=this.rows().length,t=this.viewport()?.nativeElement;t===void 0||e===0||!this.stick||(t.scrollTop=t.scrollHeight)}),this.containers.refresh()}onScroll(e){let t=e.target;this.stick=t.scrollTop+t.clientHeight>=t.scrollHeight-24}colorOf(e){return e===null?`text-ink-300`:G[e]}toggleSource(e){let t=new Set(this.hidden());t.delete(e)||t.add(e),this.hidden.set(t)}chooseProject(e){this.logs.follow(e===``?null:e)}showAllSources(){this.hidden.set(new Set)}clear(){this.logs.clear()}labelOf(e){let t=this.logs.sources().find(n=>n.containerId===e);return t===void 0?e.slice(0,12):this.nameOf(t)}nameOf(e){if(e.composeProject===null)return e.containerName;let t=e.composeService??e.containerName;return this.logs.project()===null?`${e.composeProject}/${t}`:t}toRow(e){return{id:e.id,time:e.timestamp===null?``:e.timestamp.slice(11,19),object:this.nameOf(e.source),text:e.text,level:B(e.text)}}static ɵfac=function(t){return new(t||i$1)};static ɵcmp=wc({type:i$1,selectors:[[`app-logs-page`]],viewQuery:function(t,n){t&1&&rg(n.viewport,be,5),t&2&&BC()},inputs:{volg:[1,`volg`]},decls:54,vars:40,consts:[[`viewport`,``],[1,`flex`,`h-full`,`flex-col`],[1,`shrink-0`,`px-6`,`pt-5`,`pb-3`],[1,`flex`,`flex-wrap`,`items-start`,`gap-4`],[1,`text-xl`,`font-semibold`,`tracking-tight`,`text-ink-100`],[1,`mt-1`,`max-w-prose`,`text-[13px]`,`text-ink-400`],[1,`mt-4`,`flex`,`flex-wrap`,`items-center`,`gap-2`],[`data-testid`,`logs-project`,1,`mx-focus`,`rounded-md`,`border`,`border-ink-700`,`bg-ink-850`,`px-2.5`,`py-1`,`text-[13px]`,`text-ink-100`],[1,`relative`],[1,`pointer-events-none`,`absolute`,`top-1/2`,`left-2.5`,`-translate-y-1/2`,`text-ink-500`],[`name`,`search`,3,`size`],[1,`sr-only`],[`type`,`search`,1,`mx-focus`,`w-96`,`rounded-md`,`border`,`border-ink-700`,`bg-ink-850`,`py-1`,`pr-3`,`pl-8`,`text-[13px]`,`text-ink-100`,`placeholder:text-ink-500`,3,`input`,`placeholder`,`value`],[`type`,`button`,1,`mx-btn`,`mx-focus`,3,`click`,`title`],[`name`,`code`,3,`size`],[3,`chosenChange`,`chosen`,`errors`,`warnings`],[`type`,`button`,`aria-haspopup`,`true`,1,`mx-btn`,`mx-focus`,3,`click`],[`name`,`containers`,3,`size`],[1,`text-[11px]`],[1,`absolute`,`left-0`,`z-50`,`mt-1.5`,`max-h-80`,`w-72`,`overflow-y-auto`,`rounded-md`,`border`,`border-ink-700`,`bg-panel`,`p-1`,`shadow-2xl`],[3,`onChange`,`label`,`on`],[`type`,`button`,1,`mx-btn`,`mx-focus`,`ml-auto`,3,`click`],[`name`,`eraser`,3,`size`],[1,`mt-3`,`rounded-md`,`border`,`border-warn/40`,`bg-warn/10`,`px-3`,`py-2`,`text-[13px]`,`text-warn`],[1,`min-h-0`,`flex-1`,`overflow-y-auto`,`px-6`,`pb-4`,3,`scroll`],[1,`w-full`,`table-fixed`,`border-collapse`,`text-[12px]`],[1,`w-20`],[1,`w-56`],[1,`sticky`,`top-0`,`bg-ink-900`],[1,`border-b`,`border-ink-700`,`text-left`,`text-ink-400`],[`scope`,`col`,1,`px-2`,`py-1.5`,`font-medium`],[1,`font-mono`],[1,`align-top`,`hover:bg-ink-850`],[1,`flex`,`shrink-0`,`items-center`,`gap-3`,`px-6`,`pb-4`,`text-[12px]`,`text-ink-500`],[1,`text-warn`],[`data-testid`,`logs-project`,1,`mx-focus`,`rounded-md`,`border`,`border-ink-700`,`bg-ink-850`,`px-2.5`,`py-1`,`text-[13px]`,`text-ink-100`,3,`change`],[`value`,``,3,`selected`],[3,`value`,`selected`],[1,`flex`,`cursor-pointer`,`items-center`,`gap-2`,`rounded`,`px-2`,`py-1.5`,`text-[12px]`,`text-ink-300`,`hover:bg-ink-850`],[1,`px-2`,`py-3`,`text-center`,`text-[12px]`,`text-ink-500`],[`type`,`button`,1,`mx-focus`,`mt-1`,`w-full`,`cursor-pointer`,`rounded`,`px-2`,`py-1.5`,`text-left`,`text-[12px]`,`text-accent`,`hover:bg-ink-850`],[`type`,`checkbox`,1,`mx-focus`,`accent-accent`,3,`change`,`checked`],[1,`min-w-0`,`flex-1`,`truncate`],[`type`,`button`,1,`mx-focus`,`mt-1`,`w-full`,`cursor-pointer`,`rounded`,`px-2`,`py-1.5`,`text-left`,`text-[12px]`,`text-accent`,`hover:bg-ink-850`,3,`click`],[1,`px-2`,`py-0.5`,`tabular-nums`,`text-ink-500`],[1,`truncate`,`px-2`,`py-0.5`,`text-accent`,3,`title`],[`data-testid`,`log-row`,1,`px-2`,`py-0.5`,`break-all`,`whitespace-pre-wrap`],[1,`px-2`,`py-10`,`text-center`,`font-sans`,`text-ink-400`]],template:function(t,n){if(t&1){let d=RC();Li(0,`section`,1)(1,`div`,2)(2,`div`,3)(3,`div`)(4,`h1`,4),fS(5),Nc(),Li(6,`p`,5),fS(7),Nc()()(),Li(8,`div`,6),SC(9,Le,5,3,`select`,7),Li(10,`label`,8)(11,`span`,9),Gm(12,`app-icon`,10),Nc(),Li(13,`span`,11),fS(14),Nc(),Li(15,`input`,12),Jm(`input`,function(f){return n.search.set(f.target.value)}),Nc()(),Li(16,`button`,13),Jm(`click`,function(){return n.caseSensitive.set(!n.caseSensitive())}),Gm(17,`app-icon`,14),fS(18,` Aa `),Nc(),Li(19,`app-level-filter`,15),vg(`chosenChange`,function(f){return Od(d),vS(n.levels,f)||(n.levels=f),Ld(f)}),Nc(),Li(20,`div`,8)(21,`button`,16),Jm(`click`,function(){return n.filterOpen.set(!n.filterOpen())}),Gm(22,`app-icon`,17),fS(23),SC(24,ke,2,2,`span`,18),Nc(),SC(25,Ie,5,2,`div`,19),Nc(),Li(26,`app-filter-switch`,20),vg(`onChange`,function(f){return Od(d),vS(n.showTimestamps,f)||(n.showTimestamps=f),Ld(f)}),Nc(),Li(27,`button`,21),Jm(`click`,function(){return n.clear()}),Gm(28,`app-icon`,22),fS(29),Nc()(),SC(30,je,2,1,`p`,23),Nc(),Li(31,`div`,24,0),Jm(`scroll`,function(f){return n.onScroll(f)}),Li(33,`table`,25)(34,`colgroup`),SC(35,Me,1,0,`col`,26),Gm(36,`col`,27)(37,`col`),Nc(),Li(38,`thead`,28)(39,`tr`,29),SC(40,De,2,1,`th`,30),Li(41,`th`,30),fS(42),Nc(),Li(43,`th`,30),fS(44),Nc()()(),Li(45,`tbody`,31),kc(46,Re,6,6,`tr`,32,we,!0,Ve,4,2,`tr`),Nc()()(),Li(49,`div`,33)(50,`span`),fS(51),Nc(),SC(52,Fe,2,1,`span`),SC(53,Ae,2,1,`span`,34),Nc()()}if(t&2){let d;ec(5),pg(n.t().title),ec(2),pg(n.t().intro),ec(2),kC(n.projects().length>0?9:-1),ec(3),Wm(`size`,14),ec(2),pg(n.t().searchLabel),ec(),Wm(`placeholder`,n.t().searchPlaceholder)(`value`,n.search()),ec(),ag(`border-accent`,n.caseSensitive())(`text-accent`,n.caseSensitive()),Wm(`title`,n.t().caseSensitive),zr(`aria-pressed`,n.caseSensitive())(`aria-label`,n.t().caseSensitive),ec(),Wm(`size`,14),ec(2),hg(`chosen`,n.levels),Wm(`errors`,n.levelCounts().error)(`warnings`,n.levelCounts().warn),ec(2),ag(`border-accent`,n.hidden().size>0)(`text-accent`,n.hidden().size>0),zr(`aria-expanded`,n.filterOpen()),ec(),Wm(`size`,14),ec(),Ac(` `,n.t().containers,` `),ec(),kC(n.hidden().size>0?24:-1),ec(),kC(n.filterOpen()?25:-1),ec(),Wm(`label`,n.t().timestamps),hg(`on`,n.showTimestamps),ec(2),Wm(`size`,14),ec(),Ac(` `,n.t().clear,` `),ec(),kC((d=n.problem())?30:-1,d),ec(5),kC(n.showTimestamps()?35:-1),ec(5),kC(n.showTimestamps()?40:-1),ec(2),pg(n.t().columns.object),ec(2),pg(n.t().columns.line),ec(2),Tc(n.rows()),ec(5),pg(n.t().lineCount(n.rows().length)),ec(),kC(n.hiddenCount()>0?52:-1),ec(),kC(n.truncated()?53:-1)}},dependencies:[My,P,T],encapsulation:2})}})();export{me as LogsPage};
@@ -1 +1 @@
1
- import{$n as sT,Bn as oT,H as Kr,P as I,Pt as X,_r as wt,an as f,jn as lT,o as $t,rn as eH}from"./chunk-DOxgdvK8.js";import{n as u,t as f$1}from"./chunk-C7ZKT99Y.js";import{n as y,t as c}from"./chunk-C-mSD_ks.js";var d;var h=f(()=>{Kr();lT();Kr();d=class a{state=wt(null);busy=wt(!1);startingWsl=wt(!1);wslFailure=wt(null);startedWsl=wt(!1);status=this.state.asReadonly();loading=this.busy.asReadonly();wslStarting=this.startingWsl.asReadonly();wslProblem=this.wslFailure.asReadonly();wslStartedBefore=this.startedWsl.asReadonly();async refresh(){this.busy.set(!0);try{this.state.set(await window.electron.engine.status())}finally{this.busy.set(!1)}}async startWsl(e){return this.start(()=>window.electron.engine.startWsl(e),!0)}async startWslDaemon(e){return this.start(()=>window.electron.engine.startWslDaemon(e),!1)}async start(e,t){this.startingWsl.set(!0),this.wslFailure.set(null);try{let r=await e();return r.ok?this.startedWsl.set(t):this.wslFailure.set(r.problem),await this.refresh(),r.ok}catch(r){return this.wslFailure.set(eH(r)),!1}finally{this.startingWsl.set(!1)}}static ɵfac=function(t){return new(t||a)};static ɵprov=X({token:a,factory:a.ɵfac,providedIn:`root`})}});var p;var W=f(()=>{Kr();y();h();lT();sT();f$1();Kr();p=class a{engine=I(d);compose=I(c);toast=I(u);items=wt([]);busy=wt(!1);failure=wt(null);contexts=this.items.asReadonly();switching=this.busy.asReadonly();problem=this.failure.asReadonly();active=$t(()=>this.items().find(e=>e.active)??null);async load(){try{this.items.set(await window.electron.contexts.list()),this.failure.set(null)}catch(e){this.failure.set(eH(e))}}async use(e){if(!(this.busy()||e===this.active()?.name)){this.busy.set(!0);try{let t=await window.electron.contexts.use(e);if(!t.ok){this.toast.error(t.problem,oT().dashboard.contexts.switchFailed(e));return}await Promise.all([this.load(),this.engine.refresh(),this.compose.loadStatus()])}catch(t){this.toast.error(eH(t),oT().dashboard.contexts.switchFailed(e))}finally{this.busy.set(!1)}}}static ɵfac=function(t){return new(t||a)};static ɵprov=X({token:a,factory:a.ɵfac,providedIn:`root`})}});export{p as i,d as n,h as r,W as t};
1
+ import{A as I,Mn as lk,R as Kr,Vn as ok,W as Lt,_r as wt,er as sk,ln as f,sn as eH,zt as X}from"./chunk-DanrBswj.js";import{n as u,t as f$1}from"./chunk-D0FWgHJO.js";import{n as y,t as c}from"./chunk-CxswDxfD.js";var d;var h=f(()=>{Kr();lk();Kr();d=class a{state=wt(null);busy=wt(!1);startingWsl=wt(!1);wslFailure=wt(null);startedWsl=wt(!1);status=this.state.asReadonly();loading=this.busy.asReadonly();wslStarting=this.startingWsl.asReadonly();wslProblem=this.wslFailure.asReadonly();wslStartedBefore=this.startedWsl.asReadonly();async refresh(){this.busy.set(!0);try{this.state.set(await window.electron.engine.status())}finally{this.busy.set(!1)}}async startWsl(e){return this.start(()=>window.electron.engine.startWsl(e),!0)}async startWslDaemon(e){return this.start(()=>window.electron.engine.startWslDaemon(e),!1)}async start(e,t){this.startingWsl.set(!0),this.wslFailure.set(null);try{let r=await e();return r.ok?this.startedWsl.set(t):this.wslFailure.set(r.problem),await this.refresh(),r.ok}catch(r){return this.wslFailure.set(eH(r)),!1}finally{this.startingWsl.set(!1)}}static ɵfac=function(t){return new(t||a)};static ɵprov=X({token:a,factory:a.ɵfac,providedIn:`root`})}});var p;var W=f(()=>{Kr();y();h();lk();sk();f$1();Kr();p=class a{engine=I(d);compose=I(c);toast=I(u);items=wt([]);busy=wt(!1);failure=wt(null);contexts=this.items.asReadonly();switching=this.busy.asReadonly();problem=this.failure.asReadonly();active=Lt(()=>this.items().find(e=>e.active)??null);async load(){try{this.items.set(await window.electron.contexts.list()),this.failure.set(null)}catch(e){this.failure.set(eH(e))}}async use(e){if(!(this.busy()||e===this.active()?.name)){this.busy.set(!0);try{let t=await window.electron.contexts.use(e);if(!t.ok){this.toast.error(t.problem,ok().dashboard.contexts.switchFailed(e));return}await Promise.all([this.load(),this.engine.refresh(),this.compose.loadStatus()])}catch(t){this.toast.error(eH(t),ok().dashboard.contexts.switchFailed(e))}finally{this.busy.set(!1)}}}static ɵfac=function(t){return new(t||a)};static ɵprov=X({token:a,factory:a.ɵfac,providedIn:`root`})}});export{p as i,d as n,h as r,W as t};
@@ -1 +1 @@
1
- import{$n as sT,Bn as oT,E as G,H as Kr,P as I,Pt as X,_r as wt,an as f,jn as lT,kt as W,lr as ve,o as $t,rn as eH}from"./chunk-DOxgdvK8.js";import{n as u,t as f$1}from"./chunk-C7ZKT99Y.js";import{i as h,r as d}from"./chunk-Dj0SqC61.js";var w;var B=f(()=>{Kr();h();lT();f$1();sT();Kr();w=class l{toast=I(u);items=wt([]);sizeByName=wt({});busy=wt(!1);sizesBusy=wt(!1);loadProblem=wt(null);running=wt(new Set);loading=this.busy.asReadonly();loadingSizes=this.sizesBusy.asReadonly();problem=this.loadProblem.asReadonly();pending=this.running.asReadonly();volumes=$t(()=>{let s=this.sizeByName();return this.items().map(e=>G(W({},e),{sizeBytes:s[e.name]??null}))});totalBytes=$t(()=>this.volumes().reduce((s,e)=>s+(e.sizeBytes??0),0));unusedCount=$t(()=>this.items().filter(s=>s.inUseBy===0).length);constructor(){I(ve).onDestroy(window.electron.events.subscribe(s=>{s.includes(`volume`)&&this.refresh()}))}async refresh(){this.busy.set(!0);try{this.items.set(await window.electron.volumes.list()),this.loadProblem.set(null)}catch(s){this.loadProblem.set(eH(s))}finally{this.busy.set(!1)}this.loadSizes()}async loadSizes(){this.sizesBusy.set(!0);try{this.sizeByName.set(await window.electron.volumes.sizes())}catch{}finally{this.sizesBusy.set(!1)}}async create(s){let e;try{let t=await window.electron.volumes.create(s);e=t.ok?null:t.problem}catch(t){e=eH(t)}return e===null&&(this.toast.success(oT().volumes.created(s.name)),await this.refresh()),e}async remove(s,e){this.running.update(t=>new Set(t).add(s));try{let t=await window.electron.volumes.remove(s,e);t.ok||this.toast.error(t.problem)}finally{this.running.update(t=>{let i=new Set(t);return i.delete(s),i})}await this.refresh()}async removeMany(s,e){await Promise.all(s.map(t=>this.remove(t,e)))}async prune(s){this.busy.set(!0);try{let e=await window.electron.volumes.prune(s);e.ok?this.toast.success(e.removed===0?oT().common.nothingToPrune:oT().volumes.pruned(e.removed,d(e.reclaimedBytes))):this.toast.error(e.problem)}finally{this.busy.set(!1)}await this.refresh()}async backup(s){await this.whilePending(s,async()=>{let e=await window.electron.volumes.backup(s);e.ok?e.savedTo!==null&&this.toast.success(oT().volumes.backedUp(s,e.savedTo)):this.toast.error(e.problem)})}async restore(s){await this.whilePending(s,async()=>{let e=await window.electron.volumes.restore(s);e.ok?e.restoredFrom!==null&&this.toast.success(oT().volumes.restored(e.restoredFrom,s)):this.toast.error(e.problem)}),await this.loadSizes()}async whilePending(s,e){this.running.update(t=>new Set(t).add(s));try{await e()}catch(t){this.toast.error(eH(t))}finally{this.running.update(t=>{let i=new Set(t);return i.delete(s),i})}}static ɵfac=function(e){return new(e||l)};static ɵprov=X({token:l,factory:l.ɵfac,providedIn:`root`})}});export{w as n,B as t};
1
+ import{A as I,Mn as lk,Pt as W,R as Kr,S as G,Vn as ok,W as Lt,_r as wt,er as sk,ln as f,lr as ve,sn as eH,zt as X}from"./chunk-DanrBswj.js";import{n as u,t as f$1}from"./chunk-D0FWgHJO.js";import{i as h,r as d}from"./chunk-CnjgTml5.js";var w;var B=f(()=>{Kr();h();lk();f$1();sk();Kr();w=class l{toast=I(u);items=wt([]);sizeByName=wt({});busy=wt(!1);sizesBusy=wt(!1);loadProblem=wt(null);running=wt(new Set);loading=this.busy.asReadonly();loadingSizes=this.sizesBusy.asReadonly();problem=this.loadProblem.asReadonly();pending=this.running.asReadonly();volumes=Lt(()=>{let s=this.sizeByName();return this.items().map(e=>G(W({},e),{sizeBytes:s[e.name]??null}))});totalBytes=Lt(()=>this.volumes().reduce((s,e)=>s+(e.sizeBytes??0),0));unusedCount=Lt(()=>this.items().filter(s=>s.inUseBy===0).length);constructor(){I(ve).onDestroy(window.electron.events.subscribe(s=>{s.includes(`volume`)&&this.refresh()}))}async refresh(){this.busy.set(!0);try{this.items.set(await window.electron.volumes.list()),this.loadProblem.set(null)}catch(s){this.loadProblem.set(eH(s))}finally{this.busy.set(!1)}this.loadSizes()}async loadSizes(){this.sizesBusy.set(!0);try{this.sizeByName.set(await window.electron.volumes.sizes())}catch{}finally{this.sizesBusy.set(!1)}}async create(s){let e;try{let t=await window.electron.volumes.create(s);e=t.ok?null:t.problem}catch(t){e=eH(t)}return e===null&&(this.toast.success(ok().volumes.created(s.name)),await this.refresh()),e}async remove(s,e){this.running.update(t=>new Set(t).add(s));try{let t=await window.electron.volumes.remove(s,e);t.ok||this.toast.error(t.problem)}finally{this.running.update(t=>{let i=new Set(t);return i.delete(s),i})}await this.refresh()}async removeMany(s,e){await Promise.all(s.map(t=>this.remove(t,e)))}async prune(s){this.busy.set(!0);try{let e=await window.electron.volumes.prune(s);e.ok?this.toast.success(e.removed===0?ok().common.nothingToPrune:ok().volumes.pruned(e.removed,d(e.reclaimedBytes))):this.toast.error(e.problem)}finally{this.busy.set(!1)}await this.refresh()}async backup(s){await this.whilePending(s,async()=>{let e=await window.electron.volumes.backup(s);e.ok?e.savedTo!==null&&this.toast.success(ok().volumes.backedUp(s,e.savedTo)):this.toast.error(e.problem)})}async restore(s){await this.whilePending(s,async()=>{let e=await window.electron.volumes.restore(s);e.ok?e.restoredFrom!==null&&this.toast.success(ok().volumes.restored(e.restoredFrom,s)):this.toast.error(e.problem)}),await this.loadSizes()}async whilePending(s,e){this.running.update(t=>new Set(t).add(s));try{await e()}catch(t){this.toast.error(eH(t))}finally{this.running.update(t=>{let i=new Set(t);return i.delete(s),i})}}static ɵfac=function(e){return new(e||l)};static ɵprov=X({token:l,factory:l.ɵfac,providedIn:`root`})}});export{w as n,B as t};
@@ -7,8 +7,8 @@
7
7
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
8
8
  <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:; connect-src 'self' ws://localhost:4200 http://localhost:4200"/>
9
9
  <link rel="icon" type="image/x-icon" href="favicon.ico"/>
10
- <link rel="stylesheet" href="styles-JS3HDDI4.css"></head>
10
+ <link rel="stylesheet" href="styles-QQZVKMBI.css"></head>
11
11
  <body>
12
12
  <app-root></app-root>
13
- <link rel="modulepreload" href="chunk-DOxgdvK8.js"><link rel="modulepreload" href="chunk-C7ZKT99Y.js"><link rel="modulepreload" href="chunk-C-mSD_ks.js"><link rel="modulepreload" href="chunk-BDwzLH5E.js"><link rel="modulepreload" href="chunk-Duka1ezn.js"><link rel="modulepreload" href="chunk-Dj0SqC61.js"><link rel="modulepreload" href="chunk-DSXCkEOA.js"><link rel="modulepreload" href="chunk-Dk2BOjJw.js"><link rel="modulepreload" href="chunk-DFUzAyI0.js"><link rel="modulepreload" href="chunk-oQtDYwMw.js"><script src="main-EZ2B2NFK.js" type="module"></script></body>
13
+ <link rel="modulepreload" href="chunk-DanrBswj.js"><link rel="modulepreload" href="chunk-D0FWgHJO.js"><link rel="modulepreload" href="chunk-CxswDxfD.js"><link rel="modulepreload" href="chunk-rv2Wq9aE.js"><link rel="modulepreload" href="chunk-GRa_eWyd.js"><link rel="modulepreload" href="chunk-CnjgTml5.js"><link rel="modulepreload" href="chunk-DnXZxwhv.js"><link rel="modulepreload" href="chunk-t-OrhYrD.js"><link rel="modulepreload" href="chunk-BqwibbR9.js"><link rel="modulepreload" href="chunk-85ZfO9F8.js"><script src="main-5BW3ZB5N.js" type="module"></script></body>
14
14
  </html>
@@ -0,0 +1 @@
1
+ import{$ as Ny,$n as sg,A as I,Bt as Xm,Ct as Tc,Dn as kC,En as jc,Fn as mj,Ft as Wm,Gn as pg,H as Li$1,Ht as Zd,I as Jm,In as nS,It as Wr,J as My,Jt as ag,Kn as pj,Kt as _m,Mn as lk,O as HC,On as kc,Pn as mg,Pt as W,Qn as rg,R as Kr,S as G,Sn as hg,T as Gm,Tr as zr,Un as ow,V as Ld,Vn as ok,W as Lt,X as Nc,Xt as bD,Zn as rf,Zt as bS,_n as gj,_r as wt,_t as SS,at as Pr,cn as ec,en as bg,er as sk,fr as vr,gn as gg,gt as SC,hr as wc,in as dk,ln as f,lr as ve,o as BC,pn as fk,pr as wD,qn as qr,r as Ac,rt as PE,sn as eH,sr as vS,st as Qi$1,tt as Od,un as fS,ur as vg,ut as RC,vt as Sc,wn as ik,wt as Tg,xr as yS,xt as TC,zt as X}from"./chunk-DanrBswj.js";import{n as u,t as f$1}from"./chunk-D0FWgHJO.js";import{n as y,t as c}from"./chunk-CxswDxfD.js";import{i as p,n as d,r as h,t as W$1}from"./chunk-rv2Wq9aE.js";import{i as u$1,n as d$1,r as m,t as a}from"./chunk-GRa_eWyd.js";import{i as h$1,n as N,r as d$2}from"./chunk-CnjgTml5.js";import{n as h$2,t as P}from"./chunk-DnXZxwhv.js";import{n as w,t as B}from"./chunk-t-OrhYrD.js";import{n as y$1,t as f$2}from"./chunk-BqwibbR9.js";import{n as p$1,t as M}from"./chunk-85ZfO9F8.js";import{n as y$2,t as f$3}from"./chunk-CKodeenq.js";import{n as v,t as u$2}from"./chunk-cfauKEfy.js";import{n as o,t as i}from"./chunk-D_aXkfN2.js";import{n as x,t as u$3}from"./chunk-CQIXZf41.js";import"./chunk-ChbnoZwy.js";import{a as Yt,c as na$1,i as Qr,l as qn$1,n as Ks,o as ao,r as Q,s as fe,t as Gs,u as ra$1}from"./chunk-CRVM0rcA.js";import"./chunk-BsvB6MmB.js";import{_ as pn$1,a as Ni$1,c as Ri$1,d as dn$1,f as fn$1,g as ln$1,h as ki$1,i as Mi$1,m as ie,n as Ii$1,o as Oi$1,p as ho,r as Je$1,s as Pi$1,t as Ai$1,u as cn$1}from"./chunk-CFXWwPKo.js";function On(i){let t=ok().dashboard.pruneResult,e=[],n=[],a=0;for(let{kind:g,result:y}of i)y.ok?y.removed>0&&(e.push(t.removed[g](y.removed)),a+=y.reclaimedBytes):n.push(`${t.kinds[g]}: ${y.problem}`);let r=e.length>1?`${e.slice(0,-1).join(`, `)} ${t.and} ${e[e.length-1]}`:e[0];return{notice:r===void 0?n.length===0?ok().common.nothingToPrune:null:t.notice(r,d$2(a)),problem:n.length===0?null:t.problem(n.join(`; `))}}var ze;var an=f(()=>{Kr();h$1();lk();sk();f$1();Kr();ze=class i{toast=I(u);usage=wt(null);busy=wt(!1);failure=wt(null);pruning=wt(!1);diskUsage=this.usage.asReadonly();loading=this.busy.asReadonly();problem=this.failure.asReadonly();pruneBusy=this.pruning.asReadonly();largestBytes=Lt(()=>Math.max(1,...(this.usage()?.entries??[]).map(t=>t.sizeBytes)));constructor(){I(ve).onDestroy(window.electron.events.subscribe(t=>{(t.includes(`image`)||t.includes(`volume`))&&this.refresh()}))}async refresh(){this.busy.set(!0);try{this.usage.set(await window.electron.system.diskUsage()),this.failure.set(null)}catch(t){this.failure.set(eH(t))}finally{this.busy.set(!1)}}async prune(t){this.pruning.set(!0);try{let e=On(await window.electron.system.prune(t));e.notice!==null&&this.toast.success(e.notice),e.problem!==null&&this.toast.error(e.problem)}catch(e){this.toast.error(eH(e))}finally{this.pruning.set(!1)}await this.refresh()}static ɵfac=function(e){return new(e||i)};static ɵprov=X({token:i,factory:i.ɵfac,providedIn:`root`})}});function Ue(i,t){let e=t.t-Oe,n=[...i,t].filter(a=>a.t>=e);return n.length>on?n.slice(n.length-on):n}var Oe;var on;var Fe;var pt=f(()=>{Kr();Kr();Oe=18e4,on=240,Fe=class i{cpuPoints=wt([]);memoryPoints=wt([]);rxPoints=wt([]);txPoints=wt([]);cpu=this.cpuPoints.asReadonly();memory=this.memoryPoints.asReadonly();received=this.rxPoints.asReadonly();sent=this.txPoints.asReadonly();constructor(){I(ve).onDestroy(window.electron.containers.onStats(t=>{let e=0,n=0,a=0,r=0;for(let g of t)e+=g.cpuPercent,n+=g.memoryBytes,a+=g.rxBytesPerSec,r+=g.txBytesPerSec;let p=Date.now();this.cpuPoints.update(g=>Ue(g,{t:p,value:e})),this.memoryPoints.update(g=>Ue(g,{t:p,value:n})),this.rxPoints.update(g=>Ue(g,{t:p,value:a})),this.txPoints.update(g=>Ue(g,{t:p,value:r}))}))}static ɵfac=function(e){return new(e||i)};static ɵprov=X({token:i,factory:i.ɵfac,providedIn:`root`})}});function Hn(i,t){if(i&1&&(qr(0,`li`,7),Qi$1(1,`span`,8),fS(2),Wr()),i&2){let e=t.$implicit;ec(),nS(e.classes.swatch),ec(),Ac(` `,e.series.label,` `)}}function jn(i,t){if(i&1&&(qr(0,`ul`,1),kc(1,Hn,3,3,`li`,7,rn),Wr()),i&2){HC();let e=bS(0);ec(),Tc(e.lines)}}function qn(i,t){if(i&1&&(vr(),Qi$1(0,`line`,3)),i&2){let e=t.$implicit,n=HC();zr(`x1`,0)(`x2`,n.w)(`y1`,e)(`y2`,e)}}function Wn(i,t){if(i&1&&(vr(),Qi$1(0,`path`)),i&2){let e=HC().$implicit,n=HC().$implicit;nS(n.classes.area),zr(`d`,e.area)}}function Gn(i,t){if(i&1&&(SC(0,Wn,1,3,`:svg:path`,9),vr(),Qi$1(1,`path`,10)),i&2){let e=t.$implicit,n=HC().$implicit;HC();kC(bS(0).lines.length===1?0:-1),ec(),nS(n.classes.stroke),zr(`d`,e.line)}}function Kn(i,t){if(i&1&&kc(0,Gn,2,4,null,null,TC),i&2){let e=t.$implicit;Tc(e.segments)}}function Qn(i,t){if(i&1&&(vr(),Qi$1(0,`circle`,13)),i&2){let e=t.$implicit;nS(e.line.classes.fill+` stroke-panel`),zr(`cx`,e.at.x)(`cy`,e.at.y)}}function Xn(i,t){if(i&1&&(vr(),Qi$1(0,`line`,11),kc(1,Qn,1,4,`:svg:circle`,12,sn)),i&2){let e=t,n=HC();zr(`x1`,e.x)(`x2`,e.x)(`y1`,0)(`y2`,n.h),ec(),Tc(e.spots)}}function Zn(i,t){if(i&1&&(Qi$1(0,`span`,16),qr(1,`span`,17),fS(2),Wr()),i&2){let e=HC().$implicit;nS(e.line.classes.swatch),ec(2),pg(e.line.series.label)}}function Yn(i,t){if(i&1&&(qr(0,`div`,7),SC(1,Zn,3,3),qr(2,`span`,6),fS(3),Wr()()),i&2){let e=t.$implicit,n=HC(),a=HC();ec(),kC(n.spots.length>1?1:-1),ec(2),pg(a.format()(e.at.point.value))}}function Jn(i,t){if(i&1&&(qr(0,`div`,14),kc(1,Yn,4,2,`div`,7,sn),qr(3,`div`,15),fS(4),Wr()()),i&2){let e=t,n=HC();sg(`left`,e.x/n.w*100,`%`),ec(),Tc(e.spots),ec(3),pg(n.clockOf(e.t))}}function ii(i){if(i<=0)return 1;let t=10**Math.floor(Math.log10(i)),e=i/t;return e<=1?t:e<=2?2*t:e<=5?5*t:10*t}function ai(i){let t=[],e=[];function n(){if(e.length===0)return;let a=e.map(g=>`${g.x.toFixed(1)},${g.y.toFixed(1)}`).join(` L`),r=e[0],p=e[e.length-1];t.push({line:`M${a}`,area:`M${r.x.toFixed(1)},${String(ce)} L${a} L${p.x.toFixed(1)},${String(ce)} Z`}),e=[]}for(let[a,r]of i.entries())a>0&&r.point.t-i[a-1].point.t>ei&&n(),e.push(r);return n(),t}var rn;var sn;var He;var ce;var ei;var ti;var ni;var je;var ln=f(()=>{Kr();pt();sk();Kr();rn=(i,t)=>t.series.key,sn=(i,t)=>t.line.series.key;He=600,ce=120,ei=5e3,ti={accent:{stroke:`stroke-accent`,fill:`fill-accent`,area:`fill-accent/15`,swatch:`bg-accent`},"series-1":{stroke:`stroke-series-1`,fill:`fill-series-1`,area:`fill-series-1/15`,swatch:`bg-series-1`},"series-2":{stroke:`stroke-series-2`,fill:`fill-series-2`,area:`fill-series-2/15`,swatch:`bg-series-2`}},ni=15e3,je=class i{points=jc([]);series=jc(null);format=jc.required();label=jc.required();floor=jc(1);w=He;h=ce;viewBox=`0 0 ${String(He)} ${String(ce)}`;gridlines=[0,ce/2,ce];hovered=wt(null);t=Lt(()=>ok().shell.usageChart);allSeries=Lt(()=>this.series()??[{key:`main`,label:this.label(),points:this.points(),color:`accent`}]);plot=Lt(()=>this.build());marker=Lt(()=>{let t=this.hovered();if(t===null)return null;let e=this.plot().lines.filter(n=>n.plotted.length>0).map(n=>({line:n,at:n.plotted.reduce((a,r)=>Math.abs(r.x-t)<Math.abs(a.x-t)?r:a)}));return e.length===0?null:{x:e[0].at.x,t:e[0].at.point.t,spots:e}});summary=Lt(()=>{let t=this.format(),e=this.t(),n=this.allSeries().filter(r=>r.points.length>0).map(r=>{let p=r.points.map(g=>g.value);return{label:r.label,values:e.values(t(p[p.length-1]),t(Math.max(...p)),t(Math.min(...p)))}});if(n.length===0)return e.noData(this.label());let a=this.series()===null?n[0].values:n.map(r=>`${r.label}: ${r.values}`).join(`; `);return e.summary(this.label(),this.ageOf(this.plot().spanMs),a)});onMove(t){let e=t.currentTarget.getBoundingClientRect();e.width!==0&&this.hovered.set((t.clientX-e.left)/e.width*He)}ageOf(t){return t<6e4?`${String(Math.round(t/1e3))} s`:`${String(Math.round(t/6e4))} min`}clockOf(t){return new Date(t).toLocaleTimeString(ik(),{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}build(){let t=this.allSeries(),e=t.flatMap(I=>I.points.map(l=>l.t));if(e.length===0)return{lines:[],yMax:this.floor(),spanMs:Oe};let n=Math.max(...e),a=Math.max(ni,Math.min(Oe,n-Math.min(...e))),r=n-a,p=t.flatMap(I=>I.points.map(l=>l.value)),g=ii(Math.max(this.floor(),...p));return{lines:t.map(I=>{let l=I.points.filter(w=>w.t>=r).map(w=>({point:w,x:(w.t-r)/a*He,y:ce-w.value/g*ce}));return{series:I,classes:ti[I.color],segments:ai(l),plotted:l}}),yMax:g,spanMs:a}}static ɵfac=function(e){return new(e||i)};static ɵcmp=wc({type:i,selectors:[[`app-usage-chart`]],inputs:{points:[1,`points`],series:[1,`series`],format:[1,`format`],label:[1,`label`],floor:[1,`floor`]},decls:17,vars:9,consts:[[1,`relative`,`m-0`],[`data-testid`,`chart-legend`,1,`mb-1.5`,`flex`,`flex-wrap`,`gap-x-4`,`gap-y-1`,`text-[11px]`,`text-ink-400`],[`preserveAspectRatio`,`none`,`role`,`img`,1,`h-28`,`w-full`,3,`pointermove`,`pointerleave`],[`stroke-width`,`1`,`vector-effect`,`non-scaling-stroke`,1,`stroke-ink-700`],[1,`pointer-events-none`,`absolute`,`-top-1`,`z-10`,`-translate-x-1/2`,`-translate-y-full`,`rounded-md`,`border`,`border-ink-700`,`bg-panel`,`px-2`,`py-1`,`text-[11px]`,`whitespace-nowrap`,`text-ink-200`,`shadow-2xl`,3,`left`],[1,`mt-1`,`flex`,`items-baseline`,`justify-between`,`text-[11px]`,`text-ink-500`],[1,`tabular-nums`],[1,`flex`,`items-center`,`gap-1.5`],[`aria-hidden`,`true`,1,`h-0.5`,`w-3`,`rounded-full`],[3,`class`],[`fill`,`none`,`stroke-width`,`2`,`stroke-linecap`,`round`,`stroke-linejoin`,`round`,`vector-effect`,`non-scaling-stroke`],[`stroke-width`,`1`,`vector-effect`,`non-scaling-stroke`,1,`stroke-ink-600`],[`r`,`3`,`stroke-width`,`2`,3,`class`],[`r`,`3`,`stroke-width`,`2`],[1,`pointer-events-none`,`absolute`,`-top-1`,`z-10`,`-translate-x-1/2`,`-translate-y-full`,`rounded-md`,`border`,`border-ink-700`,`bg-panel`,`px-2`,`py-1`,`text-[11px]`,`whitespace-nowrap`,`text-ink-200`,`shadow-2xl`],[1,`text-ink-500`],[`aria-hidden`,`true`,1,`h-0.5`,`w-2.5`,`rounded-full`],[1,`text-ink-400`]],template:function(e,n){if(e&1&&(bg(0),qr(1,`figure`,0),SC(2,jn,3,0,`ul`,1),vr(),qr(3,`svg`,2),Xm(`pointermove`,function(r){return n.onMove(r)})(`pointerleave`,function(){return n.hovered.set(null)}),kc(4,qn,1,4,`:svg:line`,3,Sc),kc(6,Kn,2,0,null,null,rn),SC(8,Xn,3,4),Wr(),SC(9,Jn,5,3,`div`,4),Zd(),qr(10,`figcaption`,5)(11,`span`),fS(12),Wr(),qr(13,`span`,6),fS(14),Wr(),qr(15,`span`),fS(16),Wr()()()),e&2){let a,r,p=yS(n.plot());ec(2),kC(p.lines.length>1?2:-1),ec(),zr(`viewBox`,n.viewBox)(`aria-label`,n.summary()),ec(),Tc(n.gridlines),ec(2),Tc(p.lines),ec(2),kC((a=n.marker())?8:-1,a),ec(),kC((r=n.marker())?9:-1,r),ec(3),pg(n.t().ago(n.ageOf(p.spanMs))),ec(2),pg(n.t().max(n.format()(p.yMax))),ec(2),pg(n.t().now)}},encapsulation:2})}});function ri(i,t){if(i&1){let e=RC();Li$1(0,`li`)(1,`label`,14)(2,`input`,15),Jm(`change`,function(a){let r=Od(e).$implicit;return Ld(HC(2).toggle(r.choice,a.target.checked))}),Nc(),Li$1(3,`span`,16),fS(4),Li$1(5,`span`,17),fS(6),Nc()(),Li$1(7,`span`,18),fS(8),Nc()()()}if(i&2){let e=t.$implicit;ag(`pl-6`,e.choice===`allImages`),ec(),ag(`text-ink-100`,!e.disabled)(`text-ink-500`,e.disabled),ec(),Wm(`checked`,e.checked)(`disabled`,e.disabled),zr(`data-choice`,e.choice),ec(2),Ac(` `,e.label,` `),ec(2),pg(e.hint),ec(2),pg(e.count)}}function si(i,t){if(i&1){let e=RC();Gm(0,`div`,2),Li$1(1,`div`,3)(2,`div`,4)(3,`h2`,5),fS(4),Nc(),Li$1(5,`p`,6),fS(6),Nc(),Li$1(7,`ul`,7),kc(8,ri,9,12,`li`,8,oi),Nc(),Li$1(10,`div`,9)(11,`button`,10),Gm(12,`app-icon`,11),fS(13),Nc(),Li$1(14,`button`,12),Jm(`click`,function(){Od(e);return Ld(HC().accept())}),Gm(15,`app-icon`,13),fS(16),Nc()()()()}if(i&2){let e=HC();ec(4),pg(e.t().title),ec(2),Ac(` `,e.t().description,` `),ec(2),Tc(e.rows()),ec(4),Wm(`size`,14),ec(),Ac(` `,e.cancel(),` `),ec(),Wm(`disabled`,e.nothingSelected()),ec(),Wm(`size`,14),ec(),Ac(` `,e.t().confirm,` `)}}var oi;var dn;var qe;var cn=f(()=>{Kr();ho();sk();dk();Kr();oi=(i,t)=>t.choice;dn={containers:!0,networks:!0,volumes:!1,images:!0,allImages:!1,buildCache:!0},qe=class i{open=mj(!1);counts=jc.required();confirmed=pj();choices=wt(W({},dn));t=Lt(()=>ok().dashboard.pruneDialog);cancel=Lt(()=>ok().common.cancel);rows=Lt(()=>{let t=this.counts(),e=this.choices(),n=this.t(),a=(r,p,g,y,I=y===0)=>({choice:r,label:p,hint:g,count:y,disabled:I,checked:e[r]&&!I});return[a(`containers`,n.containers,n.containersHint,t.containers),a(`networks`,n.networks,n.networksHint,t.networks),a(`images`,n.images,n.imagesHint,t.danglingImages),a(`allImages`,n.allImages,n.allImagesHint,t.unusedImages,t.unusedImages===0||!e.images),a(`buildCache`,n.buildCache,n.buildCacheHint,t.buildCache),a(`volumes`,n.volumes,n.volumesHint,t.volumes)]});nothingSelected=Lt(()=>this.rows().every(t=>!t.checked));constructor(){rf(()=>{this.open()&&this.choices.set(W({},dn))})}toggle(t,e){this.choices.update(n=>G(W({},n),{[t]:e}))}accept(){let t=new Set(this.rows().filter(e=>e.checked).map(e=>e.choice));this.open.set(!1),this.confirmed.emit({containers:t.has(`containers`),networks:t.has(`networks`),volumes:t.has(`volumes`),images:t.has(`images`)||t.has(`allImages`),allImages:t.has(`allImages`),buildCache:t.has(`buildCache`)})}static ɵfac=function(e){return new(e||i)};static ɵcmp=wc({type:i,selectors:[[`app-prune-dialog`]],inputs:{open:[1,`open`],counts:[1,`counts`]},outputs:{open:`openChange`,confirmed:`confirmed`},decls:2,vars:1,consts:[[`rdxAlertDialogRoot`,``,3,`openChange`,`open`],[`rdxAlertDialogPortal`,``],[`rdxAlertDialogBackdrop`,``,1,`fixed`,`inset-0`,`z-40`,`bg-black/50`],[`rdxAlertDialogViewport`,``,`rdxDialogViewport`,``,1,`fixed`,`inset-0`,`z-50`,`grid`,`place-items-center`,`p-4`],[`rdxAlertDialogPopup`,``,1,`w-full`,`max-w-md`,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`p-5`,`shadow-2xl`],[`rdxAlertDialogTitle`,``,1,`text-[15px]`,`font-semibold`,`text-ink-100`],[`rdxAlertDialogDescription`,``,1,`mt-1.5`,`text-[13px]`,`text-ink-300`],[1,`mt-4`,`space-y-2.5`,`text-[13px]`],[3,`pl-6`],[1,`mt-5`,`flex`,`justify-end`,`gap-2`],[`type`,`button`,`rdxAlertDialogClose`,``,1,`mx-btn`,`mx-focus`],[`name`,`close`,3,`size`],[`type`,`button`,1,`mx-btn`,`mx-focus`,`border-danger`,`bg-danger`,`text-white`,`hover:border-danger`,`hover:bg-danger`,`hover:text-white`,`disabled:opacity-50`,3,`click`,`disabled`],[`name`,`broom`,3,`size`],[1,`flex`,`items-baseline`,`gap-2`],[`type`,`checkbox`,1,`mx-focus`,`accent-accent`,3,`change`,`checked`,`disabled`],[1,`min-w-0`,`flex-1`],[1,`block`,`text-[11px]`,`text-ink-500`],[1,`tabular-nums`,`text-ink-400`]],template:function(e,n){e&1&&(Li$1(0,`div`,0),vg(`openChange`,function(r){return vS(n.open,r)||(n.open=r),r}),_m(1,si,17,7,`ng-template`,1),Nc()),e&2&&hg(`open`,n.open)},dependencies:[Ni$1,Ai$1,Oi$1,ki$1,Ii$1,Pi$1,Mi$1,Ri$1,My],encapsulation:2})}});function ui(i,t){if(i&1&&(Li$1(0,`span`,3),fS(1),Nc()),i&2){let e=HC();ec(),pg(e.t().engine.connecting)}}function gi(i,t){if(i&1&&(Li$1(0,`span`,3),fS(1),Nc()),i&2){let e=t;ec(),mg(`Docker `,e.version,` · API `,e.apiVersion)}}function yi(i,t){if(i&1&&(Li$1(0,`span`,3),fS(1),Nc()),i&2){let e=t,n=HC(2);ec(),gg(``,e.name,` · `,e.cpus,` CPU · `,n.sizeOf(e.memoryBytes))}}function fi(i,t){i&1&&(Li$1(0,`span`,38),fS(1),Nc()),i&2&&(ec(),pg(t))}function hi(i,t){if(i&1&&(Li$1(0,`p`,41),fS(1),Li$1(2,`code`,42),fS(3,`instanceIdleTimeout=-1`),Nc(),fS(4),Li$1(5,`code`,42),fS(6,`[general]`),Nc(),fS(7),Li$1(8,`code`,42),fS(9,`%UserProfile%\\.wslconfig`),Nc(),fS(10),Nc()),i&2){let e=HC(),n=HC(2);ec(),Ac(` `,n.t().engine.idleHint.intro(e),` `),ec(3),Ac(` `,n.t().engine.idleHint.under,` `),ec(3),Ac(` `,n.t().engine.idleHint.in,` `),ec(3),Ac(` `,n.t().engine.idleHint.outro,` `)}}function xi(i,t){if(i&1){let e=RC();Li$1(0,`button`,39),Jm(`click`,function(){let a=Od(e);return Ld(HC(2).startWsl(a))}),Gm(1,`app-icon`,40),fS(2),Nc(),SC(3,hi,11,4,`p`,41)}if(i&2){let e=t,n=HC(2);Wm(`disabled`,n.wslStarting()),ec(),Wm(`size`,14),ec(),Ac(` `,n.wslStarting()?n.t().engine.startingDistro(e):n.t().engine.startDistro(e),` `),ec(),kC(n.wslStartedBefore()?3:-1)}}function vi(i,t){if(i&1){let e=RC();Li$1(0,`button`,43),Jm(`click`,function(){let a=Od(e);return Ld(HC(2).startWslDaemon(a))}),Gm(1,`app-icon`,40),fS(2),Nc(),Li$1(3,`p`,44),fS(4),Nc()}if(i&2){let e=t,n=HC(2);Wm(`disabled`,n.wslStarting()),ec(),Wm(`size`,14),ec(),Ac(` `,n.wslStarting()?n.t().engine.startingDaemon(e):n.t().engine.startDaemon(e),` `),ec(2),pg(n.t().engine.daemonHint(e))}}function bi(i,t){if(i&1&&(Li$1(0,`span`,34),Gm(1,`span`,35),Li$1(2,`span`,36),fS(3),Nc()(),SC(4,gi,2,2,`span`,3),Li$1(5,`span`,37),fS(6),Nc(),SC(7,yi,2,3,`span`,3),SC(8,fi,2,1,`span`,38),SC(9,xi,4,4),SC(10,vi,5,4)),i&2){let e,n,a,r,p,g=HC(),y=bS(3);ec(),ag(`bg-ok`,y.connected)(`bg-danger`,!y.connected),ec(),ag(`text-ink-100`,y.connected)(`text-danger`,!y.connected),ec(),Ac(` `,y.connected?g.t().engine.running:g.t().engine.unreachable,` `),ec(),kC((e=y.version)?4:-1,e),ec(2),pg(y.endpoint),ec(),kC((n=y.info)?7:-1,n),ec(),kC((a=y.problem)?8:-1,a),ec(),kC((r=!y.connected&&y.wslDistro)?9:-1,r),ec(),kC((p=!y.connected&&y.wslDaemonDistro)?10:-1,p)}}function _i(i,t){if(i&1&&(Li$1(0,`p`,45),Gm(1,`app-icon`,47),fS(2),Nc()),i&2){let e=HC(2);ec(),Wm(`size`,13),ec(),Ac(` `,e.t().attention.none,` `)}}function ki(i,t){if(i&1&&(Li$1(0,`a`,50),fS(1),Nc()),i&2){let e=HC().$implicit;Wm(`queryParams`,SS(2,li,e.image)),ec(),pg(e.name)}}function Ci(i,t){if(i&1&&(Li$1(0,`a`,51),fS(1),Nc()),i&2){let e=HC().$implicit;Wm(`routerLink`,SS(2,di,e.id)),ec(),pg(e.name)}}function wi(i,t){if(i&1&&(Li$1(0,`li`,48),Gm(1,`app-icon`,49),SC(2,ki,2,4,`a`,50)(3,Ci,2,4,`a`,51),Li$1(4,`span`,52),fS(5),Nc()()),i&2){let e=t.$implicit,n=HC(3);ec(),nS(e.kind===`update`?`text-accent`:`text-danger`),Wm(`name`,n.attentionIcon(e))(`size`,13),ec(),kC(e.kind===`update`?2:3),ec(3),pg(n.attentionText(e))}}function Si(i,t){if(i&1&&(Li$1(0,`ul`,46),kc(1,wi,6,6,`li`,48,ci),Nc()),i&2){let e=HC();ec(),Tc(e)}}function Pi(i,t){i&1&&SC(0,_i,3,2,`p`,45)(1,Si,3,0,`ul`,46),i&2&&kC(t.length===0?0:1)}function Ei(i,t){if(i&1&&(Li$1(0,`p`,24),fS(1),Nc()),i&2){let e=HC();ec(),pg(e.t().attention.loading)}}function Di(i,t){if(i&1&&(Li$1(0,`span`,27),fS(1),Nc()),i&2){let e=HC();ec(),pg(e.t().disk.total(e.sizeOf(t.totalBytes)))}}function Ii(i,t){if(i&1&&(Li$1(0,`span`,28),fS(1),Nc()),i&2){let e=HC();ec(),pg(e.t().disk.calculating)}}function Ti(i,t){if(i&1&&(Li$1(0,`span`,60),fS(1),Nc()),i&2){let e=HC().$implicit,n=HC(2);ec(),pg(n.t().disk.unused(n.unusedOf(e.total,e.active)))}}function Mi(i,t){if(i&1&&(Li$1(0,`div`,54)(1,`dt`,56),fS(2),Nc(),Li$1(3,`div`,57),Gm(4,`div`,58),Nc(),Li$1(5,`dd`,59),fS(6),SC(7,Ti,2,1,`span`,60),Nc()()),i&2){let e=t.$implicit,n=HC(2);ec(2),pg(n.labelOf(e.kind)),ec(2),sg(`min-width`,e.sizeBytes>0?3:0,`px`)(`width`,n.barWidth(e.sizeBytes),`%`),Wm(`title`,n.labelOf(e.kind)+`: `+n.sizeOf(e.sizeBytes)),ec(2),Ac(` `,n.sizeOf(e.sizeBytes),` `),ec(),kC(n.unusedOf(e.total,e.active)>0?7:-1)}}function Ni(i,t){if(i&1&&(Li$1(0,`dl`,53),kc(1,Mi,8,8,`div`,54,pi),Nc(),Li$1(3,`p`,55),fS(4),Li$1(5,`code`,42),fS(6,`docker system df`),Nc(),fS(7),Nc()),i&2){let e=HC();ec(),Tc(t.entries),ec(3),Ac(` `,e.t().disk.footnoteBefore,` `),ec(3),Ac(``,e.t().disk.footnoteAfter,` `)}}function Ai(i,t){if(i&1&&(Li$1(0,`p`,31),fS(1),Nc()),i&2){let e=HC();ec(),pg(e.t().stopped.none)}}function $i(i,t){if(i&1&&(Li$1(0,`li`,48),Gm(1,`app-icon`,49),Li$1(2,`span`,61),fS(3),Nc(),Li$1(4,`span`),fS(5),Nc(),Li$1(6,`span`,62),fS(7),Nc()()),i&2){let e=t.$implicit,n=HC(2);ec(),ag(`text-danger`,n.failed(e))(`text-ink-500`,!n.failed(e)),Wm(`name`,n.failed(e)?`warning`:`stop`)(`size`,13),ec(2),pg(e.name),ec(),ag(`text-danger`,n.failed(e))(`text-ink-400`,!n.failed(e)),ec(),Ac(` `,n.exitLabel(e),` `),ec(2),pg(n.t().stopped.created(n.ageOf(e.createdAt)))}}function Bi(i,t){if(i&1&&(Li$1(0,`ul`,32),kc(1,$i,8,13,`li`,48,mi),Nc()),i&2){let e=HC();ec(),Tc(e.recentlyStopped())}}var li;var di;var ci;var pi;var mi;var Ri;var Vi;var We;var pn=f(()=>{Kr();ra$1();o();v();h();h$1();P();f$2();an();pt();B();sk();dk();x();ln();cn();Kr();li=i=>({zoek:i}),di=i=>[`/containers`,i],ci=(i,t)=>t.kind+t.id,pi=(i,t)=>t.kind,mi=(i,t)=>t.id;Ri=6,Vi=/^[0-9a-f]{64}$/,We=class i$1{engine=I(d);containers=I(u$2);images=I(h$2);volumes=I(w);networks=I(y$1);system=I(ze);history=I(Fe);t=Lt(()=>ok().dashboard);status=this.engine.status;wslStarting=this.engine.wslStarting;wslProblem=this.engine.wslProblem;wslStartedBefore=this.engine.wslStartedBefore;diskUsage=this.system.diskUsage;diskLoading=this.system.loading;diskProblem=Lt(()=>this.engine.status()?.connected===!1?null:this.system.problem());pruneBusy=this.system.pruneBusy;pruneOpen=wt(!1);opruimen=jc(void 0);router=I(fe);route=I(Q);cpuHistory=this.history.cpu;memoryHistory=this.history.memory;networkSeries=Lt(()=>[{key:`rx`,label:this.t().usage.received,points:this.history.received(),color:`series-1`},{key:`tx`,label:this.t().usage.sent,points:this.history.sent(),color:`series-2`}]);formatPercent=t=>`${t.toFixed(1)}%`;formatMemory=t=>d$2(t);formatRate=t=>`${d$2(t)}/s`;containerCount=Lt(()=>this.containers.containers().length);runningCount=Lt(()=>this.containers.runningIds().length);imageCount=Lt(()=>new Set(this.images.images().map(t=>t.id)).size);volumeCount=Lt(()=>this.volumes.volumes().length);networkCount=Lt(()=>this.networks.networks().length);totals=Lt(()=>{let t=0,e=0,n=0,a=0;for(let r of this.containers.runningIds()){let p=this.containers.stats().get(r);t+=p?.cpuPercent??0,e+=p?.memoryBytes??0,n+=p?.rxBytesPerSec??0,a+=p?.txBytesPerSec??0}return{cpu:t,memory:e,received:n,sent:a}});pruneCounts=Lt(()=>{let t=this.images.images().filter(n=>n.inUseBy===0),e=this.system.diskUsage()?.entries.find(n=>n.kind===`buildCache`);return{containers:this.containers.containers().filter(n=>n.state===`exited`||n.state===`dead`||n.state===`created`).length,networks:this.networks.networks().filter(n=>!n.builtIn&&n.connected===0).length,volumes:this.volumes.volumes().filter(n=>n.inUseBy===0&&Vi.test(n.name)).length,danglingImages:new Set(t.filter(n=>n.dangling).map(n=>n.id)).size,unusedImages:new Set(t.map(n=>n.id)).size,buildCache:e===void 0?0:Math.max(0,e.total-e.active)}});recentlyStopped=Lt(()=>this.containers.containers().filter(t=>t.state===`exited`||t.state===`dead`).slice().sort((t,e)=>e.createdAt-t.createdAt).slice(0,Ri));attention=wt(null);attentionRound=0;constructor(){rf(()=>{this.opruimen()!==void 0&&Tg(()=>{this.pruneOpen.set(!0),i(this.router,this.route,`opruimen`)})}),rf(()=>{this.containers.containers(),Tg(()=>{this.loadAttention()})}),rf(()=>this.containers.watchStats(this.containers.runningIds())),I(ve).onDestroy(()=>this.containers.watchStats([])),this.engine.refresh(),this.loadLists()}async startWsl(t){await this.engine.startWsl(t)&&this.loadLists()}async startWslDaemon(t){await this.engine.startWslDaemon(t)&&this.loadLists()}loadLists(){this.containers.refresh(),this.images.refresh(),this.volumes.refresh(),this.networks.refresh(),this.system.refresh()}prune(t){this.system.prune(t)}labelOf(t){return this.t().disk.labels[t]}sizeOf(t){return d$2(t)}ageOf(t){return N(t)}barWidth(t){return Math.max(0,t/this.system.largestBytes()*100)}unusedOf(t,e){return Math.max(0,t-e)}attentionIcon(t){switch(t.kind){case`network`:return`networks`;case`unhealthy`:return`pulse`;case`restarting`:return`refresh`;case`update`:return`download`;default:return`warning`}}somethingBroken=Lt(()=>(this.attention()??[]).some(t=>t.kind!==`update`));attentionText(t){let e=this.t().attention;switch(t.kind){case`crashLoop`:return e.crashLoop(t.crashes);case`restarting`:return e.restarting;case`unhealthy`:return e.unhealthy;case`network`:return e.network(t.network);case`ports`:return e.ports(t.ports.map(n=>String(n.hostPort??n.containerPort)).join(`, `));case`update`:return e.update(t.image)}}async loadAttention(){let t=++this.attentionRound;try{let e=await window.electron.containers.attention();t===this.attentionRound&&this.attention.set(e)}catch{t===this.attentionRound&&this.attention.set([])}}exitLabel(t){return t.exitCode===null?t.status:t.exitCode===0?this.t().stopped.clean:this.t().stopped.failed(t.exitCode)}failed(t){return t.exitCode!==null&&t.exitCode!==0}static ɵfac=function(e){return new(e||i$1)};static ɵcmp=wc({type:i$1,selectors:[[`app-dashboard-page`]],inputs:{opruimen:[1,`opruimen`]},decls:86,vars:51,consts:[[1,`h-full`,`overflow-y-auto`,`px-6`,`pt-5`,`pb-8`],[1,`text-xl`,`font-semibold`,`tracking-tight`,`text-ink-100`],[1,`mt-4`,`flex`,`flex-wrap`,`items-center`,`gap-x-8`,`gap-y-3`,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`px-4`,`py-3`],[1,`text-[13px]`,`text-ink-400`],[3,`problem`],[1,`mt-4`,`grid`,`gap-3`,`lg:grid-cols-2`],[1,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`px-4`,`py-3`],[1,`text-[12px]`,`text-ink-400`],[1,`mt-1`,`text-2xl`,`font-semibold`,`tabular-nums`,`text-ink-100`],[1,`text-base`,`font-normal`,`text-ink-400`],[`data-testid`,`cpu-chart`,1,`mt-2`],[3,`points`,`format`,`label`,`floor`],[`data-testid`,`memory-chart`,1,`mt-2`],[1,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`px-4`,`py-3`,`lg:col-span-2`],[1,`mt-1`,`flex`,`flex-wrap`,`items-baseline`,`gap-x-6`,`text-2xl`,`font-semibold`,`tabular-nums`,`text-ink-100`],[`data-testid`,`network-received`],[`data-testid`,`network-sent`],[`data-testid`,`network-chart`,1,`mt-2`],[3,`series`,`format`,`label`,`floor`],[1,`mt-1`,`text-[11px]`,`text-ink-500`],[1,`mt-3`,`grid`,`gap-3`,`sm:grid-cols-2`,`lg:grid-cols-3`],[1,`text-[11px]`,`text-ink-500`],[`data-testid`,`attention`,1,`mt-4`,`rounded-lg`,`border`,`bg-ink-850`,`px-4`,`py-3`],[1,`text-[13px]`,`font-medium`,`text-ink-200`],[1,`mt-2`,`text-[13px]`,`text-ink-400`],[1,`mt-4`,`grid`,`gap-4`,`lg:grid-cols-2`],[1,`flex`,`items-baseline`,`gap-3`],[1,`text-[13px]`,`tabular-nums`,`text-ink-400`],[1,`text-[12px]`,`text-ink-500`],[`type`,`button`,`data-testid`,`open-prune`,1,`mx-btn`,`mx-focus`,`ml-auto`,3,`click`,`disabled`],[`name`,`broom`,3,`size`],[1,`mt-3`,`text-[13px]`,`text-ink-400`],[1,`mt-3`,`space-y-2`],[3,`openChange`,`confirmed`,`open`,`counts`],[1,`flex`,`items-center`,`gap-2`],[`aria-hidden`,`true`,1,`size-2.5`,`rounded-full`],[1,`text-[14px]`,`font-medium`],[1,`font-mono`,`text-[12px]`,`text-ink-500`],[1,`text-[13px]`,`text-danger`],[`type`,`button`,`data-testid`,`start-wsl`,1,`mx-btn`,`mx-focus`,3,`click`,`disabled`],[`name`,`play`,3,`size`],[`data-testid`,`wsl-idle-hint`,1,`basis-full`,`text-[12px]`,`text-ink-400`],[1,`font-mono`],[`type`,`button`,`data-testid`,`start-wsl-daemon`,1,`mx-btn`,`mx-focus`,3,`click`,`disabled`],[`data-testid`,`wsl-daemon-hint`,1,`basis-full`,`text-[12px]`,`text-ink-400`],[1,`mt-2`,`flex`,`items-center`,`gap-2`,`text-[13px]`,`text-ink-400`],[1,`mt-2`,`space-y-1.5`],[`name`,`check`,1,`text-ok`,3,`size`],[1,`flex`,`flex-wrap`,`items-center`,`gap-x-3`,`gap-y-1`,`text-[13px]`],[3,`name`,`size`],[`routerLink`,`/images`,1,`mx-focus`,`min-w-0`,`truncate`,`text-ink-100`,`hover:text-accent`,`hover:underline`,3,`queryParams`],[1,`mx-focus`,`min-w-0`,`truncate`,`text-ink-100`,`hover:text-accent`,`hover:underline`,3,`routerLink`],[1,`text-ink-400`],[1,`mt-3`,`space-y-2.5`],[1,`grid`,`grid-cols-[7.5rem_1fr_auto]`,`items-center`,`gap-3`],[1,`mt-3`,`text-[11px]`,`text-ink-500`],[1,`truncate`,`text-[13px]`,`text-ink-300`],[1,`h-1.5`,`w-full`,`rounded-full`,`bg-ink-800`],[1,`h-full`,`rounded-full`,`bg-accent`,3,`title`],[1,`text-right`,`text-[13px]`,`tabular-nums`,`text-ink-200`],[1,`ml-2`,`text-[11px]`,`text-warn`],[1,`min-w-0`,`truncate`,`text-ink-100`],[1,`ml-auto`,`shrink-0`,`text-ink-500`]],template:function(e,n){if(e&1){let a=RC();Li$1(0,`section`,0)(1,`h1`,1),fS(2),Nc(),bg(3),Li$1(4,`div`,2),SC(5,ui,2,1,`span`,3)(6,bi,11,15),Nc(),Gm(7,`app-page-messages`,4),Li$1(8,`div`,5)(9,`div`,6)(10,`div`,7),fS(11),Nc(),Li$1(12,`div`,8),fS(13),Li$1(14,`span`,9),fS(15,`%`),Nc()(),Li$1(16,`div`,10),Gm(17,`app-usage-chart`,11),Nc()(),Li$1(18,`div`,6)(19,`div`,7),fS(20),Nc(),Li$1(21,`div`,8),fS(22),Nc(),Li$1(23,`div`,12),Gm(24,`app-usage-chart`,11),Nc()(),Li$1(25,`div`,13)(26,`div`,7),fS(27),Nc(),Li$1(28,`div`,14)(29,`span`,15)(30,`span`,9),fS(31,`↓`),Nc(),fS(32),Nc(),Li$1(33,`span`,16)(34,`span`,9),fS(35,`↑`),Nc(),fS(36),Nc()(),Li$1(37,`div`,17),Gm(38,`app-usage-chart`,18),Nc(),Li$1(39,`p`,19),fS(40),Nc()()(),Li$1(41,`div`,20)(42,`div`,6)(43,`div`,7),fS(44),Nc(),Li$1(45,`div`,8),fS(46),Li$1(47,`span`,9),fS(48),Nc()(),Li$1(49,`div`,21),fS(50),Nc()(),Li$1(51,`div`,6)(52,`div`,7),fS(53),Nc(),Li$1(54,`div`,8),fS(55),Nc()(),Li$1(56,`div`,6)(57,`div`,7),fS(58),Nc(),Li$1(59,`div`,8),fS(60),Li$1(61,`span`,9),fS(62),Nc()()()(),Li$1(63,`div`,22)(64,`h2`,23),fS(65),Nc(),SC(66,Pi,2,1)(67,Ei,2,1,`p`,24),Nc(),Li$1(68,`div`,25)(69,`div`,6)(70,`div`,26)(71,`h2`,23),fS(72),Nc(),SC(73,Di,2,1,`span`,27),SC(74,Ii,2,1,`span`,28),Li$1(75,`button`,29),Jm(`click`,function(){return n.pruneOpen.set(!0)}),Gm(76,`app-icon`,30),fS(77),Nc()(),Gm(78,`app-page-messages`,4),SC(79,Ni,8,2),Nc(),Li$1(80,`div`,6)(81,`h2`,23),fS(82),Nc(),SC(83,Ai,2,1,`p`,31)(84,Bi,3,0,`ul`,32),Nc()()(),Li$1(85,`app-prune-dialog`,33),vg(`openChange`,function(p){return Od(a),vS(n.pruneOpen,p)||(n.pruneOpen=p),Ld(p)}),Jm(`confirmed`,function(p){return n.prune(p)}),Nc()}if(e&2){let a,r,p;ec(2),pg(n.t().title),ec();let g=yS(n.status());ec(2),kC(g===null?5:6),ec(2),Wm(`problem`,n.wslProblem()),ec(4),pg(n.t().usage.cpu),ec(2),Ac(` `,n.totals().cpu.toFixed(2)),ec(4),Wm(`points`,n.cpuHistory())(`format`,n.formatPercent)(`label`,n.t().usage.cpu)(`floor`,10),ec(3),pg(n.t().usage.memory),ec(2),pg(n.sizeOf(n.totals().memory)),ec(2),Wm(`points`,n.memoryHistory())(`format`,n.formatMemory)(`label`,n.t().usage.memoryChart)(`floor`,134217728),ec(3),pg(n.t().usage.network),ec(3),zr(`aria-label`,n.t().usage.receivedAria),ec(2),Ac(` `,n.formatRate(n.totals().received),` `),ec(2),zr(`aria-label`,n.t().usage.sentAria),ec(2),Ac(` `,n.formatRate(n.totals().sent),` `),ec(2),Wm(`series`,n.networkSeries())(`format`,n.formatRate)(`label`,n.t().usage.networkChart)(`floor`,10240),ec(2),pg(n.t().usage.hostNote),ec(4),pg(n.t().counts.containers),ec(2),Ac(` `,n.runningCount()),ec(2),Ac(` / `,n.containerCount()),ec(2),pg(n.t().counts.runningOfTotal),ec(3),pg(n.t().counts.images),ec(2),pg(n.imageCount()),ec(3),pg(n.t().counts.volumesNetworks),ec(2),Ac(` `,n.volumeCount()),ec(2),Ac(` · `,n.networkCount()),ec(),nS(n.somethingBroken()?`border-danger/40`:`border-ink-700`),ec(2),pg(n.t().attention.title),ec(),kC((a=n.attention())?66:67,a),ec(6),pg(n.t().disk.title),ec(),kC((r=n.diskUsage())?73:-1,r),ec(),kC(n.diskLoading()?74:-1),ec(),Wm(`disabled`,n.pruneBusy()),ec(),Wm(`size`,14),ec(),Ac(` `,n.pruneBusy()?n.t().disk.pruning:n.t().disk.prune,` `),ec(),Wm(`problem`,n.diskProblem()),ec(),kC((p=n.diskUsage())?79:-1,p),ec(3),pg(n.t().stopped.title),ec(),kC(n.recentlyStopped().length===0?83:84),ec(2),hg(`open`,n.pruneOpen),Wm(`counts`,n.pruneCounts())}},dependencies:[My,u$3,qe,Yt,je],encapsulation:2})}});var mn;var un=f(()=>{sk();pn();mn=[{path:``,pathMatch:`full`,redirectTo:`dashboard`},{path:`dashboard`,component:We,title:()=>ok().shell.nav.dashboard},{path:`containers`,loadComponent:()=>import(`./chunk-DUvIPvPb.js`).then(i=>i.ContainersPage),title:()=>ok().shell.nav.containers},{path:`containers/:id`,loadComponent:()=>import(`./chunk-CUr0g3Yg.js`).then(i=>i.ContainerDetail),title:()=>ok().shell.routes.container},{path:`images`,loadComponent:()=>import(`./chunk-C_xeoQ-e.js`).then(i=>i.ImagesPage),title:()=>ok().shell.nav.images},{path:`volumes`,loadComponent:()=>import(`./chunk-BEoyPb75.js`).then(i=>i.VolumesPage),title:()=>ok().shell.nav.volumes},{path:`networks`,loadComponent:()=>import(`./chunk-_ngdOVTJ.js`).then(i=>i.NetworksPage),title:()=>ok().shell.nav.networks},{path:`compose`,loadComponent:()=>import(`./chunk-BRMUzx40.js`).then(i=>i.ComposePage),title:()=>ok().shell.nav.compose},{path:`logs`,loadComponent:()=>import(`./chunk-ibW6UTMN.js`).then(i=>i.LogsPage),title:()=>ok().shell.nav.logs},{path:`terminal`,loadComponent:()=>import(`./chunk-Bdz1JYTl.js`).then(i=>i.TerminalPage),title:()=>ok().shell.nav.terminal},{path:`settings`,loadComponent:()=>import(`./chunk-Fctw84Xo.js`).then(i=>i.SettingsPage),title:()=>ok().shell.nav.settings},{path:`**`,redirectTo:`dashboard`}]});var gn;var yn=f(()=>{Kr();ra$1();un();sk();gn={providers:[ow(),PE(()=>I(Ny).load()),Ks(mn,na$1())]}});var ke;var mt=f(()=>{Kr();Kr();ke=class i{open=wt(!1);static ɵfac=function(e){return new(e||i)};static ɵprov=X({token:i,factory:i.ɵfac,providedIn:`root`})}});var Ge;var fn=f(()=>{Kr();u$1();sk();dk();mt();Kr();Ge=class i{theme=I(a);palette=I(ke);t=Lt(()=>ok().shell.header);quit(){window.electron.app.quit()}isDark(){return this.theme.theme()===`dark`}static ɵfac=function(e){return new(e||i)};static ɵcmp=wc({type:i,selectors:[[`app-header`]],decls:12,vars:10,consts:[[1,`flex`,`h-11`,`items-center`,`gap-3`,`border-b`,`border-ink-700`,`bg-panel`,`px-3`],[1,`text-[13px]`,`font-semibold`,`tracking-tight`,`text-ink-100`],[1,`text-accent`],[`type`,`button`,`data-testid`,`open-palette`,1,`mx-btn`,`mx-focus`,`ml-auto`,`text-ink-400`,3,`click`,`title`],[`name`,`search`,3,`size`],[`type`,`button`,1,`mx-btn`,`mx-focus`,3,`click`,`title`],[3,`name`,`size`],[`type`,`button`,`data-testid`,`quit-app`,1,`mx-btn`,`mx-focus`,`hover:text-danger`,3,`click`,`title`],[`name`,`power`,3,`size`]],template:function(e,n){e&1&&(Li$1(0,`header`,0)(1,`span`,1),fS(2,`Docker `),Li$1(3,`span`,2),fS(4,`Client`),Nc(),fS(5,` MX`),Nc(),Li$1(6,`button`,3),Jm(`click`,function(){return n.palette.open.set(!0)}),Gm(7,`app-icon`,4),Nc(),Li$1(8,`button`,5),Jm(`click`,function(){return n.theme.toggle()}),Gm(9,`app-icon`,6),Nc(),Li$1(10,`button`,7),Jm(`click`,function(){return n.quit()}),Gm(11,`app-icon`,8),Nc()()),e&2&&(ec(6),Wm(`title`,n.t().search),zr(`aria-label`,n.t().search),ec(),Wm(`size`,14),ec(),Wm(`title`,n.isDark()?n.t().lightTheme:n.t().darkTheme),zr(`aria-label`,n.isDark()?n.t().lightTheme:n.t().darkTheme),ec(),Wm(`name`,n.isDark()?`sun`:`moon`)(`size`,15),ec(),Wm(`title`,n.t().quit),zr(`aria-label`,n.t().quit),ec(),Wm(`size`,15))},dependencies:[My],encapsulation:2})}});function gt(i){let{nav:t}=ok().shell,e=ok().shell.palette,n=Li.map(([l,w])=>({id:`page:${w}`,label:t[l],detail:e.groups.page,group:`page`,target:{kind:`route`,route:w}})),a=i.containers.flatMap(l=>{let w=l.image,H=[...new Set(l.ports.flatMap(O=>O.hostPort===null?[]:[O.hostPort]))].sort((O,nt)=>O-nt),V={id:`container:${l.id}`,label:l.name,detail:w,keywords:[l.status,l.composeProject??``,...H.map(O=>`:${String(O)}`)].join(` `),group:`container`,target:{kind:`route`,route:`/containers/${l.id}`}},k=O=>({id:`container:${l.id}:${O}`,label:e[O](l.name),detail:w,group:`container`,target:{kind:`container`,id:l.id,action:O},parent:V.id}),B={id:`container:${l.id}:diagnose`,label:e.diagnose(l.name),detail:w,group:`container`,target:{kind:`route`,route:`/containers/${l.id}`,diagnose:!0},parent:V.id},Z=(O,nt)=>({id:`container:${l.id}:tab:${O}`,label:nt,detail:w,group:`container`,target:{kind:`dialog`,route:`/containers/${l.id}`,param:`tabblad`,value:O},parent:V.id}),j=l.composeProject!==null&&l.composeService!==null&&l.composeWorkingDir!==null,q=[Z(`events`,e.events(l.name)),...l.state===`running`?[Z(`terminal`,e.terminal(l.name))]:[],{id:`container:${l.id}:memory`,label:e.memory(l.name),detail:w,group:`container`,target:{kind:`dialog`,route:`/containers/${l.id}`,param:`geheugen`,value:`1`},parent:V.id},...j?[{id:`container:${l.id}:recreate`,label:e.recreate(l.name),detail:w,group:`container`,target:{kind:`recreate`,project:l.composeProject??``,service:l.composeService??``},parent:V.id}]:[],{id:`container:${l.id}:copy`,label:e.copyId(l.name),detail:w,group:`container`,target:{kind:`copy`,text:l.id},parent:V.id}];return l.state===`running`?[V,k(`restart`),k(`stop`),B,...q]:[V,k(`start`),B,...q]}),r=i.images.filter(l=>!l.dangling).flatMap(l=>{let w={id:`image:${l.reference}`,label:l.reference,detail:`Image`,keywords:l.inUseBy>0?e.imageInUse(l.inUseBy):e.imageUnused,group:`image`,target:{kind:`route`,route:`/images`,search:l.reference}},H=(V,k,B)=>({id:`image:${l.reference}:${k}`,label:B,detail:`Image`,group:`image`,target:{kind:`dialog`,route:`/images`,param:V,value:l.reference},parent:w.id});return[w,H(`starten`,`run`,e.imageRun(l.reference)),H(`lagen`,`layers`,e.imageLayers(l.reference)),H(`ophalen`,`pull`,e.imagePull(l.reference)),H(`verwijder`,`remove`,e.imageRemove(l.reference))]}),p=i.composeProjects.filter(l=>l.workingDir!==null).flatMap(l=>{let w=`Compose`,H={id:`compose:${l.name}`,label:l.name,detail:w,group:`compose`,target:{kind:`route`,route:`/compose`}},V=H.id;return[H,{id:`compose:${l.name}:up`,label:e.composeUp(l.name),detail:w,group:`compose`,target:{kind:`compose`,project:l.name},parent:V},{id:`compose:${l.name}:file`,label:e.composeFile(l.name),detail:w,group:`compose`,target:{kind:`dialog`,route:`/compose`,param:`bestand`,value:l.name},parent:V},{id:`compose:${l.name}:down`,label:e.composeDown(l.name),detail:w,group:`compose`,target:{kind:`dialog`,route:`/compose`,param:`afbreken`,value:l.name},parent:V},{id:`compose:${l.name}:logs`,label:e.composeLogs(l.name),detail:w,group:`compose`,target:{kind:`dialog`,route:`/logs`,param:`volg`,value:l.name},parent:V}]}),g=i.volumes.flatMap(l=>{let w=l.composeProject===null?`Volume`:`Volume \xB7 ${l.composeProject}`;return[{id:`volume:${l.name}`,label:l.name,detail:w,group:`volume`,target:{kind:`route`,route:`/volumes`,search:l.name}},{id:`volume:${l.name}:browse`,label:e.volumeBrowse(l.name),detail:w,group:`volume`,target:{kind:`dialog`,route:`/volumes`,param:`inkijk`,value:l.name},secondary:!0,parent:`volume:${l.name}`},{id:`volume:${l.name}:backup`,label:e.volumeBackup(l.name),detail:w,group:`volume`,target:{kind:`dialog`,route:`/volumes`,param:`bewaar`,value:l.name},secondary:!0,parent:`volume:${l.name}`}]}),y=i.networks.flatMap(l=>{let w=e.network(l.driver);return[{id:`network:${l.id}`,label:l.name,detail:w,group:`network`,target:{kind:`route`,route:`/networks`,search:l.name}},{id:`network:${l.id}:members`,label:e.networkMembers(l.name),detail:w,group:`network`,target:{kind:`dialog`,route:`/networks`,param:`leden`,value:l.name},secondary:!0,parent:`network:${l.id}`}]}),I=[{id:`action:prune`,label:e.prune,detail:e.groups.action,group:`action`,target:{kind:`dialog`,route:`/dashboard`,param:`opruimen`,value:`1`}},{id:`action:check-updates`,label:e.checkUpdates,detail:e.groups.action,group:`action`,target:{kind:`dialog`,route:`/images`,param:`controleren`,value:`1`}},{id:`action:theme`,label:e.theme,detail:e.groups.action,group:`action`,target:{kind:`theme`}},...(i.contexts??[]).filter(l=>!l.active).map(l=>({id:`action:context:${l.name}`,label:e.useContext(l.name),detail:`Context`,group:`action`,target:{kind:`context`,name:l.name}}))];return[...n,...a,...p,...r,...g,...y,...I]}function zi(i,t){let e=t.toLowerCase().split(/\s+/).filter(p=>p!==``),n=i.label.toLowerCase(),a=`${n} ${i.detail.toLowerCase()} ${(i.keywords??``).toLowerCase()}`;if(e.some(p=>!a.includes(p)))return e.length===1&&vn(n,e[0]??``)!==null?4:null;let r=e[0]??``;return n.startsWith(r)?0:new RegExp(`[\\s_./:-]${r.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}`).test(n)?1:n.includes(r)?2:3}function hn(i,t,e=50){if(t.trim()===``)return i.slice(0,e);let n=i.map(a=>({entry:a,score:zi(a,t.trim())})).filter(a=>a.score!==null);return n.sort((a,r)=>a.score-r.score||ut.indexOf(a.entry.group)-ut.indexOf(r.entry.group)||+(a.entry.secondary===!0||a.entry.parent!==void 0)-+(r.entry.secondary===!0||r.entry.parent!==void 0)||a.entry.label.localeCompare(r.entry.label)),n.slice(0,e).map(a=>a.entry)}function vn(i,t){let e=[],n=0;for(let a of t){let r=i.indexOf(a,n);if(r===-1)return null;e.push(r),n=r+1}return e}function Ui(i,t){let e=i.toLowerCase(),n=t.toLowerCase().split(/\s+/).filter(r=>r!==``),a=new Set;for(let r of n){let p=e.indexOf(r);if(p!==-1)for(let g=p;g<p+r.length;g++)a.add(g);else n.length===1&&vn(e,r)?.forEach(g=>a.add(g))}return[...a].sort((r,p)=>r-p)}function Oi(i){if(i.startsWith(`>`))return{scope:`actions`,rest:i.slice(1).trim()};let t=/^([a-z]) (.*)$/s.exec(i),e=t===null?void 0:Fi[t[1]??``];return e===void 0||t===null?{scope:null,rest:i}:{scope:e,rest:t[2]?.trim()??``}}function bn(i,t,e=50){let n=ok().shell.palette,a=new Set(i.flatMap(k=>k.parent===void 0?[]:[k.parent])),r=(k,B,Z)=>({entry:k,header:Z,matches:B===``?[]:Ui(k.label,B),hasActions:a.has(k.id)});if(t.parent!==null){let k=i.find(q=>q.id===t.parent),B=i.filter(q=>q.parent===t.parent),Z=k===void 0?B:[k,...B];return(t.query.trim()===``?Z:hn(Z,t.query)).map((q,O)=>G(W({},r(q,t.query,O===0?k?.label:void 0)),{hasActions:!1}))}let{scope:p,rest:g}=Oi(t.query),y=i.filter(k=>p===null?!0:p===`actions`?k.parent!==void 0||k.group===`action`:k.group===p&&k.parent===void 0);if(g!==``||p!==null){let k=j=>+(j.group!==`action`),B=[...y].sort((j,q)=>k(j)-k(q)||j.label.localeCompare(q.label));return(g===``?B.slice(0,e):hn(y,g,e)).map(j=>r(j,g))}let I=i.filter(k=>k.parent===void 0),l=new Map(i.map(k=>[k.id,k])),w=new Set,H=[],V=(k,B)=>{B.filter(j=>!w.has(j.id)).forEach((j,q)=>{w.add(j.id),H.push(r(j,``,q===0?k:void 0))})};V(n.recent,t.recent.flatMap(k=>l.get(k)??[]).slice(0,10)),V(n.attention,t.attention.flatMap(k=>l.get(`container:${k}`)??[]));for(let k of[...ut.filter(B=>B!==`page`),`page`]){let B=I.filter(Z=>Z.group===k);B.length>0&&V(`${n.sections[k]} \xB7 ${String(B.length)}`,k===`page`?B:B.slice(0,Hi))}return H}function Ke(i){let t=ok().shell.palette,e=i.filter(a=>a.problem===null),n=i.flatMap(a=>{switch(a.problem){case`unknown`:return[t.problems.unknown(a.name)];case`ambiguous`:return[t.problems.ambiguous(a.name,a.candidates.length)];case`state`:return[t.problems.state(a.container?.name??a.name)];case`notCompose`:return[t.problems.notCompose(a.container?.name??a.name)];default:return[]}});return{id:`command`,label:e.length===0?t.commandNothing:e.map(a=>`${t.verbs[a.verb]} ${a.container?.name??a.name}`).join(` · `),detail:n.length===0?t.commandHint:n.join(` · `),group:`container`,target:{kind:`batch`,steps:i}}}function _n(i,t){let e=new Set(t.types),n=t.nameContains?.toLowerCase()??null,a=t.project?.toLowerCase()??null,r=l=>(t.minSizeMb===null||l!==null&&l>=t.minSizeMb*xn)&&(t.maxSizeMb===null||l!==null&&l<=t.maxSizeMb*xn),p=l=>n===null||l.toLowerCase().includes(n),g=l=>a===null||l?.toLowerCase()===a,y=l=>e.size===0||e.has(l),I=new Set;for(let l of i.containers){let w=l.state===`running`,H=t.state===`any`||t.state===`running`===w;y(`container`)&&H&&p(l.name)&&g(l.composeProject)&&t.minSizeMb===null&&t.maxSizeMb===null&&I.add(`container:${l.id}`)}for(let l of i.images)y(`image`)&&!l.dangling&&p(l.reference)&&a===null&&r(l.sizeBytes)&&(!t.unusedOnly||l.inUseBy===0)&&I.add(`image:${l.reference}`);for(let l of i.volumes)y(`volume`)&&p(l.name)&&g(l.composeProject)&&r(l.sizeBytes)&&(!t.unusedOnly||l.inUseBy===0)&&I.add(`volume:${l.name}`);for(let l of i.networks)y(`network`)&&p(l.name)&&a===null&&t.minSizeMb===null&&t.maxSizeMb===null&&I.add(`network:${l.id}`);for(let l of i.composeProjects)y(`compose`)&&p(l.name)&&g(l.name)&&I.add(`compose:${l.name}`);return gt(i).filter(l=>I.has(l.id))}var Li;var ut;var Fi;var Hi;var xn;var kn=f(()=>{sk();Li=[[`dashboard`,`/dashboard`],[`containers`,`/containers`],[`images`,`/images`],[`volumes`,`/volumes`],[`networks`,`/networks`],[`compose`,`/compose`],[`logs`,`/logs`],[`terminal`,`/terminal`],[`settings`,`/settings`]],ut=[`page`,`container`,`compose`,`image`,`volume`,`network`,`action`];Fi={c:`container`,i:`image`,v:`volume`,n:`network`,p:`compose`};Hi=5;xn=1024*1024});function Wi(i,t){switch(i){case`start`:return t.state!==`running`&&t.state!==`paused`;case`stop`:case`restart`:case`pause`:return t.state===`running`;case`unpause`:return t.state===`paused`;case`recreate`:return!0}}function Gi(i,t){let e=i.toLowerCase(),n=t.filter(p=>p.name.toLowerCase()===e),a=t.filter(p=>p.composeService?.toLowerCase()===e),r=t.filter(p=>p.name.toLowerCase().includes(e));for(let p of[n,a,r]){if(p.length===1)return{container:p[0]??null,candidates:[]};if(p.length>1)return{container:null,candidates:p.map(g=>g.name)}}return{container:null,candidates:[]}}function Qe(i,t,e){let{container:n,candidates:a}=Gi(t,e);return{verb:i,name:t,container:n,problem:n===null?a.length>0?`ambiguous`:`unknown`:i===`recreate`&&(n.composeProject===null||n.composeService===null)?`notCompose`:Wi(i,n)?null:`state`,candidates:a}}function Cn(i){let t=i.toLowerCase();for(let[e,n]of ji)if(t===e||t.startsWith(`${e} `))return{verb:n,rest:i.slice(e.length).trim()};return null}function wn(i,t){let e=i.trim(),n=Cn(e);if(n===null)return null;let a=[],r=n.verb;for(let p of e.split(qi)){let g=Cn(p);g!==null&&(r=g.verb);let y=(g===null?p:g.rest).split(/\s+/).filter(I=>I!==``);for(let I of y)a.push(Qe(r,I,t))}return a.length===0?null:a}var ji;var qi;var Sn=f(()=>{ji=[[`opnieuw opbouwen`,`recreate`],[`neu aufbauen`,`recreate`],[`herbouw`,`recreate`],[`rebuild`,`recreate`],[`recreate`,`recreate`],[`reconstruire`,`recreate`],[`reconstruir`,`recreate`],[`herstarten`,`restart`],[`herstart`,`restart`],[`restart`,`restart`],[`neustarten`,`restart`],[`neu starten`,`restart`],[`redémarrer`,`restart`],[`redemarrer`,`restart`],[`reiniciar`,`restart`],[`stoppen`,`stop`],[`stop`,`stop`],[`stoppe`,`stop`],[`arrêter`,`stop`],[`arreter`,`stop`],[`arrête`,`stop`],[`detener`,`stop`],[`parar`,`stop`],[`starten`,`start`],[`start`,`start`],[`démarrer`,`start`],[`demarrer`,`start`],[`iniciar`,`start`],[`arrancar`,`start`],[`pauzeren`,`pause`],[`pauzeer`,`pause`],[`pause`,`pause`],[`pausieren`,`pause`],[`pausar`,`pause`],[`hervatten`,`unpause`],[`hervat`,`unpause`],[`unpause`,`unpause`],[`resume`,`unpause`],[`fortsetzen`,`unpause`],[`reprendre`,`unpause`],[`reanudar`,`unpause`]].slice().sort((i,t)=>t[0].length-i[0].length),qi=/\s*(?:[,;]|\s(?:en|and|und|et|y)\s)\s*/i});function Qi(i,t){if(i&1){let e=RC();Li$1(0,`button`,13),Jm(`click`,function(){Od(e);return Ld(HC(2).leave())}),fS(1),Gm(2,`app-icon`,14),Nc()}i&2&&(ec(),Ac(` `,t,` `),ec(),Wm(`size`,12))}function Xi(i,t){if(i&1&&(Li$1(0,`p`,15),fS(1),Nc()),i&2){let e=HC(3);ec(),pg(e.t().thinking)}}function Zi(i,t){i&1&&(Li$1(0,`p`,18),fS(1),Nc()),i&2&&(ec(),pg(t))}function Yi(i,t){if(i&1&&(Li$1(0,`p`,17),fS(1),Nc(),SC(2,Zi,2,1,`p`,18)),i&2){let e,n=HC(),a=HC(2);ec(),pg(a.t().claudeSays(n.summary)),ec(),kC((e=n.note)?2:-1,e)}}function Ji(i,t){if(i&1&&(Li$1(0,`p`,19),fS(1),Nc(),Li$1(2,`p`,20),fS(3),Nc()),i&2){let e=HC(),n=HC(2);ec(),pg(e.text||n.t().thinking),ec(2),pg(n.t().questionNote)}}function ea(i,t){if(i&1&&(Li$1(0,`p`,16),fS(1),Nc()),i&2){let e=HC();ec(),pg(e.problem)}}function ta(i,t){if(i&1&&(Li$1(0,`div`,9),SC(1,Xi,2,1,`p`,15)(2,Yi,3,2)(3,Ji,4,2)(4,ea,2,1,`p`,16),Nc()),i&2){let e;ec(),kC((e=t.phase)===`thinking`?1:e===`rows`?2:e===`answer`?3:e===`error`?4:-1)}}function na(i,t){i&1&&(Li$1(0,`li`,21),fS(1),Nc()),i&2&&(ec(),Ac(` `,t,` `))}function ia(i,t){if(i&1&&(Li$1(0,`span`),fS(1),Nc()),i&2){let e=t.$implicit,n=HC(3);nS(e.bold?n.hit:``),ec(),pg(e.text)}}function aa(i,t){if(i&1&&Gm(0,`app-icon`,28),i&2){let e=HC(3);Wm(`size`,12),zr(`aria-label`,e.t().actions)}}function oa(i,t){if(i&1){let e=RC();SC(0,na,2,1,`li`,21),Li$1(1,`li`,22),Jm(`mousemove`,function(){let a=Od(e).$index;return Ld(HC(2).active.set(a))})(`click`,function(){let a=Od(e).$implicit;return Ld(HC(2).run(a.entry))})(`keydown.enter`,function(){let a=Od(e).$implicit;return Ld(HC(2).run(a.entry))}),Gm(2,`app-icon`,23),Li$1(3,`span`,24),fS(4),Nc(),Li$1(5,`span`,25),kc(6,ia,2,3,`span`,26,TC),Nc(),Li$1(8,`span`,27),fS(9),Nc(),SC(10,aa,1,2,`app-icon`,28),Nc()}if(i&2){let e,n=t.$implicit,a=t.$index,r=HC(2);kC((e=n.header)?0:-1,e),ec(),ag(`bg-ink-800`,a===r.active()),Wm(`id`,r.optionId(n.entry)),zr(`aria-selected`,a===r.active()),ec(),Wm(`name`,r.groupIcon[n.entry.group])(`size`,14),ec(2),pg(r.t().groups[n.entry.group]),ec(2),Tc(r.labelParts(n)),ec(3),pg(n.entry.detail),ec(),kC(n.hasActions?10:-1)}}function ra(i,t){if(i&1&&(Li$1(0,`li`,11),fS(1),Nc()),i&2){let e=HC(2);ec(),pg(e.t().empty)}}function sa(i,t){if(i&1){let e=RC();Li$1(0,`div`,2)(1,`div`,3)(2,`h2`,4),fS(3),Nc(),Li$1(4,`p`,5),fS(5),Nc(),Li$1(6,`div`,6),SC(7,Qi,3,2,`button`,7),Li$1(8,`input`,8),Jm(`input`,function(a){Od(e);return Ld(HC().setQuery(a.target.value))})(`keydown`,function(a){Od(e);return Ld(HC().onKey(a))}),Nc()(),SC(9,ta,5,1,`div`,9),Li$1(10,`ul`,10),kc(11,oa,11,10,null,null,Ki,!1,ra,2,1,`li`,11),Nc(),Li$1(14,`p`,12),fS(15),Nc()()()}if(i&2){let e,n,a=HC();ec(3),pg(a.t().title),ec(2),pg(a.t().description),ec(2),kC((e=a.parentLabel())?7:-1,e),ec(),Wm(`placeholder`,a.parent()===null?a.t().placeholder:a.t().actions)(`value`,a.query()),zr(`aria-activedescendant`,a.activeId()),ec(),kC((n=a.ai())?9:-1,n),ec(),zr(`aria-label`,a.t().results),ec(),Tc(a.results()),ec(4),pg(a.t().hint)}}function ca(i,t){let e=new Set(t),n=[];for(let[a,r]of[...i].entries()){let p=e.has(a),g=n.at(-1);g?.bold===p?n[n.length-1]={text:g.text+r,bold:p}:n.push({text:r,bold:p})}return n}var Ki;var la;var da;var Xe;var Pn=f(()=>{Kr();ra$1();Je$1();y$2();y();v();W$1();P();f$2();kn();Sn();f$1();M();u$1();B();sk();dk();Kr();Ki=(i,t)=>t.entry.id;la={page:`file`,container:`containers`,compose:`compose`,image:`images`,volume:`volumes`,network:`networks`,action:`sliders`},da=10;Xe=class i{open=mj(!1);router=I(fe);containers=I(u$2);compose=I(c);images=I(h$2);volumes=I(w);networks=I(y$1);contexts=I(p);preferences=I(p$1);aiAvailable=wt(!1);ai=wt(null);conversation=null;aiRound=0;toast=I(u);theme=I(a);groupIcon=la;hit=`font-semibold text-accent`;t=Lt(()=>ok().shell.palette);query=wt(``);active=wt(0);parent=wt(null);outerQuery=``;attention=wt([]);recent=Lt(()=>this.preferences.names(`palette.recent.${this.contexts.active()?.name??`default`}`));data=Lt(()=>({containers:this.containers.containers(),composeProjects:f$3(this.containers.containers()),images:this.images.images(),volumes:this.volumes.volumes(),networks:this.networks.networks(),contexts:this.contexts.contexts().filter(t=>t.supported)}));entries=Lt(()=>gt(this.data()));command=Lt(()=>this.parent()===null?wn(this.query(),this.containers.containers()):null);results=Lt(()=>{let t=this.ai();if(t!==null){let p=t.phase===`rows`?t.entries:t.phase===`answer`?t.proposals:[],g=new Set(this.entries().flatMap(y=>y.parent===void 0?[]:[y.parent]));return p.map(y=>({entry:y,matches:[],hasActions:g.has(y.id)}))}let e=this.askRow();if(e!==null&&this.query().startsWith(`?`))return[e];let n=bn(this.entries(),{query:this.query(),parent:this.parent(),recent:[...this.recent()()],attention:this.attention()}),a=this.command(),r=a===null?n:[{entry:Ke(a),matches:[],hasActions:!1},...n];return e===null?r:[...r,e]});askRow=Lt(()=>{let t=this.query().replace(/^\?/,``).trim();return!this.aiAvailable()||this.parent()!==null||t===``||this.query().startsWith(`>`)?null:{entry:{id:`ai`,label:this.t().askClaude(t),detail:this.t().askNote,group:`action`,target:{kind:`ai`,query:t}},matches:[],hasActions:!1}});parentLabel=Lt(()=>{let t=this.parent();return t===null?null:this.entries().find(e=>e.id===t)?.label??null});activeId=Lt(()=>{let t=this.results()[this.active()];return t===void 0?null:this.optionId(t.entry)});constructor(){rf(()=>{this.open()?Tg(()=>{this.query.set(``),this.active.set(0),this.parent.set(null),this.containers.refresh(),this.images.refresh(),this.volumes.refresh(),this.networks.refresh(),this.loadAttention(),window.electron.assistant.status().then(t=>this.aiAvailable.set(t.configured)).catch(()=>this.aiAvailable.set(!1))}):Tg(()=>this.stopAi())}),I(ve).onDestroy(()=>this.stopAi())}setQuery(t){this.stopAi(),this.query.set(t),this.active.set(0)}labelParts(t){return ca(t.entry.label,t.matches)}onKey(t){let e=this.results().length,n=this.results()[this.active()];if(t.key===`ArrowDown`||t.key===`ArrowUp`){if(t.preventDefault(),e>0){let r=t.key===`ArrowDown`?1:-1;this.active.set((this.active()+r+e)%e),document.getElementById(this.activeId()??``)?.scrollIntoView?.({block:`nearest`})}return}let a=t.target?.selectionStart===this.query().length;if(n?.hasActions===!0&&(t.key===`Tab`||t.key===`ArrowRight`&&a)){t.preventDefault(),this.enter(n.entry.id);return}if(this.parent()!==null&&this.query()===``&&(t.key===`ArrowLeft`||t.key===`Backspace`)){t.preventDefault(),this.leave();return}t.key===`Enter`&&(t.preventDefault(),n!==void 0&&this.run(n.entry))}leave(){this.parent.set(null),this.query.set(this.outerQuery),this.active.set(0)}optionId(t){return`palette-${t.id.replace(/[^a-zA-Z0-9_-]/g,`_`)}`}run(t){let e=t.target;if(e.kind===`batch`){this.runSteps(e.steps);return}if(e.kind===`ai`){this.askClaude(e.query);return}if(this.remember(t.id),this.open.set(!1),e.kind===`container`){this.containers.run(e.action,e.id);return}if(e.kind===`compose`){this.compose.up(e.project);return}if(e.kind===`recreate`){this.compose.recreate(e.project,e.service);return}if(e.kind===`copy`){navigator.clipboard.writeText(e.text).then(()=>this.toast.success(this.t().copied(e.text.slice(0,12)))).catch(()=>{});return}if(e.kind===`theme`){this.theme.toggle();return}if(e.kind===`context`){this.contexts.use(e.name);return}if(e.kind===`dialog`){this.router.navigate([e.route],{queryParams:{[e.param]:e.value}});return}let n=W(W({},e.search===void 0?{}:{zoek:e.search}),e.diagnose===!0?{diagnose:1}:{});this.router.navigate([e.route],{queryParams:n})}async runSteps(t){let e=t.filter(n=>n.problem===null&&n.container!==null);if(e.length!==0){this.open.set(!1);for(let n of e){let a=n.container;a!==null&&(n.verb===`recreate`?await this.compose.recreate(a.composeProject??``,a.composeService??``):await this.containers.run(n.verb,a.id))}this.toast.success(this.t().commandDone(e.length))}}async askClaude(t){this.stopAi();let e=++this.aiRound,n=()=>e===this.aiRound;this.ai.set({phase:`thinking`}),this.active.set(0);let a=await window.electron.paletteAi.interpret(t).catch(()=>null);if(n()){if(a===null||!a.ok){this.ai.set({phase:`error`,problem:a?.problem??this.t().aiNothing});return}if(a.kind===`filter`&&a.filter!==null){let r=_n(this.data(),a.filter);this.ai.set({phase:`rows`,summary:r.length===0?`${a.summary} \u2014 ${this.t().aiNothing}`:a.summary,note:this.t().askNote,entries:r});return}if(a.kind===`command`){let r=await window.electron.paletteAi.plan(t).catch(()=>null);if(!n())return;if(r===null||!r.ok){this.ai.set({phase:`error`,problem:r?.problem??this.t().aiNothing});return}let p=r.steps.map(g=>Qe(g.verb,g.container,this.containers.containers()));this.ai.set({phase:`rows`,summary:r.summary,note:this.t().commandNote,entries:p.length===0?[]:[Ke(p)]});return}await this.askQuestion(t,n)}}async askQuestion(t,e){let n=await window.electron.assistant.start(null);if(!e()){window.electron.assistant.close(n);return}let a=``,r=[],p=y=>{e()&&this.ai.set({phase:`answer`,text:a,done:y,proposals:r})},g=window.electron.assistant.onEvent(n,y=>{if(y.type===`text`)a+=y.text,p(!1);else if(y.type===`proposal`){let I=this.proposalEntry(y.proposal);r=I===null?r:[...r,I],p(!1)}else y.type===`done`?p(!0):y.type===`error`&&e()&&this.ai.set({phase:`error`,problem:y.problem})});this.conversation={id:n,unsubscribe:g},p(!1),await window.electron.assistant.ask(n,t)}proposalEntry(t){if(t.kind===`container`)return G(W({},Ke([Qe(t.action,t.containerName,this.containers.containers())])),{id:`ai:${t.containerName}:${t.action}`,detail:t.reason});return t.kind===`compose`?{id:`ai:${t.project}:up`,label:this.t().composeUp(t.project),detail:t.reason,group:`compose`,target:{kind:`compose`,project:t.project}}:null}stopAi(){this.aiRound+=1,this.conversation!==null&&(this.conversation.unsubscribe(),window.electron.assistant.close(this.conversation.id).catch(()=>{}),this.conversation=null),this.ai.set(null)}enter(t){this.outerQuery=this.query(),this.parent.set(t),this.query.set(``),this.active.set(0)}remember(t){let e=this.recent();e.set(new Set([t,...[...e()].filter(n=>n!==t)].slice(0,da)))}async loadAttention(){try{let t=await window.electron.containers.attention();this.attention.set(t.filter(e=>e.kind!==`update`).map(e=>e.id))}catch{this.attention.set([])}}static ɵfac=function(e){return new(e||i)};static ɵcmp=wc({type:i,selectors:[[`app-command-palette`]],inputs:{open:[1,`open`]},outputs:{open:`openChange`},decls:2,vars:1,consts:[[`rdxDialogRoot`,``,3,`openChange`,`open`],[`rdxDialogPortal`,``],[`rdxDialogViewport`,``,1,`fixed`,`inset-0`,`z-50`,`flex`,`items-start`,`justify-center`,`bg-black/40`,`p-4`,`pt-[12vh]`],[`rdxDialogPopup`,``,1,`w-full`,`max-w-3xl`,`overflow-hidden`,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`shadow-2xl`],[`rdxDialogTitle`,``,1,`sr-only`],[`rdxDialogDescription`,``,1,`sr-only`],[1,`flex`,`items-center`,`border-b`,`border-ink-700`],[`type`,`button`,`data-testid`,`palette-parent`,1,`mx-focus`,`ml-3`,`flex`,`shrink-0`,`cursor-pointer`,`items-center`,`gap-1`,`rounded`,`border`,`border-ink-700`,`px-2`,`py-0.5`,`text-[12px]`,`text-ink-300`,`hover:text-ink-100`],[`type`,`text`,`role`,`combobox`,`aria-controls`,`palette-list`,`aria-expanded`,`true`,`aria-autocomplete`,`list`,`spellcheck`,`false`,`autocomplete`,`off`,`data-testid`,`palette-input`,1,`w-full`,`bg-transparent`,`px-4`,`py-3`,`text-[14px]`,`text-ink-100`,`outline-none`,`placeholder:text-ink-500`,3,`input`,`keydown`,`placeholder`,`value`],[`role`,`status`,`data-testid`,`palette-ai`,1,`border-b`,`border-ink-700`,`px-4`,`py-2`,`text-[13px]`],[`id`,`palette-list`,`role`,`listbox`,1,`max-h-[50vh]`,`overflow-y-auto`,`py-1`],[1,`px-4`,`py-3`,`text-[13px]`,`text-ink-400`],[`data-testid`,`palette-hint`,1,`border-t`,`border-ink-700`,`px-4`,`py-1.5`,`text-[11px]`,`text-ink-500`],[`type`,`button`,`data-testid`,`palette-parent`,1,`mx-focus`,`ml-3`,`flex`,`shrink-0`,`cursor-pointer`,`items-center`,`gap-1`,`rounded`,`border`,`border-ink-700`,`px-2`,`py-0.5`,`text-[12px]`,`text-ink-300`,`hover:text-ink-100`,3,`click`],[`name`,`chevronRight`,3,`size`],[1,`text-ink-400`],[1,`text-danger`],[1,`text-ink-200`],[1,`mt-0.5`,`text-[11px]`,`text-ink-500`],[`data-testid`,`palette-answer`,1,`max-h-[30vh]`,`overflow-y-auto`,`whitespace-pre-wrap`,`text-ink-100`],[1,`mt-1`,`text-[11px]`,`text-ink-500`],[`role`,`presentation`,`data-testid`,`palette-header`,1,`px-4`,`pt-2`,`pb-1`,`text-[11px]`,`font-medium`,`tracking-wide`,`text-ink-500`,`uppercase`],[`role`,`option`,`tabindex`,`-1`,1,`flex`,`cursor-pointer`,`items-center`,`gap-3`,`px-4`,`py-1.5`,`text-[13px]`,3,`mousemove`,`click`,`keydown.enter`,`id`],[1,`text-ink-500`,3,`name`,`size`],[1,`sr-only`],[`data-testid`,`palette-label`,1,`min-w-0`,`flex-1`,`truncate`,`text-ink-100`],[3,`class`],[1,`max-w-[45%]`,`shrink-0`,`truncate`,`text-[11px]`,`text-ink-500`],[`name`,`chevronRight`,1,`shrink-0`,`text-ink-600`,3,`size`]],template:function(e,n){e&1&&(Li$1(0,`div`,0),vg(`openChange`,function(r){return vS(n.open,r)||(n.open=r),r}),_m(1,sa,16,10,`ng-template`,1),Nc()),e&2&&hg(`open`,n.open)},dependencies:[ie,ln$1,pn$1,cn$1,fn$1,dn$1,My],encapsulation:2})}});function ma(i,t){if(i&1&&(Li$1(0,`a`,1),Gm(1,`app-icon`,2),Li$1(2,`span`,3),fS(3),Nc()()),i&2){let e=t.$implicit,n=HC();Wm(`routerLink`,e.path),zr(`title`,n.t()[e.label]),ec(),Wm(`name`,e.icon),ec(2),pg(n.t()[e.label])}}var pa;var ua;var Ze;var En=f(()=>{Kr();ra$1();dk();sk();Kr();pa=(i,t)=>t.path;ua=[{path:`/dashboard`,label:`dashboard`,icon:`dashboard`},{path:`/containers`,label:`containers`,icon:`containers`},{path:`/images`,label:`images`,icon:`images`},{path:`/volumes`,label:`volumes`,icon:`volumes`},{path:`/networks`,label:`networks`,icon:`networks`},{path:`/compose`,label:`compose`,icon:`compose`},{path:`/logs`,label:`logs`,icon:`lines`},{path:`/terminal`,label:`terminal`,icon:`terminal`},{path:`/settings`,label:`settings`,icon:`sliders`}],Ze=class i{nav=ua;t=Lt(()=>ok().shell.nav);static ɵfac=function(e){return new(e||i)};static ɵcmp=wc({type:i,selectors:[[`app-sidebar`]],decls:3,vars:1,consts:[[1,`flex`,`h-full`,`flex-col`,`gap-0.5`,`p-2`],[`routerLinkActive`,`bg-ink-800 text-ink-100`,1,`mx-focus`,`flex`,`items-center`,`gap-2.5`,`rounded-md`,`px-2.5`,`py-1.5`,`text-[13px]`,`text-ink-300`,`transition-colors`,`hover:bg-ink-850`,`hover:text-ink-100`,3,`routerLink`],[3,`name`],[1,`max-sidebar:hidden`,`truncate`]],template:function(e,n){e&1&&(Li$1(0,`nav`,0),kc(1,ma,4,4,`a`,1,pa),Nc()),e&2&&(zr(`aria-label`,n.t().label),ec(),Tc(n.nav))},dependencies:[Yt,Gs,My],encapsulation:2})}});function fa(i,t){i&1&&(Li$1(0,`span`,10),fS(1),Nc()),i&2&&(ec(),pg(t))}function ha(i,t){if(i&1){let e=RC();Li$1(0,`li`)(1,`button`,6),Jm(`click`,function(){let a=Od(e).$implicit;return Ld(HC(3).pick(a.name))})(`keydown`,function(a){Od(e);return Ld(HC(3).onListKey(a))}),Gm(2,`app-icon`,7),Li$1(3,`span`,8)(4,`span`,9),fS(5),Nc(),SC(6,fa,2,1,`span`,10),Nc()()()}if(i&2){let e,n=t.$implicit,a=HC(3),r=n.name===a.activeName();ec(),ag(`text-ink-100`,r)(`text-ink-300`,!r),Wm(`disabled`,!n.supported)(`title`,n.host),zr(`aria-selected`,r),ec(),ag(`text-accent`,r)(`invisible`,!r),Wm(`size`,12),ec(3),pg(n.name),ec(),kC((e=a.noteOf(n))?6:-1,e)}}function xa(i,t){if(i&1&&(Li$1(0,`ul`,4),kc(1,ha,7,14,`li`,null,ya),Nc()),i&2){let e=HC(2);zr(`aria-label`,e.t().label),ec(),Tc(e.contexts())}}function va(i,t){if(i&1&&(Li$1(0,`span`,5),fS(1),Nc()),i&2){let e=HC(2);ec(),pg(e.t().switching)}}function ba(i,t){if(i&1){let e=RC();Li$1(0,`div`,1)(1,`button`,2,0),Jm(`click`,function(){Od(e);return Ld(HC().toggle())})(`keydown`,function(a){Od(e);return Ld(HC().onTriggerKey(a))}),fS(3),Gm(4,`app-icon`,3),Nc(),SC(5,xa,3,1,`ul`,4),Nc(),SC(6,va,2,1,`span`,5)}if(i&2){let e=HC();ec(),Wm(`disabled`,e.switching()),zr(`aria-expanded`,e.open())(`aria-label`,e.t().label),ec(2),Ac(` `,e.activeName(),` `),ec(),Wm(`name`,e.open()?`chevronDown`:`chevronUp`)(`size`,12),ec(),kC(e.open()?5:-1),ec(),kC(e.switching()?6:-1)}}var ga;var ya;var Ye;var Dn=f(()=>{Kr();W$1();sk();dk();Kr();ga=[`trigger`],ya=(i,t)=>t.name;Ye=class i{store=I(p);host=I(Pr);trigger=gj(`trigger`);contexts=this.store.contexts;switching=this.store.switching;open=wt(!1);t=Lt(()=>ok().shell.contextPicker);activeName=Lt(()=>this.store.active()?.name??``);constructor(){this.store.load()}noteOf(t){let e=this.t();return t.supported?t.currentInCli?e.inUseByCli:``:t.reason??e.unsupported}toggle(){this.open.update(t=>!t)}close(){this.open.set(!1),this.trigger()?.nativeElement.focus()}onOutside(t){this.open()&&!this.host.nativeElement.contains(t.target)&&this.open.set(!1)}onTriggerKey(t){t.key!==`ArrowDown`&&t.key!==`ArrowUp`||(t.preventDefault(),this.open.set(!0),setTimeout(()=>this.focusOption(t.key===`ArrowUp`?-1:0)))}onListKey(t){if(t.key===`Escape`){t.preventDefault(),this.close();return}if(t.key!==`ArrowDown`&&t.key!==`ArrowUp`)return;t.preventDefault();let n=this.options().indexOf(document.activeElement),a=t.key===`ArrowDown`?1:-1;this.focusOption(n===-1?0:n+a)}pick(t){this.open.set(!1),this.trigger()?.nativeElement.focus(),t!==this.activeName()&&this.store.use(t)}options(){return[...this.trigger()?.nativeElement.closest(`.relative`)?.querySelectorAll(`[role="option"]:not(:disabled)`)??[]]}focusOption(t){let e=this.options();e.length!==0&&e[(t+e.length)%e.length].focus()}static ɵfac=function(e){return new(e||i)};static ɵcmp=wc({type:i,selectors:[[`app-context-picker`]],viewQuery:function(e,n){e&1&&rg(n.trigger,ga,5),e&2&&BC()},hostAttrs:[1,`flex`,`items-center`,`gap-2`],hostBindings:function(e,n){e&1&&Jm(`pointerdown`,function(r){return n.onOutside(r)},wD)},decls:1,vars:1,consts:[[`trigger`,``],[1,`relative`],[`type`,`button`,`aria-haspopup`,`listbox`,1,`mx-focus`,`flex`,`cursor-pointer`,`items-center`,`gap-1`,`rounded`,`border`,`border-transparent`,`py-0.5`,`pr-1`,`pl-1.5`,`text-[12px]`,`text-ink-400`,`transition-colors`,`hover:border-ink-700`,`hover:text-ink-100`,`disabled:cursor-not-allowed`,`disabled:opacity-50`,3,`click`,`keydown`,`disabled`],[3,`name`,`size`],[`role`,`listbox`,1,`absolute`,`right-0`,`bottom-full`,`z-50`,`mb-1.5`,`max-h-64`,`w-64`,`overflow-y-auto`,`rounded-md`,`border`,`border-ink-700`,`bg-panel`,`py-1`,`shadow-2xl`],[1,`text-[12px]`,`text-ink-500`],[`type`,`button`,`role`,`option`,1,`mx-focus`,`flex`,`w-full`,`cursor-pointer`,`items-start`,`gap-2`,`px-2.5`,`py-1.5`,`text-left`,`text-[12px]`,`transition-colors`,`hover:bg-ink-850`,`disabled:cursor-not-allowed`,`disabled:opacity-50`,`disabled:hover:bg-transparent`,3,`click`,`keydown`,`disabled`,`title`],[`name`,`check`,1,`mt-0.5`,`shrink-0`,3,`size`],[1,`min-w-0`,`flex-1`],[1,`block`,`truncate`],[1,`block`,`truncate`,`text-[11px]`,`text-ink-500`]],template:function(e,n){e&1&&SC(0,ba,7,8),e&2&&kC(n.contexts().length>1?0:-1)},dependencies:[My],encapsulation:2})}});function _a(i,t){if(i&1&&(Li$1(0,`span`),fS(1),Nc()),i&2){let e=HC();ec(),pg(e.t().connecting)}}function ka(i,t){i&1&&(Li$1(0,`span`,3),fS(1),Nc()),i&2&&(ec(),pg(t))}function Ca(i,t){if(i&1&&(Li$1(0,`span`,8),fS(1,`|`),Nc(),Li$1(2,`span`),fS(3),Nc(),Li$1(4,`span`),fS(5),Nc(),Li$1(6,`span`),fS(7),Nc()),i&2){let e=t,n=HC(3);ec(3),pg(n.t().containers(e.containersRunning,e.containers)),ec(2),pg(n.t().images(e.images)),ec(2),mg(``,e.cpus,` CPU · `,n.memory())}}function wa(i,t){if(i&1&&SC(0,Ca,8,4),i&2){let e;HC(2);kC((e=bS(1).info)?0:-1,e)}}function Sa(i,t){if(i&1&&(Li$1(0,`span`,3),fS(1),Nc()),i&2){HC(2);let e=bS(1);ec(),pg(e.problem)}}function Pa(i,t){if(i&1&&(Li$1(0,`span`),fS(1),Nc()),i&2){let e=t;ec(),mg(`Docker `,e.version,` · API `,e.apiVersion)}}function Ea(i,t){if(i&1){let e=RC();Li$1(0,`span`,1),Gm(1,`span`,2),fS(2),Nc(),SC(3,ka,2,1,`span`,3),SC(4,wa,1,1)(5,Sa,2,1,`span`,3),Li$1(6,`span`,4),Gm(7,`app-context-picker`),Li$1(8,`span`,5),fS(9),Nc(),SC(10,Pa,2,2,`span`),Li$1(11,`button`,6),Jm(`click`,function(){Od(e);return Ld(HC().refresh())}),Gm(12,`app-icon`,7),Nc()()}if(i&2){let e,n,a=HC(),r=bS(1);ag(`text-danger`,!r.connected),ec(),ag(`bg-ok`,r.connected)(`bg-danger`,!r.connected),ec(),Ac(` `,r.connected?a.t().engineRunning:a.t().engineUnreachable,` `),ec(),kC((e=a.contextProblem())?3:-1,e),ec(),kC(r.connected?4:r.problem?5:-1),ec(5),pg(r.endpoint),ec(),kC((n=r.version)?10:-1,n),ec(),Wm(`disabled`,a.loading())(`title`,a.t().reconnect),zr(`aria-label`,a.t().reconnect),ec(),Wm(`size`,14)}}var Je;var In=f(()=>{Kr();W$1();h();h$1();sk();Dn();dk();Kr();Je=class i{engine=I(d);contexts=I(p);status=this.engine.status;loading=this.engine.loading;contextProblem=this.contexts.problem;t=Lt(()=>ok().shell.statusBar);memory=Lt(()=>{let t=this.engine.status()?.info;return t===void 0?``:d$2(t.memoryBytes)});refresh(){this.engine.refresh()}static ɵfac=function(e){return new(e||i)};static ɵcmp=wc({type:i,selectors:[[`app-status-bar`]],decls:4,vars:2,consts:[[`role`,`status`,1,`flex`,`h-7`,`items-center`,`gap-3`,`border-t`,`border-ink-700`,`bg-panel`,`px-3`,`text-[12px]`,`text-ink-400`],[1,`flex`,`items-center`,`gap-1.5`],[`aria-hidden`,`true`,1,`size-2`,`rounded-full`],[1,`truncate`,`text-danger`],[1,`ml-auto`,`flex`,`items-center`,`gap-3`],[1,`text-ink-500`],[`type`,`button`,1,`mx-focus`,`cursor-pointer`,`rounded`,`p-0.5`,`text-ink-400`,`transition-colors`,`hover:text-ink-100`,3,`click`,`disabled`,`title`],[`name`,`refresh`,3,`size`],[`aria-hidden`,`true`,1,`text-ink-600`]],template:function(e,n){if(e&1&&(Li$1(0,`div`,0),bg(1),SC(2,_a,2,1,`span`)(3,Ea,13,15),Nc()),e&2){ec();let a=yS(n.status());ec(),kC(a===null?2:3)}},dependencies:[My,Ye],encapsulation:2})}});function Da(i,t){i&1&&(Li$1(0,`p`,3),fS(1),Nc()),i&2&&(ec(),pg(t))}function Ma(i,t){if(i&1){let e=RC();Li$1(0,`li`,3)(1,`app-toast-item`,4),Jm(`closed`,function(){let a=Od(e).$implicit;return Ld(HC().service.close(a.id))}),Nc()()}if(i&2){let e=t.$implicit,n=HC();ec(),Wm(`toast`,e)(`paused`,n.hovered()||n.focused()||!n.windowActive())}}var Ia;var Ta;var yt;var et;var Tn=f(()=>{Kr();sk();dk();f$1();Kr();Ia=[`region`],Ta=(i,t)=>t.id;yt=class i{toast=jc.required();paused=jc(!1);closed=pj();t=Lt(()=>ok().shell.toast);remaining=null;startedAt=0;timer=null;constructor(){rf(()=>{let{timeout:t,closing:e}=this.toast();this.stop(),!(t===0||e||this.paused())&&(this.remaining??=t,this.startedAt=Date.now(),this.timer=setTimeout(()=>this.closed.emit(),this.remaining))}),I(ve).onDestroy(()=>this.stop())}stop(){this.timer!==null&&(clearTimeout(this.timer),this.timer=null,this.remaining=Math.max(0,(this.remaining??0)-(Date.now()-this.startedAt)))}static ɵfac=function(e){return new(e||i)};static ɵcmp=wc({type:i,selectors:[[`app-toast-item`]],hostAttrs:[`aria-atomic`,`true`,`tabindex`,`0`,1,`mx-focus`,`pointer-events-auto`,`flex`,`items-start`,`gap-2.5`,`rounded-lg`,`border`,`bg-ink-850`,`px-3`,`py-2.5`,`text-[13px]`,`shadow-lg`,`transition-[opacity,translate]`,`duration-200`,`starting:translate-y-2`,`starting:opacity-0`,`data-[state=closed]:translate-x-4`,`data-[state=closed]:opacity-0`,`data-[type=error]:border-danger/50`,`data-[type=success]:border-ok/50`],hostVars:4,hostBindings:function(e,n){e&1&&Jm(`keydown.escape`,function(){return n.closed.emit()}),e&2&&zr(`role`,n.toast().type===`error`?`alert`:`status`)(`aria-live`,n.toast().type===`error`?`assertive`:`polite`)(`data-type`,n.toast().type)(`data-state`,n.toast().closing?`closed`:`open`)},inputs:{toast:[1,`toast`],paused:[1,`paused`]},outputs:{closed:`closed`},decls:8,vars:10,consts:[[1,`mt-0.5`,`shrink-0`],[3,`name`,`size`],[1,`min-w-0`,`flex-1`],[1,`font-medium`,`text-ink-100`],[`data-testid`,`toast-description`,1,`break-words`,`text-ink-200`],[`type`,`button`,1,`mx-focus`,`-mr-1`,`shrink-0`,`rounded`,`p-0.5`,`text-ink-500`,`hover:text-ink-100`,3,`click`],[`name`,`close`,3,`size`]],template:function(e,n){if(e&1&&(Li$1(0,`span`,0),Gm(1,`app-icon`,1),Nc(),Li$1(2,`div`,2),SC(3,Da,2,1,`p`,3),Li$1(4,`p`,4),fS(5),Nc()(),Li$1(6,`button`,5),Jm(`click`,function(){return n.closed.emit()}),Gm(7,`app-icon`,6),Nc()),e&2){let a;ag(`text-ok`,n.toast().type===`success`)(`text-danger`,n.toast().type===`error`),ec(),Wm(`name`,n.toast().type===`error`?`close`:`check`)(`size`,14),ec(2),kC((a=n.toast().title)?3:-1,a),ec(2),pg(n.toast().description),ec(),zr(`aria-label`,n.t().close),ec(),Wm(`size`,13)}},dependencies:[My],encapsulation:2})},et=class i{service=I(u);hovered=wt(!1);focused=wt(!1);windowActive=wt(!0);t=Lt(()=>ok().shell.toast);region=gj.required(`region`);focus(){(this.region().nativeElement.querySelector(`app-toast-item`)??this.region().nativeElement).focus()}static ɵfac=function(e){return new(e||i)};static ɵcmp=wc({type:i,selectors:[[`app-toast-viewport`]],viewQuery:function(e,n){e&1&&rg(n.region,Ia,5),e&2&&BC()},hostBindings:function(e,n){e&1&&Jm(`keydown.f8`,function(){return n.focus()},wD)(`blur`,function(){return n.windowActive.set(!1)},bD)(`focus`,function(){return n.windowActive.set(!0)},bD)},decls:5,vars:1,consts:[[`region`,``],[`tabindex`,`-1`,1,`pointer-events-none`,`fixed`,`right-4`,`bottom-10`,`z-50`,`w-[22rem]`,`max-w-[calc(100vw-2rem)]`,`outline-none`,3,`mouseenter`,`mouseleave`,`focusin`,`focusout`],[1,`flex`,`flex-col`,`gap-2`],[1,`contents`],[3,`closed`,`toast`,`paused`]],template:function(e,n){e&1&&(Li$1(0,`section`,1,0),Jm(`mouseenter`,function(){return n.hovered.set(!0)})(`mouseleave`,function(){return n.hovered.set(!1)})(`focusin`,function(){return n.focused.set(!0)})(`focusout`,function(){return n.focused.set(!1)}),Li$1(2,`ol`,2),kc(3,Ma,2,2,`li`,3,Ta),Nc()()),e&2&&(zr(`aria-label`,n.t().region),ec(3),Tc(n.service.toasts()))},dependencies:[yt],encapsulation:2})}});var tt;var Mn=f(()=>{Kr();ra$1();h();mt();fn();Pn();En();In();Tn();Kr();tt=class i{engine=I(d);router=I(fe);palette=I(ke);constructor(){this.engine.refresh(),I(ve).onDestroy(window.electron.navigation.onNavigate(t=>{this.router.navigateByUrl(t)})),I(ve).onDestroy(window.electron.navigation.onOpenPalette(()=>this.palette.open.set(!0))),window.electron.navigation.takePending().then(t=>{t===`#palet`?this.palette.open.set(!0):t!==null&&this.router.navigateByUrl(t)})}onKey(t){t.key.toLowerCase()!==`k`||!(t.ctrlKey||t.metaKey)||t.altKey||t.shiftKey||t.target instanceof Element&&t.target.closest(`.xterm`)!==null||(t.preventDefault(),this.palette.open.set(!0))}static ɵfac=function(e){return new(e||i)};static ɵcmp=wc({type:i,selectors:[[`app-root`]],hostAttrs:[1,`block`,`h-full`],hostBindings:function(e,n){e&1&&Jm(`keydown`,function(r){return n.onKey(r)},wD)},decls:10,vars:1,consts:[[1,`flex`,`h-full`,`flex-col`,`bg-ink-900`],[1,`flex`,`min-h-0`,`flex-1`],[1,`max-sidebar:w-13`,`w-52`,`shrink-0`,`border-r`,`border-ink-700`,`bg-panel`],[1,`min-w-0`,`flex-1`,`overflow-y-auto`],[3,`openChange`,`open`]],template:function(e,n){e&1&&(Li$1(0,`div`,0),Gm(1,`app-header`),Li$1(2,`div`,1)(3,`aside`,2),Gm(4,`app-sidebar`),Nc(),Li$1(5,`main`,3),Gm(6,`router-outlet`),Nc()(),Gm(7,`app-status-bar`),Nc(),Li$1(8,`app-command-palette`,4),vg(`openChange`,function(r){return vS(n.palette.open,r)||(n.palette.open=r),r}),Nc(),Gm(9,`app-toast-viewport`)),e&2&&(ec(8),hg(`open`,n.palette.open))},dependencies:[qn$1,Ge,Ze,Je,Xe,et],encapsulation:2})}});var Na=fk(()=>{Qr();yn();Mn();u$1();m(d$1());ao(tt,gn).catch(i=>console.error(i))});var main_5BW3ZB5N_default=Na();export{main_5BW3ZB5N_default as default};
@@ -0,0 +1 @@
1
+ .xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;inset:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;inset:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{font-family:monospace;-webkit-user-select:text;user-select:text;white-space:pre}.xterm .xterm-accessibility-tree>div{transform-origin:left;width:fit-content}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{position:absolute;display:none}.xterm .xterm-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow, #000) 0 6px 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}@layer properties;@layer theme,base,components,utilities;@layer theme{:root,:host{--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black: #000;--color-white: #fff;--spacing: .25rem;--container-xs: 20rem;--container-md: 28rem;--container-xl: 36rem;--container-2xl: 42rem;--container-3xl: 48rem;--container-4xl: 56rem;--container-6xl: 72rem;--text-base: 1rem;--text-base--line-height: 1.5 ;--text-lg: 1.125rem;--text-lg--line-height: calc(1.75 / 1.125);--text-xl: 1.25rem;--text-xl--line-height: calc(1.75 / 1.25);--text-2xl: 1.5rem;--text-2xl--line-height: calc(2 / 1.5);--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--tracking-tight: -.025em;--tracking-wide: .025em;--leading-relaxed: 1.625;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--default-transition-duration: .15s;--default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);--default-font-family: var(--font-sans);--default-mono-font-family: var(--font-mono);--color-ink-950: #ffffff;--color-ink-900: #fbf9f6;--color-ink-850: #f3efe9;--color-ink-800: #e8e2da;--color-ink-750: #d5dae4;--color-ink-700: #c3cad8;--color-ink-600: #9aa4b6;--color-ink-500: #78839a;--color-ink-400: #5a6579;--color-ink-300: #414a5c;--color-ink-200: #2b3341;--color-ink-100: #161b23;--color-accent: #c2552f;--color-ok: #2f7d55;--color-warn: #8a6212;--color-danger: #c0392f;--color-halt: #f59e0b;--color-stopped: #9b2c2c;--color-series-1: #2a78d6;--color-series-2: #d95926;--color-panel: #fffdfa;--breakpoint-sidebar: 900px}}@layer base{*,:after,:before,::backdrop,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:var(--default-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings, normal);font-variation-settings:var(--default-font-variation-settings, normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings, normal);font-variation-settings:var(--default-mono-font-variation-settings, normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:transparent;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px){::placeholder{color:currentcolor}@supports (color: color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]),::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border-width:0}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.-top-1{top:calc(var(--spacing) * -1)}.top-0{top:0}.top-1\/2{top:50%}.top-full{top:100%}.right-0{right:0}.right-4{right:calc(var(--spacing) * 4)}.bottom-10{bottom:calc(var(--spacing) * 10)}.bottom-full{bottom:100%}.left-0{left:0}.left-2\.5{left:calc(var(--spacing) * 2.5)}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.col-span-1{grid-column:span 1 / span 1}.col-span-2{grid-column:span 2 / span 2}.col-span-3{grid-column:span 3 / span 3}.col-span-5{grid-column:span 5 / span 5}.col-span-6{grid-column:span 6 / span 6}.container{width:100%}@media(width>=900px){.container{max-width:900px}}@media(width>=40rem){.container{max-width:40rem}}@media(width>=48rem){.container{max-width:48rem}}@media(width>=64rem){.container{max-width:64rem}}@media(width>=80rem){.container{max-width:80rem}}@media(width>=96rem){.container{max-width:96rem}}.m-0{margin:0}.m-4{margin:calc(var(--spacing) * 4)}.my-1{margin-block:var(--spacing)}.-mt-0\.5{margin-top:calc(var(--spacing) * -.5)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.-mr-1{margin-right:calc(var(--spacing) * -1)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-auto{margin-right:auto}.-mb-px{margin-bottom:-1px}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-auto{margin-left:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-11{height:calc(var(--spacing) * 11)}.h-16{height:calc(var(--spacing) * 16)}.h-28{height:calc(var(--spacing) * 28)}.h-full{height:100%}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[30vh\]{max-height:30vh}.max-h-\[50vh\]{max-height:50vh}.max-h-\[85vh\]{max-height:85vh}.min-h-0{min-height:0px}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-44{width:calc(var(--spacing) * 44)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-96{width:calc(var(--spacing) * 96)}.w-\[22rem\]{width:22rem}.w-\[84px\]{width:84px}.w-\[110px\]{width:110px}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[45\%\]{max-width:45%}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-md{max-width:var(--container-md)}.max-w-prose{max-width:65ch}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.basis-full{flex-basis:100%}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[3px\]{--tw-translate-x: 3px;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-full{--tw-translate-y: -100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-\[7\.5rem_1fr_auto\]{grid-template-columns:7.5rem 1fr auto}.grid-cols-\[minmax\(0\,1fr\)_auto_minmax\(0\,1fr\)_7rem_2rem\]{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) 7rem 2rem}.grid-cols-\[minmax\(0\,2fr\)_auto_minmax\(0\,3fr\)_2rem\]{grid-template-columns:minmax(0,2fr) auto minmax(0,3fr) 2rem}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-x-8{column-gap:calc(var(--spacing) * 8)}.gap-x-10{column-gap:calc(var(--spacing) * 10)}.gap-y-1{row-gap:var(--spacing)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse: 0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-ink-700>:not(:last-child)){border-color:var(--color-ink-700)}:where(.divide-ink-800>:not(:last-child)){border-color:var(--color-ink-800)}.self-center{align-self:center}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:calc(infinity * 1px)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-dashed{--tw-border-style: dashed;border-style:dashed}.border-accent{border-color:var(--color-accent)}.border-danger{border-color:var(--color-danger)}.border-danger\/40{border-color:color-mix(in srgb,#c0392f 40%,transparent)}@supports (color: color-mix(in lab,red,red)){.border-danger\/40{border-color:color-mix(in oklab,var(--color-danger) 40%,transparent)}}.border-ink-400{border-color:var(--color-ink-400)}.border-ink-700{border-color:var(--color-ink-700)}.border-ink-800{border-color:var(--color-ink-800)}.border-ok\/40{border-color:color-mix(in srgb,#2f7d55 40%,transparent)}@supports (color: color-mix(in lab,red,red)){.border-ok\/40{border-color:color-mix(in oklab,var(--color-ok) 40%,transparent)}}.border-transparent{border-color:transparent}.border-warn{border-color:var(--color-warn)}.border-warn\/40{border-color:color-mix(in srgb,#8a6212 40%,transparent)}@supports (color: color-mix(in lab,red,red)){.border-warn\/40{border-color:color-mix(in oklab,var(--color-warn) 40%,transparent)}}.bg-accent{background-color:var(--color-accent)}.bg-accent\/5{background-color:color-mix(in srgb,#c2552f 5%,transparent)}@supports (color: color-mix(in lab,red,red)){.bg-accent\/5{background-color:color-mix(in oklab,var(--color-accent) 5%,transparent)}}.bg-black\/40{background-color:color-mix(in srgb,#000 40%,transparent)}@supports (color: color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-black\/50{background-color:color-mix(in srgb,#000 50%,transparent)}@supports (color: color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-danger{background-color:var(--color-danger)}.bg-danger\/10{background-color:color-mix(in srgb,#c0392f 10%,transparent)}@supports (color: color-mix(in lab,red,red)){.bg-danger\/10{background-color:color-mix(in oklab,var(--color-danger) 10%,transparent)}}.bg-halt{background-color:var(--color-halt)}.bg-ink-400{background-color:var(--color-ink-400)}.bg-ink-600{background-color:var(--color-ink-600)}.bg-ink-700{background-color:var(--color-ink-700)}.bg-ink-800{background-color:var(--color-ink-800)}.bg-ink-850{background-color:var(--color-ink-850)}.bg-ink-900{background-color:var(--color-ink-900)}.bg-ink-950{background-color:var(--color-ink-950)}.bg-ok{background-color:var(--color-ok)}.bg-ok\/10{background-color:color-mix(in srgb,#2f7d55 10%,transparent)}@supports (color: color-mix(in lab,red,red)){.bg-ok\/10{background-color:color-mix(in oklab,var(--color-ok) 10%,transparent)}}.bg-panel{background-color:var(--color-panel)}.bg-series-1{background-color:var(--color-series-1)}.bg-series-2{background-color:var(--color-series-2)}.bg-stopped{background-color:var(--color-stopped)}.bg-transparent{background-color:transparent}.bg-warn\/10{background-color:color-mix(in srgb,#8a6212 10%,transparent)}@supports (color: color-mix(in lab,red,red)){.bg-warn\/10{background-color:color-mix(in oklab,var(--color-warn) 10%,transparent)}}.fill-accent{fill:var(--color-accent)}.fill-accent\/15{fill:color-mix(in srgb,#c2552f 15%,transparent)}@supports (color: color-mix(in lab,red,red)){.fill-accent\/15{fill:color-mix(in oklab,var(--color-accent) 15%,transparent)}}.fill-series-1{fill:var(--color-series-1)}.fill-series-1\/15{fill:color-mix(in srgb,#2a78d6 15%,transparent)}@supports (color: color-mix(in lab,red,red)){.fill-series-1\/15{fill:color-mix(in oklab,var(--color-series-1) 15%,transparent)}}.fill-series-2{fill:var(--color-series-2)}.fill-series-2\/15{fill:color-mix(in srgb,#d95926 15%,transparent)}@supports (color: color-mix(in lab,red,red)){.fill-series-2\/15{fill:color-mix(in oklab,var(--color-series-2) 15%,transparent)}}.stroke-accent{stroke:var(--color-accent)}.stroke-ink-600{stroke:var(--color-ink-600)}.stroke-ink-700{stroke:var(--color-ink-700)}.stroke-panel{stroke:var(--color-panel)}.stroke-series-1{stroke:var(--color-series-1)}.stroke-series-2{stroke:var(--color-series-2)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-10{padding-block:calc(var(--spacing) * 10)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-\[12vh\]{padding-top:12vh}.pr-1{padding-right:var(--spacing)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading, var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading, var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading, var(--text-lg--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading, var(--text-xl--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.leading-\[1\.6\]{--tw-leading: 1.6;line-height:1.6}.leading-\[1\.7\]{--tw-leading: 1.7;line-height:1.7}.leading-relaxed{--tw-leading: var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight: var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight: var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight: var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking: var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking: var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent{color:var(--color-accent)}.text-danger{color:var(--color-danger)}.text-ink-100{color:var(--color-ink-100)}.text-ink-200{color:var(--color-ink-200)}.text-ink-300{color:var(--color-ink-300)}.text-ink-400{color:var(--color-ink-400)}.text-ink-500{color:var(--color-ink-500)}.text-ink-600{color:var(--color-ink-600)}.text-ok{color:var(--color-ok)}.text-warn{color:var(--color-warn)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.accent-accent{accent-color:var(--color-accent)}.opacity-0{opacity:0%}.opacity-70{opacity:70%}.shadow{--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / .25));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_0_3px_color-mix\(in_oklab\,var\(--color-ok\)_28\%\,transparent\)\]{--tw-shadow: 0 0 0 3px var(--tw-shadow-color, color-mix(in srgb,#2f7d55 28%,transparent));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@supports (color: color-mix(in lab,red,red)){.shadow-\[0_0_0_3px_color-mix\(in_oklab\,var\(--color-ok\)_28\%\,transparent\)\]{--tw-shadow: 0 0 0 3px var(--tw-shadow-color, color-mix(in oklab,var(--color-ok) 28%,transparent))}}.shadow-lg{--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-\[opacity\,translate\]{transition-property:opacity,translate;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.duration-200{--tw-duration: .2s;transition-duration:.2s}.outline-none{--tw-outline-style: none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:100%}}.placeholder\:text-ink-500::placeholder{color:var(--color-ink-500)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0px}@media(hover:hover){.hover\:border-accent:hover{border-color:var(--color-accent)}.hover\:border-danger:hover{border-color:var(--color-danger)}.hover\:border-ink-500:hover{border-color:var(--color-ink-500)}.hover\:border-ink-700:hover{border-color:var(--color-ink-700)}.hover\:bg-danger:hover{background-color:var(--color-danger)}.hover\:bg-danger\/15:hover{background-color:color-mix(in srgb,#c0392f 15%,transparent)}@supports (color: color-mix(in lab,red,red)){.hover\:bg-danger\/15:hover{background-color:color-mix(in oklab,var(--color-danger) 15%,transparent)}}.hover\:bg-ink-750:hover{background-color:var(--color-ink-750)}.hover\:bg-ink-800:hover{background-color:var(--color-ink-800)}.hover\:bg-ink-850:hover{background-color:var(--color-ink-850)}.hover\:text-accent:hover{color:var(--color-accent)}.hover\:text-danger:hover{color:var(--color-danger)}.hover\:text-ink-100:hover{color:var(--color-ink-100)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:opacity-100:focus{opacity:100%}.focus-visible\:bg-danger\/15:focus-visible{background-color:color-mix(in srgb,#c0392f 15%,transparent)}@supports (color: color-mix(in lab,red,red)){.focus-visible\:bg-danger\/15:focus-visible{background-color:color-mix(in oklab,var(--color-danger) 15%,transparent)}}.focus-visible\:bg-ink-750:focus-visible{background-color:var(--color-ink-750)}.focus-visible\:text-ink-100:focus-visible{color:var(--color-ink-100)}.focus-visible\:outline-none:focus-visible{--tw-outline-style: none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:40%}.disabled\:opacity-50:disabled{opacity:50%}@media(hover:hover){.disabled\:hover\:bg-transparent:disabled:hover{background-color:transparent}}.data-\[active\]\:border-accent[data-active]{border-color:var(--color-accent)}.data-\[active\]\:text-ink-100[data-active]{color:var(--color-ink-100)}.data-\[checked\]\:translate-x-\[19px\][data-checked]{--tw-translate-x: 19px;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[checked\]\:border-accent[data-checked]{border-color:var(--color-accent)}.data-\[checked\]\:bg-accent[data-checked]{background-color:var(--color-accent)}.data-\[checked\]\:bg-white[data-checked]{background-color:var(--color-white)}.data-\[state\=closed\]\:translate-x-4[data-state=closed]{--tw-translate-x: calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=closed\]\:opacity-0[data-state=closed]{opacity:0%}.data-\[type\=error\]\:border-danger\/50[data-type=error]{border-color:color-mix(in srgb,#c0392f 50%,transparent)}@supports (color: color-mix(in lab,red,red)){.data-\[type\=error\]\:border-danger\/50[data-type=error]{border-color:color-mix(in oklab,var(--color-danger) 50%,transparent)}}.data-\[type\=success\]\:border-ok\/50[data-type=success]{border-color:color-mix(in srgb,#2f7d55 50%,transparent)}@supports (color: color-mix(in lab,red,red)){.data-\[type\=success\]\:border-ok\/50[data-type=success]{border-color:color-mix(in oklab,var(--color-ok) 50%,transparent)}}@media(width<900px){.max-sidebar\:hidden{display:none}.max-sidebar\:w-13{width:calc(var(--spacing) * 13)}}@media(width>=40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(width>=64rem){.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@starting-style{.starting\:translate-y-2{--tw-translate-y: calc(var(--spacing) * 2);translate:var(--tw-translate-x) var(--tw-translate-y)}.starting\:opacity-0{opacity:0%}}}:root[data-theme=dark]{--color-ink-950: #08090b;--color-ink-900: #0b0d10;--color-ink-850: #101318;--color-ink-800: #151920;--color-ink-750: #1b2029;--color-ink-700: #232935;--color-ink-600: #323a4a;--color-ink-500: #4b566b;--color-ink-400: #6b7689;--color-ink-300: #97a1b2;--color-ink-200: #c3cad6;--color-ink-100: #e6eaf0;--color-accent: #d97757;--color-accent-soft: #f0a888;--color-ok: #4ea87a;--color-warn: #d9a13f;--color-danger: #d9584f;--color-halt: #fbbf24;--color-stopped: #b83a3a;--color-series-1: #3987e5;--color-series-2: #d95926;--color-panel: #101318}:root{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}html,body{height:100%;margin:0;background:var(--color-ink-900);color:var(--color-ink-100);font-family:Verdana,ui-sans-serif,-apple-system,SF Pro Text,Segoe UI,system-ui,sans-serif;font-size:15px;overflow:hidden}*,*:before,*:after{box-sizing:border-box}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-ink-700);border-radius:6px;border:2px solid var(--color-ink-900)}::-webkit-scrollbar-thumb:hover{background:var(--color-ink-600)}@layer components{.mx-btn{display:inline-flex;flex-shrink:0;cursor:pointer;align-items:center;gap:calc(var(--spacing) * 1.5);border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-ink-700);background-color:var(--color-ink-800);padding-inline:calc(var(--spacing) * 2.5);padding-block:var(--spacing);font-size:13px;--tw-font-weight: var(--font-weight-medium);font-weight:var(--font-weight-medium);white-space:nowrap;color:var(--color-ink-200);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration));-webkit-user-select:none;user-select:none}.mx-btn:hover:not(:disabled){border-color:var(--color-ink-600);background-color:var(--color-ink-750);color:var(--color-ink-100)}.mx-btn:disabled{cursor:not-allowed;opacity:40%}.mx-focus:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:var(--color-accent)}}@property --tw-translate-x{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-translate-y{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-translate-z{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-rotate-x{syntax: "*"; inherits: false;}@property --tw-rotate-y{syntax: "*"; inherits: false;}@property --tw-rotate-z{syntax: "*"; inherits: false;}@property --tw-skew-x{syntax: "*"; inherits: false;}@property --tw-skew-y{syntax: "*"; inherits: false;}@property --tw-space-y-reverse{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-divide-y-reverse{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-border-style{syntax: "*"; inherits: false; initial-value: solid;}@property --tw-leading{syntax: "*"; inherits: false;}@property --tw-font-weight{syntax: "*"; inherits: false;}@property --tw-tracking{syntax: "*"; inherits: false;}@property --tw-ordinal{syntax: "*"; inherits: false;}@property --tw-slashed-zero{syntax: "*"; inherits: false;}@property --tw-numeric-figure{syntax: "*"; inherits: false;}@property --tw-numeric-spacing{syntax: "*"; inherits: false;}@property --tw-numeric-fraction{syntax: "*"; inherits: false;}@property --tw-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: "*"; inherits: false;}@property --tw-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: "*"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: "*"; inherits: false;}@property --tw-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: "*"; inherits: false;}@property --tw-inset-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: "*"; inherits: false;}@property --tw-ring-offset-width{syntax: "<length>"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: "*"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-blur{syntax: "*"; inherits: false;}@property --tw-brightness{syntax: "*"; inherits: false;}@property --tw-contrast{syntax: "*"; inherits: false;}@property --tw-grayscale{syntax: "*"; inherits: false;}@property --tw-hue-rotate{syntax: "*"; inherits: false;}@property --tw-invert{syntax: "*"; inherits: false;}@property --tw-opacity{syntax: "*"; inherits: false;}@property --tw-saturate{syntax: "*"; inherits: false;}@property --tw-sepia{syntax: "*"; inherits: false;}@property --tw-drop-shadow{syntax: "*"; inherits: false;}@property --tw-drop-shadow-color{syntax: "*"; inherits: false;}@property --tw-drop-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-drop-shadow-size{syntax: "*"; inherits: false;}@property --tw-duration{syntax: "*"; inherits: false;}@property --tw-outline-style{syntax: "*"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x: 0;--tw-translate-y: 0;--tw-translate-z: 0;--tw-rotate-x: initial;--tw-rotate-y: initial;--tw-rotate-z: initial;--tw-skew-x: initial;--tw-skew-y: initial;--tw-space-y-reverse: 0;--tw-divide-y-reverse: 0;--tw-border-style: solid;--tw-leading: initial;--tw-font-weight: initial;--tw-tracking: initial;--tw-ordinal: initial;--tw-slashed-zero: initial;--tw-numeric-figure: initial;--tw-numeric-spacing: initial;--tw-numeric-fraction: initial;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-blur: initial;--tw-brightness: initial;--tw-contrast: initial;--tw-grayscale: initial;--tw-hue-rotate: initial;--tw-invert: initial;--tw-opacity: initial;--tw-saturate: initial;--tw-sepia: initial;--tw-drop-shadow: initial;--tw-drop-shadow-color: initial;--tw-drop-shadow-alpha: 100%;--tw-drop-shadow-size: initial;--tw-duration: initial;--tw-outline-style: solid}}}
@@ -19,7 +19,7 @@ exports.CRASH_LOOP_AT = 4;
19
19
  /** Na een `kill` telt een `die` als bewust gestopt; dezelfde grens als de crashmelding. */
20
20
  const STOP_GRACE_MS = 30_000;
21
21
  /** De volgorde in de lijst: het ernstigste bovenaan. */
22
- const ORDER = { crashLoop: 0, restarting: 1, unhealthy: 2, network: 3, ports: 4 };
22
+ const ORDER = { crashLoop: 0, restarting: 1, unhealthy: 2, network: 3, ports: 4, update: 5 };
23
23
  /**
24
24
  * Hoe vaak een container het afgelopen uur uit zichzelf omviel: een `die` met een foutcode zonder
25
25
  * `kill` vlak ervoor, of een `oom`. Dezelfde regel als de crashmelding en de tab Gebeurtenissen.
@@ -59,6 +59,9 @@ async function buildAttention(sources) {
59
59
  if (container.missingNetwork !== null) {
60
60
  items.push({ kind: 'network', id, name, network: container.missingNetwork });
61
61
  }
62
+ if (container.state === 'running' && sources.updates?.has(container.image) === true) {
63
+ items.push({ kind: 'update', id, name, image: container.image });
64
+ }
62
65
  }
63
66
  // De poorten vragen een inspect per container, dus alleen waar het iets kan opleveren, en
64
67
  // tegelijk. Zonder netwerk ontbreken de poorten sowieso; dat zegt de regel over het netwerk al.