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.
Files changed (203) hide show
  1. package/README.md +3 -3
  2. package/assets/CanvasAudioPlayer-CSFENxi6.js +2 -0
  3. package/assets/ChatDrawer-CWZQP5R5.css +1 -0
  4. package/assets/ChatDrawer-sVEVW11M.js +11 -0
  5. package/assets/ChatMessagesArea-Cnb94V8-.js +7 -0
  6. package/assets/ChatMessagesArea-PlF5AwzD.css +1 -0
  7. package/assets/DeferredAIInputBar-D99l6sBS.js +8 -0
  8. package/assets/DrawnixDeferredFeatures-78cIu-ev.js +2 -0
  9. package/assets/{KnowledgeBaseContent-DcX5Jofx.js → KnowledgeBaseContent-DZ-1fPZa.js} +10 -10
  10. package/assets/{MVCreator-DllHozYg.js → MVCreator-BV8KDR6E.js} +8 -8
  11. package/assets/ModelBenchmarkWorkbench-DL6r0Z_5.js +2 -0
  12. package/assets/MusicAnalyzer-D9Bpmhym.css +1 -0
  13. package/assets/{MusicAnalyzer-DDeT6g3c.js → MusicAnalyzer-DQtjf36o.js} +2 -2
  14. package/assets/{MusicAnalyzer-CHcQ5t4P.js → MusicAnalyzer-u_5sy56T.js} +1 -1
  15. package/assets/PromptHistoryTool-B-ktaOpK.js +2 -0
  16. package/assets/PromptHistoryTool-BH7hq916.css +1 -0
  17. package/assets/ResizableDivider-BpUFdkte.js +1 -0
  18. package/assets/TaskQueuePanel-BLD1r7_I.js +1 -0
  19. package/assets/{VideoAnalyzer-BSLz1FaI.js → VideoAnalyzer-Bjv9pyDs.js} +2 -2
  20. package/assets/ai-generation-preferences-service-BSpgVCHz.js +1 -0
  21. package/assets/arc-CnA_FoJK.js +1 -0
  22. package/assets/{arc-BU2KKCa_.js → arc-DDvk_-VM.js} +1 -1
  23. package/assets/{batch-image-generation-Bg68r_Ql.js → batch-image-generation-N-lwbjRE.js} +3 -3
  24. package/assets/{blockDiagram-38ab4fdb-BCGEnMME.js → blockDiagram-38ab4fdb-B2G4wjZe.js} +6 -6
  25. package/assets/{blockDiagram-38ab4fdb-CsZR5uC5.js → blockDiagram-38ab4fdb-DBkZWrKk.js} +1 -1
  26. package/assets/{browser-DpICcNby.js → browser-ZXTF4AKv.js} +1 -1
  27. package/assets/{c4Diagram-3d4e48cf-9fuiuFdV.js → c4Diagram-3d4e48cf-BFg-wccg.js} +1 -1
  28. package/assets/{c4Diagram-3d4e48cf-WM4wd_GR.js → c4Diagram-3d4e48cf-CmyNnfip.js} +1 -1
  29. package/assets/{canvas-insertion-CdUQF7IV.js → canvas-insertion-CKIoVZ9a.js} +1 -1
  30. package/assets/channel-BQh3J7kz.js +1 -0
  31. package/assets/channel-CPsF_uSp.js +1 -0
  32. package/assets/{classDiagram-70f12bd4-DcYDedz1.js → classDiagram-70f12bd4-BoP-e23u.js} +2 -2
  33. package/assets/{classDiagram-70f12bd4-CBVHTwQu.js → classDiagram-70f12bd4-UTHJc2XA.js} +1 -1
  34. package/assets/classDiagram-v2-f2320105-BeBc2H-D.js +2 -0
  35. package/assets/{classDiagram-v2-f2320105-jpCwaHEd.js → classDiagram-v2-f2320105-Bjwz5ljW.js} +1 -1
  36. package/assets/{clipper-jvd5rF5a.js → clipper-NoHaeWV4.js} +1 -1
  37. package/assets/clone-CA2KqVCK.js +1 -0
  38. package/assets/createText-2e5e7dd3-Bsu7vT-L.js +8 -0
  39. package/assets/{createText-2e5e7dd3-x5lOIwut.js → createText-2e5e7dd3-DrWUfa-s.js} +1 -1
  40. package/assets/{edges-e0da2a9e-CbrF4nbD.js → edges-e0da2a9e-B9sYOHRt.js} +1 -1
  41. package/assets/{edges-e0da2a9e-Ch6PBwWs.js → edges-e0da2a9e-DX4IQMED.js} +1 -1
  42. package/assets/{erDiagram-9861fffd-DSlNVuAZ.js → erDiagram-9861fffd-B-LfsIMf.js} +1 -1
  43. package/assets/{erDiagram-9861fffd-Bq07elcI.js → erDiagram-9861fffd-DPdud_LA.js} +1 -1
  44. package/assets/{flowDb-956e92f1-Ti5YC4Vv.js → flowDb-956e92f1-C3xKlizM.js} +1 -1
  45. package/assets/{flowDb-956e92f1-BqPCJlZp.js → flowDb-956e92f1-Ck5oiEta.js} +1 -1
  46. package/assets/{flowDiagram-66a62f08-CPDuG3rY.js → flowDiagram-66a62f08-Bkt2NoHM.js} +4 -4
  47. package/assets/{flowDiagram-66a62f08-D3GSABFi.js → flowDiagram-66a62f08-CJnxo6dI.js} +1 -1
  48. package/assets/flowDiagram-v2-96b9c2cf-MnwxRDMO.js +1 -0
  49. package/assets/flowDiagram-v2-96b9c2cf-U7nNPvdl.js +1 -0
  50. package/assets/{flowchart-elk-definition-4a651766-BH09NeLA.js → flowchart-elk-definition-4a651766-2XkrsdKI.js} +2 -2
  51. package/assets/{flowchart-elk-definition-4a651766-BLaLPCDV.js → flowchart-elk-definition-4a651766-ec8y1a8S.js} +1 -1
  52. package/assets/{ganttDiagram-c361ad54-DL9ZeaEc.js → ganttDiagram-c361ad54-1TA0mZY_.js} +3 -3
  53. package/assets/{ganttDiagram-c361ad54-Sp9M1KHP.js → ganttDiagram-c361ad54-D-OrVtXV.js} +3 -3
  54. package/assets/{gitGraphDiagram-72cf32ee-BWwmRKo-.js → gitGraphDiagram-72cf32ee-Blt3RsBD.js} +1 -1
  55. package/assets/{gitGraphDiagram-72cf32ee-BSf1fsDV.js → gitGraphDiagram-72cf32ee-CKf6xgO1.js} +1 -1
  56. package/assets/{graph-g-2U7grQ.js → graph-CUYgHJmb.js} +1 -1
  57. package/assets/{graph--nPw8zXQ.js → graph-WeSRtsZO.js} +1 -1
  58. package/assets/{index-ZrVeQUWo.js → index--MqiaN5t.js} +1 -1
  59. package/assets/{index-C5eu4uSl.js → index-0b_TeH8L.js} +11 -11
  60. package/assets/{index-3862675e-BXwbZ2pz.js → index-3862675e-C2ipEQC8.js} +1 -1
  61. package/assets/{index-3862675e-D6Zy95zZ.js → index-3862675e-CeX6VlsU.js} +1 -1
  62. package/assets/{index-CLJUfzvO.js → index-B-J0JJak.js} +1 -1
  63. package/assets/{index-TkfyNewx.js → index-B7Hj7g41.js} +1 -1
  64. package/assets/{index-eZfwJ9bV.js → index-BS_v5cOh.js} +1 -1
  65. package/assets/index-Btk31p7r.js +1 -0
  66. package/assets/{index-DH12_HTj.js → index-C-Samsu3.js} +2 -2
  67. package/assets/index-C-llNX01.js +1 -0
  68. package/assets/index-C8c9icsH.js +2 -0
  69. package/assets/{index-D7b5fX1d.js → index-CAn2jfNg.js} +1 -1
  70. package/assets/{index-Dz8sghkK.js → index-CK2zt94U.js} +1 -1
  71. package/assets/{index-CfgvFFx3.js → index-CP51k4n6.js} +17 -17
  72. package/assets/{index-DI0OV6F8.js → index-CXBhIy30.js} +1 -1
  73. package/assets/index-C_Mj1wbj.js +2 -0
  74. package/assets/{index-BwSnJN93.js → index-CbfE0MBd.js} +1 -1
  75. package/assets/{index-C3qD42ws.js → index-CjeDxq0c.js} +1 -1
  76. package/assets/{index-DqMndQiP.js → index-Ct7OFnWK.js} +1 -1
  77. package/assets/{index-BaCHOxhI.js → index-CxxUIkx1.js} +1 -1
  78. package/assets/{index-B2dttXd7.js → index-D2Kc-3MO.js} +1 -1
  79. package/assets/{index-Bq8mPedC.js → index-DK0XEByD.js} +1 -1
  80. package/assets/{index-DllL1sx1.js → index-DQcV2DYj.js} +1 -1
  81. package/assets/{index-BP77pG9S.js → index-DSKRBuhn.js} +73 -73
  82. package/assets/{index-BXzGHPXz.js → index-DXqL8NRE.js} +2 -2
  83. package/assets/{index-B7V7-Vxz.js → index-DcLrRIlS.js} +1 -1
  84. package/assets/{index-D4pIkh3S.js → index-DdA-dF0D.js} +1 -1
  85. package/assets/{index-QkP3EC02.js → index-DdxTnVj5.js} +1 -1
  86. package/assets/{index-CmyOpFTN.js → index-DmrnShhc.js} +1 -1
  87. package/assets/{index-Bti3m-iW.js → index-QO0uGVDP.js} +1 -1
  88. package/assets/{index-BPR_DyGD.js → index-aIKXDB1M.js} +1 -1
  89. package/assets/{index-DIiIUyb-.js → index-n6JhNACm.js} +1 -1
  90. package/assets/{index-BWrcsh8u.js → index-qbS_W7PW.js} +1 -1
  91. package/assets/index-v7iKPBEu.css +1 -0
  92. package/assets/{infoDiagram-f8f76790-DpFqCCNv.js → infoDiagram-f8f76790-DEWQ3NXc.js} +1 -1
  93. package/assets/{infoDiagram-f8f76790-G2JpJJP7.js → infoDiagram-f8f76790-u_qjHFCm.js} +3 -3
  94. package/assets/{journeyDiagram-49397b02-DLLTobRM.js → journeyDiagram-49397b02-C8A30CBr.js} +1 -1
  95. package/assets/{journeyDiagram-49397b02-BdESGMrv.js → journeyDiagram-49397b02-hQJfqZih.js} +1 -1
  96. package/assets/{layout-WSR0vNPO.js → layout-CFKTKeqQ.js} +1 -1
  97. package/assets/{layout-CVkuImk4.js → layout-DvRyabpG.js} +1 -1
  98. package/assets/{line-D3bnG227.js → line-C72F34Po.js} +1 -1
  99. package/assets/{line-DQuMJveY.js → line-W5R41tQ1.js} +1 -1
  100. package/assets/{linear-CciP-97N.js → linear-7FXykgHM.js} +1 -1
  101. package/assets/{linear-Z6vFvuwc.js → linear-CVyOPUvz.js} +1 -1
  102. package/assets/main-BO0HWBB1.js +42 -0
  103. package/assets/{main-8DNjLY6L.css → main-DAuE07rf.css} +1 -1
  104. package/assets/{mermaid.core-CwZQb0ud.js → mermaid.core-2VcXhn43.js} +4 -4
  105. package/assets/{mindmap-definition-fc14e90a-BnJ8OOTI.js → mindmap-definition-fc14e90a-CcVXKGg4.js} +1 -1
  106. package/assets/{mindmap-definition-fc14e90a-CxQMydCW.js → mindmap-definition-fc14e90a-DRDYXe84.js} +2 -2
  107. package/assets/model-benchmark-launcher-C2qBiDlM.js +1 -0
  108. package/assets/{photo-wall-splitter-BZ88W5Zy.js → photo-wall-splitter-CFntSOdS.js} +1 -1
  109. package/assets/{pieDiagram-8a3498a8-BSDdkTeu.js → pieDiagram-8a3498a8-Be9dl9pU.js} +1 -1
  110. package/assets/{pieDiagram-8a3498a8-D6VtAoja.js → pieDiagram-8a3498a8-DXZOJYBv.js} +5 -5
  111. package/assets/ppt-generation-B5fKT_by.js +48 -0
  112. package/assets/{quadrantDiagram-120e2f19-C8k2xuBd.js → quadrantDiagram-120e2f19-DoU7aQSp.js} +3 -3
  113. package/assets/{quadrantDiagram-120e2f19-BbFV0VXY.js → quadrantDiagram-120e2f19-l5K9mx26.js} +1 -1
  114. package/assets/{requirementDiagram-deff3bca-C3xMdzJV.js → requirementDiagram-deff3bca-DN_87Wxe.js} +1 -1
  115. package/assets/{requirementDiagram-deff3bca-CpjqKjYZ.js → requirementDiagram-deff3bca-DOooq7kx.js} +1 -1
  116. package/assets/retry-image-BmIVuAVu.js +6 -0
  117. package/assets/{sankeyDiagram-04a897e0-Bjvig9bW.js → sankeyDiagram-04a897e0-BB33nO6_.js} +1 -1
  118. package/assets/{sankeyDiagram-04a897e0-BBJJgsFv.js → sankeyDiagram-04a897e0-CCa0hwml.js} +2 -2
  119. package/assets/{sequenceDiagram-704730f1-PFC_9IFI.js → sequenceDiagram-704730f1-CNhXZiix.js} +1 -1
  120. package/assets/{sequenceDiagram-704730f1-DX1MmBN_.js → sequenceDiagram-704730f1-ZqQ1QrY-.js} +1 -1
  121. package/assets/settings-dialog-BFuWTeQR.js +1 -0
  122. package/assets/{skill-dsl-parser-syNWYxFu.js → skill-dsl-parser-b-aB3P5u.js} +1 -1
  123. package/assets/{stateDiagram-587899a1-Dc3mI_B_.js → stateDiagram-587899a1-BBlOIJr7.js} +1 -1
  124. package/assets/{stateDiagram-587899a1-SFMUVAam.js → stateDiagram-587899a1-BhomZ0AN.js} +1 -1
  125. package/assets/{stateDiagram-v2-d93cdb3a-P4Yt2p_j.js → stateDiagram-v2-d93cdb3a-BpJsgMa0.js} +1 -1
  126. package/assets/stateDiagram-v2-d93cdb3a-CuOn9du2.js +1 -0
  127. package/assets/{styles-6aaf32cf-C3jnr3hV.js → styles-6aaf32cf-C2WEewoA.js} +1 -1
  128. package/assets/{styles-6aaf32cf-b6AdP7fu.js → styles-6aaf32cf-CTtf8moq.js} +1 -1
  129. package/assets/{styles-9a916d00-BUiD9iBe.js → styles-9a916d00-44Xi2-39.js} +1 -1
  130. package/assets/{styles-9a916d00-ii0XTdIm.js → styles-9a916d00-DUU3VgNe.js} +4 -4
  131. package/assets/{styles-c10674c1-DbTSpy3W.js → styles-c10674c1--AhWSGg7.js} +1 -1
  132. package/assets/styles-c10674c1-DS-wE3tK.js +116 -0
  133. package/assets/{svgDrawCommon-08f97a94-D4gIV05W.js → svgDrawCommon-08f97a94-CXcvtSSy.js} +1 -1
  134. package/assets/{svgDrawCommon-08f97a94-BK6lD4D6.js → svgDrawCommon-08f97a94-Dyqh4V2s.js} +1 -1
  135. package/assets/{timeline-definition-85554ec2-Bl2y548G.js → timeline-definition-85554ec2-k788753O.js} +1 -1
  136. package/assets/{timeline-definition-85554ec2-CWKg_JxG.js → timeline-definition-85554ec2-sw6-UuBe.js} +1 -1
  137. package/assets/tool-windows-BEnZdJqF.js +2948 -0
  138. package/assets/{tool-windows-CUNbW1Tz.css → tool-windows-D61Le6TE.css} +1 -1
  139. package/assets/ttd-dialog-BJzXAZ0l.js +99 -0
  140. package/assets/useCharacters-DRBoWvvj.css +1 -0
  141. package/assets/useCharacters-gsV4K8Hn.js +2 -0
  142. package/assets/{useWorkflowSubmission-BizuDmuw.js → useWorkflowSubmission-XRR21P6Y.js} +10 -10
  143. package/assets/{video-analyze-6v3Y-rUE.js → video-analyze-CpbnpSiI.js} +1 -1
  144. package/assets/{video-generation-DnmTlWnm.js → video-generation-BXhS7x-a.js} +2 -2
  145. package/assets/video-recovery-service-6G2lkWcu.js +1 -0
  146. package/assets/workflow-generation-utils-CYxtSHl0.js +3 -0
  147. package/assets/workflow-submission-service-DygSzydV.js +4 -0
  148. package/assets/{xychartDiagram-e933f94c-CJX9_9WF.js → xychartDiagram-e933f94c-CvTTDwPb.js} +3 -3
  149. package/assets/{xychartDiagram-e933f94c-Cep8CQEH.js → xychartDiagram-e933f94c-Ga9zi9ha.js} +1 -1
  150. package/changelog.json +45 -0
  151. package/idle-prefetch-manifest.json +310 -306
  152. package/manifest.json +3 -3
  153. package/package.json +1 -1
  154. package/precache-manifest.json +10 -10
  155. package/sitemap.xml +37 -0
  156. package/sw-debug/app.js +269 -156
  157. package/sw-debug/backup-restore.js +235 -103
  158. package/sw-debug/crypto-helper.js +116 -120
  159. package/sw-debug/duplex-client.js +33 -19
  160. package/sw-debug/gist-management.js +938 -655
  161. package/sw-debug/sw-communication.js +87 -50
  162. package/sw.js +5 -5
  163. package/version.json +7 -17
  164. package/assets/CanvasAudioPlayer-DutgwdiU.js +0 -2
  165. package/assets/ChatDrawer-0jNvKIoI.css +0 -1
  166. package/assets/ChatDrawer-E6Fog16I.js +0 -11
  167. package/assets/ChatMessagesArea-Bgwiz_XP.js +0 -250
  168. package/assets/ChatMessagesArea-DyR_wHFQ.css +0 -1
  169. package/assets/DeferredAIInputBar-CPkD8Cv9.js +0 -8
  170. package/assets/DrawnixDeferredFeatures-Cul76-88.js +0 -2
  171. package/assets/ModelBenchmarkWorkbench-Dv9SNYTi.js +0 -2
  172. package/assets/MusicAnalyzer-DhtRGpAp.css +0 -1
  173. package/assets/ResizableDivider-CaG9JQbJ.js +0 -1
  174. package/assets/TaskQueuePanel-BNhNzGp5.js +0 -1
  175. package/assets/ai-generation-preferences-service-BF7QkuJp.js +0 -1
  176. package/assets/arc-DmGoDCEL.js +0 -1
  177. package/assets/channel-CZjE-WNp.js +0 -1
  178. package/assets/channel-SXZD6bG3.js +0 -1
  179. package/assets/classDiagram-v2-f2320105-CsxWGkSy.js +0 -2
  180. package/assets/clone-C4mvvMDb.js +0 -1
  181. package/assets/createText-2e5e7dd3-CkXS3l7I.js +0 -5
  182. package/assets/flowDiagram-v2-96b9c2cf-BCcJ-cre.js +0 -1
  183. package/assets/flowDiagram-v2-96b9c2cf-DCVaFEgV.js +0 -1
  184. package/assets/index-3eqA7Bag.js +0 -1
  185. package/assets/index-7Q-aiwln.js +0 -4
  186. package/assets/index-B1XP5g7P.css +0 -1
  187. package/assets/index-BHPTfCZM.js +0 -1
  188. package/assets/index-BqHZCcen.js +0 -2
  189. package/assets/index-DcZrElEK.js +0 -2
  190. package/assets/index-gQ7LgvSv.js +0 -12
  191. package/assets/main-BFEkxCOK.js +0 -56
  192. package/assets/model-benchmark-launcher-Ct3lYXVq.js +0 -1
  193. package/assets/ppt-generation-FzjP_rp0.js +0 -48
  194. package/assets/settings-dialog-CQM4v791.js +0 -1
  195. package/assets/stateDiagram-v2-d93cdb3a-DmnBjHpC.js +0 -1
  196. package/assets/styles-c10674c1-Bt89Yy8Q.js +0 -116
  197. package/assets/tool-windows-DOIu9TAD.js +0 -2975
  198. package/assets/ttd-dialog-DI4kQSg8.js +0 -99
  199. package/assets/useCharacters-Chv4Ky7x.js +0 -7
  200. package/assets/useCharacters-OrDbG69o.css +0 -1
  201. package/assets/video-recovery-service-BeRoh0s2.js +0 -1
  202. package/assets/workflow-generation-utils-me381Cax.js +0 -3
  203. package/assets/workflow-submission-service-YOpo7g37.js +0 -4
