daimon 0.9.0 → 0.10.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.
- package/CHANGELOG.md +83 -0
- package/dist/cli.js +98 -88
- package/dist/dashboard/browser/chunk-2LMH5KDX.js +5 -0
- package/dist/dashboard/browser/{chunk-6Z4FDREI.js → chunk-2QORICNU.js} +1 -1
- package/dist/dashboard/browser/{chunk-UUJWPV5O.js → chunk-36JZZZCV.js} +1 -1
- package/dist/dashboard/browser/{chunk-4KVYA2AQ.js → chunk-3S7OJ77P.js} +1 -1
- package/dist/dashboard/browser/{chunk-TGSV7ZHM.js → chunk-42QQHEGP.js} +1 -1
- package/dist/dashboard/browser/chunk-4L223A7A.js +1 -0
- package/dist/dashboard/browser/{chunk-EBGPIJ7S.js → chunk-532NB4ME.js} +1 -1
- package/dist/dashboard/browser/{chunk-X4RGWMLE.js → chunk-6CP6NCA6.js} +2 -2
- package/dist/dashboard/browser/chunk-6OMBXV4F.js +1 -0
- package/dist/dashboard/browser/chunk-6YXOOFGY.js +1 -0
- package/dist/dashboard/browser/{chunk-VMW35ZNT.js → chunk-AHO3BCLI.js} +1 -1
- package/dist/dashboard/browser/{chunk-CIQNXWDY.js → chunk-ASK7FG27.js} +1 -1
- package/dist/dashboard/browser/{chunk-AGN2F6JP.js → chunk-BCGQJHY3.js} +1 -1
- package/dist/dashboard/browser/{chunk-ACPSBF55.js → chunk-BDTAVYPH.js} +1 -1
- package/dist/dashboard/browser/{chunk-FZLMX6EY.js → chunk-BFBXHJEF.js} +1 -1
- package/dist/dashboard/browser/{chunk-B2DPS6BL.js → chunk-BKYXU3OY.js} +1 -1
- package/dist/dashboard/browser/{chunk-UC7AWK4C.js → chunk-BPUIUSAU.js} +1 -1
- package/dist/dashboard/browser/{chunk-6MTVWBQQ.js → chunk-C6SNIY22.js} +1 -1
- package/dist/dashboard/browser/{chunk-3ZFFKHPU.js → chunk-CCRYWDXZ.js} +1 -1
- package/dist/dashboard/browser/{chunk-JWXROQJJ.js → chunk-DNHNU64I.js} +1 -1
- package/dist/dashboard/browser/{chunk-FRKUCFVI.js → chunk-DRBVSI3B.js} +1 -1
- package/dist/dashboard/browser/{chunk-RNUJZTKS.js → chunk-EXOJOB6H.js} +2 -2
- package/dist/dashboard/browser/chunk-EYOED3X7.js +2 -0
- package/dist/dashboard/browser/{chunk-3EPFSBJ2.js → chunk-G3IBZZQH.js} +1 -1
- package/dist/dashboard/browser/chunk-H3HRZLHG.js +4 -0
- package/dist/dashboard/browser/chunk-H5GKWN4K.js +1 -0
- package/dist/dashboard/browser/{chunk-KRC72WWY.js → chunk-HVK4GEK7.js} +1 -1
- package/dist/dashboard/browser/{chunk-7LKM244H.js → chunk-HYIZY5FQ.js} +1 -1
- package/dist/dashboard/browser/chunk-ITSOVQEA.js +1 -0
- package/dist/dashboard/browser/{chunk-WOMCRDMJ.js → chunk-JODWQVMA.js} +1 -1
- package/dist/dashboard/browser/chunk-LAMOHX23.js +1 -0
- package/dist/dashboard/browser/chunk-NMKAKRON.js +1 -0
- package/dist/dashboard/browser/{chunk-F3FCHBFQ.js → chunk-NY5IR366.js} +1 -1
- package/dist/dashboard/browser/{chunk-NVL5HFLU.js → chunk-OOQPWG6B.js} +1 -1
- package/dist/dashboard/browser/{chunk-SR4HVFOB.js → chunk-P3Q7RWT5.js} +1 -1
- package/dist/dashboard/browser/{chunk-YHBNUNU3.js → chunk-PVPELZPO.js} +1 -1
- package/dist/dashboard/browser/{chunk-66VYPESU.js → chunk-QHXOUNPA.js} +1 -1
- package/dist/dashboard/browser/{chunk-VHALTUPL.js → chunk-RMV7CR6Y.js} +1 -1
- package/dist/dashboard/browser/chunk-RQSDQXNY.js +1 -0
- package/dist/dashboard/browser/chunk-RWX5JIT4.js +1 -0
- package/dist/dashboard/browser/{chunk-R7VSXL63.js → chunk-SXE7REUK.js} +1 -1
- package/dist/dashboard/browser/chunk-TLCLILNG.js +4 -0
- package/dist/dashboard/browser/chunk-UAIWZYHN.js +1 -0
- package/dist/dashboard/browser/chunk-UFTWVSEC.js +2 -0
- package/dist/dashboard/browser/{chunk-RWXAGDGT.js → chunk-UXLEE3F2.js} +1 -1
- package/dist/dashboard/browser/{chunk-K6PUQAFE.js → chunk-XPP3TYS2.js} +1 -1
- package/dist/dashboard/browser/{chunk-PRLUGTKR.js → chunk-YFYMS5EE.js} +1 -1
- package/dist/dashboard/browser/chunk-YPVVBWNF.js +1 -0
- package/dist/dashboard/browser/{chunk-BBTQXZIS.js → chunk-Z3XFJOYG.js} +1 -1
- package/dist/dashboard/browser/index.html +2 -2
- package/dist/dashboard/browser/main-EENULCI5.js +1 -0
- package/dist/main.js +55 -51
- package/dist/mcp.js +3 -3
- package/package.json +4 -2
- package/dist/dashboard/browser/chunk-55AO3FMG.js +0 -1
- package/dist/dashboard/browser/chunk-FD3BW2ZN.js +0 -1
- package/dist/dashboard/browser/chunk-GMEW64AS.js +0 -1
- package/dist/dashboard/browser/chunk-HXX2OUOE.js +0 -1
- package/dist/dashboard/browser/chunk-HZNVO3JE.js +0 -1
- package/dist/dashboard/browser/chunk-K2SFF47Z.js +0 -5
- package/dist/dashboard/browser/chunk-K5WKBG55.js +0 -1
- package/dist/dashboard/browser/chunk-LBWOIG7N.js +0 -5
- package/dist/dashboard/browser/chunk-O76B43BY.js +0 -4
- package/dist/dashboard/browser/chunk-QYIYT4YU.js +0 -1
- package/dist/dashboard/browser/chunk-RXOAYCKI.js +0 -2
- package/dist/dashboard/browser/chunk-WRX32YWH.js +0 -1
- package/dist/dashboard/browser/main-YAROJLJV.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as re,b as oe,c as se}from"./chunk-K6PUQAFE.js";import{a as ee,b as te,c as ne,d as ae,f as ie,g as W}from"./chunk-RNUJZTKS.js";import{a as B,b as Y}from"./chunk-F3FCHBFQ.js";import"./chunk-YHBNUNU3.js";import"./chunk-KRC72WWY.js";import{m as G}from"./chunk-6Z4FDREI.js";import"./chunk-AGN2F6JP.js";import"./chunk-SR4HVFOB.js";import{b as Z,c as J,d as X}from"./chunk-WOMCRDMJ.js";import"./chunk-YNQPX5G6.js";import"./chunk-FRKUCFVI.js";import"./chunk-B2DPS6BL.js";import{f as U}from"./chunk-UC7AWK4C.js";import{d as $}from"./chunk-X4RGWMLE.js";import"./chunk-JWXROQJJ.js";import{h as I}from"./chunk-EBGPIJ7S.js";import{$b as y,Eb as P,Fb as D,Ib as z,Jb as H,Kb as w,Lb as d,Mb as p,Nb as _,Sb as K,Ub as x,Wb as j,_a as c,_b as b,ac as v,ea as q,ic as m,ja as M,jc as E,ka as k,pb as A,ta as f}from"./chunk-O76B43BY.js";var ue=["canvas"];function he(r,e){if(r&1&&(d(0,"mat-card-subtitle"),m(1),p()),r&2){let t=j();c(),E(t.subtitle())}}function ge(r,e){r&1&&_(0,"dm-skeleton",2)}function fe(r,e){r&1&&_(0,"dm-empty",3)}function Ce(r,e){r&1&&(d(0,"div",4),_(1,"canvas",null,0),p())}var be=["compileChart"],ye=["bundleChart"],ve=["errorChart"],_e=["restartChart"],we=["selfChart"],Se=(r,e)=>e.name;function Te(r,e){if(r&1&&(d(0,"mat-button-toggle",14)(1,"dm-mono"),m(2),p()()),r&2){let t=e.$implicit;w("value",t.name),c(2),E(t.name)}}function Me(r,e){r&1&&_(0,"dm-trend-chart",null,4)}B.register(...Y);function S(r){return getComputedStyle(document.documentElement).getPropertyValue(r).trim()}function le(r,e){let t=new Date(r);return e==="24h"?t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):t.toLocaleDateString([],{month:"short",day:"numeric"})}var O=class r{canvasRef;chart;loading=f(!0);empty=f(!1);title=f("");subtitle=f("");pendingCfg=null;ngAfterViewInit(){this.pendingCfg&&this.applyCfg(this.pendingCfg)}setData(e){this.title.set(e.title),this.subtitle.set(e.subtitle??""),this.loading.set(!1);let t=e.datasets.every(s=>!s.data?.length);if(this.empty.set(t),t){this.destroy();return}let n=matchMedia("(prefers-reduced-motion: reduce)").matches,a=S("--mat-sys-outline-variant")||"rgba(120,120,120,0.3)",i={type:e.chartType,data:{labels:e.labels,datasets:e.datasets},options:{responsive:!0,maintainAspectRatio:!1,animation:n?!1:{duration:200},plugins:{legend:{position:"bottom",labels:{boxWidth:12}}},scales:{x:{stacked:!!e.stacked,ticks:{maxTicksLimit:8,autoSkip:!0},grid:{color:a}},y:{stacked:!!e.stacked,beginAtZero:!0,title:e.yLabel?{display:!0,text:e.yLabel}:void 0,grid:{color:a}}}}};if(!this.canvasRef){this.pendingCfg=i,this.flushPendingWhenCanvasReady();return}this.applyCfg(i)}flushPendingWhenCanvasReady(e=0){if(this.pendingCfg){if(this.canvasRef?.nativeElement){this.applyCfg(this.pendingCfg);return}e>=10||requestAnimationFrame(()=>this.flushPendingWhenCanvasReady(e+1))}}applyCfg(e){let t=this.canvasRef?.nativeElement;if(!t){this.pendingCfg=e,this.flushPendingWhenCanvasReady();return}this.chart&&this.chart.destroy(),this.chart=new B(t,e),this.pendingCfg=null}setLoading(){this.loading.set(!0),this.empty.set(!1),this.destroy()}destroy(){this.chart?.destroy(),this.chart=void 0}ngOnDestroy(){this.destroy()}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=A({type:r,selectors:[["dm-trend-chart"]],viewQuery:function(t,n){if(t&1&&b(ue,5),t&2){let a;y(a=v())&&(n.canvasRef=a.first)}},decls:9,vars:3,consts:[["canvas",""],[1,"dm-trend-card"],["height","220px"],["icon","query_stats","title","No data","hint","Run the app to populate this metric"],[1,"dm-chart-box"]],template:function(t,n){t&1&&(d(0,"mat-card",1)(1,"mat-card-header")(2,"mat-card-title"),m(3),p(),P(4,he,2,1,"mat-card-subtitle"),p(),d(5,"mat-card-content"),P(6,ge,1,0,"dm-skeleton",2)(7,fe,1,0,"dm-empty",3)(8,Ce,3,0,"div",4),p()()),t&2&&(c(3),E(n.title()),c(),D(n.subtitle()?4:-1),c(2),D(n.loading()?6:n.empty()?7:8))},dependencies:[I,W,ee,ne,ie,ae,te,J,Z],styles:["[_nghost-%COMP%]{display:block}.dm-trend-card[_ngcontent-%COMP%]{height:100%}.dm-chart-box[_ngcontent-%COMP%]{position:relative;height:220px}"],changeDetection:0})},de=class r{api=q($);window=f("7d");appFilter=f("__all__");showSelf=f(!1);compileChart;bundleChart;errorChart;restartChart;selfChart;timer;async ngOnInit(){await this.api.refresh(),await this.loadAll(),this.timer=setInterval(()=>{this.loadAll(!0)},6e4)}ngOnDestroy(){this.timer&&clearInterval(this.timer)}onWindowChange(e){this.window.set(e),this.loadAll()}onAppChange(e){this.appFilter.set(e),this.loadAll()}onSelfToggle(e){this.showSelf.set(e==="on"),this.loadAll()}async loadAll(e=!1){let t=this.window(),n=this.appFilter(),a=n==="__all__"?this.api.apps().map(o=>o.name):[n];e||(this.compileChart?.setLoading(),this.bundleChart?.setLoading(),this.errorChart?.setLoading(),this.restartChart?.setLoading());let i=S("--mat-sys-primary")||"#6750a4",s=S("--mat-sys-tertiary")||"#7d5260",C=S("--mat-sys-error")||"#b3261e",pe=S("--mat-sys-secondary")||"#625b71",u=[i,s,pe,C,"color-mix(in oklch, "+i+" 60%, transparent)","color-mix(in oklch, "+s+" 60%, transparent)"],me=await Promise.all(a.map(o=>this.api.getTrendsMulti({app:o,metrics:["compile","bundle","errors","restarts"],since:t}).then(l=>({app:o,r:l})))),T=o=>me.map(({app:l,r:L})=>({app:l,points:L?.metrics?.[o]?.points??[]})).filter(l=>l.points.length>0),Q=T("compile"),N=T("bundle"),V=T("errors"),F=T("restarts"),h=this.unionLabels([Q,N,V,F],t);this.compileChart?.setData({title:"Compile time",subtitle:"avg ms per "+(t==="24h"?"hour":"day"),chartType:"line",labels:h.labels,datasets:Q.map((o,l)=>({label:o.app,data:this.align(o.points,h.buckets,"v"),borderColor:u[l%u.length],backgroundColor:"transparent",borderWidth:1.4,tension:.3,pointRadius:0})),yLabel:"ms"});let R=[];if(N.forEach((o,l)=>{R.push({label:o.app+" \xB7 initialKB",data:this.align(o.points,h.buckets,"v"),backgroundColor:u[l*2%u.length],stack:o.app}),R.push({label:o.app+" \xB7 lazyKB",data:this.align(o.points,h.buckets,"v2"),backgroundColor:u[(l*2+1)%u.length],stack:o.app})}),this.bundleChart?.setData({title:"Bundle size",subtitle:"initial + lazy KB, stacked",chartType:"bar",labels:h.labels,datasets:R,stacked:!0,yLabel:"KB"}),this.errorChart?.setData({title:"Error frequency",subtitle:"errors per "+(t==="24h"?"hour":"day"),chartType:"bar",labels:h.labels,datasets:V.map((o,l)=>({label:o.app,data:this.align(o.points,h.buckets,"v"),backgroundColor:u[l%u.length]})),yLabel:"count"}),this.restartChart?.setData({title:"Restart rate",subtitle:"error\u2192starting transitions per "+(t==="24h"?"hour":"day"),chartType:"bar",labels:h.labels,datasets:F.map((o,l)=>({label:o.app,data:this.align(o.points,h.buckets,"v"),backgroundColor:u[l%u.length]})),yLabel:"count"}),this.showSelf()){let l=[...await this.api.getSelfHistory(t==="24h"?"24h":"7d")].sort((g,ce)=>g.ts-ce.ts),L=l.map(g=>le(g.ts,t));this.selfChart?.setData({title:"Daimon self",subtitle:"rss \xB7 heap \xB7 event-loop lag",chartType:"line",labels:L,datasets:[{label:"rssMB",data:l.map(g=>g.rssMB),borderColor:i,backgroundColor:"transparent",borderWidth:1.4,tension:.3,pointRadius:0},{label:"heapUsedMB",data:l.map(g=>g.heapUsedMB),borderColor:s,backgroundColor:"transparent",borderWidth:1.4,tension:.3,pointRadius:0},{label:"eventLoopLagMs",data:l.map(g=>g.eventLoopLagMs),borderColor:C,backgroundColor:"transparent",borderWidth:1.4,tension:.3,pointRadius:0,yAxisID:"y1"}],yLabel:"MB / ms"})}}async fetchSeries(e,t,n){return e.length===0?[]:(await Promise.all(e.map(async i=>{let s=await this.api.getTrends({app:i,metric:t,since:n});return{app:i,points:s?.points??[]}}))).filter(i=>i.points.length>0)}unionLabels(e,t){let n=new Set;for(let i of e)for(let s of i)for(let C of s.points)n.add(C.t);let a=[...n].sort((i,s)=>i-s);return{buckets:a,labels:a.map(i=>le(i,t))}}align(e,t,n){let a=new Map;for(let i of e)a.set(i.t,i);return t.map(i=>{let s=a.get(i);if(!s)return 0;let C=n==="v"?s.v:s.v2;return typeof C=="number"?C:0})}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=A({type:r,selectors:[["dm-trends-page"]],viewQuery:function(t,n){if(t&1&&(b(be,5),b(ye,5),b(ve,5),b(_e,5),b(we,5)),t&2){let a;y(a=v())&&(n.compileChart=a.first),y(a=v())&&(n.bundleChart=a.first),y(a=v())&&(n.errorChart=a.first),y(a=v())&&(n.restartChart=a.first),y(a=v())&&(n.selfChart=a.first)}},decls:34,vars:4,consts:[["compileChart",""],["bundleChart",""],["errorChart",""],["restartChart",""],["selfChart",""],[1,"dm-page-header"],[1,"dm-page-sub"],[1,"dm-controls"],["hideSingleSelectionIndicator","","aria-label","Time window",3,"change","value"],["value","24h"],["value","7d"],["value","30d"],["hideSingleSelectionIndicator","","aria-label","App scope",3,"change","value"],["value","__all__"],[3,"value"],["hideSingleSelectionIndicator","","aria-label","Self chart",3,"change","value"],["value","off"],["value","on"],[1,"dm-grid"]],template:function(t,n){if(t&1){let a=K();d(0,"div",5)(1,"div")(2,"h1"),m(3,"Trends"),p(),d(4,"div",6),m(5,"Historical compile \xB7 bundle \xB7 error \xB7 restart trends"),p()(),d(6,"div",7)(7,"mat-button-toggle-group",8),x("change",function(s){return M(a),k(n.onWindowChange(s.value))}),d(8,"mat-button-toggle",9),m(9,"24h"),p(),d(10,"mat-button-toggle",10),m(11,"7d"),p(),d(12,"mat-button-toggle",11),m(13,"30d"),p()(),d(14,"mat-button-toggle-group",12),x("change",function(s){return M(a),k(n.onAppChange(s.value))}),d(15,"mat-button-toggle",13),m(16,"All apps"),p(),z(17,Te,3,2,"mat-button-toggle",14,Se),p(),d(19,"mat-button-toggle-group",15),x("change",function(s){return M(a),k(n.onSelfToggle(s.value))}),d(20,"mat-button-toggle",16),m(21,"Apps"),p(),d(22,"mat-button-toggle",17),m(23,"Self"),p()()()(),d(24,"div",18),_(25,"dm-trend-chart",null,0)(27,"dm-trend-chart",null,1)(29,"dm-trend-chart",null,2)(31,"dm-trend-chart",null,3),P(33,Me,2,0,"dm-trend-chart"),p()}t&2&&(c(7),w("value",n.window()),c(7),w("value",n.appFilter()),c(3),H(n.api.apps()),c(2),w("value",n.showSelf()?"on":"off"),c(14),D(n.showSelf()?33:-1))},dependencies:[I,G,W,se,re,oe,U,X,O],styles:["[_nghost-%COMP%]{display:block}.dm-page-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.dm-page-sub[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant);font-size:.875rem}.dm-controls[_ngcontent-%COMP%]{display:flex;gap:.75rem;flex-wrap:wrap}.dm-grid[_ngcontent-%COMP%]{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(28rem,1fr))}"],changeDetection:0})};export{O as TrendChartComponent,de as TrendsPageComponent};
|
|
1
|
+
import{a as re,b as oe,c as se}from"./chunk-XPP3TYS2.js";import{a as ee,b as te,c as ne,d as ae,f as ie,h as W}from"./chunk-EXOJOB6H.js";import{a as B,b as Y}from"./chunk-NY5IR366.js";import"./chunk-PVPELZPO.js";import"./chunk-HVK4GEK7.js";import{m as G}from"./chunk-2QORICNU.js";import"./chunk-BCGQJHY3.js";import"./chunk-P3Q7RWT5.js";import{b as Z,c as J,d as X}from"./chunk-JODWQVMA.js";import"./chunk-YNQPX5G6.js";import"./chunk-DRBVSI3B.js";import"./chunk-BKYXU3OY.js";import{f as U}from"./chunk-BPUIUSAU.js";import{d as $}from"./chunk-6CP6NCA6.js";import"./chunk-DNHNU64I.js";import{h as I}from"./chunk-532NB4ME.js";import{$b as b,Fb as P,Gb as D,Jb as z,Kb as H,Lb as w,Mb as d,Nb as p,Ob as _,Tb as K,Vb as x,Xb as j,_a as c,ac as y,bc as v,ea as q,ja as M,jc as m,ka as k,kc as E,pb as A,ta as f}from"./chunk-H3HRZLHG.js";var ue=["canvas"];function he(r,e){if(r&1&&(d(0,"mat-card-subtitle"),m(1),p()),r&2){let t=j();c(),E(t.subtitle())}}function ge(r,e){r&1&&_(0,"dm-skeleton",2)}function fe(r,e){r&1&&_(0,"dm-empty",3)}function Ce(r,e){r&1&&(d(0,"div",4),_(1,"canvas",null,0),p())}var be=["compileChart"],ye=["bundleChart"],ve=["errorChart"],_e=["restartChart"],we=["selfChart"],Se=(r,e)=>e.name;function Te(r,e){if(r&1&&(d(0,"mat-button-toggle",14)(1,"dm-mono"),m(2),p()()),r&2){let t=e.$implicit;w("value",t.name),c(2),E(t.name)}}function Me(r,e){r&1&&_(0,"dm-trend-chart",null,4)}B.register(...Y);function S(r){return getComputedStyle(document.documentElement).getPropertyValue(r).trim()}function le(r,e){let t=new Date(r);return e==="24h"?t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):t.toLocaleDateString([],{month:"short",day:"numeric"})}var O=class r{canvasRef;chart;loading=f(!0);empty=f(!1);title=f("");subtitle=f("");pendingCfg=null;ngAfterViewInit(){this.pendingCfg&&this.applyCfg(this.pendingCfg)}setData(e){this.title.set(e.title),this.subtitle.set(e.subtitle??""),this.loading.set(!1);let t=e.datasets.every(s=>!s.data?.length);if(this.empty.set(t),t){this.destroy();return}let n=matchMedia("(prefers-reduced-motion: reduce)").matches,a=S("--mat-sys-outline-variant")||"rgba(120,120,120,0.3)",i={type:e.chartType,data:{labels:e.labels,datasets:e.datasets},options:{responsive:!0,maintainAspectRatio:!1,animation:n?!1:{duration:200},plugins:{legend:{position:"bottom",labels:{boxWidth:12}}},scales:{x:{stacked:!!e.stacked,ticks:{maxTicksLimit:8,autoSkip:!0},grid:{color:a}},y:{stacked:!!e.stacked,beginAtZero:!0,title:e.yLabel?{display:!0,text:e.yLabel}:void 0,grid:{color:a}}}}};if(!this.canvasRef){this.pendingCfg=i,this.flushPendingWhenCanvasReady();return}this.applyCfg(i)}flushPendingWhenCanvasReady(e=0){if(this.pendingCfg){if(this.canvasRef?.nativeElement){this.applyCfg(this.pendingCfg);return}e>=10||requestAnimationFrame(()=>this.flushPendingWhenCanvasReady(e+1))}}applyCfg(e){let t=this.canvasRef?.nativeElement;if(!t){this.pendingCfg=e,this.flushPendingWhenCanvasReady();return}this.chart&&this.chart.destroy(),this.chart=new B(t,e),this.pendingCfg=null}setLoading(){this.loading.set(!0),this.empty.set(!1),this.destroy()}destroy(){this.chart?.destroy(),this.chart=void 0}ngOnDestroy(){this.destroy()}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=A({type:r,selectors:[["dm-trend-chart"]],viewQuery:function(t,n){if(t&1&&b(ue,5),t&2){let a;y(a=v())&&(n.canvasRef=a.first)}},decls:9,vars:3,consts:[["canvas",""],[1,"dm-trend-card"],["height","220px"],["icon","query_stats","title","No data","hint","Run the app to populate this metric"],[1,"dm-chart-box"]],template:function(t,n){t&1&&(d(0,"mat-card",1)(1,"mat-card-header")(2,"mat-card-title"),m(3),p(),P(4,he,2,1,"mat-card-subtitle"),p(),d(5,"mat-card-content"),P(6,ge,1,0,"dm-skeleton",2)(7,fe,1,0,"dm-empty",3)(8,Ce,3,0,"div",4),p()()),t&2&&(c(3),E(n.title()),c(),D(n.subtitle()?4:-1),c(2),D(n.loading()?6:n.empty()?7:8))},dependencies:[I,W,ee,ne,ie,ae,te,J,Z],styles:["[_nghost-%COMP%]{display:block}.dm-trend-card[_ngcontent-%COMP%]{height:100%}.dm-chart-box[_ngcontent-%COMP%]{position:relative;height:220px}"],changeDetection:0})},de=class r{api=q($);window=f("7d");appFilter=f("__all__");showSelf=f(!1);compileChart;bundleChart;errorChart;restartChart;selfChart;timer;async ngOnInit(){await this.api.refresh(),await this.loadAll(),this.timer=setInterval(()=>{this.loadAll(!0)},6e4)}ngOnDestroy(){this.timer&&clearInterval(this.timer)}onWindowChange(e){this.window.set(e),this.loadAll()}onAppChange(e){this.appFilter.set(e),this.loadAll()}onSelfToggle(e){this.showSelf.set(e==="on"),this.loadAll()}async loadAll(e=!1){let t=this.window(),n=this.appFilter(),a=n==="__all__"?this.api.apps().map(o=>o.name):[n];e||(this.compileChart?.setLoading(),this.bundleChart?.setLoading(),this.errorChart?.setLoading(),this.restartChart?.setLoading());let i=S("--mat-sys-primary")||"#6750a4",s=S("--mat-sys-tertiary")||"#7d5260",C=S("--mat-sys-error")||"#b3261e",pe=S("--mat-sys-secondary")||"#625b71",u=[i,s,pe,C,"color-mix(in oklch, "+i+" 60%, transparent)","color-mix(in oklch, "+s+" 60%, transparent)"],me=await Promise.all(a.map(o=>this.api.getTrendsMulti({app:o,metrics:["compile","bundle","errors","restarts"],since:t}).then(l=>({app:o,r:l})))),T=o=>me.map(({app:l,r:L})=>({app:l,points:L?.metrics?.[o]?.points??[]})).filter(l=>l.points.length>0),Q=T("compile"),N=T("bundle"),V=T("errors"),F=T("restarts"),h=this.unionLabels([Q,N,V,F],t);this.compileChart?.setData({title:"Compile time",subtitle:"avg ms per "+(t==="24h"?"hour":"day"),chartType:"line",labels:h.labels,datasets:Q.map((o,l)=>({label:o.app,data:this.align(o.points,h.buckets,"v"),borderColor:u[l%u.length],backgroundColor:"transparent",borderWidth:1.4,tension:.3,pointRadius:0})),yLabel:"ms"});let R=[];if(N.forEach((o,l)=>{R.push({label:o.app+" \xB7 initialKB",data:this.align(o.points,h.buckets,"v"),backgroundColor:u[l*2%u.length],stack:o.app}),R.push({label:o.app+" \xB7 lazyKB",data:this.align(o.points,h.buckets,"v2"),backgroundColor:u[(l*2+1)%u.length],stack:o.app})}),this.bundleChart?.setData({title:"Bundle size",subtitle:"initial + lazy KB, stacked",chartType:"bar",labels:h.labels,datasets:R,stacked:!0,yLabel:"KB"}),this.errorChart?.setData({title:"Error frequency",subtitle:"errors per "+(t==="24h"?"hour":"day"),chartType:"bar",labels:h.labels,datasets:V.map((o,l)=>({label:o.app,data:this.align(o.points,h.buckets,"v"),backgroundColor:u[l%u.length]})),yLabel:"count"}),this.restartChart?.setData({title:"Restart rate",subtitle:"error\u2192starting transitions per "+(t==="24h"?"hour":"day"),chartType:"bar",labels:h.labels,datasets:F.map((o,l)=>({label:o.app,data:this.align(o.points,h.buckets,"v"),backgroundColor:u[l%u.length]})),yLabel:"count"}),this.showSelf()){let l=[...await this.api.getSelfHistory(t==="24h"?"24h":"7d")].sort((g,ce)=>g.ts-ce.ts),L=l.map(g=>le(g.ts,t));this.selfChart?.setData({title:"Daimon self",subtitle:"rss \xB7 heap \xB7 event-loop lag",chartType:"line",labels:L,datasets:[{label:"rssMB",data:l.map(g=>g.rssMB),borderColor:i,backgroundColor:"transparent",borderWidth:1.4,tension:.3,pointRadius:0},{label:"heapUsedMB",data:l.map(g=>g.heapUsedMB),borderColor:s,backgroundColor:"transparent",borderWidth:1.4,tension:.3,pointRadius:0},{label:"eventLoopLagMs",data:l.map(g=>g.eventLoopLagMs),borderColor:C,backgroundColor:"transparent",borderWidth:1.4,tension:.3,pointRadius:0,yAxisID:"y1"}],yLabel:"MB / ms"})}}async fetchSeries(e,t,n){return e.length===0?[]:(await Promise.all(e.map(async i=>{let s=await this.api.getTrends({app:i,metric:t,since:n});return{app:i,points:s?.points??[]}}))).filter(i=>i.points.length>0)}unionLabels(e,t){let n=new Set;for(let i of e)for(let s of i)for(let C of s.points)n.add(C.t);let a=[...n].sort((i,s)=>i-s);return{buckets:a,labels:a.map(i=>le(i,t))}}align(e,t,n){let a=new Map;for(let i of e)a.set(i.t,i);return t.map(i=>{let s=a.get(i);if(!s)return 0;let C=n==="v"?s.v:s.v2;return typeof C=="number"?C:0})}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=A({type:r,selectors:[["dm-trends-page"]],viewQuery:function(t,n){if(t&1&&(b(be,5),b(ye,5),b(ve,5),b(_e,5),b(we,5)),t&2){let a;y(a=v())&&(n.compileChart=a.first),y(a=v())&&(n.bundleChart=a.first),y(a=v())&&(n.errorChart=a.first),y(a=v())&&(n.restartChart=a.first),y(a=v())&&(n.selfChart=a.first)}},decls:34,vars:4,consts:[["compileChart",""],["bundleChart",""],["errorChart",""],["restartChart",""],["selfChart",""],[1,"dm-page-header"],[1,"dm-page-sub"],[1,"dm-controls"],["hideSingleSelectionIndicator","","aria-label","Time window",3,"change","value"],["value","24h"],["value","7d"],["value","30d"],["hideSingleSelectionIndicator","","aria-label","App scope",3,"change","value"],["value","__all__"],[3,"value"],["hideSingleSelectionIndicator","","aria-label","Self chart",3,"change","value"],["value","off"],["value","on"],[1,"dm-grid"]],template:function(t,n){if(t&1){let a=K();d(0,"div",5)(1,"div")(2,"h1"),m(3,"Trends"),p(),d(4,"div",6),m(5,"Historical compile \xB7 bundle \xB7 error \xB7 restart trends"),p()(),d(6,"div",7)(7,"mat-button-toggle-group",8),x("change",function(s){return M(a),k(n.onWindowChange(s.value))}),d(8,"mat-button-toggle",9),m(9,"24h"),p(),d(10,"mat-button-toggle",10),m(11,"7d"),p(),d(12,"mat-button-toggle",11),m(13,"30d"),p()(),d(14,"mat-button-toggle-group",12),x("change",function(s){return M(a),k(n.onAppChange(s.value))}),d(15,"mat-button-toggle",13),m(16,"All apps"),p(),z(17,Te,3,2,"mat-button-toggle",14,Se),p(),d(19,"mat-button-toggle-group",15),x("change",function(s){return M(a),k(n.onSelfToggle(s.value))}),d(20,"mat-button-toggle",16),m(21,"Apps"),p(),d(22,"mat-button-toggle",17),m(23,"Self"),p()()()(),d(24,"div",18),_(25,"dm-trend-chart",null,0)(27,"dm-trend-chart",null,1)(29,"dm-trend-chart",null,2)(31,"dm-trend-chart",null,3),P(33,Me,2,0,"dm-trend-chart"),p()}t&2&&(c(7),w("value",n.window()),c(7),w("value",n.appFilter()),c(3),H(n.api.apps()),c(2),w("value",n.showSelf()?"on":"off"),c(14),D(n.showSelf()?33:-1))},dependencies:[I,G,W,se,re,oe,U,X,O],styles:["[_nghost-%COMP%]{display:block}.dm-page-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.dm-page-sub[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant);font-size:.875rem}.dm-controls[_ngcontent-%COMP%]{display:flex;gap:.75rem;flex-wrap:wrap}.dm-grid[_ngcontent-%COMP%]{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(28rem,1fr))}"],changeDetection:0})};export{O as TrendChartComponent,de as TrendsPageComponent};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{pb as e}from"./chunk-
|
|
1
|
+
import{pb as e}from"./chunk-H3HRZLHG.js";var n=(()=>{class t{static \u0275fac=function(o){return new(o||t)};static \u0275cmp=e({type:t,selectors:[["structural-styles"]],decls:0,vars:0,template:function(o,a){},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 t})();export{n as a};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{f as s}from"./chunk-
|
|
1
|
+
import{f as s}from"./chunk-DRBVSI3B.js";import{hc as r,pb as c}from"./chunk-H3HRZLHG.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
2
|
`],encapsulation:2,changeDetection:0})}return o})();export{n as a};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as W,b as mt}from"./chunk-F3FCHBFQ.js";import{a as we}from"./chunk-WAN7TQQW.js";import{a as ue,b as he}from"./chunk-3EPFSBJ2.js";import{a as ve,b as ye}from"./chunk-7LKM244H.js";import{a as Me}from"./chunk-3ZFFKHPU.js";import{d as ge}from"./chunk-LBWOIG7N.js";import{d as wt}from"./chunk-AGN2F6JP.js";import{a as fe}from"./chunk-SR4HVFOB.js";import{a as Ce,b as xe,c as ke,d as Te}from"./chunk-WOMCRDMJ.js";import{a as pe,b as be}from"./chunk-VHALTUPL.js";import"./chunk-YNQPX5G6.js";import"./chunk-6MTVWBQQ.js";import{c as le,d as de}from"./chunk-TGSV7ZHM.js";import{b as ce,e as me,f as Tt}from"./chunk-VMW35ZNT.js";import{f as ct}from"./chunk-FRKUCFVI.js";import"./chunk-B2DPS6BL.js";import{c as te}from"./chunk-PRLUGTKR.js";import{f as se}from"./chunk-UC7AWK4C.js";import{a as dt,d as _e}from"./chunk-X4RGWMLE.js";import{g as ee,h as ne,m as ie,s as ae,t as oe,v as re,z as kt}from"./chunk-JWXROQJJ.js";import{l as Ct,o as xt}from"./chunk-EBGPIJ7S.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,Fb as _,Fc as st,G as Nt,Gb as nt,Hb as $,Ib as E,Ic as I,Jb as S,Jc as lt,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,s as N,sb as q,sc as U,ta as R,tc as Jt,ub as B,vb as Kt,yc as M,za as Wt,zc as yt}from"./chunk-O76B43BY.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}}
|
|
1
|
+
import{a as W,b as mt}from"./chunk-NY5IR366.js";import{a as we}from"./chunk-WAN7TQQW.js";import{a as ue,b as he}from"./chunk-G3IBZZQH.js";import{a as ve,b as ye}from"./chunk-HYIZY5FQ.js";import{a as Me}from"./chunk-CCRYWDXZ.js";import{c as ge}from"./chunk-2LMH5KDX.js";import"./chunk-6YXOOFGY.js";import{d as wt}from"./chunk-BCGQJHY3.js";import{a as fe}from"./chunk-P3Q7RWT5.js";import{a as Ce,b as xe,c as ke,d as Te}from"./chunk-JODWQVMA.js";import{a as pe,b as be}from"./chunk-RMV7CR6Y.js";import"./chunk-YNQPX5G6.js";import"./chunk-C6SNIY22.js";import{c as le,d as de}from"./chunk-42QQHEGP.js";import{b as ce,e as me,f as Tt}from"./chunk-AHO3BCLI.js";import{f as ct}from"./chunk-DRBVSI3B.js";import"./chunk-BKYXU3OY.js";import{c as te}from"./chunk-YFYMS5EE.js";import{f as se}from"./chunk-BPUIUSAU.js";import{a as dt,d as _e}from"./chunk-6CP6NCA6.js";import{g as ee,h as ne,m as ie,s as ae,t as oe,v as re,z as kt}from"./chunk-DNHNU64I.js";import{l as Ct,o as xt}from"./chunk-532NB4ME.js";import{$b as T,A as Ft,Aa as J,Ac as M,B as Y,Bc as yt,C as Vt,Ca as Q,Cb as Ut,Da as jt,Db as O,Fb as b,G as Nt,Gb as _,Hb as nt,Hc as st,Ib as $,Jb as E,Kb as S,Kc as I,Lb as g,Lc as lt,Mb as o,Nb as r,Ob as x,Pb as Zt,Qb as Yt,Rb as Xt,S as Ht,T as X,Tb as P,U as zt,V as j,Vb as k,Wa as ft,Xb as c,Yb as it,Zb as at,_a as d,_b as K,a as _t,aa as Qt,ac as v,b as ut,bc as y,ca as z,d as V,db as D,ea as m,eb as G,f as Bt,fb as tt,fc as vt,gb as et,gc as ot,hc as w,i as Z,ib as gt,ic as rt,ja as u,jc as l,ka as h,kc as f,lb as Gt,lc as L,m as Lt,na as ht,o as Ot,pa as $t,pb as A,qb as qt,rb as H,s as N,sb as q,ta as R,ub as B,uc as U,vb as Kt,vc as Jt,za as Wt}from"./chunk-H3HRZLHG.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
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
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
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,2 +1,2 @@
|
|
|
1
|
-
import{b,f as ot,h as st,k as nt}from"./chunk-6MTVWBQQ.js";import{b as tt,g as et}from"./chunk-TGSV7ZHM.js";import{a as it}from"./chunk-VMW35ZNT.js";import{b as T,f as w}from"./chunk-FRKUCFVI.js";import{e as Z,f as Q,r as W,t as q,y as K,z as v}from"./chunk-JWXROQJJ.js";import{f as B,l as $,m as y,o as J}from"./chunk-EBGPIJ7S.js";import{$b as G,Ca as d,Fc as U,Kb as k,Lb as f,Mb as V,Sb as F,Ub as u,V as a,_a as L,_b as H,a as h,aa as P,ac as z,ca as _,ea as r,eb as M,fb as m,gc as g,i as c,ic as X,ja as R,jc as j,ka as A,lb as S,na as p,oa as E,pb as x,qb as N,rb as Y}from"./chunk-O76B43BY.js";var ft=["tooltip"],O=20;var C=new _("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{let n=r(p);return()=>b(n,{scrollThrottle:O})}});function lt(n){let ct=r(p);return()=>b(ct,{scrollThrottle:O})}var I={provide:C,deps:[],useFactory:lt};function ht(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}var pt=new _("mat-tooltip-default-options",{providedIn:"root",factory:ht});var rt="tooltip-panel",at=Z({passive:!0}),ut=8,gt=8,yt=24,vt=200,Tt=(()=>{class n{_elementRef=r(d);_ngZone=r(M);_platform=r($);_ariaDescriber=r(K);_focusMonitor=r(Q);_dir=r(J);_injector=r(p);_viewContainerRef=r(S);_animationsDisabled=w();_defaultOptions=r(pt,{optional:!0});_overlayRef;_tooltipInstance;_overlayPanelClass;_portal;_position="below";_positionAtOrigin=!1;_disabled=!1;_tooltipClass;_viewInitialized=!1;_pointerExitEventsInitialized=!1;_tooltipComponent=dt;_viewportMargin=8;_currentPosition;_cssClassPrefix="mat-mdc";_ariaDescriptionPending;_dirSubscribed=!1;get position(){return this._position}set position(t){t!==this._position&&(this._position=t,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(t){this._positionAtOrigin=T(t),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(t){let e=T(t);this._disabled!==e&&(this._disabled=e,e?this.hide(0):this._setupPointerEnterEventsIfNeeded(),this._syncAriaDescription(this.message))}get showDelay(){return this._showDelay}set showDelay(t){this._showDelay=y(t)}_showDelay;get hideDelay(){return this._hideDelay}set hideDelay(t){this._hideDelay=y(t),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}_hideDelay;touchGestures="auto";get message(){return this._message}set message(t){let e=this._message;this._message=t!=null?String(t).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage()),this._syncAriaDescription(e)}_message="";get tooltipClass(){return this._tooltipClass}set tooltipClass(t){this._tooltipClass=t,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}_passiveListeners=[];_touchstartTimeout=null;_destroyed=new c;_isDestroyed=!1;constructor(){let t=this._defaultOptions;t&&(this._showDelay=t.showDelay,this._hideDelay=t.hideDelay,t.position&&(this.position=t.position),t.positionAtOrigin&&(this.positionAtOrigin=t.positionAtOrigin),t.touchGestures&&(this.touchGestures=t.touchGestures),t.tooltipClass&&(this.tooltipClass=t.tooltipClass)),this._viewportMargin=ut}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(a(this._destroyed)).subscribe(t=>{t?t==="keyboard"&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){let t=this._elementRef.nativeElement;this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([e,i])=>{t.removeEventListener(e,i,at)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._isDestroyed=!0,this._ariaDescriber.removeDescription(t,this.message,"tooltip"),this._focusMonitor.stopMonitoring(t)}show(t=this.showDelay,e){if(this.disabled||!this.message||this._isTooltipVisible()){this._tooltipInstance?._cancelPendingAnimations();return}let i=this._createOverlay(e);this._detach(),this._portal=this._portal||new it(this._tooltipComponent,this._viewContainerRef);let o=this._tooltipInstance=i.attach(this._portal).instance;o._triggerElement=this._elementRef.nativeElement,o._mouseLeaveHideDelay=this._hideDelay,o.afterHidden().pipe(a(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),o.show(t)}hide(t=this.hideDelay){let e=this._tooltipInstance;e&&(e.isVisible()?e.hide(t):(e._cancelPendingAnimations(),this._detach()))}toggle(t){this._isTooltipVisible()?this.hide():this.show(void 0,t)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(t){if(this._overlayRef){let s=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!t)&&s._origin instanceof d)return this._overlayRef;this._detach()}let e=this._injector.get(tt).getAncestorScrollContainers(this._elementRef),i=`${this._cssClassPrefix}-${rt}`,o=ot(this._injector,this.positionAtOrigin?t||this._elementRef:this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(e);return o.positionChanges.pipe(a(this._destroyed)).subscribe(s=>{this._updateCurrentPositionClass(s.connectionPair),this._tooltipInstance&&s.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=st(this._injector,{direction:this._dir,positionStrategy:o,panelClass:this._overlayPanelClass?[...this._overlayPanelClass,i]:i,scrollStrategy:this._injector.get(C)(),disableAnimations:this._animationsDisabled}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(a(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(a(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(a(this._destroyed)).subscribe(s=>{this._isTooltipVisible()&&s.keyCode===27&&!q(s)&&(s.preventDefault(),s.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._dirSubscribed||(this._dirSubscribed=!0,this._dir.change.pipe(a(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(t){let e=t.getConfig().positionStrategy,i=this._getOrigin(),o=this._getOverlayPosition();e.withPositions([this._addOffset(h(h({},i.main),o.main)),this._addOffset(h(h({},i.fallback),o.fallback))])}_addOffset(t){let e=gt,i=!this._dir||this._dir.value=="ltr";return t.originY==="top"?t.offsetY=-e:t.originY==="bottom"?t.offsetY=e:t.originX==="start"?t.offsetX=i?-e:e:t.originX==="end"&&(t.offsetX=i?e:-e),t}_getOrigin(){let t=!this._dir||this._dir.value=="ltr",e=this.position,i;e=="above"||e=="below"?i={originX:"center",originY:e=="above"?"top":"bottom"}:e=="before"||e=="left"&&t||e=="right"&&!t?i={originX:"start",originY:"center"}:(e=="after"||e=="right"&&t||e=="left"&&!t)&&(i={originX:"end",originY:"center"});let{x:o,y:s}=this._invertPosition(i.originX,i.originY);return{main:i,fallback:{originX:o,originY:s}}}_getOverlayPosition(){let t=!this._dir||this._dir.value=="ltr",e=this.position,i;e=="above"?i={overlayX:"center",overlayY:"bottom"}:e=="below"?i={overlayX:"center",overlayY:"top"}:e=="before"||e=="left"&&t||e=="right"&&!t?i={overlayX:"end",overlayY:"center"}:(e=="after"||e=="right"&&t||e=="left"&&!t)&&(i={overlayX:"start",overlayY:"center"});let{x:o,y:s}=this._invertPosition(i.overlayX,i.overlayY);return{main:i,fallback:{overlayX:o,overlayY:s}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),m(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()},{injector:this._injector}))}_setTooltipClass(t){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=t,this._tooltipInstance._markForCheck())}_invertPosition(t,e){return this.position==="above"||this.position==="below"?e==="top"?e="bottom":e==="bottom"&&(e="top"):t==="end"?t="start":t==="start"&&(t="end"),{x:t,y:e}}_updateCurrentPositionClass(t){let{overlayY:e,originX:i,originY:o}=t,s;if(e==="center"?this._dir&&this._dir.value==="rtl"?s=i==="end"?"left":"right":s=i==="start"?"left":"right":s=e==="bottom"&&o==="top"?"above":"below",s!==this._currentPosition){let l=this._overlayRef;if(l){let D=`${this._cssClassPrefix}-${rt}-`;l.removePanelClass(D+this._currentPosition),l.addPanelClass(D+s)}this._currentPosition=s}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",t=>{this._setupPointerExitEventsIfNeeded();let e;t.x!==void 0&&t.y!==void 0&&(e=t),this.show(void 0,e)}]):this.touchGestures!=="off"&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",t=>{let e=t.targetTouches?.[0],i=e?{x:e.clientX,y:e.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),this._touchstartTimeout&&clearTimeout(this._touchstartTimeout);let o=500;this._touchstartTimeout=setTimeout(()=>{this._touchstartTimeout=null,this.show(void 0,i)},this._defaultOptions?.touchLongPressShowDelay??o)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;let t=[];if(this._platformSupportsMouseEvents())t.push(["mouseleave",e=>{let i=e.relatedTarget;(!i||!this._overlayRef?.overlayElement.contains(i))&&this.hide()}],["wheel",e=>this._wheelListener(e)]);else if(this.touchGestures!=="off"){this._disableNativeGesturesIfNecessary();let e=()=>{this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions?.touchendHideDelay)};t.push(["touchend",e],["touchcancel",e])}this._addListeners(t),this._passiveListeners.push(...t)}_addListeners(t){t.forEach(([e,i])=>{this._elementRef.nativeElement.addEventListener(e,i,at)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(t){if(this._isTooltipVisible()){let e=this._injector.get(E).elementFromPoint(t.clientX,t.clientY),i=this._elementRef.nativeElement;e!==i&&!i.contains(e)&&this.hide()}}_disableNativeGesturesIfNecessary(){let t=this.touchGestures;if(t!=="off"){let e=this._elementRef.nativeElement,i=e.style;(t==="on"||e.nodeName!=="INPUT"&&e.nodeName!=="TEXTAREA")&&(i.userSelect=i.msUserSelect=i.webkitUserSelect=i.MozUserSelect="none"),(t==="on"||!e.draggable)&&(i.webkitUserDrag="none"),i.touchAction="none",i.webkitTapHighlightColor="transparent"}}_syncAriaDescription(t){this._ariaDescriptionPending||(this._ariaDescriptionPending=!0,this._ariaDescriber.removeDescription(this._elementRef.nativeElement,t,"tooltip"),this._isDestroyed||m({write:()=>{this._ariaDescriptionPending=!1,this.message&&!this.disabled&&this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")}},{injector:this._injector}))}static \u0275fac=function(e){return new(e||n)};static \u0275dir=Y({type:n,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(e,i){e&2&&g("mat-mdc-tooltip-disabled",i.disabled)},inputs:{position:[0,"matTooltipPosition","position"],positionAtOrigin:[0,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[0,"matTooltipDisabled","disabled"],showDelay:[0,"matTooltipShowDelay","showDelay"],hideDelay:[0,"matTooltipHideDelay","hideDelay"],touchGestures:[0,"matTooltipTouchGestures","touchGestures"],message:[0,"matTooltip","message"],tooltipClass:[0,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"]})}return n})(),dt=(()=>{class n{_changeDetectorRef=r(U);_elementRef=r(d);_isMultiline=!1;message;tooltipClass;_showTimeoutId;_hideTimeoutId;_triggerElement;_mouseLeaveHideDelay;_animationsDisabled=w();_tooltip;_closeOnInteraction=!1;_isVisible=!1;_onHide=new c;_showAnimation="mat-mdc-tooltip-show";_hideAnimation="mat-mdc-tooltip-hide";constructor(){}show(t){this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},t)}hide(t){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},t)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:t}){(!t||!this._triggerElement.contains(t))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){let t=this._elementRef.nativeElement.getBoundingClientRect();return t.height>yt&&t.width>=vt}_handleAnimationEnd({animationName:t}){(t===this._showAnimation||t===this._hideAnimation)&&this._finalizeAnimation(t===this._showAnimation)}_cancelPendingAnimations(){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(t){t?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(t){let e=this._tooltip.nativeElement,i=this._showAnimation,o=this._hideAnimation;if(e.classList.remove(t?o:i),e.classList.add(t?i:o),this._isVisible!==t&&(this._isVisible=t,this._changeDetectorRef.markForCheck()),t&&!this._animationsDisabled&&typeof getComputedStyle=="function"){let s=getComputedStyle(e);(s.getPropertyValue("animation-duration")==="0s"||s.getPropertyValue("animation-name")==="none")&&(this._animationsDisabled=!0)}t&&this._onShow(),this._animationsDisabled&&(e.classList.add("_mat-animation-noopable"),this._finalizeAnimation(t))}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=x({type:n,selectors:[["mat-tooltip-component"]],viewQuery:function(e,i){if(e&1&&H(ft,7),e&2){let o;G(o=z())&&(i._tooltip=o.first)}},hostAttrs:["aria-hidden","true"],hostBindings:function(e,i){e&1&&u("mouseleave",function(s){return i._handleMouseLeave(s)})},decls:4,vars:4,consts:[["tooltip",""],[1,"mdc-tooltip","mat-mdc-tooltip",3,"animationend","ngClass"],[1,"mat-mdc-tooltip-surface","mdc-tooltip__surface"]],template:function(e,i){if(e&1){let o=F();f(0,"div",1,0),u("animationend",function(l){return R(o),A(i._handleAnimationEnd(l))}),f(2,"div",2),X(3),V()()}e&2&&(g("mdc-tooltip--multiline",i._isMultiline),k("ngClass",i.tooltipClass),L(3),j(i.message))},dependencies:[B],styles:[`.mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mat-tooltip-container-color, var(--mat-sys-inverse-surface));color:var(--mat-tooltip-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mat-tooltip-container-shape, var(--mat-sys-corner-extra-small));font-family:var(--mat-tooltip-supporting-text-font, var(--mat-sys-body-small-font));font-size:var(--mat-tooltip-supporting-text-size, var(--mat-sys-body-small-size));font-weight:var(--mat-tooltip-supporting-text-weight, var(--mat-sys-body-small-weight));line-height:var(--mat-tooltip-supporting-text-line-height, var(--mat-sys-body-small-line-height));letter-spacing:var(--mat-tooltip-supporting-text-tracking, var(--mat-sys-body-small-tracking))}.mat-mdc-tooltip-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.mat-mdc-tooltip-panel{line-height:normal}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}
|
|
1
|
+
import{b,f as ot,h as st,k as nt}from"./chunk-C6SNIY22.js";import{b as tt,g as et}from"./chunk-42QQHEGP.js";import{a as it}from"./chunk-AHO3BCLI.js";import{b as T,f as w}from"./chunk-DRBVSI3B.js";import{e as Z,f as Q,r as W,t as q,y as K,z as v}from"./chunk-DNHNU64I.js";import{f as B,l as $,m as y,o as J}from"./chunk-532NB4ME.js";import{$b as H,Ca as d,Hc as U,Lb as k,Mb as f,Nb as V,Tb as F,V as a,Vb as u,_a as L,a as h,aa as P,ac as G,bc as z,ca as _,ea as r,eb as M,fb as m,hc as g,i as c,ja as R,jc as X,ka as A,kc as j,lb as S,na as p,oa as E,pb as x,qb as N,rb as Y}from"./chunk-H3HRZLHG.js";var ft=["tooltip"],O=20;var C=new _("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{let n=r(p);return()=>b(n,{scrollThrottle:O})}});function lt(n){let ct=r(p);return()=>b(ct,{scrollThrottle:O})}var I={provide:C,deps:[],useFactory:lt};function ht(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}var pt=new _("mat-tooltip-default-options",{providedIn:"root",factory:ht});var rt="tooltip-panel",at=Z({passive:!0}),ut=8,gt=8,yt=24,vt=200,Tt=(()=>{class n{_elementRef=r(d);_ngZone=r(M);_platform=r($);_ariaDescriber=r(K);_focusMonitor=r(Q);_dir=r(J);_injector=r(p);_viewContainerRef=r(S);_animationsDisabled=w();_defaultOptions=r(pt,{optional:!0});_overlayRef;_tooltipInstance;_overlayPanelClass;_portal;_position="below";_positionAtOrigin=!1;_disabled=!1;_tooltipClass;_viewInitialized=!1;_pointerExitEventsInitialized=!1;_tooltipComponent=dt;_viewportMargin=8;_currentPosition;_cssClassPrefix="mat-mdc";_ariaDescriptionPending;_dirSubscribed=!1;get position(){return this._position}set position(t){t!==this._position&&(this._position=t,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(t){this._positionAtOrigin=T(t),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(t){let e=T(t);this._disabled!==e&&(this._disabled=e,e?this.hide(0):this._setupPointerEnterEventsIfNeeded(),this._syncAriaDescription(this.message))}get showDelay(){return this._showDelay}set showDelay(t){this._showDelay=y(t)}_showDelay;get hideDelay(){return this._hideDelay}set hideDelay(t){this._hideDelay=y(t),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}_hideDelay;touchGestures="auto";get message(){return this._message}set message(t){let e=this._message;this._message=t!=null?String(t).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage()),this._syncAriaDescription(e)}_message="";get tooltipClass(){return this._tooltipClass}set tooltipClass(t){this._tooltipClass=t,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}_passiveListeners=[];_touchstartTimeout=null;_destroyed=new c;_isDestroyed=!1;constructor(){let t=this._defaultOptions;t&&(this._showDelay=t.showDelay,this._hideDelay=t.hideDelay,t.position&&(this.position=t.position),t.positionAtOrigin&&(this.positionAtOrigin=t.positionAtOrigin),t.touchGestures&&(this.touchGestures=t.touchGestures),t.tooltipClass&&(this.tooltipClass=t.tooltipClass)),this._viewportMargin=ut}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(a(this._destroyed)).subscribe(t=>{t?t==="keyboard"&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){let t=this._elementRef.nativeElement;this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([e,i])=>{t.removeEventListener(e,i,at)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._isDestroyed=!0,this._ariaDescriber.removeDescription(t,this.message,"tooltip"),this._focusMonitor.stopMonitoring(t)}show(t=this.showDelay,e){if(this.disabled||!this.message||this._isTooltipVisible()){this._tooltipInstance?._cancelPendingAnimations();return}let i=this._createOverlay(e);this._detach(),this._portal=this._portal||new it(this._tooltipComponent,this._viewContainerRef);let o=this._tooltipInstance=i.attach(this._portal).instance;o._triggerElement=this._elementRef.nativeElement,o._mouseLeaveHideDelay=this._hideDelay,o.afterHidden().pipe(a(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),o.show(t)}hide(t=this.hideDelay){let e=this._tooltipInstance;e&&(e.isVisible()?e.hide(t):(e._cancelPendingAnimations(),this._detach()))}toggle(t){this._isTooltipVisible()?this.hide():this.show(void 0,t)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(t){if(this._overlayRef){let s=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!t)&&s._origin instanceof d)return this._overlayRef;this._detach()}let e=this._injector.get(tt).getAncestorScrollContainers(this._elementRef),i=`${this._cssClassPrefix}-${rt}`,o=ot(this._injector,this.positionAtOrigin?t||this._elementRef:this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(e);return o.positionChanges.pipe(a(this._destroyed)).subscribe(s=>{this._updateCurrentPositionClass(s.connectionPair),this._tooltipInstance&&s.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=st(this._injector,{direction:this._dir,positionStrategy:o,panelClass:this._overlayPanelClass?[...this._overlayPanelClass,i]:i,scrollStrategy:this._injector.get(C)(),disableAnimations:this._animationsDisabled}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(a(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(a(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(a(this._destroyed)).subscribe(s=>{this._isTooltipVisible()&&s.keyCode===27&&!q(s)&&(s.preventDefault(),s.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._dirSubscribed||(this._dirSubscribed=!0,this._dir.change.pipe(a(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(t){let e=t.getConfig().positionStrategy,i=this._getOrigin(),o=this._getOverlayPosition();e.withPositions([this._addOffset(h(h({},i.main),o.main)),this._addOffset(h(h({},i.fallback),o.fallback))])}_addOffset(t){let e=gt,i=!this._dir||this._dir.value=="ltr";return t.originY==="top"?t.offsetY=-e:t.originY==="bottom"?t.offsetY=e:t.originX==="start"?t.offsetX=i?-e:e:t.originX==="end"&&(t.offsetX=i?e:-e),t}_getOrigin(){let t=!this._dir||this._dir.value=="ltr",e=this.position,i;e=="above"||e=="below"?i={originX:"center",originY:e=="above"?"top":"bottom"}:e=="before"||e=="left"&&t||e=="right"&&!t?i={originX:"start",originY:"center"}:(e=="after"||e=="right"&&t||e=="left"&&!t)&&(i={originX:"end",originY:"center"});let{x:o,y:s}=this._invertPosition(i.originX,i.originY);return{main:i,fallback:{originX:o,originY:s}}}_getOverlayPosition(){let t=!this._dir||this._dir.value=="ltr",e=this.position,i;e=="above"?i={overlayX:"center",overlayY:"bottom"}:e=="below"?i={overlayX:"center",overlayY:"top"}:e=="before"||e=="left"&&t||e=="right"&&!t?i={overlayX:"end",overlayY:"center"}:(e=="after"||e=="right"&&t||e=="left"&&!t)&&(i={overlayX:"start",overlayY:"center"});let{x:o,y:s}=this._invertPosition(i.overlayX,i.overlayY);return{main:i,fallback:{overlayX:o,overlayY:s}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),m(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()},{injector:this._injector}))}_setTooltipClass(t){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=t,this._tooltipInstance._markForCheck())}_invertPosition(t,e){return this.position==="above"||this.position==="below"?e==="top"?e="bottom":e==="bottom"&&(e="top"):t==="end"?t="start":t==="start"&&(t="end"),{x:t,y:e}}_updateCurrentPositionClass(t){let{overlayY:e,originX:i,originY:o}=t,s;if(e==="center"?this._dir&&this._dir.value==="rtl"?s=i==="end"?"left":"right":s=i==="start"?"left":"right":s=e==="bottom"&&o==="top"?"above":"below",s!==this._currentPosition){let l=this._overlayRef;if(l){let D=`${this._cssClassPrefix}-${rt}-`;l.removePanelClass(D+this._currentPosition),l.addPanelClass(D+s)}this._currentPosition=s}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",t=>{this._setupPointerExitEventsIfNeeded();let e;t.x!==void 0&&t.y!==void 0&&(e=t),this.show(void 0,e)}]):this.touchGestures!=="off"&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",t=>{let e=t.targetTouches?.[0],i=e?{x:e.clientX,y:e.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),this._touchstartTimeout&&clearTimeout(this._touchstartTimeout);let o=500;this._touchstartTimeout=setTimeout(()=>{this._touchstartTimeout=null,this.show(void 0,i)},this._defaultOptions?.touchLongPressShowDelay??o)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;let t=[];if(this._platformSupportsMouseEvents())t.push(["mouseleave",e=>{let i=e.relatedTarget;(!i||!this._overlayRef?.overlayElement.contains(i))&&this.hide()}],["wheel",e=>this._wheelListener(e)]);else if(this.touchGestures!=="off"){this._disableNativeGesturesIfNecessary();let e=()=>{this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions?.touchendHideDelay)};t.push(["touchend",e],["touchcancel",e])}this._addListeners(t),this._passiveListeners.push(...t)}_addListeners(t){t.forEach(([e,i])=>{this._elementRef.nativeElement.addEventListener(e,i,at)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(t){if(this._isTooltipVisible()){let e=this._injector.get(E).elementFromPoint(t.clientX,t.clientY),i=this._elementRef.nativeElement;e!==i&&!i.contains(e)&&this.hide()}}_disableNativeGesturesIfNecessary(){let t=this.touchGestures;if(t!=="off"){let e=this._elementRef.nativeElement,i=e.style;(t==="on"||e.nodeName!=="INPUT"&&e.nodeName!=="TEXTAREA")&&(i.userSelect=i.msUserSelect=i.webkitUserSelect=i.MozUserSelect="none"),(t==="on"||!e.draggable)&&(i.webkitUserDrag="none"),i.touchAction="none",i.webkitTapHighlightColor="transparent"}}_syncAriaDescription(t){this._ariaDescriptionPending||(this._ariaDescriptionPending=!0,this._ariaDescriber.removeDescription(this._elementRef.nativeElement,t,"tooltip"),this._isDestroyed||m({write:()=>{this._ariaDescriptionPending=!1,this.message&&!this.disabled&&this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")}},{injector:this._injector}))}static \u0275fac=function(e){return new(e||n)};static \u0275dir=Y({type:n,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(e,i){e&2&&g("mat-mdc-tooltip-disabled",i.disabled)},inputs:{position:[0,"matTooltipPosition","position"],positionAtOrigin:[0,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[0,"matTooltipDisabled","disabled"],showDelay:[0,"matTooltipShowDelay","showDelay"],hideDelay:[0,"matTooltipHideDelay","hideDelay"],touchGestures:[0,"matTooltipTouchGestures","touchGestures"],message:[0,"matTooltip","message"],tooltipClass:[0,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"]})}return n})(),dt=(()=>{class n{_changeDetectorRef=r(U);_elementRef=r(d);_isMultiline=!1;message;tooltipClass;_showTimeoutId;_hideTimeoutId;_triggerElement;_mouseLeaveHideDelay;_animationsDisabled=w();_tooltip;_closeOnInteraction=!1;_isVisible=!1;_onHide=new c;_showAnimation="mat-mdc-tooltip-show";_hideAnimation="mat-mdc-tooltip-hide";constructor(){}show(t){this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},t)}hide(t){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},t)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:t}){(!t||!this._triggerElement.contains(t))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){let t=this._elementRef.nativeElement.getBoundingClientRect();return t.height>yt&&t.width>=vt}_handleAnimationEnd({animationName:t}){(t===this._showAnimation||t===this._hideAnimation)&&this._finalizeAnimation(t===this._showAnimation)}_cancelPendingAnimations(){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(t){t?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(t){let e=this._tooltip.nativeElement,i=this._showAnimation,o=this._hideAnimation;if(e.classList.remove(t?o:i),e.classList.add(t?i:o),this._isVisible!==t&&(this._isVisible=t,this._changeDetectorRef.markForCheck()),t&&!this._animationsDisabled&&typeof getComputedStyle=="function"){let s=getComputedStyle(e);(s.getPropertyValue("animation-duration")==="0s"||s.getPropertyValue("animation-name")==="none")&&(this._animationsDisabled=!0)}t&&this._onShow(),this._animationsDisabled&&(e.classList.add("_mat-animation-noopable"),this._finalizeAnimation(t))}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=x({type:n,selectors:[["mat-tooltip-component"]],viewQuery:function(e,i){if(e&1&&H(ft,7),e&2){let o;G(o=z())&&(i._tooltip=o.first)}},hostAttrs:["aria-hidden","true"],hostBindings:function(e,i){e&1&&u("mouseleave",function(s){return i._handleMouseLeave(s)})},decls:4,vars:4,consts:[["tooltip",""],[1,"mdc-tooltip","mat-mdc-tooltip",3,"animationend","ngClass"],[1,"mat-mdc-tooltip-surface","mdc-tooltip__surface"]],template:function(e,i){if(e&1){let o=F();f(0,"div",1,0),u("animationend",function(l){return R(o),A(i._handleAnimationEnd(l))}),f(2,"div",2),X(3),V()()}e&2&&(g("mdc-tooltip--multiline",i._isMultiline),k("ngClass",i.tooltipClass),L(3),j(i.message))},dependencies:[B],styles:[`.mat-mdc-tooltip{position:relative;transform:scale(0);display:inline-flex}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-surface{word-break:normal;overflow-wrap:anywhere;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center;will-change:transform,opacity;background-color:var(--mat-tooltip-container-color, var(--mat-sys-inverse-surface));color:var(--mat-tooltip-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mat-tooltip-container-shape, var(--mat-sys-corner-extra-small));font-family:var(--mat-tooltip-supporting-text-font, var(--mat-sys-body-small-font));font-size:var(--mat-tooltip-supporting-text-size, var(--mat-sys-body-small-size));font-weight:var(--mat-tooltip-supporting-text-weight, var(--mat-sys-body-small-weight));line-height:var(--mat-tooltip-supporting-text-line-height, var(--mat-sys-body-small-line-height));letter-spacing:var(--mat-tooltip-supporting-text-tracking, var(--mat-sys-body-small-tracking))}.mat-mdc-tooltip-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mat-mdc-tooltip-surface{text-align:right}.mat-mdc-tooltip-panel{line-height:normal}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}
|
|
2
2
|
`],encapsulation:2,changeDetection:0})}return n})();var bt=(()=>{class n{static \u0275fac=function(e){return new(e||n)};static \u0275mod=N({type:n});static \u0275inj=P({providers:[I],imports:[W,nt,v,v,et]})}return n})();export{Tt as a,bt as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as te}from"./chunk-LAMOHX23.js";import{a as U,b as G,c as J,d as X,e as Y,f as Z,h as ee}from"./chunk-EXOJOB6H.js";import{a as j,b as K}from"./chunk-G3IBZZQH.js";import{a as L,b as q}from"./chunk-HYIZY5FQ.js";import{a as z,b as B,c as V}from"./chunk-2LMH5KDX.js";import"./chunk-6YXOOFGY.js";import"./chunk-BCGQJHY3.js";import"./chunk-P3Q7RWT5.js";import{b as H,c as Q,d as W}from"./chunk-JODWQVMA.js";import"./chunk-YNQPX5G6.js";import"./chunk-C6SNIY22.js";import"./chunk-42QQHEGP.js";import"./chunk-AHO3BCLI.js";import"./chunk-DRBVSI3B.js";import"./chunk-BKYXU3OY.js";import{c as I}from"./chunk-YFYMS5EE.js";import{e as R,f as N}from"./chunk-BPUIUSAU.js";import{a as F,d as $}from"./chunk-6CP6NCA6.js";import"./chunk-DNHNU64I.js";import"./chunk-532NB4ME.js";import{Ac as S,Db as k,Fb as g,Gb as f,Ib as O,Jb as C,Kb as h,Lb as y,Mb as o,Nb as i,Ob as v,Tb as T,Vb as b,Xb as c,_a as d,ea as M,ja as E,jc as r,ka as D,kc as m,lc as P,pb as A,s as w,ta as _}from"./chunk-H3HRZLHG.js";var ie=(n,t)=>t.name,ae=(n,t)=>t.reason,re=(n,t)=>t.id;function de(n,t){n&1&&(o(0,"div",7),v(1,"dm-skeleton",24)(2,"dm-skeleton",25)(3,"dm-skeleton",26),i())}function le(n,t){if(n&1&&(o(0,"div",27)(1,"span",28),r(2,"Connection"),i(),o(3,"span",29)(4,"span",30),v(5,"span",31),r(6),i()()(),o(7,"div",27)(8,"span",28),r(9,"Version"),i(),o(10,"span",29)(11,"dm-mono"),r(12),i()()(),o(13,"div",27)(14,"span",28),r(15,"API port"),i(),o(16,"span",29)(17,"dm-mono"),r(18),i()()(),o(19,"div",27)(20,"span",28),r(21,"Apps tracked"),i(),o(22,"span",29)(23,"dm-mono"),r(24),i()()()),n&2){let e=c();d(4),k("data-kind",e.api.connected()?"ok":"err"),d(2),P("",e.api.connected()?"connected":"disconnected"," "),d(6),m(e.daemonVersion()||"unknown"),d(6),m(e.daemonPort()||"-"),d(6),m(e.api.apps().length)}}function se(n,t){n&1&&(o(0,"div",7),v(1,"dm-skeleton",32)(2,"dm-skeleton",26)(3,"dm-skeleton",33),i())}function me(n,t){if(n&1&&(o(0,"dm-empty",8)(1,"dm-mono"),r(2,"daimon init --auto"),i()()),n&2){let e=c();y("title","No apps discovered")("hint",e.discovery().suggestion||"Run daimon init --auto in your workspace")}}function ce(n,t){if(n&1&&(o(0,"li")(1,"dm-mono"),r(2),i()()),n&2){let e=t.$implicit;d(2),m(e)}}function pe(n,t){if(n&1&&(o(0,"tr")(1,"td")(2,"dm-mono"),r(3),i()(),o(4,"td",38)(5,"dm-mono"),r(6),i()()()),n&2){let e=t.$implicit;d(3),m(e.reason),d(3),m(e.count)}}function ue(n,t){if(n&1&&(o(0,"div",34)(1,"div",28),r(2,"Rejected"),i(),o(3,"table",37)(4,"tbody"),C(5,pe,7,2,"tr",null,ae),i()()()),n&2){let e=c(2);d(5),h(e.rejectedRows())}}function ge(n,t){if(n&1&&(o(0,"li")(1,"dm-mono"),r(2),i()()),n&2){let e=t.$implicit;d(2),m(e)}}function fe(n,t){if(n&1&&(o(0,"div",34)(1,"div",28),r(2,"Warnings"),i(),o(3,"ul",39),C(4,ge,3,1,"li",null,O),i()()),n&2){let e=c(2);d(4),h(e.discovery().warnings)}}function _e(n,t){if(n&1&&(o(0,"div",36),r(1),i()),n&2){let e=c(2);d(),m(e.discovery().suggestion)}}function xe(n,t){if(n&1&&(o(0,"div",27)(1,"span",28),r(2,"Apps found"),i(),o(3,"span",29)(4,"dm-mono"),r(5),i()()(),o(6,"div",27)(7,"span",28),r(8,"Scanned"),i(),o(9,"span",29)(10,"dm-mono"),r(11),i()()(),o(12,"div",34)(13,"div",28),r(14,"Search roots"),i(),o(15,"ul",35),C(16,ce,3,1,"li",null,O),i()(),g(18,ue,7,0,"div",34),g(19,fe,6,0,"div",34),g(20,_e,2,1,"div",36)),n&2){let e=c();d(5),m(e.discovery().appsFound),d(6),m(e.discovery().scanned),d(5),h(e.discovery().searchRoots),d(2),f(e.rejectedRows().length?18:-1),d(),f(e.discovery().warnings.length?19:-1),d(),f(e.discovery().suggestion?20:-1)}}function ve(n,t){n&1&&(o(0,"div",9),r(1,"Discovery info unavailable."),i())}function ye(n,t){n&1&&v(0,"mat-spinner",14)}function Ce(n,t){n&1&&(o(0,"mat-icon"),r(1,"play_arrow"),i())}function he(n,t){n&1&&v(0,"mat-spinner",14)}function be(n,t){n&1&&(o(0,"mat-icon"),r(1,"build"),i())}function ke(n,t){if(n&1&&(o(0,"dm-mono"),r(1),i()),n&2){let e=c(2).$implicit,a=c();d(),m(a.state(e.name).detail)}}function Pe(n,t){if(n&1&&(o(0,"span"),r(1),i()),n&2){let e=c(2).$implicit,a=c();d(),m(a.state(e.name).detail)}}function Me(n,t){if(n&1&&(o(0,"div",42),g(1,ke,2,1,"dm-mono")(2,Pe,2,1,"span"),i()),n&2){let e=c().$implicit,a=c();d(),f(a.state(e.name).isPath?1:2)}}function Se(n,t){n&1&&v(0,"mat-spinner",14)}function we(n,t){n&1&&(o(0,"mat-icon"),r(1,"search"),i())}function Ee(n,t){n&1&&v(0,"mat-spinner",14)}function De(n,t){n&1&&(o(0,"mat-icon"),r(1,"build"),i())}function Oe(n,t){if(n&1){let e=T();o(0,"mat-card",6)(1,"mat-card-header")(2,"mat-card-title"),r(3),i()(),o(4,"mat-card-content")(5,"div",40)(6,"div",41),r(7),i(),o(8,"span",30),v(9,"span",31),r(10),i()(),g(11,Me,3,1,"div",42),i(),o(12,"mat-card-actions",43)(13,"button",13),b("click",function(){let l=E(e).$implicit,p=c();return D(p.runOne(l.name,!0))}),g(14,Se,1,0,"mat-spinner",14)(15,we,2,0,"mat-icon"),r(16," Dry-run "),i(),o(17,"button",44),b("click",function(){let l=E(e).$implicit,p=c();return D(p.runOne(l.name,!1))}),g(18,Ee,1,0,"mat-spinner",14)(19,De,2,0,"mat-icon"),r(20," Fix "),i()()()}if(n&2){let e=t.$implicit,a=c();d(3),m(e.title),d(4),m(e.description),d(),k("data-kind",a.state(e.name).status),d(2),P("",a.state(e.name).status," "),d(),f(a.state(e.name).detail?11:-1),d(2),y("disabled",a.busy(e.name)||a.busyAll()),d(),f(a.busy(e.name)==="dry"?14:15),d(3),y("disabled",a.busy(e.name)||a.busyAll()),d(),f(a.busy(e.name)==="fix"?18:19)}}function Ae(n,t){n&1&&v(0,"dm-skeleton",16)}function Te(n,t){n&1&&(o(0,"div",9),r(1,"No plug-ins installed. Drop a "),o(2,"dm-mono"),r(3,"doctor-*.mjs"),i(),r(4," file into "),o(5,"dm-mono"),r(6,"~/.daimon/plugins/"),i(),r(7," and restart the daemon."),i())}function Fe(n,t){if(n&1&&(o(0,"mat-card-subtitle"),r(1),i()),n&2){let e=c().$implicit;d(),m(e.description)}}function Ie(n,t){if(n&1&&(o(0,"div",45),r(1),i()),n&2){let e=c().$implicit;d(),m(e.error)}}function Re(n,t){if(n&1&&(o(0,"li")(1,"span",30),v(2,"span",31),r(3),i(),o(4,"span"),r(5),i()()),n&2){let e=t.$implicit;d(),k("data-kind",e.severity==="error"?"err":e.severity==="warn"?"warn":"ok"),d(2),m(e.severity||"info"),d(2),m(e.message)}}function Ne(n,t){if(n&1&&(o(0,"ul",35),C(1,Re,6,3,"li",null,re),i()),n&2){let e=c().$implicit;d(),h(e.findings)}}function $e(n,t){n&1&&(o(0,"div",9),r(1,"No findings."),i())}function je(n,t){if(n&1&&(o(0,"mat-card",6)(1,"mat-card-header")(2,"mat-card-title")(3,"span",30),v(4,"span",31),r(5),i(),o(6,"dm-mono"),r(7),i()(),g(8,Fe,2,1,"mat-card-subtitle"),i(),o(9,"mat-card-content"),g(10,Ie,2,1,"div",45),g(11,Ne,3,0,"ul",35)(12,$e,2,0,"div",9),o(13,"div",46)(14,"dm-mono"),r(15),i()()()()),n&2){let e=t.$implicit;d(3),k("data-kind",e.status==="ok"?"ok":"err"),d(2),P("",e.status," "),d(2),m(e.name),d(),f(e.description?8:-1),d(2),f(e.error?10:-1),d(),f(e.findings.length?11:12),d(4),m(e.file)}}function Ke(n,t){if(n&1&&(o(0,"div",5),C(1,je,16,7,"mat-card",6,ie),i()),n&2){let e=c();d(),h(e.plugins())}}function ze(n,t){n&1&&v(0,"mat-spinner",14)}function Be(n,t){n&1&&(o(0,"mat-icon"),r(1,"refresh"),i())}var Ve=[{name:"orphan-daemon",title:"Orphan daemon",description:"Daemon may be running from the wrong cwd, ignoring your local daimon.config.json"},{name:"stale-lock",title:"Stale lock",description:"Lock file exists but the daemon process is dead"},{name:"missing-search-root",title:"Missing search root",description:"Current cwd has an nx/angular/vite project but isn\u2019t configured"},{name:"corrupt-history-db",title:"Corrupt history DB",description:"History SQLite DB failed quickCheck()"}],ne=class n{api=M($);http=M(F);snack=M(L);routines=Ve;results=_(new Map);results_lastIntent=_(new Map);errored=_(new Set);loading=_(!0);discovery=_(null);daemonVersion=_("");daemonPort=_(null);configLoaded=_(!1);overview=_(null);plugins=_(null);busyMap=_(new Map);busyAll=_(!1);busyAllKind=_(null);reloading=_(!1);rejectedRows=S(()=>{let t=this.discovery();return t?Object.entries(t.rejected||{}).map(([e,a])=>({reason:e,count:a})).sort((e,a)=>a.count-e.count):[]});subtitle=S(()=>{let t=this.results(),e=0;for(let a of t.values())a.detected&&e++;return this.loading()&&t.size===0?"Checking system health\u2026":t.size===0?"Run diagnostics to see if any routines need fixing.":e===0?"All checked routines look clean.":`${e} routine${e===1?"":"s"} need${e===1?"s":""} fixing`});tokenEstimate=S(()=>120+this.api.apps().length*34);async ngOnInit(){await this.refreshAll()}async refreshAll(){this.loading.set(!0);try{let[t,e,a]=await Promise.all([this.api.getConfig().catch(()=>null),this.api.discoveryExplain().catch(()=>null),w(this.http.get("/api/overview")).catch(()=>null)]);t&&t.config&&(this.configLoaded.set(!0),this.daemonPort.set(t.config.apiPort??t.config.api?.port??null)),this.discovery.set(e),this.overview.set(a),a?.version&&this.daemonVersion.set(a.version),this.api.apps().length||await this.api.refresh();try{let l=await w(this.http.get("/api/plugins"));this.plugins.set(Array.isArray(l)?l:[])}catch{this.plugins.set([])}}finally{this.loading.set(!1)}}state(t){let e=this.results().get(t),a=this.results_lastIntent().get(t),l=this.errored().has(t);if(!e)return{status:"unknown",detail:"",isPath:!1};let p;l?p="error":a==="fix"?p=e.detected?"fixed":"clean":p=e.detected?"detected":"clean";let x=e.description||"",u=/[\\/]/.test(x)||x.includes(":\\")||x.startsWith("/");return{status:p,detail:x,isPath:u}}busy(t){return this.busyMap().get(t)}async runOne(t,e){if(!e&&!window.confirm(`Run fix for "${t}"? This will modify daemon state.`))return;let a=e?"dry":"fix";this.setBusy(t,a);try{let l=await this.api.runAutoFix({dryRun:e,permitted:[t]});this.ingestResults(l,a);let p=this.results().get(t);p?this.snack.open(e?p.detected?`${t}: issue detected`:`${t}: clean`:p.detected?`${t}: fix applied`:`${t}: no action needed`,"OK",{duration:3500}):this.snack.open(`${t}: no result returned`,"OK",{duration:3e3})}catch(l){this.markError(t,l?.message||String(l)),this.snack.open(`${t} failed: ${l?.message||l}`,"Dismiss",{duration:5e3})}finally{this.setBusy(t,null)}}async runAllDry(){this.busyAll.set(!0),this.busyAllKind.set("dry");try{let t=await this.api.runAutoFix({dryRun:!0});this.ingestResults(t,"dry"),this.snack.open("Dry-run complete","OK",{duration:2500})}catch(t){this.snack.open(`Dry-run failed: ${t?.message||t}`,"Dismiss",{duration:5e3})}finally{this.busyAll.set(!1),this.busyAllKind.set(null)}}async fixAll(){if(window.confirm("Run every fix routine without dry-run? This will modify daemon state.")){this.busyAll.set(!0),this.busyAllKind.set("fix");try{let e=await this.api.runAutoFix({dryRun:!1});this.ingestResults(e,"fix"),this.snack.open("Fix-all complete","OK",{duration:2500})}catch(e){this.snack.open(`Fix-all failed: ${e?.message||e}`,"Dismiss",{duration:5e3})}finally{this.busyAll.set(!1),this.busyAllKind.set(null)}}}async reloadConfig(){this.reloading.set(!0);try{await this.api.reloadConfig(),this.snack.open("Config reloaded","OK",{duration:2500}),await this.refreshAll()}catch(t){this.snack.open(`Reload failed: ${t?.message||t}`,"Dismiss",{duration:5e3})}finally{this.reloading.set(!1)}}setBusy(t,e){this.busyMap.update(a=>{let l=new Map(a);return e===null?l.delete(t):l.set(t,e),l})}ingestResults(t,e){let a=Array.isArray(t?.ran)?t.ran:[],l=Array.isArray(t?.skipped)?t.skipped:[],p=Array.isArray(t?.errors)?t.errors:[];if(this.results.update(x=>{let u=new Map(x);for(let s of a)u.set(s.name,s);for(let s of l)u.set(s.name,s);for(let s of p){let oe=u.get(s.name);u.set(s.name,{name:s.name,detected:oe?.detected??!1,description:s.error||"error"})}return u}),this.errored.update(x=>{let u=new Set(x);for(let s of a)u.delete(s.name);for(let s of l)u.delete(s.name);for(let s of p)u.add(s.name);return u}),this.results_lastIntent.update(x=>{let u=new Map(x);for(let s of a)u.set(s.name,e);for(let s of l)u.set(s.name,e);for(let s of p)u.set(s.name,"fix");return u}),p.length)for(let x of p)this.markError(x.name,x.error)}markError(t,e){this.results.update(a=>{let l=new Map(a);return l.set(t,{name:t,detected:!1,description:e||"error"}),l}),this.results_lastIntent.update(a=>{let l=new Map(a);return l.set(t,"fix"),l}),this.errored.update(a=>{let l=new Set(a);return l.add(t),l})}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=A({type:n,selectors:[["dm-doctor-page"]],decls:80,vars:12,consts:[[1,"dm-page-header"],[1,"dm-page-sub"],["mat-icon-button","","aria-label","Refresh",3,"click","disabled"],[1,"dm-section"],[1,"dm-section-title"],[1,"dm-grid-2"],[1,"dm-card"],[1,"dm-stack"],["icon","search_off",3,"title","hint"],[1,"dm-muted"],[1,"dm-banner"],[1,"dm-banner-text"],[1,"dm-banner-actions"],["mat-stroked-button","",3,"click","disabled"],["diameter","16"],["mat-flat-button","","color","warn",3,"click","disabled"],["height","2rem","width","40%"],[1,"dm-quick"],["mat-stroked-button","","routerLink","/config"],["mat-stroked-button","","routerLink","/events"],[1,"dm-stat"],[1,"dm-stat-icon"],[1,"dm-stat-label"],[1,"dm-stat-value"],["height","1.25rem","width","60%"],["height","1rem","width","40%"],["height","1rem","width","50%"],[1,"dm-kv"],[1,"dm-k"],[1,"dm-v"],[1,"dm-pill"],[1,"dm-dot"],["height","1rem","width","70%"],["height","1rem","width","80%"],[1,"dm-block"],[1,"dm-list"],[1,"dm-callout"],[1,"dm-table"],[1,"dm-num"],[1,"dm-list","dm-warn"],[1,"dm-row-between"],[1,"dm-routine-desc"],[1,"dm-detail"],["align","end"],["mat-flat-button","","color","primary",3,"click","disabled"],[1,"dm-detail","dm-warn"],[1,"dm-detail","dm-muted"]],template:function(e,a){e&1&&(o(0,"div",0)(1,"div")(2,"h1"),r(3,"Doctor"),i(),o(4,"div",1),r(5),i()(),o(6,"button",2),b("click",function(){return a.refreshAll()}),o(7,"mat-icon"),r(8,"refresh"),i()()(),o(9,"section",3)(10,"h2",4),r(11,"System overview"),i(),o(12,"div",5)(13,"mat-card",6)(14,"mat-card-header")(15,"mat-card-title"),r(16,"Daemon"),i()(),o(17,"mat-card-content"),g(18,de,4,0,"div",7)(19,le,25,5),i()(),o(20,"mat-card",6)(21,"mat-card-header")(22,"mat-card-title"),r(23,"Discovery"),i()(),o(24,"mat-card-content"),g(25,se,4,0,"div",7)(26,me,3,2,"dm-empty",8)(27,xe,21,5)(28,ve,2,0,"div",9),i()()()(),o(29,"section",3)(30,"h2",4),r(31,"Auto-fix routines"),i(),o(32,"div",10)(33,"div",11),r(34,"Run diagnostics across every routine, or attempt all fixes in one go."),i(),o(35,"div",12)(36,"button",13),b("click",function(){return a.runAllDry()}),g(37,ye,1,0,"mat-spinner",14)(38,Ce,2,0,"mat-icon"),r(39," Run all dry-run "),i(),o(40,"button",15),b("click",function(){return a.fixAll()}),g(41,he,1,0,"mat-spinner",14)(42,be,2,0,"mat-icon"),r(43," Fix everything (be careful) "),i()()(),o(44,"div",5),C(45,Oe,21,9,"mat-card",6,ie),i()(),o(47,"section",3)(48,"h2",4),r(49,"Custom rules"),i(),g(50,Ae,1,0,"dm-skeleton",16)(51,Te,8,0,"div",9)(52,Ke,3,0,"div",5),i(),o(53,"section",3)(54,"h2",4),r(55,"Quick links"),i(),o(56,"div",17)(57,"button",18)(58,"mat-icon"),r(59,"tune"),i(),r(60," Open Config editor "),i(),o(61,"button",19)(62,"mat-icon"),r(63,"timeline"),i(),r(64," View Events "),i(),o(65,"button",13),b("click",function(){return a.reloadConfig()}),g(66,ze,1,0,"mat-spinner",14)(67,Be,2,0,"mat-icon"),r(68," Reload config "),i(),o(69,"div",20)(70,"div",21)(71,"mat-icon"),r(72,"token"),i()(),o(73,"div")(74,"div",22),r(75,"API token footprint"),i(),o(76,"div",23)(77,"dm-mono"),r(78),i(),r(79," per Claude session"),i()()()()()),e&2&&(d(5),m(a.subtitle()),d(),y("disabled",a.loading()),d(12),f(a.loading()&&!a.configLoaded()?18:19),d(7),f(a.loading()&&!a.discovery()?25:a.discovery()&&a.discovery().appsFound===0?26:a.discovery()?27:28),d(11),y("disabled",a.busyAll()),d(),f(a.busyAll()&&a.busyAllKind()==="dry"?37:38),d(3),y("disabled",a.busyAll()),d(),f(a.busyAll()&&a.busyAllKind()==="fix"?41:42),d(4),h(a.routines),d(5),f(a.plugins()===null?50:a.plugins().length===0?51:52),d(15),y("disabled",a.reloading()),d(),f(a.reloading()?66:67),d(12),P("~ ",a.tokenEstimate()," tokens"))},dependencies:[I,ee,U,Y,J,Z,X,G,V,B,z,N,R,K,j,q,te,H,Q,W],styles:["[_nghost-%COMP%]{display:block;max-width:1200px;margin:0 auto}.dm-section[_ngcontent-%COMP%]{margin-bottom:1.25rem}.dm-section-title[_ngcontent-%COMP%]{margin:0 0 .5rem;font:500 .6875rem/1rem Roboto;color:var(--mat-sys-on-surface-variant);letter-spacing:.06em;text-transform:uppercase}.dm-grid-2[_ngcontent-%COMP%]{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:800px){.dm-grid-2[_ngcontent-%COMP%]{grid-template-columns:1fr}}.dm-card[_ngcontent-%COMP%]{background:var(--mat-sys-surface-container-low)}.dm-stack[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.dm-kv[_ngcontent-%COMP%]{display:flex;align-items:baseline;justify-content:space-between;padding:.35rem 0;border-bottom:1px solid var(--mat-sys-outline-variant)}.dm-kv[_ngcontent-%COMP%]:last-child{border-bottom:0}.dm-k[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant);font-size:.8125rem}.dm-v[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface)}.dm-block[_ngcontent-%COMP%]{margin-top:.75rem}.dm-block[_ngcontent-%COMP%] .dm-k[_ngcontent-%COMP%]{display:block;margin-bottom:.35rem}.dm-list[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.dm-list[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{padding:.25rem .5rem;background:var(--mat-sys-surface-container);border-radius:6px;overflow-wrap:anywhere}.dm-warn[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{color:var(--mat-sys-error)}.dm-table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;font-size:.8125rem}.dm-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:.25rem .5rem;border-bottom:1px solid var(--mat-sys-outline-variant)}.dm-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%]{border-bottom:0}.dm-num[_ngcontent-%COMP%]{text-align:right;color:var(--mat-sys-on-surface-variant)}.dm-callout[_ngcontent-%COMP%]{margin-top:.75rem;padding:.65rem .85rem;border-radius:10px;background:color-mix(in oklch,var(--mat-sys-tertiary) 12%,transparent);border:1px solid color-mix(in oklch,var(--mat-sys-tertiary) 28%,transparent);color:var(--mat-sys-on-surface);font-size:.875rem}.dm-muted[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant);font-size:.875rem}.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[_ngcontent-%COMP%] .dm-dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:999px;background:var(--mat-sys-outline)}.dm-pill[data-kind=ok][_ngcontent-%COMP%], .dm-pill[data-kind=clean][_ngcontent-%COMP%], .dm-pill[data-kind=fixed][_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=ok][_ngcontent-%COMP%] .dm-dot[_ngcontent-%COMP%], .dm-pill[data-kind=clean][_ngcontent-%COMP%] .dm-dot[_ngcontent-%COMP%], .dm-pill[data-kind=fixed][_ngcontent-%COMP%] .dm-dot[_ngcontent-%COMP%]{background:var(--mat-sys-primary)}.dm-pill[data-kind=detected][_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=detected][_ngcontent-%COMP%] .dm-dot[_ngcontent-%COMP%]{background:var(--mat-sys-tertiary)}.dm-pill[data-kind=err][_ngcontent-%COMP%], .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-pill[data-kind=err][_ngcontent-%COMP%] .dm-dot[_ngcontent-%COMP%], .dm-pill[data-kind=error][_ngcontent-%COMP%] .dm-dot[_ngcontent-%COMP%]{background:var(--mat-sys-error)}.dm-banner[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem .85rem;margin-bottom:.75rem;background:var(--mat-sys-surface-container);border:1px solid var(--mat-sys-outline-variant);border-radius:10px}.dm-banner-text[_ngcontent-%COMP%]{font-size:.875rem;color:var(--mat-sys-on-surface-variant)}.dm-banner-actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}@media(max-width:700px){.dm-banner[_ngcontent-%COMP%]{flex-direction:column;align-items:stretch}.dm-banner-actions[_ngcontent-%COMP%]{flex-wrap:wrap}}.dm-row-between[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.dm-routine-desc[_ngcontent-%COMP%]{font-size:.875rem;color:var(--mat-sys-on-surface-variant);flex:1}.dm-detail[_ngcontent-%COMP%]{margin-top:.75rem;padding:.5rem .65rem;background:var(--mat-sys-surface-container);border-radius:8px;font-size:.8125rem;overflow-wrap:anywhere}.dm-quick[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem}.dm-quick[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{justify-content:flex-start;padding:.5rem .75rem;height:auto;min-height:40px}.dm-stat[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.625rem;padding:.5rem .75rem;border:1px solid var(--mat-sys-outline-variant);border-radius:10px;background:var(--mat-sys-surface-container-low)}.dm-stat-icon[_ngcontent-%COMP%]{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:color-mix(in oklch,var(--mat-sys-primary) 14%,transparent);color:var(--mat-sys-primary)}.dm-stat-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:16px;width:16px;height:16px}.dm-stat-label[_ngcontent-%COMP%]{font-size:.75rem;color:var(--mat-sys-on-surface-variant);text-transform:uppercase;letter-spacing:.025rem}.dm-stat-value[_ngcontent-%COMP%]{font-size:.875rem;color:var(--mat-sys-on-surface)}mat-spinner[_ngcontent-%COMP%]{display:inline-block;margin-right:.35rem}"],changeDetection:0})};export{ne as DoctorPageComponent};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as $,b as R,c as N,d as z,f as j,h as B}from"./chunk-EXOJOB6H.js";import{d as F}from"./chunk-36JZZZCV.js";import"./chunk-EYOED3X7.js";import"./chunk-2QORICNU.js";import"./chunk-CCRYWDXZ.js";import"./chunk-6YXOOFGY.js";import"./chunk-BCGQJHY3.js";import"./chunk-P3Q7RWT5.js";import{c as L,d as D}from"./chunk-JODWQVMA.js";import{b as E}from"./chunk-RMV7CR6Y.js";import"./chunk-YNQPX5G6.js";import"./chunk-C6SNIY22.js";import"./chunk-42QQHEGP.js";import"./chunk-AHO3BCLI.js";import"./chunk-DRBVSI3B.js";import"./chunk-BKYXU3OY.js";import{c as w}from"./chunk-YFYMS5EE.js";import{e as T,f as A}from"./chunk-BPUIUSAU.js";import{d as I}from"./chunk-6CP6NCA6.js";import"./chunk-DNHNU64I.js";import{h as O}from"./chunk-532NB4ME.js";import{Ac as S,Fb as d,Gb as c,Jb as f,Kb as _,Lb as C,Mb as i,Nb as a,Ob as M,Xb as l,_a as r,a as x,ea as h,hc as k,jc as m,kc as p,lc as u,mc as P,nc as b,pb as y,ta as g,vc as v}from"./chunk-H3HRZLHG.js";var Y=e=>["/apps",e],G=(e,n)=>n.id,q=(e,n)=>n.app;function J(e,n){if(e&1&&(i(0,"span"),m(1,"You are "),i(2,"dm-mono"),m(3),a()()),e&2){let t=l();r(3),p(t.self())}}function K(e,n){e&1&&(i(0,"span"),m(1,"Live view of every CLI / MCP / dashboard caller against this daemon"),a())}function Q(e,n){e&1&&M(0,"dm-empty",3)}function U(e,n){e&1&&(i(0,"span",7),m(1,"you"),a())}function V(e,n){if(e&1&&(i(0,"div",8)(1,"mat-icon",11),m(2,"folder_open"),a(),i(3,"dm-mono"),m(4),a()()),e&2){let t=l().$implicit;r(4),p(t.cwd)}}function W(e,n){if(e&1&&(i(0,"div",12)(1,"mat-icon",13),m(2,"lock"),a(),i(3,"a",14),m(4),a(),i(5,"span",15),m(6),a()()),e&2){let t=n.$implicit,o=l(4);r(3),C("routerLink",v(3,Y,t.app)),r(),p(t.app),r(2),u("expires in ",o.ttl(t.expiresAt))}}function X(e,n){if(e&1&&(i(0,"div",9)(1,"h4"),m(2),a(),f(3,W,7,5,"div",12,q),a()),e&2){let t=l().$implicit,o=l(2);r(2),P("Holds ",o.locksForAgent(t.id).length," lock",o.locksForAgent(t.id).length===1?"":"s"),r(),_(o.locksForAgent(t.id))}}function Z(e,n){e&1&&(i(0,"div",10)(1,"mat-icon",11),m(2,"lock_open"),a(),i(3,"span"),m(4,"No active locks"),a()())}function tt(e,n){if(e&1&&(i(0,"mat-card",6)(1,"mat-card-header")(2,"mat-card-title")(3,"dm-mono"),m(4),a(),d(5,U,2,0,"span",7),a(),i(6,"mat-card-subtitle"),m(7),a()(),i(8,"mat-card-content"),d(9,V,5,1,"div",8),d(10,X,5,2,"div",9)(11,Z,5,0,"div",10),a()()),e&2){let t=n.$implicit,o=l(2);k("dm-agent-self",t.id===o.self()),r(4),p(t.id),r(),c(t.id===o.self()?5:-1),r(2),b(" ",t.callCount," calls \xB7 last seen ",o.rel(t.lastSeen)," \xB7 first seen ",o.rel(t.firstSeen)," "),r(2),c(t.cwd?9:-1),r(),c(o.locksForAgent(t.id).length>0?10:11)}}function et(e,n){if(e&1&&(i(0,"div",18)(1,"mat-icon",13),m(2,"lock_clock"),a(),i(3,"a",14),m(4),a(),i(5,"dm-mono"),m(6),a(),i(7,"span",15),m(8),a()()),e&2){let t=n.$implicit,o=l(3);r(3),C("routerLink",v(4,Y,t.app)),r(),p(t.app),r(2),p(t.agent),r(2),u("expires in ",o.ttl(t.expiresAt))}}function nt(e,n){if(e&1&&(i(0,"h2",16),m(1,"Locks held by inactive agents"),a(),i(2,"div",17),f(3,et,9,6,"div",18,q),a()),e&2){let t=l(2);r(3),_(t.orphanLocks())}}function ot(e,n){if(e&1&&(i(0,"div",4),f(1,tt,12,9,"mat-card",5,G),a(),d(3,nt,5,0)),e&2){let t=l();r(),_(t.agents()),r(2),c(t.orphanLocks().length>0?3:-1)}}var it=4e3;function at(e,n){let t=Math.max(0,Math.floor((n-e)/1e3));if(t<1)return"just now";if(t<60)return`${t}s ago`;let o=Math.floor(t/60);return o<60?`${o}m ago`:`${Math.floor(o/60)}h ${o%60}m ago`}function rt(e,n){let t=Math.max(0,Math.ceil((e-n)/1e3));return t<=0?"expired":t<60?`${t}s`:`${Math.floor(t/60)}m ${t%60}s`}var H=class e{api=h(I);agents=g([]);locks=g({});self=g(null);now=g(Date.now());orphanLocks=S(()=>{let n=new Set(this.agents().map(o=>o.id)),t=[];for(let[o,s]of Object.entries(this.locks()))n.has(s.agent)||t.push(x({app:o},s));return t.sort((o,s)=>o.app.localeCompare(s.app))});pollTimer;tickTimer;ngOnInit(){this.refresh(),this.pollTimer=setInterval(()=>{this.refresh()},it),this.tickTimer=setInterval(()=>this.now.set(Date.now()),1e3)}ngOnDestroy(){this.pollTimer&&clearInterval(this.pollTimer),this.tickTimer&&clearInterval(this.tickTimer)}locksForAgent(n){let t=[];for(let[o,s]of Object.entries(this.locks()))s.agent===n&&t.push(x({app:o},s));return t.sort((o,s)=>o.app.localeCompare(s.app))}rel(n){return at(n,this.now())}ttl(n){return rt(n,this.now())}async refresh(){let n=await this.api.getAgents();this.agents.set(n.agents),this.locks.set(n.locks),this.self.set(n.self)}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=y({type:e,selectors:[["dm-agents-page"]],decls:11,vars:3,consts:[[1,"dm-page-header"],[1,"dm-count"],[1,"dm-page-sub"],["icon","badge","title","No active agents","hint","Agents appear here within a few seconds of their first daimon call. Try `daimon list` from a terminal."],[1,"dm-agents-grid"],[1,"dm-agent-card",3,"dm-agent-self"],[1,"dm-agent-card"],[1,"dm-tag","dm-tag-self"],[1,"dm-agent-row"],[1,"dm-agent-locks"],[1,"dm-agent-row","dm-agent-row-muted"],["fontSet","material-symbols-outlined"],[1,"dm-lock-row"],["fontSet","material-symbols-outlined",1,"dm-lock-icon"],[1,"dm-app-link",3,"routerLink"],[1,"dm-lock-ttl"],[1,"dm-section-h"],[1,"dm-orphan-list"],[1,"dm-orphan-row"]],template:function(t,o){t&1&&(i(0,"div",0)(1,"div")(2,"h1"),m(3,"Agents "),i(4,"span",1),m(5),a()(),i(6,"div",2),d(7,J,4,1,"span")(8,K,2,0,"span"),a()()(),d(9,Q,1,0,"dm-empty",3)(10,ot,4,1)),t&2&&(r(5),u("\xB7 ",o.agents().length),r(2),c(o.self()?7:8),r(2),c(o.agents().length===0?9:10))},dependencies:[O,w,B,$,N,j,z,R,A,T,E,F,L,D],styles:["[_nghost-%COMP%]{display:block;padding:1.5rem;max-width:1100px;margin:0 auto}.dm-page-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.dm-page-header[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{font:500 1.5rem/2rem Roboto;margin:0;color:var(--mat-sys-on-surface)}.dm-count[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant);font-weight:400}.dm-page-sub[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant);font-size:.875rem;margin-top:.25rem}.dm-agents-grid[_ngcontent-%COMP%]{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(360px,1fr))}.dm-agent-card[_ngcontent-%COMP%]{border:1px solid var(--mat-sys-outline-variant)}.dm-agent-self[_ngcontent-%COMP%]{border-color:var(--mat-sys-primary);box-shadow:0 0 0 1px var(--mat-sys-primary)}.dm-agent-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin:.375rem 0;font-size:.875rem;color:var(--mat-sys-on-surface)}.dm-agent-row[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px;color:var(--mat-sys-on-surface-variant)}.dm-agent-row-muted[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant);font-style:italic}.dm-agent-locks[_ngcontent-%COMP%]{margin-top:.5rem;padding-top:.5rem;border-top:1px dashed var(--mat-sys-outline-variant)}.dm-agent-locks[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{font:500 .75rem/1rem Roboto;text-transform:uppercase;letter-spacing:.05rem;color:var(--mat-sys-on-surface-variant);margin:0 0 .375rem}.dm-lock-row[_ngcontent-%COMP%], .dm-orphan-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.25rem 0;font-size:.875rem}.dm-lock-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px;color:var(--mat-sys-tertiary)}.dm-app-link[_ngcontent-%COMP%]{color:var(--mat-sys-primary);text-decoration:none;font-weight:500}.dm-app-link[_ngcontent-%COMP%]:hover{text-decoration:underline}.dm-lock-ttl[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant);font-size:.75rem;margin-left:auto}.dm-tag[_ngcontent-%COMP%]{display:inline-block;margin-left:.5rem;padding:1px 8px;border-radius:999px;font:500 .6875rem/1rem Roboto;letter-spacing:.05rem;text-transform:uppercase}.dm-tag-self[_ngcontent-%COMP%]{background:color-mix(in oklch,var(--mat-sys-primary) 18%,transparent);color:var(--mat-sys-primary)}.dm-section-h[_ngcontent-%COMP%]{font:500 1rem/1.5rem Roboto;margin:1.5rem 0 .5rem;color:var(--mat-sys-on-surface-variant)}.dm-orphan-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;border:1px solid var(--mat-sys-outline-variant);border-radius:12px;padding:.5rem 1rem}"],changeDetection:0})};export{H as AgentsPageComponent};
|