daimon 0.6.0 → 0.8.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 (59) hide show
  1. package/CHANGELOG.md +109 -0
  2. package/README.md +43 -29
  3. package/dist/cli.js +187 -74
  4. package/dist/dashboard/browser/{chunk-NN2YNLGP.js → chunk-2BXIFQGQ.js} +1 -1
  5. package/dist/dashboard/browser/chunk-3WKRVGPT.js +3 -0
  6. package/dist/dashboard/browser/chunk-44JIQO3X.js +1 -0
  7. package/dist/dashboard/browser/chunk-4BAKWDAV.js +1 -0
  8. package/dist/dashboard/browser/chunk-4OCNYL7T.js +1 -0
  9. package/dist/dashboard/browser/chunk-6WZJCF24.js +1 -0
  10. package/dist/dashboard/browser/chunk-7C772RJ3.js +3 -0
  11. package/dist/dashboard/browser/{chunk-7L4DWDGL.js → chunk-7NPLP3QD.js} +1 -1
  12. package/dist/dashboard/browser/{chunk-L63FHXGH.js → chunk-7NRE3SNA.js} +3 -3
  13. package/dist/dashboard/browser/chunk-A4BNXJUT.js +1 -0
  14. package/dist/dashboard/browser/{chunk-UNT27XFJ.js → chunk-CILFSVSP.js} +1 -1
  15. package/dist/dashboard/browser/chunk-CM4RQF3A.js +5 -0
  16. package/dist/dashboard/browser/chunk-CNSXWFDX.js +1 -0
  17. package/dist/dashboard/browser/chunk-CY5YRTQK.js +1 -0
  18. package/dist/dashboard/browser/{chunk-ESDYJ3BP.js → chunk-EIWOTZT3.js} +1 -1
  19. package/dist/dashboard/browser/chunk-GYWEXV2L.js +3 -0
  20. package/dist/dashboard/browser/chunk-H2N3RBHF.js +1 -0
  21. package/dist/dashboard/browser/chunk-H3L4MTG4.js +5 -0
  22. package/dist/dashboard/browser/chunk-I65I7J5Q.js +2 -0
  23. package/dist/dashboard/browser/chunk-K7S4ITPJ.js +2 -0
  24. package/dist/dashboard/browser/chunk-KL6X73FV.js +1 -0
  25. package/dist/dashboard/browser/chunk-KLH6B22T.js +1 -0
  26. package/dist/dashboard/browser/{chunk-U6AY7XZK.js → chunk-LBL7Z5BE.js} +4 -4
  27. package/dist/dashboard/browser/chunk-LHAMBNO6.js +1 -0
  28. package/dist/dashboard/browser/chunk-NX6DTO32.js +1 -0
  29. package/dist/dashboard/browser/chunk-OHX55ZU4.js +2 -0
  30. package/dist/dashboard/browser/chunk-P5IE6DI6.js +2 -0
  31. package/dist/dashboard/browser/chunk-P5IU57TV.js +2 -0
  32. package/dist/dashboard/browser/{chunk-VZ6E4VQY.js → chunk-Q772THBA.js} +1 -1
  33. package/dist/dashboard/browser/chunk-QSBOKS53.js +3 -0
  34. package/dist/dashboard/browser/chunk-V2KNRAE4.js +4 -0
  35. package/dist/dashboard/browser/{chunk-4ZR4NTJW.js → chunk-VM2FOT77.js} +1 -1
  36. package/dist/dashboard/browser/index.html +1 -1
  37. package/dist/dashboard/browser/main-4CQTBXSB.js +1 -0
  38. package/dist/main.js +70 -51
  39. package/dist/mcp.js +3 -3
  40. package/package.json +2 -2
  41. package/src/templates/claude/skill.md.tmpl +4 -1
  42. package/src/templates/plugins/example-doctor.mjs +45 -0
  43. package/dist/dashboard/browser/chunk-4VNZXWQZ.js +0 -3
  44. package/dist/dashboard/browser/chunk-BLNPJ4WD.js +0 -4
  45. package/dist/dashboard/browser/chunk-E3HUMJ6S.js +0 -6
  46. package/dist/dashboard/browser/chunk-EBOHC6KX.js +0 -1
  47. package/dist/dashboard/browser/chunk-JUZHAE4L.js +0 -2
  48. package/dist/dashboard/browser/chunk-K46KCL6L.js +0 -1
  49. package/dist/dashboard/browser/chunk-KDCKLTCZ.js +0 -1
  50. package/dist/dashboard/browser/chunk-MHOSWLRR.js +0 -3
  51. package/dist/dashboard/browser/chunk-N5GRSTMJ.js +0 -6
  52. package/dist/dashboard/browser/chunk-R6J2WYUD.js +0 -1
  53. package/dist/dashboard/browser/chunk-T2YKGOEM.js +0 -3
  54. package/dist/dashboard/browser/chunk-V2CQL6W5.js +0 -1
  55. package/dist/dashboard/browser/chunk-WJUGRIIZ.js +0 -1
  56. package/dist/dashboard/browser/chunk-WRBP4DQN.js +0 -4
  57. package/dist/dashboard/browser/chunk-XUU4AY4M.js +0 -2
  58. package/dist/dashboard/browser/chunk-XYVF5I5T.js +0 -1
  59. package/dist/dashboard/browser/main-ZADV4SOC.js +0 -1