@@ -1 +0,0 @@
1
- import{X as a,Y as n,Z as o,_ as r,$ as c}from"./tool-windows-DOIu9TAD.js";const l=a(null);function i(){return{id:o,name:"模型测试",description:"批量测试图、文、视频、音频模型,快速比较速度与主观效果",icon:"🧪",category:"ai-tools",component:o,defaultWidth:1280,defaultHeight:860}}function u(t){const e=n.getManifestById(o)||i();return t&&r().set(l,{...t,launchedAt:Date.now()}),c.openTool(e,{autoMaximize:!0}),!0}export{l as b,u as o};
@@ -1,48 +0,0 @@
1
- import{y as S,z as v,B,C as H,q as O,E as N,F as _,G as A,H as D,I as w,P as W,J as z,K as L,L as U,M as E,R as X,N as Y,O as j,Q as J}from"./tool-windows-DOIu9TAD.js";import{g as K}from"./board-utils-CpAtoKn2.js";function Q(n){return J(n)&&!!n.pptMeta}function V(n){const e=n.pptMeta;return e?[e.slideImageElementId,...(e.slideImageHistory||[]).map(t=>t.elementId)].filter(t=>typeof t=="string"&&t.length>0):[]}function Z(n,e){for(let t=n.children.length-1;t>=0;t-=1)e.has(n.children[t].id)&&E.removeNode(n,[t])}function b(n){const e=n.children.filter(Q);if(e.length===0)return 0;const t=new Set(e.map(a=>a.id)),l=w.getFrameContents(n,t),r=new Set(l.map(a=>a.id));for(const a of e)for(const s of V(a))r.add(s);return Z(n,r),e.length}function ee(n,e){const t=X.getRectangleByPoints(e.points),l=80,r=Y.getBoardContainer(n),a=(r==null?void 0:r.clientWidth)??1920,s=(r==null?void 0:r.clientHeight)??1080,m=a/(t.width+l*2),P=s/(t.height+l*2),g=Math.min(m,P,1),i=t.x+t.width/2,o=t.y+t.height/2,d=[i-a/2/g,o-s/2/g];j.updateViewport(n,d,g)}async function te(n,e){const t=O.get(),l=e.textModelRef||e.textModel||e.modelRef||e.model||t.textModelName,r=N({pageCount:e.pageCount,language:e.language,extraRequirements:e.extraRequirements}),a=_(n,e),s=[{role:"system",content:[{type:"text",text:r}]},{role:"user",content:[{type:"text",text:a}]}];let m="";const P=await A.sendChat(s,void 0,void 0,l);return P.choices&&P.choices.length>0&&(m=P.choices[0].message.content||m),D(m,e)}function ne(n,e,t,l,r,a){const s=[r,[r[0]+W,r[1]+z]],m=t.title||`Slide ${l}`,P=w.insertFrame(n,s,m),g=L(e,t,l,a),i={layout:t.layout,pageIndex:l,slidePrompt:g,styleSpec:e.styleSpec,commonPrompt:U(e.styleSpec,a),slideImageStatus:"placeholder",imageStatus:"placeholder"};t.imagePrompt&&(i.imagePrompt=t.imagePrompt),t.notes&&(i.notes=t.notes);const o=n.children.findIndex(d=>d.id===P.id);return o!==-1&&E.setNode(n,{pptMeta:i},[o]),{frame:P,slidePrompt:g}}async function re(n,e){var m,P,g,i,o,d,x,p,F,I,R,M;const{topic:t,pageCount:l,language:r,extraRequirements:a}=n;if(!t||typeof t!="string")return{success:!1,error:"缺少必填参数 topic(PPT 主题)",type:"error"};const s=K();if(!s)return{success:!1,error:"画布未初始化,请先打开画布",type:"error"};try{(m=e.onChunk)==null||m.call(e,`🎯 正在为「${t}」生成 PPT 大纲...
2
-
3
- `);const c=await te(t,n);(P=e.onChunk)==null||P.call(e,`
4
-
5
- ✓ 大纲生成完成,共 ${c.pages.length} 页
6
-
7
- `),(g=e.onChunk)==null||g.call(e,`📑 **PPT 结构**:
8
- `),c.pages.forEach((u,y)=>{var f;const C=u.imagePrompt?" 🖼️":"";(f=e.onChunk)==null||f.call(e,`${y+1}. ${u.title} (${u.layout})${C}
9
- `)});const k=b(s);k>0&&((i=e.onChunk)==null||i.call(e,`
10
- 已替换画布中原有 ${k} 个 PPT 页面及其内容。
11
- `)),(o=e.onChunk)==null||o.call(e,`
12
- 正在创建 PPT 页面并填充提示词...
13
-
14
- `);const $=S(s),q=v(c.pages.length,$,B()),T=new Array(c.pages.length);let h=0;for(let u=0;u<c.pages.length;u++){const y=c.pages[u],C=u+1,f=q[u],{frame:G}=ne(s,c,y,C,f,n);T[u]=G,h++,(d=e.onChunk)==null||d.call(e,`✓ 第 ${h}/${c.pages.length} 页已创建
15
- `)}return T[0]&&ee(s,T[0]),H({viewMode:"outline"}),(x=e.onChunk)==null||x.call(e,`
16
- 🎉 **PPT 大纲已生成!**
17
- `),(p=e.onChunk)==null||p.call(e,`- 共创建 ${h} 个 Frame
18
- `),(F=e.onChunk)==null||F.call(e,`- 已填充公共提示词和每页 PPT 提示词
19
- `),(I=e.onChunk)==null||I.call(e,`
20
- 💡 **提示**:
21
- `),(R=e.onChunk)==null||R.call(e,`- 已切换到左侧「PPT 编辑」的大纲视图
22
- `),(M=e.onChunk)==null||M.call(e,`- 确认或修改提示词后,可选择串行/并行生成图片
23
- `),{success:!0,data:{title:c.title,pageCount:h,imageTaskCount:0,outline:c},type:"text"}}catch(c){return console.error("[PPT] Generation failed:",c),{success:!1,error:c.message||"PPT 生成失败",type:"error"}}}const ae={name:"generate_ppt",description:`生成 PPT 演示文稿大纲工具。根据用户提供的主题或内容描述,自动生成结构化 PPT 大纲、公共风格提示词和每页整图提示词。
24
-
25
- 使用场景:
26
- - 用户想要创建 PPT、演示文稿、幻灯片
27
- - 用户提供了一个主题,想要生成对应的演示内容
28
- - 关键词:PPT、演示文稿、幻灯片、presentation、slides
29
-
30
- 工作原理:
31
- 1. 调用 AI 生成 PPT 大纲(包含版式、标题、正文和视觉提示)
32
- 2. 自动创建多个 Frame(1920x1080),每个 Frame 代表一页
33
- 3. 为每页写入整页图片提示词,并写入整套 PPT 公共风格提示词
34
- 4. 视口自动聚焦到第一页,打开 PPT 编辑并切换到大纲视图
35
- 5. 用户确认大纲后再从大纲视图批量生成图片
36
-
37
- 支持的版式:
38
- - cover: 封面页
39
- - toc: 目录页
40
- - title-body: 标题正文页
41
- - image-text: 图文页
42
- - comparison: 对比页
43
- - ending: 结尾页
44
-
45
- 生成说明:
46
- - 每页 PPT 由一张完整图片构成,文字、背景和视觉设计都包含在图片内
47
- - 此工具只生成大纲和提示词,不会立即提交图片任务
48
- - 可在「PPT 编辑」大纲视图修改提示词并选择串行/并行生成`,inputSchema:{type:"object",properties:{topic:{type:"string",description:"PPT 主题或内容描述"},pageCount:{type:"string",description:"页数控制:short(5-7页), normal(8-12页), long(13-18页)",enum:["short","normal","long"],default:"normal"},language:{type:"string",description:"输出语言,默认中文",default:"中文"},extraRequirements:{type:"string",description:"额外要求,如风格、重点内容等"},textModel:{type:"string",description:"PPT 大纲生成文本模型,默认使用输入栏当前文本模型"}},required:["topic"]},supportedModes:["async"],promptGuidance:{whenToUse:"当用户想要创建 PPT、演示文稿、幻灯片时使用。关键词:PPT、演示文稿、幻灯片、presentation、slides、做个汇报、生成演示。",parameterGuidance:{topic:"用户的 PPT 主题或内容描述。可以是一个简单的主题词,也可以是详细的内容大纲。",pageCount:"根据用户需求选择:short 适合简短汇报(5-7页),normal 适合常规演示(8-12页),long 适合详细讲解(13-18页)。",language:"根据用户语言偏好设置,默认中文。如果用户用英文交流,可以设为 English。",extraRequirements:'用户的额外要求,如"简洁风格"、"重点突出数据"、"适合技术分享"等。'},bestPractices:["将用户的描述直接作为 topic 传递,工具会自动规划内容结构",'如果用户提到"简短"、"快速",使用 pageCount: "short"','如果用户提到"详细"、"完整",使用 pageCount: "long"',"生成完成后提醒用户先检查大纲提示词,再在 PPT 编辑面板生成图片"],examples:[{input:"帮我做一个关于人工智能发展的 PPT",args:{topic:"人工智能发展",pageCount:"normal",language:"中文"}},{input:"生成一个简短的产品介绍幻灯片",args:{topic:"产品介绍",pageCount:"short",language:"中文"}},{input:"Create a detailed presentation about climate change",args:{topic:"Climate Change",pageCount:"long",language:"English"}},{input:"做一个关于团队年度总结的 PPT,要突出数据和成果",args:{topic:"团队年度总结",pageCount:"normal",language:"中文",extraRequirements:"突出数据展示和成果呈现"}}],warnings:["PPT 生成需要几秒钟时间,请耐心等待","此工具只创建页面和提示词,不会立即生图","一个画布只保留一套 PPT;每次生成会替换已有 PPT 页面及其内容"]},execute:async(n,e)=>re(n,e||{})};async function le(n,e){return ae.execute(n,{...e,mode:"async"})}export{le as generatePPT,ae as pptGenerationTool};
@@ -1 +0,0 @@
1
- import{dw as Ri,dx as Oe,dy as ws,aj as m,dz as Es,ai as e,dA as ks,dB as Ds,cP as zi,dC as Li,dD as $i,dE as Gi,cF as Bi,d0 as Us,aO as ve,dF as Ki,aH as Vs,dG as qs,dH as Is,dI as ji,aU as L,aQ as Ms,dJ as Fi,ah as Ps,aD as Ss,bo as Cs,aT as O,dK as se,dL as As,dM as Se,aS as Ve,dN as re,q as qe,de as he,dg as ce,k as ue,dO as ge,cB as Ce,cb as S,cp as Ts,dP as wi,dQ as Os,dR as Rs,dS as zs,dT as Ls,dU as $s,dV as Gs,aL as Ee,dW as Me,dX as Ne,dY as Ei,dZ as ki,d_ as We,d$ as Ae,e0 as Bs,e1 as Ks,e2 as Fs,e3 as Ze,e4 as W,bt as pe,e5 as Ws,e6 as Zs,bH as Ys,e7 as Hs,aF as Qs,e8 as Xs,e9 as Js,ea as et,eb as it}from"./tool-windows-DOIu9TAD.js";import{ec as Rt,ed as zt}from"./tool-windows-DOIu9TAD.js";import{o as st}from"./model-benchmark-launcher-Ct3lYXVq.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(""),[J,_e]=m.useState("all"),[B,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(K=>K.selectedCount>0))==null?void 0:A.vendor)||((Y=w[0])==null?void 0:Y.vendor)||null,I={};w.forEach(K=>{I[K.vendor]=K.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=J==="all"?d:d.filter(y=>y.type===J);return c?w.filter(y=>at(y,c)):w},[J,d,H]),h=m.useMemo(()=>new Set(B),[B]),C=m.useMemo(()=>Vi(F,h),[h,F]),V=B.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=J===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(Bi,{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(K=>{const de=h.has(K.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(K.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:K.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(K.id)},children:e.jsxDEV(Ki,{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]},K.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:B.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(B),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",J=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]),B=_.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:[B.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:B,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:J,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 Pi(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 Si(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 Pt(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}=Ps(),{confirm:g,confirmDialog:_}=Ss({container:s}),{isMobile:v,viewportWidth:G,viewportHeight:H}=Cs(),fe=m.useRef(null),[J,_e]=m.useState(0),[B,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,K]=m.useState(!0),[de,xe]=m.useState(""),[Xe,Pe]=m.useState(!1),[Wi,Re]=m.useState(""),[Je,ei]=m.useState(!1),[Zi,oe]=m.useState("catalog"),[Yi,je]=m.useState("catalog"),[Hi,Qi]=m.useState(new Set),Xi=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,Ji=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=Se(O,"image"),is=Se(O,"audio"),si=Se(O,"video"),ti=Se(O,"text"),ss=h.filter(i=>i.enabled),x=v||G<=ut,ni=x&&(J>0?J<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=>{S.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=>{S.trackUIInteraction({area:"settings",action:"provider_selected",control:"provider_list",source:"settings_dialog",metadata:{profileId:i,isManagedProfile:Ie(i)}}),$(i),x&&oe("detail")},ds=i=>{S.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}K(l),E("providers"),oe(r&&x?"detail":"catalog"),je("catalog"),xe(""),Pe(!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,B]);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(S.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=>{S.trackUIInteraction({area:"settings",action:"workzone_card_visibility_changed",control:"workzone_card_switch",value:i,source:"settings_dialog"}),K(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),K(!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);S.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;S.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]),S.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]),S.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;S.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),S.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{S.trackUIInteraction({area:"settings",action:"model_discovery_started",control:"fetch_models",source:"settings_dialog",metadata:{profileId:u.id}}),await Ee.discover(u.id,t,i),S.trackUIInteraction({area:"settings",action:"model_discovery_succeeded",control:"fetch_models",source:"settings_dialog",metadata:{profileId:u.id}}),Pe(!0)}catch(a){const n=a instanceof Error?a.message:"模型同步失败";S.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),S.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}}),Pe(!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(Je)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(),P=w.trim()||((r=si[0])==null?void 0:r.id)||ue(),X=I.trim()||((f=ti[0])==null?void 0:f.id)||ge(),Ke=W(D==null?void 0:D.image)||ie,le=W(D==null?void 0:D.video)||P,ys=W(D==null?void 0:D.audio)||b,js=W(D==null?void 0:D.text)||X;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:Ke,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(P),A(X),Re(Te({profiles:p,presets:k,activePresetId:U,audioModelName:b,imageModelName:ie,videoModelName:P,textModelName:X,showWorkZoneCard:Y})),i&&Ni(),S.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);S.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),S.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=()=>{Xe||Je||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=Si(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=Pi(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:Ji},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(Bs,{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(Ks,{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}),S.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=Pi(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 P=l.get(b.vendor)??Number.MAX_SAFE_INTEGER,X=l.get(ie.vendor)??Number.MAX_SAFE_INTEGER;return P!==X?P-X: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:()=>Xi(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(Bi,{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:P=>{P.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(P=>{const X=$i(P.vendor),Ke=!a||R.selectedModelIds.includes(P.id);return e.jsxDEV("div",{className:"settings-dialog__model-type-item",style:{"--model-brand-accent":X.accent,"--model-brand-surface":X.surface,"--model-brand-border":X.border},children:[e.jsxDEV("span",{className:"settings-dialog__model-type-item-logo",children:e.jsxDEV(Gi,{vendor:P.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:P.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(P.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:P.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,P.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:P.id,compareMode:"cross-provider"})},disabled:!t,children:e.jsxDEV(Ki,{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),Ke?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(P.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)]},P.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(Xs,{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:Js.OTHER}),{profile:r,models:p}}).filter(r=>r.models.length>0)},Be=(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=Pt(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=Si(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:[Be("image",T.image,"supportsImage"),Be("video",T.video,"supportsVideo"),Be("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 ${B===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=()=>B==="canvas"?hs():B==="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):B==="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:Xe,container:s,models:R.discoveredModels,selectedModelIds:R.selectedModelIds,onClose:()=>Pe(!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 +0,0 @@
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-b6AdP7fu.js";import{G as tt}from"./graph--nPw8zXQ.js";import{l as E,g,d as x,u as et,e as ot,k as w}from"./index-C5eu4uSl.js";import{r as st}from"./index-3862675e-BXwbZ2pz.js";import"./layout-CVkuImk4.js";import"./tool-windows-DOIu9TAD.js";import"./edges-e0da2a9e-Ch6PBwWs.js";import"./createText-2e5e7dd3-CkXS3l7I.js";import"./index-7Q-aiwln.js";import"./browser-DpICcNby.js";import"./line-D3bnG227.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",m="note",At="state",N="----",ht=`${N}${m}`,M=`${N}${V}`,Y="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,m),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:Y,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:Y,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},mt={parser:Q,db:B,renderer:Rt,styles:J,init:t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,B.clear()}};export{mt as diagram};
@@ -1,116 +0,0 @@
1
- import{G as R}from"./graph--nPw8zXQ.js";import{aa as G,ab as F,ac as U,a8 as X,l as g,g as S,d as $,u as j,$ as H,a0 as A,a1 as E,a2 as L,X as z,k as P,v as K}from"./index-C5eu4uSl.js";import{r as W}from"./index-3862675e-BXwbZ2pz.js";import{ci as J,a7 as Q}from"./tool-windows-DOIu9TAD.js";import{c as Y}from"./channel-CZjE-WNp.js";function Z(e){return typeof e=="string"?new G([document.querySelectorAll(e)],[document.documentElement]):new G([U(e)],F)}function be(e,l){return!!e.children(l).length}function fe(e){return N(e.v)+":"+N(e.w)+":"+N(e.name)}var O=/:/g;function N(e){return e?String(e).replace(O,"\\:"):""}function ee(e,l){l&&e.attr("style",l)}function ue(e,l,c){l&&e.attr("class",l).attr("class",c+" "+e.attr("class"))}function we(e,l){var c=l.graph();if(J(c)){var a=c.transition;if(Q(a))return a(e)}return e}function te(e,l){var c=e.append("foreignObject").attr("width","100000"),a=c.append("xhtml:div");a.attr("xmlns","http://www.w3.org/1999/xhtml");var i=l.label;switch(typeof i){case"function":a.insert(i);break;case"object":a.insert(function(){return i});break;default:a.html(i)}ee(a,l.labelStyle),a.style("display","inline-block"),a.style("white-space","nowrap");var d=a.node().getBoundingClientRect();return c.attr("width",d.width).attr("height",d.height),c}const V={},re=function(e){const l=Object.keys(e);for(const c of l)V[c]=e[c]},q=async function(e,l,c,a,i,d){const u=a.select(`[id="${c}"]`),n=Object.keys(e);for(const p of n){const r=e[p];let y="default";r.classes.length>0&&(y=r.classes.join(" ")),y=y+" flowchart-label";const w=A(r.styles);let t=r.text!==void 0?r.text:r.id,s;if(g.info("vertex",r,r.labelType),r.labelType==="markdown")g.info("vertex",r,r.labelType);else if(K(S().flowchart.htmlLabels))s=te(u,{label:t}).node(),s.parentNode.removeChild(s);else{const k=i.createElementNS("http://www.w3.org/2000/svg","text");k.setAttribute("style",w.labelStyle.replace("color:","fill:"));const _=t.split(P.lineBreakRegex);for(const C of _){const v=i.createElementNS("http://www.w3.org/2000/svg","tspan");v.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),v.setAttribute("dy","1em"),v.setAttribute("x","1"),v.textContent=C,k.appendChild(v)}s=k}let b=0,o="";switch(r.type){case"round":b=5,o="rect";break;case"square":o="rect";break;case"diamond":o="question";break;case"hexagon":o="hexagon";break;case"odd":o="rect_left_inv_arrow";break;case"lean_right":o="lean_right";break;case"lean_left":o="lean_left";break;case"trapezoid":o="trapezoid";break;case"inv_trapezoid":o="inv_trapezoid";break;case"odd_right":o="rect_left_inv_arrow";break;case"circle":o="circle";break;case"ellipse":o="ellipse";break;case"stadium":o="stadium";break;case"subroutine":o="subroutine";break;case"cylinder":o="cylinder";break;case"group":o="rect";break;case"doublecircle":o="doublecircle";break;default:o="rect"}const T=await z(t,S());l.setNode(r.id,{labelStyle:w.labelStyle,shape:o,labelText:T,labelType:r.labelType,rx:b,ry:b,class:y,style:w.style,id:r.id,link:r.link,linkTarget:r.linkTarget,tooltip:d.db.getTooltip(r.id)||"",domId:d.db.lookUpDomId(r.id),haveCallback:r.haveCallback,width:r.type==="group"?500:void 0,dir:r.dir,type:r.type,props:r.props,padding:S().flowchart.padding}),g.info("setNode",{labelStyle:w.labelStyle,labelType:r.labelType,shape:o,labelText:T,rx:b,ry:b,class:y,style:w.style,id:r.id,domId:d.db.lookUpDomId(r.id),width:r.type==="group"?500:void 0,type:r.type,dir:r.dir,props:r.props,padding:S().flowchart.padding})}},M=async function(e,l,c){g.info("abc78 edges = ",e);let a=0,i={},d,u;if(e.defaultStyle!==void 0){const n=A(e.defaultStyle);d=n.style,u=n.labelStyle}for(const n of e){a++;const p="L-"+n.start+"-"+n.end;i[p]===void 0?(i[p]=0,g.info("abc78 new entry",p,i[p])):(i[p]++,g.info("abc78 new entry",p,i[p]));let r=p+"-"+i[p];g.info("abc78 new link id to be used is",p,r,i[p]);const y="LS-"+n.start,w="LE-"+n.end,t={style:"",labelStyle:""};switch(t.minlen=n.length||1,n.type==="arrow_open"?t.arrowhead="none":t.arrowhead="normal",t.arrowTypeStart="arrow_open",t.arrowTypeEnd="arrow_open",n.type){case"double_arrow_cross":t.arrowTypeStart="arrow_cross";case"arrow_cross":t.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":t.arrowTypeStart="arrow_point";case"arrow_point":t.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":t.arrowTypeStart="arrow_circle";case"arrow_circle":t.arrowTypeEnd="arrow_circle";break}let s="",b="";switch(n.stroke){case"normal":s="fill:none;",d!==void 0&&(s=d),u!==void 0&&(b=u),t.thickness="normal",t.pattern="solid";break;case"dotted":t.thickness="normal",t.pattern="dotted",t.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":t.thickness="thick",t.pattern="solid",t.style="stroke-width: 3.5px;fill:none;";break;case"invisible":t.thickness="invisible",t.pattern="solid",t.style="stroke-width: 0;fill:none;";break}if(n.style!==void 0){const o=A(n.style);s=o.style,b=o.labelStyle}t.style=t.style+=s,t.labelStyle=t.labelStyle+=b,n.interpolate!==void 0?t.curve=E(n.interpolate,L):e.defaultInterpolate!==void 0?t.curve=E(e.defaultInterpolate,L):t.curve=E(V.curve,L),n.text===void 0?n.style!==void 0&&(t.arrowheadStyle="fill: #333"):(t.arrowheadStyle="fill: #333",t.labelpos="c"),t.labelType=n.labelType,t.label=await z(n.text.replace(P.lineBreakRegex,`
2
- `),S()),n.style===void 0&&(t.style=t.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),t.labelStyle=t.labelStyle.replace("color:","fill:"),t.id=r,t.classes="flowchart-link "+y+" "+w,l.setEdge(n.start,n.end,t,a)}},le=function(e,l){return l.db.getClasses()},ae=async function(e,l,c,a){g.info("Drawing flowchart");let i=a.db.getDirection();i===void 0&&(i="TD");const{securityLevel:d,flowchart:u}=S(),n=u.nodeSpacing||50,p=u.rankSpacing||50;let r;d==="sandbox"&&(r=$("#i"+l));const y=d==="sandbox"?$(r.nodes()[0].contentDocument.body):$("body"),w=d==="sandbox"?r.nodes()[0].contentDocument:document,t=new R({multigraph:!0,compound:!0}).setGraph({rankdir:i,nodesep:n,ranksep:p,marginx:0,marginy:0}).setDefaultEdgeLabel(function(){return{}});let s;const b=a.db.getSubGraphs();g.info("Subgraphs - ",b);for(let f=b.length-1;f>=0;f--)s=b[f],g.info("Subgraph - ",s),a.db.addVertex(s.id,{text:s.title,type:s.labelType},"group",void 0,s.classes,s.dir);const o=a.db.getVertices(),T=a.db.getEdges();g.info("Edges",T);let k=0;for(k=b.length-1;k>=0;k--){s=b[k],Z("cluster").append("text");for(let f=0;f<s.nodes.length;f++)g.info("Setting up subgraphs",s.nodes[f],s.id),t.setParent(s.nodes[f],s.id)}await q(o,t,l,y,w,a),await M(T,t);const _=y.select(`[id="${l}"]`),C=y.select("#"+l+" g");if(await W(C,t,["point","circle","cross"],"flowchart",l),j.insertTitle(_,"flowchartTitleText",u.titleTopMargin,a.db.getDiagramTitle()),H(t,_,u.diagramPadding,u.useMaxWidth),a.db.indexNodes("subGraph"+k),!u.htmlLabels){const f=w.querySelectorAll('[id="'+l+'"] .edgeLabel .label');for(const x of f){const m=x.getBBox(),h=w.createElementNS("http://www.w3.org/2000/svg","rect");h.setAttribute("rx",0),h.setAttribute("ry",0),h.setAttribute("width",m.width),h.setAttribute("height",m.height),x.insertBefore(h,x.firstChild)}}Object.keys(o).forEach(function(f){const x=o[f];if(x.link){const m=$("#"+l+' [id="'+f+'"]');if(m){const h=w.createElementNS("http://www.w3.org/2000/svg","a");h.setAttributeNS("http://www.w3.org/2000/svg","class",x.classes.join(" ")),h.setAttributeNS("http://www.w3.org/2000/svg","href",x.link),h.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),d==="sandbox"?h.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):x.linkTarget&&h.setAttributeNS("http://www.w3.org/2000/svg","target",x.linkTarget);const B=m.insert(function(){return h},":first-child"),I=m.select(".label-container");I&&B.append(function(){return I.node()});const D=m.select(".label");D&&B.append(function(){return D.node()})}}})},he={setConf:re,addVertices:q,addEdges:M,getClasses:le,draw:ae},oe=(e,l)=>{const c=Y,a=c(e,"r"),i=c(e,"g"),d=c(e,"b");return X(a,i,d,l)},ne=e=>`.label {
3
- font-family: ${e.fontFamily};
4
- color: ${e.nodeTextColor||e.textColor};
5
- }
6
- .cluster-label text {
7
- fill: ${e.titleColor};
8
- }
9
- .cluster-label span,p {
10
- color: ${e.titleColor};
11
- }
12
-
13
- .label text,span,p {
14
- fill: ${e.nodeTextColor||e.textColor};
15
- color: ${e.nodeTextColor||e.textColor};
16
- }
17
-
18
- .node rect,
19
- .node circle,
20
- .node ellipse,
21
- .node polygon,
22
- .node path {
23
- fill: ${e.mainBkg};
24
- stroke: ${e.nodeBorder};
25
- stroke-width: 1px;
26
- }
27
- .flowchart-label text {
28
- text-anchor: middle;
29
- }
30
- // .flowchart-label .text-outer-tspan {
31
- // text-anchor: middle;
32
- // }
33
- // .flowchart-label .text-inner-tspan {
34
- // text-anchor: start;
35
- // }
36
-
37
- .node .katex path {
38
- fill: #000;
39
- stroke: #000;
40
- stroke-width: 1px;
41
- }
42
-
43
- .node .label {
44
- text-align: center;
45
- }
46
- .node.clickable {
47
- cursor: pointer;
48
- }
49
-
50
- .arrowheadPath {
51
- fill: ${e.arrowheadColor};
52
- }
53
-
54
- .edgePath .path {
55
- stroke: ${e.lineColor};
56
- stroke-width: 2.0px;
57
- }
58
-
59
- .flowchart-link {
60
- stroke: ${e.lineColor};
61
- fill: none;
62
- }
63
-
64
- .edgeLabel {
65
- background-color: ${e.edgeLabelBackground};
66
- rect {
67
- opacity: 0.5;
68
- background-color: ${e.edgeLabelBackground};
69
- fill: ${e.edgeLabelBackground};
70
- }
71
- text-align: center;
72
- }
73
-
74
- /* For html labels only */
75
- .labelBkg {
76
- background-color: ${oe(e.edgeLabelBackground,.5)};
77
- // background-color:
78
- }
79
-
80
- .cluster rect {
81
- fill: ${e.clusterBkg};
82
- stroke: ${e.clusterBorder};
83
- stroke-width: 1px;
84
- }
85
-
86
- .cluster text {
87
- fill: ${e.titleColor};
88
- }
89
-
90
- .cluster span,p {
91
- color: ${e.titleColor};
92
- }
93
- /* .cluster div {
94
- color: ${e.titleColor};
95
- } */
96
-
97
- div.mermaidTooltip {
98
- position: absolute;
99
- text-align: center;
100
- max-width: 200px;
101
- padding: 2px;
102
- font-family: ${e.fontFamily};
103
- font-size: 12px;
104
- background: ${e.tertiaryColor};
105
- border: 1px solid ${e.border2};
106
- border-radius: 2px;
107
- pointer-events: none;
108
- z-index: 100;
109
- }
110
-
111
- .flowchartTitleText {
112
- text-anchor: middle;
113
- font-size: 18px;
114
- fill: ${e.textColor};
115
- }
116
- `,ge=ne;export{he as a,ee as b,te as c,we as d,fe as e,ge as f,ue as g,be as i,Z as s};