@bkm016/basalt 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/{chunk-n981vx1t.js → chunk-0d51ggzj.js} +6 -6
- package/chunk-12trygzx.js +25 -0
- package/{chunk-s6dejhfj.js → chunk-26cz8et8.js} +1 -1
- package/{chunk-zxkq9m8e.js → chunk-2ek3wq4b.js} +2 -2
- package/chunk-2gcp3xdc.js +2 -0
- package/{chunk-x4874m8e.js → chunk-2ks2tnac.js} +2 -2
- package/{chunk-0javrjcm.js → chunk-2nrkqq45.js} +22 -22
- package/chunk-320174qe.js +2 -0
- package/{chunk-ey15ye2h.js → chunk-3hg7yn1t.js} +1 -1
- package/{chunk-benrzwea.js → chunk-3j2kkgsc.js} +1 -1
- package/{chunk-8x21n7y9.js → chunk-47vf66t6.js} +1 -1
- package/chunk-4n49ptbz.js +3 -0
- package/{chunk-7hr6zw2m.js → chunk-5gxj9560.js} +1 -1
- package/{chunk-g0t9c3gv.js → chunk-6vnjg5x9.js} +1 -1
- package/{chunk-dnx91jrd.js → chunk-7kjr9gdx.js} +2 -2
- package/{chunk-y8dkfpmj.js → chunk-7p6e2f5s.js} +3 -3
- package/{chunk-053vb71h.js → chunk-86xhmz7k.js} +1 -1
- package/{chunk-ebpyvs1d.js → chunk-91r5nvth.js} +2 -2
- package/{chunk-c7rcw9fb.js → chunk-adys4qq4.js} +4 -4
- package/{chunk-npez1492.js → chunk-ckjw3b61.js} +2 -2
- package/{chunk-f156y565.js → chunk-d37gemt2.js} +3 -3
- package/{chunk-j7yvh0ae.js → chunk-dcwdmpw2.js} +1 -1
- package/chunk-dvb5nd2x.js +2 -0
- package/{chunk-063vbmtp.js → chunk-e6c2mzxc.js} +2 -2
- package/{chunk-s7skpgm2.js → chunk-ef9yhnk3.js} +1 -1
- package/{chunk-ecf896fz.js → chunk-fpxc6qjr.js} +2 -2
- package/chunk-frt9k18g.js +480 -0
- package/{chunk-bdy4jksd.js → chunk-fzcmzbsq.js} +1 -1
- package/{chunk-q9dd6fhj.js → chunk-g3ed130w.js} +3 -3
- package/{chunk-d48bfd2e.js → chunk-h1kb8b49.js} +2 -2
- package/{chunk-arcqjt91.js → chunk-hd3x1w46.js} +1 -1
- package/{chunk-dpz4hwqb.js → chunk-j781n7ca.js} +2 -2
- package/{chunk-z02sj1je.js → chunk-jp5afrwm.js} +2 -2
- package/{chunk-r8vvcp6c.js → chunk-jyv9cae6.js} +1 -1
- package/{chunk-whj87h4r.js → chunk-k3q5jqjj.js} +3 -3
- package/{chunk-75434aay.js → chunk-k3rmjrf1.js} +1 -1
- package/{chunk-peja51xv.js → chunk-kgkrccr1.js} +2 -2
- package/{chunk-pg5nkf1y.js → chunk-kpvaqb7c.js} +2 -2
- package/{chunk-sjjtxpg2.js → chunk-ky55taar.js} +330 -288
- package/{chunk-10p3mb40.js → chunk-mr807v9n.js} +1 -1
- package/chunk-n015c8nx.js +2 -0
- package/chunk-ndt6rjt9.js +2 -0
- package/{chunk-gv7wqkey.js → chunk-nmtk9xra.js} +2 -2
- package/{chunk-d6p2hgxh.js → chunk-pehyqj8k.js} +1 -1
- package/{chunk-ca982n62.js → chunk-pkpj7s2k.js} +1 -1
- package/{chunk-fx7f4m3c.js → chunk-pn413hjw.js} +1 -1
- package/{chunk-6ptv4g5e.js → chunk-ppxv5q7y.js} +3 -3
- package/{chunk-8wj32837.js → chunk-qmdpgbg3.js} +1 -1
- package/{chunk-8wv5t0w6.js → chunk-rnt1ckk9.js} +6 -6
- package/{chunk-prgm07j4.js → chunk-t40fag3z.js} +2 -2
- package/{chunk-w67dvqtb.js → chunk-t66jqz12.js} +2 -2
- package/{chunk-39vwrg8n.js → chunk-v2srrqcv.js} +2 -2
- package/{chunk-n85qs7cs.js → chunk-x496kg3v.js} +1 -1
- package/{chunk-6kdgk70p.js → chunk-xjw78yey.js} +4 -4
- package/chunk-xy2bxwq8.js +2 -0
- package/{chunk-y69ewdn2.js → chunk-ypqjfv3a.js} +2 -2
- package/{chunk-f544p9rh.js → chunk-yyy2yp6f.js} +10 -10
- package/{chunk-8gw5bvh3.js → chunk-yzevjkms.js} +5 -5
- package/chunk-z3ch1wg6.js +16 -0
- package/chunk-zdyd8hbn.js +2 -0
- package/compiled.js +6 -6
- package/package.json +1 -1
- package/ui-test-worker.js +19 -19
- package/web/{chunk-kjacapzd.js → chunk-0j9a7811.js} +6 -6
- package/web/chunk-0jfda4jw.js +2 -0
- package/web/{chunk-z1geewdf.js → chunk-0zwc2rvh.js} +2 -2
- package/web/{chunk-ht4mx2dt.js → chunk-1gx0zpmp.js} +7 -7
- package/web/{chunk-q3jevm51.js → chunk-1s8zg6fb.js} +51 -51
- package/web/chunk-2axwda8c.js +89 -0
- package/web/chunk-2p3fkhy8.js +1 -0
- package/web/{chunk-tz4twwmw.js → chunk-33w36n91.js} +2 -2
- package/web/{chunk-1s53190z.js → chunk-3q0v8w45.js} +81 -81
- package/web/chunk-3sz5qcwj.js +1 -0
- package/web/chunk-433c80pc.js +1 -0
- package/web/chunk-48cnmhvd.js +106 -0
- package/web/{chunk-da7m1kva.js → chunk-4anjs6yp.js} +2 -2
- package/web/chunk-5r37rwq1.js +4 -0
- package/web/{chunk-pjz30xcp.js → chunk-6e38yf3a.js} +23 -23
- package/web/{chunk-xckxtfp8.js → chunk-7a4xk6j9.js} +72 -72
- package/web/chunk-7f1t7z72.js +2 -0
- package/web/chunk-7qq1ypvj.js +1 -0
- package/web/{chunk-h6k1x096.js → chunk-7tkgbbf9.js} +2 -2
- package/web/chunk-7x35g67d.js +78 -0
- package/web/{chunk-xbpc6x9m.js → chunk-823b7866.js} +15 -15
- package/web/chunk-85gdsmt4.js +1 -0
- package/web/{chunk-gyp6v7jd.js → chunk-8773nwdc.js} +2 -2
- package/web/{chunk-2cem4sv7.js → chunk-8dp7h6w8.js} +24 -24
- package/web/{chunk-y99ed8rd.js → chunk-8nv7q5ac.js} +9 -9
- package/web/chunk-8pzg8qw4.js +1 -0
- package/web/chunk-8wg44w91.js +2 -0
- package/web/chunk-9p5dfvav.js +1 -0
- package/web/chunk-9q9w9pay.js +1 -0
- package/web/chunk-a3teqvz2.js +39 -0
- package/web/chunk-bd8ftfxn.js +3 -0
- package/web/chunk-c03bt2pz.js +1 -0
- package/web/chunk-c1ha2xg6.js +8 -0
- package/web/chunk-cez1k71m.js +1 -0
- package/web/chunk-cgng31df.js +1 -0
- package/web/chunk-cn0tmwjs.js +2 -0
- package/web/{chunk-t6sq85s6.js → chunk-cn1xpg3q.js} +2 -2
- package/web/chunk-cvd4f51j.js +1 -0
- package/web/chunk-cybvxssy.js +1 -0
- package/web/{chunk-geh05ghh.js → chunk-cyjnert7.js} +19 -19
- package/web/{chunk-twdy2f67.js → chunk-d0m0h0eb.js} +1 -1
- package/web/{chunk-sn3tkwme.js → chunk-dgwkqcz6.js} +37 -37
- package/web/{chunk-nfvqjzz5.js → chunk-dtg5yhhs.js} +1 -1
- package/web/chunk-dynajx8x.js +2 -0
- package/web/{chunk-svh4n157.js → chunk-et8q775x.js} +4 -4
- package/web/chunk-f3vv7n52.js +1 -0
- package/web/{chunk-tmndcktk.js → chunk-f93pe4kb.js} +15 -15
- package/web/{chunk-5nda24gv.js → chunk-fe31sv6t.js} +1 -1
- package/web/chunk-fpa81dv7.js +62 -0
- package/web/{chunk-4q7wf0wd.js → chunk-fx4mackk.js} +9 -9
- package/web/chunk-g17n6asp.js +1 -0
- package/web/chunk-g9dzaw9e.js +30 -0
- package/web/chunk-gcwhx3av.js +1139 -0
- package/web/chunk-gf8vm6b5.js +1 -0
- package/web/chunk-gnmeyy4h.js +1 -0
- package/web/chunk-h5cfg3vv.js +2 -0
- package/web/{chunk-femhej5w.js → chunk-hbkasy6c.js} +46 -46
- package/web/chunk-hn7mhsbg.js +1 -0
- package/web/{chunk-tfn0rqg9.js → chunk-hstbgb83.js} +26 -26
- package/web/chunk-jjjtv2r1.js +2 -0
- package/web/chunk-jzte2phh.js +2 -0
- package/web/chunk-k8h8zx6r.js +24 -0
- package/web/chunk-m3ajw575.js +1 -0
- package/web/chunk-m5y2d4zv.js +1 -0
- package/web/chunk-mbwwj216.js +1 -0
- package/web/chunk-mf6xng5b.js +2 -0
- package/web/chunk-nky3bqfg.js +1 -0
- package/web/chunk-np33kmn4.js +1 -0
- package/web/chunk-nvk8mazs.js +1 -0
- package/web/chunk-nyw5ewgv.js +1 -0
- package/web/{chunk-dg3p8db5.js → chunk-p0cjvjdx.js} +1 -1
- package/web/chunk-p56dcqpr.js +1 -0
- package/web/chunk-pdn4r8x4.js +1 -0
- package/web/chunk-q1xxs319.js +41 -0
- package/web/chunk-qpt34d8d.js +1 -0
- package/web/{chunk-4fm55fgb.js → chunk-qq2v8h6d.js} +7 -7
- package/web/chunk-qskt3tqa.js +1 -0
- package/web/chunk-qt3n897m.js +4 -0
- package/web/chunk-r1rt48h9.js +1 -0
- package/web/{chunk-4sve9xrj.js → chunk-r4ffr96e.js} +1 -1
- package/web/chunk-r7tgd2fm.js +7 -0
- package/web/{chunk-gksf7cek.js → chunk-rbdvc8x7.js} +7 -7
- package/web/{chunk-q97hn4j5.js → chunk-rkjkynm3.js} +33 -33
- package/web/chunk-rznszqmy.js +1 -0
- package/web/chunk-s1pefd34.js +1 -0
- package/web/chunk-s38s9ff9.js +370 -0
- package/web/{chunk-n754s8xd.js → chunk-s7e93552.js} +8 -8
- package/web/chunk-sc29azev.js +1 -0
- package/web/{chunk-czjk218p.js → chunk-sda7cyrt.js} +52 -52
- package/web/chunk-svh2gkx8.js +2 -0
- package/web/chunk-t4jc4nac.js +1 -0
- package/web/chunk-t7g366a5.js +24 -0
- package/web/chunk-tj1fn8v2.js +1 -0
- package/web/{chunk-sy7e4dmq.js → chunk-tkp72r9b.js} +1 -1
- package/web/{chunk-5wbnjjhg.js → chunk-v14s4vgc.js} +1 -1
- package/web/chunk-v94v68xg.js +36 -0
- package/web/{chunk-0whceqes.js → chunk-vvvd3grf.js} +2 -2
- package/web/chunk-w37n09px.js +21 -0
- package/web/chunk-wcphswcx.js +2 -0
- package/web/{chunk-aangfjqc.js → chunk-wj3ymejj.js} +38 -38
- package/web/chunk-wwcnvyjh.css +1 -0
- package/web/{chunk-e8yj05t1.js → chunk-xabcx3ry.js} +6 -6
- package/web/chunk-xb9m0092.js +1 -0
- package/web/chunk-xfd3b01q.js +1 -0
- package/web/{chunk-4vjnrz87.js → chunk-xqyazzm7.js} +17 -17
- package/web/{chunk-bdydzbqk.js → chunk-xsz1dfm2.js} +23 -23
- package/web/chunk-z0zrp8n8.js +1 -0
- package/web/index.html +1 -1
- package/worker.js +1 -1
- package/chunk-654cny9a.js +0 -480
- package/chunk-8saewt61.js +0 -3
- package/chunk-a0c989ky.js +0 -2
- package/chunk-a5apjjcn.js +0 -16
- package/chunk-a81p46j7.js +0 -2
- package/chunk-agsfy9w7.js +0 -2
- package/chunk-d20p02ny.js +0 -2
- package/chunk-ejsneb6f.js +0 -2
- package/chunk-fmq3zwzk.js +0 -2
- package/chunk-rfb85nj7.js +0 -2
- package/chunk-rfdt992v.js +0 -25
- package/web/chunk-079091ar.js +0 -39
- package/web/chunk-083r4f80.js +0 -1
- package/web/chunk-0cng7r2x.js +0 -2
- package/web/chunk-0k0ande6.js +0 -1
- package/web/chunk-14deqqhr.js +0 -2
- package/web/chunk-2b63adsj.js +0 -89
- package/web/chunk-3baypnwn.js +0 -4
- package/web/chunk-4067nwjp.js +0 -19
- package/web/chunk-59678wmg.js +0 -1
- package/web/chunk-5k8sv4f5.js +0 -1
- package/web/chunk-5vjhvw1m.js +0 -2
- package/web/chunk-6ft5pz3c.js +0 -1
- package/web/chunk-7c8rwqtx.js +0 -1
- package/web/chunk-7qzz025k.js +0 -1
- package/web/chunk-7xbaqqd7.css +0 -1
- package/web/chunk-80eyv2mk.js +0 -1
- package/web/chunk-89paytbk.js +0 -4
- package/web/chunk-8ceej2g7.js +0 -1
- package/web/chunk-8nyhy122.js +0 -1
- package/web/chunk-989jq2h8.js +0 -2
- package/web/chunk-9w5tf22s.js +0 -1
- package/web/chunk-c3nn0vvc.js +0 -1
- package/web/chunk-cpwtt6ny.js +0 -1
- package/web/chunk-dsw5t58p.js +0 -1
- package/web/chunk-dv72fat3.js +0 -1
- package/web/chunk-dvvs1jjq.js +0 -3
- package/web/chunk-e131rg6p.js +0 -2
- package/web/chunk-ekw54h1q.js +0 -1
- package/web/chunk-hwsvhst3.js +0 -1
- package/web/chunk-k02b36g1.js +0 -62
- package/web/chunk-kkfrs7d1.js +0 -41
- package/web/chunk-kkyn8yhj.js +0 -106
- package/web/chunk-mh4rx5cf.js +0 -1
- package/web/chunk-n448vaba.js +0 -1
- package/web/chunk-n8j88qxy.js +0 -1
- package/web/chunk-nmpbsvwb.js +0 -2
- package/web/chunk-nws1s56b.js +0 -1
- package/web/chunk-p7126wwy.js +0 -7
- package/web/chunk-phnqnhj9.js +0 -1
- package/web/chunk-qg31p6cn.js +0 -1
- package/web/chunk-qhm3cfq9.js +0 -1
- package/web/chunk-qsd595b9.js +0 -1
- package/web/chunk-r7frwjqx.js +0 -2
- package/web/chunk-rddft5ce.js +0 -1139
- package/web/chunk-rgbdf2m9.js +0 -370
- package/web/chunk-rsbkbg6x.js +0 -78
- package/web/chunk-s2bs5vxh.js +0 -2
- package/web/chunk-sgwccs54.js +0 -1
- package/web/chunk-sjh8gtm9.js +0 -30
- package/web/chunk-t3658ehb.js +0 -2
- package/web/chunk-t81p4wqc.js +0 -24
- package/web/chunk-tewmsd7t.js +0 -1
- package/web/chunk-tf57s7ry.js +0 -1
- package/web/chunk-tqr80b5w.js +0 -2
- package/web/chunk-v282r683.js +0 -24
- package/web/chunk-v4vjjtn7.js +0 -1
- package/web/chunk-vbwdwcdp.js +0 -1
- package/web/chunk-vjngfh0q.js +0 -1
- package/web/chunk-vnt34mkb.js +0 -1
- package/web/chunk-wbgkwxrc.js +0 -1
- package/web/chunk-wjbk50hn.js +0 -2
- package/web/chunk-wjy848e2.js +0 -1
- package/web/chunk-wqsczy57.js +0 -36
- package/web/chunk-wvfmmw1v.js +0 -8
- package/web/chunk-x1jm4zsg.js +0 -1
- package/web/chunk-xmsb2g71.js +0 -1
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import{
|
|
2
|
-
`+
|
|
3
|
-
Expecting `+
|
|
4
|
-
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:
|
|
5
|
-
`+r+"^"},"showPosition"),test_match:
|
|
6
|
-
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:
|
|
7
|
-
`+
|
|
1
|
+
import{t,a,X,u,d,D,x,so,O,l,ye,ve}from"./chunk-3q0v8w45.js";import{ge}from"./chunk-cn0tmwjs.js";import{ue}from"./chunk-svh2gkx8.js";var Ee=new Uint8Array(16);function ee(){return crypto.getRandomValues(Ee)}var S=[];for(let e=0;e<256;++e)S.push((e+256).toString(16).slice(1));function he(e,i=0){return(S[e[i+0]]+S[e[i+1]]+S[e[i+2]]+S[e[i+3]]+"-"+S[e[i+4]]+S[e[i+5]]+"-"+S[e[i+6]]+S[e[i+7]]+"-"+S[e[i+8]]+S[e[i+9]]+"-"+S[e[i+10]]+S[e[i+11]]+S[e[i+12]]+S[e[i+13]]+S[e[i+14]]+S[e[i+15]]).toLowerCase()}function _e(e,i,p){if(!i&&!e&&crypto.randomUUID)return crypto.randomUUID();return Se(e,i,p)}function Se(e,i,p){e=e||{};let h=e.random??e.rng?.()??ee();if(h.length<16)throw Error("Random bytes length must be >= 16");if(h[6]=h[6]&15|64,h[8]=h[8]&63|128,i){if(p=p||0,p<0||p+16>i.length)throw RangeError(`UUID byte range ${p}:${p+15} is out of buffer bounds`);for(let n=0;n<16;++n)i[p+n]=h[n];return i}return he(h)}var te=_e;var ne=function(){var e=t(function(w,o,r,c){for(r=r||{},c=w.length;c--;r[w[c]]=o);return r},"o"),i=[1,4],p=[1,13],h=[1,12],n=[1,15],f=[1,16],k=[1,20],E=[1,19],N=[6,7,8],U=[1,26],M=[1,24],P=[1,25],m=[6,7,11],V=[1,6,13,15,16,19,22],ie=[1,33],re=[1,34],F=[1,6,7,11,13,15,16,19,22],Y={trace:t(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:t(function(o,r,c,g,b,s,G){var y=s.length-1;switch(b){case 6:case 7:return g;case 8:g.getLogger().trace("Stop NL ");break;case 9:g.getLogger().trace("Stop EOF ");break;case 11:g.getLogger().trace("Stop NL2 ");break;case 12:g.getLogger().trace("Stop EOF2 ");break;case 15:g.getLogger().info("Node: ",s[y].id),g.addNode(s[y-1].length,s[y].id,s[y].descr,s[y].type);break;case 16:g.getLogger().trace("Icon: ",s[y]),g.decorateNode({icon:s[y]});break;case 17:case 21:g.decorateNode({class:s[y]});break;case 18:g.getLogger().trace("SPACELIST");break;case 19:g.getLogger().trace("Node: ",s[y].id),g.addNode(0,s[y].id,s[y].descr,s[y].type);break;case 20:g.decorateNode({icon:s[y]});break;case 25:g.getLogger().trace("node found ..",s[y-2]),this.$={id:s[y-1],descr:s[y-1],type:g.getType(s[y-2],s[y])};break;case 26:this.$={id:s[y],descr:s[y],type:g.nodeType.DEFAULT};break;case 27:g.getLogger().trace("node found ..",s[y-3]),this.$={id:s[y-3],descr:s[y-1],type:g.getType(s[y-2],s[y])};break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:i},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:i},{6:p,7:[1,10],9:9,12:11,13:h,14:14,15:n,16:f,17:17,18:18,19:k,22:E},e(N,[2,3]),{1:[2,2]},e(N,[2,4]),e(N,[2,5]),{1:[2,6],6:p,12:21,13:h,14:14,15:n,16:f,17:17,18:18,19:k,22:E},{6:p,9:22,12:11,13:h,14:14,15:n,16:f,17:17,18:18,19:k,22:E},{6:U,7:M,10:23,11:P},e(m,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:k,22:E}),e(m,[2,18]),e(m,[2,19]),e(m,[2,20]),e(m,[2,21]),e(m,[2,23]),e(m,[2,24]),e(m,[2,26],{19:[1,30]}),{20:[1,31]},{6:U,7:M,10:32,11:P},{1:[2,7],6:p,12:21,13:h,14:14,15:n,16:f,17:17,18:18,19:k,22:E},e(V,[2,14],{7:ie,11:re}),e(F,[2,8]),e(F,[2,9]),e(F,[2,10]),e(m,[2,15]),e(m,[2,16]),e(m,[2,17]),{20:[1,35]},{21:[1,36]},e(V,[2,13],{7:ie,11:re}),e(F,[2,11]),e(F,[2,12]),{21:[1,37]},e(m,[2,25]),e(m,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:t(function(o,r){if(r.recoverable)this.trace(o);else{var c=Error(o);throw c.hash=r,c}},"parseError"),parse:t(function(o){var r=this,c=[0],g=[],b=[null],s=[],G=this.table,y="",H=0,se=0,oe=0,fe=2,ae=1,me=s.slice.call(arguments,1),_=Object.create(this.lexer),R={yy:{}};for(var q in this.yy)if(Object.prototype.hasOwnProperty.call(this.yy,q))R.yy[q]=this.yy[q];if(_.setInput(o,R.yy),R.yy.lexer=_,R.yy.parser=this,typeof _.yylloc>"u")_.yylloc={};var J=_.yylloc;s.push(J);var ke=_.options&&_.options.ranges;if(typeof R.yy.parseError==="function")this.parseError=R.yy.parseError;else this.parseError=Object.getPrototypeOf(this).parseError;function be(T){c.length=c.length-2*T,b.length=b.length-T,s.length=s.length-T}t(be,"popStack");function ce(){var T=g.pop()||_.lex()||ae;if(typeof T!=="number"){if(T instanceof Array)g=T,T=g.pop();T=r.symbols_[T]||T}return T}t(ce,"lex");var L,K,A,v,we,Q,B={},W,I,le,z;while(!0){if(A=c[c.length-1],this.defaultActions[A])v=this.defaultActions[A];else{if(L===null||typeof L>"u")L=ce();v=G[A]&&G[A][L]}if(typeof v>"u"||!v.length||!v[0]){var Z="";z=[];for(W in G[A])if(this.terminals_[W]&&W>fe)z.push("'"+this.terminals_[W]+"'");if(_.showPosition)Z="Parse error on line "+(H+1)+`:
|
|
2
|
+
`+_.showPosition()+`
|
|
3
|
+
Expecting `+z.join(", ")+", got '"+(this.terminals_[L]||L)+"'";else Z="Parse error on line "+(H+1)+": Unexpected "+(L==ae?"end of input":"'"+(this.terminals_[L]||L)+"'");this.parseError(Z,{text:_.match,token:this.terminals_[L]||L,line:_.yylineno,loc:J,expected:z})}if(v[0]instanceof Array&&v.length>1)throw Error("Parse Error: multiple actions possible at state: "+A+", token: "+L);switch(v[0]){case 1:if(c.push(L),b.push(_.yytext),s.push(_.yylloc),c.push(v[1]),L=null,!K){if(se=_.yyleng,y=_.yytext,H=_.yylineno,J=_.yylloc,oe>0)oe--}else L=K,K=null;break;case 2:if(I=this.productions_[v[1]][1],B.$=b[b.length-I],B._$={first_line:s[s.length-(I||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(I||1)].first_column,last_column:s[s.length-1].last_column},ke)B._$.range=[s[s.length-(I||1)].range[0],s[s.length-1].range[1]];if(Q=this.performAction.apply(B,[y,se,H,R.yy,v[1],b,s].concat(me)),typeof Q<"u")return Q;if(I)c=c.slice(0,-1*I*2),b=b.slice(0,-1*I),s=s.slice(0,-1*I);c.push(this.productions_[v[1]][0]),b.push(B.$),s.push(B._$),le=G[c[c.length-2]][c[c.length-1]],c.push(le);break;case 3:return!0}}return!0},"parse")},pe=function(){var w={EOF:1,parseError:t(function(r,c){if(this.yy.parser)this.yy.parser.parseError(r,c);else throw Error(r)},"parseError"),setInput:t(function(o,r){if(this.yy=r||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges)this.yylloc.range=[0,0];return this.offset=0,this},"setInput"),input:t(function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var r=o.match(/(?:\r\n?|\n).*/g);if(r)this.yylineno++,this.yylloc.last_line++;else this.yylloc.last_column++;if(this.options.ranges)this.yylloc.range[1]++;return this._input=this._input.slice(1),o},"input"),unput:t(function(o){var r=o.length,c=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-r),this.offset-=r;var g=this.match.split(/(?:\r\n?|\n)/g);if(this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1)this.yylineno-=c.length-1;var b=this.yylloc.range;if(this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===g.length?this.yylloc.first_column:0)+g[g.length-c.length].length-c[0].length:this.yylloc.first_column-r},this.options.ranges)this.yylloc.range=[b[0],b[0]+this.yyleng-r];return this.yyleng=this.yytext.length,this},"unput"),more:t(function(){return this._more=!0,this},"more"),reject:t(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
4
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:t(function(o){this.unput(this.match.slice(o))},"less"),pastInput:t(function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:t(function(){var o=this.match;if(o.length<20)o+=this._input.substr(0,20-o.length);return(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:t(function(){var o=this.pastInput(),r=Array(o.length+1).join("-");return o+this.upcomingInput()+`
|
|
5
|
+
`+r+"^"},"showPosition"),test_match:t(function(o,r){var c,g,b;if(this.options.backtrack_lexer){if(b={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges)b.yylloc.range=this.yylloc.range.slice(0)}if(g=o[0].match(/(?:\r\n?|\n).*/g),g)this.yylineno+=g.length;if(this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:g?g[g.length-1].length-g[g.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+o[0].length},this.yytext+=o[0],this.match+=o[0],this.matches=o,this.yyleng=this.yytext.length,this.options.ranges)this.yylloc.range=[this.offset,this.offset+=this.yyleng];if(this._more=!1,this._backtrack=!1,this._input=this._input.slice(o[0].length),this.matched+=o[0],c=this.performAction.call(this,this.yy,this,r,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input)this.done=!1;if(c)return c;else if(this._backtrack){for(var s in b)this[s]=b[s];return!1}return!1},"test_match"),next:t(function(){if(this.done)return this.EOF;if(!this._input)this.done=!0;var o,r,c,g;if(!this._more)this.yytext="",this.match="";var b=this._currentRules();for(var s=0;s<b.length;s++)if(c=this._input.match(this.rules[b[s]]),c&&(!r||c[0].length>r[0].length)){if(r=c,g=s,this.options.backtrack_lexer)if(o=this.test_match(c,b[s]),o!==!1)return o;else if(this._backtrack){r=!1;continue}else return!1;else if(!this.options.flex)break}if(r){if(o=this.test_match(r,b[g]),o!==!1)return o;return!1}if(this._input==="")return this.EOF;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
|
|
6
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:t(function(){var r=this.next();if(r)return r;else return this.lex()},"lex"),begin:t(function(r){this.conditionStack.push(r)},"begin"),popState:t(function(){var r=this.conditionStack.length-1;if(r>0)return this.conditionStack.pop();else return this.conditionStack[0]},"popState"),_currentRules:t(function(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1])return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;else return this.conditions.INITIAL.rules},"_currentRules"),topState:t(function(r){if(r=this.conditionStack.length-1-Math.abs(r||0),r>=0)return this.conditionStack[r];else return"INITIAL"},"topState"),pushState:t(function(r){this.begin(r)},"pushState"),stateStackSize:t(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:t(function(r,c,g,b){var s=b;switch(g){case 0:return r.getLogger().trace("Found comment",c.yytext),6;break;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;break;case 4:this.popState();break;case 5:r.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return r.getLogger().trace("SPACELINE"),6;break;case 7:return 7;case 8:return 15;case 9:r.getLogger().trace("end icon"),this.popState();break;case 10:return r.getLogger().trace("Exploding node"),this.begin("NODE"),19;break;case 11:return r.getLogger().trace("Cloud"),this.begin("NODE"),19;break;case 12:return r.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;break;case 13:return r.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;break;case 14:return this.begin("NODE"),19;break;case 15:return this.begin("NODE"),19;break;case 16:return this.begin("NODE"),19;break;case 17:return this.begin("NODE"),19;break;case 18:return 13;case 19:return 22;case 20:return 11;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 23:this.popState();break;case 24:r.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return r.getLogger().trace("description:",c.yytext),"NODE_DESCR";break;case 26:this.popState();break;case 27:return this.popState(),r.getLogger().trace("node end ))"),"NODE_DEND";break;case 28:return this.popState(),r.getLogger().trace("node end )"),"NODE_DEND";break;case 29:return this.popState(),r.getLogger().trace("node end ...",c.yytext),"NODE_DEND";break;case 30:return this.popState(),r.getLogger().trace("node end (("),"NODE_DEND";break;case 31:return this.popState(),r.getLogger().trace("node end (-"),"NODE_DEND";break;case 32:return this.popState(),r.getLogger().trace("node end (-"),"NODE_DEND";break;case 33:return this.popState(),r.getLogger().trace("node end (("),"NODE_DEND";break;case 34:return this.popState(),r.getLogger().trace("node end (("),"NODE_DEND";break;case 35:return r.getLogger().trace("Long description:",c.yytext),20;break;case 36:return r.getLogger().trace("Long description:",c.yytext),20;break}},"anonymous"),rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR2:{rules:[22,23],inclusive:!1},NSTR:{rules:[25,26],inclusive:!1},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}};return w}();Y.lexer=pe;function j(){this.yy={}}return t(j,"Parser"),j.prototype=Y,Y.Parser=j,new j}();ne.parser=ne;var xe=ne,de=12,C={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},Ne=class{constructor(){this.nodes=[],this.count=0,this.elements={},this.getLogger=this.getLogger.bind(this),this.nodeType=C,this.clear(),this.getType=this.getType.bind(this),this.getElementById=this.getElementById.bind(this),this.getParent=this.getParent.bind(this),this.getMindmap=this.getMindmap.bind(this),this.addNode=this.addNode.bind(this),this.decorateNode=this.decorateNode.bind(this)}static{t(this,"MindmapDB")}clear(){this.nodes=[],this.count=0,this.elements={},this.baseLevel=void 0}getParent(e){for(let i=this.nodes.length-1;i>=0;i--)if(this.nodes[i].level<e)return this.nodes[i];return null}getMindmap(){return this.nodes.length>0?this.nodes[0]:null}addNode(e,i,p,h){a.info("addNode",e,i,p,h);let n=!1;if(this.nodes.length===0)this.baseLevel=e,e=0,n=!0;else if(this.baseLevel!==void 0)e=e-this.baseLevel,n=!1;let f=l(),k=f.mindmap?.padding??D.mindmap.padding;switch(h){case this.nodeType.ROUNDED_RECT:case this.nodeType.RECT:case this.nodeType.HEXAGON:k*=2;break}let E={id:this.count++,nodeId:O(i,f),level:e,descr:O(p,f),type:h,children:[],width:f.mindmap?.maxNodeWidth??D.mindmap.maxNodeWidth,padding:k,isRoot:n},N=this.getParent(e);if(N)N.children.push(E),this.nodes.push(E);else if(n)this.nodes.push(E);else throw Error(`There can be only one root. No parent could be found for ("${E.descr}")`)}getType(e,i){switch(a.debug("In get type",e,i),e){case"[":return this.nodeType.RECT;case"(":return i===")"?this.nodeType.ROUNDED_RECT:this.nodeType.CLOUD;case"((":return this.nodeType.CIRCLE;case")":return this.nodeType.CLOUD;case"))":return this.nodeType.BANG;case"{{":return this.nodeType.HEXAGON;default:return this.nodeType.DEFAULT}}setElementForId(e,i){this.elements[e]=i}getElementById(e){return this.elements[e]}decorateNode(e){if(!e)return;let i=l(),p=this.nodes[this.nodes.length-1];if(e.icon)p.icon=O(e.icon,i);if(e.class)p.class=O(e.class,i)}type2Str(e){switch(e){case this.nodeType.DEFAULT:return"no-border";case this.nodeType.RECT:return"rect";case this.nodeType.ROUNDED_RECT:return"rounded-rect";case this.nodeType.CIRCLE:return"circle";case this.nodeType.CLOUD:return"cloud";case this.nodeType.BANG:return"bang";case this.nodeType.HEXAGON:return"hexgon";default:return"no-border"}}assignSections(e,i,p=0,h=!1){if(e.level===0)e.section=void 0;else e.section=h?(p-1)%(de-1):i;if(e.children)for(let[n,f]of e.children.entries()){let k=e.level===0?n%(de-1):i;this.assignSections(f,k,p+1,h)}}flattenNodes(e,i){let p=l(),h=["mindmap-node"];if(e.isRoot===!0)h.push("section-root","section--1");else if(e.section!==void 0)h.push(`section-${e.section}`);if(e.class)h.push(e.class);let n=h.join(" "),f=t((E)=>{let U=(p.theme?.toLowerCase()??"").includes("redux");switch(E){case C.CIRCLE:return"mindmapCircle";case C.RECT:return"rect";case C.ROUNDED_RECT:return"rounded";case C.CLOUD:return"cloud";case C.BANG:return"bang";case C.HEXAGON:return"hexagon";case C.DEFAULT:return U?"rounded":"defaultMindmapNode";case C.NO_BORDER:default:return"rect"}},"getShapeFromType"),k={id:e.id.toString(),domId:"node_"+e.id.toString(),label:e.descr,labelType:"markdown",isGroup:!1,shape:f(e.type),width:e.width,height:e.height??0,padding:e.padding,cssClasses:n,cssStyles:[],centerLabel:!0,look:p.look,icon:e.icon,x:e.x,y:e.y,level:e.level,nodeId:e.nodeId,type:e.type,section:e.section};if(i.push(k),e.children)for(let E of e.children)this.flattenNodes(E,i)}generateEdges(e,i){if(!e.children)return;let p=l();for(let h of e.children){let n="edge";if(h.section!==void 0)n+=` section-edge-${h.section}`;let f=e.level+1;n+=` edge-depth-${f}`;let k={id:`edge_${e.id}_${h.id}`,start:e.id.toString(),end:h.id.toString(),type:"normal",curve:"basis",thickness:"normal",look:p.look,classes:n,depth:e.level,section:h.section};i.push(k),this.generateEdges(h,i)}}getData(){let e=this.getMindmap(),i=l(),h=so().layout!==void 0,n=i;if(!h)n.layout="cose-bilkent";if(!e)return{nodes:[],edges:[],config:n};a.debug("getData: mindmapRoot",e,i),this.assignSections(e,void 0,0,i.mindmap?.colorBy==="depth");let f=[],k=[];this.flattenNodes(e,f),this.generateEdges(e,k),a.debug(`getData: processed ${f.length} nodes and ${k.length} edges`);let E=new Map;for(let N of f)E.set(N.id,{shape:N.shape,width:N.width,height:N.height,padding:N.padding});return{nodes:f,edges:k,config:n,rootNode:e,markers:["point"],direction:"TB",nodeSpacing:50,rankSpacing:50,shapes:Object.fromEntries(E),type:"mindmap",diagramId:"mindmap-"+te()}}getLogger(){return a}},Le=t(async(e,i,p,h)=>{a.debug(`Rendering mindmap diagram
|
|
7
|
+
`+e);let n=h.db,f=n.getData(),k=ge(i,f.config.securityLevel);if(f.type=h.type,f.layoutAlgorithm=ve(f.config.layout,{fallback:"cose-bilkent"}),f.diagramId=i,!n.getMindmap())return;f.nodes.forEach((m)=>{if(m.shape==="rounded")m.radius=15,m.taper=15,m.stroke="none",m.width=0,m.padding=15;else if(m.shape==="circle")m.padding=10;else if(m.shape==="rect")m.width=0,m.padding=10;else if(m.shape==="hexagon")m.width=0,m.height=0}),await ye(f,k);let{themeVariables:N}=x(),{useGradient:U,gradientStart:M,gradientStop:P}=N;if(U&&M&&P){let m=k.attr("id"),V=k.append("defs").append("linearGradient").attr("id",`${m}-gradient`).attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");V.append("stop").attr("offset","0%").attr("stop-color",M).attr("stop-opacity",1),V.append("stop").attr("offset","100%").attr("stop-color",P).attr("stop-opacity",1)}ue(k,f.config.mindmap?.padding??D.mindmap.padding,"mindmapDiagram",f.config.mindmap?.useMaxWidth??D.mindmap.useMaxWidth)},"draw"),De={draw:Le},Te=t((e)=>{let{theme:i,look:p}=e,h="";for(let n=0;n<e.THEME_COLOR_LIMIT;n++)if(e["lineColor"+n]=e["lineColor"+n]||e["cScaleInv"+n],X(e["lineColor"+n]))e["lineColor"+n]=u(e["lineColor"+n],20);else e["lineColor"+n]=d(e["lineColor"+n],20);for(let n=0;n<e.THEME_COLOR_LIMIT;n++){let f=""+(p==="neo"?Math.max(10-(n-1)*2,2):17-3*n),k=i==="redux"||i==="redux-dark"?e.nodeBorder:e["cScaleLabel"+(i==="neutral"?1:n)];h+=`
|
|
8
8
|
.section-${n-1} rect, .section-${n-1} path, .section-${n-1} circle, .section-${n-1} polygon, .section-${n-1} path {
|
|
9
|
-
fill: ${
|
|
9
|
+
fill: ${e["cScale"+n]};
|
|
10
10
|
}
|
|
11
11
|
.section-${n-1} text {
|
|
12
|
-
fill: ${
|
|
12
|
+
fill: ${e["cScaleLabel"+n]};
|
|
13
13
|
}
|
|
14
14
|
.section-${n-1} span {
|
|
15
|
-
color: ${
|
|
15
|
+
color: ${e["cScaleLabel"+n]};
|
|
16
16
|
}
|
|
17
17
|
.node-icon-${n-1} {
|
|
18
18
|
font-size: 40px;
|
|
19
|
-
color: ${
|
|
19
|
+
color: ${e["cScaleLabel"+n]};
|
|
20
20
|
}
|
|
21
21
|
.section-edge-${n-1}{
|
|
22
|
-
stroke: ${
|
|
22
|
+
stroke: ${e["cScale"+n]};
|
|
23
23
|
}
|
|
24
24
|
.edge-depth-${n-1}{
|
|
25
25
|
stroke-width: ${f};
|
|
26
26
|
}
|
|
27
27
|
.section-${n-1} line {
|
|
28
|
-
stroke: ${
|
|
28
|
+
stroke: ${e["cScaleInv"+n]} ;
|
|
29
29
|
stroke-width: 3;
|
|
30
30
|
}
|
|
31
31
|
|
|
@@ -36,37 +36,37 @@ Expecting `+X.join(", ")+", got '"+(this.terminals_[L]||L)+"'";else Z="Parse err
|
|
|
36
36
|
fill: #efefef;
|
|
37
37
|
}
|
|
38
38
|
[data-look="neo"].mindmap-node.section-${n-1} rect, [data-look="neo"].mindmap-node.section-${n-1} path, [data-look="neo"].mindmap-node.section-${n-1} circle, [data-look="neo"].mindmap-node.section-${n-1} polygon {
|
|
39
|
-
fill: ${i==="redux"||i==="redux-dark"||i==="neutral"?
|
|
40
|
-
stroke: ${i==="redux"||i==="redux-dark"?
|
|
41
|
-
stroke-width: ${
|
|
39
|
+
fill: ${i==="redux"||i==="redux-dark"||i==="neutral"?e.mainBkg:e["cScale"+n]};
|
|
40
|
+
stroke: ${i==="redux"||i==="redux-dark"?e.nodeBorder:e["cScale"+n]};
|
|
41
|
+
stroke-width: ${e.strokeWidth??2}px;
|
|
42
42
|
}
|
|
43
43
|
[data-look="neo"].section-edge-${n-1}{
|
|
44
|
-
stroke: ${i?.includes("redux")||i==="neo-dark"?
|
|
44
|
+
stroke: ${i?.includes("redux")||i==="neo-dark"?e.nodeBorder:e["cScale"+n]};
|
|
45
45
|
}
|
|
46
46
|
[data-look="neo"].mindmap-node.section-${n-1} text, [data-look="neo"].mindmap-node.section-${n-1} span {
|
|
47
47
|
fill: ${k};
|
|
48
48
|
color: ${k};
|
|
49
49
|
}
|
|
50
|
-
`}return h},"genSections"),Oe=
|
|
50
|
+
`}return h},"genSections"),Oe=t((e,i,p)=>{let h="";for(let n=0;n<e;n++)h+=`
|
|
51
51
|
[data-look="neo"].mindmap-node.section-${n-1} rect, [data-look="neo"].mindmap-node.section-${n-1} path, [data-look="neo"].mindmap-node.section-${n-1} circle, [data-look="neo"].mindmap-node.section-${n-1} polygon {
|
|
52
52
|
stroke: url(${i}-gradient);
|
|
53
53
|
fill: ${p};
|
|
54
54
|
}
|
|
55
55
|
.section-${n-1} line {
|
|
56
56
|
stroke-width: 0;
|
|
57
|
-
}`;return h},"genGradient"),Ie=
|
|
57
|
+
}`;return h},"genGradient"),Ie=t((e)=>{let{theme:i}=e,p=e.svgId,h=i?.includes("redux")?e.nodeBorder:e["cScaleLabel"+(i==="neutral"?1:0)],n=e.dropShadow?e.dropShadow.replace("url(#drop-shadow)",`url(${p}-drop-shadow)`):"none";return`
|
|
58
58
|
.edge {
|
|
59
59
|
stroke-width: 3;
|
|
60
60
|
}
|
|
61
|
-
${Te(
|
|
61
|
+
${Te(e)}
|
|
62
62
|
.section-root rect, .section-root path, .section-root circle, .section-root polygon {
|
|
63
|
-
fill: ${
|
|
63
|
+
fill: ${e.git0};
|
|
64
64
|
}
|
|
65
65
|
.section-root text {
|
|
66
|
-
fill: ${
|
|
66
|
+
fill: ${e.gitBranchLabel0};
|
|
67
67
|
}
|
|
68
68
|
.section-root span {
|
|
69
|
-
color: ${i?.includes("redux")?
|
|
69
|
+
color: ${i?.includes("redux")?e.nodeBorder:e.gitBranchLabel0};
|
|
70
70
|
}
|
|
71
71
|
.icon-container {
|
|
72
72
|
height:100%;
|
|
@@ -88,11 +88,11 @@ Expecting `+X.join(", ")+", got '"+(this.terminals_[L]||L)+"'";else Z="Parse err
|
|
|
88
88
|
filter: ${n};
|
|
89
89
|
}
|
|
90
90
|
[data-look="neo"].mindmap-node.section-root rect, [data-look="neo"].mindmap-node.section-root path, [data-look="neo"].mindmap-node.section-root circle, [data-look="neo"].mindmap-node.section-root polygon {
|
|
91
|
-
fill: ${i?.includes("redux")?
|
|
91
|
+
fill: ${i?.includes("redux")?e.mainBkg:e.git0};
|
|
92
92
|
}
|
|
93
93
|
[data-look="neo"].mindmap-node.section-root .text-inner-tspan, [data-look="neo"].mindmap-node.section-root span {
|
|
94
94
|
fill: ${h};
|
|
95
95
|
color: ${h};
|
|
96
96
|
}
|
|
97
|
-
${
|
|
98
|
-
`},"getStyles"),Ce=Ie,It={get db(){return new
|
|
97
|
+
${e.useGradient&&p&&e.mainBkg?Oe(e.THEME_COLOR_LIMIT,p,e.mainBkg):""}
|
|
98
|
+
`},"getStyles"),Ce=Ie,It={get db(){return new Ne},renderer:De,parser:xe,styles:Ce};export{It as diagram};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{o,r,g,e,n,b,rn,st,ie,Pe}from"./chunk-gcwhx3av.js";var L={running:"运行中",waiting:"等待回答",context_exhausted:"上下文耗尽",done:"完成",error:"失败",failed:"失败",aborted:"已取消",cancelled:"已取消",interrupted:"已中断"},W={running:"warning",waiting:"warning",context_exhausted:"warning",done:"success",error:"danger",failed:"danger",aborted:"neutral",cancelled:"neutral",interrupted:"warning"},I=(a)=>a>=1000?`${(a/1000).toFixed(a>=1e4?0:1)}k`:String(a),H=(a)=>a>=60000?`${Math.floor(a/60000)} 分 ${Math.round(a%60000/1000)} 秒`:`${Math.round(a/1000)} 秒`;function X(a){let{Button:S,Panel:T,StatusChip:z,Markdown:M,ModelIcon:B,cn:c,style:U,useTheme:A}=b();A();let{connection:x,sessionID:f,payload:E,onOpen:Q}=a,t=E,[s,q]=r(),[k,w]=r(),[C,P]=r(!1),[d,F]=r(!1),[O,_]=r(!1),p=O||t.state==="aborted"||t.state==="cancelled",m=p?"aborted":t.state,u=(t.state==="running"||t.state==="waiting")&&!p;o(()=>{let i,N=!1,R=()=>{x.request(`/api/sessions/${encodeURIComponent(f)}/tasks/${encodeURIComponent(t.childSessionID)}`).then((h)=>{if(!N)q(h),w(void 0)}).catch((h)=>{if(!N)w(h instanceof Error?h.message:"任务详情加载失败")})};if(R(),u)i=setInterval(R,1500);return()=>{if(N=!0,i)clearInterval(i)}},[x,f,t.childSessionID,u]);let j=async()=>{if(C)return;P(!0);try{await x.request(`/api/sessions/${encodeURIComponent(f)}/tasks/${encodeURIComponent(t.childSessionID)}/kill`,{method:"POST"}),_(!0)}catch(i){w(i instanceof Error?i.message:"取消任务失败")}finally{P(!1)}},l=t.summary?.trim()||t.handoff?.conclusion.trim()||"",y=l.length>360||l.split(`
|
|
2
|
+
`).length>8,v=[s&&u&&s.lastTool&&`最近 ${s.lastTool}`,s&&H(s.elapsedMs),s&&`输入 ${I(s.usage.input)}`,s&&`输出 ${I(s.usage.output)}`,s&&s.usage.cacheRead>0&&`缓存 ${I(s.usage.cacheRead)}`,s&&s.usage.cost>0&&`$${s.usage.cost.toFixed(4)}`].filter(Boolean),G=Boolean(l||t.state==="waiting"&&!p||k),D=t.model||s?.session.model;return e(T,{className:"my-2 animate-fade",header:n(g,{children:[D?e(B,{modelID:D,className:"size-3.5 shrink-0",size:14}):e(Pe,{className:c("size-3.5 shrink-0",u?"text-warning":"text-faint")}),e("h4",{className:"truncate font-medium text-ink",title:t.description,children:t.description}),v.length>0&&n("span",{className:"min-w-0 truncate text-faint tabular-nums",title:v.join(" · "),children:["· ",v.join(" · ")]})]}),actions:n(g,{children:[e(z,{tone:W[m]??"neutral",pulse:m==="running",children:L[m]??m}),u&&e(S,{size:"sm",variant:"danger-ghost",className:"h-6 rounded-md px-2 text-xs",disabled:C,onClick:()=>{j()},children:"取消"}),n(S,{size:"sm",variant:"ghost",className:"h-6 gap-1 rounded-md px-2 text-xs text-faint hover:text-ink",onClick:()=>Q(t.childSessionID),children:["进入子会话",e(st,{className:"size-3.5"})]})]}),children:G&&n(g,{children:[t.state==="waiting"&&!p&&n("div",{className:c("px-4 py-3",l&&"border-b border-line"),children:[n("p",{className:"flex items-center gap-1.5 text-xs font-medium text-warning",children:[e(rn,{className:"size-3.5"}),"子任务向主代理提问,等待回答"]}),t.pendingQuestions&&t.pendingQuestions.length>0&&e("ul",{className:"mt-1.5 flex flex-col gap-1 text-[13px] leading-relaxed text-ink",children:t.pendingQuestions.map((i)=>e("li",{className:"break-words",children:i.text},i.askedAt))})]}),l&&n("div",{className:"px-4 py-3",children:[n("div",{className:c("relative text-[13.5px] leading-[1.65] break-words text-ink/90 overflow-hidden transition-[max-height] duration-300 ease-out-quint [&_p]:my-1.5 [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",y&&!d?"max-h-40":"max-h-[1800px]"),children:[e(M,{text:l}),y&&e("div",{className:c("pointer-events-none absolute inset-x-0 bottom-0 h-10 bg-gradient-to-t from-panel via-panel/70 to-transparent transition-opacity duration-300",d?"opacity-0":"opacity-100")})]}),y&&n("button",{type:"button",className:U("chat.timelineRow","cursor-pointer select-none"),onClick:()=>F(!d),children:[e("span",{children:d?"收起":"展开全部"}),e(ie,{className:c("size-3.5 transition-transform duration-300 ease-out-quint",d&&"rotate-180")})]})]}),k&&e("p",{role:"status",className:"px-4 py-2.5 text-xs text-danger",children:k})]})})}export{X as TaskCard};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import{G}from"./chunk-jzte2phh.js";import{t,a,D,x,B,C,S,E,T,A,L,R,V,U}from"./chunk-3q0v8w45.js";import{ee}from"./chunk-8dp7h6w8.js";var N=D.packet,F=class{constructor(){this.packet=[],this.setAccTitle=S,this.getAccTitle=E,this.setDiagramTitle=L,this.getDiagramTitle=R,this.getAccDescription=A,this.setAccDescription=T}static{t(this,"PacketDB")}getConfig(){let e=U({...N,...x().packet});if(e.showBits)e.paddingY+=10;return e}getPacket(){return this.packet}pushWord(e){if(e.length>0)this.packet.push(e)}clear(){C(),this.packet=[]}},M=1e4,Y=t((e,r)=>{G(e,r);let i=-1,s=[],l=1,{bitsPerRow:d}=r.getConfig();for(let{start:o,end:n,bits:g,label:f}of e.blocks){if(o!==void 0&&n!==void 0&&n<o)throw Error(`Packet block ${o} - ${n} is invalid. End must be greater than start.`);if(o??=i+1,o!==i+1)throw Error(`Packet block ${o} - ${n??o} is not contiguous. It should start from ${i+1}.`);if(g===0)throw Error(`Packet block ${o} is invalid. Cannot have a zero bit field.`);n??=o+(g??1)-1,g??=n-o+1,i=n,a.debug(`Packet block ${o} - ${i} with label ${f}`);while(s.length<=d+1&&r.getPacket().length<M){let[p,h]=I({start:o,end:n,bits:g,label:f},l,d);if(s.push(p),p.end+1===l*d)r.pushWord(s),s=[],l++;if(!h)break;({start:o,end:n,bits:g,label:f}=h)}}r.pushWord(s)},"populate"),I=t((e,r,i)=>{if(e.start===void 0)throw Error("start should have been set during first phase");if(e.end===void 0)throw Error("end should have been set during first phase");if(e.start>e.end)throw Error(`Block start ${e.start} is greater than block end ${e.end}.`);if(e.end+1<=r*i)return[e,void 0];let s=r*i-1,l=r*i;return[{start:e.start,end:s,label:e.label,bits:s-e.start},{start:l,end:e.end,label:e.label,bits:e.end-l}]},"getNextFittingBlock"),P={parser:{yy:void 0},parse:t(async(e)=>{let r=await ee("packet",e),i=P.parser?.yy;if(!(i instanceof F))throw Error("parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");a.debug(r),Y(r,i)},"parse")},O=t((e,r,i,s)=>{let l=s.db,d=l.getConfig(),{rowHeight:o,paddingY:n,bitWidth:g,bitsPerRow:f}=d,p=l.getPacket(),h=l.getDiagramTitle(),b=o+n,c=b*(p.length+1)-(h?0:o),k=g*f+2,m=V(r);m.attr("viewBox",`0 0 ${k} ${c}`),B(m,c,k,d.useMaxWidth);for(let[y,u]of p.entries())j(m,u,y,d);m.append("text").text(h).attr("x",k/2).attr("y",c-b/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),j=t((e,r,i,{rowHeight:s,paddingX:l,paddingY:d,bitWidth:o,bitsPerRow:n,showBits:g,bitOrder:f})=>{let p=e.append("g"),h=i*(s+d)+d,b=f==="descending";for(let c of r){let k=c.end-c.start+1,m=c.start%n,u=(b?n-m-k:m)*o+1,w=k*o-l;if(p.append("rect").attr("x",u).attr("y",h).attr("width",w).attr("height",s).attr("class","packetBlock"),p.append("text").attr("x",u+w/2).attr("y",h+s/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(c.label),!g)continue;let[W,_]=b?[c.end,c.start]:[c.start,c.end],v=k===1,z=h-2;if(p.append("text").attr("x",u+(v?w/2:0)).attr("y",z).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",v?"middle":"start").text(W),!v)p.append("text").attr("x",u+w).attr("y",z).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(_)}},"drawWord"),H={draw:O},K={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},X=t(({packet:e}={})=>{let r=U(K,e);return`
|
|
2
|
+
.packetByte {
|
|
3
|
+
font-size: ${r.byteFontSize};
|
|
4
|
+
}
|
|
5
|
+
.packetByte.start {
|
|
6
|
+
fill: ${r.startByteColor};
|
|
7
|
+
}
|
|
8
|
+
.packetByte.end {
|
|
9
|
+
fill: ${r.endByteColor};
|
|
10
|
+
}
|
|
11
|
+
.packetLabel {
|
|
12
|
+
fill: ${r.labelColor};
|
|
13
|
+
font-size: ${r.labelFontSize};
|
|
14
|
+
}
|
|
15
|
+
.packetTitle {
|
|
16
|
+
fill: ${r.titleColor};
|
|
17
|
+
font-size: ${r.titleFontSize};
|
|
18
|
+
}
|
|
19
|
+
.packetBlock {
|
|
20
|
+
stroke: ${r.blockStrokeColor};
|
|
21
|
+
stroke-width: ${r.blockStrokeWidth};
|
|
22
|
+
fill: ${r.blockFillColor};
|
|
23
|
+
}
|
|
24
|
+
`},"styles"),at={parser:P,get db(){return new F},renderer:H,styles:X};export{at as diagram};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Ei}from"./chunk-8dp7h6w8.js";export{Ei as createEventModelingServices};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t,a}from"./chunk-3q0v8w45.js";import{te,Dt,Nt}from"./chunk-2axwda8c.js";import{G}from"./chunk-jzte2phh.js";import{rr,wt}from"./chunk-8dp7h6w8.js";var o=rr().Railroad.parser.LangiumParser,n=t((e)=>{switch(e.$type){case"RailroadTerminalExpr":return{type:"terminal",value:e.value};case"RailroadNonTerminalExpr":return{type:"nonterminal",name:e.name};case"RailroadSpecialExpr":return{type:"special",text:e.text};case"RailroadSequenceExpr":{let r=e.elements.map(n);return r.length===1?r[0]:{type:"sequence",elements:r}}case"RailroadChoiceExpr":{let r=e.alternatives.map(n);return r.length===1?r[0]:{type:"choice",alternatives:r}}case"RailroadOptionalExpr":return{type:"optional",element:n(e.element)};case"RailroadOneOrMoreExpr":return{type:"repetition",element:n(e.element),min:1,max:1/0};case"RailroadZeroOrMoreExpr":return{type:"repetition",element:n(e.element),min:0,max:1/0};default:throw Error(`Unsupported railroad expression: ${e.$type}`)}},"transformExpression"),l=t((e)=>({name:e.name,definition:n(e.definition)}),"transformRule"),s=t((e)=>{if(G(e,te),e.title)te.setTitle(e.title);e.rules.map((r)=>te.addRule(l(r)))},"populateDb"),m={parse:t((e)=>{te.clear(),a.debug("[Railroad Parser] Starting Langium parse");let r=o.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new wt(r);let i=r.value;a.debug("[Railroad Parser] Parsed rules:",i.rules.length),s(i),a.debug("[Railroad Parser] Parse complete")},"parse"),parser:{yy:te}},R={parser:m,db:te,renderer:Nt,styles:Dt};export{R as diagram};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Kn}from"./chunk-0zwc2rvh.js";export{Kn as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{t,a,x,l,M,P,Tt,Et,yo,yt,tn,vo,Hn,Me,bo,Wi,At,Gi,nn,Zn}from"./chunk-3q0v8w45.js";import{re}from"./chunk-33w36n91.js";import{_}from"./chunk-gcwhx3av.js";function ia(e,{edgePathsClass:r="edges edgePaths"}={}){let n=e.insert("g").attr("class","root"),i=n.insert("g").attr("class","clusters"),s=n.insert("g").attr("class",r),o=n.insert("g").attr("class","edgeLabels"),u=n.insert("g").attr("class","nodes");return{clusters:i,edgePaths:s,edgeLabels:o,nodes:u,rootGroups:n}}t(ia,"createLayoutElementGroups");async function L(e,r,n){if(r.label){let{shapeSvg:i,bbox:s}=await P(e,n===void 0?r:{...r,width:n});r.labelBBox={width:s.width,height:s.height},i.remove()}else r.labelBBox={width:0,height:0}}t(L,"measureGroupLabel");async function oa(e,r,n){let i=await Et(e,r,n),s=i.node()?.getBBox()??{width:0,height:0};return r.width=s.width,r.height=s.height,i}t(oa,"insertMeasuredNode");function D(e,r,n){let i=e,s=new Set;while(i){if(i.dir)return i.dir;if(!i.parentId||s.has(i.parentId))break;s.add(i.parentId),i=r.get(i.parentId)}return n}t(D,"resolveNodeDir");async function S(e,r,n={}){let i=new re({multigraph:!0,compound:!0}),s=[...r.edges],o=l(),u=ia(e),{edgeLabels:d,nodes:c}=u,g=new Map,b=new Map(r.nodes.map((f)=>[f.id,f])),E=r.direction,h=e.node()!=null;await Promise.all(r.nodes.map(async(f)=>{if(f.isGroup){if(h){let w=n.unwrapGroupLabels&&f.labelType!=="markdown";await L(c,f,w?Number.POSITIVE_INFINITY:void 0)}i.setNode(f.id,{...f})}else{if(h){let w=await oa(c,f,{config:o,dir:D(f,b,E)});g.set(f.id,w)}i.setNode(f.id,{...f})}}));for(let f of s){if(h&&Wi(f))await At(d,f);if(i.setEdge(f.start,f.end,{...f},f.id),!r.edges.some((v)=>v.id===f.id))r.edges.push(f)}if(globalThis.mermaidCaptureSizes){let{captureNodeSizes:f}=await (_("nky3bqfg"),import("./chunk-nky3bqfg.js"));f(e,r)}return{graph:i,groups:u,nodeElements:g}}t(S,"createGraphWithElements");var W=new Map,m=new Map,k=new Map,U=t(()=>{m.clear(),k.clear(),W.clear()},"clear"),p=t((e,r)=>{let n=m.get(r)||[];return a.trace("In isDescendant",r," ",e," = ",n.includes(e)),n.includes(e)},"isDescendant"),Z=t((e,r)=>{let n=m.get(r)||[];if(a.info("Descendants of ",r," is ",n),a.info("Edge is ",e),e.v===r||e.w===r)return!1;if(!n)return a.debug("Tilt, ",r,",not in descendants"),!1;return n.includes(e.v)||p(e.v,r)||p(e.w,r)||n.includes(e.w)},"edgeInCluster"),R=t((e,r,n,i)=>{a.debug("Copying children of ",e,"root",i,"data",r.node(e),i);let s=r.children(e)||[];if(e!==i)s.push(e);a.debug("Copying (nodes) clusterId",e,"nodes",s),s.forEach((o)=>{if(r.children(o).length>0)R(o,r,n,i);else{let u=r.node(o);if(a.info("cp ",o," to ",i," with parent ",e),n.setNode(o,u),i!==r.parent(o))a.debug("Setting parent",o,r.parent(o)),n.setParent(o,r.parent(o));if(e!==i&&o!==e)a.debug("Setting parent",o,e),n.setParent(o,e);else a.info("In copy ",e,"root",i,"data",r.node(e),i),a.debug("Not Setting parent for node=",o,"cluster!==rootId",e!==i,"node!==clusterId",o!==e);let d=r.edges(o);a.debug("Copying Edges",d),d.forEach((c)=>{a.info("Edge",c);let g=r.edge(c.v,c.w,c.name);a.info("Edge data",g,i);try{if(Z(c,i))a.info("Copying as ",c.v,c.w,g,c.name),n.setEdge(c.v,c.w,g,c.name),a.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]));else a.info("Skipping copy of edge ",c.v,"-->",c.w," rootId: ",i," clusterId:",e)}catch(b){a.error(b)}})}a.debug("Removing node",o),r.removeNode(o)})},"copy"),T=t((e,r)=>{let n=r.children(e),i=[...n];for(let s of n)k.set(s,e),i=[...i,...T(s,r)];return i},"extractDescendants"),I=t((e,r,n)=>{let i=e.edges().filter((c)=>c.v===r||c.w===r),s=e.edges().filter((c)=>c.v===n||c.w===n),o=i.map((c)=>({v:c.v===r?n:c.v,w:c.w===r?r:c.w})),u=s.map((c)=>({v:c.v,w:c.w}));return o.filter((c)=>u.some((g)=>c.v===g.v&&c.w===g.w))},"findCommonEdges"),Bn=t((e,r,n)=>{let i=r.children(e);if(a.trace("Searching children of id ",e,i),i.length<1)return e;let s;for(let o of i){let u=Bn(o,r,n),d=I(r,n,u);if(u)if(d.length>0)s=u;else return u}return s},"findNonClusterChild"),y=t((e)=>{if(!W.has(e))return e;if(!W.get(e).externalConnections)return e;if(W.has(e))return W.get(e).id;return e},"getAnchorId"),eo=t((e,r)=>{if(!e||r>10){a.debug("Opting out, no graph ");return}else a.debug("Opting in, graph ");e.nodes().forEach(function(n){if(e.children(n).length>0)a.debug("Cluster identified",n," Replacement id in edges: ",Bn(n,e,n)),m.set(n,T(n,e)),W.set(n,{id:Bn(n,e,n),clusterData:e.node(n)})}),e.nodes().forEach(function(n){let i=e.children(n),s=e.edges();if(i.length>0)a.debug("Cluster identified",n,m),s.forEach((o)=>{let u=p(o.v,n),d=p(o.w,n);if(u^d)a.debug("Edge: ",o," leaves cluster ",n),a.debug("Descendants of XXX ",n,": ",m.get(n)),W.get(n).externalConnections=!0});else a.debug("Not a cluster ",n,m)});for(let n of W.keys()){let i=W.get(n).id,s=e.parent(i);if(s!==n&&W.has(s)&&!W.get(s).externalConnections)W.get(n).id=s;let o=e.edges().some((u)=>u.v===n);if(i&&W.get(n)?.externalConnections&&o&&X(e,i,n)){let u=ee(e,n,e.parent(i));if(u)W.get(n).id=u}}e.edges().forEach(function(n){let i=e.edge(n);a.debug("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),a.debug("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let{v:s,w:o}=n;if(a.debug("Fix XXX",W,"ids:",n.v,n.w,"Translating: ",W.get(n.v)," --- ",W.get(n.w)),W.get(n.v)||W.get(n.w)){if(a.debug("Fixing and trying - removing XXX",n.v,n.w,n.name),s=y(n.v),o=y(n.w),e.removeEdge(n.v,n.w,n.name),s!==n.v){let u=e.parent(s);W.get(u).externalConnections=!0,i.fromCluster=n.v}if(o!==n.w){let u=e.parent(o);W.get(u).externalConnections=!0,i.toCluster=n.w}a.debug("Fix Replacing with XXX",s,o,n.name),e.setEdge(s,o,i,n.name)}}),B(e,0),a.trace(W)},"adjustClustersAndEdges"),B=t((e,r)=>{if(r>10){a.error("Bailing out");return}let n=e.nodes(),i=!1;for(let s of n){let o=e.children(s);i=i||o.length>0}if(!i){a.debug("Done, no node has children",e.nodes());return}a.debug("Nodes = ",n,r);for(let s of n)if(a.debug("Extracting node",s,W,W.has(s)&&!W.get(s).externalConnections,!e.parent(s),e.node(s),e.children("D")," Depth ",r),!W.has(s))a.debug("Not a cluster",s,r);else if(!W.get(s).externalConnections&&e.children(s)&&e.children(s).length>0){a.debug("Cluster without external connections, without a parent and with children",s,r);let u=e.graph().rankdir==="TB"?"LR":"TB";if(W.get(s)?.clusterData?.dir)u=W.get(s).clusterData.dir,a.debug("Fixing dir",W.get(s).clusterData.dir,u);let d=new re({multigraph:!0,compound:!0}).setGraph({rankdir:u,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});R(s,e,d,s),e.setNode(s,{clusterNode:!0,id:s,clusterData:W.get(s).clusterData,label:W.get(s).label,graph:d})}else a.debug("Cluster ** ",s," **not meeting the criteria !externalConnections:",!W.get(s).externalConnections," no parent: ",!e.parent(s)," children ",e.children(s)&&e.children(s).length>0,e.children("D"),r),a.debug(W);n=e.nodes(),a.debug("New list of nodes",n);for(let s of n){let o=e.node(s);if(a.debug(" Now next level",s,o),o?.clusterNode)B(o.graph,r+1)}},"extractor"),A=t((e,r)=>{if(r.length===0)return[];let n=Object.assign([],r);return r.forEach((i)=>{let s=e.children(i),o=A(e,s);n=[...n,...o]}),n},"sorter"),sa=t((e)=>A(e,e.children()),"sortNodesByHierarchy"),X=t((e,r,n)=>{let i=e.parent(r);while(i&&i!==n){let s=W.get(i);if(s&&!s.externalConnections)return!0;i=e.parent(i)}return!1},"isNodeInExtractableCluster"),ee=t((e,r,n)=>{let i=e.children(r)??[];for(let s of i){if(s===n||p(s,n))continue;let o=Bn(s,e,r);if(!o)continue;if(!X(e,o,r))return o}return null},"findSafeAnchorNode");function lr({prepareLayout:e,measureLayout:r,runLayoutCore:n,paintLayout:i,afterPaint:s,paintOptions:o}){let u=r??O;return t(async function(c,g,b,E){let h=g.select("g");(b?.insertMarkers??Zn)(h,c.markers,c.type,c.diagramId),G();let f={element:h,helpers:b,options:E};f.preparedLayout=await e?.(c,f);let w=await u(c,f),v=await n(c,f),C={...f,measure:w};if(i)await i(c,C,v);else await F(c,C,o);await s?.(c,C,v)},"render")}t(lr,"createCommonLayoutRenderer");function G(){yo(),bo(),vo(),U()}t(G,"clearLayoutRenderState");async function O(e,{element:r},n){return await S(r,e,n)}t(O,"defaultMeasureLayout");async function F(e,r,n={}){let{measure:i}=r,{groups:s}=i;for(let u of n.getNodes?.(e,r)??e.nodes){if(n.skipNode?.(u,r))continue;await j(s,u,r,n)}let o=z(e.nodes);for(let u of e.edges){if(J(u,n))continue;await V(s,u,o,e,n,r)}}t(F,"paintLayoutData");async function j(e,r,n,i){if(r.clusterNode)yt(r);else if(H(r,n,i))await tn(e.clusters,r);else yt(r)}t(j,"paintLayoutNode");function H(e,r,n){return e.isGroup===!0&&(n.isCluster?.(e,r)??!0)}t(H,"shouldPaintAsCluster");function z(e){let r=new Map;for(let n of e)if(n?.id)r.set(n.id,n);return r}t(z,"buildNodeLookup");function J(e,r){return e.isLayoutOnly||Boolean(r.skipEdge?.(e))}t(J,"shouldSkipPaintEdge");async function V(e,r,n,i,s,o){let u=nn(e.edgePaths,{...r},s.clusterDb??new Map,i.type,N(r.start,r,n,o,s),N(r.end,r,n,o,s),i.diagramId,Y(r,s),i.layoutAlgorithm);if(Wi(r)){if(!Hn.has(r.id))await At(e.edgeLabels,r);q(r,u)}}t(V,"paintLayoutEdge");function N(e,r,n,i,s){return s.getEdgeNode?.(e,r,i)??(e?n.get(e)??{}:{})}t(N,"getRenderedNode");function Y(e,r){return typeof r.skipIntersect==="function"?r.skipIntersect(e):r.skipIntersect??!1}t(Y,"shouldSkipIntersect");function q(e,r){let n=r?.updatedPath??r?.originalPath,i=x(),{subGraphTitleTotalMargin:s}=Tt({flowchart:i.flowchart??{}});if(e.label){let o=Hn.get(e.id),{x:u,y:d}=Gi(e,r);o.attr("transform",`translate(${u}, ${d+s/2})`)}for(let[o,u]of[["startLeft",e.startLabelLeft],["startRight",e.startLabelRight],["endLeft",e.endLabelLeft],["endRight",e.endLabelRight]])if(u){let{x:d,y:c}=K(e,o,n);Me.get(e.id)[o].attr("transform",`translate(${d}, ${c})`)}}t(q,"positionRenderedEdgeLabel");var te={startLeft:"start_left",startRight:"start_right",endLeft:"end_left",endRight:"end_right"};function K(e,r,n){let i=e.terminalLabelCenters?.[r];if(i)return{...i};if(!n)return{x:e.x,y:e.y};let s=r.startsWith("start")?e.arrowTypeStart:e.arrowTypeEnd;return M.calcTerminalLabelPosition(s?10:0,te[r],n)}t(K,"terminalLabelTranslate");
|
|
2
|
+
export{ia,oa,W,Bn,eo,sa,lr};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t}from"./chunk-3q0v8w45.js";var c=1;function i(){if(typeof globalThis>"u")return;return globalThis}t(i,"getCaptureGlobal");function p(){return Boolean(i()?.mermaidCaptureSizes)}t(p,"shouldCaptureSizes");function u(){if(typeof location>"u")return"browser-dev";return`${location.pathname}${location.search}`}t(u,"capturedFromLocation");function d(n,r){let o=i();if(!o)return;let e=r.node(),s=((e&&"ownerSVGElement"in e?e.ownerSVGElement:null)??e)?.id??"(unknown)";o.mermaidCapturedSizes??=[];let a={svgId:s,sizes:n};o.mermaidCapturedSizes.push(a),o.mermaidLastCapturedSizes=a}t(d,"emitCapturedSizes");function m(n,r){let o=[];for(let e of r.nodes){if(e.isGroup)continue;o.push({id:e.id,width:e.width??0,height:e.height??0})}if(o.length===0)return;d({metadata:{captureVersion:c,capturedAt:new Date().toISOString(),capturedFrom:u()},nodes:o},n)}t(m,"captureNodeSizes");export{m as captureNodeSizes};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o,Y,i,r,g,e,n,b,K,J}from"./chunk-gcwhx3av.js";import{qt}from"./chunk-7f1t7z72.js";var A=[{id:"exa",name:"Exa",description:"免密钥 · 综合搜索"},{id:"tavily",name:"Tavily",description:"免密钥 · 支持域名筛选"},{id:"parallel",name:"Parallel",description:"免密钥 · 网页搜索"},{id:"firecrawl",name:"Firecrawl",description:"免密钥 · 网页内容"},{id:"tinyfish",name:"TinyFish",description:"免密钥 · 搜索摘要"},{id:"searxng",name:"SearXNG",description:"免密钥 · 需自建服务"},{id:"brave",name:"Brave",description:"需密钥 · 独立搜索引擎"}];function L(t){return{enabled:t.search.provider!=="off",provider:t.search.provider==="off"?"auto":t.search.provider,searxngUrl:t.search.searxngUrl??"",proxy:t.proxy??"",acceptLanguage:t.acceptLanguage??""}}function q(t,c){return{search:{provider:t.enabled?t.provider:"off",searxngUrl:t.searxngUrl},keys:{...c},proxy:t.proxy,acceptLanguage:t.acceptLanguage}}function z(t,c,f){let p=L(t);if(c.enabled!==p.enabled)return!0;if(c.enabled&&c.provider!==p.provider)return!0;return c.searxngUrl!==p.searxngUrl||c.proxy!==p.proxy||c.acceptLanguage!==p.acceptLanguage||Object.keys(f).length>0}function F({notice:t}){let{cn:c}=b();if(!t)return null;let f=t.type==="success"?qt:K;return n("div",{role:t.type==="error"?"alert":"status",className:c("flex items-start gap-2 text-xs",t.type==="success"?"text-success":"text-danger"),children:[e(f,{className:"mt-0.5 size-4 shrink-0","aria-hidden":"true"}),e("span",{className:"min-w-0 break-words",children:t.text})]})}function G(t){let{Button:c,Input:f,Switch:p,Select:k,StatusChip:S,SettingActions:W,SettingGroup:P,SettingRow:C,cn:w}=b(),m=Y(),l=t.busy!==void 0;return n("form",{id:`${m}-form`,className:"min-w-0 space-y-5",onSubmit:async(s)=>{s.preventDefault(),await t.onSave()},children:[n(P,{title:"联网搜索",children:[e(C,{title:"启用搜索",description:"查询会发送至所选搜索服务",children:e(p,{label:"启用联网搜索",disabled:l,checked:t.draft.enabled,onCheckedChange:(s)=>t.onDraft({...t.draft,enabled:s})})}),e(C,{title:"搜索渠道",description:"自动:Exa → Tavily → Parallel → Firecrawl → TinyFish",children:e("div",{className:"w-48",children:e(k,{id:`${m}-provider`,value:t.draft.provider,disabled:l||!t.draft.enabled,className:"min-w-0",groups:[{options:[{value:"auto",label:"自动",description:"失败时依次切换渠道"},...A.map((s)=>({value:s.id,label:s.name}))]}],onValueChange:(s)=>{let a=s==="auto"?s:A.find((x)=>x.id===s)?.id;if(a)t.onDraft({...t.draft,provider:a})}})})}),(t.draft.provider==="searxng"||t.draft.searxngUrl)&&e(C,{vertical:!0,title:"自建 SearXNG 地址",children:e(f,{id:`${m}-searxng`,"aria-label":"自建 SearXNG 地址",type:"url",maxLength:2000,disabled:l||!t.draft.enabled,value:t.draft.searxngUrl,placeholder:"https://search.example.com",onChange:(s)=>t.onDraft({...t.draft,searxngUrl:s.target.value})})})]}),e(P,{title:"渠道与密钥",description:"检测使用已保存的配置",action:n(c,{type:"button",size:"sm",variant:"ghost",disabled:l,className:"text-dim",onClick:async()=>await t.onCheck("all"),children:[e(J,{className:w("size-3.5",t.checking==="all"&&"animate-spin"),"aria-hidden":"true"}),t.checking==="all"?"正在检测…":"全部检测"]}),children:A.map((s)=>{let a=s.id,x=a==="searxng"?void 0:t.saved.keys[a],N=x?.source==="environment",D=a==="searxng"?void 0:t.keys[a],h=D==="",v=t.checks[a],E=t.checking==="all"||t.checking===a,y=x?.configured?"已配置密钥":"未配置";if(a==="searxng")y=t.saved.search.searxngUrl?"已配置地址":"未配置地址";if(N)y="来自环境变量";if(h)y="待移除";if(D)y="待保存密钥";let U=v&&!v.ok&&!E?v.error??(v.kind==="search"?v.meta?.failed[0]?.error:v.meta?.error)??"检测失败,请检查配置。":void 0;return n("div",{className:"min-w-0",children:[n(C,{title:s.name,description:n(g,{children:[s.description,N&&" · 请在服务端环境变量中更换或移除",U&&e("span",{role:"status",className:"block break-words text-danger",children:U})]}),children:[E?e(S,{tone:"neutral",pulse:!0,children:"检测中"}):v?e(S,{tone:v.ok?"success":"danger",children:v.ok?`可用 ${v.elapsedMs} ms`:"不可用"}):e("span",{className:w("text-xs",D!==void 0?"text-warning":"text-faint"),children:y}),a!=="searxng"&&!N&&n(g,{children:[e(c,{type:"button",size:"sm",variant:"ghost",disabled:l,"aria-label":`${x?.configured?"更换":"设置"} ${s.name} 密钥`,"aria-expanded":t.editingKey===a,"aria-controls":`${m}-${a}-key-editor`,onClick:()=>t.onEditKey(t.editingKey===a?void 0:a),children:x?.configured?"更换":"设置密钥"}),x?.configured&&!h&&e(c,{type:"button",size:"sm",variant:"ghost",disabled:l,"aria-label":`移除 ${s.name} 密钥`,onClick:()=>{t.onKeys({...t.keys,[a]:""}),t.onEditKey(void 0)},children:"移除"})]}),e(c,{type:"button",size:"sm",variant:"ghost",disabled:l,"aria-label":`检测 ${s.name}`,onClick:async()=>await t.onCheck(a),children:"检测"})]}),a!=="searxng"&&t.editingKey===a&&n("div",{id:`${m}-${a}-key-editor`,className:"flex items-center gap-2 pb-3",children:[e(f,{id:`${m}-${a}-key`,"aria-label":`${s.name} API 密钥`,type:"password",autoComplete:"new-password",maxLength:4000,disabled:l,value:t.keys[a]??"",placeholder:"输入新密钥,保存后生效;只写入,不回显",onChange:(R)=>{let d={...t.keys};if(R.target.value.trim())d[a]=R.target.value;else delete d[a];t.onKeys(d)}}),e(c,{type:"button",size:"sm",variant:"ghost",disabled:l,onClick:()=>{let R={...t.keys};delete R[a],t.onKeys(R),t.onEditKey(void 0)},children:"取消"})]})]},a)})}),n(P,{title:"网络",children:[e(C,{vertical:!0,title:"代理 URL",description:"留空使用服务端环境代理",children:e(f,{id:`${m}-proxy`,"aria-label":"代理 URL",type:"url",maxLength:2000,disabled:l,value:t.draft.proxy,placeholder:"http://127.0.0.1:7890",onChange:(s)=>t.onDraft({...t.draft,proxy:s.target.value})})}),e(C,{vertical:!0,title:"Accept-Language",children:e(f,{id:`${m}-language`,"aria-label":"Accept-Language",maxLength:200,disabled:l,value:t.draft.acceptLanguage,placeholder:"en-US,en;q=0.9",onChange:(s)=>t.onDraft({...t.draft,acceptLanguage:s.target.value})})})]}),n(W,{children:[e("div",{className:"mr-auto min-w-0",children:e(F,{notice:t.notice})}),t.dirty&&e(c,{type:"button",size:"sm",variant:"ghost",disabled:l,onClick:t.onRestore,children:"撤销更改"}),e(c,{form:`${m}-form`,type:"submit",size:"sm",variant:"primary",disabled:l||!t.dirty,children:t.busy==="save"?"保存中…":"保存"})]})]})}function O({connection:t}){let{Button:c}=b(),[f,p]=r(),[k,S]=r(),[W,P]=r({}),[C,w]=r(),[m,l]=r("load"),[s,a]=r(),[x,N]=r({}),[D,h]=r(),[v,E]=r(0),y=i(void 0);o(()=>{let d=new AbortController;return y.current=d,l("load"),h(void 0),p(void 0),S(void 0),P({}),w(void 0),N({}),t.request("/api/plugins/webfetch/settings",{signal:d.signal,cache:v>0?"reload":"default"}).then((u)=>{if(d.signal.aborted)return;p(u),S(L(u))}).catch((u)=>{if(!d.signal.aborted)h({type:"error",text:u instanceof Error?u.message:"加载设置失败,请重试。"})}).finally(()=>{if(!d.signal.aborted)y.current=void 0,l(void 0)}),()=>{d.abort(),y.current?.abort(),y.current=void 0}},[t,v]);async function U(){if(y.current||!f||!k||!z(f,k,W))return;let d=new AbortController;y.current=d,l("save"),h(void 0);try{let u=await t.request("/api/plugins/webfetch/settings",{method:"PATCH",signal:d.signal,headers:{"Content-Type":"application/json"},body:JSON.stringify(q(k,W))});if(d.signal.aborted)return;p(u),S(L(u)),P({}),w(void 0),N({}),h({type:"success",text:"设置已保存。"})}catch(u){if(!d.signal.aborted)h({type:"error",text:u instanceof Error?u.message:"保存失败,请重试。"})}finally{if(!d.signal.aborted)y.current=void 0,l(void 0)}}async function R(d){if(y.current||!f)return;let u=new AbortController;y.current=u,l("test"),a(d),h(void 0);try{let B=await t.request(`/api/plugins/webfetch/test?provider=${d}`,{method:"POST",signal:u.signal});if(u.signal.aborted)return;N((M)=>{let I={...M};for(let T of B.checks)if(T.kind==="search"&&T.provider)I[T.provider]=T;return I})}catch(B){if(!u.signal.aborted)h({type:"error",text:B instanceof Error?B.message:"检测失败,请重试。"})}finally{if(!u.signal.aborted)y.current=void 0,l(void 0),a(void 0)}}if(!f||!k)return n("div",{className:"min-w-0 space-y-3",children:[m==="load"&&e("p",{role:"status",className:"text-sm text-dim",children:"正在加载设置…"}),e(F,{notice:D}),m!=="load"&&e(c,{type:"button",size:"sm",variant:"ghost",onClick:()=>E(v+1),children:"重新加载"})]});return e(G,{saved:f,draft:k,keys:W,editingKey:C,dirty:z(f,k,W),busy:m==="load"?void 0:m,checking:s,checks:x,notice:D,onDraft:(d)=>{S(d),h(void 0)},onKeys:(d)=>{P(d),h(void 0)},onEditKey:w,onSave:U,onCheck:R,onRestore:()=>{S(L(f)),P({}),w(void 0),h(void 0)}})}export{G as SettingsForm,O as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{or}from"./chunk-8dp7h6w8.js";export{or as createRailroadPegServices};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h,o,i,r,g,e,n,b,s,K,bt,rt,Wt,be,ce,J,me,xt,lt,ne,an,Z}from"./chunk-gcwhx3av.js";var $e=[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]],ve=s("key-round",$e);function he(a){let d=[],v="",I,y=!1;for(let f=0;f<a.length;f++){let c=a[f];if(I)if(c===I)I=void 0;else if(c==="\\"&&I==='"'&&f+1<a.length)v+=a[++f];else v+=c;else if(c==='"'||c==="'")I=c,y=!0;else if(c==="\\"&&f+1<a.length)v+=a[++f],y=!0;else if(/\s/.test(c)){if(y||v)d.push(v);v="",y=!1}else v+=c,y=!0}if(y||v)d.push(v);return d}function de(a){return a.map((d)=>d===""||/[\s"'\\]/.test(d)?`"${d.replace(/(["\\])/g,"\\$1")}"`:d).join(" ")}var ye="size-4 cursor-pointer rounded border-line text-accent accent-accent focus-visible:outline-2 focus-visible:outline-accent",Te={connected:{label:"已连接",dot:"bg-success"},idle:{label:"待连接",dot:"bg-faint"},disabled:{label:"已停用",dot:"bg-faint"},failed:{label:"连接失败",dot:"bg-danger"},needs_auth:{label:"需要认证",dot:"bg-warning"}};function te(a){return a.type==="local"?de(a.command):a.url}function Ne({info:a,tools:d=!1}){let v=Te[a.status.status];return n("span",{className:"inline-flex shrink-0 items-center gap-1.5 text-xs text-dim",children:[e("span",{"aria-hidden":!0,className:`size-1.5 shrink-0 rounded-full ${v.dot}`}),e("span",{className:d?void 0:"hidden @md/panel:inline",children:v.label}),d&&a.status.status==="connected"&&n("span",{className:"text-faint",children:["· ",a.toolCount," 个工具"]})]})}function Pe(a){if(typeof a!=="object"||a===null||!("type"in a))return"any";let d=a.type;if(typeof d==="string")return d;if(Array.isArray(d))return d.filter((v)=>typeof v==="string").join(" | ")||"any";return"any"}function Ce(a){let{Button:d,CopyButton:v,Dialog:I,StatusChip:y,confirm:f,style:c,useTheme:P}=b();P();let{info:l,connection:k}=a,[m,G]=r(),[O,H]=r(),[D,S]=r(!1),U=l.status.status==="connected",B=l.status.status==="needs_auth",ee=l.status.status==="failed",L=l.config.type==="remote"&&Boolean(l.config.oauth);o(()=>{function u(p){if(p&&p!==l.name)return;let T=l.projectID?`?projectID=${encodeURIComponent(l.projectID)}`:"";k.request(`/api/mcp/${encodeURIComponent(l.name)}/connect${T}`,{method:"POST"}).then((F)=>a.onChanged(F)).catch(()=>{})}function x(p){if(p.data?.type==="mcp-oauth-success")u(p.data.name)}function t(p){if(p.key==="basalt-mcp-oauth-event"&&p.newValue)try{let T=JSON.parse(p.newValue);u(T.name)}catch(T){}}window.addEventListener("message",x),window.addEventListener("storage",t);let C;if("BroadcastChannel"in window)C=new BroadcastChannel("basalt-mcp-oauth"),C.onmessage=(p)=>{if(p.data?.type==="mcp-oauth-success")u(p.data.name)};return()=>{window.removeEventListener("message",x),window.removeEventListener("storage",t),C?.close()}},[k,l.name,l.projectID,a]),o(()=>{if(l.status.status!=="connected")return;let u=l.projectID?`?projectID=${encodeURIComponent(l.projectID)}`:"";k.request(`/api/mcp/${encodeURIComponent(l.name)}/tools${u}`).then((x)=>{if(Array.isArray(x))G(x),H(void 0)}).catch((x)=>{H(x instanceof Error?x.message:"获取工具失败")})},[k,l.name,l.projectID,l.status.status]);async function ae(u){S(!0);try{let x=l.projectID?`?projectID=${encodeURIComponent(l.projectID)}`:"",t=await k.request(`/api/mcp/${encodeURIComponent(l.name)}/${u}${x}`,{method:"POST"});a.onChanged(t)}catch{}finally{S(!1)}}async function Q(){S(!0);try{let u=l.projectID?`?projectID=${encodeURIComponent(l.projectID)}`:"",x=l.status.status==="needs_auth"?l.status.authorizationUrl:void 0;if(!x)x=(await k.request(`/api/mcp/${encodeURIComponent(l.name)}/oauth/authorize${u}`,{method:"POST"})).authorizationUrl;if(x)window.open(x,"_blank","width=600,height=700")}catch(u){H(u instanceof Error?u.message:"获取授权链接失败")}finally{S(!1)}}async function X(){S(!0);try{let u=l.projectID?`?projectID=${encodeURIComponent(l.projectID)}`:"",x=await k.request(`/api/mcp/${encodeURIComponent(l.name)}/oauth/clear${u}`,{method:"POST"});a.onChanged(x)}finally{S(!1)}}async function z(){if(!await f({title:`删除 ${l.name}?`,description:"删除后将断开连接并不再向会话提供其工具。",action:"删除",danger:!0}))return;S(!0);try{let x=l.projectID?`?projectID=${encodeURIComponent(l.projectID)}`:"";await k.request(`/api/mcp/${encodeURIComponent(l.name)}${x}`,{method:"DELETE"}),a.onChanged(),a.onClose()}finally{S(!1)}}let E=l.config,M=te(E),j="error"in l.status?l.status.error:void 0,se=m?.length??l.toolCount??0;return e(I,{open:!0,className:"bg-panel shadow-float",onOpenChange:(u)=>{if(!u&&!D)a.onClose()},title:n("div",{className:"flex flex-wrap items-center gap-3",children:[e("div",{className:"flex size-8 items-center justify-center rounded-[10px] border border-accent/20 bg-accent-soft text-accent",children:E.type==="local"?e(lt,{className:"size-4"}):e(be,{className:"size-4"})}),e("span",{className:"font-serif text-lg font-semibold tracking-tight text-ink",children:l.name}),U?e(y,{tone:"success",pulse:!0,children:"已连接"}):B?e(y,{tone:"warning",pulse:!0,children:"需要授权"}):ee?e(y,{tone:"danger",children:"连接失败"}):l.status.status==="disabled"?e(y,{tone:"neutral",children:"已停用"}):e(y,{tone:"neutral",children:"未连接"})]}),description:n("div",{className:"mt-2 flex min-w-0 flex-wrap items-center gap-1.5 text-xs",children:[n("span",{className:"flex min-w-0 max-w-full items-center gap-1 rounded-lg border border-line bg-raised/60 py-0.5 pr-1 pl-2.5 font-mono text-[11.5px] text-ink",children:[e("span",{className:"min-w-0 truncate",title:M,children:M}),e(v,{text:M,label:"复制地址",size:"icon-xs",className:"shrink-0 text-dim hover:text-ink"})]}),e("span",{className:"rounded-lg border border-line px-2 py-1 text-[11px] leading-none text-dim",children:E.type==="local"?"本地命令":"远程 HTTP"}),L&&n("span",{className:c("control.badgeAccent","gap-1 rounded-lg border border-accent/25 px-2 py-1"),children:[e(xt,{className:"size-3"}),"OAuth 2.0"]})]}),size:"lg",footer:n("div",{className:"flex w-full items-center justify-between gap-2 max-sm:flex-col",children:[n("div",{className:"flex items-center gap-1 max-sm:w-full",children:[L&&e(d,{type:"button",variant:"ghost",onClick:X,disabled:D,title:"清除已保存的 OAuth 凭据",children:"清除凭据"}),e(d,{type:"button",variant:"danger-ghost",size:"icon-sm","aria-label":"删除服务器",onClick:z,disabled:D,title:"删除服务器",children:e(ne,{className:"size-4"})})]}),n("div",{className:"flex items-center gap-2 max-sm:w-full max-sm:justify-end",children:[e(d,{type:"button",variant:"ghost",onClick:a.onEdit,disabled:D,children:"编辑配置"}),!B&&e(d,{type:"button",variant:"secondary",onClick:()=>ae(U?"disconnect":"connect"),disabled:D,children:D?"处理中...":U?"断开连接":"立即连接"}),e(d,{type:"button",variant:"primary",onClick:a.onClose,children:"完成"})]})]}),children:n("div",{className:"space-y-6 pt-1",children:[B&&e("div",{className:"relative overflow-hidden rounded-2xl border border-warning/30 bg-[radial-gradient(120%_140%_at_0%_0%,color-mix(in_oklch,var(--color-warning)_16%,transparent),transparent_65%)] p-5",children:n("div",{className:"flex items-start gap-4 max-sm:flex-col",children:[e("div",{className:"relative flex size-11 shrink-0 items-center justify-center rounded-xl border border-warning/30 bg-panel text-warning shadow-[0_0_28px_-4px_color-mix(in_oklch,var(--color-warning)_55%,transparent)]",children:e(ve,{className:"size-5"})}),n("div",{className:"min-w-0 flex-1 space-y-1.5",children:[e("h4",{className:"text-sm font-semibold text-ink",children:"授权后即可使用此服务器"}),e("p",{className:"text-[13px] leading-relaxed text-dim",children:"该端点要求 OAuth 2.0 身份许可。在浏览器中完成授权后,令牌会自动保存并载入全部工具。"}),j&&e("p",{className:"line-clamp-2 break-words font-mono text-[11.5px] text-faint",title:j,children:j})]}),n(d,{type:"button",variant:"primary",onClick:Q,disabled:D,className:"shrink-0",children:[e(Wt,{className:"mr-1.5 size-3.5"}),D?"正在拉起授权...":"前往授权"]})]})}),ee&&n("div",{className:c("callout.base",c("callout.danger"),"gap-3 rounded-2xl p-4"),children:[e(bt,{className:"mt-0.5 size-4 shrink-0 text-danger"}),n("div",{className:"min-w-0 space-y-1",children:[e("h4",{className:"text-sm font-medium text-ink",children:"连接失败"}),e("p",{className:"font-mono text-[11.5px] leading-relaxed break-words text-dim",children:j})]})]}),n("section",{className:"space-y-3",children:[n("div",{className:"flex items-baseline justify-between gap-3 px-0.5",children:[n("h4",{className:"flex items-center gap-2 text-[13px] font-medium text-ink",children:["可用工具",e("span",{className:"rounded-full bg-raised px-1.5 py-0.5 font-mono text-[11px] leading-none text-dim",children:se})]}),e("span",{className:"text-[11.5px] text-faint",children:"对所有会话可用"})]}),O?e("div",{className:c("callout.base",c("callout.danger"),"text-xs leading-relaxed break-words"),children:O}):!U?n("div",{className:c("surface.emptyDashed","gap-2 py-10"),children:[e("div",{className:"flex size-10 items-center justify-center rounded-full bg-raised text-faint",children:e(an,{className:"size-4.5"})}),e("p",{className:"text-[13px] font-medium text-dim",children:B?"等待授权":"尚未连接"}),e("p",{className:"max-w-xs text-xs leading-relaxed text-faint",children:B?"授权完成后会自动连接并列出工具。":"连接服务器后,这里会列出它提供的全部工具。"})]}):!m?e("div",{role:"status","aria-label":"正在获取工具列表",className:"grid gap-2",children:[0,1,2].map((u)=>n("div",{className:"animate-pulse space-y-2.5 rounded-xl border border-line p-3.5",children:[e("div",{className:"h-3.5 w-32 rounded bg-raised"}),e("div",{className:"h-3 w-4/5 rounded bg-raised/70"})]},u))}):m.length===0?n("div",{className:c("surface.emptyDashed","gap-2 py-10"),children:[e("div",{className:"flex size-10 items-center justify-center rounded-full bg-raised text-faint",children:e(an,{className:"size-4.5"})}),e("p",{className:"text-[13px] font-medium text-dim",children:"没有可用工具"}),e("p",{className:"max-w-xs text-xs leading-relaxed text-faint",children:"已连接成功,但该服务器没有声明任何工具。"})]}):e("ul",{className:"grid gap-2",children:m.map((u)=>{let x=u.inputSchema?.properties??{},t=u.inputSchema?.required??[],C=Object.entries(x);return n("li",{className:c("surface.subtle","border-line bg-raised/30 p-3.5 transition-colors hover:border-line-strong hover:bg-raised/60"),children:[e("span",{className:"font-mono text-[13px] font-medium break-all text-accent",children:u.name}),u.description&&e("p",{className:"mt-1.5 text-[13px] leading-relaxed break-words text-dim",children:u.description}),C.length>0&&e("div",{className:"mt-3 flex flex-wrap gap-1.5",children:C.map(([p,T])=>n("span",{title:t.includes(p)?"必填参数":"可选参数",className:"inline-flex items-center gap-1 rounded-md border border-line bg-panel px-1.5 py-1 font-mono text-[11px] leading-none",children:[e("span",{className:"text-ink",children:p}),t.includes(p)&&e("span",{className:"text-warning",children:"*"}),e("span",{className:"text-faint",children:Pe(T)})]},p))})]},u.name)})})]})]})})}var De=/^[A-Za-z0-9_-]{1,64}$/;function W(a){return e("span",{className:"truncate text-xs text-faint",children:a.children})}function we(a){let{pairs:d,onChange:v,InputComponent:I}=a,y=(f,c)=>v(d.map((P,l)=>l===f?{...P,...c}:P));return n("div",{className:"space-y-2",children:[n("div",{className:"flex min-h-7 items-center gap-2",children:[e("span",{className:"shrink-0 text-[13px] font-medium text-dim",children:a.label}),e(W,{children:a.tip}),n("button",{type:"button",className:"ml-auto inline-flex h-7 shrink-0 cursor-pointer items-center gap-1 rounded-lg px-2 text-xs font-medium text-dim transition-colors hover:bg-raised hover:text-ink",onClick:()=>v([...d,{key:"",value:"",saved:!1}]),children:[e(ce,{className:"size-3.5"}),"添加"]})]}),d.map((f,c)=>n("div",{className:"flex min-w-0 items-center gap-1.5",children:[e(I,{"aria-label":`${a.keyLabel} ${c+1}`,placeholder:a.keyLabel,value:f.key,readOnly:f.saved,onChange:(P)=>y(c,{key:P.target.value}),className:"min-w-0 flex-[2] font-mono text-xs"}),e(I,{"aria-label":`${a.keyLabel} ${f.key||c+1} 的值`,type:"password",autoComplete:"off",placeholder:f.saved?"已保存,留空保持不变":"值",value:f.value,onChange:(P)=>y(c,{value:P.target.value}),className:"min-w-0 flex-[3] font-mono text-xs"}),e("button",{type:"button","aria-label":`删除 ${f.key||"该项"}`,className:"flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-lg text-faint transition-colors hover:bg-danger/10 hover:text-danger",onClick:()=>v(d.filter((P,l)=>l!==c)),children:e(Z,{className:"size-4"})})]},c))]})}function ke(a){return Object.keys(a??{}).map((d)=>({key:d,value:"",saved:!0}))}function Ie(a){let{Button:d,Segmented:v,Dialog:I,Form:y,Field:f,Input:c,Switch:P,style:l,useTheme:k}=b();k();let{existing:m}=a,[G,O]=r(m?.config.type??"local"),[H,D]=r(m?.name??""),[S,U]=r(m?.config.type==="local"?de(m.config.command):""),[B,ee]=r(m?.config.type==="remote"?m.config.url:""),[L,ae]=r(ke(m?.config.type==="local"?m.config.environment:void 0)),[Q,X]=r(ke(m?.config.type==="remote"?m.config.headers:void 0)),z=m?.config.type==="remote"?m.config.oauth:void 0,[E,M]=r(Boolean(z)),[j,se]=r(typeof z==="object"&&z.clientId?z.clientId:""),[u,x]=r(""),[t,C]=r(typeof z==="object"&&z.scope?z.scope:""),[p,T]=r(m?.config.defer??"default"),[F,pe]=r(m?.config.timeout!==void 0?String(m.config.timeout):""),[V,Se]=r(m?.config.defer!==void 0||m?.config.timeout!==void 0),[fe,Y]=r(),[le,ge]=r(!1);async function je(N){N.preventDefault(),Y(void 0);let w=H.trim();if(!m&&!De.test(w)){Y("名称只能包含英文字母、数字、下划线与中划线,长度 1-64");return}if(!m&&a.taken.includes(w)){Y("同名服务器已存在");return}let oe=F.trim()?Number.parseInt(F.trim(),10):void 0;if(oe!==void 0&&(!Number.isFinite(oe)||oe<=0)){Y("超时时间须为大于 0 的毫秒数");return}let ue;if(G==="local"){let _=he(S.trim());if(!_.length){Y("请输入启动命令");return}let A={};for(let q of L){let R=q.key.trim();if(!R)continue;if(!q.saved||q.value)A[R]=q.value}ue={type:"local",command:_,environment:Object.keys(A).length?A:void 0,enabled:m?m.config.enabled:!0,defer:p==="default"?void 0:p,timeout:oe}}else{let _=B.trim();try{let R=new URL(_);if(R.protocol!=="http:"&&R.protocol!=="https:")throw Error("bad protocol")}catch{Y("请输入合法的 HTTP 或 HTTPS 地址");return}let A={};for(let R of Q){let ie=R.key.trim();if(!ie)continue;if(!R.saved||R.value)A[ie]=R.value}let q;if(E){let R=j.trim(),ie=u.trim(),xe=t.trim();if(R||ie||xe)q={clientId:R||void 0,clientSecret:ie||void 0,scope:xe||void 0};else q=!0}else q=!1;ue={type:"remote",url:_,headers:Object.keys(A).length?A:void 0,oauth:q,enabled:m?m.config.enabled:!0,defer:p==="default"?void 0:p,timeout:oe}}ge(!0);try{let _=m?.name??w,A=m?m.projectID:a.projectID,q=A?`?projectID=${encodeURIComponent(A)}`:"";await a.connection.request(`/api/mcp/${encodeURIComponent(_)}${q}`,{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify(ue)}),a.onSaved()}catch(_){Y(_ instanceof Error?_.message:"保存失败")}finally{ge(!1)}}return e(I,{open:!0,onOpenChange:(N)=>{if(!N&&!le)a.onClose()},title:m?`编辑 ${m.name}`:"添加 MCP 服务器",size:"lg",footer:n("div",{className:"flex w-full justify-end gap-2.5",children:[e(d,{type:"button",variant:"ghost",onClick:a.onClose,disabled:le,className:"min-w-20",children:"取消"}),e(d,{type:"submit",form:"mcp-server-form",variant:"primary",disabled:le,className:"min-w-24",children:le?"保存中...":"保存"})]}),children:n(y,{id:"mcp-server-form",onSubmit:je,children:[e(v,{value:G,onChange:(N)=>O(N),className:"w-full [&>button]:flex-1",options:[{value:"local",label:"本地(标准输入输出)"},{value:"remote",label:"远程(HTTP / SSE)"}]}),!m&&e(f,{label:"名称",aside:e(W,{children:"唯一标识,如 postgres"}),children:(N)=>e(c,{id:N,value:H,onChange:(w)=>D(w.target.value),placeholder:"postgres",className:"font-mono text-xs"})}),G==="local"?n(g,{children:[e(f,{label:"启动命令",aside:e(W,{children:"完整命令及参数"}),children:(N)=>e(c,{id:N,value:S,onChange:(w)=>U(w.target.value),placeholder:"npx -y @modelcontextprotocol/server-postgres ...",className:"font-mono text-xs"})}),e(we,{label:"环境变量",tip:"启动进程时注入",keyLabel:"变量名",pairs:L,onChange:ae,InputComponent:c})]}):n(g,{children:[e(f,{label:"服务地址",aside:e(W,{children:"HTTP / HTTPS 端点"}),children:(N)=>e(c,{id:N,value:B,onChange:(w)=>ee(w.target.value),placeholder:"https://example.com/mcp",className:"font-mono text-xs"})}),e(we,{label:"请求头",tip:"随每次请求发送",keyLabel:"头字段",pairs:Q,onChange:X,InputComponent:c}),n("div",{className:"flex items-center justify-between gap-4",children:[n("div",{className:"min-w-0",children:[e("span",{className:"block text-[13px] font-medium text-dim",children:"OAuth 2.0 认证"}),e("span",{className:"block truncate text-xs text-faint",children:"自动发现授权端点,使用 PKCE 并刷新令牌"})]}),e(P,{checked:E,onCheckedChange:M,label:"启用 OAuth 2.0"})]}),E&&n(g,{children:[e(f,{label:"Client ID",aside:e(W,{children:"留空自动动态注册(DCR)"}),children:(N)=>e(c,{id:N,value:j,onChange:(w)=>se(w.target.value),placeholder:"留空自动动态注册",className:"font-mono text-xs"})}),e(f,{label:"Client Secret",aside:e(W,{children:"留空保持不变"}),children:(N)=>e(c,{id:N,type:"password",autoComplete:"off",value:u,onChange:(w)=>x(w.target.value),placeholder:"••••••••",className:"font-mono text-xs"})}),e(f,{label:"Scope",aside:e(W,{children:"选填授权范围"}),children:(N)=>e(c,{id:N,value:t,onChange:(w)=>C(w.target.value),placeholder:"repo read:org",className:"font-mono text-xs"})})]})]}),n("div",{className:"space-y-3 border-t border-line/60 pt-3",children:[n("button",{type:"button","aria-expanded":V,className:"flex w-full cursor-pointer items-center gap-1.5 text-[13px] font-medium text-dim transition-colors hover:text-ink",onClick:()=>Se(!V),children:[e(rt,{className:`size-3.5 transition-transform ${V?"rotate-90":""}`}),"高级设置",e("span",{className:"truncate text-xs font-normal text-faint",children:"加载时机、超时"})]}),V&&n("div",{className:"grid grid-cols-2 gap-3 max-sm:grid-cols-1",children:[e(f,{label:"加载时机",aside:e(W,{children:"延迟 = 按需加载"}),children:()=>e(v,{value:p,onChange:(N)=>T(N),className:"w-full [&>button]:flex-1",options:[{value:"default",label:"默认"},{value:"defer",label:"延迟"},{value:"always",label:"常驻"}]})}),e(f,{label:"超时(毫秒)",aside:e(W,{children:"留空用默认"}),children:(N)=>e(c,{id:N,value:F,onChange:(w)=>pe(w.target.value),placeholder:"默认",className:"font-mono text-xs"})})]})]}),fe&&n("div",{role:"alert",className:l("callout.base",l("callout.danger"),"px-3 py-2.5 text-xs"),children:[e(K,{className:"mt-0.5 size-3.5 shrink-0"}),e("span",{className:"min-w-0 break-words",children:fe})]})]})})}var re="global";function nt({connection:a}){let{Button:d,Input:v,Select:I,style:y,useTheme:f}=b();f();let[c,P]=r(""),[l,k]=r(),[m,G]=r([]),[O,H]=r(re),[D,S]=r(),[U,B]=r(!1),[ee,L]=r(),[ae,Q]=r(!1),X=i(!1),[z,E]=r(),M=i(0),j=h(async()=>{let t=++M.current;B(!0);try{let C=O===re?"":`?projectID=${encodeURIComponent(O)}`,[p,T]=await Promise.all([a.request(`/api/mcp${C}`),a.request("/api/projects")]);if(t!==M.current)return;k(p),G(T),S(void 0)}catch(C){if(t===M.current)S(C instanceof Error?C.message:"读取失败")}finally{if(t===M.current)B(!1)}},[a,O]);o(()=>(j(),()=>{M.current++}),[j]);async function se(t,C){if(X.current)return;X.current=!0,Q(!0);let p=M.current;try{let T=t.projectID?`?projectID=${encodeURIComponent(t.projectID)}`:"",F=await a.request(`/api/mcp/${encodeURIComponent(t.name)}${T}`,{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({...t.config,enabled:C})});if(p===M.current)k((pe)=>pe?.map((V)=>V.name===F.name&&V.projectID===F.projectID?F:V))}finally{X.current=!1,Q(!1)}}let u=l?.filter((t)=>`${t.name} ${te(t.config)}`.toLowerCase().includes(c.trim().toLowerCase())),x=l?.find((t)=>t.name===ee);return n("div",{className:"min-w-0 space-y-6",children:[n("section",{className:"min-w-0",children:[n("div",{className:"mb-2.5 flex flex-wrap items-end justify-between gap-3 px-0.5",children:[n("div",{className:"min-w-0 flex-1 basis-48",children:[e("h2",{className:y("settings.groupTitle"),children:"MCP 服务器"}),e("p",{className:y("settings.groupDesc"),children:"外部工具与数据源管理"})]}),n("div",{className:"flex flex-wrap items-center justify-end gap-2",children:[e(I,{value:O,disabled:U,onValueChange:(t)=>{L(void 0),E(void 0),k(void 0),H(t)},groups:[{options:[{value:re,label:"全局"}]},...m.length?[{label:"项目",options:m.map((t)=>({value:t.id,label:t.name,description:t.directory}))}]:[]],className:"w-44"}),e(d,{variant:"ghost",disabled:U,onClick:j,className:"h-9 px-2.5 text-xs",children:e(J,{className:`size-3.5 ${U?"animate-spin":""}`})}),n(d,{variant:"secondary",onClick:()=>E({}),className:"h-9 px-2.5 text-xs",children:[e(ce,{className:"size-3.5 mr-1"}),"添加服务器"]})]})]}),D&&n("div",{role:"alert",className:y("callout.base",y("callout.danger"),"mb-3 flex-wrap items-center justify-between"),children:[n("p",{className:"min-w-0 flex-1 break-words text-sm text-danger",children:["无法读取 MCP 服务器:",D]}),e(d,{disabled:U,onClick:j,children:"重试"})]}),n("div",{className:"relative mb-3 min-w-0",children:[e(me,{"aria-hidden":!0,className:"pointer-events-none absolute top-3 left-3 size-4 text-faint"}),e(v,{type:"search","aria-label":"搜索 MCP 服务器",placeholder:"搜索服务器",value:c,onChange:(t)=>P(t.target.value),className:"h-10 min-w-0 pl-9"})]}),e("div",{className:y("settings.groupBox"),children:!l?e("div",{role:"status","aria-label":"正在加载",className:"divide-y divide-line",children:[0,1,2].map((t)=>n("div",{className:"h-16 space-y-2 px-4 py-3",children:[e("div",{className:"h-3 w-24 animate-pulse rounded bg-raised"}),e("div",{className:"h-3 w-2/3 animate-pulse rounded bg-raised"})]},t))}):u?.length===0?e("p",{className:"p-4 text-sm text-dim",children:"没有匹配的 MCP 服务器"}):e("ul",{className:"divide-y divide-line",children:u?.map((t)=>{let C=t.config.enabled===!1,p=t.scope==="file";return n("li",{className:`flex min-w-0 items-center justify-between gap-3 px-4 py-2.5 transition-colors hover:bg-raised/40 ${C?"opacity-55":""}`,children:[n("button",{type:"button",className:"group flex min-h-12 min-w-0 flex-1 cursor-pointer items-center gap-3 py-1 text-left focus-visible:outline-2 focus-visible:outline-accent","aria-label":`查看 ${t.name}`,disabled:p,title:p?"来自项目的 .mcp.json,只读":void 0,onClick:()=>L(t.name),children:[e("span",{"aria-hidden":!0,className:"flex size-9 shrink-0 items-center justify-center rounded-lg bg-raised text-dim",children:t.config.type==="local"?e(lt,{className:"size-4"}):e(be,{className:"size-4"})}),n("span",{className:"min-w-0 flex-1",children:[e("span",{className:"block truncate text-sm font-medium text-ink",title:t.name,children:t.name}),e("span",{className:"mt-0.5 block truncate font-mono text-xs text-dim",title:te(t.config),children:te(t.config)})]}),e("span",{className:y("control.badge","shrink-0 text-[11px] text-dim"),children:t.scope==="project"?"项目":t.scope==="file"?".mcp.json":"全局"}),e(Ne,{info:t})]}),e("span",{className:"relative flex size-10 shrink-0 items-center justify-center",children:!p&&e("input",{type:"checkbox","aria-label":`启用服务器 ${t.name}`,className:ye,disabled:ae||U,checked:!C,onChange:(T)=>se(t,T.target.checked)})})]},t.name)})})})]}),x&&!z&&e(Ce,{connection:a,info:x,onClose:()=>L(void 0),onEdit:()=>E({info:x}),onChanged:(t)=>t?k((C)=>C?.map((p)=>p.name===t.name?t:p)):j()},`${x.projectID}:${x.name}`),z&&e(Ie,{connection:a,projectID:O===re?void 0:O,existing:z.info,taken:(l??[]).filter((t)=>t.scope===(O===re?"global":"project")).map((t)=>t.name),onClose:()=>E(void 0),onSaved:()=>{E(void 0),j()}})]})}export{nt as McpSection};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h,o,Y,i,r,e,n,b,K,J}from"./chunk-gcwhx3av.js";import{qt}from"./chunk-7f1t7z72.js";var L={config:"自定义路径",env:"环境变量",system:"系统预装"};function U({connection:p}){let{Button:m,Input:P,Switch:v,SettingActions:I,SettingGroup:B,SettingRow:w,cn:x}=b(),k=Y(),[S,N]=r({}),[a,d]=r({}),[l,C]=r(null),[u,q]=r(!0),[R,E]=r(!1),[g,A]=r(!1),[f,c]=r(null),T=i(null),z=(a.executable??"")!==(S.executable??"")||Boolean(a.noSandbox)!==Boolean(S.noSandbox)||Boolean(a.ignoreCertErrors)!==Boolean(S.ignoreCertErrors),O=h(async(t)=>{E(!0);try{let s=await p.request("/api/plugins/browser/status",{signal:t});C(s)}catch(s){if(!t?.aborted)C({available:!1,error:s instanceof Error?s.message:"无法获取浏览器状态"})}finally{if(!t?.aborted)E(!1)}},[p]);o(()=>{let t=new AbortController;return T.current=t,Promise.all([p.request("/api/plugins/browser/settings",{signal:t.signal}),p.request("/api/plugins/browser/status",{signal:t.signal})]).then(([s,y])=>{if(!t.signal.aborted)N(s),d(s),C(y)}).catch((s)=>{if(!t.signal.aborted)c({type:"error",text:s instanceof Error?s.message:"读取浏览器设置失败"})}).finally(()=>{if(!t.signal.aborted)q(!1)}),()=>t.abort()},[p]);let D=async(t)=>{if(t?.preventDefault(),g||u)return;let s=new AbortController;A(!0),c(null);try{if(await p.request("/api/plugins/browser/settings",{method:"PATCH",signal:s.signal,headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),!s.signal.aborted)N(a),c({type:"success",text:"设置已保存,将在浏览器进程下次启动时生效。"}),await O(s.signal)}catch(y){if(!s.signal.aborted)c({type:"error",text:y instanceof Error?y.message:"保存设置失败"})}finally{if(!s.signal.aborted)A(!1)}},G=()=>{d(S),c(null)};return n("form",{id:k,onSubmit:D,className:"min-w-0 space-y-5",children:[e(B,{title:"运行环境",children:e(w,{title:n("span",{className:"flex items-center gap-2",children:[e("span",{className:x("size-2 shrink-0 rounded-full",l?.available?"bg-success":"bg-danger")}),l?l.available?"浏览器可用":"未检测到可用浏览器":"正在检测…"]}),description:l&&!l.available&&l.error?e("span",{className:"text-danger",children:l.error}):l?.available&&l.source?`来源:${L[l.source]??l.source}`:void 0,children:n(m,{type:"button",size:"sm",variant:"ghost",disabled:u||R,onClick:()=>void O(),className:"text-dim",children:[e(J,{className:x("size-3.5",R&&"animate-spin")}),"重新检测"]})})}),n(B,{title:"启动参数",children:[e(w,{vertical:!0,title:"可执行文件路径",description:"留空时自动探测系统浏览器",children:n("div",{className:"flex gap-2",children:[e(P,{id:"browser-executable",disabled:u||g,value:a.executable??"",placeholder:"自动探测",onChange:(t)=>{d({...a,executable:t.target.value}),c(null)}}),a.executable&&e(m,{type:"button",variant:"ghost",size:"sm",disabled:u||g,onClick:()=>{d({...a,executable:""}),c(null)},className:"shrink-0",children:"清空"})]})}),e(w,{title:"禁用沙箱 (--no-sandbox)",description:"容器或 root 环境使用",children:e(v,{label:"禁用沙箱",disabled:u||g,checked:a.noSandbox??!1,onCheckedChange:(t)=>{d({...a,noSandbox:t}),c(null)}})}),e(w,{title:"忽略证书错误 (--ignore-certificate-errors)",description:"跳过自签名与证书有效性检查",children:e(v,{label:"忽略证书错误",disabled:u||g,checked:a.ignoreCertErrors??!1,onCheckedChange:(t)=>{d({...a,ignoreCertErrors:t}),c(null)}})})]}),n(I,{children:[f&&n("span",{role:f.type==="error"?"alert":"status",className:x("mr-auto flex min-w-0 items-center gap-1.5 text-xs",f.type==="success"?"text-success":"text-danger"),children:[f.type==="success"?e(qt,{className:"size-3.5 shrink-0"}):e(K,{className:"size-3.5 shrink-0"}),e("span",{className:"min-w-0 break-words",children:f.text})]}),z&&e(m,{type:"button",variant:"ghost",size:"sm",disabled:u||g,onClick:G,children:"撤销更改"}),e(m,{form:k,type:"submit",variant:"primary",size:"sm",disabled:u||g||!z,children:g?"保存中…":"保存"})]})]})}export{U as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Ci}from"./chunk-8dp7h6w8.js";export{Ci as createPieServices};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import{G}from"./chunk-jzte2phh.js";import{t,a,ke,D,x,B,C,S,E,T,A,L,R,V,U}from"./chunk-3q0v8w45.js";import{ee}from"./chunk-8dp7h6w8.js";var v={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},M=32,k={axes:[],curves:[],options:v},h=structuredClone(k),H=D.radar,j=t(()=>U({...H,...x().radar}),"getConfig"),O=t(()=>h.axes,"getAxes"),X=t(()=>h.curves,"getCurves"),K=t(()=>h.options,"getOptions"),N=t((n)=>{h.axes=n.map((e)=>({name:e.name,label:e.label??e.name}))},"setAxes"),Y=t((n)=>{h.curves=n.map((e)=>({name:e.name,label:e.label??e.name,entries:Z(e.entries)}))},"setCurves"),Z=t((n)=>{if(n[0].axis==null)return n.map((r)=>r.value);let e=O();if(e.length===0)throw Error("Axes must be populated before curves for reference entries");return e.map((r)=>{let s=n.find((o)=>o.axis?.$refText===r.name);if(s===void 0)throw Error("Missing entry for axis "+r.label);return s.value})},"computeCurveEntries"),q=t((n)=>{let e=n.reduce((r,s)=>(r[s.name]=s,r),{});if(h.options={showLegend:e.showLegend?.value??v.showLegend,ticks:e.ticks?.value??v.ticks,max:e.max?.value??v.max,min:e.min?.value??v.min,graticule:e.graticule?.value??v.graticule},h.options.ticks>M)a.warn(`Radar diagram ticks (${h.options.ticks}) exceeds maximum allowed (${M}). Using ${M} instead.`),h.options.ticks=M},"setOptions"),J=t(()=>{C(),h=structuredClone(k)},"clear"),w={getAxes:O,getCurves:X,getOptions:K,setAxes:N,setCurves:Y,setOptions:q,getConfig:j,clear:J,setAccTitle:S,getAccTitle:E,setDiagramTitle:L,getDiagramTitle:R,getAccDescription:A,setAccDescription:T},Q=t((n)=>{G(n,w);let{axes:e,curves:r,options:s}=n;w.setAxes(e),w.setCurves(r),w.setOptions(s)},"populate"),tt={parse:t(async(n)=>{let e=await ee("radar",n);a.debug(e),Q(e)},"parse")},et=t((n,e,r,s)=>{let o=s.db,c=o.getAxes(),d=o.getCurves(),i=o.getOptions(),l=o.getConfig(),u=o.getDiagramTitle(),m=V(e),p=at(m,l),g=i.max??Math.max(...d.map((b)=>Math.max(...b.entries))),f=i.min,y=Math.min(l.width,l.height)/2;rt(p,c,y,i.ticks,i.graticule),nt(p,c,y,l),I(p,c,d,f,g,i.graticule,l),P(p,d,i.showLegend,l),p.append("text").attr("class","radarTitle").text(u).attr("x",0).attr("y",-l.height/2-l.marginTop)},"draw"),at=t((n,e)=>{let r=e.width+e.marginLeft+e.marginRight,s=e.height+e.marginTop+e.marginBottom,o={x:e.marginLeft+e.width/2,y:e.marginTop+e.height/2};return B(n,s,r,e.useMaxWidth??!0),n.attr("viewBox",`0 0 ${r} ${s}`).attr("overflow","visible"),n.append("g").attr("transform",`translate(${o.x}, ${o.y})`)},"drawFrame"),rt=t((n,e,r,s,o)=>{if(o==="circle")for(let c=0;c<s;c++){let d=r*(c+1)/s;n.append("circle").attr("r",d).attr("class","radarGraticule")}else if(o==="polygon"){let c=e.length;for(let d=0;d<s;d++){let i=r*(d+1)/s,l=e.map((u,m)=>{let p=2*m*Math.PI/c-Math.PI/2,g=i*Math.cos(p),f=i*Math.sin(p);return`${g},${f}`}).join(" ");n.append("polygon").attr("points",l).attr("class","radarGraticule")}}},"drawGraticule"),nt=t((n,e,r,s)=>{let o=e.length;for(let c=0;c<o;c++){let d=e[c].label,i=2*c*Math.PI/o-Math.PI/2,l=Math.cos(i),u=Math.sin(i);n.append("line").attr("x1",0).attr("y1",0).attr("x2",r*s.axisScaleFactor*l).attr("y2",r*s.axisScaleFactor*u).attr("class","radarAxisLine");let m=l>0.01?"start":l<-0.01?"end":"middle",p=u>0.01?"hanging":u<-0.01?"auto":"central",g=4;n.append("text").text(d).attr("x",r*s.axisLabelFactor*l+g*l).attr("y",r*s.axisLabelFactor*u+g*u).attr("text-anchor",m).attr("dominant-baseline",p).attr("class","radarAxisLabel")}},"drawAxes");function I(n,e,r,s,o,c,d){let i=e.length,l=Math.min(d.width,d.height)/2;r.forEach((u,m)=>{if(u.entries.length!==i)return;let p=u.entries.map((g,f)=>{let y=2*Math.PI*f/i-Math.PI/2,b=_(g,s,o,l),z=b*Math.cos(y),W=b*Math.sin(y);return{x:z,y:W}});if(c==="circle")n.append("path").attr("d",F(p,d.curveTension)).attr("class",`radarCurve-${m}`);else if(c==="polygon")n.append("polygon").attr("points",p.map((g)=>`${g.x},${g.y}`).join(" ")).attr("class",`radarCurve-${m}`)})}t(I,"drawCurves");function _(n,e,r,s){let o=Math.min(Math.max(n,e),r);return s*(o-e)/(r-e)}t(_,"relativeRadius");function F(n,e){let r=n.length,s=`M${n[0].x},${n[0].y}`;for(let o=0;o<r;o++){let c=n[(o-1+r)%r],d=n[o],i=n[(o+1)%r],l=n[(o+2)%r],u={x:d.x+(i.x-c.x)*e,y:d.y+(i.y-c.y)*e},m={x:i.x-(l.x-d.x)*e,y:i.y-(l.y-d.y)*e};s+=` C${u.x},${u.y} ${m.x},${m.y} ${i.x},${i.y}`}return`${s} Z`}t(F,"closedRoundCurve");function P(n,e,r,s){if(!r)return;let o=(s.width/2+s.marginRight)*3/4,c=-(s.height/2+s.marginTop)*3/4,d=20;e.forEach((i,l)=>{let u=n.append("g").attr("transform",`translate(${o}, ${c+l*d})`);u.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${l}`),u.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(i.label)})}t(P,"drawLegend");var st={draw:et},ot=t((n,e)=>{let r="";for(let s=0;s<n.THEME_COLOR_LIMIT;s++){let o=n[`cScale${s}`];r+=`
|
|
2
|
+
.radarCurve-${s} {
|
|
3
|
+
color: ${o};
|
|
4
|
+
fill: ${o};
|
|
5
|
+
fill-opacity: ${e.curveOpacity};
|
|
6
|
+
stroke: ${o};
|
|
7
|
+
stroke-width: ${e.curveStrokeWidth};
|
|
8
|
+
}
|
|
9
|
+
.radarLegendBox-${s} {
|
|
10
|
+
fill: ${o};
|
|
11
|
+
fill-opacity: ${e.curveOpacity};
|
|
12
|
+
stroke: ${o};
|
|
13
|
+
}
|
|
14
|
+
`}return r},"genIndexStyles"),it=t((n)=>{let e=ke(),r=x(),s=U(e,r.themeVariables),o=U(s.radar,n);return{themeVariables:s,radarOptions:o}},"buildRadarStyleOptions"),lt=t(({radar:n}={})=>{let{themeVariables:e,radarOptions:r}=it(n);return`
|
|
15
|
+
.radarTitle {
|
|
16
|
+
font-size: ${e.fontSize};
|
|
17
|
+
color: ${e.titleColor};
|
|
18
|
+
dominant-baseline: hanging;
|
|
19
|
+
text-anchor: middle;
|
|
20
|
+
}
|
|
21
|
+
.radarAxisLine {
|
|
22
|
+
stroke: ${r.axisColor};
|
|
23
|
+
stroke-width: ${r.axisStrokeWidth};
|
|
24
|
+
}
|
|
25
|
+
.radarAxisLabel {
|
|
26
|
+
font-size: ${r.axisLabelFontSize}px;
|
|
27
|
+
color: ${r.axisColor};
|
|
28
|
+
}
|
|
29
|
+
.radarGraticule {
|
|
30
|
+
fill: ${r.graticuleColor};
|
|
31
|
+
fill-opacity: ${r.graticuleOpacity};
|
|
32
|
+
stroke: ${r.graticuleColor};
|
|
33
|
+
stroke-width: ${r.graticuleStrokeWidth};
|
|
34
|
+
}
|
|
35
|
+
.radarLegendText {
|
|
36
|
+
text-anchor: start;
|
|
37
|
+
font-size: ${r.legendFontSize}px;
|
|
38
|
+
dominant-baseline: hanging;
|
|
39
|
+
}
|
|
40
|
+
${ot(e,r)}
|
|
41
|
+
`},"styles"),ht={parser:tt,db:w,renderer:st,styles:lt};export{ht as diagram};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{bi}from"./chunk-8dp7h6w8.js";export{bi as createWardleyServices};
|