aitu-app 0.6.71 → 0.6.72
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-BxZowfRq.js → CanvasAudioPlayer-C4pqPNnG.js} +1 -1
- package/assets/{ChatDrawer-BGK5A7Rf.js → ChatDrawer-9XDg_01o.js} +2 -2
- package/assets/{ChatMessagesArea-CuPP1K-H.js → ChatMessagesArea-MrSlzXfd.js} +2 -2
- package/assets/{DeferredAIInputBar-jZEz3pqU.js → DeferredAIInputBar-rlzvr9H5.js} +2 -2
- package/assets/{DrawnixDeferredFeatures-DRggo5l2.js → DrawnixDeferredFeatures-6BN6HsXW.js} +1 -1
- package/assets/{KnowledgeBaseContent-C1xFBdX9.js → KnowledgeBaseContent-DJnJZh6i.js} +3 -3
- package/assets/{MVCreator-D3rDT4pv.js → MVCreator-BVXIEkng.js} +1 -1
- package/assets/{ModelBenchmarkWorkbench-DrHfXMOC.js → ModelBenchmarkWorkbench-DV6h0r-O.js} +1 -1
- package/assets/{ModelDropdown-CErXiJel.js → ModelDropdown-iU3c5Z_N.js} +1 -1
- package/assets/{MusicAnalyzer-DNVsOB04.js → MusicAnalyzer-D9rIcu4x.js} +1 -1
- package/assets/{MusicAnalyzer-q0eIxKqJ.js → MusicAnalyzer-ghn7zFIt.js} +1 -1
- package/assets/{ResizableDivider-XFJLfAwc.js → ResizableDivider-C6Z5EQJ_.js} +1 -1
- package/assets/{TaskQueuePanel-zmK3r_Sy.js → TaskQueuePanel-NAYUh8lN.js} +1 -1
- package/assets/{VideoAnalyzer-IiMRyspL.js → VideoAnalyzer-VjFOqpZU.js} +1 -1
- package/assets/{ai-generation-preferences-service-DheS7yb2.js → ai-generation-preferences-service-BuQhsO32.js} +1 -1
- package/assets/{arc-AunKa7Be.js → arc-CCorIawr.js} +1 -1
- package/assets/{arc-CxS0h6XE.js → arc-OsezXT79.js} +1 -1
- package/assets/{batch-image-generation-BTo-Hh2f.js → batch-image-generation-BM3dGGpo.js} +1 -1
- package/assets/{blockDiagram-38ab4fdb-BOwTTQqR.js → blockDiagram-38ab4fdb-DUFnN1Ei.js} +1 -1
- package/assets/{blockDiagram-38ab4fdb-B9BxtRcE.js → blockDiagram-38ab4fdb-DWGlT04d.js} +1 -1
- package/assets/{browser-CK6xKVG3.js → browser-BlDolpRT.js} +1 -1
- package/assets/{c4Diagram-3d4e48cf-l1vuEfws.js → c4Diagram-3d4e48cf-D4FViX2F.js} +1 -1
- package/assets/{c4Diagram-3d4e48cf-B7o3_NGM.js → c4Diagram-3d4e48cf-D6HbI2bj.js} +1 -1
- package/assets/{canvas-insertion-6qsJRfKC.js → canvas-insertion-BZAyMFnR.js} +1 -1
- package/assets/channel-DHHHwu9d.js +1 -0
- package/assets/channel-DbaY041U.js +1 -0
- package/assets/{classDiagram-70f12bd4-BxdM_ZFq.js → classDiagram-70f12bd4-BJiXLgfR.js} +1 -1
- package/assets/{classDiagram-70f12bd4-C5PI5m3K.js → classDiagram-70f12bd4-P5-MZZHm.js} +1 -1
- package/assets/{classDiagram-v2-f2320105-D2WGupMF.js → classDiagram-v2-f2320105-BckUVKrQ.js} +1 -1
- package/assets/{classDiagram-v2-f2320105-CRLBLeIT.js → classDiagram-v2-f2320105-BlMVbuKh.js} +1 -1
- package/assets/{clipper-D9tfnKC1.js → clipper-BkGBD2Ma.js} +1 -1
- package/assets/clone-B9352qPQ.js +1 -0
- package/assets/{createText-2e5e7dd3-B8mv8HgF.js → createText-2e5e7dd3-BLEzJgyq.js} +1 -1
- package/assets/{createText-2e5e7dd3-CWQBEaI7.js → createText-2e5e7dd3-_0asARpb.js} +1 -1
- package/assets/{edges-e0da2a9e-CW611sej.js → edges-e0da2a9e-BvNEeRN2.js} +1 -1
- package/assets/{edges-e0da2a9e-CiSIgajX.js → edges-e0da2a9e-Su9We6Oe.js} +1 -1
- package/assets/{erDiagram-9861fffd-B60hPtiy.js → erDiagram-9861fffd-B-TnweRY.js} +1 -1
- package/assets/{erDiagram-9861fffd-Bq-lh9QY.js → erDiagram-9861fffd-ChF_4VVA.js} +1 -1
- package/assets/{flowDb-956e92f1-Bz6i22S1.js → flowDb-956e92f1-BklqjU-F.js} +1 -1
- package/assets/{flowDb-956e92f1-CVT7Imrs.js → flowDb-956e92f1-CpHT5-s-.js} +1 -1
- package/assets/{flowDiagram-66a62f08-e10-kMn8.js → flowDiagram-66a62f08-BW0lq2iO.js} +1 -1
- package/assets/{flowDiagram-66a62f08-CRiWeGax.js → flowDiagram-66a62f08-CM-ufoRy.js} +1 -1
- package/assets/flowDiagram-v2-96b9c2cf-CXd4cAmC.js +1 -0
- package/assets/flowDiagram-v2-96b9c2cf-WaERXGrn.js +1 -0
- package/assets/{flowchart-elk-definition-4a651766-CBnyqo_M.js → flowchart-elk-definition-4a651766-BHXMQM8F.js} +1 -1
- package/assets/{flowchart-elk-definition-4a651766-DKGRcOAx.js → flowchart-elk-definition-4a651766-BNNCQnvT.js} +1 -1
- package/assets/{ganttDiagram-c361ad54-mhde3_of.js → ganttDiagram-c361ad54-BMznP5js.js} +1 -1
- package/assets/{ganttDiagram-c361ad54-D19CTSCa.js → ganttDiagram-c361ad54-Cn_w4SQu.js} +1 -1
- package/assets/{gitGraphDiagram-72cf32ee-BTRFRUeL.js → gitGraphDiagram-72cf32ee-CcqxYifa.js} +1 -1
- package/assets/{gitGraphDiagram-72cf32ee-BPmLlXIw.js → gitGraphDiagram-72cf32ee-HNSkomMm.js} +1 -1
- package/assets/{graph-DIg8rY1E.js → graph-2O9SKVX0.js} +1 -1
- package/assets/{graph-B1ieZuJT.js → graph-D24U5F9b.js} +1 -1
- package/assets/{index-3862675e-CAW4PMyX.js → index-3862675e-kPXP30L6.js} +1 -1
- package/assets/{index-3862675e-BFVjQZrI.js → index-3862675e-wtTLssRq.js} +1 -1
- package/assets/{index-o4MkHJtB.js → index-7Yy5taJZ.js} +1 -1
- package/assets/{index-D0pBPzvH.js → index-9lQYp-F3.js} +1 -1
- package/assets/{index-cFN27HDb.js → index-BCZHTjCF.js} +1 -1
- package/assets/{index-zNq6WR1M.js → index-BELf2XK1.js} +1 -1
- package/assets/{index-CAmlVCIf.js → index-BJiKHIU5.js} +1 -1
- package/assets/{index-sZWFW1o8.js → index-BfJrMjzE.js} +1 -1
- package/assets/{index-Dszi0QdY.js → index-BgTSdPjs.js} +1 -1
- package/assets/{index-A3FZLzj3.js → index-BnBH1zrC.js} +1 -1
- package/assets/{index-Byg7B0_b.js → index-BnuBC6-d.js} +1 -1
- package/assets/{index-DLYbtrPe.js → index-BvjfhvDI.js} +1 -1
- package/assets/{index-BVd4ZdJq.js → index-C66Oc7kp.js} +1 -1
- package/assets/{index-B5h3vVYf.js → index-C8BMcDy_.js} +1 -1
- package/assets/{index-O1yzWoAv.js → index-CD0uXSEJ.js} +1 -1
- package/assets/{index-Dsn0zIY5.js → index-CDI7kJJr.js} +1 -1
- package/assets/{index-Cxhc7DpJ.js → index-CHYWTMjD.js} +1 -1
- package/assets/{index-BnOaEPvW.js → index-CIR5517N.js} +1 -1
- package/assets/{index-DsQmr35F.js → index-CSh9cI-m.js} +1 -1
- package/assets/{index-sq_FndL-.js → index-Cdm1s3zH.js} +1 -1
- package/assets/{index-Cs7bP6R-.js → index-Ce_zjJd0.js} +1 -1
- package/assets/{index-DXVriIPX.js → index-Cf-6nhZx.js} +3 -3
- package/assets/{index-DCn6TEiD.js → index-CszzzzlU.js} +3 -3
- package/assets/{index-LfJyON59.js → index-D057A5AW.js} +1 -1
- package/assets/{index-BwMXzWpM.js → index-D0nupp1L.js} +1 -1
- package/assets/{index-BYfSEJIM.js → index-D5ni4ZMT.js} +2 -2
- package/assets/{index-BRccxBUA.js → index-DKZkufa4.js} +1 -1
- package/assets/{index-WDtJA1fY.js → index-Duz4qBVw.js} +1 -1
- package/assets/{index-Dtw21-1a.js → index-DxlqWfyM.js} +1 -1
- package/assets/{index-DUi1yiuN.js → index-DzSyiFE3.js} +1 -1
- package/assets/{index-Cgt6J1qz.js → index-ESZ1UttR.js} +1 -1
- package/assets/{index-CysE-UTz.js → index-oiyTGfuR.js} +1 -1
- package/assets/{index-u7vr_P_s.js → index-q9Vudaup.js} +1 -1
- package/assets/{index-C3HRC3b5.js → index-te4VWNfY.js} +1 -1
- package/assets/{infoDiagram-f8f76790-Dmv1egEN.js → infoDiagram-f8f76790-CQWNDm6d.js} +1 -1
- package/assets/{infoDiagram-f8f76790-C9LQ9jd5.js → infoDiagram-f8f76790-D4GOLEO3.js} +1 -1
- package/assets/{journeyDiagram-49397b02-8CnesQvB.js → journeyDiagram-49397b02-2ir0vod-.js} +1 -1
- package/assets/{journeyDiagram-49397b02-LV1k8ByA.js → journeyDiagram-49397b02-BIR-UXT9.js} +1 -1
- package/assets/{layout-3nkAix10.js → layout-CYzCl7YP.js} +1 -1
- package/assets/{layout-BW8C-Xw4.js → layout-Cjlcubqs.js} +1 -1
- package/assets/{line-DDWqaSCo.js → line-B6TatEZ8.js} +1 -1
- package/assets/{line-U1joDaO1.js → line-qfwz7WRO.js} +1 -1
- package/assets/{linear-D8frs5RT.js → linear-GuBoF0OP.js} +1 -1
- package/assets/{linear-3k1Xl9ve.js → linear-ssbBIRl5.js} +1 -1
- package/assets/{main-hjIskWwz.js → main-B6qbLicq.js} +8 -8
- package/assets/{mermaid.core-BlObAm7H.js → mermaid.core-DOJyKoHR.js} +3 -3
- package/assets/{mindmap-definition-fc14e90a-go-0aDNp.js → mindmap-definition-fc14e90a-BN4fqdNM.js} +1 -1
- package/assets/{mindmap-definition-fc14e90a-DRTqIBGi.js → mindmap-definition-fc14e90a-qPR072_x.js} +1 -1
- package/assets/{model-benchmark-launcher-Dhybe1Ps.js → model-benchmark-launcher-CUPxnAZr.js} +1 -1
- package/assets/{model-benchmark-service-BlgtfJ25.js → model-benchmark-service-C3taFBGp.js} +1 -1
- package/assets/{model-selection-C9DVcl8A.js → model-selection-Da4xzp54.js} +1 -1
- package/assets/{photo-wall-splitter-BSRMMrLk.js → photo-wall-splitter-DN8Hms8E.js} +1 -1
- package/assets/{pieDiagram-8a3498a8-OgnCNkdZ.js → pieDiagram-8a3498a8-6gjBTuiK.js} +1 -1
- package/assets/{pieDiagram-8a3498a8-DsU04FDA.js → pieDiagram-8a3498a8-B_B-oMBm.js} +1 -1
- package/assets/{quadrantDiagram-120e2f19-CAKix819.js → quadrantDiagram-120e2f19-CGIYsVeK.js} +1 -1
- package/assets/{quadrantDiagram-120e2f19-B-qdqCsc.js → quadrantDiagram-120e2f19-DQlP5fyR.js} +1 -1
- package/assets/{requirementDiagram-deff3bca-BFiAHorQ.js → requirementDiagram-deff3bca-BhadGJas.js} +1 -1
- package/assets/{requirementDiagram-deff3bca-DCvuwhP4.js → requirementDiagram-deff3bca-CZrZs6WH.js} +1 -1
- package/assets/{sankeyDiagram-04a897e0-CW0FxDIH.js → sankeyDiagram-04a897e0-CYbsYQIC.js} +1 -1
- package/assets/{sankeyDiagram-04a897e0-DynB_N5t.js → sankeyDiagram-04a897e0-DLMtKqV7.js} +1 -1
- package/assets/{sequenceDiagram-704730f1-C3kzvK6i.js → sequenceDiagram-704730f1-CnMi1-vV.js} +1 -1
- package/assets/{sequenceDiagram-704730f1-iLPkDpBi.js → sequenceDiagram-704730f1-D5_Tbq78.js} +1 -1
- package/assets/{settings-dialog-CcLfJFr_.js → settings-dialog-BVG80WDy.js} +1 -1
- package/assets/{skill-dsl-parser-DrFEUbDY.js → skill-dsl-parser-C252Shcy.js} +1 -1
- package/assets/{stateDiagram-587899a1-fLTDppNO.js → stateDiagram-587899a1-BStwFkNh.js} +1 -1
- package/assets/{stateDiagram-587899a1-DbwUO5DV.js → stateDiagram-587899a1-DYdXq59h.js} +1 -1
- package/assets/{stateDiagram-v2-d93cdb3a-DzR2PasK.js → stateDiagram-v2-d93cdb3a--y2o64Ew.js} +1 -1
- package/assets/{stateDiagram-v2-d93cdb3a-aZJTxhK8.js → stateDiagram-v2-d93cdb3a-IdPKDi36.js} +1 -1
- package/assets/{styles-6aaf32cf-C_VEAaHX.js → styles-6aaf32cf-4WFibVVF.js} +1 -1
- package/assets/{styles-6aaf32cf-C5JfMGYv.js → styles-6aaf32cf-Cm63YNOe.js} +1 -1
- package/assets/{styles-9a916d00-BYSJ54L0.js → styles-9a916d00-B49ieQxk.js} +1 -1
- package/assets/{styles-9a916d00-C3gY_lFJ.js → styles-9a916d00-D3LwlgPD.js} +1 -1
- package/assets/{styles-c10674c1-ANPmaoE9.js → styles-c10674c1-DJhcCs3x.js} +1 -1
- package/assets/{styles-c10674c1-DXxQEnvg.js → styles-c10674c1-cbwmIB4x.js} +1 -1
- package/assets/{svgDrawCommon-08f97a94-c2dOJxSO.js → svgDrawCommon-08f97a94-C5ek8a-c.js} +1 -1
- package/assets/{svgDrawCommon-08f97a94-BVjA84-b.js → svgDrawCommon-08f97a94-c77e0hhb.js} +1 -1
- package/assets/{timeline-definition-85554ec2-6QIdYNFS.js → timeline-definition-85554ec2-7ZMOJP7x.js} +1 -1
- package/assets/{timeline-definition-85554ec2-BST8-Dw9.js → timeline-definition-85554ec2-BIhOlyVe.js} +1 -1
- package/assets/{tool-windows-Bd5iqcJh.js → tool-windows-BTXOQvEU.js} +10 -10
- package/assets/{ttd-dialog-Chz4Dc5q.js → ttd-dialog-CMzq1PeM.js} +4 -4
- package/assets/{use-runtime-models-NPMCne8X.js → use-runtime-models-C_YMetmY.js} +1 -1
- package/assets/{useCharacters-Yt_yZunw.js → useCharacters-6F7LfBD2.js} +1 -1
- package/assets/{useWorkflowSubmission-DNz90nBd.js → useWorkflowSubmission-B-0oH5Q6.js} +2 -2
- package/assets/{video-analyze-cG43kQp7.js → video-analyze-gJnLIFVx.js} +1 -1
- package/assets/{video-generation-CY32Hcvy.js → video-generation-D0RudPQ8.js} +1 -1
- package/assets/{video-recovery-service-DqRVY2GL.js → video-recovery-service-CRZVLLWA.js} +1 -1
- package/assets/{workflow-generation-utils-CqQgPCFy.js → workflow-generation-utils-5aqKk8qR.js} +2 -2
- package/assets/{workflow-submission-service-C55NPNuz.js → workflow-submission-service-C9Ph3Y2w.js} +1 -1
- package/assets/{xychartDiagram-e933f94c-DY34Q03N.js → xychartDiagram-e933f94c-9bdjNrcG.js} +1 -1
- package/assets/{xychartDiagram-e933f94c-DD9JQg-b.js → xychartDiagram-e933f94c-D6a2PcvQ.js} +1 -1
- package/changelog.json +15 -0
- package/idle-prefetch-manifest.json +302 -302
- package/manifest.json +3 -3
- package/package.json +1 -1
- package/precache-manifest.json +6 -6
- package/sw.js +5 -5
- package/version.json +6 -3
- package/assets/channel-Dx9ePqRL.js +0 -1
- package/assets/channel-YfSSwDXj.js +0 -1
- package/assets/clone-DSiLnhfM.js +0 -1
- package/assets/flowDiagram-v2-96b9c2cf-Bqr3L3y4.js +0 -1
- package/assets/flowDiagram-v2-96b9c2cf-gCWf76DS.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as l,hs as ne,al as x,br as re,bs as le,as as G,ar as te,y as s,kY as de,hM as oe,bx as ce,fF as R,bu as W,bt as X,bW as ue}from"./tool-windows-Bd5iqcJh.js";const pe=({images:o,onImagesChange:p,language:U="zh",disabled:m=!1,multiple:g=!0,maxCount:h=10,label:V,slotLabels:f,onError:t})=>{const[q,y]=l.useState(!1),[C,I]=l.useState(!1),[_,z]=l.useState(0),[j,w]=l.useState(null),F=l.useRef(null),B=l.useRef(null),{addAsset:S}=ne(),u={zh:{local:"本地",library:"素材库",dragHint:"拖拽图片到此处",pasteHint:"或 Ctrl+V 粘贴",invalidFile:"请上传图片文件",fileTooLarge:"图片大小不能超过 25MB",someFilesInvalid:"部分文件格式不支持或超过25MB限制",loadFailed:"加载图片失败",maxCountReached:"最多上传 {count} 张图片"},en:{local:"Local",library:"Library",dragHint:"Drop images here",pasteHint:"or Ctrl+V to paste",invalidFile:"Please upload image files",fileTooLarge:"Image size cannot exceed 25MB",someFilesInvalid:"Some files are not supported or exceed 25MB limit",loadFailed:"Failed to load image",maxCountReached:"Maximum {count} images allowed"}}[U],E=l.useCallback(e=>e.type.startsWith("image/")?e.size>25*1024*1024?(x.error(u.fileTooLarge),!1):!0:(x.error(u.invalidFile),!1),[u]),A=l.useCallback((e,a)=>new Promise((i,r)=>{const d=new FileReader;d.onload=()=>{i({url:d.result,name:a,file:(e instanceof File,e)})},d.onerror=r,d.readAsDataURL(e)}),[]),b=l.useCallback(async(e,a)=>{const r=Array.from(e).filter(E);if(r.length===0)return;g&&o.length+r.length>h&&(x.warning(u.maxCountReached.replace("{count}",String(h))),r.splice(h-o.length));const d=[];for(const n of r)try{let c=n;if(n.size>10*1024*1024){const N=re(n.size/1048576),v=x.loading({content:U==="zh"?`正在压缩图片 (${(n.size/1024/1024).toFixed(1)}MB)...`:`Compressing image (${(n.size/1024/1024).toFixed(1)}MB)...`,duration:0,placement:"top"});try{c=await le(n,N.targetSizeMB),x.close(v),x.success({content:U==="zh"?`压缩完成: ${(n.size/1024/1024).toFixed(1)}MB → ${(c.size/1024/1024).toFixed(1)}MB`:`Compressed: ${(n.size/1024/1024).toFixed(1)}MB → ${(c.size/1024/1024).toFixed(1)}MB`,duration:2})}catch(k){x.close(v),console.error("[ReferenceImageUpload] Compression failed:",k),t==null||t(U==="zh"?"图片压缩失败":"Image compression failed");continue}}d.push({blob:c,name:n.name})}catch(c){console.error("[ReferenceImageUpload] Error processing file:",c),t==null||t(u.loadFailed);continue}if(d.length!==0){d.forEach(({blob:n,name:c})=>{S(n,G.IMAGE,te.LOCAL,c).catch(N=>{console.warn("[ReferenceImageUpload] Failed to add asset to library:",N)})});try{const n=await Promise.all(d.map(({blob:c,name:N})=>A(c,N)));if(f&&a!==void 0){const c=[...o];c[a]=n[0],p(c.filter(Boolean))}else p(g?[...o,...n]:n.slice(0,1));t==null||t(null)}catch(n){console.error("[ReferenceImageUpload] Failed to process files:",n),t==null||t(u.loadFailed)}}},[o,g,h,f,U,E,A,S,p,t,u]),J=l.useCallback(e=>{const a=e.target.files;a&&a.length>0&&b(a,f?_:void 0),e.target.value=""},[b,f,_]),K=l.useCallback(async e=>{try{const i=await(await fetch(e.url)).blob(),r=new FileReader;r.onload=()=>{const d={url:r.result,name:e.name};if(f){const n=[...o];n[_]=d,p(n.filter(Boolean))}else if(g){if(o.length>=h){x.warning(u.maxCountReached.replace("{count}",String(h)));return}p([...o,d])}else p([d]);y(!1),t==null||t(null)},r.readAsDataURL(i)}catch(a){console.error("[ReferenceImageUpload] Failed to convert asset to base64:",a),t==null||t(u.loadFailed),y(!1)}},[o,g,h,f,_,p,t,u]),P=l.useCallback(e=>{e.preventDefault(),e.stopPropagation(),m||I(!0)},[m]),L=l.useCallback(e=>{var i;e.preventDefault(),e.stopPropagation();const a=(i=F.current)==null?void 0:i.getBoundingClientRect();if(a){const{clientX:r,clientY:d}=e;(r<a.left||r>a.right||d<a.top||d>a.bottom)&&I(!1)}},[]),$=l.useCallback(e=>{e.preventDefault(),e.stopPropagation()},[]),T=l.useCallback((e,a)=>{if(e.preventDefault(),e.stopPropagation(),I(!1),m)return;const i=e.dataTransfer.files;i&&i.length>0&&b(i,a)},[m,b]);l.useEffect(()=>{const e=async a=>{var N;if(m)return;const i=document.activeElement,r=F.current;if(!r||!(r.contains(i)||i===document.body||(i==null?void 0:i.tagName)==="BODY"))return;const n=(N=a.clipboardData)==null?void 0:N.items;if(!n)return;const c=[];for(let v=0;v<n.length;v++){const k=n[v];if(k.type.startsWith("image/")){const Y=k.getAsFile();Y&&c.push(Y)}}c.length>0&&(a.preventDefault(),b(c))};return document.addEventListener("paste",e),()=>{document.removeEventListener("paste",e)}},[m,b]);const Q=l.useCallback(e=>{const a=o.filter((i,r)=>r!==e);w(null),p(a)},[o,p]),O=l.useCallback(e=>{var a;e!==void 0&&z(e),(a=B.current)==null||a.click()},[]),H=l.useCallback(e=>{e!==void 0&&z(e),y(!0)},[]),Z=l.useCallback((e,a)=>{const i=a.currentTarget.getBoundingClientRect(),r=i.left+i.width/2,d=i.top-10;w({url:e,x:r,y:d})},[]),ee=l.useCallback(()=>{w(null)},[]),D=e=>s.jsxDEV("div",{className:`reference-image-upload__placeholder ${C?"reference-image-upload__placeholder--dragging":""}`,onDragEnter:P,onDragLeave:L,onDragOver:$,onDrop:a=>T(a,e),children:s.jsxDEV("div",{className:"reference-image-upload__buttons",children:[s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(W,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:401,columnNumber:17},void 0),onClick:()=>O(e),disabled:m,"data-track":"reference_image_upload_local",className:"reference-image-upload__btn",children:u.local},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:399,columnNumber:9},void 0),s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(X,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:411,columnNumber:17},void 0),onClick:()=>H(e),disabled:m,"data-track":"reference_image_upload_library",className:"reference-image-upload__btn",children:u.library},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:409,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:398,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:391,columnNumber:5},void 0),M=(e,a)=>s.jsxDEV("div",{className:"reference-image-upload__preview",onMouseEnter:i=>Z(e.url,i),onMouseLeave:ee,children:[s.jsxDEV("img",{src:e.url,alt:e.name,className:"reference-image-upload__image"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:431,columnNumber:7},void 0),s.jsxDEV("button",{type:"button",className:"reference-image-upload__remove",onClick:()=>Q(a),disabled:m,"data-track":"reference_image_upload_remove",children:s.jsxDEV(ue,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:443,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:436,columnNumber:7},void 0),f&&f[a]&&s.jsxDEV("div",{className:"reference-image-upload__slot-label",children:f[a]},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:446,columnNumber:9},void 0)]},a,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:425,columnNumber:5},void 0),ae=()=>f?s.jsxDEV("div",{className:"reference-image-upload__slots",children:f.map((e,a)=>{const i=o[a];return s.jsxDEV("div",{className:"reference-image-upload__slot",children:[s.jsxDEV("div",{className:"reference-image-upload__slot-title",children:e},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:463,columnNumber:15},void 0),i?M(i,a):s.jsxDEV("div",{className:`reference-image-upload__slot-placeholder ${C?"reference-image-upload__slot-placeholder--dragging":""}`,onDragEnter:P,onDragLeave:L,onDragOver:$,onDrop:r=>T(r,a),children:s.jsxDEV("div",{className:"reference-image-upload__slot-buttons",children:[s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(W,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:477,columnNumber:29},void 0),onClick:()=>O(a),disabled:m,"data-track":"reference_image_upload_slot_local",className:"reference-image-upload__slot-btn",children:u.local},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:475,columnNumber:21},void 0),s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(X,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:487,columnNumber:29},void 0),onClick:()=>H(a),disabled:m,"data-track":"reference_image_upload_slot_library",className:"reference-image-upload__slot-btn",children:u.library},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:485,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:474,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:467,columnNumber:17},void 0)]},a,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:462,columnNumber:13},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:458,columnNumber:7},void 0):null,se=()=>{const e=g&&o.length<h;return s.jsxDEV("div",{className:"reference-image-upload__grid",children:[o.map((a,i)=>M(a,i)),e&&D(),o.length===0&&!e&&D()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:510,columnNumber:7},void 0)},ie=()=>o.length>0?s.jsxDEV("div",{className:"reference-image-upload__single",children:[M(o[0],0),s.jsxDEV("div",{className:"reference-image-upload__replace",children:D()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:524,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:522,columnNumber:9},void 0):D();return s.jsxDEV(s.Fragment,{children:[j&&de.createPortal(s.jsxDEV("div",{className:"reference-image-upload__hover-preview",style:{left:`${j.x}px`,top:`${j.y}px`,transform:"translate(-50%, -100%)"},children:s.jsxDEV("img",{src:j.url,alt:"Preview"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:545,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:537,columnNumber:9},void 0),document.body),s.jsxDEV("div",{ref:F,className:`reference-image-upload ${m?"reference-image-upload--disabled":""}`,tabIndex:0,children:[V&&s.jsxDEV("div",{className:"reference-image-upload__label",children:V},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:556,columnNumber:11},void 0),s.jsxDEV("input",{ref:B,type:"file",accept:"image/*",multiple:g&&!f,onChange:J,className:"reference-image-upload__input",disabled:m},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:559,columnNumber:9},void 0),f?ae():g?se():ie(),q&&s.jsxDEV(oe,{isOpen:q,onClose:()=>y(!1),mode:ce.SELECT,filterType:G.IMAGE,onSelect:K},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:572,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:550,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:534,columnNumber:5},void 0)};export{pe as R};
|
|
1
|
+
import{r as l,hs as ne,al as x,br as re,bs as le,as as G,ar as te,y as s,kY as de,hM as oe,bx as ce,fF as R,bu as W,bt as X,bW as ue}from"./tool-windows-BTXOQvEU.js";const pe=({images:o,onImagesChange:p,language:U="zh",disabled:m=!1,multiple:g=!0,maxCount:h=10,label:V,slotLabels:f,onError:t})=>{const[q,y]=l.useState(!1),[C,I]=l.useState(!1),[_,z]=l.useState(0),[j,w]=l.useState(null),F=l.useRef(null),B=l.useRef(null),{addAsset:S}=ne(),u={zh:{local:"本地",library:"素材库",dragHint:"拖拽图片到此处",pasteHint:"或 Ctrl+V 粘贴",invalidFile:"请上传图片文件",fileTooLarge:"图片大小不能超过 25MB",someFilesInvalid:"部分文件格式不支持或超过25MB限制",loadFailed:"加载图片失败",maxCountReached:"最多上传 {count} 张图片"},en:{local:"Local",library:"Library",dragHint:"Drop images here",pasteHint:"or Ctrl+V to paste",invalidFile:"Please upload image files",fileTooLarge:"Image size cannot exceed 25MB",someFilesInvalid:"Some files are not supported or exceed 25MB limit",loadFailed:"Failed to load image",maxCountReached:"Maximum {count} images allowed"}}[U],E=l.useCallback(e=>e.type.startsWith("image/")?e.size>25*1024*1024?(x.error(u.fileTooLarge),!1):!0:(x.error(u.invalidFile),!1),[u]),A=l.useCallback((e,a)=>new Promise((i,r)=>{const d=new FileReader;d.onload=()=>{i({url:d.result,name:a,file:(e instanceof File,e)})},d.onerror=r,d.readAsDataURL(e)}),[]),b=l.useCallback(async(e,a)=>{const r=Array.from(e).filter(E);if(r.length===0)return;g&&o.length+r.length>h&&(x.warning(u.maxCountReached.replace("{count}",String(h))),r.splice(h-o.length));const d=[];for(const n of r)try{let c=n;if(n.size>10*1024*1024){const N=re(n.size/1048576),v=x.loading({content:U==="zh"?`正在压缩图片 (${(n.size/1024/1024).toFixed(1)}MB)...`:`Compressing image (${(n.size/1024/1024).toFixed(1)}MB)...`,duration:0,placement:"top"});try{c=await le(n,N.targetSizeMB),x.close(v),x.success({content:U==="zh"?`压缩完成: ${(n.size/1024/1024).toFixed(1)}MB → ${(c.size/1024/1024).toFixed(1)}MB`:`Compressed: ${(n.size/1024/1024).toFixed(1)}MB → ${(c.size/1024/1024).toFixed(1)}MB`,duration:2})}catch(k){x.close(v),console.error("[ReferenceImageUpload] Compression failed:",k),t==null||t(U==="zh"?"图片压缩失败":"Image compression failed");continue}}d.push({blob:c,name:n.name})}catch(c){console.error("[ReferenceImageUpload] Error processing file:",c),t==null||t(u.loadFailed);continue}if(d.length!==0){d.forEach(({blob:n,name:c})=>{S(n,G.IMAGE,te.LOCAL,c).catch(N=>{console.warn("[ReferenceImageUpload] Failed to add asset to library:",N)})});try{const n=await Promise.all(d.map(({blob:c,name:N})=>A(c,N)));if(f&&a!==void 0){const c=[...o];c[a]=n[0],p(c.filter(Boolean))}else p(g?[...o,...n]:n.slice(0,1));t==null||t(null)}catch(n){console.error("[ReferenceImageUpload] Failed to process files:",n),t==null||t(u.loadFailed)}}},[o,g,h,f,U,E,A,S,p,t,u]),J=l.useCallback(e=>{const a=e.target.files;a&&a.length>0&&b(a,f?_:void 0),e.target.value=""},[b,f,_]),K=l.useCallback(async e=>{try{const i=await(await fetch(e.url)).blob(),r=new FileReader;r.onload=()=>{const d={url:r.result,name:e.name};if(f){const n=[...o];n[_]=d,p(n.filter(Boolean))}else if(g){if(o.length>=h){x.warning(u.maxCountReached.replace("{count}",String(h)));return}p([...o,d])}else p([d]);y(!1),t==null||t(null)},r.readAsDataURL(i)}catch(a){console.error("[ReferenceImageUpload] Failed to convert asset to base64:",a),t==null||t(u.loadFailed),y(!1)}},[o,g,h,f,_,p,t,u]),P=l.useCallback(e=>{e.preventDefault(),e.stopPropagation(),m||I(!0)},[m]),L=l.useCallback(e=>{var i;e.preventDefault(),e.stopPropagation();const a=(i=F.current)==null?void 0:i.getBoundingClientRect();if(a){const{clientX:r,clientY:d}=e;(r<a.left||r>a.right||d<a.top||d>a.bottom)&&I(!1)}},[]),$=l.useCallback(e=>{e.preventDefault(),e.stopPropagation()},[]),T=l.useCallback((e,a)=>{if(e.preventDefault(),e.stopPropagation(),I(!1),m)return;const i=e.dataTransfer.files;i&&i.length>0&&b(i,a)},[m,b]);l.useEffect(()=>{const e=async a=>{var N;if(m)return;const i=document.activeElement,r=F.current;if(!r||!(r.contains(i)||i===document.body||(i==null?void 0:i.tagName)==="BODY"))return;const n=(N=a.clipboardData)==null?void 0:N.items;if(!n)return;const c=[];for(let v=0;v<n.length;v++){const k=n[v];if(k.type.startsWith("image/")){const Y=k.getAsFile();Y&&c.push(Y)}}c.length>0&&(a.preventDefault(),b(c))};return document.addEventListener("paste",e),()=>{document.removeEventListener("paste",e)}},[m,b]);const Q=l.useCallback(e=>{const a=o.filter((i,r)=>r!==e);w(null),p(a)},[o,p]),O=l.useCallback(e=>{var a;e!==void 0&&z(e),(a=B.current)==null||a.click()},[]),H=l.useCallback(e=>{e!==void 0&&z(e),y(!0)},[]),Z=l.useCallback((e,a)=>{const i=a.currentTarget.getBoundingClientRect(),r=i.left+i.width/2,d=i.top-10;w({url:e,x:r,y:d})},[]),ee=l.useCallback(()=>{w(null)},[]),D=e=>s.jsxDEV("div",{className:`reference-image-upload__placeholder ${C?"reference-image-upload__placeholder--dragging":""}`,onDragEnter:P,onDragLeave:L,onDragOver:$,onDrop:a=>T(a,e),children:s.jsxDEV("div",{className:"reference-image-upload__buttons",children:[s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(W,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:401,columnNumber:17},void 0),onClick:()=>O(e),disabled:m,"data-track":"reference_image_upload_local",className:"reference-image-upload__btn",children:u.local},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:399,columnNumber:9},void 0),s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(X,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:411,columnNumber:17},void 0),onClick:()=>H(e),disabled:m,"data-track":"reference_image_upload_library",className:"reference-image-upload__btn",children:u.library},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:409,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:398,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:391,columnNumber:5},void 0),M=(e,a)=>s.jsxDEV("div",{className:"reference-image-upload__preview",onMouseEnter:i=>Z(e.url,i),onMouseLeave:ee,children:[s.jsxDEV("img",{src:e.url,alt:e.name,className:"reference-image-upload__image"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:431,columnNumber:7},void 0),s.jsxDEV("button",{type:"button",className:"reference-image-upload__remove",onClick:()=>Q(a),disabled:m,"data-track":"reference_image_upload_remove",children:s.jsxDEV(ue,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:443,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:436,columnNumber:7},void 0),f&&f[a]&&s.jsxDEV("div",{className:"reference-image-upload__slot-label",children:f[a]},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:446,columnNumber:9},void 0)]},a,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:425,columnNumber:5},void 0),ae=()=>f?s.jsxDEV("div",{className:"reference-image-upload__slots",children:f.map((e,a)=>{const i=o[a];return s.jsxDEV("div",{className:"reference-image-upload__slot",children:[s.jsxDEV("div",{className:"reference-image-upload__slot-title",children:e},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:463,columnNumber:15},void 0),i?M(i,a):s.jsxDEV("div",{className:`reference-image-upload__slot-placeholder ${C?"reference-image-upload__slot-placeholder--dragging":""}`,onDragEnter:P,onDragLeave:L,onDragOver:$,onDrop:r=>T(r,a),children:s.jsxDEV("div",{className:"reference-image-upload__slot-buttons",children:[s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(W,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:477,columnNumber:29},void 0),onClick:()=>O(a),disabled:m,"data-track":"reference_image_upload_slot_local",className:"reference-image-upload__slot-btn",children:u.local},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:475,columnNumber:21},void 0),s.jsxDEV(R,{variant:"outline",icon:s.jsxDEV(X,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:487,columnNumber:29},void 0),onClick:()=>H(a),disabled:m,"data-track":"reference_image_upload_slot_library",className:"reference-image-upload__slot-btn",children:u.library},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:485,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:474,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:467,columnNumber:17},void 0)]},a,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:462,columnNumber:13},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:458,columnNumber:7},void 0):null,se=()=>{const e=g&&o.length<h;return s.jsxDEV("div",{className:"reference-image-upload__grid",children:[o.map((a,i)=>M(a,i)),e&&D(),o.length===0&&!e&&D()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:510,columnNumber:7},void 0)},ie=()=>o.length>0?s.jsxDEV("div",{className:"reference-image-upload__single",children:[M(o[0],0),s.jsxDEV("div",{className:"reference-image-upload__replace",children:D()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:524,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:522,columnNumber:9},void 0):D();return s.jsxDEV(s.Fragment,{children:[j&&de.createPortal(s.jsxDEV("div",{className:"reference-image-upload__hover-preview",style:{left:`${j.x}px`,top:`${j.y}px`,transform:"translate(-50%, -100%)"},children:s.jsxDEV("img",{src:j.url,alt:"Preview"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:545,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:537,columnNumber:9},void 0),document.body),s.jsxDEV("div",{ref:F,className:`reference-image-upload ${m?"reference-image-upload--disabled":""}`,tabIndex:0,children:[V&&s.jsxDEV("div",{className:"reference-image-upload__label",children:V},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:556,columnNumber:11},void 0),s.jsxDEV("input",{ref:B,type:"file",accept:"image/*",multiple:g&&!f,onChange:J,className:"reference-image-upload__input",disabled:m},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:559,columnNumber:9},void 0),f?ae():g?se():ie(),q&&s.jsxDEV(oe,{isOpen:q,onClose:()=>y(!1),mode:ce.SELECT,filterType:G.IMAGE,onSelect:K},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:572,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:550,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:534,columnNumber:5},void 0)};export{pe as R};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r,ie as ls,y as s,am as le,fF as v,dp as cs,al as o,bV as w,jE as sa,i9 as ge,jF as aa,jG as ds,aI as ss,hW as ve,jH as ia,fP as ue,eK as ra,bL as ta,jI as na,at as as,h1 as p,h0 as Q,h8 as is,dj as rs,jJ as os,jK as ua,jL as la,jM as ca,ho as da,ig as oa,ih as ma,jN as pa,ia as fa,jO as ha,jP as Na,jQ as xa,ii as ka,jR as ba,jS as ga,jT as ae,ij as va,d2 as ya,fR as ja,cX as ts,jU as ns,jV as ne,g$ as be,eI as qa,jW as us,jX as wa,jY as Ca,aw as Da,jZ as Ea,j_ as Ua}from"./tool-windows-Bd5iqcJh.js";import{T as Va,C as _a,u as ms,V as Ta,a as Ia}from"./useCharacters-Yt_yZunw.js";/* empty css */import"./main-hjIskWwz.js";const Pa=30,Sa=({onPreviewOpen:t,onDownload:h,className:c})=>{const[d,S]=r.useState([]),[L,y]=r.useState(!0),[C,D]=r.useState(!1),[M,$]=r.useState(!1),x=r.useRef(0),z=r.useRef(null),V=r.useCallback(async m=>{try{return await ls.getArchivedTasks(m,Pa)}catch{return{tasks:[],hasMore:!1}}},[]);r.useEffect(()=>{let m=!1;return y(!0),x.current=0,V(0).then(b=>{m||(S(b.tasks),$(b.hasMore),x.current=b.tasks.length,y(!1))}),()=>{m=!0}},[V]);const R=r.useCallback(async()=>{if(C||!M)return;D(!0);const m=await V(x.current);S(b=>[...b,...m.tasks]),$(m.hasMore),x.current+=m.tasks.length,D(!1)},[C,M,V]);return r.useEffect(()=>{const m=z.current;if(!m)return;const b=()=>{m.scrollHeight-m.scrollTop-m.clientHeight<200&&R()};return m.addEventListener("scroll",b,{passive:!0}),()=>m.removeEventListener("scroll",b)},[R]),L?s.jsxDEV("div",{className:"task-queue-panel__empty",children:[s.jsxDEV(le,{size:"small"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/ArchivedTaskList.tsx",lineNumber:89,columnNumber:9},void 0),s.jsxDEV("div",{className:"task-queue-panel__empty-text",children:"加载历史任务..."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/ArchivedTaskList.tsx",lineNumber:90,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/ArchivedTaskList.tsx",lineNumber:88,columnNumber:7},void 0):d.length===0?s.jsxDEV("div",{className:"task-queue-panel__empty",children:[s.jsxDEV("div",{className:"task-queue-panel__empty-icon",children:"📦"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/ArchivedTaskList.tsx",lineNumber:98,columnNumber:9},void 0),s.jsxDEV("div",{className:"task-queue-panel__empty-text",children:"暂无历史任务"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/ArchivedTaskList.tsx",lineNumber:99,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/ArchivedTaskList.tsx",lineNumber:97,columnNumber:7},void 0):s.jsxDEV("div",{ref:z,className:c,style:{overflow:"auto",height:"100%"},children:[d.map(m=>s.jsxDEV(Va,{task:m,onPreviewOpen:t?()=>t(m.id):void 0,onDownload:h},m.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/ArchivedTaskList.tsx",lineNumber:111,columnNumber:9},void 0)),M&&s.jsxDEV("div",{style:{padding:"12px",textAlign:"center"},children:C?s.jsxDEV(le,{size:"small"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/ArchivedTaskList.tsx",lineNumber:121,columnNumber:13},void 0):s.jsxDEV(v,{size:"small",variant:"text",theme:"default",onClick:R,children:"加载更多"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/ArchivedTaskList.tsx",lineNumber:123,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/ArchivedTaskList.tsx",lineNumber:119,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/ArchivedTaskList.tsx",lineNumber:105,columnNumber:5},void 0)},La=({character:t,onDelete:h,onSelect:c,compact:d=!1})=>{const[S,L]=r.useState(!1),y=t.status==="processing"||t.status==="pending",C=t.status==="failed",D=t.status==="completed",M=r.useCallback(async m=>{if(m.stopPropagation(),!t.username)return;const b=`@${t.username}`;try{await cs(b),o.success(`已复制: ${b}`)}catch(k){console.error("Failed to copy:",k),o.error("复制失败")}},[t.username]),$=r.useCallback(()=>{D&&c&&c(t)},[D,c,t]),x=r.useCallback(m=>{m.stopPropagation(),h==null||h(t.id)},[h,t.id]),z=r.useCallback(m=>{m.stopPropagation(),D&&t.profilePictureUrl&&L(!0)},[D,t.profilePictureUrl]),V=()=>t.profilePictureUrl||D?s.jsxDEV(w,{content:"点击查看大图",children:s.jsxDEV(_a,{characterId:t.id,profilePictureUrl:t.profilePictureUrl,alt:t.username||"Character",className:"character-card__avatar-img",onClick:z},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:94,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:93,columnNumber:9},void 0):s.jsxDEV("div",{className:"character-card__avatar-placeholder",children:s.jsxDEV(ds,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:106,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:105,columnNumber:7},void 0),R=()=>y?s.jsxDEV("div",{className:"character-card__status character-card__status--processing",children:[s.jsxDEV(le,{size:"small"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:116,columnNumber:11},void 0),s.jsxDEV("span",{children:"创建中..."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:117,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:115,columnNumber:9},void 0):C?s.jsxDEV("div",{className:"character-card__status character-card__status--failed",children:["创建失败: ",t.error||"未知错误"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:123,columnNumber:9},void 0):null;return d?s.jsxDEV("div",{className:`character-card character-card--compact ${y?"character-card--loading":""} ${C?"character-card--failed":""}`,onClick:$,children:[s.jsxDEV("div",{className:"character-card__avatar",children:V()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:140,columnNumber:9},void 0),s.jsxDEV("span",{className:"character-card__username-text",children:t.username||"创建中..."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:141,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:134,columnNumber:7},void 0):s.jsxDEV("div",{className:`character-card ${y?"character-card--loading":""} ${C?"character-card--failed":""}`,onClick:$,children:[s.jsxDEV("div",{className:"character-card__avatar",children:V()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:156,columnNumber:7},void 0),s.jsxDEV("div",{className:"character-card__info",children:[D&&t.username?s.jsxDEV(w,{content:"点击复制",children:s.jsxDEV("div",{className:"character-card__username",onClick:M,children:["@",t.username,s.jsxDEV(sa,{className:"character-card__username-copy"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:168,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:163,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:162,columnNumber:11},void 0):s.jsxDEV("div",{className:"character-card__username",style:{cursor:"default"},children:y?"创建中...":"角色"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:172,columnNumber:11},void 0),t.id&&s.jsxDEV(w,{content:t.id,placement:"bottom",children:s.jsxDEV("div",{className:"character-card__source",children:t.id},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:183,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:182,columnNumber:11},void 0),R()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:159,columnNumber:7},void 0),s.jsxDEV("div",{className:"character-card__actions",children:s.jsxDEV(w,{content:"删除角色",children:s.jsxDEV(v,{size:"small",variant:"text",theme:"danger",icon:s.jsxDEV(ge,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:198,columnNumber:19},void 0),"data-track":"character_click_delete",onClick:x},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:194,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:193,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:192,columnNumber:7},void 0),t.profilePictureUrl&&s.jsxDEV(aa,{visible:S,onClose:()=>L(!1),items:[{url:t.profilePictureUrl,type:"image",title:`@${t.username||"Character"}`}]},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:207,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:149,columnNumber:5},void 0)},Qa=({onSelect:t,completedOnly:h=!1,maxItems:c,showHeader:d=!0,title:S="角色列表"})=>{const{characters:L,completedCharacters:y,pendingCharacters:C,isLoading:D,deleteCharacter:M,refreshCharacters:$}=ms(),[x,z]=ss.useState(null),V=ss.useMemo(()=>{let k=h?y:L;return k=[...k].sort((ce,de)=>de.createdAt-ce.createdAt),c&&k.length>c&&(k=k.slice(0,c)),k},[h,L,y,c]),R=r.useCallback(k=>{z(k)},[]),m=r.useCallback(async()=>{if(!x)return;await M(x)?o.success("角色已删除"):o.error("删除失败"),z(null)},[x,M]),b=r.useCallback(async()=>{await $(),o.success("已刷新")},[$]);return D?s.jsxDEV("div",{className:"character-list__loading",children:[s.jsxDEV(le,{size:"small"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:89,columnNumber:9},void 0),s.jsxDEV("span",{children:"加载中..."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:90,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:88,columnNumber:7},void 0):V.length===0?s.jsxDEV("div",{className:"character-list",children:[d&&s.jsxDEV("div",{className:"character-list__header",children:[s.jsxDEV("h4",{children:S},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:101,columnNumber:13},void 0),s.jsxDEV(v,{size:"small",variant:"text",icon:s.jsxDEV(ve,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:105,columnNumber:21},void 0),"data-track":"character_click_refresh",onClick:b},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:102,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:100,columnNumber:11},void 0),s.jsxDEV("div",{className:"character-list__empty",children:[s.jsxDEV("div",{className:"character-list__empty-icon",children:s.jsxDEV(ia,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:113,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:112,columnNumber:11},void 0),s.jsxDEV("div",{children:"暂无角色"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:115,columnNumber:11},void 0),s.jsxDEV("div",{style:{fontSize:"12px",marginTop:"4px",color:"#999"},children:"从已完成的 Sora-2 视频中提取角色"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:116,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:111,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:98,columnNumber:7},void 0):s.jsxDEV("div",{className:"character-list",children:[d&&s.jsxDEV("div",{className:"character-list__header",children:[s.jsxDEV("h4",{children:[S,C.length>0&&s.jsxDEV("span",{style:{fontWeight:"normal",fontSize:"12px",color:"#666",marginLeft:"8px"},children:["(",C.length," 创建中)"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:131,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:128,columnNumber:11},void 0),s.jsxDEV(v,{size:"small",variant:"text",icon:s.jsxDEV(ve,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:139,columnNumber:19},void 0),"data-track":"character_click_refresh",onClick:b},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:136,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:127,columnNumber:9},void 0),s.jsxDEV("div",{className:"character-list__items",children:V.map(k=>s.jsxDEV(La,{character:k,onDelete:R,onSelect:t},k.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:148,columnNumber:11},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:146,columnNumber:7},void 0),s.jsxDEV(ue,{open:!!x,title:"确认删除",description:"确定要删除此角色吗?删除后将无法在提示词中使用该角色。",confirmText:"删除",cancelText:"取消",danger:!0,onOpenChange:k=>{k||z(null)},onConfirm:m},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:158,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:125,columnNumber:5},void 0)},{TabPanel:se}=os,Ma="task-queue-drawer-width";function $a(t){var h,c,d;return Array.isArray((h=t.result)==null?void 0:h.urls)&&t.result.urls.length>0?t.result.urls.length:(c=t.result)!=null&&c.url||(d=t.result)!=null&&d.chatResponse||ae(t)?1:0}function za(t){const h=$a(t);return{taskId:t.id,taskType:t.type,taskStatus:t.status,model:typeof t.params.model=="string"&&t.params.model.trim()?t.params.model:void 0,resultCount:h||void 0,hasMultipleResults:h>1}}const Ha=({expanded:t,onClose:h,onTaskAction:c})=>{const{tasks:d,activeTasks:S,completedTasks:L,failedTasks:y,cancelledTasks:C,isLoading:D,isLoadingMore:M,hasMore:$,totalCount:x,loadedCount:z,loadMore:V,retryTask:R,deleteTask:m,clearCompleted:b,clearFailed:k,batchDeleteTasks:ce,batchRetryTasks:de,batchCancelTasks:ps}=ra(),{board:G,openDialog:ye}=ta(),{characters:je}=ms(),[A,fs]=r.useState("all"),[hs,oe]=r.useState(!1),[qe,Ns]=r.useState("completed"),[ie,xs]=r.useState(""),[E,X]=r.useState("all"),[Aa,we]=r.useState(null),[ks,me]=r.useState(!1),[bs,gs]=r.useState(0),[vs,ys]=r.useState("single"),[Ce,pe]=r.useState(!1),[De,fe]=r.useState(""),[js,he]=r.useState(!1),[Ne,Ee]=r.useState(null),[Ue,xe]=r.useState(null),[H,ee]=r.useState(!1),[N,K]=r.useState(new Set),[qs,ke]=r.useState(!1),[Ve,_e]=r.useState(null),{isConfigured:ws}=na(),[re,Te]=r.useState(!1),[Cs,te]=r.useState(0),Ie=E==="character";r.useEffect(()=>{as.initCacheStatus()},[]),r.useEffect(()=>{if(!t)return;let a=!1;return ls.getArchivedTaskCount().then(e=>{a||_e(e)}).catch(()=>{a||_e(0)}),()=>{a=!0}},[t,A]);const B=r.useMemo(()=>{let a;switch(A){case"all":a=d;break;case"active":a=S;break;case"completed":a=L;break;case"failed":a=y;break;case"cancelled":a=C;break;case"archived":return[];default:a=d}if(E!=="all"&&E!=="character"&&(a=a.filter(e=>e.type===(E==="image"?p.IMAGE:E==="audio"?p.AUDIO:E==="text"?p.CHAT:p.VIDEO))),ie.trim()){const e=ie.toLowerCase().trim();a=a.filter(i=>{var l,g,j,q,W;return i.params.prompt.toLowerCase().includes(e)||String(((l=i.result)==null?void 0:l.title)||"").toLowerCase().includes(e)||String(((g=i.result)==null?void 0:g.lyricsTitle)||"").toLowerCase().includes(e)||String(((j=i.result)==null?void 0:j.lyricsText)||"").toLowerCase().includes(e)||String(((q=i.result)==null?void 0:q.chatResponse)||"").toLowerCase().includes(e)||(((W=i.result)==null?void 0:W.lyricsTags)||[]).some(u=>String(u).toLowerCase().includes(e))})}return[...a].sort((e,i)=>i.createdAt-e.createdAt)},[A,d,S,L,y,C,E,ie]),Ds=a=>{Ns(a),oe(!0)},Es=()=>{qe==="completed"?b():k(),oe(!1)},Us=a=>{R(a),c==null||c("retry",a)},Vs=a=>{Ee(a),he(!0)},_s=()=>{Ne&&(m(Ne),c==null||c("delete",Ne)),he(!1),Ee(null)},Ts=()=>{H?(ee(!1),K(new Set)):ee(!0)},Is=(a,e)=>{K(i=>{const l=new Set(i);return e?l.add(a):l.delete(a),l})},Ps=()=>{const a=B.map(e=>e.id);K(new Set(a))},Ss=()=>{K(new Set)},Ls=()=>{N.size!==0&&ke(!0)},Qs=()=>{ce(Array.from(N)),K(new Set),ee(!1),ke(!1),o.success(`已删除 ${N.size} 个任务`)},Ms=()=>{const a=Array.from(N).filter(e=>{const i=d.find(l=>l.id===e);return(i==null?void 0:i.status)===Q.FAILED||(i==null?void 0:i.status)===Q.CANCELLED});if(a.length===0){o.warning("没有可重试的任务");return}de(a),K(new Set),ee(!1),o.success(`已重试 ${a.length} 个任务`)},Pe=r.useMemo(()=>Array.from(N).filter(a=>{const e=d.find(i=>i.id===a);return(e==null?void 0:e.status)===Q.FAILED||(e==null?void 0:e.status)===Q.CANCELLED}).length,[N,d]),Se=r.useMemo(()=>Array.from(N).filter(a=>{const e=d.find(i=>i.id===a);return(e==null?void 0:e.status)===Q.PENDING||(e==null?void 0:e.status)===Q.PROCESSING}).length,[N,d]),Le=r.useMemo(()=>Array.from(N).filter(a=>{const e=d.find(i=>i.id===a);return(e==null?void 0:e.status)===Q.COMPLETED&&((e==null?void 0:e.type)===p.IMAGE||(e==null?void 0:e.type)===p.VIDEO)}).length,[N,d]),Y=r.useMemo(()=>({all:d.length,image:d.filter(a=>a.type===p.IMAGE).length,video:d.filter(a=>a.type===p.VIDEO).length,audio:d.filter(a=>a.type===p.AUDIO).length,text:d.filter(a=>a.type===p.CHAT).length,character:je.length}),[d,je]),$s=()=>{const a=Array.from(N).filter(e=>{const i=d.find(l=>l.id===e);return(i==null?void 0:i.status)===Q.PENDING||(i==null?void 0:i.status)===Q.PROCESSING});if(a.length===0){o.warning("没有可取消的进行中任务");return}ps(a),K(new Set),ee(!1),o.success(`已取消 ${a.length} 个任务`)},zs=async()=>{const a=Array.from(N).filter(e=>{const i=d.find(l=>l.id===e);return(i==null?void 0:i.status)===Q.COMPLETED&&((i==null?void 0:i.type)===p.IMAGE||(i==null?void 0:i.type)===p.VIDEO)});if(!(a.length===0||re)){Te(!0),te(0);try{const e=await ga.syncMultipleTasks(a,(i,l)=>{te(Math.round(i/l*100))});console.log("[TaskQueuePanel] Batch sync result:",e),te(100),e.succeeded>0&&o.success(`已同步 ${e.succeeded} 个任务`),e.failed>0&&o.warning(`${e.failed} 个任务同步失败`)}catch(e){console.error("[TaskQueuePanel] Batch sync failed:",e),o.error("同步失败,请稍后重试")}finally{Te(!1),te(0)}}},Qe=async a=>{const e=d.find(l=>l.id===a);if(e&&ae(e)){o.info("歌词任务支持复制或插入画布");return}if(!e)return;const i=va(e);if(i.length!==0)try{const l=await ya(i);l.openedCount>0&&l.downloadedCount===0?o.success(l.openedCount>1?`已打开 ${l.openedCount} 个链接,请在新标签页下载`:"资源不支持直接下载,已打开链接"):o.success(e.type===p.AUDIO?i.length>1?"多条音频已开始下载":"音频下载成功":i.length>1?"多图已开始下载":"下载成功"),ja.track("generation_result_download",{...za(e),downloadedCount:l.downloadedCount,openedCount:l.openedCount}),c==null||c("download",a)}catch(l){console.error("Download failed:",l),o.error("下载失败,请稍后重试")}},As=async a=>{const e=d.find(l=>l.id===a);if(!e||!ae(e)){o.warning("暂无可复制的歌词");return}const i=ns(e);if(!i.trim()){o.warning("暂无可复制的歌词");return}try{await cs(i),o.success("歌词已复制"),c==null||c("copy",a)}catch(l){console.error("Failed to copy lyrics:",l),o.error("复制失败,请稍后重试")}},Rs=async a=>{var i,l,g,j,q,W,u,Z,O,J,U,_;const e=d.find(n=>n.id===a);if(!e||!G){console.warn("Cannot insert: task result or board not available"),o.warning("无法插入:白板未就绪");return}if(!((i=e.result)!=null&&i.url)&&!((g=(l=e.result)==null?void 0:l.urls)!=null&&g.length)&&!ae(e)){const n=e.type===p.CHAT?(j=e.result)==null?void 0:j.chatResponse:void 0;if(n!=null&&n.trim()){const f=(e.params.prompt||"").slice(0,20)||void 0;await ne({items:[{type:"text",content:n,label:f}]}),o.success("文本已插入到白板"),be.markAsInserted(a,"manual"),c==null||c("insert",a);return}console.warn("Cannot insert: task result is empty"),o.warning("无法插入:任务结果为空");return}try{const n=e.result;if(e.type===p.IMAGE){const f=(q=n.urls)!=null&&q.length?n.urls:[n.url];for(const T of f)await rs(G,is(T));o.success(f.length>1?"多图已插入到白板":"图片已插入到白板")}else if(e.type===p.VIDEO)await qa(G,n.url),o.success("视频已插入到白板");else if(e.type===p.AUDIO){if(ae(e)){const F=us(n,e.params.title||e.params.prompt)||(e.params.prompt||"").slice(0,20)||void 0;await ne({items:[{type:"text",content:ns(e),label:F,metadata:{title:us(n,e.params.title||e.params.prompt),tags:wa(n)}}]}),o.success("歌词已插入到白板"),be.markAsInserted(a,"manual"),c==null||c("insert",a);return}const f=Ca(n),T=(u=(W=n.clips)==null?void 0:W[0])==null?void 0:u.duration,I={title:n.title||e.params.title||e.params.prompt,duration:typeof T=="number"?T:n.duration,previewImageUrl:n.previewImageUrl,tags:typeof e.params.tags=="string"?e.params.tags:void 0,mv:typeof e.params.mv=="string"?e.params.mv:void 0,prompt:e.params.prompt,providerTaskId:n.providerTaskId||e.remoteId,clipId:n.primaryClipId||((O=(Z=n.clips)==null?void 0:Z[0])==null?void 0:O.clipId)||((U=(J=n.clips)==null?void 0:J[0])==null?void 0:U.id)||((_=n.clipIds)==null?void 0:_[0]),clipIds:n.clipIds};f.length===1?await Da(G,f[0],I):await ne({items:f.map((F,P)=>{var Re,Oe,Fe,Ge,He,Be,We,Ke,Xe,Ye,Ze,Je,es;return{type:"audio",content:F,groupId:`task-audio-${e.id}`,dimensions:{width:Ua,height:Ea},metadata:{...I,title:((Oe=(Re=n.clips)==null?void 0:Re[P])==null?void 0:Oe.title)||`${I.title||"Audio"} ${P+1}`,previewImageUrl:((Ge=(Fe=n.clips)==null?void 0:Fe[P])==null?void 0:Ge.imageLargeUrl)||((Be=(He=n.clips)==null?void 0:He[P])==null?void 0:Be.imageUrl)||I.previewImageUrl,duration:typeof((Ke=(We=n.clips)==null?void 0:We[P])==null?void 0:Ke.duration)=="number"?n.clips[P].duration||void 0:I.duration,clipId:((Ye=(Xe=n.clips)==null?void 0:Xe[P])==null?void 0:Ye.clipId)||((Je=(Ze=n.clips)==null?void 0:Ze[P])==null?void 0:Je.id)||((es=n.clipIds)==null?void 0:es[P])||I.clipId}}})}),o.success(f.length>1?"多条音频卡片已插入到白板":"音频卡片已插入到白板")}else if(e.type===p.CHAT){const f=n.chatResponse||"",T=(e.params.prompt||"").slice(0,20)||void 0;await ne({items:[{type:"text",content:f,label:T}]}),o.success("文本已插入到白板")}be.markAsInserted(a,"manual"),c==null||c("insert",a)}catch(n){console.error("Failed to insert to board:",n),o.error(`插入失败: ${n instanceof Error?n.message:"未知错误"}`)}},Os=a=>{var i,l,g,j;const e=d.find(q=>q.id===a);if(!e){console.warn("Cannot edit: task not found");return}if(e.type===p.IMAGE){const q={initialPrompt:e.params.prompt,initialWidth:e.params.width,initialHeight:e.params.height,initialImages:e.params.uploadedImages,initialResultUrl:(i=e.result)==null?void 0:i.url,initialResultUrls:(l=e.result)==null?void 0:l.urls};ye(ts.aiImageGeneration,q)}else if(e.type===p.VIDEO){const q={initialPrompt:e.params.prompt,initialDuration:typeof e.params.seconds=="string"?parseInt(e.params.seconds,10):e.params.seconds,initialModel:e.params.model,initialSize:e.params.size,initialImages:e.params.uploadedImages,initialResultUrl:(g=e.result)==null?void 0:g.url,initialResultUrls:(j=e.result)==null?void 0:j.urls};ye(ts.aiVideoGeneration,q)}else if(e.type===p.AUDIO){o.info("音频任务暂不支持从任务面板直接编辑");return}c==null||c("edit",a)},Fs=a=>{const e=d.find(i=>i.id===a);e&&(xe(e),c==null||c("extractCharacter",a))},Me=r.useMemo(()=>{const a=new Set;return B.filter(e=>{var i,l,g,j;return e.status!==Q.COMPLETED||!((i=e.result)!=null&&i.url)&&!((g=(l=e.result)==null?void 0:l.urls)!=null&&g.length)||e.type!==p.IMAGE&&e.type!==p.VIDEO&&!(e.type===p.AUDIO&&((j=e.result)==null?void 0:j.resultKind)!=="lyrics")||a.has(e.id)?!1:(a.add(e.id),!0)})},[B]),{previewMediaItems:Gs,taskIdToPreviewConfig:$e}=r.useMemo(()=>{var i,l,g,j,q,W;const a=[],e=new Map;for(const u of Me){const Z=a.length,O=((i=u.result)==null?void 0:i.title)||u.params.title||((l=u.params.prompt)==null?void 0:l.substring(0,50))||"媒体预览";if(u.type===p.AUDIO){const U=((j=(g=u.result)==null?void 0:g.clips)==null?void 0:j.filter(f=>!!f.audioUrl).map((f,T)=>{var I,F,P;return{id:f.clipId||f.id||`${u.id}-${T}`,url:f.audioUrl,type:"audio",title:f.title||((I=u.result)!=null&&I.clips&&u.result.clips.length>1?`${O} (${T+1}/${u.result.clips.length})`:O),posterUrl:f.imageLargeUrl||f.imageUrl||((F=u.result)==null?void 0:F.previewImageUrl),duration:typeof f.duration=="number"?f.duration:(P=u.result)==null?void 0:P.duration,prompt:u.params.prompt,tags:typeof u.params.tags=="string"?u.params.tags:void 0,artist:u.params.model||u.params.mv||"Aitu",album:"Aitu Generated"}}))??[],_=(q=u.result.urls)!=null&&q.length?u.result.urls:u.result.url?[u.result.url]:[],n=U.length>0?U:_.map((f,T)=>{var I,F;return{id:_.length>1?`${u.id}-${T}`:u.id,url:f,type:"audio",title:_.length>1?`${O} (${T+1}/${_.length})`:O,posterUrl:(I=u.result)==null?void 0:I.previewImageUrl,duration:(F=u.result)==null?void 0:F.duration,prompt:u.params.prompt,tags:typeof u.params.tags=="string"?u.params.tags:void 0,artist:u.params.model||u.params.mv||"Aitu",album:"Aitu Generated"}});a.push(...n)}else{const U=(W=u.result.urls)!=null&&W.length?u.result.urls:[u.result.url],_=u.type===p.VIDEO?"video":"image";for(let n=0;n<U.length;n++){const f=_==="image"?is(U[n]):U[n];a.push({id:U.length>1?`${u.id}-${n}`:u.id,url:f,type:_,title:U.length>1?`${O} (${n+1}/${U.length})`:O})}}const J=a.length-Z;e.set(u.id,{mode:u.type===p.AUDIO&&J>1?"compare":"single",index:u.type===p.AUDIO&&J>1?Array.from({length:Math.min(J,4)},(U,_)=>Z+_):Z})}return{previewMediaItems:a,taskIdToPreviewConfig:e}},[Me]),ze=r.useCallback(a=>{we(a);const e=$e.get(a);e!==void 0&&(ys(e.mode),gs(e.index),me(!0))},[$e]),Hs=r.useCallback(()=>{we(null),me(!1)},[]),Bs=r.useCallback(a=>{a.type==="image"&&(fe(a.url),pe(!0),me(!1))},[]),Ws=r.useCallback(async a=>{if(G)try{const e=`edited-image-${Date.now()}`,i=`/__aitu_cache__/image/${e}.png`,g=await(await fetch(a)).blob();await as.cacheMediaFromBlob(i,g,"image",{taskId:e}),await rs(G,i),pe(!1),fe("")}catch(e){console.error("Failed to insert edited image:",e)}},[G]),Ks=r.useCallback(()=>{h==null||h()},[h]),Xs=x>0?x:d.length,Ae="这里只显示最近 100 个任务,更早的任务会自动移到“历史”中继续保留。",Ys=s.jsxDEV(w,{content:Ae,children:s.jsxDEV("span",{children:["全部 (",Xs,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:982,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:981,columnNumber:5},void 0),Zs=Ve===null?"历史":`历史 (${Ve})`,Js=x>=100?`已加载最近 ${x} 个任务,较早任务已移至“历史”`:`已加载全部 ${x} 个任务`,ea=s.jsxDEV("div",{className:"task-queue-panel__filters-container",children:[s.jsxDEV(os,{value:A,onChange:a=>fs(a),children:[s.jsxDEV(se,{value:"all",label:Ys},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:999,columnNumber:9},void 0),s.jsxDEV(se,{value:"active",label:`生成中 (${S.length})`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1e3,columnNumber:9},void 0),s.jsxDEV(se,{value:"failed",label:`失败 (${y.length})`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1001,columnNumber:9},void 0),s.jsxDEV(se,{value:"completed",label:`已完成 (${L.length})`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1002,columnNumber:9},void 0),s.jsxDEV(se,{value:"archived",label:Zs},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1006,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:995,columnNumber:7},void 0),A!=="archived"&&s.jsxDEV("div",{className:"task-queue-panel__filters",children:[s.jsxDEV("div",{className:"task-queue-panel__type-filters",children:[s.jsxDEV(w,{content:`全部 (${Y.all})`,children:s.jsxDEV(v,{size:"small",variant:"text",shape:"square",onClick:()=>X("all"),className:E==="all"?"task-queue-panel__filter-btn--active":"",children:s.jsxDEV(ua,{size:"16px"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1025,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1014,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1013,columnNumber:13},void 0),s.jsxDEV(w,{content:`图片 (${Y.image})`,children:s.jsxDEV(v,{size:"small",variant:"text",shape:"square",onClick:()=>X("image"),className:E==="image"?"task-queue-panel__filter-btn--active":"",children:s.jsxDEV(la,{size:"16px"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1040,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1029,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1028,columnNumber:13},void 0),s.jsxDEV(w,{content:`视频 (${Y.video})`,children:s.jsxDEV(v,{size:"small",variant:"text",shape:"square",onClick:()=>X("video"),className:E==="video"?"task-queue-panel__filter-btn--active":"",children:s.jsxDEV(ca,{size:"16px"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1055,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1044,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1043,columnNumber:13},void 0),s.jsxDEV(w,{content:`音频 (${Y.audio})`,children:s.jsxDEV(v,{size:"small",variant:"text",shape:"square",onClick:()=>X("audio"),className:E==="audio"?"task-queue-panel__filter-btn--active":"",children:s.jsxDEV(da,{size:16,strokeWidth:1.9},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1070,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1059,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1058,columnNumber:13},void 0),s.jsxDEV(w,{content:`文本 (${Y.text})`,children:s.jsxDEV(v,{size:"small",variant:"text",shape:"square",onClick:()=>X("text"),className:E==="text"?"task-queue-panel__filter-btn--active":"",children:"文"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1074,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1073,columnNumber:13},void 0),s.jsxDEV(w,{content:`角色 (${Y.character})`,children:s.jsxDEV(v,{size:"small",variant:"text",shape:"square",onClick:()=>X("character"),className:E==="character"?"task-queue-panel__filter-btn--active":"",children:s.jsxDEV(ds,{size:"16px"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1100,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1089,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1088,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1012,columnNumber:11},void 0),s.jsxDEV("div",{className:"task-queue-panel__search-row",children:[s.jsxDEV(oa,{value:ie,onChange:a=>xs(a),placeholder:"搜索...",clearable:!0,prefixIcon:s.jsxDEV(ma,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1112,columnNumber:27},void 0),size:"small",className:"task-queue-panel__search-input"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1107,columnNumber:13},void 0),s.jsxDEV("div",{className:"task-queue-panel__filter-actions",children:[s.jsxDEV(w,{content:H?"退出多选":"批量操作",children:s.jsxDEV(v,{size:"small",variant:H?"base":"outline",theme:H?"primary":"default",icon:s.jsxDEV(pa,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1123,columnNumber:25},void 0),"data-track":"task_click_toggle_selection",onClick:Ts,children:H?"退出":"多选"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1119,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1118,columnNumber:15},void 0),y.length>0&&!H&&s.jsxDEV(w,{content:"清除失败",children:s.jsxDEV(v,{size:"small",variant:"text",theme:"default",icon:s.jsxDEV(ge,{style:{color:"var(--td-text-color-placeholder)"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1138,columnNumber:23},void 0),"data-track":"task_click_clear_failed",onClick:()=>Ds("failed"),className:"task-queue-panel__clear-btn"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1133,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1132,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1117,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1106,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1010,columnNumber:9},void 0),H&&!Ie&&s.jsxDEV("div",{className:"task-queue-panel__batch-actions",children:[s.jsxDEV("div",{className:"task-queue-panel__batch-select",children:[s.jsxDEV(fa,{checked:N.size===B.length&&B.length>0,indeterminate:N.size>0&&N.size<B.length,onChange:a=>a?Ps():Ss()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1157,columnNumber:13},void 0),s.jsxDEV("span",{className:"task-queue-panel__batch-count",children:["已选 ",N.size," / ",B.length]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1170,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1156,columnNumber:11},void 0),s.jsxDEV("div",{className:"task-queue-panel__batch-buttons",children:[Se>0&&s.jsxDEV(v,{size:"small",variant:"outline",theme:"warning",icon:s.jsxDEV(ha,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1180,columnNumber:23},void 0),"data-track":"task_click_batch_cancel",onClick:$s,children:["取消 (",Se,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1176,columnNumber:15},void 0),Pe>0&&s.jsxDEV(v,{size:"small",theme:"primary",icon:s.jsxDEV(ve,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1191,columnNumber:23},void 0),"data-track":"task_click_batch_retry",onClick:Ms,children:["重试 (",Pe,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1188,columnNumber:15},void 0),ws&&Le>0&&s.jsxDEV(w,{content:"同步选中的任务到云端",placement:"bottom",children:s.jsxDEV(v,{size:"small",variant:"outline",icon:s.jsxDEV(Na,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1203,columnNumber:25},void 0),"data-track":"task_click_batch_sync",onClick:zs,disabled:re,loading:re,children:re?`${Cs}%`:`同步 (${Le})`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1200,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1199,columnNumber:15},void 0),s.jsxDEV(v,{size:"small",variant:"text",theme:"default",icon:s.jsxDEV(ge,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1219,columnNumber:21},void 0),"data-track":"task_click_batch_delete",onClick:Ls,disabled:N.size===0,children:["删除 (",N.size,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1215,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1174,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1155,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:994,columnNumber:5},void 0);return s.jsxDEV(s.Fragment,{children:[s.jsxDEV(xa,{isOpen:t,onClose:Ks,title:"任务队列",filterSection:ea,position:"toolbar-right",width:"responsive",storageKey:Ma,showBackdrop:!1,closeOnEsc:!1,showCloseButton:!0,className:"task-queue-panel",contentClassName:"task-queue-panel__content",resizable:!0,minWidth:320,maxWidth:1024,"data-testid":"task-queue-panel",children:Ie?s.jsxDEV(Qa,{showHeader:!1,title:""},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1254,columnNumber:11},void 0):A==="archived"?s.jsxDEV(Sa,{onPreviewOpen:ze,onDownload:Qe,className:"task-queue-panel__list"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1257,columnNumber:11},void 0):s.jsxDEV(Ta,{tasks:B,selectionMode:H,selectedTaskIds:N,onSelectionChange:Is,onRetry:Us,onDelete:Vs,onDownload:Qe,onInsert:Rs,onCopy:As,onEdit:Os,onPreviewOpen:ze,onExtractCharacter:Fs,hasMore:$,isLoadingMore:M,onLoadMore:V,totalCount:x,loadedCount:z,allLoadedText:Js,allLoadedHint:x>=100?Ae:void 0,className:"task-queue-panel__list",emptyContent:D?s.jsxDEV("div",{className:"task-queue-panel__empty",children:[s.jsxDEV("div",{className:"task-queue-panel__empty-icon",children:"⏳"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1288,columnNumber:19},void 0),s.jsxDEV("div",{className:"task-queue-panel__empty-text",children:"加载中..."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1289,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1287,columnNumber:17},void 0):s.jsxDEV("div",{className:"task-queue-panel__empty",children:[s.jsxDEV("div",{className:"task-queue-panel__empty-icon",children:"📋"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1293,columnNumber:19},void 0),s.jsxDEV("div",{className:"task-queue-panel__empty-text",children:A==="all"?"暂无任务":`暂无${A==="active"?"生成中":A==="completed"?"已完成":A==="failed"?"失败":"已取消"}任务`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1294,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1292,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1264,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1234,columnNumber:7},void 0),s.jsxDEV(ue,{open:hs,title:"确认清除",description:`确定要清除所有${qe==="completed"?"已完成":"失败"}的任务吗?此操作无法撤销。`,confirmText:"清除",cancelText:"取消",danger:!0,onOpenChange:oe,onConfirm:Es},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1315,columnNumber:7},void 0),s.jsxDEV(ue,{open:js,title:"确认删除",description:"确定要删除此任务吗?此操作无法撤销。",confirmText:"删除",cancelText:"取消",danger:!0,onOpenChange:he,onConfirm:_s},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1329,columnNumber:7},void 0),s.jsxDEV(ue,{open:qs,title:"确认批量删除",description:`确定要删除选中的 ${N.size} 个任务吗?此操作无法撤销。`,confirmText:"删除",cancelText:"取消",danger:!0,onOpenChange:ke,onConfirm:Qs},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1341,columnNumber:7},void 0),s.jsxDEV(ka,{visible:ks,items:Gs,initialMode:vs,initialIndex:bs,onClose:Hs,showThumbnails:!0,onEdit:Bs},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1353,columnNumber:7},void 0),Ce&&De&&s.jsxDEV(ba,{visible:Ce,imageUrl:De,showOverwrite:!1,onClose:()=>{pe(!1),fe("")},onInsert:G?Ws:void 0},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1365,columnNumber:9},void 0),s.jsxDEV(Ia,{visible:!!Ue,task:Ue,onClose:()=>xe(null),onCreateStart:()=>{},onCreateComplete:a=>{xe(null)}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1378,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1233,columnNumber:5},void 0)};export{Ma as TASK_DRAWER_WIDTH_KEY,Ha as TaskQueuePanel};
|
|
1
|
+
import{r,ie as ls,y as s,am as le,fF as v,dp as cs,al as o,bV as w,jE as sa,i9 as ge,jF as aa,jG as ds,aI as ss,hW as ve,jH as ia,fP as ue,eK as ra,bL as ta,jI as na,at as as,h1 as p,h0 as Q,h8 as is,dj as rs,jJ as os,jK as ua,jL as la,jM as ca,ho as da,ig as oa,ih as ma,jN as pa,ia as fa,jO as ha,jP as Na,jQ as xa,ii as ka,jR as ba,jS as ga,jT as ae,ij as va,d2 as ya,fR as ja,cX as ts,jU as ns,jV as ne,g$ as be,eI as qa,jW as us,jX as wa,jY as Ca,aw as Da,jZ as Ea,j_ as Ua}from"./tool-windows-BTXOQvEU.js";import{T as Va,C as _a,u as ms,V as Ta,a as Ia}from"./useCharacters-6F7LfBD2.js";/* empty css */import"./main-B6qbLicq.js";const Pa=30,Sa=({onPreviewOpen:t,onDownload:h,className:c})=>{const[d,S]=r.useState([]),[L,y]=r.useState(!0),[C,D]=r.useState(!1),[M,$]=r.useState(!1),x=r.useRef(0),z=r.useRef(null),V=r.useCallback(async m=>{try{return await ls.getArchivedTasks(m,Pa)}catch{return{tasks:[],hasMore:!1}}},[]);r.useEffect(()=>{let m=!1;return y(!0),x.current=0,V(0).then(b=>{m||(S(b.tasks),$(b.hasMore),x.current=b.tasks.length,y(!1))}),()=>{m=!0}},[V]);const R=r.useCallback(async()=>{if(C||!M)return;D(!0);const m=await V(x.current);S(b=>[...b,...m.tasks]),$(m.hasMore),x.current+=m.tasks.length,D(!1)},[C,M,V]);return r.useEffect(()=>{const m=z.current;if(!m)return;const b=()=>{m.scrollHeight-m.scrollTop-m.clientHeight<200&&R()};return m.addEventListener("scroll",b,{passive:!0}),()=>m.removeEventListener("scroll",b)},[R]),L?s.jsxDEV("div",{className:"task-queue-panel__empty",children:[s.jsxDEV(le,{size:"small"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/ArchivedTaskList.tsx",lineNumber:89,columnNumber:9},void 0),s.jsxDEV("div",{className:"task-queue-panel__empty-text",children:"加载历史任务..."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/ArchivedTaskList.tsx",lineNumber:90,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/ArchivedTaskList.tsx",lineNumber:88,columnNumber:7},void 0):d.length===0?s.jsxDEV("div",{className:"task-queue-panel__empty",children:[s.jsxDEV("div",{className:"task-queue-panel__empty-icon",children:"📦"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/ArchivedTaskList.tsx",lineNumber:98,columnNumber:9},void 0),s.jsxDEV("div",{className:"task-queue-panel__empty-text",children:"暂无历史任务"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/ArchivedTaskList.tsx",lineNumber:99,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/ArchivedTaskList.tsx",lineNumber:97,columnNumber:7},void 0):s.jsxDEV("div",{ref:z,className:c,style:{overflow:"auto",height:"100%"},children:[d.map(m=>s.jsxDEV(Va,{task:m,onPreviewOpen:t?()=>t(m.id):void 0,onDownload:h},m.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/ArchivedTaskList.tsx",lineNumber:111,columnNumber:9},void 0)),M&&s.jsxDEV("div",{style:{padding:"12px",textAlign:"center"},children:C?s.jsxDEV(le,{size:"small"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/ArchivedTaskList.tsx",lineNumber:121,columnNumber:13},void 0):s.jsxDEV(v,{size:"small",variant:"text",theme:"default",onClick:R,children:"加载更多"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/ArchivedTaskList.tsx",lineNumber:123,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/ArchivedTaskList.tsx",lineNumber:119,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/ArchivedTaskList.tsx",lineNumber:105,columnNumber:5},void 0)},La=({character:t,onDelete:h,onSelect:c,compact:d=!1})=>{const[S,L]=r.useState(!1),y=t.status==="processing"||t.status==="pending",C=t.status==="failed",D=t.status==="completed",M=r.useCallback(async m=>{if(m.stopPropagation(),!t.username)return;const b=`@${t.username}`;try{await cs(b),o.success(`已复制: ${b}`)}catch(k){console.error("Failed to copy:",k),o.error("复制失败")}},[t.username]),$=r.useCallback(()=>{D&&c&&c(t)},[D,c,t]),x=r.useCallback(m=>{m.stopPropagation(),h==null||h(t.id)},[h,t.id]),z=r.useCallback(m=>{m.stopPropagation(),D&&t.profilePictureUrl&&L(!0)},[D,t.profilePictureUrl]),V=()=>t.profilePictureUrl||D?s.jsxDEV(w,{content:"点击查看大图",children:s.jsxDEV(_a,{characterId:t.id,profilePictureUrl:t.profilePictureUrl,alt:t.username||"Character",className:"character-card__avatar-img",onClick:z},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:94,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:93,columnNumber:9},void 0):s.jsxDEV("div",{className:"character-card__avatar-placeholder",children:s.jsxDEV(ds,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:106,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:105,columnNumber:7},void 0),R=()=>y?s.jsxDEV("div",{className:"character-card__status character-card__status--processing",children:[s.jsxDEV(le,{size:"small"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:116,columnNumber:11},void 0),s.jsxDEV("span",{children:"创建中..."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:117,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:115,columnNumber:9},void 0):C?s.jsxDEV("div",{className:"character-card__status character-card__status--failed",children:["创建失败: ",t.error||"未知错误"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:123,columnNumber:9},void 0):null;return d?s.jsxDEV("div",{className:`character-card character-card--compact ${y?"character-card--loading":""} ${C?"character-card--failed":""}`,onClick:$,children:[s.jsxDEV("div",{className:"character-card__avatar",children:V()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:140,columnNumber:9},void 0),s.jsxDEV("span",{className:"character-card__username-text",children:t.username||"创建中..."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:141,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:134,columnNumber:7},void 0):s.jsxDEV("div",{className:`character-card ${y?"character-card--loading":""} ${C?"character-card--failed":""}`,onClick:$,children:[s.jsxDEV("div",{className:"character-card__avatar",children:V()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:156,columnNumber:7},void 0),s.jsxDEV("div",{className:"character-card__info",children:[D&&t.username?s.jsxDEV(w,{content:"点击复制",children:s.jsxDEV("div",{className:"character-card__username",onClick:M,children:["@",t.username,s.jsxDEV(sa,{className:"character-card__username-copy"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:168,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:163,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:162,columnNumber:11},void 0):s.jsxDEV("div",{className:"character-card__username",style:{cursor:"default"},children:y?"创建中...":"角色"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:172,columnNumber:11},void 0),t.id&&s.jsxDEV(w,{content:t.id,placement:"bottom",children:s.jsxDEV("div",{className:"character-card__source",children:t.id},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:183,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:182,columnNumber:11},void 0),R()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:159,columnNumber:7},void 0),s.jsxDEV("div",{className:"character-card__actions",children:s.jsxDEV(w,{content:"删除角色",children:s.jsxDEV(v,{size:"small",variant:"text",theme:"danger",icon:s.jsxDEV(ge,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:198,columnNumber:19},void 0),"data-track":"character_click_delete",onClick:x},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:194,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:193,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:192,columnNumber:7},void 0),t.profilePictureUrl&&s.jsxDEV(aa,{visible:S,onClose:()=>L(!1),items:[{url:t.profilePictureUrl,type:"image",title:`@${t.username||"Character"}`}]},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:207,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterCard.tsx",lineNumber:149,columnNumber:5},void 0)},Qa=({onSelect:t,completedOnly:h=!1,maxItems:c,showHeader:d=!0,title:S="角色列表"})=>{const{characters:L,completedCharacters:y,pendingCharacters:C,isLoading:D,deleteCharacter:M,refreshCharacters:$}=ms(),[x,z]=ss.useState(null),V=ss.useMemo(()=>{let k=h?y:L;return k=[...k].sort((ce,de)=>de.createdAt-ce.createdAt),c&&k.length>c&&(k=k.slice(0,c)),k},[h,L,y,c]),R=r.useCallback(k=>{z(k)},[]),m=r.useCallback(async()=>{if(!x)return;await M(x)?o.success("角色已删除"):o.error("删除失败"),z(null)},[x,M]),b=r.useCallback(async()=>{await $(),o.success("已刷新")},[$]);return D?s.jsxDEV("div",{className:"character-list__loading",children:[s.jsxDEV(le,{size:"small"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:89,columnNumber:9},void 0),s.jsxDEV("span",{children:"加载中..."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:90,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:88,columnNumber:7},void 0):V.length===0?s.jsxDEV("div",{className:"character-list",children:[d&&s.jsxDEV("div",{className:"character-list__header",children:[s.jsxDEV("h4",{children:S},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:101,columnNumber:13},void 0),s.jsxDEV(v,{size:"small",variant:"text",icon:s.jsxDEV(ve,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:105,columnNumber:21},void 0),"data-track":"character_click_refresh",onClick:b},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:102,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:100,columnNumber:11},void 0),s.jsxDEV("div",{className:"character-list__empty",children:[s.jsxDEV("div",{className:"character-list__empty-icon",children:s.jsxDEV(ia,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:113,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:112,columnNumber:11},void 0),s.jsxDEV("div",{children:"暂无角色"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:115,columnNumber:11},void 0),s.jsxDEV("div",{style:{fontSize:"12px",marginTop:"4px",color:"#999"},children:"从已完成的 Sora-2 视频中提取角色"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:116,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:111,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:98,columnNumber:7},void 0):s.jsxDEV("div",{className:"character-list",children:[d&&s.jsxDEV("div",{className:"character-list__header",children:[s.jsxDEV("h4",{children:[S,C.length>0&&s.jsxDEV("span",{style:{fontWeight:"normal",fontSize:"12px",color:"#666",marginLeft:"8px"},children:["(",C.length," 创建中)"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:131,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:128,columnNumber:11},void 0),s.jsxDEV(v,{size:"small",variant:"text",icon:s.jsxDEV(ve,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:139,columnNumber:19},void 0),"data-track":"character_click_refresh",onClick:b},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:136,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:127,columnNumber:9},void 0),s.jsxDEV("div",{className:"character-list__items",children:V.map(k=>s.jsxDEV(La,{character:k,onDelete:R,onSelect:t},k.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:148,columnNumber:11},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:146,columnNumber:7},void 0),s.jsxDEV(ue,{open:!!x,title:"确认删除",description:"确定要删除此角色吗?删除后将无法在提示词中使用该角色。",confirmText:"删除",cancelText:"取消",danger:!0,onOpenChange:k=>{k||z(null)},onConfirm:m},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:158,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/character/CharacterList.tsx",lineNumber:125,columnNumber:5},void 0)},{TabPanel:se}=os,Ma="task-queue-drawer-width";function $a(t){var h,c,d;return Array.isArray((h=t.result)==null?void 0:h.urls)&&t.result.urls.length>0?t.result.urls.length:(c=t.result)!=null&&c.url||(d=t.result)!=null&&d.chatResponse||ae(t)?1:0}function za(t){const h=$a(t);return{taskId:t.id,taskType:t.type,taskStatus:t.status,model:typeof t.params.model=="string"&&t.params.model.trim()?t.params.model:void 0,resultCount:h||void 0,hasMultipleResults:h>1}}const Ha=({expanded:t,onClose:h,onTaskAction:c})=>{const{tasks:d,activeTasks:S,completedTasks:L,failedTasks:y,cancelledTasks:C,isLoading:D,isLoadingMore:M,hasMore:$,totalCount:x,loadedCount:z,loadMore:V,retryTask:R,deleteTask:m,clearCompleted:b,clearFailed:k,batchDeleteTasks:ce,batchRetryTasks:de,batchCancelTasks:ps}=ra(),{board:G,openDialog:ye}=ta(),{characters:je}=ms(),[A,fs]=r.useState("all"),[hs,oe]=r.useState(!1),[qe,Ns]=r.useState("completed"),[ie,xs]=r.useState(""),[E,X]=r.useState("all"),[Aa,we]=r.useState(null),[ks,me]=r.useState(!1),[bs,gs]=r.useState(0),[vs,ys]=r.useState("single"),[Ce,pe]=r.useState(!1),[De,fe]=r.useState(""),[js,he]=r.useState(!1),[Ne,Ee]=r.useState(null),[Ue,xe]=r.useState(null),[H,ee]=r.useState(!1),[N,K]=r.useState(new Set),[qs,ke]=r.useState(!1),[Ve,_e]=r.useState(null),{isConfigured:ws}=na(),[re,Te]=r.useState(!1),[Cs,te]=r.useState(0),Ie=E==="character";r.useEffect(()=>{as.initCacheStatus()},[]),r.useEffect(()=>{if(!t)return;let a=!1;return ls.getArchivedTaskCount().then(e=>{a||_e(e)}).catch(()=>{a||_e(0)}),()=>{a=!0}},[t,A]);const B=r.useMemo(()=>{let a;switch(A){case"all":a=d;break;case"active":a=S;break;case"completed":a=L;break;case"failed":a=y;break;case"cancelled":a=C;break;case"archived":return[];default:a=d}if(E!=="all"&&E!=="character"&&(a=a.filter(e=>e.type===(E==="image"?p.IMAGE:E==="audio"?p.AUDIO:E==="text"?p.CHAT:p.VIDEO))),ie.trim()){const e=ie.toLowerCase().trim();a=a.filter(i=>{var l,g,j,q,W;return i.params.prompt.toLowerCase().includes(e)||String(((l=i.result)==null?void 0:l.title)||"").toLowerCase().includes(e)||String(((g=i.result)==null?void 0:g.lyricsTitle)||"").toLowerCase().includes(e)||String(((j=i.result)==null?void 0:j.lyricsText)||"").toLowerCase().includes(e)||String(((q=i.result)==null?void 0:q.chatResponse)||"").toLowerCase().includes(e)||(((W=i.result)==null?void 0:W.lyricsTags)||[]).some(u=>String(u).toLowerCase().includes(e))})}return[...a].sort((e,i)=>i.createdAt-e.createdAt)},[A,d,S,L,y,C,E,ie]),Ds=a=>{Ns(a),oe(!0)},Es=()=>{qe==="completed"?b():k(),oe(!1)},Us=a=>{R(a),c==null||c("retry",a)},Vs=a=>{Ee(a),he(!0)},_s=()=>{Ne&&(m(Ne),c==null||c("delete",Ne)),he(!1),Ee(null)},Ts=()=>{H?(ee(!1),K(new Set)):ee(!0)},Is=(a,e)=>{K(i=>{const l=new Set(i);return e?l.add(a):l.delete(a),l})},Ps=()=>{const a=B.map(e=>e.id);K(new Set(a))},Ss=()=>{K(new Set)},Ls=()=>{N.size!==0&&ke(!0)},Qs=()=>{ce(Array.from(N)),K(new Set),ee(!1),ke(!1),o.success(`已删除 ${N.size} 个任务`)},Ms=()=>{const a=Array.from(N).filter(e=>{const i=d.find(l=>l.id===e);return(i==null?void 0:i.status)===Q.FAILED||(i==null?void 0:i.status)===Q.CANCELLED});if(a.length===0){o.warning("没有可重试的任务");return}de(a),K(new Set),ee(!1),o.success(`已重试 ${a.length} 个任务`)},Pe=r.useMemo(()=>Array.from(N).filter(a=>{const e=d.find(i=>i.id===a);return(e==null?void 0:e.status)===Q.FAILED||(e==null?void 0:e.status)===Q.CANCELLED}).length,[N,d]),Se=r.useMemo(()=>Array.from(N).filter(a=>{const e=d.find(i=>i.id===a);return(e==null?void 0:e.status)===Q.PENDING||(e==null?void 0:e.status)===Q.PROCESSING}).length,[N,d]),Le=r.useMemo(()=>Array.from(N).filter(a=>{const e=d.find(i=>i.id===a);return(e==null?void 0:e.status)===Q.COMPLETED&&((e==null?void 0:e.type)===p.IMAGE||(e==null?void 0:e.type)===p.VIDEO)}).length,[N,d]),Y=r.useMemo(()=>({all:d.length,image:d.filter(a=>a.type===p.IMAGE).length,video:d.filter(a=>a.type===p.VIDEO).length,audio:d.filter(a=>a.type===p.AUDIO).length,text:d.filter(a=>a.type===p.CHAT).length,character:je.length}),[d,je]),$s=()=>{const a=Array.from(N).filter(e=>{const i=d.find(l=>l.id===e);return(i==null?void 0:i.status)===Q.PENDING||(i==null?void 0:i.status)===Q.PROCESSING});if(a.length===0){o.warning("没有可取消的进行中任务");return}ps(a),K(new Set),ee(!1),o.success(`已取消 ${a.length} 个任务`)},zs=async()=>{const a=Array.from(N).filter(e=>{const i=d.find(l=>l.id===e);return(i==null?void 0:i.status)===Q.COMPLETED&&((i==null?void 0:i.type)===p.IMAGE||(i==null?void 0:i.type)===p.VIDEO)});if(!(a.length===0||re)){Te(!0),te(0);try{const e=await ga.syncMultipleTasks(a,(i,l)=>{te(Math.round(i/l*100))});console.log("[TaskQueuePanel] Batch sync result:",e),te(100),e.succeeded>0&&o.success(`已同步 ${e.succeeded} 个任务`),e.failed>0&&o.warning(`${e.failed} 个任务同步失败`)}catch(e){console.error("[TaskQueuePanel] Batch sync failed:",e),o.error("同步失败,请稍后重试")}finally{Te(!1),te(0)}}},Qe=async a=>{const e=d.find(l=>l.id===a);if(e&&ae(e)){o.info("歌词任务支持复制或插入画布");return}if(!e)return;const i=va(e);if(i.length!==0)try{const l=await ya(i);l.openedCount>0&&l.downloadedCount===0?o.success(l.openedCount>1?`已打开 ${l.openedCount} 个链接,请在新标签页下载`:"资源不支持直接下载,已打开链接"):o.success(e.type===p.AUDIO?i.length>1?"多条音频已开始下载":"音频下载成功":i.length>1?"多图已开始下载":"下载成功"),ja.track("generation_result_download",{...za(e),downloadedCount:l.downloadedCount,openedCount:l.openedCount}),c==null||c("download",a)}catch(l){console.error("Download failed:",l),o.error("下载失败,请稍后重试")}},As=async a=>{const e=d.find(l=>l.id===a);if(!e||!ae(e)){o.warning("暂无可复制的歌词");return}const i=ns(e);if(!i.trim()){o.warning("暂无可复制的歌词");return}try{await cs(i),o.success("歌词已复制"),c==null||c("copy",a)}catch(l){console.error("Failed to copy lyrics:",l),o.error("复制失败,请稍后重试")}},Rs=async a=>{var i,l,g,j,q,W,u,Z,O,J,U,_;const e=d.find(n=>n.id===a);if(!e||!G){console.warn("Cannot insert: task result or board not available"),o.warning("无法插入:白板未就绪");return}if(!((i=e.result)!=null&&i.url)&&!((g=(l=e.result)==null?void 0:l.urls)!=null&&g.length)&&!ae(e)){const n=e.type===p.CHAT?(j=e.result)==null?void 0:j.chatResponse:void 0;if(n!=null&&n.trim()){const f=(e.params.prompt||"").slice(0,20)||void 0;await ne({items:[{type:"text",content:n,label:f}]}),o.success("文本已插入到白板"),be.markAsInserted(a,"manual"),c==null||c("insert",a);return}console.warn("Cannot insert: task result is empty"),o.warning("无法插入:任务结果为空");return}try{const n=e.result;if(e.type===p.IMAGE){const f=(q=n.urls)!=null&&q.length?n.urls:[n.url];for(const T of f)await rs(G,is(T));o.success(f.length>1?"多图已插入到白板":"图片已插入到白板")}else if(e.type===p.VIDEO)await qa(G,n.url),o.success("视频已插入到白板");else if(e.type===p.AUDIO){if(ae(e)){const F=us(n,e.params.title||e.params.prompt)||(e.params.prompt||"").slice(0,20)||void 0;await ne({items:[{type:"text",content:ns(e),label:F,metadata:{title:us(n,e.params.title||e.params.prompt),tags:wa(n)}}]}),o.success("歌词已插入到白板"),be.markAsInserted(a,"manual"),c==null||c("insert",a);return}const f=Ca(n),T=(u=(W=n.clips)==null?void 0:W[0])==null?void 0:u.duration,I={title:n.title||e.params.title||e.params.prompt,duration:typeof T=="number"?T:n.duration,previewImageUrl:n.previewImageUrl,tags:typeof e.params.tags=="string"?e.params.tags:void 0,mv:typeof e.params.mv=="string"?e.params.mv:void 0,prompt:e.params.prompt,providerTaskId:n.providerTaskId||e.remoteId,clipId:n.primaryClipId||((O=(Z=n.clips)==null?void 0:Z[0])==null?void 0:O.clipId)||((U=(J=n.clips)==null?void 0:J[0])==null?void 0:U.id)||((_=n.clipIds)==null?void 0:_[0]),clipIds:n.clipIds};f.length===1?await Da(G,f[0],I):await ne({items:f.map((F,P)=>{var Re,Oe,Fe,Ge,He,Be,We,Ke,Xe,Ye,Ze,Je,es;return{type:"audio",content:F,groupId:`task-audio-${e.id}`,dimensions:{width:Ua,height:Ea},metadata:{...I,title:((Oe=(Re=n.clips)==null?void 0:Re[P])==null?void 0:Oe.title)||`${I.title||"Audio"} ${P+1}`,previewImageUrl:((Ge=(Fe=n.clips)==null?void 0:Fe[P])==null?void 0:Ge.imageLargeUrl)||((Be=(He=n.clips)==null?void 0:He[P])==null?void 0:Be.imageUrl)||I.previewImageUrl,duration:typeof((Ke=(We=n.clips)==null?void 0:We[P])==null?void 0:Ke.duration)=="number"?n.clips[P].duration||void 0:I.duration,clipId:((Ye=(Xe=n.clips)==null?void 0:Xe[P])==null?void 0:Ye.clipId)||((Je=(Ze=n.clips)==null?void 0:Ze[P])==null?void 0:Je.id)||((es=n.clipIds)==null?void 0:es[P])||I.clipId}}})}),o.success(f.length>1?"多条音频卡片已插入到白板":"音频卡片已插入到白板")}else if(e.type===p.CHAT){const f=n.chatResponse||"",T=(e.params.prompt||"").slice(0,20)||void 0;await ne({items:[{type:"text",content:f,label:T}]}),o.success("文本已插入到白板")}be.markAsInserted(a,"manual"),c==null||c("insert",a)}catch(n){console.error("Failed to insert to board:",n),o.error(`插入失败: ${n instanceof Error?n.message:"未知错误"}`)}},Os=a=>{var i,l,g,j;const e=d.find(q=>q.id===a);if(!e){console.warn("Cannot edit: task not found");return}if(e.type===p.IMAGE){const q={initialPrompt:e.params.prompt,initialWidth:e.params.width,initialHeight:e.params.height,initialImages:e.params.uploadedImages,initialResultUrl:(i=e.result)==null?void 0:i.url,initialResultUrls:(l=e.result)==null?void 0:l.urls};ye(ts.aiImageGeneration,q)}else if(e.type===p.VIDEO){const q={initialPrompt:e.params.prompt,initialDuration:typeof e.params.seconds=="string"?parseInt(e.params.seconds,10):e.params.seconds,initialModel:e.params.model,initialSize:e.params.size,initialImages:e.params.uploadedImages,initialResultUrl:(g=e.result)==null?void 0:g.url,initialResultUrls:(j=e.result)==null?void 0:j.urls};ye(ts.aiVideoGeneration,q)}else if(e.type===p.AUDIO){o.info("音频任务暂不支持从任务面板直接编辑");return}c==null||c("edit",a)},Fs=a=>{const e=d.find(i=>i.id===a);e&&(xe(e),c==null||c("extractCharacter",a))},Me=r.useMemo(()=>{const a=new Set;return B.filter(e=>{var i,l,g,j;return e.status!==Q.COMPLETED||!((i=e.result)!=null&&i.url)&&!((g=(l=e.result)==null?void 0:l.urls)!=null&&g.length)||e.type!==p.IMAGE&&e.type!==p.VIDEO&&!(e.type===p.AUDIO&&((j=e.result)==null?void 0:j.resultKind)!=="lyrics")||a.has(e.id)?!1:(a.add(e.id),!0)})},[B]),{previewMediaItems:Gs,taskIdToPreviewConfig:$e}=r.useMemo(()=>{var i,l,g,j,q,W;const a=[],e=new Map;for(const u of Me){const Z=a.length,O=((i=u.result)==null?void 0:i.title)||u.params.title||((l=u.params.prompt)==null?void 0:l.substring(0,50))||"媒体预览";if(u.type===p.AUDIO){const U=((j=(g=u.result)==null?void 0:g.clips)==null?void 0:j.filter(f=>!!f.audioUrl).map((f,T)=>{var I,F,P;return{id:f.clipId||f.id||`${u.id}-${T}`,url:f.audioUrl,type:"audio",title:f.title||((I=u.result)!=null&&I.clips&&u.result.clips.length>1?`${O} (${T+1}/${u.result.clips.length})`:O),posterUrl:f.imageLargeUrl||f.imageUrl||((F=u.result)==null?void 0:F.previewImageUrl),duration:typeof f.duration=="number"?f.duration:(P=u.result)==null?void 0:P.duration,prompt:u.params.prompt,tags:typeof u.params.tags=="string"?u.params.tags:void 0,artist:u.params.model||u.params.mv||"Aitu",album:"Aitu Generated"}}))??[],_=(q=u.result.urls)!=null&&q.length?u.result.urls:u.result.url?[u.result.url]:[],n=U.length>0?U:_.map((f,T)=>{var I,F;return{id:_.length>1?`${u.id}-${T}`:u.id,url:f,type:"audio",title:_.length>1?`${O} (${T+1}/${_.length})`:O,posterUrl:(I=u.result)==null?void 0:I.previewImageUrl,duration:(F=u.result)==null?void 0:F.duration,prompt:u.params.prompt,tags:typeof u.params.tags=="string"?u.params.tags:void 0,artist:u.params.model||u.params.mv||"Aitu",album:"Aitu Generated"}});a.push(...n)}else{const U=(W=u.result.urls)!=null&&W.length?u.result.urls:[u.result.url],_=u.type===p.VIDEO?"video":"image";for(let n=0;n<U.length;n++){const f=_==="image"?is(U[n]):U[n];a.push({id:U.length>1?`${u.id}-${n}`:u.id,url:f,type:_,title:U.length>1?`${O} (${n+1}/${U.length})`:O})}}const J=a.length-Z;e.set(u.id,{mode:u.type===p.AUDIO&&J>1?"compare":"single",index:u.type===p.AUDIO&&J>1?Array.from({length:Math.min(J,4)},(U,_)=>Z+_):Z})}return{previewMediaItems:a,taskIdToPreviewConfig:e}},[Me]),ze=r.useCallback(a=>{we(a);const e=$e.get(a);e!==void 0&&(ys(e.mode),gs(e.index),me(!0))},[$e]),Hs=r.useCallback(()=>{we(null),me(!1)},[]),Bs=r.useCallback(a=>{a.type==="image"&&(fe(a.url),pe(!0),me(!1))},[]),Ws=r.useCallback(async a=>{if(G)try{const e=`edited-image-${Date.now()}`,i=`/__aitu_cache__/image/${e}.png`,g=await(await fetch(a)).blob();await as.cacheMediaFromBlob(i,g,"image",{taskId:e}),await rs(G,i),pe(!1),fe("")}catch(e){console.error("Failed to insert edited image:",e)}},[G]),Ks=r.useCallback(()=>{h==null||h()},[h]),Xs=x>0?x:d.length,Ae="这里只显示最近 100 个任务,更早的任务会自动移到“历史”中继续保留。",Ys=s.jsxDEV(w,{content:Ae,children:s.jsxDEV("span",{children:["全部 (",Xs,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:982,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:981,columnNumber:5},void 0),Zs=Ve===null?"历史":`历史 (${Ve})`,Js=x>=100?`已加载最近 ${x} 个任务,较早任务已移至“历史”`:`已加载全部 ${x} 个任务`,ea=s.jsxDEV("div",{className:"task-queue-panel__filters-container",children:[s.jsxDEV(os,{value:A,onChange:a=>fs(a),children:[s.jsxDEV(se,{value:"all",label:Ys},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:999,columnNumber:9},void 0),s.jsxDEV(se,{value:"active",label:`生成中 (${S.length})`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1e3,columnNumber:9},void 0),s.jsxDEV(se,{value:"failed",label:`失败 (${y.length})`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1001,columnNumber:9},void 0),s.jsxDEV(se,{value:"completed",label:`已完成 (${L.length})`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1002,columnNumber:9},void 0),s.jsxDEV(se,{value:"archived",label:Zs},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1006,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:995,columnNumber:7},void 0),A!=="archived"&&s.jsxDEV("div",{className:"task-queue-panel__filters",children:[s.jsxDEV("div",{className:"task-queue-panel__type-filters",children:[s.jsxDEV(w,{content:`全部 (${Y.all})`,children:s.jsxDEV(v,{size:"small",variant:"text",shape:"square",onClick:()=>X("all"),className:E==="all"?"task-queue-panel__filter-btn--active":"",children:s.jsxDEV(ua,{size:"16px"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1025,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1014,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1013,columnNumber:13},void 0),s.jsxDEV(w,{content:`图片 (${Y.image})`,children:s.jsxDEV(v,{size:"small",variant:"text",shape:"square",onClick:()=>X("image"),className:E==="image"?"task-queue-panel__filter-btn--active":"",children:s.jsxDEV(la,{size:"16px"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1040,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1029,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1028,columnNumber:13},void 0),s.jsxDEV(w,{content:`视频 (${Y.video})`,children:s.jsxDEV(v,{size:"small",variant:"text",shape:"square",onClick:()=>X("video"),className:E==="video"?"task-queue-panel__filter-btn--active":"",children:s.jsxDEV(ca,{size:"16px"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1055,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1044,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1043,columnNumber:13},void 0),s.jsxDEV(w,{content:`音频 (${Y.audio})`,children:s.jsxDEV(v,{size:"small",variant:"text",shape:"square",onClick:()=>X("audio"),className:E==="audio"?"task-queue-panel__filter-btn--active":"",children:s.jsxDEV(da,{size:16,strokeWidth:1.9},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1070,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1059,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1058,columnNumber:13},void 0),s.jsxDEV(w,{content:`文本 (${Y.text})`,children:s.jsxDEV(v,{size:"small",variant:"text",shape:"square",onClick:()=>X("text"),className:E==="text"?"task-queue-panel__filter-btn--active":"",children:"文"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1074,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1073,columnNumber:13},void 0),s.jsxDEV(w,{content:`角色 (${Y.character})`,children:s.jsxDEV(v,{size:"small",variant:"text",shape:"square",onClick:()=>X("character"),className:E==="character"?"task-queue-panel__filter-btn--active":"",children:s.jsxDEV(ds,{size:"16px"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1100,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1089,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1088,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1012,columnNumber:11},void 0),s.jsxDEV("div",{className:"task-queue-panel__search-row",children:[s.jsxDEV(oa,{value:ie,onChange:a=>xs(a),placeholder:"搜索...",clearable:!0,prefixIcon:s.jsxDEV(ma,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1112,columnNumber:27},void 0),size:"small",className:"task-queue-panel__search-input"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1107,columnNumber:13},void 0),s.jsxDEV("div",{className:"task-queue-panel__filter-actions",children:[s.jsxDEV(w,{content:H?"退出多选":"批量操作",children:s.jsxDEV(v,{size:"small",variant:H?"base":"outline",theme:H?"primary":"default",icon:s.jsxDEV(pa,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1123,columnNumber:25},void 0),"data-track":"task_click_toggle_selection",onClick:Ts,children:H?"退出":"多选"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1119,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1118,columnNumber:15},void 0),y.length>0&&!H&&s.jsxDEV(w,{content:"清除失败",children:s.jsxDEV(v,{size:"small",variant:"text",theme:"default",icon:s.jsxDEV(ge,{style:{color:"var(--td-text-color-placeholder)"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1138,columnNumber:23},void 0),"data-track":"task_click_clear_failed",onClick:()=>Ds("failed"),className:"task-queue-panel__clear-btn"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1133,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1132,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1117,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1106,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1010,columnNumber:9},void 0),H&&!Ie&&s.jsxDEV("div",{className:"task-queue-panel__batch-actions",children:[s.jsxDEV("div",{className:"task-queue-panel__batch-select",children:[s.jsxDEV(fa,{checked:N.size===B.length&&B.length>0,indeterminate:N.size>0&&N.size<B.length,onChange:a=>a?Ps():Ss()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1157,columnNumber:13},void 0),s.jsxDEV("span",{className:"task-queue-panel__batch-count",children:["已选 ",N.size," / ",B.length]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1170,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1156,columnNumber:11},void 0),s.jsxDEV("div",{className:"task-queue-panel__batch-buttons",children:[Se>0&&s.jsxDEV(v,{size:"small",variant:"outline",theme:"warning",icon:s.jsxDEV(ha,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1180,columnNumber:23},void 0),"data-track":"task_click_batch_cancel",onClick:$s,children:["取消 (",Se,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1176,columnNumber:15},void 0),Pe>0&&s.jsxDEV(v,{size:"small",theme:"primary",icon:s.jsxDEV(ve,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1191,columnNumber:23},void 0),"data-track":"task_click_batch_retry",onClick:Ms,children:["重试 (",Pe,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1188,columnNumber:15},void 0),ws&&Le>0&&s.jsxDEV(w,{content:"同步选中的任务到云端",placement:"bottom",children:s.jsxDEV(v,{size:"small",variant:"outline",icon:s.jsxDEV(Na,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1203,columnNumber:25},void 0),"data-track":"task_click_batch_sync",onClick:zs,disabled:re,loading:re,children:re?`${Cs}%`:`同步 (${Le})`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1200,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1199,columnNumber:15},void 0),s.jsxDEV(v,{size:"small",variant:"text",theme:"default",icon:s.jsxDEV(ge,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1219,columnNumber:21},void 0),"data-track":"task_click_batch_delete",onClick:Ls,disabled:N.size===0,children:["删除 (",N.size,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1215,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1174,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1155,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:994,columnNumber:5},void 0);return s.jsxDEV(s.Fragment,{children:[s.jsxDEV(xa,{isOpen:t,onClose:Ks,title:"任务队列",filterSection:ea,position:"toolbar-right",width:"responsive",storageKey:Ma,showBackdrop:!1,closeOnEsc:!1,showCloseButton:!0,className:"task-queue-panel",contentClassName:"task-queue-panel__content",resizable:!0,minWidth:320,maxWidth:1024,"data-testid":"task-queue-panel",children:Ie?s.jsxDEV(Qa,{showHeader:!1,title:""},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1254,columnNumber:11},void 0):A==="archived"?s.jsxDEV(Sa,{onPreviewOpen:ze,onDownload:Qe,className:"task-queue-panel__list"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1257,columnNumber:11},void 0):s.jsxDEV(Ta,{tasks:B,selectionMode:H,selectedTaskIds:N,onSelectionChange:Is,onRetry:Us,onDelete:Vs,onDownload:Qe,onInsert:Rs,onCopy:As,onEdit:Os,onPreviewOpen:ze,onExtractCharacter:Fs,hasMore:$,isLoadingMore:M,onLoadMore:V,totalCount:x,loadedCount:z,allLoadedText:Js,allLoadedHint:x>=100?Ae:void 0,className:"task-queue-panel__list",emptyContent:D?s.jsxDEV("div",{className:"task-queue-panel__empty",children:[s.jsxDEV("div",{className:"task-queue-panel__empty-icon",children:"⏳"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1288,columnNumber:19},void 0),s.jsxDEV("div",{className:"task-queue-panel__empty-text",children:"加载中..."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1289,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1287,columnNumber:17},void 0):s.jsxDEV("div",{className:"task-queue-panel__empty",children:[s.jsxDEV("div",{className:"task-queue-panel__empty-icon",children:"📋"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1293,columnNumber:19},void 0),s.jsxDEV("div",{className:"task-queue-panel__empty-text",children:A==="all"?"暂无任务":`暂无${A==="active"?"生成中":A==="completed"?"已完成":A==="failed"?"失败":"已取消"}任务`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1294,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1292,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1264,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1234,columnNumber:7},void 0),s.jsxDEV(ue,{open:hs,title:"确认清除",description:`确定要清除所有${qe==="completed"?"已完成":"失败"}的任务吗?此操作无法撤销。`,confirmText:"清除",cancelText:"取消",danger:!0,onOpenChange:oe,onConfirm:Es},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1315,columnNumber:7},void 0),s.jsxDEV(ue,{open:js,title:"确认删除",description:"确定要删除此任务吗?此操作无法撤销。",confirmText:"删除",cancelText:"取消",danger:!0,onOpenChange:he,onConfirm:_s},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1329,columnNumber:7},void 0),s.jsxDEV(ue,{open:qs,title:"确认批量删除",description:`确定要删除选中的 ${N.size} 个任务吗?此操作无法撤销。`,confirmText:"删除",cancelText:"取消",danger:!0,onOpenChange:ke,onConfirm:Qs},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1341,columnNumber:7},void 0),s.jsxDEV(ka,{visible:ks,items:Gs,initialMode:vs,initialIndex:bs,onClose:Hs,showThumbnails:!0,onEdit:Bs},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1353,columnNumber:7},void 0),Ce&&De&&s.jsxDEV(ba,{visible:Ce,imageUrl:De,showOverwrite:!1,onClose:()=>{pe(!1),fe("")},onInsert:G?Ws:void 0},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1365,columnNumber:9},void 0),s.jsxDEV(Ia,{visible:!!Ue,task:Ue,onClose:()=>xe(null),onCreateStart:()=>{},onCreateComplete:a=>{xe(null)}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1378,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/task-queue/TaskQueuePanel.tsx",lineNumber:1233,columnNumber:5},void 0)};export{Ma as TASK_DRAWER_WIDTH_KEY,Ha as TaskQueuePanel};
|