@yinuo-ngm/server 1.0.23 → 1.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/lib/modules/agent-connections/agent-connections.schema.d.ts +4 -0
  2. package/lib/modules/agent-connections/agent-connections.schema.js +112 -0
  3. package/lib/modules/agent-connections/agent-connections.service.d.ts +18 -0
  4. package/lib/modules/agent-connections/agent-connections.service.js +209 -0
  5. package/lib/modules/agent-connections/agent-connections.types.d.ts +57 -0
  6. package/lib/modules/agent-connections/agent-connections.types.js +2 -0
  7. package/lib/modules/agent-connections/atomic-json-file.d.ts +8 -0
  8. package/lib/modules/agent-connections/atomic-json-file.js +44 -0
  9. package/lib/modules/agent-connections/token-mask.d.ts +1 -0
  10. package/lib/modules/agent-connections/token-mask.js +12 -0
  11. package/lib/routes/agent-connections.routes.d.ts +3 -0
  12. package/lib/routes/agent-connections.routes.js +28 -0
  13. package/lib/routes/index.js +2 -0
  14. package/package.json +4 -3
  15. package/www/3rdpartylicenses.txt +5 -5
  16. package/www/browser/chunk-2EB7UV3S.js +15 -0
  17. package/www/browser/{chunk-3I7BQCXS.js → chunk-2S6Y2RQI.js} +1 -1
  18. package/www/browser/{chunk-U3EUR236.js → chunk-2SYBXRWK.js} +1 -1
  19. package/www/browser/{chunk-OUGN4APK.js → chunk-365ZCRSD.js} +1 -1
  20. package/www/browser/{chunk-6UFDNETG.js → chunk-3MPEGFKP.js} +1 -1
  21. package/www/browser/{chunk-WCHN62X6.js → chunk-4PSSTE76.js} +1 -1
  22. package/www/browser/{chunk-DENFXXOY.js → chunk-5HVK6MON.js} +1 -1
  23. package/www/browser/{chunk-TXAXE73U.js → chunk-5Y7KNVNN.js} +1 -1
  24. package/www/browser/chunk-6L2CHHFV.js +1 -0
  25. package/www/browser/{chunk-NNOWADVM.js → chunk-6ZXQKFRQ.js} +1 -1
  26. package/www/browser/chunk-735SLX4X.js +1 -0
  27. package/www/browser/chunk-7KLACOZT.js +2 -0
  28. package/www/browser/chunk-7VJKEZTT.js +20 -0
  29. package/www/browser/{chunk-CO3CQHKV.js → chunk-7X4X4YHI.js} +1 -1
  30. package/www/browser/chunk-ACYCDF6M.js +1 -0
  31. package/www/browser/{chunk-UJKK4A7Y.js → chunk-AQYHNHJ3.js} +1 -1
  32. package/www/browser/chunk-BHKSOTOM.js +1 -0
  33. package/www/browser/{chunk-3ODVU46S.js → chunk-BXZVX5KD.js} +1 -1
  34. package/www/browser/{chunk-TCBOC5FF.js → chunk-C5DOE7UG.js} +1 -1
  35. package/www/browser/{chunk-7AKVG375.js → chunk-C6GC5OOE.js} +1 -1
  36. package/www/browser/{chunk-SSCUT2GF.js → chunk-D5W7J3FS.js} +1 -1
  37. package/www/browser/chunk-DPGKZHEW.js +1 -0
  38. package/www/browser/chunk-DRV2KPHO.js +1 -0
  39. package/www/browser/chunk-E2WRB7KQ.js +2 -0
  40. package/www/browser/{chunk-MPLGMTLT.js → chunk-EAFAHVBG.js} +1 -1
  41. package/www/browser/{chunk-WWIPELAV.js → chunk-ERH36Q6S.js} +1 -1
  42. package/www/browser/chunk-GSUKZOEV.js +1 -0
  43. package/www/browser/chunk-GYXK6ZZT.js +1 -0
  44. package/www/browser/{chunk-PDI3HSSH.js → chunk-H27FQ6OP.js} +3 -3
  45. package/www/browser/chunk-I7RTVSMK.js +1 -0
  46. package/www/browser/{chunk-SD2HFD54.js → chunk-IVX3LVU4.js} +1 -1
  47. package/www/browser/{chunk-U2YWR3HF.js → chunk-IX6UZA7J.js} +1 -1
  48. package/www/browser/{chunk-CPJTSA6E.js → chunk-JFR7U5DE.js} +1 -1
  49. package/www/browser/chunk-JIVQNGBJ.js +1 -0
  50. package/www/browser/{chunk-PY3AUTHC.js → chunk-KDMWEV46.js} +1 -1
  51. package/www/browser/{chunk-JM6DCZP6.js → chunk-LRHJZDWY.js} +1 -1
  52. package/www/browser/chunk-NVN2P466.js +1 -0
  53. package/www/browser/{chunk-NREWZQVN.js → chunk-O64FT2TA.js} +1 -1
  54. package/www/browser/{chunk-YVRGRFK2.js → chunk-OZONPLGN.js} +1 -1
  55. package/www/browser/chunk-PC7TJLCL.js +2 -0
  56. package/www/browser/{chunk-7GLWEFTM.js → chunk-PNFC3J4Z.js} +1 -1
  57. package/www/browser/chunk-PRKDURHI.js +1 -0
  58. package/www/browser/{chunk-RMIYLAEM.js → chunk-PUHSNEN6.js} +1 -1
  59. package/www/browser/{chunk-442QFABJ.js → chunk-RKKAY5CD.js} +1 -1
  60. package/www/browser/{chunk-M6NZ6C2R.js → chunk-RLH7DAA2.js} +1 -1
  61. package/www/browser/chunk-S6BY2OTR.js +1 -0
  62. package/www/browser/{chunk-KRYMOHYF.js → chunk-SIKDYQOR.js} +1 -1
  63. package/www/browser/{chunk-RKK4I2RT.js → chunk-SVRGVAFE.js} +1 -1
  64. package/www/browser/chunk-TPVKLECM.js +1 -0
  65. package/www/browser/{chunk-UPOORT3S.js → chunk-VBMHQZWH.js} +1 -1
  66. package/www/browser/chunk-WVRMU265.js +1 -0
  67. package/www/browser/chunk-X6PRUZ5G.js +1 -0
  68. package/www/browser/{chunk-PUG3VNTI.js → chunk-XQQ6PT2E.js} +1 -1
  69. package/www/browser/chunk-XUUNCF53.js +1 -0
  70. package/www/browser/{chunk-4BRW6LCZ.js → chunk-YGWA6NUS.js} +1 -1
  71. package/www/browser/{chunk-2VJVGBXG.js → chunk-YNYWN7QI.js} +1 -1
  72. package/www/browser/chunk-Z4T3LTE2.js +1 -0
  73. package/www/browser/chunk-Z7GYTPTP.js +1 -0
  74. package/www/browser/chunk-ZZN3NP7F.js +1 -0
  75. package/www/browser/index.html +1 -1
  76. package/www/browser/main-HMOP3OWL.js +38 -0
  77. package/www/browser/chunk-6J6G7JEP.js +0 -1
  78. package/www/browser/chunk-7QR6RHLA.js +0 -1
  79. package/www/browser/chunk-H2USFIYR.js +0 -1
  80. package/www/browser/chunk-HC5KLPHD.js +0 -1
  81. package/www/browser/chunk-HJAP6WBI.js +0 -1
  82. package/www/browser/chunk-K6C5ZIV2.js +0 -20
  83. package/www/browser/chunk-MBPB43C6.js +0 -1
  84. package/www/browser/chunk-PB2LGZNW.js +0 -1
  85. package/www/browser/chunk-R4HSZU2J.js +0 -1
  86. package/www/browser/chunk-RZA3IFQV.js +0 -2
  87. package/www/browser/chunk-SEJGGBE2.js +0 -1
  88. package/www/browser/chunk-TS5ZQYYY.js +0 -1
  89. package/www/browser/chunk-TVJHI463.js +0 -1
  90. package/www/browser/chunk-UKCMUTYL.js +0 -1
  91. package/www/browser/chunk-VW3S7C2Z.js +0 -1
  92. package/www/browser/chunk-VZYJ3MSW.js +0 -15
  93. package/www/browser/chunk-WUA5JFDD.js +0 -1
  94. package/www/browser/chunk-WYNERG74.js +0 -2
  95. package/www/browser/chunk-XJDJL3TQ.js +0 -1
  96. package/www/browser/chunk-YV6QPLF5.js +0 -1
  97. package/www/browser/main-7GYUOEJY.js +0 -38
