aitu-app 0.6.76 → 0.6.78
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-DutgwdiU.js +2 -0
- package/assets/ChatDrawer-E6Fog16I.js +11 -0
- package/assets/{ChatMessagesArea-CZkiRzmW.js → ChatMessagesArea-Bgwiz_XP.js} +3 -3
- package/assets/DeferredAIInputBar-CPkD8Cv9.js +8 -0
- package/assets/DeferredAIInputBar-szBPHiNW.css +1 -0
- package/assets/DrawnixDeferredFeatures-Cul76-88.js +2 -0
- package/assets/{KnowledgeBaseContent-Dan2DUqY.js → KnowledgeBaseContent-DcX5Jofx.js} +6 -6
- package/assets/{MVCreator-Dzjl2fXA.js → MVCreator-DllHozYg.js} +8 -8
- package/assets/{ModelBenchmarkWorkbench-oy2wue1u.js → ModelBenchmarkWorkbench-Dv9SNYTi.js} +2 -2
- package/assets/MusicAnalyzer-CHcQ5t4P.js +1 -0
- package/assets/{MusicAnalyzer-BO44f-db.js → MusicAnalyzer-DDeT6g3c.js} +2 -2
- package/assets/ResizableDivider-CaG9JQbJ.js +1 -0
- package/assets/TaskQueuePanel-BNhNzGp5.js +1 -0
- package/assets/{VideoAnalyzer-iiJpoWb6.js → VideoAnalyzer-BSLz1FaI.js} +2 -2
- package/assets/ai-generation-preferences-service-BF7QkuJp.js +1 -0
- package/assets/arc-BU2KKCa_.js +1 -0
- package/assets/arc-DmGoDCEL.js +1 -0
- package/assets/{batch-image-generation-B2R0hJW_.js → batch-image-generation-Bg68r_Ql.js} +5 -5
- package/assets/{blockDiagram-38ab4fdb-BmWPnNuS.js → blockDiagram-38ab4fdb-BCGEnMME.js} +1 -1
- package/assets/{blockDiagram-38ab4fdb-trArAOFP.js → blockDiagram-38ab4fdb-CsZR5uC5.js} +1 -1
- package/assets/board-utils-CpAtoKn2.js +1 -0
- package/assets/{browser-Dya3c6_X.js → browser-DpICcNby.js} +1 -1
- package/assets/{c4Diagram-3d4e48cf-Cvj3RMOv.js → c4Diagram-3d4e48cf-9fuiuFdV.js} +1 -1
- package/assets/{c4Diagram-3d4e48cf-CqJrO4Za.js → c4Diagram-3d4e48cf-WM4wd_GR.js} +1 -1
- package/assets/{canvas-insertion-Dq3gR9Nw.js → canvas-insertion-CdUQF7IV.js} +3 -3
- package/assets/channel-CZjE-WNp.js +1 -0
- package/assets/channel-SXZD6bG3.js +1 -0
- package/assets/classDiagram-70f12bd4-CBVHTwQu.js +2 -0
- package/assets/{classDiagram-70f12bd4-DvrRZ41d.js → classDiagram-70f12bd4-DcYDedz1.js} +2 -2
- package/assets/classDiagram-v2-f2320105-CsxWGkSy.js +2 -0
- package/assets/classDiagram-v2-f2320105-jpCwaHEd.js +2 -0
- package/assets/{clipper-B4i11tN1.js → clipper-jvd5rF5a.js} +1 -1
- package/assets/clone-C4mvvMDb.js +1 -0
- package/assets/{createText-2e5e7dd3-D7dXlVes.js → createText-2e5e7dd3-CkXS3l7I.js} +2 -2
- package/assets/{createText-2e5e7dd3-B8gnT5hD.js → createText-2e5e7dd3-x5lOIwut.js} +1 -1
- package/assets/edges-e0da2a9e-CbrF4nbD.js +4 -0
- package/assets/{edges-e0da2a9e-CyRAzEMi.js → edges-e0da2a9e-Ch6PBwWs.js} +2 -2
- package/assets/{erDiagram-9861fffd-D8yYsjoN.js → erDiagram-9861fffd-Bq07elcI.js} +3 -3
- package/assets/{erDiagram-9861fffd-BHbAa_Ka.js → erDiagram-9861fffd-DSlNVuAZ.js} +4 -4
- package/assets/{flowDb-956e92f1-DAqb8wjP.js → flowDb-956e92f1-BqPCJlZp.js} +3 -3
- package/assets/{flowDb-956e92f1-f30uG4pp.js → flowDb-956e92f1-Ti5YC4Vv.js} +3 -3
- package/assets/{flowDiagram-66a62f08-C4Gz9mOM.js → flowDiagram-66a62f08-CPDuG3rY.js} +3 -3
- package/assets/{flowDiagram-66a62f08-CBXypoEi.js → flowDiagram-66a62f08-D3GSABFi.js} +1 -1
- package/assets/flowDiagram-v2-96b9c2cf-BCcJ-cre.js +1 -0
- package/assets/flowDiagram-v2-96b9c2cf-DCVaFEgV.js +1 -0
- package/assets/{flowchart-elk-definition-4a651766-CSm5diF6.js → flowchart-elk-definition-4a651766-BH09NeLA.js} +1 -1
- package/assets/{flowchart-elk-definition-4a651766-BHB7pRxm.js → flowchart-elk-definition-4a651766-BLaLPCDV.js} +1 -1
- package/assets/{ganttDiagram-c361ad54-CU9a9DsJ.js → ganttDiagram-c361ad54-DL9ZeaEc.js} +4 -4
- package/assets/ganttDiagram-c361ad54-Sp9M1KHP.js +257 -0
- package/assets/{gitGraphDiagram-72cf32ee-B2zj8Xnu.js → gitGraphDiagram-72cf32ee-BSf1fsDV.js} +1 -1
- package/assets/{gitGraphDiagram-72cf32ee-BWOgrFeh.js → gitGraphDiagram-72cf32ee-BWwmRKo-.js} +1 -1
- package/assets/{graph-Bnmq4jgf.js → graph--nPw8zXQ.js} +1 -1
- package/assets/graph-g-2U7grQ.js +1 -0
- package/assets/{index-3862675e-CQLKy6RO.js → index-3862675e-BXwbZ2pz.js} +1 -1
- package/assets/{index-3862675e-BSxxidV_.js → index-3862675e-D6Zy95zZ.js} +1 -1
- package/assets/index-3eqA7Bag.js +1 -0
- package/assets/{index-D1ORCZqJ.js → index-7Q-aiwln.js} +2 -2
- package/assets/index-B2dttXd7.js +1 -0
- package/assets/index-B7V7-Vxz.js +1 -0
- package/assets/index-BHPTfCZM.js +1 -0
- package/assets/{index-vvV37Q1S.js → index-BP77pG9S.js} +4 -4
- package/assets/index-BPR_DyGD.js +1 -0
- package/assets/index-BWrcsh8u.js +1 -0
- package/assets/{index-D4qm_1m5.js → index-BXzGHPXz.js} +1 -1
- package/assets/index-BaCHOxhI.js +1 -0
- package/assets/{index-BoglETHF.js → index-Bq8mPedC.js} +2 -2
- package/assets/index-BqHZCcen.js +2 -0
- package/assets/index-Bti3m-iW.js +1 -0
- package/assets/{index-sPNG1_UN.js → index-BwSnJN93.js} +5 -5
- package/assets/{index-D5qxbeGT.js → index-C3qD42ws.js} +1 -1
- package/assets/{index-VzDb_AHs.js → index-C5eu4uSl.js} +5 -5
- package/assets/index-CLJUfzvO.js +1 -0
- package/assets/index-CfgvFFx3.js +271 -0
- package/assets/index-CmyOpFTN.js +1 -0
- package/assets/index-D4pIkh3S.js +1 -0
- package/assets/index-D7b5fX1d.js +1 -0
- package/assets/index-DH12_HTj.js +13 -0
- package/assets/index-DI0OV6F8.js +7 -0
- package/assets/index-DIiIUyb-.js +1 -0
- package/assets/index-DcZrElEK.js +2 -0
- package/assets/index-DllL1sx1.js +1 -0
- package/assets/index-DqMndQiP.js +1 -0
- package/assets/index-Dz8sghkK.js +1 -0
- package/assets/index-QkP3EC02.js +1 -0
- package/assets/index-TkfyNewx.js +1 -0
- package/assets/index-ZrVeQUWo.js +1 -0
- package/assets/index-eZfwJ9bV.js +3 -0
- package/assets/{index-VarwiJlL.js → index-gQ7LgvSv.js} +1 -1
- package/assets/{infoDiagram-f8f76790-d-BYTW2w.js → infoDiagram-f8f76790-DpFqCCNv.js} +3 -3
- package/assets/{infoDiagram-f8f76790-BMsVq8O_.js → infoDiagram-f8f76790-G2JpJJP7.js} +3 -3
- package/assets/{journeyDiagram-49397b02-DCtCkoaC.js → journeyDiagram-49397b02-BdESGMrv.js} +1 -1
- package/assets/{journeyDiagram-49397b02-CBqb8-ml.js → journeyDiagram-49397b02-DLLTobRM.js} +1 -1
- package/assets/{layout-DKqEkE_W.js → layout-CVkuImk4.js} +1 -1
- package/assets/layout-WSR0vNPO.js +1 -0
- package/assets/line-D3bnG227.js +1 -0
- package/assets/line-DQuMJveY.js +1 -0
- package/assets/{linear-C6OQYT56.js → linear-CciP-97N.js} +1 -1
- package/assets/linear-Z6vFvuwc.js +1 -0
- package/assets/{main-i0s2IJTn.css → main-8DNjLY6L.css} +1 -1
- package/assets/main-BFEkxCOK.js +56 -0
- package/assets/{mermaid.core-CI-VJEiw.js → mermaid.core-CwZQb0ud.js} +5 -5
- package/assets/{mindmap-definition-fc14e90a-k_RSypuP.js → mindmap-definition-fc14e90a-BnJ8OOTI.js} +1 -1
- package/assets/{mindmap-definition-fc14e90a-DrtlQLES.js → mindmap-definition-fc14e90a-CxQMydCW.js} +1 -1
- package/assets/model-benchmark-launcher-Ct3lYXVq.js +1 -0
- package/assets/photo-wall-splitter-BZ88W5Zy.js +1 -0
- package/assets/{pieDiagram-8a3498a8-CdknGxKY.js → pieDiagram-8a3498a8-BSDdkTeu.js} +5 -5
- package/assets/{pieDiagram-8a3498a8-Bpr5V3o5.js → pieDiagram-8a3498a8-D6VtAoja.js} +4 -4
- package/assets/ppt-generation-FzjP_rp0.js +48 -0
- package/assets/{quadrantDiagram-120e2f19-Dx3qoKDx.js → quadrantDiagram-120e2f19-BbFV0VXY.js} +3 -3
- package/assets/{quadrantDiagram-120e2f19-pVIXp9i6.js → quadrantDiagram-120e2f19-C8k2xuBd.js} +3 -3
- package/assets/{requirementDiagram-deff3bca-hM4oekUG.js → requirementDiagram-deff3bca-C3xMdzJV.js} +1 -1
- package/assets/{requirementDiagram-deff3bca-DD6NY75P.js → requirementDiagram-deff3bca-CpjqKjYZ.js} +1 -1
- package/assets/{sankeyDiagram-04a897e0-BsvEG71N.js → sankeyDiagram-04a897e0-BBJJgsFv.js} +5 -5
- package/assets/{sankeyDiagram-04a897e0-C9uf1jU5.js → sankeyDiagram-04a897e0-Bjvig9bW.js} +4 -4
- package/assets/{sequenceDiagram-704730f1-CNEBmz1G.js → sequenceDiagram-704730f1-DX1MmBN_.js} +4 -4
- package/assets/{sequenceDiagram-704730f1-Bpg54z74.js → sequenceDiagram-704730f1-PFC_9IFI.js} +4 -4
- package/assets/settings-dialog-CQM4v791.js +1 -0
- package/assets/{skill-dsl-parser-DS3VOBFI.js → skill-dsl-parser-syNWYxFu.js} +10 -10
- package/assets/{stateDiagram-587899a1-BN2ZP-3x.js → stateDiagram-587899a1-Dc3mI_B_.js} +1 -1
- package/assets/stateDiagram-587899a1-SFMUVAam.js +1 -0
- package/assets/{stateDiagram-v2-d93cdb3a-BtV1Ziy9.js → stateDiagram-v2-d93cdb3a-DmnBjHpC.js} +1 -1
- package/assets/{stateDiagram-v2-d93cdb3a-BLwIM8s1.js → stateDiagram-v2-d93cdb3a-P4Yt2p_j.js} +1 -1
- package/assets/{styles-6aaf32cf-aFVlX_lA.js → styles-6aaf32cf-C3jnr3hV.js} +1 -1
- package/assets/{styles-6aaf32cf-CGp3i5qu.js → styles-6aaf32cf-b6AdP7fu.js} +1 -1
- package/assets/{styles-9a916d00-BK7pejCH.js → styles-9a916d00-BUiD9iBe.js} +4 -4
- package/assets/{styles-9a916d00-CSwFWVnr.js → styles-9a916d00-ii0XTdIm.js} +1 -1
- package/assets/styles-c10674c1-Bt89Yy8Q.js +116 -0
- package/assets/styles-c10674c1-DbTSpy3W.js +116 -0
- package/assets/{svgDrawCommon-08f97a94-Cr4rWU-W.js → svgDrawCommon-08f97a94-BK6lD4D6.js} +1 -1
- package/assets/{svgDrawCommon-08f97a94-DypvMDvH.js → svgDrawCommon-08f97a94-D4gIV05W.js} +1 -1
- package/assets/{timeline-definition-85554ec2-D3-lXEL5.js → timeline-definition-85554ec2-Bl2y548G.js} +1 -1
- package/assets/{timeline-definition-85554ec2-DIwHE15c.js → timeline-definition-85554ec2-CWKg_JxG.js} +3 -3
- package/assets/{tool-windows-B-a9r3G3.css → tool-windows-CUNbW1Tz.css} +1 -1
- package/assets/tool-windows-DOIu9TAD.js +2975 -0
- package/assets/ttd-dialog-DI4kQSg8.js +99 -0
- package/assets/{useCharacters-DsZ779l-.js → useCharacters-Chv4Ky7x.js} +3 -3
- package/assets/useWorkflowSubmission-BizuDmuw.js +70 -0
- package/assets/video-analyze-6v3Y-rUE.js +1 -0
- package/assets/{video-generation-C7qCz-ZF.js → video-generation-DnmTlWnm.js} +2 -2
- package/assets/video-recovery-service-BeRoh0s2.js +1 -0
- package/assets/workflow-generation-utils-me381Cax.js +3 -0
- package/assets/workflow-submission-service-YOpo7g37.js +4 -0
- package/assets/{xychartDiagram-e933f94c-B17Evxfw.js → xychartDiagram-e933f94c-CJX9_9WF.js} +4 -4
- package/assets/{xychartDiagram-e933f94c-Dln5PJtU.js → xychartDiagram-e933f94c-Cep8CQEH.js} +3 -3
- package/changelog.json +50 -0
- package/idle-prefetch-manifest.json +300 -316
- package/manifest.json +3 -3
- package/package.json +1 -1
- package/precache-manifest.json +8 -8
- package/sw.js +5 -5
- package/version.json +19 -3
- package/assets/CanvasAudioPlayer-DwM6PU4W.js +0 -2
- package/assets/ChatDrawer-BQTaa6r6.js +0 -11
- package/assets/DeferredAIInputBar-BmPgFhXr.css +0 -1
- package/assets/DeferredAIInputBar-ObyfJQ0O.js +0 -7
- package/assets/DrawnixDeferredFeatures-CFHVLxc5.js +0 -2
- package/assets/ModelDropdown-CQTTHEI7.css +0 -1
- package/assets/ModelDropdown-DjvIvi8O.js +0 -1
- package/assets/MusicAnalyzer-BU5l2wPR.js +0 -1
- package/assets/ResizableDivider-CBgTphcS.js +0 -1
- package/assets/TaskQueuePanel-CTDuSScf.js +0 -1
- package/assets/ai-generation-preferences-service-CqwXb9Cs.js +0 -5
- package/assets/arc-BBE0LXa1.js +0 -1
- package/assets/arc-h476db6P.js +0 -1
- package/assets/channel-DMTz1UNN.js +0 -1
- package/assets/channel-DQOY3XLe.js +0 -1
- package/assets/classDiagram-70f12bd4-5ACx619h.js +0 -2
- package/assets/classDiagram-v2-f2320105-4zQ4jrwi.js +0 -2
- package/assets/classDiagram-v2-f2320105-CB4rof84.js +0 -2
- package/assets/clone-fuaXEdc-.js +0 -1
- package/assets/edges-e0da2a9e-DZalSm7f.js +0 -4
- package/assets/flowDiagram-v2-96b9c2cf-C-DFFh54.js +0 -1
- package/assets/flowDiagram-v2-96b9c2cf-CWjydvHB.js +0 -1
- package/assets/ganttDiagram-c361ad54-DDnbMkWm.js +0 -257
- package/assets/graph-BsYIlc-B.js +0 -1
- package/assets/index-B10kMZoq.js +0 -1
- package/assets/index-B2_XRj3U.js +0 -1
- package/assets/index-B4lLv-Sz.js +0 -1
- package/assets/index-BFZNUUCR.js +0 -1
- package/assets/index-BTSYG2Vy.js +0 -1
- package/assets/index-BY5Kvjqg.js +0 -1
- package/assets/index-Blf7J5yW.js +0 -1
- package/assets/index-BoQA7VaE.js +0 -3
- package/assets/index-BzqQ69oU.js +0 -1
- package/assets/index-CD2D1BYc.js +0 -2
- package/assets/index-CLRs5cWt.js +0 -1
- package/assets/index-CLU4LJjR.js +0 -1
- package/assets/index-CPDfMZkS.js +0 -1
- package/assets/index-CPfhqyDz.js +0 -316
- package/assets/index-CU4ySaQE.js +0 -1
- package/assets/index-CsCwwmYY.js +0 -1
- package/assets/index-Cyz_w8KS.js +0 -7
- package/assets/index-D489cJtb.js +0 -1
- package/assets/index-D6DebbcI.js +0 -1
- package/assets/index-DDtPG6Km.js +0 -1
- package/assets/index-DKhTnUBU.js +0 -1
- package/assets/index-DMIwLDS8.js +0 -13
- package/assets/index-DgsUJgRJ.js +0 -1
- package/assets/index-oT8mbA3U.js +0 -2
- package/assets/layout-B1ePJO5V.js +0 -1
- package/assets/line-C_jmJ6v1.js +0 -1
- package/assets/line-DfhCgsyz.js +0 -1
- package/assets/linear-ChY5Iu43.js +0 -1
- package/assets/main-LCg1nQGB.js +0 -69
- package/assets/model-benchmark-launcher-B2MsZXmV.js +0 -1
- package/assets/model-benchmark-service-CkIRp-Sq.js +0 -1
- package/assets/model-selection-BvdXmVGX.js +0 -1
- package/assets/photo-wall-splitter-CVrfkWnh.js +0 -1
- package/assets/prompt-optimize-dialog-DLdL2_a1.css +0 -1
- package/assets/settings-dialog-CAhU3cfG.js +0 -1
- package/assets/stateDiagram-587899a1-CMylUAYu.js +0 -1
- package/assets/styles-c10674c1-KfJINP7I.js +0 -116
- package/assets/styles-c10674c1-cccyjRUz.js +0 -116
- package/assets/tool-windows-CtLXQDGF.js +0 -2847
- package/assets/ttd-dialog-BRg3XE5k.js +0 -99
- package/assets/use-runtime-models-BH9r4Yc1.js +0 -1
- package/assets/use-runtime-models-BgWWl4Ng.css +0 -1
- package/assets/useWorkflowSubmission-BeJQ3BuO.js +0 -70
- package/assets/video-analyze-aDVIfgUi.js +0 -1
- package/assets/video-recovery-service-Dy0xiPr8.js +0 -1
- package/assets/workflow-generation-utils-CpMilOwA.js +0 -3
- package/assets/workflow-submission-service-CmBBMIis.js +0 -4
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{y as a,aI as ys,nD as Ka,at as ss,nE as Sa,lL as Ns,nF as bs,ns as xs,nx as hs,nG as js,nH as ws,nI as ks,nJ as zs,nv as Es,nB as Vs,nC as _s,nK as oe,bL as qa,r as n,nL as ve,nM as He,ly as Ds,iW as ya,fy as ze,h0 as ye,nN as ra,nO as Ca,nP as Ia,i2 as Ie,nQ as Us,nR as Te,nS as Ps,h2 as X,nT as ns,nU as Na,nV as ea,nW as Ss,nX as Is,nY as qs,nZ as ba,cX as aa,al as Ee,n_ as Cs,ic as is,h1 as Ne,n$ as xa,o0 as ha,hL as ja,k$ as As,bV as Fe,ke as rs,hN as Ya,as as wa,bx as Wa,j1 as Ms,hl as Rs,nn as Za,no as Ts,np as Gs,o1 as Ls,ij as Os,fQ as Fs,dj as Hs,eI as $s}from"./tool-windows-CtLXQDGF.js";import{v as Bs}from"./video-analyze-aDVIfgUi.js";import{quickInsert as ia,setCanvasBoard as Qa}from"./canvas-insertion-Dq3gR9Nw.js";import{M as $e}from"./ModelDropdown-DjvIvi8O.js";import{u as Be}from"./use-runtime-models-BH9r4Yc1.js";import{a as Ke}from"./model-selection-BvdXmVGX.js";import{e as Ks,c as Ys,r as Ws,a as Zs,b as sa,w as ka,d as Qs,f as Xs}from"./workflow-generation-utils-CpMilOwA.js";/* empty css *//* empty css *//* empty css */import{R as Js}from"./ResizableDivider-CBgTphcS.js";/* empty css */import"./model-benchmark-service-CkIRp-Sq.js";const Xa=[{id:"analyze",label:"分析"},{id:"script",label:"脚本"},{id:"generate",label:"生成"}],en=({current:e,onNavigate:i,hasRecord:d})=>{const j=Xa.findIndex(l=>l.id===e);return a.jsxDEV("div",{className:"va-step-bar",children:Xa.map((l,v)=>{const m=l.id===e,k=v<j,w=!d&&v>0;return a.jsxDEV(ys.Fragment,{children:[v>0&&a.jsxDEV("span",{className:"va-step-arrow",children:"→"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/StepBar.tsx",lineNumber:33,columnNumber:23},void 0),a.jsxDEV("button",{className:`va-step ${m?"active":""} ${k?"past":""}`,onClick:()=>!w&&i(l.id),disabled:w,children:[a.jsxDEV("span",{className:"va-step-num",children:v+1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/StepBar.tsx",lineNumber:39,columnNumber:15},void 0),l.label]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/StepBar.tsx",lineNumber:34,columnNumber:13},void 0)]},l.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/StepBar.tsx",lineNumber:32,columnNumber:11},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/StepBar.tsx",lineNumber:25,columnNumber:5},void 0)},an=({shots:e,totalDuration:i})=>a.jsxDEV("div",{className:"va-timeline",children:e.filter(Boolean).map(d=>a.jsxDEV("div",{className:"va-timeline-segment",style:{flex:Math.max(((d.endTime??0)-(d.startTime??0))/Math.max(i,1),0),backgroundColor:d.type&&Ka[d.type]||Ka.other},title:`${d.label||"未命名镜头"} ${d.startTime??0}s-${d.endTime??0}s`},d.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/ShotTimeline.tsx",lineNumber:17,columnNumber:7},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/ShotTimeline.tsx",lineNumber:15,columnNumber:3},void 0);function Ja(e){return(e||"").trim().toLowerCase().replace(/[^a-z0-9]/g,"")||"mp4"}function sn(e){const i=e.name.split(".").pop();if(i&&i.length<=8)return Ja(i);const d=e.type.split("/")[1];return Ja(d)}async function nn(e,i){const d=sn(e),l=`/__aitu_cache__/video/${`video-analyzer-source-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}.${d}`;return await ss.cacheMediaFromBlob(l,e,"video",{metadata:{source:"video-analyzer-input",fileName:e.name,mimeType:e.type||"video/mp4",size:e.size}}),{type:"upload",cacheUrl:l,fileName:e.name||`video-source.${d}`,mimeType:e.type||"video/mp4",size:e.size}}async function rn(e){if(!e||e.type!=="upload")return null;const i=await ss.getCachedBlob(e.cacheUrl);return i?new File([i],e.fileName||"video-source.mp4",{type:e.mimeType||i.type||"video/mp4",lastModified:Date.now()}):null}function ts(e){return Vs(e,"videoAnalyzerAction",["analyze","rewrite"])}function tn(e){return _s(e,{missingMessage:"分析任务缺少结果内容",fromStructured:i=>i})}function on(e){const i=e.params.videoAnalyzerSourceSnapshot;if((i==null?void 0:i.type)==="youtube"||(i==null?void 0:i.type)==="upload")return i;const d=e.params.videoAnalyzerSource,j=String(e.params.videoAnalyzerSourceLabel||"").trim();return d==="youtube"&&j?{type:"youtube",youtubeUrl:j}:null}function ln(e){var d;const i=(d=e.result)==null?void 0:d.analysisData;return Array.isArray(i==null?void 0:i.editedShots)?i.editedShots:null}async function Aa(e){var P,q;if(e.status!=="completed")return null;const i=ts(e);if(!i)return null;if(i==="analyze"){const G=await Sa(),F=G.find(R=>R.analyzeTaskId===e.id);if(F)return{records:G,record:F};const Q=tn(e),N=on(e),L=e.params.videoAnalyzerSource==="upload"?"upload":"youtube",K=String(e.params.videoAnalyzerSourceLabel||(L==="youtube"?(N==null?void 0:N.type)==="youtube"?N.youtubeUrl:"":"本地视频")),O={id:Ns(),createdAt:Date.now(),source:L,sourceLabel:K,sourceSnapshot:N,model:String(e.params.model||""),modelRef:e.params.modelRef||null,analysis:Q,starred:!1,analyzeTaskId:e.id};return{records:await bs(O),record:O}}const d=xs(e,"videoAnalyzerRecordId");if(!d)return null;const l=(await Sa()).find(G=>G.id===d);if(!l||l.pendingRewriteTaskId!==e.id)return null;const v=hs(e),m=ln(e),k=m||(()=>{if(!v)throw new Error("脚本改编任务缺少结果内容");const G=js(v),F=l.editedShots||l.analysis.shots;return ws(F,G)})(),w=`AI 改编 #${(((P=l.scriptVersions)==null?void 0:P.length)||0)+1}`,z=ks(k,w,(q=l.productInfo)==null?void 0:q.prompt),g=zs(l,z);return Es(l,{...g,pendingRewriteTaskId:null,storyboardGeneratedAt:Date.now()},oe)}function dn(e){return ts(e)!==null}const za="gemini-3.1-pro-preview",Ea="video-analyzer:model",un="aitu:settings:provider-nav";function cn(e){return(e/1024/1024).toFixed(1)+"MB"}const mn=({existingRecord:e,onComplete:i,onRecordsChange:d,onCreateNew:j,onNext:l})=>{const{setAppState:v}=qa(),[m,k]=n.useState("upload"),[w,z]=n.useState(""),[g,P]=n.useState(null),[q,G]=n.useState(()=>(e==null?void 0:e.model)||ve(Ea,za).modelId),[F,Q]=n.useState(()=>(e==null?void 0:e.modelRef)||ve(Ea,za).modelRef),N=n.useCallback((o,x)=>{G(o),Q(x||null),He(Ea,o,x)},[]),[L,K]=n.useState(!1),[O,D]=n.useState(null),[R,S]=n.useState(""),[le,M]=n.useState(""),[T,H]=n.useState((e==null?void 0:e.analysis)||null),C=Ds(),U=n.useRef(null),$=n.useRef(null),Y=n.useMemo(()=>{if($.current&&URL.revokeObjectURL($.current),!g)return $.current=null,null;const o=URL.createObjectURL(g);return $.current=o,o},[g]);n.useEffect(()=>()=>{$.current&&URL.revokeObjectURL($.current)},[]),n.useEffect(()=>{let o=!1;return(async()=>{if(!e){if(O)return;H(null),k("upload"),z(""),P(null),M("");return}H(e.analysis||null),G(e.model||za),Q(e.modelRef||null),M("");const h=e.sourceSnapshot;if((h==null?void 0:h.type)==="upload"){k("upload"),z("");const ee=await rn(h);if(o)return;P(ee),ee||M("原上传视频缓存已失效,无法自动回填视频");return}if(e.source==="upload"){k("upload"),z(""),P(null),M("这条旧历史未保存原视频,无法自动回填视频");return}k("youtube"),P(null),(h==null?void 0:h.type)==="youtube"?z(h.youtubeUrl):e.source==="youtube"?z(e.sourceLabel||""):z("")})(),()=>{o=!0}},[e]);const Z=Be("text"),B=n.useMemo(()=>Z.filter(o=>/^gemini/i.test(o.id)),[Z]),de=n.useMemo(()=>{const o=C.find(x=>x.id===ya);return!!(o!=null&&o.apiKey.trim())},[C]),be=(F==null?void 0:F.profileId)===ya,De=n.useCallback(()=>{const o={action:"select",profileId:ya};window.__aituPendingProviderNavigationIntent=o,window.dispatchEvent(new CustomEvent(un,{detail:o})),v(x=>({...x,openSettings:!0}))},[v]),me=n.useCallback(o=>{var h;const x=(h=o.target.files)==null?void 0:h[0];x&&(P(x),M(""),H(null))},[]),Ue=n.useCallback(o=>{o.preventDefault();const x=o.dataTransfer.files[0];x!=null&&x.type.startsWith("video/")&&(P(x),M(""),H(null))},[]),re=n.useCallback(o=>{o.stopPropagation(),P(null),M(""),U.current&&(U.current.value="")},[]),[qe,Ce]=n.useState(!1),[J,se]=n.useState(""),pe=n.useCallback(async(o,x)=>{Ce(!0),se("提取帧图片...");try{const h=x.map(ue=>ue.startTime),ee=await Ks(o,h,(ue,je)=>se(`提取帧图片 ${ue}/${je}`));return await Promise.all(x.map(async(ue,je)=>{const we=ee[je];if(!we)return ue;try{const ta=await Ys(we,ue.id,"first");return{...ue,generated_first_frame_url:ta}}catch{return ue}}))}catch(h){return console.debug("Frame extraction failed:",h),x}finally{Ce(!1),se("")}},[]),r=n.useCallback(async()=>{K(!0),M(""),S("准备中...");try{let o={};if(m==="upload"&&g){S("缓存视频文件...");const h=await nn(g);o={videoCacheUrl:h.type==="upload"?h.cacheUrl:void 0,...h.type==="upload"?{mimeType:h.mimeType}:{},model:q,modelRef:F,taskLabel:`分析视频:${g.name||"本地视频"}`,videoAnalyzerSource:"upload",videoAnalyzerSourceLabel:g.name||"本地视频",videoAnalyzerSourceSnapshot:h}}else if(m==="youtube"&&w)o={youtubeUrl:w,model:q,modelRef:F,taskLabel:`分析视频:${w}`,videoAnalyzerSource:"youtube",videoAnalyzerSourceLabel:w,videoAnalyzerSourceSnapshot:{type:"youtube",youtubeUrl:w}};else{M("请先选择视频文件或输入 YouTube URL"),K(!1);return}ze.trackUIInteraction({area:"popular_video_tool",action:"video_analysis_started",control:"analyze_video",source:"video_analyzer_analyze_page",metadata:{inputMode:m,hasUpload:!!g,hasYoutubeUrl:!!w,fileSizeBytes:g==null?void 0:g.size,hasModelRef:!!F}}),S("加入任务队列...");const x=await Bs.execute(o,{mode:"queue"});x.success&&x.taskId?(D(x.taskId||null),S("已加入任务队列,等待分析...")):M(x.error||"创建分析任务失败")}catch(o){M(o.message||"分析失败")}finally{K(!1)}},[m,g,w,q,F]);n.useEffect(()=>{if(!O)return;const o=ye.observeTaskUpdates().subscribe(x=>{var h;if(x.task.id===O){if(x.task.status==="failed"){D(null),S(""),M(((h=x.task.error)==null?void 0:h.message)||"分析失败");return}if(x.task.status==="completed"){Aa(x.task).then(async ee=>{if(ee&&(d(ee.records),i(ee.record),H(ee.record.analysis),ee.record.source==="upload"&&g&&ee.record.analysis.shots.length>0)){const ue=await pe(g,ee.record.analysis.shots);H(we=>we&&{...we,shots:ue});const je=await oe(ee.record.id,{editedShots:ue});d(je),i({...ee.record,editedShots:ue})}}).catch(ee=>{M(ee.message||"分析结果同步失败")}).finally(()=>{D(null),S("")});return}typeof x.task.progress=="number"?S(`分析中 ${Math.round(x.task.progress)}%`):S("分析中,请耐心等待...")}});return()=>o.unsubscribe()},[O,i,d,g,pe]);const b=n.useCallback(async()=>{var o;T&&(await ia("text",ra(T.shots,T)),ze.trackUIInteraction({area:"popular_video_tool",action:"analysis_inserted_to_canvas",control:"insert_analysis",source:"video_analyzer_analyze_page",metadata:{shotCount:T.shots.length,productExposureRatio:T.productExposureRatio,characterCount:((o=T.characters)==null?void 0:o.length)||0}}))},[T]);return a.jsxDEV("div",{className:"va-page",children:[!T&&a.jsxDEV(a.Fragment,{children:[a.jsxDEV("div",{className:"va-tabs",children:[a.jsxDEV("button",{className:`va-tab ${m==="upload"?"active":""}`,onClick:()=>k("upload"),children:"上传视频"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:398,columnNumber:13},void 0),a.jsxDEV("button",{className:`va-tab ${m==="youtube"?"active":""}`,onClick:()=>k("youtube"),children:"YouTube URL"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:399,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:397,columnNumber:11},void 0),m==="upload"?g?a.jsxDEV("div",{className:"va-video-preview",children:[a.jsxDEV("video",{src:Y,controls:!0,muted:!0,playsInline:!0},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:405,columnNumber:17},void 0),a.jsxDEV("button",{className:"va-video-preview-close",onClick:re,children:"✕"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:406,columnNumber:17},void 0),a.jsxDEV("div",{className:"va-video-preview-info",children:[a.jsxDEV("span",{className:"va-video-preview-name",children:g.name},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:408,columnNumber:19},void 0),a.jsxDEV("span",{className:"va-video-preview-size",children:cn(g.size)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:409,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:407,columnNumber:17},void 0),a.jsxDEV("input",{ref:U,type:"file",accept:"video/*",onChange:me,style:{display:"none"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:411,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:403,columnNumber:15},void 0):a.jsxDEV("div",{className:"va-dropzone",onDrop:Ue,onDragOver:o=>o.preventDefault(),onClick:()=>{var o;return(o=U.current)==null?void 0:o.click()},children:[a.jsxDEV("input",{ref:U,type:"file",accept:"video/*",onChange:me,style:{display:"none"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:415,columnNumber:17},void 0),a.jsxDEV("span",{className:"va-placeholder",children:["拖拽视频到此处 或 点击上传",a.jsxDEV("br",{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:418,columnNumber:19},void 0),a.jsxDEV("span",{className:"va-placeholder-hint",children:"建议视频在6M以内,可用推特或Youtube下载器下载最低分辨率视频"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:419,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:416,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:414,columnNumber:15},void 0):a.jsxDEV("input",{className:"va-url-input",type:"text",placeholder:"https://www.youtube.com/watch?v=...",value:w,onChange:o=>z(o.target.value)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:424,columnNumber:13},void 0),a.jsxDEV("div",{className:"va-model-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"分析模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:427,columnNumber:13},void 0),a.jsxDEV($e,{variant:"form",selectedModel:q,selectedSelectionKey:Ke(q,F),onSelect:N,models:B,placement:"down",disabled:L,placeholder:"选择多模态模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:428,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:426,columnNumber:11},void 0),!be&&a.jsxDEV("div",{className:"va-model-tip",children:[a.jsxDEV("span",{children:"建议使用 gemini-mix 分组的gemini-3.1-pro-preview"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:441,columnNumber:15},void 0),!de&&a.jsxDEV("button",{type:"button",className:"va-model-tip-link",onClick:De,children:"去设置"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:443,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:440,columnNumber:13},void 0),a.jsxDEV("button",{className:"va-analyze-btn",onClick:r,disabled:L||!!O||(m==="upload"?!g:!w),children:L||O?R||"分析中...":"开始分析"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:453,columnNumber:11},void 0),le&&a.jsxDEV("div",{className:"va-error",children:le},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:460,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:396,columnNumber:9},void 0),T&&a.jsxDEV("div",{className:"va-results",children:[a.jsxDEV("div",{className:"va-stats",children:[a.jsxDEV("div",{className:"va-stat",children:[a.jsxDEV("span",{className:"va-stat-value",children:[T.totalDuration,"s"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:468,columnNumber:38},void 0),a.jsxDEV("span",{className:"va-stat-label",children:"总时长"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:468,columnNumber:102},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:468,columnNumber:13},void 0),a.jsxDEV("div",{className:"va-stat",children:[a.jsxDEV("span",{className:"va-stat-value",children:T.shotCount},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:469,columnNumber:38},void 0),a.jsxDEV("span",{className:"va-stat-label",children:"镜头数"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:469,columnNumber:97},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:469,columnNumber:13},void 0),a.jsxDEV("div",{className:"va-stat",children:[a.jsxDEV("span",{className:"va-stat-value",children:[T.productExposureRatio,"%"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:470,columnNumber:38},void 0),a.jsxDEV("span",{className:"va-stat-label",children:"产品占比"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:470,columnNumber:109},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:470,columnNumber:13},void 0),a.jsxDEV("div",{className:"va-stat",children:[a.jsxDEV("span",{className:"va-stat-value",children:T.aspect_ratio||"-"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:471,columnNumber:38},void 0),a.jsxDEV("span",{className:"va-stat-label",children:"画面比例"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:471,columnNumber:107},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:471,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:467,columnNumber:11},void 0),(T.video_style||T.bgm_mood)&&a.jsxDEV("div",{className:"va-style-info",children:[T.video_style&&a.jsxDEV("span",{children:["风格: ",T.video_style]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:475,columnNumber:40},void 0),T.bgm_mood&&a.jsxDEV("span",{children:["BGM: ",T.bgm_mood]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:476,columnNumber:37},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:474,columnNumber:13},void 0),a.jsxDEV("div",{className:"va-suggestion",children:T.suggestion},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:479,columnNumber:11},void 0),a.jsxDEV(an,{shots:T.shots,totalDuration:T.totalDuration},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:480,columnNumber:11},void 0),a.jsxDEV("div",{className:"va-shots",children:T.shots.map((o,x)=>a.jsxDEV(Ca,{shot:o,index:x},o.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:485,columnNumber:15},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:483,columnNumber:11},void 0),a.jsxDEV("div",{className:"va-page-actions",children:[qe&&a.jsxDEV("span",{className:"va-frame-progress",children:J},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:490,columnNumber:34},void 0),a.jsxDEV("button",{onClick:b,children:"插入画布"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:491,columnNumber:13},void 0),a.jsxDEV("button",{onClick:()=>{H(null)},children:"重新分析"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:492,columnNumber:13},void 0),j&&a.jsxDEV("button",{onClick:j,children:"新建分析"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:493,columnNumber:29},void 0),l&&a.jsxDEV("button",{className:"va-btn-primary",onClick:l,children:"下一步: 编辑脚本 →"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:494,columnNumber:24},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:489,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:466,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:393,columnNumber:5},void 0)};function _e(e){e.style.height="auto",e.style.height=e.scrollHeight+"px"}function Pe(e,i=30){if(!e)return 1;const d=e.split(`
|
|
2
|
-
`);let j=0;for(const l of d)j+=Math.max(1,Math.ceil(l.length/i));return Math.max(1,j)}function Se(e){e&&_e(e)}const Va="video-analyzer:script-model",_a="video-analyzer:video-model",es="gemini-3.1-pro-preview",as="veo3",pn=["固定镜头 (Static)","缓慢推近 (Dolly In)","缓慢拉远 (Dolly Out)","水平平移 (Pan)","垂直摇移 (Tilt)","跟随拍摄 (Follow)","手持感 (Handheld)","环绕拍摄 (Orbit)","升降镜头 (Crane)","快速推移 (Zoom In)","快速拉远 (Zoom Out)","滑轨移动 (Slider)","航拍俯冲 (Drone Dive)","第一人称 (POV)"],fn=[{label:"无 (none)",value:"none"},{label:"仅旁白 (narration_only)",value:"narration_only"},{label:"仅对白 (dialogue_only)",value:"dialogue_only"},{label:"旁白+对白 (both)",value:"both"}],gn=[{label:"硬切 (cut)",value:"cut"},{label:"溶解 (dissolve)",value:"dissolve"},{label:"匹配切 (match_cut)",value:"match_cut"},{label:"淡出到黑 (fade_to_black)",value:"fade_to_black"}],vn=({record:e,onRecordUpdate:i,onRecordsChange:d,onNext:j})=>{var pe;const[l,v]=n.useState(()=>{const r=Ia(e.productInfo||{prompt:""},e.analysis.totalDuration);return{...r,videoStyle:r.videoStyle??e.analysis.video_style??"",bgmMood:r.bgmMood??e.analysis.bgm_mood??""}}),[m,k]=n.useState(e.editedShots||[...e.analysis.shots]),[w,z]=n.useState(!1),[g,P]=n.useState(()=>e.pendingRewriteTaskId||null),[q,G]=n.useState(""),[F,Q]=n.useState(""),[N,L]=n.useState(!1),K=n.useRef(null),[O,D]=n.useState(()=>ve(Va,es).modelId),[R,S]=n.useState(()=>ve(Va,es).modelRef),le=n.useCallback((r,b)=>{D(r),S(b||null),He(Va,r,b)},[]),M=Be("text"),T=Be("video"),[H,C]=n.useState(()=>{var r;return((r=e.productInfo)==null?void 0:r.videoModel)||ve(_a,as).modelId}),[U,$]=n.useState(()=>{var r,b;return((r=e.productInfo)==null?void 0:r.videoModelRef)||ve(_a,((b=e.productInfo)==null?void 0:b.videoModel)||as).modelRef}),Y=n.useCallback((r,b)=>{C(r),$(b||null),He(_a,r,b);const o=Ie(r),x=parseInt(o.defaultDuration,10)||8;v(h=>({...h,videoModel:r,videoModelRef:b||null,segmentDuration:x}))},[]),Z=n.useMemo(()=>Ie(H).durationOptions,[H]),B=n.useMemo(()=>{if(l.segmentDuration&&Z.some(o=>parseInt(o.value,10)===l.segmentDuration))return l.segmentDuration;const r=Ie(H);return parseInt(r.defaultDuration,10)||8},[l.segmentDuration,Z,H]),de=n.useMemo(()=>{const r=l.targetDuration||e.analysis.totalDuration,b=[{label:`${B}秒`,value:String(B)}];return Us(r,b)},[B,l.targetDuration,e.analysis.totalDuration]),be=n.useMemo(()=>e.characters||e.analysis.characters||[],[e.characters,e.analysis.characters]);n.useEffect(()=>{const r=Ia(e.productInfo||{prompt:""},e.analysis.totalDuration);v({...r,videoStyle:r.videoStyle??e.analysis.video_style??"",bgmMood:r.bgmMood??e.analysis.bgm_mood??""}),k(e.editedShots||[...e.analysis.shots]),P(b=>e.pendingRewriteTaskId??b??null),G(b=>e.pendingRewriteTaskId?b:"")},[e]);const De=n.useRef();n.useEffect(()=>(clearTimeout(De.current),De.current=setTimeout(async()=>{const r=await oe(e.id,{productInfo:l});d(r),i({...e,productInfo:l,pendingRewriteTaskId:g})},500),()=>clearTimeout(De.current)),[l,g]);const me=n.useCallback(async r=>{k(r);const b=Te(e,r),o=await oe(e.id,{...b,productInfo:l});d(o),i({...e,...b,productInfo:l,pendingRewriteTaskId:g})},[e,l,g,i,d]),Ue=n.useCallback(async r=>{const b=await oe(e.id,r);d(b),i({...e,...r,productInfo:l,pendingRewriteTaskId:g})},[e,l,g,i,d]),re=n.useCallback((r,b,o)=>{const x=m.map(h=>h.id===r?{...h,[b]:o}:h);me(x)},[m,me]),qe=n.useCallback((r,b)=>{const x=(e.characters||e.analysis.characters||[]).map(h=>h.id===r?{...h,description:b}:h);Ue({characters:x})},[e.characters,e.analysis.characters,Ue]),Ce=n.useCallback(async()=>{var r;if(!((r=l.prompt)!=null&&r.trim())){Q("请填写提示词");return}z(!0),Q(""),G("AI 改编中 0%"),ze.trackUIInteraction({area:"popular_video_tool",action:"script_rewrite_started",control:"rewrite_script",source:"video_analyzer_script_page",metadata:{shotCount:m.length,promptLength:l.prompt.trim().length,hasModelRef:!!R}});try{const b=Ps({recordAnalysis:e.analysis,productInfo:l,videoModel:H,characters:be}),o=ye.createTask({prompt:`改编脚本:${l.prompt.slice(0,40)}`,model:O,modelRef:R||null,videoAnalyzerAction:"rewrite",videoAnalyzerPrompt:b,videoAnalyzerRecordId:e.id,autoInsertToCanvas:!1},X.CHAT);P(o.id),G(`AI 改编中 ${Math.round(o.progress??0)}%`);const x=await oe(e.id,{pendingRewriteTaskId:o.id});d(x),i({...e,pendingRewriteTaskId:o.id})}catch(b){Q(b.message||"改编失败")}finally{z(!1)}},[e,l,m,H,be,O,R,i,d]);n.useEffect(()=>{if(!g)return;const r=ye.getTask(g);typeof(r==null?void 0:r.progress)=="number"&&G(`AI 改编中 ${Math.round(r.progress)}%`);const b=ye.observeTaskUpdates().subscribe(o=>{var x;if(o.task.id===g){if(o.task.status==="failed"){P(null),G(""),Q(((x=o.task.error)==null?void 0:x.message)||"改编失败"),oe(e.id,{pendingRewriteTaskId:null}).then(h=>{d(h),i({...e,pendingRewriteTaskId:null})});return}if(o.task.status==="completed"){Aa(o.task).then(h=>{h&&(d(h.records),i(h.record),k(h.record.editedShots||h.record.analysis.shots))}).catch(h=>{Q(h.message||"改编结果同步失败")}).finally(()=>{P(null),G("")});return}typeof o.task.progress=="number"&&G(`AI 改编中 ${Math.round(o.task.progress)}%`)}});return()=>b.unsubscribe()},[g,e.id,i,d]);const J=n.useCallback(async()=>{await ia("text",ra(m,e.analysis,l)),ze.trackUIInteraction({area:"popular_video_tool",action:"script_inserted_to_canvas",control:"insert_script",source:"video_analyzer_script_page",metadata:{shotCount:m.length}})},[m,l,e]),se=n.useCallback(async r=>{const b=ns(e,r);if(!b)return;L(!1),k(b.editedShots);const o=await oe(e.id,b);d(o),i({...e,...b})},[e,i,d]);return n.useEffect(()=>{if(!N)return;const r=b=>{K.current&&!K.current.contains(b.target)&&L(!1)};return document.addEventListener("mousedown",r),()=>document.removeEventListener("mousedown",r)},[N]),a.jsxDEV("div",{className:"va-page",children:[a.jsxDEV("div",{className:"va-product-form",children:[a.jsxDEV("textarea",{ref:Se,className:"va-form-textarea va-auto-resize",placeholder:"描述你想要的视频内容,如:拖鞋,生活用品,主打防滑...",rows:Math.max(3,Pe(l.prompt)),value:l.prompt,onChange:r=>v(b=>({...b,prompt:r.target.value})),onInput:r=>_e(r.currentTarget)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:408,columnNumber:9},void 0),a.jsxDEV("div",{className:"va-form-row",children:a.jsxDEV("div",{className:"va-duration-input",style:{width:"auto",flex:1},children:[a.jsxDEV("label",{className:"va-edit-label",children:"视频时长(秒)"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:419,columnNumber:13},void 0),a.jsxDEV("input",{className:"va-form-input",type:"number",min:5,max:300,value:l.targetDuration??e.analysis.totalDuration,onChange:r=>v(b=>({...b,targetDuration:Number(r.target.value)||void 0}))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:420,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:418,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:417,columnNumber:9},void 0),a.jsxDEV("div",{className:"va-model-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"改编模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:424,columnNumber:11},void 0),a.jsxDEV($e,{variant:"form",selectedModel:O,selectedSelectionKey:Ke(O,R),onSelect:le,models:M,placement:"down",disabled:w,placeholder:"选择文本模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:425,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:423,columnNumber:9},void 0),a.jsxDEV("div",{className:"va-model-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"视频模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:437,columnNumber:11},void 0),a.jsxDEV($e,{variant:"form",selectedModel:H,selectedSelectionKey:Ke(H,U),onSelect:Y,models:T,placement:"down",disabled:w,placeholder:"选择视频模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:438,columnNumber:11},void 0),a.jsxDEV("div",{className:"va-segment-duration-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"单段"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:449,columnNumber:13},void 0),a.jsxDEV("select",{className:"va-form-select",value:String(B),onChange:r=>v(b=>({...b,segmentDuration:parseInt(r.target.value,10)})),disabled:Z.length<=1,children:Z.map(r=>a.jsxDEV("option",{value:r.value,children:r.label},r.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:457,columnNumber:17},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:450,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:448,columnNumber:11},void 0),de.overflow>0&&a.jsxDEV("span",{className:"va-duration-overflow",children:["实际 ",de.actualTotal,"s(+",parseFloat(de.overflow.toFixed(2)),"s)"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:462,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:436,columnNumber:9},void 0),a.jsxDEV("div",{className:"va-version-row",children:[a.jsxDEV("button",{className:"va-analyze-btn",onClick:Ce,disabled:w||!!g,style:{flex:1},children:w||g?q||"AI 改编中...":"AI 改编脚本"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:468,columnNumber:11},void 0),e.scriptVersions&&e.scriptVersions.length>0&&a.jsxDEV("div",{className:"va-version-select",ref:K,children:[a.jsxDEV("button",{className:"va-version-btn",onClick:()=>L(r=>!r),children:[e.activeVersionId===Na?"原始分析":((pe=e.scriptVersions.find(r=>r.id===e.activeVersionId))==null?void 0:pe.label)||`v${e.scriptVersions.length}`," ▾"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:473,columnNumber:15},void 0),N&&a.jsxDEV("div",{className:"va-version-menu",children:[e.scriptVersions.map(r=>a.jsxDEV("div",{className:`va-version-item ${r.id===e.activeVersionId?"active":""}`,onClick:()=>se(r.id),children:[a.jsxDEV("span",{children:r.label},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:489,columnNumber:23},void 0),r.prompt&&a.jsxDEV("span",{className:"va-version-prompt",children:r.prompt.length>30?r.prompt.slice(0,30)+"...":r.prompt},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:490,columnNumber:36},void 0),a.jsxDEV("span",{className:"va-version-time",children:[r.shots.length," 镜头 · ",new Date(r.createdAt).toLocaleTimeString()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:491,columnNumber:23},void 0)]},r.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:484,columnNumber:21},void 0)),a.jsxDEV("div",{className:`va-version-item ${e.activeVersionId===Na||!e.activeVersionId?"active":""}`,onClick:()=>se(Na),children:[a.jsxDEV("span",{children:"原始分析"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:498,columnNumber:21},void 0),a.jsxDEV("span",{className:"va-version-time",children:[e.analysis.shots.length," 镜头 · ",new Date(e.createdAt).toLocaleTimeString()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:499,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:494,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:482,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:472,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:467,columnNumber:9},void 0),a.jsxDEV("div",{className:"va-form-row",children:[a.jsxDEV("div",{style:{flex:1},children:[a.jsxDEV("label",{className:"va-edit-label",children:"画面风格"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:509,columnNumber:13},void 0),a.jsxDEV(ea,{className:"va-style-combo",value:l.videoStyle||"",onChange:r=>v(b=>({...b,videoStyle:r})),options:Is,placeholder:Ss},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:510,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:508,columnNumber:11},void 0),a.jsxDEV("div",{style:{flex:1},children:[a.jsxDEV("label",{className:"va-edit-label",children:"BGM 情绪"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:519,columnNumber:13},void 0),a.jsxDEV("textarea",{ref:Se,className:"va-edit-textarea va-auto-resize",rows:Pe(l.bgmMood),value:l.bgmMood||"",onChange:r=>v(b=>({...b,bgmMood:r.target.value})),onInput:r=>_e(r.currentTarget),placeholder:"如:轻快、治愈、科技感"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:520,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:518,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:507,columnNumber:9},void 0),F&&a.jsxDEV("div",{className:"va-error",children:F},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:531,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:407,columnNumber:7},void 0),a.jsxDEV(qs,{characters:be,onChange:qe},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:534,columnNumber:7},void 0),a.jsxDEV("div",{className:"va-shots",children:m.map((r,b)=>a.jsxDEV(Ca,{shot:r,index:b,compact:!0,children:a.jsxDEV("div",{className:"va-edit-fields",children:[a.jsxDEV("label",{className:"va-edit-label",children:"画面描述"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:544,columnNumber:15},void 0),a.jsxDEV("textarea",{ref:Se,className:"va-edit-textarea va-auto-resize",rows:Pe(r.description),value:r.description||"",onChange:o=>re(r.id,"description",o.target.value),onInput:o=>_e(o.currentTarget)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:545,columnNumber:15},void 0),a.jsxDEV("label",{className:"va-edit-label",children:"旁白"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:546,columnNumber:15},void 0),a.jsxDEV("textarea",{ref:Se,className:"va-edit-textarea va-auto-resize",rows:Pe(r.narration),value:r.narration||"",onChange:o=>re(r.id,"narration",o.target.value),onInput:o=>_e(o.currentTarget)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:547,columnNumber:15},void 0),a.jsxDEV("label",{className:"va-edit-label",children:"角色说话"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:548,columnNumber:15},void 0),a.jsxDEV("textarea",{ref:Se,className:"va-edit-textarea va-auto-resize",rows:Pe(r.dialogue),value:r.dialogue||"",onChange:o=>re(r.id,"dialogue",o.target.value),onInput:o=>_e(o.currentTarget),placeholder:'多角色时按"角色名: 台词"分行'},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:549,columnNumber:15},void 0),a.jsxDEV("label",{className:"va-edit-label",children:"对白角色"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:550,columnNumber:15},void 0),a.jsxDEV("input",{className:"va-form-input",type:"text",value:r.dialogue_speakers||"",onChange:o=>re(r.id,"dialogue_speakers",o.target.value),placeholder:"如:主讲人 或 主讲人|顾客"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:551,columnNumber:15},void 0),a.jsxDEV("label",{className:"va-edit-label",children:"旁白/对白关系"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:552,columnNumber:15},void 0),a.jsxDEV(ea,{value:r.speech_relation||"",onChange:o=>re(r.id,"speech_relation",o),options:fn,placeholder:"选择关系"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:553,columnNumber:15},void 0),a.jsxDEV("label",{className:"va-edit-label",children:"运镜方式"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:554,columnNumber:15},void 0),a.jsxDEV(ea,{value:r.camera_movement||"",onChange:o=>re(r.id,"camera_movement",o),options:pn,placeholder:"选择或输入运镜方式"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:555,columnNumber:15},void 0),a.jsxDEV("label",{className:"va-edit-label",children:"首帧 Prompt"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:556,columnNumber:15},void 0),a.jsxDEV("textarea",{ref:Se,className:"va-edit-textarea va-auto-resize",rows:Pe(r.first_frame_prompt),value:r.first_frame_prompt||"",onChange:o=>re(r.id,"first_frame_prompt",o.target.value),onInput:o=>_e(o.currentTarget)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:557,columnNumber:15},void 0),a.jsxDEV("label",{className:"va-edit-label",children:"尾帧 Prompt"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:558,columnNumber:15},void 0),a.jsxDEV("textarea",{ref:Se,className:"va-edit-textarea va-auto-resize",rows:Pe(r.last_frame_prompt),value:r.last_frame_prompt||"",onChange:o=>re(r.id,"last_frame_prompt",o.target.value),onInput:o=>_e(o.currentTarget)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:559,columnNumber:15},void 0),a.jsxDEV("label",{className:"va-edit-label",children:"转场方式"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:560,columnNumber:15},void 0),a.jsxDEV(ea,{value:r.transition_hint||"",onChange:o=>re(r.id,"transition_hint",o),options:gn,placeholder:"选择转场方式"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:561,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:543,columnNumber:13},void 0)},r.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:542,columnNumber:11},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:540,columnNumber:7},void 0),a.jsxDEV("div",{className:"va-page-actions",children:[a.jsxDEV("button",{onClick:J,children:"脚本插入画布"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:568,columnNumber:9},void 0),j&&a.jsxDEV("button",{className:"va-btn-primary",onClick:j,children:"下一步:批量生成 →"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:569,columnNumber:20},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:567,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:405,columnNumber:5},void 0)};function yn(e,i,d){var j,l,v;return{recordId:e.id,fileNamePrefix:"va",zipBaseName:"video_analyzer_assets",scriptMarkdown:ra(i,e.analysis,e.productInfo),recordMeta:{id:e.id,source:e.source,sourceLabel:e.sourceLabel,prompt:((j=e.productInfo)==null?void 0:j.prompt)||"",aspectRatio:e.analysis.aspect_ratio||"16x9",videoStyle:((l=e.productInfo)==null?void 0:l.videoStyle)||e.analysis.video_style||"",bgmMood:((v=e.productInfo)==null?void 0:v.bgmMood)||e.analysis.bgm_mood||"",shotCount:i.length},shots:i,assets:d}}function Nn(e,i){const d=e.characters||e.analysis.characters||[];return Ws(i,d)}const Da="video-analyzer:image-model",na="video-analyzer:video-model",Ua=({size:e=14})=>a.jsxDEV("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",width:e,height:e,"aria-hidden":"true",children:[a.jsxDEV("rect",{x:"3",y:"3",width:"8",height:"8",rx:"1.5"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:64,columnNumber:5},void 0),a.jsxDEV("circle",{cx:"17",cy:"7",r:"4"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:65,columnNumber:5},void 0),a.jsxDEV("rect",{x:"3",y:"13",width:"8",height:"8",rx:"1.5"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:66,columnNumber:5},void 0),a.jsxDEV("rect",{x:"13",y:"13",width:"8",height:"8",rx:"1.5"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:67,columnNumber:5},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:53,columnNumber:3},void 0),bn=({record:e,onRecordUpdate:i,onRecordsChange:d,onRestart:j})=>{const l=n.useMemo(()=>e.editedShots||e.analysis.shots,[e.editedShots,e.analysis.shots]),v=e.analysis.aspect_ratio||"16x9",m=e.batchId||`va_${e.id}`,{openDialog:k,board:w}=qa(),z=n.useRef(e),g=n.useRef(l),P=n.useRef(!1),q=n.useRef(null),G=n.useRef(null),[F,Q]=n.useState([]),[N,L]=n.useState(null),K=Be("image"),O=Be("video"),[D,R]=n.useState(()=>ve(Da,"").modelId),[S,le]=n.useState(()=>ve(Da,"").modelRef),[M,T]=n.useState(()=>{var s;return((s=e.productInfo)==null?void 0:s.videoModel)||ve(na,"veo3").modelId}),[H,C]=n.useState(()=>{var s,t;return((s=e.productInfo)==null?void 0:s.videoModelRef)||ve(na,((t=e.productInfo)==null?void 0:t.videoModel)||"veo3").modelRef}),[U,$]=n.useState(()=>{var s,t;return ba(((s=e.productInfo)==null?void 0:s.videoModel)||ve(na,"veo3").modelId,(t=e.productInfo)==null?void 0:t.videoSize,v)}),[Y,Z]=n.useState(()=>{var s,t;return((s=e.productInfo)==null?void 0:s.segmentDuration)||parseInt(Ie(((t=e.productInfo)==null?void 0:t.videoModel)||"veo3").defaultDuration,10)||8}),[B,de]=n.useState({running:!1,stopping:!1,currentIndex:-1,retryCount:0}),[be,De]=n.useState(!1),me=n.useMemo(()=>Ie(M),[M]),Ue=n.useMemo(()=>me.durationOptions,[me]),re=n.useMemo(()=>me.sizeOptions,[me]),qe=n.useMemo(()=>e.characters||e.analysis.characters||[],[e.characters,e.analysis.characters]),Ce=n.useMemo(()=>Zs(l),[l]);n.useEffect(()=>{z.current=e},[e]),n.useEffect(()=>{g.current=l},[l]);const J=n.useCallback(async s=>{const t=z.current,c={...t,...s};z.current=c,c.editedShots&&(g.current=c.editedShots);const u=await oe(t.id,s);return d(u),i(c),c},[i,d]),se=n.useCallback(async s=>{const t=z.current,c=Te(t,s);return g.current=s,await J(c),s},[J]),pe=n.useCallback(async s=>{const t=z.current,c={...Ia(t.productInfo||{prompt:""},t.analysis.totalDuration),...s};return await J({productInfo:c}),c},[J]),r=n.useCallback(async(s,t)=>{const c=z.current,f=(c.characters||c.analysis.characters||[]).map(p=>p.id===s?{...p,referenceImageUrl:t}:p);await J({characters:f})},[J]),b=n.useCallback(s=>{const t=`va_${e.id}_char${s.id}_ref`;k(aa.aiImageGeneration,{initialPrompt:s.description,batchId:t,initialAspectRatio:"1:1",initialModel:D||void 0,initialModelRef:S})},[e.id,k,D,S]),o=n.useCallback((s,t)=>{R(s),le(t||null),He(Da,s,t)},[]),x=n.useCallback((s,t)=>{T(s),C(t||null),He(na,s,t);const c=Ie(s),u=parseInt(c.defaultDuration,10)||8,f=ba(s,U,v);Z(u),$(f),pe({videoModel:s,videoModelRef:t||null,segmentDuration:u,videoSize:f})},[pe,v,U]),h=n.useCallback(s=>{Z(s),pe({segmentDuration:s})},[pe]),ee=n.useCallback(s=>{const t=ba(M,s,v);$(t),pe({videoSize:t})},[pe,v,M]),ue=n.useCallback(async()=>{try{const s=z.current,t=g.current;if(!w)throw new Error("画布未就绪");Qa(w);const c=await ia("text",ra(t,s.analysis,s.productInfo));if(!c.success)throw new Error(c.error||"插入失败,请确认画布已打开");ze.trackUIInteraction({area:"popular_video_tool",action:"script_inserted_to_canvas",control:"insert_script",source:"video_analyzer_generate_page",metadata:{shotCount:t.length}}),Ee.success("脚本已插入画布")}catch(s){console.error("[VideoAnalyzer] Failed to insert script to canvas:",s);const t=s instanceof Error?s.message:"脚本插入画布失败";Ee.error(t)}},[w]),je=n.useCallback(async s=>{if(!w)return!1;try{Qa(w);const t=await ia("video",s);if(!t.success)throw new Error(t.error||"插入失败,请确认画布已打开");return!0}catch(t){return console.error("[VideoAnalyzer] Failed to insert generated video to canvas:",t),!1}},[w]),{isExportingAssets:we,exportProgress:ta,handleExportAssets:ls}=Cs({onExport:async s=>{const t=z.current,c=g.current;return await Xs({...yn(t,c,Ce),onProgress:s})},onExportSuccess:s=>{Ee.success(`素材导出完成,共 ${s.assetCount} 个文件`)},onExportError:s=>{console.error("[VideoAnalyzer] Failed to export assets:",s),Ee.error("素材导出失败")}}),oa=n.useMemo(()=>F.map(s=>s.url).filter(Boolean),[F]),Ma=n.useCallback(async()=>{e.batchId||await J({batchId:m})},[e.batchId,m,J]),{tasks:Ra}=is(),Ae=n.useRef(new Set),la=n.useRef(new Set),Ta=n.useCallback(async(s,t,c)=>{let u=[...t],f=!1;for(const{shotId:p,videoUrl:E}of c){const V=`auto_${p}`;if(!la.current.has(V)){la.current.add(V);try{const I=u.findIndex(A=>A.id===p);if(I===-1)continue;const _=u[I+1];if(!_)continue;const y=await sa(E,_.id,"first","last");if(!y||_.generated_first_frame_url===y)continue;u=u.map((A,te)=>te===I+1?{...A,generated_first_frame_url:y}:A),f=!0}finally{la.current.delete(V)}}}if(f){const p=e;oe(s,Te(p,u)).then(E=>{d(E),i({...p,editedShots:u})})}},[e,i,d]);n.useEffect(()=>{var E,V,I,_;const s=`va_${e.id}_shot`,t=`va_${e.id}_char`;let c=!1;const u=e;let f=u.editedShots||u.analysis.shots;const p=[];for(const y of Ra){if(y.status!==Ne.COMPLETED||Ae.current.has(y.id))continue;const A=(E=y.params)==null?void 0:E.batchId;if(!A)continue;if(A.startsWith(t)){const ge=(V=y.result)==null?void 0:V.url;if(Ae.current.add(y.id),ge){const $a=A.slice(t.length),Ba=$a.lastIndexOf("_ref");if(Ba!==-1){const gs=$a.slice(0,Ba),vs=(z.current.characters||z.current.analysis.characters||[]).map(va=>va.id===gs?{...va,referenceImageUrl:ge}:va);J({characters:vs})}}continue}if(!A.startsWith(s))continue;if(e.storyboardGeneratedAt&&y.createdAt<e.storyboardGeneratedAt){Ae.current.add(y.id);continue}const te=(I=y.result)==null?void 0:I.url;if(!te)continue;const ne=A.slice(s.length),ke=ne.lastIndexOf("_");if(ke===-1)continue;const ie=ne.slice(0,ke),W=ne.slice(ke+1);if(W!=="first"&&W!=="last"&&W!=="video")continue;const fe=W==="first"?"generated_first_frame_url":W==="last"?"generated_last_frame_url":"generated_video_url",ae=f.find(ge=>ge.id===ie),ce=(_=ae==null?void 0:ae.suppressed_generated_urls)==null?void 0:_[W];if(ce&&ce===te){Ae.current.add(y.id);continue}if(!ae||ae[fe]===te){Ae.current.add(y.id);continue}f=f.map(ge=>ge.id===ie?{...ge,[fe]:te,suppressed_generated_urls:ge.suppressed_generated_urls?{...ge.suppressed_generated_urls,[W]:void 0}:void 0}:ge),Ae.current.add(y.id),c=!0,W==="video"&&p.push({shotId:ie,videoUrl:te})}c&&oe(u.id,Te(u,f)).then(y=>{d(y),i({...u,editedShots:f})}),p.length>0&&Ta(u.id,f,p)},[Ra,Ta,e,i,d,J]);const[xe,da]=n.useState(null),ua=n.useCallback((s,t)=>{da({shotId:s,assetType:t})},[]),ds=n.useCallback(async s=>{if(!xe)return;da(null);const{shotId:t,assetType:c}=xe,u=c==="first"?"generated_first_frame_url":c==="last"?"generated_last_frame_url":"generated_video_url",p=(e.editedShots||e.analysis.shots).map(V=>V.id===t?{...V,[u]:s.url}:V),E=await oe(e.id,Te(e,p));d(E),i({...e,editedShots:p})},[xe,e,d,i]),[Me,ca]=n.useState(null),Ge=n.useRef(null),he=n.useCallback(()=>{Ge.current!==null&&(window.clearTimeout(Ge.current),Ge.current=null)},[]),Ga=n.useCallback(()=>{he(),ca(null)},[he]),La=n.useCallback(()=>{he(),Ge.current=window.setTimeout(()=>{Ge.current=null,ca(null)},120)},[he]),Ye=n.useCallback((s,t,c)=>{he();const u=c.currentTarget.getBoundingClientRect();ca({url:s,type:t,x:u.left+u.width/2,y:u.top-8})},[he]),We=n.useCallback(()=>{La()},[La]),us=n.useCallback(()=>{he()},[he]),cs=n.useCallback(()=>{Ga()},[Ga]);n.useEffect(()=>()=>{he()},[he]);const Le=n.useMemo(()=>{var t;const s=(t=re.find(c=>c.value===U))==null?void 0:t.aspectRatio;if(s)return s;if(U!=null&&U.includes("x")){const[c,u]=U.split("x").map(Number);if(c&&u){const f=(E,V)=>V===0?E:f(V,E%V),p=f(c,u);return`${c/p}:${u/p}`}}return v.replace("x",":")},[v,re,U]),Ze=Le,Ve=n.useCallback(s=>s.map(t=>({url:t.url,name:t.name})),[]),Qe=n.useCallback((s=[],t=[])=>s.length===t.length&&s.every((c,u)=>{var f,p;return c.url===((f=t[u])==null?void 0:f.url)&&c.name===((p=t[u])==null?void 0:p.name)}),[]),Re=n.useCallback(async(s,t,c)=>{let u=!1;const f=Ve(c.images),p=g.current.map(E=>{if(E.id!==s)return E;if(t==="first"){const _=E.first_frame_draft,y={prompt:c.prompt,images:f,aspectRatio:c.aspectRatio};return(_==null?void 0:_.prompt)===y.prompt&&(_==null?void 0:_.aspectRatio)===y.aspectRatio&&Qe(_==null?void 0:_.images,y.images)?E:(u=!0,{...E,first_frame_draft:y})}if(t==="last"){const _=E.last_frame_draft,y={prompt:c.prompt,images:f,aspectRatio:c.aspectRatio};return(_==null?void 0:_.prompt)===y.prompt&&(_==null?void 0:_.aspectRatio)===y.aspectRatio&&Qe(_==null?void 0:_.images,y.images)?E:(u=!0,{...E,last_frame_draft:y})}const V=E.video_draft,I={prompt:c.prompt,images:f,duration:c.duration,size:c.size};return(V==null?void 0:V.prompt)===I.prompt&&(V==null?void 0:V.duration)===I.duration&&(V==null?void 0:V.size)===I.size&&Qe(V==null?void 0:V.images,I.images)?E:(u=!0,{...E,video_draft:I})});u&&await se(p)},[se,Qe,Ve]),ma=n.useCallback(s=>{const t=s.first_frame_prompt||s.description||"";if(!t)return;ze.trackUIInteraction({area:"popular_video_tool",action:"shot_first_frame_generation_opened",control:"generate_first_frame",source:"video_analyzer_generate_page",metadata:{shotId:s.id,hasDraft:!!s.first_frame_draft}});const c=xa(t,e.analysis,e.productInfo),u=s.first_frame_draft,f=`va_${e.id}_shot${s.id}_first`;k(aa.aiImageGeneration,{initialPrompt:(u==null?void 0:u.prompt)||c,batchId:f,initialAspectRatio:(u==null?void 0:u.aspectRatio)??Ze,initialModel:D||void 0,initialModelRef:S,initialImages:u?Ve(u.images||[]):s.generated_first_frame_url?[{url:s.generated_first_frame_url,name:"首帧"}]:void 0,onDraftChange:p=>Re(s.id,"first",p)})},[e,k,Ze,D,S,Re,Ve]),Oe=n.useCallback((s,t)=>{if(s.generated_last_frame_url)return s.generated_last_frame_url;const c=l[t+1];return c==null?void 0:c.generated_first_frame_url},[l]),Xe=n.useCallback((s,t)=>{const c=s.last_frame_prompt||s.description||"";if(!c)return;ze.trackUIInteraction({area:"popular_video_tool",action:"shot_last_frame_generation_opened",control:"generate_last_frame",source:"video_analyzer_generate_page",metadata:{shotId:s.id,shotIndex:t,hasDraft:!!s.last_frame_draft}});const u=xa(c,e.analysis,e.productInfo),f=s.last_frame_draft,p=`va_${e.id}_shot${s.id}_last`,E=Oe(s,t);k(aa.aiImageGeneration,{initialPrompt:(f==null?void 0:f.prompt)||u,batchId:p,initialAspectRatio:(f==null?void 0:f.aspectRatio)??Ze,initialModel:D||void 0,initialModelRef:S,initialImages:f?Ve(f.images||[]):E?[{url:E,name:"尾帧"}]:void 0,onDraftChange:V=>Re(s.id,"last",V)})},[e,k,Oe,Ze,D,S,Re,Ve]),pa=n.useCallback((s,t)=>{const c=ha(s,e.analysis,e.productInfo);if(!c)return;ze.trackUIInteraction({area:"popular_video_tool",action:"shot_video_generation_opened",control:"generate_shot_video",source:"video_analyzer_generate_page",metadata:{shotId:s.id,shotIndex:t,hasDraft:!!s.video_draft}});const u=s.video_draft,f=`va_${e.id}_shot${s.id}_video`,p=[];s.generated_first_frame_url&&p.push({url:s.generated_first_frame_url,name:"首帧"});const E=Oe(s,t);E&&p.push({url:E,name:"尾帧"});const V=Ve((u==null?void 0:u.images)||[]),I=V.length>0?V:p.length>0?p:void 0,_=Ie(M),y=String((u==null?void 0:u.duration)??Y),A=_.durationOptions.some(ne=>ne.value===y)?(u==null?void 0:u.duration)??Y:void 0,te=_.sizeOptions.some(ne=>ne.value===((u==null?void 0:u.size)??U))?(u==null?void 0:u.size)??U:void 0;k(aa.aiVideoGeneration,{initialPrompt:(u==null?void 0:u.prompt)||c,initialImages:I,initialDuration:A,initialSize:te,initialModel:M||void 0,initialModelRef:H,batchId:f,onDraftChange:ne=>Re(s.id,"video",ne)})},[e.id,Y,U,M,H,k,Oe,e.analysis,e.productInfo,Re,Ve]),fa=n.useCallback((s,t)=>{const c=t==="first"?"generated_first_frame_url":t==="last"?"generated_last_frame_url":"generated_video_url",f=(e.editedShots||e.analysis.shots).map(p=>p.id===s?{...p,[c]:void 0,suppressed_generated_urls:p[c]?{...p.suppressed_generated_urls||{},[t]:p[c]}:p.suppressed_generated_urls}:p);oe(e.id,Te(e,f)).then(p=>{d(p),i({...e,editedShots:f})})},[e,i,d]),Oa=n.useCallback(async(s,t,c)=>{var A,te,ne;const u=s.first_frame_prompt||s.description||"";if(!u)return null;const f=xa(u,e.analysis,e.productInfo),p=[];if(t&&p.push(t),s.character_ids&&s.character_ids.length>0)for(const ke of s.character_ids){const ie=c.find(W=>W.id===ke);ie!=null&&ie.referenceImageUrl&&!p.includes(ie.referenceImageUrl)&&p.push(ie.referenceImageUrl)}const E=`va_${e.id}_shot${s.id}_first`,V=await ja.executeTool({name:"generate_image",arguments:{prompt:f.trim(),count:1,size:v,referenceImages:p.length>0?p:void 0,batchId:E,...D?{model:D,modelRef:S}:{}}},{mode:"queue"}),I=V.taskId||((A=V.data)==null?void 0:A.taskId);if(!V.success||!I)return null;const _=await ka(I,(te=q.current)==null?void 0:te.signal);if(!_.success)return null;const y=_.task||ye.getTask(I);return((ne=y==null?void 0:y.result)==null?void 0:ne.url)||null},[e,v,D,S]),ga=n.useCallback(async(s,t,c)=>{const u=s[t+1];if(!u)return s;const f=await sa(c,u.id,"first","last");if(!f||u.generated_first_frame_url===f)return s;const p=s.map((E,V)=>V===t+1?{...E,generated_first_frame_url:f}:E);return await se(p),p},[se]),Fa=n.useCallback(async(s,t,c)=>{const u=s[t];if(!u||u.generated_video_url===c)return s;const f=s.map((p,E)=>E===t?{...p,generated_video_url:c}:p);return await se(f),f},[se]),Ha=n.useCallback(async(s,t,c)=>{var y,A;const u=ha(s,e.analysis,e.productInfo);if(!u)return null;const f=t===0?oa[0]:s.generated_first_frame_url,p=s.generated_last_frame_url||((y=c[t+1])==null?void 0:y.generated_first_frame_url),{referenceImages:E}=Qs({model:M,firstFrameUrl:f,lastFrameUrl:p,extraReferenceUrls:oa.slice(t===0?1:0)}),V=`va_${e.id}_shot${s.id}_video`,I=await ja.executeTool({name:"generate_video",arguments:{prompt:u,size:U,seconds:String(Y),count:1,batchId:V,model:M,modelRef:H,referenceImages:E,params:me.provider==="seedance"?{aspect_ratio:Le}:void 0}},{mode:"queue"}),_=I.taskId||((A=I.data)==null?void 0:A.taskId);if(!I.success||!_)throw new Error(I.error||"创建视频任务失败");return _},[e.analysis,e.id,e.productInfo,oa,Y,M,me.provider,H,U,Le]),ms=n.useCallback(()=>{var s;P.current=!0,de(t=>t.running?{...t,stopping:!0}:t),G.current&&ye.cancelTask(G.current),(s=q.current)==null||s.abort()},[]);n.useEffect(()=>()=>{var s;P.current=!0,(s=q.current)==null||s.abort()},[]);const ps=n.useCallback(async()=>{var t,c,u,f,p;if(B.running)return;ze.trackUIInteraction({area:"popular_video_tool",action:"batch_video_generation_started",control:"generate_all_videos",source:"video_analyzer_generate_page",metadata:{shotCount:g.current.length,insertToCanvasRequested:be,hasBoard:!!w}});let s=be;s&&!w&&(Ee.warning("画布未就绪,本次将只生成不插入画布"),s=!1),await Ma(),P.current=!1,q.current=new AbortController,G.current=null,de({running:!0,stopping:!1,currentIndex:-1,retryCount:0});try{let E=z.current.characters||z.current.analysis.characters||[];const V=E.filter(y=>!y.referenceImageUrl);if(V.length>0&&!P.current){for(const y of V){if(P.current)break;const A=`va_${e.id}_char${y.id}_ref`,te=await ja.executeTool({name:"generate_image",arguments:{prompt:y.description,count:1,size:"1:1",batchId:A,...D?{model:D,modelRef:S}:{}}},{mode:"queue"}),ne=te.taskId||((t=te.data)==null?void 0:t.taskId);if(ne){const ke=await ka(ne,(c=q.current)==null?void 0:c.signal);if(ke.success){const ie=ke.task||ye.getTask(ne),W=(u=ie==null?void 0:ie.result)==null?void 0:u.url;if(W){const ae=(z.current.characters||z.current.analysis.characters||[]).map(ce=>ce.id===y.id?{...ce,referenceImageUrl:W}:ce);await J({characters:ae})}}}}E=z.current.characters||z.current.analysis.characters||[]}let I=g.current,_;for(let y=0;y<I.length&&!P.current;y++){I=g.current;const A=I[y];if(!A||!ha(A,e.analysis,e.productInfo))continue;if(de(fe=>({...fe,currentIndex:y,retryCount:0})),A.generated_video_url){try{_=await sa(A.generated_video_url,A.id,"last","last")||void 0}catch{_=void 0}s&&await je(A.generated_video_url),I=await ga(I,y,A.generated_video_url);continue}if(E=z.current.characters||z.current.analysis.characters||[],((A.character_ids||[]).length>0||_!==void 0)&&!A.generated_first_frame_url&&!P.current){const fe=await Oa(A,_,E);fe&&(I=I.map((ae,ce)=>ce===y?{...ae,generated_first_frame_url:fe}:ae),await se(I))}if(P.current)break;let ie=0,W=null;for(;!P.current&&(W||(W=await Ha(I[y]||A,y,I)),!!W);){G.current=W,de({running:!0,stopping:!1,currentIndex:y,retryCount:ie});const fe=await ka(W,(f=q.current)==null?void 0:f.signal);if(P.current)break;const ae=fe.task||ye.getTask(W),ce=(p=ae==null?void 0:ae.result)==null?void 0:p.url;if(fe.success&&ae&&ce){I=await Fa(I,y,ce),s&&await je(ce);try{_=await sa(ce,A.id,"last","last")||void 0}catch{_=void 0}I=await ga(I,y,ce);break}if(ie+=1,de({running:!0,stopping:!1,currentIndex:y,retryCount:ie}),(ae==null?void 0:ae.status)===Ne.FAILED){ye.retryTask(W);continue}W=null}G.current=null}}finally{G.current=null,q.current=null,de({running:!1,stopping:!1,currentIndex:-1,retryCount:0})}},[B.running,Ha,Ma,Oa,se,J,ga,e.id,e.analysis,e.productInfo,D,S,je,be,Fa,w]),fs=n.useCallback(async()=>{const s=Nn(z.current,g.current);await se(s.shots),await J({characters:s.characters})},[se,J]),Je=n.useMemo(()=>{const[s,t]=Le.split(":").map(Number);return!s||!t?{}:{width:Math.round(54*s/t),height:54}},[Le]);return a.jsxDEV("div",{className:"va-page",children:[a.jsxDEV("div",{className:"va-batch-config",children:[a.jsxDEV("div",{className:"va-batch-config-title",children:"批量生成配置"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1210,columnNumber:9},void 0),a.jsxDEV(Js,{images:F,onImagesChange:Q,multiple:!0,label:"参考图 (可选)"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1211,columnNumber:9},void 0),qe.length>0&&a.jsxDEV("div",{className:"va-characters",children:[a.jsxDEV("div",{className:"va-characters-title",children:"角色"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1220,columnNumber:13},void 0),qe.map(s=>a.jsxDEV("div",{className:"va-character-item",children:[a.jsxDEV("div",{className:"va-character-info",children:[a.jsxDEV("span",{className:"va-character-name",children:s.name},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1224,columnNumber:19},void 0),a.jsxDEV("span",{className:"va-character-desc",children:s.description},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1225,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1223,columnNumber:17},void 0),a.jsxDEV("div",{className:"va-character-ref",children:[s.referenceImageUrl?a.jsxDEV("div",{className:"va-character-ref-thumb",children:[a.jsxDEV("img",{src:s.referenceImageUrl,alt:s.name,referrerPolicy:"no-referrer"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1230,columnNumber:23},void 0),a.jsxDEV("button",{className:"va-shot-frame-delete",onClick:()=>void r(s.id,void 0),children:"×"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1235,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1229,columnNumber:21},void 0):a.jsxDEV("span",{className:"va-character-ref-empty",children:"未设置"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1241,columnNumber:21},void 0),a.jsxDEV("button",{onClick:()=>b(s),children:"生成"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1243,columnNumber:19},void 0),a.jsxDEV("button",{onClick:()=>L(s.id),children:"素材库"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1244,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1227,columnNumber:17},void 0)]},s.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1222,columnNumber:15},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1219,columnNumber:11},void 0),a.jsxDEV("div",{className:"va-product-form",children:[a.jsxDEV("div",{className:"va-model-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"图片模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1252,columnNumber:13},void 0),a.jsxDEV($e,{variant:"form",selectedModel:D,selectedSelectionKey:Ke(D,S),onSelect:o,models:K,placement:"down",placeholder:"选择图片模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1253,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1251,columnNumber:11},void 0),a.jsxDEV("div",{className:"va-model-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"视频模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1264,columnNumber:13},void 0),a.jsxDEV($e,{variant:"form",selectedModel:M,selectedSelectionKey:Ke(M,H),onSelect:x,models:O,placement:"down",placeholder:"选择视频模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1265,columnNumber:13},void 0),a.jsxDEV("div",{className:"va-segment-duration-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"单段"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1275,columnNumber:15},void 0),a.jsxDEV("select",{className:"va-form-select",value:String(Y),onChange:s=>h(parseInt(s.target.value,10)),disabled:Ue.length<=1,children:Ue.map(s=>a.jsxDEV("option",{value:s.value,children:s.label},s.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1283,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1276,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1274,columnNumber:13},void 0),a.jsxDEV("div",{className:"va-segment-duration-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"尺寸"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1288,columnNumber:15},void 0),a.jsxDEV("select",{className:"va-form-select",value:U,onChange:s=>ee(s.target.value),disabled:re.length<=1,children:re.map(s=>a.jsxDEV("option",{value:s.value,children:s.label},s.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1296,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1289,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1287,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1263,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1250,columnNumber:9},void 0),B.running&&a.jsxDEV("div",{className:"va-batch-config-title",children:["正在串行生成第 ",Math.max(B.currentIndex+1,1),"/",l.length," 段",B.retryCount>0?`,已重试 ${B.retryCount} 次`:""]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1303,columnNumber:11},void 0),a.jsxDEV("div",{className:"va-page-actions",children:[j&&a.jsxDEV("button",{onClick:j,children:"重新分析"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1309,columnNumber:25},void 0),a.jsxDEV("button",{onClick:fs,children:"重置生成"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1310,columnNumber:11},void 0),a.jsxDEV("label",{className:"va-inline-checkbox",children:[a.jsxDEV("input",{type:"checkbox",checked:be,onChange:s=>De(s.target.checked)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1312,columnNumber:13},void 0),"生成后插入画布"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1311,columnNumber:11},void 0),a.jsxDEV("button",{onClick:ps,disabled:B.running,children:"全部→生成视频"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1319,columnNumber:11},void 0),B.running&&a.jsxDEV("button",{onClick:ms,children:B.stopping?"停止中…":"停止全部生成"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1321,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1308,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1209,columnNumber:7},void 0),a.jsxDEV("div",{className:"va-shots",children:l.map((s,t)=>a.jsxDEV(Ca,{shot:s,index:t,actions:a.jsxDEV(a.Fragment,{children:[s.generated_first_frame_url?a.jsxDEV("div",{className:"va-shot-frame-thumb",style:Je,onMouseEnter:c=>Ye(s.generated_first_frame_url,"image",c),onMouseLeave:We,children:[a.jsxDEV("img",{src:s.generated_first_frame_url,alt:"首帧",referrerPolicy:"no-referrer",onClick:()=>ma(s)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1345,columnNumber:21},void 0),a.jsxDEV("button",{className:"va-shot-frame-delete",onClick:()=>fa(s.id,"first"),children:"×"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1351,columnNumber:19},void 0),a.jsxDEV("button",{className:"va-shot-frame-regen",onClick:()=>ma(s),children:"↻"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1352,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1339,columnNumber:19},void 0):s.first_frame_prompt||s.description?a.jsxDEV("span",{className:"va-shot-frame-btn-group",children:[a.jsxDEV("button",{onClick:()=>ma(s),children:"生成首帧"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1356,columnNumber:21},void 0),a.jsxDEV("button",{className:"va-shot-frame-library-btn",onClick:()=>ua(s.id,"first"),children:a.jsxDEV(Fe,{content:"从素材库选择",showArrow:!1,children:a.jsxDEV("span",{children:a.jsxDEV(Ua,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1363,columnNumber:27},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1362,columnNumber:25},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1361,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1357,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1355,columnNumber:19},void 0):null,(()=>{const c=s.generated_last_frame_url||Oe(s,t),u=!s.generated_last_frame_url&&c;return s.generated_last_frame_url?a.jsxDEV("div",{className:"va-shot-frame-thumb",style:Je,onMouseEnter:f=>Ye(s.generated_last_frame_url,"image",f),onMouseLeave:We,children:[a.jsxDEV("img",{src:s.generated_last_frame_url,alt:"尾帧",referrerPolicy:"no-referrer",onClick:()=>Xe(s,t)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1381,columnNumber:25},void 0),a.jsxDEV("button",{className:"va-shot-frame-delete",onClick:()=>fa(s.id,"last"),children:"×"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1387,columnNumber:25},void 0),a.jsxDEV("button",{className:"va-shot-frame-regen",onClick:()=>Xe(s,t),children:"↻"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1388,columnNumber:25},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1375,columnNumber:23},void 0):u?a.jsxDEV("div",{className:"va-shot-frame-thumb va-shot-frame-thumb--borrowed",style:Je,onMouseEnter:f=>Ye(c,"image",f),onMouseLeave:We,children:[a.jsxDEV("img",{src:c,alt:"尾帧(下一镜头首帧)",referrerPolicy:"no-referrer",onClick:()=>Xe(s,t)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1400,columnNumber:25},void 0),a.jsxDEV("span",{className:"va-shot-frame-label",children:"下一镜头首帧"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1406,columnNumber:25},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1394,columnNumber:23},void 0):s.last_frame_prompt||s.description?a.jsxDEV("span",{className:"va-shot-frame-btn-group",children:[a.jsxDEV("button",{onClick:()=>Xe(s,t),children:"生成尾帧"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1413,columnNumber:25},void 0),a.jsxDEV("button",{className:"va-shot-frame-library-btn",onClick:()=>ua(s.id,"last"),children:a.jsxDEV(Fe,{content:"从素材库选择",showArrow:!1,children:a.jsxDEV("span",{children:a.jsxDEV(Ua,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1420,columnNumber:31},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1419,columnNumber:29},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1418,columnNumber:27},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1414,columnNumber:25},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1412,columnNumber:23},void 0):null})(),s.generated_video_url?a.jsxDEV("div",{className:"va-shot-frame-thumb",style:Je,onMouseEnter:c=>Ye(s.generated_video_url,"video",c),onMouseLeave:We,children:[a.jsxDEV(rs,{src:s.generated_video_url,alt:"生成视频缩略图",className:"va-shot-frame-media",thumbnailSize:"small",onClick:()=>pa(s,t),videoProps:{muted:!0,preload:"metadata"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1437,columnNumber:21},void 0),a.jsxDEV("button",{className:"va-shot-frame-delete",onClick:()=>fa(s.id,"video"),children:"×"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1448,columnNumber:21},void 0),a.jsxDEV("button",{className:"va-shot-frame-regen",onClick:()=>pa(s,t),children:"↻"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1449,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1431,columnNumber:19},void 0):s.description||s.narration||s.dialogue||s.camera_movement||s.first_frame_prompt||s.last_frame_prompt?a.jsxDEV("span",{className:"va-shot-frame-btn-group",children:[a.jsxDEV("button",{onClick:()=>pa(s,t),children:"生成视频"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1453,columnNumber:21},void 0),a.jsxDEV("button",{className:"va-shot-frame-library-btn",onClick:()=>ua(s.id,"video"),children:a.jsxDEV(Fe,{content:"从素材库插入视频",showArrow:!1,children:a.jsxDEV("span",{children:a.jsxDEV(Ua,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1460,columnNumber:27},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1459,columnNumber:25},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1458,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1454,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1452,columnNumber:19},void 0):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1336,columnNumber:15},void 0)},s.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1331,columnNumber:11},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1329,columnNumber:7},void 0),a.jsxDEV("div",{className:"va-page-actions mv-generate-footer-actions",children:[a.jsxDEV("button",{onClick:()=>void ue(),disabled:l.length===0||!w,children:"脚本插入画布"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1473,columnNumber:9},void 0),a.jsxDEV("button",{onClick:()=>void ls(),disabled:we||l.length===0,children:we?`素材下载 ${ta}%`:"素材下载 ZIP"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1476,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1472,columnNumber:7},void 0),a.jsxDEV("div",{className:"mv-generate-footer-hint",children:"若有素材未打包成功,解压后在 ZIP 根目录运行 `sh 00.补全下载.sh` 即可按 manifest 补全下载。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1480,columnNumber:7},void 0),a.jsxDEV(Ya,{isOpen:!!xe,onClose:()=>da(null),mode:Wa.SELECT,filterType:(xe==null?void 0:xe.assetType)==="video"?wa.VIDEO:wa.IMAGE,onSelect:ds,selectButtonText:(xe==null?void 0:xe.assetType)==="video"?"使用此视频":"使用此图片"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1485,columnNumber:7},void 0),a.jsxDEV(Ya,{isOpen:!!N,onClose:()=>L(null),mode:Wa.SELECT,filterType:wa.IMAGE,onSelect:s=>{N&&r(N,s.url),L(null)},selectButtonText:"使用此图片"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1494,columnNumber:7},void 0),Me&&As.createPortal(a.jsxDEV("div",{className:"mv-hover-preview",style:{left:`${Me.x}px`,top:`${Me.y}px`},onMouseEnter:us,onMouseLeave:cs,children:Me.type==="image"?a.jsxDEV("img",{src:Me.url,alt:"Preview",referrerPolicy:"no-referrer"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1516,columnNumber:13},void 0):a.jsxDEV("video",{src:Me.url,controls:!0,muted:!0,preload:"metadata"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1518,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1509,columnNumber:9},void 0),document.body)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1207,columnNumber:5},void 0)};function os(e){var i;return e.result?(i=e.result.urls)!=null&&i.length?e.result.urls.filter(Boolean):e.result.url?[e.result.url]:[]:[]}function xn(e){var i,d;return e.result?e.type===X.VIDEO?((i=e.result.thumbnailUrls)==null?void 0:i[0])||e.result.thumbnailUrl||null:((d=e.result.thumbnailUrls)==null?void 0:d[0])||e.result.url||null:null}function hn(e){switch(e){case Ne.COMPLETED:return"已完成";case Ne.PROCESSING:return"进行中";case Ne.PENDING:return"等待中";case Ne.FAILED:return"失败";default:return""}}function jn(e){switch(e){case Ne.COMPLETED:return"completed";case Ne.PROCESSING:return"processing";case Ne.PENDING:return"pending";case Ne.FAILED:return"failed";default:return"pending"}}function wn(e){const i=new Date(e);return`${i.getMonth()+1}/${i.getDate()} ${String(i.getHours()).padStart(2,"0")}:${String(i.getMinutes()).padStart(2,"0")}`}function kn(e){const i=String(e.params.prompt||"");return i.length>40?`${i.slice(0,40)}…`:i}const zn=({record:e,related:i,isExpanded:d,onSelect:j,onToggleStar:l,onDelete:v,onToggleExpand:m,onInsertTask:k,onPreviewOpen:w,onSelectScript:z})=>{const g=!!(i&&i.rewrite.length+i.image.length+i.video.length>0),P=i?[...i.image,...i.video]:[];return a.jsxDEV("div",{className:"va-history-item",onClick:()=>j(e),children:[a.jsxDEV("div",{className:"va-history-header",children:[a.jsxDEV("span",{className:"va-history-source",children:[e.source==="youtube"?"🔗":"📁"," ",e.sourceLabel]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:112,columnNumber:9},void 0),a.jsxDEV("button",{className:`va-star-btn ${e.starred?"starred":""}`,onClick:q=>l(q,e),children:e.starred?"★":"☆"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:115,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:111,columnNumber:7},void 0),a.jsxDEV("div",{className:"va-history-meta",children:[g&&a.jsxDEV("button",{className:`va-history-expand-btn ${d?"expanded":""}`,onClick:q=>m(q,e.id),children:[a.jsxDEV(Ms,{size:12},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:128,columnNumber:13},void 0),a.jsxDEV("span",{children:d?"收起":"关联任务"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:129,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:124,columnNumber:11},void 0),a.jsxDEV("span",{children:new Date(e.createdAt).toLocaleString()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:132,columnNumber:9},void 0),a.jsxDEV("span",{children:[e.analysis.shotCount," 镜头"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:133,columnNumber:9},void 0),a.jsxDEV("span",{children:e.model},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:134,columnNumber:9},void 0),a.jsxDEV("button",{className:"va-history-delete",onClick:q=>v(q,e.id),children:"删除"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:135,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:122,columnNumber:7},void 0),e.analysis.video_style&&a.jsxDEV("div",{className:"va-history-style",children:e.analysis.video_style},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:140,columnNumber:9},void 0),d&&i&&a.jsxDEV(En,{related:i,record:e,previewTasks:P,onInsertTask:k,onPreviewOpen:w,onSelectScript:z},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:143,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:110,columnNumber:5},void 0)},En=({related:e,record:i,previewTasks:d,onInsertTask:j,onPreviewOpen:l,onSelectScript:v})=>a.jsxDEV("div",{className:"va-history-related",onClick:m=>m.stopPropagation(),children:[e.rewrite.length>0&&a.jsxDEV("div",{children:[a.jsxDEV("div",{className:"va-history-related-group-title",children:["脚本改编 (",e.rewrite.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:167,columnNumber:9},void 0),e.rewrite.map(m=>a.jsxDEV(Pa,{task:m,onClick:k=>v==null?void 0:v(k,i,m)},m.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:169,columnNumber:11},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:166,columnNumber:7},void 0),e.image.length>0&&a.jsxDEV("div",{children:[a.jsxDEV("div",{className:"va-history-related-group-title",children:["图片生成 (",e.image.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:179,columnNumber:9},void 0),e.image.map(m=>a.jsxDEV(Pa,{task:m,previewTasks:d,onInsertTask:j,onPreviewOpen:l},m.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:181,columnNumber:11},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:178,columnNumber:7},void 0),e.video.length>0&&a.jsxDEV("div",{children:[a.jsxDEV("div",{className:"va-history-related-group-title",children:["视频生成 (",e.video.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:193,columnNumber:9},void 0),e.video.map(m=>a.jsxDEV(Pa,{task:m,previewTasks:d,onInsertTask:j,onPreviewOpen:l},m.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:195,columnNumber:11},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:192,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:164,columnNumber:3},void 0),Pa=({task:e,previewTasks:i,onClick:d,onInsertTask:j,onPreviewOpen:l})=>{const v=e.status===Ne.COMPLETED,m=os(e),k=v&&m.length>0,w=(e.type===X.IMAGE||e.type===X.VIDEO)&&k&&!!(i!=null&&i.length),z=xn(e),g=m[0],P=n.useCallback(q=>{if(w&&i){l==null||l(q,e,i);return}d==null||d(q)},[w,d,l,i,e]);return a.jsxDEV(Fe,{content:hn(e.status),showArrow:!1,children:a.jsxDEV("div",{className:"va-history-related-task",onClick:P,children:[a.jsxDEV("span",{className:`va-history-related-task-status ${jn(e.status)}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:239,columnNumber:9},void 0),a.jsxDEV("span",{className:"va-history-related-task-prompt",children:kn(e)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:242,columnNumber:9},void 0),a.jsxDEV("span",{className:"va-history-related-task-time",children:wn(e.createdAt)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:245,columnNumber:9},void 0),k&&g&&e.type!==X.CHAT&&a.jsxDEV("span",{className:"va-history-related-task-thumb",children:[e.type===X.VIDEO?a.jsxDEV(rs,{src:g,poster:z||void 0,alt:"",className:"va-history-related-task-thumb-media",thumbnailSize:"small",videoProps:{preload:"metadata",muted:!0,playsInline:!0,"aria-hidden":!0}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:251,columnNumber:15},void 0):a.jsxDEV("img",{src:z||g,alt:"",referrerPolicy:"no-referrer"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:265,columnNumber:15},void 0),e.type===X.VIDEO&&a.jsxDEV("span",{className:"va-history-related-task-thumb-badge","aria-hidden":"true",children:"▶"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:272,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:249,columnNumber:11},void 0),k&&j&&a.jsxDEV(Fe,{content:"插入画板",showArrow:!1,children:a.jsxDEV("button",{className:"va-history-related-insert-btn",onClick:q=>j(q,e),"aria-label":"插入画板",children:a.jsxDEV(Rs,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:288,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:283,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:282,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:238,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:237,columnNumber:5},void 0)};function Vn(e,i,d){var l;const j=((l=e.result)==null?void 0:l.title)||e.params.title||e.params.prompt||(e.type===X.VIDEO?"视频预览":"图片预览");return d>1?`${j} (${i+1}/${d})`:j}function _n(e){var j,l,v;const i=[],d=new Map;for(const m of e){if(m.type!==X.IMAGE&&m.type!==X.VIDEO)continue;const k=os(m);if(k.length===0)continue;const w=i.length,z=m.type===X.VIDEO&&(((l=(j=m.result)==null?void 0:j.thumbnailUrls)==null?void 0:l[0])||((v=m.result)==null?void 0:v.thumbnailUrl))||void 0;k.forEach((g,P)=>{i.push({id:k.length>1?`${m.id}-${P}`:m.id,url:g,type:m.type===X.VIDEO?"video":"image",title:Vn(m,P,k.length),prompt:m.params.prompt,posterUrl:m.type===X.VIDEO?z:void 0})}),d.set(m.id,w)}return{items:i,taskIdToIndex:d}}const Dn=({records:e,onSelect:i,onRecordsChange:d,showStarredOnly:j=!1,onInsertTask:l,onSelectScript:v})=>{const m=j?e.filter(C=>C.starred):e,[k,w]=n.useState(null),[z,g]=n.useState(!1),[P,q]=n.useState([]),[G,F]=n.useState(0),[Q,N]=n.useState(null),{tasks:L}=is(),K=n.useMemo(()=>{const C=new Map,U=new Set(e.map(Y=>Y.id)),$=()=>({rewrite:[],image:[],video:[]});for(const Y of L){const Z=Y.params;if(Y.type===X.CHAT&&Z.videoAnalyzerAction==="rewrite"&&typeof Z.videoAnalyzerRecordId=="string"&&U.has(Z.videoAnalyzerRecordId)){const B=Z.videoAnalyzerRecordId;Za(C,B,"rewrite",Y,$);continue}if((Y.type===X.IMAGE||Y.type===X.VIDEO)&&typeof Z.batchId=="string"&&Z.batchId.startsWith("va_")){const B=Ts(Z.batchId,"va_",U);if(B){const de=Y.type===X.IMAGE?"image":"video";Za(C,B,de,Y,$)}}}return Gs(C)},[L,e]),O=n.useCallback(async(C,U)=>{C.stopPropagation();const $=await oe(U.id,{starred:!U.starred});d($)},[d]),D=n.useCallback((C,U)=>{C.stopPropagation(),N(U)},[]),R=n.useCallback(async()=>{if(!Q)return;const C=await Ls(Q);d(C),N(null)},[d,Q]),S=n.useCallback((C,U)=>{C.stopPropagation(),w($=>$===U?null:U)},[]),le=n.useCallback((C,U)=>{C.stopPropagation(),l==null||l(U)},[l]),M=n.useCallback((C,U,$)=>{C.stopPropagation(),v==null||v(U,$)},[v]),T=n.useCallback((C,U,$)=>{C.stopPropagation();const{items:Y,taskIdToIndex:Z}=_n($),B=Z.get(U.id);!Y.length||B===void 0||(q(Y),F(B),g(!0))},[]),H=n.useCallback(()=>{g(!1)},[]);return m.length===0?a.jsxDEV("div",{className:"va-page va-empty",children:a.jsxDEV("span",{children:j?"暂无收藏":"暂无分析记录"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/HistoryPage.tsx",lineNumber:196,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/HistoryPage.tsx",lineNumber:195,columnNumber:7},void 0):a.jsxDEV(a.Fragment,{children:[a.jsxDEV("div",{className:"va-page",children:a.jsxDEV("div",{className:"va-history-list",children:m.map(C=>{const U=K.get(C.id),$=k===C.id;return a.jsxDEV(zn,{record:C,related:U,isExpanded:$,onSelect:i,onToggleStar:O,onDelete:D,onToggleExpand:S,onInsertTask:le,onPreviewOpen:T,onSelectScript:M},C.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/HistoryPage.tsx",lineNumber:210,columnNumber:15},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/HistoryPage.tsx",lineNumber:204,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/HistoryPage.tsx",lineNumber:203,columnNumber:7},void 0),a.jsxDEV(Os,{visible:z,items:P,initialIndex:G,onClose:H,showThumbnails:P.length>1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/HistoryPage.tsx",lineNumber:228,columnNumber:7},void 0),a.jsxDEV(Fs,{open:Q!==null,title:"确认删除",description:"确定要删除这条历史记录吗?此操作不可撤销。",confirmText:"删除",cancelText:"取消",danger:!0,onOpenChange:C=>{C||N(null)},onConfirm:R},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/HistoryPage.tsx",lineNumber:236,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/HistoryPage.tsx",lineNumber:202,columnNumber:5},void 0)},Hn=()=>{const[e,i]=n.useState("analyze"),[d,j]=n.useState(null),[l,v]=n.useState([]),[m,k]=n.useState(!1),{board:w}=qa();n.useEffect(()=>{Sa().then(v)},[]),n.useEffect(()=>{let N=!1;const L=new Set,K=async D=>{if(!(!dn(D)||L.has(D.id))){L.add(D.id);try{const R=await Aa(D);if(!R||N)return;v(R.records),j(S=>(S==null?void 0:S.id)===R.record.id?R.record:S)}catch(R){console.error("[VideoAnalyzer] Failed to sync task result:",R)}finally{L.delete(D.id)}}};ye.getAllTasks().forEach(D=>{K(D)});const O=ye.observeTaskUpdates().subscribe(D=>{D.task.status==="completed"&&K(D.task)});return()=>{N=!0,O.unsubscribe()}},[]);const z=n.useCallback(N=>{j(N)},[]),g=n.useCallback(N=>{j(N),i("analyze")},[]),P=n.useCallback(N=>{j(N)},[]),q=n.useCallback(()=>{j(null),i("analyze")},[]),G=n.useCallback(N=>{N==="history"&&k(!1),i(N)},[]),F=n.useCallback(async N=>{var L,K,O,D;if(!((L=N.result)!=null&&L.url)&&!((O=(K=N.result)==null?void 0:K.urls)!=null&&O.length)||!w){Ee.warning("无法插入:白板未就绪");return}try{if(N.type===X.IMAGE){const R=(D=N.result.urls)!=null&&D.length?N.result.urls:[N.result.url];for(const S of R)await Hs(w,S);Ee.success(R.length>1?"多图已插入到白板":"图片已插入到白板")}else N.type===X.VIDEO&&(await $s(w,N.result.url),Ee.success("视频已插入到白板"))}catch(R){console.error("[VideoAnalyzer] Failed to insert to board:",R),Ee.error(`插入失败: ${R instanceof Error?R.message:"未知错误"}`)}},[w]),Q=n.useCallback(async(N,L)=>{const K=String(L.params.videoAnalyzerPrompt||L.params.prompt||""),O=N.scriptVersions||[],D=O.find(S=>S.prompt===K)||O.find(S=>{var le;return K&&((le=S.prompt)==null?void 0:le.includes(K))});let R=N;if(D&&D.id!==N.activeVersionId){const S=ns(N,D.id);if(S){const le=await oe(N.id,S);R=le.find(M=>M.id===N.id)||{...N,...S},v(le)}}j(R),i("script")},[]);return a.jsxDEV("div",{className:"video-analyzer",children:[a.jsxDEV("div",{className:"va-nav",children:e==="history"?a.jsxDEV(a.Fragment,{children:[a.jsxDEV("button",{className:"va-nav-back",onClick:()=>i("analyze"),children:"←"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:158,columnNumber:13},void 0),a.jsxDEV("span",{className:"va-nav-title",children:m?"收藏":"历史记录"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:159,columnNumber:13},void 0),a.jsxDEV("button",{className:`va-nav-btn ${m?"active":""}`,onClick:()=>k(N=>!N),children:m?"★ 收藏":"☆ 全部"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:160,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:157,columnNumber:11},void 0):a.jsxDEV(a.Fragment,{children:[a.jsxDEV(en,{current:e,onNavigate:G,hasRecord:!!d},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:169,columnNumber:13},void 0),a.jsxDEV("div",{className:"va-nav-actions",children:[a.jsxDEV("button",{className:"va-nav-btn",onClick:()=>{k(!1),i("history")},children:[a.jsxDEV("span",{role:"img","aria-label":"history",children:"📋"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:172,columnNumber:17},void 0),l.length>0&&a.jsxDEV("span",{className:"va-nav-count",children:l.length},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:173,columnNumber:40},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:171,columnNumber:15},void 0),a.jsxDEV("button",{className:"va-nav-btn",onClick:()=>{k(!0),i("history")},children:[a.jsxDEV("span",{role:"img","aria-label":"starred",children:"⭐"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:176,columnNumber:17},void 0),l.filter(N=>N.starred).length>0&&a.jsxDEV("span",{className:"va-nav-count",children:l.filter(N=>N.starred).length},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:177,columnNumber:63},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:175,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:170,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:168,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:155,columnNumber:7},void 0),e==="analyze"&&a.jsxDEV(mn,{existingRecord:d,onComplete:z,onRecordsChange:v,onCreateNew:q,onNext:d?()=>i("script"):void 0},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:186,columnNumber:9},void 0),e==="script"&&d&&a.jsxDEV(vn,{record:d,onRecordUpdate:P,onRecordsChange:v,onNext:()=>i("generate")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:195,columnNumber:9},void 0),e==="generate"&&d&&a.jsxDEV(bn,{record:d,onRecordUpdate:P,onRecordsChange:v,onRestart:q},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:203,columnNumber:9},void 0),e==="history"&&a.jsxDEV(Dn,{records:l,onSelect:g,onRecordsChange:v,showStarredOnly:m,onInsertTask:w?F:void 0,onSelectScript:Q},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:211,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:153,columnNumber:5},void 0)};export{Hn as default};
|
|
1
|
+
import{ai as a,aH as ys,eL as Ka,a4 as ss,eM as Pa,b0 as Ns,eN as bs,b2 as xs,b7 as hs,eO as js,eP as ws,eQ as ks,eR as zs,b5 as Es,bb as _s,bc as Vs,eS as oe,ah as qa,aj as n,eT as ve,eU as He,eV as Ds,bl as $e,dS as ya,cb as ze,W as ye,eW as ra,bH as Be,bx as Ke,eX as Ca,eY as Ia,bR as Ie,eZ as Us,e_ as Te,e$ as Ss,T as X,f0 as ns,f1 as Na,f2 as ea,f3 as Ps,f4 as Is,f5 as qs,f6 as ba,cc as aa,aU as Ee,f7 as Cs,eD as is,bz as Ne,f8 as xa,f9 as ha,aC as ja,eK as As,aO as Fe,fa as rs,ax as Ya,ar as wa,bN as Wa,d_ as Ms,fb as Rs,eE as Za,eF as Ts,eG as Gs,fc as Ls,c6 as Os,bY as Fs,d as Hs,e as $s}from"./tool-windows-DOIu9TAD.js";import{v as Bs}from"./video-analyze-6v3Y-rUE.js";import{quickInsert as ia,setCanvasBoard as Qa}from"./canvas-insertion-CdUQF7IV.js";import{e as Ks,c as Ys,r as Ws,a as Zs,b as sa,w as ka,d as Qs,f as Xs}from"./workflow-generation-utils-me381Cax.js";/* empty css *//* empty css */import{R as Js}from"./ResizableDivider-CaG9JQbJ.js";/* empty css */const Xa=[{id:"analyze",label:"分析"},{id:"script",label:"脚本"},{id:"generate",label:"生成"}],en=({current:e,onNavigate:i,hasRecord:d})=>{const j=Xa.findIndex(l=>l.id===e);return a.jsxDEV("div",{className:"va-step-bar",children:Xa.map((l,v)=>{const m=l.id===e,k=v<j,w=!d&&v>0;return a.jsxDEV(ys.Fragment,{children:[v>0&&a.jsxDEV("span",{className:"va-step-arrow",children:"→"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/StepBar.tsx",lineNumber:33,columnNumber:23},void 0),a.jsxDEV("button",{className:`va-step ${m?"active":""} ${k?"past":""}`,onClick:()=>!w&&i(l.id),disabled:w,children:[a.jsxDEV("span",{className:"va-step-num",children:v+1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/StepBar.tsx",lineNumber:39,columnNumber:15},void 0),l.label]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/StepBar.tsx",lineNumber:34,columnNumber:13},void 0)]},l.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/StepBar.tsx",lineNumber:32,columnNumber:11},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/StepBar.tsx",lineNumber:25,columnNumber:5},void 0)},an=({shots:e,totalDuration:i})=>a.jsxDEV("div",{className:"va-timeline",children:e.filter(Boolean).map(d=>a.jsxDEV("div",{className:"va-timeline-segment",style:{flex:Math.max(((d.endTime??0)-(d.startTime??0))/Math.max(i,1),0),backgroundColor:d.type&&Ka[d.type]||Ka.other},title:`${d.label||"未命名镜头"} ${d.startTime??0}s-${d.endTime??0}s`},d.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/ShotTimeline.tsx",lineNumber:17,columnNumber:7},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/ShotTimeline.tsx",lineNumber:15,columnNumber:3},void 0);function Ja(e){return(e||"").trim().toLowerCase().replace(/[^a-z0-9]/g,"")||"mp4"}function sn(e){const i=e.name.split(".").pop();if(i&&i.length<=8)return Ja(i);const d=e.type.split("/")[1];return Ja(d)}async function nn(e,i){const d=sn(e),l=`/__aitu_cache__/video/${`video-analyzer-source-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}.${d}`;return await ss.cacheMediaFromBlob(l,e,"video",{metadata:{source:"video-analyzer-input",fileName:e.name,mimeType:e.type||"video/mp4",size:e.size}}),{type:"upload",cacheUrl:l,fileName:e.name||`video-source.${d}`,mimeType:e.type||"video/mp4",size:e.size}}async function rn(e){if(!e||e.type!=="upload")return null;const i=await ss.getCachedBlob(e.cacheUrl);return i?new File([i],e.fileName||"video-source.mp4",{type:e.mimeType||i.type||"video/mp4",lastModified:Date.now()}):null}function ts(e){return _s(e,"videoAnalyzerAction",["analyze","rewrite"])}function tn(e){return Vs(e,{missingMessage:"分析任务缺少结果内容",fromStructured:i=>i})}function on(e){const i=e.params.videoAnalyzerSourceSnapshot;if((i==null?void 0:i.type)==="youtube"||(i==null?void 0:i.type)==="upload")return i;const d=e.params.videoAnalyzerSource,j=String(e.params.videoAnalyzerSourceLabel||"").trim();return d==="youtube"&&j?{type:"youtube",youtubeUrl:j}:null}function ln(e){var d;const i=(d=e.result)==null?void 0:d.analysisData;return Array.isArray(i==null?void 0:i.editedShots)?i.editedShots:null}async function Aa(e){var S,q;if(e.status!=="completed")return null;const i=ts(e);if(!i)return null;if(i==="analyze"){const G=await Pa(),F=G.find(R=>R.analyzeTaskId===e.id);if(F)return{records:G,record:F};const Q=tn(e),N=on(e),L=e.params.videoAnalyzerSource==="upload"?"upload":"youtube",K=String(e.params.videoAnalyzerSourceLabel||(L==="youtube"?(N==null?void 0:N.type)==="youtube"?N.youtubeUrl:"":"本地视频")),O={id:Ns(),createdAt:Date.now(),source:L,sourceLabel:K,sourceSnapshot:N,model:String(e.params.model||""),modelRef:e.params.modelRef||null,analysis:Q,starred:!1,analyzeTaskId:e.id};return{records:await bs(O),record:O}}const d=xs(e,"videoAnalyzerRecordId");if(!d)return null;const l=(await Pa()).find(G=>G.id===d);if(!l||l.pendingRewriteTaskId!==e.id)return null;const v=hs(e),m=ln(e),k=m||(()=>{if(!v)throw new Error("脚本改编任务缺少结果内容");const G=js(v),F=l.editedShots||l.analysis.shots;return ws(F,G)})(),w=`AI 改编 #${(((S=l.scriptVersions)==null?void 0:S.length)||0)+1}`,z=ks(k,w,(q=l.productInfo)==null?void 0:q.prompt),g=zs(l,z);return Es(l,{...g,pendingRewriteTaskId:null,storyboardGeneratedAt:Date.now()},oe)}function dn(e){return ts(e)!==null}const za="gemini-3.1-pro-preview",Ea="video-analyzer:model",un="aitu:settings:provider-nav";function cn(e){return(e/1024/1024).toFixed(1)+"MB"}const mn=({existingRecord:e,onComplete:i,onRecordsChange:d,onCreateNew:j,onNext:l})=>{const{setAppState:v}=qa(),[m,k]=n.useState("upload"),[w,z]=n.useState(""),[g,S]=n.useState(null),[q,G]=n.useState(()=>(e==null?void 0:e.model)||ve(Ea,za).modelId),[F,Q]=n.useState(()=>(e==null?void 0:e.modelRef)||ve(Ea,za).modelRef),N=n.useCallback((o,x)=>{G(o),Q(x||null),He(Ea,o,x)},[]),[L,K]=n.useState(!1),[O,D]=n.useState(null),[R,P]=n.useState(""),[le,M]=n.useState(""),[T,H]=n.useState((e==null?void 0:e.analysis)||null),C=Ds(),U=n.useRef(null),$=n.useRef(null),Y=n.useMemo(()=>{if($.current&&URL.revokeObjectURL($.current),!g)return $.current=null,null;const o=URL.createObjectURL(g);return $.current=o,o},[g]);n.useEffect(()=>()=>{$.current&&URL.revokeObjectURL($.current)},[]),n.useEffect(()=>{let o=!1;return(async()=>{if(!e){if(O)return;H(null),k("upload"),z(""),S(null),M("");return}H(e.analysis||null),G(e.model||za),Q(e.modelRef||null),M("");const h=e.sourceSnapshot;if((h==null?void 0:h.type)==="upload"){k("upload"),z("");const ee=await rn(h);if(o)return;S(ee),ee||M("原上传视频缓存已失效,无法自动回填视频");return}if(e.source==="upload"){k("upload"),z(""),S(null),M("这条旧历史未保存原视频,无法自动回填视频");return}k("youtube"),S(null),(h==null?void 0:h.type)==="youtube"?z(h.youtubeUrl):e.source==="youtube"?z(e.sourceLabel||""):z("")})(),()=>{o=!0}},[e]);const Z=$e("text"),B=n.useMemo(()=>Z.filter(o=>/^gemini/i.test(o.id)),[Z]),de=n.useMemo(()=>{const o=C.find(x=>x.id===ya);return!!(o!=null&&o.apiKey.trim())},[C]),be=(F==null?void 0:F.profileId)===ya,De=n.useCallback(()=>{const o={action:"select",profileId:ya};window.__aituPendingProviderNavigationIntent=o,window.dispatchEvent(new CustomEvent(un,{detail:o})),v(x=>({...x,openSettings:!0}))},[v]),me=n.useCallback(o=>{var h;const x=(h=o.target.files)==null?void 0:h[0];x&&(S(x),M(""),H(null))},[]),Ue=n.useCallback(o=>{o.preventDefault();const x=o.dataTransfer.files[0];x!=null&&x.type.startsWith("video/")&&(S(x),M(""),H(null))},[]),re=n.useCallback(o=>{o.stopPropagation(),S(null),M(""),U.current&&(U.current.value="")},[]),[qe,Ce]=n.useState(!1),[J,se]=n.useState(""),pe=n.useCallback(async(o,x)=>{Ce(!0),se("提取帧图片...");try{const h=x.map(ue=>ue.startTime),ee=await Ks(o,h,(ue,je)=>se(`提取帧图片 ${ue}/${je}`));return await Promise.all(x.map(async(ue,je)=>{const we=ee[je];if(!we)return ue;try{const ta=await Ys(we,ue.id,"first");return{...ue,generated_first_frame_url:ta}}catch{return ue}}))}catch(h){return console.debug("Frame extraction failed:",h),x}finally{Ce(!1),se("")}},[]),r=n.useCallback(async()=>{K(!0),M(""),P("准备中...");try{let o={};if(m==="upload"&&g){P("缓存视频文件...");const h=await nn(g);o={videoCacheUrl:h.type==="upload"?h.cacheUrl:void 0,...h.type==="upload"?{mimeType:h.mimeType}:{},model:q,modelRef:F,taskLabel:`分析视频:${g.name||"本地视频"}`,videoAnalyzerSource:"upload",videoAnalyzerSourceLabel:g.name||"本地视频",videoAnalyzerSourceSnapshot:h}}else if(m==="youtube"&&w)o={youtubeUrl:w,model:q,modelRef:F,taskLabel:`分析视频:${w}`,videoAnalyzerSource:"youtube",videoAnalyzerSourceLabel:w,videoAnalyzerSourceSnapshot:{type:"youtube",youtubeUrl:w}};else{M("请先选择视频文件或输入 YouTube URL"),K(!1);return}ze.trackUIInteraction({area:"popular_video_tool",action:"video_analysis_started",control:"analyze_video",source:"video_analyzer_analyze_page",metadata:{inputMode:m,hasUpload:!!g,hasYoutubeUrl:!!w,fileSizeBytes:g==null?void 0:g.size,hasModelRef:!!F}}),P("加入任务队列...");const x=await Bs.execute(o,{mode:"queue"});x.success&&x.taskId?(D(x.taskId||null),P("已加入任务队列,等待分析...")):M(x.error||"创建分析任务失败")}catch(o){M(o.message||"分析失败")}finally{K(!1)}},[m,g,w,q,F]);n.useEffect(()=>{if(!O)return;const o=ye.observeTaskUpdates().subscribe(x=>{var h;if(x.task.id===O){if(x.task.status==="failed"){D(null),P(""),M(((h=x.task.error)==null?void 0:h.message)||"分析失败");return}if(x.task.status==="completed"){Aa(x.task).then(async ee=>{if(ee&&(d(ee.records),i(ee.record),H(ee.record.analysis),ee.record.source==="upload"&&g&&ee.record.analysis.shots.length>0)){const ue=await pe(g,ee.record.analysis.shots);H(we=>we&&{...we,shots:ue});const je=await oe(ee.record.id,{editedShots:ue});d(je),i({...ee.record,editedShots:ue})}}).catch(ee=>{M(ee.message||"分析结果同步失败")}).finally(()=>{D(null),P("")});return}typeof x.task.progress=="number"?P(`分析中 ${Math.round(x.task.progress)}%`):P("分析中,请耐心等待...")}});return()=>o.unsubscribe()},[O,i,d,g,pe]);const b=n.useCallback(async()=>{var o;T&&(await ia("text",ra(T.shots,T)),ze.trackUIInteraction({area:"popular_video_tool",action:"analysis_inserted_to_canvas",control:"insert_analysis",source:"video_analyzer_analyze_page",metadata:{shotCount:T.shots.length,productExposureRatio:T.productExposureRatio,characterCount:((o=T.characters)==null?void 0:o.length)||0}}))},[T]);return a.jsxDEV("div",{className:"va-page",children:[!T&&a.jsxDEV(a.Fragment,{children:[a.jsxDEV("div",{className:"va-tabs",children:[a.jsxDEV("button",{className:`va-tab ${m==="upload"?"active":""}`,onClick:()=>k("upload"),children:"上传视频"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:398,columnNumber:13},void 0),a.jsxDEV("button",{className:`va-tab ${m==="youtube"?"active":""}`,onClick:()=>k("youtube"),children:"YouTube URL"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:399,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:397,columnNumber:11},void 0),m==="upload"?g?a.jsxDEV("div",{className:"va-video-preview",children:[a.jsxDEV("video",{src:Y,controls:!0,muted:!0,playsInline:!0},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:405,columnNumber:17},void 0),a.jsxDEV("button",{className:"va-video-preview-close",onClick:re,children:"✕"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:406,columnNumber:17},void 0),a.jsxDEV("div",{className:"va-video-preview-info",children:[a.jsxDEV("span",{className:"va-video-preview-name",children:g.name},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:408,columnNumber:19},void 0),a.jsxDEV("span",{className:"va-video-preview-size",children:cn(g.size)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:409,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:407,columnNumber:17},void 0),a.jsxDEV("input",{ref:U,type:"file",accept:"video/*",onChange:me,style:{display:"none"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:411,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:403,columnNumber:15},void 0):a.jsxDEV("div",{className:"va-dropzone",onDrop:Ue,onDragOver:o=>o.preventDefault(),onClick:()=>{var o;return(o=U.current)==null?void 0:o.click()},children:[a.jsxDEV("input",{ref:U,type:"file",accept:"video/*",onChange:me,style:{display:"none"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:415,columnNumber:17},void 0),a.jsxDEV("span",{className:"va-placeholder",children:["拖拽视频到此处 或 点击上传",a.jsxDEV("br",{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:418,columnNumber:19},void 0),a.jsxDEV("span",{className:"va-placeholder-hint",children:"建议视频在6M以内,可用推特或Youtube下载器下载最低分辨率视频"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:419,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:416,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:414,columnNumber:15},void 0):a.jsxDEV("input",{className:"va-url-input",type:"text",placeholder:"https://www.youtube.com/watch?v=...",value:w,onChange:o=>z(o.target.value)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:424,columnNumber:13},void 0),a.jsxDEV("div",{className:"va-model-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"分析模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:427,columnNumber:13},void 0),a.jsxDEV(Be,{variant:"form",selectedModel:q,selectedSelectionKey:Ke(q,F),onSelect:N,models:B,placement:"down",disabled:L,placeholder:"选择多模态模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:428,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:426,columnNumber:11},void 0),!be&&a.jsxDEV("div",{className:"va-model-tip",children:[a.jsxDEV("span",{children:"建议使用 gemini-mix 分组的gemini-3.1-pro-preview"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:441,columnNumber:15},void 0),!de&&a.jsxDEV("button",{type:"button",className:"va-model-tip-link",onClick:De,children:"去设置"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:443,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:440,columnNumber:13},void 0),a.jsxDEV("button",{className:"va-analyze-btn",onClick:r,disabled:L||!!O||(m==="upload"?!g:!w),children:L||O?R||"分析中...":"开始分析"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:453,columnNumber:11},void 0),le&&a.jsxDEV("div",{className:"va-error",children:le},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:460,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:396,columnNumber:9},void 0),T&&a.jsxDEV("div",{className:"va-results",children:[a.jsxDEV("div",{className:"va-stats",children:[a.jsxDEV("div",{className:"va-stat",children:[a.jsxDEV("span",{className:"va-stat-value",children:[T.totalDuration,"s"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:468,columnNumber:38},void 0),a.jsxDEV("span",{className:"va-stat-label",children:"总时长"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:468,columnNumber:102},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:468,columnNumber:13},void 0),a.jsxDEV("div",{className:"va-stat",children:[a.jsxDEV("span",{className:"va-stat-value",children:T.shotCount},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:469,columnNumber:38},void 0),a.jsxDEV("span",{className:"va-stat-label",children:"镜头数"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:469,columnNumber:97},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:469,columnNumber:13},void 0),a.jsxDEV("div",{className:"va-stat",children:[a.jsxDEV("span",{className:"va-stat-value",children:[T.productExposureRatio,"%"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:470,columnNumber:38},void 0),a.jsxDEV("span",{className:"va-stat-label",children:"产品占比"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:470,columnNumber:109},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:470,columnNumber:13},void 0),a.jsxDEV("div",{className:"va-stat",children:[a.jsxDEV("span",{className:"va-stat-value",children:T.aspect_ratio||"-"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:471,columnNumber:38},void 0),a.jsxDEV("span",{className:"va-stat-label",children:"画面比例"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:471,columnNumber:107},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:471,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:467,columnNumber:11},void 0),(T.video_style||T.bgm_mood)&&a.jsxDEV("div",{className:"va-style-info",children:[T.video_style&&a.jsxDEV("span",{children:["风格: ",T.video_style]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:475,columnNumber:40},void 0),T.bgm_mood&&a.jsxDEV("span",{children:["BGM: ",T.bgm_mood]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:476,columnNumber:37},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:474,columnNumber:13},void 0),a.jsxDEV("div",{className:"va-suggestion",children:T.suggestion},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:479,columnNumber:11},void 0),a.jsxDEV(an,{shots:T.shots,totalDuration:T.totalDuration},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:480,columnNumber:11},void 0),a.jsxDEV("div",{className:"va-shots",children:T.shots.map((o,x)=>a.jsxDEV(Ca,{shot:o,index:x},o.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:485,columnNumber:15},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:483,columnNumber:11},void 0),a.jsxDEV("div",{className:"va-page-actions",children:[qe&&a.jsxDEV("span",{className:"va-frame-progress",children:J},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:490,columnNumber:34},void 0),a.jsxDEV("button",{onClick:b,children:"插入画布"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:491,columnNumber:13},void 0),a.jsxDEV("button",{onClick:()=>{H(null)},children:"重新分析"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:492,columnNumber:13},void 0),j&&a.jsxDEV("button",{onClick:j,children:"新建分析"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:493,columnNumber:29},void 0),l&&a.jsxDEV("button",{className:"va-btn-primary",onClick:l,children:"下一步: 编辑脚本 →"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:494,columnNumber:24},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:489,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:466,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/AnalyzePage.tsx",lineNumber:393,columnNumber:5},void 0)};function Ve(e){e.style.height="auto",e.style.height=e.scrollHeight+"px"}function Se(e,i=30){if(!e)return 1;const d=e.split(`
|
|
2
|
+
`);let j=0;for(const l of d)j+=Math.max(1,Math.ceil(l.length/i));return Math.max(1,j)}function Pe(e){e&&Ve(e)}const _a="video-analyzer:script-model",Va="video-analyzer:video-model",es="gemini-3.1-pro-preview",as="veo3",pn=["固定镜头 (Static)","缓慢推近 (Dolly In)","缓慢拉远 (Dolly Out)","水平平移 (Pan)","垂直摇移 (Tilt)","跟随拍摄 (Follow)","手持感 (Handheld)","环绕拍摄 (Orbit)","升降镜头 (Crane)","快速推移 (Zoom In)","快速拉远 (Zoom Out)","滑轨移动 (Slider)","航拍俯冲 (Drone Dive)","第一人称 (POV)"],fn=[{label:"无 (none)",value:"none"},{label:"仅旁白 (narration_only)",value:"narration_only"},{label:"仅对白 (dialogue_only)",value:"dialogue_only"},{label:"旁白+对白 (both)",value:"both"}],gn=[{label:"硬切 (cut)",value:"cut"},{label:"溶解 (dissolve)",value:"dissolve"},{label:"匹配切 (match_cut)",value:"match_cut"},{label:"淡出到黑 (fade_to_black)",value:"fade_to_black"}],vn=({record:e,onRecordUpdate:i,onRecordsChange:d,onNext:j})=>{var pe;const[l,v]=n.useState(()=>{const r=Ia(e.productInfo||{prompt:""},e.analysis.totalDuration);return{...r,videoStyle:r.videoStyle??e.analysis.video_style??"",bgmMood:r.bgmMood??e.analysis.bgm_mood??""}}),[m,k]=n.useState(e.editedShots||[...e.analysis.shots]),[w,z]=n.useState(!1),[g,S]=n.useState(()=>e.pendingRewriteTaskId||null),[q,G]=n.useState(""),[F,Q]=n.useState(""),[N,L]=n.useState(!1),K=n.useRef(null),[O,D]=n.useState(()=>ve(_a,es).modelId),[R,P]=n.useState(()=>ve(_a,es).modelRef),le=n.useCallback((r,b)=>{D(r),P(b||null),He(_a,r,b)},[]),M=$e("text"),T=$e("video"),[H,C]=n.useState(()=>{var r;return((r=e.productInfo)==null?void 0:r.videoModel)||ve(Va,as).modelId}),[U,$]=n.useState(()=>{var r,b;return((r=e.productInfo)==null?void 0:r.videoModelRef)||ve(Va,((b=e.productInfo)==null?void 0:b.videoModel)||as).modelRef}),Y=n.useCallback((r,b)=>{C(r),$(b||null),He(Va,r,b);const o=Ie(r),x=parseInt(o.defaultDuration,10)||8;v(h=>({...h,videoModel:r,videoModelRef:b||null,segmentDuration:x}))},[]),Z=n.useMemo(()=>Ie(H).durationOptions,[H]),B=n.useMemo(()=>{if(l.segmentDuration&&Z.some(o=>parseInt(o.value,10)===l.segmentDuration))return l.segmentDuration;const r=Ie(H);return parseInt(r.defaultDuration,10)||8},[l.segmentDuration,Z,H]),de=n.useMemo(()=>{const r=l.targetDuration||e.analysis.totalDuration,b=[{label:`${B}秒`,value:String(B)}];return Us(r,b)},[B,l.targetDuration,e.analysis.totalDuration]),be=n.useMemo(()=>e.characters||e.analysis.characters||[],[e.characters,e.analysis.characters]);n.useEffect(()=>{const r=Ia(e.productInfo||{prompt:""},e.analysis.totalDuration);v({...r,videoStyle:r.videoStyle??e.analysis.video_style??"",bgmMood:r.bgmMood??e.analysis.bgm_mood??""}),k(e.editedShots||[...e.analysis.shots]),S(b=>e.pendingRewriteTaskId??b??null),G(b=>e.pendingRewriteTaskId?b:"")},[e]);const De=n.useRef();n.useEffect(()=>(clearTimeout(De.current),De.current=setTimeout(async()=>{const r=await oe(e.id,{productInfo:l});d(r),i({...e,productInfo:l,pendingRewriteTaskId:g})},500),()=>clearTimeout(De.current)),[l,g]);const me=n.useCallback(async r=>{k(r);const b=Te(e,r),o=await oe(e.id,{...b,productInfo:l});d(o),i({...e,...b,productInfo:l,pendingRewriteTaskId:g})},[e,l,g,i,d]),Ue=n.useCallback(async r=>{const b=await oe(e.id,r);d(b),i({...e,...r,productInfo:l,pendingRewriteTaskId:g})},[e,l,g,i,d]),re=n.useCallback((r,b,o)=>{const x=m.map(h=>h.id===r?{...h,[b]:o}:h);me(x)},[m,me]),qe=n.useCallback((r,b)=>{const x=(e.characters||e.analysis.characters||[]).map(h=>h.id===r?{...h,description:b}:h);Ue({characters:x})},[e.characters,e.analysis.characters,Ue]),Ce=n.useCallback(async()=>{var r;if(!((r=l.prompt)!=null&&r.trim())){Q("请填写提示词");return}z(!0),Q(""),G("AI 改编中 0%"),ze.trackUIInteraction({area:"popular_video_tool",action:"script_rewrite_started",control:"rewrite_script",source:"video_analyzer_script_page",metadata:{shotCount:m.length,promptLength:l.prompt.trim().length,hasModelRef:!!R}});try{const b=Ss({recordAnalysis:e.analysis,productInfo:l,videoModel:H,characters:be}),o=ye.createTask({prompt:`改编脚本:${l.prompt.slice(0,40)}`,model:O,modelRef:R||null,videoAnalyzerAction:"rewrite",videoAnalyzerPrompt:b,videoAnalyzerRecordId:e.id,autoInsertToCanvas:!1},X.CHAT);S(o.id),G(`AI 改编中 ${Math.round(o.progress??0)}%`);const x=await oe(e.id,{pendingRewriteTaskId:o.id});d(x),i({...e,pendingRewriteTaskId:o.id})}catch(b){Q(b.message||"改编失败")}finally{z(!1)}},[e,l,m,H,be,O,R,i,d]);n.useEffect(()=>{if(!g)return;const r=ye.getTask(g);typeof(r==null?void 0:r.progress)=="number"&&G(`AI 改编中 ${Math.round(r.progress)}%`);const b=ye.observeTaskUpdates().subscribe(o=>{var x;if(o.task.id===g){if(o.task.status==="failed"){S(null),G(""),Q(((x=o.task.error)==null?void 0:x.message)||"改编失败"),oe(e.id,{pendingRewriteTaskId:null}).then(h=>{d(h),i({...e,pendingRewriteTaskId:null})});return}if(o.task.status==="completed"){Aa(o.task).then(h=>{h&&(d(h.records),i(h.record),k(h.record.editedShots||h.record.analysis.shots))}).catch(h=>{Q(h.message||"改编结果同步失败")}).finally(()=>{S(null),G("")});return}typeof o.task.progress=="number"&&G(`AI 改编中 ${Math.round(o.task.progress)}%`)}});return()=>b.unsubscribe()},[g,e.id,i,d]);const J=n.useCallback(async()=>{await ia("text",ra(m,e.analysis,l)),ze.trackUIInteraction({area:"popular_video_tool",action:"script_inserted_to_canvas",control:"insert_script",source:"video_analyzer_script_page",metadata:{shotCount:m.length}})},[m,l,e]),se=n.useCallback(async r=>{const b=ns(e,r);if(!b)return;L(!1),k(b.editedShots);const o=await oe(e.id,b);d(o),i({...e,...b})},[e,i,d]);return n.useEffect(()=>{if(!N)return;const r=b=>{K.current&&!K.current.contains(b.target)&&L(!1)};return document.addEventListener("mousedown",r),()=>document.removeEventListener("mousedown",r)},[N]),a.jsxDEV("div",{className:"va-page",children:[a.jsxDEV("div",{className:"va-product-form",children:[a.jsxDEV("textarea",{ref:Pe,className:"va-form-textarea va-auto-resize",placeholder:"描述你想要的视频内容,如:拖鞋,生活用品,主打防滑...",rows:Math.max(3,Se(l.prompt)),value:l.prompt,onChange:r=>v(b=>({...b,prompt:r.target.value})),onInput:r=>Ve(r.currentTarget)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:408,columnNumber:9},void 0),a.jsxDEV("div",{className:"va-form-row",children:a.jsxDEV("div",{className:"va-duration-input",style:{width:"auto",flex:1},children:[a.jsxDEV("label",{className:"va-edit-label",children:"视频时长(秒)"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:419,columnNumber:13},void 0),a.jsxDEV("input",{className:"va-form-input",type:"number",min:5,max:300,value:l.targetDuration??e.analysis.totalDuration,onChange:r=>v(b=>({...b,targetDuration:Number(r.target.value)||void 0}))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:420,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:418,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:417,columnNumber:9},void 0),a.jsxDEV("div",{className:"va-model-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"改编模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:424,columnNumber:11},void 0),a.jsxDEV(Be,{variant:"form",selectedModel:O,selectedSelectionKey:Ke(O,R),onSelect:le,models:M,placement:"down",disabled:w,placeholder:"选择文本模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:425,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:423,columnNumber:9},void 0),a.jsxDEV("div",{className:"va-model-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"视频模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:437,columnNumber:11},void 0),a.jsxDEV(Be,{variant:"form",selectedModel:H,selectedSelectionKey:Ke(H,U),onSelect:Y,models:T,placement:"down",disabled:w,placeholder:"选择视频模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:438,columnNumber:11},void 0),a.jsxDEV("div",{className:"va-segment-duration-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"单段"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:449,columnNumber:13},void 0),a.jsxDEV("select",{className:"va-form-select",value:String(B),onChange:r=>v(b=>({...b,segmentDuration:parseInt(r.target.value,10)})),disabled:Z.length<=1,children:Z.map(r=>a.jsxDEV("option",{value:r.value,children:r.label},r.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:457,columnNumber:17},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:450,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:448,columnNumber:11},void 0),de.overflow>0&&a.jsxDEV("span",{className:"va-duration-overflow",children:["实际 ",de.actualTotal,"s(+",parseFloat(de.overflow.toFixed(2)),"s)"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:462,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:436,columnNumber:9},void 0),a.jsxDEV("div",{className:"va-version-row",children:[a.jsxDEV("button",{className:"va-analyze-btn",onClick:Ce,disabled:w||!!g,style:{flex:1},children:w||g?q||"AI 改编中...":"AI 改编脚本"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:468,columnNumber:11},void 0),e.scriptVersions&&e.scriptVersions.length>0&&a.jsxDEV("div",{className:"va-version-select",ref:K,children:[a.jsxDEV("button",{className:"va-version-btn",onClick:()=>L(r=>!r),children:[e.activeVersionId===Na?"原始分析":((pe=e.scriptVersions.find(r=>r.id===e.activeVersionId))==null?void 0:pe.label)||`v${e.scriptVersions.length}`," ▾"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:473,columnNumber:15},void 0),N&&a.jsxDEV("div",{className:"va-version-menu",children:[e.scriptVersions.map(r=>a.jsxDEV("div",{className:`va-version-item ${r.id===e.activeVersionId?"active":""}`,onClick:()=>se(r.id),children:[a.jsxDEV("span",{children:r.label},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:489,columnNumber:23},void 0),r.prompt&&a.jsxDEV("span",{className:"va-version-prompt",children:r.prompt.length>30?r.prompt.slice(0,30)+"...":r.prompt},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:490,columnNumber:36},void 0),a.jsxDEV("span",{className:"va-version-time",children:[r.shots.length," 镜头 · ",new Date(r.createdAt).toLocaleTimeString()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:491,columnNumber:23},void 0)]},r.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:484,columnNumber:21},void 0)),a.jsxDEV("div",{className:`va-version-item ${e.activeVersionId===Na||!e.activeVersionId?"active":""}`,onClick:()=>se(Na),children:[a.jsxDEV("span",{children:"原始分析"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:498,columnNumber:21},void 0),a.jsxDEV("span",{className:"va-version-time",children:[e.analysis.shots.length," 镜头 · ",new Date(e.createdAt).toLocaleTimeString()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:499,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:494,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:482,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:472,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:467,columnNumber:9},void 0),a.jsxDEV("div",{className:"va-form-row",children:[a.jsxDEV("div",{style:{flex:1},children:[a.jsxDEV("label",{className:"va-edit-label",children:"画面风格"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:509,columnNumber:13},void 0),a.jsxDEV(ea,{className:"va-style-combo",value:l.videoStyle||"",onChange:r=>v(b=>({...b,videoStyle:r})),options:Is,placeholder:Ps},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:510,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:508,columnNumber:11},void 0),a.jsxDEV("div",{style:{flex:1},children:[a.jsxDEV("label",{className:"va-edit-label",children:"BGM 情绪"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:519,columnNumber:13},void 0),a.jsxDEV("textarea",{ref:Pe,className:"va-edit-textarea va-auto-resize",rows:Se(l.bgmMood),value:l.bgmMood||"",onChange:r=>v(b=>({...b,bgmMood:r.target.value})),onInput:r=>Ve(r.currentTarget),placeholder:"如:轻快、治愈、科技感"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:520,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:518,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:507,columnNumber:9},void 0),F&&a.jsxDEV("div",{className:"va-error",children:F},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:531,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:407,columnNumber:7},void 0),a.jsxDEV(qs,{characters:be,onChange:qe},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:534,columnNumber:7},void 0),a.jsxDEV("div",{className:"va-shots",children:m.map((r,b)=>a.jsxDEV(Ca,{shot:r,index:b,compact:!0,children:a.jsxDEV("div",{className:"va-edit-fields",children:[a.jsxDEV("label",{className:"va-edit-label",children:"画面描述"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:544,columnNumber:15},void 0),a.jsxDEV("textarea",{ref:Pe,className:"va-edit-textarea va-auto-resize",rows:Se(r.description),value:r.description||"",onChange:o=>re(r.id,"description",o.target.value),onInput:o=>Ve(o.currentTarget)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:545,columnNumber:15},void 0),a.jsxDEV("label",{className:"va-edit-label",children:"旁白"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:546,columnNumber:15},void 0),a.jsxDEV("textarea",{ref:Pe,className:"va-edit-textarea va-auto-resize",rows:Se(r.narration),value:r.narration||"",onChange:o=>re(r.id,"narration",o.target.value),onInput:o=>Ve(o.currentTarget)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:547,columnNumber:15},void 0),a.jsxDEV("label",{className:"va-edit-label",children:"角色说话"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:548,columnNumber:15},void 0),a.jsxDEV("textarea",{ref:Pe,className:"va-edit-textarea va-auto-resize",rows:Se(r.dialogue),value:r.dialogue||"",onChange:o=>re(r.id,"dialogue",o.target.value),onInput:o=>Ve(o.currentTarget),placeholder:'多角色时按"角色名: 台词"分行'},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:549,columnNumber:15},void 0),a.jsxDEV("label",{className:"va-edit-label",children:"对白角色"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:550,columnNumber:15},void 0),a.jsxDEV("input",{className:"va-form-input",type:"text",value:r.dialogue_speakers||"",onChange:o=>re(r.id,"dialogue_speakers",o.target.value),placeholder:"如:主讲人 或 主讲人|顾客"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:551,columnNumber:15},void 0),a.jsxDEV("label",{className:"va-edit-label",children:"旁白/对白关系"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:552,columnNumber:15},void 0),a.jsxDEV(ea,{value:r.speech_relation||"",onChange:o=>re(r.id,"speech_relation",o),options:fn,placeholder:"选择关系"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:553,columnNumber:15},void 0),a.jsxDEV("label",{className:"va-edit-label",children:"运镜方式"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:554,columnNumber:15},void 0),a.jsxDEV(ea,{value:r.camera_movement||"",onChange:o=>re(r.id,"camera_movement",o),options:pn,placeholder:"选择或输入运镜方式"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:555,columnNumber:15},void 0),a.jsxDEV("label",{className:"va-edit-label",children:"首帧 Prompt"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:556,columnNumber:15},void 0),a.jsxDEV("textarea",{ref:Pe,className:"va-edit-textarea va-auto-resize",rows:Se(r.first_frame_prompt),value:r.first_frame_prompt||"",onChange:o=>re(r.id,"first_frame_prompt",o.target.value),onInput:o=>Ve(o.currentTarget)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:557,columnNumber:15},void 0),a.jsxDEV("label",{className:"va-edit-label",children:"尾帧 Prompt"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:558,columnNumber:15},void 0),a.jsxDEV("textarea",{ref:Pe,className:"va-edit-textarea va-auto-resize",rows:Se(r.last_frame_prompt),value:r.last_frame_prompt||"",onChange:o=>re(r.id,"last_frame_prompt",o.target.value),onInput:o=>Ve(o.currentTarget)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:559,columnNumber:15},void 0),a.jsxDEV("label",{className:"va-edit-label",children:"转场方式"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:560,columnNumber:15},void 0),a.jsxDEV(ea,{value:r.transition_hint||"",onChange:o=>re(r.id,"transition_hint",o),options:gn,placeholder:"选择转场方式"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:561,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:543,columnNumber:13},void 0)},r.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:542,columnNumber:11},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:540,columnNumber:7},void 0),a.jsxDEV("div",{className:"va-page-actions",children:[a.jsxDEV("button",{onClick:J,children:"脚本插入画布"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:568,columnNumber:9},void 0),j&&a.jsxDEV("button",{className:"va-btn-primary",onClick:j,children:"下一步:批量生成 →"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:569,columnNumber:20},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:567,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/ScriptPage.tsx",lineNumber:405,columnNumber:5},void 0)};function yn(e,i,d){var j,l,v;return{recordId:e.id,fileNamePrefix:"va",zipBaseName:"video_analyzer_assets",scriptMarkdown:ra(i,e.analysis,e.productInfo),recordMeta:{id:e.id,source:e.source,sourceLabel:e.sourceLabel,prompt:((j=e.productInfo)==null?void 0:j.prompt)||"",aspectRatio:e.analysis.aspect_ratio||"16x9",videoStyle:((l=e.productInfo)==null?void 0:l.videoStyle)||e.analysis.video_style||"",bgmMood:((v=e.productInfo)==null?void 0:v.bgmMood)||e.analysis.bgm_mood||"",shotCount:i.length},shots:i,assets:d}}function Nn(e,i){const d=e.characters||e.analysis.characters||[];return Ws(i,d)}const Da="video-analyzer:image-model",na="video-analyzer:video-model",Ua=({size:e=14})=>a.jsxDEV("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",width:e,height:e,"aria-hidden":"true",children:[a.jsxDEV("rect",{x:"3",y:"3",width:"8",height:"8",rx:"1.5"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:64,columnNumber:5},void 0),a.jsxDEV("circle",{cx:"17",cy:"7",r:"4"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:65,columnNumber:5},void 0),a.jsxDEV("rect",{x:"3",y:"13",width:"8",height:"8",rx:"1.5"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:66,columnNumber:5},void 0),a.jsxDEV("rect",{x:"13",y:"13",width:"8",height:"8",rx:"1.5"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:67,columnNumber:5},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:53,columnNumber:3},void 0),bn=({record:e,onRecordUpdate:i,onRecordsChange:d,onRestart:j})=>{const l=n.useMemo(()=>e.editedShots||e.analysis.shots,[e.editedShots,e.analysis.shots]),v=e.analysis.aspect_ratio||"16x9",m=e.batchId||`va_${e.id}`,{openDialog:k,board:w}=qa(),z=n.useRef(e),g=n.useRef(l),S=n.useRef(!1),q=n.useRef(null),G=n.useRef(null),[F,Q]=n.useState([]),[N,L]=n.useState(null),K=$e("image"),O=$e("video"),[D,R]=n.useState(()=>ve(Da,"").modelId),[P,le]=n.useState(()=>ve(Da,"").modelRef),[M,T]=n.useState(()=>{var s;return((s=e.productInfo)==null?void 0:s.videoModel)||ve(na,"veo3").modelId}),[H,C]=n.useState(()=>{var s,t;return((s=e.productInfo)==null?void 0:s.videoModelRef)||ve(na,((t=e.productInfo)==null?void 0:t.videoModel)||"veo3").modelRef}),[U,$]=n.useState(()=>{var s,t;return ba(((s=e.productInfo)==null?void 0:s.videoModel)||ve(na,"veo3").modelId,(t=e.productInfo)==null?void 0:t.videoSize,v)}),[Y,Z]=n.useState(()=>{var s,t;return((s=e.productInfo)==null?void 0:s.segmentDuration)||parseInt(Ie(((t=e.productInfo)==null?void 0:t.videoModel)||"veo3").defaultDuration,10)||8}),[B,de]=n.useState({running:!1,stopping:!1,currentIndex:-1,retryCount:0}),[be,De]=n.useState(!1),me=n.useMemo(()=>Ie(M),[M]),Ue=n.useMemo(()=>me.durationOptions,[me]),re=n.useMemo(()=>me.sizeOptions,[me]),qe=n.useMemo(()=>e.characters||e.analysis.characters||[],[e.characters,e.analysis.characters]),Ce=n.useMemo(()=>Zs(l),[l]);n.useEffect(()=>{z.current=e},[e]),n.useEffect(()=>{g.current=l},[l]);const J=n.useCallback(async s=>{const t=z.current,c={...t,...s};z.current=c,c.editedShots&&(g.current=c.editedShots);const u=await oe(t.id,s);return d(u),i(c),c},[i,d]),se=n.useCallback(async s=>{const t=z.current,c=Te(t,s);return g.current=s,await J(c),s},[J]),pe=n.useCallback(async s=>{const t=z.current,c={...Ia(t.productInfo||{prompt:""},t.analysis.totalDuration),...s};return await J({productInfo:c}),c},[J]),r=n.useCallback(async(s,t)=>{const c=z.current,f=(c.characters||c.analysis.characters||[]).map(p=>p.id===s?{...p,referenceImageUrl:t}:p);await J({characters:f})},[J]),b=n.useCallback(s=>{const t=`va_${e.id}_char${s.id}_ref`;k(aa.aiImageGeneration,{initialPrompt:s.description,batchId:t,initialAspectRatio:"1:1",initialModel:D||void 0,initialModelRef:P})},[e.id,k,D,P]),o=n.useCallback((s,t)=>{R(s),le(t||null),He(Da,s,t)},[]),x=n.useCallback((s,t)=>{T(s),C(t||null),He(na,s,t);const c=Ie(s),u=parseInt(c.defaultDuration,10)||8,f=ba(s,U,v);Z(u),$(f),pe({videoModel:s,videoModelRef:t||null,segmentDuration:u,videoSize:f})},[pe,v,U]),h=n.useCallback(s=>{Z(s),pe({segmentDuration:s})},[pe]),ee=n.useCallback(s=>{const t=ba(M,s,v);$(t),pe({videoSize:t})},[pe,v,M]),ue=n.useCallback(async()=>{try{const s=z.current,t=g.current;if(!w)throw new Error("画布未就绪");Qa(w);const c=await ia("text",ra(t,s.analysis,s.productInfo));if(!c.success)throw new Error(c.error||"插入失败,请确认画布已打开");ze.trackUIInteraction({area:"popular_video_tool",action:"script_inserted_to_canvas",control:"insert_script",source:"video_analyzer_generate_page",metadata:{shotCount:t.length}}),Ee.success("脚本已插入画布")}catch(s){console.error("[VideoAnalyzer] Failed to insert script to canvas:",s);const t=s instanceof Error?s.message:"脚本插入画布失败";Ee.error(t)}},[w]),je=n.useCallback(async s=>{if(!w)return!1;try{Qa(w);const t=await ia("video",s);if(!t.success)throw new Error(t.error||"插入失败,请确认画布已打开");return!0}catch(t){return console.error("[VideoAnalyzer] Failed to insert generated video to canvas:",t),!1}},[w]),{isExportingAssets:we,exportProgress:ta,handleExportAssets:ls}=Cs({onExport:async s=>{const t=z.current,c=g.current;return await Xs({...yn(t,c,Ce),onProgress:s})},onExportSuccess:s=>{Ee.success(`素材导出完成,共 ${s.assetCount} 个文件`)},onExportError:s=>{console.error("[VideoAnalyzer] Failed to export assets:",s),Ee.error("素材导出失败")}}),oa=n.useMemo(()=>F.map(s=>s.url).filter(Boolean),[F]),Ma=n.useCallback(async()=>{e.batchId||await J({batchId:m})},[e.batchId,m,J]),{tasks:Ra}=is(),Ae=n.useRef(new Set),la=n.useRef(new Set),Ta=n.useCallback(async(s,t,c)=>{let u=[...t],f=!1;for(const{shotId:p,videoUrl:E}of c){const _=`auto_${p}`;if(!la.current.has(_)){la.current.add(_);try{const I=u.findIndex(A=>A.id===p);if(I===-1)continue;const V=u[I+1];if(!V)continue;const y=await sa(E,V.id,"first","last");if(!y||V.generated_first_frame_url===y)continue;u=u.map((A,te)=>te===I+1?{...A,generated_first_frame_url:y}:A),f=!0}finally{la.current.delete(_)}}}if(f){const p=e;oe(s,Te(p,u)).then(E=>{d(E),i({...p,editedShots:u})})}},[e,i,d]);n.useEffect(()=>{var E,_,I,V;const s=`va_${e.id}_shot`,t=`va_${e.id}_char`;let c=!1;const u=e;let f=u.editedShots||u.analysis.shots;const p=[];for(const y of Ra){if(y.status!==Ne.COMPLETED||Ae.current.has(y.id))continue;const A=(E=y.params)==null?void 0:E.batchId;if(!A)continue;if(A.startsWith(t)){const ge=(_=y.result)==null?void 0:_.url;if(Ae.current.add(y.id),ge){const $a=A.slice(t.length),Ba=$a.lastIndexOf("_ref");if(Ba!==-1){const gs=$a.slice(0,Ba),vs=(z.current.characters||z.current.analysis.characters||[]).map(va=>va.id===gs?{...va,referenceImageUrl:ge}:va);J({characters:vs})}}continue}if(!A.startsWith(s))continue;if(e.storyboardGeneratedAt&&y.createdAt<e.storyboardGeneratedAt){Ae.current.add(y.id);continue}const te=(I=y.result)==null?void 0:I.url;if(!te)continue;const ne=A.slice(s.length),ke=ne.lastIndexOf("_");if(ke===-1)continue;const ie=ne.slice(0,ke),W=ne.slice(ke+1);if(W!=="first"&&W!=="last"&&W!=="video")continue;const fe=W==="first"?"generated_first_frame_url":W==="last"?"generated_last_frame_url":"generated_video_url",ae=f.find(ge=>ge.id===ie),ce=(V=ae==null?void 0:ae.suppressed_generated_urls)==null?void 0:V[W];if(ce&&ce===te){Ae.current.add(y.id);continue}if(!ae||ae[fe]===te){Ae.current.add(y.id);continue}f=f.map(ge=>ge.id===ie?{...ge,[fe]:te,suppressed_generated_urls:ge.suppressed_generated_urls?{...ge.suppressed_generated_urls,[W]:void 0}:void 0}:ge),Ae.current.add(y.id),c=!0,W==="video"&&p.push({shotId:ie,videoUrl:te})}c&&oe(u.id,Te(u,f)).then(y=>{d(y),i({...u,editedShots:f})}),p.length>0&&Ta(u.id,f,p)},[Ra,Ta,e,i,d,J]);const[xe,da]=n.useState(null),ua=n.useCallback((s,t)=>{da({shotId:s,assetType:t})},[]),ds=n.useCallback(async s=>{if(!xe)return;da(null);const{shotId:t,assetType:c}=xe,u=c==="first"?"generated_first_frame_url":c==="last"?"generated_last_frame_url":"generated_video_url",p=(e.editedShots||e.analysis.shots).map(_=>_.id===t?{..._,[u]:s.url}:_),E=await oe(e.id,Te(e,p));d(E),i({...e,editedShots:p})},[xe,e,d,i]),[Me,ca]=n.useState(null),Ge=n.useRef(null),he=n.useCallback(()=>{Ge.current!==null&&(window.clearTimeout(Ge.current),Ge.current=null)},[]),Ga=n.useCallback(()=>{he(),ca(null)},[he]),La=n.useCallback(()=>{he(),Ge.current=window.setTimeout(()=>{Ge.current=null,ca(null)},120)},[he]),Ye=n.useCallback((s,t,c)=>{he();const u=c.currentTarget.getBoundingClientRect();ca({url:s,type:t,x:u.left+u.width/2,y:u.top-8})},[he]),We=n.useCallback(()=>{La()},[La]),us=n.useCallback(()=>{he()},[he]),cs=n.useCallback(()=>{Ga()},[Ga]);n.useEffect(()=>()=>{he()},[he]);const Le=n.useMemo(()=>{var t;const s=(t=re.find(c=>c.value===U))==null?void 0:t.aspectRatio;if(s)return s;if(U!=null&&U.includes("x")){const[c,u]=U.split("x").map(Number);if(c&&u){const f=(E,_)=>_===0?E:f(_,E%_),p=f(c,u);return`${c/p}:${u/p}`}}return v.replace("x",":")},[v,re,U]),Ze=Le,_e=n.useCallback(s=>s.map(t=>({url:t.url,name:t.name})),[]),Qe=n.useCallback((s=[],t=[])=>s.length===t.length&&s.every((c,u)=>{var f,p;return c.url===((f=t[u])==null?void 0:f.url)&&c.name===((p=t[u])==null?void 0:p.name)}),[]),Re=n.useCallback(async(s,t,c)=>{let u=!1;const f=_e(c.images),p=g.current.map(E=>{if(E.id!==s)return E;if(t==="first"){const V=E.first_frame_draft,y={prompt:c.prompt,images:f,aspectRatio:c.aspectRatio};return(V==null?void 0:V.prompt)===y.prompt&&(V==null?void 0:V.aspectRatio)===y.aspectRatio&&Qe(V==null?void 0:V.images,y.images)?E:(u=!0,{...E,first_frame_draft:y})}if(t==="last"){const V=E.last_frame_draft,y={prompt:c.prompt,images:f,aspectRatio:c.aspectRatio};return(V==null?void 0:V.prompt)===y.prompt&&(V==null?void 0:V.aspectRatio)===y.aspectRatio&&Qe(V==null?void 0:V.images,y.images)?E:(u=!0,{...E,last_frame_draft:y})}const _=E.video_draft,I={prompt:c.prompt,images:f,duration:c.duration,size:c.size};return(_==null?void 0:_.prompt)===I.prompt&&(_==null?void 0:_.duration)===I.duration&&(_==null?void 0:_.size)===I.size&&Qe(_==null?void 0:_.images,I.images)?E:(u=!0,{...E,video_draft:I})});u&&await se(p)},[se,Qe,_e]),ma=n.useCallback(s=>{const t=s.first_frame_prompt||s.description||"";if(!t)return;ze.trackUIInteraction({area:"popular_video_tool",action:"shot_first_frame_generation_opened",control:"generate_first_frame",source:"video_analyzer_generate_page",metadata:{shotId:s.id,hasDraft:!!s.first_frame_draft}});const c=xa(t,e.analysis,e.productInfo),u=s.first_frame_draft,f=`va_${e.id}_shot${s.id}_first`;k(aa.aiImageGeneration,{initialPrompt:(u==null?void 0:u.prompt)||c,batchId:f,initialAspectRatio:(u==null?void 0:u.aspectRatio)??Ze,initialModel:D||void 0,initialModelRef:P,initialImages:u?_e(u.images||[]):s.generated_first_frame_url?[{url:s.generated_first_frame_url,name:"首帧"}]:void 0,onDraftChange:p=>Re(s.id,"first",p)})},[e,k,Ze,D,P,Re,_e]),Oe=n.useCallback((s,t)=>{if(s.generated_last_frame_url)return s.generated_last_frame_url;const c=l[t+1];return c==null?void 0:c.generated_first_frame_url},[l]),Xe=n.useCallback((s,t)=>{const c=s.last_frame_prompt||s.description||"";if(!c)return;ze.trackUIInteraction({area:"popular_video_tool",action:"shot_last_frame_generation_opened",control:"generate_last_frame",source:"video_analyzer_generate_page",metadata:{shotId:s.id,shotIndex:t,hasDraft:!!s.last_frame_draft}});const u=xa(c,e.analysis,e.productInfo),f=s.last_frame_draft,p=`va_${e.id}_shot${s.id}_last`,E=Oe(s,t);k(aa.aiImageGeneration,{initialPrompt:(f==null?void 0:f.prompt)||u,batchId:p,initialAspectRatio:(f==null?void 0:f.aspectRatio)??Ze,initialModel:D||void 0,initialModelRef:P,initialImages:f?_e(f.images||[]):E?[{url:E,name:"尾帧"}]:void 0,onDraftChange:_=>Re(s.id,"last",_)})},[e,k,Oe,Ze,D,P,Re,_e]),pa=n.useCallback((s,t)=>{const c=ha(s,e.analysis,e.productInfo);if(!c)return;ze.trackUIInteraction({area:"popular_video_tool",action:"shot_video_generation_opened",control:"generate_shot_video",source:"video_analyzer_generate_page",metadata:{shotId:s.id,shotIndex:t,hasDraft:!!s.video_draft}});const u=s.video_draft,f=`va_${e.id}_shot${s.id}_video`,p=[];s.generated_first_frame_url&&p.push({url:s.generated_first_frame_url,name:"首帧"});const E=Oe(s,t);E&&p.push({url:E,name:"尾帧"});const _=_e((u==null?void 0:u.images)||[]),I=_.length>0?_:p.length>0?p:void 0,V=Ie(M),y=String((u==null?void 0:u.duration)??Y),A=V.durationOptions.some(ne=>ne.value===y)?(u==null?void 0:u.duration)??Y:void 0,te=V.sizeOptions.some(ne=>ne.value===((u==null?void 0:u.size)??U))?(u==null?void 0:u.size)??U:void 0;k(aa.aiVideoGeneration,{initialPrompt:(u==null?void 0:u.prompt)||c,initialImages:I,initialDuration:A,initialSize:te,initialModel:M||void 0,initialModelRef:H,batchId:f,onDraftChange:ne=>Re(s.id,"video",ne)})},[e.id,Y,U,M,H,k,Oe,e.analysis,e.productInfo,Re,_e]),fa=n.useCallback((s,t)=>{const c=t==="first"?"generated_first_frame_url":t==="last"?"generated_last_frame_url":"generated_video_url",f=(e.editedShots||e.analysis.shots).map(p=>p.id===s?{...p,[c]:void 0,suppressed_generated_urls:p[c]?{...p.suppressed_generated_urls||{},[t]:p[c]}:p.suppressed_generated_urls}:p);oe(e.id,Te(e,f)).then(p=>{d(p),i({...e,editedShots:f})})},[e,i,d]),Oa=n.useCallback(async(s,t,c)=>{var A,te,ne;const u=s.first_frame_prompt||s.description||"";if(!u)return null;const f=xa(u,e.analysis,e.productInfo),p=[];if(t&&p.push(t),s.character_ids&&s.character_ids.length>0)for(const ke of s.character_ids){const ie=c.find(W=>W.id===ke);ie!=null&&ie.referenceImageUrl&&!p.includes(ie.referenceImageUrl)&&p.push(ie.referenceImageUrl)}const E=`va_${e.id}_shot${s.id}_first`,_=await ja.executeTool({name:"generate_image",arguments:{prompt:f.trim(),count:1,size:v,referenceImages:p.length>0?p:void 0,batchId:E,...D?{model:D,modelRef:P}:{}}},{mode:"queue"}),I=_.taskId||((A=_.data)==null?void 0:A.taskId);if(!_.success||!I)return null;const V=await ka(I,(te=q.current)==null?void 0:te.signal);if(!V.success)return null;const y=V.task||ye.getTask(I);return((ne=y==null?void 0:y.result)==null?void 0:ne.url)||null},[e,v,D,P]),ga=n.useCallback(async(s,t,c)=>{const u=s[t+1];if(!u)return s;const f=await sa(c,u.id,"first","last");if(!f||u.generated_first_frame_url===f)return s;const p=s.map((E,_)=>_===t+1?{...E,generated_first_frame_url:f}:E);return await se(p),p},[se]),Fa=n.useCallback(async(s,t,c)=>{const u=s[t];if(!u||u.generated_video_url===c)return s;const f=s.map((p,E)=>E===t?{...p,generated_video_url:c}:p);return await se(f),f},[se]),Ha=n.useCallback(async(s,t,c)=>{var y,A;const u=ha(s,e.analysis,e.productInfo);if(!u)return null;const f=t===0?oa[0]:s.generated_first_frame_url,p=s.generated_last_frame_url||((y=c[t+1])==null?void 0:y.generated_first_frame_url),{referenceImages:E}=Qs({model:M,firstFrameUrl:f,lastFrameUrl:p,extraReferenceUrls:oa.slice(t===0?1:0)}),_=`va_${e.id}_shot${s.id}_video`,I=await ja.executeTool({name:"generate_video",arguments:{prompt:u,size:U,seconds:String(Y),count:1,batchId:_,model:M,modelRef:H,referenceImages:E,params:me.provider==="seedance"?{aspect_ratio:Le}:void 0}},{mode:"queue"}),V=I.taskId||((A=I.data)==null?void 0:A.taskId);if(!I.success||!V)throw new Error(I.error||"创建视频任务失败");return V},[e.analysis,e.id,e.productInfo,oa,Y,M,me.provider,H,U,Le]),ms=n.useCallback(()=>{var s;S.current=!0,de(t=>t.running?{...t,stopping:!0}:t),G.current&&ye.cancelTask(G.current),(s=q.current)==null||s.abort()},[]);n.useEffect(()=>()=>{var s;S.current=!0,(s=q.current)==null||s.abort()},[]);const ps=n.useCallback(async()=>{var t,c,u,f,p;if(B.running)return;ze.trackUIInteraction({area:"popular_video_tool",action:"batch_video_generation_started",control:"generate_all_videos",source:"video_analyzer_generate_page",metadata:{shotCount:g.current.length,insertToCanvasRequested:be,hasBoard:!!w}});let s=be;s&&!w&&(Ee.warning("画布未就绪,本次将只生成不插入画布"),s=!1),await Ma(),S.current=!1,q.current=new AbortController,G.current=null,de({running:!0,stopping:!1,currentIndex:-1,retryCount:0});try{let E=z.current.characters||z.current.analysis.characters||[];const _=E.filter(y=>!y.referenceImageUrl);if(_.length>0&&!S.current){for(const y of _){if(S.current)break;const A=`va_${e.id}_char${y.id}_ref`,te=await ja.executeTool({name:"generate_image",arguments:{prompt:y.description,count:1,size:"1:1",batchId:A,...D?{model:D,modelRef:P}:{}}},{mode:"queue"}),ne=te.taskId||((t=te.data)==null?void 0:t.taskId);if(ne){const ke=await ka(ne,(c=q.current)==null?void 0:c.signal);if(ke.success){const ie=ke.task||ye.getTask(ne),W=(u=ie==null?void 0:ie.result)==null?void 0:u.url;if(W){const ae=(z.current.characters||z.current.analysis.characters||[]).map(ce=>ce.id===y.id?{...ce,referenceImageUrl:W}:ce);await J({characters:ae})}}}}E=z.current.characters||z.current.analysis.characters||[]}let I=g.current,V;for(let y=0;y<I.length&&!S.current;y++){I=g.current;const A=I[y];if(!A||!ha(A,e.analysis,e.productInfo))continue;if(de(fe=>({...fe,currentIndex:y,retryCount:0})),A.generated_video_url){try{V=await sa(A.generated_video_url,A.id,"last","last")||void 0}catch{V=void 0}s&&await je(A.generated_video_url),I=await ga(I,y,A.generated_video_url);continue}if(E=z.current.characters||z.current.analysis.characters||[],((A.character_ids||[]).length>0||V!==void 0)&&!A.generated_first_frame_url&&!S.current){const fe=await Oa(A,V,E);fe&&(I=I.map((ae,ce)=>ce===y?{...ae,generated_first_frame_url:fe}:ae),await se(I))}if(S.current)break;let ie=0,W=null;for(;!S.current&&(W||(W=await Ha(I[y]||A,y,I)),!!W);){G.current=W,de({running:!0,stopping:!1,currentIndex:y,retryCount:ie});const fe=await ka(W,(f=q.current)==null?void 0:f.signal);if(S.current)break;const ae=fe.task||ye.getTask(W),ce=(p=ae==null?void 0:ae.result)==null?void 0:p.url;if(fe.success&&ae&&ce){I=await Fa(I,y,ce),s&&await je(ce);try{V=await sa(ce,A.id,"last","last")||void 0}catch{V=void 0}I=await ga(I,y,ce);break}if(ie+=1,de({running:!0,stopping:!1,currentIndex:y,retryCount:ie}),(ae==null?void 0:ae.status)===Ne.FAILED){ye.retryTask(W);continue}W=null}G.current=null}}finally{G.current=null,q.current=null,de({running:!1,stopping:!1,currentIndex:-1,retryCount:0})}},[B.running,Ha,Ma,Oa,se,J,ga,e.id,e.analysis,e.productInfo,D,P,je,be,Fa,w]),fs=n.useCallback(async()=>{const s=Nn(z.current,g.current);await se(s.shots),await J({characters:s.characters})},[se,J]),Je=n.useMemo(()=>{const[s,t]=Le.split(":").map(Number);return!s||!t?{}:{width:Math.round(54*s/t),height:54}},[Le]);return a.jsxDEV("div",{className:"va-page",children:[a.jsxDEV("div",{className:"va-batch-config",children:[a.jsxDEV("div",{className:"va-batch-config-title",children:"批量生成配置"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1210,columnNumber:9},void 0),a.jsxDEV(Js,{images:F,onImagesChange:Q,multiple:!0,label:"参考图 (可选)"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1211,columnNumber:9},void 0),qe.length>0&&a.jsxDEV("div",{className:"va-characters",children:[a.jsxDEV("div",{className:"va-characters-title",children:"角色"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1220,columnNumber:13},void 0),qe.map(s=>a.jsxDEV("div",{className:"va-character-item",children:[a.jsxDEV("div",{className:"va-character-info",children:[a.jsxDEV("span",{className:"va-character-name",children:s.name},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1224,columnNumber:19},void 0),a.jsxDEV("span",{className:"va-character-desc",children:s.description},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1225,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1223,columnNumber:17},void 0),a.jsxDEV("div",{className:"va-character-ref",children:[s.referenceImageUrl?a.jsxDEV("div",{className:"va-character-ref-thumb",children:[a.jsxDEV("img",{src:s.referenceImageUrl,alt:s.name,referrerPolicy:"no-referrer"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1230,columnNumber:23},void 0),a.jsxDEV("button",{className:"va-shot-frame-delete",onClick:()=>void r(s.id,void 0),children:"×"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1235,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1229,columnNumber:21},void 0):a.jsxDEV("span",{className:"va-character-ref-empty",children:"未设置"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1241,columnNumber:21},void 0),a.jsxDEV("button",{onClick:()=>b(s),children:"生成"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1243,columnNumber:19},void 0),a.jsxDEV("button",{onClick:()=>L(s.id),children:"素材库"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1244,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1227,columnNumber:17},void 0)]},s.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1222,columnNumber:15},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1219,columnNumber:11},void 0),a.jsxDEV("div",{className:"va-product-form",children:[a.jsxDEV("div",{className:"va-model-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"图片模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1252,columnNumber:13},void 0),a.jsxDEV(Be,{variant:"form",selectedModel:D,selectedSelectionKey:Ke(D,P),onSelect:o,models:K,placement:"down",placeholder:"选择图片模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1253,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1251,columnNumber:11},void 0),a.jsxDEV("div",{className:"va-model-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"视频模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1264,columnNumber:13},void 0),a.jsxDEV(Be,{variant:"form",selectedModel:M,selectedSelectionKey:Ke(M,H),onSelect:x,models:O,placement:"down",placeholder:"选择视频模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1265,columnNumber:13},void 0),a.jsxDEV("div",{className:"va-segment-duration-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"单段"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1275,columnNumber:15},void 0),a.jsxDEV("select",{className:"va-form-select",value:String(Y),onChange:s=>h(parseInt(s.target.value,10)),disabled:Ue.length<=1,children:Ue.map(s=>a.jsxDEV("option",{value:s.value,children:s.label},s.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1283,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1276,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1274,columnNumber:13},void 0),a.jsxDEV("div",{className:"va-segment-duration-select",children:[a.jsxDEV("label",{className:"va-model-label",children:"尺寸"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1288,columnNumber:15},void 0),a.jsxDEV("select",{className:"va-form-select",value:U,onChange:s=>ee(s.target.value),disabled:re.length<=1,children:re.map(s=>a.jsxDEV("option",{value:s.value,children:s.label},s.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1296,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1289,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1287,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1263,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1250,columnNumber:9},void 0),B.running&&a.jsxDEV("div",{className:"va-batch-config-title",children:["正在串行生成第 ",Math.max(B.currentIndex+1,1),"/",l.length," 段",B.retryCount>0?`,已重试 ${B.retryCount} 次`:""]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1303,columnNumber:11},void 0),a.jsxDEV("div",{className:"va-page-actions",children:[j&&a.jsxDEV("button",{onClick:j,children:"重新分析"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1309,columnNumber:25},void 0),a.jsxDEV("button",{onClick:fs,children:"重置生成"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1310,columnNumber:11},void 0),a.jsxDEV("label",{className:"va-inline-checkbox",children:[a.jsxDEV("input",{type:"checkbox",checked:be,onChange:s=>De(s.target.checked)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1312,columnNumber:13},void 0),"生成后插入画布"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1311,columnNumber:11},void 0),a.jsxDEV("button",{onClick:ps,disabled:B.running,children:"全部→生成视频"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1319,columnNumber:11},void 0),B.running&&a.jsxDEV("button",{onClick:ms,children:B.stopping?"停止中…":"停止全部生成"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1321,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1308,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1209,columnNumber:7},void 0),a.jsxDEV("div",{className:"va-shots",children:l.map((s,t)=>a.jsxDEV(Ca,{shot:s,index:t,actions:a.jsxDEV(a.Fragment,{children:[s.generated_first_frame_url?a.jsxDEV("div",{className:"va-shot-frame-thumb",style:Je,onMouseEnter:c=>Ye(s.generated_first_frame_url,"image",c),onMouseLeave:We,children:[a.jsxDEV("img",{src:s.generated_first_frame_url,alt:"首帧",referrerPolicy:"no-referrer",onClick:()=>ma(s)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1345,columnNumber:21},void 0),a.jsxDEV("button",{className:"va-shot-frame-delete",onClick:()=>fa(s.id,"first"),children:"×"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1351,columnNumber:19},void 0),a.jsxDEV("button",{className:"va-shot-frame-regen",onClick:()=>ma(s),children:"↻"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1352,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1339,columnNumber:19},void 0):s.first_frame_prompt||s.description?a.jsxDEV("span",{className:"va-shot-frame-btn-group",children:[a.jsxDEV("button",{onClick:()=>ma(s),children:"生成首帧"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1356,columnNumber:21},void 0),a.jsxDEV("button",{className:"va-shot-frame-library-btn",onClick:()=>ua(s.id,"first"),children:a.jsxDEV(Fe,{content:"从素材库选择",showArrow:!1,children:a.jsxDEV("span",{children:a.jsxDEV(Ua,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1363,columnNumber:27},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1362,columnNumber:25},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1361,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1357,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1355,columnNumber:19},void 0):null,(()=>{const c=s.generated_last_frame_url||Oe(s,t),u=!s.generated_last_frame_url&&c;return s.generated_last_frame_url?a.jsxDEV("div",{className:"va-shot-frame-thumb",style:Je,onMouseEnter:f=>Ye(s.generated_last_frame_url,"image",f),onMouseLeave:We,children:[a.jsxDEV("img",{src:s.generated_last_frame_url,alt:"尾帧",referrerPolicy:"no-referrer",onClick:()=>Xe(s,t)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1381,columnNumber:25},void 0),a.jsxDEV("button",{className:"va-shot-frame-delete",onClick:()=>fa(s.id,"last"),children:"×"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1387,columnNumber:25},void 0),a.jsxDEV("button",{className:"va-shot-frame-regen",onClick:()=>Xe(s,t),children:"↻"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1388,columnNumber:25},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1375,columnNumber:23},void 0):u?a.jsxDEV("div",{className:"va-shot-frame-thumb va-shot-frame-thumb--borrowed",style:Je,onMouseEnter:f=>Ye(c,"image",f),onMouseLeave:We,children:[a.jsxDEV("img",{src:c,alt:"尾帧(下一镜头首帧)",referrerPolicy:"no-referrer",onClick:()=>Xe(s,t)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1400,columnNumber:25},void 0),a.jsxDEV("span",{className:"va-shot-frame-label",children:"下一镜头首帧"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1406,columnNumber:25},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1394,columnNumber:23},void 0):s.last_frame_prompt||s.description?a.jsxDEV("span",{className:"va-shot-frame-btn-group",children:[a.jsxDEV("button",{onClick:()=>Xe(s,t),children:"生成尾帧"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1413,columnNumber:25},void 0),a.jsxDEV("button",{className:"va-shot-frame-library-btn",onClick:()=>ua(s.id,"last"),children:a.jsxDEV(Fe,{content:"从素材库选择",showArrow:!1,children:a.jsxDEV("span",{children:a.jsxDEV(Ua,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1420,columnNumber:31},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1419,columnNumber:29},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1418,columnNumber:27},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1414,columnNumber:25},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1412,columnNumber:23},void 0):null})(),s.generated_video_url?a.jsxDEV("div",{className:"va-shot-frame-thumb",style:Je,onMouseEnter:c=>Ye(s.generated_video_url,"video",c),onMouseLeave:We,children:[a.jsxDEV(rs,{src:s.generated_video_url,alt:"生成视频缩略图",className:"va-shot-frame-media",thumbnailSize:"small",onClick:()=>pa(s,t),videoProps:{muted:!0,preload:"metadata"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1437,columnNumber:21},void 0),a.jsxDEV("button",{className:"va-shot-frame-delete",onClick:()=>fa(s.id,"video"),children:"×"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1448,columnNumber:21},void 0),a.jsxDEV("button",{className:"va-shot-frame-regen",onClick:()=>pa(s,t),children:"↻"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1449,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1431,columnNumber:19},void 0):s.description||s.narration||s.dialogue||s.camera_movement||s.first_frame_prompt||s.last_frame_prompt?a.jsxDEV("span",{className:"va-shot-frame-btn-group",children:[a.jsxDEV("button",{onClick:()=>pa(s,t),children:"生成视频"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1453,columnNumber:21},void 0),a.jsxDEV("button",{className:"va-shot-frame-library-btn",onClick:()=>ua(s.id,"video"),children:a.jsxDEV(Fe,{content:"从素材库插入视频",showArrow:!1,children:a.jsxDEV("span",{children:a.jsxDEV(Ua,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1460,columnNumber:27},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1459,columnNumber:25},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1458,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1454,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1452,columnNumber:19},void 0):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1336,columnNumber:15},void 0)},s.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1331,columnNumber:11},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1329,columnNumber:7},void 0),a.jsxDEV("div",{className:"va-page-actions mv-generate-footer-actions",children:[a.jsxDEV("button",{onClick:()=>void ue(),disabled:l.length===0||!w,children:"脚本插入画布"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1473,columnNumber:9},void 0),a.jsxDEV("button",{onClick:()=>void ls(),disabled:we||l.length===0,children:we?`素材下载 ${ta}%`:"素材下载 ZIP"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1476,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1472,columnNumber:7},void 0),a.jsxDEV("div",{className:"mv-generate-footer-hint",children:"若有素材未打包成功,解压后在 ZIP 根目录运行 `sh 00.补全下载.sh` 即可按 manifest 补全下载。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1480,columnNumber:7},void 0),a.jsxDEV(Ya,{isOpen:!!xe,onClose:()=>da(null),mode:Wa.SELECT,filterType:(xe==null?void 0:xe.assetType)==="video"?wa.VIDEO:wa.IMAGE,onSelect:ds,selectButtonText:(xe==null?void 0:xe.assetType)==="video"?"使用此视频":"使用此图片"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1485,columnNumber:7},void 0),a.jsxDEV(Ya,{isOpen:!!N,onClose:()=>L(null),mode:Wa.SELECT,filterType:wa.IMAGE,onSelect:s=>{N&&r(N,s.url),L(null)},selectButtonText:"使用此图片"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1494,columnNumber:7},void 0),Me&&As.createPortal(a.jsxDEV("div",{className:"mv-hover-preview",style:{left:`${Me.x}px`,top:`${Me.y}px`},onMouseEnter:us,onMouseLeave:cs,children:Me.type==="image"?a.jsxDEV("img",{src:Me.url,alt:"Preview",referrerPolicy:"no-referrer"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1516,columnNumber:13},void 0):a.jsxDEV("video",{src:Me.url,controls:!0,muted:!0,preload:"metadata"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1518,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1509,columnNumber:9},void 0),document.body)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/GeneratePage.tsx",lineNumber:1207,columnNumber:5},void 0)};function os(e){var i;return e.result?(i=e.result.urls)!=null&&i.length?e.result.urls.filter(Boolean):e.result.url?[e.result.url]:[]:[]}function xn(e){var i,d;return e.result?e.type===X.VIDEO?((i=e.result.thumbnailUrls)==null?void 0:i[0])||e.result.thumbnailUrl||null:((d=e.result.thumbnailUrls)==null?void 0:d[0])||e.result.url||null:null}function hn(e){switch(e){case Ne.COMPLETED:return"已完成";case Ne.PROCESSING:return"进行中";case Ne.PENDING:return"等待中";case Ne.FAILED:return"失败";default:return""}}function jn(e){switch(e){case Ne.COMPLETED:return"completed";case Ne.PROCESSING:return"processing";case Ne.PENDING:return"pending";case Ne.FAILED:return"failed";default:return"pending"}}function wn(e){const i=new Date(e);return`${i.getMonth()+1}/${i.getDate()} ${String(i.getHours()).padStart(2,"0")}:${String(i.getMinutes()).padStart(2,"0")}`}function kn(e){const i=String(e.params.prompt||"");return i.length>40?`${i.slice(0,40)}…`:i}const zn=({record:e,related:i,isExpanded:d,onSelect:j,onToggleStar:l,onDelete:v,onToggleExpand:m,onInsertTask:k,onPreviewOpen:w,onSelectScript:z})=>{const g=!!(i&&i.rewrite.length+i.image.length+i.video.length>0),S=i?[...i.image,...i.video]:[];return a.jsxDEV("div",{className:"va-history-item",onClick:()=>j(e),children:[a.jsxDEV("div",{className:"va-history-header",children:[a.jsxDEV("span",{className:"va-history-source",children:[e.source==="youtube"?"🔗":"📁"," ",e.sourceLabel]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:112,columnNumber:9},void 0),a.jsxDEV("button",{className:`va-star-btn ${e.starred?"starred":""}`,onClick:q=>l(q,e),children:e.starred?"★":"☆"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:115,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:111,columnNumber:7},void 0),a.jsxDEV("div",{className:"va-history-meta",children:[g&&a.jsxDEV("button",{className:`va-history-expand-btn ${d?"expanded":""}`,onClick:q=>m(q,e.id),children:[a.jsxDEV(Ms,{size:12},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:128,columnNumber:13},void 0),a.jsxDEV("span",{children:d?"收起":"关联任务"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:129,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:124,columnNumber:11},void 0),a.jsxDEV("span",{children:new Date(e.createdAt).toLocaleString()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:132,columnNumber:9},void 0),a.jsxDEV("span",{children:[e.analysis.shotCount," 镜头"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:133,columnNumber:9},void 0),a.jsxDEV("span",{children:e.model},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:134,columnNumber:9},void 0),a.jsxDEV("button",{className:"va-history-delete",onClick:q=>v(q,e.id),children:"删除"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:135,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:122,columnNumber:7},void 0),e.analysis.video_style&&a.jsxDEV("div",{className:"va-history-style",children:e.analysis.video_style},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:140,columnNumber:9},void 0),d&&i&&a.jsxDEV(En,{related:i,record:e,previewTasks:S,onInsertTask:k,onPreviewOpen:w,onSelectScript:z},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:143,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:110,columnNumber:5},void 0)},En=({related:e,record:i,previewTasks:d,onInsertTask:j,onPreviewOpen:l,onSelectScript:v})=>a.jsxDEV("div",{className:"va-history-related",onClick:m=>m.stopPropagation(),children:[e.rewrite.length>0&&a.jsxDEV("div",{children:[a.jsxDEV("div",{className:"va-history-related-group-title",children:["脚本改编 (",e.rewrite.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:167,columnNumber:9},void 0),e.rewrite.map(m=>a.jsxDEV(Sa,{task:m,onClick:k=>v==null?void 0:v(k,i,m)},m.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:169,columnNumber:11},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:166,columnNumber:7},void 0),e.image.length>0&&a.jsxDEV("div",{children:[a.jsxDEV("div",{className:"va-history-related-group-title",children:["图片生成 (",e.image.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:179,columnNumber:9},void 0),e.image.map(m=>a.jsxDEV(Sa,{task:m,previewTasks:d,onInsertTask:j,onPreviewOpen:l},m.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:181,columnNumber:11},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:178,columnNumber:7},void 0),e.video.length>0&&a.jsxDEV("div",{children:[a.jsxDEV("div",{className:"va-history-related-group-title",children:["视频生成 (",e.video.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:193,columnNumber:9},void 0),e.video.map(m=>a.jsxDEV(Sa,{task:m,previewTasks:d,onInsertTask:j,onPreviewOpen:l},m.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:195,columnNumber:11},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:192,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:164,columnNumber:3},void 0),Sa=({task:e,previewTasks:i,onClick:d,onInsertTask:j,onPreviewOpen:l})=>{const v=e.status===Ne.COMPLETED,m=os(e),k=v&&m.length>0,w=(e.type===X.IMAGE||e.type===X.VIDEO)&&k&&!!(i!=null&&i.length),z=xn(e),g=m[0],S=n.useCallback(q=>{if(w&&i){l==null||l(q,e,i);return}d==null||d(q)},[w,d,l,i,e]);return a.jsxDEV(Fe,{content:hn(e.status),showArrow:!1,children:a.jsxDEV("div",{className:"va-history-related-task",onClick:S,children:[a.jsxDEV("span",{className:`va-history-related-task-status ${jn(e.status)}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:239,columnNumber:9},void 0),a.jsxDEV("span",{className:"va-history-related-task-prompt",children:kn(e)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:242,columnNumber:9},void 0),a.jsxDEV("span",{className:"va-history-related-task-time",children:wn(e.createdAt)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:245,columnNumber:9},void 0),k&&g&&e.type!==X.CHAT&&a.jsxDEV("span",{className:"va-history-related-task-thumb",children:[e.type===X.VIDEO?a.jsxDEV(rs,{src:g,poster:z||void 0,alt:"",className:"va-history-related-task-thumb-media",thumbnailSize:"small",videoProps:{preload:"metadata",muted:!0,playsInline:!0,"aria-hidden":!0}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:251,columnNumber:15},void 0):a.jsxDEV("img",{src:z||g,alt:"",referrerPolicy:"no-referrer"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:265,columnNumber:15},void 0),e.type===X.VIDEO&&a.jsxDEV("span",{className:"va-history-related-task-thumb-badge","aria-hidden":"true",children:"▶"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:272,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:249,columnNumber:11},void 0),k&&j&&a.jsxDEV(Fe,{content:"插入画板",showArrow:!1,children:a.jsxDEV("button",{className:"va-history-related-insert-btn",onClick:q=>j(q,e),"aria-label":"插入画板",children:a.jsxDEV(Rs,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:288,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:283,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:282,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:238,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/HistoryRecordCard.tsx",lineNumber:237,columnNumber:5},void 0)};function _n(e,i,d){var l;const j=((l=e.result)==null?void 0:l.title)||e.params.title||e.params.prompt||(e.type===X.VIDEO?"视频预览":"图片预览");return d>1?`${j} (${i+1}/${d})`:j}function Vn(e){var j,l,v;const i=[],d=new Map;for(const m of e){if(m.type!==X.IMAGE&&m.type!==X.VIDEO)continue;const k=os(m);if(k.length===0)continue;const w=i.length,z=m.type===X.VIDEO&&(((l=(j=m.result)==null?void 0:j.thumbnailUrls)==null?void 0:l[0])||((v=m.result)==null?void 0:v.thumbnailUrl))||void 0;k.forEach((g,S)=>{i.push({id:k.length>1?`${m.id}-${S}`:m.id,url:g,type:m.type===X.VIDEO?"video":"image",title:_n(m,S,k.length),prompt:m.params.prompt,posterUrl:m.type===X.VIDEO?z:void 0})}),d.set(m.id,w)}return{items:i,taskIdToIndex:d}}const Dn=({records:e,onSelect:i,onRecordsChange:d,showStarredOnly:j=!1,onInsertTask:l,onSelectScript:v})=>{const m=j?e.filter(C=>C.starred):e,[k,w]=n.useState(null),[z,g]=n.useState(!1),[S,q]=n.useState([]),[G,F]=n.useState(0),[Q,N]=n.useState(null),{tasks:L}=is(),K=n.useMemo(()=>{const C=new Map,U=new Set(e.map(Y=>Y.id)),$=()=>({rewrite:[],image:[],video:[]});for(const Y of L){const Z=Y.params;if(Y.type===X.CHAT&&Z.videoAnalyzerAction==="rewrite"&&typeof Z.videoAnalyzerRecordId=="string"&&U.has(Z.videoAnalyzerRecordId)){const B=Z.videoAnalyzerRecordId;Za(C,B,"rewrite",Y,$);continue}if((Y.type===X.IMAGE||Y.type===X.VIDEO)&&typeof Z.batchId=="string"&&Z.batchId.startsWith("va_")){const B=Ts(Z.batchId,"va_",U);if(B){const de=Y.type===X.IMAGE?"image":"video";Za(C,B,de,Y,$)}}}return Gs(C)},[L,e]),O=n.useCallback(async(C,U)=>{C.stopPropagation();const $=await oe(U.id,{starred:!U.starred});d($)},[d]),D=n.useCallback((C,U)=>{C.stopPropagation(),N(U)},[]),R=n.useCallback(async()=>{if(!Q)return;const C=await Ls(Q);d(C),N(null)},[d,Q]),P=n.useCallback((C,U)=>{C.stopPropagation(),w($=>$===U?null:U)},[]),le=n.useCallback((C,U)=>{C.stopPropagation(),l==null||l(U)},[l]),M=n.useCallback((C,U,$)=>{C.stopPropagation(),v==null||v(U,$)},[v]),T=n.useCallback((C,U,$)=>{C.stopPropagation();const{items:Y,taskIdToIndex:Z}=Vn($),B=Z.get(U.id);!Y.length||B===void 0||(q(Y),F(B),g(!0))},[]),H=n.useCallback(()=>{g(!1)},[]);return m.length===0?a.jsxDEV("div",{className:"va-page va-empty",children:a.jsxDEV("span",{children:j?"暂无收藏":"暂无分析记录"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/HistoryPage.tsx",lineNumber:196,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/HistoryPage.tsx",lineNumber:195,columnNumber:7},void 0):a.jsxDEV(a.Fragment,{children:[a.jsxDEV("div",{className:"va-page",children:a.jsxDEV("div",{className:"va-history-list",children:m.map(C=>{const U=K.get(C.id),$=k===C.id;return a.jsxDEV(zn,{record:C,related:U,isExpanded:$,onSelect:i,onToggleStar:O,onDelete:D,onToggleExpand:P,onInsertTask:le,onPreviewOpen:T,onSelectScript:M},C.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/HistoryPage.tsx",lineNumber:210,columnNumber:15},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/HistoryPage.tsx",lineNumber:204,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/HistoryPage.tsx",lineNumber:203,columnNumber:7},void 0),a.jsxDEV(Os,{visible:z,items:S,initialIndex:G,onClose:H,showThumbnails:S.length>1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/HistoryPage.tsx",lineNumber:228,columnNumber:7},void 0),a.jsxDEV(Fs,{open:Q!==null,title:"确认删除",description:"确定要删除这条历史记录吗?此操作不可撤销。",confirmText:"删除",cancelText:"取消",danger:!0,onOpenChange:C=>{C||N(null)},onConfirm:R},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/HistoryPage.tsx",lineNumber:236,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/pages/HistoryPage.tsx",lineNumber:202,columnNumber:5},void 0)},Tn=()=>{const[e,i]=n.useState("analyze"),[d,j]=n.useState(null),[l,v]=n.useState([]),[m,k]=n.useState(!1),{board:w}=qa();n.useEffect(()=>{Pa().then(v)},[]),n.useEffect(()=>{let N=!1;const L=new Set,K=async D=>{if(!(!dn(D)||L.has(D.id))){L.add(D.id);try{const R=await Aa(D);if(!R||N)return;v(R.records),j(P=>(P==null?void 0:P.id)===R.record.id?R.record:P)}catch(R){console.error("[VideoAnalyzer] Failed to sync task result:",R)}finally{L.delete(D.id)}}};ye.getAllTasks().forEach(D=>{K(D)});const O=ye.observeTaskUpdates().subscribe(D=>{D.task.status==="completed"&&K(D.task)});return()=>{N=!0,O.unsubscribe()}},[]);const z=n.useCallback(N=>{j(N)},[]),g=n.useCallback(N=>{j(N),i("analyze")},[]),S=n.useCallback(N=>{j(N)},[]),q=n.useCallback(()=>{j(null),i("analyze")},[]),G=n.useCallback(N=>{N==="history"&&k(!1),i(N)},[]),F=n.useCallback(async N=>{var L,K,O,D;if(!((L=N.result)!=null&&L.url)&&!((O=(K=N.result)==null?void 0:K.urls)!=null&&O.length)||!w){Ee.warning("无法插入:白板未就绪");return}try{if(N.type===X.IMAGE){const R=(D=N.result.urls)!=null&&D.length?N.result.urls:[N.result.url];for(const P of R)await Hs(w,P);Ee.success(R.length>1?"多图已插入到白板":"图片已插入到白板")}else N.type===X.VIDEO&&(await $s(w,N.result.url),Ee.success("视频已插入到白板"))}catch(R){console.error("[VideoAnalyzer] Failed to insert to board:",R),Ee.error(`插入失败: ${R instanceof Error?R.message:"未知错误"}`)}},[w]),Q=n.useCallback(async(N,L)=>{const K=String(L.params.videoAnalyzerPrompt||L.params.prompt||""),O=N.scriptVersions||[],D=O.find(P=>P.prompt===K)||O.find(P=>{var le;return K&&((le=P.prompt)==null?void 0:le.includes(K))});let R=N;if(D&&D.id!==N.activeVersionId){const P=ns(N,D.id);if(P){const le=await oe(N.id,P);R=le.find(M=>M.id===N.id)||{...N,...P},v(le)}}j(R),i("script")},[]);return a.jsxDEV("div",{className:"video-analyzer",children:[a.jsxDEV("div",{className:"va-nav",children:e==="history"?a.jsxDEV(a.Fragment,{children:[a.jsxDEV("button",{className:"va-nav-back",onClick:()=>i("analyze"),children:"←"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:158,columnNumber:13},void 0),a.jsxDEV("span",{className:"va-nav-title",children:m?"收藏":"历史记录"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:159,columnNumber:13},void 0),a.jsxDEV("button",{className:`va-nav-btn ${m?"active":""}`,onClick:()=>k(N=>!N),children:m?"★ 收藏":"☆ 全部"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:160,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:157,columnNumber:11},void 0):a.jsxDEV(a.Fragment,{children:[a.jsxDEV(en,{current:e,onNavigate:G,hasRecord:!!d},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:169,columnNumber:13},void 0),a.jsxDEV("div",{className:"va-nav-actions",children:[a.jsxDEV("button",{className:"va-nav-btn",onClick:()=>{k(!1),i("history")},children:[a.jsxDEV("span",{role:"img","aria-label":"history",children:"📋"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:172,columnNumber:17},void 0),l.length>0&&a.jsxDEV("span",{className:"va-nav-count",children:l.length},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:173,columnNumber:40},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:171,columnNumber:15},void 0),a.jsxDEV("button",{className:"va-nav-btn",onClick:()=>{k(!0),i("history")},children:[a.jsxDEV("span",{role:"img","aria-label":"starred",children:"⭐"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:176,columnNumber:17},void 0),l.filter(N=>N.starred).length>0&&a.jsxDEV("span",{className:"va-nav-count",children:l.filter(N=>N.starred).length},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:177,columnNumber:63},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:175,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:170,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:168,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:155,columnNumber:7},void 0),e==="analyze"&&a.jsxDEV(mn,{existingRecord:d,onComplete:z,onRecordsChange:v,onCreateNew:q,onNext:d?()=>i("script"):void 0},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:186,columnNumber:9},void 0),e==="script"&&d&&a.jsxDEV(vn,{record:d,onRecordUpdate:S,onRecordsChange:v,onNext:()=>i("generate")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:195,columnNumber:9},void 0),e==="generate"&&d&&a.jsxDEV(bn,{record:d,onRecordUpdate:S,onRecordsChange:v,onRestart:q},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:203,columnNumber:9},void 0),e==="history"&&a.jsxDEV(Dn,{records:l,onSelect:g,onRecordsChange:v,showStarredOnly:m,onInsertTask:w?F:void 0,onSelectScript:Q},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:211,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/VideoAnalyzer.tsx",lineNumber:153,columnNumber:5},void 0)};export{Tn as default};
|