@yinuo-ngm/server 1.0.20 → 1.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/lib/app.js +0 -4
  2. package/lib/env.js +5 -1
  3. package/lib/plugins/success-handle.plugin.js +1 -1
  4. package/lib/plugins/ws/topics/nginx.ws.js +1 -1
  5. package/lib/plugins/ws/ws.context.js +3 -1
  6. package/lib/plugins/ws/ws.plugin.js +14 -2
  7. package/lib/routes/api-client/collection.routes.js +35 -35
  8. package/lib/routes/api-client/env.routes.js +12 -8
  9. package/lib/routes/api-client/history.routes.js +10 -5
  10. package/lib/routes/api-client/request.routes.js +14 -8
  11. package/lib/routes/api-client/route-mappers.d.ts +7 -0
  12. package/lib/routes/api-client/route-mappers.js +78 -0
  13. package/lib/routes/api-client/send.routes.js +12 -8
  14. package/lib/routes/config.routes.js +73 -49
  15. package/lib/routes/deps.route.js +47 -5
  16. package/lib/routes/index.js +5 -3
  17. package/lib/routes/nginx/nginx-config.routes.js +3 -3
  18. package/lib/routes/nginx/nginx-lifecycle.routes.js +14 -13
  19. package/lib/routes/nginx/nginx-module.routes.js +6 -6
  20. package/lib/routes/nginx/nginx-route.context.d.ts +16 -1
  21. package/lib/routes/nginx/nginx-route.context.js +136 -1
  22. package/lib/routes/nginx/nginx-server.routes.js +5 -5
  23. package/lib/routes/node-runtime.routes.d.ts +2 -0
  24. package/lib/routes/node-runtime.routes.js +69 -0
  25. package/lib/routes/project.routes.js +117 -13
  26. package/lib/routes/sprite/sprite-browse.routes.d.ts +2 -0
  27. package/lib/routes/sprite/sprite-browse.routes.js +137 -0
  28. package/lib/routes/sprite/sprite-quick.utils.d.ts +19 -0
  29. package/lib/routes/sprite/sprite-quick.utils.js +247 -0
  30. package/lib/routes/sprite/sprite.routes.d.ts +2 -0
  31. package/lib/routes/sprite/sprite.routes.js +212 -0
  32. package/lib/routes/sprite-browse.routes.js +17 -11
  33. package/lib/routes/sprite.routes.d.ts +1 -1
  34. package/lib/routes/sprite.routes.js +68 -11
  35. package/lib/routes/svn.routes.js +48 -14
  36. package/lib/routes/task.routes.js +99 -7
  37. package/package.json +7 -7
  38. package/www/3rdpartylicenses.txt +5 -5
  39. package/www/browser/{chunk-OZCK4XVV.js → chunk-2VJVGBXG.js} +1 -1
  40. package/www/browser/{chunk-FL6GDGHW.js → chunk-3ODVU46S.js} +1 -1
  41. package/www/browser/chunk-442QFABJ.js +1 -0
  42. package/www/browser/{chunk-WD2EKZQC.js → chunk-6J6G7JEP.js} +1 -1
  43. package/www/browser/{chunk-7U44RF5F.js → chunk-6UFDNETG.js} +1 -1
  44. package/www/browser/{chunk-75W3GVSO.js → chunk-7AKVG375.js} +1 -1
  45. package/www/browser/chunk-7GLWEFTM.js +1 -0
  46. package/www/browser/{chunk-DIJPUYIA.js → chunk-7QR6RHLA.js} +1 -1
  47. package/www/browser/{chunk-HJTXXSMC.js → chunk-CO3CQHKV.js} +1 -1
  48. package/www/browser/{chunk-3XNNQFWR.js → chunk-CPJTSA6E.js} +1 -1
  49. package/www/browser/chunk-DENFXXOY.js +1 -0
  50. package/www/browser/{chunk-HDNG236Q.js → chunk-HC5KLPHD.js} +1 -1
  51. package/www/browser/chunk-HJAP6WBI.js +1 -0
  52. package/www/browser/{chunk-N2PELLMM.js → chunk-JM6DCZP6.js} +7 -7
  53. package/www/browser/chunk-K6C5ZIV2.js +20 -0
  54. package/www/browser/chunk-M6NZ6C2R.js +2 -0
  55. package/www/browser/{chunk-RGOYDY7H.js → chunk-MBPB43C6.js} +1 -1
  56. package/www/browser/chunk-MPLGMTLT.js +3 -0
  57. package/www/browser/chunk-NNOWADVM.js +1 -0
  58. package/www/browser/{chunk-M4QRBV3K.js → chunk-NREWZQVN.js} +1 -1
  59. package/www/browser/{chunk-6YYNHZ2A.js → chunk-OUGN4APK.js} +1 -1
  60. package/www/browser/chunk-PB2LGZNW.js +1 -0
  61. package/www/browser/chunk-PDI3HSSH.js +4 -0
  62. package/www/browser/chunk-PUG3VNTI.js +3 -0
  63. package/www/browser/{chunk-QJP5F735.js → chunk-PY3AUTHC.js} +1 -1
  64. package/www/browser/{chunk-3M56F2S2.js → chunk-R4HSZU2J.js} +1 -1
  65. package/www/browser/{chunk-DE6E23ET.js → chunk-RKK4I2RT.js} +1 -1
  66. package/www/browser/chunk-RMIYLAEM.js +1 -0
  67. package/www/browser/chunk-RZA3IFQV.js +2 -0
  68. package/www/browser/{chunk-K7PESFPY.js → chunk-SD2HFD54.js} +1 -1
  69. package/www/browser/{chunk-BTQIUVTQ.js → chunk-SEJGGBE2.js} +1 -1
  70. package/www/browser/chunk-SSCUT2GF.js +1 -0
  71. package/www/browser/chunk-TCBOC5FF.js +1 -0
  72. package/www/browser/{chunk-AZ6SIMYH.js → chunk-TS5ZQYYY.js} +1 -1
  73. package/www/browser/chunk-TVJHI463.js +1 -0
  74. package/www/browser/{chunk-YNW4HEJO.js → chunk-TXAXE73U.js} +17 -17
  75. package/www/browser/{chunk-4X42HB6N.js → chunk-U2YWR3HF.js} +1 -1
  76. package/www/browser/{chunk-D2ODDESN.js → chunk-U3EUR236.js} +1 -1
  77. package/www/browser/chunk-UKCMUTYL.js +1 -0
  78. package/www/browser/{chunk-DLGJD6YU.js → chunk-UPOORT3S.js} +1 -1
  79. package/www/browser/chunk-VW3S7C2Z.js +1 -0
  80. package/www/browser/chunk-VZYJ3MSW.js +15 -0
  81. package/www/browser/{chunk-AELTP6YN.js → chunk-WCHN62X6.js} +1 -1
  82. package/www/browser/chunk-WWIPELAV.js +1 -0
  83. package/www/browser/{chunk-B3C35ET3.js → chunk-WYNERG74.js} +1 -1
  84. package/www/browser/{chunk-ZTDLWBW5.js → chunk-XJDJL3TQ.js} +1 -1
  85. package/www/browser/{chunk-EEDA5U4V.js → chunk-YV6QPLF5.js} +1 -1
  86. package/www/browser/{chunk-ONXBYGIG.js → chunk-YVRGRFK2.js} +1 -1
  87. package/www/browser/index.html +1 -1
  88. package/www/browser/main-7GYUOEJY.js +38 -0
  89. package/lib/plugins/api-client.plugin.d.ts +0 -3
  90. package/lib/plugins/api-client.plugin.js +0 -55
  91. package/lib/plugins/nginx.binding.store.d.ts +0 -4
  92. package/lib/plugins/nginx.binding.store.js +0 -39
  93. package/lib/plugins/nginx.plugin.d.ts +0 -3
  94. package/lib/plugins/nginx.plugin.js +0 -23
  95. package/www/browser/chunk-2L7NUOMX.js +0 -2
  96. package/www/browser/chunk-2NZJ7CN2.js +0 -20
  97. package/www/browser/chunk-3CM4SKDO.js +0 -15
  98. package/www/browser/chunk-3OHBKMAA.js +0 -1
  99. package/www/browser/chunk-4LBSLURA.js +0 -1
  100. package/www/browser/chunk-5DYX4DUX.js +0 -11
  101. package/www/browser/chunk-6SYVDN5L.js +0 -1
  102. package/www/browser/chunk-AMXRL4GR.js +0 -1
  103. package/www/browser/chunk-AV2ZODEH.js +0 -1
  104. package/www/browser/chunk-CN5J4WNO.js +0 -1
  105. package/www/browser/chunk-FK6Z4HLL.js +0 -1
  106. package/www/browser/chunk-FXCG34QS.js +0 -1
  107. package/www/browser/chunk-H5HGMOE6.js +0 -1
  108. package/www/browser/chunk-HB3HECPD.js +0 -1
  109. package/www/browser/chunk-HUMCWAKJ.js +0 -3
  110. package/www/browser/chunk-IKB3EQCP.js +0 -2
  111. package/www/browser/chunk-OSBDR36P.js +0 -1
  112. package/www/browser/chunk-XLFHB7RS.js +0 -3
  113. package/www/browser/main-N64WJCHX.js +0 -34