@@ -0,0 +1 @@
1
+ import{a as pn,b as sn,c as ln,d as cn}from"./chunk-Z4T3LTE2.js";import{a as dn,b as un,c as fn}from"./chunk-5HVK6MON.js";import{a as gn,b as Cn,c as _n,d as zn,e as hn}from"./chunk-Z7GYTPTP.js";import{a as mn,b as Ve,c as Ae,d as Re,e as oe}from"./chunk-D5W7J3FS.js";import{a as Be,b as fe}from"./chunk-KDMWEV46.js";import{a as Rt,b as Wt,c as Lt}from"./chunk-TPVKLECM.js";import{a as an}from"./chunk-AQYHNHJ3.js";import{a as Fe,b as Oe,c as de}from"./chunk-C6GC5OOE.js";import"./chunk-EAFAHVBG.js";import{b as nn}from"./chunk-YNYWN7QI.js";import{a as on,b as rn}from"./chunk-4PSSTE76.js";import"./chunk-6ZXQKFRQ.js";import"./chunk-PUHSNEN6.js";import{a as Ie,b as ue}from"./chunk-7X4X4YHI.js";import{a as $t,c as Yt}from"./chunk-RLH7DAA2.js";import{a as Z,b as I}from"./chunk-PRKDURHI.js";import{a as be,c as De,d as Kt,e as Xt,f as Ne}from"./chunk-JFR7U5DE.js";import{a as mt,b as L,c as G,d as $,f as Qt,g as Jt}from"./chunk-5Y7KNVNN.js";import{b as Zt}from"./chunk-RKKAY5CD.js";import{a as en,b as tn}from"./chunk-IVX3LVU4.js";import{e as Se,f as Ee,g as le,l as ee}from"./chunk-IX6UZA7J.js";import"./chunk-GYXK6ZZT.js";import"./chunk-7VJKEZTT.js";import{c as te,e as ne}from"./chunk-S6BY2OTR.js";import{e as me,l as Ht}from"./chunk-JIVQNGBJ.js";import{Ia as v,Ib as Y,Ja as P,Kb as U,Lb as Gt,Nb as Ut,Ob as q,Pa as Vt,Pb as qt,Qa as At,Ra as j,Sa as H,Ua as D,Va as S,Yb as E,ac as je,cc as K,ec as ce,fc as Q}from"./chunk-2EB7UV3S.js";import"./chunk-HFZLJHYR.js";import{e as Te,i as ze}from"./chunk-X6PRUZ5G.js";import{i as It,k as Bt,n as h}from"./chunk-SIKDYQOR.js";import{$b as Mt,A as at,Ab as we,Ac as xt,Bc as wt,Fc as V,Gb as M,Gc as kt,Ha as B,Hb as ke,Hc as Tt,Kc as l,Lc as b,M as pt,Mb as O,Mc as se,Oa as xe,Pc as w,Q as gt,Qc as k,Rc as T,Sc as St,Tc as Et,Uc as jt,V as Ct,X as _t,Xb as y,Zb as x,Zc as bt,_c as ct,a as J,ac as ae,b as rt,bc as pe,bd as Dt,cc as g,cd as Nt,dc as r,ea as zt,ec as a,ed as W,fa as st,fc as c,g as ut,jc as Pt,jd as A,kc as vt,kd as Ft,l as ve,lc as lt,mc as z,na as ht,oa as ye,ob as s,sa as C,sc as m,tb as F,td as Ot,u as ft,vc as d,ya as u,z as _e,za as f,zc as yt}from"./chunk-YGWA6NUS.js";var Tn=()=>({padding:"8px"});function Sn(o,t){if(o&1){let e=z();r(0,"button",13),m("click",function(){u(e);let i=d();return f(i.copy())}),c(1,"nz-icon",14),a()}if(o&2){let e=d();g("nz-tooltip",e.copyied?"\u5DF2\u590D\u5236":"\u590D\u5236")}}function En(o,t){if(o&1&&(r(0,"div",9)(1,"nz-tag",15),l(2),a()()),o&2){let e=d();s(2),se("\u63A8\u8350\uFF1A",e.draft.detected==null?null:e.draft.detected.recommendedScript)}}function jn(o,t){o&1&&(r(0,"div",10),l(1," \u26A0\uFE0F \u8986\u76D6\u5DF2\u5B58\u5728\u76EE\u5F55 "),a())}function bn(o,t){if(o&1){let e=z();r(0,"button",16),m("click",function(){u(e);let i=d();return f(i.isDrawerOpen=!i.isDrawerOpen)}),c(1,"nz-icon",17),l(2," \u65E5\u5FD7\u8F93\u51FA "),a()}}function Dn(o,t){o&1&&(Pt(0),c(1,"app-terminal-view"),vt()),o&2&&(s(),kt("height",100,"%"))}var We=class o{draft;chunk="";clipboard=C(an);term;isDrawerOpen=!1;isCreating=Ot(!1);copyied=!1;ngOnChanges(t){t.chunk&&t.chunk.currentValue&&this.term&&this.term.write(this.chunk),t.isCreating&&t.isCreating.currentValue===!0&&(this.isDrawerOpen=!0)}copy(){let t=this.draft.repoUrl||"";this.clipboard.copy(t),this.copyied=!0,setTimeout(()=>{this.copyied=!1},2e3)}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=M({type:o,selectors:[["app-create-summary-aside"]],viewQuery:function(e,n){if(e&1&&yt(mt,5),e&2){let i;xt(i=wt())&&(n.term=i.first)}},inputs:{draft:"draft",chunk:"chunk",isCreating:[1,"isCreating"]},outputs:{isCreating:"isCreatingChange"},features:[xe],decls:44,vars:16,consts:[["logActions",""],["nzTitle","\u6458\u8981","nzSize","small",3,"nzExtra"],[1,"item"],[1,"k"],[1,"v"],[1,"v","mono"],[1,"v",3,"nz-tooltip"],["nz-button","","nzType","text","nzSize","small",3,"nz-tooltip"],[1,"sep"],[1,"tag"],[1,"warn"],["nzTitle","\u65E5\u5FD7","nzPlacement","right",3,"nzOnClose","nzVisible","nzWidth","nzBodyStyle"],[4,"nzDrawerContent"],["nz-button","","nzType","text","nzSize","small",3,"click","nz-tooltip"],["nzType","copy","nzTheme","outline"],["nzColor","blue"],["nz-button","","nzType","text","nzSize","small",3,"click"],["nzType","desktop","nzTheme","outline"]],template:function(e,n){if(e&1){let i=z();r(0,"nz-card",1)(1,"div",2)(2,"span",3),l(3,"\u540D\u79F0"),a(),r(4,"span",4),l(5),a()(),r(6,"div",2)(7,"span",3),l(8,"\u8DEF\u5F84"),a(),r(9,"span",5),l(10),a()(),r(11,"div",2)(12,"span",3),l(13,"\u5305\u7BA1\u7406\u5668"),a(),r(14,"span",4),l(15),a()(),r(16,"div",2)(17,"span",3),l(18,"Git \u8FDC\u7A0B\u4ED3\u5E93"),a(),r(19,"span",6),l(20),a(),y(21,Sn,2,1,"button",7),a(),c(22,"div",8),r(23,"div",2)(24,"span",3),l(25,"\u6846\u67B6"),a(),r(26,"span",4),l(27),a()(),r(28,"div",2)(29,"span",3),l(30,"\u811A\u672C\u547D\u4EE4"),a(),r(31,"span",4),l(32),a()(),r(33,"div",2)(34,"span",3),l(35,"Git"),a(),r(36,"span",4),l(37),a()(),y(38,En,3,1,"div",9),y(39,jn,2,0,"div",10),a(),O(40,bn,3,0,"ng-template",null,0,W),r(42,"nz-drawer",11),m("nzOnClose",function(){return u(i),f(n.isDrawerOpen=!1)}),O(43,Dn,2,2,"ng-container",12),a()}if(e&2){let i=V(41);g("nzExtra",i),s(5),b(n.draft.name||"-"),s(5),b(n.draft.rootPath||"-"),s(5),b(n.draft.packageManager),s(4),g("nz-tooltip",n.draft.repoUrl||""),s(),b(n.draft.repoUrl||"-"),s(),x(n.draft.repoUrl?21:-1),s(6),b((n.draft.detected==null?null:n.draft.detected.framework)||"-"),s(5),b((n.draft.detected==null?null:n.draft.detected.scriptsCount)??"-"),s(5),b(n.draft.detected!=null&&n.draft.detected.hasGit?"Yes":"No"),s(),x(n.draft.detected!=null&&n.draft.detected.recommendedScript?38:-1),s(),x(n.draft.overwriteIfExists?39:-1),s(3),g("nzVisible",n.isDrawerOpen)("nzWidth",720)("nzBodyStyle",bt(15,Tn))}},dependencies:[h,I,Z,ue,Ie,ne,te,P,v,S,D,j,mt,Lt,Wt,Rt],styles:[".item[_ngcontent-%COMP%]{display:flex;justify-content:space-between;gap:10px;padding:6px 0;align-items:center}.k[_ngcontent-%COMP%]{opacity:.7;width:90px;font-size:14px}.v[_ngcontent-%COMP%]{text-align:right;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mono[_ngcontent-%COMP%]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;word-break:break-all}.sep[_ngcontent-%COMP%]{height:1px;background:#0000000f;margin:10px 0}.tag[_ngcontent-%COMP%]{margin-top:8px;text-align:right}.warn[_ngcontent-%COMP%]{margin-top:10px;font-size:12px;color:#d46b08}"],changeDetection:0})};function Bn(o,t){o&1&&c(0,"nz-empty",6)}function Vn(o,t){if(o&1&&(r(0,"nz-tag",17),l(1),Dt(2,"titlecase"),a()),o&2){let e=d().$implicit,n=jt(4);g("nzColor",n==="angular"?"#dd0031":n==="vue"?"#42b883":"#108ee9"),s(),se(" ",Nt(2,2,e.kind)," ")}}function An(o,t){if(o&1&&(r(0,"div",14)(1,"div",15)(2,"div",16),l(3),a(),St(4),y(5,Vn,3,4,"nz-tag",17),a()()),o&2){let e=t.$implicit;g("nzValue",e.path),s(2),g("nz-tooltip",e.path),s(),b(e.path),s();let n=Et(e.kind);s(),x(n?5:-1)}}function Rn(o,t){if(o&1){let e=z();r(0,"nz-radio-group",13),T("ngModelChange",function(i){u(e);let p=d();return k(p.selectedPath,i)||(p.selectedPath=i),f(i)}),ae(1,An,6,5,"div",14,Mt),a()}if(o&2){let e=d();w("ngModel",e.selectedPath),s(),pe(e.filtered())}}var Ge=class o{constructor(t){this.modalRef=t}data=C(Se);keyword=B("");selectedPath=B(null);ngOnInit(){let{candidates:t,defaultPicked:e}=this.data,n=e&&t.includes(e)?e:t[0]??"";this.selectedPath.set(n?.path??null)}filtered=A(()=>{let t=(this.keyword()||"").trim().toLowerCase(),e=this.data.candidates??[];return t?e.filter(n=>n.path.toLowerCase().includes(t)):e});cancel(){this.modalRef.close(null)}ok(){let t=this.selectedPath();t&&this.modalRef.close({pickedRoot:t})}static \u0275fac=function(e){return new(e||o)(we(Ee))};static \u0275cmp=M({type:o,selectors:[["app-pick-workspace-modal"]],decls:17,vars:3,consts:[[1,"wrap"],[1,"hint"],[1,"toolbar"],["nz-input","","placeholder","\u8FC7\u6EE4\u8DEF\u5F84\uFF08\u5173\u952E\u5B57\uFF09",3,"ngModelChange","ngModel"],["nzType","search","nzTheme","outline","nzSuffix",""],[1,"list"],["nzNotFoundContent","\u6CA1\u6709\u5339\u914D\u7684\u76EE\u5F55"],["nzSize","large",3,"ngModel"],[1,"actions"],["nz-button","",3,"click"],["nzType","close","nzTheme","outline"],["nz-button","","nzType","primary",3,"click","disabled"],["nzType","check","nzTheme","outline"],["nzSize","large",3,"ngModelChange","ngModel"],["nz-radio","",1,"item",3,"nzValue"],[1,"path"],["nzTooltipPlacement","top",1,"value",3,"nz-tooltip"],["nzMode","default",3,"nzColor"]],template:function(e,n){e&1&&(r(0,"div",0)(1,"div",1),l(2," \u68C0\u6D4B\u5230\u8BE5\u4ED3\u5E93\u53EF\u80FD\u5305\u542B\u591A\u4E2A\u524D\u7AEF\u5DE5\u4F5C\u533A\uFF08Angular / Vue \u7B49\uFF09\u3002\u8BF7\u9009\u62E9\u4E00\u4E2A\u76EE\u5F55\u7EE7\u7EED\u5BFC\u5165\uFF1A "),a(),r(3,"div",2)(4,"nz-input-wrapper")(5,"input",3),T("ngModelChange",function(p){return k(n.keyword,p)||(n.keyword=p),p}),a(),c(6,"nz-icon",4),a()(),r(7,"div",5),y(8,Bn,1,0,"nz-empty",6)(9,Rn,3,1,"nz-radio-group",7),a(),r(10,"div",8)(11,"button",9),m("click",function(){return n.cancel()}),c(12,"nz-icon",10),l(13," \u53D6\u6D88 "),a(),r(14,"button",11),m("click",function(){return n.ok()}),c(15,"nz-icon",12),l(16," \u9009\u4E2D\u5E76\u7EE7\u7EED "),a()()()),e&2&&(s(5),w("ngModel",n.keyword),s(3),x(n.filtered().length===0?8:9),s(6),g("disabled",!n.selectedPath()))},dependencies:[h,E,Y,U,q,ee,Q,K,ce,de,Oe,Fe,S,D,j,H,P,v,De,be,ue,Ie,ne,te,Bt],styles:[".wrap[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.hint[_ngcontent-%COMP%]{opacity:.85}.toolbar[_ngcontent-%COMP%]{margin-top:4px}nz-radio-group[_ngcontent-%COMP%]{width:100%}.list[_ngcontent-%COMP%]{height:240px;overflow:auto;padding:8px;border:var(--app-border-color);border-radius:8px}.item[_ngcontent-%COMP%]{display:flex;gap:8px;padding:12px;border-radius:8px;margin:0;width:100%}.item[_ngcontent-%COMP%]:hover{background-color:var(--app-primary-3)}.item[_ngcontent-%COMP%] .ant-radio+span{display:flex;gap:12px;align-items:center;flex:1 1 auto;width:0;padding:0}.path[_ngcontent-%COMP%]{display:flex;gap:12px;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap;width:0;overflow:hidden}.path[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto;width:0;overflow:hidden}.actions[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}"]})};function Ln(o,t){o&1&&(r(0,"span",4),l(1,"\u8BE5\u8DEF\u5F84\u5DF2\u5B58\u5728"),a())}function Gn(o,t){if(o&1){let e=z();r(0,"input",15),T("ngModelChange",function(i){u(e);let p=d();return k(p.draft.initialCommitMessage,i)||(p.draft.initialCommitMessage=i),f(i)}),a()}if(o&2){let e=d();w("ngModel",e.draft.initialCommitMessage)}}var Qe=class o{draft;draftChange=new F;pathCheck$=new ve;pathExists=!1;fsApi=C(mn);ngOnInit(){this.computeRootPath(),this.pathCheck$.pipe(gt(200),Ct(),zt(t=>t?this.fsApi.pathExists(t):ft(!1))).subscribe(t=>{this.emit(),this.pathExists=t})}recalcRoot(){this.computeRootPath(),this.pathCheck$.next(this.draft.rootPath)}computeRootPath(){let t=(this.draft.parentDir??"").replace(/[\\/]+$/,""),e=(this.draft.name??"").trim();this.draft.rootPath=t&&e?`${t}/${e}`.replaceAll("\\","/"):t}emit(){this.draftChange.emit(J({},this.draft))}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=M({type:o,selectors:[["app-step-basic"]],inputs:{draft:"draft"},outputs:{draftChange:"draftChange"},decls:40,vars:8,consts:[["nzTitle","\u57FA\u7840\u8BBE\u7F6E"],["nz-form","","nzLayout","vertical"],["nz-input","","name","name","placeholder","\u8F93\u5165\u9879\u76EE\u540D",3,"ngModelChange","ngModel"],[1,"hint"],[2,"margin-left","8px","color","#ff4d4f"],["name","pm",3,"ngModelChange","ngModel"],["nzValue","auto","nzLabel","\u9ED8\u8BA4"],["nzValue","npm","nzLabel","npm"],["nzValue","pnpm","nzLabel","pnpm"],["nzValue","yarn","nzLabel","yarn"],[1,"switch-row"],["name","overwrite",3,"ngModelChange","ngModel"],["name","skip",3,"ngModelChange","ngModel"],["name","initGit",3,"ngModelChange","ngModel"],["nz-input","","name","msg","placeholder","\u8986\u76D6\u63D0\u4EA4\u4FE1\u606F(\u9009\u586B)",3,"ngModel"],["nz-input","","name","msg","placeholder","\u8986\u76D6\u63D0\u4EA4\u4FE1\u606F(\u9009\u586B)",3,"ngModelChange","ngModel"]],template:function(e,n){e&1&&(r(0,"nz-card",0)(1,"form",1)(2,"nz-form-item")(3,"nz-form-label"),l(4,"\u9879\u76EE\u6587\u4EF6\u5939"),a(),r(5,"nz-form-control")(6,"input",2),T("ngModelChange",function(p){return k(n.draft.name,p)||(n.draft.name=p),p}),m("ngModelChange",function(){return n.recalcRoot()}),a(),r(7,"div",3),l(8),y(9,Ln,2,0,"span",4),a()()(),r(10,"nz-form-item")(11,"nz-form-label"),l(12,"\u5305\u7BA1\u7406\u5668"),a(),r(13,"nz-form-control")(14,"nz-select",5),T("ngModelChange",function(p){return k(n.draft.packageManager,p)||(n.draft.packageManager=p),p}),c(15,"nz-option",6)(16,"nz-option",7)(17,"nz-option",8)(18,"nz-option",9),a()()(),r(19,"nz-form-item")(20,"nz-form-label"),l(21,"\u66F4\u591A\u9009\u9879"),a(),r(22,"nz-form-control")(23,"div",10)(24,"span"),l(25,"\u82E5\u76EE\u6807\u6587\u4EF6\u5939\u5DF2\u5B58\u5728\u5219\u8986\u76D6"),a(),r(26,"nz-switch",11),T("ngModelChange",function(p){return k(n.draft.overwriteIfExists,p)||(n.draft.overwriteIfExists=p),p}),m("ngModelChange",function(){return n.emit()}),a()(),r(27,"div",10)(28,"span"),l(29,"\u65E0\u65B0\u624B\u6307\u5F15\u7684\u811A\u624B\u67B6\u9879\u76EE"),a(),r(30,"nz-switch",12),T("ngModelChange",function(p){return k(n.draft.skipOnboarding,p)||(n.draft.skipOnboarding=p),p}),a()()()(),r(31,"nz-form-item")(32,"nz-form-label"),l(33,"Git"),a(),r(34,"nz-form-control")(35,"div",10)(36,"span"),l(37,"\u521D\u59CB\u5316 git \u4ED3\u5E93\uFF08\u5EFA\u8BAE\uFF09"),a(),r(38,"nz-switch",13),T("ngModelChange",function(p){return k(n.draft.initGit,p)||(n.draft.initGit=p),p}),a()(),y(39,Gn,1,1,"input",14),a()()()()),e&2&&(s(6),w("ngModel",n.draft.name),s(2),se(" ",n.draft.rootPath," "),s(),x(n.pathExists?9:-1),s(5),w("ngModel",n.draft.packageManager),s(12),w("ngModel",n.draft.overwriteIfExists),s(4),w("ngModel",n.draft.skipOnboarding),s(8),w("ngModel",n.draft.initGit),s(),x(n.draft.initGit?39:-1))},dependencies:[h,E,qt,Y,U,Gt,q,Ut,hn,G,L,Cn,gn,zn,_n,Q,K,S,Ne,Kt,Xt,fe,Be,I,Z,ne,P,ee],styles:[".hint[_ngcontent-%COMP%]{margin-top:6px;font-size:12px;opacity:.7}.switch-row[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding-bottom:4px}.switch-row[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:14px}.emit[_ngcontent-%COMP%]{margin-top:8px}"]})};var Je=class o{draft;draftChange=new F;emit(){this.draftChange.emit(J({},this.draft))}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=M({type:o,selectors:[["app-step-config"]],inputs:{draft:"draft"},outputs:{draftChange:"draftChange"},decls:12,vars:2,consts:[["nzTitle","\u521B\u5EFA\u540E\u9ED8\u8BA4\u884C\u4E3A"],[1,"row"],[1,"label"],[3,"ngModelChange","ngModel"],[1,"row","col"],["nz-input","","placeholder","\u4F8B\u5982\uFF1Adev / start",3,"ngModelChange","ngModel"],[1,"hint"]],template:function(e,n){e&1&&(r(0,"nz-card",0)(1,"div",1)(2,"div",2),l(3,"\u7F6E\u9876\u6536\u85CF"),a(),r(4,"nz-switch",3),T("ngModelChange",function(p){return k(n.draft.pinFavorite,p)||(n.draft.pinFavorite=p),p}),m("ngModelChange",function(){return n.emit()}),a()(),c(5,"div",4),r(6,"div",4)(7,"div",2),l(8,"\u9ED8\u8BA4\u4EFB\u52A1\uFF08\u53EF\u9009\uFF09"),a(),r(9,"input",5),T("ngModelChange",function(p){return k(n.draft.defaultTaskName,p)||(n.draft.defaultTaskName=p),p}),m("ngModelChange",function(){return n.emit()}),a(),r(10,"div",6),l(11,"\u5EFA\u8BAE\u586B\u8BC6\u522B\u5230\u7684 dev \u6216 start"),a()()()),e&2&&(s(4),w("ngModel",n.draft.pinFavorite),s(5),w("ngModel",n.draft.defaultTaskName))},dependencies:[h,E,Y,U,q,I,Z,de,fe,Be,Q,K],styles:[".row[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:10px 0}.row.col[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start;gap:8px}.label[_ngcontent-%COMP%]{font-weight:500}.hint[_ngcontent-%COMP%]{font-size:12px;opacity:.7}"]})};var He=class o{draft;draftChange=new F;emit(){this.draftChange.emit(J({},this.draft))}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=M({type:o,selectors:[["app-step-features"]],inputs:{draft:"draft"},outputs:{draftChange:"draftChange"},decls:1,vars:0,consts:[["nzTitle","\u529F\u80FD\u5F00\u5173\uFF08Project Scope\uFF09"]],template:function(e,n){e&1&&c(0,"nz-card",0)},dependencies:[h,E,I,Z,fe],styles:[".row[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:10px 0}.label[_ngcontent-%COMP%]{font-weight:500}"]})};var Ze=class o{nzModalData=C(Se);isModalVisible=!1;isSaving=!1;static \u0275fac=function(e){return new(e||o)};static \u0275cmp=M({type:o,selectors:[["app-git-import-modal-component"]],decls:8,vars:1,consts:[[1,"modal-body"],[1,"label"],["nz-input","","placeholder","\u8BF7\u8F93\u5165Git\u4ED3\u5E93\u5730\u5740","autofocus","",3,"ngModelChange","ngModel"],["nzInputPrefix","","nzType","github","nzTheme","outline"],[1,"hint"]],template:function(e,n){e&1&&(r(0,"div",0)(1,"label",1),l(2,"URL"),a(),r(3,"nz-input-wrapper")(4,"input",2),T("ngModelChange",function(p){return k(n.nzModalData.cloneUrl,p)||(n.nzModalData.cloneUrl=p),p}),a(),c(5,"nz-icon",3),a(),r(6,"div",4),l(7," Git \u4ED3\u5E93\u5730\u5740, \u5982 'username/repo'. \u53EF\u4EE5\u4F7F\u7528\u524D\u7F00\u5982 'gitlab:' \u6216 'bitbucket:'. "),a()()),e&2&&(s(4),w("ngModel",n.nzModalData.cloneUrl))},dependencies:[h,E,Y,U,q,P,v,ee,Q,K,ce,je,Ne,S,j],styles:[".hint[_ngcontent-%COMP%]{margin-top:6px;font-size:12px;opacity:.7}"]})};function Un(o,t){if(o&1){let e=z();r(0,"button",10),m("click",function(){u(e);let i=d();return f(i.requestDetect.emit())}),c(1,"nz-icon",11),a()}}var $e=class o{draft;draftChange=new F;requestDetect=new F;modal=C(le);emit(){this.draftChange.emit(J({},this.draft))}presetChange(t){if(this.draft.preset=t,t==="git"){this.openImportGitModal();return}else this.draft.repoUrl=void 0,this.emit()}openImportGitModal(){let t=this.modal.create({nzTitle:"\u4ECE Git \u4ED3\u5E93\u5BFC\u5165\u9879\u76EE",nzMaskClosable:!1,nzContent:Ze,nzCentered:!0,nzWidth:"580px",nzClosable:!1,nzData:{cloneUrl:"",isSaving:!1},nzFooter:[{label:"\u53D6\u6D88",type:"default",onClick:()=>{t.close(),this.draft.repoUrl=void 0,this.draft.preset="angular",this.emit()}},{label:"\u5BFC\u5165",type:"primary",onClick:e=>{let n=e.nzModalData.cloneUrl,i=e.nzModalData.isSaving;!n||!n.trim()||i||(e.nzModalData.isSaving=!0,this.draft.repoUrl=n.trim(),e.nzModalData.isSaving=!1,this.emit(),t.close())},disabled:e=>{let n=e?.nzModalData.cloneUrl;return!n||!n.trim()},loading:e=>e?.nzModalData.isSaving===!0}]})}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=M({type:o,selectors:[["app-step-preset"]],inputs:{draft:"draft"},outputs:{draftChange:"draftChange",requestDetect:"requestDetect"},decls:19,vars:2,consts:[["reloadExtraTpl",""],["nzTitle","\u9009\u62E9\u4E00\u5957\u9884\u8BBE",3,"nzExtra"],["nzSize","large",3,"ngModelChange","ngModel"],["nz-radio","","nzValue","angular"],["for","angular"],[1,"hint"],["nz-radio","","nzValue","vue3"],["for","vue3"],["nz-radio","","nzValue","git"],["for","git"],["nz-button","","nzType","text","nzSize","small",3,"click"],["nzType","reload","nzTheme","outline"]],template:function(e,n){if(e&1){let i=z();r(0,"nz-card",1),O(1,Un,2,0,"ng-template",null,0,W),r(3,"nz-radio-group",2),T("ngModelChange",function(_){return u(i),k(n.draft.preset,_)||(n.draft.preset=_),f(_)}),m("ngModelChange",function(_){return u(i),f(n.presetChange(_))}),r(4,"div",3)(5,"label",4),l(6,"Angular"),a(),r(7,"div",5),l(8," \u9002\u7528\u4E8E\u4F7F\u7528 Angular \u6846\u67B6\u5F00\u53D1\u7684\u9879\u76EE\uFF0C\u652F\u6301 Angular CLI \u76F8\u5173\u4EFB\u52A1\u548C\u914D\u7F6E\u3002 "),a()(),r(9,"div",6)(10,"label",7),l(11,"Vue 3"),a(),r(12,"div",5),l(13," \u9002\u7528\u4E8E\u4F7F\u7528 Vue 3 \u6846\u67B6\u5F00\u53D1\u7684\u9879\u76EE\uFF0C\u652F\u6301 Vite \u548C Vue CLI \u76F8\u5173\u4EFB\u52A1\u548C\u914D\u7F6E\u3002 "),a()(),r(14,"div",8)(15,"label",9),l(16,"Git\u5BFC\u5165"),a(),r(17,"div",5),l(18," \u4ECE\u73B0\u6709\u7684 Git \u4ED3\u5E93\u5BFC\u5165\u9879\u76EE\uFF0C\u81EA\u52A8\u8BC6\u522B\u9879\u76EE\u7ED3\u6784\u548C\u914D\u7F6E\u3002 "),a()()()()}if(e&2){let i=V(2);g("nzExtra",i),s(3),w("ngModel",n.draft.preset)}},dependencies:[h,E,U,q,I,Z,nn,S,D,j,ue,P,v,de,Oe,Fe],styles:[".kv[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}.k[_ngcontent-%COMP%]{opacity:.7;display:inline-block;width:120px}.opt[_ngcontent-%COMP%]{margin-top:10px}nz-radio-group[_ngcontent-%COMP%]{width:100%}[nz-radio][_ngcontent-%COMP%]{display:block;padding:12px;border-radius:8px;width:100%;margin:0}[nz-radio][_ngcontent-%COMP%]:hover{background-color:var(--app-primary-3)}.hint[_ngcontent-%COMP%]{margin-left:24px;font-size:12px;opacity:.75}"]})};function Pn(){return{preset:"angular",name:"",parentDir:"",rootPath:"",packageManager:"auto",overwriteIfExists:!1,skipOnboarding:!0,initGit:!0,initialCommitMessage:"",importScriptsAsTasks:!0,importMakefileTasks:!1,importDockerComposeTasks:!1,generateCommonTasks:!0,pinFavorite:!1,defaultTaskName:"",cliFramework:"angular",cliTool:"@angular/cli",cliArgs:[]}}function qn(o,t){if(o&1){let e=z();r(0,"app-step-basic",16),m("draftChange",function(i){u(e);let p=d();return f(p.setDraft(i))}),a()}if(o&2){let e=d();g("draft",e.draft())}}function Qn(o,t){if(o&1){let e=z();r(0,"app-step-preset",17),m("draftChange",function(i){u(e);let p=d();return f(p.setDraft(i))})("requestDetect",function(){u(e);let i=d();return f(i.detectNow())}),a()}if(o&2){let e=d();g("draft",e.draft())}}function Jn(o,t){if(o&1){let e=z();r(0,"app-step-features",16),m("draftChange",function(i){u(e);let p=d();return f(p.setDraft(i))}),a()}if(o&2){let e=d();g("draft",e.draft())}}function Hn(o,t){if(o&1){let e=z();r(0,"app-step-config",16),m("draftChange",function(i){u(e);let p=d();return f(p.setDraft(i))}),a()}if(o&2){let e=d();g("draft",e.draft())}}function Zn(o,t){if(o&1){let e=z();r(0,"button",18),m("click",function(){u(e);let i=d();return f(i.cancel())}),c(1,"nz-icon",19),l(2," \u53D6\u6D88 "),a()}}function $n(o,t){if(o&1){let e=z();r(0,"button",18),m("click",function(){u(e);let i=d();return f(i.prev())}),c(1,"nz-icon",20),l(2," \u4E0A\u4E00\u6B65 "),a()}}function Yn(o,t){if(o&1){let e=z();r(0,"button",21),m("click",function(){u(e);let i=d();return f(i.create())}),c(1,"nz-icon",22),l(2," \u521B\u5EFA\u9879\u76EE "),a()}if(o&2){let e=d();g("disabled",e.creating())}}function Kn(o,t){if(o&1){let e=z();r(0,"button",21),m("click",function(){u(e);let i=d();return f(i.next())}),l(1," \u4E0B\u4E00\u6B65 "),c(2,"nz-icon",23),a()}if(o&2){let e=d();g("disabled",!e.canNext()||!e.canGoNext())}}var Ye=class o{step=B(0);draft=B(Pn());creating=B(!1);output=B("");isDrawerOpen=B(!1);fs=C(Ve);parentDir=this.fs.currentPath();modalRef=C(Ee);api=C(Re);modal=C(le);notify=C(me);taskStream=C($t);projectState=C(oe);router=C(Te);sub=new ut;ngOnInit(){let t=this.draft(),e=this.parentDir;this.draft.set(rt(J({},t),{rootPath:"",parentDir:e,name:""}))}detectNow(){let t=this.draft();t.rootPath?.trim()&&this.api.detect(t.rootPath).subscribe(e=>{let n=e.scripts??[],i={framework:e.framework??"unknown",hasPackageJson:!!e.hasPackageJson,scriptsCount:n.length,hasGit:!!e.hasGit,lockFile:e.lockFile??"unknown",recommendedScript:n.includes("dev")?"dev":n.includes("start")?"start":"",hasMakefile:!!e.hasMakefile,hasDockerCompose:!!e.hasDockerCompose},p=n.length>0,_=!!e.hasMakefile,Pe=!!e.hasDockerCompose;this.draft.set(rt(J({},t),{detected:i,importScriptsAsTasks:p,importMakefileTasks:_&&t.importMakefileTasks,importDockerComposeTasks:Pe&&t.importDockerComposeTasks,defaultTaskName:i.recommendedScript||t.defaultTaskName}))})}async create(){let t=this.draft();if(!t.rootPath?.trim()||!t.name?.trim()){this.notify.error("\u8BF7\u5148\u5B8C\u5584\u9879\u76EE\u4FE1\u606F");return}if(this.creating())return;let e="\u786E\u8BA4\u521B\u5EFA\u9879\u76EE\uFF1F",n=`\u8BF7\u786E\u8BA4\u76EE\u6807\u8DEF\u5F84 ${t.rootPath}\uFF0C\u786E\u5B9A\u8981\u521B\u5EFA\u8BE5\u9879\u76EE\u5417\uFF1F`,i="\u786E\u8BA4\u521B\u5EFA",p=!1;t.overwriteIfExists&&(e="\u786E\u8BA4\u8986\u76D6\u5DF2\u5B58\u5728\u7684\u9879\u76EE\uFF1F",n=`\u8BF7\u786E\u8BA4\u76EE\u6807\u8DEF\u5F84 ${t.rootPath}\uFF0C\u521B\u5EFA\u65F6\u4F1A\u8986\u76D6\u539F\u6709\u6570\u636E\uFF0C\u4E14\u4E0D\u53EF\u6062\u590D\uFF0C\u786E\u5B9A\u8981\u7EE7\u7EED\u5417\uFF1F`,i="\u786E\u8BA4\u8986\u76D6",p=!0);let _=this.modal.confirm({nzTitle:e,nzContent:n,nzOkText:i,nzCancelText:"\u53D6\u6D88",nzOkDanger:p,nzCentered:!0,nzOnOk:async()=>{this.doCreate(t),_.close()}})}async doCreate(t){this.creating.set(!0),this.taskStream.ensureConnected();let e=new ve;try{let n=t.preset==="git"?this.api.bootstrapByGit(t):this.api.bootstrapByCli(t),{taskId:i}=await _e(n);this.taskStream.subscribeTask(i,3e3),this.sub.add(this.taskStream.output$(i).subscribe(Ce=>{let wn=Ce.payload.text??"";this.output.set(wn)}));let p=await this.waitForTaskEvent(i,["bootstrapDone","bootstrapFailed","bootstrapNeedPickRoot"],600*1e3,e);if(p.type==="bootstrapDone"){let Ce=p.payload;this.notify.success("\u9879\u76EE\u521B\u5EFA\u5B8C\u6210"),this.projectState.getProjects(Ce.projectId),this.modalRef.close({ok:!0}),this.router.navigate(["/dashboard"]);return}if(p.type==="bootstrapFailed"){let Ce=p.payload;this.notify.error(`\u9879\u76EE\u521B\u5EFA\u5931\u8D25\uFF1A${Ce?.reason??"unknown error"}`);return}let Pe=p.payload?.candidates??[];if(!Pe.length){this.notify.error("\u9879\u76EE\u5BFC\u5165\u5931\u8D25\uFF1A\u672A\u627E\u5230\u53EF\u5BFC\u5165\u7684\u5DE5\u4F5C\u533A\u76EE\u5F55");return}let dt=await this.pickWorkspaceRootByModal(Pe);if(!dt){this.modal.info({nzTitle:"\u63D0\u793A",nzContent:"\u60A8\u672A\u9009\u62E9\u4EFB\u4F55\u76EE\u5F55\uFF0C\u9879\u76EE\u5BFC\u5165\u5DF2\u53D6\u6D88\u3002\u53EF\u901A\u8FC7\u201C\u5BFC\u5165\u201D\u529F\u80FD\u91CD\u65B0\u624B\u52A8\u5BFC\u5165\u3002",nzCancelText:null,nzOkText:"\u6211\u77E5\u9053\u4E86",nzOnOk:()=>{this.modalRef.close()}});return}let xn=await _e(this.api.bootstrapPickRoot({taskId:i,pickedRoot:dt}).pipe(at(60*1e3),st(e)));this.notify.success("\u9879\u76EE\u5BFC\u5165\u5B8C\u6210"),this.projectState.getProjects(xn.projectId),this.modalRef.close({ok:!0}),this.router.navigate(["/dashboard"])}catch(n){let i=n?.name==="TimeoutError"?"\u521B\u5EFA\u8D85\u65F6\uFF1A\u811A\u624B\u67B6/\u514B\u9686\u53EF\u80FD\u5361\u4F4F\u4E86\uFF0C\u8BF7\u67E5\u770B\u4EFB\u52A1\u65E5\u5FD7":Ht(n,"\u521B\u5EFA\u5931\u8D25");console.error("\u521B\u5EFA\u9879\u76EE\u5931\u8D25",n),this.notify.error(i)}finally{e.next(),e.complete(),this.creating.set(!1)}}async waitForTaskEvent(t,e,n,i){let p=new Set(e);return await _e(this.taskStream.events$().pipe(pt(_=>_?.payload?.taskId===t),pt(_=>p.has(_.type)),_t(),at(n),st(i)))}setDraft(t){this.draft.set(t)}canNext(){let t=this.step(),e=this.draft();return t===0?!(!e.name?.trim()||!e.parentDir?.trim()||!e.rootPath?.trim()):t===1?!!e.rootPath?.trim():!0}async next(){let t=this.step();if(t===0&&await this.api.checkPathExists(this.draft().rootPath)&&!this.draft().overwriteIfExists){this.notify.error("\u8BE5\u8DEF\u5F84\u4E0D\u53EF\u7528\u6216\u5DF2\u5B58\u5728\u91CD\u590D\u9879\u76EE");return}let e=Math.min(3,t+1);this.step.set(e)}prev(){this.step.set(Math.max(0,this.step()-1))}canGoNext(){let t=this.step();return t===0?!0:t===1?this.isManual():t===2}isManual(){return this.draft().preset==="manual"}canCreateHere(){let t=this.step();return this.isManual()&&t===3||!this.isManual()&&t===1}cancel(){this.modal.confirm({nzTitle:"\u53D6\u6D88\u521B\u5EFA\u9879\u76EE",nzContent:"\u786E\u5B9A\u8981\u53D6\u6D88\u521B\u5EFA\u5417",nzOkDanger:!0,nzOkText:"\u53D6\u6D88\u521B\u5EFA",nzCancelText:"\u4E0D",nzCentered:!0,nzOnOk:()=>{this.modalRef.close()}})}async pickWorkspaceRootByModal(t){let e=this.modal.create({nzTitle:"\u9009\u62E9\u8981\u5BFC\u5165\u7684\u5DE5\u4F5C\u533A\u76EE\u5F55",nzContent:Ge,nzData:{candidates:t,defaultPicked:t[0]},nzFooter:null,nzCentered:!0,nzMaskClosable:!1,nzClosable:!0,nzWidth:720});return(await _e(e.afterClose))?.pickedRoot??null}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=M({type:o,selectors:[["app-project-create-modal"]],decls:21,vars:9,consts:[["nz-row","","nzJustify","start"],["nz-col","","nzSpan","24"],[3,"nzCurrent"],["nzTitle","\u8BE6\u60C5"],["nzTitle","\u9884\u8BBE"],["nzTitle","\u529F\u80FD"],["nzTitle","\u914D\u7F6E"],[1,"content"],["nzTip","\u6B63\u5728\u521B\u5EFA\u9879\u76EE...",3,"nzSpinning"],[1,"main"],[3,"draft"],[1,"actions"],["nz-button",""],["nz-button","","nzType","primary",3,"disabled"],[1,"aside"],[3,"isCreatingChange","draft","isCreating","chunk"],[3,"draftChange","draft"],[3,"draftChange","requestDetect","draft"],["nz-button","",3,"click"],["nzType","close","nzTheme","outline"],["nzType","arrow-left","nzTheme","outline"],["nz-button","","nzType","primary",3,"click","disabled"],["nzType","check","nzTheme","outline"],["nzType","arrow-right","nzTheme","outline"]],template:function(e,n){if(e&1&&(r(0,"div",0)(1,"div",1)(2,"nz-steps",2),c(3,"nz-step",3)(4,"nz-step",4)(5,"nz-step",5)(6,"nz-step",6),a(),r(7,"div",7)(8,"nz-spin",8)(9,"div",9),y(10,qn,1,1,"app-step-basic",10)(11,Qn,1,1,"app-step-preset",10)(12,Jn,1,1,"app-step-features",10)(13,Hn,1,1,"app-step-config",10),r(14,"div",11),y(15,Zn,3,0,"button",12),y(16,$n,3,0,"button",12),y(17,Yn,3,1,"button",13)(18,Kn,3,1,"button",13),a()()(),r(19,"div",14)(20,"app-create-summary-aside",15),T("isCreatingChange",function(p){return k(n.creating,p)||(n.creating=p),p}),a()()()()()),e&2){let i;s(2),g("nzCurrent",n.step()),s(6),g("nzSpinning",n.creating()),s(2),x((i=n.step())===0?10:i===1?11:i===2?12:i===3?13:-1),s(5),x(n.step()===0?15:-1),s(),x(n.step()>0?16:-1),s(),x(n.canCreateHere()?17:18),s(3),g("draft",n.draft()),w("isCreating",n.creating),g("chunk",n.output())}},dependencies:[h,E,ee,I,$,G,L,fn,un,dn,S,D,j,H,Q,P,v,rn,on,Qe,$e,He,Je,We],styles:[".content[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 360px;gap:16px;margin-top:16px}.main[_ngcontent-%COMP%]{min-height:420px}.actions[_ngcontent-%COMP%]{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}.aside[_ngcontent-%COMP%]{position:sticky;top:16px;height:fit-content}"]})};var Ke=class o{constructor(t){this.modal=t}goCreate(){let t=this.modal.create({nzTitle:"\u521B\u5EFA\u65B0\u9879\u76EE",nzFooter:null,nzMaskClosable:!1,nzClosable:!1,nzContent:Ye,nzWidth:"1020px",nzCentered:!0}),e=t.getContentComponent();t.afterClose.subscribe(n=>{n?.ok})}static \u0275fac=function(e){return new(e||o)(we(le))};static \u0275cmp=M({type:o,selectors:[["app-project-create"]],decls:7,vars:0,consts:[["nz-row","",1,"page"],["nz-col","","nzSpan","16","nzOffset","4",1,"explorer-container"],[1,"actions-bar"],["nz-button","","nzType","primary","nzSize","large",3,"click"],["nzType","plus","nzTheme","outline"]],template:function(e,n){e&1&&(r(0,"div",0)(1,"div",1),c(2,"app-fs-explorer"),a(),r(3,"div",2)(4,"button",3),m("click",function(){return n.goCreate()}),c(5,"nz-icon",4),l(6," \u5728\u6B64\u521B\u5EFA\u65B0\u9879\u76EE "),a()()())},dependencies:[h,S,D,j,H,$,G,L,Ae,P,v],styles:[".page[_ngcontent-%COMP%]{width:100%;height:100%;display:flex;flex-direction:column}.page[_ngcontent-%COMP%] .explorer-container[_ngcontent-%COMP%]{flex:1 1 auto;height:0}.page[_ngcontent-%COMP%] .actions-bar[_ngcontent-%COMP%]{flex:0 0 auto;padding:16px;display:flex;justify-content:center;align-items:center}"]})};var ge=class o{fs=C(Ve);projectApi=C(Re);projectState=C(oe);active=B(!1);checking=B(!1);result=B(null);canImport=A(()=>this.result()?.ok===!0);warnings=A(()=>this.result()?.warnings??[]);reason=A(()=>this.result()?.reason??"");currentPath=A(()=>this.fs.currentPath()||this.fs.path());_seq=0;notify=C(me);constructor(){Ft(()=>{if(!this.active())return;let t=this.currentPath();t&&this.check(t)})}enter(){this.active.set(!0)}leave(){this.active.set(!1),this.result.set(null)}check(t){let e=++this._seq;this.checking.set(!0),this.result.set(null),this.projectApi.checkImport(t).subscribe({next:n=>{e===this._seq&&this.result.set(n)},error:n=>{e===this._seq&&this.result.set({ok:!1,root:t,reason:n?.message||"check failed"})},complete:()=>{e===this._seq&&this.checking.set(!1)}})}import(t){let e=this.currentPath();if(!e||!this.canImport())return;let n=e.replace(/[\\\/]+$/,"").split(/[\\\/]/).pop()||"New Project";this.projectApi.importByPath({root:e,name:t||n,syncTasks:!0}).subscribe({next:i=>{this.projectState.getProjects(),this.projectState.setCurrentProjectById(i.id),this.check(e),this.notify.success("\u9879\u76EE\u5BFC\u5165\u6210\u529F")}})}static \u0275fac=function(e){return new(e||o)};static \u0275prov=ht({token:o,factory:o.\u0275fac,providedIn:"root"})};var Xe=class o{importState=C(ge);static \u0275fac=function(e){return new(e||o)};static \u0275cmp=M({type:o,selectors:[["app-project-import"]],decls:7,vars:1,consts:[["nz-row","",1,"page"],["nz-col","","nzSpan","16","nzOffset","4",1,"explorer-container"],[1,"actions-bar","center"],["nz-button","","nzSize","large","nzType","primary",3,"click","disabled"],["nzType","import","nzTheme","outline"]],template:function(e,n){e&1&&(r(0,"div",0)(1,"div",1),c(2,"app-fs-explorer"),a(),r(3,"div",2)(4,"button",3),m("click",function(){return n.importState.import()}),c(5,"nz-icon",4),l(6," \u5BFC\u5165\u8FD9\u4E2A\u6587\u4EF6\u5939 "),a()()()),e&2&&(s(4),g("disabled",n.importState.checking()||!n.importState.canImport()))},dependencies:[h,E,$,G,L,S,D,j,H,P,v,Ae],styles:[".page[_ngcontent-%COMP%]{width:100%;height:100%;display:flex;flex-direction:column}.page[_ngcontent-%COMP%] .explorer-container[_ngcontent-%COMP%]{flex:1 1 auto;height:0}.page[_ngcontent-%COMP%] .actions-bar[_ngcontent-%COMP%]{flex:0 0 auto;padding:16px;display:flex;justify-content:center;align-items:center}"]})};var Xn=(o,t)=>t.spec.id;function eo(o,t){if(o&1){let e=z();r(0,"div",8)(1,"div",9),m("click",function(){let i=u(e).$implicit,p=d();return f(p.openTask(i))}),r(2,"div",10),c(3,"nz-icon",11),a(),r(4,"div",12)(5,"div",13)(6,"span"),l(7),a()(),r(8,"div",14)(9,"span"),l(10),a()()()(),r(11,"button",15),m("click",function(i){let p=u(e).$implicit,_=d();return i.stopPropagation(),f(_.toggleTask(p))}),c(12,"nz-icon",16),a()()}if(o&2){let e=t.$implicit,n=d();g("nzTooltipTitle",n.getTaskDescription(e)),s(7),b(e.spec.name),s(3),b(n.getTaskDescription(e)),s(),g("disabled",(e.runtime==null?null:e.runtime.status)==="stopping"),s(),g("nzType",n.getTaskActionIcon(e))}}var et=class o{projectId;projectState=C(oe);router=C(Te);state=C(Yt);tasks=A(()=>this.projectId?this.state.rowsViewOf(this.projectId)():[]);async ngOnChanges(){this.projectId&&await this.state.ensureProjectLoaded(this.projectId)}toggleTask(t){let e=t?.spec?.id?.trim();e&&t.runtime?.status!=="stopping"&&(t.runtime?.status==="running"?this.state.stopSelected(e):this.state.startSelected(e),this.openTask(t))}async openTask(t){this.state.select(t.spec.id),await this.router.navigate(["/tasks"]),this.projectState.setCurrentProjectById(t.spec.projectId)}getTaskName(t){return t.spec.name||t.spec.id}getTaskDescription(t){let e=t.runtime?.status;return t.runtime?this.computedStatusText(e):t.spec.description||""}getTaskActionIcon(t){let e=t.runtime?.status;return e==="running"||e==="stopping"?"pause-circle":"play-circle"}computedStatusText(t){switch(t){case"running":return"\u8FD0\u884C\u4E2D";case"stopping":return"\u505C\u6B62\u4E2D";case"success":return"\u6210\u529F";case"failed":return"\u9519\u8BEF";case"stopped":return"\u5DF2\u505C\u6B62";default:return"\u7A7A\u95F2"}}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=M({type:o,selectors:[["app-project-item-popover"]],inputs:{projectId:"projectId"},features:[xe],decls:11,vars:0,consts:[[1,"dropdown-content"],[1,"pane-toolbar"],[1,"icon"],["nzType","inbox","nzTheme","outline"],[1,"title"],["nz-button","","type","button","nzType","text"],["nzType","close","nzTheme","outline"],[1,"tasks"],["nz-tooltip","","nzTooltipPlacement","right",1,"task-item",3,"nzTooltipTitle"],[1,"item-content",3,"click"],[1,"item-logo"],["nzType","code","nzTheme","outline"],[1,"list-item-info"],[1,"name"],[1,"description"],["nz-button","","nzType","text","type","button",3,"click","disabled"],["nzTheme","outline",3,"nzType"]],template:function(e,n){e&1&&(r(0,"div",0)(1,"div",1)(2,"div",2),c(3,"nz-icon",3),a(),r(4,"div",4),l(5,"\u4EFB\u52A1"),a(),r(6,"button",5),c(7,"nz-icon",6),a()(),r(8,"div",7),ae(9,eo,13,5,"div",8,Xn),a()()),e&2&&(s(9),pe(n.tasks()))},dependencies:[h,P,v,S,D,j,ne,te,ze],styles:[".dropdown-content[_ngcontent-%COMP%]{display:flex;flex-direction:column}.dropdown-content[_ngcontent-%COMP%] .pane-toolbar[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center;padding:6px 6px 6px 16px}.dropdown-content[_ngcontent-%COMP%] .pane-toolbar[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{flex:auto 0 0}.dropdown-content[_ngcontent-%COMP%] .pane-toolbar[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:18px;margin-right:6px}.dropdown-content[_ngcontent-%COMP%] .pane-toolbar[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{flex:100% 1 1;width:0;overflow:hidden;-ms-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap}.dropdown-content[_ngcontent-%COMP%] .tasks[_ngcontent-%COMP%]{width:320px;max-height:360px;overflow:hidden auto}.dropdown-content[_ngcontent-%COMP%] .tasks[_ngcontent-%COMP%] .task-item[_ngcontent-%COMP%]{padding:16px;display:flex;flex-direction:row;align-items:center}.dropdown-content[_ngcontent-%COMP%] .tasks[_ngcontent-%COMP%] .task-item[_ngcontent-%COMP%]:hover{background:#f5f5f5}.dropdown-content[_ngcontent-%COMP%] .tasks[_ngcontent-%COMP%] .task-item[_ngcontent-%COMP%] .item-content[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center;flex:100% 1 1;width:0;gap:16px;cursor:pointer}.dropdown-content[_ngcontent-%COMP%] .tasks[_ngcontent-%COMP%] .task-item[_ngcontent-%COMP%] .item-logo[_ngcontent-%COMP%]{font-size:42px;margin-right:16px;flex:auto 0 0;display:inline-flex;align-items:center}.dropdown-content[_ngcontent-%COMP%] .tasks[_ngcontent-%COMP%] .task-item[_ngcontent-%COMP%] .list-item-info[_ngcontent-%COMP%]{flex:100% 1 1;width:0;overflow:hidden;display:flex;flex-direction:column;align-items:stretch;justify-content:center}.dropdown-content[_ngcontent-%COMP%] .tasks[_ngcontent-%COMP%] .task-item[_ngcontent-%COMP%] .list-item-info[_ngcontent-%COMP%] .description[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-content[_ngcontent-%COMP%] .tasks[_ngcontent-%COMP%] .task-item[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{flex:auto 0 0}.dropdown-content[_ngcontent-%COMP%] .tasks[_ngcontent-%COMP%] .task-item[_ngcontent-%COMP%] button[_ngcontent-%COMP%] nz-icon[_ngcontent-%COMP%]{font-size:24px}"]})};function to(o,t){if(o&1){let e=z();r(0,"button",20),m("click",function(){u(e);let i=d();return f(i.openPageUrl(i.project==null?null:i.project.repoPageUrl))}),c(1,"nz-icon",21),a()}}function no(o,t){if(o&1&&c(0,"app-project-item-popover",22),o&2){let e=d();g("projectId",e.project==null?null:e.project.id)}}var tt=class o{taskRuntime=C(Zt);notify=C(me);project=null;open=!1;selectProject=new F;toggleFavorite=new F;editProject=new F;openInEditor=new F;deleteProject=new F;tasksRunningCount=A(()=>{let t=this.project?.id?.trim();return t?this.taskRuntime.runningCountSignal(t)():0});hasTasksRunning=A(()=>this.tasksRunningCount()>0);taskBadgeTip=A(()=>{let t=this.tasksRunningCount();return t>0?`${t} \u4E2A\u4EFB\u52A1\u6B63\u5728\u8FD0\u884C`:"\u4EFB\u52A1"});del(){if(this.hasTasksRunning()){this.notify.warn("\u5F53\u524D\u9879\u76EE\u6709\u4EFB\u52A1\u6B63\u5728\u8FD0\u884C\uFF0C\u8BF7\u5148\u505C\u6B62\u8FD9\u4E9B\u4EFB\u52A1\u540E\u518D\u5220\u9664\u9879\u76EE\u3002");return}this.deleteProject.emit()}openPageUrl(t){t&&window.open(t,"_blank")}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=M({type:o,selectors:[["app-project-item"]],inputs:{project:"project",open:"open"},outputs:{selectProject:"selectProject",toggleFavorite:"toggleFavorite",editProject:"editProject",openInEditor:"openInEditor",deleteProject:"deleteProject"},decls:28,vars:10,consts:[["contentTemplate",""],["nz-row","",1,"project-item"],["nz-col","","nzSpan","24",1,"content"],[1,"favorite"],["nz-button","","nzType","primary",3,"click"],["nzType","star",3,"nzTheme"],[1,"info",3,"click"],[1,"list-item-info"],[1,"name"],["nz-popover","","nzPopoverTrigger","click","nzPopoverPlacement","right",1,"task-popover-trigger",3,"click","nzPopoverContent","nzPopoverOverlayClassName"],[3,"nzStatus","nz-tooltip"],[1,"root-path"],[1,"actions"],["nzSize","large"],["nzType","code","nzTheme","outline"],["nz-button","","nzType","primary","nz-tooltip","\u7F16\u8F91",3,"click"],["nzType","edit","nzTheme","outline"],["nz-button","","nzType","primary","nz-tooltip","\u6253\u5F00\u4ED3\u5E93\u5730\u5740"],["nz-button","","nzType","primary","nz-tooltip","\u5220\u9664",3,"click"],["nzType","delete","nzTheme","outline"],["nz-button","","nzType","primary","nz-tooltip","\u6253\u5F00\u4ED3\u5E93\u5730\u5740",3,"click"],["nzType","global","nzTheme","outline"],[3,"projectId"]],template:function(e,n){if(e&1){let i=z();r(0,"div",1)(1,"div",2)(2,"div",3)(3,"button",4),m("click",function(_){return u(i),_.stopPropagation(),f(n.toggleFavorite.emit())}),c(4,"nz-icon",5),a()(),r(5,"div",6),m("click",function(){return u(i),f(n.selectProject.emit())}),r(6,"div",7)(7,"div",8)(8,"span"),l(9),a(),r(10,"span",9),m("click",function(_){return u(i),f(_.stopPropagation())}),c(11,"nz-badge",10),a()(),r(12,"div",11)(13,"span"),l(14),a()()()(),r(15,"div",12)(16,"nz-space",13)(17,"button",4),m("click",function(){return u(i),f(n.openInEditor.emit())}),c(18,"nz-icon",14),r(19,"span"),l(20,"\u5728\u7F16\u8F91\u5668\u4E2D\u6253\u5F00"),a()(),r(21,"button",15),m("click",function(){return u(i),f(n.editProject.emit())}),c(22,"nz-icon",16),a(),y(23,to,2,0,"button",17),r(24,"button",18),m("click",function(){return u(i),f(n.del())}),c(25,"nz-icon",19),a()()()()(),O(26,no,1,1,"ng-template",null,0,W)}if(e&2){let i=V(27);Tt("open",n.open),s(4),g("nzTheme",n.project!=null&&n.project.isFavorite?"fill":"outline"),s(5),b(n.project==null?null:n.project.name),s(),g("nzPopoverContent",i)("nzPopoverOverlayClassName","project-item-popover"),s(),g("nzStatus",n.hasTasksRunning()?"processing":"default")("nz-tooltip",n.taskBadgeTip()),s(3),b(n.project==null?null:n.project.root),s(9),x(n.project!=null&&n.project.repoPageUrl?23:-1)}},dependencies:[h,E,$,G,L,S,D,j,H,P,v,Jt,Qt,tn,en,At,Vt,et,te],styles:['.project-item[_ngcontent-%COMP%]{border-radius:4px;padding:0;margin:8px 0;transition:all .3s;cursor:pointer}.project-item.open[_ngcontent-%COMP%], .project-item[_ngcontent-%COMP%]:hover{box-shadow:0 4px 12px #0000001a;background:var(--app-primary-3)}.project-item[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{padding:16px;display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto;grid-template-areas:"icon info actions";grid-gap:16px;align-items:center}.project-item[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .favorite[_ngcontent-%COMP%]{grid-area:icon;display:flex;align-items:center;justify-content:center}.project-item[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .info[_ngcontent-%COMP%]{grid-area:info;-webkit-user-select:none;user-select:none}.project-item[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] .list-item-info[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:4px}.project-item[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] .list-item-info[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{flex:auto 0 0}.project-item[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] .list-item-info[_ngcontent-%COMP%] .name[_ngcontent-%COMP%] .task-popover-trigger[_ngcontent-%COMP%]{display:inline-block;margin-left:8px;cursor:pointer}.project-item[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] .list-item-info[_ngcontent-%COMP%] .name[_ngcontent-%COMP%] .task-popover-trigger[_ngcontent-%COMP%] nz-badge[_ngcontent-%COMP%]{font-size:18px}.project-item[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] .list-item-info[_ngcontent-%COMP%] .root-path[_ngcontent-%COMP%]{flex:auto 0 0;opacity:.7;font-size:14px}']})};var vn=o=>({$implicit:o}),oo=(o,t)=>t.id;function io(o,t){o&1&&lt(0)}function ro(o,t){if(o&1&&(r(0,"div",6)(1,"h2"),l(2,"\u6536\u85CF\u7684\u9879\u76EE"),a()(),O(3,io,1,0,"ng-container",7)),o&2){let e=d(),n=V(11);s(3),g("ngTemplateOutlet",n)("ngTemplateOutletContext",ct(2,vn,e.projectState.favoriteProjects()))}}function ao(o,t){o&1&&(r(0,"div",6)(1,"h2"),l(2,"\u66F4\u591A\u9879\u76EE"),a()())}function po(o,t){o&1&&lt(0)}function so(o,t){o&1&&(r(0,"div",8),c(1,"nz-empty",9),a())}function lo(o,t){if(o&1){let e=z();r(0,"app-project-item",12),m("selectProject",function(){let i=u(e).$implicit,p=d(2);return f(p.projectState.selectProject(i))})("toggleFavorite",function(){let i=u(e).$implicit,p=d(2);return f(p.projectState.toggleFavorite(i.id))})("openInEditor",function(){let i=u(e).$implicit,p=d(2);return f(p.projectState.openInEditor(i.id))})("editProject",function(){let i=u(e).$implicit,p=d(2);return f(p.projectState.openEditModal(i))})("deleteProject",function(){let i=u(e).$implicit,p=d(2);return f(p.projectState.deleteProject(i.id))}),a()}if(o&2){let e=t.$implicit,n=d(2);g("project",e)("open",n.projectState.isOpen(e))}}function co(o,t){if(o&1&&(r(0,"div",10),ae(1,lo,1,2,"app-project-item",11,oo),a()),o&2){let e=t.$implicit;s(),pe(e)}}var nt=class o{projectState=C(oe);static \u0275fac=function(e){return new(e||o)};static \u0275cmp=M({type:o,selectors:[["app-project-list"]],decls:12,vars:8,consts:[["itemsTpl",""],["nz-row","",1,"page"],["nz-col","","nzSpan","16","nzOffset","4",1,"col"],["nz-col","",1,"topbar"],["nzInputPrefix","","nzType","search",1,"search-icon"],["nz-input","","placeholder","\u641C\u7D22\u9879\u76EE",3,"ngModelChange","ngModel"],[1,"header"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"no-projects"],["nzNotFoundImage","simple","nzNotFoundContent","\u6682\u65E0\u9879\u76EE\uFF0C\u5FEB\u53BB\u521B\u5EFA\u6216\u5BFC\u5165\u7B2C\u4E00\u4E2A\u9879\u76EE\u5427\uFF01"],[1,"content"],[3,"project","open"],[3,"selectProject","toggleFavorite","openInEditor","editProject","deleteProject","project","open"]],template:function(e,n){if(e&1){let i=z();r(0,"div",1)(1,"div",2)(2,"div",3)(3,"nz-input-wrapper"),c(4,"nz-icon",4),r(5,"input",5),m("ngModelChange",function(_){return u(i),f(n.projectState.keyword.set(_))}),a()()(),y(6,ro,4,4),y(7,ao,3,0,"div",6),O(8,po,1,0,"ng-container",7),y(9,so,2,0,"div",8),a(),O(10,co,3,0,"ng-template",null,0,W),a()}if(e&2){let i=V(11);s(5),g("ngModel",n.projectState.keyword()),s(),x(n.projectState.favoriteProjects().length>0?6:-1),s(),x(n.projectState.favoriteProjects().length>0?7:-1),s(),g("ngTemplateOutlet",i)("ngTemplateOutletContext",ct(6,vn,n.projectState.moreProjects())),s(),x(n.projectState.projects().length===0?9:-1)}},dependencies:[h,It,E,Y,U,q,I,$,G,L,tt,De,be,Q,K,ce,je,P,v],styles:["[_nghost-%COMP%]{display:block;height:100%;overflow:hidden}.page[_ngcontent-%COMP%]{height:100%;overflow-y:auto}.page[_ngcontent-%COMP%] .topbar[_ngcontent-%COMP%]{width:100%;display:flex;justify-content:center;margin-bottom:12px}.page[_ngcontent-%COMP%] .topbar[_ngcontent-%COMP%] nz-input-wrapper[_ngcontent-%COMP%]{width:25%;min-width:200px}.page[_ngcontent-%COMP%] .col[_ngcontent-%COMP%]{display:flex;flex-direction:column}.header[_ngcontent-%COMP%]{padding:12px 0}.header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:600}"]})};function mo(o,t){o&1&&(c(0,"nz-icon",8),l(1," \u9879\u76EE "))}function uo(o,t){o&1&&c(0,"app-project-list")}function fo(o,t){o&1&&(c(0,"nz-icon",9),l(1," \u521B\u5EFA "))}function go(o,t){o&1&&c(0,"app-project-create")}function Co(o,t){o&1&&(c(0,"nz-icon",10),l(1," \u5BFC\u5165 "))}function _o(o,t){o&1&&c(0,"app-project-import")}var ot=class o{importState=C(ge);selectedIndex=0;tabIndexChange(t){t===2?this.importState.active.set(!0):this.importState.active.set(!1)}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=M({type:o,selectors:[["app-projects"]],decls:17,vars:4,consts:[["projectTitleTemplate",""],["addTitleTemplate",""],["importTitleTemplate",""],[1,"page"],[1,"header"],["nzCentered","",1,"tabs-container",3,"nzSelectedIndexChange","nzSelectedIndex"],[3,"nzTitle"],["nz-tab",""],["nzType","unordered-list","nzTheme","outline"],["nzType","plus-square","nzTheme","outline"],["nzType","import","nzTheme","outline"]],template:function(e,n){if(e&1){let i=z();r(0,"div",3)(1,"div",4)(2,"h2"),l(3,"\u9879\u76EE\u7BA1\u7406"),a()(),r(4,"nz-tabs",5),T("nzSelectedIndexChange",function(_){return u(i),k(n.selectedIndex,_)||(n.selectedIndex=_),f(_)}),m("nzSelectedIndexChange",function(_){return u(i),f(n.tabIndexChange(_))}),r(5,"nz-tab",6),O(6,mo,2,0,"ng-template",null,0,W)(8,uo,1,0,"ng-template",7),a(),r(9,"nz-tab",6),O(10,fo,2,0,"ng-template",null,1,W)(12,go,1,0,"ng-template",7),a(),r(13,"nz-tab",6),O(14,Co,2,0,"ng-template",null,2,W)(16,_o,1,0,"ng-template",7),a()()()}if(e&2){let i=V(7),p=V(11),_=V(15);s(4),w("nzSelectedIndex",n.selectedIndex),s(),g("nzTitle",i),s(4),g("nzTitle",p),s(4),g("nzTitle",_)}},dependencies:[h,cn,ln,sn,pn,P,v,nt,Ke,Xe],styles:[".page[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%}.header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;flex:0 0 auto;padding:16px 0}.header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0}nz-tabs.tabs-container[_ngcontent-%COMP%]{flex:1 1 auto;height:0}nz-tabs.tabs-container[_ngcontent-%COMP%] .ant-tabs-content{height:100%}nz-tabs.tabs-container[_ngcontent-%COMP%] .ant-tabs-content .ant-tabs-tabpane{height:100%}.toolbar[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{flex:1}.current[_ngcontent-%COMP%]{margin:10px 0;opacity:.75}"]})};var zo=[{path:"",component:ot}],it=class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=ke({type:o});static \u0275inj=ye({imports:[ze.forChild(zo),ze]})};var yn=class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=ke({type:o});static \u0275inj=ye({imports:[h,it]})};export{yn as ProjectsModule};
@@ -0,0 +1 @@
1
+ import{c as O}from"./chunk-7VJKEZTT.js";import{a as N,b as E,c as p,f as i,g as T,h as w}from"./chunk-JIVQNGBJ.js";import{v}from"./chunk-SIKDYQOR.js";import{J as f,O as m,e as u,l,m as h,na as g,ra as S,sa as y,ub as b,v as r}from"./chunk-YGWA6NUS.js";var d=class e{constructor(n){this.zone=n}ws;url=i.production===!0?`ws:${window.location.host}/ws`:"ws://127.0.0.1:3211/ws";pending=[];state$=new h("idle");inbound$=new l;reconnectAttempt=0;manualClose=!1;opening=!1;reconnectSub;stateChanges(){return this.state$.asObservable()}messages(){return this.inbound$.asObservable()}connect(){this.opening||this.ws&&(this.ws.readyState===WebSocket.OPEN||this.ws.readyState===WebSocket.CONNECTING)||(this.manualClose=!1,this.open())}close(){this.manualClose=!0,this.cancelReconnect(),this.stopHeartbeat(),this.ws?.close(),this.ws=void 0,this.opening=!1,this.state$.next("closed")}send(n){let s=JSON.stringify(n);this.ws?.readyState===WebSocket.OPEN?this.ws.send(s):this.pending.push(n)}isOpen(){return this.state$.value==="open"}open(){this.opening||this.ws&&(this.ws.readyState===WebSocket.OPEN||this.ws.readyState===WebSocket.CONNECTING)||(this.opening=!0,this.state$.next("connecting"),this.cancelReconnect(),this.zone.runOutsideAngular(()=>{let n=new WebSocket(this.url);this.ws=n,n.onopen=()=>{this.reconnectAttempt=0,this.opening=!1,this.cancelReconnect(),this.pending.splice(0).forEach(o=>this.send(o)),this.zone.run(()=>this.state$.next("open")),this.startHeartbeat()},n.onmessage=s=>{let o;try{o=JSON.parse(s.data)}catch{return}this.zone.run(()=>this.inbound$.next(o))},n.onerror=()=>{this.zone.run(()=>this.state$.next("error"));try{n.close()}catch{}},n.onclose=()=>{this.opening=!1,this.ws=void 0,this.stopHeartbeat(),this.zone.run(()=>this.state$.next("closed")),this.manualClose||this.scheduleReconnect()}}))}heartbeatTimer;startHeartbeat(){this.stopHeartbeat(),this.heartbeatTimer=setInterval(()=>{this.send({op:"ping"})},2e4)}stopHeartbeat(){this.heartbeatTimer&&(clearInterval(this.heartbeatTimer),this.heartbeatTimer=void 0)}scheduleReconnect(){if(this.reconnectSub)return;this.reconnectAttempt++;let n=Math.min(1e3*Math.pow(2,this.reconnectAttempt),15e3);this.reconnectSub=f(n).subscribe(()=>{this.reconnectSub=void 0,!this.manualClose&&this.open()})}cancelReconnect(){this.reconnectSub?.unsubscribe(),this.reconnectSub=void 0}static \u0275fac=function(s){return new(s||e)(S(b))};static \u0275prov=g({token:e,factory:e.\u0275fac,providedIn:"root"})};var a=u(N());var R=u(O());function c(e){return typeof e=="object"&&e!==null}function C(e){if(c(e.error)){let n=e.error.error,s=c(n)?n:void 0,o=p(e.error.code);if(o!==void 0)return o;let t=p(s?.code);if(t!==void 0)return t}return e.status===0?E.HTTP_ERROR:e.status===401?a.GlobalErrorCodes.UNAUTHORIZED:a.GlobalErrorCodes.INTERNAL_ERROR}function M(e){if(c(e.error)){let n=e.error.error,o=(c(n)?n:void 0)?.message;if(typeof o=="string"&&o.trim())return o;let t=e.error.message;if(typeof t=="string"&&t.trim())return t}return typeof e.message=="string"&&e.message.trim()?e.message:"\u8BF7\u6C42\u5931\u8D25"}var J=(e,n)=>{let s=y(T),o=R.uniqueId("req-");return e=e.clone({setHeaders:{"X-Request-Id":o}}),n(e).pipe(m(t=>{if(i.production||console.error(`[HTTP][${o}] Error:`,t),t instanceof w)return s.dispatch(t.code,t.message,t.details),r(()=>t);if(t instanceof v){let P=C(t),x=M(t);return s.dispatch(P,x,t.error),r(()=>t)}let k=t instanceof Error?t.message:"\u672A\u77E5\u9519\u8BEF";return s.dispatch(a.GlobalErrorCodes.INTERNAL_ERROR,k,t),r(()=>t)}))};export{d as a,J as b};
@@ -1,4 +1,4 @@
1
- import{f as rt}from"./chunk-XJDJL3TQ.js";import{a as lt,b as st}from"./chunk-PY3AUTHC.js";import{a as fe,b as ue}from"./chunk-UJKK4A7Y.js";import{a as at,b as pe}from"./chunk-CO3CQHKV.js";import{h as ot}from"./chunk-RMIYLAEM.js";import{d as tt,e as nt,f as it}from"./chunk-CPJTSA6E.js";import{e as Ze,h as Xe}from"./chunk-TXAXE73U.js";import{e as We,g as Le}from"./chunk-U2YWR3HF.js";import{d as de,k as Ye,m as et,o as Dt}from"./chunk-K6C5ZIV2.js";import{$b as Ue,Db as $,Ea as X,Fa as Y,Fb as B,Jb as K,Lb as qe,Na as A,Oa as ee,Qa as R,Ra as J,Tb as H,Xb as Qe,Zb as W,ac as L,dc as Ge,fc as ce}from"./chunk-VZYJ3MSW.js";import"./chunk-HFZLJHYR.js";import{h as Ee}from"./chunk-WUA5JFDD.js";import{g as He,h as se,n as b}from"./chunk-KRYMOHYF.js";import{$b as k,$c as Be,Ac as Je,Fb as w,Gb as re,Gc as D,Ha as T,Jc as d,Kc as u,Lc as P,Oa as G,Ub as je,Vb as ze,Wb as g,Yb as C,Yc as ie,Zb as ae,Zc as $e,a as z,ac as E,b as F,bc as f,cc as s,dc as a,e as Tt,ec as M,fc as V,gc as I,ic as Fe,id as j,jc as Ve,jd as Ke,lc as y,mc as ke,na as Ie,nb as l,oa as oe,od as le,rc as m,sa as O,sb as S,uc as c,ya as h,yc as Ae,z as Z,za as x,zc as Re}from"./chunk-4BRW6LCZ.js";var Q=Tt(Dt());var St=()=>[],Nt=(n,t)=>t.id,It=(n,t)=>t.filePath;function jt(n,t){n&1&&M(0,"nz-icon",15)}function zt(n,t){if(n&1){let e=y();s(0,"button",18),m("click",function(o){let r=h(e).$implicit,p=c(2).$implicit,v=c();return x(v.selectFile(p,r,o))}),M(1,"nz-icon",19),s(2,"span"),d(3),a()()}if(n&2){let e=t.$implicit,i=c(2).$implicit,o=c();D("active",i.id===o.activeDomainId()&&e.filePath===o.activeFilePath()),f("nz-tooltip",e.filePath),l(3),u(o.formatFileLabel(e))}}function Ft(n,t){if(n&1&&(s(0,"div",16),k(1,zt,4,4,"button",17,It),a()),n&2){let e=c().$implicit;l(),E(e.files||ie(0,St))}}function Vt(n,t){if(n&1){let e=y();s(0,"div",7)(1,"button",8),m("click",function(){let o=h(e).$implicit,r=c();return x(r.selectProvider(o))}),s(2,"span",9),M(3,"nz-icon",10),a(),s(4,"span",11)(5,"span",12)(6,"span",13),d(7),a()(),s(8,"span",14),d(9),a()(),g(10,jt,1,0,"nz-icon",15),a(),g(11,Ft,3,1,"div",16),a()}if(n&2){let e=t.$implicit,i=c(),o=i.isMultiFile(e);D("expanded",i.isExpanded(e))("active",i.isNodeActive(e)),l(),D("active",i.isNodeActive(e)),l(),f("ngClass",i.providerClass(e)),l(),f("nzType",e.icon||"setting"),l(4),u(e.label),l(),f("nz-tooltip",i.providerMeta(e)),l(),P(" ",i.providerMeta(e)," "),l(),C(o?10:-1),l(),C(o&&i.isExpanded(e)?11:-1)}}function At(n,t){n&1&&(s(0,"div",6),d(1,"\u6CA1\u6709\u5339\u914D\u7684\u914D\u7F6E\u6E90"),a())}var me=class n{keyword=T("");nodes=le([]);activeDomainId=le("");activeFilePath=le("");domainSelect=new S;documentSelect=new S;expanded=T({});selectProvider(t){if(this.isMultiFile(t)){this.expanded.update(i=>F(z({},i),{[t.id]:!i[t.id]}));return}let e=t.files?.[0]?.filePath;this.domainSelect.emit(t.id),this.documentSelect.emit({type:t.id,filePath:e})}selectFile(t,e,i){i.stopPropagation(),this.domainSelect.emit(t.id),this.documentSelect.emit({type:t.id,filePath:e.filePath})}isMultiFile(t){return(t.files?.length??0)>1}isExpanded(t){return this.expanded()[t.id]||t.id===this.activeDomainId()}isNodeActive(t){return t.id===this.activeDomainId()&&(!this.isMultiFile(t)||!this.activeFilePath())}providerMeta(t){let e=t.files??[];return e.length===1?this.formatFileLabel(e[0]):e.length>1?`${e.length} \u4E2A\u6587\u4EF6`:t.description||"\u672A\u68C0\u6D4B\u5230\u6587\u4EF6"}providerClass(t){return t.id.replace(/[^a-z0-9_-]/gi,"-")}formatFileLabel(t){return t.filePath==="vue-project:overview"?"\u9879\u76EE\u6982\u89C8":t.title||t.filePath}filtered=j(()=>{let t=this.keyword().trim().toLowerCase();return t?this.nodes().filter(e=>(e.label??"").toLowerCase().includes(t)||(e.description??"").toLowerCase().includes(t)||(e.files??[]).some(i=>i.filePath.toLowerCase().includes(t)||i.title.toLowerCase().includes(t))):this.nodes()});static \u0275fac=function(e){return new(e||n)};static \u0275cmp=w({type:n,selectors:[["app-config-nav-component"]],inputs:{nodes:[1,"nodes"],activeDomainId:[1,"activeDomainId"],activeFilePath:[1,"activeFilePath"]},outputs:{domainSelect:"domainSelect",documentSelect:"documentSelect"},decls:9,vars:2,consts:[[1,"config-nav"],[1,"nav-search"],["nzInputPrefix","","nzType","search"],["nz-input","","placeholder","\u641C\u7D22\u914D\u7F6E\u6E90\u6216\u6587\u4EF6",3,"ngModelChange","ngModel"],[1,"provider-list"],[1,"provider-group",3,"expanded","active"],[1,"empty-nav"],[1,"provider-group"],["type","button",1,"provider-item",3,"click"],[1,"provider-icon",3,"ngClass"],["nzTheme","outline",3,"nzType"],[1,"provider-info"],[1,"provider-title-row"],[1,"provider-name"],[1,"provider-meta",3,"nz-tooltip"],["nzType","right",1,"expand-icon"],[1,"file-list"],["type","button",1,"file-item",3,"active","nz-tooltip"],["type","button",1,"file-item",3,"click","nz-tooltip"],["nzType","file-text"]],template:function(e,i){e&1&&(s(0,"aside",0)(1,"div",1)(2,"nz-input-wrapper"),M(3,"nz-icon",2),s(4,"input",3),m("ngModelChange",function(r){return i.keyword.set(r)}),a()()(),s(5,"div",4),k(6,Vt,12,13,"div",5,Nt,!1,At,2,0,"div",6),a()()),e&2&&(l(4),f("ngModel",i.keyword()),l(2),E(i.filtered()))},dependencies:[b,He,H,$,B,K,L,W,Ue,Qe,Y,X,ce,Ge],styles:[".config-nav[_ngcontent-%COMP%]{width:100%;min-height:100%;background:var(--app-component-bg)}.nav-search[_ngcontent-%COMP%]{width:100%;padding:10px 12px;display:flex;gap:10px;align-items:center;justify-content:space-between;flex:0 0 auto}.nav-search[_ngcontent-%COMP%] nz-input-wrapper[_ngcontent-%COMP%]{width:100%;border-radius:18px}.provider-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px;padding:10px}.provider-group[_ngcontent-%COMP%]{border-radius:6px}.provider-item[_ngcontent-%COMP%], .file-item[_ngcontent-%COMP%]{width:100%;border:0;background:transparent;cursor:pointer;text-align:left;color:inherit}.provider-item[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;gap:10px;min-height:62px;padding:10px;border-radius:6px}.provider-item[_ngcontent-%COMP%]:hover, .provider-item.active[_ngcontent-%COMP%]{background:var(--app-primary-2)}.provider-icon[_ngcontent-%COMP%]{flex:0 0 34px;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:#f0f5ff;color:#1677ff;font-size:18px}.provider-icon.ts[_ngcontent-%COMP%], .provider-icon.package-json[_ngcontent-%COMP%], .provider-icon.vite-config[_ngcontent-%COMP%], .provider-icon.env[_ngcontent-%COMP%]{background:#f6ffed;color:#389e0d}.provider-info[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}.provider-title-row[_ngcontent-%COMP%]{min-width:0;display:flex;align-items:center;gap:6px}.provider-name[_ngcontent-%COMP%]{min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.provider-meta[_ngcontent-%COMP%]{color:var(--app-text-secondary);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expand-icon[_ngcontent-%COMP%]{color:var(--app-text-secondary);transition:transform .18s ease}.expanded[_ngcontent-%COMP%] .expand-icon[_ngcontent-%COMP%]{transform:rotate(90deg)}.file-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2px;padding:2px 8px 8px 54px}.file-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:7px;min-height:30px;padding:5px 8px;border-radius:4px;color:var(--app-text-secondary);font-size:12px}.file-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-item[_ngcontent-%COMP%]:hover, .file-item.active[_ngcontent-%COMP%]{color:var(--app-primary);background:var(--app-primary-2)}.empty-nav[_ngcontent-%COMP%]{padding:20px 10px;color:var(--app-text-secondary);text-align:center}"]})};function Rt(n){return n.replace(/~1/g,"/").replace(/~0/g,"~")}function pt(n){return n===""?[]:n.startsWith("/")?n.slice(1).split("/").map(t=>Rt(t)):[]}function te(n,t){return t?t.startsWith("/")?pt(t).reduce((i,o)=>i?.[o],n):t.split(".").reduce((e,i)=>e?.[i],n):n}function ft(n,t,e){if(!t)return e;let i=t.startsWith("/")?pt(t):t.split("."),o=n??{},r=i.pop();if(!r)return e;let p=o;for(let v of i)(p[v]===void 0||p[v]===null||typeof p[v]!="object")&&(p[v]={}),p=p[v];return p[r]=e,o}var Jt={"angular-workspace":"proj:angular","angular-environment":"deployment-unit",tsconfig:"proj:ts","package-json":"codepen-circle","vue-project":"proj:vue","vite-config":"thunderbolt",env:"deployment-unit"},ut={"vue-project":10,"angular-workspace":20,"package-json":30,"vite-config":40,"angular-environment":50,tsconfig:60,env:70};function $t(n){return n==="vue-project:overview"?"\u9879\u76EE\u6982\u89C8":n}function mt(n){return[...n].sort((t,e)=>{let i=ut[t.type]??1e3,o=ut[e.type]??1e3;return i!==o?i-o:(t.title??t.type).localeCompare(e.title??e.type)})}function gt(n){return mt(n).filter(t=>t.available).map(t=>({id:t.type,type:"provider",label:t.title,icon:Jt[t.type]??"setting",description:t.reason,available:t.available,readonly:t.metadata?.readonly===!0,files:t.filePaths.map(e=>({filePath:e,title:$t(e)})),fileCount:t.filePaths.length}))}function Ct(n){return mt(n).find(e=>e.available)?.type??null}function Bt(n){return n.replace(/~1/g,"/").replace(/~0/g,"~")}function Kt(n,t){return t===""?n:t.startsWith("/")?t.slice(1).split("/").map(i=>Bt(i)).reduce((i,o)=>{if(!(i==null||typeof i!="object"))return i[o]},n):void 0}function Ht(n,t){return t?t.split(".").reduce((e,i)=>{if(!(e==null||typeof e!="object"))return e[i]},n):n}function vt(n,t){return t?t.startsWith("/")?Kt(n,t):Ht(n,t):n}function ht(n){return typeof n=="string"?"text":typeof n=="number"?"number":typeof n=="boolean"?"boolean":Array.isArray(n)?"array":n!=null&&typeof n=="object"?"object":n===null?"json":"unknown"}function xt(n){let t=new Map;for(let e of n.schema?.groups??[])for(let i of e.fields??[])i.path&&t.set(i.path,{label:i.label||i.path,groupTitle:e.title});return n.patches.map(e=>{let i=e.path??"";try{let o=vt(n.before,i),r=vt(n.after,i),p=Wt(t,i),v=r!==void 0?r:o;return{path:i,label:p?.label??(i||"(root)"),groupTitle:p?.groupTitle,op:e.op,before:o,after:r,valueType:ht(v)}}catch{return{path:i,label:i||"(root)",op:e.op,before:void 0,after:e.value,valueType:ht(e.value)}}})}function Wt(n,t){let e=n.get(t);if(e)return e;let i=t;for(;i;){i=Lt(i);let o=n.get(i);if(o)return o}}function Lt(n){if(!n)return"";let t=n.startsWith("/")?"/":".",e=n.lastIndexOf(t);return e<=0?"":n.slice(0,e)}function ge(n){let t=n??"",e=Qt(t);return e?bt(e).map(i=>F(z({},i),{sensitive:Ce(i.key)})):qt(t)}function _t(n){return n.flatMap(t=>{if(!t||typeof t!="object")return[];let e=t,i=typeof e.key=="string"?e.key:"";return i?[{key:i,value:String(e.value??""),line:typeof e.line=="number"?e.line:void 0,commented:typeof e.commented=="boolean"?e.commented:void 0,valueType:typeof e.valueType=="string"?e.valueType:void 0,sensitive:typeof e.sensitive=="boolean"?e.sensitive:Ce(i)}]:[]})}function yt(n,t){let e=new Map(ge(n).map(r=>[r.key,r])),i=new Map(ge(t).map(r=>[r.key,r]));return[...new Set([...e.keys(),...i.keys()])].sort((r,p)=>r.localeCompare(p)).flatMap(r=>{let p=e.get(r)?.value,v=i.get(r)?.value;return p===v?[]:[{key:r,before:p,after:v,op:v===void 0?"remove":"set",sensitive:Ce(r)}]})}function qt(n){return n.split(/\r?\n/).map((t,e)=>({line:t.trim(),number:e+1})).filter(t=>t.line&&!t.line.startsWith("#")&&t.line.includes("=")).map(t=>{let e=t.line,i=e.indexOf("="),o=e.slice(0,i).trim(),r=De(e.slice(i+1).trim());return{key:o,value:r,line:t.number,commented:!1,sensitive:Ce(o)}}).filter(t=>!!t.key)}function bt(n,t=""){return Ut(n).flatMap(e=>{let i=Zt(e);if(i<0)return[];let o=e.slice(0,i).trim(),r=Mt(e.slice(i+1).trim()),p=De(o);if(!p)return[];let v=t?`${t}.${p}`:p;if(r.startsWith("{")){let _=wt(r,0);return _?bt(_.content,v):[]}return[{key:v,value:Gt(r)}]})}function Qt(n){let t=n.search(/\bexport\s+const\s+\w+\s*=/),e=n.indexOf("{",t>=0?t:0);return e<0?null:wt(n,e)?.content??null}function wt(n,t){let e=0,i=null,o=!1;for(let r=t;r<n.length;r+=1){let p=n[r];if(i){o?o=!1:p==="\\"?o=!0:p===i&&(i=null);continue}if(p==='"'||p==="'"||p==="`"){i=p;continue}if(p==="{"){e+=1;continue}if(p==="}"&&(e-=1,e===0))return{content:n.slice(t+1,r),end:r}}return null}function Ut(n){let t=[],e=0,i=0,o=null,r=!1;for(let v=0;v<n.length;v+=1){let _=n[v];if(o){r?r=!1:_==="\\"?r=!0:_===o&&(o=null);continue}if(_==='"'||_==="'"||_==="`"){o=_;continue}if(_==="{"||_==="["||_==="("){i+=1;continue}if(_==="}"||_==="]"||_===")"){i-=1;continue}_===","&&i===0&&(t.push(n.slice(e,v).trim()),e=v+1)}let p=n.slice(e).trim();return p&&t.push(p),t}function Zt(n){let t=null,e=!1;for(let i=0;i<n.length;i+=1){let o=n[i];if(t){e?e=!1:o==="\\"?e=!0:o===t&&(t=null);continue}if(o==='"'||o==="'"||o==="`"){t=o;continue}if(o===":")return i}return-1}function Mt(n){let t=null,e=!1;for(let i=0;i<n.length-1;i+=1){let o=n[i];if(t){e?e=!1:o==="\\"?e=!0:o===t&&(t=null);continue}if(o==='"'||o==="'"||o==="`"){t=o;continue}if(o==="/"&&n[i+1]==="/")return n.slice(0,i).trim()}return n.trim()}function De(n){let t=n.trim();return t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")||t.startsWith("`")&&t.endsWith("`")?t.slice(1,-1):t}function Gt(n){let t=Mt(n).replace(/,$/,"").trim();return De(t)}function Ce(n){return/(password|secret|token|pass|key|dsn|private)/i.test(n)}function Xt(n,t){if(n&1&&(s(0,"span"),d(1),a()),n&2){let e=c();l(),P("/ ",e.filePath)}}function Yt(n,t){if(n&1&&(s(0,"span",12),d(1),a()),n&2){let e=c().$implicit;l(),u(e.groupTitle)}}function en(n,t){if(n&1&&(s(0,"div",18),d(1),a()),n&2){let e=c().$implicit,i=c(2);l(),u(i.rawSummary(e.before))}}function tn(n,t){if(n&1&&(s(0,"pre",19),d(1),a()),n&2){let e=c().$implicit,i=c(2);l(),u(i.formatDiffValue(e.before))}}function nn(n,t){if(n&1&&(s(0,"div",18),d(1),a()),n&2){let e=c().$implicit,i=c(2);l(),u(i.rawSummary(e.after))}}function on(n,t){if(n&1&&(s(0,"pre",21),d(1),a()),n&2){let e=c().$implicit,i=c(2);l(),u(i.formatDiffValue(e.after))}}function rn(n,t){if(n&1&&(s(0,"article",7)(1,"div",8)(2,"div",9)(3,"span",10),d(4),a(),s(5,"span",11),d(6),a(),g(7,Yt,2,1,"span",12),a(),s(8,"nz-tag",13),d(9),a()(),s(10,"div",14),d(11),a(),s(12,"div",15)(13,"div",16)(14,"div",17),d(15,"\u65E7\u503C"),a(),g(16,en,2,1,"div",18)(17,tn,2,1,"pre",19),a(),s(18,"div",16)(19,"div",20),d(20,"\u65B0\u503C"),a(),g(21,nn,2,1,"div",18)(22,on,2,1,"pre",21),a()()()),n&2){let e=t.$implicit,i=t.$index,o=c(2);l(4),u(i+1),l(2),u(e.label),l(),C(e.groupTitle?7:-1),l(),f("nzColor",o.opColor(e.op)),l(),u(o.opText(e.op)),l(2),u(e.path||"(root)"),l(),D("complex",o.isComplex(e)),l(4),C(o.isRawText(e.before,e)?16:17),l(5),C(o.isRawText(e.after,e)?21:22)}}function an(n,t){if(n&1&&(s(0,"div",4),k(1,rn,23,10,"article",7,ae),a()),n&2){let e=c();l(),E(e.diffItems)}}function ln(n,t){n&1&&(s(0,"div",5),d(1,"\u5F53\u524D\u6CA1\u6709\u53EF\u5C55\u793A\u7684\u5B57\u6BB5\u7EA7\u53D8\u66F4\u3002"),a())}function sn(n,t){if(n&1&&(s(0,"details",6)(1,"summary"),d(2,"\u9AD8\u7EA7\uFF1A\u67E5\u770B\u5B8C\u6574 before / after"),a(),s(3,"div",22)(4,"section",23)(5,"div",24),d(6,"Before"),a(),s(7,"pre",25),d(8),a()(),s(9,"section",23)(10,"div",24),d(11,"After"),a(),s(12,"pre",25),d(13),a()()()()),n&2){let e=c();l(8),u(e.formatValue(e.before)),l(5),u(e.formatValue(e.after))}}var ve=class n{patches=[];before;after;schema;providerTitle="";filePath="";diffItems=[];modalData=O(We,{optional:!0});constructor(){this.modalData?.patches&&(this.patches=this.modalData.patches),this.modalData&&"before"in this.modalData&&(this.before=this.modalData.before),this.modalData&&"after"in this.modalData&&(this.after=this.modalData.after),this.modalData?.schema&&(this.schema=this.modalData.schema),this.modalData?.providerTitle&&(this.providerTitle=this.modalData.providerTitle),this.modalData?.filePath&&(this.filePath=this.modalData.filePath),this.diffItems=this.buildDiffItems()}buildDiffItems(){let t=this.buildEnvRawDiffItems();return t.length>0?t:xt({before:this.before,after:this.after,patches:this.patches,schema:this.schema})}buildEnvRawDiffItems(){return!this.patches.some(i=>i.path==="/raw")||typeof this.before!="string"||typeof this.after!="string"?[]:yt(this.before,this.after).map(i=>({path:`/raw/${i.key}`,label:i.key,groupTitle:i.sensitive?"Key / Value \u9884\u89C8 \xB7 \u654F\u611F":"Key / Value \u9884\u89C8",op:i.op,before:i.before,after:i.after,valueType:"text"}))}isComplex(t){return t.valueType==="array"||t.valueType==="object"||t.valueType==="json"}isRawText(t,e){return e.valueType==="text"&&typeof t=="string"&&(t.includes(`
1
+ import{f as rt}from"./chunk-NVN2P466.js";import{a as lt,b as st}from"./chunk-KDMWEV46.js";import{a as fe,b as ue}from"./chunk-AQYHNHJ3.js";import{h as ot}from"./chunk-PUHSNEN6.js";import{a as at,b as pe}from"./chunk-7X4X4YHI.js";import{d as tt,e as nt,f as it}from"./chunk-JFR7U5DE.js";import{e as Ze,h as Xe}from"./chunk-5Y7KNVNN.js";import{e as We,g as Le}from"./chunk-IX6UZA7J.js";import{a as et,c as Dt}from"./chunk-7VJKEZTT.js";import{c as Ge,e as ce}from"./chunk-S6BY2OTR.js";import{d as de,k as Ye}from"./chunk-JIVQNGBJ.js";import{Ia as X,Ib as $,Ja as Y,Kb as B,Ob as K,Qb as qe,Ra as A,Sa as ee,Ua as R,Va as J,Yb as H,ac as Qe,cc as W,ec as Ue,fc as L}from"./chunk-2EB7UV3S.js";import"./chunk-HFZLJHYR.js";import{i as Ee}from"./chunk-X6PRUZ5G.js";import{g as He,h as se,n as b}from"./chunk-SIKDYQOR.js";import{Ac as Re,Bc as Je,Gb as w,Ha as O,Hb as re,Hc as D,Kc as d,Lc as u,Mc as P,Oa as G,Vb as je,Wb as ze,Xb as g,Zb as C,Zc as ie,_b as ae,_c as $e,a as z,ac as k,ad as Be,b as F,bc as E,cc as f,dc as s,e as Ot,ec as a,fc as M,gc as V,hc as I,jc as Fe,jd as j,kc as Ve,kd as Ke,mc as y,na as Ie,nc as ke,oa as oe,ob as l,pd as le,sa as T,sc as m,tb as S,vc as c,ya as h,z as Z,za as x,zc as Ae}from"./chunk-YGWA6NUS.js";var Q=Ot(Dt());var St=()=>[],Nt=(n,t)=>t.id,It=(n,t)=>t.filePath;function jt(n,t){n&1&&M(0,"nz-icon",15)}function zt(n,t){if(n&1){let e=y();s(0,"button",18),m("click",function(o){let r=h(e).$implicit,p=c(2).$implicit,v=c();return x(v.selectFile(p,r,o))}),M(1,"nz-icon",19),s(2,"span"),d(3),a()()}if(n&2){let e=t.$implicit,i=c(2).$implicit,o=c();D("active",i.id===o.activeDomainId()&&e.filePath===o.activeFilePath()),f("nz-tooltip",e.filePath),l(3),u(o.formatFileLabel(e))}}function Ft(n,t){if(n&1&&(s(0,"div",16),k(1,zt,4,4,"button",17,It),a()),n&2){let e=c().$implicit;l(),E(e.files||ie(0,St))}}function Vt(n,t){if(n&1){let e=y();s(0,"div",7)(1,"button",8),m("click",function(){let o=h(e).$implicit,r=c();return x(r.selectProvider(o))}),s(2,"span",9),M(3,"nz-icon",10),a(),s(4,"span",11)(5,"span",12)(6,"span",13),d(7),a()(),s(8,"span",14),d(9),a()(),g(10,jt,1,0,"nz-icon",15),a(),g(11,Ft,3,1,"div",16),a()}if(n&2){let e=t.$implicit,i=c(),o=i.isMultiFile(e);D("expanded",i.isExpanded(e))("active",i.isNodeActive(e)),l(),D("active",i.isNodeActive(e)),l(),f("ngClass",i.providerClass(e)),l(),f("nzType",e.icon||"setting"),l(4),u(e.label),l(),f("nz-tooltip",i.providerMeta(e)),l(),P(" ",i.providerMeta(e)," "),l(),C(o?10:-1),l(),C(o&&i.isExpanded(e)?11:-1)}}function At(n,t){n&1&&(s(0,"div",6),d(1,"\u6CA1\u6709\u5339\u914D\u7684\u914D\u7F6E\u6E90"),a())}var me=class n{keyword=O("");nodes=le([]);activeDomainId=le("");activeFilePath=le("");domainSelect=new S;documentSelect=new S;expanded=O({});selectProvider(t){if(this.isMultiFile(t)){this.expanded.update(i=>F(z({},i),{[t.id]:!i[t.id]}));return}let e=t.files?.[0]?.filePath;this.domainSelect.emit(t.id),this.documentSelect.emit({type:t.id,filePath:e})}selectFile(t,e,i){i.stopPropagation(),this.domainSelect.emit(t.id),this.documentSelect.emit({type:t.id,filePath:e.filePath})}isMultiFile(t){return(t.files?.length??0)>1}isExpanded(t){return this.expanded()[t.id]||t.id===this.activeDomainId()}isNodeActive(t){return t.id===this.activeDomainId()&&(!this.isMultiFile(t)||!this.activeFilePath())}providerMeta(t){let e=t.files??[];return e.length===1?this.formatFileLabel(e[0]):e.length>1?`${e.length} \u4E2A\u6587\u4EF6`:t.description||"\u672A\u68C0\u6D4B\u5230\u6587\u4EF6"}providerClass(t){return t.id.replace(/[^a-z0-9_-]/gi,"-")}formatFileLabel(t){return t.filePath==="vue-project:overview"?"\u9879\u76EE\u6982\u89C8":t.title||t.filePath}filtered=j(()=>{let t=this.keyword().trim().toLowerCase();return t?this.nodes().filter(e=>(e.label??"").toLowerCase().includes(t)||(e.description??"").toLowerCase().includes(t)||(e.files??[]).some(i=>i.filePath.toLowerCase().includes(t)||i.title.toLowerCase().includes(t))):this.nodes()});static \u0275fac=function(e){return new(e||n)};static \u0275cmp=w({type:n,selectors:[["app-config-nav-component"]],inputs:{nodes:[1,"nodes"],activeDomainId:[1,"activeDomainId"],activeFilePath:[1,"activeFilePath"]},outputs:{domainSelect:"domainSelect",documentSelect:"documentSelect"},decls:9,vars:2,consts:[[1,"config-nav"],[1,"nav-search"],["nzInputPrefix","","nzType","search"],["nz-input","","placeholder","\u641C\u7D22\u914D\u7F6E\u6E90\u6216\u6587\u4EF6",3,"ngModelChange","ngModel"],[1,"provider-list"],[1,"provider-group",3,"expanded","active"],[1,"empty-nav"],[1,"provider-group"],["type","button",1,"provider-item",3,"click"],[1,"provider-icon",3,"ngClass"],["nzTheme","outline",3,"nzType"],[1,"provider-info"],[1,"provider-title-row"],[1,"provider-name"],[1,"provider-meta",3,"nz-tooltip"],["nzType","right",1,"expand-icon"],[1,"file-list"],["type","button",1,"file-item",3,"active","nz-tooltip"],["type","button",1,"file-item",3,"click","nz-tooltip"],["nzType","file-text"]],template:function(e,i){e&1&&(s(0,"aside",0)(1,"div",1)(2,"nz-input-wrapper"),M(3,"nz-icon",2),s(4,"input",3),m("ngModelChange",function(r){return i.keyword.set(r)}),a()()(),s(5,"div",4),k(6,Vt,12,13,"div",5,Nt,!1,At,2,0,"div",6),a()()),e&2&&(l(4),f("ngModel",i.keyword()),l(2),E(i.filtered()))},dependencies:[b,He,H,$,B,K,L,W,Ue,Qe,Y,X,ce,Ge],styles:[".config-nav[_ngcontent-%COMP%]{width:100%;min-height:100%;background:var(--app-component-bg)}.nav-search[_ngcontent-%COMP%]{width:100%;padding:10px 12px;display:flex;gap:10px;align-items:center;justify-content:space-between;flex:0 0 auto}.nav-search[_ngcontent-%COMP%] nz-input-wrapper[_ngcontent-%COMP%]{width:100%;border-radius:18px}.provider-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px;padding:10px}.provider-group[_ngcontent-%COMP%]{border-radius:6px}.provider-item[_ngcontent-%COMP%], .file-item[_ngcontent-%COMP%]{width:100%;border:0;background:transparent;cursor:pointer;text-align:left;color:inherit}.provider-item[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;gap:10px;min-height:62px;padding:10px;border-radius:6px}.provider-item[_ngcontent-%COMP%]:hover, .provider-item.active[_ngcontent-%COMP%]{background:var(--app-primary-2)}.provider-icon[_ngcontent-%COMP%]{flex:0 0 34px;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:#f0f5ff;color:#1677ff;font-size:18px}.provider-icon.ts[_ngcontent-%COMP%], .provider-icon.package-json[_ngcontent-%COMP%], .provider-icon.vite-config[_ngcontent-%COMP%], .provider-icon.env[_ngcontent-%COMP%]{background:#f6ffed;color:#389e0d}.provider-info[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}.provider-title-row[_ngcontent-%COMP%]{min-width:0;display:flex;align-items:center;gap:6px}.provider-name[_ngcontent-%COMP%]{min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.provider-meta[_ngcontent-%COMP%]{color:var(--app-text-secondary);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expand-icon[_ngcontent-%COMP%]{color:var(--app-text-secondary);transition:transform .18s ease}.expanded[_ngcontent-%COMP%] .expand-icon[_ngcontent-%COMP%]{transform:rotate(90deg)}.file-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2px;padding:2px 8px 8px 54px}.file-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:7px;min-height:30px;padding:5px 8px;border-radius:4px;color:var(--app-text-secondary);font-size:12px}.file-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-item[_ngcontent-%COMP%]:hover, .file-item.active[_ngcontent-%COMP%]{color:var(--app-primary);background:var(--app-primary-2)}.empty-nav[_ngcontent-%COMP%]{padding:20px 10px;color:var(--app-text-secondary);text-align:center}"]})};function Rt(n){return n.replace(/~1/g,"/").replace(/~0/g,"~")}function pt(n){return n===""?[]:n.startsWith("/")?n.slice(1).split("/").map(t=>Rt(t)):[]}function te(n,t){return t?t.startsWith("/")?pt(t).reduce((i,o)=>i?.[o],n):t.split(".").reduce((e,i)=>e?.[i],n):n}function ft(n,t,e){if(!t)return e;let i=t.startsWith("/")?pt(t):t.split("."),o=n??{},r=i.pop();if(!r)return e;let p=o;for(let v of i)(p[v]===void 0||p[v]===null||typeof p[v]!="object")&&(p[v]={}),p=p[v];return p[r]=e,o}var Jt={"angular-workspace":"proj:angular","angular-environment":"deployment-unit",tsconfig:"proj:ts","package-json":"codepen-circle","vue-project":"proj:vue","vite-config":"thunderbolt",env:"deployment-unit"},ut={"vue-project":10,"angular-workspace":20,"package-json":30,"vite-config":40,"angular-environment":50,tsconfig:60,env:70};function $t(n){return n==="vue-project:overview"?"\u9879\u76EE\u6982\u89C8":n}function mt(n){return[...n].sort((t,e)=>{let i=ut[t.type]??1e3,o=ut[e.type]??1e3;return i!==o?i-o:(t.title??t.type).localeCompare(e.title??e.type)})}function gt(n){return mt(n).filter(t=>t.available).map(t=>({id:t.type,type:"provider",label:t.title,icon:Jt[t.type]??"setting",description:t.reason,available:t.available,readonly:t.metadata?.readonly===!0,files:t.filePaths.map(e=>({filePath:e,title:$t(e)})),fileCount:t.filePaths.length}))}function Ct(n){return mt(n).find(e=>e.available)?.type??null}function Bt(n){return n.replace(/~1/g,"/").replace(/~0/g,"~")}function Kt(n,t){return t===""?n:t.startsWith("/")?t.slice(1).split("/").map(i=>Bt(i)).reduce((i,o)=>{if(!(i==null||typeof i!="object"))return i[o]},n):void 0}function Ht(n,t){return t?t.split(".").reduce((e,i)=>{if(!(e==null||typeof e!="object"))return e[i]},n):n}function vt(n,t){return t?t.startsWith("/")?Kt(n,t):Ht(n,t):n}function ht(n){return typeof n=="string"?"text":typeof n=="number"?"number":typeof n=="boolean"?"boolean":Array.isArray(n)?"array":n!=null&&typeof n=="object"?"object":n===null?"json":"unknown"}function xt(n){let t=new Map;for(let e of n.schema?.groups??[])for(let i of e.fields??[])i.path&&t.set(i.path,{label:i.label||i.path,groupTitle:e.title});return n.patches.map(e=>{let i=e.path??"";try{let o=vt(n.before,i),r=vt(n.after,i),p=Wt(t,i),v=r!==void 0?r:o;return{path:i,label:p?.label??(i||"(root)"),groupTitle:p?.groupTitle,op:e.op,before:o,after:r,valueType:ht(v)}}catch{return{path:i,label:i||"(root)",op:e.op,before:void 0,after:e.value,valueType:ht(e.value)}}})}function Wt(n,t){let e=n.get(t);if(e)return e;let i=t;for(;i;){i=Lt(i);let o=n.get(i);if(o)return o}}function Lt(n){if(!n)return"";let t=n.startsWith("/")?"/":".",e=n.lastIndexOf(t);return e<=0?"":n.slice(0,e)}function ge(n){let t=n??"",e=Qt(t);return e?bt(e).map(i=>F(z({},i),{sensitive:Ce(i.key)})):qt(t)}function _t(n){return n.flatMap(t=>{if(!t||typeof t!="object")return[];let e=t,i=typeof e.key=="string"?e.key:"";return i?[{key:i,value:String(e.value??""),line:typeof e.line=="number"?e.line:void 0,commented:typeof e.commented=="boolean"?e.commented:void 0,valueType:typeof e.valueType=="string"?e.valueType:void 0,sensitive:typeof e.sensitive=="boolean"?e.sensitive:Ce(i)}]:[]})}function yt(n,t){let e=new Map(ge(n).map(r=>[r.key,r])),i=new Map(ge(t).map(r=>[r.key,r]));return[...new Set([...e.keys(),...i.keys()])].sort((r,p)=>r.localeCompare(p)).flatMap(r=>{let p=e.get(r)?.value,v=i.get(r)?.value;return p===v?[]:[{key:r,before:p,after:v,op:v===void 0?"remove":"set",sensitive:Ce(r)}]})}function qt(n){return n.split(/\r?\n/).map((t,e)=>({line:t.trim(),number:e+1})).filter(t=>t.line&&!t.line.startsWith("#")&&t.line.includes("=")).map(t=>{let e=t.line,i=e.indexOf("="),o=e.slice(0,i).trim(),r=De(e.slice(i+1).trim());return{key:o,value:r,line:t.number,commented:!1,sensitive:Ce(o)}}).filter(t=>!!t.key)}function bt(n,t=""){return Ut(n).flatMap(e=>{let i=Zt(e);if(i<0)return[];let o=e.slice(0,i).trim(),r=Mt(e.slice(i+1).trim()),p=De(o);if(!p)return[];let v=t?`${t}.${p}`:p;if(r.startsWith("{")){let _=wt(r,0);return _?bt(_.content,v):[]}return[{key:v,value:Gt(r)}]})}function Qt(n){let t=n.search(/\bexport\s+const\s+\w+\s*=/),e=n.indexOf("{",t>=0?t:0);return e<0?null:wt(n,e)?.content??null}function wt(n,t){let e=0,i=null,o=!1;for(let r=t;r<n.length;r+=1){let p=n[r];if(i){o?o=!1:p==="\\"?o=!0:p===i&&(i=null);continue}if(p==='"'||p==="'"||p==="`"){i=p;continue}if(p==="{"){e+=1;continue}if(p==="}"&&(e-=1,e===0))return{content:n.slice(t+1,r),end:r}}return null}function Ut(n){let t=[],e=0,i=0,o=null,r=!1;for(let v=0;v<n.length;v+=1){let _=n[v];if(o){r?r=!1:_==="\\"?r=!0:_===o&&(o=null);continue}if(_==='"'||_==="'"||_==="`"){o=_;continue}if(_==="{"||_==="["||_==="("){i+=1;continue}if(_==="}"||_==="]"||_===")"){i-=1;continue}_===","&&i===0&&(t.push(n.slice(e,v).trim()),e=v+1)}let p=n.slice(e).trim();return p&&t.push(p),t}function Zt(n){let t=null,e=!1;for(let i=0;i<n.length;i+=1){let o=n[i];if(t){e?e=!1:o==="\\"?e=!0:o===t&&(t=null);continue}if(o==='"'||o==="'"||o==="`"){t=o;continue}if(o===":")return i}return-1}function Mt(n){let t=null,e=!1;for(let i=0;i<n.length-1;i+=1){let o=n[i];if(t){e?e=!1:o==="\\"?e=!0:o===t&&(t=null);continue}if(o==='"'||o==="'"||o==="`"){t=o;continue}if(o==="/"&&n[i+1]==="/")return n.slice(0,i).trim()}return n.trim()}function De(n){let t=n.trim();return t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")||t.startsWith("`")&&t.endsWith("`")?t.slice(1,-1):t}function Gt(n){let t=Mt(n).replace(/,$/,"").trim();return De(t)}function Ce(n){return/(password|secret|token|pass|key|dsn|private)/i.test(n)}function Xt(n,t){if(n&1&&(s(0,"span"),d(1),a()),n&2){let e=c();l(),P("/ ",e.filePath)}}function Yt(n,t){if(n&1&&(s(0,"span",12),d(1),a()),n&2){let e=c().$implicit;l(),u(e.groupTitle)}}function en(n,t){if(n&1&&(s(0,"div",18),d(1),a()),n&2){let e=c().$implicit,i=c(2);l(),u(i.rawSummary(e.before))}}function tn(n,t){if(n&1&&(s(0,"pre",19),d(1),a()),n&2){let e=c().$implicit,i=c(2);l(),u(i.formatDiffValue(e.before))}}function nn(n,t){if(n&1&&(s(0,"div",18),d(1),a()),n&2){let e=c().$implicit,i=c(2);l(),u(i.rawSummary(e.after))}}function on(n,t){if(n&1&&(s(0,"pre",21),d(1),a()),n&2){let e=c().$implicit,i=c(2);l(),u(i.formatDiffValue(e.after))}}function rn(n,t){if(n&1&&(s(0,"article",7)(1,"div",8)(2,"div",9)(3,"span",10),d(4),a(),s(5,"span",11),d(6),a(),g(7,Yt,2,1,"span",12),a(),s(8,"nz-tag",13),d(9),a()(),s(10,"div",14),d(11),a(),s(12,"div",15)(13,"div",16)(14,"div",17),d(15,"\u65E7\u503C"),a(),g(16,en,2,1,"div",18)(17,tn,2,1,"pre",19),a(),s(18,"div",16)(19,"div",20),d(20,"\u65B0\u503C"),a(),g(21,nn,2,1,"div",18)(22,on,2,1,"pre",21),a()()()),n&2){let e=t.$implicit,i=t.$index,o=c(2);l(4),u(i+1),l(2),u(e.label),l(),C(e.groupTitle?7:-1),l(),f("nzColor",o.opColor(e.op)),l(),u(o.opText(e.op)),l(2),u(e.path||"(root)"),l(),D("complex",o.isComplex(e)),l(4),C(o.isRawText(e.before,e)?16:17),l(5),C(o.isRawText(e.after,e)?21:22)}}function an(n,t){if(n&1&&(s(0,"div",4),k(1,rn,23,10,"article",7,ae),a()),n&2){let e=c();l(),E(e.diffItems)}}function ln(n,t){n&1&&(s(0,"div",5),d(1,"\u5F53\u524D\u6CA1\u6709\u53EF\u5C55\u793A\u7684\u5B57\u6BB5\u7EA7\u53D8\u66F4\u3002"),a())}function sn(n,t){if(n&1&&(s(0,"details",6)(1,"summary"),d(2,"\u9AD8\u7EA7\uFF1A\u67E5\u770B\u5B8C\u6574 before / after"),a(),s(3,"div",22)(4,"section",23)(5,"div",24),d(6,"Before"),a(),s(7,"pre",25),d(8),a()(),s(9,"section",23)(10,"div",24),d(11,"After"),a(),s(12,"pre",25),d(13),a()()()()),n&2){let e=c();l(8),u(e.formatValue(e.before)),l(5),u(e.formatValue(e.after))}}var ve=class n{patches=[];before;after;schema;providerTitle="";filePath="";diffItems=[];modalData=T(We,{optional:!0});constructor(){this.modalData?.patches&&(this.patches=this.modalData.patches),this.modalData&&"before"in this.modalData&&(this.before=this.modalData.before),this.modalData&&"after"in this.modalData&&(this.after=this.modalData.after),this.modalData?.schema&&(this.schema=this.modalData.schema),this.modalData?.providerTitle&&(this.providerTitle=this.modalData.providerTitle),this.modalData?.filePath&&(this.filePath=this.modalData.filePath),this.diffItems=this.buildDiffItems()}buildDiffItems(){let t=this.buildEnvRawDiffItems();return t.length>0?t:xt({before:this.before,after:this.after,patches:this.patches,schema:this.schema})}buildEnvRawDiffItems(){return!this.patches.some(i=>i.path==="/raw")||typeof this.before!="string"||typeof this.after!="string"?[]:yt(this.before,this.after).map(i=>({path:`/raw/${i.key}`,label:i.key,groupTitle:i.sensitive?"Key / Value \u9884\u89C8 \xB7 \u654F\u611F":"Key / Value \u9884\u89C8",op:i.op,before:i.before,after:i.after,valueType:"text"}))}isComplex(t){return t.valueType==="array"||t.valueType==="object"||t.valueType==="json"}isRawText(t,e){return e.valueType==="text"&&typeof t=="string"&&(t.includes(`
2
2
  `)||t.length>160)}rawSummary(t){return typeof t!="string"?"\u65E0":`${this.lineCount(t)} \u884C\uFF0C${t.length} \u4E2A\u5B57\u7B26`}lineCount(t){return t.length===0?0:t.split(`
3
- `).length}opText(t){return{set:"\u4FEE\u6539",remove:"\u5220\u9664",append:"\u8FFD\u52A0",merge:"\u5408\u5E76"}[t]??t}opColor(t){return{set:"processing",remove:"error",append:"success",merge:"warning"}[t]??"default"}formatDiffValue(t){return typeof t>"u"?"\u65E0":t===null?"null":this.formatValue(t)}formatValue(t){if(typeof t=="string")return t;try{return JSON.stringify(t,null,2)}catch{return String(t)}}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=w({type:n,selectors:[["app-config-preview-modal"]],inputs:{patches:"patches",before:"before",after:"after",schema:"schema",providerTitle:"providerTitle",filePath:"filePath"},decls:11,vars:5,consts:[[1,"preview-content"],[1,"preview-head"],[1,"subtitle"],[1,"diff-notice"],[1,"diff-list"],[1,"empty"],[1,"advanced-section"],[1,"diff-card"],[1,"diff-card-header"],[1,"diff-card-left"],[1,"diff-card-num"],[1,"diff-card-field"],[1,"diff-card-group"],[3,"nzColor"],[1,"diff-card-path"],[1,"diff-card-body"],[1,"diff-value-box"],[1,"diff-value-label","old"],[1,"diff-raw-summary"],[1,"diff-value-content","old"],[1,"diff-value-label","new"],[1,"diff-value-content","new"],[1,"raw-grid"],[1,"preview-section"],[1,"preview-label"],[1,"preview-block"]],template:function(e,i){e&1&&(s(0,"div",0)(1,"div",1)(2,"div",2),d(3),g(4,Xt,2,1,"span"),d(5),a()(),s(6,"div",3),d(7,"\u4FDD\u5B58\u524D\u8BF7\u786E\u8BA4\u4FEE\u6539\u8DEF\u5F84\u548C\u76EE\u6807\u73AF\u5883\u3002"),a(),g(8,an,3,0,"div",4)(9,ln,2,0,"div",5),g(10,sn,14,2,"details",6),a()),e&2&&(l(3),P(" ",i.providerTitle||"\u914D\u7F6E"," "),l(),C(i.filePath?4:-1),l(),P(" \xB7 \u672C\u6B21\u5C06\u4FEE\u6539 ",i.diffItems.length," \u9879\u914D\u7F6E "),l(3),C(i.diffItems.length>0?8:9),l(2),C(i.before!==void 0||i.after!==void 0?10:-1))},dependencies:[b,pe,at],styles:[".preview-content[_ngcontent-%COMP%]{max-height:68vh;overflow:auto;padding-right:4px}.preview-head[_ngcontent-%COMP%]{margin-bottom:12px}.title[_ngcontent-%COMP%]{font-size:18px;font-weight:700}.subtitle[_ngcontent-%COMP%]{margin-top:4px;color:var(--app-text-secondary);font-size:12px;word-break:break-all}.diff-notice[_ngcontent-%COMP%]{margin-bottom:12px;padding:10px 12px;border:1px solid #e6f4ff;border-radius:6px;background:#f0faff;color:#0958d9}.diff-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.diff-card[_ngcontent-%COMP%]{border:1px solid var(--app-border-color);border-radius:8px;background:var(--app-component-bg);overflow:hidden}.diff-card-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border-bottom:1px solid var(--app-border-color)}.diff-card-left[_ngcontent-%COMP%]{min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.diff-card-num[_ngcontent-%COMP%]{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#e6f4ff;color:#0958d9;font-size:12px;font-weight:700}.diff-card-field[_ngcontent-%COMP%]{font-weight:700}.diff-card-group[_ngcontent-%COMP%]{padding:1px 7px;border-radius:10px;background:#fafafa;color:var(--app-text-secondary);font-size:12px}.diff-card-path[_ngcontent-%COMP%]{padding:8px 12px 0;color:var(--app-text-secondary);font-family:Consolas,Menlo,Monaco,Courier New,monospace;font-size:12px;word-break:break-all}.diff-card-body[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:12px}.diff-card-body.complex[_ngcontent-%COMP%]{align-items:start}.diff-value-label[_ngcontent-%COMP%]{margin-bottom:6px;font-weight:600;font-size:12px}.diff-value-label.old[_ngcontent-%COMP%]{color:#cf1322}.diff-value-label.new[_ngcontent-%COMP%]{color:#389e0d}.diff-value-content[_ngcontent-%COMP%], .diff-raw-summary[_ngcontent-%COMP%]{min-height:38px;margin:0;padding:9px 10px;border:1px solid #f0f0f0;border-radius:6px;background:#fafafa;white-space:pre-wrap;word-break:break-word;font-family:Consolas,Menlo,Monaco,Courier New,monospace;font-size:12px;line-height:1.55}.diff-value-content.old[_ngcontent-%COMP%]{background:#fff2f0;border-color:#ffccc7}.diff-value-content.new[_ngcontent-%COMP%]{background:#f6ffed;border-color:#b7eb8f}.diff-raw-summary[_ngcontent-%COMP%]{font-family:inherit;color:var(--app-text-secondary)}.advanced-section[_ngcontent-%COMP%]{margin-top:14px}.advanced-section[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]{cursor:pointer;font-weight:600;margin-bottom:10px}.raw-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.preview-section[_ngcontent-%COMP%]{border:1px solid var(--app-border-color);border-radius:6px;overflow:hidden}.preview-label[_ngcontent-%COMP%]{padding:8px 10px;font-weight:600;background:#fafafa;border-bottom:1px solid var(--app-border-color)}.preview-block[_ngcontent-%COMP%]{max-height:360px;overflow:auto;margin:0;padding:10px;white-space:pre-wrap;word-break:break-word;font-family:Consolas,Menlo,Monaco,Courier New,monospace;font-size:12px}.empty[_ngcontent-%COMP%]{padding:16px;color:var(--app-text-secondary);border:1px dashed var(--app-border-color);border-radius:6px}@media (max-width: 780px){.diff-card-body[_ngcontent-%COMP%], .raw-grid[_ngcontent-%COMP%]{grid-template-columns:1fr}}"]})};var cn=["jsonTextarea"],dn=(n,t,e)=>({minHeight:n,height:t,maxHeight:e});function pn(n,t){if(n&1&&(s(0,"pre"),d(1),a()),n&2){let e=c(2);l(),P("\u5408\u6CD5\u793A\u4F8B\uFF1A",e.exampleText)}}function fn(n,t){if(n&1&&(s(0,"div",8)(1,"div"),d(2),a(),g(3,pn,2,1,"pre"),a()),n&2){let e=c();l(2),u(e.errorMessage),l(),C(e.exampleText?3:-1)}}var ne=class n{clipboard=O(fe);message=O(de);value;readonly=!1;minHeight=120;maxHeight=280;expandedHeight=560;expectedJsonType;jsonExample;valueChange=new S;jsonTextarea;jsonText="";errorMessage="";expanded=!1;ngOnChanges(t){"value"in t&&(this.jsonText=this.stringifyValue(this.value),this.errorMessage="")}get currentHeight(){let i=this.lineCount(this.jsonText)*22+26;return this.expanded?Math.min(this.expandedHeight,Math.max(this.minHeight,i+48)):Math.min(this.maxHeight,Math.max(this.minHeight,i))}get valueMeta(){return Array.isArray(this.value)?`JSON Array \xB7 ${this.value.length} \u9879`:this.value!==null&&typeof this.value=="object"?`JSON Object \xB7 ${Object.keys(this.value).length} \u9879`:"JSON Value"}get exampleText(){return this.stringifyExample(this.jsonExample)}onTextChange(t){if(this.jsonText=t??"",this.errorMessage="",!this.readonly)try{let e=this.jsonText?JSON.parse(this.jsonText):void 0,i=this.validateParsedValue(e);if(i){this.errorMessage=i;return}this.valueChange.emit(e)}catch{this.errorMessage="JSON \u683C\u5F0F\u9519\u8BEF\uFF0C\u8BF7\u4FEE\u6B63\u540E\u518D\u4FDD\u5B58"}}formatJson(){if(!this.readonly)try{let t=this.jsonText?JSON.parse(this.jsonText):void 0,e=this.validateParsedValue(t);if(e){this.errorMessage=e,this.message.error(e);return}this.jsonText=this.stringifyValue(t),this.errorMessage="",this.valueChange.emit(t),queueMicrotask(()=>{let i=this.jsonTextarea?.nativeElement;i&&(i.scrollTop=0,i.scrollLeft=0)}),this.message.success("JSON \u5DF2\u683C\u5F0F\u5316")}catch{this.errorMessage="JSON \u683C\u5F0F\u9519\u8BEF\uFF0C\u8BF7\u4FEE\u6B63\u540E\u518D\u4FDD\u5B58",this.message.error("JSON \u683C\u5F0F\u9519\u8BEF\uFF0C\u65E0\u6CD5\u683C\u5F0F\u5316")}}toggleExpanded(){this.expanded=!this.expanded}copyText(){if(this.clipboard.copy(this.jsonText??"")){this.message.success("\u5DF2\u590D\u5236");return}this.message.error("\u590D\u5236\u5931\u8D25\uFF0C\u8BF7\u624B\u52A8\u590D\u5236")}stringifyValue(t){if(typeof t>"u")return"";if(typeof t=="string")return t;try{return JSON.stringify(t,null,2)}catch{return String(t)}}lineCount(t){return t?t.split(/\r?\n/).length:1}validateParsedValue(t){return this.expectedJsonType?this.expectedJsonType==="string[]"?Array.isArray(t)?t.every(e=>typeof e=="string")?"":"\u6B64\u5B57\u6BB5\u6570\u7EC4\u4E2D\u7684\u6BCF\u4E00\u9879\u90FD\u5FC5\u987B\u662F\u5B57\u7B26\u4E32":"\u6B64\u5B57\u6BB5\u5FC5\u987B\u662F\u5B57\u7B26\u4E32\u6570\u7EC4":this.expectedJsonType==="object"?typeof t!="object"||t===null||Array.isArray(t)?"\u6B64\u5B57\u6BB5\u5FC5\u987B\u662F JSON \u5BF9\u8C61":"":this.expectedJsonType==="stringRecord"?typeof t!="object"||t===null||Array.isArray(t)?"\u6B64\u5B57\u6BB5\u5FC5\u987B\u662F\u952E\u503C\u5BF9\u8C61":Object.values(t).every(e=>typeof e=="string")?"":"\u6B64\u5B57\u6BB5\u5BF9\u8C61\u7684\u6BCF\u4E2A\u503C\u90FD\u5FC5\u987B\u662F\u5B57\u7B26\u4E32":this.expectedJsonType==="stringArrayRecord"?typeof t!="object"||t===null||Array.isArray(t)?"\u6B64\u5B57\u6BB5\u5FC5\u987B\u662F\u952E\u503C\u5BF9\u8C61":Object.values(t).every(i=>Array.isArray(i)&&i.every(o=>typeof o=="string"))?"":"\u6B64\u5B57\u6BB5\u5BF9\u8C61\u7684\u6BCF\u4E2A\u503C\u90FD\u5FC5\u987B\u662F\u5B57\u7B26\u4E32\u6570\u7EC4":this.expectedJsonType==="reference[]"?Array.isArray(t)?t.every(e=>typeof e=="object"&&e!==null&&!Array.isArray(e)&&typeof e.path=="string")?"":"\u6B64\u5B57\u6BB5\u6570\u7EC4\u4E2D\u7684\u6BCF\u4E00\u9879\u90FD\u5FC5\u987B\u5305\u542B\u5B57\u7B26\u4E32 path":"\u6B64\u5B57\u6BB5\u5FC5\u987B\u662F\u5F15\u7528\u5BF9\u8C61\u6570\u7EC4":this.expectedJsonType==="fileReplacement[]"?Array.isArray(t)?t.every(e=>{if(typeof e!="object"||e===null||Array.isArray(e))return!1;let i=e;return typeof i.replace=="string"&&typeof i.with=="string"})?"":"\u6B64\u5B57\u6BB5\u6570\u7EC4\u4E2D\u7684\u6BCF\u4E00\u9879\u90FD\u5FC5\u987B\u5305\u542B\u5B57\u7B26\u4E32 replace \u548C with":"\u6B64\u5B57\u6BB5\u5FC5\u987B\u662F\u6587\u4EF6\u66FF\u6362\u5BF9\u8C61\u6570\u7EC4":"":""}stringifyExample(t){if(typeof t>"u")return"";if(typeof t=="string")return t;try{return JSON.stringify(t,null,2)}catch{return String(t)}}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=w({type:n,selectors:[["app-config-json-editor"]],viewQuery:function(e,i){if(e&1&&Ae(cn,5),e&2){let o;Re(o=Je())&&(i.jsonTextarea=o.first)}},inputs:{value:"value",readonly:"readonly",minHeight:"minHeight",maxHeight:"maxHeight",expandedHeight:"expandedHeight",expectedJsonType:"expectedJsonType",jsonExample:"jsonExample"},outputs:{valueChange:"valueChange"},features:[G],decls:14,vars:15,consts:[["jsonTextarea",""],[1,"json-editor"],[1,"header"],[1,"meta"],[1,"actions"],["type","button","nz-button","","nzType","default","nzSize","small",3,"click","disabled"],["type","button","nz-button","","nzType","default","nzSize","small",3,"click"],["nz-input","","wrap","off","spellcheck","false",3,"ngModelChange","readOnly","ngStyle","ngModel"],[1,"error-tip"]],template:function(e,i){if(e&1){let o=y();s(0,"div",1)(1,"div",2)(2,"div",3),d(3),a(),s(4,"div",4)(5,"button",5),m("click",function(){return h(o),x(i.formatJson())}),d(6,"\u683C\u5F0F\u5316"),a(),s(7,"button",6),m("click",function(){return h(o),x(i.copyText())}),d(8,"\u590D\u5236"),a(),s(9,"button",6),m("click",function(){return h(o),x(i.toggleExpanded())}),d(10),a()()(),s(11,"textarea",7,0),m("ngModelChange",function(p){return h(o),x(i.onTextChange(p))}),a(),g(13,fn,4,2,"div",8),a()}e&2&&(D("readonly",i.readonly)("error",!!i.errorMessage),l(3),u(i.valueMeta),l(2),f("disabled",i.readonly),l(5),P(" ",i.expanded?"\u6536\u8D77":"\u5C55\u5F00"," "),l(),f("readOnly",i.readonly)("ngStyle",Be(11,dn,i.minHeight+"px",i.currentHeight+"px",i.currentHeight+"px"))("ngModel",i.jsonText),l(2),C(i.errorMessage?13:-1))},dependencies:[b,se,ue,H,$,B,K,J,R,A,ee,L,W],styles:[".json-editor[_ngcontent-%COMP%]{border:1px solid #e5e5e5;border-radius:6px;overflow:hidden;background:#fff}.json-editor.readonly[_ngcontent-%COMP%]{background:#f5f5f5}.json-editor.error[_ngcontent-%COMP%]{border-color:#ff4d4f}.header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:8px 10px;background:#fafafa;border-bottom:1px solid #e5e5e5}.meta[_ngcontent-%COMP%]{font-size:12px;opacity:.75}.actions[_ngcontent-%COMP%]{display:flex;gap:6px}textarea[nz-input][_ngcontent-%COMP%]{display:block;width:100%;border:0;border-radius:0;resize:none;overflow:auto;padding:10px;line-height:1.6;white-space:pre;overflow-wrap:normal;font-family:Consolas,Menlo,Monaco,Courier New,monospace;background:transparent}.error-tip[_ngcontent-%COMP%]{padding:6px 10px;font-size:12px;color:#ff4d4f;border-top:1px solid #ffe5e5;background:#fff2f0}.error-tip[_ngcontent-%COMP%] pre[_ngcontent-%COMP%]{margin:4px 0 0;white-space:pre-wrap;color:#8c1d18;font-family:Consolas,Menlo,Monaco,Courier New,monospace}"]})};var un=(n,t)=>t.key;function mn(n,t){if(n&1&&(s(0,"div",6)(1,"code",8),d(2),a(),s(3,"span",9),d(4),a()()),n&2){let e=c().$implicit,i=c(3);l(2),u(e.key),l(2),u(i.toInlineText(e.value))}}function gn(n,t){if(n&1&&g(0,mn,5,2,"div",6),n&2){let e=t.$index;C(e<5?0:-1)}}function Cn(n,t){if(n&1&&k(0,gn,1,1,null,null,un),n&2){let e=c(2);E(e.objectEntries(e.value))}}function vn(n,t){if(n&1&&(s(0,"div",6)(1,"code",8),d(2),a(),s(3,"span",9),d(4),a()()),n&2){let e=c(),i=e.$implicit,o=e.$index,r=c(3);l(2),P("[",o,"]"),l(2),u(r.toInlineText(i))}}function hn(n,t){if(n&1&&g(0,vn,5,2,"div",6),n&2){let e=t.$index;C(e<5?0:-1)}}function xn(n,t){if(n&1&&k(0,hn,1,1,null,null,ae),n&2){let e=c(2);E(e.value)}}function _n(n,t){if(n&1&&(s(0,"div",6)(1,"span",9),d(2),a()()),n&2){let e=c(2);l(2),u(e.toInlineText(e.value))}}function yn(n,t){n&1&&(s(0,"div",7),d(1,"..."),a())}function bn(n,t){if(n&1&&(s(0,"div",4),g(1,Cn,2,0)(2,xn,2,0)(3,_n,3,1,"div",6),g(4,yn,2,0,"div",7),a()),n&2){let e=c();l(),C(e.isObject(e.value)?1:e.isArray(e.value)?2:3),l(3),C(e.itemCount>5?4:-1)}}function wn(n,t){if(n&1){let e=y();s(0,"app-config-json-editor",10),m("valueChange",function(o){h(e);let r=c();return x(r.valueChange.emit(o))}),a()}if(n&2){let e=c();f("value",e.value)("readonly",e.readonly)}}var he=class n{value;readonly=!1;valueChange=new S;expanded=!1;get itemCount(){return Array.isArray(this.value)?this.value.length:this.isObject(this.value)?Object.keys(this.value).length:1}get summaryTitle(){return Array.isArray(this.value)?`Array \xB7 ${this.value.length} \u9879`:this.isObject(this.value)?`Object \xB7 ${Object.keys(this.value).length} \u9879`:"Value"}isObject(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}isArray(t){return Array.isArray(t)}objectEntries(t){return Object.entries(t).map(([e,i])=>({key:e,value:i}))}toInlineText(t){if(typeof t=="string")return t;if(typeof t>"u")return"\u65E0";try{return JSON.stringify(t)}catch{return String(t)}}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=w({type:n,selectors:[["app-config-json-summary"]],inputs:{value:"value",readonly:"readonly"},outputs:{valueChange:"valueChange"},decls:8,vars:3,consts:[[1,"json-summary"],[1,"summary-head"],[1,"meta"],["nz-button","","nzType","link","nzSize","small",3,"click"],[1,"summary-list"],[3,"value","readonly"],[1,"summary-item"],[1,"more"],[1,"k"],[1,"v"],[3,"valueChange","value","readonly"]],template:function(e,i){e&1&&(s(0,"div",0)(1,"div",1)(2,"span",2),d(3),a(),s(4,"button",3),m("click",function(){return i.expanded=!i.expanded}),d(5),a()(),g(6,bn,5,2,"div",4)(7,wn,1,2,"app-config-json-editor",5),a()),e&2&&(l(3),u(i.summaryTitle),l(2),P(" ",i.expanded?"\u6536\u8D77 JSON \u7F16\u8F91":"\u5C55\u5F00 JSON \u7F16\u8F91"," "),l(),C(i.expanded?7:6))},dependencies:[b,J,R,A,ne],styles:[".json-summary[_ngcontent-%COMP%]{border:1px solid #e5e5e5;border-radius:6px;overflow:hidden}.summary-head[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;background:#fafafa;border-bottom:1px solid #e5e5e5}.meta[_ngcontent-%COMP%]{font-size:12px;opacity:.75}.summary-list[_ngcontent-%COMP%]{padding:10px}.summary-item[_ngcontent-%COMP%]{display:flex;gap:10px;align-items:baseline;margin-bottom:6px;line-height:1.5}.summary-item[_ngcontent-%COMP%]:last-child{margin-bottom:0}.k[_ngcontent-%COMP%]{min-width:120px;font-family:Consolas,Menlo,Monaco,Courier New,monospace;color:#1677ff}.v[_ngcontent-%COMP%]{opacity:.8;word-break:break-word}.more[_ngcontent-%COMP%]{opacity:.6}"]})};function Mn(n,t){if(n&1&&(V(0,"span",9),d(1),I()),n&2){let e=c().$implicit;l(),u(e.valueType)}}function Pn(n,t){n&1&&(V(0,"span",10),d(1,"\u654F\u611F"),I())}function kn(n,t){if(n&1&&(V(0,"div",5)(1,"div",6),d(2),I(),V(3,"div",7)(4,"code",8),d(5),I(),g(6,Mn,2,1,"span",9),g(7,Pn,2,0,"span",10),I()()),n&2){let e=t.$implicit;l(),ke("title",e.key),l(),u(e.key),l(2),ke("title",e.value),l(),u(e.value),l(),C(e.valueType?6:-1),l(),C(e.sensitive?7:-1)}}function En(n,t){if(n&1&&(V(0,"div",0)(1,"div",1)(2,"div")(3,"div",2),d(4,"Key / Value \u9884\u89C8"),I(),V(5,"div",3),d(6,"\u89E3\u6790\u540E\u7684\u952E\u503C\u5BF9\u4EC5\u7528\u4E8E\u5C55\u793A"),I()(),V(7,"span"),d(8),I()(),V(9,"div",4),k(10,kn,8,6,"div",5,ze().trackEntry,!0),I()()),n&2){let e=c();l(8),P("",e.entries.length," \u9879"),l(2),E(e.entries)}}var xe=class n{entries=[];trackEntry(t,e){return`${e.key}:${e.line??t}`}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=w({type:n,selectors:[["app-config-kv-preview"]],inputs:{entries:"entries"},decls:1,vars:1,consts:[[1,"kv-preview"],[1,"kv-preview-head"],[1,"kv-preview-title"],[1,"kv-preview-subtitle"],[1,"kv-preview-body"],[1,"kv-row"],[1,"kv-key",3,"title"],[1,"kv-value"],[3,"title"],[1,"meta-tag"],[1,"sensitive-tag"]],template:function(e,i){e&1&&g(0,En,12,1,"div",0),e&2&&C(i.entries.length>0?0:-1)},dependencies:[b],styles:[".kv-preview[_ngcontent-%COMP%]{border-top:1px solid #e5e5e5;background:#fff}.kv-preview-head[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;color:var(--app-text-secondary);background:#fafafa;border-bottom:1px solid #e5e5e5;font-size:12px}.kv-preview-title[_ngcontent-%COMP%]{color:var(--app-text-primary);font-size:13px;font-weight:500;line-height:1.4}.kv-preview-subtitle[_ngcontent-%COMP%]{margin-top:2px;line-height:1.3}.kv-preview-body[_ngcontent-%COMP%]{display:flex;flex-direction:column}.kv-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(140px,220px) minmax(0,1fr);gap:12px;align-items:center;padding:7px 10px;border-bottom:1px solid #f0f0f0}.kv-row[_ngcontent-%COMP%]:last-child{border-bottom:0}.kv-key[_ngcontent-%COMP%]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--app-text-primary);font-size:13px;font-weight:500}.kv-value[_ngcontent-%COMP%]{min-width:0;display:flex;align-items:center;gap:6px}.kv-value[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 8px;border-radius:4px;background:#f8f9fa;color:var(--app-text-primary);font-family:Consolas,Menlo,Monaco,Courier New,monospace;font-size:12px;line-height:1.5}.meta-tag[_ngcontent-%COMP%], .sensitive-tag[_ngcontent-%COMP%]{flex:0 0 auto;padding:1px 6px;border-radius:10px;font-size:12px;line-height:1.4}.meta-tag[_ngcontent-%COMP%]{border:1px solid #d9d9d9;background:#fafafa;color:var(--app-text-secondary)}.sensitive-tag[_ngcontent-%COMP%]{border:1px solid #ffccc7;background:#fff2f0;color:#cf1322}"]})};var On=n=>({minHeight:n}),_e=class n{clipboard=O(fe);value="";readonly=!1;minHeight=240;backendEntries=[];valueChange=new S;textValue="";entries=[];ngOnChanges(t){("value"in t||"backendEntries"in t)&&(this.textValue=this.value??"",this.entries=this.resolvePreviewEntries(this.textValue))}onTextChange(t){this.textValue=t??"",this.entries=this.resolvePreviewEntries(this.textValue),!this.readonly&&this.valueChange.emit(this.textValue)}copyText(){this.clipboard.copy(this.textValue??"")}resolvePreviewEntries(t){let e=ge(t);return e.length>0?e:_t(this.backendEntries)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=w({type:n,selectors:[["app-config-raw-editor"]],inputs:{value:"value",readonly:"readonly",minHeight:"minHeight",backendEntries:"backendEntries"},outputs:{valueChange:"valueChange"},features:[G],decls:9,vars:8,consts:[[1,"raw-editor"],[1,"header"],[1,"title"],[1,"actions"],["nz-button","","nzType","default","nzSize","small",3,"click"],["nz-input","",3,"ngModelChange","readOnly","ngModel","ngStyle"],[3,"entries"]],template:function(e,i){e&1&&(s(0,"div",0)(1,"div",1)(2,"div",2),d(3,"\u539F\u59CB\u5185\u5BB9"),a(),s(4,"div",3)(5,"button",4),m("click",function(){return i.copyText()}),d(6,"\u590D\u5236"),a()()(),s(7,"textarea",5),m("ngModelChange",function(r){return i.onTextChange(r)}),a(),M(8,"app-config-kv-preview",6),a()),e&2&&(D("readonly",i.readonly),l(7),f("readOnly",i.readonly)("ngModel",i.textValue)("ngStyle",$e(6,On,i.minHeight+"px")),l(),f("entries",i.entries))},dependencies:[b,se,ue,H,$,B,K,J,R,A,ee,L,W,xe],styles:[".raw-editor[_ngcontent-%COMP%]{border:1px solid #e5e5e5;border-radius:6px;overflow:hidden;background:#fff}.raw-editor.readonly[_ngcontent-%COMP%]{background:#f5f5f5}.header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;background:#fafafa;border-bottom:1px solid #e5e5e5}.title[_ngcontent-%COMP%]{font-size:12px;opacity:.75}textarea[nz-input][_ngcontent-%COMP%]{display:block;width:100%;border:0;border-radius:0;resize:vertical;overflow:auto;padding:10px;line-height:1.6;white-space:pre;font-family:Consolas,Menlo,Monaco,Courier New,monospace;background:transparent}"]})};var Tn=(n,t)=>t.value;function Dn(n,t){if(n&1&&(s(0,"div",3),d(1),a()),n&2){let e=c();f("title",e.item.path),l(),u(e.item.path)}}function Sn(n,t){if(n&1&&(s(0,"div",4),d(1,"\u9ED8\u8BA4\u503C: "),s(2,"code"),d(3),a()()),n&2){let e=c();l(3),u(e.toInlineText(e.defaultValue()))}}function Nn(n,t){if(n&1&&(s(0,"div",5),d(1),a()),n&2){let e=c();l(),u(e.item.description)}}function In(n,t){if(n&1){let e=y();s(0,"input",11),m("ngModelChange",function(o){h(e);let r=c();return x(r.emit(o))}),a()}if(n&2){let e=c();f("disabled",e.isReadonly())("ngModel",e.value)}}function jn(n,t){if(n&1){let e=y();s(0,"input",11),m("ngModelChange",function(o){h(e);let r=c();return x(r.emit(o))}),a()}if(n&2){let e=c();f("disabled",e.isReadonly())("ngModel",e.value)}}function zn(n,t){if(n&1){let e=y();s(0,"input",12),m("ngModelChange",function(o){h(e);let r=c();return x(r.emitNumber(o))}),a()}if(n&2){let e=c();f("disabled",e.isReadonly())("ngModel",e.value)}}function Fn(n,t){if(n&1){let e=y();s(0,"nz-switch",13),m("ngModelChange",function(o){h(e);let r=c();return x(r.emit(o))}),a()}if(n&2){let e=c();f("nzDisabled",e.isReadonly())("ngModel",!!e.value)}}function Vn(n,t){if(n&1&&M(0,"nz-option",15),n&2){let e=t.$implicit;f("nzValue",e.value)("nzLabel",e.label)}}function An(n,t){if(n&1){let e=y();s(0,"nz-select",14),m("ngModelChange",function(o){h(e);let r=c();return x(r.emit(o))}),k(1,Vn,1,2,"nz-option",15,Tn),a()}if(n&2){let e=c();f("ngModel",e.value)("nzDisabled",e.isReadonly()),l(),E(e.options)}}function Rn(n,t){if(n&1){let e=y();s(0,"app-config-json-summary",18),m("valueChange",function(o){h(e);let r=c(2);return x(r.emit(o))}),a()}if(n&2){let e=c(2);f("value",e.value)("readonly",e.isReadonly())}}function Jn(n,t){if(n&1){let e=y();s(0,"app-config-json-editor",19),m("valueChange",function(o){h(e);let r=c(2);return x(r.emit(o))}),a()}if(n&2){let e=c(2);f("value",e.value)("readonly",e.isReadonly())("expectedJsonType",e.expectedJsonType())("jsonExample",e.jsonExample())}}function $n(n,t){if(n&1&&g(0,Rn,1,2,"app-config-json-summary",16)(1,Jn,1,4,"app-config-json-editor",17),n&2){let e=c();C(e.shouldUseSummary(e.value,e.item)?0:1)}}function Bn(n,t){if(n&1){let e=y();s(0,"app-config-raw-editor",21),m("valueChange",function(o){h(e);let r=c(2);return x(r.emitRawText(o))}),a()}if(n&2){let e=c(2);f("value",e.toMultilineText(e.value))("readonly",e.isReadonly())("backendEntries",e.backendEntries())}}function Kn(n,t){if(n&1){let e=y();s(0,"app-config-json-summary",18),m("valueChange",function(o){h(e);let r=c(2);return x(r.emit(o))}),a()}if(n&2){let e=c(2);f("value",e.value)("readonly",e.isReadonly())}}function Hn(n,t){if(n&1){let e=y();s(0,"app-config-json-editor",19),m("valueChange",function(o){h(e);let r=c(2);return x(r.emit(o))}),a()}if(n&2){let e=c(2);f("value",e.value)("readonly",e.isReadonly())("expectedJsonType",e.expectedJsonType())("jsonExample",e.jsonExample())}}function Wn(n,t){if(n&1&&g(0,Bn,1,3,"app-config-raw-editor",20)(1,Kn,1,2,"app-config-json-summary",16)(2,Hn,1,4,"app-config-json-editor",17),n&2){let e=c();C(typeof e.value=="string"||e.value===void 0||e.value===null?0:e.shouldUseSummary(e.value,e.item)?1:2)}}function Ln(n,t){if(n&1&&(s(0,"pre"),d(1),a()),n&2){let e=c();l(),u(e.toPrettyText(e.value))}}function qn(n,t){if(n&1&&(s(0,"div",3),d(1),a()),n&2){let e=c();f("title",e.item.path),l(),u(e.item.path)}}var ye=class n{item;value;viewModel;options=[];valueChange=new S;isReadonly(){return!!this.item?.readonly||this.item?.type==="readonly"||this.item?.type==="table"}isLargeControl(){return this.item?.type==="json"||this.item?.type==="multi-text"}emit(t){this.isReadonly()||this.valueChange.emit(t)}emitNumber(t){if(this.isReadonly())return;if(t===""||t===null||t===void 0){this.valueChange.emit(void 0);return}let e=Number(t);this.valueChange.emit(Number.isNaN(e)?void 0:e)}emitRawText(t){this.isReadonly()||this.valueChange.emit(t??"")}toMultilineText(t){return Array.isArray(t)?t.join(`
4
- `):(t??"").toString()}shouldUseSummary(t,e){let i=`${e.key??""}`.toLowerCase();return i.includes("dependencies")||i.includes("devdependencies")||i.includes("peerdependencies")||i.includes("optionaldependencies")?!0:Array.isArray(t)?t.length>6:t!==null&&typeof t=="object"?Object.keys(t).length>8:!1}toPrettyText(t){if(typeof t=="string")return t;try{return JSON.stringify(t,null,2)}catch{return String(t)}}defaultValue(){return(this.item?.metadata??{}).defaultValue}toInlineText(t){if(typeof t=="string")return t;if(typeof t>"u")return"\u65E0";try{return JSON.stringify(t)}catch{return String(t)}}backendEntries(){if(this.item?.path!=="/raw")return[];let t=this.viewModel?.entries;if(Array.isArray(t))return t;let e=this.viewModel?.files;if(Array.isArray(e)){let i=e[0];return Array.isArray(i?.entries)?i.entries:[]}return[]}expectedJsonType(){let t=this.item?.metadata??{};return typeof t.expectedJsonType=="string"?t.expectedJsonType:void 0}jsonExample(){return(this.item?.metadata??{}).jsonExample}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=w({type:n,selectors:[["app-config-item-component"]],inputs:{item:"item",value:"value",viewModel:"viewModel",options:"options"},outputs:{valueChange:"valueChange"},decls:17,vars:10,consts:[[1,"config-item"],[1,"meta"],[1,"label"],[1,"path",3,"title"],[1,"default-value"],[1,"desc"],[1,"control"],["nz-input","",3,"disabled","ngModel"],["nz-input","","type","number",3,"disabled","ngModel"],[3,"nzDisabled","ngModel"],[3,"ngModel","nzDisabled"],["nz-input","",3,"ngModelChange","disabled","ngModel"],["nz-input","","type","number",3,"ngModelChange","disabled","ngModel"],[3,"ngModelChange","nzDisabled","ngModel"],[3,"ngModelChange","ngModel","nzDisabled"],[3,"nzValue","nzLabel"],[3,"value","readonly"],[3,"value","readonly","expectedJsonType","jsonExample"],[3,"valueChange","value","readonly"],[3,"valueChange","value","readonly","expectedJsonType","jsonExample"],[3,"value","readonly","backendEntries"],[3,"valueChange","value","readonly","backendEntries"]],template:function(e,i){if(e&1&&(s(0,"div",0)(1,"div",1)(2,"div",2),d(3),a(),g(4,Dn,2,2,"div",3),g(5,Sn,4,1,"div",4),g(6,Nn,2,1,"div",5),a(),s(7,"div",6),g(8,In,1,2,"input",7)(9,jn,1,2,"input",7)(10,zn,1,2,"input",8)(11,Fn,1,2,"nz-switch",9)(12,An,3,2,"nz-select",10)(13,$n,2,1)(14,Wn,3,1)(15,Ln,2,1,"pre"),g(16,qn,2,2,"div",3),a()()),e&2){let o;D("readonly",i.isReadonly())("large-control",i.isLargeControl()),l(3),u(i.item.label),l(),C(i.isLargeControl()?4:-1),l(),C(i.defaultValue()!==void 0?5:-1),l(),C(i.item.description?6:-1),l(2),C((o=i.item.type)==="text"?8:o==="path"?9:o==="number"?10:o==="boolean"?11:o==="select"?12:o==="json"?13:o==="multi-text"?14:15),l(8),C(i.isLargeControl()?-1:16)}},dependencies:[b,H,$,qe,B,K,st,lt,L,W,it,tt,nt,ne,he,_e],styles:[".config-item[_ngcontent-%COMP%]{display:flex;gap:12px;align-items:flex-start;padding:10px 16px;border-bottom:1px solid var(--app-border-color);transition:background .18s ease}.config-item[_ngcontent-%COMP%]:hover{background:#fafafa}.config-item[_ngcontent-%COMP%]:last-child{border-bottom:0}.config-item.readonly[_ngcontent-%COMP%]{background:#fafafa}.config-item.large-control[_ngcontent-%COMP%]{flex-direction:column;gap:8px;padding:12px 16px}.meta[_ngcontent-%COMP%]{flex:0 0 200px;min-width:0;padding-top:4px}.large-control[_ngcontent-%COMP%] .meta[_ngcontent-%COMP%]{flex:none;width:100%;display:grid;grid-template-columns:minmax(120px,auto) minmax(0,1fr);column-gap:12px;row-gap:2px;align-items:baseline;padding-top:0}.label[_ngcontent-%COMP%]{font-size:13px;line-height:1.4;font-weight:500;opacity:.75}.path[_ngcontent-%COMP%]{margin-top:2px;font-size:11px;line-height:1.4;color:var(--app-text-secondary);font-family:Consolas,Menlo,Monaco,Courier New,monospace;word-break:break-all;opacity:0;transition:opacity .18s ease}.large-control[_ngcontent-%COMP%] .path[_ngcontent-%COMP%]{margin-top:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:normal;text-align:right}.config-item[_ngcontent-%COMP%]:hover .path[_ngcontent-%COMP%], .config-item[_ngcontent-%COMP%]:focus-within .path[_ngcontent-%COMP%]{opacity:1}.default-value[_ngcontent-%COMP%], .desc[_ngcontent-%COMP%]{font-size:11px;line-height:1.4;margin-top:3px;opacity:.6}.large-control[_ngcontent-%COMP%] .default-value[_ngcontent-%COMP%], .large-control[_ngcontent-%COMP%] .desc[_ngcontent-%COMP%]{grid-column:1 / -1;margin-top:0}code[_ngcontent-%COMP%]{font-family:Consolas,Menlo,Monaco,Courier New,monospace;word-break:break-word}.control[_ngcontent-%COMP%]{flex:1 1 auto;min-width:260px}.large-control[_ngcontent-%COMP%] .control[_ngcontent-%COMP%]{width:100%;min-width:0}.control[_ngcontent-%COMP%] input[nz-input][_ngcontent-%COMP%], .control[_ngcontent-%COMP%] nz-select[_ngcontent-%COMP%], .control[_ngcontent-%COMP%] textarea[nz-input][_ngcontent-%COMP%], .control[_ngcontent-%COMP%] app-config-json-editor[_ngcontent-%COMP%], .control[_ngcontent-%COMP%] app-config-json-summary[_ngcontent-%COMP%], .control[_ngcontent-%COMP%] app-config-raw-editor[_ngcontent-%COMP%]{width:100%;display:block}.control[_ngcontent-%COMP%] pre[_ngcontent-%COMP%]{margin:0;white-space:pre-wrap;word-break:break-word}@media (max-width: 780px){.config-item[_ngcontent-%COMP%]{flex-direction:column}.meta[_ngcontent-%COMP%]{flex-basis:auto;width:100%}.large-control[_ngcontent-%COMP%] .meta[_ngcontent-%COMP%]{display:block}.large-control[_ngcontent-%COMP%] .path[_ngcontent-%COMP%]{margin-top:2px;text-align:left}.control[_ngcontent-%COMP%]{width:100%;min-width:0}}"]})};var kt=()=>[],Et=(n,t)=>t.key;function Qn(n,t){if(n&1&&(s(0,"span",8),d(1),a()),n&2){let e=c().$implicit;l(),u(e.description)}}function Un(n,t){if(n&1){let e=y();s(0,"app-config-item-component",12),m("valueChange",function(o){let r=h(e).$implicit,p=c(4);return x(p.onValueChange(o,r))}),a()}if(n&2){let e=t.$implicit,i=c(4);f("item",e)("options",e.options||ie(4,kt))("value",i.get(e))("viewModel",i.viewModel)}}function Zn(n,t){if(n&1&&(s(0,"div",10),k(1,Un,1,5,"app-config-item-component",11,Et),a()),n&2){let e=c().$implicit;l(),E(e.fields)}}function Gn(n,t){if(n&1){let e=y();s(0,"section",3)(1,"button",4),m("click",function(){let o=h(e).$implicit,r=c(2);return x(r.toggle(o.key))}),s(2,"span",5)(3,"span",6),d(4),a(),s(5,"span",7),d(6),a(),g(7,Qn,2,1,"span",8),a(),M(8,"nz-icon",9),a(),g(9,Zn,3,0,"div",10),a()}if(n&2){let e=t.$implicit,i=c(2);D("collapsed",i.isCollapsed(e.key)),je("id",e.key),l(4),u(e.title),l(2),P("",e.fields.length," \u9879"),l(),C(e.description?7:-1),l(2),C(i.isCollapsed(e.key)?-1:9)}}function Xn(n,t){if(n&1&&(s(0,"div",0),k(1,Gn,10,7,"section",2,Et),a()),n&2){let e=c();l(),E(e.schema.groups||ie(0,kt))}}function Yn(n,t){n&1&&(s(0,"div",1),d(1," \u8BE5\u914D\u7F6E\u6682\u4E0D\u652F\u6301\u8868\u5355\u6A21\u5F0F\u3002 "),a())}var be=class n{schema;vm=null;viewModel=null;options={};vmChange=new S;collapsed=T({});ngOnChanges(t){"schema"in t&&this.resetCollapsedState()}get(t){let e=te(this.vm,t.path);if(e!==void 0)return e;let i=this.getFallbackPaths(t);for(let o of i){let r=te(this.vm,o);if(r!==void 0)return r}return this.getDefaultValue(t)}onValueChange(t,e){this.update(e.path,t)}toggle(t){this.collapsed.update(e=>F(z({},e),{[t]:!e[t]}))}isCollapsed(t){return!!this.collapsed()[t]}update(t,e){let i=this.vm??{},o=structuredClone(i),r=ft(o,t,e);this.vmChange.emit(r??o)}getFallbackPaths(t){let e=t.metadata??{};return Array.isArray(e.fallbackPaths)?e.fallbackPaths.filter(i=>typeof i=="string"):[]}getDefaultValue(t){return(t.metadata??{}).defaultValue}resetCollapsedState(){let t=this.schema?.groups??[],e={};t.forEach((i,o)=>{e[i.key]=o>0}),this.collapsed.set(e)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=w({type:n,selectors:[["app-config-section-component"]],inputs:{schema:"schema",vm:"vm",viewModel:"viewModel",options:"options"},outputs:{vmChange:"vmChange"},features:[G],decls:2,vars:1,consts:[[1,"config-card-list"],[1,"empty"],[1,"config-card",3,"collapsed"],[1,"config-card"],["type","button",1,"config-card-header",3,"click"],[1,"config-card-title"],[1,"title-main"],[1,"config-card-count"],[1,"config-card-desc"],["nzType","down",1,"config-card-toggle"],[1,"config-card-body"],[3,"item","options","value","viewModel"],[3,"valueChange","item","options","value","viewModel"]],template:function(e,i){e&1&&g(0,Xn,3,1,"div",0)(1,Yn,2,0,"div",1),e&2&&C(i.schema?0:1)},dependencies:[b,Y,X,ye],styles:[".config-card-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:14px}.config-card[_ngcontent-%COMP%]{border:0;border-radius:10px;overflow:hidden;background:var(--app-component-bg);box-shadow:0 2px 8px #0000000f}.config-card-header[_ngcontent-%COMP%]{width:100%;min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.config-card-title[_ngcontent-%COMP%]{min-width:0;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.title-main[_ngcontent-%COMP%]{font-size:16px;font-weight:700}.config-card-count[_ngcontent-%COMP%], .config-card-desc[_ngcontent-%COMP%]{color:var(--app-text-secondary);font-size:12px}.config-card-desc[_ngcontent-%COMP%]{max-width:520px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.config-card-toggle[_ngcontent-%COMP%]{flex:0 0 auto;color:var(--app-text-secondary);transition:transform .18s ease}.collapsed[_ngcontent-%COMP%] .config-card-toggle[_ngcontent-%COMP%]{transform:rotate(-90deg)}.config-card-body[_ngcontent-%COMP%]{display:flex;flex-direction:column}.empty[_ngcontent-%COMP%]{padding:24px;color:var(--app-text-secondary);border:1px dashed var(--app-border-color);border-radius:8px;background:var(--app-component-bg)}"]})};var we=class n{api=O(Ye);getProviders(){return this.api.get("/api/config/providers")}detect(t){return this.api.get(`/api/config/detect/${t}`)}getDoc(t,e,i){let o=i?`?filePath=${encodeURIComponent(i)}`:"";return this.api.get(`/api/config/doc/${t}/${encodeURIComponent(e)}${o}`)}preview(t,e){return this.api.post(`/api/config/preview/${t}`,e)}write(t,e){return this.api.post(`/api/config/write/${t}`,e)}openInEditor(t,e){return this.api.post(`/api/config/openInEditor/${t}`,{filePath:e})}static \u0275fac=function(e){return new(e||n)};static \u0275prov=Ie({token:n,factory:n.\u0275fac,providedIn:"root"})};var ei=["class","component"],Me=class n{api=O(we);projectContext=O(et);msg=O(de);modal=O(Le);projectId=j(()=>this.projectContext.currentProjectId()||"");loading=T(!1);providers=T([]);detects=T([]);activeType=T(null);selectedFilePath=T(null);document=T(null);editingData=T(null);baselineData=T(null);navNodes=j(()=>{let t=this.detects().map(r=>{let p=this.providers().find(v=>v.type===r.type);return F(z({},r),{title:p?.title??r.title})}),e=this.activeType(),i=this.document(),o=this.domainDirty();return gt(t).map(r=>F(z({},r),{readonly:r.id===e?!!i?.readonly:r.readonly,dirty:r.id===e?o:r.dirty}))});activeDetect=j(()=>{let t=this.activeType();return this.detects().find(e=>e.type===t&&e.available)??null});activeFiles=j(()=>{let t=this.activeDetect();return t?t.filePaths.map(e=>({filePath:e,title:e,exists:!0})):[]});domainDirty=j(()=>{let t=this.document();return!t||t.readonly?!1:!Q.isEqual(this.baselineData(),this.editingData())});dirtyCount=j(()=>this.buildPatches().length);canWriteChanged=j(()=>{let t=this.document();return!!t&&!t.readonly&&this.domainDirty()});constructor(){Ke(()=>{this.projectId()&&this.loadCatalog()})}async loadCatalog(){let t=this.projectId();if(t){this.loading.set(!0);try{let[e,i]=await Promise.all([Z(this.api.getProviders()),Z(this.api.detect(t))]);this.providers.set(e),this.detects.set(i);let o=Ct(i);o?(this.activeType.set(o),await this.loadDocument(o)):(this.activeType.set(null),this.document.set(null),this.editingData.set(null),this.baselineData.set(null),this.selectedFilePath.set(null))}catch(e){console.error(e),this.msg.error("\u52A0\u8F7D\u914D\u7F6E\u76EE\u5F55\u5931\u8D25")}finally{this.loading.set(!1)}}}async onTypeSelect(t){this.activeType.set(t),await this.loadDocument(t)}async onDocumentSelect(t){this.activeType.set(t.type),await this.loadDocument(t.type,t.filePath)}async loadDocument(t,e){let i=this.projectId();if(i){this.loading.set(!0);try{let o=e??this.activeDetect()?.filePaths?.[0],r=await Z(this.api.getDoc(i,t,o));this.document.set(r),this.selectedFilePath.set(r.filePath);let p=r.readonly?r.viewModel:r.raw,v=Q.cloneDeep(p);this.editingData.set(v),this.baselineData.set(Q.cloneDeep(v))}catch(o){console.error(o),this.msg.error("\u52A0\u8F7D\u914D\u7F6E\u6587\u6863\u5931\u8D25"),this.document.set(null),this.editingData.set(null),this.baselineData.set(null)}finally{this.loading.set(!1)}}}buildPatches(){let t=this.document(),e=this.baselineData(),i=this.editingData();if(!t||t.readonly||!t.schema)return[];let o=[];for(let r of t.schema.groups??[])for(let p of r.fields??[]){if(!p.path||p.readonly)continue;let v=te(e,p.path),_=te(i,p.path);o.push(...this.buildFieldPatches(p.path,v,_))}return o}buildFieldPatches(t,e,i){return Q.isEqual(e,i)?[]:i===void 0?[{op:"remove",path:t}]:e===void 0?[{op:"set",path:t,value:i}]:this.isPlainObject(e)&&this.isPlainObject(i)?this.diffObject(t,e,i):[{op:"set",path:t,value:i}]}diffObject(t,e,i){let o=[],r=new Set([...Object.keys(e),...Object.keys(i)]);for(let p of r){let v=this.joinPatchPath(t,p),_=e[p],U=i[p];if(!Q.isEqual(_,U)){if(U===void 0){o.push({op:"remove",path:v});continue}if(_===void 0){o.push({op:"set",path:v,value:U});continue}if(this.isPlainObject(_)&&this.isPlainObject(U)){o.push(...this.diffObject(v,_,U));continue}o.push({op:"set",path:v,value:U})}}return o}isPlainObject(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}joinPatchPath(t,e){if(t.startsWith("/")){let i=e.replace(/~/g,"~0").replace(/\//g,"~1");return`${t}/${i}`}return`${t}.${e}`}async onDiff(){let t=this.projectId(),e=this.document();if(!t||!e)return;if(e.readonly){this.msg.warning("\u5F53\u524D\u914D\u7F6E\u4E3A\u53EA\u8BFB\uFF0C\u65E0\u6CD5\u9884\u89C8\u5199\u56DE\u53D8\u66F4");return}let i=this.buildPatches();if(i.length===0){this.msg.info("\u6CA1\u6709\u53EF\u5199\u56DE\u7684\u53D8\u66F4");return}this.loading.set(!0);try{let o=await Z(this.api.preview(t,{type:e.type,filePath:e.filePath,patches:i}));this.modal.create({nzTitle:"\u53D8\u66F4\u9884\u89C8",nzContent:ve,nzData:{patches:o.patches,before:o.before,after:o.after,schema:e.schema,providerTitle:this.getActiveProviderTitle(),filePath:e.filePath},nzFooter:null,nzWidth:900})}catch(o){console.error(o),this.msg.error("\u751F\u6210\u9884\u89C8\u5931\u8D25")}finally{this.loading.set(!1)}}onReset(){let t=this.baselineData();t&&(this.editingData.set(Q.cloneDeep(t)),this.msg.success("\u5DF2\u91CD\u7F6E\u4E3A\u672A\u4FEE\u6539\u72B6\u6001"))}async saveActive(){let t=this.projectId(),e=this.document();if(!t||!e)return;if(e.readonly){this.msg.warning("\u5F53\u524D\u914D\u7F6E\u4E3A\u53EA\u8BFB\uFF0C\u65E0\u6CD5\u4FDD\u5B58");return}let i=this.buildPatches();if(i.length===0){this.msg.info("\u6CA1\u6709\u53EF\u4FDD\u5B58\u7684\u53D8\u66F4");return}this.loading.set(!0);try{await Z(this.api.write(t,{type:e.type,filePath:e.filePath,patches:i})),this.msg.success("\u4FDD\u5B58\u6210\u529F"),await this.loadDocument(e.type,e.filePath)}catch(o){console.error(o),this.msg.error("\u4FDD\u5B58\u5931\u8D25")}finally{this.loading.set(!1)}}openConfig(){let t=this.selectedFilePath();if(!t){this.msg.warning("\u8BF7\u5148\u9009\u62E9\u914D\u7F6E\u6587\u4EF6");return}this.api.openInEditor(this.projectId(),t).subscribe({next:()=>{this.msg.success("\u5DF2\u5728\u9ED8\u8BA4\u7F16\u8F91\u5668\u4E2D\u6253\u5F00\u8BE5\u914D\u7F6E\u6587\u4EF6")},error:e=>{console.error(e),this.msg.error("\u6253\u5F00\u914D\u7F6E\u6587\u4EF6\u5931\u8D25")}})}getActiveProviderTitle(){let t=this.activeType(),e=this.document();return this.providers().find(o=>o.type===t)?.title??e?.title??this.detects().find(o=>o.type===t)?.title??""}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=w({type:n,selectors:[["app-project-conf",8,"component"]],attrs:ei,decls:21,vars:12,consts:[[3,"title","loading"],["ngProjectAs","actions",5,["actions"]],[1,"page-actions"],["nz-button","",3,"click","disabled"],["nzType","folder-open"],["nzType","diff"],["nzType","rollback"],["nz-button","","nzType","primary",3,"click","disabled"],["nzType","save"],[1,"config-workbench"],[1,"panel"],[3,"documentSelect","nodes","activeDomainId","activeFilePath"],[1,"content"],[3,"vmChange","schema","vm","viewModel"]],template:function(e,i){if(e&1&&(s(0,"app-page-layout",0),Fe(1,1),s(2,"div",2)(3,"button",3),m("click",function(){return i.openConfig()}),M(4,"nz-icon",4),d(5," \u6253\u5F00\u6587\u4EF6 "),a(),s(6,"button",3),m("click",function(){return i.onDiff()}),M(7,"nz-icon",5),d(8," \u53D8\u66F4\u9884\u89C8 "),a(),s(9,"button",3),m("click",function(){return i.onReset()}),M(10,"nz-icon",6),d(11," \u91CD\u7F6E "),a(),s(12,"button",7),m("click",function(){return i.saveActive()}),M(13,"nz-icon",8),d(14," \u4FDD\u5B58 "),a()(),M(15,"app-ng-devtool"),Ve(),s(16,"div",9)(17,"div",10)(18,"app-config-nav-component",11),m("documentSelect",function(r){return i.onDocumentSelect(r)}),a(),s(19,"div",12)(20,"app-config-section-component",13),m("vmChange",function(r){return i.editingData.set(r)}),a()()()()()),e&2){let o,r,p;f("title","\u9879\u76EE\u914D\u7F6E")("loading",i.loading()),l(3),f("disabled",!((o=i.document())!=null&&o.filePath)),l(3),f("disabled",!i.canWriteChanged()),l(3),f("disabled",!i.canWriteChanged()),l(3),f("disabled",!i.canWriteChanged()),l(6),f("nodes",i.navNodes())("activeDomainId",i.activeType()??"")("activeFilePath",i.selectedFilePath()??""),l(2),f("schema",(r=i.document())==null?null:r.schema)("vm",i.editingData())("viewModel",(p=i.document())==null?null:p.viewModel)}},dependencies:[b,rt,ot,J,R,A,ee,ce,Xe,Y,X,pe,me,be,Ze],styles:[".page-actions[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:8px;margin-right:8px}.config-workbench[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-height:100%;background:transparent}.panel[_ngcontent-%COMP%]{flex:1 1 auto;min-height:0;display:flex;border-radius:10px;padding:16px 18px;box-shadow:0 2px 8px #0000000f;overflow:hidden;background:var(--app-component-bg)}app-config-nav-component[_ngcontent-%COMP%]{flex:0 0 320px;min-height:0}.content[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;padding:16px;overflow:auto}app-config-section-component[_ngcontent-%COMP%]{flex:1 1 auto}@media (max-width: 960px){.page-actions[_ngcontent-%COMP%]{flex-wrap:wrap;justify-content:flex-end}.panel[_ngcontent-%COMP%]{flex-direction:column}app-config-nav-component[_ngcontent-%COMP%]{flex:0 0 auto}}"]})};var ti=[{path:"",component:Me}],Pe=class n{static \u0275fac=function(e){return new(e||n)};static \u0275mod=re({type:n});static \u0275inj=oe({imports:[Ee.forChild(ti),Ee]})};var Ot=class n{static \u0275fac=function(e){return new(e||n)};static \u0275mod=re({type:n});static \u0275inj=oe({imports:[b,Pe]})};export{Ot as ConfigurationModule};
3
+ `).length}opText(t){return{set:"\u4FEE\u6539",remove:"\u5220\u9664",append:"\u8FFD\u52A0",merge:"\u5408\u5E76"}[t]??t}opColor(t){return{set:"processing",remove:"error",append:"success",merge:"warning"}[t]??"default"}formatDiffValue(t){return typeof t>"u"?"\u65E0":t===null?"null":this.formatValue(t)}formatValue(t){if(typeof t=="string")return t;try{return JSON.stringify(t,null,2)}catch{return String(t)}}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=w({type:n,selectors:[["app-config-preview-modal"]],inputs:{patches:"patches",before:"before",after:"after",schema:"schema",providerTitle:"providerTitle",filePath:"filePath"},decls:11,vars:5,consts:[[1,"preview-content"],[1,"preview-head"],[1,"subtitle"],[1,"diff-notice"],[1,"diff-list"],[1,"empty"],[1,"advanced-section"],[1,"diff-card"],[1,"diff-card-header"],[1,"diff-card-left"],[1,"diff-card-num"],[1,"diff-card-field"],[1,"diff-card-group"],[3,"nzColor"],[1,"diff-card-path"],[1,"diff-card-body"],[1,"diff-value-box"],[1,"diff-value-label","old"],[1,"diff-raw-summary"],[1,"diff-value-content","old"],[1,"diff-value-label","new"],[1,"diff-value-content","new"],[1,"raw-grid"],[1,"preview-section"],[1,"preview-label"],[1,"preview-block"]],template:function(e,i){e&1&&(s(0,"div",0)(1,"div",1)(2,"div",2),d(3),g(4,Xt,2,1,"span"),d(5),a()(),s(6,"div",3),d(7,"\u4FDD\u5B58\u524D\u8BF7\u786E\u8BA4\u4FEE\u6539\u8DEF\u5F84\u548C\u76EE\u6807\u73AF\u5883\u3002"),a(),g(8,an,3,0,"div",4)(9,ln,2,0,"div",5),g(10,sn,14,2,"details",6),a()),e&2&&(l(3),P(" ",i.providerTitle||"\u914D\u7F6E"," "),l(),C(i.filePath?4:-1),l(),P(" \xB7 \u672C\u6B21\u5C06\u4FEE\u6539 ",i.diffItems.length," \u9879\u914D\u7F6E "),l(3),C(i.diffItems.length>0?8:9),l(2),C(i.before!==void 0||i.after!==void 0?10:-1))},dependencies:[b,pe,at],styles:[".preview-content[_ngcontent-%COMP%]{max-height:68vh;overflow:auto;padding-right:4px}.preview-head[_ngcontent-%COMP%]{margin-bottom:12px}.title[_ngcontent-%COMP%]{font-size:18px;font-weight:700}.subtitle[_ngcontent-%COMP%]{margin-top:4px;color:var(--app-text-secondary);font-size:12px;word-break:break-all}.diff-notice[_ngcontent-%COMP%]{margin-bottom:12px;padding:10px 12px;border:1px solid #e6f4ff;border-radius:6px;background:#f0faff;color:#0958d9}.diff-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.diff-card[_ngcontent-%COMP%]{border:1px solid var(--app-border-color);border-radius:8px;background:var(--app-component-bg);overflow:hidden}.diff-card-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border-bottom:1px solid var(--app-border-color)}.diff-card-left[_ngcontent-%COMP%]{min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.diff-card-num[_ngcontent-%COMP%]{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#e6f4ff;color:#0958d9;font-size:12px;font-weight:700}.diff-card-field[_ngcontent-%COMP%]{font-weight:700}.diff-card-group[_ngcontent-%COMP%]{padding:1px 7px;border-radius:10px;background:#fafafa;color:var(--app-text-secondary);font-size:12px}.diff-card-path[_ngcontent-%COMP%]{padding:8px 12px 0;color:var(--app-text-secondary);font-family:Consolas,Menlo,Monaco,Courier New,monospace;font-size:12px;word-break:break-all}.diff-card-body[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:12px}.diff-card-body.complex[_ngcontent-%COMP%]{align-items:start}.diff-value-label[_ngcontent-%COMP%]{margin-bottom:6px;font-weight:600;font-size:12px}.diff-value-label.old[_ngcontent-%COMP%]{color:#cf1322}.diff-value-label.new[_ngcontent-%COMP%]{color:#389e0d}.diff-value-content[_ngcontent-%COMP%], .diff-raw-summary[_ngcontent-%COMP%]{min-height:38px;margin:0;padding:9px 10px;border:1px solid #f0f0f0;border-radius:6px;background:#fafafa;white-space:pre-wrap;word-break:break-word;font-family:Consolas,Menlo,Monaco,Courier New,monospace;font-size:12px;line-height:1.55}.diff-value-content.old[_ngcontent-%COMP%]{background:#fff2f0;border-color:#ffccc7}.diff-value-content.new[_ngcontent-%COMP%]{background:#f6ffed;border-color:#b7eb8f}.diff-raw-summary[_ngcontent-%COMP%]{font-family:inherit;color:var(--app-text-secondary)}.advanced-section[_ngcontent-%COMP%]{margin-top:14px}.advanced-section[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]{cursor:pointer;font-weight:600;margin-bottom:10px}.raw-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.preview-section[_ngcontent-%COMP%]{border:1px solid var(--app-border-color);border-radius:6px;overflow:hidden}.preview-label[_ngcontent-%COMP%]{padding:8px 10px;font-weight:600;background:#fafafa;border-bottom:1px solid var(--app-border-color)}.preview-block[_ngcontent-%COMP%]{max-height:360px;overflow:auto;margin:0;padding:10px;white-space:pre-wrap;word-break:break-word;font-family:Consolas,Menlo,Monaco,Courier New,monospace;font-size:12px}.empty[_ngcontent-%COMP%]{padding:16px;color:var(--app-text-secondary);border:1px dashed var(--app-border-color);border-radius:6px}@media (max-width: 780px){.diff-card-body[_ngcontent-%COMP%], .raw-grid[_ngcontent-%COMP%]{grid-template-columns:1fr}}"]})};var cn=["jsonTextarea"],dn=(n,t,e)=>({minHeight:n,height:t,maxHeight:e});function pn(n,t){if(n&1&&(s(0,"pre"),d(1),a()),n&2){let e=c(2);l(),P("\u5408\u6CD5\u793A\u4F8B\uFF1A",e.exampleText)}}function fn(n,t){if(n&1&&(s(0,"div",8)(1,"div"),d(2),a(),g(3,pn,2,1,"pre"),a()),n&2){let e=c();l(2),u(e.errorMessage),l(),C(e.exampleText?3:-1)}}var ne=class n{clipboard=T(fe);message=T(de);value;readonly=!1;minHeight=120;maxHeight=280;expandedHeight=560;expectedJsonType;jsonExample;valueChange=new S;jsonTextarea;jsonText="";errorMessage="";expanded=!1;ngOnChanges(t){"value"in t&&(this.jsonText=this.stringifyValue(this.value),this.errorMessage="")}get currentHeight(){let i=this.lineCount(this.jsonText)*22+26;return this.expanded?Math.min(this.expandedHeight,Math.max(this.minHeight,i+48)):Math.min(this.maxHeight,Math.max(this.minHeight,i))}get valueMeta(){return Array.isArray(this.value)?`JSON Array \xB7 ${this.value.length} \u9879`:this.value!==null&&typeof this.value=="object"?`JSON Object \xB7 ${Object.keys(this.value).length} \u9879`:"JSON Value"}get exampleText(){return this.stringifyExample(this.jsonExample)}onTextChange(t){if(this.jsonText=t??"",this.errorMessage="",!this.readonly)try{let e=this.jsonText?JSON.parse(this.jsonText):void 0,i=this.validateParsedValue(e);if(i){this.errorMessage=i;return}this.valueChange.emit(e)}catch{this.errorMessage="JSON \u683C\u5F0F\u9519\u8BEF\uFF0C\u8BF7\u4FEE\u6B63\u540E\u518D\u4FDD\u5B58"}}formatJson(){if(!this.readonly)try{let t=this.jsonText?JSON.parse(this.jsonText):void 0,e=this.validateParsedValue(t);if(e){this.errorMessage=e,this.message.error(e);return}this.jsonText=this.stringifyValue(t),this.errorMessage="",this.valueChange.emit(t),queueMicrotask(()=>{let i=this.jsonTextarea?.nativeElement;i&&(i.scrollTop=0,i.scrollLeft=0)}),this.message.success("JSON \u5DF2\u683C\u5F0F\u5316")}catch{this.errorMessage="JSON \u683C\u5F0F\u9519\u8BEF\uFF0C\u8BF7\u4FEE\u6B63\u540E\u518D\u4FDD\u5B58",this.message.error("JSON \u683C\u5F0F\u9519\u8BEF\uFF0C\u65E0\u6CD5\u683C\u5F0F\u5316")}}toggleExpanded(){this.expanded=!this.expanded}copyText(){if(this.clipboard.copy(this.jsonText??"")){this.message.success("\u5DF2\u590D\u5236");return}this.message.error("\u590D\u5236\u5931\u8D25\uFF0C\u8BF7\u624B\u52A8\u590D\u5236")}stringifyValue(t){if(typeof t>"u")return"";if(typeof t=="string")return t;try{return JSON.stringify(t,null,2)}catch{return String(t)}}lineCount(t){return t?t.split(/\r?\n/).length:1}validateParsedValue(t){return this.expectedJsonType?this.expectedJsonType==="string[]"?Array.isArray(t)?t.every(e=>typeof e=="string")?"":"\u6B64\u5B57\u6BB5\u6570\u7EC4\u4E2D\u7684\u6BCF\u4E00\u9879\u90FD\u5FC5\u987B\u662F\u5B57\u7B26\u4E32":"\u6B64\u5B57\u6BB5\u5FC5\u987B\u662F\u5B57\u7B26\u4E32\u6570\u7EC4":this.expectedJsonType==="object"?typeof t!="object"||t===null||Array.isArray(t)?"\u6B64\u5B57\u6BB5\u5FC5\u987B\u662F JSON \u5BF9\u8C61":"":this.expectedJsonType==="stringRecord"?typeof t!="object"||t===null||Array.isArray(t)?"\u6B64\u5B57\u6BB5\u5FC5\u987B\u662F\u952E\u503C\u5BF9\u8C61":Object.values(t).every(e=>typeof e=="string")?"":"\u6B64\u5B57\u6BB5\u5BF9\u8C61\u7684\u6BCF\u4E2A\u503C\u90FD\u5FC5\u987B\u662F\u5B57\u7B26\u4E32":this.expectedJsonType==="stringArrayRecord"?typeof t!="object"||t===null||Array.isArray(t)?"\u6B64\u5B57\u6BB5\u5FC5\u987B\u662F\u952E\u503C\u5BF9\u8C61":Object.values(t).every(i=>Array.isArray(i)&&i.every(o=>typeof o=="string"))?"":"\u6B64\u5B57\u6BB5\u5BF9\u8C61\u7684\u6BCF\u4E2A\u503C\u90FD\u5FC5\u987B\u662F\u5B57\u7B26\u4E32\u6570\u7EC4":this.expectedJsonType==="reference[]"?Array.isArray(t)?t.every(e=>typeof e=="object"&&e!==null&&!Array.isArray(e)&&typeof e.path=="string")?"":"\u6B64\u5B57\u6BB5\u6570\u7EC4\u4E2D\u7684\u6BCF\u4E00\u9879\u90FD\u5FC5\u987B\u5305\u542B\u5B57\u7B26\u4E32 path":"\u6B64\u5B57\u6BB5\u5FC5\u987B\u662F\u5F15\u7528\u5BF9\u8C61\u6570\u7EC4":this.expectedJsonType==="fileReplacement[]"?Array.isArray(t)?t.every(e=>{if(typeof e!="object"||e===null||Array.isArray(e))return!1;let i=e;return typeof i.replace=="string"&&typeof i.with=="string"})?"":"\u6B64\u5B57\u6BB5\u6570\u7EC4\u4E2D\u7684\u6BCF\u4E00\u9879\u90FD\u5FC5\u987B\u5305\u542B\u5B57\u7B26\u4E32 replace \u548C with":"\u6B64\u5B57\u6BB5\u5FC5\u987B\u662F\u6587\u4EF6\u66FF\u6362\u5BF9\u8C61\u6570\u7EC4":"":""}stringifyExample(t){if(typeof t>"u")return"";if(typeof t=="string")return t;try{return JSON.stringify(t,null,2)}catch{return String(t)}}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=w({type:n,selectors:[["app-config-json-editor"]],viewQuery:function(e,i){if(e&1&&Ae(cn,5),e&2){let o;Re(o=Je())&&(i.jsonTextarea=o.first)}},inputs:{value:"value",readonly:"readonly",minHeight:"minHeight",maxHeight:"maxHeight",expandedHeight:"expandedHeight",expectedJsonType:"expectedJsonType",jsonExample:"jsonExample"},outputs:{valueChange:"valueChange"},features:[G],decls:14,vars:15,consts:[["jsonTextarea",""],[1,"json-editor"],[1,"header"],[1,"meta"],[1,"actions"],["type","button","nz-button","","nzType","default","nzSize","small",3,"click","disabled"],["type","button","nz-button","","nzType","default","nzSize","small",3,"click"],["nz-input","","wrap","off","spellcheck","false",3,"ngModelChange","readonly","ngStyle","ngModel"],[1,"error-tip"]],template:function(e,i){if(e&1){let o=y();s(0,"div",1)(1,"div",2)(2,"div",3),d(3),a(),s(4,"div",4)(5,"button",5),m("click",function(){return h(o),x(i.formatJson())}),d(6,"\u683C\u5F0F\u5316"),a(),s(7,"button",6),m("click",function(){return h(o),x(i.copyText())}),d(8,"\u590D\u5236"),a(),s(9,"button",6),m("click",function(){return h(o),x(i.toggleExpanded())}),d(10),a()()(),s(11,"textarea",7,0),m("ngModelChange",function(p){return h(o),x(i.onTextChange(p))}),a(),g(13,fn,4,2,"div",8),a()}e&2&&(D("readonly",i.readonly)("error",!!i.errorMessage),l(3),u(i.valueMeta),l(2),f("disabled",i.readonly),l(5),P(" ",i.expanded?"\u6536\u8D77":"\u5C55\u5F00"," "),l(),f("readonly",i.readonly)("ngStyle",Be(11,dn,i.minHeight+"px",i.currentHeight+"px",i.currentHeight+"px"))("ngModel",i.jsonText),l(2),C(i.errorMessage?13:-1))},dependencies:[b,se,ue,H,$,B,K,J,R,A,ee,L,W],styles:[".json-editor[_ngcontent-%COMP%]{border:1px solid #e5e5e5;border-radius:6px;overflow:hidden;background:#fff}.json-editor.readonly[_ngcontent-%COMP%]{background:#f5f5f5}.json-editor.error[_ngcontent-%COMP%]{border-color:#ff4d4f}.header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:8px 10px;background:#fafafa;border-bottom:1px solid #e5e5e5}.meta[_ngcontent-%COMP%]{font-size:12px;opacity:.75}.actions[_ngcontent-%COMP%]{display:flex;gap:6px}textarea[nz-input][_ngcontent-%COMP%]{display:block;width:100%;border:0;border-radius:0;resize:none;overflow:auto;padding:10px;line-height:1.6;white-space:pre;overflow-wrap:normal;font-family:Consolas,Menlo,Monaco,Courier New,monospace;background:transparent}.error-tip[_ngcontent-%COMP%]{padding:6px 10px;font-size:12px;color:#ff4d4f;border-top:1px solid #ffe5e5;background:#fff2f0}.error-tip[_ngcontent-%COMP%] pre[_ngcontent-%COMP%]{margin:4px 0 0;white-space:pre-wrap;color:#8c1d18;font-family:Consolas,Menlo,Monaco,Courier New,monospace}"]})};var un=(n,t)=>t.key;function mn(n,t){if(n&1&&(s(0,"div",6)(1,"code",8),d(2),a(),s(3,"span",9),d(4),a()()),n&2){let e=c().$implicit,i=c(3);l(2),u(e.key),l(2),u(i.toInlineText(e.value))}}function gn(n,t){if(n&1&&g(0,mn,5,2,"div",6),n&2){let e=t.$index;C(e<5?0:-1)}}function Cn(n,t){if(n&1&&k(0,gn,1,1,null,null,un),n&2){let e=c(2);E(e.objectEntries(e.value))}}function vn(n,t){if(n&1&&(s(0,"div",6)(1,"code",8),d(2),a(),s(3,"span",9),d(4),a()()),n&2){let e=c(),i=e.$implicit,o=e.$index,r=c(3);l(2),P("[",o,"]"),l(2),u(r.toInlineText(i))}}function hn(n,t){if(n&1&&g(0,vn,5,2,"div",6),n&2){let e=t.$index;C(e<5?0:-1)}}function xn(n,t){if(n&1&&k(0,hn,1,1,null,null,ae),n&2){let e=c(2);E(e.value)}}function _n(n,t){if(n&1&&(s(0,"div",6)(1,"span",9),d(2),a()()),n&2){let e=c(2);l(2),u(e.toInlineText(e.value))}}function yn(n,t){n&1&&(s(0,"div",7),d(1,"..."),a())}function bn(n,t){if(n&1&&(s(0,"div",4),g(1,Cn,2,0)(2,xn,2,0)(3,_n,3,1,"div",6),g(4,yn,2,0,"div",7),a()),n&2){let e=c();l(),C(e.isObject(e.value)?1:e.isArray(e.value)?2:3),l(3),C(e.itemCount>5?4:-1)}}function wn(n,t){if(n&1){let e=y();s(0,"app-config-json-editor",10),m("valueChange",function(o){h(e);let r=c();return x(r.valueChange.emit(o))}),a()}if(n&2){let e=c();f("value",e.value)("readonly",e.readonly)}}var he=class n{value;readonly=!1;valueChange=new S;expanded=!1;get itemCount(){return Array.isArray(this.value)?this.value.length:this.isObject(this.value)?Object.keys(this.value).length:1}get summaryTitle(){return Array.isArray(this.value)?`Array \xB7 ${this.value.length} \u9879`:this.isObject(this.value)?`Object \xB7 ${Object.keys(this.value).length} \u9879`:"Value"}isObject(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}isArray(t){return Array.isArray(t)}objectEntries(t){return Object.entries(t).map(([e,i])=>({key:e,value:i}))}toInlineText(t){if(typeof t=="string")return t;if(typeof t>"u")return"\u65E0";try{return JSON.stringify(t)}catch{return String(t)}}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=w({type:n,selectors:[["app-config-json-summary"]],inputs:{value:"value",readonly:"readonly"},outputs:{valueChange:"valueChange"},decls:8,vars:3,consts:[[1,"json-summary"],[1,"summary-head"],[1,"meta"],["nz-button","","nzType","link","nzSize","small",3,"click"],[1,"summary-list"],[3,"value","readonly"],[1,"summary-item"],[1,"more"],[1,"k"],[1,"v"],[3,"valueChange","value","readonly"]],template:function(e,i){e&1&&(s(0,"div",0)(1,"div",1)(2,"span",2),d(3),a(),s(4,"button",3),m("click",function(){return i.expanded=!i.expanded}),d(5),a()(),g(6,bn,5,2,"div",4)(7,wn,1,2,"app-config-json-editor",5),a()),e&2&&(l(3),u(i.summaryTitle),l(2),P(" ",i.expanded?"\u6536\u8D77 JSON \u7F16\u8F91":"\u5C55\u5F00 JSON \u7F16\u8F91"," "),l(),C(i.expanded?7:6))},dependencies:[b,J,R,A,ne],styles:[".json-summary[_ngcontent-%COMP%]{border:1px solid #e5e5e5;border-radius:6px;overflow:hidden}.summary-head[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;background:#fafafa;border-bottom:1px solid #e5e5e5}.meta[_ngcontent-%COMP%]{font-size:12px;opacity:.75}.summary-list[_ngcontent-%COMP%]{padding:10px}.summary-item[_ngcontent-%COMP%]{display:flex;gap:10px;align-items:baseline;margin-bottom:6px;line-height:1.5}.summary-item[_ngcontent-%COMP%]:last-child{margin-bottom:0}.k[_ngcontent-%COMP%]{min-width:120px;font-family:Consolas,Menlo,Monaco,Courier New,monospace;color:#1677ff}.v[_ngcontent-%COMP%]{opacity:.8;word-break:break-word}.more[_ngcontent-%COMP%]{opacity:.6}"]})};function Mn(n,t){if(n&1&&(V(0,"span",9),d(1),I()),n&2){let e=c().$implicit;l(),u(e.valueType)}}function Pn(n,t){n&1&&(V(0,"span",10),d(1,"\u654F\u611F"),I())}function kn(n,t){if(n&1&&(V(0,"div",5)(1,"div",6),d(2),I(),V(3,"div",7)(4,"code",8),d(5),I(),g(6,Mn,2,1,"span",9),g(7,Pn,2,0,"span",10),I()()),n&2){let e=t.$implicit;l(),ke("title",e.key),l(),u(e.key),l(2),ke("title",e.value),l(),u(e.value),l(),C(e.valueType?6:-1),l(),C(e.sensitive?7:-1)}}function En(n,t){if(n&1&&(V(0,"div",0)(1,"div",1)(2,"div")(3,"div",2),d(4,"Key / Value \u9884\u89C8"),I(),V(5,"div",3),d(6,"\u89E3\u6790\u540E\u7684\u952E\u503C\u5BF9\u4EC5\u7528\u4E8E\u5C55\u793A"),I()(),V(7,"span"),d(8),I()(),V(9,"div",4),k(10,kn,8,6,"div",5,ze().trackEntry,!0),I()()),n&2){let e=c();l(8),P("",e.entries.length," \u9879"),l(2),E(e.entries)}}var xe=class n{entries=[];trackEntry(t,e){return`${e.key}:${e.line??t}`}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=w({type:n,selectors:[["app-config-kv-preview"]],inputs:{entries:"entries"},decls:1,vars:1,consts:[[1,"kv-preview"],[1,"kv-preview-head"],[1,"kv-preview-title"],[1,"kv-preview-subtitle"],[1,"kv-preview-body"],[1,"kv-row"],[1,"kv-key",3,"title"],[1,"kv-value"],[3,"title"],[1,"meta-tag"],[1,"sensitive-tag"]],template:function(e,i){e&1&&g(0,En,12,1,"div",0),e&2&&C(i.entries.length>0?0:-1)},dependencies:[b],styles:[".kv-preview[_ngcontent-%COMP%]{border-top:1px solid #e5e5e5;background:#fff}.kv-preview-head[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;color:var(--app-text-secondary);background:#fafafa;border-bottom:1px solid #e5e5e5;font-size:12px}.kv-preview-title[_ngcontent-%COMP%]{color:var(--app-text-primary);font-size:13px;font-weight:500;line-height:1.4}.kv-preview-subtitle[_ngcontent-%COMP%]{margin-top:2px;line-height:1.3}.kv-preview-body[_ngcontent-%COMP%]{display:flex;flex-direction:column}.kv-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(140px,220px) minmax(0,1fr);gap:12px;align-items:center;padding:7px 10px;border-bottom:1px solid #f0f0f0}.kv-row[_ngcontent-%COMP%]:last-child{border-bottom:0}.kv-key[_ngcontent-%COMP%]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--app-text-primary);font-size:13px;font-weight:500}.kv-value[_ngcontent-%COMP%]{min-width:0;display:flex;align-items:center;gap:6px}.kv-value[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 8px;border-radius:4px;background:#f8f9fa;color:var(--app-text-primary);font-family:Consolas,Menlo,Monaco,Courier New,monospace;font-size:12px;line-height:1.5}.meta-tag[_ngcontent-%COMP%], .sensitive-tag[_ngcontent-%COMP%]{flex:0 0 auto;padding:1px 6px;border-radius:10px;font-size:12px;line-height:1.4}.meta-tag[_ngcontent-%COMP%]{border:1px solid #d9d9d9;background:#fafafa;color:var(--app-text-secondary)}.sensitive-tag[_ngcontent-%COMP%]{border:1px solid #ffccc7;background:#fff2f0;color:#cf1322}"]})};var Tn=n=>({minHeight:n}),_e=class n{clipboard=T(fe);value="";readonly=!1;minHeight=240;backendEntries=[];valueChange=new S;textValue="";entries=[];ngOnChanges(t){("value"in t||"backendEntries"in t)&&(this.textValue=this.value??"",this.entries=this.resolvePreviewEntries(this.textValue))}onTextChange(t){this.textValue=t??"",this.entries=this.resolvePreviewEntries(this.textValue),!this.readonly&&this.valueChange.emit(this.textValue)}copyText(){this.clipboard.copy(this.textValue??"")}resolvePreviewEntries(t){let e=ge(t);return e.length>0?e:_t(this.backendEntries)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=w({type:n,selectors:[["app-config-raw-editor"]],inputs:{value:"value",readonly:"readonly",minHeight:"minHeight",backendEntries:"backendEntries"},outputs:{valueChange:"valueChange"},features:[G],decls:9,vars:8,consts:[[1,"raw-editor"],[1,"header"],[1,"title"],[1,"actions"],["nz-button","","nzType","default","nzSize","small",3,"click"],["nz-input","",3,"ngModelChange","readOnly","ngModel","ngStyle"],[3,"entries"]],template:function(e,i){e&1&&(s(0,"div",0)(1,"div",1)(2,"div",2),d(3,"\u539F\u59CB\u5185\u5BB9"),a(),s(4,"div",3)(5,"button",4),m("click",function(){return i.copyText()}),d(6,"\u590D\u5236"),a()()(),s(7,"textarea",5),m("ngModelChange",function(r){return i.onTextChange(r)}),a(),M(8,"app-config-kv-preview",6),a()),e&2&&(D("readonly",i.readonly),l(7),f("readOnly",i.readonly)("ngModel",i.textValue)("ngStyle",$e(6,Tn,i.minHeight+"px")),l(),f("entries",i.entries))},dependencies:[b,se,ue,H,$,B,K,J,R,A,ee,L,W,xe],styles:[".raw-editor[_ngcontent-%COMP%]{border:1px solid #e5e5e5;border-radius:6px;overflow:hidden;background:#fff}.raw-editor.readonly[_ngcontent-%COMP%]{background:#f5f5f5}.header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;background:#fafafa;border-bottom:1px solid #e5e5e5}.title[_ngcontent-%COMP%]{font-size:12px;opacity:.75}textarea[nz-input][_ngcontent-%COMP%]{display:block;width:100%;border:0;border-radius:0;resize:vertical;overflow:auto;padding:10px;line-height:1.6;white-space:pre;font-family:Consolas,Menlo,Monaco,Courier New,monospace;background:transparent}"]})};var On=(n,t)=>t.value;function Dn(n,t){if(n&1&&(s(0,"div",3),d(1),a()),n&2){let e=c();f("title",e.item.path),l(),u(e.item.path)}}function Sn(n,t){if(n&1&&(s(0,"div",4),d(1,"\u9ED8\u8BA4\u503C: "),s(2,"code"),d(3),a()()),n&2){let e=c();l(3),u(e.toInlineText(e.defaultValue()))}}function Nn(n,t){if(n&1&&(s(0,"div",5),d(1),a()),n&2){let e=c();l(),u(e.item.description)}}function In(n,t){if(n&1){let e=y();s(0,"input",11),m("ngModelChange",function(o){h(e);let r=c();return x(r.emit(o))}),a()}if(n&2){let e=c();f("disabled",e.isReadonly())("ngModel",e.value)}}function jn(n,t){if(n&1){let e=y();s(0,"input",11),m("ngModelChange",function(o){h(e);let r=c();return x(r.emit(o))}),a()}if(n&2){let e=c();f("disabled",e.isReadonly())("ngModel",e.value)}}function zn(n,t){if(n&1){let e=y();s(0,"input",12),m("ngModelChange",function(o){h(e);let r=c();return x(r.emitNumber(o))}),a()}if(n&2){let e=c();f("disabled",e.isReadonly())("ngModel",e.value)}}function Fn(n,t){if(n&1){let e=y();s(0,"nz-switch",13),m("ngModelChange",function(o){h(e);let r=c();return x(r.emit(o))}),a()}if(n&2){let e=c();f("nzDisabled",e.isReadonly())("ngModel",!!e.value)}}function Vn(n,t){if(n&1&&M(0,"nz-option",15),n&2){let e=t.$implicit;f("nzValue",e.value)("nzLabel",e.label)}}function An(n,t){if(n&1){let e=y();s(0,"nz-select",14),m("ngModelChange",function(o){h(e);let r=c();return x(r.emit(o))}),k(1,Vn,1,2,"nz-option",15,On),a()}if(n&2){let e=c();f("ngModel",e.value)("nzDisabled",e.isReadonly()),l(),E(e.options)}}function Rn(n,t){if(n&1){let e=y();s(0,"app-config-json-summary",18),m("valueChange",function(o){h(e);let r=c(2);return x(r.emit(o))}),a()}if(n&2){let e=c(2);f("value",e.value)("readonly",e.isReadonly())}}function Jn(n,t){if(n&1){let e=y();s(0,"app-config-json-editor",19),m("valueChange",function(o){h(e);let r=c(2);return x(r.emit(o))}),a()}if(n&2){let e=c(2);f("value",e.value)("readonly",e.isReadonly())("expectedJsonType",e.expectedJsonType())("jsonExample",e.jsonExample())}}function $n(n,t){if(n&1&&g(0,Rn,1,2,"app-config-json-summary",16)(1,Jn,1,4,"app-config-json-editor",17),n&2){let e=c();C(e.shouldUseSummary(e.value,e.item)?0:1)}}function Bn(n,t){if(n&1){let e=y();s(0,"app-config-raw-editor",21),m("valueChange",function(o){h(e);let r=c(2);return x(r.emitRawText(o))}),a()}if(n&2){let e=c(2);f("value",e.toMultilineText(e.value))("readonly",e.isReadonly())("backendEntries",e.backendEntries())}}function Kn(n,t){if(n&1){let e=y();s(0,"app-config-json-summary",18),m("valueChange",function(o){h(e);let r=c(2);return x(r.emit(o))}),a()}if(n&2){let e=c(2);f("value",e.value)("readonly",e.isReadonly())}}function Hn(n,t){if(n&1){let e=y();s(0,"app-config-json-editor",19),m("valueChange",function(o){h(e);let r=c(2);return x(r.emit(o))}),a()}if(n&2){let e=c(2);f("value",e.value)("readonly",e.isReadonly())("expectedJsonType",e.expectedJsonType())("jsonExample",e.jsonExample())}}function Wn(n,t){if(n&1&&g(0,Bn,1,3,"app-config-raw-editor",20)(1,Kn,1,2,"app-config-json-summary",16)(2,Hn,1,4,"app-config-json-editor",17),n&2){let e=c();C(typeof e.value=="string"||e.value===void 0||e.value===null?0:e.shouldUseSummary(e.value,e.item)?1:2)}}function Ln(n,t){if(n&1&&(s(0,"pre"),d(1),a()),n&2){let e=c();l(),u(e.toPrettyText(e.value))}}function qn(n,t){if(n&1&&(s(0,"div",3),d(1),a()),n&2){let e=c();f("title",e.item.path),l(),u(e.item.path)}}var ye=class n{item;value;viewModel;options=[];valueChange=new S;isReadonly(){return!!this.item?.readonly||this.item?.type==="readonly"||this.item?.type==="table"}isLargeControl(){return this.item?.type==="json"||this.item?.type==="multi-text"}emit(t){this.isReadonly()||this.valueChange.emit(t)}emitNumber(t){if(this.isReadonly())return;if(t===""||t===null||t===void 0){this.valueChange.emit(void 0);return}let e=Number(t);this.valueChange.emit(Number.isNaN(e)?void 0:e)}emitRawText(t){this.isReadonly()||this.valueChange.emit(t??"")}toMultilineText(t){return Array.isArray(t)?t.join(`
4
+ `):(t??"").toString()}shouldUseSummary(t,e){let i=`${e.key??""}`.toLowerCase();return i.includes("dependencies")||i.includes("devdependencies")||i.includes("peerdependencies")||i.includes("optionaldependencies")?!0:Array.isArray(t)?t.length>6:t!==null&&typeof t=="object"?Object.keys(t).length>8:!1}toPrettyText(t){if(typeof t=="string")return t;try{return JSON.stringify(t,null,2)}catch{return String(t)}}defaultValue(){return(this.item?.metadata??{}).defaultValue}toInlineText(t){if(typeof t=="string")return t;if(typeof t>"u")return"\u65E0";try{return JSON.stringify(t)}catch{return String(t)}}backendEntries(){if(this.item?.path!=="/raw")return[];let t=this.viewModel?.entries;if(Array.isArray(t))return t;let e=this.viewModel?.files;if(Array.isArray(e)){let i=e[0];return Array.isArray(i?.entries)?i.entries:[]}return[]}expectedJsonType(){let t=this.item?.metadata??{};return typeof t.expectedJsonType=="string"?t.expectedJsonType:void 0}jsonExample(){return(this.item?.metadata??{}).jsonExample}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=w({type:n,selectors:[["app-config-item-component"]],inputs:{item:"item",value:"value",viewModel:"viewModel",options:"options"},outputs:{valueChange:"valueChange"},decls:17,vars:10,consts:[[1,"config-item"],[1,"meta"],[1,"label"],[1,"path",3,"title"],[1,"default-value"],[1,"desc"],[1,"control"],["nz-input","",3,"disabled","ngModel"],["nz-input","","type","number",3,"disabled","ngModel"],[3,"nzDisabled","ngModel"],[3,"ngModel","nzDisabled"],["nz-input","",3,"ngModelChange","disabled","ngModel"],["nz-input","","type","number",3,"ngModelChange","disabled","ngModel"],[3,"ngModelChange","nzDisabled","ngModel"],[3,"ngModelChange","ngModel","nzDisabled"],[3,"nzValue","nzLabel"],[3,"value","readonly"],[3,"value","readonly","expectedJsonType","jsonExample"],[3,"valueChange","value","readonly"],[3,"valueChange","value","readonly","expectedJsonType","jsonExample"],[3,"value","readonly","backendEntries"],[3,"valueChange","value","readonly","backendEntries"]],template:function(e,i){if(e&1&&(s(0,"div",0)(1,"div",1)(2,"div",2),d(3),a(),g(4,Dn,2,2,"div",3),g(5,Sn,4,1,"div",4),g(6,Nn,2,1,"div",5),a(),s(7,"div",6),g(8,In,1,2,"input",7)(9,jn,1,2,"input",7)(10,zn,1,2,"input",8)(11,Fn,1,2,"nz-switch",9)(12,An,3,2,"nz-select",10)(13,$n,2,1)(14,Wn,3,1)(15,Ln,2,1,"pre"),g(16,qn,2,2,"div",3),a()()),e&2){let o;D("readonly",i.isReadonly())("large-control",i.isLargeControl()),l(3),u(i.item.label),l(),C(i.isLargeControl()?4:-1),l(),C(i.defaultValue()!==void 0?5:-1),l(),C(i.item.description?6:-1),l(2),C((o=i.item.type)==="text"?8:o==="path"?9:o==="number"?10:o==="boolean"?11:o==="select"?12:o==="json"?13:o==="multi-text"?14:15),l(8),C(i.isLargeControl()?-1:16)}},dependencies:[b,H,$,qe,B,K,st,lt,L,W,it,tt,nt,ne,he,_e],styles:[".config-item[_ngcontent-%COMP%]{display:flex;gap:12px;align-items:flex-start;padding:10px 16px;border-bottom:1px solid var(--app-border-color);transition:background .18s ease}.config-item[_ngcontent-%COMP%]:hover{background:#fafafa}.config-item[_ngcontent-%COMP%]:last-child{border-bottom:0}.config-item.readonly[_ngcontent-%COMP%]{background:#fafafa}.config-item.large-control[_ngcontent-%COMP%]{flex-direction:column;gap:8px;padding:12px 16px}.meta[_ngcontent-%COMP%]{flex:0 0 200px;min-width:0;padding-top:4px}.large-control[_ngcontent-%COMP%] .meta[_ngcontent-%COMP%]{flex:none;width:100%;display:grid;grid-template-columns:minmax(120px,auto) minmax(0,1fr);column-gap:12px;row-gap:2px;align-items:baseline;padding-top:0}.label[_ngcontent-%COMP%]{font-size:13px;line-height:1.4;font-weight:500;opacity:.75}.path[_ngcontent-%COMP%]{margin-top:2px;font-size:11px;line-height:1.4;color:var(--app-text-secondary);font-family:Consolas,Menlo,Monaco,Courier New,monospace;word-break:break-all;opacity:0;transition:opacity .18s ease}.large-control[_ngcontent-%COMP%] .path[_ngcontent-%COMP%]{margin-top:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:normal;text-align:right}.config-item[_ngcontent-%COMP%]:hover .path[_ngcontent-%COMP%], .config-item[_ngcontent-%COMP%]:focus-within .path[_ngcontent-%COMP%]{opacity:1}.default-value[_ngcontent-%COMP%], .desc[_ngcontent-%COMP%]{font-size:11px;line-height:1.4;margin-top:3px;opacity:.6}.large-control[_ngcontent-%COMP%] .default-value[_ngcontent-%COMP%], .large-control[_ngcontent-%COMP%] .desc[_ngcontent-%COMP%]{grid-column:1 / -1;margin-top:0}code[_ngcontent-%COMP%]{font-family:Consolas,Menlo,Monaco,Courier New,monospace;word-break:break-word}.control[_ngcontent-%COMP%]{flex:1 1 auto;min-width:260px}.large-control[_ngcontent-%COMP%] .control[_ngcontent-%COMP%]{width:100%;min-width:0}.control[_ngcontent-%COMP%] input[nz-input][_ngcontent-%COMP%], .control[_ngcontent-%COMP%] nz-select[_ngcontent-%COMP%], .control[_ngcontent-%COMP%] textarea[nz-input][_ngcontent-%COMP%], .control[_ngcontent-%COMP%] app-config-json-editor[_ngcontent-%COMP%], .control[_ngcontent-%COMP%] app-config-json-summary[_ngcontent-%COMP%], .control[_ngcontent-%COMP%] app-config-raw-editor[_ngcontent-%COMP%]{width:100%;display:block}.control[_ngcontent-%COMP%] pre[_ngcontent-%COMP%]{margin:0;white-space:pre-wrap;word-break:break-word}@media (max-width: 780px){.config-item[_ngcontent-%COMP%]{flex-direction:column}.meta[_ngcontent-%COMP%]{flex-basis:auto;width:100%}.large-control[_ngcontent-%COMP%] .meta[_ngcontent-%COMP%]{display:block}.large-control[_ngcontent-%COMP%] .path[_ngcontent-%COMP%]{margin-top:2px;text-align:left}.control[_ngcontent-%COMP%]{width:100%;min-width:0}}"]})};var kt=()=>[],Et=(n,t)=>t.key;function Qn(n,t){if(n&1&&(s(0,"span",8),d(1),a()),n&2){let e=c().$implicit;l(),u(e.description)}}function Un(n,t){if(n&1){let e=y();s(0,"app-config-item-component",12),m("valueChange",function(o){let r=h(e).$implicit,p=c(4);return x(p.onValueChange(o,r))}),a()}if(n&2){let e=t.$implicit,i=c(4);f("item",e)("options",e.options||ie(4,kt))("value",i.get(e))("viewModel",i.viewModel)}}function Zn(n,t){if(n&1&&(s(0,"div",10),k(1,Un,1,5,"app-config-item-component",11,Et),a()),n&2){let e=c().$implicit;l(),E(e.fields)}}function Gn(n,t){if(n&1){let e=y();s(0,"section",3)(1,"button",4),m("click",function(){let o=h(e).$implicit,r=c(2);return x(r.toggle(o.key))}),s(2,"span",5)(3,"span",6),d(4),a(),s(5,"span",7),d(6),a(),g(7,Qn,2,1,"span",8),a(),M(8,"nz-icon",9),a(),g(9,Zn,3,0,"div",10),a()}if(n&2){let e=t.$implicit,i=c(2);D("collapsed",i.isCollapsed(e.key)),je("id",e.key),l(4),u(e.title),l(2),P("",e.fields.length," \u9879"),l(),C(e.description?7:-1),l(2),C(i.isCollapsed(e.key)?-1:9)}}function Xn(n,t){if(n&1&&(s(0,"div",0),k(1,Gn,10,7,"section",2,Et),a()),n&2){let e=c();l(),E(e.schema.groups||ie(0,kt))}}function Yn(n,t){n&1&&(s(0,"div",1),d(1," \u8BE5\u914D\u7F6E\u6682\u4E0D\u652F\u6301\u8868\u5355\u6A21\u5F0F\u3002 "),a())}var be=class n{schema;vm=null;viewModel=null;options={};vmChange=new S;collapsed=O({});ngOnChanges(t){"schema"in t&&this.resetCollapsedState()}get(t){let e=te(this.vm,t.path);if(e!==void 0)return e;let i=this.getFallbackPaths(t);for(let o of i){let r=te(this.vm,o);if(r!==void 0)return r}return this.getDefaultValue(t)}onValueChange(t,e){this.update(e.path,t)}toggle(t){this.collapsed.update(e=>F(z({},e),{[t]:!e[t]}))}isCollapsed(t){return!!this.collapsed()[t]}update(t,e){let i=this.vm??{},o=structuredClone(i),r=ft(o,t,e);this.vmChange.emit(r??o)}getFallbackPaths(t){let e=t.metadata??{};return Array.isArray(e.fallbackPaths)?e.fallbackPaths.filter(i=>typeof i=="string"):[]}getDefaultValue(t){return(t.metadata??{}).defaultValue}resetCollapsedState(){let t=this.schema?.groups??[],e={};t.forEach((i,o)=>{e[i.key]=o>0}),this.collapsed.set(e)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=w({type:n,selectors:[["app-config-section-component"]],inputs:{schema:"schema",vm:"vm",viewModel:"viewModel",options:"options"},outputs:{vmChange:"vmChange"},features:[G],decls:2,vars:1,consts:[[1,"config-card-list"],[1,"empty"],[1,"config-card",3,"collapsed"],[1,"config-card"],["type","button",1,"config-card-header",3,"click"],[1,"config-card-title"],[1,"title-main"],[1,"config-card-count"],[1,"config-card-desc"],["nzType","down",1,"config-card-toggle"],[1,"config-card-body"],[3,"item","options","value","viewModel"],[3,"valueChange","item","options","value","viewModel"]],template:function(e,i){e&1&&g(0,Xn,3,1,"div",0)(1,Yn,2,0,"div",1),e&2&&C(i.schema?0:1)},dependencies:[b,Y,X,ye],styles:[".config-card-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:14px}.config-card[_ngcontent-%COMP%]{border:0;border-radius:10px;overflow:hidden;background:var(--app-component-bg);box-shadow:0 2px 8px #0000000f}.config-card-header[_ngcontent-%COMP%]{width:100%;min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.config-card-title[_ngcontent-%COMP%]{min-width:0;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.title-main[_ngcontent-%COMP%]{font-size:16px;font-weight:700}.config-card-count[_ngcontent-%COMP%], .config-card-desc[_ngcontent-%COMP%]{color:var(--app-text-secondary);font-size:12px}.config-card-desc[_ngcontent-%COMP%]{max-width:520px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.config-card-toggle[_ngcontent-%COMP%]{flex:0 0 auto;color:var(--app-text-secondary);transition:transform .18s ease}.collapsed[_ngcontent-%COMP%] .config-card-toggle[_ngcontent-%COMP%]{transform:rotate(-90deg)}.config-card-body[_ngcontent-%COMP%]{display:flex;flex-direction:column}.empty[_ngcontent-%COMP%]{padding:24px;color:var(--app-text-secondary);border:1px dashed var(--app-border-color);border-radius:8px;background:var(--app-component-bg)}"]})};var we=class n{api=T(Ye);getProviders(){return this.api.get("/api/config/providers")}detect(t){return this.api.get(`/api/config/detect/${t}`)}getDoc(t,e,i){let o=i?`?filePath=${encodeURIComponent(i)}`:"";return this.api.get(`/api/config/doc/${t}/${encodeURIComponent(e)}${o}`)}preview(t,e){return this.api.post(`/api/config/preview/${t}`,e)}write(t,e){return this.api.post(`/api/config/write/${t}`,e)}openInEditor(t,e){return this.api.post(`/api/config/openInEditor/${t}`,{filePath:e})}static \u0275fac=function(e){return new(e||n)};static \u0275prov=Ie({token:n,factory:n.\u0275fac,providedIn:"root"})};var ei=["class","component"],Me=class n{api=T(we);projectContext=T(et);msg=T(de);modal=T(Le);projectId=j(()=>this.projectContext.currentProjectId()||"");loading=O(!1);providers=O([]);detects=O([]);activeType=O(null);selectedFilePath=O(null);document=O(null);editingData=O(null);baselineData=O(null);navNodes=j(()=>{let t=this.detects().map(r=>{let p=this.providers().find(v=>v.type===r.type);return F(z({},r),{title:p?.title??r.title})}),e=this.activeType(),i=this.document(),o=this.domainDirty();return gt(t).map(r=>F(z({},r),{readonly:r.id===e?!!i?.readonly:r.readonly,dirty:r.id===e?o:r.dirty}))});activeDetect=j(()=>{let t=this.activeType();return this.detects().find(e=>e.type===t&&e.available)??null});activeFiles=j(()=>{let t=this.activeDetect();return t?t.filePaths.map(e=>({filePath:e,title:e,exists:!0})):[]});domainDirty=j(()=>{let t=this.document();return!t||t.readonly?!1:!Q.isEqual(this.baselineData(),this.editingData())});dirtyCount=j(()=>this.buildPatches().length);canWriteChanged=j(()=>{let t=this.document();return!!t&&!t.readonly&&this.domainDirty()});constructor(){Ke(()=>{this.projectId()&&this.loadCatalog()})}async loadCatalog(){let t=this.projectId();if(t){this.loading.set(!0);try{let[e,i]=await Promise.all([Z(this.api.getProviders()),Z(this.api.detect(t))]);this.providers.set(e),this.detects.set(i);let o=Ct(i);o?(this.activeType.set(o),await this.loadDocument(o)):(this.activeType.set(null),this.document.set(null),this.editingData.set(null),this.baselineData.set(null),this.selectedFilePath.set(null))}catch(e){console.error(e),this.msg.error("\u52A0\u8F7D\u914D\u7F6E\u76EE\u5F55\u5931\u8D25")}finally{this.loading.set(!1)}}}async onTypeSelect(t){this.activeType.set(t),await this.loadDocument(t)}async onDocumentSelect(t){this.activeType.set(t.type),await this.loadDocument(t.type,t.filePath)}async loadDocument(t,e){let i=this.projectId();if(i){this.loading.set(!0);try{let o=e??this.activeDetect()?.filePaths?.[0],r=await Z(this.api.getDoc(i,t,o));this.document.set(r),this.selectedFilePath.set(r.filePath);let p=r.readonly?r.viewModel:r.raw,v=Q.cloneDeep(p);this.editingData.set(v),this.baselineData.set(Q.cloneDeep(v))}catch(o){console.error(o),this.msg.error("\u52A0\u8F7D\u914D\u7F6E\u6587\u6863\u5931\u8D25"),this.document.set(null),this.editingData.set(null),this.baselineData.set(null)}finally{this.loading.set(!1)}}}buildPatches(){let t=this.document(),e=this.baselineData(),i=this.editingData();if(!t||t.readonly||!t.schema)return[];let o=[];for(let r of t.schema.groups??[])for(let p of r.fields??[]){if(!p.path||p.readonly)continue;let v=te(e,p.path),_=te(i,p.path);o.push(...this.buildFieldPatches(p.path,v,_))}return o}buildFieldPatches(t,e,i){return Q.isEqual(e,i)?[]:i===void 0?[{op:"remove",path:t}]:e===void 0?[{op:"set",path:t,value:i}]:this.isPlainObject(e)&&this.isPlainObject(i)?this.diffObject(t,e,i):[{op:"set",path:t,value:i}]}diffObject(t,e,i){let o=[],r=new Set([...Object.keys(e),...Object.keys(i)]);for(let p of r){let v=this.joinPatchPath(t,p),_=e[p],U=i[p];if(!Q.isEqual(_,U)){if(U===void 0){o.push({op:"remove",path:v});continue}if(_===void 0){o.push({op:"set",path:v,value:U});continue}if(this.isPlainObject(_)&&this.isPlainObject(U)){o.push(...this.diffObject(v,_,U));continue}o.push({op:"set",path:v,value:U})}}return o}isPlainObject(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}joinPatchPath(t,e){if(t.startsWith("/")){let i=e.replace(/~/g,"~0").replace(/\//g,"~1");return`${t}/${i}`}return`${t}.${e}`}async onDiff(){let t=this.projectId(),e=this.document();if(!t||!e)return;if(e.readonly){this.msg.warning("\u5F53\u524D\u914D\u7F6E\u4E3A\u53EA\u8BFB\uFF0C\u65E0\u6CD5\u9884\u89C8\u5199\u56DE\u53D8\u66F4");return}let i=this.buildPatches();if(i.length===0){this.msg.info("\u6CA1\u6709\u53EF\u5199\u56DE\u7684\u53D8\u66F4");return}this.loading.set(!0);try{let o=await Z(this.api.preview(t,{type:e.type,filePath:e.filePath,patches:i}));this.modal.create({nzTitle:"\u53D8\u66F4\u9884\u89C8",nzContent:ve,nzData:{patches:o.patches,before:o.before,after:o.after,schema:e.schema,providerTitle:this.getActiveProviderTitle(),filePath:e.filePath},nzFooter:null,nzWidth:900})}catch(o){console.error(o),this.msg.error("\u751F\u6210\u9884\u89C8\u5931\u8D25")}finally{this.loading.set(!1)}}onReset(){let t=this.baselineData();t&&(this.editingData.set(Q.cloneDeep(t)),this.msg.success("\u5DF2\u91CD\u7F6E\u4E3A\u672A\u4FEE\u6539\u72B6\u6001"))}async saveActive(){let t=this.projectId(),e=this.document();if(!t||!e)return;if(e.readonly){this.msg.warning("\u5F53\u524D\u914D\u7F6E\u4E3A\u53EA\u8BFB\uFF0C\u65E0\u6CD5\u4FDD\u5B58");return}let i=this.buildPatches();if(i.length===0){this.msg.info("\u6CA1\u6709\u53EF\u4FDD\u5B58\u7684\u53D8\u66F4");return}this.loading.set(!0);try{await Z(this.api.write(t,{type:e.type,filePath:e.filePath,patches:i})),this.msg.success("\u4FDD\u5B58\u6210\u529F"),await this.loadDocument(e.type,e.filePath)}catch(o){console.error(o),this.msg.error("\u4FDD\u5B58\u5931\u8D25")}finally{this.loading.set(!1)}}openConfig(){let t=this.selectedFilePath();if(!t){this.msg.warning("\u8BF7\u5148\u9009\u62E9\u914D\u7F6E\u6587\u4EF6");return}this.api.openInEditor(this.projectId(),t).subscribe({next:()=>{this.msg.success("\u5DF2\u5728\u9ED8\u8BA4\u7F16\u8F91\u5668\u4E2D\u6253\u5F00\u8BE5\u914D\u7F6E\u6587\u4EF6")},error:e=>{console.error(e),this.msg.error("\u6253\u5F00\u914D\u7F6E\u6587\u4EF6\u5931\u8D25")}})}getActiveProviderTitle(){let t=this.activeType(),e=this.document();return this.providers().find(o=>o.type===t)?.title??e?.title??this.detects().find(o=>o.type===t)?.title??""}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=w({type:n,selectors:[["app-project-conf",8,"component"]],attrs:ei,decls:21,vars:12,consts:[[3,"title","loading"],["ngProjectAs","actions",5,["actions"]],[1,"page-actions"],["nz-button","",3,"click","disabled"],["nzType","folder-open"],["nzType","diff"],["nzType","rollback"],["nz-button","","nzType","primary",3,"click","disabled"],["nzType","save"],[1,"config-workbench"],[1,"panel"],[3,"documentSelect","nodes","activeDomainId","activeFilePath"],[1,"content"],[3,"vmChange","schema","vm","viewModel"]],template:function(e,i){if(e&1&&(s(0,"app-page-layout",0),Fe(1,1),s(2,"div",2)(3,"button",3),m("click",function(){return i.openConfig()}),M(4,"nz-icon",4),d(5," \u6253\u5F00\u6587\u4EF6 "),a(),s(6,"button",3),m("click",function(){return i.onDiff()}),M(7,"nz-icon",5),d(8," \u53D8\u66F4\u9884\u89C8 "),a(),s(9,"button",3),m("click",function(){return i.onReset()}),M(10,"nz-icon",6),d(11," \u91CD\u7F6E "),a(),s(12,"button",7),m("click",function(){return i.saveActive()}),M(13,"nz-icon",8),d(14," \u4FDD\u5B58 "),a()(),M(15,"app-ng-devtool"),Ve(),s(16,"div",9)(17,"div",10)(18,"app-config-nav-component",11),m("documentSelect",function(r){return i.onDocumentSelect(r)}),a(),s(19,"div",12)(20,"app-config-section-component",13),m("vmChange",function(r){return i.editingData.set(r)}),a()()()()()),e&2){let o,r,p;f("title","\u9879\u76EE\u914D\u7F6E")("loading",i.loading()),l(3),f("disabled",!((o=i.document())!=null&&o.filePath)),l(3),f("disabled",!i.canWriteChanged()),l(3),f("disabled",!i.canWriteChanged()),l(3),f("disabled",!i.canWriteChanged()),l(6),f("nodes",i.navNodes())("activeDomainId",i.activeType()??"")("activeFilePath",i.selectedFilePath()??""),l(2),f("schema",(r=i.document())==null?null:r.schema)("vm",i.editingData())("viewModel",(p=i.document())==null?null:p.viewModel)}},dependencies:[b,rt,ot,J,R,A,ee,ce,Xe,Y,X,pe,me,be,Ze],styles:[".page-actions[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:8px;margin-right:8px}.config-workbench[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-height:100%;background:transparent}.panel[_ngcontent-%COMP%]{flex:1 1 auto;min-height:0;display:flex;border-radius:10px;padding:16px 18px;box-shadow:0 2px 8px #0000000f;overflow:hidden;background:var(--app-component-bg)}app-config-nav-component[_ngcontent-%COMP%]{flex:0 0 320px;min-height:0}.content[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;padding:16px;overflow:auto}app-config-section-component[_ngcontent-%COMP%]{flex:1 1 auto}@media (max-width: 960px){.page-actions[_ngcontent-%COMP%]{flex-wrap:wrap;justify-content:flex-end}.panel[_ngcontent-%COMP%]{flex-direction:column}app-config-nav-component[_ngcontent-%COMP%]{flex:0 0 auto}}"]})};var ti=[{path:"",component:Me}],Pe=class n{static \u0275fac=function(e){return new(e||n)};static \u0275mod=re({type:n});static \u0275inj=oe({imports:[Ee.forChild(ti),Ee]})};var Tt=class n{static \u0275fac=function(e){return new(e||n)};static \u0275mod=re({type:n});static \u0275inj=oe({imports:[b,Pe]})};export{Tt as ConfigurationModule};
@@ -0,0 +1 @@
1
+ import{i as t}from"./chunk-X6PRUZ5G.js";import"./chunk-SIKDYQOR.js";import{Hb as n,oa as e}from"./chunk-YGWA6NUS.js";var m=[{path:"",loadComponent:()=>import("./chunk-BHKSOTOM.js").then(o=>o.AboutComponent)},{path:"feedback",loadComponent:()=>import("./chunk-ACYCDF6M.js").then(o=>o.FeedbackComponent)}],i=class o{static \u0275fac=function(r){return new(r||o)};static \u0275mod=n({type:o});static \u0275inj=e({imports:[t.forChild(m),t]})};export{i as AboutRoutingModule};
@@ -1 +1 @@
1
- import{Ga as V,Ha as R,a as K,pb as H,qb as G,ra as Q,ta as $}from"./chunk-VZYJ3MSW.js";import{$b as P,Fb as O,Fc as S,Gb as W,Gc as _,Hc as j,Ic as T,Jc as b,Kc as k,Lb as w,Lc as Z,Oa as v,Ub as Y,Wb as f,Yb as g,_b as M,a as L,ac as I,bc as p,cc as d,dc as c,ec as x,f as D,ic as A,jc as N,nb as s,nc as q,oa as U,r as B,s as C,sa as y,uc as l,vc as F,wc as E,yd as m,zd as J}from"./chunk-4BRW6LCZ.js";function an(t,r){if(t&1&&(d(0,"p",3),b(1),c()),t&2){let n=r.$implicit,o=l(2).$index,e=l(2);_("current",n===e.countArray[o]),s(),Z(" ",n," ")}}function rn(t,r){if(t&1&&P(0,an,2,3,"p",2,M),t&2){let n=l(3);I(n.countSingleArray)}}function ln(t,r){if(t&1&&(d(0,"span",1),f(1,rn,2,0),c()),t&2){let n=r.$index,o=l(2);S("transform","translateY("+-o.countArray[n]*100+"%)"),p("nzNoAnimation",o.noAnimation),s(),g(!o.nzDot&&o.countArray[n]!==void 0?1:-1)}}function sn(t,r){if(t&1&&P(0,ln,2,4,"span",0,M),t&2){let n=l();I(n.maxNumberArray)}}function zn(t,r){if(t&1&&b(0),t&2){let n=l();Z(" ",n.nzOverflowCount,"+ ")}}var X=["*"];function un(t,r){if(t&1&&(A(0),b(1),N()),t&2){let n=l(2);s(),k(n.nzText)}}function pn(t,r){if(t&1&&(x(0,"span",1),d(1,"span",2),w(2,un,2,1,"ng-container",0),c()),t&2){let n=l();j(n.mergedStyle),T((n.nzStatus||n.presetColor)&&"ant-badge-status-"+(n.nzStatus||n.presetColor)),s(2),p("nzStringTemplateOutlet",n.nzText)}}function dn(t,r){if(t&1&&x(0,"nz-badge-sup",3),t&2){let n=l(2);p("isPresetColor",n.nzStatus||n.presetColor)("nzColor",n.nzStatus||n.presetColor||n.nzColor)("nzOffset",n.nzOffset)("nzSize",n.nzSize)("nzTitle",n.nzTitle)("nzStyle",n.mergedStyle)("nzDot",n.nzDot)("nzCount",n.nzCount)("nzOverflowCount",n.nzOverflowCount)("disableAnimation",!!(n.nzStandalone||n.nzStatus||n.presetColor||n.noAnimation!=null&&n.noAnimation.nzNoAnimation))("noAnimation",!!(n.noAnimation!=null&&n.noAnimation.nzNoAnimation))}}function cn(t,r){if(t&1&&(A(0),f(1,dn,1,11,"nz-badge-sup",3),N()),t&2){let n=l();s(),g(n.showSup?1:-1)}}function mn(t,r){if(t&1&&(A(0),d(1,"span",3),b(2),c(),N()),t&2){let n=l();s(2),k(n.nzText)}}var Cn=(()=>{class t{nzOffset;nzTitle;nzStyle=null;nzDot=!1;nzOverflowCount=99;disableAnimation=!1;nzCount;noAnimation=!1;nzSize="default";isPresetColor=!1;nzColor;maxNumberArray=[];countArray=[];count=0;countSingleArray=[0,1,2,3,4,5,6,7,8,9];generateMaxNumberArray(){this.maxNumberArray=this.nzOverflowCount.toString().split("").map((n,o)=>`${n}-${o}`)}ngOnInit(){this.generateMaxNumberArray()}ngOnChanges(n){let{nzOverflowCount:o,nzCount:e}=n;e&&typeof e.currentValue=="number"&&(this.count=Math.max(0,e.currentValue),this.countArray=this.count.toString().split("").map(h=>+h)),o&&this.generateMaxNumberArray()}static \u0275fac=function(o){return new(o||t)};static \u0275cmp=O({type:t,selectors:[["nz-badge-sup"]],hostAttrs:[1,"ant-scroll-number"],hostVars:19,hostBindings:function(o,e){o&2&&(q("@.disabled",e.disableAnimation)("@zoomBadgeMotion",void 0),Y("title",e.nzTitle===null?"":e.nzTitle||e.nzCount),j(e.nzStyle),T(e.isPresetColor?"ant-badge-status-"+e.nzColor:""),S("right",e.nzOffset&&e.nzOffset[0]?-e.nzOffset[0]:null,"px")("margin-top",e.nzOffset&&e.nzOffset[1]?e.nzOffset[1]:null,"px"),_("ant-badge-count",!e.nzDot)("ant-badge-count-sm",e.nzSize==="small")("ant-badge-dot",e.nzDot)("ant-badge-multiple-words",e.countArray.length>=2))},inputs:{nzOffset:"nzOffset",nzTitle:"nzTitle",nzStyle:"nzStyle",nzDot:"nzDot",nzOverflowCount:[2,"nzOverflowCount","nzOverflowCount",J],disableAnimation:"disableAnimation",nzCount:"nzCount",noAnimation:"noAnimation",nzSize:"nzSize",isPresetColor:[2,"isPresetColor","isPresetColor",m],nzColor:"nzColor"},exportAs:["nzBadgeSup"],features:[v],decls:2,vars:1,consts:[[1,"ant-scroll-number-only",3,"nzNoAnimation","transform"],[1,"ant-scroll-number-only",3,"nzNoAnimation"],[1,"ant-scroll-number-only-unit",3,"current"],[1,"ant-scroll-number-only-unit"]],template:function(o,e){o&1&&f(0,sn,2,0)(1,zn,1,1),o&2&&g(e.count<=e.nzOverflowCount?0:1)},dependencies:[G],encapsulation:2,data:{animation:[H]},changeDetection:0})}return t})(),nn=["pink","red","yellow","orange","cyan","green","blue","purple","geekblue","magenta","volcano","gold","lime"],fn="badge",gn=(()=>{var z;let t,r=[],n=[],o,e=[],h=[];return z=class{nzConfigService=y(Q);dir=y(K).valueSignal;noAnimation=y(G,{host:!0,optional:!0});_nzModuleName=fn;showSup=!1;presetColor=null;nzShowZero=!1;nzShowDot=!0;nzStandalone=!1;nzDot=!1;nzOverflowCount=C(this,r,99);nzColor=(C(this,n),C(this,e,void 0));nzStyle=(C(this,h),null);nzText=null;nzTitle;nzStatus;nzCount;nzOffset;nzSize="default";get mergedStyle(){return L({backgroundColor:!this.presetColor&&this.nzColor},this.nzStyle??{})}ngOnChanges(u){let{nzColor:i,nzShowDot:a,nzDot:tn,nzCount:en,nzShowZero:on}=u;i&&(this.presetColor=this.nzColor&&nn.indexOf(this.nzColor)!==-1?this.nzColor:null),(a||tn||en||on)&&(this.showSup=this.nzShowDot&&this.nzDot||typeof this.nzCount=="number"&&(this.nzCount>0||this.nzShowZero))}},(()=>{let u=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;t=[$()],o=[$()],B(null,null,t,{kind:"field",name:"nzOverflowCount",static:!1,private:!1,access:{has:i=>"nzOverflowCount"in i,get:i=>i.nzOverflowCount,set:(i,a)=>{i.nzOverflowCount=a}},metadata:u},r,n),B(null,null,o,{kind:"field",name:"nzColor",static:!1,private:!1,access:{has:i=>"nzColor"in i,get:i=>i.nzColor,set:(i,a)=>{i.nzColor=a}},metadata:u},e,h),u&&Object.defineProperty(z,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:u})})(),D(z,"\u0275fac",function(i){return new(i||z)}),D(z,"\u0275cmp",O({type:z,selectors:[["nz-badge"]],hostAttrs:[1,"ant-badge"],hostVars:6,hostBindings:function(i,a){i&2&&_("ant-badge-status",a.nzStatus)("ant-badge-not-a-wrapper",!!(a.nzStandalone||(a.nzStatus||a.nzColor)&&!a.showSup&&!a.nzCount))("ant-badge-rtl",a.dir()==="rtl")},inputs:{nzShowZero:[2,"nzShowZero","nzShowZero",m],nzShowDot:[2,"nzShowDot","nzShowDot",m],nzStandalone:[2,"nzStandalone","nzStandalone",m],nzDot:[2,"nzDot","nzDot",m],nzOverflowCount:"nzOverflowCount",nzColor:"nzColor",nzStyle:"nzStyle",nzText:"nzText",nzTitle:"nzTitle",nzStatus:"nzStatus",nzCount:"nzCount",nzOffset:"nzOffset",nzSize:"nzSize"},exportAs:["nzBadge"],features:[v],ngContentSelectors:X,decls:3,vars:2,consts:[[4,"nzStringTemplateOutlet"],[1,"ant-badge-status-dot"],[1,"ant-badge-status-text"],[3,"isPresetColor","nzColor","nzOffset","nzSize","nzTitle","nzStyle","nzDot","nzCount","nzOverflowCount","disableAnimation","noAnimation"]],template:function(i,a){i&1&&(F(),f(0,pn,3,5),E(1),w(2,cn,2,1,"ng-container",0)),i&2&&(g((a.nzStatus||a.nzColor)&&!a.showSup&&!a.nzCount?0:-1),s(2),p("nzStringTemplateOutlet",a.nzCount))},dependencies:[Cn,R,V],encapsulation:2,data:{animation:[H]},changeDetection:0})),z})(),Sn=(()=>{class t{nzColor;nzPlacement="end";nzText=null;presetColor=null;ngOnChanges(n){let{nzColor:o}=n;o&&(this.presetColor=this.nzColor&&nn.indexOf(this.nzColor)!==-1?this.nzColor:null)}static \u0275fac=function(o){return new(o||t)};static \u0275cmp=O({type:t,selectors:[["nz-ribbon"]],hostAttrs:[1,"ant-ribbon-wrapper"],inputs:{nzColor:"nzColor",nzPlacement:"nzPlacement",nzText:"nzText"},exportAs:["nzRibbon"],features:[v],ngContentSelectors:X,decls:4,vars:11,consts:[[1,"ant-ribbon"],[4,"nzStringTemplateOutlet"],[1,"ant-ribbon-corner"],[1,"ant-ribbon-text"]],template:function(o,e){o&1&&(F(),E(0),d(1,"div",0),w(2,mn,3,1,"ng-container",1),x(3,"div",2),c()),o&2&&(s(),T(e.presetColor&&"ant-ribbon-color-"+e.presetColor),S("background-color",!e.presetColor&&e.nzColor),_("ant-ribbon-placement-end",e.nzPlacement==="end")("ant-ribbon-placement-start",e.nzPlacement==="start"),s(),p("nzStringTemplateOutlet",e.nzText),s(),S("color",!e.presetColor&&e.nzColor))},dependencies:[R,V],encapsulation:2,changeDetection:0})}return t})(),Pn=(()=>{class t{static \u0275fac=function(o){return new(o||t)};static \u0275mod=W({type:t});static \u0275inj=U({imports:[gn,Sn]})}return t})();export{gn as a,Pn as b};
1
+ import{Ka as V,La as R,a as K,ta as Q,tb as H,ub as G,va as $}from"./chunk-2EB7UV3S.js";import{$b as M,Ad as J,Gb as O,Gc as S,Hb as W,Hc as _,Ic as j,Jc as T,Kc as b,Lc as k,Mb as w,Mc as Z,Oa as v,Vb as Y,Xb as f,Zb as g,a as L,ac as P,bc as I,cc as p,dc as d,ec as c,f as D,fc as x,jc as A,kc as N,oa as U,ob as s,oc as q,r as B,s as C,sa as y,vc as l,wc as F,xc as E,zd as m}from"./chunk-YGWA6NUS.js";function an(t,r){if(t&1&&(d(0,"p",3),b(1),c()),t&2){let n=r.$implicit,o=l(2).$index,e=l(2);_("current",n===e.countArray[o]),s(),Z(" ",n," ")}}function rn(t,r){if(t&1&&P(0,an,2,3,"p",2,M),t&2){let n=l(3);I(n.countSingleArray)}}function ln(t,r){if(t&1&&(d(0,"span",1),f(1,rn,2,0),c()),t&2){let n=r.$index,o=l(2);S("transform","translateY("+-o.countArray[n]*100+"%)"),p("nzNoAnimation",o.noAnimation),s(),g(!o.nzDot&&o.countArray[n]!==void 0?1:-1)}}function sn(t,r){if(t&1&&P(0,ln,2,4,"span",0,M),t&2){let n=l();I(n.maxNumberArray)}}function zn(t,r){if(t&1&&b(0),t&2){let n=l();Z(" ",n.nzOverflowCount,"+ ")}}var X=["*"];function un(t,r){if(t&1&&(A(0),b(1),N()),t&2){let n=l(2);s(),k(n.nzText)}}function pn(t,r){if(t&1&&(x(0,"span",1),d(1,"span",2),w(2,un,2,1,"ng-container",0),c()),t&2){let n=l();j(n.mergedStyle),T((n.nzStatus||n.presetColor)&&"ant-badge-status-"+(n.nzStatus||n.presetColor)),s(2),p("nzStringTemplateOutlet",n.nzText)}}function dn(t,r){if(t&1&&x(0,"nz-badge-sup",3),t&2){let n=l(2);p("isPresetColor",n.nzStatus||n.presetColor)("nzColor",n.nzStatus||n.presetColor||n.nzColor)("nzOffset",n.nzOffset)("nzSize",n.nzSize)("nzTitle",n.nzTitle)("nzStyle",n.mergedStyle)("nzDot",n.nzDot)("nzCount",n.nzCount)("nzOverflowCount",n.nzOverflowCount)("disableAnimation",!!(n.nzStandalone||n.nzStatus||n.presetColor||n.noAnimation!=null&&n.noAnimation.nzNoAnimation))("noAnimation",!!(n.noAnimation!=null&&n.noAnimation.nzNoAnimation))}}function cn(t,r){if(t&1&&(A(0),f(1,dn,1,11,"nz-badge-sup",3),N()),t&2){let n=l();s(),g(n.showSup?1:-1)}}function mn(t,r){if(t&1&&(A(0),d(1,"span",3),b(2),c(),N()),t&2){let n=l();s(2),k(n.nzText)}}var Cn=(()=>{class t{nzOffset;nzTitle;nzStyle=null;nzDot=!1;nzOverflowCount=99;disableAnimation=!1;nzCount;noAnimation=!1;nzSize="default";isPresetColor=!1;nzColor;maxNumberArray=[];countArray=[];count=0;countSingleArray=[0,1,2,3,4,5,6,7,8,9];generateMaxNumberArray(){this.maxNumberArray=this.nzOverflowCount.toString().split("").map((n,o)=>`${n}-${o}`)}ngOnInit(){this.generateMaxNumberArray()}ngOnChanges(n){let{nzOverflowCount:o,nzCount:e}=n;e&&typeof e.currentValue=="number"&&(this.count=Math.max(0,e.currentValue),this.countArray=this.count.toString().split("").map(h=>+h)),o&&this.generateMaxNumberArray()}static \u0275fac=function(o){return new(o||t)};static \u0275cmp=O({type:t,selectors:[["nz-badge-sup"]],hostAttrs:[1,"ant-scroll-number"],hostVars:19,hostBindings:function(o,e){o&2&&(q("@.disabled",e.disableAnimation)("@zoomBadgeMotion",void 0),Y("title",e.nzTitle===null?"":e.nzTitle||e.nzCount),j(e.nzStyle),T(e.isPresetColor?"ant-badge-status-"+e.nzColor:""),S("right",e.nzOffset&&e.nzOffset[0]?-e.nzOffset[0]:null,"px")("margin-top",e.nzOffset&&e.nzOffset[1]?e.nzOffset[1]:null,"px"),_("ant-badge-count",!e.nzDot)("ant-badge-count-sm",e.nzSize==="small")("ant-badge-dot",e.nzDot)("ant-badge-multiple-words",e.countArray.length>=2))},inputs:{nzOffset:"nzOffset",nzTitle:"nzTitle",nzStyle:"nzStyle",nzDot:"nzDot",nzOverflowCount:[2,"nzOverflowCount","nzOverflowCount",J],disableAnimation:"disableAnimation",nzCount:"nzCount",noAnimation:"noAnimation",nzSize:"nzSize",isPresetColor:[2,"isPresetColor","isPresetColor",m],nzColor:"nzColor"},exportAs:["nzBadgeSup"],features:[v],decls:2,vars:1,consts:[[1,"ant-scroll-number-only",3,"nzNoAnimation","transform"],[1,"ant-scroll-number-only",3,"nzNoAnimation"],[1,"ant-scroll-number-only-unit",3,"current"],[1,"ant-scroll-number-only-unit"]],template:function(o,e){o&1&&f(0,sn,2,0)(1,zn,1,1),o&2&&g(e.count<=e.nzOverflowCount?0:1)},dependencies:[G],encapsulation:2,data:{animation:[H]},changeDetection:0})}return t})(),nn=["pink","red","yellow","orange","cyan","green","blue","purple","geekblue","magenta","volcano","gold","lime"],fn="badge",gn=(()=>{var z;let t,r=[],n=[],o,e=[],h=[];return z=class{nzConfigService=y(Q);dir=y(K).valueSignal;noAnimation=y(G,{host:!0,optional:!0});_nzModuleName=fn;showSup=!1;presetColor=null;nzShowZero=!1;nzShowDot=!0;nzStandalone=!1;nzDot=!1;nzOverflowCount=C(this,r,99);nzColor=(C(this,n),C(this,e,void 0));nzStyle=(C(this,h),null);nzText=null;nzTitle;nzStatus;nzCount;nzOffset;nzSize="default";get mergedStyle(){return L({backgroundColor:!this.presetColor&&this.nzColor},this.nzStyle??{})}ngOnChanges(u){let{nzColor:i,nzShowDot:a,nzDot:tn,nzCount:en,nzShowZero:on}=u;i&&(this.presetColor=this.nzColor&&nn.indexOf(this.nzColor)!==-1?this.nzColor:null),(a||tn||en||on)&&(this.showSup=this.nzShowDot&&this.nzDot||typeof this.nzCount=="number"&&(this.nzCount>0||this.nzShowZero))}},(()=>{let u=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;t=[$()],o=[$()],B(null,null,t,{kind:"field",name:"nzOverflowCount",static:!1,private:!1,access:{has:i=>"nzOverflowCount"in i,get:i=>i.nzOverflowCount,set:(i,a)=>{i.nzOverflowCount=a}},metadata:u},r,n),B(null,null,o,{kind:"field",name:"nzColor",static:!1,private:!1,access:{has:i=>"nzColor"in i,get:i=>i.nzColor,set:(i,a)=>{i.nzColor=a}},metadata:u},e,h),u&&Object.defineProperty(z,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:u})})(),D(z,"\u0275fac",function(i){return new(i||z)}),D(z,"\u0275cmp",O({type:z,selectors:[["nz-badge"]],hostAttrs:[1,"ant-badge"],hostVars:6,hostBindings:function(i,a){i&2&&_("ant-badge-status",a.nzStatus)("ant-badge-not-a-wrapper",!!(a.nzStandalone||(a.nzStatus||a.nzColor)&&!a.showSup&&!a.nzCount))("ant-badge-rtl",a.dir()==="rtl")},inputs:{nzShowZero:[2,"nzShowZero","nzShowZero",m],nzShowDot:[2,"nzShowDot","nzShowDot",m],nzStandalone:[2,"nzStandalone","nzStandalone",m],nzDot:[2,"nzDot","nzDot",m],nzOverflowCount:"nzOverflowCount",nzColor:"nzColor",nzStyle:"nzStyle",nzText:"nzText",nzTitle:"nzTitle",nzStatus:"nzStatus",nzCount:"nzCount",nzOffset:"nzOffset",nzSize:"nzSize"},exportAs:["nzBadge"],features:[v],ngContentSelectors:X,decls:3,vars:2,consts:[[4,"nzStringTemplateOutlet"],[1,"ant-badge-status-dot"],[1,"ant-badge-status-text"],[3,"isPresetColor","nzColor","nzOffset","nzSize","nzTitle","nzStyle","nzDot","nzCount","nzOverflowCount","disableAnimation","noAnimation"]],template:function(i,a){i&1&&(F(),f(0,pn,3,5),E(1),w(2,cn,2,1,"ng-container",0)),i&2&&(g((a.nzStatus||a.nzColor)&&!a.showSup&&!a.nzCount?0:-1),s(2),p("nzStringTemplateOutlet",a.nzCount))},dependencies:[Cn,R,V],encapsulation:2,data:{animation:[H]},changeDetection:0})),z})(),Sn=(()=>{class t{nzColor;nzPlacement="end";nzText=null;presetColor=null;ngOnChanges(n){let{nzColor:o}=n;o&&(this.presetColor=this.nzColor&&nn.indexOf(this.nzColor)!==-1?this.nzColor:null)}static \u0275fac=function(o){return new(o||t)};static \u0275cmp=O({type:t,selectors:[["nz-ribbon"]],hostAttrs:[1,"ant-ribbon-wrapper"],inputs:{nzColor:"nzColor",nzPlacement:"nzPlacement",nzText:"nzText"},exportAs:["nzRibbon"],features:[v],ngContentSelectors:X,decls:4,vars:11,consts:[[1,"ant-ribbon"],[4,"nzStringTemplateOutlet"],[1,"ant-ribbon-corner"],[1,"ant-ribbon-text"]],template:function(o,e){o&1&&(F(),E(0),d(1,"div",0),w(2,mn,3,1,"ng-container",1),x(3,"div",2),c()),o&2&&(s(),T(e.presetColor&&"ant-ribbon-color-"+e.presetColor),S("background-color",!e.presetColor&&e.nzColor),_("ant-ribbon-placement-end",e.nzPlacement==="end")("ant-ribbon-placement-start",e.nzPlacement==="start"),s(),p("nzStringTemplateOutlet",e.nzText),s(),S("color",!e.presetColor&&e.nzColor))},dependencies:[R,V],encapsulation:2,changeDetection:0})}return t})(),Pn=(()=>{class t{static \u0275fac=function(o){return new(o||t)};static \u0275mod=W({type:t});static \u0275inj=U({imports:[gn,Sn]})}return t})();export{gn as a,Pn as b};