aitu-app 0.6.78 → 0.6.80
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 +3 -3
- package/assets/CanvasAudioPlayer-CSFENxi6.js +2 -0
- package/assets/ChatDrawer-CWZQP5R5.css +1 -0
- package/assets/ChatDrawer-sVEVW11M.js +11 -0
- package/assets/ChatMessagesArea-Cnb94V8-.js +7 -0
- package/assets/ChatMessagesArea-PlF5AwzD.css +1 -0
- package/assets/DeferredAIInputBar-D99l6sBS.js +8 -0
- package/assets/DrawnixDeferredFeatures-78cIu-ev.js +2 -0
- package/assets/{KnowledgeBaseContent-DcX5Jofx.js → KnowledgeBaseContent-DZ-1fPZa.js} +10 -10
- package/assets/{MVCreator-DllHozYg.js → MVCreator-BV8KDR6E.js} +8 -8
- package/assets/ModelBenchmarkWorkbench-DL6r0Z_5.js +2 -0
- package/assets/MusicAnalyzer-D9Bpmhym.css +1 -0
- package/assets/{MusicAnalyzer-DDeT6g3c.js → MusicAnalyzer-DQtjf36o.js} +2 -2
- package/assets/{MusicAnalyzer-CHcQ5t4P.js → MusicAnalyzer-u_5sy56T.js} +1 -1
- package/assets/PromptHistoryTool-B-ktaOpK.js +2 -0
- package/assets/PromptHistoryTool-BH7hq916.css +1 -0
- package/assets/ResizableDivider-BpUFdkte.js +1 -0
- package/assets/TaskQueuePanel-BLD1r7_I.js +1 -0
- package/assets/{VideoAnalyzer-BSLz1FaI.js → VideoAnalyzer-Bjv9pyDs.js} +2 -2
- package/assets/ai-generation-preferences-service-BSpgVCHz.js +1 -0
- package/assets/arc-CnA_FoJK.js +1 -0
- package/assets/{arc-BU2KKCa_.js → arc-DDvk_-VM.js} +1 -1
- package/assets/{batch-image-generation-Bg68r_Ql.js → batch-image-generation-N-lwbjRE.js} +3 -3
- package/assets/{blockDiagram-38ab4fdb-BCGEnMME.js → blockDiagram-38ab4fdb-B2G4wjZe.js} +6 -6
- package/assets/{blockDiagram-38ab4fdb-CsZR5uC5.js → blockDiagram-38ab4fdb-DBkZWrKk.js} +1 -1
- package/assets/{browser-DpICcNby.js → browser-ZXTF4AKv.js} +1 -1
- package/assets/{c4Diagram-3d4e48cf-9fuiuFdV.js → c4Diagram-3d4e48cf-BFg-wccg.js} +1 -1
- package/assets/{c4Diagram-3d4e48cf-WM4wd_GR.js → c4Diagram-3d4e48cf-CmyNnfip.js} +1 -1
- package/assets/{canvas-insertion-CdUQF7IV.js → canvas-insertion-CKIoVZ9a.js} +1 -1
- package/assets/channel-BQh3J7kz.js +1 -0
- package/assets/channel-CPsF_uSp.js +1 -0
- package/assets/{classDiagram-70f12bd4-DcYDedz1.js → classDiagram-70f12bd4-BoP-e23u.js} +2 -2
- package/assets/{classDiagram-70f12bd4-CBVHTwQu.js → classDiagram-70f12bd4-UTHJc2XA.js} +1 -1
- package/assets/classDiagram-v2-f2320105-BeBc2H-D.js +2 -0
- package/assets/{classDiagram-v2-f2320105-jpCwaHEd.js → classDiagram-v2-f2320105-Bjwz5ljW.js} +1 -1
- package/assets/{clipper-jvd5rF5a.js → clipper-NoHaeWV4.js} +1 -1
- package/assets/clone-CA2KqVCK.js +1 -0
- package/assets/createText-2e5e7dd3-Bsu7vT-L.js +8 -0
- package/assets/{createText-2e5e7dd3-x5lOIwut.js → createText-2e5e7dd3-DrWUfa-s.js} +1 -1
- package/assets/{edges-e0da2a9e-CbrF4nbD.js → edges-e0da2a9e-B9sYOHRt.js} +1 -1
- package/assets/{edges-e0da2a9e-Ch6PBwWs.js → edges-e0da2a9e-DX4IQMED.js} +1 -1
- package/assets/{erDiagram-9861fffd-DSlNVuAZ.js → erDiagram-9861fffd-B-LfsIMf.js} +1 -1
- package/assets/{erDiagram-9861fffd-Bq07elcI.js → erDiagram-9861fffd-DPdud_LA.js} +1 -1
- package/assets/{flowDb-956e92f1-Ti5YC4Vv.js → flowDb-956e92f1-C3xKlizM.js} +1 -1
- package/assets/{flowDb-956e92f1-BqPCJlZp.js → flowDb-956e92f1-Ck5oiEta.js} +1 -1
- package/assets/{flowDiagram-66a62f08-CPDuG3rY.js → flowDiagram-66a62f08-Bkt2NoHM.js} +4 -4
- package/assets/{flowDiagram-66a62f08-D3GSABFi.js → flowDiagram-66a62f08-CJnxo6dI.js} +1 -1
- package/assets/flowDiagram-v2-96b9c2cf-MnwxRDMO.js +1 -0
- package/assets/flowDiagram-v2-96b9c2cf-U7nNPvdl.js +1 -0
- package/assets/{flowchart-elk-definition-4a651766-BH09NeLA.js → flowchart-elk-definition-4a651766-2XkrsdKI.js} +2 -2
- package/assets/{flowchart-elk-definition-4a651766-BLaLPCDV.js → flowchart-elk-definition-4a651766-ec8y1a8S.js} +1 -1
- package/assets/{ganttDiagram-c361ad54-DL9ZeaEc.js → ganttDiagram-c361ad54-1TA0mZY_.js} +3 -3
- package/assets/{ganttDiagram-c361ad54-Sp9M1KHP.js → ganttDiagram-c361ad54-D-OrVtXV.js} +3 -3
- package/assets/{gitGraphDiagram-72cf32ee-BWwmRKo-.js → gitGraphDiagram-72cf32ee-Blt3RsBD.js} +1 -1
- package/assets/{gitGraphDiagram-72cf32ee-BSf1fsDV.js → gitGraphDiagram-72cf32ee-CKf6xgO1.js} +1 -1
- package/assets/{graph-g-2U7grQ.js → graph-CUYgHJmb.js} +1 -1
- package/assets/{graph--nPw8zXQ.js → graph-WeSRtsZO.js} +1 -1
- package/assets/{index-ZrVeQUWo.js → index--MqiaN5t.js} +1 -1
- package/assets/{index-C5eu4uSl.js → index-0b_TeH8L.js} +11 -11
- package/assets/{index-3862675e-BXwbZ2pz.js → index-3862675e-C2ipEQC8.js} +1 -1
- package/assets/{index-3862675e-D6Zy95zZ.js → index-3862675e-CeX6VlsU.js} +1 -1
- package/assets/{index-CLJUfzvO.js → index-B-J0JJak.js} +1 -1
- package/assets/{index-TkfyNewx.js → index-B7Hj7g41.js} +1 -1
- package/assets/{index-eZfwJ9bV.js → index-BS_v5cOh.js} +1 -1
- package/assets/index-Btk31p7r.js +1 -0
- package/assets/{index-DH12_HTj.js → index-C-Samsu3.js} +2 -2
- package/assets/index-C-llNX01.js +1 -0
- package/assets/index-C8c9icsH.js +2 -0
- package/assets/{index-D7b5fX1d.js → index-CAn2jfNg.js} +1 -1
- package/assets/{index-Dz8sghkK.js → index-CK2zt94U.js} +1 -1
- package/assets/{index-CfgvFFx3.js → index-CP51k4n6.js} +17 -17
- package/assets/{index-DI0OV6F8.js → index-CXBhIy30.js} +1 -1
- package/assets/index-C_Mj1wbj.js +2 -0
- package/assets/{index-BwSnJN93.js → index-CbfE0MBd.js} +1 -1
- package/assets/{index-C3qD42ws.js → index-CjeDxq0c.js} +1 -1
- package/assets/{index-DqMndQiP.js → index-Ct7OFnWK.js} +1 -1
- package/assets/{index-BaCHOxhI.js → index-CxxUIkx1.js} +1 -1
- package/assets/{index-B2dttXd7.js → index-D2Kc-3MO.js} +1 -1
- package/assets/{index-Bq8mPedC.js → index-DK0XEByD.js} +1 -1
- package/assets/{index-DllL1sx1.js → index-DQcV2DYj.js} +1 -1
- package/assets/{index-BP77pG9S.js → index-DSKRBuhn.js} +73 -73
- package/assets/{index-BXzGHPXz.js → index-DXqL8NRE.js} +2 -2
- package/assets/{index-B7V7-Vxz.js → index-DcLrRIlS.js} +1 -1
- package/assets/{index-D4pIkh3S.js → index-DdA-dF0D.js} +1 -1
- package/assets/{index-QkP3EC02.js → index-DdxTnVj5.js} +1 -1
- package/assets/{index-CmyOpFTN.js → index-DmrnShhc.js} +1 -1
- package/assets/{index-Bti3m-iW.js → index-QO0uGVDP.js} +1 -1
- package/assets/{index-BPR_DyGD.js → index-aIKXDB1M.js} +1 -1
- package/assets/{index-DIiIUyb-.js → index-n6JhNACm.js} +1 -1
- package/assets/{index-BWrcsh8u.js → index-qbS_W7PW.js} +1 -1
- package/assets/index-v7iKPBEu.css +1 -0
- package/assets/{infoDiagram-f8f76790-DpFqCCNv.js → infoDiagram-f8f76790-DEWQ3NXc.js} +1 -1
- package/assets/{infoDiagram-f8f76790-G2JpJJP7.js → infoDiagram-f8f76790-u_qjHFCm.js} +3 -3
- package/assets/{journeyDiagram-49397b02-DLLTobRM.js → journeyDiagram-49397b02-C8A30CBr.js} +1 -1
- package/assets/{journeyDiagram-49397b02-BdESGMrv.js → journeyDiagram-49397b02-hQJfqZih.js} +1 -1
- package/assets/{layout-WSR0vNPO.js → layout-CFKTKeqQ.js} +1 -1
- package/assets/{layout-CVkuImk4.js → layout-DvRyabpG.js} +1 -1
- package/assets/{line-D3bnG227.js → line-C72F34Po.js} +1 -1
- package/assets/{line-DQuMJveY.js → line-W5R41tQ1.js} +1 -1
- package/assets/{linear-CciP-97N.js → linear-7FXykgHM.js} +1 -1
- package/assets/{linear-Z6vFvuwc.js → linear-CVyOPUvz.js} +1 -1
- package/assets/main-BO0HWBB1.js +42 -0
- package/assets/{main-8DNjLY6L.css → main-DAuE07rf.css} +1 -1
- package/assets/{mermaid.core-CwZQb0ud.js → mermaid.core-2VcXhn43.js} +4 -4
- package/assets/{mindmap-definition-fc14e90a-BnJ8OOTI.js → mindmap-definition-fc14e90a-CcVXKGg4.js} +1 -1
- package/assets/{mindmap-definition-fc14e90a-CxQMydCW.js → mindmap-definition-fc14e90a-DRDYXe84.js} +2 -2
- package/assets/model-benchmark-launcher-C2qBiDlM.js +1 -0
- package/assets/{photo-wall-splitter-BZ88W5Zy.js → photo-wall-splitter-CFntSOdS.js} +1 -1
- package/assets/{pieDiagram-8a3498a8-BSDdkTeu.js → pieDiagram-8a3498a8-Be9dl9pU.js} +1 -1
- package/assets/{pieDiagram-8a3498a8-D6VtAoja.js → pieDiagram-8a3498a8-DXZOJYBv.js} +5 -5
- package/assets/ppt-generation-B5fKT_by.js +48 -0
- package/assets/{quadrantDiagram-120e2f19-C8k2xuBd.js → quadrantDiagram-120e2f19-DoU7aQSp.js} +3 -3
- package/assets/{quadrantDiagram-120e2f19-BbFV0VXY.js → quadrantDiagram-120e2f19-l5K9mx26.js} +1 -1
- package/assets/{requirementDiagram-deff3bca-C3xMdzJV.js → requirementDiagram-deff3bca-DN_87Wxe.js} +1 -1
- package/assets/{requirementDiagram-deff3bca-CpjqKjYZ.js → requirementDiagram-deff3bca-DOooq7kx.js} +1 -1
- package/assets/retry-image-BmIVuAVu.js +6 -0
- package/assets/{sankeyDiagram-04a897e0-Bjvig9bW.js → sankeyDiagram-04a897e0-BB33nO6_.js} +1 -1
- package/assets/{sankeyDiagram-04a897e0-BBJJgsFv.js → sankeyDiagram-04a897e0-CCa0hwml.js} +2 -2
- package/assets/{sequenceDiagram-704730f1-PFC_9IFI.js → sequenceDiagram-704730f1-CNhXZiix.js} +1 -1
- package/assets/{sequenceDiagram-704730f1-DX1MmBN_.js → sequenceDiagram-704730f1-ZqQ1QrY-.js} +1 -1
- package/assets/settings-dialog-BFuWTeQR.js +1 -0
- package/assets/{skill-dsl-parser-syNWYxFu.js → skill-dsl-parser-b-aB3P5u.js} +1 -1
- package/assets/{stateDiagram-587899a1-Dc3mI_B_.js → stateDiagram-587899a1-BBlOIJr7.js} +1 -1
- package/assets/{stateDiagram-587899a1-SFMUVAam.js → stateDiagram-587899a1-BhomZ0AN.js} +1 -1
- package/assets/{stateDiagram-v2-d93cdb3a-P4Yt2p_j.js → stateDiagram-v2-d93cdb3a-BpJsgMa0.js} +1 -1
- package/assets/stateDiagram-v2-d93cdb3a-CuOn9du2.js +1 -0
- package/assets/{styles-6aaf32cf-C3jnr3hV.js → styles-6aaf32cf-C2WEewoA.js} +1 -1
- package/assets/{styles-6aaf32cf-b6AdP7fu.js → styles-6aaf32cf-CTtf8moq.js} +1 -1
- package/assets/{styles-9a916d00-BUiD9iBe.js → styles-9a916d00-44Xi2-39.js} +1 -1
- package/assets/{styles-9a916d00-ii0XTdIm.js → styles-9a916d00-DUU3VgNe.js} +4 -4
- package/assets/{styles-c10674c1-DbTSpy3W.js → styles-c10674c1--AhWSGg7.js} +1 -1
- package/assets/styles-c10674c1-DS-wE3tK.js +116 -0
- package/assets/{svgDrawCommon-08f97a94-D4gIV05W.js → svgDrawCommon-08f97a94-CXcvtSSy.js} +1 -1
- package/assets/{svgDrawCommon-08f97a94-BK6lD4D6.js → svgDrawCommon-08f97a94-Dyqh4V2s.js} +1 -1
- package/assets/{timeline-definition-85554ec2-Bl2y548G.js → timeline-definition-85554ec2-k788753O.js} +1 -1
- package/assets/{timeline-definition-85554ec2-CWKg_JxG.js → timeline-definition-85554ec2-sw6-UuBe.js} +1 -1
- package/assets/tool-windows-BEnZdJqF.js +2948 -0
- package/assets/{tool-windows-CUNbW1Tz.css → tool-windows-D61Le6TE.css} +1 -1
- package/assets/ttd-dialog-BJzXAZ0l.js +99 -0
- package/assets/useCharacters-DRBoWvvj.css +1 -0
- package/assets/useCharacters-gsV4K8Hn.js +2 -0
- package/assets/{useWorkflowSubmission-BizuDmuw.js → useWorkflowSubmission-XRR21P6Y.js} +10 -10
- package/assets/{video-analyze-6v3Y-rUE.js → video-analyze-CpbnpSiI.js} +1 -1
- package/assets/{video-generation-DnmTlWnm.js → video-generation-BXhS7x-a.js} +2 -2
- package/assets/video-recovery-service-6G2lkWcu.js +1 -0
- package/assets/workflow-generation-utils-CYxtSHl0.js +3 -0
- package/assets/workflow-submission-service-DygSzydV.js +4 -0
- package/assets/{xychartDiagram-e933f94c-CJX9_9WF.js → xychartDiagram-e933f94c-CvTTDwPb.js} +3 -3
- package/assets/{xychartDiagram-e933f94c-Cep8CQEH.js → xychartDiagram-e933f94c-Ga9zi9ha.js} +1 -1
- package/changelog.json +45 -0
- package/idle-prefetch-manifest.json +310 -306
- package/manifest.json +3 -3
- package/package.json +1 -1
- package/precache-manifest.json +10 -10
- package/sitemap.xml +37 -0
- package/sw-debug/app.js +269 -156
- package/sw-debug/backup-restore.js +235 -103
- package/sw-debug/crypto-helper.js +116 -120
- package/sw-debug/duplex-client.js +33 -19
- package/sw-debug/gist-management.js +938 -655
- package/sw-debug/sw-communication.js +87 -50
- package/sw.js +5 -5
- package/version.json +7 -17
- package/assets/CanvasAudioPlayer-DutgwdiU.js +0 -2
- package/assets/ChatDrawer-0jNvKIoI.css +0 -1
- package/assets/ChatDrawer-E6Fog16I.js +0 -11
- package/assets/ChatMessagesArea-Bgwiz_XP.js +0 -250
- package/assets/ChatMessagesArea-DyR_wHFQ.css +0 -1
- package/assets/DeferredAIInputBar-CPkD8Cv9.js +0 -8
- package/assets/DrawnixDeferredFeatures-Cul76-88.js +0 -2
- package/assets/ModelBenchmarkWorkbench-Dv9SNYTi.js +0 -2
- package/assets/MusicAnalyzer-DhtRGpAp.css +0 -1
- package/assets/ResizableDivider-CaG9JQbJ.js +0 -1
- package/assets/TaskQueuePanel-BNhNzGp5.js +0 -1
- package/assets/ai-generation-preferences-service-BF7QkuJp.js +0 -1
- package/assets/arc-DmGoDCEL.js +0 -1
- package/assets/channel-CZjE-WNp.js +0 -1
- package/assets/channel-SXZD6bG3.js +0 -1
- package/assets/classDiagram-v2-f2320105-CsxWGkSy.js +0 -2
- package/assets/clone-C4mvvMDb.js +0 -1
- package/assets/createText-2e5e7dd3-CkXS3l7I.js +0 -5
- package/assets/flowDiagram-v2-96b9c2cf-BCcJ-cre.js +0 -1
- package/assets/flowDiagram-v2-96b9c2cf-DCVaFEgV.js +0 -1
- package/assets/index-3eqA7Bag.js +0 -1
- package/assets/index-7Q-aiwln.js +0 -4
- package/assets/index-B1XP5g7P.css +0 -1
- package/assets/index-BHPTfCZM.js +0 -1
- package/assets/index-BqHZCcen.js +0 -2
- package/assets/index-DcZrElEK.js +0 -2
- package/assets/index-gQ7LgvSv.js +0 -12
- package/assets/main-BFEkxCOK.js +0 -56
- package/assets/model-benchmark-launcher-Ct3lYXVq.js +0 -1
- package/assets/ppt-generation-FzjP_rp0.js +0 -48
- package/assets/settings-dialog-CQM4v791.js +0 -1
- package/assets/stateDiagram-v2-d93cdb3a-DmnBjHpC.js +0 -1
- package/assets/styles-c10674c1-Bt89Yy8Q.js +0 -116
- package/assets/tool-windows-DOIu9TAD.js +0 -2975
- package/assets/ttd-dialog-DI4kQSg8.js +0 -99
- package/assets/useCharacters-Chv4Ky7x.js +0 -7
- package/assets/useCharacters-OrDbG69o.css +0 -1
- package/assets/video-recovery-service-BeRoh0s2.js +0 -1
- package/assets/workflow-generation-utils-me381Cax.js +0 -3
- package/assets/workflow-submission-service-YOpo7g37.js +0 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{dJ as Ri,dK as Oe,dL as ws,Y as m,dM as Es,$ as e,dN as ks,dO as Ds,c_ as zi,bU as Li,dP as $i,dQ as Gi,cQ as Ki,de as Us,aQ as ve,dR as Bi,aJ as Vs,dS as qs,dT as Is,dU as ji,aW as L,aS as Ms,dV as Fi,al as Ss,aF as Ps,bq as Cs,aV as O,dW as se,dX as As,dY as Pe,aU as Ve,dZ as re,q as qe,ds as he,du as ce,k as ue,d_ as ge,cM as Ce,y as P,cA as Ts,bY as wi,d$ as Os,e0 as Rs,e1 as zs,e2 as Ls,e3 as $s,e4 as Gs,aN as Ee,e5 as Me,e6 as Ne,e7 as Ei,e8 as ki,e9 as We,ea as Ae,eb as Ks,bW as Bs,ec as Fs,ed as Ze,ee as W,bv as pe,ef as Ws,eg as Zs,bJ as Ys,eh as Hs,aH as Qs,ei as Js,ej as Xs,ek as et,el as it}from"./tool-windows-BEnZdJqF.js";import{em as Rt,en as zt}from"./tool-windows-BEnZdJqF.js";import{o as st}from"./model-benchmark-launcher-C2qBiDlM.js";const Di={all:"全部",image:"图片",video:"视频",audio:"音频",text:"文本"},tt={image:"图片",video:"视频",audio:"音频",text:"文本"},nt={image:"图",video:"视",audio:"音",text:"文"},Ui=["text","image","video","audio"];function at(s,o){const d=o.trim().toLowerCase();return d?[s.id,s.label,s.shortLabel,s.shortCode,s.description,s.sourceProfileName,Oe(s.vendor)].filter(Boolean).some(g=>g==null?void 0:g.toLowerCase().includes(d)):!0}function dt(s){return ws(s)}function Vi(s,o){const d=new Map;for(const _ of s){const v=d.get(_.vendor)||{vendor:_.vendor,models:[],counts:{image:0,video:0,audio:0,text:0},selectedCount:0};v.models.push(_),v.counts[_.type]+=1,o.has(_.id)&&(v.selectedCount+=1),d.set(_.vendor,v)}const g=new Map(Ri.map((_,v)=>[_,v]));return Array.from(d.values()).sort((_,v)=>{const G=g.get(_.vendor)??Number.MAX_SAFE_INTEGER,H=g.get(v.vendor)??Number.MAX_SAFE_INTEGER;return G!==H?G-H:v.models.length-_.models.length})}function ot(s){return["image","video","audio","text"].filter(o=>s.counts[o]>0).map(o=>({type:o,models:dt(s.models.filter(d=>d.type===o))})).sort((o,d)=>d.models.length!==o.models.length?d.models.length-o.models.length:Ui.indexOf(o.type)-Ui.indexOf(d.type))}const lt=({open:s,container:o,models:d,selectedModelIds:g,onClose:_,onConfirm:v,onTestModel:G})=>{const[H,fe]=m.useState(""),[X,_e]=m.useState("all"),[K,E]=m.useState(g),[M,$]=m.useState({});m.useEffect(()=>{var A,Y;if(!s)return;fe(""),_e("all"),E(g);const c=new Set(g),w=Vi(d,c),y=((A=w.find(B=>B.selectedCount>0))==null?void 0:A.vendor)||((Y=w[0])==null?void 0:Y.vendor)||null,I={};w.forEach(B=>{I[B.vendor]=B.vendor===y}),$(I)},[d,s,g]);const te=m.useMemo(()=>({all:d.length,image:d.filter(c=>c.type==="image").length,video:d.filter(c=>c.type==="video").length,audio:d.filter(c=>c.type==="audio").length,text:d.filter(c=>c.type==="text").length}),[d]),F=m.useMemo(()=>{const c=H.trim(),w=X==="all"?d:d.filter(y=>y.type===X);return c?w.filter(y=>at(y,c)):w},[X,d,H]),h=m.useMemo(()=>new Set(K),[K]),C=m.useMemo(()=>Vi(F,h),[h,F]),V=K.length,Z=m.useMemo(()=>({image:d.filter(c=>c.type==="image"&&h.has(c.id)).length,video:d.filter(c=>c.type==="video"&&h.has(c.id)).length,text:d.filter(c=>c.type==="text"&&h.has(c.id)).length}),[d,h]),ne=F.length>0&&F.every(c=>h.has(c.id)),ee=m.useMemo(()=>d.filter(c=>Es(c.id)).map(c=>c.id),[d]),ke=ee.length>0&&ee.every(c=>h.has(c));m.useEffect(()=>{C.length===0||C.some(y=>M[y.vendor])||!Object.values(M).some(Boolean)||$(C.reduce((y,I,A)=>(y[I.vendor]=A===0,y),{}))},[M,C]);const De=c=>{E(w=>w.includes(c)?w.filter(y=>y!==c):[...w,c])},ye=()=>{const c=F.map(y=>y.id),w=c.every(y=>h.has(y));E(y=>w?y.filter(I=>!c.includes(I)):Array.from(new Set([...y,...c])))},Ue=()=>{E(c=>Array.from(new Set([...c,...ee])))},ae=c=>{$(w=>{const y=!w[c],I={};return C.forEach(A=>{I[A.vendor]=A.vendor===c?y:!1}),I})};return e.jsxDEV(ks,{open:s,onOpenChange:c=>!c&&_(),children:e.jsxDEV(Ds,{className:"model-discovery-dialog",container:o,"data-testid":"model-discovery-dialog",children:[e.jsxDEV("div",{className:"model-discovery-dialog__header",children:[e.jsxDEV("div",{className:"model-discovery-dialog__headline",children:[e.jsxDEV("h3",{className:"model-discovery-dialog__title",children:"获取模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:216,columnNumber:13},void 0),e.jsxDEV("div",{className:"model-discovery-dialog__header-stats",children:[e.jsxDEV("span",{className:"model-discovery-dialog__header-pill",children:["已发现 ",d.length]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:218,columnNumber:15},void 0),e.jsxDEV("span",{className:"model-discovery-dialog__header-pill",children:["品牌 ",C.length]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:221,columnNumber:15},void 0),e.jsxDEV("span",{className:"model-discovery-dialog__header-pill model-discovery-dialog__header-pill--accent",children:["已选 ",V]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:224,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:217,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:215,columnNumber:11},void 0),e.jsxDEV("button",{type:"button",className:"model-discovery-dialog__close",onClick:_,"aria-label":"关闭",children:e.jsxDEV(zi,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:235,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:229,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:214,columnNumber:9},void 0),e.jsxDEV("div",{className:"model-discovery-dialog__toolbar",children:e.jsxDEV("label",{className:"model-discovery-dialog__search",children:[e.jsxDEV(Li,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:241,columnNumber:13},void 0),e.jsxDEV("input",{type:"text",value:H,onChange:c=>fe(c.target.value),placeholder:"搜索模型名称、ID 或品牌"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:242,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:240,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:239,columnNumber:9},void 0),e.jsxDEV("div",{className:"model-discovery-dialog__type-tabs",children:Object.keys(Di).map(c=>{const w=X===c;return e.jsxDEV("button",{type:"button",className:`model-discovery-dialog__type-tab ${w?"model-discovery-dialog__type-tab--active":""}`,onClick:()=>_e(c),children:[e.jsxDEV("span",{children:Di[c]},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:263,columnNumber:17},void 0),e.jsxDEV("span",{className:"model-discovery-dialog__type-tab-count",children:te[c]},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:264,columnNumber:17},void 0)]},c,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:255,columnNumber:15},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:251,columnNumber:9},void 0),e.jsxDEV("div",{className:"model-discovery-dialog__body",children:C.length===0?e.jsxDEV("div",{className:"model-discovery-dialog__empty",children:H.trim()?"没有匹配的模型":"暂无模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:274,columnNumber:13},void 0):e.jsxDEV("div",{className:"model-discovery-dialog__group-list",children:C.map(c=>{const w=$i(c.vendor),y=ot(c),I=!!M[c.vendor];return e.jsxDEV("section",{className:`model-discovery-dialog__vendor-group ${I?"model-discovery-dialog__vendor-group--expanded":""}`,style:{"--vendor-accent":w.accent,"--vendor-surface":w.surface,"--vendor-border":w.border},children:[e.jsxDEV("button",{type:"button",className:"model-discovery-dialog__vendor-header",onClick:()=>ae(c.vendor),children:[e.jsxDEV("div",{className:"model-discovery-dialog__vendor-main",children:[e.jsxDEV("span",{className:"model-discovery-dialog__vendor-logo-shell",children:e.jsxDEV(Gi,{vendor:c.vendor,size:22},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:307,columnNumber:27},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:306,columnNumber:25},void 0),e.jsxDEV("div",{className:"model-discovery-dialog__vendor-copy",children:[e.jsxDEV("span",{className:"model-discovery-dialog__vendor-name",children:Oe(c.vendor)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:310,columnNumber:27},void 0),e.jsxDEV("div",{className:"model-discovery-dialog__vendor-meta",children:y.map(({type:A,models:Y})=>e.jsxDEV("span",{className:"model-discovery-dialog__vendor-meta-pill",children:[nt[A]," ",Y.length]},`${c.vendor}-${A}`,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:316,columnNumber:33},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:313,columnNumber:27},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:309,columnNumber:25},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:305,columnNumber:23},void 0),e.jsxDEV("span",{className:"model-discovery-dialog__vendor-spacer"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:328,columnNumber:23},void 0),e.jsxDEV("div",{className:"model-discovery-dialog__vendor-side",children:[c.selectedCount>0?e.jsxDEV("span",{className:"model-discovery-dialog__vendor-selected",children:["已选 ",c.selectedCount]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:332,columnNumber:27},void 0):null,e.jsxDEV("span",{className:"model-discovery-dialog__vendor-count",children:c.models.length},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:336,columnNumber:25},void 0),e.jsxDEV("span",{className:`model-discovery-dialog__vendor-chevron ${I?"model-discovery-dialog__vendor-chevron--expanded":""}`,children:e.jsxDEV(Ki,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:346,columnNumber:27},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:339,columnNumber:25},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:330,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:300,columnNumber:21},void 0),I?e.jsxDEV("div",{className:"model-discovery-dialog__vendor-body",children:y.map(({type:A,models:Y})=>e.jsxDEV("div",{className:"model-discovery-dialog__type-section",children:[e.jsxDEV("div",{className:"model-discovery-dialog__type-section-header",children:[e.jsxDEV("span",{className:"model-discovery-dialog__type-section-title",children:tt[A]},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:359,columnNumber:31},void 0),e.jsxDEV("span",{className:"model-discovery-dialog__type-section-count",children:Y.length},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:362,columnNumber:31},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:358,columnNumber:29},void 0),e.jsxDEV("div",{className:"model-discovery-dialog__model-stack",children:Y.map(B=>{const de=h.has(B.id);return e.jsxDEV("label",{className:`model-discovery-dialog__item ${de?"model-discovery-dialog__item--checked":""}`,children:[e.jsxDEV("input",{type:"checkbox",className:"model-discovery-dialog__checkbox",checked:de,onChange:()=>De(B.id)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:380,columnNumber:37},void 0),e.jsxDEV("span",{className:"model-discovery-dialog__checkmark",children:de?e.jsxDEV(Us,{size:12},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:387,columnNumber:50},void 0):null},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:386,columnNumber:37},void 0),e.jsxDEV("div",{className:"model-discovery-dialog__item-body",children:e.jsxDEV("div",{className:`model-discovery-dialog__item-id ${de?"model-discovery-dialog__item-id--checked":""}`,children:B.id},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:391,columnNumber:39},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:390,columnNumber:37},void 0),G?e.jsxDEV(ve,{content:"测试此模型",showArrow:!1,children:e.jsxDEV("button",{type:"button",className:"model-discovery-dialog__item-test",onClick:xe=>{xe.preventDefault(),xe.stopPropagation(),G(B.id)},children:e.jsxDEV(Bi,{size:13},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:412,columnNumber:43},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:403,columnNumber:41},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:402,columnNumber:39},void 0):null]},B.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:372,columnNumber:35},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:367,columnNumber:29},void 0)]},`${c.vendor}-${A}`,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:354,columnNumber:27},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:352,columnNumber:23},void 0):null]},c.vendor,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:285,columnNumber:19},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:278,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:272,columnNumber:9},void 0),e.jsxDEV("div",{className:"model-discovery-dialog__footer",children:[e.jsxDEV("span",{className:"model-discovery-dialog__selection-count",children:["已选 ",V," 个 · 图 ",Z.image," / 视"," ",Z.video," / 文 ",Z.text]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:432,columnNumber:11},void 0),e.jsxDEV("div",{className:"model-discovery-dialog__footer-bulk",children:[e.jsxDEV("button",{type:"button",className:"model-discovery-dialog__ghost-button",onClick:ye,disabled:F.length===0,children:ne?"取消当前筛选":"全选"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:437,columnNumber:13},void 0),e.jsxDEV("button",{type:"button",className:"model-discovery-dialog__ghost-button",onClick:Ue,disabled:ee.length===0||ke,children:"选中推荐模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:445,columnNumber:13},void 0),e.jsxDEV("button",{type:"button",className:"model-discovery-dialog__ghost-button model-discovery-dialog__ghost-button--muted",onClick:()=>E([]),disabled:K.length===0,children:"清空"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:453,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:436,columnNumber:11},void 0),e.jsxDEV("div",{className:"model-discovery-dialog__actions",children:[e.jsxDEV("button",{type:"button",className:"model-discovery-dialog__button model-discovery-dialog__button--secondary",onClick:_,children:"取消"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:463,columnNumber:13},void 0),e.jsxDEV("button",{type:"button",className:"model-discovery-dialog__button model-discovery-dialog__button--primary",onClick:()=>v(K),children:"添加模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:470,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:462,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:431,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:209,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/model-discovery-dialog.tsx",lineNumber:208,columnNumber:5},void 0)},rt=Vs.memo(({profile:s,onUpdateProfile:o})=>{const[d,g]=m.useState(!1),_=qs(s.id),v=Is(s),G=(v==null?void 0:v.pricingUrl)||"",H=(v==null?void 0:v.cnyPerUsd)??1,fe=(v==null?void 0:v.pricingGroup)||"default",X=m.useCallback(async()=>{if(v){g(!0);try{await ji.fetchAndCache(s.id,v.pricingUrl,s.apiKey,v.pricingGroup,v.cnyPerUsd,{force:!0,promoteToAutoRefresh:!0}),L.success("价格信息已同步")}catch(E){L.error(`获取价格失败: ${E instanceof Error?E.message:"未知错误"}`)}finally{g(!1)}}},[v,s.id,s.apiKey]),_e=m.useCallback(async E=>{const M=String(E);if(o($=>({...$,pricingGroup:M})),!!v){g(!0);try{await ji.fetchAndCache(s.id,v.pricingUrl,s.apiKey,M,v.cnyPerUsd)}catch{}finally{g(!1)}}},[o,v,s.id,s.apiKey]),K=_.map(E=>({label:E.displayName||E.name,value:E.name}));return e.jsxDEV("div",{className:"settings-dialog__pricing-group",children:[e.jsxDEV("div",{className:"settings-dialog__pricing-row",children:[e.jsxDEV("div",{className:"settings-dialog__field settings-dialog__field--column",style:{flex:1,minWidth:0},children:[e.jsxDEV("label",{className:"settings-dialog__label settings-dialog__label--stacked",children:"模型价格 URL"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/pricing-field-group.tsx",lineNumber:78,columnNumber:13},void 0),e.jsxDEV("input",{type:"text",className:"settings-dialog__input",value:G,onChange:E=>o(M=>({...M,pricingUrl:E.target.value})),placeholder:"如 https://api.tu-zi.com/api/pricing"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/pricing-field-group.tsx",lineNumber:81,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/pricing-field-group.tsx",lineNumber:77,columnNumber:11},void 0),e.jsxDEV("div",{className:"settings-dialog__field settings-dialog__field--column",style:{width:110,flexShrink:0},children:[e.jsxDEV("label",{className:"settings-dialog__label settings-dialog__label--stacked",children:"¥/1USD"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/pricing-field-group.tsx",lineNumber:92,columnNumber:13},void 0),e.jsxDEV("input",{type:"number",className:"settings-dialog__input",value:H,step:.01,min:0,onChange:E=>o(M=>({...M,cnyPerUsd:parseFloat(E.target.value)||0}))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/pricing-field-group.tsx",lineNumber:95,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/pricing-field-group.tsx",lineNumber:91,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/pricing-field-group.tsx",lineNumber:76,columnNumber:9},void 0),e.jsxDEV("div",{className:"settings-dialog__pricing-row",children:[K.length>0?e.jsxDEV("div",{className:"settings-dialog__field settings-dialog__field--column",style:{flex:1,minWidth:0},children:[e.jsxDEV("label",{className:"settings-dialog__label settings-dialog__label--stacked",children:"当前分组"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/pricing-field-group.tsx",lineNumber:113,columnNumber:15},void 0),e.jsxDEV(Ms,{value:fe,options:K,onChange:E=>_e(E),style:{width:"100%"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/pricing-field-group.tsx",lineNumber:116,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/pricing-field-group.tsx",lineNumber:112,columnNumber:13},void 0):null,e.jsxDEV("button",{type:"button",className:"settings-dialog__button settings-dialog__button--fetch",style:{alignSelf:"flex-end",height:32,flexShrink:0},onClick:X,disabled:d||!G,children:d?"同步中":"获取价格"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/pricing-field-group.tsx",lineNumber:124,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/pricing-field-group.tsx",lineNumber:110,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/pricing-field-group.tsx",lineNumber:75,columnNumber:7},void 0)});function ct(s,o){return{id:o,name:`供应商 ${s}`,iconUrl:"",providerType:"openai-compatible",baseUrl:"",apiKey:"",authType:"bearer",imageApiCompatibility:Fi,enabled:!0,capabilities:{supportsModelsEndpoint:!0,supportsText:!0,supportsImage:!0,supportsVideo:!0,supportsAudio:!0,supportsTools:!0}}}const qi="aitu:settings:provider-nav",ut=980,gt=[{value:"providers",label:"供应商"},{value:"presets",label:"模型预设"},{value:"canvas",label:"画布显示"},{value:"speech",label:"语音播放"}],mt=["openai-compatible","gemini-compatible","custom"],Nt=["auto","openai-gpt-image","tuzi-gpt-image","openai-compatible-basic"],Ii={image:"图片",video:"视频",audio:"音频",text:"文本"},pt={image:"图片模型",video:"视频模型",audio:"音频模型",text:"文本模型"},ft=m.memo(function({profileId:o,modelId:d}){const g=it(o,d);return g?e.jsxDEV("span",{className:"settings-dialog__model-price",children:g},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:161,columnNumber:10},this):null}),xt=m.memo(function({profileId:o,modelId:d}){const g=et(o,d);return g!=null&&g.description?e.jsxDEV(ve,{content:g.description,placement:"top",children:e.jsxDEV("span",{className:"settings-dialog__model-type-item-id settings-dialog__model-type-item-id--has-desc",children:d},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:179,columnNumber:7},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:178,columnNumber:5},this):e.jsxDEV("span",{className:"settings-dialog__model-type-item-id",children:d},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:174,columnNumber:7},this)});function bt(s,o,d,g){return o===0&&d===0?null:g===0&&d>0?`已清空 ${s} 的已添加模型`:o>0&&d>0?`已更新 ${s} 的模型(新增 ${o} 个,移除 ${d} 个)`:o>0?`已为 ${s} 添加 ${o} 个模型`:`已从 ${s} 移除 ${d} 个模型`}const ht=["text","image","video","audio"],Ye={"openai-compatible":{label:"OpenAI 兼容"},"gemini-compatible":{label:"Gemini 兼容"},custom:{label:"自定义接入"}},He={auto:{label:"自动"},"openai-gpt-image":{label:"OpenAI GPT Image"},"tuzi-gpt-image":{label:"Tuzi GPT 兼容"},"openai-compatible-basic":{label:"OpenAI-compatible 通用兼容(兜底)"}};function vt(s){return s==="auto"||s==="openai-gpt-image"||s==="tuzi-gpt-image"||s==="openai-compatible-basic"?s:s==="tuzi-compatible"?"tuzi-gpt-image":"auto"}function _t(s){const o=s.baseUrl.trim().toLowerCase();return o.includes("api.openai.com")?"openai-gpt-image":o.includes("api.tu-zi.com")?"tuzi-gpt-image":"openai-compatible-basic"}function yt(s){const o=vt(s.imageApiCompatibility);if(o==="auto"){const d=_t(s);return`默认推荐显式选择 OpenAI GPT Image;如果保留自动模式,GPT Image 模型当前会解析为 ${He[d].label}。`}return o==="openai-gpt-image"?"默认推荐模式。适用于官方 GPT Image 请求格式,也便于后续继续扩展官方图生图能力。":`同一个图片模型在不同 API Key 或网关下可能需要不同接口格式;当前已固定为 ${He[o].label}。`}const Mi=["amber","sky","mint","rose","violet"];function Si(s){return s.reduce((o,d)=>(o[d.type]+=1,o),{image:0,video:0,audio:0,text:0})}function jt(s,o){const d=o.trim().toLowerCase();return d?[s.id,s.label,s.shortLabel,s.shortCode,s.description,s.sourceProfileName,Oe(s.vendor)].filter(Boolean).some(g=>g==null?void 0:g.toLowerCase().includes(d)):!0}function wt(s){const o=new Set,d=[];return s.forEach(g=>{const _=`${g.type}:${g.id}`;o.has(_)||(o.add(_),d.push(g))}),d}function Pi(s){return s?["image","video","audio","text"].filter(o=>!!W(s[o])).length:0}function Ci(s,o){const d=o.find(g=>g.id===s.id);return d?Mt(d,s)?"saved":"dirty":"new"}function Te(s){return JSON.stringify(s)}function Et(s){return typeof s.iconUrl!="string"?null:s.iconUrl.trim()||null}function kt(s){var g;const o=s.trim();if(!o)return"供";const d=o.match(/[A-Za-z0-9]+/g);return d!=null&&d[0]?d[0][0].toUpperCase():((g=Array.from(o)[0])==null?void 0:g.toUpperCase())||"供"}function Dt(s){const o=Array.from(`${s.id}-${s.providerType}-${s.name}`).reduce((d,g,_)=>d+g.charCodeAt(0)*(_+1),0);return Mi[o%Mi.length]}function me(s){return JSON.parse(JSON.stringify(s))}function Qe(s){return`${s}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function Ai(s){return ct(s,Qe("profile"))}function Ut(){if(typeof window>"u")return null;const s=window.__aituPendingProviderNavigationIntent||null;return window.__aituPendingProviderNavigationIntent=void 0,s}function Ti(s){return"bearer"}function Ie(s){return s===O||s===Rs||s===zs||s===Ls}const Oi=({profile:s,size:o="regular"})=>{const d=Et(s),[g,_]=m.useState(d);m.useEffect(()=>{_(d)},[d]);const v=Dt(s),G=kt(s.name);return e.jsxDEV("span",{className:`settings-dialog__provider-avatar settings-dialog__provider-avatar--${v} ${o==="large"?"settings-dialog__provider-avatar--large":""}`,"aria-hidden":"true",children:g?e.jsxDEV("img",{src:g,alt:`${s.name} 图标`,className:"settings-dialog__provider-avatar-image",loading:"lazy",onError:()=>_(null)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:516,columnNumber:9},void 0):e.jsxDEV("span",{className:"settings-dialog__provider-avatar-text",children:G},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:524,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:509,columnNumber:5},void 0)};function Vt(s,o){return{id:Qe("preset"),name:"新预设",text:Ne(pe(s,o.text||null)),image:Ne(pe(s,o.image||null)),video:Ne(pe(s,o.video||null)),audio:Ne(pe(s,o.audio||null))}}function qt(s,o,d){const g=s[o],_=d.defaultModelRef!==void 0?d.defaultModelRef:pe(d.profileId!==void 0?d.profileId:Me(g),d.defaultModelId!==void 0?d.defaultModelId:W(g));return{...s,[o]:Ne(_)}}function It(s,o){const d={...s};return["image","video","audio","text"].forEach(g=>{Me(d[g])===o&&(d[g]=Ne(null))}),d}function Mt(s,o){return JSON.stringify(s)===JSON.stringify(o)}function St(s){return s.flatMap(({profile:o,models:d})=>d.map(g=>({...g,sourceProfileId:o.id,sourceProfileName:o.name,selectionKey:g.selectionKey||`${o.id}::${g.id}`})))}const At=({container:s})=>{const{appState:o,setAppState:d}=Ss(),{confirm:g,confirmDialog:_}=Ps({container:s}),{isMobile:v,viewportWidth:G,viewportHeight:H}=Cs(),fe=m.useRef(null),[X,_e]=m.useState(0),[K,E]=m.useState("providers"),[M,$]=m.useState(O),[te,F]=m.useState(se),[h,C]=m.useState([]),[V,Z]=m.useState([]),[ne,ee]=m.useState(se),[ke,De]=m.useState([]),[ye,Ue]=m.useState(""),[ae,c]=m.useState(""),[w,y]=m.useState(""),[I,A]=m.useState(""),[Y,B]=m.useState(!0),[de,xe]=m.useState(""),[Je,Se]=m.useState(!1),[Wi,Re]=m.useState(""),[Xe,ei]=m.useState(!1),[Zi,oe]=m.useState("catalog"),[Yi,je]=m.useState("catalog"),[Hi,Qi]=m.useState(new Set),Ji=i=>{Qi(t=>{const a=new Set(t);return a.has(i)?a.delete(i):a.add(i),a})},u=h.find(i=>i.id===M)||h[0]||null,Xi=u?yt(u):"同一个图片模型在不同 API Key 或网关下可能需要不同接口格式;不确定时使用自动。",T=V.find(i=>i.id===te)||V[0]||null,R=As((u==null?void 0:u.id)||O),es=m.useDeferredValue(de),ii=Pe(O,"image"),is=Pe(O,"audio"),si=Pe(O,"video"),ti=Pe(O,"text"),ss=h.filter(i=>i.enabled),x=v||G<=ut,ni=x&&(X>0?X<600:G<600),ze=!!u&&!!u.apiKey.trim(),ts=Te({profiles:h,presets:V,activePresetId:ne,audioModelName:ye,imageModelName:ae,videoModelName:w,textModelName:I,showWorkZoneCard:Y}),ai=o.openSettings&&ts!==Wi;m.useEffect(()=>{const i=fe.current;if(!i||typeof ResizeObserver>"u")return;const t=new ResizeObserver(a=>{var l;const n=(l=a[0])==null?void 0:l.contentRect.width;n&&_e(r=>Math.abs(r-n)<1?r:n)});return t.observe(i),()=>{t.disconnect()}},[o.openSettings]);const ns=i=>{P.trackUIInteraction({area:"settings",action:"view_changed",control:"settings_nav",value:i,source:"settings_dialog"}),E(i),x&&(i==="providers"&&oe("catalog"),i==="presets"&&je("catalog"))},as=i=>{P.trackUIInteraction({area:"settings",action:"provider_selected",control:"provider_list",source:"settings_dialog",metadata:{profileId:i,isManagedProfile:Ie(i)}}),$(i),x&&oe("detail")},ds=i=>{P.trackUIInteraction({area:"settings",action:"preset_selected",control:"preset_list",source:"settings_dialog",metadata:{presetId:i}}),F(i),x&&je("detail")},os=()=>{try{return localStorage.getItem(Ce.WORKZONE_CARD_VISIBLE)!=="false"}catch{return!0}},Le=()=>{const i=me(Ve.get()),t=me(re.get()),a=re.getActivePresetId()||se,n=qe.get(),l=os();De(i),Re(Te({profiles:i,presets:t,activePresetId:a,audioModelName:n.audioModelName||he(),imageModelName:n.imageModelName||ce(),videoModelName:n.videoModelName||ue(),textModelName:n.textModelName||ge(),showWorkZoneCard:l}))};m.useEffect(()=>{var p;if(!o.openSettings)return;const i=me(Ve.get()),t=me(re.get()),a=re.getActivePresetId()||se,n=qe.get();let l=!0;const r=Ut(),f=(r==null?void 0:r.action)==="select"&&i.some(j=>j.id===r.profileId)?r.profileId:((p=i[0])==null?void 0:p.id)||O;C(i),Z(t),De(i),ee(a),$(j=>{var k;return r?f:i.some(U=>U.id===j)?j:((k=i[0])==null?void 0:k.id)||O}),F(j=>{var k;return t.some(U=>U.id===j)?j:((k=t[0])==null?void 0:k.id)||se}),Ue(n.audioModelName||he()),c(n.imageModelName||ce()),y(n.videoModelName||ue()),A(n.textModelName||ge());try{l=localStorage.getItem(Ce.WORKZONE_CARD_VISIBLE)!=="false"}catch{l=!0}B(l),E("providers"),oe(r&&x?"detail":"catalog"),je("catalog"),xe(""),Se(!1),Re(Te({profiles:i,presets:t,activePresetId:a,audioModelName:n.audioModelName||he(),imageModelName:n.imageModelName||ce(),videoModelName:n.videoModelName||ue(),textModelName:n.textModelName||ge(),showWorkZoneCard:l})),(r==null?void 0:r.action)==="create"&&oi(r,i)},[o.openSettings]),m.useEffect(()=>{if(!M&&h[0]){$(h[0].id);return}M&&h.length>0&&!h.some(i=>i.id===M)&&$(h[0].id)},[h,M]),m.useEffect(()=>{if(!te&&V[0]){F(V[0].id);return}te&&V.length>0&&!V.some(i=>i.id===te)&&F(V[0].id)},[V,te]),m.useEffect(()=>{xe("")},[M,K]);const be=(i,t)=>{C(a=>a.map(n=>n.id===i?t(n):n))},ls=(i,t)=>{Z(a=>a.map(n=>n.id===i?t(n):n))},di=async(i,t)=>{var a,n;try{const l=qe.get(),r=((a=i.find(D=>D.id===t))==null?void 0:a.id)||((n=i[0])==null?void 0:n.id)||se,f=i.find(D=>D.id===r)||i[0]||null,p=W(f==null?void 0:f.audio)||l.audioModelName||he(),j=W(f==null?void 0:f.image)||l.imageModelName||ce(),k=W(f==null?void 0:f.video)||l.videoModelName||ue(),U=W(f==null?void 0:f.text)||l.textModelName||l.chatModel||ge();return await re.update(me(i)),await re.setActivePresetId(r),await qe.update({audioModelName:p,imageModelName:j,videoModelName:k,textModelName:U,chatModel:U}),Z(i),ee(r),Ue(p),c(j),y(k),A(U),Le(),!0}catch(l){return console.error("Failed to persist preset configuration:",l),L.error("预设保存失败,请重试"),!1}},rs=async(i,t)=>{if(P.trackUIInteraction({area:"settings",action:"provider_enabled_changed",control:"provider_enabled_switch",value:t,source:"settings_dialog",metadata:{profileId:i,isManagedProfile:Ie(i)}}),C(a=>a.map(n=>n.id===i?{...n,enabled:t}:n)),!!ke.some(a=>a.id===i))try{await Ve.update(me(Ve.get()).map(a=>a.id===i?{...a,enabled:t}:a)),Le()}catch(a){console.error("Failed to persist provider enabled state:",a),C(n=>n.map(l=>l.id===i?{...l,enabled:!t}:l)),L.error("供应商状态保存失败,请重试")}},cs=async i=>{P.trackUIInteraction({area:"settings",action:"workzone_card_visibility_changed",control:"workzone_card_switch",value:i,source:"settings_dialog"}),B(i);try{localStorage.setItem(Ce.WORKZONE_CARD_VISIBLE,String(i)),window.dispatchEvent(new CustomEvent("workzone-visibility-changed")),Le()}catch(t){console.error("Failed to persist canvas visibility state:",t),B(!i),L.error("画布显示配置保存失败,请重试")}},oi=(i,t)=>{var r;const a=t||h;if(E("providers"),x&&oe("detail"),i.action==="select"){const f=a.some(p=>p.id===i.profileId)?i.profileId:((r=a[a.length-1])==null?void 0:r.id)||O;return $(f),a}const n=Ai(a.length+1),l=[...a,n];return C(l),$(n.id),l},li=()=>{const i=Ai(h.length+1);P.trackUIInteraction({area:"settings",action:"provider_added",control:"add_provider",source:"settings_dialog",metadata:{profilesCount:h.length+1}}),C(t=>[...t,i]),$(i.id),E("providers"),x&&oe("detail")};m.useEffect(()=>{if(!o.openSettings)return;const i=t=>{const a=t.detail;a&&oi(a)};return window.addEventListener(qi,i),()=>{window.removeEventListener(qi,i)}},[o.openSettings,x,h]);const ri=async i=>{var l;if(Ie(i))return;const t=h.find(r=>r.id===i);if(!await g({title:"确认删除供应商",description:`确定要删除供应商「${(t==null?void 0:t.name)||"未命名供应商"}」吗?相关预设里的路由会被清空。`,confirmText:"删除",cancelText:"取消",danger:!0}))return;P.trackUIInteraction({area:"settings",action:"provider_deleted",control:"delete_provider",source:"settings_dialog",metadata:{profileId:i,profilesCount:Math.max(0,h.length-1)}});const n=h.filter(r=>r.id!==i);C(n),Z(r=>r.map(f=>It(f,i))),M===i&&$(((l=n[0])==null?void 0:l.id)||O),x&&oe("catalog")},ci=m.useCallback(i=>{const t=h.find(n=>n.id===i);if(!t)return;const a={...me(t),id:Qe("profile"),name:`${t.name} (副本)`};C(n=>[...n,a]),P.trackUIInteraction({area:"settings",action:"provider_cloned",control:"clone_provider",source:"settings_dialog",metadata:{profileId:i,clonedProfileId:a.id,profilesCount:h.length+1}}),$(a.id),E("providers"),x&&oe("detail")},[h,x]),$e=Ts(),us=m.useCallback(i=>{const t=[{key:"clone",label:"克隆",icon:e.jsxDEV($s,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1247,columnNumber:17},void 0),onSelect:ci}];return Ie(i)||t.push({key:"divider",type:"divider"},{key:"delete",label:"删除",icon:e.jsxDEV(wi,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1257,columnNumber:19},void 0),danger:!0,onSelect:ri}),t},[ci]),ui=()=>{var a;const i=((a=ss[0])==null?void 0:a.id)||null,t=Vt(i,{audio:ye||he(),image:ae||ce(),video:w||ue(),text:I||ge()});Z(n=>[...n,t]),P.trackUIInteraction({area:"settings",action:"preset_added",control:"add_preset",source:"settings_dialog",metadata:{presetId:t.id,presetsCount:V.length+1,hasFallbackProfile:!!i}}),F(t.id),E("presets"),x&&je("detail")},gs=async i=>{var l,r;if(V.length<=1)return;const t=V.find(f=>f.id===i);if(!await g({title:"确认删除预设",description:`确定要删除预设「${(t==null?void 0:t.name)||"未命名预设"}」吗?此操作不可撤销。`,confirmText:"删除",cancelText:"取消",danger:!0}))return;P.trackUIInteraction({area:"settings",action:"preset_deleted",control:"delete_preset",source:"settings_dialog",metadata:{presetId:i,presetsCount:Math.max(0,V.length-1)}});const n=V.filter(f=>f.id!==i);Z(n),ne===i&&ee(((l=n[0])==null?void 0:l.id)||se),te===i&&F(((r=n[0])==null?void 0:r.id)||se),x&&je("catalog")},gi=(i,t)=>{if(!T)return;const a=V.map(n=>n.id===T.id?qt(n,i,{defaultModelRef:t}):n);Z(a),P.trackUIInteraction({area:"settings",action:"route_model_changed",control:"route_model_dropdown",value:i,source:"settings_dialog",metadata:{presetId:T.id,routeType:i,hasModel:!!(t!=null&&t.modelId),hasProfile:!!(t!=null&&t.profileId)}}),di(a,ne)},ms=async()=>{if(!u){L.warning("请先选择供应商配置");return}if(ai){const a=L.loading("正在保存当前配置...",0),n=await pi(!1);if(L.close(a),!n)return}const i=u.apiKey.trim(),t=Ze(u.baseUrl.trim()||Ae);if(!i){L.warning("请先填写 API Key");return}try{P.trackUIInteraction({area:"settings",action:"model_discovery_started",control:"fetch_models",source:"settings_dialog",metadata:{profileId:u.id}}),await Ee.discover(u.id,t,i),P.trackUIInteraction({area:"settings",action:"model_discovery_succeeded",control:"fetch_models",source:"settings_dialog",metadata:{profileId:u.id}}),Se(!0)}catch(a){const n=a instanceof Error?a.message:"模型同步失败";P.trackUIInteraction({area:"settings",action:"model_discovery_failed",control:"fetch_models",source:"settings_dialog",metadata:{profileId:u.id,error:n}}),Ee.setError(u.id,n),L.error({content:n,duration:3600})}},mi=(i,t)=>{var r,f,p;if(!u)return;const a=Ee.applySelection(u.id,i),n=a.models;if(u.id===O){const j=n.filter(b=>b.type==="image"),k=n.filter(b=>b.type==="video"),U=n.filter(b=>b.type==="text"),D=R.discoveredModels.filter(b=>b.type==="image").map(b=>b.id),Q=R.discoveredModels.filter(b=>b.type==="video").map(b=>b.id),q=R.discoveredModels.filter(b=>b.type==="text").map(b=>b.id);!j.some(b=>b.id===ae)&&D.includes(ae)&&c(((r=j[0])==null?void 0:r.id)||ce()),!k.some(b=>b.id===w)&&Q.includes(w)&&y(((f=k[0])==null?void 0:f.id)||ue()),!U.some(b=>b.id===I)&&q.includes(I)&&A(((p=U[0])==null?void 0:p.id)||ge())}const l=(t==null?void 0:t.successMessage)||bt(u.name,a.addedModelIds.length,a.removedModelIds.length,n.length);l&&L.success(l),P.trackUIInteraction({area:"settings",action:"discovered_models_applied",control:"model_discovery_dialog",source:"settings_dialog",metadata:{profileId:u.id,selectedCount:n.length,addedCount:a.addedModelIds.length,removedCount:a.removedModelIds.length}}),Se(!1)},Ns=i=>{if(!u)return;if(!R.selectedModelIds.includes(i)){L.warning("该模型不是当前分组动态添加的模型,无法在此移除");return}const t=R.selectedModelIds.filter(a=>a!==i);mi(t)},Ni=()=>{d(i=>({...i,openSettings:!1}))},pi=async(i=!1)=>{var t,a,n,l,r,f;if(Xe)return!1;ei(!0);try{const p=h.map(N=>{var we;const z=N.baseUrl.trim()?Ze(N.baseUrl):"";return{...N,name:N.name.trim()||"未命名供应商",iconUrl:((we=N.iconUrl)==null?void 0:we.trim())||void 0,baseUrl:z,apiKey:N.apiKey.trim()}}),j=new Set(p.map(N=>N.id)),k=V.map(N=>{const z={...N,name:N.name.trim()||"未命名预设",audio:{...N.audio},image:{...N.image},video:{...N.video},text:{...N.text}};return["image","video","audio","text"].forEach(we=>{const _i=z[we],Fe=Me(_i),yi=W(_i);if(Fe&&!j.has(Fe)){z[we]=Ne(pe(null,yi));return}z[we]=Ne(pe(Fe,yi))}),z}),U=((t=k.find(N=>N.id===ne))==null?void 0:t.id)||((a=k[0])==null?void 0:a.id)||se,D=k.find(N=>N.id===U)||k[0]||null,Q=p.find(N=>N.id===O)||p[0],q=Ze((Q==null?void 0:Q.baseUrl)||Ae),b=ye.trim()||((n=is[0])==null?void 0:n.id)||he(),ie=ae.trim()||((l=ii[0])==null?void 0:l.id)||ce(),S=w.trim()||((r=si[0])==null?void 0:r.id)||ue(),J=I.trim()||((f=ti[0])==null?void 0:f.id)||ge(),Be=W(D==null?void 0:D.image)||ie,le=W(D==null?void 0:D.video)||S,ys=W(D==null?void 0:D.audio)||b,js=W(D==null?void 0:D.text)||J;p.forEach(N=>{Ee.invalidateIfConfigChanged(N.id,N.baseUrl||Ae,N.apiKey||"")}),await qe.update({apiKey:(Q==null?void 0:Q.apiKey)||"",baseUrl:q,audioModelName:ys,imageModelName:Be,videoModelName:le,textModelName:js}),await Ve.update(p),await Ws.update(Ee.getCatalogs().filter(N=>j.has(N.profileId))),await re.update(k),await re.setActivePresetId(U);try{localStorage.setItem(Ce.WORKZONE_CARD_VISIBLE,String(Y)),window.dispatchEvent(new CustomEvent("workzone-visibility-changed"))}catch{}return C(p),De(me(p)),Z(k),ee(U),Ue(b),c(ie),y(S),A(J),Re(Te({profiles:p,presets:k,activePresetId:U,audioModelName:b,imageModelName:ie,videoModelName:S,textModelName:J,showWorkZoneCard:Y})),i&&Ni(),P.trackUIInteraction({area:"settings",action:"settings_saved",control:"save_settings",source:"settings_dialog",metadata:{closeAfterSave:i,profilesCount:p.length,presetsCount:k.length,enabledProfilesCount:p.filter(N=>N.enabled).length}}),p.forEach(N=>{const z=Zs(N.baseUrl);P.track("provider_endpoint_configured",{profileId:N.id,providerType:N.providerType,providerOrigin:z==null?void 0:z.origin,providerHost:z==null?void 0:z.host,providerProtocol:z==null?void 0:z.protocol,enabled:N.enabled,authType:N.authType,supportsText:N.capabilities.supportsText,supportsImage:N.capabilities.supportsImage,supportsVideo:N.capabilities.supportsVideo,supportsAudio:N.capabilities.supportsAudio,supportsTools:N.capabilities.supportsTools,hasApiKey:!!N.apiKey})}),!0}catch(p){return console.error("Failed to persist settings drafts:",p),P.trackUIInteraction({area:"settings",action:"settings_save_failed",control:"save_settings",source:"settings_dialog",metadata:{closeAfterSave:i,error:p instanceof Error?p.message:String(p)}}),L.error("设置保存失败,请稍后重试"),!1}finally{ei(!1)}},ps=()=>{if(!ai){Ni();return}(async()=>{const i=L.loading("正在保存设置...",0),t=await pi(!0);L.close(i),t||L.warning("设置尚未保存,请检查后重试")})()},fs=()=>{Je||Xe||ps()},fi=()=>e.jsxDEV("div",{className:"settings-dialog__sidebar-shell settings-dialog__sidebar-shell--catalog",children:[e.jsxDEV("div",{className:"settings-dialog__sidebar-summary",children:[e.jsxDEV("div",{className:"settings-dialog__sidebar-summary-row",children:[e.jsxDEV("span",{className:"settings-dialog__sidebar-summary-title",children:"供应商目录"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1788,columnNumber:11},void 0),x?e.jsxDEV("button",{type:"button",className:"settings-dialog__sidebar-summary-action",onClick:li,children:"新增供应商"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1792,columnNumber:13},void 0):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1787,columnNumber:9},void 0),x?e.jsxDEV("span",{className:"settings-dialog__sidebar-summary-text",children:"先从列表里选择供应商,再进入对应的配置页面。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1802,columnNumber:11},void 0):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1786,columnNumber:7},void 0),e.jsxDEV("div",{className:"settings-dialog__sidebar-list",children:h.map(i=>{const t=i.id===(u==null?void 0:u.id);return e.jsxDEV("div",{className:`settings-dialog__provider-row ${t?"settings-dialog__provider-row--active":""} ${i.enabled?"":"settings-dialog__provider-row--disabled"}`,onContextMenu:a=>{a.preventDefault(),$e.open(a,i.id)},children:[e.jsxDEV("button",{type:"button",className:"settings-dialog__provider-select",onClick:()=>as(i.id),"aria-pressed":t,children:[e.jsxDEV("span",{className:"settings-dialog__provider-select-main",children:[e.jsxDEV(Oi,{profile:i},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1832,columnNumber:19},void 0),e.jsxDEV("span",{className:"settings-dialog__provider-copy",children:[e.jsxDEV("span",{className:"settings-dialog__provider-name-row",children:[e.jsxDEV("span",{className:"settings-dialog__provider-name",children:i.name},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1835,columnNumber:23},void 0),i.id===O?e.jsxDEV("span",{className:"settings-dialog__provider-tag",children:"默认"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1839,columnNumber:25},void 0):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1834,columnNumber:21},void 0),x?e.jsxDEV("span",{className:"settings-dialog__provider-meta",children:[e.jsxDEV("span",{children:Ye[i.providerType].label},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1846,columnNumber:25},void 0),e.jsxDEV("span",{children:i.enabled?"启用":"停用"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1849,columnNumber:25},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1845,columnNumber:23},void 0):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1833,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1831,columnNumber:17},void 0),x?e.jsxDEV(We,{size:16,className:"settings-dialog__provider-arrow","aria-hidden":"true"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1855,columnNumber:19},void 0):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1825,columnNumber:15},void 0),e.jsxDEV("div",{className:"settings-dialog__provider-switch",children:[e.jsxDEV("span",{className:"settings-dialog__provider-switch-copy",children:i.enabled?"启用":"停用"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1864,columnNumber:17},void 0),e.jsxDEV(Ei,{size:"small",value:i.enabled,disabled:i.id===O,onChange:a=>void rs(i.id,a)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1867,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1863,columnNumber:15},void 0)]},i.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1813,columnNumber:13},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1808,columnNumber:7},void 0),e.jsxDEV(Fs,{state:$e.contextMenu,items:us,onClose:$e.close,zIndex:2e4},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1884,columnNumber:7},void 0),x?null:e.jsxDEV("button",{type:"button",className:"settings-dialog__sidebar-add",onClick:li,children:[e.jsxDEV("span",{className:"settings-dialog__sidebar-add-icon",children:"+"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1897,columnNumber:11},void 0),e.jsxDEV("span",{children:"新增供应商"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1898,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1892,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1785,columnNumber:5},void 0),xi=()=>e.jsxDEV("div",{className:"settings-dialog__sidebar-shell",children:[e.jsxDEV("div",{className:"settings-dialog__sidebar-summary",children:[e.jsxDEV("div",{className:"settings-dialog__sidebar-summary-row",children:[e.jsxDEV("span",{className:"settings-dialog__sidebar-summary-title",children:"默认模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1908,columnNumber:11},void 0),x?e.jsxDEV("button",{type:"button",className:"settings-dialog__sidebar-summary-action",onClick:ui,children:"新增预设"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1912,columnNumber:13},void 0):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1907,columnNumber:9},void 0),x?e.jsxDEV("span",{className:"settings-dialog__sidebar-summary-text",children:"先选中一个预设,再进入详情页调整默认路由。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1922,columnNumber:11},void 0):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1906,columnNumber:7},void 0),e.jsxDEV("div",{className:"settings-dialog__sidebar-list",children:V.map(i=>{const t=i.id===(T==null?void 0:T.id),a=i.id===ne,n=Pi(i);return e.jsxDEV("button",{type:"button",className:`settings-dialog__sidebar-item ${t?"settings-dialog__sidebar-item--active":""}`,onClick:()=>ds(i.id),children:[e.jsxDEV("div",{className:"settings-dialog__sidebar-item-head",children:[e.jsxDEV("div",{className:"settings-dialog__sidebar-item-top",children:[e.jsxDEV("span",{children:i.name},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1945,columnNumber:19},void 0),a?e.jsxDEV("span",{className:"settings-dialog__sidebar-badge settings-dialog__sidebar-badge--accent",children:"当前"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1947,columnNumber:21},void 0):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1944,columnNumber:17},void 0),x?e.jsxDEV(We,{size:16,className:"settings-dialog__sidebar-item-arrow","aria-hidden":"true"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1953,columnNumber:19},void 0):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1943,columnNumber:15},void 0),e.jsxDEV("div",{className:"settings-dialog__sidebar-item-meta",children:[e.jsxDEV("span",{children:[n,"/3 已配置"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1962,columnNumber:17},void 0),x?e.jsxDEV("span",{children:a?"正在生效":"点击查看详情"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1964,columnNumber:19},void 0):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1961,columnNumber:15},void 0)]},i.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1935,columnNumber:13},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1928,columnNumber:7},void 0),x?null:e.jsxDEV("button",{type:"button",className:"settings-dialog__sidebar-add",onClick:ui,children:[e.jsxDEV("span",{className:"settings-dialog__sidebar-add-icon",children:"+"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1978,columnNumber:11},void 0),e.jsxDEV("span",{children:"新增预设"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1979,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1973,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1905,columnNumber:5},void 0),bi=(i,t)=>e.jsxDEV("div",{className:"settings-dialog__workspace settings-dialog__workspace--single",children:e.jsxDEV("div",{className:"settings-dialog__content-panel settings-dialog__content-panel--compact",children:e.jsxDEV("div",{className:"settings-dialog__mobile-stage",children:t},i,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1988,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1987,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1986,columnNumber:5},void 0),hi=(i=!1)=>{if(!u)return e.jsxDEV("div",{className:"settings-dialog__empty-panel",children:"请选择一个供应商。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:1998,columnNumber:9},void 0);const t=Si(R.models),a=Ci(u,ke),n=t.image+t.video+t.text;return e.jsxDEV("div",{className:`settings-dialog__content-panel settings-dialog__content-panel--providers ${i?"settings-dialog__content-panel--detail":""}`,children:[i?e.jsxDEV("div",{className:"settings-dialog__compact-stage-header",children:[e.jsxDEV("button",{type:"button",className:"settings-dialog__compact-back",onClick:()=>oe("catalog"),children:[e.jsxDEV(ki,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2021,columnNumber:15},void 0),e.jsxDEV("span",{children:"返回供应商目录"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2022,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2016,columnNumber:13},void 0),e.jsxDEV("div",{className:"settings-dialog__compact-stage-copy",children:[e.jsxDEV("span",{className:"settings-dialog__compact-stage-eyebrow",children:"供应商配置"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2025,columnNumber:15},void 0),e.jsxDEV("p",{className:"settings-dialog__compact-stage-text",children:"进入详情后再编辑接口信息、密钥和模型同步配置。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2028,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2024,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2015,columnNumber:11},void 0):null,e.jsxDEV("div",{className:"settings-dialog__section settings-dialog__section--compact",children:e.jsxDEV("div",{className:"settings-dialog__panel-header",children:[e.jsxDEV("div",{className:"settings-dialog__profile-hero",children:[e.jsxDEV(Oi,{profile:u,size:"large"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2037,columnNumber:15},void 0),e.jsxDEV("div",{children:[e.jsxDEV("h3",{className:"settings-dialog__section-title",children:u.name},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2039,columnNumber:17},void 0),e.jsxDEV("div",{className:"settings-dialog__inline-meta",children:[e.jsxDEV("span",{children:Ye[u.providerType].label},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2043,columnNumber:19},void 0),e.jsxDEV("span",{children:u.enabled?"启用":"停用"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2046,columnNumber:19},void 0),e.jsxDEV("span",{children:[n," 个模型"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2047,columnNumber:19},void 0),e.jsxDEV("span",{children:a==="saved"?"已保存":"未保存"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2048,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2042,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2038,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2036,columnNumber:13},void 0),Ie(u.id)?null:e.jsxDEV("button",{type:"button",className:"settings-dialog__danger-button",onClick:()=>ri(u.id),children:"删除"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2053,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2035,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2034,columnNumber:9},void 0),e.jsxDEV("div",{className:"settings-dialog__section",children:[e.jsxDEV("div",{className:"settings-dialog__section-header",children:e.jsxDEV("div",{children:e.jsxDEV("h3",{className:"settings-dialog__section-title",children:"基础配置"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2067,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2066,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2065,columnNumber:11},void 0),e.jsxDEV("div",{className:"settings-dialog__grid",children:[e.jsxDEV("div",{className:"settings-dialog__field settings-dialog__field--column",children:[e.jsxDEV("label",{className:"settings-dialog__label settings-dialog__label--stacked",children:"名称"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2073,columnNumber:15},void 0),e.jsxDEV("input",{type:"text",className:"settings-dialog__input",value:u.name,onChange:l=>be(u.id,r=>({...r,name:l.target.value}))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2076,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2072,columnNumber:13},void 0),e.jsxDEV("div",{className:"settings-dialog__field settings-dialog__field--column",children:[e.jsxDEV("label",{className:"settings-dialog__label settings-dialog__label--stacked",children:"接口类型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2090,columnNumber:15},void 0),e.jsxDEV("select",{className:"settings-dialog__select",value:u.providerType,onChange:l=>be(u.id,r=>{const f=l.target.value,p=Ti(r.providerType),j=Ti();return{...r,providerType:f,authType:r.authType===p?j:r.authType}}),children:mt.map(l=>e.jsxDEV("option",{value:l,children:Ye[l].label},l,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2118,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2093,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2089,columnNumber:13},void 0),e.jsxDEV("div",{className:"settings-dialog__field settings-dialog__field--column settings-dialog__field--full",children:[e.jsxDEV("label",{className:"settings-dialog__label settings-dialog__label--stacked",children:"图片接口格式"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2126,columnNumber:15},void 0),e.jsxDEV("select",{className:"settings-dialog__select",value:u.imageApiCompatibility||Fi,onChange:l=>be(u.id,r=>({...r,imageApiCompatibility:l.target.value})),children:Nt.map(l=>e.jsxDEV("option",{value:l,children:He[l].label},l,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2144,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2129,columnNumber:15},void 0),e.jsxDEV("span",{className:"settings-dialog__field-hint",children:Xi},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2149,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2125,columnNumber:13},void 0),e.jsxDEV("div",{className:"settings-dialog__field settings-dialog__field--column settings-dialog__field--full",children:[e.jsxDEV("label",{className:"settings-dialog__label settings-dialog__label--stacked",children:"图标 URL"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2155,columnNumber:15},void 0),e.jsxDEV("input",{type:"url",className:"settings-dialog__input",value:u.iconUrl||"",onChange:l=>be(u.id,r=>({...r,iconUrl:l.target.value})),placeholder:"可选,留空时自动生成默认图标"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2158,columnNumber:15},void 0),e.jsxDEV("span",{className:"settings-dialog__field-hint",children:"支持填写远程图片地址;未填写时将根据供应商名称生成默认图标。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2170,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2154,columnNumber:13},void 0),e.jsxDEV("div",{className:"settings-dialog__field settings-dialog__field--column settings-dialog__field--full",children:[e.jsxDEV("label",{className:"settings-dialog__label settings-dialog__label--stacked",children:"API 地址"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2176,columnNumber:15},void 0),e.jsxDEV("input",{type:"text",className:"settings-dialog__input",value:u.baseUrl,onChange:l=>be(u.id,r=>({...r,baseUrl:l.target.value})),placeholder:Ae},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2179,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2175,columnNumber:13},void 0),e.jsxDEV("div",{className:"settings-dialog__field settings-dialog__field--column settings-dialog__field--full",children:[e.jsxDEV("div",{className:"settings-dialog__label-with-tooltip settings-dialog__label-with-tooltip--left",children:[e.jsxDEV("label",{className:"settings-dialog__label settings-dialog__label--stacked",children:"API Key"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2195,columnNumber:17},void 0),e.jsxDEV(ve,{content:e.jsxDEV("div",{style:{maxWidth:480},children:["您可以从以下地址获取 API Key:",e.jsxDEV("br",{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2202,columnNumber:23},void 0),e.jsxDEV("a",{href:"https://api.tu-zi.com/token",target:"_blank",rel:"noopener noreferrer",style:{color:"#F39C12",textDecoration:"none",display:"inline-block",marginBottom:8},children:"api.tu-zi.com/token"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2203,columnNumber:23},void 0),e.jsxDEV("div",{style:{position:"relative",width:"100%",paddingTop:"56.25%",marginTop:8,borderRadius:8,overflow:"hidden",backgroundColor:"#000",boxShadow:"0 4px 16px rgba(0,0,0,0.2)"},children:e.jsxDEV("iframe",{title:"Bilibili tutorial video",src:"//player.bilibili.com/player.html?isOutside=true&aid=116171584049629&bvid=BV1k4PqzPEKz&cid=36455319822&p=1",allowFullScreen:!0,style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",border:0}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2228,columnNumber:25},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2216,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2200,columnNumber:21},void 0),placement:"top",theme:"light",showArrow:!1,overlayStyle:{maxWidth:"none"},children:e.jsxDEV(Ks,{className:"settings-dialog__tooltip-icon"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2249,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2198,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2194,columnNumber:15},void 0),e.jsxDEV("div",{style:{display:"flex",gap:"8px",alignItems:"center",width:"100%",flexDirection:x?"column":"row"},children:[e.jsxDEV("input",{type:"password",className:"settings-dialog__input",style:{flex:x?"none":1,width:"100%"},value:u.apiKey,onChange:l=>be(u.id,r=>({...r,apiKey:l.target.value})),autoComplete:"off"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2261,columnNumber:17},void 0),e.jsxDEV("button",{type:"button",className:"settings-dialog__button settings-dialog__button--fetch",style:{whiteSpace:"nowrap",height:x?"42px":"32px",width:x?"100%":"auto"},onClick:ms,disabled:!ze||R.status==="loading",children:R.status==="loading"?e.jsxDEV(e.Fragment,{children:[e.jsxDEV(Bs,{size:15,className:"settings-dialog__button-spinner"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2289,columnNumber:23},void 0),"同步中"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2288,columnNumber:21},void 0):"获取模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2274,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2252,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2193,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2071,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2064,columnNumber:9},void 0),e.jsxDEV(rt,{profile:u,onUpdateProfile:l=>be(u.id,l)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2304,columnNumber:9},void 0),u.id===O?e.jsxDEV("div",{className:"settings-dialog__section settings-dialog__section--compact",children:e.jsxDEV("div",{className:"settings-dialog__compat-card",children:[e.jsxDEV("div",{className:"settings-dialog__compat-title",children:"兼容默认模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2314,columnNumber:15},void 0),e.jsxDEV("div",{className:"settings-dialog__compat-meta",children:[e.jsxDEV("span",{children:["图片:",ae||ce()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2316,columnNumber:17},void 0),e.jsxDEV("span",{children:["视频:",w||ue()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2317,columnNumber:17},void 0),e.jsxDEV("span",{children:["音频:",ye||he()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2318,columnNumber:17},void 0),e.jsxDEV("span",{children:["文本:",I||ge()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2319,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2315,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2313,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2312,columnNumber:11},void 0):null,xs()]},i?`provider-detail-${u.id}`:void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2008,columnNumber:7},void 0)},Ge=m.useCallback(i=>{i.profileId&&(st({profileId:i.profileId,modelId:i.modelId,modality:i.modality,compareMode:i.compareMode}),P.trackUIInteraction({area:"settings",action:"model_benchmark_launched",control:"model_benchmark",source:"settings_dialog",metadata:{profileId:i.profileId,modality:i.modality,compareMode:i.compareMode,hasModel:!!i.modelId}}))},[d]),xs=()=>{const i=u?Ci(u,ke):"saved",t=!!(u!=null&&u.apiKey.trim())&&i==="saved"&&R.status!=="loading",a=(u==null?void 0:u.id)===O,n=wt(R.models),l=new Map(Ri.map((q,b)=>[q,b])),r=es.trim(),f=Si(n),p=n.filter(q=>jt(q,r)),j=ht.map(q=>({type:q,models:p.filter(b=>b.type===q).sort((b,ie)=>{const S=l.get(b.vendor)??Number.MAX_SAFE_INTEGER,J=l.get(ie.vendor)??Number.MAX_SAFE_INTEGER;return S!==J?S-J:Hs(b,ie)})})).filter(q=>q.models.length>0),k=ze||n.length>0,U=n.length>0&&p.length===0&&!!r,D=R.status==="error"&&n.length===0,Q=!ze&&n.length===0;return e.jsxDEV("div",{className:"settings-dialog__section",children:[e.jsxDEV("div",{className:"settings-dialog__section-header",children:e.jsxDEV("div",{children:[e.jsxDEV("h3",{className:"settings-dialog__section-title",children:"模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2411,columnNumber:13},void 0),e.jsxDEV("div",{className:"settings-dialog__inline-meta",children:[e.jsxDEV("span",{children:["已添加 ",n.length," 个"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2413,columnNumber:15},void 0),e.jsxDEV("span",{children:["图 ",f.image]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2414,columnNumber:15},void 0),e.jsxDEV("span",{children:["视 ",f.video]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2415,columnNumber:15},void 0),e.jsxDEV("span",{children:["音 ",f.audio]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2416,columnNumber:15},void 0),e.jsxDEV("span",{children:["文 ",f.text]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2417,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2412,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2410,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2409,columnNumber:9},void 0),k?e.jsxDEV("div",{className:"settings-dialog__model-toolbar",children:e.jsxDEV("label",{className:`settings-dialog__model-search ${n.length===0?"settings-dialog__model-search--disabled":""}`,children:[e.jsxDEV(Li,{size:15},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2431,columnNumber:15},void 0),e.jsxDEV("input",{type:"text",value:de,onChange:q=>xe(q.target.value),placeholder:n.length>0?"搜索模型 ID、名称或品牌":"获取模型后可搜索",disabled:n.length===0},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2432,columnNumber:15},void 0),de?e.jsxDEV("button",{type:"button",className:"settings-dialog__model-search-clear",onClick:()=>xe(""),"aria-label":"清空搜索",children:e.jsxDEV(zi,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2450,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2444,columnNumber:17},void 0):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2424,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2423,columnNumber:11},void 0):null,j.length>0?e.jsxDEV("div",{className:"settings-dialog__model-type-groups",children:j.map(({type:q,models:b})=>{const ie=Hi.has(q);return e.jsxDEV("div",{className:"settings-dialog__model-type-group",children:[e.jsxDEV("div",{className:"settings-dialog__model-type-header",style:{cursor:"pointer"},onClick:()=>Ji(q),children:[e.jsxDEV("div",{className:"settings-dialog__model-type-meta",children:[ie?e.jsxDEV(We,{size:16,className:"settings-dialog__model-type-toggle"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2471,columnNumber:25},void 0):e.jsxDEV(Ki,{size:16,className:"settings-dialog__model-type-toggle"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2476,columnNumber:25},void 0),e.jsxDEV("span",{className:"settings-dialog__model-type-title",children:pt[q]},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2481,columnNumber:23},void 0),e.jsxDEV("span",{className:"settings-dialog__model-type-count",children:b.length},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2484,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2469,columnNumber:21},void 0),e.jsxDEV("button",{type:"button",className:"settings-dialog__model-group-test",onClick:S=>{S.stopPropagation(),u&&Ge({profileId:u.id,modality:q,compareMode:"cross-model"})},disabled:!t,title:t?"测试当前供应商这一组模型":"请先保存供应商配置并确保 API Key 可用",children:"测试本组"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2488,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2464,columnNumber:19},void 0),!ie&&e.jsxDEV("div",{className:"settings-dialog__model-type-list",children:b.map(S=>{const J=$i(S.vendor),Be=!a||R.selectedModelIds.includes(S.id);return e.jsxDEV("div",{className:"settings-dialog__model-type-item",style:{"--model-brand-accent":J.accent,"--model-brand-surface":J.surface,"--model-brand-border":J.border},children:[e.jsxDEV("span",{className:"settings-dialog__model-type-item-logo",children:e.jsxDEV(Gi,{vendor:S.vendor,size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2531,columnNumber:31},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2530,columnNumber:29},void 0),e.jsxDEV("div",{className:"settings-dialog__model-type-item-copy",children:[e.jsxDEV(xt,{profileId:u.id,modelId:S.id},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2537,columnNumber:31},void 0),e.jsxDEV("span",{className:"settings-dialog__model-type-item-vendor",children:Oe(S.vendor)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2541,columnNumber:31},void 0),e.jsxDEV(ft,{profileId:u.id,modelId:S.id},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2544,columnNumber:31},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2536,columnNumber:29},void 0),e.jsxDEV("div",{className:"settings-dialog__model-type-item-btns",children:[(()=>{const le=Qs.getLatestEntryStatus(u.id,S.id);return le==="completed"?e.jsxDEV(ve,{content:"上次测试成功",showArrow:!1,children:e.jsxDEV("span",{className:"settings-dialog__model-tip-trigger",children:e.jsxDEV("span",{className:"settings-dialog__model-status settings-dialog__model-status--ok"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2563,columnNumber:41},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2562,columnNumber:39},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2558,columnNumber:37},void 0):le==="failed"?e.jsxDEV(ve,{content:"上次测试失败",showArrow:!1,children:e.jsxDEV("span",{className:"settings-dialog__model-tip-trigger",children:e.jsxDEV("span",{className:"settings-dialog__model-status settings-dialog__model-status--fail"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2574,columnNumber:41},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2573,columnNumber:39},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2569,columnNumber:37},void 0):null})(),e.jsxDEV(ve,{content:t?"测试":"请先保存供应商配置并确保 API Key 可用",showArrow:!1,children:e.jsxDEV("span",{className:"settings-dialog__model-tip-trigger",children:e.jsxDEV("button",{type:"button",className:"settings-dialog__model-icon-btn settings-dialog__model-icon-btn--test",onClick:le=>{le.stopPropagation(),u&&Ge({profileId:u.id,modality:q,modelId:S.id,compareMode:"cross-provider"})},disabled:!t,children:e.jsxDEV(Bi,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2604,columnNumber:37},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2589,columnNumber:35},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2588,columnNumber:33},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2580,columnNumber:31},void 0),Be?e.jsxDEV(ve,{content:"移除此模型",showArrow:!1,children:e.jsxDEV("span",{className:"settings-dialog__model-tip-trigger",children:e.jsxDEV("button",{type:"button",className:"settings-dialog__model-icon-btn settings-dialog__model-icon-btn--delete",onClick:le=>{le.stopPropagation(),Ns(S.id)},children:e.jsxDEV(wi,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2622,columnNumber:39},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2614,columnNumber:37},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2613,columnNumber:35},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2609,columnNumber:33},void 0):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2549,columnNumber:29},void 0)]},S.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2519,columnNumber:27},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2511,columnNumber:21},void 0)]},q,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2463,columnNumber:17},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2458,columnNumber:11},void 0):U?e.jsxDEV("div",{className:"settings-dialog__model-empty",children:"没有匹配的模型,试试搜索品牌名或更完整的模型 ID。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2638,columnNumber:11},void 0):D?e.jsxDEV("div",{className:"settings-dialog__model-empty settings-dialog__model-empty--error",children:[e.jsxDEV(Js,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2643,columnNumber:13},void 0),e.jsxDEV("span",{children:R.error||"模型获取失败,请稍后重试"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2644,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2642,columnNumber:11},void 0):Q?e.jsxDEV("div",{className:"settings-dialog__model-empty",children:"填写 API Key 后即可获取模型,获取完成后可在这里检索和浏览。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2647,columnNumber:11},void 0):e.jsxDEV("div",{className:"settings-dialog__model-empty",children:"还没有已添加的模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2651,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2408,columnNumber:7},void 0)},bs=(i,t,a)=>{const n=Me(a),l=W(a);return h.filter(r=>r.id===n||r.enabled&&r.capabilities[t]).map(r=>{const p=(r.id===O?i==="image"?ii:i==="video"?si:ti:Ee.getState(r.id).models.filter(j=>j.type===i)).filter((j,k,U)=>U.findIndex(D=>D.id===j.id)===k);return r.id===n&&l&&!p.some(j=>j.id===l)&&p.unshift({id:l,label:l,shortLabel:l,type:i,vendor:Xs.OTHER}),{profile:r,models:p}}).filter(r=>r.models.length>0)},Ke=(i,t,a)=>{var k;const n=bs(i,a,t),l=Me(t),r=W(t),f=((k=h.find(U=>U.id===l))==null?void 0:k.name)||"未配置",p=St(n),j=l&&r?`${l}::${r}`:r||void 0;return e.jsxDEV("div",{className:`settings-dialog__route-card settings-dialog__route-card--${i}`,children:[e.jsxDEV("div",{className:"settings-dialog__route-card-top",children:e.jsxDEV("div",{className:"settings-dialog__route-card-title",children:Ii[i]},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2736,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2735,columnNumber:9},void 0),e.jsxDEV("div",{className:"settings-dialog__stack",children:[e.jsxDEV("div",{className:"settings-dialog__field settings-dialog__field--column",children:[e.jsxDEV("label",{className:"settings-dialog__label settings-dialog__label--stacked",children:"默认模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2742,columnNumber:13},void 0),e.jsxDEV("div",{className:"settings-dialog__route-model-picker",children:[e.jsxDEV(Ys,{variant:"form",selectedModel:r||"",selectedSelectionKey:j,models:p,providerProfilesOverride:h,placement:"down",placeholder:`搜索${Ii[i]}模型或供应商`,allowCustomValue:!1,showProviderAction:!1,onSelect:(U,D)=>{gi(i,D||pe(null,U))},disabled:p.length===0},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2746,columnNumber:15},void 0),r?e.jsxDEV("button",{type:"button",className:"settings-dialog__route-clear",onClick:()=>gi(i,null),children:"清空"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2765,columnNumber:17},void 0):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2745,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2741,columnNumber:11},void 0),e.jsxDEV("div",{className:"settings-dialog__route-meta",children:[e.jsxDEV("span",{children:f},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2777,columnNumber:13},void 0),e.jsxDEV("span",{children:r||"未选择模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2778,columnNumber:13},void 0),n.length===0?e.jsxDEV("span",{children:"暂无可选模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2779,columnNumber:41},void 0):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2776,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2740,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2732,columnNumber:7},void 0)},vi=(i=!1)=>{if(!T)return e.jsxDEV("div",{className:"settings-dialog__empty-panel",children:"请选择一个默认模型预设。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2789,columnNumber:9},void 0);const t=Pi(T),a=T.id===ne;return e.jsxDEV("div",{className:`settings-dialog__content-panel ${i?"settings-dialog__content-panel--detail":""}`,children:[i?e.jsxDEV("div",{className:"settings-dialog__compact-stage-header",children:[e.jsxDEV("button",{type:"button",className:"settings-dialog__compact-back",onClick:()=>je("catalog"),children:[e.jsxDEV(ki,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2812,columnNumber:15},void 0),e.jsxDEV("span",{children:"返回模型预设"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2813,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2807,columnNumber:13},void 0),e.jsxDEV("div",{className:"settings-dialog__compact-stage-copy",children:[e.jsxDEV("span",{className:"settings-dialog__compact-stage-eyebrow",children:"模型预设"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2816,columnNumber:15},void 0),e.jsxDEV("p",{className:"settings-dialog__compact-stage-text",children:"在这里设置图片、视频和文本模型的默认路由。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2819,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2815,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2806,columnNumber:11},void 0):null,e.jsxDEV("div",{className:"settings-dialog__section",children:[e.jsxDEV("div",{className:"settings-dialog__panel-header",children:[e.jsxDEV("div",{children:[e.jsxDEV("h3",{className:"settings-dialog__section-title",children:T.name},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2828,columnNumber:15},void 0),e.jsxDEV("div",{className:"settings-dialog__inline-meta",children:[e.jsxDEV("span",{children:a?"当前预设":"未激活"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2832,columnNumber:17},void 0),e.jsxDEV("span",{children:[t,"/3 已配置"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2833,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2831,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2827,columnNumber:13},void 0),e.jsxDEV("div",{className:"settings-dialog__inline-row",children:[e.jsxDEV("button",{type:"button",className:"settings-dialog__ghost-button",onClick:()=>{di(V,T.id)},children:"设为当前预设"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2837,columnNumber:15},void 0),e.jsxDEV("button",{type:"button",className:"settings-dialog__danger-button",onClick:()=>gs(T.id),disabled:V.length<=1,children:"删除预设"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2849,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2836,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2826,columnNumber:11},void 0),e.jsxDEV("div",{className:"settings-dialog__grid",children:e.jsxDEV("div",{className:"settings-dialog__field settings-dialog__field--column settings-dialog__field--full",children:[e.jsxDEV("label",{className:"settings-dialog__label settings-dialog__label--stacked",children:"预设名称"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2862,columnNumber:15},void 0),e.jsxDEV("input",{type:"text",className:"settings-dialog__input",value:T.name,onChange:n=>ls(T.id,l=>({...l,name:n.target.value}))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2865,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2861,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2860,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2825,columnNumber:9},void 0),e.jsxDEV("div",{className:"settings-dialog__routes",children:[Ke("image",T.image,"supportsImage"),Ke("video",T.video,"supportsVideo"),Ke("text",T.text,"supportsText")]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2880,columnNumber:9},void 0)]},i?`preset-detail-${T.id}`:void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2799,columnNumber:7},void 0)},hs=()=>e.jsxDEV("div",{className:"settings-dialog__workspace settings-dialog__workspace--single",children:e.jsxDEV("div",{className:"settings-dialog__content-panel settings-dialog__content-panel--canvas",children:[x?e.jsxDEV("div",{className:"settings-dialog__compact-stage-header",children:e.jsxDEV("div",{className:"settings-dialog__compact-stage-copy",children:[e.jsxDEV("span",{className:"settings-dialog__compact-stage-eyebrow",children:"画布显示"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2903,columnNumber:15},void 0),e.jsxDEV("p",{className:"settings-dialog__compact-stage-text",children:"手机上会以更集中的卡片形式展示,方便快速切换画布相关开关。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2906,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2902,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2901,columnNumber:11},void 0):null,e.jsxDEV("div",{className:"settings-dialog__section settings-dialog__section--canvas-card",children:[e.jsxDEV("div",{className:"settings-dialog__section-header",children:e.jsxDEV("div",{children:e.jsxDEV("h3",{className:"settings-dialog__section-title",children:"画布显示配置"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2915,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2914,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2913,columnNumber:11},void 0),e.jsxDEV("div",{className:"settings-dialog__preference settings-dialog__preference--panel",children:[e.jsxDEV("div",{className:"settings-dialog__toggle-copy",children:[e.jsxDEV("span",{className:"settings-dialog__toggle-title",children:"任务进度卡片"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2921,columnNumber:15},void 0),e.jsxDEV("span",{className:"settings-dialog__toggle-desc",children:"在画布中显示任务进度卡片,便于追踪当前生成状态。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2924,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2920,columnNumber:13},void 0),e.jsxDEV(Ei,{size:"small",value:Y,onChange:i=>void cs(i)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2928,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2919,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2912,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2899,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2898,columnNumber:5},void 0),vs=()=>e.jsxDEV("aside",{className:"settings-dialog__nav",children:e.jsxDEV("div",{className:"settings-dialog__nav-shell",children:e.jsxDEV("div",{className:"settings-dialog__nav-list",children:gt.map(i=>e.jsxDEV("button",{type:"button",className:`settings-dialog__nav-item ${K===i.value?"settings-dialog__nav-item--active":""}`,onClick:()=>ns(i.value),children:e.jsxDEV("span",{className:"settings-dialog__nav-item-title",children:i.label},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2957,columnNumber:17},void 0)},i.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2947,columnNumber:15},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2945,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2944,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2943,columnNumber:7},void 0),_s=()=>K==="canvas"?hs():K==="speech"?e.jsxDEV(Gs,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2974,columnNumber:14},void 0):K==="presets"?ni?Yi==="catalog"?bi("presets-catalog",xi()):vi(!0):e.jsxDEV("div",{className:`settings-dialog__workspace ${x?"settings-dialog__workspace--show-sidebar":""}`,children:[e.jsxDEV("aside",{className:"settings-dialog__sidebar",children:xi()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2990,columnNumber:11},void 0),vi(!1)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:2985,columnNumber:9},void 0):ni?Zi==="catalog"?bi("providers-catalog",fi()):hi(!0):e.jsxDEV("div",{className:`settings-dialog__workspace ${x?"settings-dialog__workspace--show-sidebar":""}`,children:[e.jsxDEV("aside",{className:"settings-dialog__sidebar",children:fi()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:3010,columnNumber:9},void 0),hi(!1)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:3005,columnNumber:7},void 0);return e.jsxDEV(e.Fragment,{children:[e.jsxDEV(Os,{id:"settings-dialog",visible:o.openSettings,title:"设置",onClose:fs,width:x?"100%":"88%",height:x?"100%":"88%",minWidth:x?Math.max(320,Math.min(G-16,640)):1080,minHeight:x?Math.max(520,Math.min(H-16,820)):680,x:"center",y:"center",maximizable:!0,minimizable:!1,resizable:!x,movable:!x,modal:!1,className:"winbox-ai-generation winbox-tool-window winbox-settings-window",container:s,background:"#ffffff",children:e.jsxDEV("div",{ref:fe,className:`settings-dialog ${x?"settings-dialog--compact":""}`,"data-testid":"settings-dialog",children:e.jsxDEV("div",{className:"settings-dialog__layout",children:[vs(),e.jsxDEV("div",{className:"settings-dialog__main",children:_s()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:3057,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:3055,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:3048,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:3020,columnNumber:7},void 0),e.jsxDEV(lt,{open:Je,container:s,models:R.discoveredModels,selectedModelIds:R.selectedModelIds,onClose:()=>Se(!1),onConfirm:mi,onTestModel:i=>{if(!u)return;const t=R.discoveredModels.find(a=>a.id===i);Ge({profileId:u.id,modelId:i,modality:(t==null?void 0:t.type)||"image",compareMode:"cross-provider"})}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:3061,columnNumber:7},void 0),_]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/settings-dialog/settings-dialog.tsx",lineNumber:3019,columnNumber:5},void 0)};export{Rt as IMAGE_MODEL_GROUPED_OPTIONS,At as SettingsDialog,zt as VIDEO_MODEL_OPTIONS};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{aE as L}from"./tool-windows-BEnZdJqF.js";const o="system",A="external",M="auto",R="__external_skill__:",y=[{id:"generate_inspiration_board",name:"灵感图",mcpTool:"generate_inspiration_board",description:`灵感图
|
|
2
2
|
|
|
3
3
|
生成创意灵感拼贴图,将多张图片以不规则分割的方式拼合,以散落的横向布局插入画布,营造富有创意感的视觉效果。
|
|
4
4
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as P,d as N,p as W}from"./styles-6aaf32cf-b6AdP7fu.js";import{g as t,d as H,l as b,e as R,k as T,t as v,u as U}from"./index-C5eu4uSl.js";import{G as C}from"./graph--nPw8zXQ.js";import{l as F}from"./layout-CVkuImk4.js";import{l as $}from"./line-D3bnG227.js";import"./tool-windows-DOIu9TAD.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";const O=e=>e.append("circle").attr("class","start-state").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit).attr("cy",t().state.padding+t().state.sizeUnit),X=e=>e.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",t().state.textHeight).attr("class","divider").attr("x2",t().state.textHeight*2).attr("y1",0).attr("y2",0),J=(e,i)=>{const o=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+2*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),c=o.node().getBBox();return e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",c.width+2*t().state.padding).attr("height",c.height+2*t().state.padding).attr("rx",t().state.radius),o},Y=(e,i)=>{const o=function(l,m,w){const E=l.append("tspan").attr("x",2*t().state.padding).text(m);w||E.attr("dy",t().state.textHeight)},s=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+1.3*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.descriptions[0]).node().getBBox(),g=s.height,p=e.append("text").attr("x",t().state.padding).attr("y",g+t().state.padding*.4+t().state.dividerMargin+t().state.textHeight).attr("class","state-description");let a=!0,r=!0;i.descriptions.forEach(function(l){a||(o(p,l,r),r=!1),a=!1});const y=e.append("line").attr("x1",t().state.padding).attr("y1",t().state.padding+g+t().state.dividerMargin/2).attr("y2",t().state.padding+g+t().state.dividerMargin/2).attr("class","descr-divider"),x=p.node().getBBox(),d=Math.max(x.width,s.width);return y.attr("x2",d+3*t().state.padding),e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",d+2*t().state.padding).attr("height",x.height+g+2*t().state.padding).attr("rx",t().state.radius),e},I=(e,i,o)=>{const c=t().state.padding,s=2*t().state.padding,g=e.node().getBBox(),p=g.width,a=g.x,r=e.append("text").attr("x",0).attr("y",t().state.titleShift).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),x=r.node().getBBox().width+s;let d=Math.max(x,p);d===p&&(d=d+s);let l;const m=e.node().getBBox();i.doc,l=a-c,x>p&&(l=(p-d)/2+c),Math.abs(a-m.x)<c&&x>p&&(l=a-(x-p)/2);const w=1-t().state.textHeight;return e.insert("rect",":first-child").attr("x",l).attr("y",w).attr("class",o?"alt-composit":"composit").attr("width",d).attr("height",m.height+t().state.textHeight+t().state.titleShift+1).attr("rx","0"),r.attr("x",l+c),x<=p&&r.attr("x",a+(d-s)/2-x/2+c),e.insert("rect",":first-child").attr("x",l).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",d).attr("height",t().state.textHeight*3).attr("rx",t().state.radius),e.insert("rect",":first-child").attr("x",l).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",d).attr("height",m.height+3+2*t().state.textHeight).attr("rx",t().state.radius),e},_=e=>(e.append("circle").attr("class","end-state-outer").attr("r",t().state.sizeUnit+t().state.miniPadding).attr("cx",t().state.padding+t().state.sizeUnit+t().state.miniPadding).attr("cy",t().state.padding+t().state.sizeUnit+t().state.miniPadding),e.append("circle").attr("class","end-state-inner").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit+2).attr("cy",t().state.padding+t().state.sizeUnit+2)),q=(e,i)=>{let o=t().state.forkWidth,c=t().state.forkHeight;if(i.parentId){let s=o;o=c,c=s}return e.append("rect").style("stroke","black").style("fill","black").attr("width",o).attr("height",c).attr("x",t().state.padding).attr("y",t().state.padding)},Z=(e,i,o,c)=>{let s=0;const g=c.append("text");g.style("text-anchor","start"),g.attr("class","noteText");let p=e.replace(/\r\n/g,"<br/>");p=p.replace(/\n/g,"<br/>");const a=p.split(T.lineBreakRegex);let r=1.25*t().state.noteMargin;for(const y of a){const x=y.trim();if(x.length>0){const d=g.append("tspan");if(d.text(x),r===0){const l=d.node().getBBox();r+=l.height}s+=r,d.attr("x",i+t().state.noteMargin),d.attr("y",o+s+1.25*t().state.noteMargin)}}return{textWidth:g.node().getBBox().width,textHeight:s}},K=(e,i)=>{i.attr("class","state-note");const o=i.append("rect").attr("x",0).attr("y",t().state.padding),c=i.append("g"),{textWidth:s,textHeight:g}=Z(e,0,0,c);return o.attr("height",g+2*t().state.noteMargin),o.attr("width",s+t().state.noteMargin*2),o},L=function(e,i){const o=i.id,c={id:o,label:i.id,width:0,height:0},s=e.append("g").attr("id",o).attr("class","stateGroup");i.type==="start"&&O(s),i.type==="end"&&_(s),(i.type==="fork"||i.type==="join")&&q(s,i),i.type==="note"&&K(i.note.text,s),i.type==="divider"&&X(s),i.type==="default"&&i.descriptions.length===0&&J(s,i),i.type==="default"&&i.descriptions.length>0&&Y(s,i);const g=s.node().getBBox();return c.width=g.width+2*t().state.padding,c.height=g.height+2*t().state.padding,c};let G=0;const Q=function(e,i,o){const c=function(r){switch(r){case N.relationType.AGGREGATION:return"aggregation";case N.relationType.EXTENSION:return"extension";case N.relationType.COMPOSITION:return"composition";case N.relationType.DEPENDENCY:return"dependency"}};i.points=i.points.filter(r=>!Number.isNaN(r.y));const s=i.points,g=$().x(function(r){return r.x}).y(function(r){return r.y}).curve(v),p=e.append("path").attr("d",g(s)).attr("id","edge"+G).attr("class","transition");let a="";if(t().state.arrowMarkerAbsolute&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,a=a.replace(/\(/g,"\\("),a=a.replace(/\)/g,"\\)")),p.attr("marker-end","url("+a+"#"+c(N.relationType.DEPENDENCY)+"End)"),o.title!==void 0){const r=e.append("g").attr("class","stateLabel"),{x:y,y:x}=U.calcLabelPosition(i.points),d=T.getRows(o.title);let l=0;const m=[];let w=0,E=0;for(let u=0;u<=d.length;u++){const h=r.append("text").attr("text-anchor","middle").text(d[u]).attr("x",y).attr("y",x+l),f=h.node().getBBox();w=Math.max(w,f.width),E=Math.min(E,f.x),b.info(f.x,y,x+l),l===0&&(l=h.node().getBBox().height,b.info("Title height",l,x)),m.push(h)}let k=l*d.length;if(d.length>1){const u=(d.length-1)*l*.5;m.forEach((h,f)=>h.attr("y",x+f*l-u)),k=l*d.length}const n=r.node().getBBox();r.insert("rect",":first-child").attr("class","box").attr("x",y-w/2-t().state.padding/2).attr("y",x-k/2-t().state.padding/2-3.5).attr("width",w+t().state.padding).attr("height",k+t().state.padding),b.info(n)}G++};let B;const z={},V=function(){},j=function(e){e.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},D=function(e,i,o,c){B=t().state;const s=t().securityLevel;let g;s==="sandbox"&&(g=H("#i"+i));const p=s==="sandbox"?H(g.nodes()[0].contentDocument.body):H("body"),a=s==="sandbox"?g.nodes()[0].contentDocument:document;b.debug("Rendering diagram "+e);const r=p.select(`[id='${i}']`);j(r);const y=c.db.getRootDoc();A(y,r,void 0,!1,p,a,c);const x=B.padding,d=r.node().getBBox(),l=d.width+x*2,m=d.height+x*2,w=l*1.75;R(r,m,w,B.useMaxWidth),r.attr("viewBox",`${d.x-B.padding} ${d.y-B.padding} `+l+" "+m)},tt=e=>e?e.length*B.fontSizeFactor:1,A=(e,i,o,c,s,g,p)=>{const a=new C({compound:!0,multigraph:!0});let r,y=!0;for(r=0;r<e.length;r++)if(e[r].stmt==="relation"){y=!1;break}o?a.setGraph({rankdir:"LR",multigraph:!0,compound:!0,ranker:"tight-tree",ranksep:y?1:B.edgeLengthFactor,nodeSep:y?1:50,isMultiGraph:!0}):a.setGraph({rankdir:"TB",multigraph:!0,compound:!0,ranksep:y?1:B.edgeLengthFactor,nodeSep:y?1:50,ranker:"tight-tree",isMultiGraph:!0}),a.setDefaultEdgeLabel(function(){return{}}),p.db.extract(e);const x=p.db.getStates(),d=p.db.getRelations(),l=Object.keys(x);for(const n of l){const u=x[n];o&&(u.parentId=o);let h;if(u.doc){let f=i.append("g").attr("id",u.id).attr("class","stateGroup");h=A(u.doc,f,u.id,!c,s,g,p);{f=I(f,u,c);let S=f.node().getBBox();h.width=S.width,h.height=S.height+B.padding/2,z[u.id]={y:B.compositTitleSize}}}else h=L(i,u);if(u.note){const f={descriptions:[],id:u.id+"-note",note:u.note,type:"note"},S=L(i,f);u.note.position==="left of"?(a.setNode(h.id+"-note",S),a.setNode(h.id,h)):(a.setNode(h.id,h),a.setNode(h.id+"-note",S)),a.setParent(h.id,h.id+"-group"),a.setParent(h.id+"-note",h.id+"-group")}else a.setNode(h.id,h)}b.debug("Count=",a.nodeCount(),a);let m=0;d.forEach(function(n){m++,b.debug("Setting edge",n),a.setEdge(n.id1,n.id2,{relation:n,width:tt(n.title),height:B.labelHeight*T.getRows(n.title).length,labelpos:"c"},"id"+m)}),F(a),b.debug("Graph after layout",a.nodes());const w=i.node();a.nodes().forEach(function(n){n!==void 0&&a.node(n)!==void 0?(b.warn("Node "+n+": "+JSON.stringify(a.node(n))),s.select("#"+w.id+" #"+n).attr("transform","translate("+(a.node(n).x-a.node(n).width/2)+","+(a.node(n).y+(z[n]?z[n].y:0)-a.node(n).height/2)+" )"),s.select("#"+w.id+" #"+n).attr("data-x-shift",a.node(n).x-a.node(n).width/2),g.querySelectorAll("#"+w.id+" #"+n+" .divider").forEach(h=>{const f=h.parentElement;let S=0,M=0;f&&(f.parentElement&&(S=f.parentElement.getBBox().width),M=parseInt(f.getAttribute("data-x-shift"),10),Number.isNaN(M)&&(M=0)),h.setAttribute("x1",0-M+8),h.setAttribute("x2",S-M-8)})):b.debug("No Node "+n+": "+JSON.stringify(a.node(n)))});let E=w.getBBox();a.edges().forEach(function(n){n!==void 0&&a.edge(n)!==void 0&&(b.debug("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(a.edge(n))),Q(i,a.edge(n),a.edge(n).relation))}),E=w.getBBox();const k={id:o||"root",label:o||"root",width:0,height:0};return k.width=E.width+2*B.padding,k.height=E.height+2*B.padding,b.debug("Doc rendered",k,a),k},et={setConf:V,draw:D},lt={parser:W,db:N,renderer:et,styles:P,init:e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute,N.clear()}};export{lt as diagram};
|
|
1
|
+
import{s as P,d as N,p as W}from"./styles-6aaf32cf-CTtf8moq.js";import{g as t,d as H,l as b,e as R,k as T,t as v,u as U}from"./index-0b_TeH8L.js";import{G as C}from"./graph-WeSRtsZO.js";import{l as F}from"./layout-DvRyabpG.js";import{l as $}from"./line-C72F34Po.js";import"./tool-windows-BEnZdJqF.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";const O=e=>e.append("circle").attr("class","start-state").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit).attr("cy",t().state.padding+t().state.sizeUnit),X=e=>e.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",t().state.textHeight).attr("class","divider").attr("x2",t().state.textHeight*2).attr("y1",0).attr("y2",0),J=(e,i)=>{const o=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+2*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),c=o.node().getBBox();return e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",c.width+2*t().state.padding).attr("height",c.height+2*t().state.padding).attr("rx",t().state.radius),o},Y=(e,i)=>{const o=function(l,m,w){const E=l.append("tspan").attr("x",2*t().state.padding).text(m);w||E.attr("dy",t().state.textHeight)},s=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+1.3*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.descriptions[0]).node().getBBox(),g=s.height,p=e.append("text").attr("x",t().state.padding).attr("y",g+t().state.padding*.4+t().state.dividerMargin+t().state.textHeight).attr("class","state-description");let a=!0,r=!0;i.descriptions.forEach(function(l){a||(o(p,l,r),r=!1),a=!1});const y=e.append("line").attr("x1",t().state.padding).attr("y1",t().state.padding+g+t().state.dividerMargin/2).attr("y2",t().state.padding+g+t().state.dividerMargin/2).attr("class","descr-divider"),x=p.node().getBBox(),d=Math.max(x.width,s.width);return y.attr("x2",d+3*t().state.padding),e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",d+2*t().state.padding).attr("height",x.height+g+2*t().state.padding).attr("rx",t().state.radius),e},I=(e,i,o)=>{const c=t().state.padding,s=2*t().state.padding,g=e.node().getBBox(),p=g.width,a=g.x,r=e.append("text").attr("x",0).attr("y",t().state.titleShift).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),x=r.node().getBBox().width+s;let d=Math.max(x,p);d===p&&(d=d+s);let l;const m=e.node().getBBox();i.doc,l=a-c,x>p&&(l=(p-d)/2+c),Math.abs(a-m.x)<c&&x>p&&(l=a-(x-p)/2);const w=1-t().state.textHeight;return e.insert("rect",":first-child").attr("x",l).attr("y",w).attr("class",o?"alt-composit":"composit").attr("width",d).attr("height",m.height+t().state.textHeight+t().state.titleShift+1).attr("rx","0"),r.attr("x",l+c),x<=p&&r.attr("x",a+(d-s)/2-x/2+c),e.insert("rect",":first-child").attr("x",l).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",d).attr("height",t().state.textHeight*3).attr("rx",t().state.radius),e.insert("rect",":first-child").attr("x",l).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",d).attr("height",m.height+3+2*t().state.textHeight).attr("rx",t().state.radius),e},_=e=>(e.append("circle").attr("class","end-state-outer").attr("r",t().state.sizeUnit+t().state.miniPadding).attr("cx",t().state.padding+t().state.sizeUnit+t().state.miniPadding).attr("cy",t().state.padding+t().state.sizeUnit+t().state.miniPadding),e.append("circle").attr("class","end-state-inner").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit+2).attr("cy",t().state.padding+t().state.sizeUnit+2)),q=(e,i)=>{let o=t().state.forkWidth,c=t().state.forkHeight;if(i.parentId){let s=o;o=c,c=s}return e.append("rect").style("stroke","black").style("fill","black").attr("width",o).attr("height",c).attr("x",t().state.padding).attr("y",t().state.padding)},Z=(e,i,o,c)=>{let s=0;const g=c.append("text");g.style("text-anchor","start"),g.attr("class","noteText");let p=e.replace(/\r\n/g,"<br/>");p=p.replace(/\n/g,"<br/>");const a=p.split(T.lineBreakRegex);let r=1.25*t().state.noteMargin;for(const y of a){const x=y.trim();if(x.length>0){const d=g.append("tspan");if(d.text(x),r===0){const l=d.node().getBBox();r+=l.height}s+=r,d.attr("x",i+t().state.noteMargin),d.attr("y",o+s+1.25*t().state.noteMargin)}}return{textWidth:g.node().getBBox().width,textHeight:s}},K=(e,i)=>{i.attr("class","state-note");const o=i.append("rect").attr("x",0).attr("y",t().state.padding),c=i.append("g"),{textWidth:s,textHeight:g}=Z(e,0,0,c);return o.attr("height",g+2*t().state.noteMargin),o.attr("width",s+t().state.noteMargin*2),o},L=function(e,i){const o=i.id,c={id:o,label:i.id,width:0,height:0},s=e.append("g").attr("id",o).attr("class","stateGroup");i.type==="start"&&O(s),i.type==="end"&&_(s),(i.type==="fork"||i.type==="join")&&q(s,i),i.type==="note"&&K(i.note.text,s),i.type==="divider"&&X(s),i.type==="default"&&i.descriptions.length===0&&J(s,i),i.type==="default"&&i.descriptions.length>0&&Y(s,i);const g=s.node().getBBox();return c.width=g.width+2*t().state.padding,c.height=g.height+2*t().state.padding,c};let G=0;const Q=function(e,i,o){const c=function(r){switch(r){case N.relationType.AGGREGATION:return"aggregation";case N.relationType.EXTENSION:return"extension";case N.relationType.COMPOSITION:return"composition";case N.relationType.DEPENDENCY:return"dependency"}};i.points=i.points.filter(r=>!Number.isNaN(r.y));const s=i.points,g=$().x(function(r){return r.x}).y(function(r){return r.y}).curve(v),p=e.append("path").attr("d",g(s)).attr("id","edge"+G).attr("class","transition");let a="";if(t().state.arrowMarkerAbsolute&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,a=a.replace(/\(/g,"\\("),a=a.replace(/\)/g,"\\)")),p.attr("marker-end","url("+a+"#"+c(N.relationType.DEPENDENCY)+"End)"),o.title!==void 0){const r=e.append("g").attr("class","stateLabel"),{x:y,y:x}=U.calcLabelPosition(i.points),d=T.getRows(o.title);let l=0;const m=[];let w=0,E=0;for(let u=0;u<=d.length;u++){const h=r.append("text").attr("text-anchor","middle").text(d[u]).attr("x",y).attr("y",x+l),f=h.node().getBBox();w=Math.max(w,f.width),E=Math.min(E,f.x),b.info(f.x,y,x+l),l===0&&(l=h.node().getBBox().height,b.info("Title height",l,x)),m.push(h)}let k=l*d.length;if(d.length>1){const u=(d.length-1)*l*.5;m.forEach((h,f)=>h.attr("y",x+f*l-u)),k=l*d.length}const n=r.node().getBBox();r.insert("rect",":first-child").attr("class","box").attr("x",y-w/2-t().state.padding/2).attr("y",x-k/2-t().state.padding/2-3.5).attr("width",w+t().state.padding).attr("height",k+t().state.padding),b.info(n)}G++};let B;const z={},V=function(){},j=function(e){e.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},D=function(e,i,o,c){B=t().state;const s=t().securityLevel;let g;s==="sandbox"&&(g=H("#i"+i));const p=s==="sandbox"?H(g.nodes()[0].contentDocument.body):H("body"),a=s==="sandbox"?g.nodes()[0].contentDocument:document;b.debug("Rendering diagram "+e);const r=p.select(`[id='${i}']`);j(r);const y=c.db.getRootDoc();A(y,r,void 0,!1,p,a,c);const x=B.padding,d=r.node().getBBox(),l=d.width+x*2,m=d.height+x*2,w=l*1.75;R(r,m,w,B.useMaxWidth),r.attr("viewBox",`${d.x-B.padding} ${d.y-B.padding} `+l+" "+m)},tt=e=>e?e.length*B.fontSizeFactor:1,A=(e,i,o,c,s,g,p)=>{const a=new C({compound:!0,multigraph:!0});let r,y=!0;for(r=0;r<e.length;r++)if(e[r].stmt==="relation"){y=!1;break}o?a.setGraph({rankdir:"LR",multigraph:!0,compound:!0,ranker:"tight-tree",ranksep:y?1:B.edgeLengthFactor,nodeSep:y?1:50,isMultiGraph:!0}):a.setGraph({rankdir:"TB",multigraph:!0,compound:!0,ranksep:y?1:B.edgeLengthFactor,nodeSep:y?1:50,ranker:"tight-tree",isMultiGraph:!0}),a.setDefaultEdgeLabel(function(){return{}}),p.db.extract(e);const x=p.db.getStates(),d=p.db.getRelations(),l=Object.keys(x);for(const n of l){const u=x[n];o&&(u.parentId=o);let h;if(u.doc){let f=i.append("g").attr("id",u.id).attr("class","stateGroup");h=A(u.doc,f,u.id,!c,s,g,p);{f=I(f,u,c);let S=f.node().getBBox();h.width=S.width,h.height=S.height+B.padding/2,z[u.id]={y:B.compositTitleSize}}}else h=L(i,u);if(u.note){const f={descriptions:[],id:u.id+"-note",note:u.note,type:"note"},S=L(i,f);u.note.position==="left of"?(a.setNode(h.id+"-note",S),a.setNode(h.id,h)):(a.setNode(h.id,h),a.setNode(h.id+"-note",S)),a.setParent(h.id,h.id+"-group"),a.setParent(h.id+"-note",h.id+"-group")}else a.setNode(h.id,h)}b.debug("Count=",a.nodeCount(),a);let m=0;d.forEach(function(n){m++,b.debug("Setting edge",n),a.setEdge(n.id1,n.id2,{relation:n,width:tt(n.title),height:B.labelHeight*T.getRows(n.title).length,labelpos:"c"},"id"+m)}),F(a),b.debug("Graph after layout",a.nodes());const w=i.node();a.nodes().forEach(function(n){n!==void 0&&a.node(n)!==void 0?(b.warn("Node "+n+": "+JSON.stringify(a.node(n))),s.select("#"+w.id+" #"+n).attr("transform","translate("+(a.node(n).x-a.node(n).width/2)+","+(a.node(n).y+(z[n]?z[n].y:0)-a.node(n).height/2)+" )"),s.select("#"+w.id+" #"+n).attr("data-x-shift",a.node(n).x-a.node(n).width/2),g.querySelectorAll("#"+w.id+" #"+n+" .divider").forEach(h=>{const f=h.parentElement;let S=0,M=0;f&&(f.parentElement&&(S=f.parentElement.getBBox().width),M=parseInt(f.getAttribute("data-x-shift"),10),Number.isNaN(M)&&(M=0)),h.setAttribute("x1",0-M+8),h.setAttribute("x2",S-M-8)})):b.debug("No Node "+n+": "+JSON.stringify(a.node(n)))});let E=w.getBBox();a.edges().forEach(function(n){n!==void 0&&a.edge(n)!==void 0&&(b.debug("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(a.edge(n))),Q(i,a.edge(n),a.edge(n).relation))}),E=w.getBBox();const k={id:o||"root",label:o||"root",width:0,height:0};return k.width=E.width+2*B.padding,k.height=E.height+2*B.padding,b.debug("Doc rendered",k,a),k},et={setConf:V,draw:D},lt={parser:W,db:N,renderer:et,styles:P,init:e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute,N.clear()}};export{lt as diagram};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as P,d as N,p as W}from"./styles-6aaf32cf-C3jnr3hV.js";import{g as t,d as H,l as b,e as R,k as T,t as v,u as U}from"./mermaid.core-CwZQb0ud.js";import{G as C}from"./graph-g-2U7grQ.js";import{l as F}from"./layout-WSR0vNPO.js";import{l as $}from"./line-DQuMJveY.js";import"./tool-windows-DOIu9TAD.js";import"./array-B5oSNiGi.js";import"./path-CY0bYimO.js";const O=e=>e.append("circle").attr("class","start-state").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit).attr("cy",t().state.padding+t().state.sizeUnit),X=e=>e.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",t().state.textHeight).attr("class","divider").attr("x2",t().state.textHeight*2).attr("y1",0).attr("y2",0),J=(e,i)=>{const o=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+2*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),c=o.node().getBBox();return e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",c.width+2*t().state.padding).attr("height",c.height+2*t().state.padding).attr("rx",t().state.radius),o},Y=(e,i)=>{const o=function(l,m,w){const E=l.append("tspan").attr("x",2*t().state.padding).text(m);w||E.attr("dy",t().state.textHeight)},s=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+1.3*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.descriptions[0]).node().getBBox(),g=s.height,p=e.append("text").attr("x",t().state.padding).attr("y",g+t().state.padding*.4+t().state.dividerMargin+t().state.textHeight).attr("class","state-description");let a=!0,r=!0;i.descriptions.forEach(function(l){a||(o(p,l,r),r=!1),a=!1});const y=e.append("line").attr("x1",t().state.padding).attr("y1",t().state.padding+g+t().state.dividerMargin/2).attr("y2",t().state.padding+g+t().state.dividerMargin/2).attr("class","descr-divider"),x=p.node().getBBox(),d=Math.max(x.width,s.width);return y.attr("x2",d+3*t().state.padding),e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",d+2*t().state.padding).attr("height",x.height+g+2*t().state.padding).attr("rx",t().state.radius),e},I=(e,i,o)=>{const c=t().state.padding,s=2*t().state.padding,g=e.node().getBBox(),p=g.width,a=g.x,r=e.append("text").attr("x",0).attr("y",t().state.titleShift).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),x=r.node().getBBox().width+s;let d=Math.max(x,p);d===p&&(d=d+s);let l;const m=e.node().getBBox();i.doc,l=a-c,x>p&&(l=(p-d)/2+c),Math.abs(a-m.x)<c&&x>p&&(l=a-(x-p)/2);const w=1-t().state.textHeight;return e.insert("rect",":first-child").attr("x",l).attr("y",w).attr("class",o?"alt-composit":"composit").attr("width",d).attr("height",m.height+t().state.textHeight+t().state.titleShift+1).attr("rx","0"),r.attr("x",l+c),x<=p&&r.attr("x",a+(d-s)/2-x/2+c),e.insert("rect",":first-child").attr("x",l).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",d).attr("height",t().state.textHeight*3).attr("rx",t().state.radius),e.insert("rect",":first-child").attr("x",l).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",d).attr("height",m.height+3+2*t().state.textHeight).attr("rx",t().state.radius),e},_=e=>(e.append("circle").attr("class","end-state-outer").attr("r",t().state.sizeUnit+t().state.miniPadding).attr("cx",t().state.padding+t().state.sizeUnit+t().state.miniPadding).attr("cy",t().state.padding+t().state.sizeUnit+t().state.miniPadding),e.append("circle").attr("class","end-state-inner").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit+2).attr("cy",t().state.padding+t().state.sizeUnit+2)),q=(e,i)=>{let o=t().state.forkWidth,c=t().state.forkHeight;if(i.parentId){let s=o;o=c,c=s}return e.append("rect").style("stroke","black").style("fill","black").attr("width",o).attr("height",c).attr("x",t().state.padding).attr("y",t().state.padding)},Z=(e,i,o,c)=>{let s=0;const g=c.append("text");g.style("text-anchor","start"),g.attr("class","noteText");let p=e.replace(/\r\n/g,"<br/>");p=p.replace(/\n/g,"<br/>");const a=p.split(T.lineBreakRegex);let r=1.25*t().state.noteMargin;for(const y of a){const x=y.trim();if(x.length>0){const d=g.append("tspan");if(d.text(x),r===0){const l=d.node().getBBox();r+=l.height}s+=r,d.attr("x",i+t().state.noteMargin),d.attr("y",o+s+1.25*t().state.noteMargin)}}return{textWidth:g.node().getBBox().width,textHeight:s}},K=(e,i)=>{i.attr("class","state-note");const o=i.append("rect").attr("x",0).attr("y",t().state.padding),c=i.append("g"),{textWidth:s,textHeight:g}=Z(e,0,0,c);return o.attr("height",g+2*t().state.noteMargin),o.attr("width",s+t().state.noteMargin*2),o},L=function(e,i){const o=i.id,c={id:o,label:i.id,width:0,height:0},s=e.append("g").attr("id",o).attr("class","stateGroup");i.type==="start"&&O(s),i.type==="end"&&_(s),(i.type==="fork"||i.type==="join")&&q(s,i),i.type==="note"&&K(i.note.text,s),i.type==="divider"&&X(s),i.type==="default"&&i.descriptions.length===0&&J(s,i),i.type==="default"&&i.descriptions.length>0&&Y(s,i);const g=s.node().getBBox();return c.width=g.width+2*t().state.padding,c.height=g.height+2*t().state.padding,c};let G=0;const Q=function(e,i,o){const c=function(r){switch(r){case N.relationType.AGGREGATION:return"aggregation";case N.relationType.EXTENSION:return"extension";case N.relationType.COMPOSITION:return"composition";case N.relationType.DEPENDENCY:return"dependency"}};i.points=i.points.filter(r=>!Number.isNaN(r.y));const s=i.points,g=$().x(function(r){return r.x}).y(function(r){return r.y}).curve(v),p=e.append("path").attr("d",g(s)).attr("id","edge"+G).attr("class","transition");let a="";if(t().state.arrowMarkerAbsolute&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,a=a.replace(/\(/g,"\\("),a=a.replace(/\)/g,"\\)")),p.attr("marker-end","url("+a+"#"+c(N.relationType.DEPENDENCY)+"End)"),o.title!==void 0){const r=e.append("g").attr("class","stateLabel"),{x:y,y:x}=U.calcLabelPosition(i.points),d=T.getRows(o.title);let l=0;const m=[];let w=0,E=0;for(let u=0;u<=d.length;u++){const h=r.append("text").attr("text-anchor","middle").text(d[u]).attr("x",y).attr("y",x+l),f=h.node().getBBox();w=Math.max(w,f.width),E=Math.min(E,f.x),b.info(f.x,y,x+l),l===0&&(l=h.node().getBBox().height,b.info("Title height",l,x)),m.push(h)}let k=l*d.length;if(d.length>1){const u=(d.length-1)*l*.5;m.forEach((h,f)=>h.attr("y",x+f*l-u)),k=l*d.length}const n=r.node().getBBox();r.insert("rect",":first-child").attr("class","box").attr("x",y-w/2-t().state.padding/2).attr("y",x-k/2-t().state.padding/2-3.5).attr("width",w+t().state.padding).attr("height",k+t().state.padding),b.info(n)}G++};let B;const z={},V=function(){},j=function(e){e.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},D=function(e,i,o,c){B=t().state;const s=t().securityLevel;let g;s==="sandbox"&&(g=H("#i"+i));const p=s==="sandbox"?H(g.nodes()[0].contentDocument.body):H("body"),a=s==="sandbox"?g.nodes()[0].contentDocument:document;b.debug("Rendering diagram "+e);const r=p.select(`[id='${i}']`);j(r);const y=c.db.getRootDoc();A(y,r,void 0,!1,p,a,c);const x=B.padding,d=r.node().getBBox(),l=d.width+x*2,m=d.height+x*2,w=l*1.75;R(r,m,w,B.useMaxWidth),r.attr("viewBox",`${d.x-B.padding} ${d.y-B.padding} `+l+" "+m)},tt=e=>e?e.length*B.fontSizeFactor:1,A=(e,i,o,c,s,g,p)=>{const a=new C({compound:!0,multigraph:!0});let r,y=!0;for(r=0;r<e.length;r++)if(e[r].stmt==="relation"){y=!1;break}o?a.setGraph({rankdir:"LR",multigraph:!0,compound:!0,ranker:"tight-tree",ranksep:y?1:B.edgeLengthFactor,nodeSep:y?1:50,isMultiGraph:!0}):a.setGraph({rankdir:"TB",multigraph:!0,compound:!0,ranksep:y?1:B.edgeLengthFactor,nodeSep:y?1:50,ranker:"tight-tree",isMultiGraph:!0}),a.setDefaultEdgeLabel(function(){return{}}),p.db.extract(e);const x=p.db.getStates(),d=p.db.getRelations(),l=Object.keys(x);for(const n of l){const u=x[n];o&&(u.parentId=o);let h;if(u.doc){let f=i.append("g").attr("id",u.id).attr("class","stateGroup");h=A(u.doc,f,u.id,!c,s,g,p);{f=I(f,u,c);let S=f.node().getBBox();h.width=S.width,h.height=S.height+B.padding/2,z[u.id]={y:B.compositTitleSize}}}else h=L(i,u);if(u.note){const f={descriptions:[],id:u.id+"-note",note:u.note,type:"note"},S=L(i,f);u.note.position==="left of"?(a.setNode(h.id+"-note",S),a.setNode(h.id,h)):(a.setNode(h.id,h),a.setNode(h.id+"-note",S)),a.setParent(h.id,h.id+"-group"),a.setParent(h.id+"-note",h.id+"-group")}else a.setNode(h.id,h)}b.debug("Count=",a.nodeCount(),a);let m=0;d.forEach(function(n){m++,b.debug("Setting edge",n),a.setEdge(n.id1,n.id2,{relation:n,width:tt(n.title),height:B.labelHeight*T.getRows(n.title).length,labelpos:"c"},"id"+m)}),F(a),b.debug("Graph after layout",a.nodes());const w=i.node();a.nodes().forEach(function(n){n!==void 0&&a.node(n)!==void 0?(b.warn("Node "+n+": "+JSON.stringify(a.node(n))),s.select("#"+w.id+" #"+n).attr("transform","translate("+(a.node(n).x-a.node(n).width/2)+","+(a.node(n).y+(z[n]?z[n].y:0)-a.node(n).height/2)+" )"),s.select("#"+w.id+" #"+n).attr("data-x-shift",a.node(n).x-a.node(n).width/2),g.querySelectorAll("#"+w.id+" #"+n+" .divider").forEach(h=>{const f=h.parentElement;let S=0,M=0;f&&(f.parentElement&&(S=f.parentElement.getBBox().width),M=parseInt(f.getAttribute("data-x-shift"),10),Number.isNaN(M)&&(M=0)),h.setAttribute("x1",0-M+8),h.setAttribute("x2",S-M-8)})):b.debug("No Node "+n+": "+JSON.stringify(a.node(n)))});let E=w.getBBox();a.edges().forEach(function(n){n!==void 0&&a.edge(n)!==void 0&&(b.debug("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(a.edge(n))),Q(i,a.edge(n),a.edge(n).relation))}),E=w.getBBox();const k={id:o||"root",label:o||"root",width:0,height:0};return k.width=E.width+2*B.padding,k.height=E.height+2*B.padding,b.debug("Doc rendered",k,a),k},et={setConf:V,draw:D},lt={parser:W,db:N,renderer:et,styles:P,init:e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute,N.clear()}};export{lt as diagram};
|
|
1
|
+
import{s as P,d as N,p as W}from"./styles-6aaf32cf-C2WEewoA.js";import{g as t,d as H,l as b,e as R,k as T,t as v,u as U}from"./mermaid.core-2VcXhn43.js";import{G as C}from"./graph-CUYgHJmb.js";import{l as F}from"./layout-CFKTKeqQ.js";import{l as $}from"./line-W5R41tQ1.js";import"./tool-windows-BEnZdJqF.js";import"./array-B5oSNiGi.js";import"./path-CY0bYimO.js";const O=e=>e.append("circle").attr("class","start-state").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit).attr("cy",t().state.padding+t().state.sizeUnit),X=e=>e.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",t().state.textHeight).attr("class","divider").attr("x2",t().state.textHeight*2).attr("y1",0).attr("y2",0),J=(e,i)=>{const o=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+2*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),c=o.node().getBBox();return e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",c.width+2*t().state.padding).attr("height",c.height+2*t().state.padding).attr("rx",t().state.radius),o},Y=(e,i)=>{const o=function(l,m,w){const E=l.append("tspan").attr("x",2*t().state.padding).text(m);w||E.attr("dy",t().state.textHeight)},s=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+1.3*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.descriptions[0]).node().getBBox(),g=s.height,p=e.append("text").attr("x",t().state.padding).attr("y",g+t().state.padding*.4+t().state.dividerMargin+t().state.textHeight).attr("class","state-description");let a=!0,r=!0;i.descriptions.forEach(function(l){a||(o(p,l,r),r=!1),a=!1});const y=e.append("line").attr("x1",t().state.padding).attr("y1",t().state.padding+g+t().state.dividerMargin/2).attr("y2",t().state.padding+g+t().state.dividerMargin/2).attr("class","descr-divider"),x=p.node().getBBox(),d=Math.max(x.width,s.width);return y.attr("x2",d+3*t().state.padding),e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",d+2*t().state.padding).attr("height",x.height+g+2*t().state.padding).attr("rx",t().state.radius),e},I=(e,i,o)=>{const c=t().state.padding,s=2*t().state.padding,g=e.node().getBBox(),p=g.width,a=g.x,r=e.append("text").attr("x",0).attr("y",t().state.titleShift).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),x=r.node().getBBox().width+s;let d=Math.max(x,p);d===p&&(d=d+s);let l;const m=e.node().getBBox();i.doc,l=a-c,x>p&&(l=(p-d)/2+c),Math.abs(a-m.x)<c&&x>p&&(l=a-(x-p)/2);const w=1-t().state.textHeight;return e.insert("rect",":first-child").attr("x",l).attr("y",w).attr("class",o?"alt-composit":"composit").attr("width",d).attr("height",m.height+t().state.textHeight+t().state.titleShift+1).attr("rx","0"),r.attr("x",l+c),x<=p&&r.attr("x",a+(d-s)/2-x/2+c),e.insert("rect",":first-child").attr("x",l).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",d).attr("height",t().state.textHeight*3).attr("rx",t().state.radius),e.insert("rect",":first-child").attr("x",l).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",d).attr("height",m.height+3+2*t().state.textHeight).attr("rx",t().state.radius),e},_=e=>(e.append("circle").attr("class","end-state-outer").attr("r",t().state.sizeUnit+t().state.miniPadding).attr("cx",t().state.padding+t().state.sizeUnit+t().state.miniPadding).attr("cy",t().state.padding+t().state.sizeUnit+t().state.miniPadding),e.append("circle").attr("class","end-state-inner").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit+2).attr("cy",t().state.padding+t().state.sizeUnit+2)),q=(e,i)=>{let o=t().state.forkWidth,c=t().state.forkHeight;if(i.parentId){let s=o;o=c,c=s}return e.append("rect").style("stroke","black").style("fill","black").attr("width",o).attr("height",c).attr("x",t().state.padding).attr("y",t().state.padding)},Z=(e,i,o,c)=>{let s=0;const g=c.append("text");g.style("text-anchor","start"),g.attr("class","noteText");let p=e.replace(/\r\n/g,"<br/>");p=p.replace(/\n/g,"<br/>");const a=p.split(T.lineBreakRegex);let r=1.25*t().state.noteMargin;for(const y of a){const x=y.trim();if(x.length>0){const d=g.append("tspan");if(d.text(x),r===0){const l=d.node().getBBox();r+=l.height}s+=r,d.attr("x",i+t().state.noteMargin),d.attr("y",o+s+1.25*t().state.noteMargin)}}return{textWidth:g.node().getBBox().width,textHeight:s}},K=(e,i)=>{i.attr("class","state-note");const o=i.append("rect").attr("x",0).attr("y",t().state.padding),c=i.append("g"),{textWidth:s,textHeight:g}=Z(e,0,0,c);return o.attr("height",g+2*t().state.noteMargin),o.attr("width",s+t().state.noteMargin*2),o},L=function(e,i){const o=i.id,c={id:o,label:i.id,width:0,height:0},s=e.append("g").attr("id",o).attr("class","stateGroup");i.type==="start"&&O(s),i.type==="end"&&_(s),(i.type==="fork"||i.type==="join")&&q(s,i),i.type==="note"&&K(i.note.text,s),i.type==="divider"&&X(s),i.type==="default"&&i.descriptions.length===0&&J(s,i),i.type==="default"&&i.descriptions.length>0&&Y(s,i);const g=s.node().getBBox();return c.width=g.width+2*t().state.padding,c.height=g.height+2*t().state.padding,c};let G=0;const Q=function(e,i,o){const c=function(r){switch(r){case N.relationType.AGGREGATION:return"aggregation";case N.relationType.EXTENSION:return"extension";case N.relationType.COMPOSITION:return"composition";case N.relationType.DEPENDENCY:return"dependency"}};i.points=i.points.filter(r=>!Number.isNaN(r.y));const s=i.points,g=$().x(function(r){return r.x}).y(function(r){return r.y}).curve(v),p=e.append("path").attr("d",g(s)).attr("id","edge"+G).attr("class","transition");let a="";if(t().state.arrowMarkerAbsolute&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,a=a.replace(/\(/g,"\\("),a=a.replace(/\)/g,"\\)")),p.attr("marker-end","url("+a+"#"+c(N.relationType.DEPENDENCY)+"End)"),o.title!==void 0){const r=e.append("g").attr("class","stateLabel"),{x:y,y:x}=U.calcLabelPosition(i.points),d=T.getRows(o.title);let l=0;const m=[];let w=0,E=0;for(let u=0;u<=d.length;u++){const h=r.append("text").attr("text-anchor","middle").text(d[u]).attr("x",y).attr("y",x+l),f=h.node().getBBox();w=Math.max(w,f.width),E=Math.min(E,f.x),b.info(f.x,y,x+l),l===0&&(l=h.node().getBBox().height,b.info("Title height",l,x)),m.push(h)}let k=l*d.length;if(d.length>1){const u=(d.length-1)*l*.5;m.forEach((h,f)=>h.attr("y",x+f*l-u)),k=l*d.length}const n=r.node().getBBox();r.insert("rect",":first-child").attr("class","box").attr("x",y-w/2-t().state.padding/2).attr("y",x-k/2-t().state.padding/2-3.5).attr("width",w+t().state.padding).attr("height",k+t().state.padding),b.info(n)}G++};let B;const z={},V=function(){},j=function(e){e.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},D=function(e,i,o,c){B=t().state;const s=t().securityLevel;let g;s==="sandbox"&&(g=H("#i"+i));const p=s==="sandbox"?H(g.nodes()[0].contentDocument.body):H("body"),a=s==="sandbox"?g.nodes()[0].contentDocument:document;b.debug("Rendering diagram "+e);const r=p.select(`[id='${i}']`);j(r);const y=c.db.getRootDoc();A(y,r,void 0,!1,p,a,c);const x=B.padding,d=r.node().getBBox(),l=d.width+x*2,m=d.height+x*2,w=l*1.75;R(r,m,w,B.useMaxWidth),r.attr("viewBox",`${d.x-B.padding} ${d.y-B.padding} `+l+" "+m)},tt=e=>e?e.length*B.fontSizeFactor:1,A=(e,i,o,c,s,g,p)=>{const a=new C({compound:!0,multigraph:!0});let r,y=!0;for(r=0;r<e.length;r++)if(e[r].stmt==="relation"){y=!1;break}o?a.setGraph({rankdir:"LR",multigraph:!0,compound:!0,ranker:"tight-tree",ranksep:y?1:B.edgeLengthFactor,nodeSep:y?1:50,isMultiGraph:!0}):a.setGraph({rankdir:"TB",multigraph:!0,compound:!0,ranksep:y?1:B.edgeLengthFactor,nodeSep:y?1:50,ranker:"tight-tree",isMultiGraph:!0}),a.setDefaultEdgeLabel(function(){return{}}),p.db.extract(e);const x=p.db.getStates(),d=p.db.getRelations(),l=Object.keys(x);for(const n of l){const u=x[n];o&&(u.parentId=o);let h;if(u.doc){let f=i.append("g").attr("id",u.id).attr("class","stateGroup");h=A(u.doc,f,u.id,!c,s,g,p);{f=I(f,u,c);let S=f.node().getBBox();h.width=S.width,h.height=S.height+B.padding/2,z[u.id]={y:B.compositTitleSize}}}else h=L(i,u);if(u.note){const f={descriptions:[],id:u.id+"-note",note:u.note,type:"note"},S=L(i,f);u.note.position==="left of"?(a.setNode(h.id+"-note",S),a.setNode(h.id,h)):(a.setNode(h.id,h),a.setNode(h.id+"-note",S)),a.setParent(h.id,h.id+"-group"),a.setParent(h.id+"-note",h.id+"-group")}else a.setNode(h.id,h)}b.debug("Count=",a.nodeCount(),a);let m=0;d.forEach(function(n){m++,b.debug("Setting edge",n),a.setEdge(n.id1,n.id2,{relation:n,width:tt(n.title),height:B.labelHeight*T.getRows(n.title).length,labelpos:"c"},"id"+m)}),F(a),b.debug("Graph after layout",a.nodes());const w=i.node();a.nodes().forEach(function(n){n!==void 0&&a.node(n)!==void 0?(b.warn("Node "+n+": "+JSON.stringify(a.node(n))),s.select("#"+w.id+" #"+n).attr("transform","translate("+(a.node(n).x-a.node(n).width/2)+","+(a.node(n).y+(z[n]?z[n].y:0)-a.node(n).height/2)+" )"),s.select("#"+w.id+" #"+n).attr("data-x-shift",a.node(n).x-a.node(n).width/2),g.querySelectorAll("#"+w.id+" #"+n+" .divider").forEach(h=>{const f=h.parentElement;let S=0,M=0;f&&(f.parentElement&&(S=f.parentElement.getBBox().width),M=parseInt(f.getAttribute("data-x-shift"),10),Number.isNaN(M)&&(M=0)),h.setAttribute("x1",0-M+8),h.setAttribute("x2",S-M-8)})):b.debug("No Node "+n+": "+JSON.stringify(a.node(n)))});let E=w.getBBox();a.edges().forEach(function(n){n!==void 0&&a.edge(n)!==void 0&&(b.debug("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(a.edge(n))),Q(i,a.edge(n),a.edge(n).relation))}),E=w.getBBox();const k={id:o||"root",label:o||"root",width:0,height:0};return k.width=E.width+2*B.padding,k.height=E.height+2*B.padding,b.debug("Doc rendered",k,a),k},et={setConf:V,draw:D},lt={parser:W,db:N,renderer:et,styles:P,init:e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute,N.clear()}};export{lt as diagram};
|
package/assets/{stateDiagram-v2-d93cdb3a-P4Yt2p_j.js → stateDiagram-v2-d93cdb3a-BpJsgMa0.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as J,d as B,p as Q,D as X,a as H,b as Z,S as F,c as I}from"./styles-6aaf32cf-
|
|
1
|
+
import{s as J,d as B,p as Q,D as X,a as H,b as Z,S as F,c as I}from"./styles-6aaf32cf-C2WEewoA.js";import{G as tt}from"./graph-CUYgHJmb.js";import{l as E,g,d as x,u as et,e as ot,k as w}from"./mermaid.core-2VcXhn43.js";import{r as st}from"./index-3862675e-CeX6VlsU.js";import"./layout-CFKTKeqQ.js";import"./tool-windows-BEnZdJqF.js";import"./clone-CA2KqVCK.js";import"./edges-e0da2a9e-B9sYOHRt.js";import"./createText-2e5e7dd3-DrWUfa-s.js";import"./line-W5R41tQ1.js";import"./array-B5oSNiGi.js";import"./path-CY0bYimO.js";const h="rect",C="rectWithTitle",nt="start",it="end",ct="divider",rt="roundedWithTitle",lt="note",at="noteGroup",_="statediagram",dt="state",Et=`${_}-${dt}`,U="transition",St="note",Tt="note-edge",pt=`${U} ${Tt}`,_t=`${_}-${St}`,ut="cluster",Dt=`${_}-${ut}`,bt="cluster-alt",ft=`${_}-${bt}`,V="parent",Y="note",At="state",N="----",ht=`${N}${Y}`,M=`${N}${V}`,m="fill:none",W="fill: #333",z="c",q="text",K="normal";let y={},d=0;const yt=function(t){const n=Object.keys(t);for(const e of n)t[e]},gt=function(t,n){return n.db.extract(n.db.getRootDocV2()),n.db.getClasses()};function $t(t){return t==null?"":t.classes?t.classes.join(" "):""}function R(t="",n=0,e="",i=N){const c=e!==null&&e.length>0?`${i}${e}`:"";return`${At}-${t}${c}-${n}`}const A=(t,n,e,i,c,r)=>{const o=e.id,u=$t(i[o]);if(o!=="root"){let T=h;e.start===!0&&(T=nt),e.start===!1&&(T=it),e.type!==H&&(T=e.type),y[o]||(y[o]={id:o,shape:T,description:w.sanitizeText(o,g()),classes:`${u} ${Et}`});const s=y[o];e.description&&(Array.isArray(s.description)?(s.shape=C,s.description.push(e.description)):s.description.length>0?(s.shape=C,s.description===o?s.description=[e.description]:s.description=[s.description,e.description]):(s.shape=h,s.description=e.description),s.description=w.sanitizeTextOrArray(s.description,g())),s.description.length===1&&s.shape===C&&(s.shape=h),!s.type&&e.doc&&(E.info("Setting cluster for ",o,G(e)),s.type="group",s.dir=G(e),s.shape=e.type===Z?ct:rt,s.classes=s.classes+" "+Dt+" "+(r?ft:""));const p={labelStyle:"",shape:s.shape,labelText:s.description,classes:s.classes,style:"",id:o,dir:s.dir,domId:R(o,d),type:s.type,padding:15};if(p.centerLabel=!0,e.note){const l={labelStyle:"",shape:lt,labelText:e.note.text,classes:_t,style:"",id:o+ht+"-"+d,domId:R(o,d,Y),type:s.type,padding:15},a={labelStyle:"",shape:at,labelText:e.note.text,classes:s.classes,style:"",id:o+M,domId:R(o,d,V),type:"group",padding:0};d++;const D=o+M;t.setNode(D,a),t.setNode(l.id,l),t.setNode(o,p),t.setParent(o,D),t.setParent(l.id,D);let S=o,b=l.id;e.note.position==="left of"&&(S=l.id,b=o),t.setEdge(S,b,{arrowhead:"none",arrowType:"",style:m,labelStyle:"",classes:pt,arrowheadStyle:W,labelpos:z,labelType:q,thickness:K})}else t.setNode(o,p)}n&&n.id!=="root"&&(E.trace("Setting node ",o," to be child of its parent ",n.id),t.setParent(o,n.id)),e.doc&&(E.trace("Adding nodes children "),xt(t,e,e.doc,i,c,!r))},xt=(t,n,e,i,c,r)=>{E.trace("items",e),e.forEach(o=>{switch(o.stmt){case I:A(t,n,o,i,c,r);break;case H:A(t,n,o,i,c,r);break;case F:{A(t,n,o.state1,i,c,r),A(t,n,o.state2,i,c,r);const u={id:"edge"+d,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:m,labelStyle:"",label:w.sanitizeText(o.description,g()),arrowheadStyle:W,labelpos:z,labelType:q,thickness:K,classes:U};t.setEdge(o.state1.id,o.state2.id,u,d),d++}break}})},G=(t,n=X)=>{let e=n;if(t.doc)for(let i=0;i<t.doc.length;i++){const c=t.doc[i];c.stmt==="dir"&&(e=c.value)}return e},Ct=async function(t,n,e,i){E.info("Drawing state diagram (v2)",n),y={},i.db.getDirection();const{securityLevel:c,state:r}=g(),o=r.nodeSpacing||50,u=r.rankSpacing||50;E.info(i.db.getRootDocV2()),i.db.extract(i.db.getRootDocV2()),E.info(i.db.getRootDocV2());const T=i.db.getStates(),s=new tt({multigraph:!0,compound:!0}).setGraph({rankdir:G(i.db.getRootDocV2()),nodesep:o,ranksep:u,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});A(s,void 0,i.db.getRootDocV2(),T,i.db,!0);let p;c==="sandbox"&&(p=x("#i"+n));const l=c==="sandbox"?x(p.nodes()[0].contentDocument.body):x("body"),a=l.select(`[id="${n}"]`),D=l.select("#"+n+" g");await st(D,s,["barb"],_,n);const S=8;et.insertTitle(a,"statediagramTitleText",r.titleTopMargin,i.db.getDiagramTitle());const b=a.node().getBBox(),L=b.width+S*2,P=b.height+S*2;a.attr("class",_);const O=a.node().getBBox();ot(a,P,L,r.useMaxWidth);const k=`${O.x-S} ${O.y-S} ${L} ${P}`;E.debug(`viewBox ${k}`),a.attr("viewBox",k);const j=document.querySelectorAll('[id="'+n+'"] .edgeLabel .label');for(const $ of j){const v=$.getBBox(),f=document.createElementNS("http://www.w3.org/2000/svg",h);f.setAttribute("rx",0),f.setAttribute("ry",0),f.setAttribute("width",v.width),f.setAttribute("height",v.height),$.insertBefore(f,$.firstChild)}},Rt={setConf:yt,getClasses:gt,draw:Ct},Vt={parser:Q,db:B,renderer:Rt,styles:J,init:t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,B.clear()}};export{Vt as diagram};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as J,d as B,p as Q,D as X,a as H,b as Z,S as F,c as I}from"./styles-6aaf32cf-CTtf8moq.js";import{G as tt}from"./graph-WeSRtsZO.js";import{l as E,g,d as x,u as et,e as ot,k as w}from"./index-0b_TeH8L.js";import{r as st}from"./index-3862675e-C2ipEQC8.js";import"./layout-DvRyabpG.js";import"./tool-windows-BEnZdJqF.js";import"./edges-e0da2a9e-DX4IQMED.js";import"./createText-2e5e7dd3-Bsu7vT-L.js";import"./browser-ZXTF4AKv.js";import"./line-C72F34Po.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";const h="rect",C="rectWithTitle",nt="start",it="end",ct="divider",rt="roundedWithTitle",lt="note",at="noteGroup",_="statediagram",dt="state",Et=`${_}-${dt}`,U="transition",St="note",Tt="note-edge",pt=`${U} ${Tt}`,_t=`${_}-${St}`,ut="cluster",Dt=`${_}-${ut}`,bt="cluster-alt",ft=`${_}-${bt}`,V="parent",Y="note",At="state",N="----",ht=`${N}${Y}`,M=`${N}${V}`,m="fill:none",W="fill: #333",z="c",q="text",K="normal";let y={},d=0;const yt=function(t){const n=Object.keys(t);for(const e of n)t[e]},gt=function(t,n){return n.db.extract(n.db.getRootDocV2()),n.db.getClasses()};function $t(t){return t==null?"":t.classes?t.classes.join(" "):""}function R(t="",n=0,e="",i=N){const c=e!==null&&e.length>0?`${i}${e}`:"";return`${At}-${t}${c}-${n}`}const A=(t,n,e,i,c,r)=>{const o=e.id,u=$t(i[o]);if(o!=="root"){let T=h;e.start===!0&&(T=nt),e.start===!1&&(T=it),e.type!==H&&(T=e.type),y[o]||(y[o]={id:o,shape:T,description:w.sanitizeText(o,g()),classes:`${u} ${Et}`});const s=y[o];e.description&&(Array.isArray(s.description)?(s.shape=C,s.description.push(e.description)):s.description.length>0?(s.shape=C,s.description===o?s.description=[e.description]:s.description=[s.description,e.description]):(s.shape=h,s.description=e.description),s.description=w.sanitizeTextOrArray(s.description,g())),s.description.length===1&&s.shape===C&&(s.shape=h),!s.type&&e.doc&&(E.info("Setting cluster for ",o,G(e)),s.type="group",s.dir=G(e),s.shape=e.type===Z?ct:rt,s.classes=s.classes+" "+Dt+" "+(r?ft:""));const p={labelStyle:"",shape:s.shape,labelText:s.description,classes:s.classes,style:"",id:o,dir:s.dir,domId:R(o,d),type:s.type,padding:15};if(p.centerLabel=!0,e.note){const l={labelStyle:"",shape:lt,labelText:e.note.text,classes:_t,style:"",id:o+ht+"-"+d,domId:R(o,d,Y),type:s.type,padding:15},a={labelStyle:"",shape:at,labelText:e.note.text,classes:s.classes,style:"",id:o+M,domId:R(o,d,V),type:"group",padding:0};d++;const D=o+M;t.setNode(D,a),t.setNode(l.id,l),t.setNode(o,p),t.setParent(o,D),t.setParent(l.id,D);let S=o,b=l.id;e.note.position==="left of"&&(S=l.id,b=o),t.setEdge(S,b,{arrowhead:"none",arrowType:"",style:m,labelStyle:"",classes:pt,arrowheadStyle:W,labelpos:z,labelType:q,thickness:K})}else t.setNode(o,p)}n&&n.id!=="root"&&(E.trace("Setting node ",o," to be child of its parent ",n.id),t.setParent(o,n.id)),e.doc&&(E.trace("Adding nodes children "),xt(t,e,e.doc,i,c,!r))},xt=(t,n,e,i,c,r)=>{E.trace("items",e),e.forEach(o=>{switch(o.stmt){case I:A(t,n,o,i,c,r);break;case H:A(t,n,o,i,c,r);break;case F:{A(t,n,o.state1,i,c,r),A(t,n,o.state2,i,c,r);const u={id:"edge"+d,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:m,labelStyle:"",label:w.sanitizeText(o.description,g()),arrowheadStyle:W,labelpos:z,labelType:q,thickness:K,classes:U};t.setEdge(o.state1.id,o.state2.id,u,d),d++}break}})},G=(t,n=X)=>{let e=n;if(t.doc)for(let i=0;i<t.doc.length;i++){const c=t.doc[i];c.stmt==="dir"&&(e=c.value)}return e},Ct=async function(t,n,e,i){E.info("Drawing state diagram (v2)",n),y={},i.db.getDirection();const{securityLevel:c,state:r}=g(),o=r.nodeSpacing||50,u=r.rankSpacing||50;E.info(i.db.getRootDocV2()),i.db.extract(i.db.getRootDocV2()),E.info(i.db.getRootDocV2());const T=i.db.getStates(),s=new tt({multigraph:!0,compound:!0}).setGraph({rankdir:G(i.db.getRootDocV2()),nodesep:o,ranksep:u,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});A(s,void 0,i.db.getRootDocV2(),T,i.db,!0);let p;c==="sandbox"&&(p=x("#i"+n));const l=c==="sandbox"?x(p.nodes()[0].contentDocument.body):x("body"),a=l.select(`[id="${n}"]`),D=l.select("#"+n+" g");await st(D,s,["barb"],_,n);const S=8;et.insertTitle(a,"statediagramTitleText",r.titleTopMargin,i.db.getDiagramTitle());const b=a.node().getBBox(),L=b.width+S*2,P=b.height+S*2;a.attr("class",_);const O=a.node().getBBox();ot(a,P,L,r.useMaxWidth);const k=`${O.x-S} ${O.y-S} ${L} ${P}`;E.debug(`viewBox ${k}`),a.attr("viewBox",k);const j=document.querySelectorAll('[id="'+n+'"] .edgeLabel .label');for(const $ of j){const v=$.getBBox(),f=document.createElementNS("http://www.w3.org/2000/svg",h);f.setAttribute("rx",0),f.setAttribute("ry",0),f.setAttribute("width",v.width),f.setAttribute("height",v.height),$.insertBefore(f,$.firstChild)}},Rt={setConf:yt,getClasses:gt,draw:Ct},Vt={parser:Q,db:B,renderer:Rt,styles:J,init:t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,B.clear()}};export{Vt as diagram};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as Ut,p as zt,s as Mt,a as Ht,c as Xt,b as Kt,g as Y,k as ot,l as D,r as Wt,a2 as Jt}from"./mermaid.core-
|
|
1
|
+
import{o as Ut,p as zt,s as Mt,a as Ht,c as Xt,b as Kt,g as Y,k as ot,l as D,r as Wt,a2 as Jt}from"./mermaid.core-2VcXhn43.js";var gt=(function(){var t=function(C,r,n,i){for(n=n||{},i=C.length;i--;n[C[i]]=r);return n},s=[1,2],a=[1,3],h=[1,4],f=[2,4],d=[1,9],y=[1,11],k=[1,15],u=[1,16],E=[1,17],T=[1,18],R=[1,30],G=[1,19],j=[1,20],U=[1,21],z=[1,22],M=[1,23],H=[1,25],X=[1,26],K=[1,27],W=[1,28],J=[1,29],q=[1,32],Q=[1,33],Z=[1,34],tt=[1,35],w=[1,31],c=[1,4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],et=[1,4,5,13,14,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],Dt=[4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],ht={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,cssClassStatement:11,idStatement:12,DESCR:13,"-->":14,HIDE_EMPTY:15,scale:16,WIDTH:17,COMPOSIT_STATE:18,STRUCT_START:19,STRUCT_STOP:20,STATE_DESCR:21,AS:22,ID:23,FORK:24,JOIN:25,CHOICE:26,CONCURRENT:27,note:28,notePosition:29,NOTE_TEXT:30,direction:31,acc_title:32,acc_title_value:33,acc_descr:34,acc_descr_value:35,acc_descr_multiline_value:36,classDef:37,CLASSDEF_ID:38,CLASSDEF_STYLEOPTS:39,DEFAULT:40,class:41,CLASSENTITY_IDS:42,STYLECLASS:43,direction_tb:44,direction_bt:45,direction_rl:46,direction_lr:47,eol:48,";":49,EDGE_STATE:50,STYLE_SEPARATOR:51,left_of:52,right_of:53,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",13:"DESCR",14:"-->",15:"HIDE_EMPTY",16:"scale",17:"WIDTH",18:"COMPOSIT_STATE",19:"STRUCT_START",20:"STRUCT_STOP",21:"STATE_DESCR",22:"AS",23:"ID",24:"FORK",25:"JOIN",26:"CHOICE",27:"CONCURRENT",28:"note",30:"NOTE_TEXT",32:"acc_title",33:"acc_title_value",34:"acc_descr",35:"acc_descr_value",36:"acc_descr_multiline_value",37:"classDef",38:"CLASSDEF_ID",39:"CLASSDEF_STYLEOPTS",40:"DEFAULT",41:"class",42:"CLASSENTITY_IDS",43:"STYLECLASS",44:"direction_tb",45:"direction_bt",46:"direction_rl",47:"direction_lr",49:";",50:"EDGE_STATE",51:"STYLE_SEPARATOR",52:"left_of",53:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[31,1],[31,1],[31,1],[31,1],[48,1],[48,1],[12,1],[12,1],[12,3],[12,3],[29,1],[29,1]],performAction:function(r,n,i,o,p,e,$){var l=e.length-1;switch(p){case 3:return o.setRootDoc(e[l]),e[l];case 4:this.$=[];break;case 5:e[l]!="nl"&&(e[l-1].push(e[l]),this.$=e[l-1]);break;case 6:case 7:this.$=e[l];break;case 8:this.$="nl";break;case 11:this.$=e[l];break;case 12:const B=e[l-1];B.description=o.trimColon(e[l]),this.$=B;break;case 13:this.$={stmt:"relation",state1:e[l-2],state2:e[l]};break;case 14:const ft=o.trimColon(e[l]);this.$={stmt:"relation",state1:e[l-3],state2:e[l-1],description:ft};break;case 18:this.$={stmt:"state",id:e[l-3],type:"default",description:"",doc:e[l-1]};break;case 19:var v=e[l],O=e[l-2].trim();if(e[l].match(":")){var st=e[l].split(":");v=st[0],O=[O,st[1]]}this.$={stmt:"state",id:v,type:"default",description:O};break;case 20:this.$={stmt:"state",id:e[l-3],type:"default",description:e[l-5],doc:e[l-1]};break;case 21:this.$={stmt:"state",id:e[l],type:"fork"};break;case 22:this.$={stmt:"state",id:e[l],type:"join"};break;case 23:this.$={stmt:"state",id:e[l],type:"choice"};break;case 24:this.$={stmt:"state",id:o.getDividerId(),type:"divider"};break;case 25:this.$={stmt:"state",id:e[l-1].trim(),note:{position:e[l-2].trim(),text:e[l].trim()}};break;case 28:this.$=e[l].trim(),o.setAccTitle(this.$);break;case 29:case 30:this.$=e[l].trim(),o.setAccDescription(this.$);break;case 31:case 32:this.$={stmt:"classDef",id:e[l-1].trim(),classes:e[l].trim()};break;case 33:this.$={stmt:"applyClass",id:e[l-1].trim(),styleClass:e[l].trim()};break;case 34:o.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 35:o.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 36:o.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 37:o.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 40:case 41:this.$={stmt:"state",id:e[l].trim(),type:"default",description:""};break;case 42:this.$={stmt:"state",id:e[l-2].trim(),classes:[e[l].trim()],type:"default",description:""};break;case 43:this.$={stmt:"state",id:e[l-2].trim(),classes:[e[l].trim()],type:"default",description:""};break}},table:[{3:1,4:s,5:a,6:h},{1:[3]},{3:5,4:s,5:a,6:h},{3:6,4:s,5:a,6:h},t([1,4,5,15,16,18,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],f,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:k,16:u,18:E,21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,5]),{9:36,10:12,11:13,12:14,15:k,16:u,18:E,21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,7]),t(c,[2,8]),t(c,[2,9]),t(c,[2,10]),t(c,[2,11],{13:[1,37],14:[1,38]}),t(c,[2,15]),{17:[1,39]},t(c,[2,17],{19:[1,40]}),{22:[1,41]},t(c,[2,21]),t(c,[2,22]),t(c,[2,23]),t(c,[2,24]),{29:42,30:[1,43],52:[1,44],53:[1,45]},t(c,[2,27]),{33:[1,46]},{35:[1,47]},t(c,[2,30]),{38:[1,48],40:[1,49]},{42:[1,50]},t(et,[2,40],{51:[1,51]}),t(et,[2,41],{51:[1,52]}),t(c,[2,34]),t(c,[2,35]),t(c,[2,36]),t(c,[2,37]),t(c,[2,6]),t(c,[2,12]),{12:53,23:R,50:w},t(c,[2,16]),t(Dt,f,{7:54}),{23:[1,55]},{23:[1,56]},{22:[1,57]},{23:[2,44]},{23:[2,45]},t(c,[2,28]),t(c,[2,29]),{39:[1,58]},{39:[1,59]},{43:[1,60]},{23:[1,61]},{23:[1,62]},t(c,[2,13],{13:[1,63]}),{4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:k,16:u,18:E,20:[1,64],21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,19],{19:[1,65]}),{30:[1,66]},{23:[1,67]},t(c,[2,31]),t(c,[2,32]),t(c,[2,33]),t(et,[2,42]),t(et,[2,43]),t(c,[2,14]),t(c,[2,18]),t(Dt,f,{7:68}),t(c,[2,25]),t(c,[2,26]),{4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:k,16:u,18:E,20:[1,69],21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,20])],defaultActions:{5:[2,1],6:[2,2],44:[2,44],45:[2,45]},parseError:function(r,n){if(n.recoverable)this.trace(r);else{var i=new Error(r);throw i.hash=n,i}},parse:function(r){var n=this,i=[0],o=[],p=[null],e=[],$=this.table,l="",v=0,O=0,st=2,B=1,ft=e.slice.call(arguments,1),S=Object.create(this.lexer),A={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(A.yy[dt]=this.yy[dt]);S.setInput(r,A.yy),A.yy.lexer=S,A.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var yt=S.yylloc;e.push(yt);var Gt=S.options&&S.options.ranges;typeof A.yy.parseError=="function"?this.parseError=A.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function jt(){var x;return x=o.pop()||S.lex()||B,typeof x!="number"&&(x instanceof Array&&(o=x,x=o.pop()),x=n.symbols_[x]||x),x}for(var _,L,m,pt,N={},it,b,Ct,rt;;){if(L=i[i.length-1],this.defaultActions[L]?m=this.defaultActions[L]:((_===null||typeof _>"u")&&(_=jt()),m=$[L]&&$[L][_]),typeof m>"u"||!m.length||!m[0]){var St="";rt=[];for(it in $[L])this.terminals_[it]&&it>st&&rt.push("'"+this.terminals_[it]+"'");S.showPosition?St="Parse error on line "+(v+1)+`:
|
|
2
2
|
`+S.showPosition()+`
|
|
3
3
|
Expecting `+rt.join(", ")+", got '"+(this.terminals_[_]||_)+"'":St="Parse error on line "+(v+1)+": Unexpected "+(_==B?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(St,{text:S.match,token:this.terminals_[_]||_,line:S.yylineno,loc:yt,expected:rt})}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+L+", token: "+_);switch(m[0]){case 1:i.push(_),p.push(S.yytext),e.push(S.yylloc),i.push(m[1]),_=null,O=S.yyleng,l=S.yytext,v=S.yylineno,yt=S.yylloc;break;case 2:if(b=this.productions_[m[1]][1],N.$=p[p.length-b],N._$={first_line:e[e.length-(b||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(b||1)].first_column,last_column:e[e.length-1].last_column},Gt&&(N._$.range=[e[e.length-(b||1)].range[0],e[e.length-1].range[1]]),pt=this.performAction.apply(N,[l,O,v,A.yy,m[1],p,e].concat(ft)),typeof pt<"u")return pt;b&&(i=i.slice(0,-1*b*2),p=p.slice(0,-1*b),e=e.slice(0,-1*b)),i.push(this.productions_[m[1]][0]),p.push(N.$),e.push(N._$),Ct=$[i[i.length-2]][i[i.length-1]],i.push(Ct);break;case 3:return!0}}return!0}},Yt=(function(){var C={EOF:1,parseError:function(n,i){if(this.yy.parser)this.yy.parser.parseError(n,i);else throw new Error(n)},setInput:function(r,n){return this.yy=n||this.yy||{},this._input=r,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]),this.offset=0,this},input:function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var n=r.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},unput:function(r){var n=r.length,i=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var o=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var p=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===o.length?this.yylloc.first_column:0)+o[o.length-i.length].length-i[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject: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
4
|
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(r){this.unput(this.match.slice(r))},pastInput:function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var r=this.pastInput(),n=new Array(r.length+1).join("-");return r+this.upcomingInput()+`
|