@@ -0,0 +1,2 @@
1
+ import{d as ge}from"./chunk-GYWEXV2L.js";import{a as re,b as ae,c as le,d as se,e as me,g as ce,h as de,k as pe,l as ue}from"./chunk-CM4RQF3A.js";import"./chunk-P5IU57TV.js";import"./chunk-NDSAQ2HK.js";import{b as X,f as G,h as K,j as Y}from"./chunk-YYAZGY5M.js";import"./chunk-PJPGLT4T.js";import{b as Z,c as ee,d as te}from"./chunk-H3L4MTG4.js";import"./chunk-OHX55ZU4.js";import{b as ne,d as ie,e as oe}from"./chunk-Q772THBA.js";import{a as J,b as U}from"./chunk-K7S4ITPJ.js";import"./chunk-YNQPX5G6.js";import{a as z,e as H,f as Q,h as q}from"./chunk-7C772RJ3.js";import"./chunk-6WZJCF24.js";import"./chunk-KLH6B22T.js";import{b as B}from"./chunk-EIWOTZT3.js";import{h as $,i as j,j as W}from"./chunk-LBL7Z5BE.js";import{h as A}from"./chunk-Y6B6X4Y6.js";import{$b as I,Db as V,Eb as g,Fb as _,Ib as O,Jb as R,Kb as f,Lb as a,Mb as r,Nb as h,Sb as x,Ub as u,Va as T,Wb as c,_a as l,_b as N,ac as D,ea as S,gc as M,ic as s,ja as d,jc as y,ka as p,kc as b,lc as k,pb as E,ta as C,ub as L,xc as v,yc as F,za as P}from"./chunk-K43KW4K2.js";var xe=["viewport"],Ce=(i,t)=>t.name;function he(i,t){if(i&1&&(a(0,"span",7),s(1,"\xB7"),r(),a(2,"dm-mono")(3,"span",8),s(4),r()(),h(5,"dm-status-pill",9)),i&2){let e=t;l(4),y(e.name),l(),f("status",e.status)("health",e.health)}}function ve(i,t){if(i&1&&(a(0,"span",7),s(1,"\xB7"),r(),a(2,"span"),s(3),r()),i&2){let e=c();l(3),k("",e.filtered().length," / ",e.lines().length," lines")}}function ye(i,t){if(i&1){let e=x();a(0,"div",5)(1,"button",10),u("click",function(){d(e);let o=c();return p(o.togglePause())}),a(2,"mat-icon"),s(3),r(),s(4),r(),a(5,"button",11),u("click",function(){d(e);let o=c();return p(o.copyAll())}),a(6,"mat-icon"),s(7,"content_copy"),r(),s(8," Copy "),r(),a(9,"button",12),u("click",function(){d(e);let o=c();return p(o.clear())}),a(10,"mat-icon"),s(11,"delete_sweep"),r(),s(12," Clear "),r()()}if(i&2){let e=c();l(),f("matTooltip",e.paused()?"Resume":"Pause"),l(2),y(e.paused()?"play_arrow":"pause"),l(),b(" ",e.paused()?"Resume":"Pause"," ")}}function be(i,t){i&1&&h(0,"dm-empty",13)}function we(i,t){if(i&1&&(a(0,"mat-option",16),s(1),r()),i&2){let e=t.$implicit;f("value",e.name),l(),k("",e.name," (",e.status,")")}}function Se(i,t){if(i&1){let e=x();a(0,"mat-form-field",14)(1,"mat-label"),s(2,"Application"),r(),a(3,"mat-select",15),u("selectionChange",function(o){d(e);let m=c(2);return p(m.goto(o.value))}),O(4,we,2,3,"mat-option",16,Ce),r()()}if(i&2){let e=c(2);l(4),R(e.api.apps())}}function Me(i,t){if(i&1&&(a(0,"div",6)(1,"h3"),s(2,"Pick an app to tail"),r(),g(3,be,1,0,"dm-empty",13)(4,Se,6,0,"mat-form-field",14),r()),i&2){let e=c();l(3),_(e.api.apps().length===0?3:4)}}function ke(i,t){if(i&1){let e=x();a(0,"button",27),u("click",function(){d(e);let o=c(2);return p(o.filter.set(""))}),a(1,"mat-icon"),s(2,"close"),r()()}}function Pe(i,t){i&1&&(a(0,"span",22)(1,"mat-icon"),s(2,"warning"),r(),s(3),r()),i&2&&(l(3),b(" ",t," "))}function Te(i,t){if(i&1){let e=x();a(0,"button",28),u("click",function(){d(e);let o=c(2);return p(o.jumpToLatest())}),a(1,"mat-icon"),s(2,"arrow_downward"),r(),s(3," Jump to latest "),r()}}function Ee(i,t){if(i&1){let e=x();a(0,"button",30),u("click",function(){d(e);let o=c(3);return p(o.startApp())}),a(1,"mat-icon"),s(2,"play_arrow"),r(),s(3," Start app "),r()}}function Le(i,t){if(i&1&&(a(0,"dm-empty",24),g(1,Ee,4,0,"button",29),r()),i&2){let e,n=c(2);l(),_(((e=n.currentApp())==null?null:e.status)==="stopped"?1:-1)}}function Ve(i,t){i&1&&h(0,"dm-empty",25)}function Oe(i,t){if(i&1&&(a(0,"div",33)(1,"span",34),s(2),r(),h(3,"span",35),r()),i&2){let e=t.$implicit,n=c(3);V("data-sev",e.severity),l(2),y(n.fmtTs(e.ts)),l(),f("innerHTML",n.render(e.line),T)}}function Re(i,t){if(i&1){let e=x();a(0,"cdk-virtual-scroll-viewport",31,0),u("scrolledIndexChange",function(){d(e);let o=c(2);return p(o.onScroll())}),L(2,Oe,4,3,"div",32),r()}if(i&2){let e=c(2);l(2),f("cdkVirtualForOf",e.filtered())("cdkVirtualForTrackBy",e.trackTs)("cdkVirtualForTemplateCacheSize",0)}}function Ne(i,t){if(i&1){let e=x();a(0,"div",17)(1,"mat-form-field",18)(2,"mat-label"),s(3,"Filter"),r(),a(4,"input",19),u("ngModelChange",function(o){d(e);let m=c();return p(m.filter.set(o))}),r(),g(5,ke,3,0,"button",20),r(),a(6,"button",10),u("click",function(){d(e);let o=c();return p(o.useRegex.set(!o.useRegex()))}),a(7,"mat-icon"),s(8),r(),s(9," .* regex "),r(),a(10,"button",21),u("click",function(){d(e);let o=c();return p(o.jumpToNextError())}),a(11,"mat-icon"),s(12,"error"),r(),s(13," Next error "),r(),g(14,Pe,4,1,"span",22),g(15,Te,4,0,"button",23),r(),g(16,Le,2,1,"dm-empty",24)(17,Ve,1,0,"dm-empty",25)(18,Re,3,3,"cdk-virtual-scroll-viewport",26)}if(i&2){let e,n=c();l(4),f("ngModel",n.filter())("placeholder",n.useRegex()?"regex (case-insensitive)":"case-insensitive substring"),l(),_(n.filter()?5:-1),l(),M("dm-on",n.useRegex()),f("matTooltip",n.useRegex()?"Regex on \u2014 click to use substring":"Substring \u2014 click to use regex"),l(2),y(n.useRegex()?"check_circle":"pattern"),l(2),f("disabled",!n.hasNextError()),l(4),_((e=n.regexError())?14:-1,e),l(),_(n.stuckToBottom()?-1:15),l(),_(n.filtered().length===0&&n.lines().length===0?16:n.filtered().length===0?17:18)}}var w=1e3,Ie=/\x1b\[[0-9;]*m/g;function De(i){return/\berror:|\bERROR\b|\bError\b/.test(i)?"error":/\bWARN\b|\bWarning\b/.test(i)?"warn":"info"}function _e(i){let t=new Date(i),e=String(t.getHours()).padStart(2,"0"),n=String(t.getMinutes()).padStart(2,"0"),o=String(t.getSeconds()).padStart(2,"0"),m=String(t.getMilliseconds()).padStart(3,"0");return`${e}:${n}:${o}.${m}`}function Fe(i){return i.replace(/[&<>"']/g,t=>t==="&"?"&amp;":t==="<"?"&lt;":t===">"?"&gt;":t==='"'?"&quot;":"&#39;")}function Ae(i){return i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var fe=class i{name="";api=S(W);router=S(B);viewport;lines=C([]);filter=C("");useRegex=C(!1);paused=C(!1);stuckToBottom=C(!0);buffered=[];stop;rafScheduled=!1;currentApp=v(()=>this.name?this.api.byName(this.name):void 0);filterState=v(()=>{let t=this.filter();if(!t)return{pred:null,error:null};if(!this.useRegex()){let e=t.toLowerCase();return{pred:n=>n.toLowerCase().includes(e),error:null}}try{let e=new RegExp(t,"i");return{pred:n=>e.test(n),error:null}}catch(e){return{pred:null,error:e?.message??"invalid regex"}}});regexError=v(()=>this.filterState().error);filtered=v(()=>{let{pred:t}=this.filterState(),e=this.lines();return t?e.filter(n=>t(n.line)):e});hasNextError=v(()=>this.filtered().some(t=>t.severity==="error"));constructor(){F(()=>{this.filtered(),this.stuckToBottom()&&this.scrollSoon()})}ngOnChanges(t){"name"in t&&(this.teardown(),this.lines.set([]),this.buffered=[],this.filter.set(""),this.stuckToBottom.set(!0),this.name&&this.openStream())}ngOnDestroy(){this.teardown()}openStream(){let t=this.name;this.stop=this.api.openLogStream(t,({ts:e,line:n})=>{let o=(n??"").replace(Ie,""),m={ts:e,line:o,severity:De(o)};if(this.paused()){this.buffered.push(m),this.buffered.length>w&&this.buffered.splice(0,this.buffered.length-w);return}this.append([m])})}append(t){this.lines.update(e=>{let n=e.concat(t);return n.length>w?n.slice(n.length-w):n})}teardown(){this.stop?.(),this.stop=void 0}togglePause(){let t=!this.paused();if(this.paused.set(t),!t&&this.buffered.length){let e=this.buffered;this.buffered=[],this.append(e)}}clear(){this.lines.set([]),this.buffered=[]}async copyAll(){let t=this.lines().map(e=>`${_e(e.ts)} ${e.line}`).join(`
2
+ `);try{await navigator.clipboard.writeText(t)}catch{}}onScroll(){let t=this.viewport;if(!t)return;let e=t.getRenderedRange().end,n=t.getDataLength();this.stuckToBottom.set(n===0||e>=n-1)}jumpToLatest(){this.stuckToBottom.set(!0),this.scrollSoon()}jumpToNextError(){let t=this.viewport;if(!t)return;let e=this.filtered();if(e.length===0)return;let n=Math.max(0,t.getRenderedRange().end),o=-1;for(let m=n;m<e.length;m++)if(e[m].severity==="error"){o=m;break}if(o===-1){for(let m=0;m<Math.min(n,e.length);m++)if(e[m].severity==="error"){o=m;break}}o!==-1&&(this.stuckToBottom.set(!1),t.scrollToIndex(o,"smooth"))}scrollSoon(){this.rafScheduled||(this.rafScheduled=!0,requestAnimationFrame(()=>{this.rafScheduled=!1;let t=this.viewport;if(!t)return;let e=t.getDataLength();e>0&&t.scrollToIndex(e,"auto")}))}goto(t){this.router.navigateByUrl(`/logs/${encodeURIComponent(t)}`)}startApp(){this.name&&this.api.startApp(this.name)}fmtTs(t){return _e(t)}trackTs=(t,e)=>e.ts+":"+e.line.length;render(t){let e=this.filter(),n=Fe(t);if(!e)return n;try{let o=this.useRegex()?new RegExp(e,"gi"):new RegExp(Ae(e),"gi");return n.replace(o,m=>`<mark>${m}</mark>`)}catch{return n}}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=E({type:i,selectors:[["dm-logs-page"]],viewQuery:function(e,n){if(e&1&&N(xe,5),e&2){let o;I(o=D())&&(n.viewport=o.first)}},inputs:{name:"name"},features:[P],decls:13,vars:7,consts:[["viewport",""],[1,"dm-page-header"],[1,"dm-page-sub"],[1,"dm-conn"],[1,"dm-conn-dot"],[1,"dm-actions"],[1,"dm-picker"],[1,"dm-sep"],[1,"dm-app"],[3,"status","health"],["mat-stroked-button","",3,"click","matTooltip"],["mat-stroked-button","","matTooltip","Copy buffer",3,"click"],["mat-stroked-button","","matTooltip","Clear buffer",3,"click"],["icon","apps","title","No apps registered","hint","Add apps to your daimon config to see logs"],["appearance","outline",1,"dm-picker-field"],[3,"selectionChange"],[3,"value"],[1,"dm-toolbar"],["appearance","outline",1,"dm-filter"],["matInput","",3,"ngModelChange","ngModel","placeholder"],["matSuffix","","mat-icon-button",""],["mat-stroked-button","","matTooltip","Jump to next error",3,"click","disabled"],["matTooltip","Invalid regex",1,"dm-rxerr"],["mat-flat-button","","color","primary",1,"dm-jump"],["icon","terminal","title","No logs yet","hint","Start the app or wait for output"],["icon","filter_alt_off","title","No matches","hint","Adjust your filter to see lines"],["itemSize","22",1,"dm-viewport"],["matSuffix","","mat-icon-button","",3,"click"],["mat-flat-button","","color","primary",1,"dm-jump",3,"click"],["mat-flat-button","","color","primary"],["mat-flat-button","","color","primary",3,"click"],["itemSize","22",1,"dm-viewport",3,"scrolledIndexChange"],["class","dm-row",4,"cdkVirtualFor","cdkVirtualForOf","cdkVirtualForTrackBy","cdkVirtualForTemplateCacheSize"],[1,"dm-row"],[1,"dm-ts"],[1,"dm-line",3,"innerHTML"]],template:function(e,n){if(e&1&&(a(0,"div",1)(1,"div")(2,"h1"),s(3," Logs "),g(4,he,6,3),r(),a(5,"div",2)(6,"span",3),h(7,"span",4),s(8),r(),g(9,ve,4,2),r()(),g(10,ye,13,3,"div",5),r(),g(11,Me,5,1,"div",6)(12,Ne,19,11)),e&2){let o;l(4),_((o=n.currentApp())?4:-1,o),l(2),M("dm-conn-on",n.api.connected()),l(2),b(" ",n.api.connected()?"stream connected":"disconnected"," "),l(),_(n.name?9:-1),l(),_(n.name?10:-1),l(),_(n.name?12:11)}},dependencies:[A,Y,X,G,K,q,z,Q,H,se,le,re,ae,de,ce,me,ue,pe,te,ee,Z,j,$,ge,U,J,ne,ie,oe],styles:["[_nghost-%COMP%]{display:block}.dm-page-header[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.dm-sep[_ngcontent-%COMP%]{color:var(--mat-sys-outline);margin:0 .15rem}.dm-app[_ngcontent-%COMP%]{color:var(--mat-sys-primary);font-weight:500}.dm-actions[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:flex-end}.dm-conn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.35rem}.dm-conn-dot[_ngcontent-%COMP%]{width:7px;height:7px;border-radius:999px;background:var(--mat-sys-outline)}.dm-conn-on[_ngcontent-%COMP%] .dm-conn-dot[_ngcontent-%COMP%]{background:var(--mat-sys-primary);box-shadow:0 0 0 3px color-mix(in oklch,var(--mat-sys-primary) 24%,transparent)}.dm-picker[_ngcontent-%COMP%]{max-width:32rem;margin:2rem auto;text-align:center}.dm-picker[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font-weight:400;color:var(--mat-sys-on-surface-variant)}.dm-picker-field[_ngcontent-%COMP%]{width:100%}.dm-toolbar[_ngcontent-%COMP%]{display:flex;gap:1rem;align-items:center;margin-bottom:.75rem}.dm-filter[_ngcontent-%COMP%]{flex:1;max-width:28rem}.dm-jump[_ngcontent-%COMP%]{margin-left:auto}button.dm-on[_ngcontent-%COMP%]{color:var(--mat-sys-primary);border-color:var(--mat-sys-primary)}.dm-rxerr[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.25rem;color:var(--mat-sys-error);font:500 .8125rem/1rem Roboto}.dm-rxerr[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:16px;width:16px;height:16px}.dm-viewport[_ngcontent-%COMP%]{height:calc(100vh - 13rem);min-height:24rem;border:1px solid var(--mat-sys-outline-variant);border-radius:10px;background:var(--mat-sys-surface-container-lowest);contain:strict}.dm-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;height:22px;padding:0 .75rem;font-family:var(--dm-mono);font-size:.8125rem;line-height:22px;white-space:pre;border-left:3px solid transparent;color:var(--mat-sys-on-surface)}.dm-row[data-sev=error][_ngcontent-%COMP%]{border-left-color:var(--mat-sys-error);background:color-mix(in oklch,var(--mat-sys-error) 6%,transparent)}.dm-row[data-sev=warn][_ngcontent-%COMP%]{border-left-color:var(--mat-sys-tertiary);background:color-mix(in oklch,var(--mat-sys-tertiary) 5%,transparent)}.dm-ts[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant);flex:0 0 auto}.dm-line[_ngcontent-%COMP%]{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis}.dm-line[_ngcontent-%COMP%] mark{background:color-mix(in oklch,var(--mat-sys-tertiary) 35%,transparent);color:var(--mat-sys-on-tertiary-container);padding:0 2px;border-radius:3px}"],changeDetection:0})};export{fe as LogsPageComponent};
@@ -0,0 +1,2 @@
1
+ import{m as s}from"./chunk-KLH6B22T.js";import{gc as r,pb as c}from"./chunk-K43KW4K2.js";var n=(()=>{class o{_animationsDisabled=s();state="unchecked";disabled=!1;appearance="full";constructor(){}static \u0275fac=function(a){return new(a||o)};static \u0275cmp=c({type:o,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(a,e){a&2&&r("mat-pseudo-checkbox-indeterminate",e.state==="indeterminate")("mat-pseudo-checkbox-checked",e.state==="checked")("mat-pseudo-checkbox-disabled",e.disabled)("mat-pseudo-checkbox-minimal",e.appearance==="minimal")("mat-pseudo-checkbox-full",e.appearance==="full")("_mat-animation-noopable",e._animationsDisabled)},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},decls:0,vars:0,template:function(a,e){},styles:[`.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-pseudo-checkbox-minimal-selected-checkmark-color, var(--mat-sys-primary))}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full{border-color:var(--mat-pseudo-checkbox-full-unselected-icon-color, var(--mat-sys-on-surface-variant));border-width:2px;border-style:solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-disabled{border-color:var(--mat-pseudo-checkbox-full-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{background-color:var(--mat-pseudo-checkbox-full-selected-icon-color, var(--mat-sys-primary));border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{color:var(--mat-pseudo-checkbox-full-selected-checkmark-color, var(--mat-sys-on-primary))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background-color:var(--mat-pseudo-checkbox-full-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after{color:var(--mat-pseudo-checkbox-full-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}
2
+ `],encapsulation:2,changeDetection:0})}return o})();export{n as a};
@@ -1,2 +1,2 @@
1
- import{k as v}from"./chunk-U6AY7XZK.js";import{Db as h,Eb as l,Fb as d,Ob as a,Pb as s,Qb as p,Wb as u,Xb as f,Yb as g,_a as i,fc as y,ic as c,jc as m,pb as r}from"./chunk-K43KW4K2.js";var M=["*"];function _(e,o){if(e&1&&(a(0,"span",1),c(1),s()),e&2){let t=u();i(),m(t.icon)}}function E(e,o){if(e&1&&(a(0,"p",3),c(1),s()),e&2){let t=u();i(),m(t.hint)}}var b=class e{status="stopped";health="unknown";badge=()=>v({status:this.status,health:this.health});kind=()=>this.badge().kind;static \u0275fac=function(t){return new(t||e)};static \u0275cmp=r({type:e,selectors:[["dm-status-pill"]],inputs:{status:"status",health:"health"},decls:4,vars:4,consts:[[1,"dm-pill"],[1,"dm-dot"]],template:function(t,n){t&1&&(a(0,"span",0),p(1,"span",1),a(2,"span"),c(3),s()()),t&2&&(h("data-kind",n.kind()),i(),y("background",n.badge().color),i(2),m(n.badge().label))},styles:["[_nghost-%COMP%]{display:inline-flex}.dm-pill[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.4rem;padding:2px 10px;border-radius:999px;border:1px solid var(--mat-sys-outline-variant);background:var(--mat-sys-surface-container);color:var(--mat-sys-on-surface);font:500 .75rem/1rem Roboto;letter-spacing:.025rem}.dm-pill[data-kind=serving][_ngcontent-%COMP%]{background:color-mix(in oklch,var(--mat-sys-primary) 12%,transparent);border-color:color-mix(in oklch,var(--mat-sys-primary) 28%,transparent)}.dm-pill[data-kind=compiling][_ngcontent-%COMP%]{background:color-mix(in oklch,var(--mat-sys-tertiary) 14%,transparent);border-color:color-mix(in oklch,var(--mat-sys-tertiary) 28%,transparent)}.dm-pill[data-kind=starting][_ngcontent-%COMP%]{background:color-mix(in oklch,var(--mat-sys-secondary) 14%,transparent);border-color:color-mix(in oklch,var(--mat-sys-secondary) 28%,transparent)}.dm-pill[data-kind=error][_ngcontent-%COMP%]{background:color-mix(in oklch,var(--mat-sys-error) 14%,transparent);border-color:color-mix(in oklch,var(--mat-sys-error) 30%,transparent);color:var(--mat-sys-error)}.dm-dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:999px;box-shadow:0 0 0 2px color-mix(in oklch,currentColor 18%,transparent)}"],changeDetection:0})},C=class e{width="100%";height="1em";static \u0275fac=function(t){return new(t||e)};static \u0275cmp=r({type:e,selectors:[["dm-skeleton"]],inputs:{width:"width",height:"height"},decls:1,vars:4,consts:[[1,"dm-sk"]],template:function(t,n){t&1&&p(0,"span",0),t&2&&y("width",n.width)("height",n.height)},styles:[".dm-sk[_ngcontent-%COMP%]{display:inline-block;border-radius:6px;background:linear-gradient(90deg,var(--mat-sys-surface-container) 0%,var(--mat-sys-surface-container-high) 50%,var(--mat-sys-surface-container) 100%);background-size:200% 100%;animation:_ngcontent-%COMP%_dm-shimmer 1.4s linear infinite}@keyframes _ngcontent-%COMP%_dm-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media(prefers-reduced-motion:reduce){.dm-sk[_ngcontent-%COMP%]{animation:none}}"],changeDetection:0})},x=class e{icon="";title="";hint="";static \u0275fac=function(t){return new(t||e)};static \u0275cmp=r({type:e,selectors:[["dm-empty"]],inputs:{icon:"icon",title:"title",hint:"hint"},ngContentSelectors:M,decls:6,vars:3,consts:[[1,"dm-empty"],[1,"material-symbols-outlined","dm-empty-icon"],[1,"dm-empty-title"],[1,"dm-empty-hint"]],template:function(t,n){t&1&&(f(),a(0,"div",0),l(1,_,2,1,"span",1),a(2,"h3",2),c(3),s(),l(4,E,2,1,"p",3),g(5),s()),t&2&&(i(),d(n.icon?1:-1),i(2),m(n.title),i(),d(n.hint?4:-1))},styles:[".dm-empty[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:3rem 1rem;text-align:center;color:var(--mat-sys-on-surface-variant)}.dm-empty-icon[_ngcontent-%COMP%]{font-size:48px;opacity:.55}.dm-empty-title[_ngcontent-%COMP%]{font:500 1.125rem/1.5rem Roboto;color:var(--mat-sys-on-surface);margin:0}.dm-empty-hint[_ngcontent-%COMP%]{font:400 .875rem/1.25rem Roboto;max-width:36rem;margin:0}"],changeDetection:0})},k=class e{static \u0275fac=function(t){return new(t||e)};static \u0275cmp=r({type:e,selectors:[["dm-mono"]],ngContentSelectors:M,decls:2,vars:0,consts:[[1,"dm-mono"]],template:function(t,n){t&1&&(f(),a(0,"span",0),g(1),s())},styles:[".dm-mono[_ngcontent-%COMP%]{font-family:Roboto Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.875rem;letter-spacing:0}"],changeDetection:0})};var T=(()=>{class e{static \u0275fac=function(n){return new(n||e)};static \u0275cmp=r({type:e,selectors:[["structural-styles"]],decls:0,vars:0,template:function(n,P){},styles:[`.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border-width:var(--mat-focus-indicator-border-width, 3px);border-style:var(--mat-focus-indicator-border-style, solid);border-color:var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:""}@media(forced-colors: active){html{--mat-focus-indicator-display: block}}
1
+ import{k as v}from"./chunk-LBL7Z5BE.js";import{Db as h,Eb as l,Fb as d,Ob as a,Pb as s,Qb as p,Wb as u,Xb as f,Yb as g,_a as i,fc as y,ic as c,jc as m,pb as r}from"./chunk-K43KW4K2.js";var M=["*"];function _(e,o){if(e&1&&(a(0,"span",1),c(1),s()),e&2){let t=u();i(),m(t.icon)}}function E(e,o){if(e&1&&(a(0,"p",3),c(1),s()),e&2){let t=u();i(),m(t.hint)}}var b=class e{status="stopped";health="unknown";badge=()=>v({status:this.status,health:this.health});kind=()=>this.badge().kind;static \u0275fac=function(t){return new(t||e)};static \u0275cmp=r({type:e,selectors:[["dm-status-pill"]],inputs:{status:"status",health:"health"},decls:4,vars:4,consts:[[1,"dm-pill"],[1,"dm-dot"]],template:function(t,n){t&1&&(a(0,"span",0),p(1,"span",1),a(2,"span"),c(3),s()()),t&2&&(h("data-kind",n.kind()),i(),y("background",n.badge().color),i(2),m(n.badge().label))},styles:["[_nghost-%COMP%]{display:inline-flex}.dm-pill[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.4rem;padding:2px 10px;border-radius:999px;border:1px solid var(--mat-sys-outline-variant);background:var(--mat-sys-surface-container);color:var(--mat-sys-on-surface);font:500 .75rem/1rem Roboto;letter-spacing:.025rem}.dm-pill[data-kind=serving][_ngcontent-%COMP%]{background:color-mix(in oklch,var(--mat-sys-primary) 12%,transparent);border-color:color-mix(in oklch,var(--mat-sys-primary) 28%,transparent)}.dm-pill[data-kind=compiling][_ngcontent-%COMP%]{background:color-mix(in oklch,var(--mat-sys-tertiary) 14%,transparent);border-color:color-mix(in oklch,var(--mat-sys-tertiary) 28%,transparent)}.dm-pill[data-kind=starting][_ngcontent-%COMP%]{background:color-mix(in oklch,var(--mat-sys-secondary) 14%,transparent);border-color:color-mix(in oklch,var(--mat-sys-secondary) 28%,transparent)}.dm-pill[data-kind=error][_ngcontent-%COMP%]{background:color-mix(in oklch,var(--mat-sys-error) 14%,transparent);border-color:color-mix(in oklch,var(--mat-sys-error) 30%,transparent);color:var(--mat-sys-error)}.dm-dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:999px;box-shadow:0 0 0 2px color-mix(in oklch,currentColor 18%,transparent)}"],changeDetection:0})},C=class e{width="100%";height="1em";static \u0275fac=function(t){return new(t||e)};static \u0275cmp=r({type:e,selectors:[["dm-skeleton"]],inputs:{width:"width",height:"height"},decls:1,vars:4,consts:[[1,"dm-sk"]],template:function(t,n){t&1&&p(0,"span",0),t&2&&y("width",n.width)("height",n.height)},styles:[".dm-sk[_ngcontent-%COMP%]{display:inline-block;border-radius:6px;background:linear-gradient(90deg,var(--mat-sys-surface-container) 0%,var(--mat-sys-surface-container-high) 50%,var(--mat-sys-surface-container) 100%);background-size:200% 100%;animation:_ngcontent-%COMP%_dm-shimmer 1.4s linear infinite}@keyframes _ngcontent-%COMP%_dm-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media(prefers-reduced-motion:reduce){.dm-sk[_ngcontent-%COMP%]{animation:none}}"],changeDetection:0})},x=class e{icon="";title="";hint="";static \u0275fac=function(t){return new(t||e)};static \u0275cmp=r({type:e,selectors:[["dm-empty"]],inputs:{icon:"icon",title:"title",hint:"hint"},ngContentSelectors:M,decls:6,vars:3,consts:[[1,"dm-empty"],[1,"material-symbols-outlined","dm-empty-icon"],[1,"dm-empty-title"],[1,"dm-empty-hint"]],template:function(t,n){t&1&&(f(),a(0,"div",0),l(1,_,2,1,"span",1),a(2,"h3",2),c(3),s(),l(4,E,2,1,"p",3),g(5),s()),t&2&&(i(),d(n.icon?1:-1),i(2),m(n.title),i(),d(n.hint?4:-1))},styles:[".dm-empty[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:3rem 1rem;text-align:center;color:var(--mat-sys-on-surface-variant)}.dm-empty-icon[_ngcontent-%COMP%]{font-size:48px;opacity:.55}.dm-empty-title[_ngcontent-%COMP%]{font:500 1.125rem/1.5rem Roboto;color:var(--mat-sys-on-surface);margin:0}.dm-empty-hint[_ngcontent-%COMP%]{font:400 .875rem/1.25rem Roboto;max-width:36rem;margin:0}"],changeDetection:0})},k=class e{static \u0275fac=function(t){return new(t||e)};static \u0275cmp=r({type:e,selectors:[["dm-mono"]],ngContentSelectors:M,decls:2,vars:0,consts:[[1,"dm-mono"]],template:function(t,n){t&1&&(f(),a(0,"span",0),g(1),s())},styles:[".dm-mono[_ngcontent-%COMP%]{font-family:Roboto Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.875rem;letter-spacing:0}"],changeDetection:0})};var T=(()=>{class e{static \u0275fac=function(n){return new(n||e)};static \u0275cmp=r({type:e,selectors:[["structural-styles"]],decls:0,vars:0,template:function(n,P){},styles:[`.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border-width:var(--mat-focus-indicator-border-width, 3px);border-style:var(--mat-focus-indicator-border-style, solid);border-color:var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:""}@media(forced-colors: active){html{--mat-focus-indicator-display: block}}
2
2
  `],encapsulation:2,changeDetection:0})}return e})();export{T as a,b,C as c,x as d,k as e};
@@ -0,0 +1,3 @@
1
+ import{a as et,b as tt,c as it}from"./chunk-I65I7J5Q.js";import{a as Xe,b as Ge,c as Qe,d as Ye,e as Ze}from"./chunk-3WKRVGPT.js";import{a as Se,b as Me}from"./chunk-CILFSVSP.js";import{a as Ve}from"./chunk-7NPLP3QD.js";import{a as Je,b as We,c as Ue,d as Ke}from"./chunk-GYWEXV2L.js";import{a as Ae,b as Ne,c as ze,d as $e,h as je,i as Le,j as qe,k as Be,l as He}from"./chunk-CM4RQF3A.js";import"./chunk-P5IU57TV.js";import"./chunk-NDSAQ2HK.js";import{a as ye,b as we,c as xe,f as Ce,h as ke,j as Ee}from"./chunk-YYAZGY5M.js";import"./chunk-PJPGLT4T.js";import{b as Oe,c as Ie,d as Pe}from"./chunk-H3L4MTG4.js";import{d as Te}from"./chunk-OHX55ZU4.js";import{a as Fe,c as De,e as Re}from"./chunk-Q772THBA.js";import{a as be,b as ve}from"./chunk-K7S4ITPJ.js";import"./chunk-YNQPX5G6.js";import"./chunk-7C772RJ3.js";import"./chunk-6WZJCF24.js";import{m as fe}from"./chunk-KLH6B22T.js";import{c as me,h as ue,i as _e}from"./chunk-LBL7Z5BE.js";import{G as ge,P as H,h as ce,t as pe,v as he}from"./chunk-Y6B6X4Y6.js";import{$b as ne,Ca as Q,Db as O,Eb as f,Ec as le,Fb as b,Gb as ee,Hb as A,Hc as T,Ib as k,Ic as de,Jb as E,Kb as u,Lb as o,Mb as r,Nb as x,Sb as _,Tb as te,Ub as p,Wb as l,Xb as N,Ya as Y,Yb as z,_ as W,_a as c,_b as ie,a as L,aa as U,ac as ae,b as q,ca as K,db as B,ea as y,ec as S,gc as M,hc as oe,ic as d,ja as h,jc as C,ka as g,kc as P,la as X,pb as F,qb as Z,rc as re,s as R,ta as w,xc as V,za as G,zc as se}from"./chunk-K43KW4K2.js";var dt=["mat-internal-form-field",""],ct=["*"],at=(()=>{class a{labelPosition;static \u0275fac=function(t){return new(t||a)};static \u0275cmp=F({type:a,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(t,n){t&2&&M("mdc-form-field--align-end",n.labelPosition==="before")},inputs:{labelPosition:"labelPosition"},attrs:dt,ngContentSelectors:ct,decls:1,vars:0,template:function(t,n){t&1&&(N(),z(0))},styles:[`.mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-flex;align-items:center;vertical-align:middle}.mat-internal-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mat-internal-form-field>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end .mdc-form-field--align-end label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0}
2
+ `],encapsulation:2,changeDetection:0})}return a})();var mt=["switch"],pt=["*"];function ht(a,i){a&1&&(o(0,"span",11),X(),o(1,"svg",13),x(2,"path",14),r(),o(3,"svg",15),x(4,"path",16),r()())}var gt=new K("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1,hideIcon:!1,disabledInteractive:!1})}),$=class{source;checked;constructor(i,e){this.source=i,this.checked=e}},J=(()=>{class a{_elementRef=y(Q);_focusMonitor=y(pe);_changeDetectorRef=y(le);defaults=y(gt);_onChange=e=>{};_onTouched=()=>{};_validatorOnChange=()=>{};_uniqueId;_checked=!1;_createChangeEvent(e){return new $(this,e)}_labelId;get buttonId(){return`${this.id||this._uniqueId}-button`}_switchElement;focus(){this._switchElement.nativeElement.focus()}_noopAnimations=fe();_focused;name=null;id;labelPosition="after";ariaLabel=null;ariaLabelledby=null;ariaDescribedby;required;color;disabled=!1;disableRipple=!1;tabIndex=0;get checked(){return this._checked}set checked(e){this._checked=e,this._changeDetectorRef.markForCheck()}hideIcon;disabledInteractive;change=new B;toggleChange=new B;get inputId(){return`${this.id||this._uniqueId}-input`}constructor(){y(he).load(Fe);let e=y(new se("tabindex"),{optional:!0}),t=this.defaults;this.tabIndex=e==null?0:parseInt(e)||0,this.color=t.color||"accent",this.id=this._uniqueId=y(ge).getId("mat-mdc-slide-toggle-"),this.hideIcon=t.hideIcon??!1,this.disabledInteractive=t.disabledInteractive??!1,this._labelId=this._uniqueId+"-label"}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{e==="keyboard"||e==="program"?(this._focused=!0,this._changeDetectorRef.markForCheck()):e||Promise.resolve().then(()=>{this._focused=!1,this._onTouched(),this._changeDetectorRef.markForCheck()})})}ngOnChanges(e){e.required&&this._validatorOnChange()}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}writeValue(e){this.checked=!!e}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}validate(e){return this.required&&e.value!==!0?{required:!0}:null}registerOnValidatorChange(e){this._validatorOnChange=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck()}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(this._createChangeEvent(this.checked))}_handleClick(){this.disabled||(this.toggleChange.emit(),this.defaults.disableToggleValue||(this.checked=!this.checked,this._onChange(this.checked),this.change.emit(new $(this,this.checked))))}_getAriaLabelledBy(){return this.ariaLabelledby?this.ariaLabelledby:this.ariaLabel?null:this._labelId}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=F({type:a,selectors:[["mat-slide-toggle"]],viewQuery:function(t,n){if(t&1&&ie(mt,5),t&2){let s;ne(s=ae())&&(n._switchElement=s.first)}},hostAttrs:[1,"mat-mdc-slide-toggle"],hostVars:13,hostBindings:function(t,n){t&2&&(te("id",n.id),O("tabindex",null)("aria-label",null)("name",null)("aria-labelledby",null),oe(n.color?"mat-"+n.color:""),M("mat-mdc-slide-toggle-focused",n._focused)("mat-mdc-slide-toggle-checked",n.checked)("_mat-animation-noopable",n._noopAnimations))},inputs:{name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],required:[2,"required","required",T],color:"color",disabled:[2,"disabled","disabled",T],disableRipple:[2,"disableRipple","disableRipple",T],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?0:de(e)],checked:[2,"checked","checked",T],hideIcon:[2,"hideIcon","hideIcon",T],disabledInteractive:[2,"disabledInteractive","disabledInteractive",T]},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],features:[re([{provide:ye,useExisting:W(()=>a),multi:!0},{provide:xe,useExisting:a,multi:!0}]),G],ngContentSelectors:pt,decls:14,vars:27,consts:[["switch",""],["mat-internal-form-field","",3,"labelPosition"],["role","switch","type","button",1,"mdc-switch",3,"click","tabIndex","disabled"],[1,"mat-mdc-slide-toggle-touch-target"],[1,"mdc-switch__track"],[1,"mdc-switch__handle-track"],[1,"mdc-switch__handle"],[1,"mdc-switch__shadow"],[1,"mdc-elevation-overlay"],[1,"mdc-switch__ripple"],["mat-ripple","",1,"mat-mdc-slide-toggle-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-switch__icons"],[1,"mdc-label",3,"click","for"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--on"],["d","M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--off"],["d","M20 13H4v-2h16v2z"]],template:function(t,n){if(t&1){let s=_();N(),o(0,"div",1)(1,"button",2,0),p("click",function(){return h(s),g(n._handleClick())}),x(3,"div",3)(4,"span",4),o(5,"span",5)(6,"span",6)(7,"span",7),x(8,"span",8),r(),o(9,"span",9),x(10,"span",10),r(),f(11,ht,5,0,"span",11),r()()(),o(12,"label",12),p("click",function(v){return h(s),g(v.stopPropagation())}),z(13),r()()}if(t&2){let s=S(2);u("labelPosition",n.labelPosition),c(),M("mdc-switch--selected",n.checked)("mdc-switch--unselected",!n.checked)("mdc-switch--checked",n.checked)("mdc-switch--disabled",n.disabled)("mat-mdc-slide-toggle-disabled-interactive",n.disabledInteractive),u("tabIndex",n.disabled&&!n.disabledInteractive?-1:n.tabIndex)("disabled",n.disabled&&!n.disabledInteractive),O("id",n.buttonId)("name",n.name)("aria-label",n.ariaLabel)("aria-labelledby",n._getAriaLabelledBy())("aria-describedby",n.ariaDescribedby)("aria-required",n.required||null)("aria-checked",n.checked)("aria-disabled",n.disabled&&n.disabledInteractive?"true":null),c(9),u("matRippleTrigger",s)("matRippleDisabled",n.disableRipple||n.disabled)("matRippleCentered",!0),c(),b(n.hideIcon?-1:11),c(),u("for",n.buttonId),O("id",n._labelId)}},dependencies:[Te,at],styles:[`.mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative;width:var(--mat-slide-toggle-track-width, 52px)}.mdc-switch.mdc-switch--disabled{cursor:default;pointer-events:none}.mdc-switch.mat-mdc-slide-toggle-disabled-interactive{pointer-events:auto}.mdc-switch__track{overflow:hidden;position:relative;width:100%;height:var(--mat-slide-toggle-track-height, 32px);border-radius:var(--mat-slide-toggle-track-shape, var(--mat-sys-corner-full))}.mdc-switch--disabled.mdc-switch .mdc-switch__track{opacity:var(--mat-slide-toggle-disabled-track-opacity, 0.12)}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;width:100%;border-width:var(--mat-slide-toggle-track-outline-width, 2px);border-color:var(--mat-slide-toggle-track-outline-color, var(--mat-sys-outline))}.mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track::after{border-width:var(--mat-slide-toggle-selected-track-outline-width, 2px);border-color:var(--mat-slide-toggle-selected-track-outline-color, transparent)}.mdc-switch--disabled .mdc-switch__track::before,.mdc-switch--disabled .mdc-switch__track::after{border-width:var(--mat-slide-toggle-disabled-unselected-track-outline-width, 2px);border-color:var(--mat-slide-toggle-disabled-unselected-track-outline-color, var(--mat-sys-on-surface))}@media(forced-colors: active){.mdc-switch__track{border-color:currentColor}}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0);background:var(--mat-slide-toggle-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch--selected .mdc-switch__track::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-slide-toggle-hidden-track-opacity, 0);transition:var(--mat-slide-toggle-hidden-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::before{opacity:var(--mat-slide-toggle-visible-track-opacity, 1);transition:var(--mat-slide-toggle-visible-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mat-slide-toggle-unselected-hover-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mat-slide-toggle-unselected-focus-track-color, var(--mat-sys-surface-variant))}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mat-slide-toggle-unselected-pressed-track-color, var(--mat-sys-surface-variant))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::before,.mdc-switch.mdc-switch--disabled .mdc-switch__track::before{background:var(--mat-slide-toggle-disabled-unselected-track-color, var(--mat-sys-surface-variant))}.mdc-switch__track::after{transform:translateX(-100%);background:var(--mat-slide-toggle-selected-track-color, var(--mat-sys-primary))}[dir=rtl] .mdc-switch__track::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::after{transform:translateX(0)}.mdc-switch--selected .mdc-switch__track::after{opacity:var(--mat-slide-toggle-visible-track-opacity, 1);transition:var(--mat-slide-toggle-visible-track-transition, opacity 75ms)}.mdc-switch--unselected .mdc-switch__track::after{opacity:var(--mat-slide-toggle-hidden-track-opacity, 0);transition:var(--mat-slide-toggle-hidden-track-transition, opacity 75ms)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mat-slide-toggle-selected-hover-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mat-slide-toggle-selected-focus-track-color, var(--mat-sys-primary))}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mat-slide-toggle-selected-pressed-track-color, var(--mat-sys-primary))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::after,.mdc-switch.mdc-switch--disabled .mdc-switch__track::after{background:var(--mat-slide-toggle-disabled-selected-track-color, var(--mat-sys-on-surface))}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0);width:calc(100% - var(--mat-slide-toggle-handle-width))}[dir=rtl] .mdc-switch__handle-track{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto;transition:width 75ms cubic-bezier(0.4, 0, 0.2, 1),height 75ms cubic-bezier(0.4, 0, 0.2, 1),margin 75ms cubic-bezier(0.4, 0, 0.2, 1);width:var(--mat-slide-toggle-handle-width);height:var(--mat-slide-toggle-handle-height);border-radius:var(--mat-slide-toggle-handle-shape, var(--mat-sys-corner-full))}[dir=rtl] .mdc-switch__handle{left:auto;right:0}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-slide-toggle-unselected-handle-size, 16px);height:var(--mat-slide-toggle-unselected-handle-size, 16px);margin:var(--mat-slide-toggle-unselected-handle-horizontal-margin, 0 8px)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-slide-toggle-unselected-with-icon-handle-horizontal-margin, 0 4px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{width:var(--mat-slide-toggle-selected-handle-size, 24px);height:var(--mat-slide-toggle-selected-handle-size, 24px);margin:var(--mat-slide-toggle-selected-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-slide-toggle-selected-with-icon-handle-horizontal-margin, 0 24px)}.mat-mdc-slide-toggle .mdc-switch__handle:has(.mdc-switch__icons){width:var(--mat-slide-toggle-with-icon-handle-size, 24px);height:var(--mat-slide-toggle-with-icon-handle-size, 24px)}.mat-mdc-slide-toggle .mdc-switch:active:not(.mdc-switch--disabled) .mdc-switch__handle{width:var(--mat-slide-toggle-pressed-handle-size, 28px);height:var(--mat-slide-toggle-pressed-handle-size, 28px)}.mat-mdc-slide-toggle .mdc-switch--selected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-slide-toggle-selected-pressed-handle-horizontal-margin, 0 22px)}.mat-mdc-slide-toggle .mdc-switch--unselected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-slide-toggle-unselected-pressed-handle-horizontal-margin, 0 2px)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__handle::after{opacity:var(--mat-slide-toggle-disabled-selected-handle-opacity, 1)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__handle::after{opacity:var(--mat-slide-toggle-disabled-unselected-handle-opacity, 0.38)}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}@media(forced-colors: active){.mdc-switch__handle::before,.mdc-switch__handle::after{border-color:currentColor}}.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mat-slide-toggle-selected-handle-color, var(--mat-sys-on-primary))}.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mat-slide-toggle-selected-hover-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mat-slide-toggle-selected-focus-handle-color, var(--mat-sys-primary-container))}.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mat-slide-toggle-selected-pressed-handle-color, var(--mat-sys-primary-container))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:hover:not(:focus):not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:focus:not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:active .mdc-switch__handle::after,.mdc-switch--selected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mat-slide-toggle-disabled-selected-handle-color, var(--mat-sys-surface))}.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mat-slide-toggle-unselected-handle-color, var(--mat-sys-outline))}.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mat-slide-toggle-unselected-hover-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mat-slide-toggle-unselected-focus-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mat-slide-toggle-unselected-pressed-handle-color, var(--mat-sys-on-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mat-slide-toggle-disabled-unselected-handle-color, var(--mat-sys-on-surface))}.mdc-switch__handle::before{background:var(--mat-slide-toggle-handle-surface-color)}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mat-slide-toggle-handle-elevation-shadow)}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__shadow,.mdc-switch.mdc-switch--disabled .mdc-switch__shadow{box-shadow:var(--mat-slide-toggle-disabled-handle-elevation-shadow)}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1;width:var(--mat-slide-toggle-state-layer-size, 40px);height:var(--mat-slide-toggle-state-layer-size, 40px)}.mdc-switch__ripple::after{content:"";opacity:0}.mdc-switch--disabled .mdc-switch__ripple::after{display:none}.mat-mdc-slide-toggle-disabled-interactive .mdc-switch__ripple::after{display:block}.mdc-switch:hover .mdc-switch__ripple::after{transition:75ms opacity cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:focus .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:active .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:hover:not(:focus) .mdc-switch__ripple::after,.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mat-slide-toggle-unselected-hover-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mat-slide-toggle-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background:var(--mat-slide-toggle-unselected-focus-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mat-slide-toggle-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background:var(--mat-slide-toggle-unselected-pressed-state-layer-color, var(--mat-sys-on-surface));opacity:var(--mat-slide-toggle-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mat-slide-toggle-selected-hover-state-layer-color, var(--mat-sys-primary));opacity:var(--mat-slide-toggle-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background:var(--mat-slide-toggle-selected-focus-state-layer-color, var(--mat-sys-primary));opacity:var(--mat-slide-toggle-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background:var(--mat-slide-toggle-selected-pressed-state-layer-color, var(--mat-sys-primary));opacity:var(--mat-slide-toggle-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch__icons{position:relative;height:100%;width:100%;z-index:1;transform:translateZ(0)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__icons{opacity:var(--mat-slide-toggle-disabled-unselected-icon-opacity, 0.38)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__icons{opacity:var(--mat-slide-toggle-disabled-selected-icon-opacity, 0.38)}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--unselected .mdc-switch__icon{width:var(--mat-slide-toggle-unselected-icon-size, 16px);height:var(--mat-slide-toggle-unselected-icon-size, 16px);fill:var(--mat-slide-toggle-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mat-slide-toggle-disabled-unselected-icon-color, var(--mat-sys-surface-variant))}.mdc-switch--selected .mdc-switch__icon{width:var(--mat-slide-toggle-selected-icon-size, 16px);height:var(--mat-slide-toggle-selected-icon-size, 16px);fill:var(--mat-slide-toggle-selected-icon-color, var(--mat-sys-on-primary-container))}.mdc-switch--selected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mat-slide-toggle-disabled-selected-icon-color, var(--mat-sys-on-surface))}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle{-webkit-user-select:none;user-select:none;display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-focus-indicator::before{content:""}.mat-mdc-slide-toggle .mat-internal-form-field{color:var(--mat-slide-toggle-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-slide-toggle-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-slide-toggle-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-slide-toggle-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-slide-toggle-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-slide-toggle-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mat-slide-toggle-disabled-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-slide-toggle-touch-target{position:absolute;top:50%;left:50%;height:var(--mat-slide-toggle-touch-target-size, 48px);width:100%;transform:translate(-50%, -50%);display:var(--mat-slide-toggle-touch-target-display, block)}[dir=rtl] .mat-mdc-slide-toggle-touch-target{left:auto;right:50%;transform:translate(50%, -50%)}
3
+ `],encapsulation:2,changeDetection:0})}return a})(),ot=(()=>{class a{static \u0275fac=function(t){return new(t||a)};static \u0275mod=Z({type:a});static \u0275inj=U({imports:[J,H,H]})}return a})();var j=[{id:"network",title:"Network",icon:"lan",description:"Ports and bind behavior. daimon always binds to 127.0.0.1 \u2014 never the LAN.",fields:[{key:"apiPort",label:"API port",kind:"number",help:"The port the daimon daemon serves the HTTP API and dashboard on. Default 4999. If something else is on this port, daimon refuses to start.",min:1024,max:65535,restartRequired:!0},{key:"portRange",label:"Dev server port range",kind:"number-pair",help:"Range of ports daimon hands out to apps when their config does not pin one. Ports outside this range will not be auto-assigned, but explicit pins in overrides[].port still work.",min:1024,max:65535},{key:"headless",label:"Headless mode",kind:"boolean",help:"When ON, daimon never opens the TUI in this daemon instance \u2014 useful when running as a background service. The CLI still works the same.",restartRequired:!0}]},{id:"discovery",title:"Discovery",icon:"travel_explore",description:"Which folders daimon scans for Angular / Nx / Vite / Storybook projects.",fields:[{key:"searchRoots",label:"Search roots",kind:"path-objects",help:"Absolute paths to workspace folders. daimon will look for nx.json / angular.json / vite.config.* / .storybook in each. Soft-reloaded on save \u2014 no daemon restart needed.",placeholder:"C:\\path\\to\\workspace"}]},{id:"apps",title:"Apps",icon:"apps",description:"Which apps run automatically and what runs together.",fields:[{key:"autoStart",label:"Auto-start apps",kind:"string-array",help:"Apps to start automatically when the daemon spawns. Match the discovered app names. Empty list means nothing auto-starts.",placeholder:"app-name"},{key:"cascadeRestart",label:"Cascade restart on error",kind:"boolean",help:"When ON, an app entering error state restarts any apps that depend on it. Use with caution if you have noisy compile errors."}]},{id:"healthProbe",title:"Health probe",icon:"monitor_heart",description:'How daimon decides an app is "healthy" \u2014 a HEAD/GET against the announced URL.',fields:[{key:"healthProbe.enabled",label:"Enabled",kind:"boolean",help:'Master switch. When OFF, "serving" is treated as the terminal state for daimon wait / daimon ensure.'},{key:"healthProbe.intervalMs",label:"Interval",kind:"number",help:"How often to re-probe a serving app. Lower values catch outages faster but spend CPU.",min:1e3,max:6e5,unit:"ms"},{key:"healthProbe.timeoutMs",label:"Per-probe timeout",kind:"number",help:"How long to wait for a single probe response before marking unhealthy.",min:200,max:3e4,unit:"ms"},{key:"healthProbe.path",label:"Path",kind:"string",help:'URL path to probe. "/" is fine for most apps; some Nx apps need "/index.html" or a custom health route.',placeholder:"/"},{key:"healthProbe.host",label:"Host override",kind:"string",help:'Optional. Force a specific host (e.g. "127.0.0.1") instead of what the dev server announced. Leave blank to use the announced host.',placeholder:"(announced)"},{key:"healthProbe.scheme",label:"Scheme override",kind:"enum",enumValues:["(announced)","http","https"],help:'Force a specific scheme. Leave on "(announced)" to use whatever the dev server printed in its "Local:" line.'},{key:"healthProbe.rejectUnauthorized",label:"Strict HTTPS certs",kind:"boolean",help:"When OFF, self-signed certs (mkcert, Vite's auto-cert) are accepted. v0.5 forces this OFF for loopback hosts regardless \u2014 this setting only affects off-loopback probes."}]},{id:"autoRestart",title:"Auto-restart",icon:"restart_alt",description:"How daimon recovers from crashed dev servers.",fields:[{key:"autoRestart.enabled",label:"Enabled",kind:"boolean",help:"When ON, daimon respawns an app that exits non-zero, up to the cap below."},{key:"autoRestart.maxAttempts",label:"Max attempts per window",kind:"number",help:"Stops retrying after this many consecutive restarts inside the time window. Prevents thrashing.",min:1,max:50},{key:"autoRestart.windowMs",label:"Retry window",kind:"number",help:'Time window over which max-attempts is counted. Resets after a successful "serving" state.',min:1e4,max:36e5,unit:"ms"}]},{id:"history",title:"History",icon:"history",description:"Persistent SQLite database of events, compile times, and task runs.",fields:[{key:"history.enabled",label:"Enabled",kind:"boolean",help:"When OFF, daimon still tracks live state but does not persist history across daemon restarts.",restartRequired:!0},{key:"history.path",label:"Database path",kind:"path",help:"Where the SQLite file lives. Defaults to ~/.daimon/history.db. Use forward slashes or the path syntax of your OS.",restartRequired:!0},{key:"history.retentionDays",label:"Retention",kind:"number",help:"Days of history to keep. Older rows are purged at startup. 0 disables pruning.",min:0,max:3650,unit:"days"}]},{id:"notifications",title:"Desktop notifications",icon:"notifications",description:"OS notifications via node-notifier. Disable if they're too noisy.",fields:[{key:"notifications.enabled",label:"Enabled",kind:"boolean",help:"Master switch for desktop notifications."},{key:"notifications.onError",label:"On compile error",kind:"boolean",help:'Notify when an app transitions into "error" state.'},{key:"notifications.onUnhealthy",label:"On health failure",kind:"boolean",help:"Notify when an app fails its health probe enough times to flip to unhealthy."},{key:"notifications.tray",label:"Show tray icon",kind:"boolean",help:"Reserve space in the OS tray (where supported). Most users leave this off."}]},{id:"staleDetect",title:"Stale detection",icon:"hourglass_empty",description:"Flag apps that have gone quiet without printing anything.",fields:[{key:"staleDetect.enabled",label:"Enabled",kind:"boolean",help:'When ON, daimon marks an app "stale" if it has not printed output for the duration below \u2014 useful for catching hung dev servers.'},{key:"staleDetect.silentMs",label:"Silent threshold",kind:"number",help:"Quiet duration before marking stale. Most dev servers print at least heartbeats, so 30s is a safe default.",min:5e3,max:6e5,unit:"ms"}]},{id:"logs",title:"Log persistence",icon:"description",description:"Save app stdout/stderr to disk for later inspection.",fields:[{key:"logs.enabled",label:"Enabled",kind:"boolean",help:"When ON, daimon writes per-app log files to the directory below. Default OFF \u2014 daimon already keeps the last 500 lines per app in memory for the dashboard."},{key:"logs.dir",label:"Directory",kind:"path",help:"Where rotated log files live. Defaults to ~/.daimon/logs."},{key:"logs.maxFiles",label:"Files per app",kind:"number",help:"Rotation depth. After this many files, the oldest is deleted.",min:1,max:100},{key:"logs.maxBytesPerFile",label:"Max size per file",kind:"number",help:"Rotate when a single file reaches this many bytes. 10000000 = 10 MB.",min:1e5,max:1e9,unit:"bytes"}]},{id:"requestLog",title:"Request log (proxy)",icon:"compare_arrows",description:"Reverse-proxy your dev server through a sibling port to capture every HTTP request.",fields:[{key:"requestLog.enabled",label:"Enabled",kind:"boolean",help:"When ON, daimon proxies the dev server on a sibling port (announced port + offset). The Requests page becomes useful. OFF by default because it adds a hop.",restartRequired:!0},{key:"requestLog.portOffset",label:"Proxy port offset",kind:"number",help:"Added to the app's dev-server port to compute the proxy port (e.g. dev=4200 + offset=1000 \u2192 5200).",min:100,max:5e4,restartRequired:!0}]},{id:"metrics",title:"Prometheus metrics",icon:"monitoring",description:"Expose CPU / memory / status / compile-time as Prometheus text on /metrics.",fields:[{key:"metrics.enabled",label:"Enabled",kind:"boolean",help:"Turn this on if you scrape the dashboard with Prometheus. The /metrics endpoint stays loopback-only \u2014 no remote scraping."}]},{id:"dashboard",title:"Dashboard",icon:"tune",description:"How this web UI looks. Applies after page reload.",fields:[{key:"dashboard.theme",label:"Theme",kind:"enum",enumValues:["auto","light","dark"],help:'"auto" follows your OS preference. The theme toggle in the topbar overrides this per-browser via localStorage.'},{key:"dashboard.density",label:"Density",kind:"enum",enumValues:["comfortable","compact"],help:"Material 3 density. Compact shows more rows per screen at the cost of click targets."}]},{id:"output",title:"CLI output",icon:"terminal",description:"Defaults for the daimon CLI (the `daimon list` / `status` / `errors` you invoke from a shell).",fields:[{key:"output.format",label:"Default format",kind:"enum",enumValues:["compact","full"],help:'"compact" returns ~10 fields per app, optimized for agents. "full" returns the v0.4 verbose shape. The --full / --compact flags at the call site always win.'},{key:"output.ndjson",label:"Default NDJSON",kind:"boolean",help:"When ON, `daimon list` emits one JSON record per line instead of a single JSON array."}]},{id:"doctor",title:"Doctor auto-fix",icon:"medical_services",description:"Which repair routines `daimon doctor --auto-fix` is allowed to run.",fields:[{key:"doctor.autoFix.onInit",label:"Run after `daimon init`",kind:"boolean",help:"When ON, daimon will run auto-fix at the end of `daimon init`. Most users leave this OFF \u2014 init only writes a config file and doesn't need fixes."},{key:"doctor.autoFix.permitted",label:"Allowed routines",kind:"string-array",help:"Subset of: orphan-daemon, stale-lock, missing-search-root, corrupt-history-db. Removing a name disables that routine entirely."}]},{id:"editor",title:"Editor integration",icon:"edit_note",description:"How clicking on error file paths opens your editor.",fields:[{key:"editor.scheme",label:"URL scheme",kind:"enum",enumValues:["vscode","vscode-insiders","cursor","jetbrains"],help:"When you click a file:line:col in the dashboard, daimon opens `<scheme>://file/<path>:<line>:<col>`. Pick the editor you actually use."}]},{id:"auth",title:"API authentication",icon:"lock",description:"Optional bearer token. Most users leave this empty since daimon is loopback-only.",fields:[{key:"apiToken",label:"Bearer token",kind:"token",help:"When set, mutating endpoints require an Authorization: Bearer <token> header. The CLI reads this from DAIMON_TOKEN env var. Leave blank if you trust everything on this machine.",restartRequired:!0}]}];function I(a,i){let e=i.split("."),t=a;for(let n of e){if(t==null)return;t=t[n]}return t}function rt(a,i,e){let t=i.split("."),n=a;for(let s=0;s<t.length-1;s++){let m=t[s];(n[m]==null||typeof n[m]!="object")&&(n[m]={}),n=n[m]}n[t[t.length-1]]=e}var _t=(a,i)=>i.id,ft=(a,i)=>i.key;function bt(a,i){if(a&1&&(d(0," \xB7 "),o(1,"dm-mono"),d(2),r()),a&2){let e=l();c(2),P("etag ",e.etag().slice(0,8))}}function vt(a,i){if(a&1){let e=_();o(0,"button",18),p("click",function(){h(e);let n=l();return g(n.discard())}),o(1,"mat-icon",7),d(2,"undo"),r(),d(3," Discard "),r()}}function yt(a,i){a&1&&x(0,"mat-spinner",12)}function wt(a,i){a&1&&(o(0,"mat-icon",7),d(1,"save"),r())}function xt(a,i){if(a&1){let e=_();o(0,"div",13)(1,"mat-icon",7),d(2,"sync_problem"),r(),o(3,"div")(4,"strong"),d(5,"Config changed elsewhere."),r(),d(6," Your local edits are stale. Reload to pull the latest, then re-apply. "),r(),o(7,"button",19),p("click",function(){h(e);let n=l();return g(n.reload())}),d(8,"Reload"),r()()}}function Ct(a,i){if(a&1&&(o(0,"span",20)(1,"dm-mono"),d(2),r()()),a&2){let e=i.$implicit;c(2),C(e)}}function kt(a,i){if(a&1&&(o(0,"div",14)(1,"mat-icon",7),d(2,"restart_alt"),r(),o(3,"div")(4,"strong"),d(5,"Some changes need a daemon restart to take effect."),r(),k(6,Ct,3,1,"span",20,A),r(),x(8,"span"),r()),a&2){let e=l();c(6),E(e.restartHints())}}function Et(a,i){a&1&&(o(0,"div",15),x(1,"dm-skeleton",21)(2,"dm-skeleton",22)(3,"dm-skeleton",22)(4,"dm-skeleton",22),r())}function St(a,i){a&1&&(o(0,"span",32),d(1,"restart"),r())}function Mt(a,i){a&1&&(o(0,"span",33),d(1,"modified"),r())}function Tt(a,i){if(a&1){let e=_();o(0,"mat-slide-toggle",41),p("change",function(n){h(e);let s=l().$implicit,m=l(3);return g(m.setVal(s.key,n.checked))}),d(1),r()}if(a&2){let e=l().$implicit,t=l(3);u("checked",!!t.getVal(e.key)),c(),P(" ",t.getVal(e.key)?"On":"Off"," ")}}function Ft(a,i){if(a&1&&(o(0,"span",43),d(1),r()),a&2){let e=l(2).$implicit;c(),C(e.unit)}}function Ot(a,i){if(a&1){let e=_();o(0,"mat-form-field",36)(1,"input",42),p("input",function(n){h(e);let s=l().$implicit,m=l(3);return g(m.setVal(s.key,m.toNum(n.target.value)))}),r(),f(2,Ft,2,1,"span",43),r()}if(a&2){let e=l().$implicit,t=l(3);c(),u("min",e.min??null)("max",e.max??null)("value",t.getVal(e.key)),c(),b(e.unit?2:-1)}}function It(a,i){if(a&1){let e=_();o(0,"div",37)(1,"mat-form-field",36)(2,"mat-label"),d(3,"min"),r(),o(4,"input",42),p("input",function(n){h(e);let s=l().$implicit,m=l(3);return g(m.setPairIdx(s.key,0,m.toNum(n.target.value)))}),r()(),o(5,"span",44),d(6,"\u2013"),r(),o(7,"mat-form-field",36)(8,"mat-label"),d(9,"max"),r(),o(10,"input",42),p("input",function(n){h(e);let s=l().$implicit,m=l(3);return g(m.setPairIdx(s.key,1,m.toNum(n.target.value)))}),r()()()}if(a&2){let e=l().$implicit,t=l(3);c(4),u("min",e.min??null)("max",e.max??null)("value",t.getPair(e.key)[0]),c(6),u("min",e.min??null)("max",e.max??null)("value",t.getPair(e.key)[1])}}function Pt(a,i){if(a&1){let e=_();o(0,"mat-form-field",36)(1,"input",45),p("input",function(n){h(e);let s=l().$implicit,m=l(3);return g(m.setVal(s.key,n.target.value||(s.kind==="string"?"":null)))}),r()()}if(a&2){let e=l().$implicit,t=l(3);c(),u("placeholder",e.placeholder??"")("value",t.getStrOrEmpty(e.key))}}function Vt(a,i){if(a&1){let e=_();o(0,"mat-form-field",36)(1,"input",46),p("input",function(n){h(e);let s=l().$implicit,m=l(3);return g(m.setVal(s.key,n.target.value))}),r()()}if(a&2){let e=l().$implicit,t=l(3);c(),u("placeholder",e.placeholder??"")("value",t.getStrOrEmpty(e.key))}}function Dt(a,i){if(a&1){let e=_();o(0,"mat-form-field",36)(1,"input",47),p("input",function(n){h(e);let s=l().$implicit,m=l(3);return g(m.setVal(s.key,n.target.value||null))}),r(),o(2,"button",48),p("click",function(){h(e);let n=l(4);return g(n.showToken.set(!n.showToken()))}),o(3,"mat-icon",7),d(4),r()()()}if(a&2){let e=l().$implicit,t=l(3);c(),u("type",t.showToken()?"text":"password")("placeholder","(unset)")("value",t.getStrOrEmpty(e.key)),c(),O("aria-label",t.showToken()?"Hide token":"Show token"),c(2),C(t.showToken()?"visibility_off":"visibility")}}function Rt(a,i){if(a&1&&(o(0,"mat-button-toggle",49),d(1),r()),a&2){let e=i.$implicit;u("value",e),c(),C(e)}}function At(a,i){if(a&1){let e=_();o(0,"mat-button-toggle-group",5),p("change",function(n){h(e);let s=l().$implicit,m=l(3);return g(m.setEnum(s,n.value))}),k(1,Rt,2,2,"mat-button-toggle",49,A),r()}if(a&2){let e=l().$implicit,t=l(3);u("value",t.enumValue(e.key,e)),c(),E(e.enumValues)}}function Nt(a,i){if(a&1){let e=_();o(0,"mat-chip",53),p("removed",function(){let n=h(e).$index,s=l(2).$implicit,m=l(3);return g(m.removeAt(s.key,n))}),o(1,"dm-mono"),d(2),r(),o(3,"button",54)(4,"mat-icon",7),d(5,"cancel"),r()()()}if(a&2){let e=i.$implicit;u("removable",!0),c(2),C(e)}}function zt(a,i){if(a&1){let e=_();o(0,"div",39)(1,"mat-chip-set"),k(2,Nt,6,2,"mat-chip",50,A),r(),o(4,"mat-form-field",51)(5,"input",52,0),p("keydown.enter",function(n){h(e);let s=S(6),m=l().$implicit;return l(3).addItem(m.key,s.value),s.value="",g(n.preventDefault())}),r(),o(7,"button",48),p("click",function(){h(e);let n=S(6),s=l().$implicit;return l(3).addItem(s.key,n.value),g(n.value="")}),o(8,"mat-icon",7),d(9,"add"),r()()()()}if(a&2){let e=l().$implicit,t=l(3);c(2),E(t.getArr(e.key)),c(3),u("placeholder",e.placeholder??"Add value and press Enter")}}function $t(a,i){if(a&1){let e=_();o(0,"div",55)(1,"mat-form-field",57)(2,"input",58),p("input",function(n){let s=h(e).$index,m=l(2).$implicit,v=l(3);return g(v.setObjAt(m.key,s,"path",n.target.value))}),r()(),o(3,"mat-form-field",59)(4,"mat-label"),d(5,"label"),r(),o(6,"input",60),p("input",function(n){let s=h(e).$index,m=l(2).$implicit,v=l(3);return g(v.setObjAt(m.key,s,"label",n.target.value||null))}),r()(),o(7,"button",61),p("click",function(){let n=h(e).$index,s=l(2).$implicit,m=l(3);return g(m.removeAt(s.key,n))}),o(8,"mat-icon",7),d(9,"delete"),r()()()}if(a&2){let e=i.$implicit;c(2),u("value",e.path),c(4),u("value",e.label??"")}}function jt(a,i){if(a&1){let e=_();o(0,"div",39),k(1,$t,10,2,"div",55,ee),o(3,"mat-form-field",51)(4,"input",56,1),p("keydown.enter",function(n){h(e);let s=S(5),m=l().$implicit;return l(3).addObj(m.key,s.value),s.value="",g(n.preventDefault())}),r(),o(6,"button",48),p("click",function(){h(e);let n=S(5),s=l().$implicit;return l(3).addObj(s.key,n.value),g(n.value="")}),o(7,"mat-icon",7),d(8,"add"),r()()()()}if(a&2){let e=l().$implicit,t=l(3);c(),E(t.getObjArr(e.key)),c(3),u("placeholder",e.placeholder??"Add absolute path and press Enter")}}function Lt(a,i){if(a&1&&(o(0,"div",29)(1,"div",30)(2,"label",31),d(3),r(),f(4,St,2,0,"span",32),f(5,Mt,2,0,"span",33),r(),o(6,"div",34),f(7,Tt,2,2,"mat-slide-toggle",35)(8,Ot,3,4,"mat-form-field",36)(9,It,11,6,"div",37)(10,Pt,2,2,"mat-form-field",36)(11,Vt,2,2,"mat-form-field",36)(12,Dt,5,5,"mat-form-field",36)(13,At,3,1,"mat-button-toggle-group",38)(14,zt,10,1,"div",39)(15,jt,9,1,"div",39),r(),o(16,"div",40),d(17),r()()),a&2){let e,t=i.$implicit,n=l(3);M("dm-field-dirty",n.isFieldDirty(t.key)),c(3),C(t.label),c(),b(t.restartRequired?4:-1),c(),b(n.isFieldDirty(t.key)?5:-1),c(2),b((e=t.kind)==="boolean"?7:e==="number"?8:e==="number-pair"?9:e==="string"?10:e==="path"?11:e==="token"?12:e==="enum"?13:e==="string-array"?14:e==="path-objects"?15:-1),c(10),C(t.help)}}function qt(a,i){if(a&1){let e=_();o(0,"mat-expansion-panel",25),p("afterExpand",function(){let n=h(e).$implicit,s=l(2);return g(s.onExpand(n.id,!0))})("afterCollapse",function(){let n=h(e).$implicit,s=l(2);return g(s.onExpand(n.id,!1))}),o(1,"mat-expansion-panel-header")(2,"mat-panel-title")(3,"mat-icon",7),d(4),r(),o(5,"span",26),d(6),r()(),o(7,"mat-panel-description"),d(8),r()(),o(9,"div",27),k(10,Lt,18,7,"div",28,ft),r()()}if(a&2){let e=i.$implicit,t=l(2);u("expanded",t.isExpanded(e.id)),c(4),C(e.icon),c(2),C(e.title),c(2),P(" ",e.description," "),c(2),E(e.fields)}}function Bt(a,i){if(a&1&&(o(0,"div",16),k(1,qt,12,4,"mat-expansion-panel",23,_t),o(3,"section",24)(4,"p"),d(5," Some settings \u2014 "),o(6,"strong"),d(7,"overrides"),r(),d(8,", "),o(9,"strong"),d(10,"profiles"),r(),d(11,", "),o(12,"strong"),d(13,"tags"),r(),d(14,", "),o(15,"strong"),d(16,"depends"),r(),d(17,", "),o(18,"strong"),d(19,"envFiles"),r(),d(20," \u2014 are per-app dictionaries best edited as JSON. Switch to the JSON tab in the header to edit them. "),r()()()),a&2){let e=l();c(),E(e.sections)}}function Ht(a,i){if(a&1&&(o(0,"span",63)(1,"mat-icon",7),d(2,"error"),r(),d(3),r()),a&2){let e=l(2);c(3),P(" invalid JSON \xB7 ",e.parseError()," ")}}function Jt(a,i){a&1&&(o(0,"span",64)(1,"mat-icon",7),d(2,"check_circle"),r(),d(3," valid JSON "),r())}function Wt(a,i){if(a&1){let e=_();o(0,"div",17)(1,"div",62),f(2,Ht,4,1,"span",63)(3,Jt,4,0,"span",64),r(),o(4,"mat-form-field",65)(5,"textarea",66),p("ngModelChange",function(n){h(e);let s=l();return g(s.onJsonInput(n))}),r()()()}if(a&2){let e=l();c(2),b(e.parseError()?2:3),c(3),u("ngModel",e.jsonText())}}var st="daimon.config.mode",lt=class a{http=y(me);snack=y(Ve);sections=j;mode=w("form");loading=w(!0);saving=w(!1);etag=w("");original=w(null);working=w(null);jsonText=w("");conflict=w(!1);showToken=w(!1);expanded=w({});dirty=V(()=>JSON.stringify(this.working())!==JSON.stringify(this.original()));parseError=V(()=>{if(this.mode()!=="json")return null;try{return JSON.parse(this.jsonText()),null}catch(i){return i?.message??"parse error"}});canSave=V(()=>!this.saving()&&!this.loading()&&this.dirty()&&!this.parseError());restartHints=V(()=>{let i=this.original(),e=this.working();if(!i||!e)return[];let t=[];for(let n of j)for(let s of n.fields)s.restartRequired&&JSON.stringify(I(i,s.key))!==JSON.stringify(I(e,s.key))&&t.push(s.key);return t});async ngOnInit(){try{let e=localStorage.getItem(st);(e==="form"||e==="json")&&this.mode.set(e)}catch{}let i={};for(let e of j)i[e.id]=["network","discovery","healthProbe"].includes(e.id);this.expanded.set(i),await this.load()}setMode(i){if(i!==this.mode()){if(i==="json")this.jsonText.set(JSON.stringify(this.working(),null,2));else if(this.parseError()===null)try{this.working.set(JSON.parse(this.jsonText()))}catch{}else{this.snack.open("Fix the JSON parse error before switching back to the form view.","OK",{duration:4e3});return}this.mode.set(i);try{localStorage.setItem(st,i)}catch{}}}onJsonInput(i){this.jsonText.set(i);try{this.working.set(JSON.parse(i))}catch{}}isExpanded(i){return!!this.expanded()[i]}onExpand(i,e){this.expanded.update(t=>q(L({},t),{[i]:e}))}getVal(i){return I(this.working(),i)}getStrOrEmpty(i){let e=this.getVal(i);return e==null?"":String(e)}getArr(i){let e=this.getVal(i);return Array.isArray(e)?e:[]}getObjArr(i){let e=this.getVal(i);return Array.isArray(e)?e.map(t=>typeof t=="string"?{path:t}:{path:String(t?.path??""),label:t?.label??null}):[]}setObjAt(i,e,t,n){let s=this.getObjArr(i);if(!s[e])return;let m=s.slice();m[e]=q(L({},m[e]),{[t]:n}),t==="label"&&(n===""||n==null)&&delete m[e].label,this.setVal(i,m)}addObj(i,e){let t=e.trim();if(!t)return;let n=this.getObjArr(i);n.some(s=>s.path===t)||this.setVal(i,[...n,{path:t}])}getPair(i){let e=this.getVal(i);return Array.isArray(e)&&e.length>=2?[Number(e[0])||0,Number(e[1])||0]:[0,0]}setVal(i,e){let t=structuredClone(this.working());rt(t,i,e),this.working.set(t)}setPairIdx(i,e,t){let n=this.getPair(i);n[e]=t,this.setVal(i,n)}setEnum(i,e){if(i.key.startsWith("healthProbe.")&&(i.key.endsWith(".scheme")||i.key.endsWith(".host"))){this.setVal(i.key,e==="(announced)"?null:e);return}this.setVal(i.key,e)}enumValue(i,e){let t=this.getVal(i);return t==null&&e.enumValues?.includes("(announced)")?"(announced)":String(t??e.enumValues?.[0]??"")}addItem(i,e){let t=e.trim();if(!t)return;let n=[...this.getArr(i)];n.includes(t)||(n.push(t),this.setVal(i,n))}removeAt(i,e){let t=this.getVal(i);if(!Array.isArray(t))return;let n=t.slice();n.splice(e,1),this.setVal(i,n)}toNum(i){let e=Number(i);return Number.isFinite(e)?e:0}isFieldDirty(i){let e=this.original(),t=this.working();return!e||!t?!1:JSON.stringify(I(e,i))!==JSON.stringify(I(t,i))}async load(){this.loading.set(!0),this.conflict.set(!1);try{let i=await R(this.http.get("/api/config"));this.etag.set(i.etag??""),this.original.set(structuredClone(i.config)),this.working.set(structuredClone(i.config)),this.jsonText.set(JSON.stringify(i.config,null,2))}catch(i){this.snack.open(`Failed to load config: ${i?.message??i}`,"Dismiss",{duration:5e3})}finally{this.loading.set(!1)}}discard(){this.working.set(structuredClone(this.original())),this.jsonText.set(JSON.stringify(this.original(),null,2)),this.conflict.set(!1)}async reload(){try{await R(this.http.post("/api/config/reload",{}))}catch{}await this.load()}async save(){if(this.canSave()){this.saving.set(!0);try{let i=await R(this.http.patch("/api/config",this.working(),{headers:{"if-match":this.etag(),"content-type":"application/json"},observe:"response"})),e=i.body??{},t=i.headers.get("etag")??e.etag??"";t&&this.etag.set(t),this.original.set(structuredClone(this.working()));let n=Array.isArray(e.applied)?e.applied.length:0,s=Array.isArray(e.addedApps)?e.addedApps.length:0,m=Array.isArray(e.removedApps)?e.removedApps.length:0,v=Array.isArray(e.restartRequired)?e.restartRequired.length:0,D=`Applied ${n} change${n===1?"":"s"}`;s&&(D+=` \xB7 +${s} app${s===1?"":"s"}`),m&&(D+=` \xB7 \u2212${m} app${m===1?"":"s"}`),v&&(D+=` \xB7 ${v} setting${v===1?"":"s"} need restart`),this.snack.open(D,"OK",{duration:4e3})}catch(i){i?.status===412?(this.conflict.set(!0),this.snack.open("Config changed elsewhere \u2014 reload before saving.","Reload",{duration:6e3}).onAction().subscribe(()=>this.reload())):this.snack.open(`Save failed: ${i?.error?.error??i?.message??i}`,"Dismiss",{duration:6e3})}finally{this.saving.set(!1)}}}onKey(i){(i.metaKey||i.ctrlKey)&&i.key.toLowerCase()==="s"&&(i.preventDefault(),this.save())}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=F({type:a,selectors:[["dm-config-editor"]],hostBindings:function(e,t){e&1&&p("keydown",function(s){return t.onKey(s)},Y)},decls:31,vars:8,consts:[["addInput",""],["addObjInput",""],[1,"dm-page-header"],[1,"dm-page-sub"],[1,"dm-header-actions"],["hideSingleSelectionIndicator","",3,"change","value"],["value","form","matTooltip","Form editor with explanations"],["fontSet","material-symbols-outlined"],["value","json","matTooltip","Raw JSON editor"],["mat-button","","matTooltip","Throw away pending changes"],["mat-button","","matTooltip","Reload from daemon",3,"click"],["mat-flat-button","","color","primary",3,"click","disabled"],["diameter","18"],[1,"dm-banner","dm-banner-warn"],[1,"dm-banner","dm-banner-info"],[1,"dm-skel"],[1,"dm-settings"],[1,"dm-json"],["mat-button","","matTooltip","Throw away pending changes",3,"click"],["mat-stroked-button","",3,"click"],[1,"dm-restart-key"],["height","3rem"],["height","14rem"],[3,"expanded"],[1,"dm-advanced-note"],[3,"afterExpand","afterCollapse","expanded"],[1,"dm-sec-title"],[1,"dm-fields"],[1,"dm-field",3,"dm-field-dirty"],[1,"dm-field"],[1,"dm-field-label-row"],[1,"dm-field-label"],["matTooltip","A daemon restart applies this",1,"dm-field-tag"],[1,"dm-field-tag","dm-tag-dirty"],[1,"dm-field-control"],[3,"checked"],["appearance","outline","subscriptSizing","dynamic"],[1,"dm-pair"],["hideSingleSelectionIndicator","",3,"value"],[1,"dm-array"],[1,"dm-field-help"],[3,"change","checked"],["matInput","","type","number",3,"input","min","max","value"],["matTextSuffix","",1,"dm-suffix"],[1,"dm-pair-sep"],["matInput","",3,"input","placeholder","value"],["matInput","",1,"dm-mono",3,"input","placeholder","value"],["matInput","",3,"input","type","placeholder","value"],["matSuffix","","mat-icon-button","","type","button",3,"click"],[3,"value"],[3,"removable"],["appearance","outline","subscriptSizing","dynamic",1,"dm-array-input"],["matInput","",3,"keydown.enter","placeholder"],[3,"removed","removable"],["matChipRemove",""],[1,"dm-path-row"],["matInput","",1,"dm-mono",3,"keydown.enter","placeholder"],["appearance","outline","subscriptSizing","dynamic",1,"dm-path-input"],["matInput","",1,"dm-mono",3,"input","value"],["appearance","outline","subscriptSizing","dynamic",1,"dm-path-label"],["matInput","",3,"input","value"],["mat-icon-button","","type","button","matTooltip","Remove",3,"click"],[1,"dm-json-status"],[1,"dm-status","dm-status-bad"],[1,"dm-status","dm-status-ok"],["appearance","outline",1,"dm-json-field"],["matInput","","cdkTextareaAutosize","","cdkAutosizeMinRows","20","spellcheck","false",3,"ngModelChange","ngModel"]],template:function(e,t){e&1&&(o(0,"div",2)(1,"div")(2,"h1"),d(3,"Config"),r(),o(4,"div",3),d(5," Active configuration \xB7 changes apply via soft-reload where possible "),f(6,bt,3,1),r()(),o(7,"div",4)(8,"mat-button-toggle-group",5),p("change",function(s){return t.setMode(s.value)}),o(9,"mat-button-toggle",6)(10,"mat-icon",7),d(11,"tune"),r(),d(12," Settings "),r(),o(13,"mat-button-toggle",8)(14,"mat-icon",7),d(15,"data_object"),r(),d(16," JSON "),r()(),f(17,vt,4,0,"button",9),o(18,"button",10),p("click",function(){return t.reload()}),o(19,"mat-icon",7),d(20,"refresh"),r(),d(21," Reload "),r(),o(22,"button",11),p("click",function(){return t.save()}),f(23,yt,1,0,"mat-spinner",12)(24,wt,2,0,"mat-icon",7),d(25," Save "),r()()(),f(26,xt,9,0,"div",13),f(27,kt,9,0,"div",14),f(28,Et,5,0,"div",15)(29,Bt,21,0,"div",16)(30,Wt,6,2,"div",17)),e&2&&(c(6),b(t.etag()?6:-1),c(2),u("value",t.mode()),c(9),b(t.dirty()?17:-1),c(5),u("disabled",!t.canSave()),c(),b(t.saving()?23:24),c(3),b(t.conflict()?26:-1),c(),b(t.restartHints().length?27:-1),c(),b(t.loading()?28:t.mode()==="form"?29:30))},dependencies:[ce,Ee,we,Ce,ke,Pe,Ie,Oe,_e,ue,ve,be,$e,ze,Ae,Ne,He,Be,Le,je,ot,J,it,et,tt,Ke,We,Je,Ue,Ze,Xe,Ge,Ye,Qe,Me,Se,qe,De,Re],styles:["[_nghost-%COMP%]{display:block}.dm-header-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.dm-banner[_ngcontent-%COMP%]{display:grid;grid-template-columns:auto 1fr auto;gap:.75rem;align-items:center;padding:12px 16px;border-radius:12px;margin-bottom:1rem}.dm-banner-warn[_ngcontent-%COMP%]{background:color-mix(in oklch,var(--mat-sys-error) 14%,transparent);color:var(--mat-sys-on-surface);border:1px solid color-mix(in oklch,var(--mat-sys-error) 35%,transparent)}.dm-banner-warn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:var(--mat-sys-error)}.dm-banner-info[_ngcontent-%COMP%]{background:color-mix(in oklch,var(--mat-sys-tertiary) 14%,transparent);color:var(--mat-sys-on-surface);border:1px solid color-mix(in oklch,var(--mat-sys-tertiary) 35%,transparent)}.dm-banner-info[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:var(--mat-sys-tertiary)}.dm-restart-key[_ngcontent-%COMP%]{margin-left:.35rem}.dm-skel[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.75rem}.dm-settings[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.dm-sec-title[_ngcontent-%COMP%]{margin-left:.5rem;font:500 .9375rem/1.25rem Roboto}mat-expansion-panel[_ngcontent-%COMP%]{border-radius:12px!important;box-shadow:var(--mat-sys-level1)!important}mat-expansion-panel-header[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:var(--mat-sys-primary)}mat-panel-description[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant);font:400 .8125rem/1.25rem Roboto}.dm-fields[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.875rem;padding:.25rem 0}.dm-field[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,200px) 1fr;gap:.125rem 1.25rem;align-items:start}.dm-field-label-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;padding-top:.4rem}.dm-field-label[_ngcontent-%COMP%]{font:500 .875rem/1.25rem Roboto;color:var(--mat-sys-on-surface)}.dm-field-tag[_ngcontent-%COMP%]{font:500 .625rem/.875rem Roboto;letter-spacing:.04em;text-transform:uppercase;padding:1px 6px;border-radius:999px;background:var(--mat-sys-surface-container);color:var(--mat-sys-on-surface-variant);border:1px solid var(--mat-sys-outline-variant)}.dm-tag-dirty[_ngcontent-%COMP%]{background:color-mix(in oklch,var(--mat-sys-tertiary) 18%,transparent);color:var(--mat-sys-tertiary);border-color:color-mix(in oklch,var(--mat-sys-tertiary) 40%,transparent)}.dm-field-help[_ngcontent-%COMP%]{grid-column:2;color:var(--mat-sys-on-surface-variant);font:400 .75rem/1.125rem Roboto;max-width:64ch;margin-top:-.125rem}.dm-field-dirty[_ngcontent-%COMP%] .dm-field-label[_ngcontent-%COMP%]{color:var(--mat-sys-tertiary)}.dm-pair[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.dm-pair-sep[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant)}.dm-suffix[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant);margin-left:.25rem;font:400 .75rem/1rem Roboto}.dm-array[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.dm-array-input[_ngcontent-%COMP%]{max-width:32rem}.dm-path-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1fr) 12rem auto;gap:.5rem;align-items:center}.dm-path-input[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{font-family:var(--dm-mono)}@media(max-width:700px){.dm-path-row[_ngcontent-%COMP%]{grid-template-columns:1fr}}.dm-mono[_ngcontent-%COMP%] input.dm-mono[_ngcontent-%COMP%], input.dm-mono[_ngcontent-%COMP%]{font-family:var(--dm-mono)}.dm-advanced-note[_ngcontent-%COMP%]{margin-top:.5rem;padding:1rem 1.25rem;background:var(--mat-sys-surface-container);border-radius:12px;color:var(--mat-sys-on-surface-variant);font:400 .875rem/1.5rem Roboto}.dm-json[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.dm-json-status[_ngcontent-%COMP%]{display:flex;gap:.5rem}.dm-status[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.35rem;font:500 .75rem/1rem Roboto;padding:4px 10px;border-radius:999px;background:var(--mat-sys-surface-container)}.dm-status[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:16px;width:16px;height:16px}.dm-status-ok[_ngcontent-%COMP%]{color:var(--mat-sys-primary)}.dm-status-bad[_ngcontent-%COMP%]{color:var(--mat-sys-error)}.dm-json-field[_ngcontent-%COMP%]{width:100%}.dm-json-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]{font-family:var(--dm-mono);font-size:.8125rem;line-height:1.5}@media(max-width:900px){.dm-field[_ngcontent-%COMP%]{grid-template-columns:1fr}.dm-field-help[_ngcontent-%COMP%]{grid-column:1}}"],changeDetection:0})};export{lt as ConfigEditorComponent};
@@ -0,0 +1,4 @@
1
+ import{a as W,b as mt}from"./chunk-LBRCWYRN.js";import{a as we}from"./chunk-WAN7TQQW.js";import{a as ue,b as he}from"./chunk-CILFSVSP.js";import{a as ve,b as ye}from"./chunk-7NPLP3QD.js";import{a as Me}from"./chunk-PJPGLT4T.js";import{d as ge}from"./chunk-H3L4MTG4.js";import{d as wt}from"./chunk-OHX55ZU4.js";import{a as fe,b as Ce,c as xe,d as ke,e as Te}from"./chunk-Q772THBA.js";import{a as pe,b as be}from"./chunk-K7S4ITPJ.js";import"./chunk-YNQPX5G6.js";import{c as le,d as de}from"./chunk-7C772RJ3.js";import{b as ce,e as me,f as Tt}from"./chunk-6WZJCF24.js";import{m as ct}from"./chunk-KLH6B22T.js";import{c as te}from"./chunk-EIWOTZT3.js";import{c as dt,i as se,j as _e}from"./chunk-LBL7Z5BE.js";import{A as ie,G as ae,H as oe,J as re,N as xt,P as kt,p as Ct,u as ee,v as ne}from"./chunk-Y6B6X4Y6.js";import{$b as v,A as Ft,Aa as J,B as Y,C as Vt,Ca as Q,Cb as Ut,Da as jt,Db as O,Eb as b,Ec as st,Fb as _,G as Nt,Gb as nt,Hb as $,Hc as I,Ib as E,Ic as lt,Jb as S,Kb as g,Lb as o,Mb as r,Nb as x,Ob as Zt,Pb as Yt,Qb as Xt,S as Ht,Sb as P,T as X,U as zt,Ub as k,V as j,Wa as ft,Wb as c,Xb as it,Yb as at,Zb as K,_a as d,_b as T,a as _t,aa as Qt,ac as y,b as ut,ca as z,d as V,db as D,ea as m,eb as G,ec as vt,f as Bt,fb as tt,fc as ot,gb as et,gc as w,hc as rt,i as Z,ib as gt,ic as l,ja as u,jc as f,ka as h,kc as L,lb as Gt,m as Lt,na as ht,o as Ot,pa as $t,pb as A,qb as qt,rb as H,rc as U,s as N,sb as q,sc as Jt,ta as R,ub as B,vb as Kt,xc as M,yc as yt,za as Wt}from"./chunk-K43KW4K2.js";var Et=["*"];function Ne(n,a){n&1&&at(0)}var He=["tabListContainer"],ze=["tabList"],Qe=["tabListInner"],$e=["nextPaginator"],We=["previousPaginator"],je=["content"];function Ge(n,a){}var qe=["tabBodyWrapper"],Ke=["tabHeader"];function Ue(n,a){}function Ze(n,a){if(n&1&&B(0,Ue,0,0,"ng-template",12),n&2){let t=c().$implicit;g("cdkPortalOutlet",t.templateLabel)}}function Ye(n,a){if(n&1&&l(0),n&2){let t=c().$implicit;f(t.textLabel)}}function Xe(n,a){if(n&1){let t=P();o(0,"div",7,2),k("click",function(){let i=u(t),s=i.$implicit,p=i.$index,C=c(),F=vt(1);return h(C._handleClick(s,F,p))})("cdkFocusChange",function(i){let s=u(t).$index,p=c();return h(p._tabFocusChanged(i,s))}),x(2,"span",8)(3,"div",9),o(4,"span",10)(5,"span",11),b(6,Ze,1,1,null,12)(7,Ye,1,1),r()()()}if(n&2){let t=a.$implicit,e=a.$index,i=vt(1),s=c();rt(t.labelClass),w("mdc-tab--active",s.selectedIndex===e),g("id",s._getTabLabelId(t,e))("disabled",t.disabled)("fitInkBarToContent",s.fitInkBarToContent),O("tabIndex",s._getTabIndex(e))("aria-posinset",e+1)("aria-setsize",s._tabs.length)("aria-controls",s._getTabContentId(e))("aria-selected",s.selectedIndex===e)("aria-label",t.ariaLabel||null)("aria-labelledby",!t.ariaLabel&&t.ariaLabelledby?t.ariaLabelledby:null),d(3),g("matRippleTrigger",i)("matRippleDisabled",t.disabled||s.disableRipple),d(3),_(t.templateLabel?6:7)}}function Je(n,a){n&1&&at(0)}function tn(n,a){if(n&1){let t=P();o(0,"mat-tab-body",13),k("_onCentered",function(){u(t);let i=c();return h(i._removeTabBodyWrapperHeight())})("_onCentering",function(i){u(t);let s=c();return h(s._setTabBodyWrapperHeight(i))})("_beforeCentering",function(i){u(t);let s=c();return h(s._bodyCentered(i))}),r()}if(n&2){let t=a.$implicit,e=a.$index,i=c();rt(t.bodyClass),g("id",i._getTabContentId(e))("content",t.content)("position",t.position)("animationDuration",i.animationDuration)("preserveContent",i.preserveContent),O("tabindex",i.contentTabIndex!=null&&i.selectedIndex===e?i.contentTabIndex:null)("aria-labelledby",i._getTabLabelId(t,e))("aria-hidden",i.selectedIndex!==e)}}var en=new z("MatTabContent"),nn=(()=>{class n{template=m(et);constructor(){}static \u0275fac=function(e){return new(e||n)};static \u0275dir=H({type:n,selectors:[["","matTabContent",""]],features:[U([{provide:en,useExisting:n}])]})}return n})(),an=new z("MatTabLabel"),Se=new z("MAT_TAB"),St=(()=>{class n extends me{_closestTab=m(Se,{optional:!0});static \u0275fac=(()=>{let t;return function(i){return(t||(t=J(n)))(i||n)}})();static \u0275dir=H({type:n,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[U([{provide:an,useExisting:n}]),q]})}return n})(),Re=new z("MAT_TAB_GROUP"),Rt=(()=>{class n{_viewContainerRef=m(Gt);_closestTabGroup=m(Re,{optional:!0});disabled=!1;get templateLabel(){return this._templateLabel}set templateLabel(t){this._setTemplateLabelInput(t)}_templateLabel;_explicitContent=void 0;_implicitContent;textLabel="";ariaLabel;ariaLabelledby;labelClass;bodyClass;id=null;_contentPortal=null;get content(){return this._contentPortal}_stateChanges=new Z;position=null;origin=null;isActive=!1;constructor(){m(ne).load(fe)}ngOnChanges(t){(t.hasOwnProperty("textLabel")||t.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new ce(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(t){t&&t._closestTab===this&&(this._templateLabel=t)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=A({type:n,selectors:[["mat-tab"]],contentQueries:function(e,i,s){if(e&1&&(K(s,St,5),K(s,nn,7,et)),e&2){let p;v(p=y())&&(i.templateLabel=p.first),v(p=y())&&(i._explicitContent=p.first)}},viewQuery:function(e,i){if(e&1&&T(et,7),e&2){let s;v(s=y())&&(i._implicitContent=s.first)}},hostAttrs:["hidden",""],hostVars:1,hostBindings:function(e,i){e&2&&O("id",null)},inputs:{disabled:[2,"disabled","disabled",I],textLabel:[0,"label","textLabel"],ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass",id:"id"},exportAs:["matTab"],features:[U([{provide:Se,useExisting:n}]),Wt],ngContentSelectors:Et,decls:1,vars:0,template:function(e,i){e&1&&(it(),Kt(0,Ne,1,0,"ng-template"))},encapsulation:2})}return n})(),Mt="mdc-tab-indicator--active",Ie="mdc-tab-indicator--no-transition",It=class{_items;_currentItem;constructor(a){this._items=a}hide(){this._items.forEach(a=>a.deactivateInkBar()),this._currentItem=void 0}alignToElement(a){let t=this._items.find(i=>i.elementRef.nativeElement===a),e=this._currentItem;if(t!==e&&(e?.deactivateInkBar(),t)){let i=e?.elementRef.nativeElement.getBoundingClientRect?.();t.activateInkBar(i),this._currentItem=t}}},on=(()=>{class n{_elementRef=m(Q);_inkBarElement;_inkBarContentElement;_fitToContent=!1;get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(t){this._fitToContent!==t&&(this._fitToContent=t,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(t){let e=this._elementRef.nativeElement;if(!t||!e.getBoundingClientRect||!this._inkBarContentElement){e.classList.add(Mt);return}let i=e.getBoundingClientRect(),s=t.width/i.width,p=t.left-i.left;e.classList.add(Ie),this._inkBarContentElement.style.setProperty("transform",`translateX(${p}px) scaleX(${s})`),e.getBoundingClientRect(),e.classList.remove(Ie),e.classList.add(Mt),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this._elementRef.nativeElement.classList.remove(Mt)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){let t=this._elementRef.nativeElement.ownerDocument||document,e=this._inkBarElement=t.createElement("span"),i=this._inkBarContentElement=t.createElement("span");e.className="mdc-tab-indicator",i.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",e.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){this._inkBarElement;let t=this._fitToContent?this._elementRef.nativeElement.querySelector(".mdc-tab__content"):this._elementRef.nativeElement;t.appendChild(this._inkBarElement)}static \u0275fac=function(e){return new(e||n)};static \u0275dir=H({type:n,inputs:{fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",I]}})}return n})();var Ae=(()=>{class n extends on{elementRef=m(Q);disabled=!1;focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}static \u0275fac=(()=>{let t;return function(i){return(t||(t=J(n)))(i||n)}})();static \u0275dir=H({type:n,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(e,i){e&2&&(O("aria-disabled",!!i.disabled),w("mat-mdc-tab-disabled",i.disabled))},inputs:{disabled:[2,"disabled","disabled",I]},features:[q]})}return n})(),De={passive:!0},rn=650,sn=100,ln=(()=>{class n{_elementRef=m(Q);_changeDetectorRef=m(st);_viewportRuler=m(de);_dir=m(xt,{optional:!0});_ngZone=m(G);_platform=m(Ct);_sharedResizeObserver=m(Me);_injector=m(ht);_renderer=m(gt);_animationsDisabled=ct();_eventCleanups;_scrollDistance=0;_selectedIndexChanged=!1;_destroyed=new Z;_showPaginationControls=!1;_disableScrollAfter=!0;_disableScrollBefore=!0;_tabLabelCount;_scrollDistanceChanged;_keyManager;_currentTextContent;_stopScrolling=new Z;disablePagination=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(t){let e=isNaN(t)?0:t;this._selectedIndex!=e&&(this._selectedIndexChanged=!0,this._selectedIndex=e,this._keyManager&&this._keyManager.updateActiveItem(e))}_selectedIndex=0;selectFocusedIndex=new D;indexFocused=new D;constructor(){this._eventCleanups=this._ngZone.runOutsideAngular(()=>[this._renderer.listen(this._elementRef.nativeElement,"mouseleave",()=>this._stopInterval())])}ngAfterViewInit(){this._eventCleanups.push(this._renderer.listen(this._previousPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("before"),De),this._renderer.listen(this._nextPaginator.nativeElement,"touchstart",()=>this._handlePaginatorPress("after"),De))}ngAfterContentInit(){let t=this._dir?this._dir.change:Ot("ltr"),e=this._sharedResizeObserver.observe(this._elementRef.nativeElement).pipe(Nt(32),j(this._destroyed)),i=this._viewportRuler.change(150).pipe(j(this._destroyed)),s=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new re(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(Math.max(this._selectedIndex,0)),tt(s,{injector:this._injector}),Y(t,i,e,this._items.changes,this._itemsResized()).pipe(j(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),s()})}),this._keyManager?.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(p=>{this.indexFocused.emit(p),this._setTabFocus(p)})}_itemsResized(){return typeof ResizeObserver!="function"?Lt:this._items.changes.pipe(X(this._items),zt(t=>new Bt(e=>this._ngZone.runOutsideAngular(()=>{let i=new ResizeObserver(s=>e.next(s));return t.forEach(s=>i.observe(s.elementRef.nativeElement)),()=>{i.disconnect()}}))),Ht(1),Vt(t=>t.some(e=>e.contentRect.width>0&&e.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._eventCleanups.forEach(t=>t()),this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(t){if(!oe(t))switch(t.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){let e=this._items.get(this.focusIndex);e&&!e.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(t))}break;default:this._keyManager?.onKeydown(t)}}_onContentChanges(){let t=this._elementRef.nativeElement.textContent;t!==this._currentTextContent&&(this._currentTextContent=t||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(t){!this._isValidIndex(t)||this.focusIndex===t||!this._keyManager||this._keyManager.setActiveItem(t)}_isValidIndex(t){return this._items?!!this._items.toArray()[t]:!0}_setTabFocus(t){if(this._showPaginationControls&&this._scrollToLabel(t),this._items&&this._items.length){this._items.toArray()[t].focus();let e=this._tabListContainer.nativeElement;this._getLayoutDirection()=="ltr"?e.scrollLeft=0:e.scrollLeft=e.scrollWidth-e.offsetWidth}}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;let t=this.scrollDistance,e=this._getLayoutDirection()==="ltr"?-t:t;this._tabList.nativeElement.style.transform=`translateX(${Math.round(e)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(t){this._scrollTo(t)}_scrollHeader(t){let e=this._tabListContainer.nativeElement.offsetWidth,i=(t=="before"?-1:1)*e/3;return this._scrollTo(this._scrollDistance+i)}_handlePaginatorClick(t){this._stopInterval(),this._scrollHeader(t)}_scrollToLabel(t){if(this.disablePagination)return;let e=this._items?this._items.toArray()[t]:null;if(!e)return;let i=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:s,offsetWidth:p}=e.elementRef.nativeElement,C,F;this._getLayoutDirection()=="ltr"?(C=s,F=C+p):(F=this._tabListInner.nativeElement.offsetWidth-s,C=F-p);let bt=this.scrollDistance,At=this.scrollDistance+i;C<bt?this.scrollDistance-=bt-C:F>At&&(this.scrollDistance+=Math.min(F-At,C-bt))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{let t=this._tabListInner.nativeElement.scrollWidth,e=this._elementRef.nativeElement.offsetWidth,i=t-e>=5;i||(this.scrollDistance=0),i!==this._showPaginationControls&&(this._showPaginationControls=i,this._changeDetectorRef.markForCheck())}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=this.scrollDistance==0,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){let t=this._tabListInner.nativeElement.scrollWidth,e=this._tabListContainer.nativeElement.offsetWidth;return t-e||0}_alignInkBarToSelectedTab(){let t=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,e=t?t.elementRef.nativeElement:null;e?this._inkBar.alignToElement(e):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(t,e){e&&e.button!=null&&e.button!==0||(this._stopInterval(),Ft(rn,sn).pipe(j(Y(this._stopScrolling,this._destroyed))).subscribe(()=>{let{maxScrollDistance:i,distance:s}=this._scrollHeader(t);(s===0||s>=i)&&this._stopInterval()}))}_scrollTo(t){if(this.disablePagination)return{maxScrollDistance:0,distance:0};let e=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(e,t)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:e,distance:this._scrollDistance}}static \u0275fac=function(e){return new(e||n)};static \u0275dir=H({type:n,inputs:{disablePagination:[2,"disablePagination","disablePagination",I],selectedIndex:[2,"selectedIndex","selectedIndex",lt]},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"}})}return n})(),dn=(()=>{class n extends ln{_items;_tabListContainer;_tabList;_tabListInner;_nextPaginator;_previousPaginator;_inkBar;ariaLabel;ariaLabelledby;disableRipple=!1;ngAfterContentInit(){this._inkBar=new It(this._items),super.ngAfterContentInit()}_itemSelected(t){t.preventDefault()}static \u0275fac=(()=>{let t;return function(i){return(t||(t=J(n)))(i||n)}})();static \u0275cmp=A({type:n,selectors:[["mat-tab-header"]],contentQueries:function(e,i,s){if(e&1&&K(s,Ae,4),e&2){let p;v(p=y())&&(i._items=p)}},viewQuery:function(e,i){if(e&1&&(T(He,7),T(ze,7),T(Qe,7),T($e,5),T(We,5)),e&2){let s;v(s=y())&&(i._tabListContainer=s.first),v(s=y())&&(i._tabList=s.first),v(s=y())&&(i._tabListInner=s.first),v(s=y())&&(i._nextPaginator=s.first),v(s=y())&&(i._previousPaginator=s.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(e,i){e&2&&w("mat-mdc-tab-header-pagination-controls-enabled",i._showPaginationControls)("mat-mdc-tab-header-rtl",i._getLayoutDirection()=="rtl")},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],disableRipple:[2,"disableRipple","disableRipple",I]},features:[q],ngContentSelectors:Et,decls:13,vars:10,consts:[["previousPaginator",""],["tabListContainer",""],["tabList",""],["tabListInner",""],["nextPaginator",""],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"click","mousedown","touchend","matRippleDisabled"],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],[1,"mat-mdc-tab-labels"],["mat-ripple","",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"mousedown","click","touchend","matRippleDisabled"]],template:function(e,i){if(e&1){let s=P();it(),o(0,"div",5,0),k("click",function(){return u(s),h(i._handlePaginatorClick("before"))})("mousedown",function(C){return u(s),h(i._handlePaginatorPress("before",C))})("touchend",function(){return u(s),h(i._stopInterval())}),x(2,"div",6),r(),o(3,"div",7,1),k("keydown",function(C){return u(s),h(i._handleKeydown(C))}),o(5,"div",8,2),k("cdkObserveContent",function(){return u(s),h(i._onContentChanges())}),o(7,"div",9,3),at(9),r()()(),o(10,"div",10,4),k("mousedown",function(C){return u(s),h(i._handlePaginatorPress("after",C))})("click",function(){return u(s),h(i._handlePaginatorClick("after"))})("touchend",function(){return u(s),h(i._stopInterval())}),x(12,"div",6),r()}e&2&&(w("mat-mdc-tab-header-pagination-disabled",i._disableScrollBefore),g("matRippleDisabled",i._disableScrollBefore||i.disableRipple),d(3),w("_mat-animation-noopable",i._animationsDisabled),d(2),O("aria-label",i.ariaLabel||null)("aria-labelledby",i.ariaLabelledby||null),d(5),w("mat-mdc-tab-header-pagination-disabled",i._disableScrollAfter),g("matRippleDisabled",i._disableScrollAfter||i.disableRipple))},dependencies:[wt,ie],styles:[`.mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;outline:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-pagination-icon-color, var(--mat-sys-on-surface))}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1;border-bottom-style:solid;border-bottom-width:var(--mat-tab-divider-height, 1px);border-bottom-color:var(--mat-tab-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-divider-height, 1px);border-top-color:var(--mat-tab-divider-color, var(--mat-sys-surface-variant))}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.cdk-drop-list .mat-mdc-tab-labels,.mat-mdc-tab-labels.cdk-drop-list{min-height:var(--mat-tab-container-height, 48px)}.mat-mdc-tab::before{margin:5px}@media(forced-colors: active){.mat-mdc-tab[aria-disabled=true]{color:GrayText}}
2
+ `],encapsulation:2})}return n})(),cn=new z("MAT_TABS_CONFIG"),Pe=(()=>{class n extends Tt{_host=m(Dt);_ngZone=m(G);_centeringSub=V.EMPTY;_leavingSub=V.EMPTY;constructor(){super()}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(X(this._host._isCenterPosition())).subscribe(t=>{this._host._content&&t&&!this.hasAttached()&&this._ngZone.run(()=>{Promise.resolve().then(),this.attach(this._host._content)})}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this._ngZone.run(()=>this.detach())})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}static \u0275fac=function(e){return new(e||n)};static \u0275dir=H({type:n,selectors:[["","matTabBodyHost",""]],features:[q]})}return n})(),Dt=(()=>{class n{_elementRef=m(Q);_dir=m(xt,{optional:!0});_ngZone=m(G);_injector=m(ht);_renderer=m(gt);_diAnimationsDisabled=ct();_eventCleanups;_initialized;_fallbackTimer;_positionIndex;_dirChangeSubscription=V.EMPTY;_position;_previousPosition;_onCentering=new D;_beforeCentering=new D;_afterLeavingCenter=new D;_onCentered=new D(!0);_portalHost;_contentElement;_content;animationDuration="500ms";preserveContent=!1;set position(t){this._positionIndex=t,this._computePositionAnimationState()}constructor(){if(this._dir){let t=m(st);this._dirChangeSubscription=this._dir.change.subscribe(e=>{this._computePositionAnimationState(e),t.markForCheck()})}}ngOnInit(){this._bindTransitionEvents(),this._position==="center"&&(this._setActiveClass(!0),tt(()=>this._onCentering.emit(this._elementRef.nativeElement.clientHeight),{injector:this._injector})),this._initialized=!0}ngOnDestroy(){clearTimeout(this._fallbackTimer),this._eventCleanups?.forEach(t=>t()),this._dirChangeSubscription.unsubscribe()}_bindTransitionEvents(){this._ngZone.runOutsideAngular(()=>{let t=this._elementRef.nativeElement,e=i=>{i.target===this._contentElement?.nativeElement&&(this._elementRef.nativeElement.classList.remove("mat-tab-body-animating"),i.type==="transitionend"&&this._transitionDone())};this._eventCleanups=[this._renderer.listen(t,"transitionstart",i=>{i.target===this._contentElement?.nativeElement&&(this._elementRef.nativeElement.classList.add("mat-tab-body-animating"),this._transitionStarted())}),this._renderer.listen(t,"transitionend",e),this._renderer.listen(t,"transitioncancel",e)]})}_transitionStarted(){clearTimeout(this._fallbackTimer);let t=this._position==="center";this._beforeCentering.emit(t),t&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_transitionDone(){this._position==="center"?this._onCentered.emit():this._previousPosition==="center"&&this._afterLeavingCenter.emit()}_setActiveClass(t){this._elementRef.nativeElement.classList.toggle("mat-mdc-tab-body-active",t)}_getLayoutDirection(){return this._dir&&this._dir.value==="rtl"?"rtl":"ltr"}_isCenterPosition(){return this._positionIndex===0}_computePositionAnimationState(t=this._getLayoutDirection()){this._previousPosition=this._position,this._positionIndex<0?this._position=t=="ltr"?"left":"right":this._positionIndex>0?this._position=t=="ltr"?"right":"left":this._position="center",this._animationsDisabled()?this._simulateTransitionEvents():this._initialized&&(this._position==="center"||this._previousPosition==="center")&&(clearTimeout(this._fallbackTimer),this._fallbackTimer=this._ngZone.runOutsideAngular(()=>setTimeout(()=>this._simulateTransitionEvents(),100)))}_simulateTransitionEvents(){this._transitionStarted(),tt(()=>this._transitionDone(),{injector:this._injector})}_animationsDisabled(){return this._diAnimationsDisabled||this.animationDuration==="0ms"||this.animationDuration==="0s"}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=A({type:n,selectors:[["mat-tab-body"]],viewQuery:function(e,i){if(e&1&&(T(Pe,5),T(je,5)),e&2){let s;v(s=y())&&(i._portalHost=s.first),v(s=y())&&(i._contentElement=s.first)}},hostAttrs:[1,"mat-mdc-tab-body"],hostVars:1,hostBindings:function(e,i){e&2&&O("inert",i._position==="center"?null:"")},inputs:{_content:[0,"content","_content"],animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_onCentered:"_onCentered"},decls:3,vars:6,consts:[["content",""],["cdkScrollable","",1,"mat-mdc-tab-body-content"],["matTabBodyHost",""]],template:function(e,i){e&1&&(o(0,"div",1,0),B(2,Ge,0,0,"ng-template",2),r()),e&2&&w("mat-tab-body-content-left",i._position==="left")("mat-tab-body-content-right",i._position==="right")("mat-tab-body-content-can-animate",i._position==="center"||i._previousPosition==="center")},dependencies:[Pe,le],styles:[`.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto;transform:none;visibility:hidden}.mat-tab-body-animating>.mat-mdc-tab-body-content,.mat-mdc-tab-body-active>.mat-mdc-tab-body-content{visibility:visible}.mat-tab-body-animating>.mat-mdc-tab-body-content{min-height:1px}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-tab-body-content-can-animate{transition:transform var(--mat-tab-animation-duration) 1ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable .mat-tab-body-content-can-animate{transition:none}.mat-tab-body-content-left{transform:translate3d(-100%, 0, 0)}.mat-tab-body-content-right{transform:translate3d(100%, 0, 0)}
3
+ `],encapsulation:2})}return n})(),Be=(()=>{class n{_elementRef=m(Q);_changeDetectorRef=m(st);_ngZone=m(G);_tabsSubscription=V.EMPTY;_tabLabelSubscription=V.EMPTY;_tabBodySubscription=V.EMPTY;_diAnimationsDisabled=ct();_allTabs;_tabBodies;_tabBodyWrapper;_tabHeader;_tabs=new jt;_indexToSelect=0;_lastFocusedTabIndex=null;_tabBodyWrapperHeight=0;color;get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(t){this._fitInkBarToContent=t,this._changeDetectorRef.markForCheck()}_fitInkBarToContent=!1;stretchTabs=!0;alignTabs=null;dynamicHeight=!1;get selectedIndex(){return this._selectedIndex}set selectedIndex(t){this._indexToSelect=isNaN(t)?null:t}_selectedIndex=null;headerPosition="above";get animationDuration(){return this._animationDuration}set animationDuration(t){let e=t+"";this._animationDuration=/^\d+$/.test(e)?t+"ms":e}_animationDuration;get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(t){this._contentTabIndex=isNaN(t)?null:t}_contentTabIndex;disablePagination=!1;disableRipple=!1;preserveContent=!1;get backgroundColor(){return this._backgroundColor}set backgroundColor(t){let e=this._elementRef.nativeElement.classList;e.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),t&&e.add("mat-tabs-with-background",`mat-background-${t}`),this._backgroundColor=t}_backgroundColor;ariaLabel;ariaLabelledby;selectedIndexChange=new D;focusChange=new D;animationDone=new D;selectedTabChange=new D(!0);_groupId;_isServer=!m(Ct).isBrowser;constructor(){let t=m(cn,{optional:!0});this._groupId=m(ae).getId("mat-tab-group-"),this.animationDuration=t&&t.animationDuration?t.animationDuration:"500ms",this.disablePagination=t&&t.disablePagination!=null?t.disablePagination:!1,this.dynamicHeight=t&&t.dynamicHeight!=null?t.dynamicHeight:!1,t?.contentTabIndex!=null&&(this.contentTabIndex=t.contentTabIndex),this.preserveContent=!!t?.preserveContent,this.fitInkBarToContent=t&&t.fitInkBarToContent!=null?t.fitInkBarToContent:!1,this.stretchTabs=t&&t.stretchTabs!=null?t.stretchTabs:!0,this.alignTabs=t&&t.alignTabs!=null?t.alignTabs:null}ngAfterContentChecked(){let t=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=t){let e=this._selectedIndex==null;if(!e){this.selectedTabChange.emit(this._createChangeEvent(t));let i=this._tabBodyWrapper.nativeElement;i.style.minHeight=i.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((i,s)=>i.isActive=s===t),e||(this.selectedIndexChange.emit(t),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((e,i)=>{e.position=i-t,this._selectedIndex!=null&&e.position==0&&!e.origin&&(e.origin=t-this._selectedIndex)}),this._selectedIndex!==t&&(this._selectedIndex=t,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{let t=this._clampTabIndex(this._indexToSelect);if(t===this._selectedIndex){let e=this._tabs.toArray(),i;for(let s=0;s<e.length;s++)if(e[s].isActive){this._indexToSelect=this._selectedIndex=s,this._lastFocusedTabIndex=null,i=e[s];break}!i&&e[t]&&Promise.resolve().then(()=>{e[t].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(t))})}this._changeDetectorRef.markForCheck()})}ngAfterViewInit(){this._tabBodySubscription=this._tabBodies.changes.subscribe(()=>this._bodyCentered(!0))}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(X(this._allTabs)).subscribe(t=>{this._tabs.reset(t.filter(e=>e._closestTabGroup===this||!e._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe(),this._tabBodySubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(t){let e=this._tabHeader;e&&(e.focusIndex=t)}_focusChanged(t){this._lastFocusedTabIndex=t,this.focusChange.emit(this._createChangeEvent(t))}_createChangeEvent(t){let e=new Pt;return e.index=t,this._tabs&&this._tabs.length&&(e.tab=this._tabs.toArray()[t]),e}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=Y(...this._tabs.map(t=>t._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(t){return Math.min(this._tabs.length-1,Math.max(t||0,0))}_getTabLabelId(t,e){return t.id||`${this._groupId}-label-${e}`}_getTabContentId(t){return`${this._groupId}-content-${t}`}_setTabBodyWrapperHeight(t){if(!this.dynamicHeight||!this._tabBodyWrapperHeight){this._tabBodyWrapperHeight=t;return}let e=this._tabBodyWrapper.nativeElement;e.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(e.style.height=t+"px")}_removeTabBodyWrapperHeight(){let t=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=t.clientHeight,t.style.height="",this._ngZone.run(()=>this.animationDone.emit())}_handleClick(t,e,i){e.focusIndex=i,t.disabled||(this.selectedIndex=i)}_getTabIndex(t){let e=this._lastFocusedTabIndex??this.selectedIndex;return t===e?0:-1}_tabFocusChanged(t,e){t&&t!=="mouse"&&t!=="touch"&&(this._tabHeader.focusIndex=e)}_bodyCentered(t){t&&this._tabBodies?.forEach((e,i)=>e._setActiveClass(i===this._selectedIndex))}_animationsDisabled(){return this._diAnimationsDisabled||this.animationDuration==="0"||this.animationDuration==="0ms"}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=A({type:n,selectors:[["mat-tab-group"]],contentQueries:function(e,i,s){if(e&1&&K(s,Rt,5),e&2){let p;v(p=y())&&(i._allTabs=p)}},viewQuery:function(e,i){if(e&1&&(T(qe,5),T(Ke,5),T(Dt,5)),e&2){let s;v(s=y())&&(i._tabBodyWrapper=s.first),v(s=y())&&(i._tabHeader=s.first),v(s=y())&&(i._tabBodies=s)}},hostAttrs:[1,"mat-mdc-tab-group"],hostVars:11,hostBindings:function(e,i){e&2&&(O("mat-align-tabs",i.alignTabs),rt("mat-"+(i.color||"primary")),ot("--mat-tab-animation-duration",i.animationDuration),w("mat-mdc-tab-group-dynamic-height",i.dynamicHeight)("mat-mdc-tab-group-inverted-header",i.headerPosition==="below")("mat-mdc-tab-group-stretch-tabs",i.stretchTabs))},inputs:{color:"color",fitInkBarToContent:[2,"fitInkBarToContent","fitInkBarToContent",I],stretchTabs:[2,"mat-stretch-tabs","stretchTabs",I],alignTabs:[0,"mat-align-tabs","alignTabs"],dynamicHeight:[2,"dynamicHeight","dynamicHeight",I],selectedIndex:[2,"selectedIndex","selectedIndex",lt],headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:[2,"contentTabIndex","contentTabIndex",lt],disablePagination:[2,"disablePagination","disablePagination",I],disableRipple:[2,"disableRipple","disableRipple",I],preserveContent:[2,"preserveContent","preserveContent",I],backgroundColor:"backgroundColor",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"]},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},exportAs:["matTabGroup"],features:[U([{provide:Re,useExisting:n}])],ngContentSelectors:Et,decls:9,vars:8,consts:[["tabHeader",""],["tabBodyWrapper",""],["tabNode",""],[3,"indexFocused","selectFocusedIndex","selectedIndex","disableRipple","disablePagination","aria-label","aria-labelledby"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"id","mdc-tab--active","class","disabled","fitInkBarToContent"],[1,"mat-mdc-tab-body-wrapper"],["role","tabpanel",3,"id","class","content","position","animationDuration","preserveContent"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-focus-indicator",3,"click","cdkFocusChange","id","disabled","fitInkBarToContent"],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"cdkPortalOutlet"],["role","tabpanel",3,"_onCentered","_onCentering","_beforeCentering","id","content","position","animationDuration","preserveContent"]],template:function(e,i){if(e&1){let s=P();it(),o(0,"mat-tab-header",3,0),k("indexFocused",function(C){return u(s),h(i._focusChanged(C))})("selectFocusedIndex",function(C){return u(s),h(i.selectedIndex=C)}),E(2,Xe,8,17,"div",4,$),r(),b(4,Je,1,0),o(5,"div",5,1),E(7,tn,1,10,"mat-tab-body",6,$),r()}e&2&&(g("selectedIndex",i.selectedIndex||0)("disableRipple",i.disableRipple)("disablePagination",i.disablePagination),Ut("aria-label",i.ariaLabel)("aria-labelledby",i.ariaLabelledby),d(2),S(i._tabs),d(2),_(i._isServer?4:-1),d(),w("_mat-animation-noopable",i._animationsDisabled()),d(2),S(i._tabs))},dependencies:[dn,Ae,ee,wt,Tt,Dt],styles:[`.mdc-tab{min-width:90px;padding:0 24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;z-index:1;touch-action:manipulation}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab--active .mdc-tab__text-label{transition-delay:100ms}._mat-animation-noopable .mdc-tab__text-label{transition:none}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transition:var(--mat-tab-animation-duration, 250ms) transform cubic-bezier(0.4, 0, 0.2, 1);transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}._mat-animation-noopable .mdc-tab-indicator__content,.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mat-mdc-tab-ripple.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;height:var(--mat-tab-container-height, 48px);font-family:var(--mat-tab-label-text-font, var(--mat-sys-title-small-font));font-size:var(--mat-tab-label-text-size, var(--mat-sys-title-small-size));letter-spacing:var(--mat-tab-label-text-tracking, var(--mat-sys-title-small-tracking));line-height:var(--mat-tab-label-text-line-height, var(--mat-sys-title-small-line-height));font-weight:var(--mat-tab-label-text-weight, var(--mat-sys-title-small-weight))}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-indicator-color, var(--mat-sys-primary));border-top-width:var(--mat-tab-active-indicator-height, 2px);border-radius:var(--mat-tab-active-indicator-shape, 0)}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-inactive-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-inactive-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-active-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-active-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-active-hover-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-hover-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-active-focus-label-text-color, var(--mat-sys-on-surface))}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-active-focus-indicator-color, var(--mat-sys-primary))}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-disabled-ripple-color, var(--mat-sys-on-surface-variant))}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-inactive-label-text-color, var(--mat-sys-on-surface));display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-inactive-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-focus-indicator::before{border-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}
4
+ `],encapsulation:2})}return n})(),Pt=class{index;tab};var Le=(()=>{class n{static \u0275fac=function(e){return new(e||n)};static \u0275mod=qt({type:n});static \u0275inj=Qt({imports:[kt,kt]})}return n})();var bn=["canvas"];W.register(...mt);var pt=class n{name="";canvasRef;chart;samples=[];timer;http=m(dt);ngAfterViewInit(){let a=matchMedia("(prefers-reduced-motion: reduce)").matches,t={type:"line",data:{labels:[],datasets:[{label:"CPU %",data:[],yAxisID:"y1",borderColor:"rgb(96, 165, 250)",backgroundColor:"rgba(96, 165, 250, 0.12)",tension:.25,pointRadius:0,fill:!0},{label:"Mem MB",data:[],yAxisID:"y2",borderColor:"rgb(168, 85, 247)",backgroundColor:"rgba(168, 85, 247, 0.10)",tension:.25,pointRadius:0,fill:!0}]},options:{responsive:!0,maintainAspectRatio:!1,animation:a?!1:{duration:200},plugins:{legend:{position:"bottom",labels:{boxWidth:12}}},scales:{x:{ticks:{maxTicksLimit:6,autoSkip:!0}},y1:{position:"left",beginAtZero:!0,title:{display:!0,text:"CPU %"}},y2:{position:"right",beginAtZero:!0,title:{display:!0,text:"Mem MB"},grid:{display:!1}}}}};this.chart=new W(this.canvasRef.nativeElement,t),this.tick(),this.timer=setInterval(()=>{this.tick()},5e3)}ngOnDestroy(){this.timer&&clearInterval(this.timer),this.chart?.destroy()}async tick(){if(!(!this.name||!this.chart))try{let a=await N(this.http.get(`/api/apps/${encodeURIComponent(this.name)}?format=full`));this.samples.push({ts:Date.now(),cpu:Number(a?.cpu??0),memMB:Number(a?.memMB??0)}),this.samples.length>60&&this.samples.shift(),this.chart.data.labels=this.samples.map(t=>new Date(t.ts).toLocaleTimeString()),this.chart.data.datasets[0].data=this.samples.map(t=>t.cpu),this.chart.data.datasets[1].data=this.samples.map(t=>t.memMB),this.chart.update("none")}catch{}}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=A({type:n,selectors:[["dm-metrics-chart"]],viewQuery:function(t,e){if(t&1&&T(bn,7),t&2){let i;v(i=y())&&(e.canvasRef=i.first)}},inputs:{name:"name"},decls:3,vars:0,consts:[["canvas",""],[2,"position","relative","height","220px"]],template:function(t,e){t&1&&(Zt(0,"div",1),Xt(1,"canvas",null,0),Yt())},encapsulation:2,changeDetection:0})};var _n=["logBox"],un=["spark"],hn=n=>["/apps",n],fn=(n,a)=>a.file;function gn(n,a){if(n&1&&(o(0,"span",20),x(1,"span",21),o(2,"span"),l(3),r()()),n&2){let t=c(),e=c();ot("--dm-tone",e.tone(t.workspaceLabel)),d(3),f(t.workspaceLabel)}}function vn(n,a){n&1&&x(0,"mat-spinner",16)}function yn(n,a){n&1&&(o(0,"span",5),l(1,"play_arrow"),r())}function Cn(n,a){if(n&1){let t=P();o(0,"button",22),k("click",function(){u(t);let i=c(2);return h(i.act("start"))}),b(1,vn,1,0,"mat-spinner",16)(2,yn,2,0,"span",5),o(3,"span"),l(4,"Start"),r()()}if(n&2){let t=c(2);g("disabled",t.busy("start")),d(),_(t.busy("start")?1:2)}}function xn(n,a){n&1&&x(0,"mat-spinner",16)}function kn(n,a){n&1&&(o(0,"span",5),l(1,"stop"),r())}function Tn(n,a){if(n&1){let t=P();o(0,"button",15),k("click",function(){u(t);let i=c(2);return h(i.act("stop"))}),b(1,xn,1,0,"mat-spinner",16)(2,kn,2,0,"span",5),o(3,"span"),l(4,"Stop"),r()()}if(n&2){let t=c(2);g("disabled",t.busy("stop")),d(),_(t.busy("stop")?1:2)}}function wn(n,a){n&1&&x(0,"mat-spinner",16)}function Mn(n,a){n&1&&(o(0,"span",5),l(1,"restart_alt"),r())}function In(n,a){n&1&&x(0,"mat-spinner",16)}function Dn(n,a){n&1&&(o(0,"span",5),l(1,"cleaning_services"),r())}function Pn(n,a){n&1&&x(0,"mat-spinner",16)}function En(n,a){n&1&&(o(0,"span",5),l(1,"photo_camera"),r())}function Sn(n,a){if(n&1&&(o(0,"a",19)(1,"span",5),l(2,"open_in_new"),r(),o(3,"span"),l(4,"Open"),r()()),n&2){let t=c();g("href",t.url,ft)}}function Rn(n,a){if(n&1){let t=P();o(0,"div",6)(1,"h1",9)(2,"dm-mono"),l(3),r()(),x(4,"dm-status-pill",10),b(5,gn,4,3,"span",11),r(),o(6,"div",12),b(7,Cn,5,2,"button",13)(8,Tn,5,2,"button",14),o(9,"button",15),k("click",function(){u(t);let i=c();return h(i.act("restart"))}),b(10,wn,1,0,"mat-spinner",16)(11,Mn,2,0,"span",5),o(12,"span"),l(13,"Restart"),r()(),o(14,"button",17),k("click",function(){u(t);let i=c();return h(i.onClean())}),b(15,In,1,0,"mat-spinner",16)(16,Dn,2,0,"span",5),o(17,"span"),l(18,"Clean"),r()(),o(19,"button",18),k("click",function(){u(t);let i=c();return h(i.onSnapshot())}),b(20,Pn,1,0,"mat-spinner",16)(21,En,2,0,"span",5),o(22,"span"),l(23,"Snapshot"),r()(),b(24,Sn,5,1,"a",19),r()}if(n&2){let t=a,e=c();d(3),f(t.name),d(),g("status",t.status)("health",t.health),d(),_(t.workspaceLabel?5:-1),d(2),_(t.status==="stopped"||t.status==="error"?7:8),d(2),g("disabled",e.busy("restart")),d(),_(e.busy("restart")?10:11),d(4),g("disabled",e.busy("clean")),d(),_(e.busy("clean")?15:16),d(4),g("disabled",e.busy("snapshot")),d(),_(e.busy("snapshot")?20:21),d(4),_(t.url?24:-1)}}function An(n,a){n&1&&(o(0,"div",6),x(1,"dm-skeleton",23),r())}function Bn(n,a){n&1&&(o(0,"span",46),l(1,"info"),r(),l(2," Overview "))}function Ln(n,a){if(n&1&&(o(0,"a",30)(1,"dm-mono"),l(2),r()()),n&2){let t=c();g("href",t.url,ft),d(2),f(t.url)}}function On(n,a){n&1&&l(0," \u2014 ")}function Fn(n,a){if(n&1&&(o(0,"dt"),l(1,"Health"),r(),o(2,"dd",47)(3,"dm-mono"),l(4),r()()),n&2){let t=c();d(4),f(t.lastHealthError)}}function Vn(n,a){if(n&1&&(o(0,"tr")(1,"td")(2,"dm-mono"),l(3),r()(),o(4,"td",48)(5,"dm-mono"),l(6),r()()()),n&2){let t=a.$implicit,e=c(3);d(3),f(t.path||t.name),d(3),f(e.fmtKb(t.sizeKb??t.kb??e.toKb(t.size)))}}function Nn(n,a){if(n&1&&(o(0,"table",33)(1,"thead")(2,"tr")(3,"th"),l(4,"file"),r(),o(5,"th",48),l(6,"size"),r()()(),o(7,"tbody"),E(8,Vn,7,2,"tr",null,nt),r()()),n&2){let t=c(2);d(8),S(t.bundleFiles())}}function Hn(n,a){n&1&&(o(0,"div",34),l(1,"No bundle information."),r())}function zn(n,a){if(n&1&&(o(0,"a",49)(1,"span",5),l(2,"link"),r(),o(3,"dm-mono"),l(4),r()()),n&2){let t=a.$implicit;g("routerLink",Jt(2,hn,t)),d(4),f(t)}}function Qn(n,a){if(n&1&&(o(0,"div",35),E(1,zn,5,4,"a",49,$),r()),n&2){let t=c(2);d(),S(t.dependsOn())}}function $n(n,a){n&1&&(o(0,"div",34),l(1,"No dependencies."),r())}function Wn(n,a){if(n&1&&(o(0,"span",50),l(1),r()),n&2){let t=c(3);d(),f(t.errors().length)}}function jn(n,a){if(n&1&&(o(0,"span",46),l(1,"error"),r(),l(2," Errors "),b(3,Wn,2,1,"span",50)),n&2){let t=c(2);d(3),_(t.errors().length?3:-1)}}function Gn(n,a){if(n&1&&(o(0,"span"),l(1),r()),n&2){let t=c(2).$implicit;d(),L(":",t.parsed==null?null:t.parsed.col)}}function qn(n,a){if(n&1&&(o(0,"dm-mono"),l(1),b(2,Gn,2,1,"span"),r()),n&2){let t=c().$implicit;d(),L(":",t.parsed==null?null:t.parsed.line),d(),_((t.parsed==null?null:t.parsed.col)!=null?2:-1)}}function Kn(n,a){if(n&1&&(o(0,"span",56)(1,"dm-mono"),l(2),r()()),n&2){let t=c().$implicit;d(2),f(t.parsed==null?null:t.parsed.code)}}function Un(n,a){if(n&1&&(o(0,"span",57),l(1),r()),n&2){let t=c().$implicit;d(),L("\xD7",t.count)}}function Zn(n,a){if(n&1&&(o(0,"li",54)(1,"div",55),b(2,qn,3,2,"dm-mono"),b(3,Kn,3,1,"span",56),b(4,Un,2,1,"span",57),r(),o(5,"dm-mono")(6,"span",58),l(7),r()()()),n&2){let t=a.$implicit;d(2),_((t.parsed==null?null:t.parsed.line)!=null?2:-1),d(),_(t.parsed!=null&&t.parsed.code?3:-1),d(),_(t.count>1?4:-1),d(3),f((t.parsed==null?null:t.parsed.message)??t.message)}}function Yn(n,a){if(n&1&&(o(0,"section",51)(1,"header",52)(2,"dm-mono")(3,"strong"),l(4),r()(),o(5,"span",50),l(6),r()(),o(7,"ul",53),E(8,Zn,8,4,"li",54,nt),r()()),n&2){let t=a.$implicit;d(4),f(t.file),d(2),f(t.items.length),d(2),S(t.items)}}function Xn(n,a){if(n&1&&E(0,Yn,10,2,"section",51,fn),n&2){let t=c(2);S(t.errorsByFile())}}function Jn(n,a){n&1&&x(0,"dm-empty",36)}function ti(n,a){n&1&&(o(0,"span",46),l(1,"terminal"),r(),l(2," Logs "))}function ei(n,a){if(n&1&&(o(0,"div",43)(1,"dm-mono"),l(2),r()()),n&2){let t=a.$implicit;d(2),f(t)}}function ni(n,a){n&1&&(o(0,"div",44),l(1,"Waiting for log lines\u2026"),r())}function ii(n,a){n&1&&(o(0,"span",46),l(1,"timeline"),r(),l(2," History "))}function ai(n,a){if(n&1&&(o(0,"div",59)(1,"div",60)(2,"span",61),l(3,"samples"),r(),o(4,"span",62),l(5),r()(),o(6,"div",60)(7,"span",61),l(8,"p50"),r(),o(9,"span",62),l(10),r()(),o(11,"div",60)(12,"span",61),l(13,"p95"),r(),o(14,"span",62),l(15),r()(),o(16,"div",60)(17,"span",61),l(18,"max"),r(),o(19,"span",62),l(20),r()()(),o(21,"div",63),x(22,"canvas",null,1),r()),n&2){let t=c(2);d(5),f(t.compileTimes().length),d(5),L("",t.p50()," ms"),d(5),L("",t.p95()," ms"),d(5),L("",t.pMax()," ms")}}function oi(n,a){n&1&&(o(0,"div",34),l(1,"No compile history yet."),r())}function ri(n,a){n&1&&(o(0,"span",46),l(1,"tune"),r(),l(2," Env "))}function si(n,a){n&1&&(o(0,"span",67),l(1,"active"),r())}function li(n,a){if(n&1){let t=P();o(0,"label",64)(1,"input",65),k("change",function(){let i=u(t).$implicit,s=c(3);return h(s.onEnvSwitch(i))}),r(),x(2,"span",66),o(3,"dm-mono"),l(4),r(),b(5,si,2,0,"span",67),r()}if(n&2){let t=a.$implicit,e=c(3);d(),g("value",t)("checked",e.envActive()===t)("disabled",e.busy("env")),d(3),f(t),d(),_(e.envActive()===t?5:-1)}}function di(n,a){if(n&1&&(o(0,"div",45),E(1,li,6,5,"label",64,$),r()),n&2){let t=c(2);d(),S(t.envFiles())}}function ci(n,a){n&1&&(o(0,"div",34),l(1,"No env files available."),r())}function mi(n,a){if(n&1){let t=P();o(0,"mat-tab-group",7)(1,"mat-tab"),B(2,Bn,3,0,"ng-template",24),o(3,"div",25)(4,"div",26)(5,"section",27)(6,"h3",28),l(7,"Runtime"),r(),o(8,"dl",29)(9,"dt"),l(10,"Port"),r(),o(11,"dd")(12,"dm-mono"),l(13),r()(),o(14,"dt"),l(15,"URL"),r(),o(16,"dd"),b(17,Ln,3,2,"a",30)(18,On,1,0),r(),o(19,"dt"),l(20,"Uptime"),r(),o(21,"dd")(22,"dm-mono"),l(23),r()(),o(24,"dt"),l(25,"Last compile"),r(),o(26,"dd")(27,"dm-mono"),l(28),r()(),o(29,"dt"),l(30,"CPU"),r(),o(31,"dd")(32,"dm-mono"),l(33),r()(),o(34,"dt"),l(35,"Mem"),r(),o(36,"dd")(37,"dm-mono"),l(38),r()(),b(39,Fn,5,1),r()(),o(40,"section",31)(41,"h3",28),l(42,"Resources"),r(),x(43,"dm-metrics-chart",32),r()(),o(44,"div",26)(45,"section",27)(46,"h3",28),l(47,"Bundle"),r(),b(48,Nn,10,0,"table",33)(49,Hn,2,0,"div",34),r(),o(50,"section",27)(51,"h3",28),l(52,"Depends on"),r(),b(53,Qn,3,0,"div",35)(54,$n,2,0,"div",34),r()()()(),o(55,"mat-tab"),B(56,jn,4,1,"ng-template",24),o(57,"div",25),b(58,Xn,2,0)(59,Jn,1,0,"dm-empty",36),r()(),o(60,"mat-tab"),B(61,ti,3,0,"ng-template",24),o(62,"div",37)(63,"div",38)(64,"span",34),l(65),r(),x(66,"span",39),o(67,"button",40),k("click",function(){u(t);let i=c();return h(i.clearLogs())}),o(68,"span",5),l(69,"delete_sweep"),r()(),o(70,"button",41),k("click",function(){u(t);let i=c();return h(i.autoScroll.set(!i.autoScroll()))}),o(71,"span",5),l(72,"vertical_align_bottom"),r()()(),o(73,"div",42,0),k("scroll",function(i){u(t);let s=c();return h(s.onLogScroll(i))}),E(75,ei,3,1,"div",43,nt,!1,ni,2,0,"div",44),r()()(),o(78,"mat-tab"),B(79,ii,3,0,"ng-template",24),o(80,"div",25)(81,"section",27)(82,"h3",28),l(83,"Compile times"),r(),b(84,ai,24,4)(85,oi,2,0,"div",34),r()()(),o(86,"mat-tab"),B(87,ri,3,0,"ng-template",24),o(88,"div",25)(89,"section",27)(90,"h3",28),l(91,"Environment file"),r(),b(92,di,3,0,"div",45)(93,ci,2,0,"div",34),r()()()()}if(n&2){let t=a,e=c();g("animationDuration","200ms"),d(13),f(t.port??"\u2014"),d(4),_(t.url?17:18),d(6),f(e.fmtUptime(t.uptimeMs)),d(5),L("",t.lastCompileMs??0," ms"),d(5),f(e.fmtPct(t.cpu)),d(5),f(e.fmtMem(t.memMB)),d(),_(t.lastHealthError?39:-1),d(4),g("name",t.name),d(5),_(e.bundleFiles().length?48:49),d(5),_(e.dependsOn().length?53:54),d(5),_(e.errorsByFile().length?58:59),d(7),L("Live tail \u2014 last ",e.logLines().length," lines"),d(5),w("active",e.autoScroll()),d(5),S(e.logLines()),d(9),_(e.compileTimes().length?84:85),d(8),_(e.envFiles().length?92:93)}}function pi(n,a){n&1&&(o(0,"div",8),x(1,"dm-skeleton",68),r())}W.register(...mt);var Oe=class n{name="";api=m(_e);http=m(dt);snack=m(ve);destroyRef=m($t);logBox;sparkRef;state=R(null);errs=R([]);logLines=R([]);autoScroll=R(!0);compileTimes=R([]);envInfo=R(null);busyMap=R({});logStop;pollTimer;spark;tone=we;summary=M(()=>this.state());errors=M(()=>this.errs());errorsByFile=M(()=>{let a=new Map;for(let t of this.errs()){let e=t.parsed?.file??"(no file)",i=a.get(e)??[];i.push(t),a.set(e,i)}return Array.from(a.entries()).map(([t,e])=>({file:t,items:e}))});bundleFiles=M(()=>{let t=this.state()?.bundle?.files??[];if(!Array.isArray(t))return[];let e=i=>i.sizeKb??i.kb??(i.size?i.size/1024:0);return[...t].sort((i,s)=>e(s)-e(i)).slice(0,8)});dependsOn=M(()=>{let a=this.state(),t=a?.dependsOn??a?.depends_on??[];return Array.isArray(t)?t:[]});envFiles=M(()=>{let a=this.envInfo();return a?a.files??a.available??[]:[]});envActive=M(()=>{let a=this.envInfo();return a?a.active??a.current??a.use??null:null});p50=M(()=>this.percentile(.5));p95=M(()=>this.percentile(.95));pMax=M(()=>{let a=this.compileTimes();return a.length?Math.max(...a.map(t=>t.ms)):0});constructor(){yt(()=>{let a=this.logLines();!this.autoScroll()||!this.logBox||a.length===0||queueMicrotask(()=>{let t=this.logBox.nativeElement;t.scrollTop=t.scrollHeight})}),yt(()=>{let a=this.compileTimes();!this.spark||!a.length||this.updateSpark(a)})}async ngOnInit(){await this.refresh(),this.pollTimer=setInterval(()=>{this.refresh()},4e3),this.logStop=this.api.openLogStream(this.name,a=>{let t=`${this.fmtTs(a.ts)} ${a.line}`;this.logLines.update(e=>{let i=e.length>=500?e.slice(e.length-499):e.slice();return i.push(t),i})}),this.loadCompile(),this.loadEnv()}ngAfterViewInit(){if(!this.sparkRef)return;let a=matchMedia("(prefers-reduced-motion: reduce)").matches,t={type:"line",data:{labels:[],datasets:[]},options:{responsive:!0,maintainAspectRatio:!1,animation:a?!1:{duration:200},plugins:{legend:{position:"bottom",labels:{boxWidth:12}}},scales:{x:{ticks:{maxTicksLimit:6,autoSkip:!0}},y:{beginAtZero:!0,title:{display:!0,text:"ms"}}}}};this.spark=new W(this.sparkRef.nativeElement,t);let e=this.compileTimes();e.length&&this.updateSpark(e)}ngOnDestroy(){this.pollTimer&&clearInterval(this.pollTimer),this.logStop?.(),this.spark?.destroy()}async refresh(){let[a,t]=await Promise.all([this.api.appDetail(this.name),this.api.appErrors(this.name)]);a&&this.state.set(a),this.errs.set(Array.isArray(t)?t:[])}async loadCompile(){let a=await this.api.getCompileTimes(this.name,100);this.compileTimes.set(a)}async loadEnv(){try{let a=await N(this.http.get(`/api/apps/${encodeURIComponent(this.name)}/env`));this.envInfo.set(a??null)}catch{this.envInfo.set(null)}}busy(a){return!!this.busyMap()[a]}setBusy(a,t){this.busyMap.update(e=>ut(_t({},e),{[a]:t}))}async act(a){if(!this.busy(a)){this.setBusy(a,!0);try{a==="start"?await this.api.startApp(this.name):a==="stop"?await this.api.stopApp(this.name):await this.api.restartApp(this.name),this.snack.open(`${a}: ok`,"",{duration:1500}),await this.refresh()}catch(t){this.snack.open(`${a} failed: ${t?.message??"error"}`,"Dismiss",{duration:4e3})}finally{this.setBusy(a,!1)}}}async onClean(){if(!this.busy("clean")&&window.confirm(`Clean caches for "${this.name}"? This may remove build artifacts.`)){this.setBusy("clean",!0);try{await N(this.http.post(`/api/apps/${encodeURIComponent(this.name)}/clean`,{})),this.snack.open(`Cleaned ${this.name}`,"",{duration:2e3}),await this.refresh()}catch(a){this.snack.open(`Clean failed: ${a?.message??"error"}`,"Dismiss",{duration:4e3})}finally{this.setBusy("clean",!1)}}}async onSnapshot(){if(!this.busy("snapshot")){this.setBusy("snapshot",!0);try{let a=await N(this.http.post(`/api/apps/${encodeURIComponent(this.name)}/snapshot?write=1`,{})),t=a?.path??a?.file??a?.snapshot??"";this.snack.open(t?`Snapshot: ${t}`:"Snapshot written","OK",{duration:5e3})}catch(a){this.snack.open(`Snapshot failed: ${a?.message??"error"}`,"Dismiss",{duration:4e3})}finally{this.setBusy("snapshot",!1)}}}async onEnvSwitch(a){if(this.busy("env"))return;this.setBusy("env",!0);let t=this.envInfo();this.envInfo.update(e=>e&&ut(_t({},e),{active:a,current:a}));try{await N(this.http.post(`/api/apps/${encodeURIComponent(this.name)}/env`,{use:a})),this.snack.open(`Env set to ${a}`,"",{duration:2e3}),await this.loadEnv()}catch(e){this.envInfo.set(t),this.snack.open(`Env switch failed: ${e?.message??"error"}`,"Dismiss",{duration:4e3})}finally{this.setBusy("env",!1)}}onLogScroll(a){let t=a.target,e=t.scrollHeight-t.scrollTop-t.clientHeight<20;this.autoScroll.set(e)}clearLogs(){this.logLines.set([])}updateSpark(a){if(!this.spark)return;let t=a.map((p,C)=>C+1),e=a.map(p=>p.ms),i=this.percentile(.5),s=this.percentile(.95);this.spark.data.labels=t,this.spark.data.datasets=[{label:"compile ms",data:e,borderColor:"rgb(96, 165, 250)",backgroundColor:"rgba(96, 165, 250, 0.15)",tension:.25,pointRadius:0,fill:!0},{label:"p50",data:t.map(()=>i),borderColor:"rgba(132, 204, 22, 0.85)",borderDash:[4,4],pointRadius:0,fill:!1},{label:"p95",data:t.map(()=>s),borderColor:"rgba(251, 146, 60, 0.85)",borderDash:[4,4],pointRadius:0,fill:!1}],this.spark.update("none")}percentile(a){let t=this.compileTimes().map(i=>i.ms).slice().sort((i,s)=>i-s);if(!t.length)return 0;let e=Math.min(t.length-1,Math.max(0,Math.floor(a*(t.length-1))));return Math.round(t[e])}fmtUptime(a){if(!a||a<0)return"\u2014";let t=Math.floor(a/1e3);return t<60?t+"s":t<3600?Math.floor(t/60)+"m "+t%60+"s":Math.floor(t/3600)+"h "+Math.floor(t%3600/60)+"m"}fmtPct(a){return a==null||isNaN(a)?"\u2014":a.toFixed(0)+"%"}fmtMem(a){return a==null||isNaN(a)?"\u2014":a>=1024?(a/1024).toFixed(1)+" GB":Math.round(a)+" MB"}fmtKb(a){return a==null||isNaN(a)?"\u2014":a>=1024?(a/1024).toFixed(2)+" MB":a.toFixed(1)+" KB"}toKb(a){if(a!=null)return a/1024}fmtTs(a){if(!a)return"";let t=new Date(a);return`${t.getHours().toString().padStart(2,"0")}:${t.getMinutes().toString().padStart(2,"0")}:${t.getSeconds().toString().padStart(2,"0")}`}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=A({type:n,selectors:[["dm-app-detail"]],viewQuery:function(t,e){if(t&1&&(T(_n,5),T(un,5)),t&2){let i;v(i=y())&&(e.logBox=i.first),v(i=y())&&(e.sparkRef=i.first)}},inputs:{name:"name"},decls:11,vars:2,consts:[["logBox",""],["spark",""],[1,"dm-detail"],[1,"dm-detail-header"],["routerLink","/","matTooltip","Back to apps",1,"dm-back"],[1,"material-symbols-outlined"],[1,"dm-title-row"],[1,"dm-tabs",3,"animationDuration"],[1,"dm-loading"],[1,"dm-title"],[3,"status","health"],[1,"dm-ws-chip",3,"--dm-tone"],[1,"dm-action-bar"],[1,"dm-action-btn","dm-action-primary",3,"disabled"],[1,"dm-action-btn",3,"disabled"],[1,"dm-action-btn",3,"click","disabled"],["diameter","14"],["matTooltip","Clean caches (confirms)",1,"dm-action-btn",3,"click","disabled"],["matTooltip","Write a snapshot of the current state",1,"dm-action-btn",3,"click","disabled"],["target","_blank","rel","noopener",1,"dm-action-btn",3,"href"],[1,"dm-ws-chip"],[1,"dm-ws-dot"],[1,"dm-action-btn","dm-action-primary",3,"click","disabled"],["width","220px","height","2rem"],["mat-tab-label",""],[1,"dm-tab-body"],[1,"dm-cards-row"],[1,"dm-panel"],[1,"dm-panel-title"],[1,"dm-kv"],["target","_blank","rel","noopener",3,"href"],[1,"dm-panel","dm-panel-wide"],[3,"name"],[1,"dm-bundle"],[1,"dm-dim"],[1,"dm-chips-row"],["icon","check_circle","title","No errors","hint","Nothing to fix right now."],[1,"dm-tab-body","dm-tab-logs"],[1,"dm-logs-toolbar"],[1,"dm-spacer"],["matTooltip","Clear",1,"dm-iconbtn",3,"click"],["matTooltip","Auto-scroll",1,"dm-iconbtn",3,"click"],[1,"dm-logbox",3,"scroll"],[1,"dm-logline"],[1,"dm-dim",2,"padding","1rem"],[1,"dm-radios"],[1,"material-symbols-outlined","dm-tab-icon"],[1,"dm-err-text"],[1,"dm-right"],[1,"dm-dep-chip",3,"routerLink"],[1,"dm-tab-count"],[1,"dm-panel","dm-err-group"],[1,"dm-err-group-head"],[1,"dm-err-list"],[1,"dm-err-item"],[1,"dm-err-meta"],[1,"dm-err-code"],[1,"dm-err-count"],[1,"dm-err-msg"],[1,"dm-history-stats"],[1,"dm-stat"],[1,"dm-stat-label"],[1,"dm-stat-num"],[1,"dm-spark-wrap"],[1,"dm-radio"],["type","radio","name","env-file",3,"change","value","checked","disabled"],[1,"dm-radio-mark"],[1,"dm-env-active"],["width","100%","height","200px"]],template:function(t,e){if(t&1&&(o(0,"div",2)(1,"header",3)(2,"a",4)(3,"span",5),l(4,"arrow_back"),r(),o(5,"span"),l(6,"Apps"),r()(),b(7,Rn,25,12)(8,An,2,0,"div",6),r(),b(9,mi,94,18,"mat-tab-group",7)(10,pi,2,0,"div",8),r()),t&2){let i,s;d(7),_((i=e.summary())?7:8,i),d(2),_((s=e.summary())?9:10,s)}},dependencies:[te,ge,se,Le,St,Rt,Be,be,pe,he,ue,ye,pt,Ce,ke,Te,xe],styles:['[_nghost-%COMP%]{display:block}.dm-detail[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.dm-detail-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.75rem;padding-bottom:.5rem}.dm-back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.25rem;width:max-content;color:var(--mat-sys-on-surface-variant);text-decoration:none;font:500 .8125rem/1.25rem Roboto;padding:4px 8px;border-radius:8px;transition:background var(--dm-motion-short) var(--dm-motion-easing)}.dm-back[_ngcontent-%COMP%]:hover{background:var(--mat-sys-surface-container);color:var(--mat-sys-on-surface)}.dm-back[_ngcontent-%COMP%] .material-symbols-outlined[_ngcontent-%COMP%]{font-size:18px}.dm-title-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.dm-title[_ngcontent-%COMP%]{margin:0;font:400 1.625rem/2rem Roboto}.dm-title[_ngcontent-%COMP%] .dm-mono[_ngcontent-%COMP%]{font-size:1.625rem;font-weight:500}.dm-ws-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;padding:4px 10px;border-radius:999px;background:var(--mat-sys-surface-container);border:1px solid var(--mat-sys-outline-variant);font:500 .75rem/1rem Roboto;color:var(--mat-sys-on-surface-variant)}.dm-ws-dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:999px;background:var(--dm-tone, var(--mat-sys-primary))}.dm-action-bar[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.375rem}.dm-action-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;padding:6px 12px;border-radius:10px;background:var(--mat-sys-surface-container);border:1px solid var(--mat-sys-outline-variant);color:var(--mat-sys-on-surface);font:500 .8125rem/1.25rem Roboto;cursor:pointer;text-decoration:none;transition:background var(--dm-motion-short) var(--dm-motion-easing)}.dm-action-btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--mat-sys-surface-container-high)}.dm-action-btn[_ngcontent-%COMP%]:disabled{opacity:.55;cursor:not-allowed}.dm-action-btn[_ngcontent-%COMP%] .material-symbols-outlined[_ngcontent-%COMP%]{font-size:18px}.dm-action-primary[_ngcontent-%COMP%]{background:var(--mat-sys-primary);color:var(--mat-sys-on-primary);border-color:transparent}.dm-action-primary[_ngcontent-%COMP%]:hover:not(:disabled){background:color-mix(in oklch,var(--mat-sys-primary) 88%,black)}.dm-tabs[_ngcontent-%COMP%]{background:transparent}.dm-tab-icon[_ngcontent-%COMP%]{font-size:18px;margin-right:.375rem;vertical-align:middle}.dm-tab-count[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;min-width:18px;padding:0 6px;margin-left:.375rem;border-radius:999px;background:var(--mat-sys-surface-container-high);color:var(--mat-sys-on-surface-variant);font:600 .6875rem/1rem Roboto Mono,ui-monospace,monospace}.dm-tab-body[_ngcontent-%COMP%]{padding-top:1rem;display:flex;flex-direction:column;gap:1rem}.dm-cards-row[_ngcontent-%COMP%]{display:grid;gap:1rem;grid-template-columns:minmax(260px,1fr) minmax(0,1.5fr)}@media(max-width:880px){.dm-cards-row[_ngcontent-%COMP%]{grid-template-columns:1fr}}.dm-panel[_ngcontent-%COMP%]{padding:1rem 1.125rem;border-radius:14px;background:var(--mat-sys-surface-container-low);border:1px solid var(--mat-sys-outline-variant)}.dm-panel-wide[_ngcontent-%COMP%]{min-width:0}.dm-panel-title[_ngcontent-%COMP%]{margin:0 0 .5rem;font:500 .8125rem/1.25rem Roboto;text-transform:uppercase;letter-spacing:.04rem;color:var(--mat-sys-on-surface-variant)}.dm-kv[_ngcontent-%COMP%]{display:grid;grid-template-columns:max-content 1fr;gap:.25rem .75rem;margin:0}.dm-kv[_ngcontent-%COMP%] dt[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant);font:400 .8125rem/1.25rem Roboto}.dm-kv[_ngcontent-%COMP%] dd[_ngcontent-%COMP%]{margin:0;color:var(--mat-sys-on-surface)}.dm-kv[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:var(--mat-sys-primary);text-decoration:none}.dm-kv[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{text-decoration:underline}.dm-err-text[_ngcontent-%COMP%]{color:var(--mat-sys-error)}.dm-bundle[_ngcontent-%COMP%]{width:100%;border-collapse:collapse}.dm-bundle[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .dm-bundle[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{text-align:left;padding:.375rem .5rem;font-size:.8125rem}.dm-bundle[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{font-weight:500;color:var(--mat-sys-on-surface-variant);border-bottom:1px solid var(--mat-sys-outline-variant)}.dm-bundle[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]{border-bottom:1px solid color-mix(in oklch,var(--mat-sys-outline-variant) 50%,transparent)}.dm-bundle[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child{border-bottom:0}.dm-right[_ngcontent-%COMP%]{text-align:right}.dm-chips-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.375rem}.dm-dep-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.25rem;padding:4px 10px;border-radius:999px;background:var(--mat-sys-surface-container);border:1px solid var(--mat-sys-outline-variant);color:var(--mat-sys-on-surface);text-decoration:none;font:500 .8125rem/1rem Roboto;transition:background var(--dm-motion-short) var(--dm-motion-easing)}.dm-dep-chip[_ngcontent-%COMP%]:hover{background:var(--mat-sys-surface-container-high)}.dm-dep-chip[_ngcontent-%COMP%] .material-symbols-outlined[_ngcontent-%COMP%]{font-size:14px;color:var(--mat-sys-on-surface-variant)}.dm-err-group[_ngcontent-%COMP%]{padding:0;overflow:hidden}.dm-err-group-head[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:.625rem .875rem;background:var(--mat-sys-surface-container);border-bottom:1px solid var(--mat-sys-outline-variant)}.dm-err-list[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0}.dm-err-item[_ngcontent-%COMP%]{padding:.5rem .875rem;border-bottom:1px solid color-mix(in oklch,var(--mat-sys-outline-variant) 60%,transparent);display:flex;flex-direction:column;gap:.25rem}.dm-err-item[_ngcontent-%COMP%]:last-child{border-bottom:0}.dm-err-meta[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;color:var(--mat-sys-on-surface-variant);font-size:.75rem}.dm-err-code[_ngcontent-%COMP%]{color:var(--mat-sys-error)}.dm-err-count[_ngcontent-%COMP%]{padding:0 6px;border-radius:999px;background:color-mix(in oklch,var(--mat-sys-error) 12%,transparent);color:var(--mat-sys-error);font:600 .6875rem/1rem Roboto Mono,ui-monospace,monospace}.dm-err-msg[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface);white-space:pre-wrap;word-break:break-word}.dm-tab-logs[_ngcontent-%COMP%]{gap:0}.dm-logs-toolbar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;padding:.375rem .5rem;background:var(--mat-sys-surface-container);border:1px solid var(--mat-sys-outline-variant);border-bottom:0;border-radius:12px 12px 0 0}.dm-spacer[_ngcontent-%COMP%]{flex:1}.dm-iconbtn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;background:transparent;border:0;color:var(--mat-sys-on-surface-variant);cursor:pointer;transition:background var(--dm-motion-short) var(--dm-motion-easing),color var(--dm-motion-short) var(--dm-motion-easing)}.dm-iconbtn[_ngcontent-%COMP%]:hover{background:var(--mat-sys-surface-container-high);color:var(--mat-sys-on-surface)}.dm-iconbtn.active[_ngcontent-%COMP%]{color:var(--mat-sys-primary)}.dm-iconbtn[_ngcontent-%COMP%] .material-symbols-outlined[_ngcontent-%COMP%]{font-size:18px}.dm-logbox[_ngcontent-%COMP%]{height:480px;overflow:auto;padding:.5rem .75rem;background:var(--mat-sys-surface);border:1px solid var(--mat-sys-outline-variant);border-radius:0 0 12px 12px;font-family:var(--dm-mono)}.dm-logline[_ngcontent-%COMP%]{white-space:pre-wrap;word-break:break-word;padding:1px 0;color:var(--mat-sys-on-surface)}.dm-logline[_ngcontent-%COMP%] .dm-mono[_ngcontent-%COMP%]{font-size:.8125rem}.dm-history-stats[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem}.dm-stat[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:.5rem .75rem;border-radius:10px;background:var(--mat-sys-surface-container);min-width:70px}.dm-stat-label[_ngcontent-%COMP%]{font:500 .6875rem/1rem Roboto;text-transform:uppercase;letter-spacing:.04rem;color:var(--mat-sys-on-surface-variant)}.dm-stat-num[_ngcontent-%COMP%]{font:600 1.125rem/1.5rem Roboto Mono,ui-monospace,monospace;color:var(--mat-sys-on-surface)}.dm-spark-wrap[_ngcontent-%COMP%]{position:relative;height:200px}.dm-radios[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}.dm-radio[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .5rem;border-radius:8px;cursor:pointer;transition:background var(--dm-motion-short) var(--dm-motion-easing)}.dm-radio[_ngcontent-%COMP%]:hover{background:var(--mat-sys-surface-container)}.dm-radio[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{position:absolute;opacity:0;pointer-events:none}.dm-radio-mark[_ngcontent-%COMP%]{display:inline-block;width:16px;height:16px;border-radius:999px;border:2px solid var(--mat-sys-outline);position:relative;flex-shrink:0}.dm-radio[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked + .dm-radio-mark[_ngcontent-%COMP%]{border-color:var(--mat-sys-primary)}.dm-radio[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked + .dm-radio-mark[_ngcontent-%COMP%]:after{content:"";position:absolute;inset:3px;border-radius:999px;background:var(--mat-sys-primary)}.dm-env-active[_ngcontent-%COMP%]{margin-left:auto;padding:2px 8px;border-radius:999px;font:500 .6875rem/1rem Roboto;background:color-mix(in oklch,var(--mat-sys-primary) 14%,transparent);color:var(--mat-sys-primary)}.dm-dim[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant);font-size:.875rem}.dm-loading[_ngcontent-%COMP%]{padding:2rem 0}'],changeDetection:0})};export{Oe as AppDetailComponent};
@@ -1 +1 @@
1
- import{b as N,f as R,h as A,j as F}from"./chunk-YYAZGY5M.js";import{b as T}from"./chunk-ESDYJ3BP.js";import{h as $,i as q,j as L}from"./chunk-U6AY7XZK.js";import"./chunk-Y6B6X4Y6.js";import{$b as I,Eb as h,Fb as f,Gb as k,Ib as w,Jb as P,Lb as a,Mb as r,Sb as C,Ub as u,Wb as l,Ya as y,_a as m,_b as M,ac as E,ea as v,gc as O,ic as d,ja as c,jc as g,ka as p,nc as D,oc as S,pb as b,pc as V,ta as _,xc as x}from"./chunk-K43KW4K2.js";var B=["input"];function H(i,t){if(i&1&&(a(0,"span",12),d(1),r()),i&2){let e=l().$implicit;m(),g(e.hint)}}function Q(i,t){if(i&1){let e=C();a(0,"li",10),u("mouseenter",function(){let n=c(e).$index,s=l(2);return p(s.active.set(n))})("click",function(){let n=c(e).$index,s=l(2);return p(s.runIdx(n))}),a(1,"mat-icon",5),d(2),r(),a(3,"span",11),d(4),r(),h(5,H,2,1,"span",12),a(6,"span",13),d(7),r()()}if(i&2){let e=t.$implicit,o=t.$index,n=l(2);O("active",o===n.active()),m(2),g(e.icon),m(2),g(e.label),m(),f(e.hint?5:-1),m(2),g(e.kind)}}function K(i,t){i&1&&(a(0,"li",9),d(1,"No matches."),r())}function z(i,t){if(i&1){let e=C();a(0,"div",2),u("click",function(){c(e);let n=l();return p(n.close())}),r(),a(1,"div",3)(2,"div",4)(3,"mat-icon",5),d(4,"search"),r(),a(5,"input",6,0),V("ngModelChange",function(n){c(e);let s=l();return S(s.query,n)||(s.query=n),p(n)}),u("ngModelChange",function(n){c(e);let s=l();return p(s.onQuery(n))}),r(),a(7,"kbd"),d(8,"esc"),r()(),a(9,"ul",7,1),w(11,Q,8,6,"li",8,k,!1,K,2,0,"li",9),r()()}if(i&2){let e=l();m(5),D("ngModel",e.query),m(6),P(e.visible())}}var G=class i{api=v(L);router=v(T);input;open=_(!1);query="";active=_(0);allItems=x(()=>{let t=[];t.push({kind:"nav",icon:"apps",label:"Go to Apps",hint:"g a",run:()=>this.go("/")}),t.push({kind:"nav",icon:"timeline",label:"Go to Events",hint:"g e",run:()=>this.go("/events")}),t.push({kind:"nav",icon:"terminal",label:"Go to Logs",hint:"g l",run:()=>this.go("/logs")}),t.push({kind:"nav",icon:"error",label:"Go to Errors",hint:"g r",run:()=>this.go("/errors")}),t.push({kind:"nav",icon:"medical_services",label:"Go to Doctor",hint:"g d",run:()=>this.go("/doctor")}),t.push({kind:"nav",icon:"tune",label:"Go to Config",hint:"g c",run:()=>this.go("/config")}),t.push({kind:"nav",icon:"query_stats",label:"Go to History",hint:"g h",run:()=>this.go("/history")});for(let e of this.api.apps())t.push({kind:"app",icon:"app_registration",label:e.name,hint:e.status,run:()=>this.go(`/apps/${e.name}`)}),t.push({kind:"action",icon:"play_arrow",label:`Start ${e.name}`,run:()=>{this.api.startApp(e.name)}}),t.push({kind:"action",icon:"restart_alt",label:`Restart ${e.name}`,run:()=>{this.api.restartApp(e.name)}}),t.push({kind:"action",icon:"stop",label:`Stop ${e.name}`,run:()=>{this.api.stopApp(e.name)}}),t.push({kind:"action",icon:"terminal",label:`Logs for ${e.name}`,run:()=>this.go(`/logs/${e.name}`)});return t});visible=x(()=>{let t=this.query.trim().toLowerCase();return t?this.allItems().filter(e=>e.label.toLowerCase().includes(t)||(e.hint??"").toLowerCase().includes(t)).slice(0,30):this.allItems().slice(0,12)});listener=()=>this.openPalette();ngOnInit(){window.addEventListener("daimon:cmdk",this.listener)}ngOnDestroy(){window.removeEventListener("daimon:cmdk",this.listener)}openPalette(){this.open.set(!0),this.query="",this.active.set(0),setTimeout(()=>this.input?.nativeElement.focus(),0)}close(){this.open.set(!1)}onQuery(t){this.active.set(0)}runIdx(t){let e=this.visible()[t];e&&(this.close(),e.run())}go(t){this.router.navigateByUrl(t)}onKey(t){if(this.open()){if(t.key==="Escape"){t.preventDefault(),this.close();return}t.key==="ArrowDown"||t.ctrlKey&&t.key==="n"?(t.preventDefault(),this.active.update(e=>Math.min(this.visible().length-1,e+1))):t.key==="ArrowUp"||t.ctrlKey&&t.key==="p"?(t.preventDefault(),this.active.update(e=>Math.max(0,e-1))):t.key==="Enter"&&(t.preventDefault(),this.runIdx(this.active()))}}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=b({type:i,selectors:[["dm-command-palette"]],viewQuery:function(e,o){if(e&1&&M(B,5),e&2){let n;I(n=E())&&(o.input=n.first)}},hostBindings:function(e,o){e&1&&u("keydown",function(s){return o.onKey(s)},y)},decls:1,vars:1,consts:[["input",""],["list",""],[1,"dm-palette-backdrop",3,"click"],["role","dialog","aria-label","Command palette",1,"dm-palette"],[1,"dm-palette-search"],["fontSet","material-symbols-outlined"],["placeholder","Jump to app, run action, navigate\u2026","autocomplete","off","spellcheck","false",3,"ngModelChange","ngModel"],[1,"dm-palette-list"],[1,"dm-palette-item",3,"active"],[1,"dm-palette-empty"],[1,"dm-palette-item",3,"mouseenter","click"],[1,"dm-palette-label"],[1,"dm-palette-hint"],[1,"dm-palette-kind"]],template:function(e,o){e&1&&h(0,z,14,2),e&2&&f(o.open()?0:-1)},dependencies:[F,N,R,A,q,$],styles:["[_nghost-%COMP%]{position:fixed;inset:0;z-index:1000;pointer-events:none}[_nghost-%COMP%]:has(.dm-palette){pointer-events:auto}.dm-palette-backdrop[_ngcontent-%COMP%]{position:absolute;inset:0;background:color-mix(in oklch,var(--mat-sys-scrim) 50%,transparent)}.dm-palette[_ngcontent-%COMP%]{position:absolute;top:12vh;left:50%;transform:translate(-50%);width:min(640px,92vw);background:var(--mat-sys-surface-container-high);color:var(--mat-sys-on-surface);border-radius:16px;box-shadow:var(--mat-sys-level4);overflow:hidden;border:1px solid var(--mat-sys-outline-variant)}.dm-palette-search[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;border-bottom:1px solid var(--mat-sys-outline-variant)}.dm-palette-search[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{flex:1;background:transparent;border:0;outline:0;color:inherit;font:400 1rem/1.5rem Roboto}.dm-palette-search[_ngcontent-%COMP%] kbd[_ngcontent-%COMP%]{font-family:Roboto Mono,ui-monospace,monospace;font-size:.6875rem;padding:2px 6px;border-radius:4px;background:var(--mat-sys-surface-container-low);border:1px solid var(--mat-sys-outline-variant);color:var(--mat-sys-on-surface-variant)}.dm-palette-list[_ngcontent-%COMP%]{list-style:none;margin:0;padding:6px;max-height:60vh;overflow-y:auto}.dm-palette-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;padding:10px 12px;border-radius:10px;cursor:pointer;font:500 .875rem/1.25rem Roboto}.dm-palette-item.active[_ngcontent-%COMP%]{background:color-mix(in oklch,var(--mat-sys-primary) 14%,transparent)}.dm-palette-label[_ngcontent-%COMP%]{flex:1}.dm-palette-hint[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant);font-family:Roboto Mono,monospace;font-size:.75rem}.dm-palette-kind[_ngcontent-%COMP%]{font-size:.6875rem;padding:2px 8px;border-radius:999px;background:var(--mat-sys-surface-container-low);color:var(--mat-sys-on-surface-variant);text-transform:uppercase;letter-spacing:.05em}.dm-palette-empty[_ngcontent-%COMP%]{padding:1.5rem;color:var(--mat-sys-on-surface-variant);text-align:center}"],changeDetection:0})};export{G as CommandPaletteComponent};
1
+ import{b as N,f as R,h as A,j as F}from"./chunk-YYAZGY5M.js";import{b as T}from"./chunk-EIWOTZT3.js";import{h as $,i as q,j as L}from"./chunk-LBL7Z5BE.js";import"./chunk-Y6B6X4Y6.js";import{$b as I,Eb as h,Fb as f,Gb as k,Ib as w,Jb as P,Lb as a,Mb as r,Sb as C,Ub as u,Wb as l,Ya as y,_a as m,_b as M,ac as E,ea as v,gc as O,ic as d,ja as c,jc as g,ka as p,nc as D,oc as S,pb as b,pc as V,ta as _,xc as x}from"./chunk-K43KW4K2.js";var B=["input"];function H(i,t){if(i&1&&(a(0,"span",12),d(1),r()),i&2){let e=l().$implicit;m(),g(e.hint)}}function Q(i,t){if(i&1){let e=C();a(0,"li",10),u("mouseenter",function(){let n=c(e).$index,s=l(2);return p(s.active.set(n))})("click",function(){let n=c(e).$index,s=l(2);return p(s.runIdx(n))}),a(1,"mat-icon",5),d(2),r(),a(3,"span",11),d(4),r(),h(5,H,2,1,"span",12),a(6,"span",13),d(7),r()()}if(i&2){let e=t.$implicit,o=t.$index,n=l(2);O("active",o===n.active()),m(2),g(e.icon),m(2),g(e.label),m(),f(e.hint?5:-1),m(2),g(e.kind)}}function K(i,t){i&1&&(a(0,"li",9),d(1,"No matches."),r())}function z(i,t){if(i&1){let e=C();a(0,"div",2),u("click",function(){c(e);let n=l();return p(n.close())}),r(),a(1,"div",3)(2,"div",4)(3,"mat-icon",5),d(4,"search"),r(),a(5,"input",6,0),V("ngModelChange",function(n){c(e);let s=l();return S(s.query,n)||(s.query=n),p(n)}),u("ngModelChange",function(n){c(e);let s=l();return p(s.onQuery(n))}),r(),a(7,"kbd"),d(8,"esc"),r()(),a(9,"ul",7,1),w(11,Q,8,6,"li",8,k,!1,K,2,0,"li",9),r()()}if(i&2){let e=l();m(5),D("ngModel",e.query),m(6),P(e.visible())}}var G=class i{api=v(L);router=v(T);input;open=_(!1);query="";active=_(0);allItems=x(()=>{let t=[];t.push({kind:"nav",icon:"apps",label:"Go to Apps",hint:"g a",run:()=>this.go("/")}),t.push({kind:"nav",icon:"timeline",label:"Go to Events",hint:"g e",run:()=>this.go("/events")}),t.push({kind:"nav",icon:"terminal",label:"Go to Logs",hint:"g l",run:()=>this.go("/logs")}),t.push({kind:"nav",icon:"error",label:"Go to Errors",hint:"g r",run:()=>this.go("/errors")}),t.push({kind:"nav",icon:"medical_services",label:"Go to Doctor",hint:"g d",run:()=>this.go("/doctor")}),t.push({kind:"nav",icon:"tune",label:"Go to Config",hint:"g c",run:()=>this.go("/config")}),t.push({kind:"nav",icon:"query_stats",label:"Go to History",hint:"g h",run:()=>this.go("/history")});for(let e of this.api.apps())t.push({kind:"app",icon:"app_registration",label:e.name,hint:e.status,run:()=>this.go(`/apps/${e.name}`)}),t.push({kind:"action",icon:"play_arrow",label:`Start ${e.name}`,run:()=>{this.api.startApp(e.name)}}),t.push({kind:"action",icon:"restart_alt",label:`Restart ${e.name}`,run:()=>{this.api.restartApp(e.name)}}),t.push({kind:"action",icon:"stop",label:`Stop ${e.name}`,run:()=>{this.api.stopApp(e.name)}}),t.push({kind:"action",icon:"terminal",label:`Logs for ${e.name}`,run:()=>this.go(`/logs/${e.name}`)});return t});visible=x(()=>{let t=this.query.trim().toLowerCase();return t?this.allItems().filter(e=>e.label.toLowerCase().includes(t)||(e.hint??"").toLowerCase().includes(t)).slice(0,30):this.allItems().slice(0,12)});listener=()=>this.openPalette();ngOnInit(){window.addEventListener("daimon:cmdk",this.listener)}ngOnDestroy(){window.removeEventListener("daimon:cmdk",this.listener)}openPalette(){this.open.set(!0),this.query="",this.active.set(0),setTimeout(()=>this.input?.nativeElement.focus(),0)}close(){this.open.set(!1)}onQuery(t){this.active.set(0)}runIdx(t){let e=this.visible()[t];e&&(this.close(),e.run())}go(t){this.router.navigateByUrl(t)}onKey(t){if(this.open()){if(t.key==="Escape"){t.preventDefault(),this.close();return}t.key==="ArrowDown"||t.ctrlKey&&t.key==="n"?(t.preventDefault(),this.active.update(e=>Math.min(this.visible().length-1,e+1))):t.key==="ArrowUp"||t.ctrlKey&&t.key==="p"?(t.preventDefault(),this.active.update(e=>Math.max(0,e-1))):t.key==="Enter"&&(t.preventDefault(),this.runIdx(this.active()))}}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=b({type:i,selectors:[["dm-command-palette"]],viewQuery:function(e,o){if(e&1&&M(B,5),e&2){let n;I(n=E())&&(o.input=n.first)}},hostBindings:function(e,o){e&1&&u("keydown",function(s){return o.onKey(s)},y)},decls:1,vars:1,consts:[["input",""],["list",""],[1,"dm-palette-backdrop",3,"click"],["role","dialog","aria-label","Command palette",1,"dm-palette"],[1,"dm-palette-search"],["fontSet","material-symbols-outlined"],["placeholder","Jump to app, run action, navigate\u2026","autocomplete","off","spellcheck","false",3,"ngModelChange","ngModel"],[1,"dm-palette-list"],[1,"dm-palette-item",3,"active"],[1,"dm-palette-empty"],[1,"dm-palette-item",3,"mouseenter","click"],[1,"dm-palette-label"],[1,"dm-palette-hint"],[1,"dm-palette-kind"]],template:function(e,o){e&1&&h(0,z,14,2),e&2&&f(o.open()?0:-1)},dependencies:[F,N,R,A,q,$],styles:["[_nghost-%COMP%]{position:fixed;inset:0;z-index:1000;pointer-events:none}[_nghost-%COMP%]:has(.dm-palette){pointer-events:auto}.dm-palette-backdrop[_ngcontent-%COMP%]{position:absolute;inset:0;background:color-mix(in oklch,var(--mat-sys-scrim) 50%,transparent)}.dm-palette[_ngcontent-%COMP%]{position:absolute;top:12vh;left:50%;transform:translate(-50%);width:min(640px,92vw);background:var(--mat-sys-surface-container-high);color:var(--mat-sys-on-surface);border-radius:16px;box-shadow:var(--mat-sys-level4);overflow:hidden;border:1px solid var(--mat-sys-outline-variant)}.dm-palette-search[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;border-bottom:1px solid var(--mat-sys-outline-variant)}.dm-palette-search[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{flex:1;background:transparent;border:0;outline:0;color:inherit;font:400 1rem/1.5rem Roboto}.dm-palette-search[_ngcontent-%COMP%] kbd[_ngcontent-%COMP%]{font-family:Roboto Mono,ui-monospace,monospace;font-size:.6875rem;padding:2px 6px;border-radius:4px;background:var(--mat-sys-surface-container-low);border:1px solid var(--mat-sys-outline-variant);color:var(--mat-sys-on-surface-variant)}.dm-palette-list[_ngcontent-%COMP%]{list-style:none;margin:0;padding:6px;max-height:60vh;overflow-y:auto}.dm-palette-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;padding:10px 12px;border-radius:10px;cursor:pointer;font:500 .875rem/1.25rem Roboto}.dm-palette-item.active[_ngcontent-%COMP%]{background:color-mix(in oklch,var(--mat-sys-primary) 14%,transparent)}.dm-palette-label[_ngcontent-%COMP%]{flex:1}.dm-palette-hint[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant);font-family:Roboto Mono,monospace;font-size:.75rem}.dm-palette-kind[_ngcontent-%COMP%]{font-size:.6875rem;padding:2px 8px;border-radius:999px;background:var(--mat-sys-surface-container-low);color:var(--mat-sys-on-surface-variant);text-transform:uppercase;letter-spacing:.05em}.dm-palette-empty[_ngcontent-%COMP%]{padding:1.5rem;color:var(--mat-sys-on-surface-variant);text-align:center}"],changeDetection:0})};export{G as CommandPaletteComponent};
@@ -11,5 +11,5 @@
11
11
  <style>html{color-scheme:light dark}html{--mat-sys-background:light-dark(#faf9fd, #121316);--mat-sys-error:light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container:light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface:light-dark(#f2f0f4, #2f3033);--mat-sys-inverse-primary:light-dark(#abc7ff, #005cbb);--mat-sys-inverse-surface:light-dark(#2f3033, #e3e2e6);--mat-sys-on-background:light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-error:light-dark(#ffffff, #690005);--mat-sys-on-error-container:light-dark(#93000a, #ffdad6);--mat-sys-on-primary:light-dark(#ffffff, #002f65);--mat-sys-on-primary-container:light-dark(#00458f, #d7e3ff);--mat-sys-on-primary-fixed:light-dark(#001b3f, #001b3f);--mat-sys-on-primary-fixed-variant:light-dark(#00458f, #00458f);--mat-sys-on-secondary:light-dark(#ffffff, #283041);--mat-sys-on-secondary-container:light-dark(#3e4759, #dae2f9);--mat-sys-on-secondary-fixed:light-dark(#131c2b, #131c2b);--mat-sys-on-secondary-fixed-variant:light-dark(#3e4759, #3e4759);--mat-sys-on-surface:light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-surface-variant:light-dark(#44474e, #e0e2ec);--mat-sys-on-tertiary:light-dark(#ffffff, #0001ac);--mat-sys-on-tertiary-container:light-dark(#0000ef, #e0e0ff);--mat-sys-on-tertiary-fixed:light-dark(#00006e, #00006e);--mat-sys-on-tertiary-fixed-variant:light-dark(#0000ef, #0000ef);--mat-sys-outline:light-dark(#74777f, #8e9099);--mat-sys-outline-variant:light-dark(#c4c6d0, #44474e);--mat-sys-primary:light-dark(#005cbb, #abc7ff);--mat-sys-primary-container:light-dark(#d7e3ff, #00458f);--mat-sys-primary-fixed:light-dark(#d7e3ff, #d7e3ff);--mat-sys-primary-fixed-dim:light-dark(#abc7ff, #abc7ff);--mat-sys-scrim:light-dark(#000000, #000000);--mat-sys-secondary:light-dark(#565e71, #bec6dc);--mat-sys-secondary-container:light-dark(#dae2f9, #3e4759);--mat-sys-secondary-fixed:light-dark(#dae2f9, #dae2f9);--mat-sys-secondary-fixed-dim:light-dark(#bec6dc, #bec6dc);--mat-sys-shadow:light-dark(#000000, #000000);--mat-sys-surface:light-dark(#faf9fd, #121316);--mat-sys-surface-bright:light-dark(#faf9fd, #38393c);--mat-sys-surface-container:light-dark(#efedf0, #1f2022);--mat-sys-surface-container-high:light-dark(#e9e7eb, #292a2c);--mat-sys-surface-container-highest:light-dark(#e3e2e6, #343537);--mat-sys-surface-container-low:light-dark(#f4f3f6, #1a1b1f);--mat-sys-surface-container-lowest:light-dark(#ffffff, #0d0e11);--mat-sys-surface-dim:light-dark(#dbd9dd, #121316);--mat-sys-surface-tint:light-dark(#005cbb, #abc7ff);--mat-sys-surface-variant:light-dark(#e0e2ec, #44474e);--mat-sys-tertiary:light-dark(#343dff, #bec2ff);--mat-sys-tertiary-container:light-dark(#e0e0ff, #0000ef);--mat-sys-tertiary-fixed:light-dark(#e0e0ff, #e0e0ff);--mat-sys-tertiary-fixed-dim:light-dark(#bec2ff, #bec2ff);--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-body-large:400 1rem / 1.5rem Roboto;--mat-sys-body-large-font:Roboto;--mat-sys-body-large-line-height:1.5rem;--mat-sys-body-large-size:1rem;--mat-sys-body-large-tracking:.031rem;--mat-sys-body-large-weight:400;--mat-sys-body-medium:400 .875rem / 1.25rem Roboto;--mat-sys-body-medium-font:Roboto;--mat-sys-body-medium-line-height:1.25rem;--mat-sys-body-medium-size:.875rem;--mat-sys-body-medium-tracking:.016rem;--mat-sys-body-medium-weight:400;--mat-sys-body-small:400 .75rem / 1rem Roboto;--mat-sys-body-small-font:Roboto;--mat-sys-body-small-line-height:1rem;--mat-sys-body-small-size:.75rem;--mat-sys-body-small-tracking:.025rem;--mat-sys-body-small-weight:400;--mat-sys-display-large:400 3.562rem / 4rem Roboto;--mat-sys-display-large-font:Roboto;--mat-sys-display-large-line-height:4rem;--mat-sys-display-large-size:3.562rem;--mat-sys-display-large-tracking:-.016rem;--mat-sys-display-large-weight:400;--mat-sys-display-medium:400 2.812rem / 3.25rem Roboto;--mat-sys-display-medium-font:Roboto;--mat-sys-display-medium-line-height:3.25rem;--mat-sys-display-medium-size:2.812rem;--mat-sys-display-medium-tracking:0;--mat-sys-display-medium-weight:400;--mat-sys-display-small:400 2.25rem / 2.75rem Roboto;--mat-sys-display-small-font:Roboto;--mat-sys-display-small-line-height:2.75rem;--mat-sys-display-small-size:2.25rem;--mat-sys-display-small-tracking:0;--mat-sys-display-small-weight:400;--mat-sys-headline-large:400 2rem / 2.5rem Roboto;--mat-sys-headline-large-font:Roboto;--mat-sys-headline-large-line-height:2.5rem;--mat-sys-headline-large-size:2rem;--mat-sys-headline-large-tracking:0;--mat-sys-headline-large-weight:400;--mat-sys-headline-medium:400 1.75rem / 2.25rem Roboto;--mat-sys-headline-medium-font:Roboto;--mat-sys-headline-medium-line-height:2.25rem;--mat-sys-headline-medium-size:1.75rem;--mat-sys-headline-medium-tracking:0;--mat-sys-headline-medium-weight:400;--mat-sys-headline-small:400 1.5rem / 2rem Roboto;--mat-sys-headline-small-font:Roboto;--mat-sys-headline-small-line-height:2rem;--mat-sys-headline-small-size:1.5rem;--mat-sys-headline-small-tracking:0;--mat-sys-headline-small-weight:400;--mat-sys-label-large:500 .875rem / 1.25rem Roboto;--mat-sys-label-large-font:Roboto;--mat-sys-label-large-line-height:1.25rem;--mat-sys-label-large-size:.875rem;--mat-sys-label-large-tracking:.006rem;--mat-sys-label-large-weight:500;--mat-sys-label-large-weight-prominent:700;--mat-sys-label-medium:500 .75rem / 1rem Roboto;--mat-sys-label-medium-font:Roboto;--mat-sys-label-medium-line-height:1rem;--mat-sys-label-medium-size:.75rem;--mat-sys-label-medium-tracking:.031rem;--mat-sys-label-medium-weight:500;--mat-sys-label-medium-weight-prominent:700;--mat-sys-label-small:500 .688rem / 1rem Roboto;--mat-sys-label-small-font:Roboto;--mat-sys-label-small-line-height:1rem;--mat-sys-label-small-size:.688rem;--mat-sys-label-small-tracking:.031rem;--mat-sys-label-small-weight:500;--mat-sys-title-large:400 1.375rem / 1.75rem Roboto;--mat-sys-title-large-font:Roboto;--mat-sys-title-large-line-height:1.75rem;--mat-sys-title-large-size:1.375rem;--mat-sys-title-large-tracking:0;--mat-sys-title-large-weight:400;--mat-sys-title-medium:500 1rem / 1.5rem Roboto;--mat-sys-title-medium-font:Roboto;--mat-sys-title-medium-line-height:1.5rem;--mat-sys-title-medium-size:1rem;--mat-sys-title-medium-tracking:.009rem;--mat-sys-title-medium-weight:500;--mat-sys-title-small:500 .875rem / 1.25rem Roboto;--mat-sys-title-small-font:Roboto;--mat-sys-title-small-line-height:1.25rem;--mat-sys-title-small-size:.875rem;--mat-sys-title-small-tracking:.006rem;--mat-sys-title-small-weight:500;--mat-checkbox-touch-target-display:none;--mat-checkbox-state-layer-size:32px;--mat-chip-container-height:24px;--mat-expansion-header-collapsed-state-height:40px;--mat-expansion-header-expanded-state-height:56px;--mat-fab-small-touch-target-display: ;--mat-fab-touch-target-display:none;--mat-button-filled-touch-target-display:none;--mat-button-filled-container-height:32px;--mat-button-outlined-container-height:32px;--mat-button-outlined-touch-target-display:none;--mat-button-protected-touch-target-display:none;--mat-button-protected-container-height:32px;--mat-button-text-touch-target-display:none;--mat-button-text-container-height:32px;--mat-button-tonal-container-height:32px;--mat-button-tonal-touch-target-display:none;--mat-form-field-container-height:48px;--mat-form-field-filled-label-display:none;--mat-form-field-container-vertical-padding:12px;--mat-form-field-filled-with-label-container-padding-top:12px;--mat-form-field-filled-with-label-container-padding-bottom:12px;--mat-icon-button-touch-target-display:none;--mat-icon-button-state-layer-size:32px;--mat-list-list-item-leading-icon-start-space:8px;--mat-list-list-item-leading-icon-end-space:8px;--mat-list-list-item-one-line-container-height:40px;--mat-list-list-item-two-line-container-height:56px;--mat-list-list-item-three-line-container-height:80px;--mat-paginator-container-size:48px;--mat-paginator-form-field-container-height:40px;--mat-paginator-form-field-container-vertical-padding:8px;--mat-paginator-touch-target-display:none;--mat-radio-touch-target-display:none;--mat-radio-state-layer-size:32px;--mat-tab-container-height:40px;--mat-select-arrow-transform:none;--mat-button-toggle-height:40px;--mat-stepper-header-height:64px;--mat-table-header-container-height:48px;--mat-table-footer-container-height:44px;--mat-table-row-item-container-height:44px;--mat-toolbar-standard-height:56px;--mat-toolbar-mobile-height:48px;--mat-tree-node-min-height:40px;--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12}html,body{height:100%}body{margin:0;font-family:Roboto,system-ui,-apple-system,sans-serif;background:var(--mat-sys-surface);color:var(--mat-sys-on-surface)}:root{--dm-motion-easing:cubic-bezier(.2, 0, 0, 1);--dm-motion-easing-emphasized:cubic-bezier(.05, .7, .1, 1);--dm-motion-short:.2s;--dm-motion-medium:.3s;--dm-mono:"Roboto Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}</style><link rel="stylesheet" href="styles-SIPYJLMG.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-SIPYJLMG.css"></noscript></head>
12
12
  <body class="mat-typography">
13
13
  <dm-root>Loading daimon...</dm-root>
14
- <link rel="modulepreload" href="chunk-JUZHAE4L.js"><link rel="modulepreload" href="chunk-YNQPX5G6.js"><link rel="modulepreload" href="chunk-MHOSWLRR.js"><link rel="modulepreload" href="chunk-ESDYJ3BP.js"><link rel="modulepreload" href="chunk-U6AY7XZK.js"><link rel="modulepreload" href="chunk-Y6B6X4Y6.js"><link rel="modulepreload" href="chunk-K43KW4K2.js"><script src="main-ZADV4SOC.js" type="module"></script></body>
14
+ <link rel="modulepreload" href="chunk-K7S4ITPJ.js"><link rel="modulepreload" href="chunk-YNQPX5G6.js"><link rel="modulepreload" href="chunk-7C772RJ3.js"><link rel="modulepreload" href="chunk-6WZJCF24.js"><link rel="modulepreload" href="chunk-KLH6B22T.js"><link rel="modulepreload" href="chunk-EIWOTZT3.js"><link rel="modulepreload" href="chunk-LBL7Z5BE.js"><link rel="modulepreload" href="chunk-Y6B6X4Y6.js"><link rel="modulepreload" href="chunk-K43KW4K2.js"><script src="main-4CQTBXSB.js" type="module"></script></body>
15
15
  </html>