@yinuo-ngm/server 1.0.16 → 1.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/app.js +3 -15
- package/lib/common/editor.js +2 -2
- package/lib/env.d.ts +1 -0
- package/lib/env.js +1 -0
- package/lib/plugins/error-handler.plugin.d.ts +2 -2
- package/lib/plugins/error-handler.plugin.js +97 -93
- package/lib/plugins/ws/topics/nginx.ws.js +2 -1
- package/lib/plugins/ws/topics/svn.ws.d.ts +2 -1
- package/lib/plugins/ws/topics/svn.ws.js +3 -2
- package/lib/plugins/ws/topics/syslog.ws.d.ts +1 -1
- package/lib/plugins/ws/topics/task.ws.d.ts +2 -1
- package/lib/plugins/ws/topics/task.ws.js +2 -1
- package/lib/plugins/ws/ws.context.d.ts +1 -1
- package/lib/plugins/ws/ws.plugin.js +4 -3
- package/lib/plugins/ws/ws.router.d.ts +2 -2
- package/lib/plugins/ws/ws.router.js +8 -7
- package/lib/routes/api-client/collection.routes.js +8 -6
- package/lib/routes/api-client/env.routes.js +4 -3
- package/lib/routes/api-client/history.routes.js +3 -2
- package/lib/routes/api-client/hub-token.routes.js +11 -11
- package/lib/routes/api-client/request.routes.js +7 -6
- package/lib/routes/api-client/send.routes.js +3 -2
- package/lib/routes/config.routes.js +5 -5
- package/lib/routes/hub.routes.js +10 -10
- package/lib/routes/nginx/nginx-lifecycle.routes.js +4 -0
- package/lib/routes/nginx/nginx-route.context.js +23 -7
- package/lib/routes/nginx/nginx-server.routes.js +158 -6
- package/lib/routes/node-version.routes.js +7 -7
- package/lib/routes/project.routes.js +9 -9
- package/lib/routes/rss.routes.js +3 -3
- package/lib/routes/sprite-browse.routes.js +2 -1
- package/lib/routes/sprite.routes.js +3 -3
- package/lib/routes/static-files.routes.js +7 -7
- package/lib/routes/svn.routes.js +5 -3
- package/lib/routes/system.routes.js +20 -1
- package/lib/routes/task.routes.js +4 -4
- package/package.json +13 -6
- package/www/3rdpartylicenses.txt +52 -52
- package/www/browser/chunk-2L7NUOMX.js +2 -0
- package/www/browser/chunk-2NZJ7CN2.js +20 -0
- package/www/browser/{chunk-SPRWNZHF.js → chunk-3CM4SKDO.js} +2 -2
- package/www/browser/{chunk-EEVPZGEY.js → chunk-3I7BQCXS.js} +1 -1
- package/www/browser/{chunk-DXF7BVK5.js → chunk-3M56F2S2.js} +1 -1
- package/www/browser/chunk-3OHBKMAA.js +1 -0
- package/www/browser/{chunk-4KETC6EB.js → chunk-3XNNQFWR.js} +1 -1
- package/www/browser/chunk-4BRW6LCZ.js +4 -0
- package/www/browser/{chunk-HGONFYP6.js → chunk-4LBSLURA.js} +1 -1
- package/www/browser/{chunk-BYEU6KGP.js → chunk-4X42HB6N.js} +1 -1
- package/www/browser/chunk-5DYX4DUX.js +11 -0
- package/www/browser/chunk-6SYVDN5L.js +1 -0
- package/www/browser/{chunk-XJ5KZQNN.js → chunk-6YYNHZ2A.js} +1 -1
- package/www/browser/{chunk-G2W3B7TJ.js → chunk-75W3GVSO.js} +1 -1
- package/www/browser/{chunk-76TVIB33.js → chunk-7U44RF5F.js} +1 -1
- package/www/browser/{chunk-WD4IAQR3.js → chunk-AELTP6YN.js} +1 -1
- package/www/browser/chunk-AMXRL4GR.js +1 -0
- package/www/browser/chunk-AV2ZODEH.js +1 -0
- package/www/browser/chunk-AZ6SIMYH.js +1 -0
- package/www/browser/chunk-B3C35ET3.js +2 -0
- package/www/browser/chunk-BTQIUVTQ.js +1 -0
- package/www/browser/chunk-CN5J4WNO.js +1 -0
- package/www/browser/{chunk-N4LRZJBP.js → chunk-D2ODDESN.js} +1 -1
- package/www/browser/{chunk-O2EYEF7J.js → chunk-DE6E23ET.js} +1 -1
- package/www/browser/{chunk-SVQWPHF5.js → chunk-DIJPUYIA.js} +1 -1
- package/www/browser/{chunk-SYCNSLAW.js → chunk-DLGJD6YU.js} +4 -4
- package/www/browser/{chunk-JHMEKUZ5.js → chunk-EEDA5U4V.js} +1 -1
- package/www/browser/chunk-FK6Z4HLL.js +1 -0
- package/www/browser/chunk-FL6GDGHW.js +1 -0
- package/www/browser/{chunk-HRXCR3IN.js → chunk-FXCG34QS.js} +1 -1
- package/www/browser/{chunk-UJOHBN2Y.js → chunk-H2USFIYR.js} +1 -1
- package/www/browser/chunk-H5HGMOE6.js +1 -0
- package/www/browser/chunk-HB3HECPD.js +1 -0
- package/www/browser/{chunk-INL2PELS.js → chunk-HDNG236Q.js} +1 -1
- package/www/browser/{chunk-WF2QTF5L.js → chunk-HJTXXSMC.js} +1 -1
- package/www/browser/{chunk-LQ5OXSW7.js → chunk-HUMCWAKJ.js} +1 -1
- package/www/browser/chunk-IKB3EQCP.js +2 -0
- package/www/browser/{chunk-TMX5TTV3.js → chunk-K7PESFPY.js} +1 -1
- package/www/browser/{chunk-T3KK7ZXB.js → chunk-KRYMOHYF.js} +1 -1
- package/www/browser/{chunk-SQQNR223.js → chunk-M4QRBV3K.js} +1 -1
- package/www/browser/chunk-N2PELLMM.js +30 -0
- package/www/browser/{chunk-ACAZUX6C.js → chunk-ONXBYGIG.js} +1 -1
- package/www/browser/{chunk-JZULA5JV.js → chunk-OSBDR36P.js} +1 -1
- package/www/browser/chunk-OZCK4XVV.js +1 -0
- package/www/browser/{chunk-GDWS2L66.js → chunk-QJP5F735.js} +1 -1
- package/www/browser/{chunk-2X3MRS27.js → chunk-RGOYDY7H.js} +1 -1
- package/www/browser/{chunk-B6MBYCXI.js → chunk-UJKK4A7Y.js} +1 -1
- package/www/browser/{chunk-ZNTJRLVH.js → chunk-WD2EKZQC.js} +1 -1
- package/www/browser/{chunk-L5D75AMV.js → chunk-WUA5JFDD.js} +1 -1
- package/www/browser/chunk-XLFHB7RS.js +3 -0
- package/www/browser/{chunk-JU3TEDBV.js → chunk-YNW4HEJO.js} +1 -1
- package/www/browser/{chunk-RW2JPJV7.js → chunk-ZTDLWBW5.js} +1 -1
- package/www/browser/index.html +1 -1
- package/www/browser/main-N64WJCHX.js +34 -0
- package/www/browser/chunk-2BZRE4G7.js +0 -1
- package/www/browser/chunk-5T5KA5PG.js +0 -1
- package/www/browser/chunk-6CGHNKJI.js +0 -1
- package/www/browser/chunk-7J24TP36.js +0 -1
- package/www/browser/chunk-CZ5AZ3VW.js +0 -1
- package/www/browser/chunk-DW7F5PEA.js +0 -1
- package/www/browser/chunk-HHBPULJW.js +0 -2
- package/www/browser/chunk-KVFR7GFV.js +0 -20
- package/www/browser/chunk-L7TMCSHV.js +0 -1
- package/www/browser/chunk-MVQTKINJ.js +0 -1
- package/www/browser/chunk-OMDHJIUB.js +0 -1
- package/www/browser/chunk-OWUAAOHW.js +0 -2
- package/www/browser/chunk-PIK5YPIB.js +0 -1
- package/www/browser/chunk-RHLQRQDK.js +0 -9
- package/www/browser/chunk-S3SJ4VVM.js +0 -11
- package/www/browser/chunk-SIVPP74B.js +0 -0
- package/www/browser/chunk-UFY3FLDK.js +0 -1
- package/www/browser/chunk-UQGCUFNM.js +0 -1
- package/www/browser/chunk-UXXWRMM6.js +0 -1
- package/www/browser/chunk-UZRJGJTD.js +0 -2
- package/www/browser/chunk-WI67LAOV.js +0 -4
- package/www/browser/chunk-WNCM6QKB.js +0 -1
- package/www/browser/chunk-YETDFSQE.js +0 -1
- package/www/browser/chunk-YMTC5GZK.js +0 -1
- package/www/browser/chunk-YVZHJ76K.js +0 -1
- package/www/browser/main-6LN5C22E.js +0 -34
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as Kt}from"./chunk-YMTC5GZK.js";import{a as Ut,e as Zt,f as Yt}from"./chunk-RW2JPJV7.js";import{a as Qt}from"./chunk-MVQTKINJ.js";import{b as $t}from"./chunk-INL2PELS.js";import{a as en,b as tn}from"./chunk-B6MBYCXI.js";import"./chunk-G2W3B7TJ.js";import"./chunk-PIK5YPIB.js";import"./chunk-YVZHJ76K.js";import"./chunk-SIVPP74B.js";import{a as Xt,b as Gt}from"./chunk-WD4IAQR3.js";import{b as Jt}from"./chunk-WF2QTF5L.js";import"./chunk-HRXCR3IN.js";import"./chunk-DW7F5PEA.js";import"./chunk-KVFR7GFV.js";import{a as Rt,b as jt,c as fe}from"./chunk-HHBPULJW.js";import{b as ce}from"./chunk-2X3MRS27.js";import{e as qt,f as U}from"./chunk-4KETC6EB.js";import{a as Re,e as Nt,f as Dt,g as At}from"./chunk-JU3TEDBV.js";import"./chunk-JZULA5JV.js";import{a as Wt,b as Ht}from"./chunk-TMX5TTV3.js";import{a as Bt}from"./chunk-UQGCUFNM.js";import{g as wt,l as Pt}from"./chunk-BYEU6KGP.js";import"./chunk-5T5KA5PG.js";import{e as Ft,f as Lt}from"./chunk-UXXWRMM6.js";import{$b as kt,B as ht,Bb as Tt,C as De,Eb as pe,F as xt,Fa as k,Ga as O,Gb as de,H as vt,Ha as bt,Ia as yt,Kb as ue,L as S,Ma as Ot,Na as q,Oa as W,Pa as le,Ra as H,Sa as N,Ub as I,Xb as Et,Y as zt,Zb as me,_b as St,a as _t,ac as $,dc as Q,fc as ge,gc as It,ja as Mt,mb as Vt,ra as Ae,rb as Fe,s as Ct}from"./chunk-SPRWNZHF.js";import"./chunk-HFZLJHYR.js";import"./chunk-L5D75AMV.js";import{i as ft,n as E}from"./chunk-T3KK7ZXB.js";import{$b as D,Ac as T,Ba as K,Bb as tt,Ca as Ge,Cc as lt,Da as B,Dc as ct,Ec as L,Fb as M,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 Me,Lb as w,Lc as C,M as G,Mc as Ve,Nc as oe,Oa as Ke,Oc as se,Pc as re,Q as He,Qc as Te,Ra as Oe,Rc as Ee,Sc as v,U as $e,Ub as ot,Uc as Se,V as Qe,Vc as ke,Wb as h,Wc as ut,Yb as x,_b as Pe,ac as A,bc as g,cc as s,cd as j,dc as r,ea as be,ec as d,fc as st,g as P,gc as rt,ha as Ue,hd as Ne,i as qe,ic as ee,id as mt,jc as te,l as We,lc as z,ma as Ze,nb as a,oa as Ye,od as gt,qa as Xe,rc as m,sa as u,sb as Z,tb as we,td as Ie,uc as p,vb as Je,vc as ne,wb as et,wc as ie,xc as at,xd as ae,ya as f,yc as F,za as _,zb as J,zc as V}from"./chunk-WI67LAOV.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();e&&e!==this._taskId&&(this._taskId&&(this.stream.unsubscribeTask(this._taskId),this.term?.clear()),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),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)(J(Rt),J(en),J(Lt))};static \u0275cmp=M({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,le,q,Ot,O,k,ge,Q,Re,tn],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=M({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 fn=(t,i)=>i.spec.id;function _n(t,i){t&1&&(s(0,"div",7),c(1,"Loading..."),r())}function Cn(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 hn(t,i){t&1&&d(0,"nz-badge",14)}function xn(t,i){t&1&&d(0,"nz-badge",15)}function vn(t,i){t&1&&d(0,"nz-badge",16)}function zn(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,hn,1,0,"nz-badge",14)(5,xn,1,0,"nz-badge",15)(6,vn,1,0,"nz-badge",16),r(),s(7,"div",17)(8,"div",18),c(9),r(),s(10,"div",19),c(11),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:6),a(4),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)==="stopped"?"\u5DF2\u505C\u6B62":e.spec.description||"\u7A7A\u95F2\u4E2D"," ")}}function Mn(t,i){if(t&1&&(s(0,"div",8),D(1,zn,12,7,"div",9,fn),r()),t&2){let e=p(2);a(),A(e.list())}}function bn(t,i){if(t&1&&h(0,Cn,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=M({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","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,_n,2,0,"div",7)(9,bn,2,1),r()()),e&2&&(a(4),g("ngModel",n.keyword()),a(4),x(n.loading()?8:9))},dependencies:[E,I,pe,de,ue,N,H,W,O,k,ce,q,U,$,me,kt,Et,ge,Q,Ht,Wt],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 rn=new Xe("",{providedIn:"root",factory:()=>{let t=u(K);return new qe(i=>{let e=Je(()=>{i.next(),i.complete()},{injector:t});return()=>e.destroy()})}});var wn=[[["nz-auto-option"]]],Pn=["nz-auto-option"];function Vn(t,i){if(t&1&&(ee(0),c(1),te()),t&2){let e=p();a(),y(e.nzLabel)}}var an=["*"],Tn=["panel"],En=["content"],Sn=(t,i)=>i.value;function kn(t,i){}function Nn(t,i){t&1&&w(0,kn,0,0,"ng-template")}function In(t,i){t&1&&ie(0)}function Dn(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 An(t,i){if(t&1&&D(0,Dn,2,3,"nz-auto-option",7,Sn),t&2){let e=p(2);A(e.normalizedDataSource)}}function Fn(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,Nn,1,0,null,6),r()()(),w(5,In,1,0,"ng-template",null,1,j)(7,An,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 ln=(()=>{class t{nzLabel;static \u0275fac=function(n){return new(n||t)};static \u0275cmp=M({type:t,selectors:[["nz-auto-optgroup"]],inputs:{nzLabel:"nzLabel"},exportAs:["nzAutoOptgroup"],ngContentSelectors:Pn,decls:3,vars:1,consts:[[1,"ant-select-item","ant-select-item-group"],[4,"nzStringTemplateOutlet"]],template:function(n,o){n&1&&(ne(wn),s(0,"div",0),w(1,Vn,2,1,"ng-container",1),r(),ie(2)),n&2&&(a(),g("nzStringTemplateOutlet",o.nzLabel))},dependencies:[yt,bt],encapsulation:2,changeDetection:0})}return t})(),Le=class{source;isUserInput;constructor(i,e=!1){this.source=i,this.isUserInput=e}},X=(()=>{class t{ngZone=u(we);changeDetectorRef=u(Ie);element=u(Oe);destroyRef=u(B);nzValue;nzLabel;nzDisabled=!1;selectionChange=new Z;mouseEntered=new Z;active=!1;selected=!1;nzAutocompleteOptgroupComponent=u(ln,{optional:!0});ngOnInit(){Ae(this.element.nativeElement,"mouseenter").pipe(G(()=>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(){Mt(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=M({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",ae]},outputs:{selectionChange:"selectionChange",mouseEntered:"mouseEntered"},exportAs:["nzAutoOption"],ngContentSelectors:an,decls:2,vars:0,consts:[[1,"ant-select-item-option-content"]],template:function(n,o){n&1&&(ne(),st(0,"div",0),ie(1),rt())},encapsulation:2,changeDetection:0})}return t})(),Rn={provide:Tt,useExisting:Ze(()=>je),multi:!0};function Bn(){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(K);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(G(e=>!this.elementRef.nativeElement.contains(e.target))).subscribe(()=>{this.closePanel()})}attachOverlay(){if(!this.nzAutocomplete)throw Bn();!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(b){return o.handleInput(b)})("keydown",function(b){return o.handleKeydown(b)})("click",function(){return o.handleClick()})},inputs:{nzAutocomplete:"nzAutocomplete"},exportAs:["nzAutocompleteTrigger"],features:[ut([Rn])]})}return t})();function Ln(t){return t?.map(i=>typeof i=="number"||typeof i=="string"?{label:i.toString(),value:i.toString()}:i)}var cn=(()=>{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 Z;showPanel=!0;isOpen=!1;activeItem=null;dir="ltr";normalizedDataSource=[];animationStateChange=new Z;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?Me(...this.options.map(e=>e.selectionChange)):this.afterNextRender$.pipe(be(()=>this.optionSelectionChanges)));optionMouseEnter=ze(()=>this.options?Me(...this.options.map(e=>e.mouseEntered)):this.afterNextRender$.pipe(be(()=>this.optionMouseEnter)));afterNextRender$=u(rn);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=Ln(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(G(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=M({type:t,selectors:[["nz-autocomplete"]],contentQueries:function(n,o,l){if(n&1&&at(l,X,5),n&2){let b;V(b=T())&&(o.fromContentOptions=b)}},viewQuery:function(n,o){if(n&1&&(F(et,5),F(Tn,5),F(En,5),F(X,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",ae],nzBackfill:[2,"nzBackfill","nzBackfill",ae],compareWith:"compareWith",nzDataSource:"nzDataSource"},outputs:{selectionChange:"selectionChange"},exportAs:["nzAutocomplete"],features:[Ke],ngContentSelectors:an,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&&(ne(),w(0,Fn,9,12,"ng-template"))},dependencies:[ft,X,Fe],encapsulation:2,data:{animation:[Vt]},changeDetection:0})}return t})(),pn=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275mod=nt({type:t});static \u0275inj=Ye({imports:[ln]})}return t})();var qn=["settingsModal"];function Wn(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 Hn(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 $n(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 Qn(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 Un(t,i){if(t&1&&h(0,Hn,1,3,"span",10)(1,$n,1,3,"span",12)(2,Qn,1,2,"span",13),t&2){p(2);let e=v(0);x(e.isMatch?0:e.satisfiedBy?1:2)}}function Zn(t,i){t&1&&d(0,"span",11)}function Yn(t,i){if(t&1&&h(0,Wn,1,2,"span",10)(1,Un,3,1)(2,Zn,1,0,"span",11),t&2){p();let e=v(0);x(e.voltaConfig?0:e.requiredVersion?1:2)}}function Xn(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 Gn(t,i){if(t&1&&(s(0,"button",14),d(1,"span",15),c(2," \u5B89\u88C5 NVM "),r(),w(3,Xn,10,0,"ng-template",null,1,j)),t&2){let e=L(4);g("nzPopoverTrigger","hover")("nzPopoverContent",e)}}function Kn(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 Jn(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 ei(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 ti(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 ni(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 ii(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 oi(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 si(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),re("ngModelChange",function(o){f(e);let l=p(3);return se(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),re("ngModelChange",function(o){f(e);let l=p(3);return se(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),oe("ngModel",e.selectedEngineVersion),g("nzOptions",e.recommendedEngineVersions),a(4),oe("ngModel",e.customEngineVersion),a(5),C(" ",e.getEngineConfigPreview()," "),a(2),g("nzLoading",e.writingConfig)}}function ri(t,i){if(t&1&&(h(0,Jn,6,1,"div",39)(1,ei,6,2,"div",39)(2,ti,6,2,"div",40)(3,ni,6,1,"div",41),h(4,ii,9,0,"div",42)(5,oi,9,1,"div",42),h(6,si,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 ai(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 li(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),re("ngModelChange",function(o){f(e);let l=p(2);return se(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,ai,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),oe("ngModel",n.selectedInstallVersion),g("nzAutocomplete",e),a(3),A(n.filteredVersions),a(2),g("nzLoading",n.installing())("disabled",!n.selectedInstallVersion)}}function ci(t,i){if(t&1){let e=z();s(0,"span",75),m("click",function(o){f(e);let l=p().$implicit,b=p(3);return _(b.confirmDelete(l,o))}),d(1,"span",51),r()}}function pi(t,i){t&1&&(s(0,"span",74),c(1,"\u5F53\u524D"),r())}function di(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,ci,2,0,"span",73)(4,pi,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 ui(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,di,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 mi(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 gi(t,i){if(t&1){let e=z();s(0,"div",20),h(1,Kn,3,1,"div",21),h(2,ri,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,li,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,ui,7,1,"div",36),h(26,mi,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(jt);message=u(Ft);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=M({type:t,selectors:[["app-node-version"]],viewQuery:function(e,n){e&1&<(n.settingsModal,qn,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,Yn,3,1),s(2,"span",3),d(3,"nz-icon",4),c(4),r(),s(5,"span",5),c(6),r(),h(7,Gn,5,2),s(8,"button",6),m("click",function(){return f(o),_(n.refresh())}),d(9,"nz-icon",7),c(10," \u5237\u65B0 "),r(),s(11,"button",8),m("click",function(){return f(o),_(n.openSettingsModal())}),d(12,"nz-icon",9),r(),w(13,gi,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..."," "),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,le,Gt,Xt,It,Q,Pt,$,me,pn,cn,X,je,I,pe,de,ue,U,qt,$t,At,Dt],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}"]})};var dn=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=M({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","isStopped"],[3,"taskId"]],template:function(e,n){if(e&1&&(s(0,"app-page-layout",0),ee(1,1),d(2,"app-node-version"),te(),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,b;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",(b=n.selectedTask())==null||b.spec==null?null:b.spec.command),a(),g("isStopping",n.taskState.isStopping())("isRunning",n.taskState.isRunning())("isStopped",n.taskState.isStopped()),a(),g("taskId",n.taskState.selectedTaskId())}},dependencies:[E,I,q,U,N,$,Kt,ce,Jt,O,Yt,Zt,Ut,_e,xe,Qt,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{dn as TasksComponent};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as s,c as d,d as l,f as g}from"./chunk-UXXWRMM6.js";import{e as P}from"./chunk-L5D75AMV.js";import{Ha as c,ha as b,hd as r,na as a,sa as n,t as p}from"./chunk-WI67LAOV.js";var m=class i{api=n(l);list(){return this.api.get("/api/projects/list")}getProjectMembers(e){return this.api.hubRequestWithPrjId({projectId:e,path:"/members"})}static \u0275fac=function(t){return new(t||i)};static \u0275prov=a({token:i,factory:i.\u0275fac,providedIn:"root"})};var h=class i{ls=n(d);projectApi=n(m);router=n(P);currentProjectState=c(null);projectsState=c([]);membersState=c([]);projects=r(()=>this.projectsState());currentProject=r(()=>this.currentProjectState());currentProjectId=r(()=>this.currentProjectState()?.id||null);currentProjectKey=r(()=>this.currentProjectState()?.env?.NGM_HUB_V2_PROJECT_KEY);currentProjectToken=r(()=>this.currentProjectState()?.env?.NGM_HUB_V2_TOKEN);currentProjectMembers=r(()=>this.membersState());isHubProjectValid=r(()=>!!this.currentProjectState()?.env?.NGM_HUB_V2_TOKEN);favoriteProjects=r(()=>this.projects().filter(e=>e.isFavorite));recentProjects=r(()=>this.projects().slice().sort((e,t)=>{let o=new Date(e.lastOpened||0).getTime();return new Date(t.lastOpened||0).getTime()-o}).slice(0,5));setProjects(e){this.projectsState.set(e)}setCurrentProject(e){this.currentProjectState.set(e);let t=e?e.id:null;t?this.ls.set(s.project.currentProjectId,t):this.ls.remove(s.project.currentProjectId)}setCurrentProjectById(e){let t=this.projects().find(o=>o.id===e)||null;this.setCurrentProject(t)}setMembers(e){this.membersState.set(e)}patchProject(e){this.projectsState.update(t=>t.map(o=>o.id===e.id?e:o)),this.currentProjectId()===e.id&&this.currentProjectState.set(e)}removeProject(e){if(this.projectsState.update(t=>t.filter(o=>o.id!==e)),this.currentProjectId()===e){let t=this.projectsState()[0]||null;this.setCurrentProject(t)}}getProjectById(e){return this.projectsState().find(t=>t.id===e)||null}isOpen(e){return this.currentProjectId()===e.id}async loadProjectMembers(e){try{let t=(await this.projectApi.getProjectMembers(e)).items;this.setMembers(t)}catch{this.setMembers([])}}loadProjects(e){return this.projectApi.list().pipe(b(t=>{this.setProjects(t),this.initCurrentProject(t,e)}))}initCurrentProject(e,t){if(!e.length){this.setCurrentProject(null);return}if(t){let u=e.find(S=>S.id===t);if(u){this.setCurrentProject(u);return}}let o=this.ls.getNullable(s.project.currentProjectId),j=o?e.find(u=>u.id===o):null;if(j){this.setCurrentProject(j);return}this.setCurrentProject(e[0])}static \u0275fac=function(t){return new(t||i)};static \u0275prov=a({token:i,factory:i.\u0275fac,providedIn:"root"})};var v=class i{apiClient=n(l);projectContextStore=n(h);ls=n(d);notify=n(g);currentUserState=c(null);hubUserTokenState=c(null);initializedState=c(!1);currentUser=r(()=>this.currentUserState());currentUserId=r(()=>this.currentUserState()?this.currentUserState().userId:"");hubUserToken=r(()=>this.hubUserTokenState());initialized=r(()=>this.initializedState());isAuthenticated=r(()=>!!this.currentUserState());hasHubUserToken=r(()=>!!this.hubUserTokenState());loadCurrentUser(){let e=this.ls.get(s.token.hubV2PersonalToken,"").trim(),t=this.projectContextStore.currentProjectId();!e||!t||(this.setHubUserToken(e),p(this.apiClient.hubRequestWithPersonalToken({path:"/me",projectId:t})).subscribe({next:o=>{this.setCurrentUser(o),this.markInitialized()},error:()=>{this.notify.error("Personal Token \u9A8C\u8BC1\u5931\u8D25"),this.setCurrentUser(null)}}))}ensureUserLoaded(){this.initializedState()||this.loadCurrentUser()}setCurrentUser(e){this.currentUserState.set(e)}setHubUserToken(e){let t=e?e.trim():"";if(t){this.ls.set(s.token.hubV2PersonalToken,t),this.hubUserTokenState.set(t);return}this.hubUserTokenState.set(null),this.currentUserState.set(null),this.ls.remove(s.token.hubV2PersonalToken)}ensureHubUserTokenLoaded(){this.hubUserTokenState()||this.setHubUserToken(this.ls.get(s.token.hubV2PersonalToken,""))}markInitialized(){this.initializedState.set(!0)}reset(){this.currentUserState.set(null),this.initializedState.set(!1)}static \u0275fac=function(t){return new(t||i)};static \u0275prov=a({token:i,factory:i.\u0275fac,providedIn:"root"})};export{h as a,v as b};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$ as ae,A as se,Fa as le,G as oe,Ga as me,H as re,Ha as ue,Ia as de,lb as he,r as ie,sa as ce,ta as pe,tb as ge}from"./chunk-SPRWNZHF.js";import{w as ne}from"./chunk-T3KK7ZXB.js";import{$b as B,B as b,Ba as L,Da as H,Fb as S,Fc as Q,Gc as X,Hb as I,Hc as ee,Ic as E,Jb as _,Lb as J,M as k,Pa as z,S as j,Wb as G,Yb as U,Zc as te,_b as W,a as l,ac as K,b as P,bc as u,cc as d,dc as g,ec as p,ic as $,jb as V,jc as Y,l as h,lc as Z,na as a,nb as m,ra as R,rc as x,sa as r,sb as q,td as A,uc as M,ya as F,z as C,za as O}from"./chunk-WI67LAOV.js";var Ce=(t,n)=>({$implicit:t,data:n});function ze(t,n){t&1&&p(0,"nz-icon",3)}function Se(t,n){t&1&&p(0,"nz-icon",4)}function Ie(t,n){t&1&&p(0,"nz-icon",5)}function _e(t,n){t&1&&p(0,"nz-icon",6)}function xe(t,n){t&1&&p(0,"nz-icon",7)}function Me(t,n){if(t&1&&($(0),p(1,"span",9),Y()),t&2){let e=M();m(),u("innerHTML",e.instance.content,V)}}function Ee(t,n){if(t&1){let e=Z();d(0,"nz-message",2),x("destroyed",function(s){F(e);let o=M();return O(o.remove(s.id,s.userAction))}),g()}if(t&2){let e=n.$implicit;u("instance",e)}}var Ae=0,D=class{container;nzSingletonService=r(ge);injector=r(L);remove(n){this.container&&(n?this.container.remove(n):this.container.removeAll())}getInstanceId(){return`${this.componentPrefix}-${Ae++}`}withContainer(n){let e=this.nzSingletonService.getSingletonWithKey(this.componentPrefix);if(e)return e;let i=re(this.injector,{hasBackdrop:!1,scrollStrategy:se(),positionStrategy:oe(this.injector)}),s=new ie(n,null,this.injector),o=i.attach(s),y=i.hostElement;return y.style.zIndex="1010",e||(this.container=e=o.instance,this.nzSingletonService.registerSingletonWithKey(this.componentPrefix,e),this.container.afterAllInstancesRemoved.subscribe(()=>{this.container=void 0,this.nzSingletonService.unregisterSingletonWithKey(this.componentPrefix),i.dispose()})),e}},De=(()=>{class t{config;instances=[];_afterAllInstancesRemoved=new h;afterAllInstancesRemoved=this._afterAllInstancesRemoved.asObservable();cdr=r(A);nzConfigService=r(ce);constructor(){this.subscribeConfigChange()}create(e){let i=this.onCreate(e);return this.instances.length>=this.config.nzMaxStack&&(this.instances=this.instances.slice(1)),this.instances=[...this.instances,i],this.readyInstances(),i}remove(e,i=!1){this.instances.map((s,o)=>({index:o,instance:s})).filter(({instance:s})=>s.messageId===e).forEach(({index:s,instance:o})=>{this.instances.splice(s,1),this.instances=[...this.instances],this.onRemove(o,i),this.readyInstances()}),this.instances.length||this.onAllInstancesRemoved()}removeAll(){this.instances.forEach(e=>this.onRemove(e,!1)),this.instances=[],this.readyInstances(),this.onAllInstancesRemoved()}onCreate(e){return e.options=this.mergeOptions(e.options),e.onClose=new h,e}onRemove(e,i){e.onClose.next(i),e.onClose.complete()}onAllInstancesRemoved(){this._afterAllInstancesRemoved.next(),this._afterAllInstancesRemoved.complete()}readyInstances(){this.cdr.detectChanges()}mergeOptions(e){let{nzDuration:i,nzAnimate:s,nzPauseOnHover:o}=this.config;return l({nzDuration:i,nzAnimate:s,nzPauseOnHover:o},e)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=I({type:t})}return t})(),we=(()=>{class t{cdr=r(A);destroyRef=r(H);animationStateChanged=new h;options;autoClose;closeTimer;userAction=!1;eraseTimer;eraseTimingStart;eraseTTL;constructor(){this.destroyRef.onDestroy(()=>{this.autoClose&&this.clearEraseTimeout(),this.animationStateChanged.complete()})}ngOnInit(){this.options=this.instance.options,this.options.nzAnimate&&(this.instance.state="enter",this.animationStateChanged.pipe(k(e=>e.phaseName==="done"&&e.toState==="leave"),j(1)).subscribe(()=>{clearTimeout(this.closeTimer),this.destroyed.next({id:this.instance.messageId,userAction:this.userAction})})),this.autoClose=this.options.nzDuration>0,this.autoClose&&(this.initErase(),this.startEraseTimeout())}onEnter(){this.autoClose&&this.options.nzPauseOnHover&&(this.clearEraseTimeout(),this.updateTTL())}onLeave(){this.autoClose&&this.options.nzPauseOnHover&&this.startEraseTimeout()}destroy(e=!1){this.userAction=e,this.options.nzAnimate?(this.instance.state="leave",this.cdr.detectChanges(),this.closeTimer=setTimeout(()=>{this.closeTimer=void 0,this.destroyed.next({id:this.instance.messageId,userAction:e})},200)):this.destroyed.next({id:this.instance.messageId,userAction:e})}initErase(){this.eraseTTL=this.options.nzDuration,this.eraseTimingStart=Date.now()}updateTTL(){this.autoClose&&(this.eraseTTL-=Date.now()-this.eraseTimingStart)}startEraseTimeout(){this.eraseTTL>0?(this.clearEraseTimeout(),this.eraseTimer=setTimeout(()=>this.destroy(),this.eraseTTL),this.eraseTimingStart=Date.now()):this.destroy()}clearEraseTimeout(){this.eraseTimer!==null&&(clearTimeout(this.eraseTimer),this.eraseTimer=void 0)}static \u0275fac=function(i){return new(i||t)};static \u0275dir=I({type:t})}return t})(),Ne=(()=>{class t extends we{instance;destroyed=new q;index;static \u0275fac=(()=>{let e;return function(s){return(e||(e=z(t)))(s||t)}})();static \u0275cmp=S({type:t,selectors:[["nz-message"]],inputs:{instance:"instance"},outputs:{destroyed:"destroyed"},exportAs:["nzMessage"],features:[_],decls:9,vars:13,consts:[[1,"ant-message-notice",3,"mouseenter","mouseleave"],[1,"ant-message-notice-content"],[1,"ant-message-custom-content"],["nzType","check-circle"],["nzType","info-circle"],["nzType","exclamation-circle"],["nzType","close-circle"],["nzType","loading"],[4,"nzStringTemplateOutlet","nzStringTemplateOutletContext"],[3,"innerHTML"]],template:function(i,s){if(i&1&&(d(0,"div",0),x("@moveUpMotion.done",function(y){return s.animationStateChanged.next(y)})("mouseenter",function(){return s.onEnter()})("mouseleave",function(){return s.onLeave()}),d(1,"div",1)(2,"div",2),G(3,ze,1,0,"nz-icon",3)(4,Se,1,0,"nz-icon",4)(5,Ie,1,0,"nz-icon",5)(6,_e,1,0,"nz-icon",6)(7,xe,1,0,"nz-icon",7),J(8,Me,2,1,"ng-container",8),g()()()),i&2){let o;ee(s.instance.options==null?null:s.instance.options.nzStyle),E(s.instance.options==null?null:s.instance.options.nzClass),u("@moveUpMotion",s.instance.state),m(2),E("ant-message-"+s.instance.type),m(),U((o=s.instance.type)==="success"?3:o==="info"?4:o==="warning"?5:o==="error"?6:o==="loading"?7:-1),m(5),u("nzStringTemplateOutlet",s.instance.content)("nzStringTemplateOutletContext",te(10,Ce,s,s.instance.options==null?null:s.instance.options.nzData))}},dependencies:[me,le,de,ue],encapsulation:2,data:{animation:[he]},changeDetection:0})}return t})(),f="message",Pe={nzAnimate:!0,nzDuration:3e3,nzMaxStack:7,nzPauseOnHover:!0,nzTop:24,nzDirection:"ltr"},be=(()=>{class t extends De{dir=this.nzConfigService.getConfigForComponent(f)?.nzDirection||"ltr";top;constructor(){super(),this.updateConfig()}subscribeConfigChange(){pe(f,()=>{this.updateConfig(),this.dir=this.nzConfigService.getConfigForComponent(f)?.nzDirection||this.dir})}updateConfig(){this.config=l(l(l({},Pe),this.config),this.nzConfigService.getConfigForComponent(f)),this.top=ae(this.config.nzTop),this.cdr.markForCheck()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=S({type:t,selectors:[["nz-message-container"]],exportAs:["nzMessageContainer"],features:[_],decls:3,vars:4,consts:[[1,"ant-message"],[3,"instance"],[3,"destroyed","instance"]],template:function(i,s){i&1&&(d(0,"div",0),B(1,Ee,1,1,"nz-message",1,W),g()),i&2&&(Q("top",s.top),X("ant-message-rtl",s.dir==="rtl"),m(),K(s.instances))},dependencies:[Ne],encapsulation:2,changeDetection:0})}return t})(),fe=(()=>{class t extends D{componentPrefix="message-";success(e,i){return this.createInstance({type:"success",content:e},i)}error(e,i){return this.createInstance({type:"error",content:e},i)}info(e,i){return this.createInstance({type:"info",content:e},i)}warning(e,i){return this.createInstance({type:"warning",content:e},i)}loading(e,i){return this.createInstance({type:"loading",content:e},i)}create(e,i,s){return this.createInstance({type:e,content:i},s)}createInstance(e,i){return this.container=this.withContainer(be),this.container.create(P(l({},e),{createdAt:new Date,messageId:this.getInstanceId(),options:i}))}static \u0275fac=(()=>{let e;return function(s){return(e||(e=z(t)))(s||t)}})();static \u0275prov=a({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var Te={project:{currentProjectId:"ngm:project:currentProjectId"},token:{hubV2PersonalToken:"ngm:token:hubV2PersonalToken"},fs:{explorer:{lastPath:"ngm:fs:explorer:lastPath",favorites:"ngm:fs:explorer:favorites"}},dashboard:{layout:"ngm:dashboard:layout"}};var N=class t{get(n){let e=localStorage.getItem(n);if(e==null)return null;try{return JSON.parse(e)}catch{return e}}set(n,e){localStorage.setItem(n,JSON.stringify(e))}remove(n){localStorage.removeItem(n)}static \u0275fac=function(e){return new(e||t)};static \u0275prov=a({token:t,factory:t.\u0275fac,providedIn:"root"})},T=class t{constructor(n){this.driver=n}get(n,e){return this.driver.get(n)??e}getNullable(n){return this.driver.get(n)}set(n,e){this.driver.set(n,e)}remove(n){this.driver.remove(n)}static \u0275fac=function(e){return new(e||t)(R(N))};static \u0275prov=a({token:t,factory:t.\u0275fac,providedIn:"root"})};var v=class extends Error{constructor(e,i,s,o){super(i);this.code=e;this.details=s;this.requestId=o;this.name="ApiBizError"}};function c(){return b(t=>{if(t.ok)return t.data;throw new v(t.error.code,t.error.message,t.error.details,t.meta?.requestId)})}var ve=class t{ls=r(T);http=r(ne);base="/api/client";get(n,e){return this.http.get(n,{params:e}).pipe(c())}post(n,e,i){return this.http.post(n,e,{params:i}).pipe(c())}delete(n,e){return this.http.delete(n,{params:e}).pipe(c())}put(n,e,i){return this.http.put(n,e,{params:i}).pipe(c())}patch(n,e,i){return this.http.patch(n,e,{params:i}).pipe(c())}async hubRequestWithPrjId(n){return await C(this.http.post(`${this.base}/hub-token/request`,{projectId:n.projectId,path:n.path,method:n.method??"GET",query:n.query,body:n.payload,headers:n.headers}).pipe(c()))}async hubRequestWithPersonalToken(n){return await C(this.http.post(`${this.base}/hub-token/request`,{projectId:n.projectId,path:n.path,method:n.method??"GET",query:n.query,body:n.payload,headers:n.headers,tokenType:"personal",personalToken:this.ls.get(Te.token.hubV2PersonalToken,"").trim()||void 0}).pipe(c()))}static \u0275fac=function(e){return new(e||t)};static \u0275prov=a({token:t,factory:t.\u0275fac,providedIn:"root"})};var ye=class t{msg=r(fe);error(n,e){console.error("[UI ERROR]",n,e),this.msg.error(n)}warn(n){this.msg.warning(n)}info(n){this.msg.info(n)}success(n){this.msg.success(n)}banner(n,e){}totast(n,e){}static \u0275fac=function(e){return new(e||t)};static \u0275prov=a({token:t,factory:t.\u0275fac,providedIn:"root"})};export{v as a,Te as b,T as c,ve as d,fe as e,ye as f};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as ot,d as rt}from"./chunk-O2EYEF7J.js";import{a as at,c as lt}from"./chunk-76TVIB33.js";import{a as Ke,b as Xe}from"./chunk-2X3MRS27.js";import{a as nt,b as it}from"./chunk-TMX5TTV3.js";import{$ as We,Fa as we,Ga as ze,Ha as de,Ia as me,L as J,S as Ze,a as xe,sa as Ye,ua as K,ub as Je,vb as et,xb as tt}from"./chunk-SPRWNZHF.js";import{i as ie,n as ve}from"./chunk-T3KK7ZXB.js";import{$b as S,Ac as L,Da as ue,Ec as le,Fb as y,Fc as W,Gb as ne,Gc as P,Ha as Pe,Hc as je,Jc as x,Kc as G,L as ke,Lb as z,Lc as b,Mb as $e,N as De,Oa as j,Ra as Ae,Ub as re,Wb as C,Wc as Qe,Yb as f,Yc as Ue,_b as B,ac as I,bc as _,cc as s,cd as se,da as Ee,dc as d,ea as Ne,ec as X,f as ee,ha as Re,hd as Ge,ic as N,id as qe,jc as R,kb as Le,kc as ae,l as Se,lc as Z,n as Ie,na as Fe,nb as r,nd as D,oa as te,r as q,rc as Q,s as T,sa as k,sb as Be,td as Y,ub as Ve,uc as l,vc as F,wb as He,wc as E,xc as Ce,xd as ce,ya as H,yc as U,yd as fe,za as $,zc as A}from"./chunk-WI67LAOV.js";var Un=["open","in_progress","pending_update","resolved","verified","reopened","closed"],Gn={open:"\u5F85\u5904\u7406",in_progress:"\u5904\u7406\u4E2D",resolved:"\u5F85\u9A8C\u8BC1",verified:"\u5DF2\u9A8C\u8BC1",reopened:"\u5DF2\u91CD\u5F00",closed:"\u5DF2\u5173\u95ED"},qn={open:"volcano",in_progress:"cyan",resolved:"blue",verified:"green",reopened:"volcano",closed:"default"},Zn={todo:"gold",in_progress:"geekblue",done:"green"},Wn={todo:"\u5F85\u5F00\u59CB",in_progress:"\u5904\u7406\u4E2D",done:"\u5DF2\u5B8C\u6210"},Yn=[{label:"\u6240\u6709\u72B6\u6001",value:""},{label:"\u5F85\u5904\u7406",value:"open"},{label:"\u5904\u7406\u4E2D",value:"in_progress"},{label:"\u5F85\u63D0\u6D4B",value:"pending_update"},{label:"\u5F85\u9A8C\u8BC1",value:"resolved"},{label:"\u5DF2\u9A8C\u8BC1",value:"verified"},{label:"\u5DF2\u91CD\u5F00",value:"reopened"},{label:"\u5DF2\u5173\u95ED",value:"closed"}],Kn=["todo","doing","blocked","done","canceled"],Xn={todo:"\u5F85\u5F00\u59CB",doing:"\u5F00\u53D1\u4E2D",blocked:"\u963B\u585E\u4E2D",done:"\u5DF2\u5B8C\u6210",accepted:"\u5DF2\u5B8C\u6210",closed:"\u5DF2\u5173\u95ED"},Jn={todo:"volcano",doing:"cyan",blocked:"error",done:"green",accepted:"green",closed:"default"},ei=[{label:"\u6240\u6709\u72B6\u6001",value:""},{label:"\u5F85\u5F00\u59CB",value:"todo"},{label:"\u5F00\u53D1\u4E2D",value:"doing"},{label:"\u963B\u585E\u4E2D",value:"blocked"},{label:"\u5DF2\u5B8C\u6210",value:"done"},{label:"\u5DF2\u5173\u95ED",value:"closed"}];var ni={low:"\u4F4E",medium:"\u4E2D",high:"\u9AD8",critical:"\u7D27\u6025"},ii=[{label:"\u5168\u90E8\u4F18\u5148\u7EA7",value:""},{label:"\u4F4E",value:"low"},{label:"\u4E2D",value:"medium"},{label:"\u9AD8",value:"high"},{label:"\u7D27\u6025",value:"critical"}],oi={low:"green",medium:"orange",high:"magenta",critical:"red"};var vt=["*"];function xt(t,n){t&1&&E(0)}function wt(t,n){if(t&1&&(N(0),x(1),R()),t&2){let e=l(3);r(),G(e.nzTitle)}}function zt(t,n){if(t&1&&(s(0,"div",2),z(1,wt,2,1,"ng-container",4),d()),t&2){let e=l(2);r(),_("nzStringTemplateOutlet",e.nzTitle)}}function Mt(t,n){if(t&1&&(N(0),x(1),R()),t&2){let e=l(3);r(),G(e.nzExtra)}}function Ot(t,n){if(t&1&&(s(0,"div",3),z(1,Mt,2,1,"ng-container",4),d()),t&2){let e=l(2);r(),_("nzStringTemplateOutlet",e.nzExtra)}}function kt(t,n){if(t&1&&(s(0,"div",0),C(1,zt,2,1,"div",2),C(2,Ot,2,1,"div",3),d()),t&2){let e=l();r(),f(e.nzTitle?1:-1),r(),f(e.nzExtra?2:-1)}}function Pt(t,n){if(t&1&&(N(0),x(1),R()),t&2){let e=l(2).$implicit;r(),b(" ",e.title," ")}}function bt(t,n){}function Tt(t,n){if(t&1&&(s(0,"td",6)(1,"div",7)(2,"span",8),z(3,Pt,2,1,"ng-container",4),d(),s(4,"span",9),z(5,bt,0,0,"ng-template",10),d()()()),t&2){let e=l().$implicit,i=l(3);_("colSpan",e.span),r(2),P("ant-descriptions-item-no-colon",!i.nzColon),r(),_("nzStringTemplateOutlet",e.title),r(2),_("ngTemplateOutlet",e.content)}}function yt(t,n){if(t&1&&(N(0),x(1),R()),t&2){let e=l(2).$implicit;r(),b(" ",e.title," ")}}function St(t,n){}function It(t,n){if(t&1&&(s(0,"td",8),z(1,yt,2,1,"ng-container",4),d(),s(2,"td",11),z(3,St,0,0,"ng-template",10),d()),t&2){let e=l().$implicit;r(),_("nzStringTemplateOutlet",e.title),r(),_("colSpan",e.span*2-1),r(),_("ngTemplateOutlet",e.content)}}function Dt(t,n){if(t&1&&C(0,Tt,6,5,"td",6)(1,It,4,3),t&2){let e=l(3);f(e.nzBordered?1:0)}}function Et(t,n){if(t&1&&(s(0,"tr",5),S(1,Dt,2,1,null,null,B),d()),t&2){let e=n.$implicit;r(),I(e)}}function Nt(t,n){if(t&1&&S(0,Et,3,0,"tr",5,B),t&2){let e=l();I(e.itemMatrix)}}function Rt(t,n){if(t&1&&(N(0),x(1),R()),t&2){let e=l().$implicit;r(),b(" ",e.title," ")}}function Ft(t,n){if(t&1&&(s(0,"td",6)(1,"div",7)(2,"span",8),z(3,Rt,2,1,"ng-container",4),d()()()),t&2){let e=n.$implicit,i=l(4);_("colSpan",e.span),r(2),P("ant-descriptions-item-no-colon",!i.nzColon),r(),_("nzStringTemplateOutlet",e.title)}}function At(t,n){}function Lt(t,n){if(t&1&&(s(0,"td",6)(1,"div",7)(2,"span",9),z(3,At,0,0,"ng-template",10),d()()()),t&2){let e=n.$implicit;_("colSpan",e.span),r(3),_("ngTemplateOutlet",e.content)}}function Bt(t,n){if(t&1&&(s(0,"tr",5),S(1,Ft,4,4,"td",6,B),d(),s(3,"tr",5),S(4,Lt,4,2,"td",6,B),d()),t&2){let e=n.$implicit;r(),I(e),r(3),I(e)}}function Vt(t,n){if(t&1&&S(0,Bt,6,0,null,null,B),t&2){let e=l(2);I(e.itemMatrix)}}function Ht(t,n){if(t&1&&(N(0),x(1),R()),t&2){let e=l().$implicit;r(),b(" ",e.title," ")}}function $t(t,n){if(t&1&&(s(0,"td",12),z(1,Ht,2,1,"ng-container",4),d()),t&2){let e=n.$implicit;_("colSpan",e.span),r(),_("nzStringTemplateOutlet",e.title)}}function jt(t,n){}function Qt(t,n){if(t&1&&(s(0,"td",11),z(1,jt,0,0,"ng-template",10),d()),t&2){let e=n.$implicit;_("colSpan",e.span),r(),_("ngTemplateOutlet",e.content)}}function Ut(t,n){if(t&1&&(s(0,"tr",5),S(1,$t,2,2,"td",12,B),d(),s(3,"tr",5),S(4,Qt,2,2,"td",11,B),d()),t&2){let e=n.$implicit;r(),I(e),r(3),I(e)}}function Gt(t,n){if(t&1&&S(0,Ut,6,0,null,null,B),t&2){let e=l(2);I(e.itemMatrix)}}function qt(t,n){if(t&1&&C(0,Vt,2,0)(1,Gt,2,0),t&2){let e=l();f(e.nzBordered?1:0)}}var Zt=(()=>{class t{content;nzSpan=1;nzTitle="";inputChange$=new Se;ngOnChanges(){this.inputChange$.next()}ngOnDestroy(){this.inputChange$.complete()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({type:t,selectors:[["nz-descriptions-item"]],viewQuery:function(i,o){if(i&1&&U(He,7),i&2){let a;A(a=L())&&(o.content=a.first)}},inputs:{nzSpan:[2,"nzSpan","nzSpan",fe],nzTitle:"nzTitle"},exportAs:["nzDescriptionsItem"],features:[j],ngContentSelectors:vt,decls:1,vars:0,template:function(i,o){i&1&&(F(),$e(0,xt,1,0,"ng-template"))},encapsulation:2,changeDetection:0})}return t})(),Wt="descriptions",Yt={xxl:3,xl:3,lg:3,md:3,sm:2,xs:1},Kt=(()=>{var m;let t,n=[],e=[],i,o=[],a=[],g,v=[],O=[],p,V=[],M=[];return m=class{nzConfigService=k(Ye);cdr=k(Y);breakpointService=k(tt);directionality=k(xe);destroyRef=k(ue);_nzModuleName=Wt;items;nzBordered=T(this,n,!1);nzLayout=(T(this,e),"horizontal");nzColumn=T(this,o,Yt);nzSize=(T(this,a),T(this,v,"default"));nzTitle=(T(this,O),"");nzExtra;nzColon=T(this,V,!0);itemMatrix=(T(this,M),[]);realColumn=3;dir="ltr";breakpoint=Je.md;ngOnInit(){this.dir=this.directionality.value,this.directionality.change?.pipe(J(this.destroyRef)).subscribe(u=>{this.dir=u})}ngOnChanges(u){u.nzColumn&&this.prepareMatrix()}ngAfterContentInit(){let u=this.items.changes.pipe(Ee(this.items));ke(u,u.pipe(Ne(()=>ke(...this.items.map(c=>c.inputChange$)).pipe(De(16)))),this.breakpointService.subscribe(et).pipe(Re(c=>this.breakpoint=c))).pipe(J(this.destroyRef)).subscribe(()=>{this.prepareMatrix(),this.cdr.markForCheck()})}prepareMatrix(){if(!this.items)return;let u=[],c=0,w=this.realColumn=this.getColumn(),ge=this.items.toArray(),oe=ge.length,Te=[],ye=()=>{Te.push(u),u=[],c=0};for(let _e=0;_e<oe;_e++){let Ct=ge[_e],{nzTitle:Me,content:Oe,nzSpan:he}=Ct;c+=he,c>=w?(c>w&&Ze(`"nzColumn" is ${w} but we have row length ${c}`),u.push({title:Me,content:Oe,span:w-(c-he)}),ye()):_e===oe-1?(u.push({title:Me,content:Oe,span:w-(c-he)}),ye()):u.push({title:Me,content:Oe,span:he})}this.itemMatrix=Te}getColumn(){return typeof this.nzColumn!="number"?this.nzColumn[this.breakpoint]:this.nzColumn}},(()=>{let u=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;t=[K()],i=[K()],g=[K()],p=[K()],q(null,null,t,{kind:"field",name:"nzBordered",static:!1,private:!1,access:{has:c=>"nzBordered"in c,get:c=>c.nzBordered,set:(c,w)=>{c.nzBordered=w}},metadata:u},n,e),q(null,null,i,{kind:"field",name:"nzColumn",static:!1,private:!1,access:{has:c=>"nzColumn"in c,get:c=>c.nzColumn,set:(c,w)=>{c.nzColumn=w}},metadata:u},o,a),q(null,null,g,{kind:"field",name:"nzSize",static:!1,private:!1,access:{has:c=>"nzSize"in c,get:c=>c.nzSize,set:(c,w)=>{c.nzSize=w}},metadata:u},v,O),q(null,null,p,{kind:"field",name:"nzColon",static:!1,private:!1,access:{has:c=>"nzColon"in c,get:c=>c.nzColon,set:(c,w)=>{c.nzColon=w}},metadata:u},V,M),u&&Object.defineProperty(m,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:u})})(),ee(m,"\u0275fac",function(c){return new(c||m)}),ee(m,"\u0275cmp",y({type:m,selectors:[["nz-descriptions"]],contentQueries:function(c,w,ge){if(c&1&&Ce(ge,Zt,4),c&2){let oe;A(oe=L())&&(w.items=oe)}},hostAttrs:[1,"ant-descriptions"],hostVars:8,hostBindings:function(c,w){c&2&&P("ant-descriptions-bordered",w.nzBordered)("ant-descriptions-middle",w.nzSize==="middle")("ant-descriptions-small",w.nzSize==="small")("ant-descriptions-rtl",w.dir==="rtl")},inputs:{nzBordered:[2,"nzBordered","nzBordered",ce],nzLayout:"nzLayout",nzColumn:"nzColumn",nzSize:"nzSize",nzTitle:"nzTitle",nzExtra:"nzExtra",nzColon:[2,"nzColon","nzColon",ce]},exportAs:["nzDescriptions"],features:[j],decls:6,vars:3,consts:[[1,"ant-descriptions-header"],[1,"ant-descriptions-view"],[1,"ant-descriptions-title"],[1,"ant-descriptions-extra"],[4,"nzStringTemplateOutlet"],[1,"ant-descriptions-row"],[1,"ant-descriptions-item",3,"colSpan"],[1,"ant-descriptions-item-container"],[1,"ant-descriptions-item-label"],[1,"ant-descriptions-item-content"],[3,"ngTemplateOutlet"],[1,"ant-descriptions-item-content",3,"colSpan"],[1,"ant-descriptions-item-label",3,"colSpan"]],template:function(c,w){c&1&&(C(0,kt,3,2,"div",0),s(1,"div",1)(2,"table")(3,"tbody"),C(4,Nt,2,0),C(5,qt,2,1),d()()()),c&2&&(f(w.nzTitle||w.nzExtra?0:-1),r(4),f(w.nzLayout==="horizontal"?4:-1),r(),f(w.nzLayout==="vertical"?5:-1))},dependencies:[me,de,ie],encapsulation:2,changeDetection:0})),m})(),Oi=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ne({type:t});static \u0275inj=te({imports:[Kt]})}return t})();var Jt=["template"],ct=["*"];function en(t,n){if(t&1&&(N(0),x(1),R()),t&2){let e=l(3);r(),G(e.nzLabel)}}function tn(t,n){if(t&1&&(s(0,"div",2),z(1,en,2,1,"ng-container",5),d()),t&2){let e=l(2);r(),_("nzStringTemplateOutlet",e.nzLabel)}}function nn(t,n){if(t&1&&(N(0),x(1),R()),t&2){let e=l(2);r(),G(e.nzDot)}}function on(t,n){if(t&1&&(s(0,"li",1),C(1,tn,2,1,"div",2),X(2,"div",3),s(3,"div",4),z(4,nn,2,1,"ng-container",5),d(),s(5,"div",6),E(6),d()()),t&2){let e=l();P("ant-timeline-item-right",(e.nzPosition||e.position)==="right")("ant-timeline-item-left",(e.nzPosition||e.position)==="left")("ant-timeline-item-last",e.isLast),r(),f(e.nzLabel?1:-1),r(2),W("border-color",e.borderColor),P("ant-timeline-item-head-red",e.nzColor==="red")("ant-timeline-item-head-blue",e.nzColor==="blue")("ant-timeline-item-head-green",e.nzColor==="green")("ant-timeline-item-head-gray",e.nzColor==="gray")("ant-timeline-item-head-custom",!!e.nzDot),r(),_("nzStringTemplateOutlet",e.nzDot)}}function rn(t,n){if(t&1&&ae(0,2),t&2){l();let e=le(6);_("ngTemplateOutlet",e)}}function an(t,n){}function ln(t,n){if(t&1&&z(0,an,0,0,"ng-template",2),t&2){let e=n.$implicit;_("ngTemplateOutlet",e.template)}}function sn(t,n){if(t&1&&ae(0,2),t&2){l();let e=le(6);_("ngTemplateOutlet",e)}}function cn(t,n){t&1&&X(0,"nz-icon",8)}function dn(t,n){if(t&1&&(N(0),x(1),C(2,cn,1,0,"nz-icon",8),R()),t&2){let e=l(3);r(),b(" ",e.nzPendingDot," "),r(),f(e.nzPendingDot?-1:2)}}function mn(t,n){if(t&1&&(N(0),x(1),R()),t&2){let e=l(3);r(),b(" ",e.isPendingBoolean?"":e.nzPending," ")}}function pn(t,n){if(t&1&&(s(0,"li",3),X(1,"div",4),s(2,"div",5),z(3,dn,3,2,"ng-container",6),d(),s(4,"div",7),z(5,mn,2,1,"ng-container",6),d()()),t&2){let e=l(2);r(3),_("nzStringTemplateOutlet",e.nzPendingDot),r(2),_("nzStringTemplateOutlet",e.nzPending)}}function gn(t,n){if(t&1&&C(0,pn,6,2,"li",3),t&2){let e=l();f(e.nzPending?0:-1)}}var be=(()=>{class t{check$=new Ie(1);markForCheck(){this.check$.next()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=Fe({token:t,factory:t.\u0275fac})}return t})(),_n=["red","blue","green","grey","gray"];function hn(t){return _n.findIndex(n=>n===t)!==-1}var dt=(()=>{class t{cdr=k(Y);timelineService=k(be);template;nzPosition;nzColor="blue";nzDot;nzLabel;isLast=!1;borderColor=null;position;ngOnChanges(e){this.timelineService.markForCheck();let{nzColor:i}=e;i&&this.updateCustomColor()}detectChanges(){this.cdr.detectChanges()}updateCustomColor(){this.borderColor=hn(this.nzColor)?null:this.nzColor}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({type:t,selectors:[["nz-timeline-item"],["","nz-timeline-item",""]],viewQuery:function(i,o){if(i&1&&U(Jt,5),i&2){let a;A(a=L())&&(o.template=a.first)}},inputs:{nzPosition:"nzPosition",nzColor:"nzColor",nzDot:"nzDot",nzLabel:"nzLabel"},exportAs:["nzTimelineItem"],features:[j],ngContentSelectors:ct,decls:2,vars:0,consts:[["template",""],[1,"ant-timeline-item"],[1,"ant-timeline-item-label"],[1,"ant-timeline-item-tail"],[1,"ant-timeline-item-head"],[4,"nzStringTemplateOutlet"],[1,"ant-timeline-item-content"]],template:function(i,o){i&1&&(F(),z(0,on,7,20,"ng-template",null,0,se))},dependencies:[me,de],encapsulation:2,changeDetection:0})}return t})(),un=(()=>{class t{cdr=k(Y);timelineService=k(be);directionality=k(xe);destroyRef=k(ue);listOfItems;nzMode="left";nzPending;nzPendingDot;nzReverse=!1;isPendingBoolean=!1;timelineItems=[];dir="ltr";hasLabelItem=!1;ngOnChanges(e){let{nzMode:i,nzReverse:o,nzPending:a}=e;(st(i)||st(o))&&this.updateChildren(),a&&(this.isPendingBoolean=a.currentValue===!0)}ngOnInit(){this.timelineService.check$.pipe(J(this.destroyRef)).subscribe(()=>{this.cdr.markForCheck()}),this.directionality.change?.pipe(J(this.destroyRef)).subscribe(e=>{this.dir=e,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngAfterContentInit(){this.updateChildren(),this.listOfItems.changes.pipe(J(this.destroyRef)).subscribe(()=>{this.updateChildren()})}updateChildren(){if(this.listOfItems&&this.listOfItems.length){let e=this.listOfItems.length,i=!1;this.listOfItems.forEach((o,a)=>{o.isLast=this.nzReverse?a===0:a===e-1,o.position=Cn(a,this.nzMode),!i&&o.nzLabel&&(i=!0),o.detectChanges()}),this.timelineItems=this.nzReverse?this.listOfItems.toArray().reverse():this.listOfItems.toArray(),this.hasLabelItem=i}else this.timelineItems=[],this.hasLabelItem=!1;this.cdr.markForCheck()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({type:t,selectors:[["nz-timeline"]],contentQueries:function(i,o,a){if(i&1&&Ce(a,dt,4),i&2){let g;A(g=L())&&(o.listOfItems=g)}},inputs:{nzMode:"nzMode",nzPending:"nzPending",nzPendingDot:"nzPendingDot",nzReverse:[2,"nzReverse","nzReverse",ce]},exportAs:["nzTimeline"],features:[Qe([be]),j],ngContentSelectors:ct,decls:8,vars:14,consts:[["pendingTemplate",""],[1,"ant-timeline"],[3,"ngTemplateOutlet"],[1,"ant-timeline-item","ant-timeline-item-pending"],[1,"ant-timeline-item-tail"],[1,"ant-timeline-item-head","ant-timeline-item-head-custom","ant-timeline-item-head-blue"],[4,"nzStringTemplateOutlet"],[1,"ant-timeline-item-content"],["nzType","loading"]],template:function(i,o){i&1&&(F(),s(0,"ul",1),C(1,rn,1,1,"ng-container",2),S(2,ln,1,1,null,2,B),C(4,sn,1,1,"ng-container",2),d(),z(5,gn,1,1,"ng-template",null,0,se),E(7)),i&2&&(P("ant-timeline-label",o.hasLabelItem)("ant-timeline-right",!o.hasLabelItem&&o.nzMode==="right")("ant-timeline-alternate",o.nzMode==="alternate"||o.nzMode==="custom")("ant-timeline-pending",!!o.nzPending)("ant-timeline-reverse",o.nzReverse)("ant-timeline-rtl",o.dir==="rtl"),r(),f(o.nzReverse?1:-1),r(),I(o.timelineItems),r(2),f(o.nzReverse?-1:4))},dependencies:[ie,me,de,ze,we],encapsulation:2,changeDetection:0})}return t})();function st(t){return!!(t&&(t.previousValue!==t.currentValue||t.isFirstChange()))}function Cn(t,n){if(n!=="custom")return n==="left"||n==="right"?n:n==="alternate"&&t%2===0?"left":"right"}var $i=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ne({type:t});static \u0275inj=te({imports:[dt,un]})}return t})();function Qi(t,n,e,i){let o=(t??"").trim();if(!o)return{summary:"",imageUrl:null,imageAlt:""};let a=null,g="",v=/!\[([^\]]*)\]\(([^)]+)\)/.exec(o);if(v&&(g=v[1]?.trim()??"",a=fn(v[2]??"",n,e,i)),!a){let p=/<img\b[^>]*\bsrc\s*=\s*['"]([^'"]+)['"][^>]*>/i.exec(o);p&&(a=p[1]?.trim()??null,g=/<img\b[^>]*\balt\s*=\s*['"]([^'"]*)['"][^>]*>/i.exec(p[0]??"")?.[1]?.trim()??"")}return{summary:o.replace(/!\[([^\]]*)\]\(([^)]+)\)/g,"\u3010\u56FE\u7247\u3011").replace(/<img\b[^>]*>/gi," ").replace(/```[\s\S]*?```/g," ").replace(/`([^`]*)`/g,"$1").replace(/\[([^\]]+)\]\(([^)]+)\)/g,"$1").replace(/^#{1,6}\s+/gm,"").replace(/^\s*>\s?/gm,"").replace(/^\s*[-*+]\s+/gm,"").replace(/<\/?[^>]+>/g," ").replace(/[*_~]/g,"").replace(/\r?\n+/g," ").replace(/\s+/g," ").trim(),imageUrl:a||null,imageAlt:g}}function fn(t,n,e,i){let o=t.trim();if(!o)return null;let a=o.match(/\/api\/admin\/uploads\/([a-zA-Z0-9_-]+)\/raw/);if(!a)return o;let g=a[1];return`/api/client/hub-token/projects/${n}/${i}/${e}/uploads/${g}/raw`}function Ui(t,n,e,i){let o=/!\[.*?\]\((\/api\/admin\/uploads\/[a-zA-Z0-9_-]+\/raw)\)/g;return t.replace(o,(a,g)=>{let v=g.match(/uploads\/([a-zA-Z0-9_-]+)/);if(!v)return a;let O=v[1],p=`/api/client/hub-token/projects/${n}/${i}/${e}/uploads/${O}/raw`;return a.replace(g,p)})}function Gi(t,n,e,i){let o=[],a=/!\[.*?\]\((\/api\/admin\/uploads\/[a-zA-Z0-9_-]+\/raw)\)/g;return{text:t.replace(a,(v,O)=>{let p=O.match(/uploads\/([a-zA-Z0-9_-]+)/);if(!p)return v;let V=p[1],M=`/api/client/hub-token/projects/${n}/${i}/${e}/uploads/${V}/raw`;return o.push(M),""}).replace(/\n{2,}/g,`
|
|
2
|
-
`).trim(),imgUrls:o}}var vn=["textRef"],xn=["*"];function wn(t,n){t&1&&E(0)}function zn(t,n){t&1&&ae(0)}function Mn(t,n){if(t&1&&z(0,zn,1,0,"ng-container",4),t&2){l();let e=le(5);_("ngTemplateOutlet",e)}}function On(t,n){if(t&1&&x(0),t&2){let e=l();b(" ",e.text()," ")}}function kn(t,n){if(t&1){let e=Z();s(0,"a",5),Q("click",function(){H(e);let o=l();return $(o.toggle())}),x(1),d()}if(t&2){let e=l();r(),b(" ",e.expanded()?"\u6536\u8D77":"\u5C55\u5F00"," ")}}var mt=class t{text=D("");lines=D(2);maxHeight=D(null);enableToggle=D(!0);textRef;observer;expanded=Pe(!1);showToggle=Pe(!1);hasTextInput=Ge(()=>!!this.text());ngAfterViewInit(){this.checkOverflow(),this.initObserver()}ngOnDestroy(){this.observer?.disconnect()}constructor(){qe(()=>{this.text(),this.lines(),setTimeout(()=>this.checkOverflow())})}initObserver(){let n=this.textRef?.nativeElement;n&&(this.observer=new MutationObserver(()=>{this.checkOverflow()}),this.observer.observe(n,{childList:!0,subtree:!0,characterData:!0}))}checkOverflow(){this.toggle(!1),this.showToggle.set(!1);let n=this.textRef?.nativeElement;n&&requestAnimationFrame(()=>{let e=n.scrollHeight>n.clientHeight,i=this.maxHeight()!=null&&n.scrollHeight>this.maxHeight();this.showToggle.set(e||i)})}toggle(n){n!==void 0?this.expanded.set(n):this.expanded.update(e=>!e)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=y({type:t,selectors:[["app-ellipsis-text"]],viewQuery:function(e,i){if(e&1&&U(vn,5),e&2){let o;A(o=L())&&(i.textRef=o.first)}},inputs:{text:[1,"text"],lines:[1,"lines"],maxHeight:[1,"maxHeight"],enableToggle:[1,"enableToggle"]},ngContentSelectors:xn,decls:7,vars:8,consts:[["textRef",""],["textTpl",""],[1,"text"],[1,"toggle"],[4,"ngTemplateOutlet"],[1,"toggle",3,"click"]],template:function(e,i){e&1&&(F(),s(0,"span",2,0),C(2,wn,1,0)(3,Mn,1,1,"ng-container"),z(4,On,1,1,"ng-template",null,1,se),d(),C(6,kn,2,1,"a",3)),e&2&&(W("--line-clamp",i.lines())("--max-height",i.maxHeight(),"px"),P("expanded",i.expanded()),r(2),f(i.hasTextInput()?3:2),r(4),f(i.showToggle()&&i.enableToggle()?6:-1))},dependencies:[ve,ie],styles:[".text[_ngcontent-%COMP%]{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word;-webkit-line-clamp:var(--line-clamp);max-height:var(--max-height)}.text.expanded[_ngcontent-%COMP%]{-webkit-line-clamp:unset!important;max-height:none!important}.toggle[_ngcontent-%COMP%]{font-size:.8rem;font-weight:700;color:#1677ff;cursor:pointer;-webkit-user-select:none;user-select:none}"]})};var Pn=[[["","actions",""]],"*"],bn=["[actions]","*"],Tn=t=>({maxHeight:t});function yn(t,n){if(t&1&&X(0,"nz-badge",5),t&2){let e=l(2);_("nzCount",e.count())}}function Sn(t,n){if(t&1&&(s(0,"div",1)(1,"h2",4),x(2),C(3,yn,1,1,"nz-badge",5),d(),E(4),d()),t&2){let e=l();r(2),b(" ",e.title()," "),r(),f(e.count()!==null?3:-1)}}function In(t,n){if(t&1&&(s(0,"div",3),x(1),d()),t&2){let e=l();r(),G(e.emptyText())}}function Dn(t,n){t&1&&E(0,1)}var gt=class t{title=D();maxHeight=D();count=D(null);emptyStatus=D(!1);emptyText=D("\u6682\u65E0\u6570\u636E");static \u0275fac=function(e){return new(e||t)};static \u0275cmp=y({type:t,selectors:[["app-detail-item-card"]],inputs:{title:[1,"title"],maxHeight:[1,"maxHeight"],count:[1,"count"],emptyStatus:[1,"emptyStatus"],emptyText:[1,"emptyText"]},ngContentSelectors:bn,decls:5,vars:6,consts:[[1,"detail-item"],[1,"actions"],[1,"content"],[1,"empty"],[1,"wrap-title"],["nzStandalone","","nzShowZero","","nzColor","#eaeaea",3,"nzCount"]],template:function(e,i){e&1&&(F(Pn),s(0,"nz-card",0),C(1,Sn,5,2,"div",1),s(2,"div",2),C(3,In,2,1,"div",3)(4,Dn,1,0),d()()),e&2&&(je(Ue(4,Tn,i.maxHeight())),r(),f(i.title()?1:-1),r(2),f(i.emptyStatus()?3:4))},dependencies:[Xe,Ke,it,nt],styles:[".detail-item[_ngcontent-%COMP%]{height:100%;width:100%;display:flex;flex-direction:column}.detail-item[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{margin-bottom:12px;padding:0 4px 4px;display:flex;border-bottom:1px solid #f0f0f0}.detail-item[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%] .wrap-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;margin-bottom:0;width:100%;font-size:18px;font-weight:700}[_nghost-%COMP%] .ant-card-body{min-height:0;height:100%;flex:1;display:flex;flex-direction:column}.content[_ngcontent-%COMP%]{overflow-y:auto;flex:1}.empty[_ngcontent-%COMP%]{font-size:.875rem;text-align:center;color:gray}[_nghost-%COMP%] .ant-card-bordered{border-radius:10px}"]})};var En=["textEl"],_t=["*"];function Nn(t,n){if(t&1&&X(0,"nz-icon",1),t&2){let e=l();_("nzType",e.nzIcon)}}function Rn(t,n){if(t&1){let e=Z();s(0,"img",4),Q("error",function(o){H(e);let a=l();return $(a.imgError(o))}),d()}if(t&2){let e=l();_("src",e.nzSrc,Le),re("srcset",e.nzSrcSet)("alt",e.nzAlt)("loading",e.nzLoading()||"eager")("fetchpriority",e.nzFetchPriority()||"auto")}}function Fn(t,n){if(t&1&&(s(0,"span",3,0),x(2),d()),t&2){let e=l();r(2),G(e.nzText)}}var An="avatar",Ln=(()=>{var p;let t,n=[],e=[],i,o=[],a=[],g,v=[],O=[];return p=class{_nzModuleName=An;nzShape=T(this,n,"circle");nzSize=(T(this,e),T(this,o,"default"));nzGap=(T(this,a),T(this,v,4));nzText=T(this,O);nzSrc;nzSrcSet;nzAlt;nzIcon;nzLoading=D();nzFetchPriority=D();nzError=new Be;hasText=!1;hasSrc=!0;hasIcon=!1;customSize=null;textEl;el=k(Ae).nativeElement;cdr=k(Y);constructor(){Ve(()=>this.calcStringSize())}imgError(M){this.nzError.emit(M),M.defaultPrevented||(this.hasSrc=!1,this.hasIcon=!1,this.hasText=!1,this.nzIcon?this.hasIcon=!0:this.nzText&&(this.hasText=!0),this.cdr.detectChanges(),this.setSizeStyle(),this.calcStringSize())}ngOnChanges(){this.hasText=!this.nzSrc&&!!this.nzText,this.hasIcon=!this.nzSrc&&!!this.nzIcon,this.hasSrc=!!this.nzSrc,this.setSizeStyle(),this.calcStringSize()}calcStringSize(){if(!this.hasText||!this.textEl)return;let M=this.textEl.nativeElement,m=M.offsetWidth,h=this.el.getBoundingClientRect?.().width??0,u=this.nzGap*2<h?this.nzGap*2:8,c=h-u<m?(h-u)/m:1;M.style.transform=`scale(${c}) translateX(-50%)`,M.style.lineHeight=this.customSize||""}setSizeStyle(){typeof this.nzSize=="number"?this.customSize=We(this.nzSize):this.customSize=null,this.cdr.markForCheck()}},(()=>{let M=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;t=[K()],i=[K()],g=[K()],q(null,null,t,{kind:"field",name:"nzShape",static:!1,private:!1,access:{has:m=>"nzShape"in m,get:m=>m.nzShape,set:(m,h)=>{m.nzShape=h}},metadata:M},n,e),q(null,null,i,{kind:"field",name:"nzSize",static:!1,private:!1,access:{has:m=>"nzSize"in m,get:m=>m.nzSize,set:(m,h)=>{m.nzSize=h}},metadata:M},o,a),q(null,null,g,{kind:"field",name:"nzGap",static:!1,private:!1,access:{has:m=>"nzGap"in m,get:m=>m.nzGap,set:(m,h)=>{m.nzGap=h}},metadata:M},v,O),M&&Object.defineProperty(p,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:M})})(),ee(p,"\u0275fac",function(m){return new(m||p)}),ee(p,"\u0275cmp",y({type:p,selectors:[["nz-avatar"]],viewQuery:function(m,h){if(m&1&&U(En,5),m&2){let u;A(u=L())&&(h.textEl=u.first)}},hostAttrs:[1,"ant-avatar"],hostVars:20,hostBindings:function(m,h){m&2&&(W("width",h.customSize)("height",h.customSize)("line-height",h.customSize)("font-size",h.hasIcon&&h.customSize?h.nzSize/2:null,"px"),P("ant-avatar-lg",h.nzSize==="large")("ant-avatar-sm",h.nzSize==="small")("ant-avatar-square",h.nzShape==="square")("ant-avatar-circle",h.nzShape==="circle")("ant-avatar-icon",h.nzIcon)("ant-avatar-image",h.hasSrc))},inputs:{nzShape:"nzShape",nzSize:"nzSize",nzGap:[2,"nzGap","nzGap",fe],nzText:"nzText",nzSrc:"nzSrc",nzSrcSet:"nzSrcSet",nzAlt:"nzAlt",nzIcon:"nzIcon",nzLoading:[1,"nzLoading"],nzFetchPriority:[1,"nzFetchPriority"]},outputs:{nzError:"nzError"},exportAs:["nzAvatar"],features:[j],ngContentSelectors:_t,decls:4,vars:1,consts:[["textEl",""],[3,"nzType"],[3,"src"],[1,"ant-avatar-string"],[3,"error","src"]],template:function(m,h){m&1&&(F(),C(0,Nn,1,1,"nz-icon",1)(1,Rn,1,5,"img",2)(2,Fn,3,1,"span",3),E(3)),m&2&&f(h.nzIcon&&h.hasIcon?0:h.nzSrc&&h.hasSrc?1:h.nzText&&h.hasText?2:-1)},dependencies:[ze,we],encapsulation:2,changeDetection:0})),p})(),Mo=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275cmp=y({type:t,selectors:[["nz-avatar-group"]],hostAttrs:[1,"ant-avatar-group"],exportAs:["nzAvatarGroup"],ngContentSelectors:_t,decls:1,vars:0,template:function(i,o){i&1&&(F(),E(0))},encapsulation:2,changeDetection:0})}return t})(),Oo=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=ne({type:t});static \u0275inj=te({imports:[Ln]})}return t})();var Bn=["viewerRef"],ut=(t,n)=>n.id;function Vn(t,n){if(t&1){let e=Z();s(0,"li")(1,"button",12),Q("click",function(){let o=H(e).$implicit,a=l(3);return $(a.jumpToHeading(o.id))}),x(2),d()()}if(t&2){let e=n.$implicit,i=l(3);r(),W("padding-left",(e.level-1)*12,"px"),P("is-active",i.activeTocId===e.id),re("data-toc-id",e.id),r(),b(" ",e.text," ")}}function Hn(t,n){if(t&1&&(s(0,"aside",9)(1,"div",10),x(2,"On this page"),d(),s(3,"ul",11),S(4,Vn,3,6,"li",null,ut),d()()),t&2){let e=l(2);r(4),I(e.tocItems)}}function $n(t,n){if(t&1){let e=Z();s(0,"div",7)(1,"button",8),Q("click",function(){H(e);let o=l();return $(o.toggleToc())}),x(2),d(),C(3,Hn,6,0,"aside",9),d()}if(t&2){let e=l();P("is-collapsed",e.tocCollapsed),r(2),b(" ",e.tocCollapsed?"\u76EE\u5F55":"\u6536\u8D77\u76EE\u5F55"," "),r(),f(e.tocCollapsed?-1:3)}}function jn(t,n){if(t&1){let e=Z();s(0,"li")(1,"button",12),Q("click",function(){let o=H(e).$implicit,a=l(2);return $(a.jumpToHeading(o.id))}),x(2),d()()}if(t&2){let e=n.$implicit,i=l(2);r(),W("padding-left",(e.level-1)*12,"px"),P("is-active",i.activeTocId===e.id),re("data-toc-id",e.id),r(),b(" ",e.text," ")}}function Qn(t,n){if(t&1&&(s(0,"aside",4)(1,"div",10),x(2,"On this page"),d(),s(3,"ul",11),S(4,jn,3,6,"li",null,ut),d()()),t&2){let e=l();r(4),I(e.tocItems)}}var ht=class t{imageService=k(ot);cdr=k(Y);viewerRef;content="";showToc=!0;tocVariant="inline";tocCollapsedByDefault=!1;tocItems=[];activeTocId=null;tocCollapsed=!1;headingElements=[];scrollContainer=null;scrollListener=null;ngOnChanges(n){(n.content||n.showToc||n.tocCollapsedByDefault||n.tocVariant)&&queueMicrotask(()=>this.buildToc())}onMarkdownReady(){this.buildToc()}ngOnDestroy(){this.teardownScrollTracking()}jumpToHeading(n){let i=this.viewerRef?.nativeElement?.querySelector(`#${CSS.escape(n)}`);if(!i)return;this.activeTocId=n,this.cdr.markForCheck(),queueMicrotask(()=>this.ensureActiveTocItemVisible());let o=this.scrollContainer instanceof HTMLElement?this.scrollContainer:null,a=16;if(o){let v=o.getBoundingClientRect(),O=i.getBoundingClientRect(),p=o.scrollTop+(O.top-v.top)-a;o.scrollTo({top:Math.max(0,p),behavior:"smooth"});return}let g=i.getBoundingClientRect().top+window.scrollY-88;window.scrollTo({top:Math.max(0,g),behavior:"smooth"})}toggleToc(){this.tocCollapsed=!this.tocCollapsed}onContentClick(n){let i=n.target?.closest("img");if(!i?.src)return;let o=this.viewerRef?.nativeElement,a=o?Array.from(o.querySelectorAll("img")):[i],g=a.map(p=>({src:p.currentSrc||p.src,alt:p.alt||void 0})).filter(p=>!!p.src),v=Math.max(0,a.findIndex(p=>p===i));if(g.length===0)return;let O=this.imageService.preview(g,{nzMaskClosable:!0,nzKeyboard:!0});v>0&&O.switchTo(v)}buildToc(){if(!this.showToc){this.tocItems=[],this.activeTocId=null,this.tocCollapsed=!0,this.teardownScrollTracking(),this.cdr.markForCheck();return}let n=this.viewerRef?.nativeElement;if(!n){this.tocItems=[],this.activeTocId=null,this.tocCollapsed=this.tocCollapsedByDefault,this.teardownScrollTracking(),this.cdr.markForCheck();return}let e=Array.from(n.querySelectorAll("h1, h2, h3")),i=new Map,o=[];for(let a=0;a<e.length;a+=1){let g=e[a],v=(g.textContent||"").trim();if(!v)continue;let O=Number(g.tagName.slice(1))||1,p=this.slugify(v)||`section-${a+1}`,V=i.get(p)??0;i.set(p,V+1),V>0&&(p=`${p}-${V+1}`),g.id=g.id||p,o.push({id:g.id,text:v,level:O})}this.tocItems=o,this.activeTocId=o[0]?.id??null,this.tocCollapsed=this.tocCollapsedByDefault,this.setupScrollTracking(n,e),this.cdr.markForCheck()}setupScrollTracking(n,e){if(this.teardownScrollTracking(),e.length===0)return;this.headingElements=e;let i=this.findScrollContainer(n);this.scrollContainer=i??window,this.scrollListener=()=>this.syncActiveHeading(),this.scrollContainer.addEventListener("scroll",this.scrollListener,{passive:!0}),window.addEventListener("resize",this.scrollListener,{passive:!0}),this.syncActiveHeading()}teardownScrollTracking(){this.scrollListener&&(this.scrollContainer?.removeEventListener("scroll",this.scrollListener),window.removeEventListener("resize",this.scrollListener)),this.headingElements=[],this.scrollContainer=null,this.scrollListener=null}syncActiveHeading(){if(this.headingElements.length===0)return;let n=96,e=this.headingElements[0],i=this.scrollContainer instanceof HTMLElement?this.scrollContainer:null;if(i){let o=i.getBoundingClientRect(),a=i.scrollTop+n;Math.max(i.scrollHeight-i.clientHeight,0)-i.scrollTop<=2&&(e=this.headingElements[this.headingElements.length-1]);for(let O of this.headingElements)if(O.getBoundingClientRect().top-o.top+i.scrollTop<=a)e=O;else break}else for(let o of this.headingElements)if(o.getBoundingClientRect().top<=n)e=o;else break;!e.id||e.id===this.activeTocId||(this.activeTocId=e.id,this.cdr.markForCheck(),queueMicrotask(()=>this.ensureActiveTocItemVisible()))}ensureActiveTocItemVisible(){let n=this.viewerRef?.nativeElement;if(!n||!this.activeTocId)return;let e=n.querySelector(`.markdown-toc__item[data-toc-id="${CSS.escape(this.activeTocId)}"]`);if(!e)return;let i=e.closest(".markdown-toc--floating, .markdown-toc");if(!i)return;e.scrollIntoView({block:"nearest",inline:"nearest"});let o=e.offsetTop,a=o+e.offsetHeight,g=i.scrollTop,v=g+i.clientHeight;o<g?i.scrollTop=Math.max(o-8,0):a>v&&(i.scrollTop=a-i.clientHeight+8)}findScrollContainer(n){let e=n.parentElement;for(;e;){let o=getComputedStyle(e).overflowY;if((o==="auto"||o==="scroll")&&e.scrollHeight>e.clientHeight)return e;e=e.parentElement}return null}slugify(n){return n.toLowerCase().trim().replace(/\s+/g,"-").replace(/[^\w\u4e00-\u9fa5-]/g,"").replace(/-+/g,"-").replace(/^-|-$/g,"")}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=y({type:t,selectors:[["app-markdown-viewer"]],viewQuery:function(e,i){if(e&1&&U(Bn,7),e&2){let o;A(o=L())&&(i.viewerRef=o.first)}},inputs:{content:"content",showToc:"showToc",tocVariant:"tocVariant",tocCollapsedByDefault:"tocCollapsedByDefault"},features:[j],decls:7,vars:6,consts:[["viewerRef",""],[1,"markdown-viewer","markdown-body",3,"click"],[1,"markdown-layout"],[1,"markdown-toc-floating",3,"is-collapsed"],[1,"markdown-toc"],[1,"markdown-content"],[3,"ready","data","clipboard"],[1,"markdown-toc-floating"],["type","button",1,"markdown-toc-floating__toggle",3,"click"],[1,"markdown-toc","markdown-toc--floating"],[1,"markdown-toc__title"],[1,"markdown-toc__list"],["type","button",1,"markdown-toc__item",3,"click"]],template:function(e,i){if(e&1){let o=Z();s(0,"div",1,0),Q("click",function(g){return H(o),$(i.onContentClick(g))}),s(2,"div",2),C(3,$n,4,4,"div",3),C(4,Qn,6,0,"aside",4),s(5,"div",5)(6,"markdown",6),Q("ready",function(){return H(o),$(i.onMarkdownReady())}),d()()()()}e&2&&(r(2),P("has-toc",i.showToc&&i.tocItems.length>0&&i.tocVariant==="inline"),r(),f(i.showToc&&i.tocItems.length>0&&i.tocVariant==="floating"?3:-1),r(),f(i.showToc&&i.tocItems.length>0&&i.tocVariant==="inline"?4:-1),r(2),_("data",i.content)("clipboard",!0))},dependencies:[ve,lt,at,rt],styles:['[_nghost-%COMP%]{display:block;width:100%}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%]{font-size:14px;line-height:1.8;color:var(--text-primary, #262626);word-break:break-word}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] .markdown-layout[_ngcontent-%COMP%]{display:block;position:relative}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] .markdown-layout.has-toc[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;align-items:start}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] .markdown-content[_ngcontent-%COMP%]{min-width:0;order:1;display:flow-root}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] .markdown-toc-floating[_ngcontent-%COMP%]{position:sticky;top:8px;z-index:4;display:flex;flex-direction:column;align-items:flex-end;gap:8px;float:right;clear:right;margin:0 0 8px 16px;width:fit-content}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] .markdown-toc-floating__toggle[_ngcontent-%COMP%]{height:30px;min-width:64px;padding:0 10px;border:1px solid var(--border-color-soft, #d9dde6);border-radius:999px;background:var(--surface-elevated, rgba(255, 255, 255, .92));color:var(--text-secondary, #475569);font-size:12px;line-height:28px;cursor:pointer;box-shadow:0 6px 16px #0f172a1a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] .markdown-toc-floating__toggle[_ngcontent-%COMP%]:hover{color:var(--text-primary, #0f172a)}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] .markdown-toc--floating[_ngcontent-%COMP%]{width:220px;max-height:min(55vh,420px);overflow:auto;margin:0;padding:10px 0 10px 14px;border-radius:14px;border:1px solid var(--border-color-soft, #e5e6eb);background:var(--surface-elevated, rgba(255, 255, 255, .96));box-shadow:0 14px 28px #0f172a29;position:static}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] .markdown-toc.markdown-toc--floating[_ngcontent-%COMP%]{position:static;top:auto;order:initial;border-left:0;padding-left:14px}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] .markdown-toc[_ngcontent-%COMP%]{margin:0;padding:6px 0 6px 18px;border-left:1px solid var(--border-color-soft, #e5e6eb);position:sticky;top:76px;order:2;min-width:0;max-height:min(68vh,calc(100vh - 140px));overflow:auto}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] .markdown-toc__title[_ngcontent-%COMP%]{margin:0 0 10px;font-size:14px;font-weight:700;color:var(--text-heading, #1f2937)}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] .markdown-toc__list[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:grid;gap:2px}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] .markdown-toc__item[_ngcontent-%COMP%]{position:relative;width:100%;min-height:30px;border:0;border-radius:0;background:transparent;color:var(--text-muted, #64748b);text-align:left;font-size:13px;line-height:1.45;padding:4px 8px 4px 10px;cursor:pointer;white-space:normal;word-break:break-word;overflow-wrap:anywhere}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] .markdown-toc__item[_ngcontent-%COMP%]:hover{background:transparent;color:var(--text-primary, #0f172a)}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] .markdown-toc__item.is-active[_ngcontent-%COMP%]{color:var(--primary-500, #2563eb);font-weight:600}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] .markdown-toc__item.is-active[_ngcontent-%COMP%]:after{content:"";position:absolute;left:2px;top:7px;bottom:7px;width:2px;border-radius:999px;background:var(--primary-500, #2563eb)}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] .markdown-toc--floating[_ngcontent-%COMP%] .markdown-toc__item[_ngcontent-%COMP%]{padding-left:10px}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] h1, [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] h2, [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] h3, [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] h4, [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] h5, [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] h6{margin:1.2em 0 .6em;font-weight:600;line-height:1.4;word-break:break-word;overflow-wrap:anywhere}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] h1{font-size:28px}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] h2{font-size:24px}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] h3{font-size:20px}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] h1, [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] h2, [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] h3, [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] h4, [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] h5, [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] h6{scroll-margin-top:88px}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] p{margin:0 0 12px}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] ul, [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] ol{margin:0 0 12px;padding-left:24px}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] li{margin:4px 0}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] blockquote{margin:0 0 12px;padding:8px 12px;color:#595959;border-left:4px solid #d9d9d9;background:#fafafa}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] pre{overflow:auto;padding:12px 14px;border-radius:8px;background:#f6f8fa;border:1px solid var(--border-color-soft, #e5e6eb)}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] code{font-family:Consolas,Courier New,monospace}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] :not(pre)>code{padding:2px 6px;border-radius:6px;background:var(--bg-subtle, #f5f7fa);border:1px solid var(--border-color-soft, #e5e6eb);color:var(--text-primary, #262626);font-size:13px}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] pre code{background:transparent;border:0;padding:0;color:inherit;font-size:13px;line-height:1.7}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] table{width:100%;margin:0 0 12px;border-collapse:collapse}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] th, [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] td{padding:8px 10px;border:1px solid #e5e6eb;text-align:left}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] img{display:block;max-width:100%;width:auto;max-height:min(32vh,100px);margin:12px 0;border-radius:10px;object-fit:contain;border:1px solid var(--border-color-soft, #e5e6eb);background:var(--bg-elevated, #fff);cursor:zoom-in;box-shadow:0 4px 12px #0f172a14}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] a{color:#1677ff;text-decoration:none}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] a:hover{text-decoration:underline}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] html[data-theme="dark"][_nghost-%COMP%] pre, html[data-theme="dark"] [_nghost-%COMP%] pre{background:#0f172a;border-color:#94a3b83d}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] html[data-theme="dark"][_nghost-%COMP%] :not(pre)>code, html[data-theme="dark"] [_nghost-%COMP%] :not(pre)>code{background:#94a3b824;border-color:#94a3b83d;color:#e2e8f0}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] html[data-theme="dark"][_nghost-%COMP%] .markdown-toc[_ngcontent-%COMP%], html[data-theme="dark"] [_nghost-%COMP%] .markdown-toc[_ngcontent-%COMP%], [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] html.dark[_nghost-%COMP%] .markdown-toc[_ngcontent-%COMP%], html.dark [_nghost-%COMP%] .markdown-toc[_ngcontent-%COMP%], [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] body[data-theme="dark"][_nghost-%COMP%] .markdown-toc[_ngcontent-%COMP%], body[data-theme="dark"] [_nghost-%COMP%] .markdown-toc[_ngcontent-%COMP%]{border-color:#94a3b83d;background:transparent}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] html[data-theme="dark"][_nghost-%COMP%] .markdown-toc--floating[_ngcontent-%COMP%], html[data-theme="dark"] [_nghost-%COMP%] .markdown-toc--floating[_ngcontent-%COMP%], [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] html.dark[_nghost-%COMP%] .markdown-toc--floating[_ngcontent-%COMP%], html.dark [_nghost-%COMP%] .markdown-toc--floating[_ngcontent-%COMP%], [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] body[data-theme="dark"][_nghost-%COMP%] .markdown-toc--floating[_ngcontent-%COMP%], body[data-theme="dark"] [_nghost-%COMP%] .markdown-toc--floating[_ngcontent-%COMP%]{border-color:#94a3b847;background:#162033!important;box-shadow:0 14px 28px #02061773}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] html[data-theme="dark"][_nghost-%COMP%] .markdown-toc-floating__toggle[_ngcontent-%COMP%], html[data-theme="dark"] [_nghost-%COMP%] .markdown-toc-floating__toggle[_ngcontent-%COMP%], [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] html.dark[_nghost-%COMP%] .markdown-toc-floating__toggle[_ngcontent-%COMP%], html.dark [_nghost-%COMP%] .markdown-toc-floating__toggle[_ngcontent-%COMP%], [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] body[data-theme="dark"][_nghost-%COMP%] .markdown-toc-floating__toggle[_ngcontent-%COMP%], body[data-theme="dark"] [_nghost-%COMP%] .markdown-toc-floating__toggle[_ngcontent-%COMP%]{border-color:#94a3b84d!important;background:#162033!important;color:#e2e8f0!important;box-shadow:0 10px 22px #0206176b}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] html[data-theme="dark"][_nghost-%COMP%] .markdown-toc__title[_ngcontent-%COMP%], html[data-theme="dark"] [_nghost-%COMP%] .markdown-toc__title[_ngcontent-%COMP%], [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] html.dark[_nghost-%COMP%] .markdown-toc__title[_ngcontent-%COMP%], html.dark [_nghost-%COMP%] .markdown-toc__title[_ngcontent-%COMP%], [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] body[data-theme="dark"][_nghost-%COMP%] .markdown-toc__title[_ngcontent-%COMP%], body[data-theme="dark"] [_nghost-%COMP%] .markdown-toc__title[_ngcontent-%COMP%]{color:#e2e8f0}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] html[data-theme="dark"][_nghost-%COMP%] .markdown-toc__item[_ngcontent-%COMP%], html[data-theme="dark"] [_nghost-%COMP%] .markdown-toc__item[_ngcontent-%COMP%], [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] html.dark[_nghost-%COMP%] .markdown-toc__item[_ngcontent-%COMP%], html.dark [_nghost-%COMP%] .markdown-toc__item[_ngcontent-%COMP%], [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] body[data-theme="dark"][_nghost-%COMP%] .markdown-toc__item[_ngcontent-%COMP%], body[data-theme="dark"] [_nghost-%COMP%] .markdown-toc__item[_ngcontent-%COMP%]{color:#cbd5e1}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] html[data-theme="dark"][_nghost-%COMP%] .markdown-toc__item[_ngcontent-%COMP%]:hover, html[data-theme="dark"] [_nghost-%COMP%] .markdown-toc__item[_ngcontent-%COMP%]:hover, [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] html.dark[_nghost-%COMP%] .markdown-toc__item[_ngcontent-%COMP%]:hover, html.dark [_nghost-%COMP%] .markdown-toc__item[_ngcontent-%COMP%]:hover, [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] body[data-theme="dark"][_nghost-%COMP%] .markdown-toc__item[_ngcontent-%COMP%]:hover, body[data-theme="dark"] [_nghost-%COMP%] .markdown-toc__item[_ngcontent-%COMP%]:hover{color:#f1f5f9}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] html[data-theme="dark"][_nghost-%COMP%] .markdown-toc__item.is-active[_ngcontent-%COMP%], html[data-theme="dark"] [_nghost-%COMP%] .markdown-toc__item.is-active[_ngcontent-%COMP%], [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] html.dark[_nghost-%COMP%] .markdown-toc__item.is-active[_ngcontent-%COMP%], html.dark [_nghost-%COMP%] .markdown-toc__item.is-active[_ngcontent-%COMP%], [_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] body[data-theme="dark"][_nghost-%COMP%] .markdown-toc__item.is-active[_ngcontent-%COMP%], body[data-theme="dark"] [_nghost-%COMP%] .markdown-toc__item.is-active[_ngcontent-%COMP%]{color:#60a5fa}@media (max-width: 1024px){[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] .markdown-layout.has-toc[_ngcontent-%COMP%]{grid-template-columns:1fr}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] .markdown-toc[_ngcontent-%COMP%]{position:static;margin-bottom:12px}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] .markdown-toc-floating[_ngcontent-%COMP%]{position:static;margin-bottom:8px;align-items:flex-start}[_nghost-%COMP%] .markdown-viewer[_ngcontent-%COMP%] .markdown-toc--floating[_ngcontent-%COMP%]{width:100%;max-height:none}}'],changeDetection:0})};export{Zt as a,Kt as b,Oi as c,dt as d,un as e,$i as f,Un as g,Gn as h,qn as i,Zn as j,Wn as k,Yn as l,Kn as m,Xn as n,Jn as o,ei as p,gt as q,Ln as r,Mo as s,Oo as t,ni as u,ii as v,oi as w,ht as x,Qi as y,Ui as z,Gi as A,mt as B};
|