aitu-app 0.6.78 → 0.6.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/assets/CanvasAudioPlayer-CSFENxi6.js +2 -0
- package/assets/ChatDrawer-CWZQP5R5.css +1 -0
- package/assets/ChatDrawer-sVEVW11M.js +11 -0
- package/assets/ChatMessagesArea-Cnb94V8-.js +7 -0
- package/assets/ChatMessagesArea-PlF5AwzD.css +1 -0
- package/assets/DeferredAIInputBar-D99l6sBS.js +8 -0
- package/assets/DrawnixDeferredFeatures-78cIu-ev.js +2 -0
- package/assets/{KnowledgeBaseContent-DcX5Jofx.js → KnowledgeBaseContent-DZ-1fPZa.js} +10 -10
- package/assets/{MVCreator-DllHozYg.js → MVCreator-BV8KDR6E.js} +8 -8
- package/assets/ModelBenchmarkWorkbench-DL6r0Z_5.js +2 -0
- package/assets/MusicAnalyzer-D9Bpmhym.css +1 -0
- package/assets/{MusicAnalyzer-DDeT6g3c.js → MusicAnalyzer-DQtjf36o.js} +2 -2
- package/assets/{MusicAnalyzer-CHcQ5t4P.js → MusicAnalyzer-u_5sy56T.js} +1 -1
- package/assets/PromptHistoryTool-B-ktaOpK.js +2 -0
- package/assets/PromptHistoryTool-BH7hq916.css +1 -0
- package/assets/ResizableDivider-BpUFdkte.js +1 -0
- package/assets/TaskQueuePanel-BLD1r7_I.js +1 -0
- package/assets/{VideoAnalyzer-BSLz1FaI.js → VideoAnalyzer-Bjv9pyDs.js} +2 -2
- package/assets/ai-generation-preferences-service-BSpgVCHz.js +1 -0
- package/assets/arc-CnA_FoJK.js +1 -0
- package/assets/{arc-BU2KKCa_.js → arc-DDvk_-VM.js} +1 -1
- package/assets/{batch-image-generation-Bg68r_Ql.js → batch-image-generation-N-lwbjRE.js} +3 -3
- package/assets/{blockDiagram-38ab4fdb-BCGEnMME.js → blockDiagram-38ab4fdb-B2G4wjZe.js} +6 -6
- package/assets/{blockDiagram-38ab4fdb-CsZR5uC5.js → blockDiagram-38ab4fdb-DBkZWrKk.js} +1 -1
- package/assets/{browser-DpICcNby.js → browser-ZXTF4AKv.js} +1 -1
- package/assets/{c4Diagram-3d4e48cf-9fuiuFdV.js → c4Diagram-3d4e48cf-BFg-wccg.js} +1 -1
- package/assets/{c4Diagram-3d4e48cf-WM4wd_GR.js → c4Diagram-3d4e48cf-CmyNnfip.js} +1 -1
- package/assets/{canvas-insertion-CdUQF7IV.js → canvas-insertion-CKIoVZ9a.js} +1 -1
- package/assets/channel-BQh3J7kz.js +1 -0
- package/assets/channel-CPsF_uSp.js +1 -0
- package/assets/{classDiagram-70f12bd4-DcYDedz1.js → classDiagram-70f12bd4-BoP-e23u.js} +2 -2
- package/assets/{classDiagram-70f12bd4-CBVHTwQu.js → classDiagram-70f12bd4-UTHJc2XA.js} +1 -1
- package/assets/classDiagram-v2-f2320105-BeBc2H-D.js +2 -0
- package/assets/{classDiagram-v2-f2320105-jpCwaHEd.js → classDiagram-v2-f2320105-Bjwz5ljW.js} +1 -1
- package/assets/{clipper-jvd5rF5a.js → clipper-NoHaeWV4.js} +1 -1
- package/assets/clone-CA2KqVCK.js +1 -0
- package/assets/createText-2e5e7dd3-Bsu7vT-L.js +8 -0
- package/assets/{createText-2e5e7dd3-x5lOIwut.js → createText-2e5e7dd3-DrWUfa-s.js} +1 -1
- package/assets/{edges-e0da2a9e-CbrF4nbD.js → edges-e0da2a9e-B9sYOHRt.js} +1 -1
- package/assets/{edges-e0da2a9e-Ch6PBwWs.js → edges-e0da2a9e-DX4IQMED.js} +1 -1
- package/assets/{erDiagram-9861fffd-DSlNVuAZ.js → erDiagram-9861fffd-B-LfsIMf.js} +1 -1
- package/assets/{erDiagram-9861fffd-Bq07elcI.js → erDiagram-9861fffd-DPdud_LA.js} +1 -1
- package/assets/{flowDb-956e92f1-Ti5YC4Vv.js → flowDb-956e92f1-C3xKlizM.js} +1 -1
- package/assets/{flowDb-956e92f1-BqPCJlZp.js → flowDb-956e92f1-Ck5oiEta.js} +1 -1
- package/assets/{flowDiagram-66a62f08-CPDuG3rY.js → flowDiagram-66a62f08-Bkt2NoHM.js} +4 -4
- package/assets/{flowDiagram-66a62f08-D3GSABFi.js → flowDiagram-66a62f08-CJnxo6dI.js} +1 -1
- package/assets/flowDiagram-v2-96b9c2cf-MnwxRDMO.js +1 -0
- package/assets/flowDiagram-v2-96b9c2cf-U7nNPvdl.js +1 -0
- package/assets/{flowchart-elk-definition-4a651766-BH09NeLA.js → flowchart-elk-definition-4a651766-2XkrsdKI.js} +2 -2
- package/assets/{flowchart-elk-definition-4a651766-BLaLPCDV.js → flowchart-elk-definition-4a651766-ec8y1a8S.js} +1 -1
- package/assets/{ganttDiagram-c361ad54-DL9ZeaEc.js → ganttDiagram-c361ad54-1TA0mZY_.js} +3 -3
- package/assets/{ganttDiagram-c361ad54-Sp9M1KHP.js → ganttDiagram-c361ad54-D-OrVtXV.js} +3 -3
- package/assets/{gitGraphDiagram-72cf32ee-BWwmRKo-.js → gitGraphDiagram-72cf32ee-Blt3RsBD.js} +1 -1
- package/assets/{gitGraphDiagram-72cf32ee-BSf1fsDV.js → gitGraphDiagram-72cf32ee-CKf6xgO1.js} +1 -1
- package/assets/{graph-g-2U7grQ.js → graph-CUYgHJmb.js} +1 -1
- package/assets/{graph--nPw8zXQ.js → graph-WeSRtsZO.js} +1 -1
- package/assets/{index-ZrVeQUWo.js → index--MqiaN5t.js} +1 -1
- package/assets/{index-C5eu4uSl.js → index-0b_TeH8L.js} +11 -11
- package/assets/{index-3862675e-BXwbZ2pz.js → index-3862675e-C2ipEQC8.js} +1 -1
- package/assets/{index-3862675e-D6Zy95zZ.js → index-3862675e-CeX6VlsU.js} +1 -1
- package/assets/{index-CLJUfzvO.js → index-B-J0JJak.js} +1 -1
- package/assets/{index-TkfyNewx.js → index-B7Hj7g41.js} +1 -1
- package/assets/{index-eZfwJ9bV.js → index-BS_v5cOh.js} +1 -1
- package/assets/index-Btk31p7r.js +1 -0
- package/assets/{index-DH12_HTj.js → index-C-Samsu3.js} +2 -2
- package/assets/index-C-llNX01.js +1 -0
- package/assets/index-C8c9icsH.js +2 -0
- package/assets/{index-D7b5fX1d.js → index-CAn2jfNg.js} +1 -1
- package/assets/{index-Dz8sghkK.js → index-CK2zt94U.js} +1 -1
- package/assets/{index-CfgvFFx3.js → index-CP51k4n6.js} +17 -17
- package/assets/{index-DI0OV6F8.js → index-CXBhIy30.js} +1 -1
- package/assets/index-C_Mj1wbj.js +2 -0
- package/assets/{index-BwSnJN93.js → index-CbfE0MBd.js} +1 -1
- package/assets/{index-C3qD42ws.js → index-CjeDxq0c.js} +1 -1
- package/assets/{index-DqMndQiP.js → index-Ct7OFnWK.js} +1 -1
- package/assets/{index-BaCHOxhI.js → index-CxxUIkx1.js} +1 -1
- package/assets/{index-B2dttXd7.js → index-D2Kc-3MO.js} +1 -1
- package/assets/{index-Bq8mPedC.js → index-DK0XEByD.js} +1 -1
- package/assets/{index-DllL1sx1.js → index-DQcV2DYj.js} +1 -1
- package/assets/{index-BP77pG9S.js → index-DSKRBuhn.js} +73 -73
- package/assets/{index-BXzGHPXz.js → index-DXqL8NRE.js} +2 -2
- package/assets/{index-B7V7-Vxz.js → index-DcLrRIlS.js} +1 -1
- package/assets/{index-D4pIkh3S.js → index-DdA-dF0D.js} +1 -1
- package/assets/{index-QkP3EC02.js → index-DdxTnVj5.js} +1 -1
- package/assets/{index-CmyOpFTN.js → index-DmrnShhc.js} +1 -1
- package/assets/{index-Bti3m-iW.js → index-QO0uGVDP.js} +1 -1
- package/assets/{index-BPR_DyGD.js → index-aIKXDB1M.js} +1 -1
- package/assets/{index-DIiIUyb-.js → index-n6JhNACm.js} +1 -1
- package/assets/{index-BWrcsh8u.js → index-qbS_W7PW.js} +1 -1
- package/assets/index-v7iKPBEu.css +1 -0
- package/assets/{infoDiagram-f8f76790-DpFqCCNv.js → infoDiagram-f8f76790-DEWQ3NXc.js} +1 -1
- package/assets/{infoDiagram-f8f76790-G2JpJJP7.js → infoDiagram-f8f76790-u_qjHFCm.js} +3 -3
- package/assets/{journeyDiagram-49397b02-DLLTobRM.js → journeyDiagram-49397b02-C8A30CBr.js} +1 -1
- package/assets/{journeyDiagram-49397b02-BdESGMrv.js → journeyDiagram-49397b02-hQJfqZih.js} +1 -1
- package/assets/{layout-WSR0vNPO.js → layout-CFKTKeqQ.js} +1 -1
- package/assets/{layout-CVkuImk4.js → layout-DvRyabpG.js} +1 -1
- package/assets/{line-D3bnG227.js → line-C72F34Po.js} +1 -1
- package/assets/{line-DQuMJveY.js → line-W5R41tQ1.js} +1 -1
- package/assets/{linear-CciP-97N.js → linear-7FXykgHM.js} +1 -1
- package/assets/{linear-Z6vFvuwc.js → linear-CVyOPUvz.js} +1 -1
- package/assets/main-BO0HWBB1.js +42 -0
- package/assets/{main-8DNjLY6L.css → main-DAuE07rf.css} +1 -1
- package/assets/{mermaid.core-CwZQb0ud.js → mermaid.core-2VcXhn43.js} +4 -4
- package/assets/{mindmap-definition-fc14e90a-BnJ8OOTI.js → mindmap-definition-fc14e90a-CcVXKGg4.js} +1 -1
- package/assets/{mindmap-definition-fc14e90a-CxQMydCW.js → mindmap-definition-fc14e90a-DRDYXe84.js} +2 -2
- package/assets/model-benchmark-launcher-C2qBiDlM.js +1 -0
- package/assets/{photo-wall-splitter-BZ88W5Zy.js → photo-wall-splitter-CFntSOdS.js} +1 -1
- package/assets/{pieDiagram-8a3498a8-BSDdkTeu.js → pieDiagram-8a3498a8-Be9dl9pU.js} +1 -1
- package/assets/{pieDiagram-8a3498a8-D6VtAoja.js → pieDiagram-8a3498a8-DXZOJYBv.js} +5 -5
- package/assets/ppt-generation-B5fKT_by.js +48 -0
- package/assets/{quadrantDiagram-120e2f19-C8k2xuBd.js → quadrantDiagram-120e2f19-DoU7aQSp.js} +3 -3
- package/assets/{quadrantDiagram-120e2f19-BbFV0VXY.js → quadrantDiagram-120e2f19-l5K9mx26.js} +1 -1
- package/assets/{requirementDiagram-deff3bca-C3xMdzJV.js → requirementDiagram-deff3bca-DN_87Wxe.js} +1 -1
- package/assets/{requirementDiagram-deff3bca-CpjqKjYZ.js → requirementDiagram-deff3bca-DOooq7kx.js} +1 -1
- package/assets/retry-image-BmIVuAVu.js +6 -0
- package/assets/{sankeyDiagram-04a897e0-Bjvig9bW.js → sankeyDiagram-04a897e0-BB33nO6_.js} +1 -1
- package/assets/{sankeyDiagram-04a897e0-BBJJgsFv.js → sankeyDiagram-04a897e0-CCa0hwml.js} +2 -2
- package/assets/{sequenceDiagram-704730f1-PFC_9IFI.js → sequenceDiagram-704730f1-CNhXZiix.js} +1 -1
- package/assets/{sequenceDiagram-704730f1-DX1MmBN_.js → sequenceDiagram-704730f1-ZqQ1QrY-.js} +1 -1
- package/assets/settings-dialog-BFuWTeQR.js +1 -0
- package/assets/{skill-dsl-parser-syNWYxFu.js → skill-dsl-parser-b-aB3P5u.js} +1 -1
- package/assets/{stateDiagram-587899a1-Dc3mI_B_.js → stateDiagram-587899a1-BBlOIJr7.js} +1 -1
- package/assets/{stateDiagram-587899a1-SFMUVAam.js → stateDiagram-587899a1-BhomZ0AN.js} +1 -1
- package/assets/{stateDiagram-v2-d93cdb3a-P4Yt2p_j.js → stateDiagram-v2-d93cdb3a-BpJsgMa0.js} +1 -1
- package/assets/stateDiagram-v2-d93cdb3a-CuOn9du2.js +1 -0
- package/assets/{styles-6aaf32cf-C3jnr3hV.js → styles-6aaf32cf-C2WEewoA.js} +1 -1
- package/assets/{styles-6aaf32cf-b6AdP7fu.js → styles-6aaf32cf-CTtf8moq.js} +1 -1
- package/assets/{styles-9a916d00-BUiD9iBe.js → styles-9a916d00-44Xi2-39.js} +1 -1
- package/assets/{styles-9a916d00-ii0XTdIm.js → styles-9a916d00-DUU3VgNe.js} +4 -4
- package/assets/{styles-c10674c1-DbTSpy3W.js → styles-c10674c1--AhWSGg7.js} +1 -1
- package/assets/styles-c10674c1-DS-wE3tK.js +116 -0
- package/assets/{svgDrawCommon-08f97a94-D4gIV05W.js → svgDrawCommon-08f97a94-CXcvtSSy.js} +1 -1
- package/assets/{svgDrawCommon-08f97a94-BK6lD4D6.js → svgDrawCommon-08f97a94-Dyqh4V2s.js} +1 -1
- package/assets/{timeline-definition-85554ec2-Bl2y548G.js → timeline-definition-85554ec2-k788753O.js} +1 -1
- package/assets/{timeline-definition-85554ec2-CWKg_JxG.js → timeline-definition-85554ec2-sw6-UuBe.js} +1 -1
- package/assets/tool-windows-BEnZdJqF.js +2948 -0
- package/assets/{tool-windows-CUNbW1Tz.css → tool-windows-D61Le6TE.css} +1 -1
- package/assets/ttd-dialog-BJzXAZ0l.js +99 -0
- package/assets/useCharacters-DRBoWvvj.css +1 -0
- package/assets/useCharacters-gsV4K8Hn.js +2 -0
- package/assets/{useWorkflowSubmission-BizuDmuw.js → useWorkflowSubmission-XRR21P6Y.js} +10 -10
- package/assets/{video-analyze-6v3Y-rUE.js → video-analyze-CpbnpSiI.js} +1 -1
- package/assets/{video-generation-DnmTlWnm.js → video-generation-BXhS7x-a.js} +2 -2
- package/assets/video-recovery-service-6G2lkWcu.js +1 -0
- package/assets/workflow-generation-utils-CYxtSHl0.js +3 -0
- package/assets/workflow-submission-service-DygSzydV.js +4 -0
- package/assets/{xychartDiagram-e933f94c-CJX9_9WF.js → xychartDiagram-e933f94c-CvTTDwPb.js} +3 -3
- package/assets/{xychartDiagram-e933f94c-Cep8CQEH.js → xychartDiagram-e933f94c-Ga9zi9ha.js} +1 -1
- package/changelog.json +45 -0
- package/idle-prefetch-manifest.json +310 -306
- package/manifest.json +3 -3
- package/package.json +1 -1
- package/precache-manifest.json +10 -10
- package/sitemap.xml +37 -0
- package/sw-debug/app.js +269 -156
- package/sw-debug/backup-restore.js +235 -103
- package/sw-debug/crypto-helper.js +116 -120
- package/sw-debug/duplex-client.js +33 -19
- package/sw-debug/gist-management.js +938 -655
- package/sw-debug/sw-communication.js +87 -50
- package/sw.js +5 -5
- package/version.json +7 -17
- package/assets/CanvasAudioPlayer-DutgwdiU.js +0 -2
- package/assets/ChatDrawer-0jNvKIoI.css +0 -1
- package/assets/ChatDrawer-E6Fog16I.js +0 -11
- package/assets/ChatMessagesArea-Bgwiz_XP.js +0 -250
- package/assets/ChatMessagesArea-DyR_wHFQ.css +0 -1
- package/assets/DeferredAIInputBar-CPkD8Cv9.js +0 -8
- package/assets/DrawnixDeferredFeatures-Cul76-88.js +0 -2
- package/assets/ModelBenchmarkWorkbench-Dv9SNYTi.js +0 -2
- package/assets/MusicAnalyzer-DhtRGpAp.css +0 -1
- package/assets/ResizableDivider-CaG9JQbJ.js +0 -1
- package/assets/TaskQueuePanel-BNhNzGp5.js +0 -1
- package/assets/ai-generation-preferences-service-BF7QkuJp.js +0 -1
- package/assets/arc-DmGoDCEL.js +0 -1
- package/assets/channel-CZjE-WNp.js +0 -1
- package/assets/channel-SXZD6bG3.js +0 -1
- package/assets/classDiagram-v2-f2320105-CsxWGkSy.js +0 -2
- package/assets/clone-C4mvvMDb.js +0 -1
- package/assets/createText-2e5e7dd3-CkXS3l7I.js +0 -5
- package/assets/flowDiagram-v2-96b9c2cf-BCcJ-cre.js +0 -1
- package/assets/flowDiagram-v2-96b9c2cf-DCVaFEgV.js +0 -1
- package/assets/index-3eqA7Bag.js +0 -1
- package/assets/index-7Q-aiwln.js +0 -4
- package/assets/index-B1XP5g7P.css +0 -1
- package/assets/index-BHPTfCZM.js +0 -1
- package/assets/index-BqHZCcen.js +0 -2
- package/assets/index-DcZrElEK.js +0 -2
- package/assets/index-gQ7LgvSv.js +0 -12
- package/assets/main-BFEkxCOK.js +0 -56
- package/assets/model-benchmark-launcher-Ct3lYXVq.js +0 -1
- package/assets/ppt-generation-FzjP_rp0.js +0 -48
- package/assets/settings-dialog-CQM4v791.js +0 -1
- package/assets/stateDiagram-v2-d93cdb3a-DmnBjHpC.js +0 -1
- package/assets/styles-c10674c1-Bt89Yy8Q.js +0 -116
- package/assets/tool-windows-DOIu9TAD.js +0 -2975
- package/assets/ttd-dialog-DI4kQSg8.js +0 -99
- package/assets/useCharacters-Chv4Ky7x.js +0 -7
- package/assets/useCharacters-OrDbG69o.css +0 -1
- package/assets/video-recovery-service-BeRoh0s2.js +0 -1
- package/assets/workflow-generation-utils-me381Cax.js +0 -3
- package/assets/workflow-submission-service-YOpo7g37.js +0 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d7 as ge,Y as N,d8 as ee,$ as h,d9 as he,da as Ee,cQ as ve,db as J,dc as we,dd as xe,de as ye,bo as Ne,T as Y,bS as v,df as te,dg as re,dh as _e,di as be,dj as Ie,dk as Se,dl as Ae,dm as Te,dn as Me,dp as De,cM as E,dq as Re,dr as Ve,k as Oe,ds as Ue,dt as Ce,du as je,dv as k,dw as j,dx as ze,dy as se,dz as Le,dA as Fe,by as oe}from"./tool-windows-BEnZdJqF.js";function qe(e,t,s){return e==="size"?s.split("(")[0].trim():e==="duration"?`${t}s`:e==="klingAction2"?t==="image2video"?"图生":"文生":e==="mode"?t:s}const at=({selectedParams:e,onParamChange:t,compatibleParams:s,modelId:o,language:r="zh",disabled:n=!1,isOpen:i,onOpenChange:a,excludeParamIds:u,placement:d="up"})=>{const{value:l,setValue:f}=ge({controlledValue:i,defaultValue:!1,onChange:a}),[A,R]=N.useState(0),[L,V]=N.useState(0),w=N.useMemo(()=>{const c=s??ee(o);return u&&u.length>0?c.filter(p=>!u.includes(p.id)):c},[s,o,u]);N.useEffect(()=>{var c;if(l&&w.length>0){R(0);const p=w[0],g=e[p.id],b=((c=p.options)==null?void 0:c.findIndex(y=>y.value===g))??0;V(b>=0?b:0)}},[l,w,e]);const $=N.useMemo(()=>{if(w.length===0)return r==="zh"?"参数":"Params";const c=[];return w.forEach(p=>{var b;const g=e[p.id];if(g)if(p.valueType==="enum"){const y=(b=p.options)==null?void 0:b.find(P=>P.value===g);y&&c.push(qe(p.id,g,y.label))}else{const y=g.length>10?`${g.slice(0,10)}…`:g;c.push(`${p.shortLabel||p.label}:${y}`)}}),c.length===0?r==="zh"?"配置参数":"Settings":c.join(", ")},[w,e,r]),ce=N.useCallback(c=>{c.preventDefault(),!n&&f(!l)},[n,l,f]),pe=N.useCallback(c=>{var b,y;if(c==="Escape")return f(!1),!0;const p=w[A],g=((b=p==null?void 0:p.options)==null?void 0:b.length)??0;if(c==="ArrowDown")return R(P=>{var M;const O=P<w.length-1?P+1:0,D=w[O],m=e[D.id],T=((M=D.options)==null?void 0:M.findIndex(U=>U.value===m))??0;return V(T>=0?T:0),O}),!0;if(c==="ArrowUp")return R(P=>{var M;const O=P>0?P-1:w.length-1,D=w[O],m=e[D.id],T=((M=D.options)==null?void 0:M.findIndex(U=>U.value===m))??0;return V(T>=0?T:0),O}),!0;if(c==="ArrowRight")return V(P=>P<g-1?P+1:0),!0;if(c==="ArrowLeft")return V(P=>P>0?P-1:g-1),!0;if(c==="Enter"||c===" "||c==="Tab"){const P=(y=p==null?void 0:p.options)==null?void 0:y[L];return P&&t(p.id,P.value),!0}return!1},[w,A,L,e,t]),me=N.useCallback((c,p)=>{t(c,p)},[t]),fe=N.useCallback((c,p)=>{t(c,p,{keepOpen:!0})},[t]);return w.length===0?null:h.jsxDEV(he,{isOpen:l,setIsOpen:f,disabled:n,openKeys:["Enter"," ","ArrowDown","ArrowUp"],onOpenKey:pe,children:({containerRef:c,menuRef:p,portalPosition:g,handleTriggerKeyDown:b})=>{const y=g.top-12,P=window.innerHeight-g.bottom-12,D=(d==="auto"?P>=240||P>=y?"down":"up":d)==="down"?{position:"fixed",zIndex:J.DROPDOWN_PORTAL,left:g.left,top:g.bottom+8,maxHeight:Math.max(240,Math.min(420,P)),overflowY:"auto"}:{position:"fixed",zIndex:J.DROPDOWN_PORTAL,left:g.left,bottom:window.innerHeight-g.top+8,maxHeight:Math.max(240,Math.min(420,y)),overflowY:"auto"};return h.jsxDEV("div",{className:"parameters-dropdown",ref:c,children:[h.jsxDEV("button",{className:`parameters-dropdown__trigger ${l?"parameters-dropdown__trigger--open":""}`,onMouseDown:ce,onKeyDown:b,type:"button",disabled:n,title:`${$} (↑↓ Tab)`,children:[h.jsxDEV("span",{className:"parameters-dropdown__label",children:$},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ParametersDropdown.tsx",lineNumber:309,columnNumber:15},void 0),h.jsxDEV(ve,{size:14,className:`parameters-dropdown__icon ${l?"parameters-dropdown__icon--open":""}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ParametersDropdown.tsx",lineNumber:310,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ParametersDropdown.tsx",lineNumber:299,columnNumber:13},void 0),l&&Ee.createPortal(h.jsxDEV("div",{ref:p,className:`parameters-dropdown__menu parameters-dropdown__menu--flat ${we}`,style:D,onMouseDown:m=>m.stopPropagation(),onClick:m=>m.stopPropagation(),children:[h.jsxDEV("div",{className:"parameters-dropdown__header",children:[h.jsxDEV(xe,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ParametersDropdown.tsx",lineNumber:327,columnNumber:21},void 0),h.jsxDEV("span",{children:r==="zh"?"设置生成参数 (↑↓←→ Tab)":"Parameters (↑↓←→ Tab)"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ParametersDropdown.tsx",lineNumber:328,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ParametersDropdown.tsx",lineNumber:326,columnNumber:19},void 0),h.jsxDEV("div",{className:"parameters-dropdown__sections",children:w.map((m,T)=>{var G;const M=e[m.id],U=T===A;return h.jsxDEV("div",{className:`parameters-dropdown__section ${U?"parameters-dropdown__section--highlighted":""}`,children:[h.jsxDEV("div",{className:"parameters-dropdown__section-title",children:m.label},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ParametersDropdown.tsx",lineNumber:349,columnNumber:27},void 0),m.valueType==="enum"?h.jsxDEV("div",{className:"parameters-dropdown__options",children:(G=m.options)==null?void 0:G.map((I,B)=>{const Q=M===I.value,Pe=U&&B===L;return h.jsxDEV("button",{type:"button",className:`parameters-dropdown__option ${Q?"parameters-dropdown__option--selected":""} ${Pe?"parameters-dropdown__option--highlighted":""}`,onClick:()=>me(m.id,I.value),onMouseEnter:()=>{R(T),V(B)},children:[h.jsxDEV("span",{className:"parameters-dropdown__option-label",children:I.label.split("(")[0].trim()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ParametersDropdown.tsx",lineNumber:381,columnNumber:37},void 0),Q&&h.jsxDEV(ye,{size:12,className:"parameters-dropdown__option-check"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ParametersDropdown.tsx",lineNumber:385,columnNumber:39},void 0)]},I.value,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ParametersDropdown.tsx",lineNumber:361,columnNumber:35},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ParametersDropdown.tsx",lineNumber:353,columnNumber:29},void 0):h.jsxDEV("div",{className:"parameters-dropdown__field",children:h.jsxDEV("input",{type:m.valueType==="number"?"number":"text",className:"parameters-dropdown__field-input",value:M||"",placeholder:m.description||m.label,min:m.valueType==="number"?m.min:void 0,max:m.valueType==="number"?m.max:void 0,step:m.valueType==="number"?m.step:void 0,onChange:I=>fe(m.id,I.target.value),onMouseDown:I=>I.stopPropagation(),onKeyDown:I=>I.stopPropagation()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ParametersDropdown.tsx",lineNumber:396,columnNumber:31},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ParametersDropdown.tsx",lineNumber:395,columnNumber:29},void 0)]},m.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ParametersDropdown.tsx",lineNumber:341,columnNumber:25},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ParametersDropdown.tsx",lineNumber:335,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ParametersDropdown.tsx",lineNumber:319,columnNumber:17},void 0),document.body)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ParametersDropdown.tsx",lineNumber:298,columnNumber:11},void 0)}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ai-input-bar/ParametersDropdown.tsx",lineNumber:262,columnNumber:5},void 0)};function ut(){const{completedTasks:e}=Ne(),t=N.useMemo(()=>e.filter(r=>{var n;return r.type===Y.IMAGE&&((n=r.result)==null?void 0:n.url)}).map(r=>({id:r.id,type:"image",prompt:r.params.prompt,timestamp:r.completedAt||r.createdAt,imageUrl:r.result.url,width:r.result.width||1024,height:r.result.height||1024,uploadedImages:r.params.uploadedImages})).sort((r,n)=>n.timestamp-r.timestamp),[e]),s=N.useMemo(()=>e.filter(r=>{var n;return r.type===Y.VIDEO&&((n=r.result)==null?void 0:n.url)}).map(r=>({id:r.id,type:"video",prompt:r.params.prompt,timestamp:r.completedAt||r.createdAt,imageUrl:r.result.thumbnailUrl||r.result.url,width:r.result.width||400,height:r.result.height||225,duration:r.result.duration,previewUrl:r.result.url,downloadUrl:r.result.url,uploadedImage:r.params.uploadedImage})).sort((r,n)=>n.timestamp-r.timestamp),[e]),o=N.useMemo(()=>[...t,...s].sort((r,n)=>n.timestamp-r.timestamp),[t,s]);return{imageHistory:t,videoHistory:s,allHistory:o}}function ke(e){return e.map(t=>v.resolveContent(t.prompt)).filter(t=>t.length>0).filter((t,s,o)=>o.indexOf(t)===s)}function He(e){return e.filter((t,s,o)=>o.indexOf(t)===s)}function ne(e){return e.reduce((t,s)=>{var i,a;const o=s.content.trim();if(!o)return t;const r={...s,content:o,previewExamples:(i=s.previewExamples)==null?void 0:i.slice(0,3)},n=t.get(o);return n?(t.set(o,{...n,historyId:n.historyId||r.historyId,previewExamples:(a=n.previewExamples)!=null&&a.length?n.previewExamples:r.previewExamples}),t):(t.set(o,r),t)},new Map)}function F(e,t,s=[]){const o=ne(s);return v.sortPrompts(e,He(t.map(n=>v.resolveContent(n)).filter(Boolean))).map((n,i)=>{var l,f;const a=o.get(n),u=(f=(l=v).resolveMetadata)==null?void 0:f.call(l,n),d=(u==null?void 0:u.content)||n;return{id:(a==null?void 0:a.historyId)||`${e}-prompt-${i}-${n.slice(0,24)}`,content:n,title:u==null?void 0:u.title,tags:u==null?void 0:u.tags,sentPrompt:d,pinned:v.isPinned(e,n),modelType:e,historyId:a==null?void 0:a.historyId,previewExamples:a==null?void 0:a.previewExamples}})}function q(e,t){return Ae(e,t).map(s=>({content:s}))}function Ke(e){return e.map(t=>({content:v.resolveContent(t.content),historyId:t.id})).filter(t=>t.content.length>0)}function $e(e,t,s){return e==="video"&&"previewUrl"in t&&typeof t.previewUrl=="string"?{kind:"video",src:t.previewUrl||t.downloadUrl||t.imageUrl,posterSrc:t.imageUrl,playable:!0,alt:s}:{kind:"image",src:t.imageUrl,alt:s}}function z(e,t){const s=new Map,o=[];return t.forEach(r=>{const n=v.resolveContent(r.prompt);if(!n)return;s.has(n)||(s.set(n,[]),o.push(n));const i=s.get(n);if(!i)return;const a=e==="video"&&"previewUrl"in r&&typeof r.previewUrl=="string"&&(r.previewUrl||r.downloadUrl)||r.imageUrl;i.length>=3||i.some(u=>u.src===a)||i.push($e(e,r,e==="image"?`Generated image example ${i.length+1}`:`Generated video example ${i.length+1}`))}),o.map(r=>({content:r,previewExamples:s.get(r)}))}function W(e){return e.map(t=>({content:v.resolveContent(t)})).filter(t=>t.content.length>0)}function Ge(e){return(typeof v.getHistory=="function"?v.getHistory():[]).filter(s=>{var r,n;const o=(n=(r=v).resolveMetadata)==null?void 0:n.call(r,s.content);return s.modelType===e||(o==null?void 0:o.modelType)===e}).map(s=>v.resolveContent(s.content)).filter(Boolean)}function Be({generationType:e,promptContents:t,imageHistory:s,videoHistory:o}){const r=ne(e==="video"?z(e,o):z(e,s));return t.reduce((n,i)=>{var a;return n.set(i,((a=r.get(i.trim()))==null?void 0:a.previewExamples)??[]),n},new Map)}function dt({generationType:e,language:t,promptContents:s,imageHistory:o,videoHistory:r}){const n=v.sortPrompts(e,s.map(a=>v.resolveContent(a)).filter(Boolean)),i=Be({generationType:e,promptContents:n,imageHistory:o,videoHistory:r});return n.map((a,u)=>{var f,A;const d=(A=(f=v).resolveMetadata)==null?void 0:A.call(f,a),l=(d==null?void 0:d.content)||a;return{id:`preset-${u}-${a.slice(0,20)}`,content:a,title:d==null?void 0:d.title,tags:d==null?void 0:d.tags,sentPrompt:l,pinned:v.isPinned(e,a),modelType:e,previewExamples:[...i.get(a)??[]]}})}const X=(e,t,s)=>{const o=e==="image"?be(t):Ie(t),r=ke(s),n=Ge(e),i=e==="video"?te():re();return[...[...n,...i,...r].filter((d,l,f)=>f.indexOf(d)===l).slice(0,_e),...o].filter((d,l,f)=>f.indexOf(d)===l).slice(0,Se)},lt=({generationType:e,language:t,aiInputHistory:s,imageHistory:o,videoHistory:r})=>{if(e==="image"){const a=[...W(re()),...z("image",o),...q("image",t)];return F("image",X("image",t,o),a)}if(e==="video"){const a=[...W(te()),...q("video",t),...z("video",r)];return F("video",X("video",t,r),a)}const n=s.filter(a=>a.modelType===e&&a.content.trim().length>0),i=[...Ke(n),...q(e,t)];return F(e,i.map(a=>a.content),i)},ct=(e,t,s)=>{!t||!t.trim()||(e==="video"?Te(t.trim()):Me(t.trim()))},Qe={mj_ar:"--ar",mj_v:"--v",mj_style:"--style",mj_s:"--s",mj_q:"--q",mj_seed:"--seed"},pt=e=>{const t=[];return Object.entries(Qe).forEach(([s,o])=>{const r=e[s];!r||r==="default"||t.push(`${o} ${r}`)}),t.join(" ")},Je=new Set([1,2,3,4,5,10,20]);function _(e){try{const t=localStorage.getItem(e);if(!t)return null;const s=JSON.parse(t);return s&&typeof s=="object"&&"value"in s?s.value:s}catch{return null}}function C(e,t){try{const s={value:t,updatedAt:Date.now()};localStorage.setItem(e,JSON.stringify(s))}catch{}}function x(e){return!e||typeof e!="object"||Array.isArray(e)?{}:Object.entries(e).reduce((t,[s,o])=>(typeof o=="string"&&(t[s]=o),t),{})}function S(e,t){return typeof t=="string"&&t.trim()?t.trim():e}function Z(e){var t;return new Set(((t=e==null?void 0:e.options)==null?void 0:t.map(s=>s.value))||[])}function Ye(e,t){const s=e.find(f=>f.id==="resolution"),o=e.find(f=>f.id==="quality"),r=Z(s),n=Z(o),i=r.has("1k")&&r.has("2k")&&r.has("4k"),a=n.has("auto")&&n.has("low")&&n.has("medium")&&n.has("high");if(!i||!a)return t;const u={...t},d=u.resolution,l=u.quality;return l&&r.has(l)&&!r.has(d)&&(u.resolution=l),l&&!n.has(l)&&delete u.quality,u}function H(e,t,s){var u;const o=ee(e),r=new Set([]),n=Ye(o,x(t)),i={},a=o.find(d=>d.id==="size");if(a&&!e.startsWith("mj")&&!r.has("size")&&(s==null?void 0:s.keepDefaultSize)!==!1){const d=n.size,l=(u=a.options)==null?void 0:u.some(f=>f.value===d);i.size=l?d:Re(e)}return o.forEach(d=>{var A;if(r.has(d.id)||d.id==="size")return;const l=n[d.id];if((d.valueType==="enum"?(A=d.options)==null?void 0:A.some(R=>R.value===l):typeof l=="string"&&l!=="")&&l){i[d.id]=l;return}d.defaultValue&&(i[d.id]=d.defaultValue)}),Ve(e,i)}function ie(e,t){return H(e,t)}function We(e,t){var n,i;const s=_(E.AI_INPUT_PREFERENCES)||{},o=S(e,t),r=(i=(n=s.scopedPreferences)==null?void 0:n.image)==null?void 0:i[o];return r?x(r):s.generationType==="image"&&s.selectedModel===e?x(s.selectedParams):null}function Xe(e,t,s){var u,d,l;const o=_(E.AI_INPUT_PREFERENCES)||{},r=S(e,t),n=o.generationType==="image"&&o.selectedModel===e?x(o.selectedParams):{},i=x((d=(u=o.scopedPreferences)==null?void 0:u.image)==null?void 0:d[r]),a=H(e,{...n,...i,...s});C(E.AI_INPUT_PREFERENCES,{...o,scopedPreferences:{...o.scopedPreferences||{},image:{...((l=o.scopedPreferences)==null?void 0:l.image)||{},[r]:a}}})}function K(e,t){const s=x(t);return ze(e,e,s).reduce((r,n)=>{var u;const i=s[n.id];return(n.valueType==="enum"?(u=n.options)==null?void 0:u.some(d=>d.value===i):typeof i=="string"&&i!=="")&&i?(r[n.id]=i,r):(n.defaultValue&&(r[n.id]=n.defaultValue),r)},{})}function ae(e,t,s){return{...x(e),...typeof t=="string"&&t.trim()?{duration:t.trim()}:{},...typeof s=="string"&&s.trim()?{size:s.trim()}:{}}}function ue(e,t){const s=Le(se(e)),{duration:o,size:r,...n}=t;return{extraParams:n,duration:o||s.duration,size:r||s.size}}function Ze(e,t){var n,i;const s=_(E.AI_INPUT_PREFERENCES)||{},o=S(e,t),r=(i=(n=s.scopedPreferences)==null?void 0:n.video)==null?void 0:i[o];return r?x(r):s.generationType==="video"&&s.selectedModel===e?x(s.selectedParams):null}function et(e,t,s){var u,d,l;const o=_(E.AI_INPUT_PREFERENCES)||{},r=S(e,t),n=o.generationType==="video"&&o.selectedModel===e?x(o.selectedParams):{},i=x((d=(u=o.scopedPreferences)==null?void 0:u.video)==null?void 0:d[r]),a=K(e,{...n,...i,...s});C(E.AI_INPUT_PREFERENCES,{...o,scopedPreferences:{...o.scopedPreferences||{},video:{...((l=o.scopedPreferences)==null?void 0:l.video)||{},[r]:a}}})}function tt(e){return e==="video"?Oe():e==="audio"?Ue():e==="text"||e==="agent"?Ce:je()}function rt(e){return e==="image"||e==="video"||e==="audio"||e==="text"||e==="agent"}function st(e){const t=oe(e);if(t.length===0)return new Set(j.map(r=>r.value));const s=new Set,o=new Map(j.map(r=>[r.value.replace(":","x"),r.value]));return t.forEach(r=>{if(r.value==="auto"){s.add("auto");return}const n=o.get(r.value);n&&s.add(n)}),s.size>0?s:new Set(j.map(r=>r.value))}function de(e,t){if(typeof t!="string")return k;const s=st(e);return s.has(t)?t:s.has("auto")?"auto":k}function ot(e){if(typeof e!="string"||!e.trim())return;if(e==="auto")return k;const t=e.trim().replace(/[xX]/g,":");return j.some(s=>s.value===t)?t:void 0}function nt(e,t){const s=de(e,t),o=Fe(s);if(o)return oe(e).some(r=>r.value===o)?o:void 0}function le(e,t,s){const o=x(t);if(o.size)return o;const r=nt(e,s);return r?{...o,size:r}:o}function mt(){const e=_(E.AI_INPUT_PREFERENCES)||{},t=e.generationType,o=e.modeVersion!==2&&t==="text"?"agent":rt(t)?t:"image",r=tt(o),n=typeof e.selectedModel=="string"?e.selectedModel:"",i=n?De(n):null,a=i&&(i.type===o||(o==="text"||o==="agent")&&i.type==="text")?n:r,u=o==="agent"?{}:H(a,e.selectedParams),d=o==="agent"||o==="text"?1:typeof e.selectedCount=="number"&&Je.has(e.selectedCount)?e.selectedCount:1;return{generationType:o,selectedModel:a,selectedParams:u,selectedCount:d,selectedSkillId:typeof e.selectedSkillId=="string"&&e.selectedSkillId.trim()?e.selectedSkillId.trim():"auto"}}function ft(e){const t=_(E.AI_INPUT_PREFERENCES)||{};C(E.AI_INPUT_PREFERENCES,{...t,...e,modeVersion:2,selectedParams:e.generationType==="agent"?{}:e.selectedParams,selectedCount:e.generationType==="agent"||e.generationType==="text"?1:e.selectedCount})}function Pt(e){const t=_(E.AI_IMAGE_TOOL_PREFERENCES)||{},s=S(e.currentModel,e.currentSelectionKey),o=ie(e.currentModel,le(e.currentModel,e.extraParams,e.aspectRatio));C(E.AI_IMAGE_TOOL_PREFERENCES,{...t,...e,extraParams:o,scopedPreferences:{...t.scopedPreferences||{},[s]:{modelId:e.currentModel,selectionKey:e.currentSelectionKey||null,extraParams:o,aspectRatio:e.aspectRatio}}}),Xe(e.currentModel,e.currentSelectionKey,o)}function gt(e){const t=_(E.AI_VIDEO_TOOL_PREFERENCES)||{},s=S(e.currentModel,e.currentSelectionKey),o=K(e.currentModel,ae(e.extraParams,e.duration,e.size)),r=ue(e.currentModel,o);C(E.AI_VIDEO_TOOL_PREFERENCES,{...t,...e,...r,scopedPreferences:{...t.scopedPreferences||{},[s]:{modelId:e.currentModel,selectionKey:e.currentSelectionKey||null,...r}}}),et(e.currentModel,e.currentSelectionKey,o)}function ht(e,t,s,o){var a,u;const r=_(E.AI_INPUT_PREFERENCES)||{},n=S(t,s),i=(u=(a=r.scopedPreferences)==null?void 0:a[e])==null?void 0:u[n];return x(i??o)}function Et(e,t,s,o){var i;const r=_(E.AI_INPUT_PREFERENCES)||{},n=S(t,o);C(E.AI_INPUT_PREFERENCES,{...r,scopedPreferences:{...r.scopedPreferences||{},[e]:{...((i=r.scopedPreferences)==null?void 0:i[e])||{},[n]:x(s)}}})}function vt(e,t){var d;const s=_(E.AI_IMAGE_TOOL_PREFERENCES)||{},o=S(e,t),r=(d=s.scopedPreferences)==null?void 0:d[o],n=We(e,t),i=(r==null?void 0:r.aspectRatio)??s.aspectRatio,a=le(e,n??(r==null?void 0:r.extraParams)??s.extraParams,i),u=ie(e,a);return{extraParams:u,aspectRatio:de(e,ot(u.size)||i)}}function wt(e,t){var u;const s=_(E.AI_VIDEO_TOOL_PREFERENCES)||{},o=S(e,t),r=(u=s.scopedPreferences)==null?void 0:u[o],n=se(e),i=Ze(n,t),a=K(n,i??ae((r==null?void 0:r.extraParams)??s.extraParams,(r==null?void 0:r.duration)??s.duration,(r==null?void 0:r.size)??s.size));return ue(n,a)}export{at as P,lt as a,pt as b,ht as c,Et as d,vt as e,Pt as f,X as g,ie as h,ct as i,wt as j,gt as k,mt as l,dt as r,ft as s,ut as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{w as ln,c as J}from"./path-CbwjOpE9.js";import{D as rn,E as N,F as D,G as an,H as y,I as on,J as z,K as _,L as un,M as t,N as sn,O as tn,P as fn}from"./index-0b_TeH8L.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function mn(l){return l.endAngle}function pn(l){return l&&l.padAngle}function dn(l,h,O,E,v,A,K,r){var q=O-l,i=E-h,n=K-v,m=r-A,a=m*q-n*i;if(!(a*a<y))return a=(n*(h-A)-m*(l-v))/a,[l+a*q,h+a*i]}function W(l,h,O,E,v,A,K){var r=l-O,q=h-E,i=(K?A:-A)/z(r*r+q*q),n=i*q,m=-i*r,a=l+n,s=h+m,f=O+n,c=E+m,L=(a+f)/2,o=(s+c)/2,p=f-a,g=c-s,R=p*p+g*g,T=v-A,P=a*c-f*s,F=(g<0?-1:1)*z(tn(0,T*T*R-P*P)),G=(P*g-p*F)/R,H=(-P*p-g*F)/R,w=(P*g+p*F)/R,d=(-P*p+g*F)/R,x=G-L,e=H-o,u=w-L,M=d-o;return x*x+e*e>u*u+M*M&&(G=w,H=d),{cx:G,cy:H,x01:-n,y01:-m,x11:G*(v/T-1),y11:H*(v/T-1)}}function vn(){var l=cn,h=yn,O=J(0),E=null,v=gn,A=mn,K=pn,r=null,q=ln(i);function i(){var n,m,a=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,L=un(c-f),o=c>f;if(r||(r=n=q()),s<a&&(m=s,s=a,a=m),!(s>y))r.moveTo(0,0);else if(L>on-y)r.moveTo(s*N(f),s*D(f)),r.arc(0,0,s,f,c,!o),a>y&&(r.moveTo(a*N(c),a*D(c)),r.arc(0,0,a,c,f,o));else{var p=f,g=c,R=f,T=c,P=L,F=L,G=K.apply(this,arguments)/2,H=G>y&&(E?+E.apply(this,arguments):z(a*a+s*s)),w=_(un(s-a)/2,+O.apply(this,arguments)),d=w,x=w,e,u;if(H>y){var M=sn(H/a*D(G)),B=sn(H/s*D(G));(P-=M*2)>y?(M*=o?1:-1,R+=M,T-=M):(P=0,R=T=(f+c)/2),(F-=B*2)>y?(B*=o?1:-1,p+=B,g-=B):(F=0,p=g=(f+c)/2)}var S=s*N(p),j=s*D(p),C=a*N(T),Q=a*D(T);if(w>y){var U=s*N(g),V=s*D(g),X=a*N(R),Y=a*D(R),I;if(L<rn)if(I=dn(S,j,X,Y,U,V,C,Q)){var Z=S-I[0],$=j-I[1],k=U-I[0],b=V-I[1],nn=1/D(fn((Z*k+$*b)/(z(Z*Z+$*$)*z(k*k+b*b)))/2),en=z(I[0]*I[0]+I[1]*I[1]);d=_(w,(a-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else d=x=0}F>y?x>y?(e=W(X,Y,S,j,s,x,o),u=W(U,V,C,Q,s,x,o),r.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?r.arc(e.cx,e.cy,x,t(e.y01,e.x01),t(u.y01,u.x01),!o):(r.arc(e.cx,e.cy,x,t(e.y01,e.x01),t(e.y11,e.x11),!o),r.arc(0,0,s,t(e.cy+e.y11,e.cx+e.x11),t(u.cy+u.y11,u.cx+u.x11),!o),r.arc(u.cx,u.cy,x,t(u.y11,u.x11),t(u.y01,u.x01),!o))):(r.moveTo(S,j),r.arc(0,0,s,p,g,!o)):r.moveTo(S,j),!(a>y)||!(P>y)?r.lineTo(C,Q):d>y?(e=W(C,Q,U,V,a,-d,o),u=W(S,j,X,Y,a,-d,o),r.lineTo(e.cx+e.x01,e.cy+e.y01),d<w?r.arc(e.cx,e.cy,d,t(e.y01,e.x01),t(u.y01,u.x01),!o):(r.arc(e.cx,e.cy,d,t(e.y01,e.x01),t(e.y11,e.x11),!o),r.arc(0,0,a,t(e.cy+e.y11,e.cx+e.x11),t(u.cy+u.y11,u.cx+u.x11),o),r.arc(u.cx,u.cy,d,t(u.y11,u.x11),t(u.y01,u.x01),!o))):r.arc(0,0,a,T,R,o)}if(r.closePath(),n)return r=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,m=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-rn/2;return[N(m)*n,D(m)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:J(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:J(+n),i):h},i.cornerRadius=function(n){return arguments.length?(O=typeof n=="function"?n:J(+n),i):O},i.padRadius=function(n){return arguments.length?(E=n==null?null:typeof n=="function"?n:J(+n),i):E},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:J(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:J(+n),i):A},i.padAngle=function(n){return arguments.length?(K=typeof n=="function"?n:J(+n),i):K},i.context=function(n){return arguments.length?(r=n??null,i):r},i}export{vn as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{w as ln,c as J}from"./path-CY0bYimO.js";import{D as rn,E as N,F as D,G as an,H as y,I as on,J as z,K as _,L as un,M as t,N as sn,O as tn,P as fn}from"./mermaid.core-
|
|
1
|
+
import{w as ln,c as J}from"./path-CY0bYimO.js";import{D as rn,E as N,F as D,G as an,H as y,I as on,J as z,K as _,L as un,M as t,N as sn,O as tn,P as fn}from"./mermaid.core-2VcXhn43.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function mn(l){return l.endAngle}function pn(l){return l&&l.padAngle}function dn(l,h,O,E,v,A,K,r){var q=O-l,i=E-h,n=K-v,m=r-A,a=m*q-n*i;if(!(a*a<y))return a=(n*(h-A)-m*(l-v))/a,[l+a*q,h+a*i]}function W(l,h,O,E,v,A,K){var r=l-O,q=h-E,i=(K?A:-A)/z(r*r+q*q),n=i*q,m=-i*r,a=l+n,s=h+m,f=O+n,c=E+m,L=(a+f)/2,o=(s+c)/2,p=f-a,g=c-s,R=p*p+g*g,T=v-A,P=a*c-f*s,F=(g<0?-1:1)*z(tn(0,T*T*R-P*P)),G=(P*g-p*F)/R,H=(-P*p-g*F)/R,w=(P*g+p*F)/R,d=(-P*p+g*F)/R,x=G-L,e=H-o,u=w-L,M=d-o;return x*x+e*e>u*u+M*M&&(G=w,H=d),{cx:G,cy:H,x01:-n,y01:-m,x11:G*(v/T-1),y11:H*(v/T-1)}}function vn(){var l=cn,h=yn,O=J(0),E=null,v=gn,A=mn,K=pn,r=null,q=ln(i);function i(){var n,m,a=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,L=un(c-f),o=c>f;if(r||(r=n=q()),s<a&&(m=s,s=a,a=m),!(s>y))r.moveTo(0,0);else if(L>on-y)r.moveTo(s*N(f),s*D(f)),r.arc(0,0,s,f,c,!o),a>y&&(r.moveTo(a*N(c),a*D(c)),r.arc(0,0,a,c,f,o));else{var p=f,g=c,R=f,T=c,P=L,F=L,G=K.apply(this,arguments)/2,H=G>y&&(E?+E.apply(this,arguments):z(a*a+s*s)),w=_(un(s-a)/2,+O.apply(this,arguments)),d=w,x=w,e,u;if(H>y){var M=sn(H/a*D(G)),B=sn(H/s*D(G));(P-=M*2)>y?(M*=o?1:-1,R+=M,T-=M):(P=0,R=T=(f+c)/2),(F-=B*2)>y?(B*=o?1:-1,p+=B,g-=B):(F=0,p=g=(f+c)/2)}var S=s*N(p),j=s*D(p),C=a*N(T),Q=a*D(T);if(w>y){var U=s*N(g),V=s*D(g),X=a*N(R),Y=a*D(R),I;if(L<rn)if(I=dn(S,j,X,Y,U,V,C,Q)){var Z=S-I[0],$=j-I[1],k=U-I[0],b=V-I[1],nn=1/D(fn((Z*k+$*b)/(z(Z*Z+$*$)*z(k*k+b*b)))/2),en=z(I[0]*I[0]+I[1]*I[1]);d=_(w,(a-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else d=x=0}F>y?x>y?(e=W(X,Y,S,j,s,x,o),u=W(U,V,C,Q,s,x,o),r.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?r.arc(e.cx,e.cy,x,t(e.y01,e.x01),t(u.y01,u.x01),!o):(r.arc(e.cx,e.cy,x,t(e.y01,e.x01),t(e.y11,e.x11),!o),r.arc(0,0,s,t(e.cy+e.y11,e.cx+e.x11),t(u.cy+u.y11,u.cx+u.x11),!o),r.arc(u.cx,u.cy,x,t(u.y11,u.x11),t(u.y01,u.x01),!o))):(r.moveTo(S,j),r.arc(0,0,s,p,g,!o)):r.moveTo(S,j),!(a>y)||!(P>y)?r.lineTo(C,Q):d>y?(e=W(C,Q,U,V,a,-d,o),u=W(S,j,X,Y,a,-d,o),r.lineTo(e.cx+e.x01,e.cy+e.y01),d<w?r.arc(e.cx,e.cy,d,t(e.y01,e.x01),t(u.y01,u.x01),!o):(r.arc(e.cx,e.cy,d,t(e.y01,e.x01),t(e.y11,e.x11),!o),r.arc(0,0,a,t(e.cy+e.y11,e.cx+e.x11),t(u.cy+u.y11,u.cx+u.x11),o),r.arc(u.cx,u.cy,d,t(u.y11,u.x11),t(u.y01,u.x01),!o))):r.arc(0,0,a,T,R,o)}if(r.closePath(),n)return r=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,m=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-rn/2;return[N(m)*n,D(m)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:J(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:J(+n),i):h},i.cornerRadius=function(n){return arguments.length?(O=typeof n=="function"?n:J(+n),i):O},i.padRadius=function(n){return arguments.length?(E=n==null?null:typeof n=="function"?n:J(+n),i):E},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:J(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:J(+n),i):A},i.padAngle=function(n){return arguments.length?(K=typeof n=="function"?n:J(+n),i):K},i.context=function(n){return arguments.length?(r=n??null,i):r},i}export{vn as a};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{aj as o,bk as kt,aD as vt,bl as yt,bm as jt,bn as Et,bo as Dt,ar as ue,bp as za,bq as Ut,br as _a,bs as Pe,bt as ma,bu as Ra,bv as Oe,bw as Vt,bx as ga,aU as N,av as Fe,by as Ct,ak as ha,bz as G,bA as qt,bB as St,bC as zt,T as _t,ai as t,aO as M,ao as j,bD as Ta,bE as Rt,aX as Tt,bF as Mt,bG as $t,aP as At,bH as It,ap as Ma,bI as $a,bJ as Ke,bK as Lt,aW as Pt,bL as Ot,aq as Aa,bM as Ft,bh as Ia,ax as Kt,bN as Gt,bO as Bt,bP as Jt}from"./tool-windows-DOIu9TAD.js";function Ht(ie={}){const{showNavbar:C=!0,showToolbar:B=!0,showTitle:$=!0,videoAutoPlay:J=!0,videoLoop:r=!0,onClose:se,onIndexChange:le}=ie,[A,me]=o.useState(!1),[Z,I]=o.useState([]),[ge,ce]=o.useState(0),Ge=o.useCallback((f,D=0)=>{const T=Array.isArray(f)?f:[f];T.length!==0&&(I(T),ce(Math.max(0,Math.min(D,T.length-1))),me(!0))},[]),he=o.useCallback(()=>{me(!1),I([]),ce(0),se==null||se()},[se]),fe=o.useCallback(f=>{ce(f),le==null||le(f)},[le]),ve=o.useMemo(()=>({visible:A,items:Z,initialIndex:ge,onClose:he,onIndexChange:fe,showNavbar:C,showToolbar:B,showTitle:$,videoAutoPlay:J,videoLoop:r}),[A,Z,ge,he,fe,C,B,$,J,r]);return{openViewer:Ge,closeViewer:he,isOpen:A,currentIndex:ge,items:Z,viewerProps:ve}}function Wt(ie,C="image"){return ie.map((B,$)=>({url:B,type:C,alt:`${C==="image"?"Image":"Video"} ${$+1}`}))}const La=Ut.BATCH_IMAGE_CACHE,Xt=["auto","1x1","1x4","4x1","1x8","8x1","2x3","3x2","3x4","4x3","4x5","5x4","9x16","16x9","21x9"],fa={auto:"自动","1x1":"1:1","1x4":"1:4","4x1":"4:1","1x8":"1:8","8x1":"8:1","2x3":"2:3","3x2":"3:2","3x4":"3:4","4x3":"4:3","4x5":"4:5","5x4":"5:4","9x16":"9:16","16x9":"16:9","21x9":"21:9"},E=["prompt","size","images","count","preview"];function Yt(){const ie=[];for(let C=0;C<5;C++)ie.push({id:C+1,prompt:"",size:"auto",images:[],count:1,taskIds:[]});return ie}const ai=({onSwitchToSingle:ie,selectedModel:C,selectedModelRef:B,onModelChange:$,onModelRefChange:J})=>{var qa;const{language:r}=kt(),{confirm:se,confirmDialog:le}=vt(),A=yt("image"),{createTask:me,tasks:Z}=jt(),{addAsset:I,assets:ge,loadAssets:ce}=Et(),{isMobile:Ge,isTablet:he}=Dt(),fe=Ge||he,ve=ge.filter(a=>a.type===ue.IMAGE);o.useEffect(()=>{ce()},[ce]);const[f,D]=o.useState(Yt),[T,ye]=o.useState(6),[pa,ba]=o.useState(!1),[Be,Je]=o.useState(!1);o.useEffect(()=>{let a=!0;return za.get(La).then(e=>{a&&(e&&e.tasks&&Array.isArray(e.tasks)&&e.tasks.length>0&&(D(e.tasks),e.taskIdCounter&&ye(e.taskIdCounter)),ba(!0))}).catch(e=>{console.warn("Failed to load batch image cache:",e),a&&ba(!0)}),()=>{a=!1}},[]);const[k,ne]=o.useState(null),[_,H]=o.useState([]),[L,U]=o.useState(null),[w,W]=o.useState(new Set),{validSelectedRows:Zt,selectedTaskCount:Qt,selectedInfoText:Pa}=o.useMemo(()=>{const a=[...w].filter(s=>{const l=f[s];return l&&l.prompt&&l.prompt.trim()!==""}).sort((s,l)=>s-l),e=a.reduce((s,l)=>{const u=f[l];return s+((u==null?void 0:u.count)||1)},0),i=a.length>0?r==="zh"?`已选 ${a.length} 行 / ${e} 任务`:`${a.length} rows / ${e} tasks`:"";return{validSelectedRows:a,selectedTaskCount:e,selectedInfoText:i}},[w,f,r]),P=o.useRef([]),O=o.useRef(-1),pe=o.useRef(!1),[Na,He]=o.useState(!0),[Oa,We]=o.useState(!1),[F,xa]=o.useState(!1),[z,wa]=o.useState(null),[ka,va]=o.useState([]),[je,Xe]=o.useState(null),[de,Ye]=o.useState(!1),[Ee,Ze]=o.useState(null),[Fa,Qe]=o.useState(null),[X,Ka]=o.useState(1),[Ga,ea]=o.useState(!1),[q,aa]=o.useState([]),[Q,ya]=o.useState(1),ta=o.useMemo(()=>q.slice(0,12).map(a=>URL.createObjectURL(a)),[q]);o.useEffect(()=>()=>{ta.forEach(a=>URL.revokeObjectURL(a))},[ta]);const ee=_a("image"),De=Pe(A,ee.modelId,ma(ee.profileId,ee.modelId))||Ra("image",ee.modelId,ma(ee.profileId,ee.modelId)),[V,Ue]=o.useState((De==null?void 0:De.id)||((qa=A[0])==null?void 0:qa.id)||"gemini-2.5-flash-image-vip"),[K,Ve]=o.useState(Oe(De)||ma(ee.profileId,ee.modelId)),ae=o.useMemo(()=>{if(Pe(A,V,K)||!V)return A;const e=Ra("image",V,K);return e?[e,...A]:A},[A,V,K]),be=o.useMemo(()=>{const a=Vt(V).map(e=>e.value);return a.length>0?a:Xt},[V]),Y=o.useMemo(()=>new Set(be),[be]),R=o.useMemo(()=>Y.has("auto")?"auto":be[0]||"auto",[Y,be]);o.useEffect(()=>{D(a=>a.map(e=>Y.has(e.size)?e:{...e,size:R}))},[R,Y]),o.useEffect(()=>{if(ae.length===0)return;Pe(ae,V,K)||(Ue(ae[0].id),Ve(Oe(ae[0])))},[V,K,ae]),o.useEffect(()=>{if(!C)return;const a=ga(V,K),e=ga(C,B);if(a!==e){Ue(C);const i=Pe(ae,C,B);Ve(Oe(i)||B||null)}},[C,B,V,K,ae]);const{openViewer:ja,viewerProps:Ba}=Ht(),[Ne,ia]=o.useState(null),[Ja,Ce]=o.useState(!1),[qe,Ha]=o.useState(5),[Ea,sa]=o.useState(!1),[na,ra]=o.useState(null),Se=o.useRef(null),ze=o.useRef(null),_e=o.useRef(null),Re=o.useRef(null),Da=o.useRef(null),Te=o.useRef(null),oa=o.useRef(null);o.useEffect(()=>{if(!pa)return;const a={tasks:f,taskIdCounter:T,timestamp:Date.now()};za.set(La,a).catch(e=>{console.warn("Failed to save batch image cache:",e)})},[f,T,pa]);const Ua=o.useCallback((a,e,i,s)=>{if(pe.current){pe.current=!1;return}P.current=P.current.slice(0,O.current+1);const l={tasks:JSON.parse(JSON.stringify(a)),selectedCells:[...e],activeCell:i?{...i}:null,selectedRows:Array.from(s)};P.current.push(l),O.current=P.current.length-1,P.current.length>50&&(P.current.shift(),O.current--)},[]);o.useEffect(()=>{f.length>0&&Ua(f,_,k,w)},[f,Ua]),o.useEffect(()=>{if(P.current.length>0&&O.current>=0&&!pe.current){const a=P.current[O.current];a&&(a.selectedCells=[..._],a.activeCell=k?{...k}:null,a.selectedRows=Array.from(w))}},[_,k,w]);const Va=o.useCallback(()=>{if(O.current>0){O.current--,pe.current=!0;const a=P.current[O.current];D(JSON.parse(JSON.stringify(a.tasks))),H([...a.selectedCells]),ne(a.activeCell?{...a.activeCell}:null),W(new Set(a.selectedRows)),N.info(r==="zh"?"已撤销":"Undone")}else N.warning(r==="zh"?"没有可撤销的操作":"Nothing to undo")},[r]),Ca=o.useCallback(()=>{if(O.current<P.current.length-1){O.current++,pe.current=!0;const a=P.current[O.current];D(JSON.parse(JSON.stringify(a.tasks))),H([...a.selectedCells]),ne(a.activeCell?{...a.activeCell}:null),W(new Set(a.selectedRows)),N.info(r==="zh"?"已重做":"Redone")}else N.warning(r==="zh"?"没有可重做的操作":"Nothing to redo")},[r]),Wa=o.useCallback(a=>{D(e=>{const i=[...e];for(let s=0;s<a;s++)i.push({id:T+s,prompt:"",size:R,images:[],count:1,taskIds:[]});return i}),ye(e=>e+a)},[R,T]),Xa=o.useCallback(()=>{if(w.size===0){N.warning(r==="zh"?"请先勾选要删除的行":"Please check rows to delete");return}D(a=>a.filter((e,i)=>!w.has(i))),W(new Set),H([]),ne(null)},[w,r]),v=o.useCallback((a,e)=>{ne({row:a,col:e}),H([{row:a,col:e}]),U(null)},[]),Me=o.useCallback((a,e)=>{v(a,e),E.includes(e)&&e!=="images"&&U({row:a,col:e})},[v]),y=o.useCallback((a,e,i)=>{D(s=>{if(!s[a])return s;const l=[...s];return l[a]={...l[a],[e]:i},l})},[]),xe=o.useCallback((a,e,i)=>{if(a.shiftKey&&k){const s=Math.min(k.row,e),l=Math.max(k.row,e);W(c=>{const d=new Set(c);for(let p=s;p<=l;p++)d.add(p);return d});const u=[];for(let c=s;c<=l;c++)u.push({row:c,col:k.col});H(u),Da.current=e}else a.ctrlKey||a.metaKey?H(s=>s.some(u=>u.row===e&&u.col===i)?s.filter(u=>!(u.row===e&&u.col===i)):[...s,{row:e,col:i}]):(v(e,i),Da.current=e)},[k,v]),$e=o.useCallback(a=>{var i;if(!k){N.warning(r==="zh"?"请先选中一个单元格作为填充源":"Please select a cell as fill source");return}const e=(i=f[k.row])==null?void 0:i[a];if(e==null||typeof e=="string"&&e.trim()===""||Array.isArray(e)&&e.length===0){N.warning(r==="zh"?"选中的单元格没有数据":"Selected cell has no data");return}D(s=>s.map(l=>({...l,[a]:a==="images"&&Array.isArray(e)?[...e]:e}))),N.success(r==="zh"?"已填充整列":"Column filled")},[k,f,r]),Ae=o.useCallback((a,e)=>{Ye(!1),Ze(null),xa(!0),wa({row:a,col:e}),Xe(a)},[]),la=o.useCallback((a,e)=>{F||(Ye(!0),Ze({row:a,col:e}),ne({row:a,col:e}),H([{row:a,col:e}]))},[F]),Ya=o.useCallback(a=>{if(!F&&!de)return;const i=a.target.closest("tr[data-row-index]");if(!i)return;const s=parseInt(i.dataset.rowIndex||"-1");if(!(s<0)){if(F&&z){Xe(s);const l=z.row,u=s,c=Math.min(l,u),d=Math.max(l,u),p=[];for(let g=c;g<=d;g++)g!==l&&p.push(g);va(p)}if(de&&Ee){const l=Ee.col,u=Ee.row,c=s,d=Math.min(u,c),p=Math.max(u,c),g=[];for(let n=d;n<=p;n++)g.push({row:n,col:l});H(g)}}},[F,z,de,Ee]),Ie=o.useCallback(()=>{var a;if(F&&z&&je!==null&&je!==z.row){const e=(a=f[z.row])==null?void 0:a[z.col],i=z.row,s=je,l=Math.min(i,s),u=Math.max(i,s);D(d=>{const p=[...d];for(let g=l;g<=u;g++)g!==i&&p[g]&&(p[g]={...p[g],[z.col]:Array.isArray(e)?[...e]:e});return p});const c=[];for(let d=l;d<=u;d++)c.push({row:d,col:z.col});H(c),N.success(r==="zh"?`已填充 ${Math.abs(s-i)} 行`:`Filled ${Math.abs(s-i)} rows`)}xa(!1),wa(null),Xe(null),va([]),Ye(!1),Ze(null)},[F,z,je,f,r]),Za=o.useCallback(a=>{const e=a.target.files;e&&(Array.from(e).forEach(i=>{i.type.startsWith("image/")&&I(i,ue.IMAGE,Fe.LOCAL,i.name).catch(s=>{console.warn("[BatchImageGeneration] Failed to add asset to library:",s)})}),Se.current&&(Se.current.value=""))},[I]),Qa=o.useCallback(a=>{let e=[];if(w.size>0?e=[...w]:_.length>0?e=[...new Set(_.map(i=>i.row))]:k&&(e=[k.row]),e.length===0){N.warning(r==="zh"?"请先选中要添加图片的行":"Please select a row first");return}D(i=>{const s=[...i];return e.forEach(l=>{s[l]&&!s[l].images.includes(a)&&(s[l]={...s[l],images:[...s[l].images,a]})}),s})},[w,_,k,r]),re=o.useCallback((a,e)=>{D(i=>{const s=[...i];return s[a]&&!s[a].images.includes(e)&&(s[a]={...s[a],images:[...s[a].images,e]}),s})},[]),et=o.useCallback((a,e)=>{D(i=>{const s=[...i];return s[a]&&(s[a]={...s[a],images:s[a].images.filter(l=>l!==e)}),s})},[]),at=o.useCallback(a=>{const e=a.target.files,i=oa.current;!e||e.length===0||i===null||(Array.from(e).forEach(s=>{if(!s.type.startsWith("image/"))return;I(s,ue.IMAGE,Fe.LOCAL,s.name).catch(u=>{console.warn("[BatchImageGeneration] Failed to add asset to library:",u)});const l=new FileReader;l.onload=u=>{var d;const c=(d=u.target)==null?void 0:d.result;re(i,c)},l.readAsDataURL(s)}),Re.current&&(Re.current.value=""),oa.current=null)},[re,I]),tt=o.useCallback(a=>{var e;oa.current=a,He(!0),(e=Re.current)==null||e.click()},[]),it=o.useCallback(a=>{ra(a),sa(!0)},[]),st=o.useCallback(a=>{na!==null&&(a.url&&re(na,a.url),sa(!1),ra(null))},[na,re]),nt=o.useCallback((a,e)=>{a.preventDefault(),a.dataTransfer.dropEffect="copy",Qe(e)},[]),rt=o.useCallback(a=>{const e=a.relatedTarget;(!e||!a.currentTarget.contains(e))&&Qe(null)},[]),ot=o.useCallback((a,e)=>{a.preventDefault(),Qe(null);const i=a.dataTransfer.getData("text/library-image");if(i){re(e,i),N.success(r==="zh"?`已添加图片到第 ${e+1} 行`:`Added image to row ${e+1}`);return}const s=a.dataTransfer.files;if(!s||s.length===0)return;let l=0;Array.from(s).forEach(u=>{if(!u.type.startsWith("image/"))return;I(u,ue.IMAGE,Fe.LOCAL,u.name).catch(d=>{console.warn("[BatchImageGeneration] Failed to add asset to library:",d)});const c=new FileReader;c.onload=d=>{var g;const p=(g=d.target)==null?void 0:g.result;re(e,p)},c.readAsDataURL(u),l++}),l>0&&N.success(r==="zh"?`已添加 ${l} 张图片到第 ${e+1} 行`:`Added ${l} images to row ${e+1}`)},[re,r,I]),lt=o.useCallback((a,e)=>{a.dataTransfer.setData("text/library-image",e),a.dataTransfer.effectAllowed="copy"},[]),ct=o.useCallback(a=>{const e=a.target.files;if(!e||e.length===0)return;const i=Array.from(e).filter(l=>l.type.startsWith("image/"));if(i.length===0){N.warning(r==="zh"?"请选择图片文件":"Please select image files");return}aa(i);const s=k?k.row+1:1;ya(Math.min(s,f.length)),ea(!0),ze.current&&(ze.current.value="")},[r,k,f.length]),dt=o.useCallback(async()=>{if(q.length===0)return;const a=Ct(`批量导入(${q.length}张)`),e=X,i=q.length,s=Math.ceil(i/e),l=Q-1,u=[];for(const g of q){I(g,ue.IMAGE,Fe.LOCAL,g.name).catch(m=>{console.warn("[BatchImageGeneration] Failed to add asset to library:",m)});const n=await new Promise((m,b)=>{const h=new FileReader;h.onload=x=>{var S;return m((S=x.target)==null?void 0:S.result)},h.onerror=b,h.readAsDataURL(g)});u.push(n)}D(g=>{const n=[...g];let m=0,b=0;for(let h=0;h<s;h++){const x=l+h,S=[];for(let oe=0;oe<e&&m<i;oe++)S.push(u[m]),m++;x<n.length?n[x]={...n[x],images:[...n[x].images,...S]}:(n.push({id:T+b,prompt:"",size:R,images:S,count:1,taskIds:[]}),b++)}return n});const c=Math.min(s,f.length-l),d=Math.max(0,s-c);d>0&&ye(g=>g+d),aa([]),ea(!1),a();const p=r==="zh"?`已导入 ${i} 张图片,从第 ${Q} 行开始`:`Imported ${i} images starting from row ${Q}`;N.success(p)},[q,X,Q,T,f.length,r,I,R]),ca=o.useCallback(()=>{aa([]),ea(!1)},[]),ut=o.useCallback(async()=>{try{const a=await ha(()=>import("./xlsx-CkFp8p6R.js"),[],import.meta.url),e=[{提示词:"一只可爱的橘猫在阳光下睡觉",尺寸:"1x1",数量:1},{提示词:"未来城市的夜景,霓虹灯闪烁",尺寸:"16x9",数量:2},{提示词:"古风美女,水墨画风格",尺寸:"3x4",数量:1},{提示词:"",尺寸:"1x1",数量:1},{提示词:"",尺寸:"1x1",数量:1}],i=a.utils.book_new(),s=a.utils.json_to_sheet(e);s["!cols"]=[{wch:60},{wch:10},{wch:8}],a.utils.book_append_sheet(i,s,"批量出图模板"),a.writeFile(i,"batch-image-template.xlsx"),N.success(r==="zh"?"模板下载成功,填写后可导入使用":"Template downloaded, fill and import to use")}catch(a){console.error("Excel template download error:",a),N.error(r==="zh"?"下载失败,请稍后重试":"Download failed, please try again")}},[r]),mt=o.useCallback(async a=>{var i;const e=(i=a.target.files)==null?void 0:i[0];if(e){try{const s=await ha(()=>import("./xlsx-CkFp8p6R.js"),[],import.meta.url),l=new FileReader;l.onload=u=>{var c;try{const d=new Uint8Array((c=u.target)==null?void 0:c.result),p=s.read(d,{type:"array"}),g=p.SheetNames[0],n=p.Sheets[g],m=s.utils.sheet_to_json(n);if(m.length===0){N.warning(r==="zh"?"Excel 文件为空":"Excel file is empty");return}const b=m.map((h,x)=>{const S=h.提示词||h.prompt||h.Prompt||"",oe=h.尺寸||h.size||h.Size||R,xt=parseInt(String(h.数量||h.count||h.Count||"1"))||1,Sa=h.参考图||h.images||h.Images||"",wt=Sa?Sa.split(`
|
|
2
|
-
`).map(ke=>ke.trim()).filter(ke=>ke.length>0&&!ke.startsWith("[")&&!ke.endsWith("]")):[];return{id:T+x,prompt:String(S).trim(),size:
|
|
1
|
+
import{Y as o,bm as kt,aF as vt,bn as yt,bo as jt,bp as Et,bq as Dt,at as ue,br as za,bs as Ut,bt as _a,bu as Pe,bv as ma,bw as Ra,bx as Oe,by as Vt,bz as ga,aW as N,ax as Fe,bA as Ct,am as ha,bB as G,bC as qt,bD as St,bE as zt,T as _t,$ as t,aQ as $,aq as j,bF as Ta,bG as Rt,aZ as Tt,bH as $t,bI as Mt,aR as At,bJ as It,ar as $a,bK as Ma,bL as Ke,bM as Lt,aY as Pt,bN as Ot,as as Aa,bO as Ft,bj as Ia,az as Kt,bP as Gt,bQ as Bt,bR as Jt}from"./tool-windows-BEnZdJqF.js";function Ht(ie={}){const{showNavbar:C=!0,showToolbar:B=!0,showTitle:M=!0,videoAutoPlay:J=!0,videoLoop:r=!0,onClose:se,onIndexChange:le}=ie,[A,me]=o.useState(!1),[Z,I]=o.useState([]),[ge,ce]=o.useState(0),Ge=o.useCallback((f,D=0)=>{const T=Array.isArray(f)?f:[f];T.length!==0&&(I(T),ce(Math.max(0,Math.min(D,T.length-1))),me(!0))},[]),he=o.useCallback(()=>{me(!1),I([]),ce(0),se==null||se()},[se]),fe=o.useCallback(f=>{ce(f),le==null||le(f)},[le]),ve=o.useMemo(()=>({visible:A,items:Z,initialIndex:ge,onClose:he,onIndexChange:fe,showNavbar:C,showToolbar:B,showTitle:M,videoAutoPlay:J,videoLoop:r}),[A,Z,ge,he,fe,C,B,M,J,r]);return{openViewer:Ge,closeViewer:he,isOpen:A,currentIndex:ge,items:Z,viewerProps:ve}}function Wt(ie,C="image"){return ie.map((B,M)=>({url:B,type:C,alt:`${C==="image"?"Image":"Video"} ${M+1}`}))}const La=Ut.BATCH_IMAGE_CACHE,Yt=["auto","1x1","1x4","4x1","1x8","8x1","2x3","3x2","3x4","4x3","4x5","5x4","9x16","16x9","21x9"],fa={auto:"自动","1x1":"1:1","1x4":"1:4","4x1":"4:1","1x8":"1:8","8x1":"8:1","2x3":"2:3","3x2":"3:2","3x4":"3:4","4x3":"4:3","4x5":"4:5","5x4":"5:4","9x16":"9:16","16x9":"16:9","21x9":"21:9"},E=["prompt","size","images","count","preview"];function Xt(){const ie=[];for(let C=0;C<5;C++)ie.push({id:C+1,prompt:"",size:"auto",images:[],count:1,taskIds:[]});return ie}const ai=({onSwitchToSingle:ie,selectedModel:C,selectedModelRef:B,onModelChange:M,onModelRefChange:J})=>{var qa;const{language:r}=kt(),{confirm:se,confirmDialog:le}=vt(),A=yt("image"),{createTask:me,tasks:Z}=jt(),{addAsset:I,assets:ge,loadAssets:ce}=Et(),{isMobile:Ge,isTablet:he}=Dt(),fe=Ge||he,ve=ge.filter(a=>a.type===ue.IMAGE);o.useEffect(()=>{ce()},[ce]);const[f,D]=o.useState(Xt),[T,ye]=o.useState(6),[pa,ba]=o.useState(!1),[Be,Je]=o.useState(!1);o.useEffect(()=>{let a=!0;return za.get(La).then(e=>{a&&(e&&e.tasks&&Array.isArray(e.tasks)&&e.tasks.length>0&&(D(e.tasks),e.taskIdCounter&&ye(e.taskIdCounter)),ba(!0))}).catch(e=>{console.warn("Failed to load batch image cache:",e),a&&ba(!0)}),()=>{a=!1}},[]);const[k,ne]=o.useState(null),[_,H]=o.useState([]),[L,U]=o.useState(null),[w,W]=o.useState(new Set),{validSelectedRows:Zt,selectedTaskCount:Qt,selectedInfoText:Pa}=o.useMemo(()=>{const a=[...w].filter(s=>{const l=f[s];return l&&l.prompt&&l.prompt.trim()!==""}).sort((s,l)=>s-l),e=a.reduce((s,l)=>{const u=f[l];return s+((u==null?void 0:u.count)||1)},0),i=a.length>0?r==="zh"?`已选 ${a.length} 行 / ${e} 任务`:`${a.length} rows / ${e} tasks`:"";return{validSelectedRows:a,selectedTaskCount:e,selectedInfoText:i}},[w,f,r]),P=o.useRef([]),O=o.useRef(-1),pe=o.useRef(!1),[Na,He]=o.useState(!0),[Oa,We]=o.useState(!1),[F,xa]=o.useState(!1),[z,wa]=o.useState(null),[ka,va]=o.useState([]),[je,Ye]=o.useState(null),[de,Xe]=o.useState(!1),[Ee,Ze]=o.useState(null),[Fa,Qe]=o.useState(null),[Y,Ka]=o.useState(1),[Ga,ea]=o.useState(!1),[q,aa]=o.useState([]),[Q,ya]=o.useState(1),ta=o.useMemo(()=>q.slice(0,12).map(a=>URL.createObjectURL(a)),[q]);o.useEffect(()=>()=>{ta.forEach(a=>URL.revokeObjectURL(a))},[ta]);const ee=_a("image"),De=Pe(A,ee.modelId,ma(ee.profileId,ee.modelId))||Ra("image",ee.modelId,ma(ee.profileId,ee.modelId)),[V,Ue]=o.useState((De==null?void 0:De.id)||((qa=A[0])==null?void 0:qa.id)||"gemini-2.5-flash-image-vip"),[K,Ve]=o.useState(Oe(De)||ma(ee.profileId,ee.modelId)),ae=o.useMemo(()=>{if(Pe(A,V,K)||!V)return A;const e=Ra("image",V,K);return e?[e,...A]:A},[A,V,K]),be=o.useMemo(()=>{const a=Vt(V).map(e=>e.value);return a.length>0?a:Yt},[V]),X=o.useMemo(()=>new Set(be),[be]),R=o.useMemo(()=>X.has("auto")?"auto":be[0]||"auto",[X,be]);o.useEffect(()=>{D(a=>a.map(e=>X.has(e.size)?e:{...e,size:R}))},[R,X]),o.useEffect(()=>{if(ae.length===0)return;Pe(ae,V,K)||(Ue(ae[0].id),Ve(Oe(ae[0])))},[V,K,ae]),o.useEffect(()=>{if(!C)return;const a=ga(V,K),e=ga(C,B);if(a!==e){Ue(C);const i=Pe(ae,C,B);Ve(Oe(i)||B||null)}},[C,B,V,K,ae]);const{openViewer:ja,viewerProps:Ba}=Ht(),[Ne,ia]=o.useState(null),[Ja,Ce]=o.useState(!1),[qe,Ha]=o.useState(5),[Ea,sa]=o.useState(!1),[na,ra]=o.useState(null),Se=o.useRef(null),ze=o.useRef(null),_e=o.useRef(null),Re=o.useRef(null),Da=o.useRef(null),Te=o.useRef(null),oa=o.useRef(null);o.useEffect(()=>{if(!pa)return;const a={tasks:f,taskIdCounter:T,timestamp:Date.now()};za.set(La,a).catch(e=>{console.warn("Failed to save batch image cache:",e)})},[f,T,pa]);const Ua=o.useCallback((a,e,i,s)=>{if(pe.current){pe.current=!1;return}P.current=P.current.slice(0,O.current+1);const l={tasks:JSON.parse(JSON.stringify(a)),selectedCells:[...e],activeCell:i?{...i}:null,selectedRows:Array.from(s)};P.current.push(l),O.current=P.current.length-1,P.current.length>50&&(P.current.shift(),O.current--)},[]);o.useEffect(()=>{f.length>0&&Ua(f,_,k,w)},[f,Ua]),o.useEffect(()=>{if(P.current.length>0&&O.current>=0&&!pe.current){const a=P.current[O.current];a&&(a.selectedCells=[..._],a.activeCell=k?{...k}:null,a.selectedRows=Array.from(w))}},[_,k,w]);const Va=o.useCallback(()=>{if(O.current>0){O.current--,pe.current=!0;const a=P.current[O.current];D(JSON.parse(JSON.stringify(a.tasks))),H([...a.selectedCells]),ne(a.activeCell?{...a.activeCell}:null),W(new Set(a.selectedRows)),N.info(r==="zh"?"已撤销":"Undone")}else N.warning(r==="zh"?"没有可撤销的操作":"Nothing to undo")},[r]),Ca=o.useCallback(()=>{if(O.current<P.current.length-1){O.current++,pe.current=!0;const a=P.current[O.current];D(JSON.parse(JSON.stringify(a.tasks))),H([...a.selectedCells]),ne(a.activeCell?{...a.activeCell}:null),W(new Set(a.selectedRows)),N.info(r==="zh"?"已重做":"Redone")}else N.warning(r==="zh"?"没有可重做的操作":"Nothing to redo")},[r]),Wa=o.useCallback(a=>{D(e=>{const i=[...e];for(let s=0;s<a;s++)i.push({id:T+s,prompt:"",size:R,images:[],count:1,taskIds:[]});return i}),ye(e=>e+a)},[R,T]),Ya=o.useCallback(()=>{if(w.size===0){N.warning(r==="zh"?"请先勾选要删除的行":"Please check rows to delete");return}D(a=>a.filter((e,i)=>!w.has(i))),W(new Set),H([]),ne(null)},[w,r]),v=o.useCallback((a,e)=>{ne({row:a,col:e}),H([{row:a,col:e}]),U(null)},[]),$e=o.useCallback((a,e)=>{v(a,e),E.includes(e)&&e!=="images"&&U({row:a,col:e})},[v]),y=o.useCallback((a,e,i)=>{D(s=>{if(!s[a])return s;const l=[...s];return l[a]={...l[a],[e]:i},l})},[]),xe=o.useCallback((a,e,i)=>{if(a.shiftKey&&k){const s=Math.min(k.row,e),l=Math.max(k.row,e);W(c=>{const d=new Set(c);for(let p=s;p<=l;p++)d.add(p);return d});const u=[];for(let c=s;c<=l;c++)u.push({row:c,col:k.col});H(u),Da.current=e}else a.ctrlKey||a.metaKey?H(s=>s.some(u=>u.row===e&&u.col===i)?s.filter(u=>!(u.row===e&&u.col===i)):[...s,{row:e,col:i}]):(v(e,i),Da.current=e)},[k,v]),Me=o.useCallback(a=>{var i;if(!k){N.warning(r==="zh"?"请先选中一个单元格作为填充源":"Please select a cell as fill source");return}const e=(i=f[k.row])==null?void 0:i[a];if(e==null||typeof e=="string"&&e.trim()===""||Array.isArray(e)&&e.length===0){N.warning(r==="zh"?"选中的单元格没有数据":"Selected cell has no data");return}D(s=>s.map(l=>({...l,[a]:a==="images"&&Array.isArray(e)?[...e]:e}))),N.success(r==="zh"?"已填充整列":"Column filled")},[k,f,r]),Ae=o.useCallback((a,e)=>{Xe(!1),Ze(null),xa(!0),wa({row:a,col:e}),Ye(a)},[]),la=o.useCallback((a,e)=>{F||(Xe(!0),Ze({row:a,col:e}),ne({row:a,col:e}),H([{row:a,col:e}]))},[F]),Xa=o.useCallback(a=>{if(!F&&!de)return;const i=a.target.closest("tr[data-row-index]");if(!i)return;const s=parseInt(i.dataset.rowIndex||"-1");if(!(s<0)){if(F&&z){Ye(s);const l=z.row,u=s,c=Math.min(l,u),d=Math.max(l,u),p=[];for(let g=c;g<=d;g++)g!==l&&p.push(g);va(p)}if(de&&Ee){const l=Ee.col,u=Ee.row,c=s,d=Math.min(u,c),p=Math.max(u,c),g=[];for(let n=d;n<=p;n++)g.push({row:n,col:l});H(g)}}},[F,z,de,Ee]),Ie=o.useCallback(()=>{var a;if(F&&z&&je!==null&&je!==z.row){const e=(a=f[z.row])==null?void 0:a[z.col],i=z.row,s=je,l=Math.min(i,s),u=Math.max(i,s);D(d=>{const p=[...d];for(let g=l;g<=u;g++)g!==i&&p[g]&&(p[g]={...p[g],[z.col]:Array.isArray(e)?[...e]:e});return p});const c=[];for(let d=l;d<=u;d++)c.push({row:d,col:z.col});H(c),N.success(r==="zh"?`已填充 ${Math.abs(s-i)} 行`:`Filled ${Math.abs(s-i)} rows`)}xa(!1),wa(null),Ye(null),va([]),Xe(!1),Ze(null)},[F,z,je,f,r]),Za=o.useCallback(a=>{const e=a.target.files;e&&(Array.from(e).forEach(i=>{i.type.startsWith("image/")&&I(i,ue.IMAGE,Fe.LOCAL,i.name).catch(s=>{console.warn("[BatchImageGeneration] Failed to add asset to library:",s)})}),Se.current&&(Se.current.value=""))},[I]),Qa=o.useCallback(a=>{let e=[];if(w.size>0?e=[...w]:_.length>0?e=[...new Set(_.map(i=>i.row))]:k&&(e=[k.row]),e.length===0){N.warning(r==="zh"?"请先选中要添加图片的行":"Please select a row first");return}D(i=>{const s=[...i];return e.forEach(l=>{s[l]&&!s[l].images.includes(a)&&(s[l]={...s[l],images:[...s[l].images,a]})}),s})},[w,_,k,r]),re=o.useCallback((a,e)=>{D(i=>{const s=[...i];return s[a]&&!s[a].images.includes(e)&&(s[a]={...s[a],images:[...s[a].images,e]}),s})},[]),et=o.useCallback((a,e)=>{D(i=>{const s=[...i];return s[a]&&(s[a]={...s[a],images:s[a].images.filter(l=>l!==e)}),s})},[]),at=o.useCallback(a=>{const e=a.target.files,i=oa.current;!e||e.length===0||i===null||(Array.from(e).forEach(s=>{if(!s.type.startsWith("image/"))return;I(s,ue.IMAGE,Fe.LOCAL,s.name).catch(u=>{console.warn("[BatchImageGeneration] Failed to add asset to library:",u)});const l=new FileReader;l.onload=u=>{var d;const c=(d=u.target)==null?void 0:d.result;re(i,c)},l.readAsDataURL(s)}),Re.current&&(Re.current.value=""),oa.current=null)},[re,I]),tt=o.useCallback(a=>{var e;oa.current=a,He(!0),(e=Re.current)==null||e.click()},[]),it=o.useCallback(a=>{ra(a),sa(!0)},[]),st=o.useCallback(a=>{na!==null&&(a.url&&re(na,a.url),sa(!1),ra(null))},[na,re]),nt=o.useCallback((a,e)=>{a.preventDefault(),a.dataTransfer.dropEffect="copy",Qe(e)},[]),rt=o.useCallback(a=>{const e=a.relatedTarget;(!e||!a.currentTarget.contains(e))&&Qe(null)},[]),ot=o.useCallback((a,e)=>{a.preventDefault(),Qe(null);const i=a.dataTransfer.getData("text/library-image");if(i){re(e,i),N.success(r==="zh"?`已添加图片到第 ${e+1} 行`:`Added image to row ${e+1}`);return}const s=a.dataTransfer.files;if(!s||s.length===0)return;let l=0;Array.from(s).forEach(u=>{if(!u.type.startsWith("image/"))return;I(u,ue.IMAGE,Fe.LOCAL,u.name).catch(d=>{console.warn("[BatchImageGeneration] Failed to add asset to library:",d)});const c=new FileReader;c.onload=d=>{var g;const p=(g=d.target)==null?void 0:g.result;re(e,p)},c.readAsDataURL(u),l++}),l>0&&N.success(r==="zh"?`已添加 ${l} 张图片到第 ${e+1} 行`:`Added ${l} images to row ${e+1}`)},[re,r,I]),lt=o.useCallback((a,e)=>{a.dataTransfer.setData("text/library-image",e),a.dataTransfer.effectAllowed="copy"},[]),ct=o.useCallback(a=>{const e=a.target.files;if(!e||e.length===0)return;const i=Array.from(e).filter(l=>l.type.startsWith("image/"));if(i.length===0){N.warning(r==="zh"?"请选择图片文件":"Please select image files");return}aa(i);const s=k?k.row+1:1;ya(Math.min(s,f.length)),ea(!0),ze.current&&(ze.current.value="")},[r,k,f.length]),dt=o.useCallback(async()=>{if(q.length===0)return;const a=Ct(`批量导入(${q.length}张)`),e=Y,i=q.length,s=Math.ceil(i/e),l=Q-1,u=[];for(const g of q){I(g,ue.IMAGE,Fe.LOCAL,g.name).catch(m=>{console.warn("[BatchImageGeneration] Failed to add asset to library:",m)});const n=await new Promise((m,b)=>{const h=new FileReader;h.onload=x=>{var S;return m((S=x.target)==null?void 0:S.result)},h.onerror=b,h.readAsDataURL(g)});u.push(n)}D(g=>{const n=[...g];let m=0,b=0;for(let h=0;h<s;h++){const x=l+h,S=[];for(let oe=0;oe<e&&m<i;oe++)S.push(u[m]),m++;x<n.length?n[x]={...n[x],images:[...n[x].images,...S]}:(n.push({id:T+b,prompt:"",size:R,images:S,count:1,taskIds:[]}),b++)}return n});const c=Math.min(s,f.length-l),d=Math.max(0,s-c);d>0&&ye(g=>g+d),aa([]),ea(!1),a();const p=r==="zh"?`已导入 ${i} 张图片,从第 ${Q} 行开始`:`Imported ${i} images starting from row ${Q}`;N.success(p)},[q,Y,Q,T,f.length,r,I,R]),ca=o.useCallback(()=>{aa([]),ea(!1)},[]),ut=o.useCallback(async()=>{try{const a=await ha(()=>import("./xlsx-CkFp8p6R.js"),[],import.meta.url),e=[{提示词:"一只可爱的橘猫在阳光下睡觉",尺寸:"1x1",数量:1},{提示词:"未来城市的夜景,霓虹灯闪烁",尺寸:"16x9",数量:2},{提示词:"古风美女,水墨画风格",尺寸:"3x4",数量:1},{提示词:"",尺寸:"1x1",数量:1},{提示词:"",尺寸:"1x1",数量:1}],i=a.utils.book_new(),s=a.utils.json_to_sheet(e);s["!cols"]=[{wch:60},{wch:10},{wch:8}],a.utils.book_append_sheet(i,s,"批量出图模板"),a.writeFile(i,"batch-image-template.xlsx"),N.success(r==="zh"?"模板下载成功,填写后可导入使用":"Template downloaded, fill and import to use")}catch(a){console.error("Excel template download error:",a),N.error(r==="zh"?"下载失败,请稍后重试":"Download failed, please try again")}},[r]),mt=o.useCallback(async a=>{var i;const e=(i=a.target.files)==null?void 0:i[0];if(e){try{const s=await ha(()=>import("./xlsx-CkFp8p6R.js"),[],import.meta.url),l=new FileReader;l.onload=u=>{var c;try{const d=new Uint8Array((c=u.target)==null?void 0:c.result),p=s.read(d,{type:"array"}),g=p.SheetNames[0],n=p.Sheets[g],m=s.utils.sheet_to_json(n);if(m.length===0){N.warning(r==="zh"?"Excel 文件为空":"Excel file is empty");return}const b=m.map((h,x)=>{const S=h.提示词||h.prompt||h.Prompt||"",oe=h.尺寸||h.size||h.Size||R,xt=parseInt(String(h.数量||h.count||h.Count||"1"))||1,Sa=h.参考图||h.images||h.Images||"",wt=Sa?Sa.split(`
|
|
2
|
+
`).map(ke=>ke.trim()).filter(ke=>ke.length>0&&!ke.startsWith("[")&&!ke.endsWith("]")):[];return{id:T+x,prompt:String(S).trim(),size:X.has(oe)?oe:R,images:wt,count:Math.max(1,xt),taskIds:[]}});D(h=>[...h,...b]),ye(h=>h+b.length),N.success(r==="zh"?`已导入 ${b.length} 行数据`:`Imported ${b.length} rows`)}catch(d){console.error("Excel import error:",d),N.error(r==="zh"?"导入失败,请检查文件格式":"Import failed, please check file format")}},l.readAsArrayBuffer(e)}catch(s){console.error("Excel library load error:",s),N.error(r==="zh"?"加载 Excel 处理库失败":"Failed to load Excel library")}_e.current&&(_e.current.value="")}},[R,T,r,X]),te=o.useCallback(a=>{if(a.taskIds.length===0)return{status:"idle",tasks:[],completedCount:0,failedCount:0};const e=Z.filter(c=>a.taskIds.includes(c.id)),i=e.filter(c=>c.status===G.COMPLETED).length,s=e.filter(c=>c.status===G.FAILED).length,l=e.filter(c=>c.status===G.PENDING||c.status===G.PROCESSING).length;let u="idle";return l>0?u="generating":s>0&&i>0?u="partial":s>0?u="failed":i>0&&(u="completed"),{status:u,tasks:e,completedCount:i,failedCount:s}},[Z]),gt=o.useCallback(async()=>{try{const a=await ha(()=>import("./xlsx-CkFp8p6R.js"),[],import.meta.url),e=32e3,i=n=>{const b=n.map((h,x)=>h.startsWith("data:")?`[本地图片${x+1}]`:h).join(`
|
|
3
3
|
`);return b.length>e?b.substring(0,e-20)+`
|
|
4
4
|
...[已截断]`:b},s=f.map(n=>{const m=te(n),b=m.tasks.filter(h=>{var x;return h.status===G.COMPLETED&&((x=h.result)==null?void 0:x.url)}).map(h=>h.result.url);return{提示词:n.prompt,尺寸:n.size,参考图:i(n.images),数量:n.count,预览图:i(b),状态:m.status==="idle"?"未生成":m.status==="generating"?"生成中":m.status==="completed"?"已完成":m.status==="failed"?"失败":m.status==="partial"?"部分完成":""}}),l=a.utils.book_new(),u=a.utils.json_to_sheet(s);u["!cols"]=[{wch:60},{wch:10},{wch:80},{wch:8},{wch:80},{wch:12}],a.utils.book_append_sheet(l,u,"批量出图数据");const c=new Date,d=`${c.getFullYear()}${String(c.getMonth()+1).padStart(2,"0")}${String(c.getDate()).padStart(2,"0")}`,p=`${String(c.getHours()).padStart(2,"0")}${String(c.getMinutes()).padStart(2,"0")}`,g=`batch-image-export_${d}_${p}.xlsx`;a.writeFile(l,g),N.success(r==="zh"?`已导出 ${f.length} 行数据`:`Exported ${f.length} rows`)}catch(a){console.error("Excel export error:",a),N.error(r==="zh"?"导出失败,请稍后重试":"Export failed, please try again")}},[f,te,r]),ht=o.useCallback(()=>{const a=[];if(f.forEach((e,i)=>{const{status:s}=te(e);(s==="failed"||s==="partial")&&a.push(i)}),a.length===0){N.info(r==="zh"?"没有失败的行":"No failed rows");return}W(new Set(a)),N.success(r==="zh"?`已选中 ${a.length} 个失败行`:`Selected ${a.length} failed rows`)},[f,te,r]),ft=o.useCallback(()=>{const a=new Set;f.forEach((e,i)=>{w.has(i)||a.add(i)}),W(a)},[f,w]),da=o.useCallback((a,e=0)=>{ja(Wt(a,"image"),e)},[ja]),Le=o.useCallback((a,e=!1)=>{W(i=>{const s=new Set(i);if(e&&Te.current!==null){const l=Math.min(Te.current,a),u=Math.max(Te.current,a);for(let c=l;c<=u;c++)s.add(c)}else s.has(a)?s.delete(a):s.add(a);return s}),Te.current=a},[]),pt=o.useCallback(()=>{w.size===f.length&&f.length>0?W(new Set):W(new Set(f.map((a,e)=>e)))},[f,w.size]),bt=o.useCallback(async()=>{const a=[...w].sort((i,s)=>i-s);if(a.length===0){N.warning(r==="zh"?"请先勾选要下载的行":"Please check rows to download");return}const e=[];if(a.forEach(i=>{const s=f[i];s&&s.taskIds.forEach((l,u)=>{var d;const c=Z.find(p=>p.id===l);(c==null?void 0:c.status)===G.COMPLETED&&((d=c.result)!=null&&d.url)&&e.push({url:c.result.url,filename:`row${i+1}_${u+1}_${s.prompt.slice(0,20).replace(/[^\w\u4e00-\u9fa5]/g,"_")}.png`})})}),e.length===0){N.warning(r==="zh"?"选中的行没有已生成的图片":"No generated images in selected rows");return}try{N.info(r==="zh"?"正在准备下载...":"Preparing download...");const i=new Date,s=`${i.getFullYear()}${String(i.getMonth()+1).padStart(2,"0")}${String(i.getDate()).padStart(2,"0")}`,l=`${String(i.getHours()).padStart(2,"0")}${String(i.getMinutes()).padStart(2,"0")}`,u=`aitu_images_${e.length}pics_${s}_${l}.zip`,c=e.map(p=>({url:p.url,type:"image",filename:p.filename})),d=await qt(c,u);d.openedCount>0&&d.downloadedCount===0?N.success(r==="zh"?d.openedCount>1?`已打开 ${d.openedCount} 个链接,请在新标签页下载`:"资源不支持直接下载,已打开链接":d.openedCount>1?`Opened ${d.openedCount} links for download`:"Opened link for download"):N.success(r==="zh"?"下载成功":"Download complete")}catch(i){console.error("Download failed:",i),N.error(r==="zh"?"下载失败":"Download failed")}},[w,f,Z,r]),ua=o.useCallback(async a=>{if(Je(!0),!St("image",K||V)&&(U(null),ne(null),!await zt())){Je(!1),N.warning(r==="zh"?"需要 API Key 才能生成图片":"API Key is required to generate images");return}const e=Date.now();let i=0,s=0;for(const{task:l,rowIndex:u}of a){const c=l.count||1,d=`batch_${l.id}_${e}`,p=l.size||R,g=p==="auto"?void 0:p,n=l.images.map((b,h)=>({type:"url",url:b,name:`reference_${h+1}`})),m=[];for(let b=0;b<c;b++){i++;const h={prompt:l.prompt.trim(),aspectRatio:p,size:g,model:V||_a("image").modelId||"gemini-2.5-flash-image-vip",modelRef:K||null,uploadedImages:n,batchId:d,batchIndex:b+1,batchTotal:c,globalIndex:i,autoInsertToCanvas:!0},x=me(h,_t.IMAGE);x&&(s++,m.push(x.id))}m.length>0&&D(b=>{const h=[...b];return h[u]&&(h[u]={...h[u],taskIds:[...h[u].taskIds,...m]}),h})}Je(!1),s>0&&N.success(r==="zh"?`已提交 ${s} 个任务到队列`:`Submitted ${s} tasks to queue`)},[me,R,r,V,K,D,U,ne]),Nt=o.useCallback(async()=>{const a=[...w].sort((c,d)=>c-d);if(a.length===0){N.warning(r==="zh"?"请先勾选要生成的行":"Please check rows to generate");return}const e=a.map(c=>({task:f[c],rowIndex:c})).filter(({task:c})=>c&&c.prompt&&c.prompt.trim()!=="");if(e.length===0){N.warning(r==="zh"?"选中的行没有填写提示词":"Selected rows have no prompts");return}const i=e.filter(({task:c})=>te(c).status==="generating"),s=e.filter(({task:c})=>(c.count||1)>=100),l=e.reduce((c,{task:d})=>c+(d.count||1),0),u=l>=100;if(i.length>0||s.length>0||u){const c=[];if(i.length>0){const g=i.map(({rowIndex:n})=>n+1).join("、");c.push(r==="zh"?`第 ${g} 行正在生成中`:`Row ${g} is generating`)}if(s.length>0){const g=s.map(({task:n,rowIndex:m})=>r==="zh"?`第 ${m+1} 行数量为 ${n.count}`:`Row ${m+1} count is ${n.count}`).join("、");c.push(g)}u&&c.push(r==="zh"?`总任务数为 ${l}`:`Total task count is ${l}`);const d=c.join(r==="zh"?";":"; "),p=r==="zh"?`${d},是否继续?`:`${d}. Continue?`;se({title:r==="zh"?"生成提醒":"Generation Warning",description:p,confirmText:r==="zh"?"继续生成":"Continue",cancelText:r==="zh"?"取消":"Cancel",confirmTheme:"warning"}).then(g=>{g&&ua(e)});return}ua(e)},[se,f,w,r,ua,te]);o.useEffect(()=>{const a=e=>{if(!k||L)return;const{row:i,col:s}=k,l=E.indexOf(s);if(e.key.length===1&&!e.ctrlKey&&!e.metaKey&&!e.altKey&&E.includes(s)&&s!=="images"&&s!=="size"){if(e.preventDefault(),s==="count"){const c=parseInt(e.key);isNaN(c)?y(i,s,0):y(i,s,c)}else s==="prompt"&&y(i,s,e.key);U({row:i,col:s}),window.__cellEditSelectAll=!1;return}if((e.ctrlKey||e.metaKey)&&e.key==="z"&&!e.shiftKey){e.preventDefault(),Va();return}if((e.ctrlKey||e.metaKey)&&(e.key==="y"||e.key==="z"&&e.shiftKey)){e.preventDefault(),Ca();return}if((e.ctrlKey||e.metaKey)&&e.key==="c"){e.preventDefault();const d=[..._].sort((p,g)=>p.row-g.row).map(p=>{var n;const g=(n=f[p.row])==null?void 0:n[p.col];return{row:p.row,col:p.col,value:g}});if(d.length>0){const p=d.map(g=>g.col==="images"?JSON.stringify(g.value):String(g.value??"")).join(`
|
|
5
5
|
`);Bt(p).then(()=>{window.__copiedCells=d})}return}if((e.ctrlKey||e.metaKey)&&e.key==="v"){e.preventDefault();const c=_.length>0?_:[{row:i,col:s}],d=window.__copiedCells;if(d&&d.length>0)if(d.length===1){const p=d[0];c.forEach(g=>{g.col===p.col&&y(g.row,g.col,p.value)})}else d.forEach((p,g)=>{const n=i+g;n<f.length&&y(n,s,p.value)});else Jt().then(p=>{const g=p.split(`
|
|
6
|
-
`).filter(n=>n.trim());if(g.length===1||c.length>1){const n=g[0];c.forEach(m=>{if(m.col==="prompt")y(m.row,m.col,n);else if(m.col==="count"){const b=parseInt(n);!isNaN(b)&&b>=1&&y(m.row,m.col,b)}else m.col==="size"&&Y.has(n)&&y(m.row,m.col,n)})}else g.forEach((n,m)=>{const b=i+m;if(!(b>=f.length))if(s==="prompt")y(b,s,n);else if(s==="count"){const h=parseInt(n);!isNaN(h)&&h>=1&&y(b,s,h)}else s==="size"&&Y.has(n)&&y(b,s,n)})});return}switch(e.key){case"ArrowUp":e.preventDefault(),i>0&&v(i-1,s);break;case"ArrowDown":e.preventDefault(),i<f.length-1&&v(i+1,s);break;case"ArrowLeft":e.preventDefault(),l>0&&v(i,E[l-1]);break;case"ArrowRight":e.preventDefault(),l<E.length-1&&v(i,E[l+1]);break;case"Tab":e.preventDefault(),e.shiftKey?l>0?v(i,E[l-1]):i>0&&v(i-1,E[E.length-1]):l<E.length-1?v(i,E[l+1]):i<f.length-1&&v(i+1,E[0]);break;case"Enter":e.preventDefault(),s!=="images"&&Me(i,s);break;case"Escape":e.preventDefault(),U(null);break;case"Delete":case"Backspace":{e.preventDefault(),(_.length>0?_:[{row:i,col:s}]).forEach(d=>{d.col==="prompt"?y(d.row,d.col,""):d.col==="count"?y(d.row,d.col,0):d.col==="images"?y(d.row,d.col,[]):d.col==="size"&&y(d.row,d.col,R)});break}}};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[k,R,L,f,_,v,Me,y,Va,Ca,Y]),o.useEffect(()=>{const a=()=>{(F||de)&&Ie()};return document.addEventListener("mouseup",a),()=>document.removeEventListener("mouseup",a)},[F,de,Ie]),o.useEffect(()=>{if(!L||L.col!=="size")return;const a=e=>{e.target.closest(".custom-size-dropdown")||U(null)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[L]);const we=(a,e,i)=>{var p,g;const s=(L==null?void 0:L.row)===e&&(L==null?void 0:L.col)===i,l=(k==null?void 0:k.row)===e&&(k==null?void 0:k.col)===i,u=_.some(n=>n.row===e&&n.col===i),c=F&&(z==null?void 0:z.col)===i&&ka.includes(e),d=`excel-cell cell-${i} ${l?"active":""} ${u?"selected":""} ${c?"filling":""}`;switch(i){case"prompt":return t.jsxDEV("div",{className:d,onMouseDown:n=>{n.target.classList.contains("fill-handle")||s||n.button===0&&!n.shiftKey&&la(e,i)},onClick:n=>{s||xe(n,e,i)},onDoubleClick:()=>Me(e,i),children:[s?t.jsxDEV("textarea",{className:"cell-textarea",autoFocus:!0,value:a.prompt,placeholder:r==="zh"?"输入提示词...":"Enter prompt...",onChange:n=>{y(e,i,n.target.value)},onFocus:n=>{const m=n.target.value.length;n.target.setSelectionRange(m,m),n.target.style.height="auto",n.target.style.height=n.target.scrollHeight+"px"},onInput:n=>{const m=n.target;m.style.height="auto",m.style.height=m.scrollHeight+"px"},onBlur:()=>U(null),onKeyDown:n=>{if(n.key==="Escape")U(null);else if(n.key==="Enter"&&!n.shiftKey)n.preventDefault(),U(null),e<f.length-1&&v(e+1,i);else if(n.key==="Tab"){n.preventDefault(),U(null);const m=E.indexOf(i);n.shiftKey?m>0?v(e,E[m-1]):e>0&&v(e-1,E[E.length-1]):m<E.length-1?v(e,E[m+1]):e<f.length-1&&v(e+1,E[0])}}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2248,columnNumber:15},void 0):t.jsxDEV("span",{className:"cell-text",children:a.prompt||""},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2310,columnNumber:15},void 0),l&&t.jsxDEV("div",{className:"fill-handle",onMouseDown:n=>{n.stopPropagation(),Ae(e,i)}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2313,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2227,columnNumber:11},void 0);case"size":return t.jsxDEV("div",{className:d,onMouseDown:n=>{n.target.classList.contains("fill-handle")||n.button===0&&!n.shiftKey&&la(e,i)},onClick:n=>xe(n,e,i),onDoubleClick:()=>{v(e,i),U({row:e,col:i})},children:[s?t.jsxDEV("div",{className:"custom-size-dropdown",children:[t.jsxDEV("div",{className:"dropdown-trigger",children:[t.jsxDEV("span",{children:fa[a.size]||a.size},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2346,columnNumber:19},void 0),t.jsxDEV("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:t.jsxDEV("path",{d:"m6 9 6 6 6-6"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2357,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2347,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2345,columnNumber:17},void 0),t.jsxDEV("div",{className:"dropdown-menu",children:be.map(n=>t.jsxDEV("div",{className:`dropdown-item ${a.size===n?"selected":""}`,onMouseDown:m=>{m.preventDefault(),m.stopPropagation(),y(e,i,n),U(null)},children:[a.size===n&&t.jsxDEV("span",{className:"check-icon",children:"✓"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2375,columnNumber:25},void 0),fa[n]||n]},n,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2362,columnNumber:21},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2360,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2344,columnNumber:15},void 0):t.jsxDEV("span",{className:"cell-text",children:fa[a.size]||a.size},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2383,columnNumber:15},void 0),l&&t.jsxDEV("div",{className:"fill-handle",onMouseDown:n=>{n.stopPropagation(),Ae(e,i)}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2388,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2326,columnNumber:11},void 0);case"images":return t.jsxDEV("div",{className:d,onClick:n=>xe(n,e,i),children:[t.jsxDEV("div",{className:"image-cell-content",children:[a.images.map((n,m)=>t.jsxDEV("div",{className:"cell-image-thumb",children:[t.jsxDEV("img",{src:n,alt:""},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2408,columnNumber:19},void 0),t.jsxDEV("button",{className:"remove-btn",onClick:b=>{b.stopPropagation(),et(e,n)},children:"×"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2409,columnNumber:19},void 0)]},m,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2407,columnNumber:17},void 0)),t.jsxDEV("div",{className:"add-image-buttons",children:[t.jsxDEV(j,{variant:"text",shape:"square",size:"small",onClick:n=>{n.stopPropagation(),v(e,i),tt(e)},title:r==="zh"?"上传图片":"Upload image",icon:t.jsxDEV(Aa,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2431,columnNumber:25},void 0),className:"add-image-btn","data-track":"batch_row_upload_image_click"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2421,columnNumber:17},void 0),t.jsxDEV(j,{variant:"text",shape:"square",size:"small",onClick:n=>{n.stopPropagation(),v(e,i),it(e)},title:r==="zh"?"从素材库选择":"Select from library",icon:t.jsxDEV(Ma,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2447,columnNumber:25},void 0),className:"add-image-btn","data-track":"batch_row_select_from_library_click"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2435,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2420,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2405,columnNumber:13},void 0),l&&t.jsxDEV("div",{className:"fill-handle",onMouseDown:n=>{n.stopPropagation(),Ae(e,i)}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2454,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2401,columnNumber:11},void 0);case"count":return t.jsxDEV("div",{className:d,onMouseDown:n=>{n.target.classList.contains("fill-handle")||s||n.button===0&&!n.shiftKey&&la(e,i)},onClick:n=>{s||xe(n,e,i)},onDoubleClick:()=>Me(e,i),children:[s?t.jsxDEV("input",{type:"number",autoFocus:!0,min:1,max:10,value:a.count===0?"":a.count,className:"cell-count-input",onChange:n=>{const m=n.target.value;if(m===""){y(e,i,0);return}const b=parseInt(m);isNaN(b)||y(e,i,b)},onBlur:()=>{!a.count||a.count<1?y(e,i,1):a.count>10&&y(e,i,10),U(null)},onKeyDown:n=>{n.key==="Escape"?U(null):n.key==="Enter"&&(U(null),e<f.length-1&&v(e+1,i))}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2486,columnNumber:15},void 0):t.jsxDEV("span",{className:"cell-text",children:a.count},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2524,columnNumber:15},void 0),l&&t.jsxDEV("div",{className:"fill-handle",onMouseDown:n=>{n.stopPropagation(),Ae(e,i)}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2527,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2467,columnNumber:11},void 0);case"preview":{const n=te(a);return t.jsxDEV("div",{className:`${d} preview-cell preview-${n.status}`,onClick:m=>{n.status==="completed"||n.status==="partial"?ia(e):n.status==="failed"?w.has(e)||Le(e):xe(m,e,i)},children:[n.status==="idle"&&t.jsxDEV("span",{className:"preview-idle",children:"-"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2561,columnNumber:15},void 0),(n.status==="generating"||n.status==="completed")&&(()=>{const m=n.tasks.filter(x=>{var S;return x.status===G.COMPLETED&&((S=x.result)==null?void 0:S.url)}).map(x=>x.result.url),b=n.status==="generating",h=n.tasks.filter(x=>x.status===G.PENDING||x.status===G.PROCESSING).length;return m.length===0&&b?t.jsxDEV("span",{className:"preview-generating",children:[t.jsxDEV("span",{className:"loading-spinner"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2582,columnNumber:23},void 0),r==="zh"?"生成中...":"Generating..."]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2581,columnNumber:21},void 0):t.jsxDEV("div",{className:"preview-images",children:[m.slice(0,b?2:3).map((x,S)=>t.jsxDEV("div",{className:"preview-thumb clickable",onClick:oe=>{oe.stopPropagation(),da(m,S)},title:r==="zh"?"点击放大,左右切换":"Click to enlarge, swipe to navigate",children:t.jsxDEV("img",{src:x,alt:`Result ${S+1}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2607,columnNumber:27},void 0)},S,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2594,columnNumber:25},void 0)),b&&t.jsxDEV("span",{className:"preview-generating-inline",title:r==="zh"?`还有 ${h} 张生成中`:`${h} more generating`,children:[t.jsxDEV("span",{className:"loading-spinner"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2620,columnNumber:25},void 0),"+",h]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2612,columnNumber:23},void 0),!b&&n.completedCount>3&&t.jsxDEV("span",{className:"preview-more clickable",onClick:x=>{x.stopPropagation(),ia(e)},title:r==="zh"?"查看全部图片":"View all images",children:["+",n.completedCount-3]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2625,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2590,columnNumber:19},void 0)})(),n.status==="failed"&&((p=n.tasks[0])==null?void 0:p.error)&&t.jsxDEV("div",{className:"preview-error",children:[t.jsxDEV("span",{className:"preview-error-message",children:n.tasks[0].error.message},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2643,columnNumber:17},void 0),((g=n.tasks[0].error.details)==null?void 0:g.originalError)&&t.jsxDEV(M,{content:t.jsxDEV("div",{className:"error-details-tooltip",children:[t.jsxDEV("div",{className:"error-details-title",children:"原始错误信息:"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2650,columnNumber:25},void 0),t.jsxDEV("div",{className:"error-details-content",children:n.tasks[0].error.details.originalError},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2651,columnNumber:25},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2649,columnNumber:23},void 0),theme:"light",placement:"bottom",showArrow:!1,children:t.jsxDEV("span",{className:"preview-error-details-link",children:"[详情]"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2660,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2647,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2642,columnNumber:15},void 0),n.status==="partial"&&(()=>{const m=n.tasks.filter(b=>{var h;return b.status===G.COMPLETED&&((h=b.result)==null?void 0:h.url)}).map(b=>b.result.url);return t.jsxDEV("div",{className:"preview-partial",children:[t.jsxDEV("div",{className:"preview-images",children:m.slice(0,2).map((b,h)=>t.jsxDEV("div",{className:"preview-thumb clickable",onClick:x=>{x.stopPropagation(),da(m,h)},title:r==="zh"?"点击放大,左右切换":"Click to enlarge, swipe to navigate",children:t.jsxDEV("img",{src:b,alt:`Result ${h+1}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2689,columnNumber:27},void 0)},h,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2676,columnNumber:25},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2674,columnNumber:21},void 0),t.jsxDEV("span",{className:"preview-partial-info",children:["⚠️ ",n.completedCount,"/",n.tasks.length]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2693,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2673,columnNumber:19},void 0)})()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2541,columnNumber:11},void 0)}default:return null}};return t.jsxDEV("div",{className:"batch-image-generation",children:[t.jsxDEV("div",{className:"batch-main-content",children:[t.jsxDEV("div",{className:"batch-toolbar",children:[t.jsxDEV("input",{ref:ze,type:"file",accept:"image/*",multiple:!0,onChange:ct,style:{display:"none"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2714,columnNumber:11},void 0),t.jsxDEV("input",{ref:Re,type:"file",accept:"image/*",multiple:!0,onChange:at,style:{display:"none"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2722,columnNumber:11},void 0),t.jsxDEV("input",{ref:_e,type:"file",accept:".xlsx,.xls,.csv",onChange:mt,style:{display:"none"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2730,columnNumber:11},void 0),t.jsxDEV("div",{className:"toolbar-left",children:[t.jsxDEV(M,{content:r==="zh"?"下载模板":"Download Template",theme:"light",children:t.jsxDEV(j,{variant:"outline",theme:"default",icon:t.jsxDEV(Ta,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2747,columnNumber:23},void 0),onClick:ut,"data-track":"batch_download_template_click"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2744,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2740,columnNumber:13},void 0),t.jsxDEV(M,{content:r==="zh"?"导入 Excel":"Import Excel",theme:"light",children:t.jsxDEV(j,{variant:"outline",theme:"default",icon:t.jsxDEV(Rt,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2759,columnNumber:23},void 0),onClick:()=>{var a;return(a=_e.current)==null?void 0:a.click()},"data-track":"batch_import_excel_click"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2756,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2752,columnNumber:13},void 0),t.jsxDEV(M,{content:r==="zh"?"批量导入图片":"Batch Import Images",theme:"light",children:t.jsxDEV(j,{variant:"outline",theme:"default",icon:t.jsxDEV(Tt,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2773,columnNumber:23},void 0),onClick:()=>{var a;return(a=ze.current)==null?void 0:a.click()},"data-track":"batch_import_images_click","data-track-params":JSON.stringify({source:"toolbar"})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2770,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2764,columnNumber:13},void 0),t.jsxDEV("span",{className:"toolbar-divider"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2780,columnNumber:13},void 0),t.jsxDEV(M,{content:r==="zh"?"选择失败行":"Select Failed Rows",theme:"light",children:t.jsxDEV(j,{variant:"text",theme:"default",icon:t.jsxDEV(Mt,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2790,columnNumber:23},void 0),onClick:ht,"data-track":"batch_select_failed_click"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2787,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2783,columnNumber:13},void 0),t.jsxDEV(M,{content:r==="zh"?"反选":"Invert Selection",theme:"light",children:t.jsxDEV(j,{variant:"text",theme:"default",icon:t.jsxDEV($t,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2802,columnNumber:23},void 0),onClick:ft,"data-track":"batch_invert_selection_click"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2799,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2795,columnNumber:13},void 0),t.jsxDEV("span",{className:"toolbar-divider"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2808,columnNumber:13},void 0),t.jsxDEV(j,{variant:"text",theme:"default",icon:t.jsxDEV(At,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2814,columnNumber:21},void 0),onClick:Xa,className:"batch-delete-btn","data-track":"batch_delete_selected_click","data-track-params":JSON.stringify({count:w.size}),children:r==="zh"?"删除选中":"Delete Selected"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2811,columnNumber:13},void 0),t.jsxDEV("span",{className:"toolbar-divider"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2823,columnNumber:13},void 0),t.jsxDEV(j,{variant:"outline",theme:"default",icon:t.jsxDEV(Ta,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2829,columnNumber:21},void 0),onClick:bt,className:"batch-download-btn","data-track":"batch_download_images_click","data-track-params":JSON.stringify({count:w.size}),children:r==="zh"?"下载选中图片":"Download"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2826,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2738,columnNumber:11},void 0),t.jsxDEV("div",{className:"toolbar-right",children:[t.jsxDEV("div",{className:"model-selector-wrapper","data-track":"batch_model_select",children:t.jsxDEV(It,{selectedModel:V,selectedSelectionKey:ga(V,K),onSelect:a=>{Ue(a),Ve(null),$==null||$(a),J==null||J(null)},onSelectModel:a=>{Ue(a.id);const e=Oe(a);Ve(e),$==null||$(a.id),J==null||J(e)},language:r,models:ae,placement:"down",variant:"form",disabled:Be},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2845,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2841,columnNumber:13},void 0),t.jsxDEV(j,{theme:"primary",onClick:Nt,loading:Be,className:"batch-generate-btn","data-track":"batch_generate_click","data-track-params":JSON.stringify({selectedRows:w.size,model:V}),children:Be?r==="zh"?"提交中...":"Submitting...":r==="zh"?"生成选中行":"Generate Selected"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2872,columnNumber:13},void 0),t.jsxDEV("span",{className:"toolbar-divider"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2892,columnNumber:13},void 0),!fe&&!Na&&t.jsxDEV(M,{content:r==="zh"?"显示素材库":"Show Library",theme:"light",children:t.jsxDEV(j,{variant:"outline",theme:"default",icon:t.jsxDEV(Ma,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2902,columnNumber:25},void 0),onClick:()=>He(!0),"data-track":"batch_library_show_click"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2899,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2895,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2839,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2712,columnNumber:9},void 0),t.jsxDEV("div",{className:`excel-table-container ${F?"is-filling":""} ${de?"is-selecting":""}`,onMouseMove:Ya,onMouseUp:Ie,onMouseLeave:Ie,children:[t.jsxDEV("table",{className:"excel-table",children:[t.jsxDEV("thead",{children:t.jsxDEV("tr",{children:[t.jsxDEV("th",{className:"col-checkbox",children:t.jsxDEV(M,{content:Pa||(r==="zh"?"全选/取消全选":"Select All / Deselect All"),theme:"light",showArrow:!1,visible:Oa,onVisibleChange:a=>We(a),children:t.jsxDEV("div",{className:"checkbox-wrapper",children:t.jsxDEV($a,{checked:f.length>0&&w.size===f.length,indeterminate:w.size>0&&w.size<f.length,onChange:pt},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2939,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2938,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2924,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2923,columnNumber:17},void 0),t.jsxDEV("th",{className:"row-number",children:"#"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2952,columnNumber:17},void 0),t.jsxDEV("th",{className:"col-prompt",children:t.jsxDEV("div",{className:"th-content",children:[r==="zh"?"提示词":"Prompt",t.jsxDEV(M,{content:r==="zh"?"向下填充":"Fill down",theme:"light",children:t.jsxDEV(j,{variant:"text",shape:"circle",size:"small",icon:t.jsxDEV(Ke,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2964,columnNumber:31},void 0),className:"column-fill-btn",onClick:()=>$e("prompt"),"data-track":"batch_fill_column_click","data-track-params":JSON.stringify({column:"prompt"})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2960,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2956,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2954,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2953,columnNumber:17},void 0),t.jsxDEV("th",{className:"col-size",children:t.jsxDEV("div",{className:"th-content",children:[r==="zh"?"尺寸":"Size",t.jsxDEV(M,{content:r==="zh"?"向下填充":"Fill down",theme:"light",children:t.jsxDEV(j,{variant:"text",shape:"circle",size:"small",icon:t.jsxDEV(Ke,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2984,columnNumber:31},void 0),className:"column-fill-btn",onClick:()=>$e("size"),"data-track":"batch_fill_column_click","data-track-params":JSON.stringify({column:"size"})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2980,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2976,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2974,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2973,columnNumber:17},void 0),t.jsxDEV("th",{className:"col-images",children:t.jsxDEV("div",{className:"th-content",children:[r==="zh"?"参考图片":"Ref Images",t.jsxDEV(M,{content:r==="zh"?"向下填充":"Fill down",theme:"light",children:t.jsxDEV(j,{variant:"text",shape:"circle",size:"small",icon:t.jsxDEV(Ke,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3004,columnNumber:31},void 0),className:"column-fill-btn",onClick:()=>$e("images"),"data-track":"batch_fill_column_click","data-track-params":JSON.stringify({column:"images"})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3e3,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2996,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2994,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2993,columnNumber:17},void 0),t.jsxDEV("th",{className:"col-count",children:t.jsxDEV("div",{className:"th-content",children:[r==="zh"?"数量":"Count",t.jsxDEV(M,{content:r==="zh"?"向下填充":"Fill down",theme:"light",children:t.jsxDEV(j,{variant:"text",shape:"circle",size:"small",icon:t.jsxDEV(Ke,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3024,columnNumber:31},void 0),className:"column-fill-btn",onClick:()=>$e("count"),"data-track":"batch_fill_column_click","data-track-params":JSON.stringify({column:"count"})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3020,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3016,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3014,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3013,columnNumber:17},void 0),t.jsxDEV("th",{className:"col-preview",children:t.jsxDEV("div",{className:"th-content",children:r==="zh"?"预览":"Preview"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3034,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3033,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2922,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2921,columnNumber:13},void 0),t.jsxDEV("tbody",{children:f.map((a,e)=>t.jsxDEV("tr",{"data-row-index":e,className:`${w.has(e)?"row-selected":""} ${Fa===e?"row-drag-over":""} ${ka.includes(e)?"fill-preview":""}`,onDragOver:i=>nt(i,e),onDragLeave:rt,onDrop:i=>ot(i,e),children:[t.jsxDEV("td",{className:"col-checkbox",onClick:i=>{Le(e,i.shiftKey)},children:t.jsxDEV("div",{className:"checkbox-wrapper",onClick:i=>{i.stopPropagation(),Le(e,i.shiftKey)},onMouseEnter:()=>w.size>0&&We(!0),onMouseLeave:()=>We(!1),children:t.jsxDEV($a,{checked:w.has(e)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3072,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3060,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3054,columnNumber:19},void 0),t.jsxDEV("td",{className:"row-number",onClick:i=>Le(e,i.shiftKey),style:{cursor:"pointer"},children:e+1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3075,columnNumber:19},void 0),t.jsxDEV("td",{children:we(a,e,"prompt")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3082,columnNumber:19},void 0),t.jsxDEV("td",{children:we(a,e,"size")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3083,columnNumber:19},void 0),t.jsxDEV("td",{children:we(a,e,"images")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3084,columnNumber:19},void 0),t.jsxDEV("td",{children:we(a,e,"count")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3085,columnNumber:19},void 0),t.jsxDEV("td",{children:we(a,e,"preview")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3086,columnNumber:19},void 0)]},a.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3042,columnNumber:17},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3040,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2920,columnNumber:11},void 0),t.jsxDEV("div",{className:"add-rows-section",children:[t.jsxDEV(j,{variant:"dashed",shape:"circle",onClick:()=>Ce(!0),title:r==="zh"?"添加行":"Add Rows",icon:t.jsxDEV(Lt,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3099,columnNumber:21},void 0),className:"add-rows-btn","data-track":"batch_add_rows_click"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3094,columnNumber:13},void 0),t.jsxDEV(j,{variant:"outline",theme:"default",icon:t.jsxDEV(Pt,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3106,columnNumber:21},void 0),onClick:gt,className:"export-excel-btn","data-track":"batch_export_excel_click","data-track-params":JSON.stringify({rowCount:f.length}),children:r==="zh"?"导出Excel":"Export Excel"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3103,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3093,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2912,columnNumber:9},void 0),t.jsxDEV("p",{className:"hint-text",children:r==="zh"?"提示:Enter 编辑/确认 | Tab 移动 | Ctrl+Z 撤销 | Ctrl+Y 重做 | 拖拽图片到行":"Tip: Enter to edit/confirm | Tab to move | Ctrl+Z undo | Ctrl+Y redo | Drag images to rows"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3117,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2710,columnNumber:7},void 0),!fe&&t.jsxDEV("div",{className:`image-library-sidebar ${Na?"":"hidden"}`,children:[t.jsxDEV("div",{className:"library-header",children:[t.jsxDEV("h3",{children:r==="zh"?"素材库":"Library"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3130,columnNumber:13},void 0),t.jsxDEV(j,{variant:"text",shape:"square",size:"small",className:"close-btn",onClick:()=>He(!1),icon:t.jsxDEV(Ot,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3137,columnNumber:21},void 0),"data-track":"batch_library_close_click"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3131,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3129,columnNumber:11},void 0),t.jsxDEV("div",{className:"library-content",children:[t.jsxDEV("div",{className:"upload-section",children:[t.jsxDEV("input",{ref:Se,type:"file",accept:"image/*",multiple:!0,onChange:Za,style:{display:"none"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3143,columnNumber:15},void 0),t.jsxDEV(j,{block:!0,theme:"default",variant:"outline",icon:t.jsxDEV(Aa,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3155,columnNumber:23},void 0),onClick:()=>{var a;return(a=Se.current)==null?void 0:a.click()},"data-track":"batch_library_upload_click",children:r==="zh"?"上传图片":"Upload"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3151,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3142,columnNumber:13},void 0),t.jsxDEV("div",{className:"library-grid",children:ve.length===0?t.jsxDEV("div",{className:"empty-library",children:r==="zh"?"暂无图片,请上传":"No images, please upload"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3164,columnNumber:17},void 0):ve.map(a=>t.jsxDEV("div",{className:"library-image",onClick:()=>Qa(a.url),draggable:!0,onDragStart:e=>lt(e,a.url),title:r==="zh"?"点击添加到选中行,或拖拽到指定行":"Click to add to selected rows, or drag to a specific row","data-track":"batch_library_image_click",children:t.jsxDEV("img",{src:a.url,alt:a.name,draggable:!1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3186,columnNumber:21},void 0)},a.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3171,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3162,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3141,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3126,columnNumber:9},void 0),Ga&&t.jsxDEV("div",{className:"batch-import-modal-overlay",onClick:ca,children:t.jsxDEV("div",{className:"batch-import-modal",onClick:a=>a.stopPropagation(),children:[t.jsxDEV("div",{className:"modal-header",children:[t.jsxDEV("h3",{children:r==="zh"?"批量导入图片":"Batch Import Images"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3203,columnNumber:15},void 0),t.jsxDEV("button",{className:"close-btn",onClick:ca,children:"×"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3206,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3202,columnNumber:13},void 0),t.jsxDEV("div",{className:"modal-body",children:[t.jsxDEV("p",{className:"import-info",children:r==="zh"?`已选择 ${q.length} 张图片`:`${q.length} images selected`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3211,columnNumber:15},void 0),t.jsxDEV("div",{className:"import-settings-row",children:[t.jsxDEV("div",{className:"import-setting-item",children:[t.jsxDEV("label",{children:r==="zh"?"从第几行开始:":"Start from row:"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3219,columnNumber:19},void 0),t.jsxDEV("input",{type:"number",min:1,max:f.length+Math.ceil(q.length/X),value:Q,onChange:a=>{const e=Math.max(1,parseInt(a.target.value)||1);ya(e)},className:"start-row-input"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3222,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3218,columnNumber:17},void 0),t.jsxDEV("div",{className:"import-setting-item",children:[t.jsxDEV("label",{children:r==="zh"?"每行图片数:":"Images per row:"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3239,columnNumber:19},void 0),t.jsxDEV("div",{className:"per-row-options",children:[1,2,3,4,5].map(a=>t.jsxDEV("button",{className:`per-row-btn ${X===a?"active":""}`,onClick:()=>Ka(a),children:a},a,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3244,columnNumber:23},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3242,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3238,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3217,columnNumber:15},void 0),t.jsxDEV("p",{className:"import-preview",children:r==="zh"?`从第 ${Q} 行开始,填充 ${Math.ceil(q.length/X)} 行,每行 ${X} 张图片`:`Starting from row ${Q}, filling ${Math.ceil(q.length/X)} rows with ${X} image(s) each`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3258,columnNumber:15},void 0),t.jsxDEV("div",{className:"import-preview-grid",children:[ta.map((a,e)=>t.jsxDEV("div",{className:"preview-item",children:t.jsxDEV("img",{src:a,alt:""},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3272,columnNumber:21},void 0)},e,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3271,columnNumber:19},void 0)),q.length>12&&t.jsxDEV("div",{className:"preview-more",children:["+",q.length-12]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3276,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3269,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3210,columnNumber:13},void 0),t.jsxDEV("div",{className:"modal-footer",children:[t.jsxDEV(j,{variant:"outline",theme:"default",onClick:ca,"data-track":"batch_import_modal_cancel_click",children:r==="zh"?"取消":"Cancel"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3283,columnNumber:15},void 0),t.jsxDEV(j,{theme:"default",variant:"outline",onClick:dt,"data-track":"batch_import_modal_confirm_click","data-track-params":JSON.stringify({imageCount:q.length,imagesPerRow:X,startRow:Q}),children:r==="zh"?"确认导入":"Import"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3291,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3282,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3198,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3197,columnNumber:9},void 0),t.jsxDEV(Ft,{...Ba},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3310,columnNumber:7},void 0),t.jsxDEV(Ia,{visible:Ja,onClose:()=>Ce(!1),header:r==="zh"?"添加行":"Add Rows",confirmBtn:{content:r==="zh"?"添加":"Add",theme:"default",variant:"outline",onClick:()=>{Wa(qe),Ce(!1),N.success(r==="zh"?`已添加 ${qe} 行`:`Added ${qe} rows`)}},cancelBtn:{content:r==="zh"?"取消":"Cancel",onClick:()=>Ce(!1)},width:360,className:"add-rows-dialog",destroyOnClose:!0,children:t.jsxDEV("div",{className:"add-rows-content",children:[t.jsxDEV("label",{children:r==="zh"?"添加行数:":"Number of rows:"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3340,columnNumber:11},void 0),t.jsxDEV("input",{type:"number",min:1,max:100,value:qe,onChange:a=>Ha(Math.max(1,Math.min(100,parseInt(a.target.value)||1))),className:"add-rows-input",autoFocus:!0},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3341,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3339,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3313,columnNumber:7},void 0),t.jsxDEV(Ia,{visible:Ne!==null,onClose:()=>ia(null),header:r==="zh"?`第 ${(Ne??0)+1} 行生成结果`:`Row ${(Ne??0)+1} Results`,footer:null,width:"70vw",className:"row-gallery-dialog",destroyOnClose:!0,children:Ne!==null&&(()=>{const a=f[Ne];if(!a)return null;const i=te(a).tasks.filter(l=>{var u;return l.status===G.COMPLETED&&((u=l.result)==null?void 0:u.url)}),s=i.map(l=>l.result.url);return t.jsxDEV("div",{className:"row-gallery-content",children:[t.jsxDEV("div",{className:"gallery-grid",children:i.map((l,u)=>t.jsxDEV("div",{className:"gallery-item",onClick:()=>da(s,u),children:[t.jsxDEV("img",{src:l.result.url,alt:`Result ${u+1}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3390,columnNumber:23},void 0),t.jsxDEV("span",{className:"gallery-item-index",children:u+1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3391,columnNumber:23},void 0)]},l.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3385,columnNumber:21},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3383,columnNumber:17},void 0),i.length===0&&t.jsxDEV("div",{className:"gallery-empty",children:r==="zh"?"暂无生成结果":"No results yet"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3396,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3382,columnNumber:15},void 0)})()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3358,columnNumber:7},void 0),Ea&&t.jsxDEV(Kt,{isOpen:Ea,onClose:()=>{sa(!1),ra(null)},mode:Gt.SELECT,filterType:ue.IMAGE,onSelect:st},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3407,columnNumber:9},void 0),le]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2709,columnNumber:5},void 0)};export{ai as default};
|
|
6
|
+
`).filter(n=>n.trim());if(g.length===1||c.length>1){const n=g[0];c.forEach(m=>{if(m.col==="prompt")y(m.row,m.col,n);else if(m.col==="count"){const b=parseInt(n);!isNaN(b)&&b>=1&&y(m.row,m.col,b)}else m.col==="size"&&X.has(n)&&y(m.row,m.col,n)})}else g.forEach((n,m)=>{const b=i+m;if(!(b>=f.length))if(s==="prompt")y(b,s,n);else if(s==="count"){const h=parseInt(n);!isNaN(h)&&h>=1&&y(b,s,h)}else s==="size"&&X.has(n)&&y(b,s,n)})});return}switch(e.key){case"ArrowUp":e.preventDefault(),i>0&&v(i-1,s);break;case"ArrowDown":e.preventDefault(),i<f.length-1&&v(i+1,s);break;case"ArrowLeft":e.preventDefault(),l>0&&v(i,E[l-1]);break;case"ArrowRight":e.preventDefault(),l<E.length-1&&v(i,E[l+1]);break;case"Tab":e.preventDefault(),e.shiftKey?l>0?v(i,E[l-1]):i>0&&v(i-1,E[E.length-1]):l<E.length-1?v(i,E[l+1]):i<f.length-1&&v(i+1,E[0]);break;case"Enter":e.preventDefault(),s!=="images"&&$e(i,s);break;case"Escape":e.preventDefault(),U(null);break;case"Delete":case"Backspace":{e.preventDefault(),(_.length>0?_:[{row:i,col:s}]).forEach(d=>{d.col==="prompt"?y(d.row,d.col,""):d.col==="count"?y(d.row,d.col,0):d.col==="images"?y(d.row,d.col,[]):d.col==="size"&&y(d.row,d.col,R)});break}}};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[k,R,L,f,_,v,$e,y,Va,Ca,X]),o.useEffect(()=>{const a=()=>{(F||de)&&Ie()};return document.addEventListener("mouseup",a),()=>document.removeEventListener("mouseup",a)},[F,de,Ie]),o.useEffect(()=>{if(!L||L.col!=="size")return;const a=e=>{e.target.closest(".custom-size-dropdown")||U(null)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[L]);const we=(a,e,i)=>{var p,g;const s=(L==null?void 0:L.row)===e&&(L==null?void 0:L.col)===i,l=(k==null?void 0:k.row)===e&&(k==null?void 0:k.col)===i,u=_.some(n=>n.row===e&&n.col===i),c=F&&(z==null?void 0:z.col)===i&&ka.includes(e),d=`excel-cell cell-${i} ${l?"active":""} ${u?"selected":""} ${c?"filling":""}`;switch(i){case"prompt":return t.jsxDEV("div",{className:d,onMouseDown:n=>{n.target.classList.contains("fill-handle")||s||n.button===0&&!n.shiftKey&&la(e,i)},onClick:n=>{s||xe(n,e,i)},onDoubleClick:()=>$e(e,i),children:[s?t.jsxDEV("textarea",{className:"cell-textarea",autoFocus:!0,value:a.prompt,placeholder:r==="zh"?"输入提示词...":"Enter prompt...",onChange:n=>{y(e,i,n.target.value)},onFocus:n=>{const m=n.target.value.length;n.target.setSelectionRange(m,m),n.target.style.height="auto",n.target.style.height=n.target.scrollHeight+"px"},onInput:n=>{const m=n.target;m.style.height="auto",m.style.height=m.scrollHeight+"px"},onBlur:()=>U(null),onKeyDown:n=>{if(n.key==="Escape")U(null);else if(n.key==="Enter"&&!n.shiftKey)n.preventDefault(),U(null),e<f.length-1&&v(e+1,i);else if(n.key==="Tab"){n.preventDefault(),U(null);const m=E.indexOf(i);n.shiftKey?m>0?v(e,E[m-1]):e>0&&v(e-1,E[E.length-1]):m<E.length-1?v(e,E[m+1]):e<f.length-1&&v(e+1,E[0])}}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2248,columnNumber:15},void 0):t.jsxDEV("span",{className:"cell-text",children:a.prompt||""},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2310,columnNumber:15},void 0),l&&t.jsxDEV("div",{className:"fill-handle",onMouseDown:n=>{n.stopPropagation(),Ae(e,i)}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2313,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2227,columnNumber:11},void 0);case"size":return t.jsxDEV("div",{className:d,onMouseDown:n=>{n.target.classList.contains("fill-handle")||n.button===0&&!n.shiftKey&&la(e,i)},onClick:n=>xe(n,e,i),onDoubleClick:()=>{v(e,i),U({row:e,col:i})},children:[s?t.jsxDEV("div",{className:"custom-size-dropdown",children:[t.jsxDEV("div",{className:"dropdown-trigger",children:[t.jsxDEV("span",{children:fa[a.size]||a.size},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2346,columnNumber:19},void 0),t.jsxDEV("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:t.jsxDEV("path",{d:"m6 9 6 6 6-6"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2357,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2347,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2345,columnNumber:17},void 0),t.jsxDEV("div",{className:"dropdown-menu",children:be.map(n=>t.jsxDEV("div",{className:`dropdown-item ${a.size===n?"selected":""}`,onMouseDown:m=>{m.preventDefault(),m.stopPropagation(),y(e,i,n),U(null)},children:[a.size===n&&t.jsxDEV("span",{className:"check-icon",children:"✓"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2375,columnNumber:25},void 0),fa[n]||n]},n,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2362,columnNumber:21},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2360,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2344,columnNumber:15},void 0):t.jsxDEV("span",{className:"cell-text",children:fa[a.size]||a.size},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2383,columnNumber:15},void 0),l&&t.jsxDEV("div",{className:"fill-handle",onMouseDown:n=>{n.stopPropagation(),Ae(e,i)}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2388,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2326,columnNumber:11},void 0);case"images":return t.jsxDEV("div",{className:d,onClick:n=>xe(n,e,i),children:[t.jsxDEV("div",{className:"image-cell-content",children:[a.images.map((n,m)=>t.jsxDEV("div",{className:"cell-image-thumb",children:[t.jsxDEV("img",{src:n,alt:""},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2408,columnNumber:19},void 0),t.jsxDEV("button",{className:"remove-btn",onClick:b=>{b.stopPropagation(),et(e,n)},children:"×"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2409,columnNumber:19},void 0)]},m,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2407,columnNumber:17},void 0)),t.jsxDEV("div",{className:"add-image-buttons",children:[t.jsxDEV(j,{variant:"text",shape:"square",size:"small",onClick:n=>{n.stopPropagation(),v(e,i),tt(e)},title:r==="zh"?"上传图片":"Upload image",icon:t.jsxDEV(Aa,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2431,columnNumber:25},void 0),className:"add-image-btn","data-track":"batch_row_upload_image_click"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2421,columnNumber:17},void 0),t.jsxDEV(j,{variant:"text",shape:"square",size:"small",onClick:n=>{n.stopPropagation(),v(e,i),it(e)},title:r==="zh"?"从素材库选择":"Select from library",icon:t.jsxDEV($a,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2447,columnNumber:25},void 0),className:"add-image-btn","data-track":"batch_row_select_from_library_click"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2435,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2420,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2405,columnNumber:13},void 0),l&&t.jsxDEV("div",{className:"fill-handle",onMouseDown:n=>{n.stopPropagation(),Ae(e,i)}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2454,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2401,columnNumber:11},void 0);case"count":return t.jsxDEV("div",{className:d,onMouseDown:n=>{n.target.classList.contains("fill-handle")||s||n.button===0&&!n.shiftKey&&la(e,i)},onClick:n=>{s||xe(n,e,i)},onDoubleClick:()=>$e(e,i),children:[s?t.jsxDEV("input",{type:"number",autoFocus:!0,min:1,max:10,value:a.count===0?"":a.count,className:"cell-count-input",onChange:n=>{const m=n.target.value;if(m===""){y(e,i,0);return}const b=parseInt(m);isNaN(b)||y(e,i,b)},onBlur:()=>{!a.count||a.count<1?y(e,i,1):a.count>10&&y(e,i,10),U(null)},onKeyDown:n=>{n.key==="Escape"?U(null):n.key==="Enter"&&(U(null),e<f.length-1&&v(e+1,i))}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2486,columnNumber:15},void 0):t.jsxDEV("span",{className:"cell-text",children:a.count},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2524,columnNumber:15},void 0),l&&t.jsxDEV("div",{className:"fill-handle",onMouseDown:n=>{n.stopPropagation(),Ae(e,i)}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2527,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2467,columnNumber:11},void 0);case"preview":{const n=te(a);return t.jsxDEV("div",{className:`${d} preview-cell preview-${n.status}`,onClick:m=>{n.status==="completed"||n.status==="partial"?ia(e):n.status==="failed"?w.has(e)||Le(e):xe(m,e,i)},children:[n.status==="idle"&&t.jsxDEV("span",{className:"preview-idle",children:"-"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2561,columnNumber:15},void 0),(n.status==="generating"||n.status==="completed")&&(()=>{const m=n.tasks.filter(x=>{var S;return x.status===G.COMPLETED&&((S=x.result)==null?void 0:S.url)}).map(x=>x.result.url),b=n.status==="generating",h=n.tasks.filter(x=>x.status===G.PENDING||x.status===G.PROCESSING).length;return m.length===0&&b?t.jsxDEV("span",{className:"preview-generating",children:[t.jsxDEV("span",{className:"loading-spinner"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2582,columnNumber:23},void 0),r==="zh"?"生成中...":"Generating..."]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2581,columnNumber:21},void 0):t.jsxDEV("div",{className:"preview-images",children:[m.slice(0,b?2:3).map((x,S)=>t.jsxDEV("div",{className:"preview-thumb clickable",onClick:oe=>{oe.stopPropagation(),da(m,S)},title:r==="zh"?"点击放大,左右切换":"Click to enlarge, swipe to navigate",children:t.jsxDEV("img",{src:x,alt:`Result ${S+1}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2607,columnNumber:27},void 0)},S,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2594,columnNumber:25},void 0)),b&&t.jsxDEV("span",{className:"preview-generating-inline",title:r==="zh"?`还有 ${h} 张生成中`:`${h} more generating`,children:[t.jsxDEV("span",{className:"loading-spinner"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2620,columnNumber:25},void 0),"+",h]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2612,columnNumber:23},void 0),!b&&n.completedCount>3&&t.jsxDEV("span",{className:"preview-more clickable",onClick:x=>{x.stopPropagation(),ia(e)},title:r==="zh"?"查看全部图片":"View all images",children:["+",n.completedCount-3]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2625,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2590,columnNumber:19},void 0)})(),n.status==="failed"&&((p=n.tasks[0])==null?void 0:p.error)&&t.jsxDEV("div",{className:"preview-error",children:[t.jsxDEV("span",{className:"preview-error-message",children:n.tasks[0].error.message},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2643,columnNumber:17},void 0),((g=n.tasks[0].error.details)==null?void 0:g.originalError)&&t.jsxDEV($,{content:t.jsxDEV("div",{className:"error-details-tooltip",children:[t.jsxDEV("div",{className:"error-details-title",children:"原始错误信息:"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2650,columnNumber:25},void 0),t.jsxDEV("div",{className:"error-details-content",children:n.tasks[0].error.details.originalError},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2651,columnNumber:25},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2649,columnNumber:23},void 0),theme:"light",placement:"bottom",showArrow:!1,children:t.jsxDEV("span",{className:"preview-error-details-link",children:"[详情]"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2660,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2647,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2642,columnNumber:15},void 0),n.status==="partial"&&(()=>{const m=n.tasks.filter(b=>{var h;return b.status===G.COMPLETED&&((h=b.result)==null?void 0:h.url)}).map(b=>b.result.url);return t.jsxDEV("div",{className:"preview-partial",children:[t.jsxDEV("div",{className:"preview-images",children:m.slice(0,2).map((b,h)=>t.jsxDEV("div",{className:"preview-thumb clickable",onClick:x=>{x.stopPropagation(),da(m,h)},title:r==="zh"?"点击放大,左右切换":"Click to enlarge, swipe to navigate",children:t.jsxDEV("img",{src:b,alt:`Result ${h+1}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2689,columnNumber:27},void 0)},h,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2676,columnNumber:25},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2674,columnNumber:21},void 0),t.jsxDEV("span",{className:"preview-partial-info",children:["⚠️ ",n.completedCount,"/",n.tasks.length]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2693,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2673,columnNumber:19},void 0)})()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2541,columnNumber:11},void 0)}default:return null}};return t.jsxDEV("div",{className:"batch-image-generation",children:[t.jsxDEV("div",{className:"batch-main-content",children:[t.jsxDEV("div",{className:"batch-toolbar",children:[t.jsxDEV("input",{ref:ze,type:"file",accept:"image/*",multiple:!0,onChange:ct,style:{display:"none"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2714,columnNumber:11},void 0),t.jsxDEV("input",{ref:Re,type:"file",accept:"image/*",multiple:!0,onChange:at,style:{display:"none"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2722,columnNumber:11},void 0),t.jsxDEV("input",{ref:_e,type:"file",accept:".xlsx,.xls,.csv",onChange:mt,style:{display:"none"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2730,columnNumber:11},void 0),t.jsxDEV("div",{className:"toolbar-left",children:[t.jsxDEV($,{content:r==="zh"?"下载模板":"Download Template",theme:"light",children:t.jsxDEV(j,{variant:"outline",theme:"default",icon:t.jsxDEV(Ta,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2747,columnNumber:23},void 0),onClick:ut,"data-track":"batch_download_template_click"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2744,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2740,columnNumber:13},void 0),t.jsxDEV($,{content:r==="zh"?"导入 Excel":"Import Excel",theme:"light",children:t.jsxDEV(j,{variant:"outline",theme:"default",icon:t.jsxDEV(Rt,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2759,columnNumber:23},void 0),onClick:()=>{var a;return(a=_e.current)==null?void 0:a.click()},"data-track":"batch_import_excel_click"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2756,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2752,columnNumber:13},void 0),t.jsxDEV($,{content:r==="zh"?"批量导入图片":"Batch Import Images",theme:"light",children:t.jsxDEV(j,{variant:"outline",theme:"default",icon:t.jsxDEV(Tt,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2773,columnNumber:23},void 0),onClick:()=>{var a;return(a=ze.current)==null?void 0:a.click()},"data-track":"batch_import_images_click","data-track-params":JSON.stringify({source:"toolbar"})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2770,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2764,columnNumber:13},void 0),t.jsxDEV("span",{className:"toolbar-divider"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2780,columnNumber:13},void 0),t.jsxDEV($,{content:r==="zh"?"选择失败行":"Select Failed Rows",theme:"light",children:t.jsxDEV(j,{variant:"text",theme:"default",icon:t.jsxDEV($t,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2790,columnNumber:23},void 0),onClick:ht,"data-track":"batch_select_failed_click"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2787,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2783,columnNumber:13},void 0),t.jsxDEV($,{content:r==="zh"?"反选":"Invert Selection",theme:"light",children:t.jsxDEV(j,{variant:"text",theme:"default",icon:t.jsxDEV(Mt,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2802,columnNumber:23},void 0),onClick:ft,"data-track":"batch_invert_selection_click"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2799,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2795,columnNumber:13},void 0),t.jsxDEV("span",{className:"toolbar-divider"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2808,columnNumber:13},void 0),t.jsxDEV(j,{variant:"text",theme:"default",icon:t.jsxDEV(At,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2814,columnNumber:21},void 0),onClick:Ya,className:"batch-delete-btn","data-track":"batch_delete_selected_click","data-track-params":JSON.stringify({count:w.size}),children:r==="zh"?"删除选中":"Delete Selected"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2811,columnNumber:13},void 0),t.jsxDEV("span",{className:"toolbar-divider"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2823,columnNumber:13},void 0),t.jsxDEV(j,{variant:"outline",theme:"default",icon:t.jsxDEV(Ta,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2829,columnNumber:21},void 0),onClick:bt,className:"batch-download-btn","data-track":"batch_download_images_click","data-track-params":JSON.stringify({count:w.size}),children:r==="zh"?"下载选中图片":"Download"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2826,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2738,columnNumber:11},void 0),t.jsxDEV("div",{className:"toolbar-right",children:[t.jsxDEV("div",{className:"model-selector-wrapper","data-track":"batch_model_select",children:t.jsxDEV(It,{selectedModel:V,selectedSelectionKey:ga(V,K),onSelect:a=>{Ue(a),Ve(null),M==null||M(a),J==null||J(null)},onSelectModel:a=>{Ue(a.id);const e=Oe(a);Ve(e),M==null||M(a.id),J==null||J(e)},language:r,models:ae,placement:"down",variant:"form",disabled:Be},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2845,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2841,columnNumber:13},void 0),t.jsxDEV(j,{theme:"primary",onClick:Nt,loading:Be,className:"batch-generate-btn","data-track":"batch_generate_click","data-track-params":JSON.stringify({selectedRows:w.size,model:V}),children:Be?r==="zh"?"提交中...":"Submitting...":r==="zh"?"生成选中行":"Generate Selected"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2872,columnNumber:13},void 0),t.jsxDEV("span",{className:"toolbar-divider"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2892,columnNumber:13},void 0),!fe&&!Na&&t.jsxDEV($,{content:r==="zh"?"显示素材库":"Show Library",theme:"light",children:t.jsxDEV(j,{variant:"outline",theme:"default",icon:t.jsxDEV($a,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2902,columnNumber:25},void 0),onClick:()=>He(!0),"data-track":"batch_library_show_click"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2899,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2895,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2839,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2712,columnNumber:9},void 0),t.jsxDEV("div",{className:`excel-table-container ${F?"is-filling":""} ${de?"is-selecting":""}`,onMouseMove:Xa,onMouseUp:Ie,onMouseLeave:Ie,children:[t.jsxDEV("table",{className:"excel-table",children:[t.jsxDEV("thead",{children:t.jsxDEV("tr",{children:[t.jsxDEV("th",{className:"col-checkbox",children:t.jsxDEV($,{content:Pa||(r==="zh"?"全选/取消全选":"Select All / Deselect All"),theme:"light",showArrow:!1,visible:Oa,onVisibleChange:a=>We(a),children:t.jsxDEV("div",{className:"checkbox-wrapper",children:t.jsxDEV(Ma,{checked:f.length>0&&w.size===f.length,indeterminate:w.size>0&&w.size<f.length,onChange:pt},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2939,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2938,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2924,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2923,columnNumber:17},void 0),t.jsxDEV("th",{className:"row-number",children:"#"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2952,columnNumber:17},void 0),t.jsxDEV("th",{className:"col-prompt",children:t.jsxDEV("div",{className:"th-content",children:[r==="zh"?"提示词":"Prompt",t.jsxDEV($,{content:r==="zh"?"向下填充":"Fill down",theme:"light",children:t.jsxDEV(j,{variant:"text",shape:"circle",size:"small",icon:t.jsxDEV(Ke,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2964,columnNumber:31},void 0),className:"column-fill-btn",onClick:()=>Me("prompt"),"data-track":"batch_fill_column_click","data-track-params":JSON.stringify({column:"prompt"})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2960,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2956,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2954,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2953,columnNumber:17},void 0),t.jsxDEV("th",{className:"col-size",children:t.jsxDEV("div",{className:"th-content",children:[r==="zh"?"尺寸":"Size",t.jsxDEV($,{content:r==="zh"?"向下填充":"Fill down",theme:"light",children:t.jsxDEV(j,{variant:"text",shape:"circle",size:"small",icon:t.jsxDEV(Ke,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2984,columnNumber:31},void 0),className:"column-fill-btn",onClick:()=>Me("size"),"data-track":"batch_fill_column_click","data-track-params":JSON.stringify({column:"size"})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2980,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2976,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2974,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2973,columnNumber:17},void 0),t.jsxDEV("th",{className:"col-images",children:t.jsxDEV("div",{className:"th-content",children:[r==="zh"?"参考图片":"Ref Images",t.jsxDEV($,{content:r==="zh"?"向下填充":"Fill down",theme:"light",children:t.jsxDEV(j,{variant:"text",shape:"circle",size:"small",icon:t.jsxDEV(Ke,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3004,columnNumber:31},void 0),className:"column-fill-btn",onClick:()=>Me("images"),"data-track":"batch_fill_column_click","data-track-params":JSON.stringify({column:"images"})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3e3,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2996,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2994,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2993,columnNumber:17},void 0),t.jsxDEV("th",{className:"col-count",children:t.jsxDEV("div",{className:"th-content",children:[r==="zh"?"数量":"Count",t.jsxDEV($,{content:r==="zh"?"向下填充":"Fill down",theme:"light",children:t.jsxDEV(j,{variant:"text",shape:"circle",size:"small",icon:t.jsxDEV(Ke,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3024,columnNumber:31},void 0),className:"column-fill-btn",onClick:()=>Me("count"),"data-track":"batch_fill_column_click","data-track-params":JSON.stringify({column:"count"})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3020,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3016,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3014,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3013,columnNumber:17},void 0),t.jsxDEV("th",{className:"col-preview",children:t.jsxDEV("div",{className:"th-content",children:r==="zh"?"预览":"Preview"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3034,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3033,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2922,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2921,columnNumber:13},void 0),t.jsxDEV("tbody",{children:f.map((a,e)=>t.jsxDEV("tr",{"data-row-index":e,className:`${w.has(e)?"row-selected":""} ${Fa===e?"row-drag-over":""} ${ka.includes(e)?"fill-preview":""}`,onDragOver:i=>nt(i,e),onDragLeave:rt,onDrop:i=>ot(i,e),children:[t.jsxDEV("td",{className:"col-checkbox",onClick:i=>{Le(e,i.shiftKey)},children:t.jsxDEV("div",{className:"checkbox-wrapper",onClick:i=>{i.stopPropagation(),Le(e,i.shiftKey)},onMouseEnter:()=>w.size>0&&We(!0),onMouseLeave:()=>We(!1),children:t.jsxDEV(Ma,{checked:w.has(e)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3072,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3060,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3054,columnNumber:19},void 0),t.jsxDEV("td",{className:"row-number",onClick:i=>Le(e,i.shiftKey),style:{cursor:"pointer"},children:e+1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3075,columnNumber:19},void 0),t.jsxDEV("td",{children:we(a,e,"prompt")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3082,columnNumber:19},void 0),t.jsxDEV("td",{children:we(a,e,"size")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3083,columnNumber:19},void 0),t.jsxDEV("td",{children:we(a,e,"images")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3084,columnNumber:19},void 0),t.jsxDEV("td",{children:we(a,e,"count")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3085,columnNumber:19},void 0),t.jsxDEV("td",{children:we(a,e,"preview")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3086,columnNumber:19},void 0)]},a.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3042,columnNumber:17},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3040,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2920,columnNumber:11},void 0),t.jsxDEV("div",{className:"add-rows-section",children:[t.jsxDEV(j,{variant:"dashed",shape:"circle",onClick:()=>Ce(!0),title:r==="zh"?"添加行":"Add Rows",icon:t.jsxDEV(Lt,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3099,columnNumber:21},void 0),className:"add-rows-btn","data-track":"batch_add_rows_click"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3094,columnNumber:13},void 0),t.jsxDEV(j,{variant:"outline",theme:"default",icon:t.jsxDEV(Pt,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3106,columnNumber:21},void 0),onClick:gt,className:"export-excel-btn","data-track":"batch_export_excel_click","data-track-params":JSON.stringify({rowCount:f.length}),children:r==="zh"?"导出Excel":"Export Excel"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3103,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3093,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2912,columnNumber:9},void 0),t.jsxDEV("p",{className:"hint-text",children:r==="zh"?"提示:Enter 编辑/确认 | Tab 移动 | Ctrl+Z 撤销 | Ctrl+Y 重做 | 拖拽图片到行":"Tip: Enter to edit/confirm | Tab to move | Ctrl+Z undo | Ctrl+Y redo | Drag images to rows"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3117,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2710,columnNumber:7},void 0),!fe&&t.jsxDEV("div",{className:`image-library-sidebar ${Na?"":"hidden"}`,children:[t.jsxDEV("div",{className:"library-header",children:[t.jsxDEV("h3",{children:r==="zh"?"素材库":"Library"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3130,columnNumber:13},void 0),t.jsxDEV(j,{variant:"text",shape:"square",size:"small",className:"close-btn",onClick:()=>He(!1),icon:t.jsxDEV(Ot,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3137,columnNumber:21},void 0),"data-track":"batch_library_close_click"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3131,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3129,columnNumber:11},void 0),t.jsxDEV("div",{className:"library-content",children:[t.jsxDEV("div",{className:"upload-section",children:[t.jsxDEV("input",{ref:Se,type:"file",accept:"image/*",multiple:!0,onChange:Za,style:{display:"none"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3143,columnNumber:15},void 0),t.jsxDEV(j,{block:!0,theme:"default",variant:"outline",icon:t.jsxDEV(Aa,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3155,columnNumber:23},void 0),onClick:()=>{var a;return(a=Se.current)==null?void 0:a.click()},"data-track":"batch_library_upload_click",children:r==="zh"?"上传图片":"Upload"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3151,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3142,columnNumber:13},void 0),t.jsxDEV("div",{className:"library-grid",children:ve.length===0?t.jsxDEV("div",{className:"empty-library",children:r==="zh"?"暂无图片,请上传":"No images, please upload"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3164,columnNumber:17},void 0):ve.map(a=>t.jsxDEV("div",{className:"library-image",onClick:()=>Qa(a.url),draggable:!0,onDragStart:e=>lt(e,a.url),title:r==="zh"?"点击添加到选中行,或拖拽到指定行":"Click to add to selected rows, or drag to a specific row","data-track":"batch_library_image_click",children:t.jsxDEV("img",{src:a.url,alt:a.name,draggable:!1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3186,columnNumber:21},void 0)},a.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3171,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3162,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3141,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3126,columnNumber:9},void 0),Ga&&t.jsxDEV("div",{className:"batch-import-modal-overlay",onClick:ca,children:t.jsxDEV("div",{className:"batch-import-modal",onClick:a=>a.stopPropagation(),children:[t.jsxDEV("div",{className:"modal-header",children:[t.jsxDEV("h3",{children:r==="zh"?"批量导入图片":"Batch Import Images"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3203,columnNumber:15},void 0),t.jsxDEV("button",{className:"close-btn",onClick:ca,children:"×"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3206,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3202,columnNumber:13},void 0),t.jsxDEV("div",{className:"modal-body",children:[t.jsxDEV("p",{className:"import-info",children:r==="zh"?`已选择 ${q.length} 张图片`:`${q.length} images selected`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3211,columnNumber:15},void 0),t.jsxDEV("div",{className:"import-settings-row",children:[t.jsxDEV("div",{className:"import-setting-item",children:[t.jsxDEV("label",{children:r==="zh"?"从第几行开始:":"Start from row:"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3219,columnNumber:19},void 0),t.jsxDEV("input",{type:"number",min:1,max:f.length+Math.ceil(q.length/Y),value:Q,onChange:a=>{const e=Math.max(1,parseInt(a.target.value)||1);ya(e)},className:"start-row-input"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3222,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3218,columnNumber:17},void 0),t.jsxDEV("div",{className:"import-setting-item",children:[t.jsxDEV("label",{children:r==="zh"?"每行图片数:":"Images per row:"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3239,columnNumber:19},void 0),t.jsxDEV("div",{className:"per-row-options",children:[1,2,3,4,5].map(a=>t.jsxDEV("button",{className:`per-row-btn ${Y===a?"active":""}`,onClick:()=>Ka(a),children:a},a,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3244,columnNumber:23},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3242,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3238,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3217,columnNumber:15},void 0),t.jsxDEV("p",{className:"import-preview",children:r==="zh"?`从第 ${Q} 行开始,填充 ${Math.ceil(q.length/Y)} 行,每行 ${Y} 张图片`:`Starting from row ${Q}, filling ${Math.ceil(q.length/Y)} rows with ${Y} image(s) each`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3258,columnNumber:15},void 0),t.jsxDEV("div",{className:"import-preview-grid",children:[ta.map((a,e)=>t.jsxDEV("div",{className:"preview-item",children:t.jsxDEV("img",{src:a,alt:""},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3272,columnNumber:21},void 0)},e,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3271,columnNumber:19},void 0)),q.length>12&&t.jsxDEV("div",{className:"preview-more",children:["+",q.length-12]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3276,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3269,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3210,columnNumber:13},void 0),t.jsxDEV("div",{className:"modal-footer",children:[t.jsxDEV(j,{variant:"outline",theme:"default",onClick:ca,"data-track":"batch_import_modal_cancel_click",children:r==="zh"?"取消":"Cancel"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3283,columnNumber:15},void 0),t.jsxDEV(j,{theme:"default",variant:"outline",onClick:dt,"data-track":"batch_import_modal_confirm_click","data-track-params":JSON.stringify({imageCount:q.length,imagesPerRow:Y,startRow:Q}),children:r==="zh"?"确认导入":"Import"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3291,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3282,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3198,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3197,columnNumber:9},void 0),t.jsxDEV(Ft,{...Ba},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3310,columnNumber:7},void 0),t.jsxDEV(Ia,{visible:Ja,onClose:()=>Ce(!1),header:r==="zh"?"添加行":"Add Rows",confirmBtn:{content:r==="zh"?"添加":"Add",theme:"default",variant:"outline",onClick:()=>{Wa(qe),Ce(!1),N.success(r==="zh"?`已添加 ${qe} 行`:`Added ${qe} rows`)}},cancelBtn:{content:r==="zh"?"取消":"Cancel",onClick:()=>Ce(!1)},width:360,className:"add-rows-dialog",destroyOnClose:!0,children:t.jsxDEV("div",{className:"add-rows-content",children:[t.jsxDEV("label",{children:r==="zh"?"添加行数:":"Number of rows:"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3340,columnNumber:11},void 0),t.jsxDEV("input",{type:"number",min:1,max:100,value:qe,onChange:a=>Ha(Math.max(1,Math.min(100,parseInt(a.target.value)||1))),className:"add-rows-input",autoFocus:!0},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3341,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3339,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3313,columnNumber:7},void 0),t.jsxDEV(Ia,{visible:Ne!==null,onClose:()=>ia(null),header:r==="zh"?`第 ${(Ne??0)+1} 行生成结果`:`Row ${(Ne??0)+1} Results`,footer:null,width:"70vw",className:"row-gallery-dialog",destroyOnClose:!0,children:Ne!==null&&(()=>{const a=f[Ne];if(!a)return null;const i=te(a).tasks.filter(l=>{var u;return l.status===G.COMPLETED&&((u=l.result)==null?void 0:u.url)}),s=i.map(l=>l.result.url);return t.jsxDEV("div",{className:"row-gallery-content",children:[t.jsxDEV("div",{className:"gallery-grid",children:i.map((l,u)=>t.jsxDEV("div",{className:"gallery-item",onClick:()=>da(s,u),children:[t.jsxDEV("img",{src:l.result.url,alt:`Result ${u+1}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3390,columnNumber:23},void 0),t.jsxDEV("span",{className:"gallery-item-index",children:u+1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3391,columnNumber:23},void 0)]},l.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3385,columnNumber:21},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3383,columnNumber:17},void 0),i.length===0&&t.jsxDEV("div",{className:"gallery-empty",children:r==="zh"?"暂无生成结果":"No results yet"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3396,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3382,columnNumber:15},void 0)})()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3358,columnNumber:7},void 0),Ea&&t.jsxDEV(Kt,{isOpen:Ea,onClose:()=>{sa(!1),ra(null)},mode:Gt.SELECT,filterType:ue.IMAGE,onSelect:st},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:3407,columnNumber:9},void 0),le]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/batch-image-generation.tsx",lineNumber:2709,columnNumber:5},void 0)};export{ai as default};
|