@@ -1,3 +0,0 @@
1
- import{j as Gt}from"./chunk-AMXRL4GR.js";import{a as Qt,e as Ut,f as Zt}from"./chunk-ZTDLWBW5.js";import{a as $t}from"./chunk-FL6GDGHW.js";import{b as Ht}from"./chunk-HDNG236Q.js";import{a as Jt,b as en}from"./chunk-UJKK4A7Y.js";import"./chunk-75W3GVSO.js";import"./chunk-OZCK4XVV.js";import{a as Yt,b as Xt}from"./chunk-AELTP6YN.js";import{b as Kt}from"./chunk-HJTXXSMC.js";import"./chunk-FXCG34QS.js";import{a as Rt,b as Lt,c as fe}from"./chunk-IKB3EQCP.js";import{b as pe}from"./chunk-RGOYDY7H.js";import{e as jt,f as Z}from"./chunk-3XNNQFWR.js";import{a as Re,e as Nt,f as It,g as Dt}from"./chunk-YNW4HEJO.js";import"./chunk-OSBDR36P.js";import{a as qt,b as Wt}from"./chunk-K7PESFPY.js";import{g as wt,l as Pt}from"./chunk-4X42HB6N.js";import"./chunk-AV2ZODEH.js";import{d as At,e as Ft,m as Bt}from"./chunk-2NZJ7CN2.js";import{B as ht,C as De,Cb as Tt,F as xt,Fb as de,Ga as k,H as vt,Ha as O,Hb as ue,Ia as Mt,Ja as yt,L as S,Lb as me,Na as Ot,Oa as q,Pa as W,Qa as ce,Sa as H,Ta as N,Vb as I,Y as zt,_b as Et,a as _t,ac as ge,bc as St,cc as kt,dc as $,gc as Q,ic as U,ja as bt,nb as Vt,ra as Ae,s as Ct,sb as Fe}from"./chunk-3CM4SKDO.js";import"./chunk-HFZLJHYR.js";import"./chunk-WUA5JFDD.js";import{i as ft,n as E}from"./chunk-KRYMOHYF.js";import{$b as D,Ac as T,Ba as J,Bb as tt,Ca as Ge,Cc as lt,Da as B,Dc as ct,Ec as L,Fb as b,G as ze,Gb as nt,Gc as R,Ha as ye,Hb as it,Hc as pt,Ic as dt,Jc as c,Kc as y,L as be,Lb as w,Lc as C,M as K,Mc as Ve,Oa as Ke,Oc as se,Pc as re,Q as He,Qc as ae,Ra as Oe,Rc as Te,Sc as Ee,Tc as v,U as $e,Ub as ot,V as Qe,Vc as Se,Wb as h,Wc as ke,Xc as ut,Yb as x,_b as Pe,ac as A,bc as g,cc as s,dc as r,dd as j,ea as Me,ec as d,fc as st,g as P,gc as rt,ha as Ue,i as qe,ic as te,id as Ne,jc as ne,jd as mt,l as We,lc as z,ma as Ze,nb as a,oa as Ye,pd as gt,qa as Xe,rc as m,sa as u,sb as Y,tb as we,uc as p,ud as Ie,vb as Je,vc as ie,wb as et,wc as oe,xc as at,ya as f,yc as F,yd as le,za as _,zb as ee,zc as V}from"./chunk-4BRW6LCZ.js";var _e=class t{constructor(i,e,n){this.stream=i;this.clipboard=e;this.notify=n;this.resizeSub.add(this.resize$.pipe(He(350),Qe((o,l)=>o.cols===l.cols&&o.rows===l.rows),S(this.destroyRef)).subscribe(o=>{this._taskId&&this.stream.resize(this._taskId,o.cols,o.rows)}))}_taskId="";destroyRef=u(B);set taskId(i){let e=(i??"").trim();if(!e){this._taskId="",this.term?.reset();return}e!==this._taskId&&(this._taskId&&(this.stream.unsubscribeTask(this._taskId),this.term?.reset()),this._taskId=e,this.bind(e))}get taskId(){return this._taskId}tail=200;follow=!0;status={status:"idle"};term;sub=new P;resizeSub=new P;resize$=new We;bind(i){this.stream.subscribeTask(i,this.tail,{replay:!0}),this.sub.unsubscribe(),this.sub=new P,this.sub.add(this.stream.output$(i).subscribe(e=>{this.term&&(this.term.follow=this.follow,this.term.write(e.payload.text))})),this.sub.add(this.stream.status$(i).subscribe(e=>this.status=e))}ngOnDestroy(){this._taskId&&this.stream.unsubscribeTask(this._taskId),this.sub.unsubscribe(),this.resizeSub.unsubscribe()}toggleFollow(){this.follow=!this.follow,this.follow&&this.term?.scrollToBottom()}clear(){this.term?.clear()}toBottom(){this.term?.scrollToBottom()}async copy(){let i=this.term?.copyAll()??"";if(!i)return;this.clipboard.copy(i)?this.notify.success("Console output copied to clipboard."):this.notify.error("Failed to copy console output.")}onTermResized(i){this.resize$.next(i)}static \u0275fac=function(e){return new(e||t)(ee(Rt),ee(Jt),ee(Ft))};static \u0275cmp=b({type:t,selectors:[["app-task-console"]],viewQuery:function(e,n){if(e&1&&F(Re,5),e&2){let o;V(o=T())&&(n.term=o.first)}},inputs:{taskId:"taskId",tail:"tail"},decls:16,vars:1,consts:[[1,"console-card"],[1,"header"],[1,"title"],["nzType","desktop","nzTheme","outline"],[1,"id"],[1,"actions"],["nzAlign","center"],["nz-button","","nz-tooltip","\u6E05\u7A7A\u65E5\u5FD7",3,"click"],["nzType","clear","nzTheme","outline"],["nz-button","","nz-tooltip","\u590D\u5236\u65E5\u5FD7",3,"click"],["nzType","copy","nzTheme","outline"],["nz-button","","nz-tooltip","\u6EDA\u52A8\u5230\u5E95\u90E8",3,"click"],["nzType","vertical-align-bottom","nzTheme","outline"],[1,"viewport"],[3,"resized","follow"]],template:function(e,n){e&1&&(s(0,"div",0)(1,"div",1)(2,"div",2),d(3,"nz-icon",3),s(4,"div",4),c(5,"\u8F93\u51FA"),r()(),s(6,"div",5)(7,"nz-space",6)(8,"button",7),m("click",function(){return n.clear()}),d(9,"nz-icon",8),r(),s(10,"button",9),m("click",function(){return n.copy()}),d(11,"nz-icon",10),r(),s(12,"button",11),m("click",function(){return n.toBottom()}),d(13,"nz-icon",12),r()()()(),s(14,"div",13)(15,"app-terminal-view",14),m("resized",function(l){return n.onTermResized(l)}),r()()()),e&2&&(a(15),g("follow",n.follow))},dependencies:[I,N,H,W,ce,q,Ot,O,k,U,Q,Re,en],styles:[".console-card[_ngcontent-%COMP%]{height:100%;display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.08);border-radius:8px;overflow:hidden;min-height:0}.header[_ngcontent-%COMP%]{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:8px 12px}.header[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.header[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .status[_ngcontent-%COMP%]{margin-left:8px;font-size:12px}.header[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .status[_ngcontent-%COMP%] .running[_ngcontent-%COMP%]{opacity:.9}.header[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .status[_ngcontent-%COMP%] .stopped[_ngcontent-%COMP%]{opacity:.8}.header[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .status[_ngcontent-%COMP%] .idle[_ngcontent-%COMP%]{opacity:.6}.viewport[_ngcontent-%COMP%]{flex:1 1 auto;min-height:0;overflow:hidden;padding:8px;background:#000;border-radius:8px}"]})};var he=class t{name;description;command;static \u0275fac=function(e){return new(e||t)};static \u0275cmp=b({type:t,selectors:[["app-task-header"]],inputs:{name:"name",description:"description",command:"command"},decls:7,vars:3,consts:[[1,"name"],["nzType","appstore"],[1,"description"],[1,"command"]],template:function(e,n){e&1&&(s(0,"div",0),d(1,"nz-icon",1),c(2),r(),s(3,"div",2),c(4),r(),s(5,"div",3),c(6),r()),e&2&&(a(2),C(" ",n.name||"\u672A\u9009\u62E9\u4EFB\u52A1"),a(2),y(n.description||"-"),a(2),y(n.command||"-"))},dependencies:[E,O,k],styles:["[_nghost-%COMP%]{padding:0 16px;display:flex;flex-direction:row;align-items:center}[_nghost-%COMP%] .name[_ngcontent-%COMP%]{font-size:22px;position:relative;top:-1px}[_nghost-%COMP%] .description[_ngcontent-%COMP%]{flex:1;color:var(--app-text-secondary);font-size:15px;margin:0 16px;overflow:hidden;-ms-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap}[_nghost-%COMP%] .command[_ngcontent-%COMP%]{font-family:Roboto Mono,monospace;font-size:13px;background:var(--app-primary-3);height:32px;line-height:32px;padding:0 12px;border-radius:3px;overflow:hidden;-ms-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box}"]})};var gn=(t,i)=>i.spec.id;function fn(t,i){t&1&&(s(0,"div",7),c(1,"Loading..."),r())}function _n(t,i){if(t&1&&(s(0,"div",7),c(1),r()),t&2){let e=p(2);a(),C("No tasks for project: ",e.projectId())}}function Cn(t,i){t&1&&d(0,"nz-badge",14)}function hn(t,i){t&1&&d(0,"nz-badge",15)}function xn(t,i){t&1&&d(0,"nz-badge",16)}function vn(t,i){t&1&&d(0,"nz-badge",17)}function zn(t,i){t&1&&d(0,"nz-badge",18)}function bn(t,i){if(t&1){let e=z();s(0,"div",10),m("click",function(){let o=f(e).$implicit,l=p(3);return _(l.state.select(o.spec.id))}),s(1,"div",11)(2,"div",12),d(3,"nz-icon",13),h(4,Cn,1,0,"nz-badge",14)(5,hn,1,0,"nz-badge",15)(6,xn,1,0,"nz-badge",16)(7,vn,1,0,"nz-badge",17)(8,zn,1,0,"nz-badge",18),r(),s(9,"div",19)(10,"div",20),c(11),r(),s(12,"div",21),c(13),r()()()()}if(t&2){let e=i.$implicit,n=p(3);R("active",e.spec.id===n.selectedId()),a(),g("nz-tooltip",e.spec.description||""),a(3),x((e==null||e.runtime==null?null:e.runtime.status)==="running"?4:(e==null||e.runtime==null?null:e.runtime.status)==="stopping"?5:(e==null||e.runtime==null?null:e.runtime.status)==="success"?6:(e==null||e.runtime==null?null:e.runtime.status)==="failed"?7:8),a(6),g("title",e.spec.name),a(),y(e.spec.name),a(2),C(" ",(e.runtime==null?null:e.runtime.status)==="running"?"\u8FD0\u884C\u4E2D":(e.runtime==null?null:e.runtime.status)==="stopping"?"\u505C\u6B62\u4E2D":(e.runtime==null?null:e.runtime.status)==="success"?"\u5DF2\u5B8C\u6210":(e.runtime==null?null:e.runtime.status)==="failed"?"\u5931\u8D25":(e.runtime==null?null:e.runtime.status)==="stopped"?"\u5DF2\u505C\u6B62":e.spec.description||"\u7A7A\u95F2\u4E2D"," ")}}function Mn(t,i){if(t&1&&(s(0,"div",8),D(1,bn,14,7,"div",9,gn),r()),t&2){let e=p(2);a(),A(e.list())}}function yn(t,i){if(t&1&&h(0,_n,2,1,"div",7)(1,Mn,3,0,"div",8),t&2){let e=p();x(e.list().length===0?0:1)}}var xe=class t{state=u(fe);keyword=this.state.keyword;loading=this.state.loading;list=this.state.rowsViewFiltered;selectedId=this.state.selectedTaskId;projectId=this.state.projectId;badge(i){return i??""}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=b({type:t,selectors:[["app-task-list"]],decls:10,vars:2,consts:[[1,"wrap"],[1,"header"],["nzInputPrefix","","nzType","search",1,"search-icon"],["nz-input","","placeholder","\u641C\u7D22\u4EFB\u52A1",3,"ngModelChange","ngModel"],["nz-button","","nzType","text",3,"click"],["nz-icon","","nzType","reload"],[1,"body"],[1,"hint"],[1,"items"],[1,"item",3,"active"],[1,"item",3,"click"],["nzTooltipPlacement","right",1,"row",3,"nz-tooltip"],[1,"icon"],["nzType","codepen-circle","nzTheme","outline"],["nzStatus","processing"],["nzStatus","warning"],["nzStatus","success"],["nzStatus","error"],["nzStatus","default"],[1,"info"],[1,"name",3,"title"],[1,"description"]],template:function(e,n){e&1&&(s(0,"div",0)(1,"div",1)(2,"nz-input-wrapper"),d(3,"nz-icon",2),s(4,"input",3),m("ngModelChange",function(l){return n.keyword.set(l)}),r()(),s(5,"button",4),m("click",function(){return n.state.refresh()}),d(6,"span",5),r()(),s(7,"div",6),h(8,fn,2,0,"div",7)(9,yn,2,1),r()()),e&2&&(a(4),g("ngModel",n.keyword()),a(4),x(n.loading()?8:9))},dependencies:[E,I,de,ue,me,N,H,W,O,k,pe,q,Z,$,ge,kt,Et,U,Q,Wt,qt],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;width:320px;flex:0 0 320px}.wrap[_ngcontent-%COMP%]{height:100%;display:flex;flex-direction:column;border:1px solid rgba(0,0,0,.12);border-radius:12px;overflow:hidden}.header[_ngcontent-%COMP%]{width:100%;padding:10px 12px;display:flex;gap:10px;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(0,0,0,.12);flex:0 0 auto}.header[_ngcontent-%COMP%] nz-input-wrapper[_ngcontent-%COMP%]{width:100%;border-radius:18px}.body[_ngcontent-%COMP%]{flex:1 1 auto;height:0;display:flex;flex-direction:column}.error[_ngcontent-%COMP%]{padding:10px 12px;color:#b42318;flex:0 0 auto}.hint[_ngcontent-%COMP%]{padding:12px;opacity:.7;flex:0 0 auto}.items[_ngcontent-%COMP%]{flex:1 1 auto;overflow:auto;padding:8px;display:flex;flex-direction:column;gap:8px;height:100%;overflow-x:hidden;overflow-y:auto}.item[_ngcontent-%COMP%]{border-radius:3px;padding:10px;cursor:pointer}.item[_ngcontent-%COMP%]:hover, .item.active[_ngcontent-%COMP%]{background:var(--app-primary-3)}.item[_ngcontent-%COMP%] .row[_ngcontent-%COMP%]{display:flex;gap:10px;align-items:center;overflow:hidden;justify-content:space-between}.item[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:42px;flex:0 0 auto;position:relative}.item[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .info[_ngcontent-%COMP%]{flex:1 1 auto;display:flex;flex-direction:column;gap:4px;overflow:hidden}.item[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item[_ngcontent-%COMP%] .row[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] .description[_ngcontent-%COMP%]{font-size:13px;color:var(--app-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item[_ngcontent-%COMP%] .badge[_ngcontent-%COMP%]{font-size:12px;padding:2px 8px;border-radius:999px;border:1px solid rgba(0,0,0,.2);opacity:.85}.item[_ngcontent-%COMP%] .badge[data-status=running][_ngcontent-%COMP%]{font-weight:700}.item[_ngcontent-%COMP%] .badge[data-status=stopped][_ngcontent-%COMP%]{opacity:.7}.item[_ngcontent-%COMP%] .badge[data-status=failed][_ngcontent-%COMP%]{font-weight:700}.item[_ngcontent-%COMP%] .meta[_ngcontent-%COMP%]{margin-top:6px;font-size:12px;opacity:.75;display:flex;align-items:center;gap:6px}.item[_ngcontent-%COMP%] .meta[_ngcontent-%COMP%] .mono[_ngcontent-%COMP%]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace}.item[_ngcontent-%COMP%] .meta[_ngcontent-%COMP%] .sep[_ngcontent-%COMP%]{opacity:.5}"]})};var sn=new Xe("",{providedIn:"root",factory:()=>{let t=u(J);return new qe(i=>{let e=Je(()=>{i.next(),i.complete()},{injector:t});return()=>e.destroy()})}});var Pn=[[["nz-auto-option"]]],Vn=["nz-auto-option"];function Tn(t,i){if(t&1&&(te(0),c(1),ne()),t&2){let e=p();a(),y(e.nzLabel)}}var rn=["*"],En=["panel"],Sn=["content"],kn=(t,i)=>i.value;function Nn(t,i){}function In(t,i){t&1&&w(0,Nn,0,0,"ng-template")}function Dn(t,i){t&1&&oe(0)}function An(t,i){if(t&1&&(s(0,"nz-auto-option",7),c(1),r()),t&2){let e=i.$implicit;g("nzValue",e.value)("nzLabel",e.label),a(),C(" ",e.label," ")}}function Fn(t,i){if(t&1&&D(0,An,2,3,"nz-auto-option",7,kn),t&2){let e=p(2);A(e.normalizedDataSource)}}function Rn(t,i){if(t&1){let e=z();s(0,"div",3,0),m("@slideMotion.done",function(o){f(e);let l=p();return _(l.onAnimationEvent(o))}),s(2,"div",4)(3,"div",5),w(4,In,1,0,null,6),r()()(),w(5,Dn,1,0,"ng-template",null,1,j)(7,Fn,2,0,"ng-template",null,2,j)}if(t&2){let e=L(6),n=L(8),o=p();pt(o.nzOverlayStyle),dt(o.nzOverlayClassName),R("ant-select-dropdown-hidden",!o.showPanel)("ant-select-dropdown-rtl",o.dir==="rtl"),g("nzNoAnimation",o.noAnimation==null?null:o.noAnimation.nzNoAnimation)("@slideMotion",void 0)("@.disabled",!!(o.noAnimation!=null&&o.noAnimation.nzNoAnimation)),a(4),g("ngTemplateOutlet",o.nzDataSource?n:e)}}var an=(()=>{class t{nzLabel;static \u0275fac=function(n){return new(n||t)};static \u0275cmp=b({type:t,selectors:[["nz-auto-optgroup"]],inputs:{nzLabel:"nzLabel"},exportAs:["nzAutoOptgroup"],ngContentSelectors:Vn,decls:3,vars:1,consts:[[1,"ant-select-item","ant-select-item-group"],[4,"nzStringTemplateOutlet"]],template:function(n,o){n&1&&(ie(Pn),s(0,"div",0),w(1,Tn,2,1,"ng-container",1),r(),oe(2)),n&2&&(a(),g("nzStringTemplateOutlet",o.nzLabel))},dependencies:[yt,Mt],encapsulation:2,changeDetection:0})}return t})(),Le=class{source;isUserInput;constructor(i,e=!1){this.source=i,this.isUserInput=e}},G=(()=>{class t{ngZone=u(we);changeDetectorRef=u(Ie);element=u(Oe);destroyRef=u(B);nzValue;nzLabel;nzDisabled=!1;selectionChange=new Y;mouseEntered=new Y;active=!1;selected=!1;nzAutocompleteOptgroupComponent=u(an,{optional:!0});ngOnInit(){Ae(this.element.nativeElement,"mouseenter").pipe(K(()=>this.mouseEntered.observers.length>0),S(this.destroyRef)).subscribe(()=>{this.ngZone.run(()=>this.mouseEntered.emit(this))}),Ae(this.element.nativeElement,"mousedown").pipe(S(this.destroyRef)).subscribe(e=>e.preventDefault())}select(e=!0){this.selected=!0,this.changeDetectorRef.markForCheck(),e&&this.emitSelectionChangeEvent()}deselect(){this.selected=!1,this.changeDetectorRef.markForCheck(),this.emitSelectionChangeEvent()}getLabel(){return this.nzLabel||this.nzValue.toString()}setActiveStyles(){this.active||(this.active=!0,this.changeDetectorRef.markForCheck())}setInactiveStyles(){this.active&&(this.active=!1,this.changeDetectorRef.markForCheck())}scrollIntoViewIfNeeded(){bt(this.element.nativeElement)}selectViaInteraction(){this.nzDisabled||(this.selected=!this.selected,this.selected?this.setActiveStyles():this.setInactiveStyles(),this.emitSelectionChangeEvent(!0),this.changeDetectorRef.markForCheck())}emitSelectionChangeEvent(e=!1){this.selectionChange.emit(new Le(this,e))}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=b({type:t,selectors:[["nz-auto-option"]],hostAttrs:["role","menuitem",1,"ant-select-item","ant-select-item-option"],hostVars:10,hostBindings:function(n,o){n&1&&m("click",function(){return o.selectViaInteraction()}),n&2&&(ot("aria-selected",o.selected.toString())("aria-disabled",o.nzDisabled.toString()),R("ant-select-item-option-grouped",o.nzAutocompleteOptgroupComponent)("ant-select-item-option-selected",o.selected)("ant-select-item-option-active",o.active)("ant-select-item-option-disabled",o.nzDisabled))},inputs:{nzValue:"nzValue",nzLabel:"nzLabel",nzDisabled:[2,"nzDisabled","nzDisabled",le]},outputs:{selectionChange:"selectionChange",mouseEntered:"mouseEntered"},exportAs:["nzAutoOption"],ngContentSelectors:rn,decls:2,vars:0,consts:[[1,"ant-select-item-option-content"]],template:function(n,o){n&1&&(ie(),st(0,"div",0),oe(1),rt())},encapsulation:2,changeDetection:0})}return t})(),Bn={provide:Tt,useExisting:Ze(()=>je),multi:!0};function Ln(){return Error("Attempting to open an undefined instance of `nz-autocomplete`. Make sure that the id passed to the `nzAutocomplete` is correct and that you're attempting to open it after the ngAfterContentInit hook.")}var je=(()=>{class t{injector=u(J);ngZone=u(we);elementRef=u(Oe);viewContainerRef=u(tt);destroyRef=u(B);nzAutocomplete;onChange=()=>{};onTouched=()=>{};panelOpen=!1;get activeOption(){return this.nzAutocomplete&&this.nzAutocomplete.options.length?this.nzAutocomplete.activeItem:null}overlayRef=null;portal=null;positionStrategy;previousValue=null;selectionChangeSubscription;optionsChangeSubscription;overlayOutsideClickSubscription;document=u(Ge);nzInputGroupWhitSuffixOrPrefixDirective=u(St,{optional:!0});constructor(){this.destroyRef.onDestroy(()=>{this.destroyPanel()})}ngAfterViewInit(){this.nzAutocomplete&&this.nzAutocomplete.animationStateChange.pipe(S(this.destroyRef)).subscribe(e=>{e.toState==="void"&&this.overlayRef&&(this.overlayRef.dispose(),this.overlayRef=null)})}writeValue(e){this.ngZone.runOutsideAngular(()=>{Promise.resolve(null).then(()=>this.setTriggerValue(e))})}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){let n=this.elementRef.nativeElement;n.disabled=e,this.closePanel()}openPanel(){this.previousValue=this.elementRef.nativeElement.value,this.attachOverlay(),this.updateStatus()}closePanel(){this.panelOpen&&(this.nzAutocomplete.isOpen=this.panelOpen=!1,this.overlayRef&&this.overlayRef.hasAttached()&&(this.overlayRef.detach(),this.selectionChangeSubscription.unsubscribe(),this.overlayOutsideClickSubscription.unsubscribe(),this.optionsChangeSubscription.unsubscribe(),this.portal=null))}handleKeydown(e){let n=e.keyCode,o=n===38||n===40;n===27&&e.preventDefault(),this.panelOpen&&(n===27||n===9)?(this.activeOption&&this.activeOption.getLabel()!==this.previousValue&&this.setTriggerValue(this.previousValue),this.closePanel()):this.panelOpen&&n===13?this.nzAutocomplete.showPanel&&(e.preventDefault(),this.activeOption?this.activeOption.selectViaInteraction():this.closePanel()):this.panelOpen&&o&&this.nzAutocomplete.showPanel&&(e.stopPropagation(),e.preventDefault(),n===38?this.nzAutocomplete.setPreviousItemActive():this.nzAutocomplete.setNextItemActive(),this.activeOption&&this.activeOption.scrollIntoViewIfNeeded(),this.doBackfill())}handleInput(e){let n=e.target,o=this.document,l=n.value;n.type==="number"&&(l=l===""?null:parseFloat(l)),this.previousValue!==l&&(this.previousValue=l,this.onChange(l),this.canOpen()&&o.activeElement===e.target&&this.openPanel())}handleFocus(){this.canOpen()&&this.openPanel()}handleClick(){this.canOpen()&&!this.panelOpen&&this.openPanel()}handleBlur(){this.onTouched()}subscribeOptionsChange(){return this.nzAutocomplete.options.changes.pipe(Ue(()=>this.positionStrategy.reapplyLastPosition()),$e(0)).subscribe(()=>{this.resetActiveItem(),this.panelOpen&&this.overlayRef.updatePosition()})}subscribeSelectionChange(){return this.nzAutocomplete.selectionChange.subscribe(e=>{this.setValueAndClose(e)})}subscribeOverlayOutsideClick(){return this.overlayRef.outsidePointerEvents().pipe(K(e=>!this.elementRef.nativeElement.contains(e.target))).subscribe(()=>{this.closePanel()})}attachOverlay(){if(!this.nzAutocomplete)throw Ln();!this.portal&&this.nzAutocomplete.template&&(this.portal=new Ct(this.nzAutocomplete.template,this.viewContainerRef)),this.overlayRef||(this.overlayRef=vt(this.injector,{positionStrategy:this.getOverlayPosition(),disposeOnNavigation:!0,scrollStrategy:ht(this.injector),width:this.nzAutocomplete.nzWidth||this.getHostWidth()})),this.overlayRef&&!this.overlayRef.hasAttached()&&(this.overlayRef.attach(this.portal),this.selectionChangeSubscription=this.subscribeSelectionChange(),this.optionsChangeSubscription=this.subscribeOptionsChange(),this.overlayOutsideClickSubscription=this.subscribeOverlayOutsideClick(),this.overlayRef.detachments().pipe(S(this.destroyRef)).subscribe(()=>{this.closePanel()})),this.nzAutocomplete.isOpen=this.panelOpen=!0}updateStatus(){this.overlayRef&&this.overlayRef.updateSize({width:this.nzAutocomplete.nzWidth||this.getHostWidth()}),this.nzAutocomplete.setVisibility(),this.resetActiveItem(),this.activeOption&&this.activeOption.scrollIntoViewIfNeeded()}destroyPanel(){this.overlayRef&&this.closePanel()}getConnectedElement(){return this.nzInputGroupWhitSuffixOrPrefixDirective?.elementRef??this.elementRef}getOverlayPosition(){return this.positionStrategy=xt(this.injector,this.getConnectedElement()).withFlexibleDimensions(!1).withPush(!1).withPositions([new De({originX:"start",originY:"bottom"},{overlayX:"start",overlayY:"top"}),new De({originX:"start",originY:"top"},{overlayX:"start",overlayY:"bottom"})]).withTransformOriginOn(".ant-select-dropdown")}getHostWidth(){return this.getConnectedElement().nativeElement.getBoundingClientRect().width}resetActiveItem(){let e=this.nzAutocomplete.getOptionIndex(this.previousValue);this.nzAutocomplete.clearSelectedOptions(null,!0),e!==-1?(this.nzAutocomplete.setActiveItem(e),this.nzAutocomplete.activeItem.select(!1)):this.nzAutocomplete.setActiveItem(this.nzAutocomplete.nzDefaultActiveFirstOption?0:-1)}setValueAndClose(e){let n=e.nzValue;this.setTriggerValue(e.getLabel()),this.onChange(n),this.elementRef.nativeElement.focus(),this.closePanel()}setTriggerValue(e){let n=this.nzAutocomplete.getOption(e),o=n?n.getLabel():e;this.elementRef.nativeElement.value=o??"",this.nzAutocomplete.nzBackfill||(this.previousValue=o)}doBackfill(){this.nzAutocomplete.nzBackfill&&this.nzAutocomplete.activeItem&&this.setTriggerValue(this.nzAutocomplete.activeItem.getLabel())}canOpen(){let e=this.elementRef.nativeElement;return!e.readOnly&&!e.disabled}static \u0275fac=function(n){return new(n||t)};static \u0275dir=it({type:t,selectors:[["input","nzAutocomplete",""],["textarea","nzAutocomplete",""]],hostAttrs:["autocomplete","off","aria-autocomplete","list"],hostBindings:function(n,o){n&1&&m("focusin",function(){return o.handleFocus()})("blur",function(){return o.handleBlur()})("input",function(M){return o.handleInput(M)})("keydown",function(M){return o.handleKeydown(M)})("click",function(){return o.handleClick()})},inputs:{nzAutocomplete:"nzAutocomplete"},exportAs:["nzAutocompleteTrigger"],features:[ut([Bn])]})}return t})();function jn(t){return t?.map(i=>typeof i=="number"||typeof i=="string"?{label:i.toString(),value:i.toString()}:i)}var ln=(()=>{class t{changeDetectorRef=u(Ie);directionality=u(_t);destroyRef=u(B);nzWidth;nzOverlayClassName="";nzOverlayStyle={};nzDefaultActiveFirstOption=!0;nzBackfill=!1;compareWith=(e,n)=>e===n;nzDataSource;selectionChange=new Y;showPanel=!0;isOpen=!1;activeItem=null;dir="ltr";normalizedDataSource=[];animationStateChange=new Y;get options(){return this.nzDataSource?this.fromDataSourceOptions:this.fromContentOptions}fromContentOptions;fromDataSourceOptions;template;panel;content;activeItemIndex=-1;selectionChangeSubscription=P.EMPTY;optionMouseEnterSubscription=P.EMPTY;dataSourceChangeSubscription=P.EMPTY;optionSelectionChanges=ze(()=>this.options?be(...this.options.map(e=>e.selectionChange)):this.afterNextRender$.pipe(Me(()=>this.optionSelectionChanges)));optionMouseEnter=ze(()=>this.options?be(...this.options.map(e=>e.mouseEntered)):this.afterNextRender$.pipe(Me(()=>this.optionMouseEnter)));afterNextRender$=u(sn);noAnimation=u(Fe,{host:!0,optional:!0});constructor(){this.destroyRef.onDestroy(()=>{this.dataSourceChangeSubscription.unsubscribe(),this.selectionChangeSubscription.unsubscribe(),this.optionMouseEnterSubscription.unsubscribe(),this.dataSourceChangeSubscription=this.selectionChangeSubscription=this.optionMouseEnterSubscription=null})}ngOnInit(){this.directionality.change?.pipe(S(this.destroyRef)).subscribe(e=>{this.dir=e,this.changeDetectorRef.detectChanges()}),this.dir=this.directionality.value}ngOnChanges(e){let{nzDataSource:n}=e;n&&(this.normalizedDataSource=jn(n.currentValue))}onAnimationEvent(e){this.animationStateChange.emit(e)}ngAfterContentInit(){this.nzDataSource||this.optionsInit()}ngAfterViewInit(){this.nzDataSource&&this.optionsInit()}setVisibility(){this.showPanel=!!this.options.length,this.changeDetectorRef.markForCheck()}setActiveItem(e){let n=this.options.get(e);n&&!n.active?(this.activeItem=n,this.activeItemIndex=e,this.clearSelectedOptions(this.activeItem),this.activeItem.setActiveStyles()):(this.activeItem=null,this.activeItemIndex=-1,this.clearSelectedOptions()),this.changeDetectorRef.markForCheck()}setNextItemActive(){let e=this.activeItemIndex+1<=this.options.length-1?this.activeItemIndex+1:0;this.setActiveItem(e)}setPreviousItemActive(){let e=this.activeItemIndex-1<0?this.options.length-1:this.activeItemIndex-1;this.setActiveItem(e)}getOptionIndex(e){return this.options.reduce((n,o,l)=>n===-1?this.compareWith(e,o.nzValue)?l:-1:n,-1)}getOption(e){return this.options.find(n=>this.compareWith(e,n.nzValue))||null}optionsInit(){this.setVisibility(),this.subscribeOptionChanges();let e=this.nzDataSource?this.fromDataSourceOptions.changes:this.fromContentOptions.changes;this.dataSourceChangeSubscription=e.subscribe(n=>{!n.dirty&&this.isOpen&&setTimeout(()=>this.setVisibility()),this.subscribeOptionChanges()})}clearSelectedOptions(e,n=!1){this.options.forEach(o=>{o!==e&&(n&&o.deselect(),o.setInactiveStyles())})}subscribeOptionChanges(){this.selectionChangeSubscription.unsubscribe(),this.selectionChangeSubscription=this.optionSelectionChanges.pipe(K(e=>e.isUserInput)).subscribe(e=>{e.source.select(),e.source.setActiveStyles(),this.activeItem=e.source,this.activeItemIndex=this.getOptionIndex(this.activeItem.nzValue),this.clearSelectedOptions(e.source,!0),this.selectionChange.emit(e.source)}),this.optionMouseEnterSubscription.unsubscribe(),this.optionMouseEnterSubscription=this.optionMouseEnter.subscribe(e=>{e.setActiveStyles(),this.activeItem=e,this.activeItemIndex=this.getOptionIndex(this.activeItem.nzValue),this.clearSelectedOptions(e)})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=b({type:t,selectors:[["nz-autocomplete"]],contentQueries:function(n,o,l){if(n&1&&at(l,G,5),n&2){let M;V(M=T())&&(o.fromContentOptions=M)}},viewQuery:function(n,o){if(n&1&&(F(et,5),F(En,5),F(Sn,5),F(G,5)),n&2){let l;V(l=T())&&(o.template=l.first),V(l=T())&&(o.panel=l.first),V(l=T())&&(o.content=l.first),V(l=T())&&(o.fromDataSourceOptions=l)}},inputs:{nzWidth:[2,"nzWidth","nzWidth",zt],nzOverlayClassName:"nzOverlayClassName",nzOverlayStyle:"nzOverlayStyle",nzDefaultActiveFirstOption:[2,"nzDefaultActiveFirstOption","nzDefaultActiveFirstOption",le],nzBackfill:[2,"nzBackfill","nzBackfill",le],compareWith:"compareWith",nzDataSource:"nzDataSource"},outputs:{selectionChange:"selectionChange"},exportAs:["nzAutocomplete"],features:[Ke],ngContentSelectors:rn,decls:1,vars:0,consts:[["panel",""],["contentTemplate",""],["optionsTemplate",""],[1,"ant-select-dropdown","ant-select-dropdown-placement-bottomLeft",3,"nzNoAnimation"],[1,"ant-select-dropdown-content-wrapper"],[1,"ant-select-dropdown-content"],[4,"ngTemplateOutlet"],[3,"nzValue","nzLabel"]],template:function(n,o){n&1&&(ie(),w(0,Rn,9,12,"ng-template"))},dependencies:[ft,G,Fe],encapsulation:2,data:{animation:[Vt]},changeDetection:0})}return t})(),cn=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275mod=nt({type:t});static \u0275inj=Ye({imports:[an]})}return t})();var Wn=["settingsModal"];function Hn(t,i){if(t&1&&d(0,"span",10),t&2){p(2);let e=v(0);g("nzTooltipTitle",Se("\u9879\u76EE\u5DF2\u914D\u7F6E Volta (node@",e.voltaConfig,")\uFF0C\u7531 Volta \u81EA\u52A8\u5207\u6362"))}}function $n(t,i){if(t&1&&d(0,"span",10),t&2){p(3);let e=v(0);g("nzTooltipTitle",ke("\u5F53\u524D\u7248\u672C ",e.satisfiedBy," \u6EE1\u8DB3\u9879\u76EE\u8981\u6C42 (",e.requiredVersion,")"))}}function Qn(t,i){if(t&1&&d(0,"span",12),t&2){p(3);let e=v(0);g("nzTooltipTitle",ke("\u9879\u76EE\u8981\u6C42 ",e.requiredVersion,"\uFF0C\u8FD0\u884C\u540E\u5C06\u81EA\u52A8\u5207\u6362\u5230 ",e.satisfiedBy))}}function Un(t,i){if(t&1&&d(0,"span",13),t&2){p(3);let e=v(0);g("nzTooltipTitle",Se("\u9879\u76EE\u8981\u6C42 ",e.requiredVersion,"\uFF0C\u4F46\u672A\u627E\u5230\u5339\u914D\u7684\u5DF2\u5B89\u88C5\u7248\u672C"))}}function Zn(t,i){if(t&1&&h(0,$n,1,3,"span",10)(1,Qn,1,3,"span",12)(2,Un,1,2,"span",13),t&2){p(2);let e=v(0);x(e.isMatch?0:e.satisfiedBy?1:2)}}function Yn(t,i){t&1&&d(0,"span",11)}function Xn(t,i){if(t&1&&h(0,Hn,1,2,"span",10)(1,Zn,3,1)(2,Yn,1,0,"span",11),t&2){p();let e=v(0);x(e.voltaConfig?0:e.requiredVersion?1:2)}}function Gn(t,i){if(t&1){let e=z();s(0,"div",16)(1,"p"),c(2,"NVM (Node Version Manager) \u662F\u4E00\u4E2A\u7528\u4E8E\u7BA1\u7406\u591A\u4E2A Node.js \u7248\u672C\u7684\u5DE5\u5177\u3002"),r(),s(3,"p"),c(4,"\u4F7F\u7528 NVM \u53EF\u4EE5\u8F7B\u677E\u5730\u5728\u4E0D\u540C\u9879\u76EE\u95F4\u5207\u6362 Node \u7248\u672C\uFF0C\u907F\u514D\u7248\u672C\u51B2\u7A81\u3002"),r(),s(5,"div",17)(6,"button",18),m("click",function(){f(e);let o=p(2);return _(o.openNvmLearnMorePage())}),c(7,"\u4E86\u89E3\u66F4\u591A"),r(),s(8,"button",19),m("click",function(){f(e);let o=p(2);return _(o.openNvmInstallPage())}),c(9,"\u4E0B\u8F7D NVM"),r()()()}}function Kn(t,i){if(t&1&&(s(0,"button",14),d(1,"span",15),c(2," \u5B89\u88C5 NVM "),r(),w(3,Gn,10,0,"ng-template",null,1,j)),t&2){let e=L(4);g("nzPopoverTrigger","hover")("nzPopoverContent",e)}}function Jn(t,i){if(t&1&&(s(0,"div",21),d(1,"span",38),c(2),r()),t&2){let e=p(2);a(2),C(" ",e.nodeVersion.getNoManagerMessage()," ")}}function ei(t,i){if(t&1&&(s(0,"div",39)(1,"div",44)(2,"span",45),c(3,"Volta \u81EA\u52A8\u7BA1\u7406"),r(),s(4,"span",46),c(5),r()()()),t&2){p(3);let e=v(0);a(5),C("\u9879\u76EE\u5DF2\u914D\u7F6E node@",e.voltaConfig)}}function ti(t,i){if(t&1&&(s(0,"div",39)(1,"div",44)(2,"span",45),c(3,"\u7248\u672C\u6EE1\u8DB3\u8981\u6C42"),r(),s(4,"span",46),c(5),r()()()),t&2){p(3);let e=v(0);a(5),Ve("\u5F53\u524D ",e.satisfiedBy," \u6EE1\u8DB3 ",e.requiredVersion)}}function ni(t,i){if(t&1&&(s(0,"div",40)(1,"div",44)(2,"span",45),c(3,"\u5C06\u81EA\u52A8\u5207\u6362"),r(),s(4,"span",46),c(5),r()()()),t&2){p(3);let e=v(0);a(5),Ve("\u8981\u6C42 ",e.requiredVersion,"\uFF0C\u5207\u6362\u5230 ",e.satisfiedBy)}}function ii(t,i){if(t&1&&(s(0,"div",41)(1,"div",44)(2,"span",45),c(3,"\u7248\u672C\u4E0D\u5339\u914D"),r(),s(4,"span",46),c(5),r()()()),t&2){p(3);let e=v(0);a(5),C("\u8981\u6C42 ",e.requiredVersion,"\uFF0C\u672A\u627E\u5230\u5DF2\u5B89\u88C5\u7248\u672C")}}function oi(t,i){if(t&1){let e=z();s(0,"div",42)(1,"div",44)(2,"span",45),c(3,"\u672A\u914D\u7F6E\u8981\u6C42"),r(),s(4,"span",46),c(5,"\u5728 package.json \u7684 engines.node \u5B57\u6BB5\u914D\u7F6E"),r()(),s(6,"button",47),m("click",function(){f(e);let o=p(3);return _(o.openWriteConfig())}),d(7,"span",48),c(8," \u5199\u5165\u914D\u7F6E "),r()()}}function si(t,i){if(t&1){let e=z();s(0,"div",42)(1,"div",44)(2,"span",45),c(3,"\u5DF2\u914D\u7F6E\u8981\u6C42"),r(),s(4,"span",46),c(5),r()(),s(6,"button",49),m("click",function(){f(e);let o=p(3);return _(o.openWriteConfig())}),d(7,"span",48),c(8," \u4FEE\u6539\u914D\u7F6E "),r()()}if(t&2){p(3);let e=v(0);a(5),C("\u5F53\u524D engines.node: ",e.requiredVersion)}}function ri(t,i){if(t&1){let e=z();s(0,"div",43)(1,"div",27)(2,"span",28),c(3),r(),s(4,"button",50),m("click",function(){f(e);let o=p(3);return _(o.closeWriteConfig())}),d(5,"span",51),r()(),s(6,"div",52)(7,"div",53)(8,"span",54),c(9,"\u63A8\u8350\u7248\u672C:"),r(),s(10,"nz-select",55),ae("ngModelChange",function(o){f(e);let l=p(3);return re(l.selectedEngineVersion,o)||(l.selectedEngineVersion=o),_(o)}),r()(),s(11,"div",53)(12,"span",54),c(13,"\u6216\u624B\u52A8\u8F93\u5165:"),r(),s(14,"input",56),ae("ngModelChange",function(o){f(e);let l=p(3);return re(l.customEngineVersion,o)||(l.customEngineVersion=o),_(o)}),r()()(),s(15,"div",57)(16,"span",58),c(17,"\u9884\u89C8:"),r(),s(18,"code",59),c(19),r()(),s(20,"div",60)(21,"button",61),m("click",function(){f(e);let o=p(3);return _(o.writeEngineConfig())}),d(22,"span",62),c(23," \u5199\u5165 package.json "),r()()()}if(t&2){let e=p(3),n=v(0);a(3),C("",n.hasEnginesConfig?"\u4FEE\u6539":"\u5199\u5165"," engines.node \u914D\u7F6E"),a(7),se("ngModel",e.selectedEngineVersion),g("nzOptions",e.recommendedEngineVersions),a(4),se("ngModel",e.customEngineVersion),a(5),C(" ",e.getEngineConfigPreview()," "),a(2),g("nzLoading",e.writingConfig)}}function ai(t,i){if(t&1&&(h(0,ei,6,1,"div",39)(1,ti,6,2,"div",39)(2,ni,6,2,"div",40)(3,ii,6,1,"div",41),h(4,oi,9,0,"div",42)(5,si,9,1,"div",42),h(6,ri,24,6,"div",43)),t&2){let e=p(2),n=v(0);x(n.voltaConfig?0:n.isMatch?1:n.satisfiedBy?2:n.requiredVersion?3:-1),a(4),x(n.hasEnginesConfig?5:4),a(2),x(e.showWriteConfig?6:-1)}}function li(t,i){if(t&1){let e=z();s(0,"nz-auto-option",67),m("click",function(){let o=f(e).$implicit,l=p(3);return _(l.onVersionSelect(o))}),c(1),r()}if(t&2){let e=i.$implicit;g("nzValue",e),a(),y(e)}}function ci(t,i){if(t&1){let e=z();s(0,"div",25)(1,"span",28),c(2,"\u5FEB\u901F\u5B89\u88C5"),r(),s(3,"div",63)(4,"input",64),ae("ngModelChange",function(o){f(e);let l=p(2);return re(l.selectedInstallVersion,o)||(l.selectedInstallVersion=o),_(o)}),m("input",function(o){f(e);let l=p(2);return _(l.onVersionInput(o))}),r(),s(5,"nz-autocomplete",null,2),D(7,li,2,2,"nz-auto-option",65,Pe),r(),s(9,"button",66),m("click",function(){f(e);let o=p(2);return _(o.installVersion())}),d(10,"span",15),c(11," \u5B89\u88C5 "),r()()()}if(t&2){let e=L(6),n=p(2);a(4),se("ngModel",n.selectedInstallVersion),g("nzAutocomplete",e),a(3),A(n.filteredVersions),a(2),g("nzLoading",n.installing())("disabled",!n.selectedInstallVersion)}}function pi(t,i){if(t&1){let e=z();s(0,"span",75),m("click",function(o){f(e);let l=p().$implicit,M=p(3);return _(M.confirmDelete(l,o))}),d(1,"span",51),r()}}function di(t,i){t&1&&(s(0,"span",74),c(1,"\u5F53\u524D"),r())}function ui(t,i){if(t&1){let e=z();s(0,"span",71)(1,"span",72),m("click",function(){let o=f(e).$implicit,l=p(3);return _(o!==l.nodeVersion.currentVersion()&&l.switchVersion(o))}),c(2),r(),h(3,pi,2,0,"span",73)(4,di,2,0,"span",74),r()}if(t&2){let e=i.$implicit,n=p(3);R("active",e===n.nodeVersion.currentVersion())("clickable",e!==n.nodeVersion.currentVersion()),a(2),y(e),a(),x(e!==n.nodeVersion.currentVersion()?3:4)}}function mi(t,i){if(t&1&&(s(0,"div",36)(1,"span",28),c(2,"\u5DF2\u5B89\u88C5\u7248\u672C"),r(),s(3,"nz-spin",68)(4,"div",69),D(5,ui,5,6,"span",70,Pe),r()()()),t&2){p();let e=v(24),n=p();a(3),g("nzSpinning",n.nodeVersion.switching()),a(2),A(e)}}function gi(t,i){if(t&1&&(s(0,"div",37),d(1,"span",76),c(2),r()),t&2){let e=p(2);a(2),C(" ",e.nodeVersion.error()," ")}}function fi(t,i){if(t&1){let e=z();s(0,"div",20),h(1,Jn,3,1,"div",21),h(2,ai,7,3),s(3,"div",22),d(4,"span",23),s(5,"span"),c(6),r(),s(7,"span",24),c(8),r()(),h(9,ci,12,4,"div",25),s(10,"div",26)(11,"div",27)(12,"span",28),c(13,"\u624B\u52A8\u5B89\u88C5\u547D\u4EE4"),r(),s(14,"span",29),c(15,"\u5982\u81EA\u52A8\u5B89\u88C5\u5931\u8D25\uFF0C\u53EF\u4F7F\u7528\u4EE5\u4E0B\u547D\u4EE4"),r()(),s(16,"div",30)(17,"div",31)(18,"span",32),c(19,"NVM:"),r(),s(20,"code",33),c(21),r(),s(22,"button",34),m("click",function(){f(e);let o=p();return _(o.copyCommand("nvm install "+o.getSuggestedVersion()))}),d(23,"span",35),r()()()(),Te(24),h(25,mi,7,1,"div",36),h(26,gi,3,1,"div",37),r()}if(t&2){let e=p(),n=v(0);a(),x(!e.nodeVersion.hasVersionManager()&&!e.nodeVersion.loading()?1:-1),a(),x(n?2:-1),a(4),C("\u7248\u672C\u7BA1\u7406\u5668: ",e.nodeVersion.manager()==="nvm"?"NVM":e.nodeVersion.manager()==="volta"?"Volta":"\u672A\u68C0\u6D4B\u5230"),a(2),C("\u5F53\u524D: ",e.nodeVersion.currentVersion()||"\u672A\u77E5"),a(),x(e.nodeVersion.hasVersionManager()?9:-1),a(12),C("nvm install ",e.getSuggestedVersion()),a(3);let o=Ee(e.nodeVersion.availableVersions());a(),x(o.length>0?25:-1),a(),x(e.nodeVersion.error()?26:-1)}}var ve=class t{nodeVersion=u(Lt);message=u(At);modal=u(wt);settingsModal=gt("settingsModal");selectedInstallVersion=null;recommendedVersions=[];filteredVersions=[];installing=ye(!1);installMessageId=ye(null);showWriteConfig=!1;writingConfig=!1;selectedEngineVersion=null;customEngineVersion="";recommendedEngineVersions=[];ngOnInit(){this.refresh()}ngOnDestroy(){this.installMessageId()&&this.message.remove(this.installMessageId())}onVersionInput(i){let e=i.target.value.toLowerCase();e?this.filteredVersions=this.recommendedVersions.filter(n=>n.toLowerCase().includes(e)):this.filteredVersions=[...this.recommendedVersions],e&&!e.startsWith("v")?this.selectedInstallVersion="v"+e:this.selectedInstallVersion=e}onVersionSelect(i){this.selectedInstallVersion=i}getEngineConfigPreview(){let i=this.customEngineVersion||this.selectedEngineVersion||"";return i?`{ "engines": { "node": "${i}" } }`:'{ "engines": { "node": "\u8BF7\u9009\u62E9\u6216\u8F93\u5165\u7248\u672C" } }'}openWriteConfig(){let i=this.nodeVersion.projectRequirement();i?.requiredVersion&&i.hasEnginesConfig&&(this.selectedEngineVersion=i.requiredVersion),this.showWriteConfig=!0}closeWriteConfig(){this.showWriteConfig=!1,this.selectedEngineVersion=null,this.customEngineVersion=""}async writeEngineConfig(){let i=this.customEngineVersion||this.selectedEngineVersion;if(!i){this.message.warning("\u8BF7\u9009\u62E9\u6216\u8F93\u5165\u7248\u672C\u53F7");return}this.writingConfig=!0;try{await this.nodeVersion.writeEngineConfig(i)?(this.message.success("\u5DF2\u5199\u5165 engines.node \u914D\u7F6E"),this.showWriteConfig=!1,this.nodeVersion.refresh(),this.updateRecommendedEngineVersions()):this.message.error("\u5199\u5165\u914D\u7F6E\u5931\u8D25")}finally{this.writingConfig=!1}}openSettingsModal(){this.updateRecommendedVersions(),this.modal.create({nzTitle:"Node\u7248\u672C\u8BBE\u7F6E",nzContent:this.settingsModal(),nzFooter:null,nzWidth:500})}getSuggestedVersion(){if(this.selectedInstallVersion)return this.selectedInstallVersion.replace(/^v/,"");let i=this.nodeVersion.projectRequirement();return i?.requiredVersion?i.requiredVersion.replace(/^[\^~>=<]+/,"").split(" ")[0]:"18.20.0"}copyCommand(i){navigator.clipboard.writeText(i).then(()=>{this.message.success("\u547D\u4EE4\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F")}).catch(()=>{this.message.error("\u590D\u5236\u5931\u8D25")})}updateRecommendedVersions(){let i=this.nodeVersion.projectRequirement();this.recommendedVersions=this.nodeVersion.generateRecommendedVersions(i?.requiredVersion||null),this.filteredVersions=[...this.recommendedVersions],this.selectedInstallVersion||(this.selectedInstallVersion=this.recommendedVersions[0]||null)}async installVersion(){if(!this.selectedInstallVersion){this.message.warning("\u8BF7\u5148\u9009\u62E9\u4E00\u4E2A\u7248\u672C");return}this.installing.set(!0);let i=this.selectedInstallVersion;this.installMessageId.set(this.message.loading(`\u6B63\u5728\u5B89\u88C5 ${i}...`,{nzDuration:0}).messageId);let e=!1;try{e=await this.nodeVersion.installVersion(i)}finally{this.installMessageId()&&this.message.remove(this.installMessageId()),this.installing.set(!1)}e?(this.nodeVersion.alreadyInstalled()?this.message.warning(`${i} \u5DF2\u5B89\u88C5`):this.message.success(`${i} \u5B89\u88C5\u6210\u529F`),this.nodeVersion.refresh(),this.selectedInstallVersion=null,this.updateRecommendedVersions()):this.message.error(`${i} \u5B89\u88C5\u5931\u8D25`)}refresh(){return this.nodeVersion.getCurrentVersion(),this.nodeVersion.loadProjectRequirement().then(()=>{this.updateRecommendedEngineVersions()})}updateRecommendedEngineVersions(){let i=this.nodeVersion.projectRequirement();if(i?.requiredVersion){let e=i.requiredVersion;this.recommendedEngineVersions.some(o=>o.value===e)||(this.recommendedEngineVersions=[{label:e+" (\u63A8\u8350)",value:e},...this.recommendedEngineVersions])}}confirmDelete(i,e){e.stopPropagation(),this.modal.confirm({nzTitle:"\u786E\u8BA4\u5220\u9664",nzContent:`\u786E\u5B9A\u8981\u5220\u9664${i} \u7248\u672C\u5417\uFF1F`,nzOkText:"\u5220\u9664",nzOkType:"primary",nzOkDanger:!0,nzCancelText:"\u53D6\u6D88",nzOnOk:()=>this.deleteVersion(i)})}async deleteVersion(i){await this.nodeVersion.deleteVersion(i)?(this.message.success(`${i} \u7248\u672C\u5DF2\u5220\u9664`),this.nodeVersion.refresh()):this.message.error(`\u5220\u9664${i} \u7248\u672C\u5931\u8D25`)}async switchVersion(i){if(i===this.nodeVersion.currentVersion()){this.message.info("\u5F53\u524D\u5DF2\u662F\u8BE5\u7248\u672C");return}await this.nodeVersion.switchVersion(i)&&(this.message.success(`\u5DF2\u5207\u6362\u5230 ${i}`),this.nodeVersion.loadProjectRequirement())}openNvmLearnMorePage(){window.open("https://www.nvmnode.com/","_blank")}openNvmInstallPage(){window.open("https://www.nvmnode.com/guide/download.html","_blank")}getManagerLabel=Ne(()=>this.nodeVersion.projectRequirement()?.voltaConfig?"Volta":"NVM");getManagerColor=Ne(()=>this.nodeVersion.projectRequirement()?.voltaConfig?"orange":"green");static \u0275fac=function(e){return new(e||t)};static \u0275cmp=b({type:t,selectors:[["app-node-version"]],viewQuery:function(e,n){e&1&&lt(n.settingsModal,Wn,5),e&2&&ct()},decls:15,vars:6,consts:[["settingsModal",""],["installNvmTemplate",""],["versionAuto",""],[1,"top-status"],["nzType","proj:node","nzTheme","outline"],[1,"manager-badge"],["nz-button","","nzType","default",3,"click","nzLoading"],["nzType","reload","nzTheme","outline"],["nz-button","","nzType","text","nz-tooltip","","nzTooltipTitle","Node\u7248\u672C\u8BBE\u7F6E",3,"click"],["nzType","setting","nzTheme","outline"],["nz-icon","","nzType","check-circle","nzTheme","fill","nz-tooltip","",2,"color","#52c41a","font-size","14px",3,"nzTooltipTitle"],["nz-icon","","nzType","info-circle","nzTheme","fill","nz-tooltip","","nzTooltipTitle","\u8BE5\u9879\u76EE\u672A\u914D\u7F6E Node \u7248\u672C\u8981\u6C42",2,"color","#1890ff","font-size","14px"],["nz-icon","","nzType","warning","nzTheme","fill","nz-tooltip","",2,"color","#faad14","font-size","14px",3,"nzTooltipTitle"],["nz-icon","","nzType","close-circle","nzTheme","fill","nz-tooltip","",2,"color","#ff4d4f","font-size","14px",3,"nzTooltipTitle"],["nz-button","","nzType","default","nz-popover","","nzPopoverPlacement","bottomRight",3,"nzPopoverTrigger","nzPopoverContent"],["nz-icon","","nzType","download","nzTheme","outline"],[1,"install-popover-content"],[1,"actions"],["nz-button","","nzType","default",3,"click"],["nz-button","","nzType","primary",3,"click"],[1,"modal-content"],[1,"warning-message","full-width"],[1,"manager-info"],["nz-icon","","nzType","database","nzTheme","outline"],[1,"current-version"],[1,"install-section"],[1,"manual-section"],[1,"section-header"],[1,"section-title"],[1,"hint-text"],[1,"command-list"],[1,"command-item"],[1,"command-label"],[1,"command-code"],["nz-button","","nzType","text","nzSize","small","nz-tooltip","","nzTooltipTitle","\u590D\u5236\u547D\u4EE4",3,"click"],["nz-icon","","nzType","copy","nzTheme","outline"],[1,"version-list-section"],[1,"error-message"],["nz-icon","","nzType","warning","nzTheme","outline"],[1,"status-section","success"],[1,"status-section","warning"],[1,"status-section","error"],[1,"status-section","info"],[1,"write-config-section"],[1,"status-info"],[1,"status-title"],[1,"status-desc"],["nz-button","","nzType","primary","nzSize","small","nz-tooltip","","nzTooltipTitle","\u5199\u5165 engines.node \u5230 package.json",3,"click"],["nz-icon","","nzType","edit","nzTheme","outline"],["nz-button","","nzType","default","nzSize","small","nz-tooltip","","nzTooltipTitle","\u4FEE\u6539 engines.node \u914D\u7F6E",3,"click"],["nz-button","","nzType","text","nzSize","small",3,"click"],["nz-icon","","nzType","close","nzTheme","outline"],[1,"config-options"],[1,"option-group"],[1,"option-label"],["nzPlaceHolder","\u9009\u62E9\u63A8\u8350\u7248\u672C",1,"config-select",3,"ngModelChange","ngModel","nzOptions"],["nz-input","","placeholder","\u5982 >=18.0.0",1,"config-input",3,"ngModelChange","ngModel"],[1,"config-preview"],[1,"preview-label"],[1,"preview-code"],[1,"config-actions"],["nz-button","","nzType","primary",3,"click","nzLoading"],["nz-icon","","nzType","save","nzTheme","outline"],[1,"install-row"],["nz-input","","name","selectedInstallVersion","placeholder","\u8F93\u5165\u7248\u672C\u53F7 (\u5982 18.20.0)",1,"version-input",3,"ngModelChange","input","ngModel","nzAutocomplete"],[3,"nzValue"],["nz-button","","nzType","primary","nzSize","small",3,"click","nzLoading","disabled"],[3,"click","nzValue"],[3,"nzSpinning"],[1,"version-list"],[1,"version-tag",3,"active","clickable"],[1,"version-tag"],[1,"version-name",3,"click"],["nz-tooltip","","nzTooltipTitle","\u5220\u9664",1,"delete-btn"],[1,"active-badge"],["nz-tooltip","","nzTooltipTitle","\u5220\u9664",1,"delete-btn",3,"click"],["nz-icon","","nzType","close-circle","nzTheme","outline"]],template:function(e,n){if(e&1){let o=z();Te(0),h(1,Xn,3,1),s(2,"span",3),d(3,"nz-icon",4),c(4),r(),s(5,"span",5),c(6),r(),h(7,Kn,5,2),s(8,"button",6),m("click",function(){return f(o),_(n.refresh())}),d(9,"nz-icon",7),c(10,` \u5237\u65B0
2
- `),r(),s(11,"button",8),m("click",function(){return f(o),_(n.openSettingsModal())}),d(12,"nz-icon",9),r(),w(13,fi,27,9,"ng-template",null,0,j)}if(e&2){let o=Ee(n.nodeVersion.projectRequirement());a(),x(o?1:-1),a(3),C(" ",n.nodeVersion.currentVersion()||"\u68C0\u6D4B\u4E2D...",`
3
- `),a(2),y(n.getManagerLabel()),a(),x(n.nodeVersion.manager()==="none"&&!n.nodeVersion.loading()?7:-1),a(),g("nzLoading",n.nodeVersion.loading())}},dependencies:[E,O,k,N,H,W,ce,Xt,Yt,U,Q,Pt,$,ge,cn,ln,G,je,I,de,ue,me,Z,jt,Ht,Dt,It],styles:["[_nghost-%COMP%]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.top-status[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;background:#f6ffed;border:1px solid #b7eb8f;border-radius:4px;font-size:13px;font-weight:500;color:#52c41a}.manager-badge[_ngcontent-%COMP%]{padding:2px 8px;font-size:11px;font-weight:500;border-radius:3px;background:#e6f7ff;color:#1890ff}.info-message[_ngcontent-%COMP%], .success-message[_ngcontent-%COMP%], .warning-message[_ngcontent-%COMP%], .error-message[_ngcontent-%COMP%]{width:100%;display:flex;align-items:center;gap:8px;font-size:13px;padding:8px 0}.info-message[_ngcontent-%COMP%]{color:#1890ff}.success-message[_ngcontent-%COMP%]{color:#52c41a}.warning-message[_ngcontent-%COMP%]{color:#faad14}.error-message[_ngcontent-%COMP%]{color:#ff4d4f}.muted-text[_ngcontent-%COMP%]{color:#8c8c8c;font-size:13px;margin-right:12px}.version-list-container[_ngcontent-%COMP%]{width:100%;display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:16px 0 4px;border-top:1px solid #f0f0f0;margin-top:12px}.version-tag[_ngcontent-%COMP%]{padding:6px 8px;font-size:13px;border-radius:6px;background:#fafafa;color:#595959;border:1px solid #d9d9d9;transition:all .2s ease;display:inline-flex;align-items:center;gap:4px}.version-tag[_ngcontent-%COMP%] .version-name[_ngcontent-%COMP%]{padding:0 6px}.version-tag.clickable[_ngcontent-%COMP%]{cursor:pointer}.version-tag.clickable[_ngcontent-%COMP%]:hover{background:#e6f7ff;color:#1890ff;border-color:#91d5ff;transform:translateY(-1px);box-shadow:0 2px 4px #1890ff1a}.version-tag.active[_ngcontent-%COMP%]{background:#1890ff;color:#fff;border-color:#1890ff;font-weight:500;box-shadow:0 2px 6px #1890ff33}.version-tag[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]{display:none;padding:2px;border-radius:3px;cursor:pointer;font-size:10px;color:#8c8c8c;transition:all .2s ease}.version-tag[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]:hover{color:#ff4d4f;background:#fff1f0}.version-tag[_ngcontent-%COMP%]:hover .delete-btn[_ngcontent-%COMP%]{display:inline-flex}.clickable[_ngcontent-%COMP%], .cursor-pointer[_ngcontent-%COMP%]{cursor:pointer}.version-list[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.install-section[_ngcontent-%COMP%]{width:100%;display:flex;align-items:center;gap:12px;margin-top:8px;background:#fafafa;border-radius:6px;padding:12px}.install-section[_ngcontent-%COMP%] .muted-text[_ngcontent-%COMP%]{white-space:nowrap;flex-shrink:0}.version-input[_ngcontent-%COMP%]{flex:1;min-width:180px;max-width:240px}.install-section[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{flex-shrink:0}.modal-content[_ngcontent-%COMP%]{padding:8px 0}.section-title[_ngcontent-%COMP%]{font-size:13px;font-weight:500;color:#262626}.status-section[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:12px;padding:12px;border-radius:8px;margin-bottom:12px}.status-section.success[_ngcontent-%COMP%]{background:#f6ffed;border:1px solid #b7eb8f}.status-section.success[_ngcontent-%COMP%] .status-info[_ngcontent-%COMP%] .status-title[_ngcontent-%COMP%]{color:#52c41a}.status-section.warning[_ngcontent-%COMP%]{background:#fffbe6;border:1px solid #ffe58f}.status-section.warning[_ngcontent-%COMP%] .status-info[_ngcontent-%COMP%] .status-title[_ngcontent-%COMP%]{color:#faad14}.status-section.error[_ngcontent-%COMP%]{background:#fff2f0;border:1px solid #ffccc7}.status-section.error[_ngcontent-%COMP%] .status-info[_ngcontent-%COMP%] .status-title[_ngcontent-%COMP%]{color:#ff4d4f}.status-section.info[_ngcontent-%COMP%]{background:#e6f7ff;border:1px solid #91d5ff}.status-section.info[_ngcontent-%COMP%] .status-info[_ngcontent-%COMP%] .status-title[_ngcontent-%COMP%]{color:#1890ff}.status-section[_ngcontent-%COMP%] .status-info[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.status-section[_ngcontent-%COMP%] .status-info[_ngcontent-%COMP%] .status-title[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.status-section[_ngcontent-%COMP%] .status-info[_ngcontent-%COMP%] .status-desc[_ngcontent-%COMP%]{font-size:12px;color:#8c8c8c}.manager-info[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f5f5f5;border-radius:6px;font-size:12px;color:#595959;margin-bottom:12px}.manager-info[_ngcontent-%COMP%] .current-version[_ngcontent-%COMP%]{margin-left:auto;color:#1890ff;font-weight:500}.install-section[_ngcontent-%COMP%]{background:#fafafa;border-radius:8px;padding:12px;margin-bottom:16px}.install-section[_ngcontent-%COMP%] .install-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.install-section[_ngcontent-%COMP%] .version-input[_ngcontent-%COMP%]{flex:1;min-width:160px}.manual-section[_ngcontent-%COMP%]{background:#f5f5f5;border-radius:8px;padding:12px;margin-bottom:16px}.manual-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.manual-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] .hint-text[_ngcontent-%COMP%]{font-size:11px;color:#8c8c8c}.manual-section[_ngcontent-%COMP%] .command-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px}.manual-section[_ngcontent-%COMP%] .command-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;background:#fff;padding:8px 12px;border-radius:6px;border:1px solid #e8e8e8}.manual-section[_ngcontent-%COMP%] .command-item[_ngcontent-%COMP%] .command-label[_ngcontent-%COMP%]{font-size:12px;color:#8c8c8c;width:40px}.manual-section[_ngcontent-%COMP%] .command-item[_ngcontent-%COMP%] .command-code[_ngcontent-%COMP%]{flex:1;font-size:12px;color:#1890ff;background:#e6f7ff;padding:4px 8px;border-radius:4px}.version-list-section[_ngcontent-%COMP%] .section-title[_ngcontent-%COMP%]{margin-bottom:12px}.version-list-section[_ngcontent-%COMP%] .version-list[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:8px}.version-list-section[_ngcontent-%COMP%] .version-tag[_ngcontent-%COMP%]{padding:6px 8px;font-size:13px;border-radius:6px;background:#fafafa;color:#595959;border:1px solid #d9d9d9;transition:all .2s ease;display:inline-flex;align-items:center;gap:6px}.version-list-section[_ngcontent-%COMP%] .version-tag.clickable[_ngcontent-%COMP%]{cursor:pointer}.version-list-section[_ngcontent-%COMP%] .version-tag.clickable[_ngcontent-%COMP%]:hover{background:#e6f7ff;color:#1890ff;border-color:#91d5ff}.version-list-section[_ngcontent-%COMP%] .version-tag.active[_ngcontent-%COMP%]{background:#1890ff;color:#fff;border-color:#1890ff}.version-list-section[_ngcontent-%COMP%] .version-tag[_ngcontent-%COMP%] .version-name[_ngcontent-%COMP%]{padding:0 4px}.version-list-section[_ngcontent-%COMP%] .version-tag[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]{display:none;padding:2px;border-radius:3px;cursor:pointer;color:#8c8c8c}.version-list-section[_ngcontent-%COMP%] .version-tag[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]:hover{color:#ff4d4f;background:#fff1f0}.version-list-section[_ngcontent-%COMP%] .version-tag[_ngcontent-%COMP%] .active-badge[_ngcontent-%COMP%]{font-size:10px;padding:2px 6px;background:#ffffff4d;border-radius:3px}.version-list-section[_ngcontent-%COMP%] .version-tag[_ngcontent-%COMP%]:hover .delete-btn[_ngcontent-%COMP%]{display:inline-flex}.error-message[_ngcontent-%COMP%]{margin-top:12px}.full-width[_ngcontent-%COMP%]{width:100%}.write-config-section[_ngcontent-%COMP%]{background:#f0f5ff;border:1px solid #adc6ff;border-radius:8px;padding:16px;margin-top:12px}.write-config-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.write-config-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] .section-title[_ngcontent-%COMP%]{font-size:14px;font-weight:500;color:#1890ff}.write-config-section[_ngcontent-%COMP%] .config-options[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.write-config-section[_ngcontent-%COMP%] .config-options[_ngcontent-%COMP%] .option-group[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px}.write-config-section[_ngcontent-%COMP%] .config-options[_ngcontent-%COMP%] .option-group[_ngcontent-%COMP%] .option-label[_ngcontent-%COMP%]{font-size:13px;color:#595959;min-width:90px}.write-config-section[_ngcontent-%COMP%] .config-options[_ngcontent-%COMP%] .option-group[_ngcontent-%COMP%] .config-select[_ngcontent-%COMP%], .write-config-section[_ngcontent-%COMP%] .config-options[_ngcontent-%COMP%] .option-group[_ngcontent-%COMP%] .config-input[_ngcontent-%COMP%]{flex:1;max-width:200px}.write-config-section[_ngcontent-%COMP%] .config-preview[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;margin-bottom:12px;padding:8px 12px;background:#fff;border-radius:6px;border:1px solid #e8e8e8}.write-config-section[_ngcontent-%COMP%] .config-preview[_ngcontent-%COMP%] .preview-label[_ngcontent-%COMP%]{font-size:12px;color:#8c8c8c}.write-config-section[_ngcontent-%COMP%] .config-preview[_ngcontent-%COMP%] .preview-code[_ngcontent-%COMP%]{font-size:13px;color:#1890ff;font-family:Monaco,Menlo,monospace}.write-config-section[_ngcontent-%COMP%] .config-actions[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.install-popover-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{font-size:13px;color:#595959;line-height:1.6;margin:0 0 8px}.install-popover-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%]:last-of-type{margin-bottom:12px}.install-popover-content[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{display:flex;gap:8px;justify-content:flex-end}"],changeDetection:0})};var pn=class t{projectContext=u(Bt);taskState=u(fe);selectedTask=this.taskState.selectedRow;constructor(){mt(async()=>{let i=this.projectContext.currentProjectId();i&&await this.taskState.setProject(i)})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=b({type:t,selectors:[["app-tasks"]],decls:9,vars:9,consts:[[3,"title","isFullscreen"],["ngProjectAs","actions",5,["actions"]],[1,"page"],[1,"content"],[3,"name","description","command"],[3,"toggle","restart","isStopping","isRunning","isStartable"],[3,"taskId"]],template:function(e,n){if(e&1&&(s(0,"app-page-layout",0),te(1,1),d(2,"app-node-version"),ne(),s(3,"nz-layout",2),d(4,"app-task-list"),s(5,"nz-content",3),d(6,"app-task-header",4),s(7,"app-task-actions",5),m("toggle",function(){return n.taskState.toggleTask()})("restart",function(){return n.taskState.restartSelected()}),r(),d(8,"app-task-console",6),r()()()),e&2){let o,l,M;g("title","\u4EFB\u52A1")("isFullscreen",!0),a(6),g("name",(o=n.selectedTask())==null||o.spec==null?null:o.spec.name)("description",(l=n.selectedTask())==null||l.spec==null?null:l.spec.description)("command",(M=n.selectedTask())==null||M.spec==null?null:M.spec.command),a(),g("isStopping",n.taskState.isStopping())("isRunning",n.taskState.isRunning())("isStartable",n.taskState.isStartable()),a(),g("taskId",n.taskState.selectedTaskId())}},dependencies:[E,I,q,Z,N,$,Gt,pe,Kt,O,Zt,Ut,Qt,_e,xe,$t,he,Nt,ve],styles:[".page[_ngcontent-%COMP%]{height:100%;display:flex;flex-direction:row;overflow:hidden;gap:16px;padding:0 16px}.content[_ngcontent-%COMP%]{flex:1 1 auto;width:0;display:flex;flex-direction:column;gap:16px;height:100%;overflow:hidden}app-task-header[_ngcontent-%COMP%], app-task-actions[_ngcontent-%COMP%], app-node-version[_ngcontent-%COMP%]{flex:0 0 auto}app-task-console[_ngcontent-%COMP%]{flex:1 1 auto;display:block;height:0}"]})};export{pn as TasksComponent};
@@ -1,34 +0,0 @@
1
- import{b as Bn}from"./chunk-7U44RF5F.js";import{a as Dn,b as En,c as On,d as jn,e as kn,f as W}from"./chunk-ZTDLWBW5.js";import{e as Fe}from"./chunk-6SYVDN5L.js";import{a as Ln,b as Vn}from"./chunk-QJP5F735.js";import{a as yn,b as zn,c as Mn}from"./chunk-WD2EKZQC.js";import{a as In,b as Fn}from"./chunk-HJTXXSMC.js";import{a as ie,b as Sn,c as re,d as Tn,e as Nn,f as U,g as ae,h as ke,i as Ie,j as le}from"./chunk-FXCG34QS.js";import{a as bn,b as Oe}from"./chunk-OSBDR36P.js";import{a as wn,b as Pn}from"./chunk-K7PESFPY.js";import{h as ze,i as Me,k as be,l as Z}from"./chunk-4X42HB6N.js";import{a as Ee,b as xn}from"./chunk-AV2ZODEH.js";import{m as oe,n as je}from"./chunk-2NZJ7CN2.js";import{Fa as un,Fb as xe,Ga as w,Ha as M,Hb as ee,Ia as fn,Ja as gn,L as rt,Lb as te,M as mn,Na as hn,Oa as _n,Pa as F,Qa as X,R as dn,Sa as L,Ta as V,Ua as Cn,Va as vn,Vb as ne,_b as we,a as pn,ac as Pe,cc as Se,dc as Te,gc as Ne,ic as De}from"./chunk-3CM4SKDO.js";import"./chunk-HFZLJHYR.js";import{a as an,b as ye,c as ln,d as sn,e as q,f as K,g as cn,h as I}from"./chunk-WUA5JFDD.js";import{i as ve,l as Xt,m as Zt,n as k,o as en,r as tn,s as nn,x as on,y as rn}from"./chunk-KRYMOHYF.js";import{$b as B,Ab as It,Ac as Ut,Ba as de,Ca as bt,Cc as Wt,Da as xt,Dc as $t,Ec as D,Fb as C,Gb as Ft,Gc as j,Ha as b,Ia as wt,Jc as m,Kc as T,Lb as P,Lc as R,M as Q,Oc as ge,Pc as he,Qb as Lt,Qc as _e,Ra as Pt,Ub as Vt,Vb as Bt,Wb as y,Xa as St,Xc as Gt,Yb as z,Yc as Ce,Zc as nt,_b as At,a as ut,ac as A,ad as ce,b as ft,bc as d,bd as ot,cc as r,cd as it,da as ht,dc as a,dd as J,ec as p,fd as Yt,ic as E,id as N,jc as O,jd as Y,ka as _t,kb as Tt,kc as tt,lc as v,ma as Ct,na as S,nb as s,oa as vt,pd as qt,qa as yt,ra as me,rb as Nt,rc as _,sa as g,sb as Dt,sd as Qt,ta as zt,tb as Et,ua as Mt,uc as c,ud as Jt,vc as ue,wc as fe,xb as Ot,ya as u,yb as jt,yc as Rt,yd as Kt,z as gt,za as f,zb as kt,zc as Ht}from"./chunk-4BRW6LCZ.js";function ao(t){let n=t;return 5}var An=["zh",[["\u4E0A\u5348","\u4E0B\u5348"]],void 0,[["\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"],["\u5468\u65E5","\u5468\u4E00","\u5468\u4E8C","\u5468\u4E09","\u5468\u56DB","\u5468\u4E94","\u5468\u516D"],["\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"],["\u5468\u65E5","\u5468\u4E00","\u5468\u4E8C","\u5468\u4E09","\u5468\u56DB","\u5468\u4E94","\u5468\u516D"]],void 0,[["1","2","3","4","5","6","7","8","9","10","11","12"],["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"]],void 0,[["\u516C\u5143\u524D","\u516C\u5143"]],0,[6,0],["y/M/d","y\u5E74M\u6708d\u65E5",void 0,"y\u5E74M\u6708d\u65E5EEEE"],["HH:mm","HH:mm:ss","z HH:mm:ss","zzzz HH:mm:ss"],["{1} {0}",void 0,void 0,void 0],[".",",",";","%","+","-","E","\xD7","\u2030","\u221E","NaN",":"],["#,##0.###","#,##0%","\xA4#,##0.00","#E0"],"CNY","\xA5","\u4EBA\u6C11\u5E01",{AUD:["AU$","$"],BYN:[void 0,"\u0440."],CNY:["\xA5"],ILR:["ILS"],JPY:["JP\xA5","\xA5"],KRW:["\uFFE6","\u20A9"],PHP:[void 0,"\u20B1"],RUR:[void 0,"\u0440."],TWD:["NT$"],USD:["US$","$"],XXX:[]},"ltr",ao];var lo="@",so=(()=>{class t{doc;delegate;zone;animationType;moduleImpl;_rendererFactoryPromise=null;scheduler=null;injector=g(de);loadingSchedulerFn=g(co,{optional:!0});_engine;constructor(e,o,i,l,h){this.doc=e,this.delegate=o,this.zone=i,this.animationType=l,this.moduleImpl=h}ngOnDestroy(){this._engine?.flush()}loadImpl(){let e=()=>this.moduleImpl??import("./chunk-3I7BQCXS.js").then(i=>i),o;return this.loadingSchedulerFn?o=this.loadingSchedulerFn(e):o=e(),o.catch(i=>{throw new _t(5300,!1)}).then(({\u0275createEngine:i,\u0275AnimationRendererFactory:l})=>{this._engine=i(this.animationType,this.doc);let h=new l(this.delegate,this._engine,this.zone);return this.delegate=h,h})}createRenderer(e,o){let i=this.delegate.createRenderer(e,o);if(i.\u0275type===0)return i;typeof i.throwOnSyntheticProps=="boolean"&&(i.throwOnSyntheticProps=!1);let l=new at(i);return o?.data?.animation&&!this._rendererFactoryPromise&&(this._rendererFactoryPromise=this.loadImpl()),this._rendererFactoryPromise?.then(h=>{let G=h.createRenderer(e,o);l.use(G),this.scheduler??=this.injector.get(wt,null,{optional:!0}),this.scheduler?.notify(10)}).catch(h=>{l.use(i)}),l}begin(){this.delegate.begin?.()}end(){this.delegate.end?.()}whenRenderingDone(){return this.delegate.whenRenderingDone?.()??Promise.resolve()}componentReplaced(e){this._engine?.flush(),this.delegate.componentReplaced?.(e)}static \u0275fac=function(o){It()};static \u0275prov=S({token:t,factory:t.\u0275fac})}return t})(),at=class{delegate;replay=[];\u0275type=1;constructor(n){this.delegate=n}use(n){if(this.delegate=n,this.replay!==null){for(let e of this.replay)e(n);this.replay=null}}get data(){return this.delegate.data}destroy(){this.replay=null,this.delegate.destroy()}createElement(n,e){return this.delegate.createElement(n,e)}createComment(n){return this.delegate.createComment(n)}createText(n){return this.delegate.createText(n)}get destroyNode(){return this.delegate.destroyNode}appendChild(n,e){this.delegate.appendChild(n,e)}insertBefore(n,e,o,i){this.delegate.insertBefore(n,e,o,i)}removeChild(n,e,o,i){this.delegate.removeChild(n,e,o,i)}selectRootElement(n,e){return this.delegate.selectRootElement(n,e)}parentNode(n){return this.delegate.parentNode(n)}nextSibling(n){return this.delegate.nextSibling(n)}setAttribute(n,e,o,i){this.delegate.setAttribute(n,e,o,i)}removeAttribute(n,e,o){this.delegate.removeAttribute(n,e,o)}addClass(n,e){this.delegate.addClass(n,e)}removeClass(n,e){this.delegate.removeClass(n,e)}setStyle(n,e,o,i){this.delegate.setStyle(n,e,o,i)}removeStyle(n,e,o){this.delegate.removeStyle(n,e,o)}setProperty(n,e,o){this.shouldReplay(e)&&this.replay.push(i=>i.setProperty(n,e,o)),this.delegate.setProperty(n,e,o)}setValue(n,e){this.delegate.setValue(n,e)}listen(n,e,o,i){return this.shouldReplay(e)&&this.replay.push(l=>l.listen(n,e,o,i)),this.delegate.listen(n,e,o,i)}shouldReplay(n){return this.replay!==null&&n.startsWith(lo)}},co=new yt("");function Rn(t="animations"){return Nt("NgAsyncAnimations"),zt([{provide:Ot,useFactory:(n,e,o)=>new so(n,e,o,t),deps:[bt,tn,Et]},{provide:St,useValue:t==="noop"?"NoopAnimations":"BrowserAnimations"}])}var Le=class t{currentTheme="default";constructor(){}reverseTheme(n){return n==="dark"?"default":"dark"}removeUnusedTheme(n){document.documentElement.classList.remove(n);let e=document.getElementById(n);e&&document.head.removeChild(e)}loadCss(n,e){return new Promise((o,i)=>{let l=document.createElement("link");l.rel="stylesheet",l.href=n,l.id=e,l.onload=o,l.onerror=i,document.head.append(l)})}loadTheme(n=!0){let e=this.currentTheme;return n&&document.documentElement.classList.add(e),new Promise((o,i)=>{this.loadCss(`${e}.css`,e).then(l=>{n||document.documentElement.classList.add(e),this.removeUnusedTheme(this.reverseTheme(e)),o(l)},l=>i(l))})}toggleTheme(){return this.currentTheme=this.reverseTheme(this.currentTheme),this.loadTheme(!1)}static \u0275fac=function(e){return new(e||t)};static \u0275prov=S({token:t,factory:t.\u0275fac,providedIn:"root"})};var Hn={provide:Lt,useFactory:t=>()=>t.loadTheme(),deps:[Le],multi:!0};var Un=[{path:"",redirectTo:"dashboard",pathMatch:"full"},{path:"dashboard",loadChildren:()=>import("./chunk-D2ODDESN.js").then(t=>t.DashboardModule)},{path:"tasks",loadChildren:()=>import("./chunk-M4QRBV3K.js").then(t=>t.TasksModule)},{path:"projects",loadChildren:()=>import("./chunk-H5HGMOE6.js").then(t=>t.ProjectsModule)},{path:"settings",loadChildren:()=>import("./chunk-H2USFIYR.js").then(t=>t.SettingModule)},{path:"configuration",loadChildren:()=>import("./chunk-5DYX4DUX.js").then(t=>t.ConfigurationModule)},{path:"dependencies",loadChildren:()=>import("./chunk-3OHBKMAA.js").then(t=>t.DependenciesModule)},{path:"rquest",loadChildren:()=>import("./chunk-HB3HECPD.js").then(t=>t.ApiClientModule)},{path:"sprite",loadChildren:()=>import("./chunk-B3C35ET3.js").then(t=>t.SpriteModule)},{path:"rd",loadChildren:()=>import("./chunk-CN5J4WNO.js").then(t=>t.RdModule)},{path:"issues",loadChildren:()=>import("./chunk-FK6Z4HLL.js").then(t=>t.IssuesModule)},{path:"nginx",loadComponent:()=>import("./chunk-N2PELLMM.js").then(t=>t.NginxComponent)},{path:"about",loadChildren:()=>import("./chunk-BTQIUVTQ.js").then(t=>t.AboutRoutingModule)},{path:"**",redirectTo:"dashboard"}];en(An);var Wn={providers:[Hn,Yt(),cn(Un),vn(Cn),Rn(),on(rn([xn])),Mt(Z),Bn()]};var lt=["*"];function po(t,n){}function mo(t,n){if(t&1&&(r(0,"span",1),P(1,po,0,0,"ng-template",2),p(2,"nz-icon",3),a()),t&2){let e=c(),o=D(4);d("nzDropdownMenu",e.nzOverlay),s(),d("ngTemplateOutlet",o)}}function uo(t,n){}function fo(t,n){if(t&1&&P(0,uo,0,0,"ng-template",2),t&2){c();let e=D(4);d("ngTemplateOutlet",e)}}function go(t,n){if(t&1&&(E(0),m(1),O()),t&2){let e=c(2);s(),R(" ",e.nzBreadCrumbComponent.nzSeparator," ")}}function ho(t,n){if(t&1&&(r(0,"nz-breadcrumb-separator"),P(1,go,2,1,"ng-container",4),a()),t&2){let e=c();s(),d("nzStringTemplateOutlet",e.nzBreadCrumbComponent.nzSeparator)}}function _o(t,n){t&1&&(r(0,"span",5),fe(1),a())}var Co=(t,n)=>n.url;function vo(t,n){if(t&1){let e=v();r(0,"nz-breadcrumb-item")(1,"a",0),_("click",function(i){let l=u(e).$implicit,h=c(2);return f(h.navigate(l.url,i))}),m(2),a()()}if(t&2){let e=n.$implicit;s(),Vt("href",e.url,Tt),s(),T(e.label)}}function yo(t,n){if(t&1&&B(0,vo,3,2,"nz-breadcrumb-item",null,Co),t&2){let e=c();A(e.breadcrumbs)}}var Ve=class{},zo=(()=>{class t{static \u0275fac=function(o){return new(o||t)};static \u0275cmp=C({type:t,selectors:[["nz-breadcrumb-separator"]],hostAttrs:[1,"ant-breadcrumb-separator"],exportAs:["nzBreadcrumbSeparator"],ngContentSelectors:lt,decls:1,vars:0,template:function(o,i){o&1&&(ue(),fe(0))},encapsulation:2})}return t})(),Gn=(()=>{class t{nzBreadCrumbComponent=g(Ve);nzOverlay;static \u0275fac=function(o){return new(o||t)};static \u0275cmp=C({type:t,selectors:[["nz-breadcrumb-item"]],inputs:{nzOverlay:"nzOverlay"},exportAs:["nzBreadcrumbItem"],ngContentSelectors:lt,decls:5,vars:2,consts:[["noMenuTpl",""],["nz-dropdown","",1,"ant-breadcrumb-overlay-link",3,"nzDropdownMenu"],[3,"ngTemplateOutlet"],["nzType","down"],[4,"nzStringTemplateOutlet"],[1,"ant-breadcrumb-link"]],template:function(o,i){o&1&&(ue(),y(0,mo,3,2,"span",1)(1,fo,1,1,null,2),y(2,ho,2,1,"nz-breadcrumb-separator"),P(3,_o,2,0,"ng-template",null,0,J)),o&2&&(z(i.nzOverlay?0:1),s(2),z(i.nzBreadCrumbComponent.nzSeparator?2:-1))},dependencies:[ve,zo,le,ae,M,w,gn,fn],encapsulation:2,changeDetection:0})}return t})(),Mo=(()=>{class t{injector=g(de);cdr=g(Jt);elementRef=g(Pt);renderer=g(jt);directionality=g(pn);destroyRef=g(xt);nzAutoGenerate=!1;nzSeparator="/";nzRouteLabel="breadcrumb";nzRouteLabelFn=e=>e;nzRouteFn=e=>e;breadcrumbs=[];dir="ltr";ngOnInit(){this.nzAutoGenerate&&this.registerRouterChange(),this.directionality.change?.pipe(rt(this.destroyRef)).subscribe(e=>{this.dir=e,this.prepareComponentForRtl(),this.cdr.detectChanges()}),this.dir=this.directionality.value,this.prepareComponentForRtl()}navigate(e,o){o.preventDefault(),this.injector.get(q).navigateByUrl(e)}registerRouterChange(){try{let e=this.injector.get(q),o=this.injector.get(ln);e.events.pipe(Q(i=>i instanceof ye),rt(this.destroyRef),ht(!0)).subscribe(()=>{this.breadcrumbs=this.getBreadcrumbs(o.root),this.cdr.markForCheck()})}catch{throw new Error(`${dn} You should import RouterModule if you want to use 'NzAutoGenerate'.`)}}getBreadcrumbs(e,o="",i=[]){let l=e.children;if(l.length===0)return i;for(let h of l)if(h.outlet===an){let G=h.snapshot.url.map(se=>se.path).filter(se=>se).join("/"),mt=G?`${o}/${G}`:o,dt=this.nzRouteLabelFn(h.snapshot.data[this.nzRouteLabel]),ro=this.nzRouteFn(mt);if(G&&dt){let se={label:dt,params:h.snapshot.params,url:ro};i.push(se)}return this.getBreadcrumbs(h,mt,i)}return i}prepareComponentForRtl(){this.dir==="rtl"?this.renderer.addClass(this.elementRef.nativeElement,"ant-breadcrumb-rtl"):this.renderer.removeClass(this.elementRef.nativeElement,"ant-breadcrumb-rtl")}static \u0275fac=function(o){return new(o||t)};static \u0275cmp=C({type:t,selectors:[["nz-breadcrumb"]],hostAttrs:[1,"ant-breadcrumb"],inputs:{nzAutoGenerate:[2,"nzAutoGenerate","nzAutoGenerate",Kt],nzSeparator:"nzSeparator",nzRouteLabel:"nzRouteLabel",nzRouteLabelFn:"nzRouteLabelFn",nzRouteFn:"nzRouteFn"},exportAs:["nzBreadcrumb"],features:[Gt([{provide:Ve,useExisting:Ct(()=>t)}])],ngContentSelectors:lt,decls:2,vars:1,consts:[[3,"click"]],template:function(o,i){o&1&&(ue(),fe(0),y(1,yo,2,0)),o&2&&(s(),z(i.nzAutoGenerate&&i.breadcrumbs.length?1:-1))},dependencies:[Gn],encapsulation:2,changeDetection:0})}return t})(),Yn=(()=>{class t{static \u0275fac=function(o){return new(o||t)};static \u0275mod=Ft({type:t});static \u0275inj=vt({imports:[Mo,Gn]})}return t})();function bo(t){return t.op==="syslog.tail"}function xo(t){return t.op==="syslog.append"}function st(t,n){return n?!(n.scope!==void 0&&t?.scope!==n.scope||n.level!==void 0&&t?.level!==n.level||n.source!==void 0&&t?.source!==n.source||n.refId!==void 0&&t?.refId!==n.refId):!0}var Be=class t{constructor(n){this.ws=n;this.msgSub=this.ws.messages().pipe(Q(e=>bo(e)||xo(e))).subscribe(e=>this.onWsMessage(e)),this.wsStateSub=this.ws.stateChanges().subscribe(e=>{let o=this.lastWsState==="open",i=e==="open";!o&&i&&(this.subSentForCurrentConnection=!1,this.sendSubIfNeeded()),o&&!i&&(this.subSentForCurrentConnection=!1),this.lastWsState=e})}msgSub;wsStateSub;enabled=b(!1);filter=b({});logs=b([]);unread=b(0);drawerOpen=b(!1);capacity=2e3;tail=300;subSentForCurrentConnection=!1;lastWsState="idle";setDrawerOpen(n){this.drawerOpen.set(n),n&&this.unread.set(0)}setFilter(n){this.filter.set(n??{});let e=this.logs();if(!e.length)return;let o=e.filter(i=>st(i,this.filter()));this.logs.set(o.slice(-this.capacity))}enable(n=300){let e=Math.max(0,Math.min(5e3,n|0));if(this.tail=e,this.enabled()){this.ws.isOpen()&&(this.subSentForCurrentConnection=!1,this.sendSubIfNeeded());return}this.enabled.set(!0),this.ws.connect(),this.sendSubIfNeeded()}disable(){this.enabled.set(!1),this.subSentForCurrentConnection=!1}markRead(){this.unread.set(0)}clear(){this.logs.set([]),this.unread.set(0)}appendLocal(n,e="info",o="server"){let i={ts:Date.now(),level:e,source:"system",scope:o,text:n},l=this.logs(),h=l.length>=this.capacity?l.slice(1):l.slice();h.push(i),this.logs.set(h),this.drawerOpen()||this.unread.set(this.unread()+1)}sendSubIfNeeded(){this.enabled()&&this.ws.isOpen()&&(this.subSentForCurrentConnection||(this.ws.send({op:"sub",topic:"syslog",tail:this.tail}),this.subSentForCurrentConnection=!0))}onWsMessage(n){let e=this.filter();if(n.op==="syslog.tail"){let h=(n.entries??[]).filter(G=>st(G,e));this.logs.set(h.slice(-this.capacity));return}let o=n.entry;if(!st(o,e))return;let i=this.logs(),l=i.length>=this.capacity?i.slice(1):i.slice();l.push(o),this.logs.set(l),this.drawerOpen()||this.unread.set(this.unread()+1)}static \u0275fac=function(e){return new(e||t)(me(Ee))};static \u0275prov=S({token:t,factory:t.\u0275fac,providedIn:"root"})};var Po=["logBox"],So=()=>({padding:"0px",overflow:"hidden"});function To(t,n){if(t&1&&(r(0,"nz-tag",15),m(1),ce(2,"uppercase"),a(),r(3,"div",16),m(4),a(),r(5,"div",17),m(6),ce(7,"date"),a()),t&2){let e,o,i,l,h=c();d("nzColor",h.getColor((e=h.lastLine())==null?null:e.level)),s(),R(" ",ot(2,4,(o=h.lastLine())==null?null:o.level)," "),s(3),T((i=h.lastLine())==null?null:i.text),s(2),T(it(7,6,(l=h.lastLine())==null?null:l.ts,"yyyy-MM-dd HH:mm:ss"))}}function No(t,n){t&1&&(r(0,"nz-tag",18),m(1,"INFO"),a(),r(2,"div",16),m(3,"\u6682\u65E0\u65E5\u5FD7"),a(),r(4,"div",17),m(5,"--"),a())}function Do(t,n){if(t&1&&m(0),t&2){let e=c().$implicit;R(" ",e.data==null?null:e.data.icon," ")}}function Eo(t,n){if(t&1&&(r(0,"div",21)(1,"nz-tag",15),m(2),ce(3,"uppercase"),a(),r(4,"span",17),m(5),ce(6,"date"),a(),r(7,"span",22),y(8,Do,1,1),m(9),a()()),t&2){let e=n.$implicit,o=c(2);j("err",e.level==="error")("warn",e.level==="warn")("info",e.level==="info")("debug",e.level==="debug")("success",e.level==="success"),s(),d("nzColor",o.getColor(e.level)),s(),R(" ",ot(3,15,e.level)," "),s(3),T(it(6,17,e.ts,"yyyy-MM-dd HH:mm:ss")),s(3),z(e.data!=null&&e.data.icon?8:-1),s(),R(" ",e.text," ")}}function Oo(t,n){if(t&1&&(E(0),r(1,"div",19,1),B(3,Eo,10,20,"div",20,Bt().trackByLine,!0),a(),O()),t&2){let e=c();s(3),A(e.lines())}}function jo(t,n){if(t&1){let e=v();r(0,"nz-space",23)(1,"button",24),_("click",function(){u(e);let i=c();return f(i.clearLog())}),p(2,"nz-icon",25),a(),r(3,"button",26),_("click",function(){u(e);let i=c();return f(i.toBottom())}),p(4,"nz-icon",27),a()()}}var Ae=class t{sysLogStream=g(Be);projectContext=g(oe);logBox=qt("logBox");autoFollow=b(!0);isOpen=b(!1);curProjectPath=N(()=>this.projectContext.currentProject()?.root||"");lines=N(()=>this.sysLogStream.logs());lastLine=N(()=>{let n=this.sysLogStream.logs();return n.length?n[n.length-1]:null});unread=N(()=>this.sysLogStream.unread());constructor(){Y(()=>{this.sysLogStream.setDrawerOpen(this.isOpen()),this.isOpen()&&queueMicrotask(()=>this.toBottom())}),Y(()=>{this.lines(),this.isOpen()&&this.autoFollow()&&queueMicrotask(()=>this.toBottom())})}ngOnInit(){this.sysLogStream.enable(300)}openLog(){this.isOpen.set(!0)}closeLog(){this.isOpen.set(!1)}clearLog(){this.sysLogStream.clear()}toBottom(){let n=this.logBox()?.nativeElement;n&&(n.scrollTop=n.scrollHeight)}trackByLine=(n,e)=>`${e.ts}-${e.refId??""}-${e.text}`;getColor(n){if(!n)return"#000000";switch(n){case"success":return"#22c55e";case"info":return"#18bdfd";case"debug":return"#94a3b8";case"error":return"#ef4444";case"warn":return"#f59e0b";default:return"#000000"}}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=C({type:t,selectors:[["app-system-log"]],viewQuery:function(e,o){e&1&&Wt(o.logBox,Po,5),e&2&&$t()},decls:19,vars:10,consts:[["extra",""],["logBox",""],[1,"status-bar"],[1,"project-path"],["nz-button","","nzType","text","routerLink","/projects","nz-tooltip","\u9879\u76EE\u7BA1\u7406","nzTooltipPlacement","top",1,"home"],["nzType","home","nzTheme","outline",1,"icon"],["nz-button","","nzType","text","nzTooltipPlacement","top",1,"path",3,"nz-tooltip"],["nzType","folder","nzTheme","outline",1,"icon"],["nz-tooltip","\u6253\u5F00\u65E5\u5FD7",1,"last-log",3,"click"],["nzType","profile","nzTheme","outline",1,"icon"],[1,"actions"],["nz-button","","nzType","link","routerLink","/about/feedback","nzTooltipPlacement","top","nz-tooltip","\u53CD\u9988\u4E0E\u5E2E\u52A9"],["nzType","bug","nzTheme","outline"],["nzTitle","\u65E5\u5FD7","nzPlacement","bottom",3,"nzOnClose","nzVisible","nzMaskClosable","nzMask","nzExtra","nzHeight","nzBodyStyle"],[4,"nzDrawerContent"],[1,"level-tag",3,"nzColor"],[1,"info"],[1,"time"],["nzColor","default"],[1,"log"],[1,"line",3,"err","warn","info","debug","success"],[1,"line"],[1,"msg"],["nzAlign","center"],["nz-button","","nzType","text","nz-tooltip","\u6E05\u7A7A\u65E5\u5FD7",3,"click"],["nzType","clear","nzTheme","outline"],["nz-button","","nzType","text","nz-tooltip","\u6EDA\u52A8\u5230\u5E95\u90E8",3,"click"],["nzType","vertical-align-bottom","nzTheme","outline"]],template:function(e,o){if(e&1){let i=v();r(0,"div",2)(1,"div",3)(2,"a",4),p(3,"nz-icon",5),a(),r(4,"button",6),p(5,"nz-icon",7),r(6,"span"),m(7),a()()(),r(8,"div",8),_("click",function(){return u(i),f(o.openLog())}),p(9,"nz-icon",9),y(10,To,8,9)(11,No,6,0),a(),r(12,"div",10)(13,"a",11),p(14,"nz-icon",12),a()()(),r(15,"nz-drawer",13),_("nzOnClose",function(){return u(i),f(o.closeLog())}),P(16,Oo,5,0,"ng-container",14),a(),P(17,jo,5,0,"ng-template",null,0,J)}if(e&2){let i=D(18);s(4),d("nz-tooltip",o.curProjectPath()),s(3),T(o.curProjectPath()),s(3),z(o.lastLine()?10:11),s(5),d("nzVisible",o.isOpen())("nzMaskClosable",!1)("nzMask",!1)("nzExtra",i)("nzHeight",300)("nzBodyStyle",Ce(9,So))}},dependencies:[k,Fn,In,Mn,zn,yn,V,L,F,_n,hn,M,w,De,Ne,I,K,Xt,Zt],styles:["[_nghost-%COMP%]{display:block;position:relative;z-index:3;flex:0 0 auto}.status-bar[_ngcontent-%COMP%]{height:32px;display:flex;align-items:center;width:100%;-webkit-user-select:none;user-select:none}.status-bar[_ngcontent-%COMP%] .project-path[_ngcontent-%COMP%]{flex:0 0 auto;display:flex;align-items:center;padding:0 8px;gap:4px}.status-bar[_ngcontent-%COMP%] .project-path[_ngcontent-%COMP%] .home[_ngcontent-%COMP%], .status-bar[_ngcontent-%COMP%] .project-path[_ngcontent-%COMP%] .path[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:0;max-width:360px}.status-bar[_ngcontent-%COMP%] .project-path[_ngcontent-%COMP%] .home[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .status-bar[_ngcontent-%COMP%] .project-path[_ngcontent-%COMP%] .path[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.status-bar[_ngcontent-%COMP%] .project-path[_ngcontent-%COMP%] .home[_ngcontent-%COMP%]{justify-content:center}.status-bar[_ngcontent-%COMP%] .project-path[_ngcontent-%COMP%] .path[_ngcontent-%COMP%]{min-width:240px;justify-content:flex-start}.status-bar[_ngcontent-%COMP%] .last-log[_ngcontent-%COMP%]{cursor:pointer;flex:1;display:flex;align-items:center;padding:0 12px;gap:8px;width:0}.status-bar[_ngcontent-%COMP%] .last-log[_ngcontent-%COMP%] .info[_ngcontent-%COMP%]{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.status-bar[_ngcontent-%COMP%] .last-log[_ngcontent-%COMP%] .time[_ngcontent-%COMP%]{flex:0 0 auto;opacity:.75;font-size:14px}.status-bar[_ngcontent-%COMP%] .last-log[_ngcontent-%COMP%]:hover{background:#f5f7fa}.icon[_ngcontent-%COMP%]{margin-right:8px;font-size:18px;display:inline-flex}.log[_ngcontent-%COMP%]{height:100%;overflow:auto;padding:8px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:14px;line-height:18px}.line[_ngcontent-%COMP%]{display:flex;gap:12px;padding:2px 0;align-items:center}.line[_ngcontent-%COMP%] .time[_ngcontent-%COMP%]{flex:0 0 auto;opacity:.65;font-variant-numeric:tabular-nums}.line[_ngcontent-%COMP%] .msg[_ngcontent-%COMP%]{flex:1 1 auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.line.err[_ngcontent-%COMP%] .msg[_ngcontent-%COMP%]{font-weight:600}.line.warn[_ngcontent-%COMP%] .msg[_ngcontent-%COMP%]{font-weight:500}.level-tag[_ngcontent-%COMP%]{font-size:12px;padding:0 4px;line-height:1.5;display:inline-flex;align-items:center;justify-content:center;min-width:58px;border-radius:4px}"],changeDetection:0})};var Ue=class t{static \u0275fac=function(e){return new(e||t)};static \u0275cmp=C({type:t,selectors:[["ngm-footer"]],decls:2,vars:0,template:function(e,o){e&1&&(r(0,"nz-footer"),p(1,"app-system-log"),a())},dependencies:[W,En,Ae],styles:["nz-footer[_ngcontent-%COMP%]{padding:0;align-items:center;display:flex}app-system-log[_ngcontent-%COMP%]{width:100%}"]})};var We=class t{static \u0275fac=function(e){return new(e||t)};static \u0275cmp=C({type:t,selectors:[["ngm-header"]],decls:4,vars:0,consts:[[1,"app-header"],["nzType","disconnect","nzTheme","outline"]],template:function(e,o){e&1&&(r(0,"nz-header",0),p(1,"nz-icon",1),r(2,"span"),m(3,"\u8FDE\u63A5\u5DF2\u65AD\u5F00"),a()())},dependencies:[k,W,On,M,w],styles:["nz-header.app-header[_ngcontent-%COMP%]{padding:0;width:100%;position:relative;height:48px;line-height:48px;background:var(--header-error-background);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;gap:8px}"],changeDetection:0})};var $e=class t{isCollapsed=b(!1);static \u0275fac=function(e){return new(e||t)};static \u0275prov=S({token:t,factory:t.\u0275fac,providedIn:"root"})};var Ge=class t{projectContext=g(oe);currentMenu=b(null);router=g(q);isHubProjectValid=this.projectContext.isHubProjectValid;menus=b([{title:"\u4EEA\u8868\u76D8",path:"/dashboard",icon:"dashboard",level:1},{title:"\u4F9D\u8D56",path:"/dependencies",icon:"codepen",level:1},{title:"\u4EFB\u52A1",path:"/tasks",icon:"schedule",level:1,taskCountBadge:!0},{title:"\u914D\u7F6E",path:"/configuration",icon:"setting",level:1},{title:"API",path:"/rquest",icon:"api",level:1},{title:"Nginx",path:"/nginx",icon:"deployment-unit",level:1},{title:"\u96EA\u78A7\u56FE",path:"/sprite",icon:"smile",level:1},{title:"\u7814\u53D1\u7BA1\u7406",path:"/rd",icon:"rocket",level:1,hidden:!0},{title:"\u6D4B\u8BD5\u8DDF\u8E2A",path:"/issues",icon:"bug",level:1,hidden:!0}]);currentMenus=N(()=>this.menus());constructor(){this.syncByUrl(this.router.url),this.router.events.pipe(Q(n=>n instanceof ye)).subscribe(n=>this.syncByUrl(n.urlAfterRedirects)),Y(n=>{let e=this.isHubProjectValid();this.menus.update(o=>o.map(i=>i.path&&(i.path.includes("/rd")||i.path.includes("/issues"))?ft(ut({},i),{hidden:!e}):i)),n(()=>{})})}isActive(n){return this.router.isActive(n,{paths:"subset",queryParams:"ignored",fragment:"ignored",matrixParams:"ignored"})}clickMenu(n){n.path&&this.router.navigateByUrl(n.path),this.currentMenu.set(n)}syncByUrl(n){let e=this.normalizeUrl(n),o=this.findBestMatch(this.menus(),e);this.currentMenu.set(o)}normalizeUrl(n){return n.split("?")[0].split("#")[0]}findBestMatch(n,e){let o=this.flatten(n).filter(l=>!!l.path),i=null;for(let l of o){let h=l.path;(e===h||e.startsWith(h+"/"))&&(!i||h.length>i.path.length)&&(i=l)}return i}flatten(n){let e=[];for(let o of n)e.push(o),o.children?.length&&e.push(...this.flatten(o.children));return e}static \u0275fac=function(e){return new(e||t)};static \u0275prov=S({token:t,factory:t.\u0275fac,providedIn:"root"})};var Ye=class t{api=g(bn);runtimeStore=g(Oe);async initActiveSnapshot(){let n=await gt(this.api.active());for(let e of n??[])this.runtimeStore.setRuntime(e)}static \u0275fac=function(e){return new(e||t)};static \u0275prov=S({token:t,factory:t.\u0275fac,providedIn:"root"})};var Qn=t=>({$implicit:t});function ko(t,n){t&1&&tt(0)}function Io(t,n){if(t&1&&p(0,"nz-icon",6),t&2){let e=c(3).$implicit;d("nzType",e.icon)}}function Fo(t,n){t&1&&p(0,"nz-badge",7)}function Lo(t,n){if(t&1){let e=v();r(0,"li",5),_("click",function(){u(e);let i=c(2).$implicit,l=c(2);return f(l.menuService.clickMenu(i))}),y(1,Io,1,1,"nz-icon",6),r(2,"span"),m(3),a(),y(4,Fo,1,0,"nz-badge",7),a()}if(t&2){let e=c(2).$implicit,o=c(2);d("nzPaddingLeft",e.level*24)("nzDisabled",e.disabled)("nzSelected",o.menuService.isActive(e.path))("nz-tooltip",e.taskCountBadge===!0&&o.runningTaskCount()>0?o.runningTaskCount()+"\u4E2A\u4EFB\u52A1\u6B63\u5728\u8FD0\u884C":null),s(),z(e.icon?1:-1),s(2),T(e.title),s(),z(e.taskCountBadge===!0&&o.runningTaskCount()>0?4:-1)}}function Vo(t,n){t&1&&tt(0)}function Bo(t,n){if(t&1&&(r(0,"li",4)(1,"ul"),P(2,Vo,1,0,"ng-container",2),a()()),t&2){let e=c(2).$implicit;c(2);let o=D(3);d("nzPaddingLeft",e.level*24)("nzOpen",e.open)("nzTitle",e.title)("nzIcon",e.icon)("nzDisabled",e.disabled),s(2),d("ngTemplateOutlet",o)("ngTemplateOutletContext",nt(7,Qn,e.children))}}function Ao(t,n){if(t&1&&y(0,Lo,5,7,"li",3)(1,Bo,3,9,"li",4),t&2){let e=c().$implicit;z(e.children?1:0)}}function Ro(t,n){if(t&1&&y(0,Ao,2,1),t&2){let e=n.$implicit;z(e!=null&&e.hidden?-1:0)}}function Ho(t,n){if(t&1&&B(0,Ro,1,1,null,null,At),t&2){let e=n.$implicit;A(e())}}var qe=class t{isCollapsed=!1;menuService=g(Ge);taskBootstrap=g(Ye);runtimeStore=g(Oe);menus=this.menuService.currentMenus;runningTaskCount=N(()=>this.runtimeStore.totalRunningCountSignal()());ngOnInit(){this.taskBootstrap.initActiveSnapshot()}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=C({type:t,selectors:[["ngm-menu"]],inputs:{isCollapsed:"isCollapsed"},decls:4,vars:5,consts:[["menuTpl",""],["nz-menu","","nzMode","inline",3,"nzInlineCollapsed"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["nz-menu-item","","nzTooltipPlacement","right",3,"nzPaddingLeft","nzDisabled","nzSelected","nz-tooltip"],["nz-submenu","",3,"nzPaddingLeft","nzOpen","nzTitle","nzIcon","nzDisabled"],["nz-menu-item","","nzTooltipPlacement","right",3,"click","nzPaddingLeft","nzDisabled","nzSelected","nz-tooltip"],["nzTheme","outline",2,"font-size","18px",3,"nzType"],["nzStatus","processing",2,"margin-left","12px"]],template:function(e,o){if(e&1&&(r(0,"ul",1),P(1,ko,1,0,"ng-container",2)(2,Ho,2,0,"ng-template",null,0,J),a()),e&2){let i=D(3);d("nzInlineCollapsed",o.isCollapsed),s(),d("ngTemplateOutlet",i)("ngTemplateOutletContext",nt(3,Qn,o.menus))}},dependencies:[ve,U,re,ie,Sn,M,w,I,De,Ne,Pn,wn],encapsulation:2})};function $o(t,n){if(t&1){let e=v();r(0,"div",3)(1,"label",4),m(2,"\u540D\u79F0"),a(),r(3,"nz-input-wrapper")(4,"input",5),_("ngModelChange",function(i){u(e);let l=c(2);return f(l.projectState.editingProject().name=i)})("keydown.enter",function(){u(e);let i=c(2);return f(i.projectState.confirmEditProject())}),a(),p(5,"nz-icon",6),a(),r(6,"div",7),m(7,"\u8F93\u5165\u65B0\u540D\u79F0\uFF0C\u5C06\u540C\u6B65\u66F4\u65B0\u9879\u76EE\u663E\u793A\u540D\u79F0\uFF08\u4E0D\u4F1A\u91CD\u547D\u540D\u78C1\u76D8\u76EE\u5F55\uFF09\u3002"),a(),r(8,"label",4),m(9,"Git\u4ED3\u5E93\u5730\u5740"),a(),r(10,"nz-input-wrapper")(11,"input",8),_("ngModelChange",function(i){u(e);let l=c(2);return f(l.projectState.editingProject().repoPageUrl=i)}),a(),p(12,"nz-icon",9),a(),r(13,"div",10),m(14,"NGM Hub V2"),a(),r(15,"label",4),m(16,"Hub \u5730\u5740"),a(),r(17,"nz-input-wrapper")(18,"input",11),_("ngModelChange",function(i){u(e);let l=c(2);return f(l.projectState.editingProject().hubV2.baseUrl=i)}),a(),p(19,"nz-icon",12),a(),r(20,"label",4),m(21,"Project Key"),a(),r(22,"nz-input-wrapper")(23,"input",13),_("ngModelChange",function(i){u(e);let l=c(2);return f(l.projectState.editingProject().hubV2.projectKey=i)}),a(),p(24,"nz-icon",14),a(),r(25,"label",4),m(26,"API Token"),a(),r(27,"nz-input-wrapper")(28,"input",15),_("ngModelChange",function(i){u(e);let l=c(2);return f(l.projectState.editingProject().hubV2.token=i)}),a(),p(29,"nz-icon",16),a(),r(30,"div",7),m(31,"\u4EE5\u4E0A\u914D\u7F6E\u4F1A\u5199\u5165\u9879\u76EE env\uFF1ANGM_HUB_V2_BASE_URL / NGM_HUB_V2_PROJECT_KEY / NGM_HUB_V2_TOKEN\u3002"),a(),r(32,"label",4),m(33,"\u63CF\u8FF0"),a(),r(34,"nz-input-wrapper")(35,"textarea",17),_("ngModelChange",function(i){u(e);let l=c(2);return f(l.projectState.editingProject().description=i)})("keydown.enter",function(){u(e);let i=c(2);return f(i.projectState.confirmEditProject())}),a()()()}if(t&2){let e=c(2);s(4),d("ngModel",e.editingProject().name),s(7),d("ngModel",e.editingProject().repoPageUrl),s(7),d("ngModel",e.editingProject().hubV2.baseUrl),s(5),d("ngModel",e.editingProject().hubV2.projectKey),s(5),d("ngModel",e.editingProject().hubV2.token),s(7),d("ngModel",e.editingProject().description)}}function Go(t,n){if(t&1&&(E(0),y(1,$o,36,6,"div",3),O()),t&2){let e=c();s(),z(e.editingProject()?1:-1)}}function Yo(t,n){if(t&1){let e=v();E(0),r(1,"button",18),_("click",function(){u(e);let i=c();return f(i.projectState.closeEditModal())}),m(2,"\u53D6\u6D88"),a(),r(3,"button",19),_("click",function(){u(e);let i=c();return f(i.projectState.confirmEditProject())}),m(4," \u786E\u5B9A "),a(),O()}if(t&2){let e,o=c();s(3),d("disabled",!(!((e=o.projectState.editingProject())==null||e.name==null)&&e.name.trim())||o.projectState.isEditSaving())("nzLoading",o.projectState.isEditSaving())}}var Qe=class t{projectState=g(Fe);editingProject=this.projectState.editingProject;static \u0275fac=function(e){return new(e||t)};static \u0275cmp=C({type:t,selectors:[["app-project-edit-modal"]],decls:3,vars:3,consts:[["nzTitle","\u7F16\u8F91\u9879\u76EE",3,"nzOnCancel","nzClosable","nzMaskClosable","nzVisible"],[4,"nzModalContent"],[4,"nzModalFooter"],[1,"modal-body"],[1,"label"],["nz-input","","placeholder","\u8BF7\u8F93\u5165\u65B0\u540D\u79F0","autofocus","",3,"ngModelChange","keydown.enter","ngModel"],["nzInputPrefix","","nzType","folder","nzTheme","fill"],[1,"hint"],["nz-input","","placeholder","Git\u4ED3\u5E93\u5730\u5740",3,"ngModelChange","ngModel"],["nzInputPrefix","","nzType","github","nzTheme","outline"],[1,"section-title"],["nz-input","","placeholder","\u4F8B\u5982\uFF1Ahttp://192.168.1.31:7008",3,"ngModelChange","ngModel"],["nzInputPrefix","","nzType","link","nzTheme","outline"],["nz-input","","placeholder","\u4F8B\u5982\uFF1ANGM",3,"ngModelChange","ngModel"],["nzInputPrefix","","nzType","key","nzTheme","outline"],["nz-input","","type","password","placeholder","\u7C98\u8D34 hub-v2 \u9879\u76EE token",3,"ngModelChange","ngModel"],["nzInputPrefix","","nzType","safety-certificate","nzTheme","outline"],["nz-input","","rows","3","placeholder","\u8BF7\u8F93\u5165\u65B0\u63CF\u8FF0",2,"resize","none",3,"ngModelChange","keydown.enter","ngModel"],["nz-button","",3,"click"],["nz-button","","nzType","primary",3,"click","disabled","nzLoading"]],template:function(e,o){e&1&&(r(0,"nz-modal",0),_("nzOnCancel",function(){return o.projectState.closeEditModal()}),P(1,Go,2,1,"ng-container",1)(2,Yo,5,2,"ng-container",2),a()),e&2&&d("nzClosable",!1)("nzMaskClosable",!1)("nzVisible",o.projectState.isEditModalVisible())},dependencies:[k,ne,xe,ee,te,Te,Pe,Se,we,V,L,F,X,Z,be,Me,ze,M,w],styles:[".modal-body[_ngcontent-%COMP%]{display:grid;gap:12px}.section-title[_ngcontent-%COMP%]{font-size:13px;font-weight:600;opacity:.9;margin-top:4px}.hint[_ngcontent-%COMP%]{font-size:12px;opacity:.75}"]})};function qo(t,n){if(t&1){let e=v();E(0),r(1,"div",3)(2,"label",4),m(3,"Personal Token"),a(),r(4,"nz-input-wrapper")(5,"input",5),_e("ngModelChange",function(i){u(e);let l=c();return he(l.draft,i)||(l.draft=i),f(i)}),a(),p(6,"nz-icon",6),a(),r(7,"div",7),m(8,"\u4EC5\u4FDD\u5B58\u5728\u5F53\u524D\u6D4F\u89C8\u5668\u672C\u5730\uFF0C\u7528\u4E8E webapp \u8C03\u7528 Hub V2 /api/personal\u3002"),a()(),O()}if(t&2){let e=c();s(5),ge("ngModel",e.draft)}}function Qo(t,n){if(t&1){let e=v();E(0),r(1,"button",8),_("click",function(){u(e);let i=c();return f(i.clear())}),m(2,"\u6E05\u7A7A"),a(),r(3,"button",8),_("click",function(){u(e);let i=c();return f(i.close())}),m(4,"\u53D6\u6D88"),a(),r(5,"button",9),_("click",function(){u(e);let i=c();return f(i.save())}),m(6,"\u4FDD\u5B58"),a(),O()}}var pe=class t{userStore=g(je);visible=!1;visibleChange=new Dt;draft="";open(){this.userStore.ensureUserLoaded(),this.draft=this.userStore.hubUserToken()}close(){this.visibleChange.emit(!1)}save(){this.userStore.setHubUserToken(this.draft),this.userStore.loadCurrentUser(),this.visibleChange.emit(!1)}clear(){this.userStore.setHubUserToken(""),this.draft=""}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=C({type:t,selectors:[["app-hub-v2-personal-token-modal"]],inputs:{visible:"visible"},outputs:{visibleChange:"visibleChange"},decls:3,vars:4,consts:[["nzTitle","Hub V2 Personal Token\uFF08\u5168\u5C40\uFF09",3,"nzOnCancel","nzVisible","nzClosable","nzMaskClosable","nzWidth"],[4,"nzModalContent"],[4,"nzModalFooter"],[1,"modal-body"],[1,"label"],["nz-input","","type","password","placeholder","\u7C98\u8D34 ngm_uptk_xxx",3,"ngModelChange","ngModel"],["nzInputPrefix","","nzType","safety-certificate","nzTheme","outline"],[1,"hint"],["nz-button","",3,"click"],["nz-button","","nzType","primary",3,"click"]],template:function(e,o){e&1&&(r(0,"nz-modal",0),_("nzOnCancel",function(){return o.close()}),P(1,qo,9,1,"ng-container",1)(2,Qo,7,0,"ng-container",2),a()),e&2&&d("nzVisible",o.visible)("nzClosable",!1)("nzMaskClosable",!1)("nzWidth",560)},dependencies:[k,ne,xe,ee,te,V,L,F,X,M,w,Te,Pe,Se,we,Z,be,Me,ze],styles:[".modal-body[_ngcontent-%COMP%]{display:grid;gap:12px}.hint[_ngcontent-%COMP%]{font-size:12px;opacity:.75}"]})};var Jo=()=>({width:"100%"}),Xn=(t,n)=>n.id;function Ko(t,n){t&1&&p(0,"nz-icon",2)}function Xo(t,n){if(t&1){let e=v();r(0,"li",7),p(1,"nz-icon",12),r(2,"span"),m(3,"\u6DFB\u52A0/\u53D6\u6D88\u6536\u85CF"),a(),r(4,"nz-switch",13),_("ngModelChange",function(){let i;u(e);let l=c();return f(l.projectState.toggleFavorite((i=l.currentProject())==null?null:i.id))}),a()(),r(5,"li",14),_("click",function(){let i;u(e);let l=c();return f(l.projectState.openInEditor((i=l.currentProject())==null?null:i.id))}),p(6,"nz-icon",15),r(7,"span"),m(8,"\u5728\u7F16\u8F91\u5668\u4E2D\u6253\u5F00"),a()(),r(9,"li",14),_("click",function(){u(e);let i=c();return f(i.projectState.openEditModal(i.currentProject()))}),p(10,"nz-icon",16),r(11,"span"),m(12,"\u7F16\u8F91\u9879\u76EE"),a()(),r(13,"li",14),_("click",function(){u(e);let i=c();return f(i.openPersonalTokenModal())}),p(14,"nz-icon",17),r(15,"span"),m(16,"Hub V2 Personal Token"),a(),r(17,"span",18),m(18),a()()}if(t&2){let e,o,i,l=c();s(),d("nzTheme",(e=l.currentProject())!=null&&e.isFavorite?"fill":"outline"),s(3),d("nzDisabled",!((o=l.currentProject())!=null&&o.id))("ngModel",(i=l.currentProject())==null?null:i.isFavorite),s(13),j("ok",l.userStore.hasHubUserToken()),s(),R(" ",l.userStore.hasHubUserToken()?"\u5DF2\u914D\u7F6E":"\u672A\u914D\u7F6E"," ")}}function Zo(t,n){if(t&1){let e=v();r(0,"li",14),_("click",function(){let i=u(e).$implicit,l=c();return f(l.projectState.selectProject(i))}),p(1,"nz-icon",19),r(2,"span"),m(3),a()()}if(t&2){let e=n.$implicit;s(3),T(e.name)}}function ei(t,n){if(t&1){let e=v();r(0,"li",14),_("click",function(){let i=u(e).$implicit,l=c();return f(l.projectState.selectProject(i))}),p(1,"nz-icon",12),r(2,"span"),m(3),a()()}if(t&2){let e=n.$implicit;s(),d("nzTheme",e.isFavorite?"fill":"outline"),s(2),T(e.name)}}var Je=class t{userStore=g(je);projectContext=g(oe);projectState=g(Fe);isCollapsed=Qt(!1);personalTokenModalVisible=!1;personalTokenModal;currentProject=this.projectContext.currentProject;favoriteProjects=this.projectContext.favoriteProjects;recentProjects=this.projectContext.recentProjects;curProjectName=N(()=>{let n=this.projectContext.currentProject()?.name||"\u8BF7\u9009\u62E9\u9879\u76EE";return this.isCollapsed()?n?.charAt(0).toUpperCase():n});ngOnInit(){this.projectContext.loadProjects().subscribe(),this.userStore.ensureHubUserTokenLoaded()}openPersonalTokenModal(){this.personalTokenModalVisible=!0,queueMicrotask(()=>this.personalTokenModal?.open())}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=C({type:t,selectors:[["ngm-project-nav"]],viewQuery:function(e,o){if(e&1&&Rt(pe,5),e&2){let i;Ht(i=Ut())&&(o.personalTokenModal=i.first)}},inputs:{isCollapsed:[1,"isCollapsed"]},outputs:{isCollapsed:"isCollapsedChange"},decls:24,vars:10,consts:[["menu","nzDropdownMenu"],["nz-button","","nzType","primary","nzSize","large","nz-dropdown","","nzTrigger","click",1,"project-quick-dropdown",3,"nzDropdownMenu","nzPlacement","nzOverlayStyle"],["nzType","down"],[2,"width","100%"],["nz-menu",""],["nz-menu-divider",""],["nz-menu-group","","nzTitle","\u6536\u85CF\u7684\u9879\u76EE"],["nz-menu-item","",1,"item"],["nz-menu-group","","nzTitle","\u6700\u8FD1\u4F7F\u7528"],["routerLink","/projects"],["nzType","project"],[3,"visibleChange","visible"],["nzType","star",3,"nzTheme"],[2,"margin-left","6px",3,"ngModelChange","nzDisabled","ngModel"],["nz-menu-item","",1,"item",3,"click"],["nzType","code"],["nzType","edit"],["nzType","safety-certificate"],[1,"token-status"],["nzType","star","nzTheme","fill"]],template:function(e,o){if(e&1){let i=v();r(0,"button",1)(1,"span"),m(2),a(),y(3,Ko,1,0,"nz-icon",2),a(),r(4,"nz-dropdown-menu",3,0)(6,"ul",4),y(7,Xo,19,6),p(8,"li",5)(9,"li",6),B(10,Zo,4,1,"li",7,Xn),p(12,"li",5)(13,"li",8),B(14,ei,4,2,"li",7,Xn),p(16,"li",5),r(17,"li",7)(18,"a",9),p(19,"nz-icon",10),r(20,"span"),m(21,"\u9879\u76EE\u7BA1\u7406"),a()()()()(),p(22,"app-project-edit-modal"),r(23,"app-hub-v2-personal-token-modal",11),_("visibleChange",function(h){return u(i),f(o.personalTokenModalVisible=h)}),a()}if(e&2){let i=D(5);j("collapsed",o.isCollapsed()),d("nzDropdownMenu",i)("nzPlacement","bottomCenter")("nzOverlayStyle",Ce(9,Jo)),s(2),T(o.curProjectName()),s(),z(o.isCollapsed()?-1:3),s(4),z(o.currentProject()?7:-1),s(3),A(o.favoriteProjects()),s(4),A(o.recentProjects()),s(9),d("visible",o.personalTokenModalVisible)}},dependencies:[k,ne,ee,te,le,re,ie,Nn,Tn,ae,Ie,ke,U,M,w,Vn,Ln,V,L,F,X,I,K,Qe,pe],styles:["[_nghost-%COMP%]{display:flex;padding:16px}[_nghost-%COMP%] .project-quick-dropdown[_ngcontent-%COMP%]{flex:1;width:100%;display:flex;align-items:center;gap:8px;justify-content:center;border-radius:20px;font-weight:500}[_nghost-%COMP%] .project-quick-dropdown[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item[_ngcontent-%COMP%] .ant-menu-title-content{display:flex;align-items:center;gap:8px;overflow:hidden}.item[_ngcontent-%COMP%] .ant-menu-title-content span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item[_ngcontent-%COMP%] .token-status[_ngcontent-%COMP%]{margin-left:auto;font-size:12px;color:#8c8c8c}.item[_ngcontent-%COMP%] .token-status.ok[_ngcontent-%COMP%]{color:#52c41a}.item[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:var(--app-text-color);display:flex;width:100%;align-items:center;gap:8px}"]})};var Ke=class t{router=g(q);state=g($e);isCollapsed=this.state.isCollapsed;constructor(){}isActive(n){return this.router.url.startsWith(n)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=C({type:t,selectors:[["ngm-sidebar"]],hostVars:4,hostBindings:function(e,o){e&2&&j("collapsed",o.isCollapsed())("ant-layout-sider",!0)},decls:20,vars:5,consts:[["menu","nzDropdownMenu"],["nzCollapsible","","nzWidth","256px","nzBreakpoint","md",1,"menu-sidebar",3,"nzCollapsedChange","nzCollapsed","nzTrigger"],[1,"header"],[3,"isCollapsed"],[1,"content"],["nz-button","","nzType","link","nz-dropdown","","nzPlacement","bottomRight","nzTrigger","click",1,"more-btn",3,"nzDropdownMenu"],["nzType","more"],["nz-menu",""],["nz-menu-item","",1,"item"],["routerLink","/projects"],["nzType","project","nzTheme","outline"],["routerLink","/about"],["nzType","info-circle","nzTheme","outline"]],template:function(e,o){if(e&1){let i=v();r(0,"nz-sider",1),_e("nzCollapsedChange",function(h){return u(i),he(o.isCollapsed,h)||(o.isCollapsed=h),f(h)}),r(1,"div",2),p(2,"ngm-project-nav",3),a(),r(3,"div",4),p(4,"ngm-menu",3),r(5,"button",5),p(6,"nz-icon",6),a()()(),r(7,"nz-dropdown-menu",null,0)(9,"ul",7)(10,"li",8)(11,"a",9),p(12,"nz-icon",10),r(13,"span"),m(14,"\u9879\u76EE\u7BA1\u7406"),a()()(),r(15,"li",8)(16,"a",11),p(17,"nz-icon",12),r(18,"span"),m(19,"\u5173\u4E8E"),a()()()()()}if(e&2){let i=D(8);ge("nzCollapsed",o.isCollapsed),d("nzTrigger",null),s(2),d("isCollapsed",o.isCollapsed()),s(2),d("isCollapsed",o.isCollapsed()),s(),d("nzDropdownMenu",i)}},dependencies:[W,jn,M,w,U,re,ie,qe,Je,V,L,F,le,ae,Ie,ke,I,K],styles:["html.default[_ngcontent-%COMP%] [_ngcontent-%COMP%]:root{--app-gray: #e6f7ff;--app-primary: #1890ff;--app-primary-1: #e6f7ff;--app-primary-2: #bae7ff;--app-primary-3: #91d5ff;--app-primary-4: #69c0ff;--app-primary-5: #40a9ff;--app-primary-6: #1890ff;--app-text-color: rgba(0, 0, 0, .85);--app-text-secondary: rgba(0, 0, 0, .45);--text-color-primary: #1890ff;--app-component-bg: #fff;--app-border-color: #d9d9d9;--header-error-background: #ff4d4f}html.default[_ngcontent-%COMP%] [_ngcontent-%COMP%]:root{--text-color-gray: #888}html.default [_nghost-%COMP%] .sidebar-logo[_ngcontent-%COMP%]{background:var(--ant-primary-1)}html.default [_nghost-%COMP%] .sidebar-logo[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{color:var(--ant-text-color)}html.dark[_ngcontent-%COMP%] [_ngcontent-%COMP%]:root{--text-color-gray: #bbb}html.dark [_nghost-%COMP%] .sidebar-logo[_ngcontent-%COMP%]{background:var(--ant-primary-1)}html.dark [_nghost-%COMP%] .sidebar-logo[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{color:var(--ant-text-color)}[_nghost-%COMP%]{display:block;box-sizing:border-box;position:relative;z-index:10;box-shadow:2px 0 6px #00152959;width:256px;transition:all .2s;flex:0 0 auto}.collapsed[_nghost-%COMP%]{width:80px}.menu-sidebar[_ngcontent-%COMP%]{height:100%}.menu-sidebar[_ngcontent-%COMP%] .ant-layout-sider-children{display:flex;flex-direction:column;height:100%}.menu-sidebar[_ngcontent-%COMP%] .ant-menu-inline{border-right:none}.menu-sidebar[_ngcontent-%COMP%] .header[_ngcontent-%COMP%]{flex:0 0 auto}.menu-sidebar[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{flex:1 1 auto;height:0;display:flex;flex-direction:column}.menu-sidebar[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] ngm-menu[_ngcontent-%COMP%]{flex:1 1 auto;height:0}.menu-sidebar[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin:12px;flex:0 0 auto}.menu-sidebar[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{background-color:var(--app-primary-2)}.sidebar-logo[_ngcontent-%COMP%]{position:relative;height:64px;padding-left:24px;overflow:hidden;line-height:64px;transition:all .3s}.sidebar-logo[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{display:inline-block;height:32px;width:32px;vertical-align:middle}.sidebar-logo[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{display:inline-block;margin:0 0 0 20px;font-weight:600;font-size:14px;font-family:Avenir,Helvetica Neue,Arial,Helvetica,sans-serif;vertical-align:middle}.item[_ngcontent-%COMP%] .ant-menu-title-content{display:flex;align-items:center;gap:8px}.item[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:var(--app-text-color);display:flex;width:100%;align-items:center;gap:8px}"]})};function ti(t,n){if(t&1){let e=v();r(0,"div",4),_("transitionend",function(i){u(e);let l=c();return f(l.onWrapTransitionEnd(i))}),r(1,"div",5),_("animationend",function(i){u(e);let l=c();return f(l.onInnerAnimationEnd(i))}),p(2,"ngm-header"),a()()}if(t&2){let e=c();j("leaving",e.leaving()),s(),j("leaving",e.leaving())}}var Xe=class t{ws=g(Ee);constructor(){this.ws.connect(),Y(()=>this.syncVisible())}wsState=mn(this.ws.stateChanges(),{initialValue:"idle"});shouldShow=N(()=>this.wsState()!=="open");visible=b(!1);leaving=b(!1);SHOW_DELAY_MS=200;showTimer;removed=!1;syncVisible(){if(this.shouldShow()){if(this.removed=!1,this.visible()){this.leaving.set(!1);return}this.startShowDelay();return}this.clearShowDelay(),this.visible()&&!this.leaving()&&this.leaving.set(!0)}startShowDelay(){this.showTimer||(this.showTimer=setTimeout(()=>{this.showTimer=void 0,this.shouldShow()&&(this.visible.set(!0),this.leaving.set(!1),this.removed=!1)},this.SHOW_DELAY_MS))}clearShowDelay(){this.showTimer&&(clearTimeout(this.showTimer),this.showTimer=void 0)}onInnerAnimationEnd(n){}onWrapTransitionEnd(n){n.propertyName==="height"&&(this.removed||!this.shouldShow()&&this.leaving()&&(this.removed=!0,this.visible.set(!1),this.leaving.set(!1)))}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=C({type:t,selectors:[["ngm-layout"]],decls:9,vars:1,consts:[[1,"app-layout"],[1,"ws-banner-wrap",3,"leaving"],[1,"app-content"],[1,"inner-content"],[1,"ws-banner-wrap",3,"transitionend"],[1,"ws-banner-inner",3,"animationend"]],template:function(e,o){e&1&&(r(0,"nz-layout",0),y(1,ti,3,4,"div",1),r(2,"nz-layout",2),p(3,"ngm-sidebar"),r(4,"nz-layout")(5,"nz-content")(6,"div",3),p(7,"router-outlet"),a()()()(),p(8,"ngm-footer"),a()),e&2&&(s(),z(o.visible()?1:-1))},dependencies:[I,sn,W,kn,Dn,Yn,M,U,Ke,We,Ue],styles:["html.default[_ngcontent-%COMP%] [_ngcontent-%COMP%]:root{--app-gray: #e6f7ff;--app-primary: #1890ff;--app-primary-1: #e6f7ff;--app-primary-2: #bae7ff;--app-primary-3: #91d5ff;--app-primary-4: #69c0ff;--app-primary-5: #40a9ff;--app-primary-6: #1890ff;--app-text-color: rgba(0, 0, 0, .85);--app-text-secondary: rgba(0, 0, 0, .45);--text-color-primary: #1890ff;--app-component-bg: #fff;--app-border-color: #d9d9d9;--header-error-background: #ff4d4f}html.default[_ngcontent-%COMP%] [_ngcontent-%COMP%]:root{--text-color-gray: #888}html.default [_nghost-%COMP%] .inner-content[_ngcontent-%COMP%]{background:#fff}html.dark[_ngcontent-%COMP%] [_ngcontent-%COMP%]:root{--text-color-gray: #bbb}html.dark [_nghost-%COMP%] .inner-content[_ngcontent-%COMP%]{background:#141414}[_nghost-%COMP%]{display:flex;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[_nghost-%COMP%] .app-layout[_ngcontent-%COMP%]{height:100vh;width:100%}[_nghost-%COMP%] .app-layout[_ngcontent-%COMP%] ngm-header[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] .app-content[_ngcontent-%COMP%]{flex-direction:row}[_nghost-%COMP%] nz-content[_ngcontent-%COMP%] .inner-content[_ngcontent-%COMP%]{border-radius:8px;height:100%}[_nghost-%COMP%] nz-footer[_ngcontent-%COMP%]{text-align:center}.ws-banner-wrap[_ngcontent-%COMP%]{height:48px;overflow:hidden;transition:height .35s ease}.ws-banner-wrap.leaving[_ngcontent-%COMP%]{height:0}.ws-banner-inner[_ngcontent-%COMP%]{height:48px;display:flex;align-items:stretch}.ws-banner-inner.leaving[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_fadeOutUpSoft .35s ease forwards}@keyframes _ngcontent-%COMP%_fadeOutUpSoft{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-30%)}}"]})};var Zn=`
2
- <svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
3
- <path d="M435.8 536.2H512V353z" fill="#DD0031"/>
4
- <path d="M400.9 616.8l-52.4 130.8h-97.2L512 163V64L94.9 212.7l63.6 551.5L512 960V616.8z" fill="#DD0031"/>
5
- <path d="M512 353v183.2h76.2z" fill="#C3002F"/>
6
- <path d="M512 64v99l259.8 584.6h-97.2l-52.4-130.8H512V960l353.5-195.8 63.6-551.5z" fill="#C3002F"/>
7
- </svg>
8
- `,eo=`
9
- <svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
10
- <path d="M615.6 123.6h165.5L512 589.7 242.9 123.6H63.5L512 900.4l448.5-776.9z" fill="#41B883"/>
11
- <path d="M781.1 123.6H615.6L512 303 408.4 123.6H242.9L512 589.7z" fill="#34495E"/>
12
- </svg>
13
- `,to=`
14
- <svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
15
- <svg t="1767603739899" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9231" width="200" height="200">
16
- <path d="M512 511.8m-80 0a80 80 0 1 0 160 0 80 80 0 1 0-160 0Z" fill="#61DAFB" p-id="9232"></path>
17
- <path d="M960.5 511.8c0-62.8-73.8-117.2-188.5-150.1 28.9-115.8 18.7-206.9-35.7-238.3-54.5-31.4-138.5 5.3-224.3 88.2-85.8-82.9-169.8-119.6-224.3-88.2-54.4 31.4-64.6 122.6-35.7 238.3C137.3 394.6 63.5 449 63.5 511.8S137.3 629 252 661.9c-28.9 115.7-18.7 206.9 35.7 238.3 13.4 7.8 28.6 11.6 45.2 11.6 39.7 0 87.8-21.8 140-64.2 13-10.6 26.1-22.6 39.1-35.2 13 12.6 26.1 24.6 39.1 35.2 52.2 42.4 100.2 64.2 140 64.2 16.6 0 31.8-3.8 45.2-11.6 54.4-31.4 64.6-122.5 35.7-238.3 114.7-32.9 188.5-87.3 188.5-150.1zM716.8 157.2c35.3 20.4 42.7 94.3 17.6 194.8-36.7-8.4-76.7-14.7-119.3-18.6-24.7-34.9-50.2-66.4-75.8-94 59.2-57.3 114.2-88.4 152-88.4 9.6-0.1 18.2 2 25.5 6.2zM637 584c-13.8 24-28.4 47-43.3 69-26.1 2-53.3 3.1-81.7 3.1-28.3 0-55.5-1.1-81.6-3.1-15-22-29.5-45.1-43.3-69-14.1-24.5-26.7-48.6-38.1-72.2 11.4-23.6 24-47.7 38.1-72.2 14.1-24.5 28.7-47.4 43.4-69.1 26.1-2 53.3-3.1 81.6-3.1 28.3 0 55.5 1.1 81.6 3.1 14.7 21.6 29.3 44.6 43.4 69 14.1 24.5 26.7 48.6 38.1 72.2-11.5 23.7-24.1 47.8-38.2 72.3z m58.8-26.4c11.2 26.6 20.4 52.1 28 76.5-24.9 5.6-51.7 10.4-80.3 14 9.3-14.5 18.4-29.3 27.3-44.6 8.8-15.4 17.1-30.7 25-45.9zM512 756.5c-17.7-19.2-35.1-40.1-52.2-62.6 17.1 0.8 34.5 1.3 52.2 1.3 17.7 0 35.1-0.5 52.2-1.3-17.1 22.5-34.5 43.4-52.2 62.6zM380.5 648.1c-28.6-3.6-55.3-8.4-80.3-14 7.6-24.4 16.8-49.9 28-76.5 7.9 15.2 16.1 30.5 25 45.9 8.9 15.2 18 30 27.3 44.6zM328.2 466c-11.2-26.6-20.4-52.1-28-76.5 24.9-5.6 51.6-10.4 80.2-14-9.2 14.4-18.4 29.2-27.2 44.6-8.8 15.4-17.1 30.7-25 45.9zM512 267.1c17.3 18.7 34.8 39.8 52.1 62.7-17.1-0.8-34.4-1.3-52.1-1.3-17.7 0-35 0.5-52.1 1.3 17.3-22.9 34.8-44 52.1-62.7z m158.7 153c-8.9-15.3-18-30.1-27.2-44.6 28.6 3.6 55.3 8.4 80.2 14-7.6 24.4-16.8 49.9-28 76.5-7.8-15.2-16.1-30.5-25-45.9zM307.2 157.2c7.2-4.2 15.8-6.2 25.6-6.2 37.8 0 92.7 31.1 151.9 88.4-25.6 27.6-51.1 59.2-75.8 94-42.5 3.9-82.6 10.2-119.3 18.6-25.1-100.6-17.6-174.5 17.6-194.8zM102.5 511.8c0-40.8 60.3-84.2 160-112.6 11.1 36 25.6 73.8 43.5 112.6-17.8 38.8-32.4 76.6-43.5 112.6-99.7-28.4-160-71.9-160-112.6z m345.8 305.5c-59.7 48.5-111.1 66.4-141.1 49.2-35.3-20.4-42.7-94.3-17.6-194.8 36.7 8.4 76.7 14.7 119.3 18.6 24.4 34.5 49.9 66.1 75.8 94.2-12.1 11.7-24.2 22.9-36.4 32.8z m268.5 49.2c-29.9 17.3-81.4-0.6-141.1-49.2-12.1-9.9-24.3-21.1-36.5-32.8 26-28.1 51.4-59.7 75.8-94.2 42.5-3.9 82.6-10.2 119.3-18.7 25.2 100.6 17.7 174.5-17.5 194.9z m44.8-242.1c-11.1-36-25.6-73.8-43.5-112.6 17.8-38.8 32.4-76.6 43.5-112.6 99.7 28.5 160 71.9 160 112.6-0.1 40.7-60.4 84.2-160 112.6z" fill="#61DAFB" p-id="9233"></path></svg>
18
- </svg>
19
- `,no=`
20
- <svg t="1767598826450" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8231" width="200" height="200">
21
- <path d="M875.2 262.3L546.7 72.7c-20.7-11.8-48.3-11.8-69 0L148.8 262.3c-21.5 12.2-34.5 34.9-34.5 59.7v379.2c0 24.8 13.4 47.9 34.5 60.1l86.1 49.5c41.8 20.7 56.8 20.7 75.9 20.7 62.1 0 97.4-37.8 97.4-102.7V354.4c0-5.3-4.1-9.3-9.3-9.3h-41.4c-5.3 0-9.3 4.1-9.3 9.3v374.3c0 28.8-30 57.7-78.8 33.3l-90.1-52c-3.2-2-5.3-5.3-5.3-8.9V321.9c0-3.7 2-7.3 5.3-8.9l328.1-190c3.2-1.6 7.3-1.6 10.2 0l328.5 189.6c3.2 1.6 5.3 5.3 5.3 8.9v379.2c0 3.7-2 7.3-4.9 8.9L517.9 899.3c-2.8 1.6-7.3 1.6-10.2 0l-84.4-49.9c-2.4-1.2-5.7-1.6-8.1-0.4-23.1 13.4-27.6 15-49.5 22.7-5.7 1.6-13.4 4.9 2.8 14.2l109.6 65c10.6 6.1 22.3 9.3 34.5 9.3 11.8-0.4 24-3.2 34.1-9.7l328.5-189.6c21.1-12.2 34.5-34.9 34.5-59.7V321.9c0-24.3-13.4-47.5-34.5-59.6z" fill="#689F63" p-id="8232"></path>
22
- <path d="M614.1 641.1c-86.9 0-106-21.9-112.5-65-0.8-4.9-4.5-8.1-9.3-8.1h-42.6c-5.3 0-9.3 4.1-9.3 9.3 0 55.2 30 121.4 173.8 121.4l-0.4-0.4c103.9 0 163.6-41 163.6-112.5 0-70.6-47.9-89.7-149-103.1-101.9-13.4-112.5-20.3-112.5-44.3 0-19.5 8.9-45.9 84.4-45.9 67.8 0 92.6 14.6 102.7 60.1 1.2 4.1 4.9 7.3 9.3 7.3H755c2.4 0 5.3-0.8 6.9-2.8 1.6-2 2.8-4.5 2.4-7.3-6.9-78.4-58.9-114.9-164-114.9-93.4 0-149.4 39.4-149.4 105.6 0 71.9 55.6 91.8 145.8 100.7 107.6 10.6 116.1 26.4 116.1 47.5 0 36.5-29.3 52.4-98.7 52.4z" fill="#689F63" p-id="8233"></path>
23
- </svg>
24
- `,oo=`
25
- <svg t="1768726164973" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4725" width="200" height="200">
26
- <path d="M332.72493 412.535453l171.001167-98.72725a13.830826 13.830826 0 0 1 13.83424 0l171.007994 98.72725a13.841066 13.841066 0 0 1 6.915413 11.9808v197.4545a13.858133 13.858133 0 0 1-6.918826 11.980799l-171.004581 98.72725a13.830826 13.830826 0 0 1-13.83424 0l-171.001167-98.72725a13.841066 13.841066 0 0 1-6.915413-11.980799V424.516253a13.847893 13.847893 0 0 1 6.915413-11.9808" fill="#7986CB" p-id="4726"></path>
27
- <path d="M955.265709 502.476783L750.950409 147.036155c-7.420586-12.8512-21.128533-22.330026-35.969705-22.330026H306.329624c-14.844586 0-28.555946 9.478826-35.976532 22.330026L66.037792 501.701957c-7.420586 12.854613-7.420586 29.081599 0 41.932798L270.353092 896.170637c7.420586 12.8512 21.131946 19.421866 35.976532 19.421866h408.65108c14.83776 0 28.552532-6.372693 35.969705-19.227306l204.3153-353.109322c7.427413-12.847786 7.427413-27.921066 0-40.768852m-169.181861 170.922661c0 5.2224-3.14368 10.059093-7.676586 12.673706l-260.249592 150.152529a14.80704 14.80704 0 0 1-14.725119 0l-260.450978-150.152529c-4.52608-2.614613-7.693653-7.44448-7.693653-12.673706v-300.30847c0-5.229226 3.119787-10.059093 7.649279-12.677119l260.242765-150.152529a14.779733 14.779733 0 0 1 14.71488 0l260.471458 150.152529c4.529493 2.618027 7.717546 7.447893 7.717546 12.677119z" fill="#3F51B5" p-id="4727"></path>
28
- </svg>
29
- `,io=`
30
- <svg t="1772087297160" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12394" data-spm-anchor-id="a313x.search_index.0.i16.3dc23a81kNbNJb" width="48" height="48">
31
- <path d="M0 512c0 282.848 229.312 512 512 512 282.848 0 512-229.312 512-512 0-282.848-229.312-512-512-512C229.152 0 0 229.152 0 512z" fill="#333333" p-id="12395" data-spm-anchor-id="a313x.search_index.0.i13.3dc23a81kNbNJb" class="selected"></path>
32
- <path d="M948.48 449.824c-34.912 45.408-101.056 22.272-131.456 40.032-44.288 26.016-42.88 89.152-151.264 173.952-26.336 20.64 27.968 128.768 4.48 152.928-23.872 24.544-119.84 25.792-143.104 12.384-34.08-19.808-7.36-71.2 0.192-146.304-70.016 7.232-92.672 5.984-162.912 3.104 10.816 56.96 26.336 120.512 3.68 141.376-18.592 16.928-108.608 18.784-136.768 0.192-35.328-23.328 25.504-156 4.896-158.272-23.68-2.464-168.416 3.296-142.88-155.808 27.136 40.032 73.28 77.792 126.368 60.864 3.072-58.208 20-113.92 48.384-158.496 37.568-58.624 95.328-97.824 168.416-97.824 72.256 0 132.48 31.776 171.872 81.728 30.816 39.2 48.8 89.984 48.992 145.088 76.352-58.208 20.224-200.8 111.648-254.24 65.12-37.984 141.248-18.368 177.6 41.888 19.392 31.584 25.312 87.072 1.824 117.408z" fill="#ffffff" p-id="12396" data-spm-anchor-id="a313x.search_index.0.i14.3dc23a81kNbNJb" class=""></path>
33
- </svg>
34
- `;var Ze=class t{constructor(n){this.icons=n}inited=!1;init(){this.inited||(this.inited=!0,this.icons.addIconLiteral("proj:angular",Zn),this.icons.addIconLiteral("proj:vue",eo),this.icons.addIconLiteral("proj:react",to),this.icons.addIconLiteral("proj:node",no),this.icons.addIconLiteral("proj:eslint",oo),this.icons.addIconLiteral("proj:svn",io))}static \u0275fac=function(e){return new(e||t)(me(un))};static \u0275prov=S({token:t,factory:t.\u0275fac,providedIn:"root"})};var et=class t{constructor(n){n.init()}static \u0275fac=function(e){return new(e||t)(kt(Ze))};static \u0275cmp=C({type:t,selectors:[["app-root"]],decls:1,vars:0,template:function(e,o){e&1&&p(0,"ngm-layout")},dependencies:[Xe],styles:["[_nghost-%COMP%]{display:block;height:100vh}"]})};nn(et,Wn).catch(t=>console.error(t));