aitu-app 0.5.21 → 0.5.22
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/{ChatMessagesArea-CAnmzKeA.js → ChatMessagesArea-DtzEt9y0.js} +3 -3
- package/assets/{Serializer-DPCLjt6U.js → Serializer-rTHzSF0Y.js} +1 -1
- package/assets/{ToolboxDrawer-D-ZDs49h.js → ToolboxDrawer-D0dL1xDI.js} +1 -1
- package/assets/{_baseUniq-CHS3E5If.js → _baseUniq-CJcN2wXt.js} +1 -1
- package/assets/{advancedFormat-Chr195ZY.js → advancedFormat-D3noAem-.js} +1 -1
- package/assets/{ai-analyze-D3V-tpIV.js → ai-analyze-DSNdzApa.js} +1 -1
- package/assets/{arc-lNLKXIKC.js → arc-DCMdqNJq.js} +1 -1
- package/assets/{architectureDiagram-VXUJARFQ-CCzBT9XK.js → architectureDiagram-VXUJARFQ-CNLyKX9W.js} +1 -1
- package/assets/{batch-image-generation-CgR-a8Ii.js → batch-image-generation-BEr8WnyA.js} +1 -1
- package/assets/{blockDiagram-38ab4fdb-CbcE_DRD.js → blockDiagram-38ab4fdb-BfuatLv6.js} +1 -1
- package/assets/{blockDiagram-VD42YOAC-CgcfCyW1.js → blockDiagram-VD42YOAC-Lc7hzFMW.js} +1 -1
- package/assets/{c4Diagram-3d4e48cf-DqzYo_xg.js → c4Diagram-3d4e48cf-CLYmRF8m.js} +1 -1
- package/assets/{c4Diagram-YG6GDRKO-BTZAWhX1.js → c4Diagram-YG6GDRKO-DFgYCXSR.js} +1 -1
- package/assets/channel-x6LKWmtX.js +1 -0
- package/assets/{chunk-4BX2VUAB-DH-I_3Sl.js → chunk-4BX2VUAB-ZP_vY4vZ.js} +1 -1
- package/assets/{chunk-55IACEB6-BJKBSn0v.js → chunk-55IACEB6-B5HoA7RC.js} +1 -1
- package/assets/{chunk-B4BG7PRW-BIhB4ChZ.js → chunk-B4BG7PRW-DYumBzJl.js} +1 -1
- package/assets/{chunk-DI55MBZ5-NlFLhYIc.js → chunk-DI55MBZ5-8cmxakR4.js} +1 -1
- package/assets/{chunk-FMBD7UC4-QVfOPBEJ.js → chunk-FMBD7UC4-CAoW1kf1.js} +1 -1
- package/assets/{chunk-QN33PNHL-C_DotWZ6.js → chunk-QN33PNHL-DT5Dd0sR.js} +1 -1
- package/assets/{chunk-QZHKN3VN-Ei6ogyMg.js → chunk-QZHKN3VN-CZH2zyPP.js} +1 -1
- package/assets/{chunk-TZMSLE5B-CKPTgIMs.js → chunk-TZMSLE5B-BX3lW2Ds.js} +1 -1
- package/assets/classDiagram-2ON5EDUG-xDDBDhvH.js +1 -0
- package/assets/{classDiagram-70f12bd4-DeAD0Lw4.js → classDiagram-70f12bd4-H_Ao4SWS.js} +1 -1
- package/assets/classDiagram-v2-WZHVMYZB-xDDBDhvH.js +1 -0
- package/assets/{classDiagram-v2-f2320105-DR43MMrr.js → classDiagram-v2-f2320105-wpOcN7Cp.js} +1 -1
- package/assets/clone-BliL8GTL.js +1 -0
- package/assets/{cose-bilkent-S5V4N54A-CE31mcuy.js → cose-bilkent-S5V4N54A-BpodmnGt.js} +1 -1
- package/assets/{createText-2e5e7dd3-DuyGuD-n.js → createText-2e5e7dd3-DevXK6aG.js} +1 -1
- package/assets/{cytoscape-cose-bilkent-DTqUuT3l.js → cytoscape-cose-bilkent-CfL2kyJn.js} +1 -1
- package/assets/{dagre-6UL2VRFP-CuJmVGl3.js → dagre-6UL2VRFP-DxcT4smm.js} +1 -1
- package/assets/{diagram-PSM6KHXK-D5Y5dlL9.js → diagram-PSM6KHXK-15LgvIqL.js} +1 -1
- package/assets/{diagram-QEK2KX5R-DOWAGxHq.js → diagram-QEK2KX5R-Cq44VPiw.js} +1 -1
- package/assets/{diagram-S2PKOQOG-ykMhl6fc.js → diagram-S2PKOQOG-DjR4N2-I.js} +1 -1
- package/assets/{edges-e0da2a9e-BpsZLv9t.js → edges-e0da2a9e-4-cJcCOg.js} +1 -1
- package/assets/{erDiagram-9861fffd-rZLPDBgy.js → erDiagram-9861fffd-CAhGmEfN.js} +1 -1
- package/assets/{erDiagram-Q2GNP2WA-zRo1erex.js → erDiagram-Q2GNP2WA-Bv6twqgU.js} +1 -1
- package/assets/{flowDb-956e92f1-f4MK2XS7.js → flowDb-956e92f1-7HzSxpZE.js} +1 -1
- package/assets/{flowDiagram-66a62f08-_6Eo5sZi.js → flowDiagram-66a62f08-Di0dNdDw.js} +1 -1
- package/assets/{flowDiagram-NV44I4VS-CFCClCRc.js → flowDiagram-NV44I4VS-jjJtsD7c.js} +1 -1
- package/assets/flowDiagram-v2-96b9c2cf-C7Z70T_R.js +1 -0
- package/assets/{flowchart-elk-definition-4a651766-t4QJuK_b.js → flowchart-elk-definition-4a651766-K2hM47DX.js} +1 -1
- package/assets/{ganttDiagram-JELNMOA3-DIX2ad-2.js → ganttDiagram-JELNMOA3-DcSqTXib.js} +1 -1
- package/assets/{ganttDiagram-c361ad54-dX5QjWrh.js → ganttDiagram-c361ad54-CH7Glt3P.js} +1 -1
- package/assets/{gitGraphDiagram-72cf32ee-BBZSqS6J.js → gitGraphDiagram-72cf32ee-BnEB0GU4.js} +1 -1
- package/assets/{gitGraphDiagram-NY62KEGX-C-FRyLSQ.js → gitGraphDiagram-NY62KEGX-O0TpP5xG.js} +1 -1
- package/assets/{graph-BpCqwwyJ.js → graph-BZ_Ixkdn.js} +1 -1
- package/assets/{graph-dwf5l9kJ.js → graph-DHfOf9vz.js} +1 -1
- package/assets/{grid-image-DRAUp_wj.js → grid-image-jIEBt3FV.js} +1 -1
- package/assets/{has-BBSmRLAB.js → has-C78hNt79.js} +1 -1
- package/assets/{hasIn-CGUnHN5L.js → hasIn-DNHU2Dgx.js} +1 -1
- package/assets/{index-3862675e-BmuXVGGA.js → index-3862675e-CQkaubhC.js} +1 -1
- package/assets/{index-DNIlXgAo.js → index-BNXtnhmh.js} +1 -1
- package/assets/{index-Ds1UcDjn.js → index-C6f1jS5T.js} +8 -8
- package/assets/{index-CISxTBJ3.js → index-CiiU0LMF.js} +1 -1
- package/assets/{index-DEjUAZUe.js → index-D1NStEds.js} +1 -1
- package/assets/{index-DvbaH1wH.js → index-DGb8pRqW.js} +1 -1
- package/assets/{index-DCs3C-gs.js → index-JhVJEcm-.js} +1 -1
- package/assets/{index-_FyCDKGq.js → index-QG8-KVAs.js} +4 -4
- package/assets/{index-eOV7y-oZ.js → index-sRDAAYLb.js} +1 -1
- package/assets/{infoDiagram-WHAUD3N6-Cw6LtQsv.js → infoDiagram-WHAUD3N6-CZKQnKde.js} +1 -1
- package/assets/{infoDiagram-f8f76790-suYKggbB.js → infoDiagram-f8f76790-Cq8UHTek.js} +1 -1
- package/assets/{inspiration-board-8CO8xK39.js → inspiration-board-CXBpTN2S.js} +1 -1
- package/assets/{isEmpty-BZ44SF3F.js → isEmpty-Bg6e-LN7.js} +1 -1
- package/assets/{journeyDiagram-49397b02-DLzRdow3.js → journeyDiagram-49397b02-u4P4ZPSo.js} +1 -1
- package/assets/{journeyDiagram-XKPGCS4Q-CcD6LNVi.js → journeyDiagram-XKPGCS4Q-DppWgwdD.js} +1 -1
- package/assets/{kanban-definition-3W4ZIXB7-DWA3YqY9.js → kanban-definition-3W4ZIXB7-Cu9Oq__U.js} +1 -1
- package/assets/{layout-D8KZ21ze.js → layout-Oya54E8b.js} +1 -1
- package/assets/{layout-jxFX0Ar3.js → layout-PukuJPWh.js} +1 -1
- package/assets/{line-B3fXWiyE.js → line-CCnY_Zjv.js} +1 -1
- package/assets/{linear-DsVcoO9v.js → linear-FgTbCOcj.js} +1 -1
- package/assets/{mermaid.core-ruaJ9d8x.js → mermaid.core-Bb0rcjVt.js} +4 -4
- package/assets/{min-B6fh4WRE.js → min-BYNXcs16.js} +1 -1
- package/assets/{mindmap-definition-VGOIOE7T-BzeNa7DW.js → mindmap-definition-VGOIOE7T-euTygwOP.js} +1 -1
- package/assets/{mindmap-definition-fc14e90a-C3sElkm0.js → mindmap-definition-fc14e90a-DMA7ROII.js} +1 -1
- package/assets/{photo-wall-splitter-C1GbxYBl.js → photo-wall-splitter-CAWxP47k.js} +1 -1
- package/assets/{pick-DUB8w7iE.js → pick-D_sga9lq.js} +1 -1
- package/assets/{pie-DAYMJpRO.js → pie-BWVaG8mI.js} +1 -1
- package/assets/{pieDiagram-8a3498a8-CZI3pF7g.js → pieDiagram-8a3498a8-JQ1MpLiZ.js} +1 -1
- package/assets/{pieDiagram-ADFJNKIX-BqonG77Q.js → pieDiagram-ADFJNKIX-BOGQkDt6.js} +1 -1
- package/assets/{quadrantDiagram-120e2f19-Q2bVMK-T.js → quadrantDiagram-120e2f19-kJzxW0Br.js} +1 -1
- package/assets/{quadrantDiagram-AYHSOK5B-yJZRIs-Q.js → quadrantDiagram-AYHSOK5B-UxkYiRF3.js} +1 -1
- package/assets/{requirementDiagram-UZGBJVZJ-3kaAkLjO.js → requirementDiagram-UZGBJVZJ-Bk95peTm.js} +1 -1
- package/assets/{requirementDiagram-deff3bca-DHOhXBYo.js → requirementDiagram-deff3bca-DwSHfS3q.js} +1 -1
- package/assets/{sankeyDiagram-04a897e0-3UqYNZg9.js → sankeyDiagram-04a897e0-Dee_8vG5.js} +1 -1
- package/assets/{sankeyDiagram-TZEHDZUN-Ce844Tbc.js → sankeyDiagram-TZEHDZUN-Dn-BrNQI.js} +1 -1
- package/assets/{sequenceDiagram-704730f1-CBXqjnXl.js → sequenceDiagram-704730f1-CK2_u2M2.js} +1 -1
- package/assets/{sequenceDiagram-WL72ISMW-DBN2cRGt.js → sequenceDiagram-WL72ISMW-PtdIXaXk.js} +1 -1
- package/assets/{settings-dialog-aU8BHcuS.js → settings-dialog-C4eZxway.js} +1 -1
- package/assets/{stateDiagram-587899a1-BGKPA37n.js → stateDiagram-587899a1-vSvTWjnf.js} +1 -1
- package/assets/{stateDiagram-FKZM4ZOC-Czg5Opf0.js → stateDiagram-FKZM4ZOC-DGbpdRXP.js} +1 -1
- package/assets/stateDiagram-v2-4FDKWEC3-C-2flGWR.js +1 -0
- package/assets/{stateDiagram-v2-d93cdb3a-DWU3UljE.js → stateDiagram-v2-d93cdb3a-BrPmXu5B.js} +1 -1
- package/assets/{styles-6aaf32cf-BVLDN8CD.js → styles-6aaf32cf-Cf3g-0g3.js} +1 -1
- package/assets/{styles-9a916d00-vSy8MhZp.js → styles-9a916d00--ZEFIk8R.js} +1 -1
- package/assets/{styles-c10674c1-dzTvI8BU.js → styles-c10674c1-DHwZqsJA.js} +1 -1
- package/assets/{svgDrawCommon-08f97a94-dptVwf62.js → svgDrawCommon-08f97a94-n9d3mPea.js} +1 -1
- package/assets/{timeline-definition-85554ec2-jKiT0ZaE.js → timeline-definition-85554ec2-H_sXtfLT.js} +1 -1
- package/assets/{timeline-definition-IT6M3QCI-B2NoE4jH.js → timeline-definition-IT6M3QCI-C-H3Ftyt.js} +1 -1
- package/assets/{treemap-KMMF4GRG-1nrNbz-r.js → treemap-KMMF4GRG-Cu1-wgRV.js} +1 -1
- package/assets/{ttd-dialog-WN-s4x87.js → ttd-dialog-TQYw_Nae.js} +5 -5
- package/assets/{union-B2D_ldts.js → union-DP4CDhaw.js} +1 -1
- package/assets/{upload-Crej215t.js → upload-DdSOuK5h.js} +1 -1
- package/assets/{video-recovery-service-Zb_336FQ.js → video-recovery-service-CZXUWRm1.js} +1 -1
- package/assets/{xychartDiagram-PRI3JC2R-UPkX0dfi.js → xychartDiagram-PRI3JC2R-CpjoxcIY.js} +1 -1
- package/assets/{xychartDiagram-e933f94c-BXYMaBZh.js → xychartDiagram-e933f94c-CTuQj9cZ.js} +1 -1
- package/assets/{zipObject-bwVIVuzi.js → zipObject-BF7eTaCR.js} +1 -1
- package/package.json +1 -1
- package/sw.js +7 -7
- package/version.json +2 -2
- package/assets/channel-Bew-Iahk.js +0 -1
- package/assets/classDiagram-2ON5EDUG-DIttp4Yk.js +0 -1
- package/assets/classDiagram-v2-WZHVMYZB-DIttp4Yk.js +0 -1
- package/assets/clone-Y0952eQY.js +0 -1
- package/assets/flowDiagram-v2-96b9c2cf-Dn2WmcvX.js +0 -1
- package/assets/stateDiagram-v2-4FDKWEC3-4Ev4KuVZ.js +0 -1
package/assets/{timeline-definition-85554ec2-jKiT0ZaE.js → timeline-definition-85554ec2-H_sXtfLT.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{g as gt,l as E,J as ft,N as mt,q as xt}from"./index-
|
|
1
|
+
import{g as gt,l as E,J as ft,N as mt,q as xt}from"./index-QG8-KVAs.js";import{q as _t,r as bt,u as kt,s as q}from"./Serializer-rTHzSF0Y.js";import{d as D}from"./arc-DCMdqNJq.js";import"./index-C6f1jS5T.js";import"./isEmpty-Bg6e-LN7.js";import"./path-CbwjOpE9.js";var K=(function(){var n=function(f,i,r,c){for(r=r||{},c=f.length;c--;r[f[c]]=i);return r},t=[6,8,10,11,12,14,16,17,20,21],e=[1,9],a=[1,10],s=[1,11],h=[1,12],o=[1,13],p=[1,16],y=[1,17],g={trace:function(){},yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:function(i,r,c,d,u,l,$){var x=l.length-1;switch(u){case 1:return l[x-1];case 2:this.$=[];break;case 3:l[x-1].push(l[x]),this.$=l[x-1];break;case 4:case 5:this.$=l[x];break;case 6:case 7:this.$=[];break;case 8:d.getCommonDb().setDiagramTitle(l[x].substr(6)),this.$=l[x].substr(6);break;case 9:this.$=l[x].trim(),d.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=l[x].trim(),d.getCommonDb().setAccDescription(this.$);break;case 12:d.addSection(l[x].substr(8)),this.$=l[x].substr(8);break;case 15:d.addTask(l[x],0,""),this.$=l[x];break;case 16:d.addEvent(l[x].substr(2)),this.$=l[x];break}},table:[{3:1,4:[1,2]},{1:[3]},n(t,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:e,12:a,14:s,16:h,17:o,18:14,19:15,20:p,21:y},n(t,[2,7],{1:[2,1]}),n(t,[2,3]),{9:18,11:e,12:a,14:s,16:h,17:o,18:14,19:15,20:p,21:y},n(t,[2,5]),n(t,[2,6]),n(t,[2,8]),{13:[1,19]},{15:[1,20]},n(t,[2,11]),n(t,[2,12]),n(t,[2,13]),n(t,[2,14]),n(t,[2,15]),n(t,[2,16]),n(t,[2,4]),n(t,[2,9]),n(t,[2,10])],defaultActions:{},parseError:function(i,r){if(r.recoverable)this.trace(i);else{var c=new Error(i);throw c.hash=r,c}},parse:function(i){var r=this,c=[0],d=[],u=[null],l=[],$=this.table,x="",T=0,W=0,C=2,A=1,B=l.slice.call(arguments,1),k=Object.create(this.lexer),w={yy:{}};for(var v in this.yy)Object.prototype.hasOwnProperty.call(this.yy,v)&&(w.yy[v]=this.yy[v]);k.setInput(i,w.yy),w.yy.lexer=k,w.yy.parser=this,typeof k.yylloc>"u"&&(k.yylloc={});var I=k.yylloc;l.push(I);var H=k.options&&k.options.ranges;typeof w.yy.parseError=="function"?this.parseError=w.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function z(){var M;return M=d.pop()||k.lex()||A,typeof M!="number"&&(M instanceof Array&&(d=M,M=d.pop()),M=r.symbols_[M]||M),M}for(var b,L,S,Z,R={},O,N,Y,j;;){if(L=c[c.length-1],this.defaultActions[L]?S=this.defaultActions[L]:((b===null||typeof b>"u")&&(b=z()),S=$[L]&&$[L][b]),typeof S>"u"||!S.length||!S[0]){var J="";j=[];for(O in $[L])this.terminals_[O]&&O>C&&j.push("'"+this.terminals_[O]+"'");k.showPosition?J="Parse error on line "+(T+1)+`:
|
|
2
2
|
`+k.showPosition()+`
|
|
3
3
|
Expecting `+j.join(", ")+", got '"+(this.terminals_[b]||b)+"'":J="Parse error on line "+(T+1)+": Unexpected "+(b==A?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(J,{text:k.match,token:this.terminals_[b]||b,line:k.yylineno,loc:I,expected:j})}if(S[0]instanceof Array&&S.length>1)throw new Error("Parse Error: multiple actions possible at state: "+L+", token: "+b);switch(S[0]){case 1:c.push(b),u.push(k.yytext),l.push(k.yylloc),c.push(S[1]),b=null,W=k.yyleng,x=k.yytext,T=k.yylineno,I=k.yylloc;break;case 2:if(N=this.productions_[S[1]][1],R.$=u[u.length-N],R._$={first_line:l[l.length-(N||1)].first_line,last_line:l[l.length-1].last_line,first_column:l[l.length-(N||1)].first_column,last_column:l[l.length-1].last_column},H&&(R._$.range=[l[l.length-(N||1)].range[0],l[l.length-1].range[1]]),Z=this.performAction.apply(R,[x,W,T,w.yy,S[1],u,l].concat(B)),typeof Z<"u")return Z;N&&(c=c.slice(0,-1*N*2),u=u.slice(0,-1*N),l=l.slice(0,-1*N)),c.push(this.productions_[S[1]][0]),u.push(R.$),l.push(R._$),Y=$[c[c.length-2]][c[c.length-1]],c.push(Y);break;case 3:return!0}}return!0}},_=(function(){var f={EOF:1,parseError:function(r,c){if(this.yy.parser)this.yy.parser.parseError(r,c);else throw new Error(r)},setInput:function(i,r){return this.yy=r||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var r=i.match(/(?:\r\n?|\n).*/g);return r?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},unput:function(i){var r=i.length,c=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-r),this.offset-=r;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var u=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-r},this.options.ranges&&(this.yylloc.range=[u[0],u[0]+this.yyleng-r]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
4
4
|
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(i){this.unput(this.match.slice(i))},pastInput:function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var i=this.pastInput(),r=new Array(i.length+1).join("-");return i+this.upcomingInput()+`
|
package/assets/{timeline-definition-IT6M3QCI-B2NoE4jH.js → timeline-definition-IT6M3QCI-C-H3Ftyt.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as s,c as xt,l as E,S as kt,A as vt,T as _t,y as bt}from"./mermaid.core-
|
|
1
|
+
import{_ as s,c as xt,l as E,S as kt,A as vt,T as _t,y as bt}from"./mermaid.core-Bb0rcjVt.js";import{s as q,q as wt,r as St,u as Et}from"./Serializer-rTHzSF0Y.js";import{d as nt}from"./arc-DCMdqNJq.js";import"./index-C6f1jS5T.js";import"./line-CCnY_Zjv.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";import"./isEmpty-Bg6e-LN7.js";var X=(function(){var n=s(function(f,i,a,h){for(a=a||{},h=f.length;h--;a[f[h]]=i);return a},"o"),t=[6,8,10,11,12,14,16,17,20,21],e=[1,9],l=[1,10],r=[1,11],d=[1,12],c=[1,13],g=[1,16],m=[1,17],p={trace:s(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:s(function(i,a,h,u,y,o,S){var k=o.length-1;switch(y){case 1:return o[k-1];case 2:this.$=[];break;case 3:o[k-1].push(o[k]),this.$=o[k-1];break;case 4:case 5:this.$=o[k];break;case 6:case 7:this.$=[];break;case 8:u.getCommonDb().setDiagramTitle(o[k].substr(6)),this.$=o[k].substr(6);break;case 9:this.$=o[k].trim(),u.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=o[k].trim(),u.getCommonDb().setAccDescription(this.$);break;case 12:u.addSection(o[k].substr(8)),this.$=o[k].substr(8);break;case 15:u.addTask(o[k],0,""),this.$=o[k];break;case 16:u.addEvent(o[k].substr(2)),this.$=o[k];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},n(t,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:e,12:l,14:r,16:d,17:c,18:14,19:15,20:g,21:m},n(t,[2,7],{1:[2,1]}),n(t,[2,3]),{9:18,11:e,12:l,14:r,16:d,17:c,18:14,19:15,20:g,21:m},n(t,[2,5]),n(t,[2,6]),n(t,[2,8]),{13:[1,19]},{15:[1,20]},n(t,[2,11]),n(t,[2,12]),n(t,[2,13]),n(t,[2,14]),n(t,[2,15]),n(t,[2,16]),n(t,[2,4]),n(t,[2,9]),n(t,[2,10])],defaultActions:{},parseError:s(function(i,a){if(a.recoverable)this.trace(i);else{var h=new Error(i);throw h.hash=a,h}},"parseError"),parse:s(function(i){var a=this,h=[0],u=[],y=[null],o=[],S=this.table,k="",M=0,C=0,B=2,J=1,O=o.slice.call(arguments,1),v=Object.create(this.lexer),N={yy:{}};for(var L in this.yy)Object.prototype.hasOwnProperty.call(this.yy,L)&&(N.yy[L]=this.yy[L]);v.setInput(i,N.yy),N.yy.lexer=v,N.yy.parser=this,typeof v.yylloc>"u"&&(v.yylloc={});var b=v.yylloc;o.push(b);var $=v.options&&v.options.ranges;typeof N.yy.parseError=="function"?this.parseError=N.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function R(T){h.length=h.length-2*T,y.length=y.length-T,o.length=o.length-T}s(R,"popStack");function P(){var T;return T=u.pop()||v.lex()||J,typeof T!="number"&&(T instanceof Array&&(u=T,T=u.pop()),T=a.symbols_[T]||T),T}s(P,"lex");for(var w,H,I,K,z={},j,A,et,G;;){if(H=h[h.length-1],this.defaultActions[H]?I=this.defaultActions[H]:((w===null||typeof w>"u")&&(w=P()),I=S[H]&&S[H][w]),typeof I>"u"||!I.length||!I[0]){var Q="";G=[];for(j in S[H])this.terminals_[j]&&j>B&&G.push("'"+this.terminals_[j]+"'");v.showPosition?Q="Parse error on line "+(M+1)+`:
|
|
2
2
|
`+v.showPosition()+`
|
|
3
3
|
Expecting `+G.join(", ")+", got '"+(this.terminals_[w]||w)+"'":Q="Parse error on line "+(M+1)+": Unexpected "+(w==J?"end of input":"'"+(this.terminals_[w]||w)+"'"),this.parseError(Q,{text:v.match,token:this.terminals_[w]||w,line:v.yylineno,loc:b,expected:G})}if(I[0]instanceof Array&&I.length>1)throw new Error("Parse Error: multiple actions possible at state: "+H+", token: "+w);switch(I[0]){case 1:h.push(w),y.push(v.yytext),o.push(v.yylloc),h.push(I[1]),w=null,C=v.yyleng,k=v.yytext,M=v.yylineno,b=v.yylloc;break;case 2:if(A=this.productions_[I[1]][1],z.$=y[y.length-A],z._$={first_line:o[o.length-(A||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(A||1)].first_column,last_column:o[o.length-1].last_column},$&&(z._$.range=[o[o.length-(A||1)].range[0],o[o.length-1].range[1]]),K=this.performAction.apply(z,[k,C,M,N.yy,I[1],y,o].concat(O)),typeof K<"u")return K;A&&(h=h.slice(0,-1*A*2),y=y.slice(0,-1*A),o=o.slice(0,-1*A)),h.push(this.productions_[I[1]][0]),y.push(z.$),o.push(z._$),et=S[h[h.length-2]][h[h.length-1]],h.push(et);break;case 3:return!0}}return!0},"parse")},x=(function(){var f={EOF:1,parseError:s(function(a,h){if(this.yy.parser)this.yy.parser.parseError(a,h);else throw new Error(a)},"parseError"),setInput:s(function(i,a){return this.yy=a||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:s(function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var a=i.match(/(?:\r\n?|\n).*/g);return a?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},"input"),unput:s(function(i){var a=i.length,h=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),h.length-1&&(this.yylineno-=h.length-1);var y=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:h?(h.length===u.length?this.yylloc.first_column:0)+u[u.length-h.length].length-h[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[y[0],y[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},"unput"),more:s(function(){return this._more=!0,this},"more"),reject:s(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
4
4
|
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:s(function(i){this.unput(this.match.slice(i))},"less"),pastInput:s(function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:s(function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:s(function(){var i=this.pastInput(),a=new Array(i.length+1).join("-");return i+this.upcomingInput()+`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var Bd=Object.defineProperty;var jd=(t,e,n)=>e in t?Bd(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var pt=(t,e,n)=>jd(t,typeof e!="symbol"?e+"":e,n);import{ap as Kd,bZ as Hd,Z as _t}from"./index-Ds1UcDjn.js";import{m as st,d as Vd}from"./min-B6fh4WRE.js";import{b as Wd,d as zd,f as qd,r as _o,a as As}from"./_baseUniq-CHS3E5If.js";import{i as Yd}from"./isEmpty-BZ44SF3F.js";function Xd(t,e){return Kd(st(t,e))}function Jd(t,e){return t&&t.length?Wd(t,zd(e)):[]}function le(t){return typeof t=="object"&&t!==null&&typeof t.$type=="string"}function ze(t){return typeof t=="object"&&t!==null&&typeof t.$refText=="string"}function Zd(t){return typeof t=="object"&&t!==null&&typeof t.name=="string"&&typeof t.type=="string"&&typeof t.path=="string"}function oi(t){return typeof t=="object"&&t!==null&&le(t.container)&&ze(t.reference)&&typeof t.message=="string"}class hc{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,n){return le(e)&&this.isSubtype(e.$type,n)}isSubtype(e,n){if(e===n)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[n];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,n);return r[n]=s,s}}getAllSubTypes(e){const n=this.allSubtypes[e];if(n)return n;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function vr(t){return typeof t=="object"&&t!==null&&Array.isArray(t.content)}function pc(t){return typeof t=="object"&&t!==null&&typeof t.tokenType=="object"}function mc(t){return vr(t)&&typeof t.fullText=="string"}class ne{constructor(e,n){this.startFn=e,this.nextFn=n}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let n=0,r=e.next();for(;!r.done;)n++,r=e.next();return n}toArray(){const e=[],n=this.iterator();let r;do r=n.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,n){const r=this.map(i=>[e?e(i):i,n?n(i):i]);return new Map(r)}toString(){return this.join()}concat(e){return new ne(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),n=>{let r;if(!n.firstDone){do if(r=this.nextFn(n.first),!r.done)return r;while(!r.done);n.firstDone=!0}do if(r=n.iterator.next(),!r.done)return r;while(!r.done);return Ae})}join(e=","){const n=this.iterator();let r="",i,s=!1;do i=n.next(),i.done||(s&&(r+=e),r+=Qd(i.value)),s=!0;while(!i.done);return r}indexOf(e,n=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=n&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(!e(r.value))return!1;r=n.next()}return!0}some(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(e(r.value))return!0;r=n.next()}return!1}forEach(e){const n=this.iterator();let r=0,i=n.next();for(;!i.done;)e(i.value,r),i=n.next(),r++}map(e){return new ne(this.startFn,n=>{const{done:r,value:i}=this.nextFn(n);return r?Ae:{done:!1,value:e(i)}})}filter(e){return new ne(this.startFn,n=>{let r;do if(r=this.nextFn(n),!r.done&&e(r.value))return r;while(!r.done);return Ae})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,n){const r=this.iterator();let i=n,s=r.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=r.next();return i}reduceRight(e,n){return this.recursiveReduce(this.iterator(),e,n)}recursiveReduce(e,n,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,n,r);return s===void 0?i.value:n(s,i.value)}find(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(e(r.value))return r.value;r=n.next()}}findIndex(e){const n=this.iterator();let r=0,i=n.next();for(;!i.done;){if(e(i.value))return r;i=n.next(),r++}return-1}includes(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(r.value===e)return!0;r=n.next()}return!1}flatMap(e){return new ne(()=>({this:this.startFn()}),n=>{do{if(n.iterator){const s=n.iterator.next();if(s.done)n.iterator=void 0;else return s}const{done:r,value:i}=this.nextFn(n.this);if(!r){const s=e(i);if($i(s))n.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(n.iterator);return Ae})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const n=e>1?this.flat(e-1):this;return new ne(()=>({this:n.startFn()}),r=>{do{if(r.iterator){const a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}const{done:i,value:s}=n.nextFn(r.this);if(!i)if($i(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return Ae})}head(){const n=this.iterator().next();if(!n.done)return n.value}tail(e=1){return new ne(()=>{const n=this.startFn();for(let r=0;r<e;r++)if(this.nextFn(n).done)return n;return n},this.nextFn)}limit(e){return new ne(()=>({size:0,state:this.startFn()}),n=>(n.size++,n.size>e?Ae:this.nextFn(n.state)))}distinct(e){return new ne(()=>({set:new Set,internalState:this.startFn()}),n=>{let r;do if(r=this.nextFn(n.internalState),!r.done){const i=e?e(r.value):r.value;if(!n.set.has(i))return n.set.add(i),r}while(!r.done);return Ae})}exclude(e,n){const r=new Set;for(const i of e){const s=n?n(i):i;r.add(s)}return this.filter(i=>{const s=n?n(i):i;return!r.has(s)})}}function Qd(t){return typeof t=="string"?t:typeof t>"u"?"undefined":typeof t.toString=="function"?t.toString():Object.prototype.toString.call(t)}function $i(t){return!!t&&typeof t[Symbol.iterator]=="function"}const eh=new ne(()=>{},()=>Ae),Ae=Object.freeze({done:!0,value:void 0});function re(...t){if(t.length===1){const e=t[0];if(e instanceof ne)return e;if($i(e))return new ne(()=>e[Symbol.iterator](),n=>n.next());if(typeof e.length=="number")return new ne(()=>({index:0}),n=>n.index<e.length?{done:!1,value:e[n.index++]}:Ae)}return t.length>1?new ne(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const n=e.iterator.next();if(!n.done)return n;e.iterator=void 0}if(e.array){if(e.arrIndex<e.array.length)return{done:!1,value:e.array[e.arrIndex++]};e.array=void 0,e.arrIndex=0}if(e.collIndex<t.length){const n=t[e.collIndex++];$i(n)?e.iterator=n[Symbol.iterator]():n&&typeof n.length=="number"&&(e.array=n)}}while(e.iterator||e.array||e.collIndex<t.length);return Ae}):eh}class Ga extends ne{constructor(e,n,r){super(()=>({iterators:r!=null&&r.includeRoot?[[e][Symbol.iterator]()]:[n(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){const a=i.iterators[i.iterators.length-1].next();if(a.done)i.iterators.pop();else return i.iterators.push(n(a.value)[Symbol.iterator]()),a}return Ae})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var Qs;(function(t){function e(s){return s.reduce((a,o)=>a+o,0)}t.sum=e;function n(s){return s.reduce((a,o)=>a*o,0)}t.product=n;function r(s){return s.reduce((a,o)=>Math.min(a,o))}t.min=r;function i(s){return s.reduce((a,o)=>Math.max(a,o))}t.max=i})(Qs||(Qs={}));function ea(t){return new Ga(t,e=>vr(e)?e.content:[],{includeRoot:!0})}function th(t,e){for(;t.container;)if(t=t.container,t===e)return!0;return!1}function ta(t){return{start:{character:t.startColumn-1,line:t.startLine-1},end:{character:t.endColumn,line:t.endLine-1}}}function Si(t){if(!t)return;const{offset:e,end:n,range:r}=t;return{range:r,offset:e,end:n,length:n-e}}var rt;(function(t){t[t.Before=0]="Before",t[t.After=1]="After",t[t.OverlapFront=2]="OverlapFront",t[t.OverlapBack=3]="OverlapBack",t[t.Inside=4]="Inside",t[t.Outside=5]="Outside"})(rt||(rt={}));function nh(t,e){if(t.end.line<e.start.line||t.end.line===e.start.line&&t.end.character<=e.start.character)return rt.Before;if(t.start.line>e.end.line||t.start.line===e.end.line&&t.start.character>=e.end.character)return rt.After;const n=t.start.line>e.start.line||t.start.line===e.start.line&&t.start.character>=e.start.character,r=t.end.line<e.end.line||t.end.line===e.end.line&&t.end.character<=e.end.character;return n&&r?rt.Inside:n?rt.OverlapBack:r?rt.OverlapFront:rt.Outside}function rh(t,e){return nh(t,e)>rt.After}const ih=/^[\w\p{L}]$/u;function sh(t,e){if(t){const n=ah(t,!0);if(n&&No(n,e))return n;if(mc(t)){const r=t.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){const s=t.content[i];if(No(s,e))return s}}}}function No(t,e){return pc(t)&&e.includes(t.tokenType.name)}function ah(t,e=!0){for(;t.container;){const n=t.container;let r=n.content.indexOf(t);for(;r>0;){r--;const i=n.content[r];if(e||!i.hidden)return i}t=n}}class gc extends Error{constructor(e,n){super(e?`${n} at ${e.range.start.line}:${e.range.start.character}`:n)}}function kr(t){throw new Error("Error! The input value was not handled.")}const Fr="AbstractRule",Gr="AbstractType",Es="Condition",bo="TypeDefinition",$s="ValueLiteral",Pn="AbstractElement";function oh(t){return F.isInstance(t,Pn)}const Ur="ArrayLiteral",Br="ArrayType",Mn="BooleanLiteral";function lh(t){return F.isInstance(t,Mn)}const Dn="Conjunction";function uh(t){return F.isInstance(t,Dn)}const Fn="Disjunction";function ch(t){return F.isInstance(t,Fn)}const jr="Grammar",Ss="GrammarImport",Gn="InferredType";function yc(t){return F.isInstance(t,Gn)}const Un="Interface";function Tc(t){return F.isInstance(t,Un)}const xs="NamedArgument",Bn="Negation";function fh(t){return F.isInstance(t,Bn)}const Kr="NumberLiteral",Hr="Parameter",jn="ParameterReference";function dh(t){return F.isInstance(t,jn)}const Kn="ParserRule";function Ne(t){return F.isInstance(t,Kn)}const Vr="ReferenceType",li="ReturnType";function hh(t){return F.isInstance(t,li)}const Hn="SimpleType";function ph(t){return F.isInstance(t,Hn)}const Wr="StringLiteral",Xt="TerminalRule";function Bt(t){return F.isInstance(t,Xt)}const Vn="Type";function vc(t){return F.isInstance(t,Vn)}const ks="TypeAttribute",zr="UnionType",Wn="Action";function qi(t){return F.isInstance(t,Wn)}const zn="Alternatives";function Rc(t){return F.isInstance(t,zn)}const qn="Assignment";function Lt(t){return F.isInstance(t,qn)}const Yn="CharacterRange";function mh(t){return F.isInstance(t,Yn)}const Xn="CrossReference";function Ua(t){return F.isInstance(t,Xn)}const Jn="EndOfFile";function gh(t){return F.isInstance(t,Jn)}const Zn="Group";function Ba(t){return F.isInstance(t,Zn)}const Qn="Keyword";function Pt(t){return F.isInstance(t,Qn)}const er="NegatedToken";function yh(t){return F.isInstance(t,er)}const tr="RegexToken";function Th(t){return F.isInstance(t,tr)}const nr="RuleCall";function Mt(t){return F.isInstance(t,nr)}const rr="TerminalAlternatives";function vh(t){return F.isInstance(t,rr)}const ir="TerminalGroup";function Rh(t){return F.isInstance(t,ir)}const sr="TerminalRuleCall";function Ah(t){return F.isInstance(t,sr)}const ar="UnorderedGroup";function Ac(t){return F.isInstance(t,ar)}const or="UntilToken";function Eh(t){return F.isInstance(t,or)}const lr="Wildcard";function $h(t){return F.isInstance(t,lr)}class Ec extends hc{getAllTypes(){return[Pn,Fr,Gr,Wn,zn,Ur,Br,qn,Mn,Yn,Es,Dn,Xn,Fn,Jn,jr,Ss,Zn,Gn,Un,Qn,xs,er,Bn,Kr,Hr,jn,Kn,Vr,tr,li,nr,Hn,Wr,rr,ir,Xt,sr,Vn,ks,bo,zr,ar,or,$s,lr]}computeIsSubtype(e,n){switch(e){case Wn:case zn:case qn:case Yn:case Xn:case Jn:case Zn:case Qn:case er:case tr:case nr:case rr:case ir:case sr:case ar:case or:case lr:return this.isSubtype(Pn,n);case Ur:case Kr:case Wr:return this.isSubtype($s,n);case Br:case Vr:case Hn:case zr:return this.isSubtype(bo,n);case Mn:return this.isSubtype(Es,n)||this.isSubtype($s,n);case Dn:case Fn:case Bn:case jn:return this.isSubtype(Es,n);case Gn:case Un:case Vn:return this.isSubtype(Gr,n);case Kn:return this.isSubtype(Fr,n)||this.isSubtype(Gr,n);case Xt:return this.isSubtype(Fr,n);default:return!1}}getReferenceType(e){const n=`${e.container.$type}:${e.property}`;switch(n){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return Gr;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return Fr;case"Grammar:usedGrammars":return jr;case"NamedArgument:parameter":case"ParameterReference:parameter":return Hr;case"TerminalRuleCall:rule":return Xt;default:throw new Error(`${n} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case Pn:return{name:Pn,properties:[{name:"cardinality"},{name:"lookahead"}]};case Ur:return{name:Ur,properties:[{name:"elements",defaultValue:[]}]};case Br:return{name:Br,properties:[{name:"elementType"}]};case Mn:return{name:Mn,properties:[{name:"true",defaultValue:!1}]};case Dn:return{name:Dn,properties:[{name:"left"},{name:"right"}]};case Fn:return{name:Fn,properties:[{name:"left"},{name:"right"}]};case jr:return{name:jr,properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case Ss:return{name:Ss,properties:[{name:"path"}]};case Gn:return{name:Gn,properties:[{name:"name"}]};case Un:return{name:Un,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case xs:return{name:xs,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case Bn:return{name:Bn,properties:[{name:"value"}]};case Kr:return{name:Kr,properties:[{name:"value"}]};case Hr:return{name:Hr,properties:[{name:"name"}]};case jn:return{name:jn,properties:[{name:"parameter"}]};case Kn:return{name:Kn,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case Vr:return{name:Vr,properties:[{name:"referenceType"}]};case li:return{name:li,properties:[{name:"name"}]};case Hn:return{name:Hn,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case Wr:return{name:Wr,properties:[{name:"value"}]};case Xt:return{name:Xt,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case Vn:return{name:Vn,properties:[{name:"name"},{name:"type"}]};case ks:return{name:ks,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case zr:return{name:zr,properties:[{name:"types",defaultValue:[]}]};case Wn:return{name:Wn,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case zn:return{name:zn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case qn:return{name:qn,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case Yn:return{name:Yn,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case Xn:return{name:Xn,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case Jn:return{name:Jn,properties:[{name:"cardinality"},{name:"lookahead"}]};case Zn:return{name:Zn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case Qn:return{name:Qn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case er:return{name:er,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case tr:return{name:tr,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case nr:return{name:nr,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case rr:return{name:rr,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case ir:return{name:ir,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case sr:return{name:sr,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case ar:return{name:ar,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case or:return{name:or,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case lr:return{name:lr,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const F=new Ec;function Sh(t){for(const[e,n]of Object.entries(t))e.startsWith("$")||(Array.isArray(n)?n.forEach((r,i)=>{le(r)&&(r.$container=t,r.$containerProperty=e,r.$containerIndex=i)}):le(n)&&(n.$container=t,n.$containerProperty=e))}function Yi(t,e){let n=t;for(;n;){if(e(n))return n;n=n.$container}}function mt(t){const n=na(t).$document;if(!n)throw new Error("AST node has no document.");return n}function na(t){for(;t.$container;)t=t.$container;return t}function ja(t,e){if(!t)throw new Error("Node must be an AstNode.");const n=e==null?void 0:e.range;return new ne(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndex<r.keys.length;){const i=r.keys[r.keyIndex];if(!i.startsWith("$")){const s=t[i];if(le(s)){if(r.keyIndex++,Oo(s,n))return{done:!1,value:s}}else if(Array.isArray(s)){for(;r.arrayIndex<s.length;){const a=r.arrayIndex++,o=s[a];if(le(o)&&Oo(o,n))return{done:!1,value:o}}r.arrayIndex=0}}r.keyIndex++}return Ae})}function Ir(t,e){if(!t)throw new Error("Root node must be an AstNode.");return new Ga(t,n=>ja(n,e))}function Zt(t,e){if(!t)throw new Error("Root node must be an AstNode.");return new Ga(t,n=>ja(n,e),{includeRoot:!0})}function Oo(t,e){var n;if(!e)return!0;const r=(n=t.$cstNode)===null||n===void 0?void 0:n.range;return r?rh(r,e):!1}function $c(t){return new ne(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){const n=e.keys[e.keyIndex];if(!n.startsWith("$")){const r=t[n];if(ze(r))return e.keyIndex++,{done:!1,value:{reference:r,container:t,property:n}};if(Array.isArray(r)){for(;e.arrayIndex<r.length;){const i=e.arrayIndex++,s=r[i];if(ze(s))return{done:!1,value:{reference:s,container:t,property:n,index:i}}}e.arrayIndex=0}}e.keyIndex++}return Ae})}function xh(t,e){const n=t.getTypeMetaData(e.$type),r=e;for(const i of n.properties)i.defaultValue!==void 0&&r[i.name]===void 0&&(r[i.name]=Sc(i.defaultValue))}function Sc(t){return Array.isArray(t)?[...t.map(Sc)]:t}function _(t){return t.charCodeAt(0)}function Is(t,e){Array.isArray(t)?t.forEach(function(n){e.push(n)}):e.push(t)}function Nn(t,e){if(t[e]===!0)throw"duplicate flag "+e;t[e],t[e]=!0}function Yt(t){if(t===void 0)throw Error("Internal Error - Should never get here!");return!0}function kh(){throw Error("Internal Error - Should never get here!")}function Lo(t){return t.type==="Character"}const xi=[];for(let t=_("0");t<=_("9");t++)xi.push(t);const ki=[_("_")].concat(xi);for(let t=_("a");t<=_("z");t++)ki.push(t);for(let t=_("A");t<=_("Z");t++)ki.push(t);const Po=[_(" "),_("\f"),_(`
|
|
1
|
+
var Bd=Object.defineProperty;var jd=(t,e,n)=>e in t?Bd(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var pt=(t,e,n)=>jd(t,typeof e!="symbol"?e+"":e,n);import{ap as Kd,bZ as Hd,Z as _t}from"./index-C6f1jS5T.js";import{m as st,d as Vd}from"./min-BYNXcs16.js";import{b as Wd,d as zd,f as qd,r as _o,a as As}from"./_baseUniq-CJcN2wXt.js";import{i as Yd}from"./isEmpty-Bg6e-LN7.js";function Xd(t,e){return Kd(st(t,e))}function Jd(t,e){return t&&t.length?Wd(t,zd(e)):[]}function le(t){return typeof t=="object"&&t!==null&&typeof t.$type=="string"}function ze(t){return typeof t=="object"&&t!==null&&typeof t.$refText=="string"}function Zd(t){return typeof t=="object"&&t!==null&&typeof t.name=="string"&&typeof t.type=="string"&&typeof t.path=="string"}function oi(t){return typeof t=="object"&&t!==null&&le(t.container)&&ze(t.reference)&&typeof t.message=="string"}class hc{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,n){return le(e)&&this.isSubtype(e.$type,n)}isSubtype(e,n){if(e===n)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[n];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,n);return r[n]=s,s}}getAllSubTypes(e){const n=this.allSubtypes[e];if(n)return n;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function vr(t){return typeof t=="object"&&t!==null&&Array.isArray(t.content)}function pc(t){return typeof t=="object"&&t!==null&&typeof t.tokenType=="object"}function mc(t){return vr(t)&&typeof t.fullText=="string"}class ne{constructor(e,n){this.startFn=e,this.nextFn=n}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let n=0,r=e.next();for(;!r.done;)n++,r=e.next();return n}toArray(){const e=[],n=this.iterator();let r;do r=n.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,n){const r=this.map(i=>[e?e(i):i,n?n(i):i]);return new Map(r)}toString(){return this.join()}concat(e){return new ne(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),n=>{let r;if(!n.firstDone){do if(r=this.nextFn(n.first),!r.done)return r;while(!r.done);n.firstDone=!0}do if(r=n.iterator.next(),!r.done)return r;while(!r.done);return Ae})}join(e=","){const n=this.iterator();let r="",i,s=!1;do i=n.next(),i.done||(s&&(r+=e),r+=Qd(i.value)),s=!0;while(!i.done);return r}indexOf(e,n=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=n&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(!e(r.value))return!1;r=n.next()}return!0}some(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(e(r.value))return!0;r=n.next()}return!1}forEach(e){const n=this.iterator();let r=0,i=n.next();for(;!i.done;)e(i.value,r),i=n.next(),r++}map(e){return new ne(this.startFn,n=>{const{done:r,value:i}=this.nextFn(n);return r?Ae:{done:!1,value:e(i)}})}filter(e){return new ne(this.startFn,n=>{let r;do if(r=this.nextFn(n),!r.done&&e(r.value))return r;while(!r.done);return Ae})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,n){const r=this.iterator();let i=n,s=r.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=r.next();return i}reduceRight(e,n){return this.recursiveReduce(this.iterator(),e,n)}recursiveReduce(e,n,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,n,r);return s===void 0?i.value:n(s,i.value)}find(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(e(r.value))return r.value;r=n.next()}}findIndex(e){const n=this.iterator();let r=0,i=n.next();for(;!i.done;){if(e(i.value))return r;i=n.next(),r++}return-1}includes(e){const n=this.iterator();let r=n.next();for(;!r.done;){if(r.value===e)return!0;r=n.next()}return!1}flatMap(e){return new ne(()=>({this:this.startFn()}),n=>{do{if(n.iterator){const s=n.iterator.next();if(s.done)n.iterator=void 0;else return s}const{done:r,value:i}=this.nextFn(n.this);if(!r){const s=e(i);if($i(s))n.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(n.iterator);return Ae})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const n=e>1?this.flat(e-1):this;return new ne(()=>({this:n.startFn()}),r=>{do{if(r.iterator){const a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}const{done:i,value:s}=n.nextFn(r.this);if(!i)if($i(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return Ae})}head(){const n=this.iterator().next();if(!n.done)return n.value}tail(e=1){return new ne(()=>{const n=this.startFn();for(let r=0;r<e;r++)if(this.nextFn(n).done)return n;return n},this.nextFn)}limit(e){return new ne(()=>({size:0,state:this.startFn()}),n=>(n.size++,n.size>e?Ae:this.nextFn(n.state)))}distinct(e){return new ne(()=>({set:new Set,internalState:this.startFn()}),n=>{let r;do if(r=this.nextFn(n.internalState),!r.done){const i=e?e(r.value):r.value;if(!n.set.has(i))return n.set.add(i),r}while(!r.done);return Ae})}exclude(e,n){const r=new Set;for(const i of e){const s=n?n(i):i;r.add(s)}return this.filter(i=>{const s=n?n(i):i;return!r.has(s)})}}function Qd(t){return typeof t=="string"?t:typeof t>"u"?"undefined":typeof t.toString=="function"?t.toString():Object.prototype.toString.call(t)}function $i(t){return!!t&&typeof t[Symbol.iterator]=="function"}const eh=new ne(()=>{},()=>Ae),Ae=Object.freeze({done:!0,value:void 0});function re(...t){if(t.length===1){const e=t[0];if(e instanceof ne)return e;if($i(e))return new ne(()=>e[Symbol.iterator](),n=>n.next());if(typeof e.length=="number")return new ne(()=>({index:0}),n=>n.index<e.length?{done:!1,value:e[n.index++]}:Ae)}return t.length>1?new ne(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const n=e.iterator.next();if(!n.done)return n;e.iterator=void 0}if(e.array){if(e.arrIndex<e.array.length)return{done:!1,value:e.array[e.arrIndex++]};e.array=void 0,e.arrIndex=0}if(e.collIndex<t.length){const n=t[e.collIndex++];$i(n)?e.iterator=n[Symbol.iterator]():n&&typeof n.length=="number"&&(e.array=n)}}while(e.iterator||e.array||e.collIndex<t.length);return Ae}):eh}class Ga extends ne{constructor(e,n,r){super(()=>({iterators:r!=null&&r.includeRoot?[[e][Symbol.iterator]()]:[n(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){const a=i.iterators[i.iterators.length-1].next();if(a.done)i.iterators.pop();else return i.iterators.push(n(a.value)[Symbol.iterator]()),a}return Ae})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var Qs;(function(t){function e(s){return s.reduce((a,o)=>a+o,0)}t.sum=e;function n(s){return s.reduce((a,o)=>a*o,0)}t.product=n;function r(s){return s.reduce((a,o)=>Math.min(a,o))}t.min=r;function i(s){return s.reduce((a,o)=>Math.max(a,o))}t.max=i})(Qs||(Qs={}));function ea(t){return new Ga(t,e=>vr(e)?e.content:[],{includeRoot:!0})}function th(t,e){for(;t.container;)if(t=t.container,t===e)return!0;return!1}function ta(t){return{start:{character:t.startColumn-1,line:t.startLine-1},end:{character:t.endColumn,line:t.endLine-1}}}function Si(t){if(!t)return;const{offset:e,end:n,range:r}=t;return{range:r,offset:e,end:n,length:n-e}}var rt;(function(t){t[t.Before=0]="Before",t[t.After=1]="After",t[t.OverlapFront=2]="OverlapFront",t[t.OverlapBack=3]="OverlapBack",t[t.Inside=4]="Inside",t[t.Outside=5]="Outside"})(rt||(rt={}));function nh(t,e){if(t.end.line<e.start.line||t.end.line===e.start.line&&t.end.character<=e.start.character)return rt.Before;if(t.start.line>e.end.line||t.start.line===e.end.line&&t.start.character>=e.end.character)return rt.After;const n=t.start.line>e.start.line||t.start.line===e.start.line&&t.start.character>=e.start.character,r=t.end.line<e.end.line||t.end.line===e.end.line&&t.end.character<=e.end.character;return n&&r?rt.Inside:n?rt.OverlapBack:r?rt.OverlapFront:rt.Outside}function rh(t,e){return nh(t,e)>rt.After}const ih=/^[\w\p{L}]$/u;function sh(t,e){if(t){const n=ah(t,!0);if(n&&No(n,e))return n;if(mc(t)){const r=t.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){const s=t.content[i];if(No(s,e))return s}}}}function No(t,e){return pc(t)&&e.includes(t.tokenType.name)}function ah(t,e=!0){for(;t.container;){const n=t.container;let r=n.content.indexOf(t);for(;r>0;){r--;const i=n.content[r];if(e||!i.hidden)return i}t=n}}class gc extends Error{constructor(e,n){super(e?`${n} at ${e.range.start.line}:${e.range.start.character}`:n)}}function kr(t){throw new Error("Error! The input value was not handled.")}const Fr="AbstractRule",Gr="AbstractType",Es="Condition",bo="TypeDefinition",$s="ValueLiteral",Pn="AbstractElement";function oh(t){return F.isInstance(t,Pn)}const Ur="ArrayLiteral",Br="ArrayType",Mn="BooleanLiteral";function lh(t){return F.isInstance(t,Mn)}const Dn="Conjunction";function uh(t){return F.isInstance(t,Dn)}const Fn="Disjunction";function ch(t){return F.isInstance(t,Fn)}const jr="Grammar",Ss="GrammarImport",Gn="InferredType";function yc(t){return F.isInstance(t,Gn)}const Un="Interface";function Tc(t){return F.isInstance(t,Un)}const xs="NamedArgument",Bn="Negation";function fh(t){return F.isInstance(t,Bn)}const Kr="NumberLiteral",Hr="Parameter",jn="ParameterReference";function dh(t){return F.isInstance(t,jn)}const Kn="ParserRule";function Ne(t){return F.isInstance(t,Kn)}const Vr="ReferenceType",li="ReturnType";function hh(t){return F.isInstance(t,li)}const Hn="SimpleType";function ph(t){return F.isInstance(t,Hn)}const Wr="StringLiteral",Xt="TerminalRule";function Bt(t){return F.isInstance(t,Xt)}const Vn="Type";function vc(t){return F.isInstance(t,Vn)}const ks="TypeAttribute",zr="UnionType",Wn="Action";function qi(t){return F.isInstance(t,Wn)}const zn="Alternatives";function Rc(t){return F.isInstance(t,zn)}const qn="Assignment";function Lt(t){return F.isInstance(t,qn)}const Yn="CharacterRange";function mh(t){return F.isInstance(t,Yn)}const Xn="CrossReference";function Ua(t){return F.isInstance(t,Xn)}const Jn="EndOfFile";function gh(t){return F.isInstance(t,Jn)}const Zn="Group";function Ba(t){return F.isInstance(t,Zn)}const Qn="Keyword";function Pt(t){return F.isInstance(t,Qn)}const er="NegatedToken";function yh(t){return F.isInstance(t,er)}const tr="RegexToken";function Th(t){return F.isInstance(t,tr)}const nr="RuleCall";function Mt(t){return F.isInstance(t,nr)}const rr="TerminalAlternatives";function vh(t){return F.isInstance(t,rr)}const ir="TerminalGroup";function Rh(t){return F.isInstance(t,ir)}const sr="TerminalRuleCall";function Ah(t){return F.isInstance(t,sr)}const ar="UnorderedGroup";function Ac(t){return F.isInstance(t,ar)}const or="UntilToken";function Eh(t){return F.isInstance(t,or)}const lr="Wildcard";function $h(t){return F.isInstance(t,lr)}class Ec extends hc{getAllTypes(){return[Pn,Fr,Gr,Wn,zn,Ur,Br,qn,Mn,Yn,Es,Dn,Xn,Fn,Jn,jr,Ss,Zn,Gn,Un,Qn,xs,er,Bn,Kr,Hr,jn,Kn,Vr,tr,li,nr,Hn,Wr,rr,ir,Xt,sr,Vn,ks,bo,zr,ar,or,$s,lr]}computeIsSubtype(e,n){switch(e){case Wn:case zn:case qn:case Yn:case Xn:case Jn:case Zn:case Qn:case er:case tr:case nr:case rr:case ir:case sr:case ar:case or:case lr:return this.isSubtype(Pn,n);case Ur:case Kr:case Wr:return this.isSubtype($s,n);case Br:case Vr:case Hn:case zr:return this.isSubtype(bo,n);case Mn:return this.isSubtype(Es,n)||this.isSubtype($s,n);case Dn:case Fn:case Bn:case jn:return this.isSubtype(Es,n);case Gn:case Un:case Vn:return this.isSubtype(Gr,n);case Kn:return this.isSubtype(Fr,n)||this.isSubtype(Gr,n);case Xt:return this.isSubtype(Fr,n);default:return!1}}getReferenceType(e){const n=`${e.container.$type}:${e.property}`;switch(n){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return Gr;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return Fr;case"Grammar:usedGrammars":return jr;case"NamedArgument:parameter":case"ParameterReference:parameter":return Hr;case"TerminalRuleCall:rule":return Xt;default:throw new Error(`${n} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case Pn:return{name:Pn,properties:[{name:"cardinality"},{name:"lookahead"}]};case Ur:return{name:Ur,properties:[{name:"elements",defaultValue:[]}]};case Br:return{name:Br,properties:[{name:"elementType"}]};case Mn:return{name:Mn,properties:[{name:"true",defaultValue:!1}]};case Dn:return{name:Dn,properties:[{name:"left"},{name:"right"}]};case Fn:return{name:Fn,properties:[{name:"left"},{name:"right"}]};case jr:return{name:jr,properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case Ss:return{name:Ss,properties:[{name:"path"}]};case Gn:return{name:Gn,properties:[{name:"name"}]};case Un:return{name:Un,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case xs:return{name:xs,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case Bn:return{name:Bn,properties:[{name:"value"}]};case Kr:return{name:Kr,properties:[{name:"value"}]};case Hr:return{name:Hr,properties:[{name:"name"}]};case jn:return{name:jn,properties:[{name:"parameter"}]};case Kn:return{name:Kn,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case Vr:return{name:Vr,properties:[{name:"referenceType"}]};case li:return{name:li,properties:[{name:"name"}]};case Hn:return{name:Hn,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case Wr:return{name:Wr,properties:[{name:"value"}]};case Xt:return{name:Xt,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case Vn:return{name:Vn,properties:[{name:"name"},{name:"type"}]};case ks:return{name:ks,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case zr:return{name:zr,properties:[{name:"types",defaultValue:[]}]};case Wn:return{name:Wn,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case zn:return{name:zn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case qn:return{name:qn,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case Yn:return{name:Yn,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case Xn:return{name:Xn,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case Jn:return{name:Jn,properties:[{name:"cardinality"},{name:"lookahead"}]};case Zn:return{name:Zn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case Qn:return{name:Qn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case er:return{name:er,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case tr:return{name:tr,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case nr:return{name:nr,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case rr:return{name:rr,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case ir:return{name:ir,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case sr:return{name:sr,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case ar:return{name:ar,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case or:return{name:or,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case lr:return{name:lr,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const F=new Ec;function Sh(t){for(const[e,n]of Object.entries(t))e.startsWith("$")||(Array.isArray(n)?n.forEach((r,i)=>{le(r)&&(r.$container=t,r.$containerProperty=e,r.$containerIndex=i)}):le(n)&&(n.$container=t,n.$containerProperty=e))}function Yi(t,e){let n=t;for(;n;){if(e(n))return n;n=n.$container}}function mt(t){const n=na(t).$document;if(!n)throw new Error("AST node has no document.");return n}function na(t){for(;t.$container;)t=t.$container;return t}function ja(t,e){if(!t)throw new Error("Node must be an AstNode.");const n=e==null?void 0:e.range;return new ne(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndex<r.keys.length;){const i=r.keys[r.keyIndex];if(!i.startsWith("$")){const s=t[i];if(le(s)){if(r.keyIndex++,Oo(s,n))return{done:!1,value:s}}else if(Array.isArray(s)){for(;r.arrayIndex<s.length;){const a=r.arrayIndex++,o=s[a];if(le(o)&&Oo(o,n))return{done:!1,value:o}}r.arrayIndex=0}}r.keyIndex++}return Ae})}function Ir(t,e){if(!t)throw new Error("Root node must be an AstNode.");return new Ga(t,n=>ja(n,e))}function Zt(t,e){if(!t)throw new Error("Root node must be an AstNode.");return new Ga(t,n=>ja(n,e),{includeRoot:!0})}function Oo(t,e){var n;if(!e)return!0;const r=(n=t.$cstNode)===null||n===void 0?void 0:n.range;return r?rh(r,e):!1}function $c(t){return new ne(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){const n=e.keys[e.keyIndex];if(!n.startsWith("$")){const r=t[n];if(ze(r))return e.keyIndex++,{done:!1,value:{reference:r,container:t,property:n}};if(Array.isArray(r)){for(;e.arrayIndex<r.length;){const i=e.arrayIndex++,s=r[i];if(ze(s))return{done:!1,value:{reference:s,container:t,property:n,index:i}}}e.arrayIndex=0}}e.keyIndex++}return Ae})}function xh(t,e){const n=t.getTypeMetaData(e.$type),r=e;for(const i of n.properties)i.defaultValue!==void 0&&r[i.name]===void 0&&(r[i.name]=Sc(i.defaultValue))}function Sc(t){return Array.isArray(t)?[...t.map(Sc)]:t}function _(t){return t.charCodeAt(0)}function Is(t,e){Array.isArray(t)?t.forEach(function(n){e.push(n)}):e.push(t)}function Nn(t,e){if(t[e]===!0)throw"duplicate flag "+e;t[e],t[e]=!0}function Yt(t){if(t===void 0)throw Error("Internal Error - Should never get here!");return!0}function kh(){throw Error("Internal Error - Should never get here!")}function Lo(t){return t.type==="Character"}const xi=[];for(let t=_("0");t<=_("9");t++)xi.push(t);const ki=[_("_")].concat(xi);for(let t=_("a");t<=_("z");t++)ki.push(t);for(let t=_("A");t<=_("Z");t++)ki.push(t);const Po=[_(" "),_("\f"),_(`
|
|
2
2
|
`),_("\r"),_(" "),_("\v"),_(" "),_(" "),_(" "),_(" "),_(" "),_(" "),_(" "),_(" "),_(" "),_(" "),_(" "),_(" "),_(" "),_(" "),_("\u2028"),_("\u2029"),_(" "),_(" "),_(" "),_("\uFEFF")],Ih=/[0-9a-fA-F]/,qr=/[0-9]/,Ch=/[1-9]/;class xc{constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");const n=this.disjunction();this.consumeChar("/");const r={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":Nn(r,"global");break;case"i":Nn(r,"ignoreCase");break;case"m":Nn(r,"multiLine");break;case"u":Nn(r,"unicode");break;case"y":Nn(r,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:r,value:n,loc:this.loc(0)}}disjunction(){const e=[],n=this.idx;for(e.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(n)}}alternative(){const e=[],n=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(n)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){const e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");let n;switch(this.popChar()){case"=":n="Lookahead";break;case"!":n="NegativeLookahead";break}Yt(n);const r=this.disjunction();return this.consumeChar(")"),{type:n,value:r,loc:this.loc(e)}}return kh()}quantifier(e=!1){let n;const r=this.idx;switch(this.popChar()){case"*":n={atLeast:0,atMost:1/0};break;case"+":n={atLeast:1,atMost:1/0};break;case"?":n={atLeast:0,atMost:1};break;case"{":const i=this.integerIncludingZero();switch(this.popChar()){case"}":n={atLeast:i,atMost:i};break;case",":let s;this.isDigit()?(s=this.integerIncludingZero(),n={atLeast:i,atMost:s}):n={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(e===!0&&n===void 0)return;Yt(n);break}if(!(e===!0&&n===void 0)&&Yt(n))return this.peekChar(0)==="?"?(this.consumeChar("?"),n.greedy=!1):n.greedy=!0,n.type="Quantifier",n.loc=this.loc(r),n}atom(){let e;const n=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group();break}if(e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),Yt(e))return e.loc=this.loc(n),this.isQuantifier()&&(e.quantifier=this.quantifier()),e}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[_(`
|
|
3
3
|
`),_("\r"),_("\u2028"),_("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,n=!1;switch(this.popChar()){case"d":e=xi;break;case"D":e=xi,n=!0;break;case"s":e=Po;break;case"S":e=Po,n=!0;break;case"w":e=ki;break;case"W":e=ki,n=!0;break}if(Yt(e))return{type:"Set",value:e,complement:n}}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=_("\f");break;case"n":e=_(`
|
|
4
4
|
`);break;case"r":e=_("\r");break;case"t":e=_(" ");break;case"v":e=_("\v");break}if(Yt(e))return{type:"Character",value:e}}controlLetterEscapeAtom(){this.consumeChar("c");const e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:_("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){const e=this.popChar();return{type:"Character",value:_(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case`
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-
|
|
2
|
-
import{r as s,I as Nt,_ as Et,J as e,aI as Pe,cm as Tt,cn as Pt,co as Me,cp as Mt,cq as kt,cr as Rt,cs as Ot,ct as Lt,cu as At,cv as zt,cw as ke,C as we,D as he,cx as Te,Z as be,cy as at,ci as st,cj as rt,b6 as Re,bn as Ft,cz as nt,cA as ot,P as ye,c as X,cB as it,cC as $t,cD as ge,cE as Ut,cF as Bt,cG as lt,cH as Vt,cI as Gt,cJ as Wt,cK as Ht,cL as Kt,cM as qt,cN as Yt,cO as Jt,cP as Se,cQ as De,cR as Oe,M as Le,cS as Qt,b2 as ct,aY as de,b4 as Xt,b1 as Zt,Q as ea,W as Q,R as Ae,X as ta,a4 as aa,a5 as sa,cT as ze,cU as Fe,cV as ra,$ as pe,a$ as na,b0 as oa,cW as ia,a3 as $e,cX as la,cY as ca,cZ as ee,c_ as da,c$ as ua,d0 as ma,u as pa,d1 as ha,d2 as fa,d3 as ga,aL as ne,N as va,g as J,a1 as xa,d4 as wa,d5 as Ue,V as ba,d6 as ya,d7 as Ie,d8 as Be,d9 as Ve,K as Ge,L as We,da as He,db as Ke}from"./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-QG8-KVAs.js","./index-C6f1jS5T.js","./index-B2dvADz8.css","./Serializer-rTHzSF0Y.js","./isEmpty-Bg6e-LN7.js","./index-D1NStEds.js","./index-CiiU0LMF.js","./index.dom-C3-224fz.js","./batch-image-generation-BEr8WnyA.js","./index-BNXtnhmh.js","./pick-D_sga9lq.js","./hasIn-DNHU2Dgx.js","./index-C1XdOOAn.css","./batch-image-generation-CbLMWmjk.css","./settings-dialog-QUxXj54T.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as s,I as Nt,_ as Et,J as e,aI as Pe,cm as Tt,cn as Pt,co as Me,cp as Mt,cq as kt,cr as Rt,cs as Ot,ct as Lt,cu as At,cv as zt,cw as ke,C as we,D as he,cx as Te,Z as be,cy as at,ci as st,cj as rt,b6 as Re,bn as Ft,cz as nt,cA as ot,P as ye,c as X,cB as it,cC as $t,cD as ge,cE as Ut,cF as Bt,cG as lt,cH as Vt,cI as Gt,cJ as Wt,cK as Ht,cL as Kt,cM as qt,cN as Yt,cO as Jt,cP as Se,cQ as De,cR as Oe,M as Le,cS as Qt,b2 as ct,aY as de,b4 as Xt,b1 as Zt,Q as ea,W as Q,R as Ae,X as ta,a4 as aa,a5 as sa,cT as ze,cU as Fe,cV as ra,$ as pe,a$ as na,b0 as oa,cW as ia,a3 as $e,cX as la,cY as ca,cZ as ee,c_ as da,c$ as ua,d0 as ma,u as pa,d1 as ha,d2 as fa,d3 as ga,aL as ne,N as va,g as J,a1 as xa,d4 as wa,d5 as Ue,V as ba,d6 as ya,d7 as Ie,d8 as Be,d9 as Ve,K as Ge,L as We,da as He,db as Ke}from"./index-C6f1jS5T.js";/* empty css */import{S as _e}from"./index-BNXtnhmh.js";import"./pick-D_sga9lq.js";import"./hasIn-DNHU2Dgx.js";function qe(a,t){var n=Object.keys(a);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(a);t&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(a,r).enumerable})),n.push.apply(n,o)}return n}function Ye(a){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?qe(Object(n),!0).forEach(function(o){Et(a,o,n[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)):qe(Object(n)).forEach(function(o){Object.defineProperty(a,o,Object.getOwnPropertyDescriptor(n,o))})}return a}var _a={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12 21C16.9706 21 21 16.9706 21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21ZM23 12C23 18.0751 18.0751 23 12 23C5.92487 23 0.999999 18.0751 1 12C1 5.92487 5.92487 0.999999 12 1C18.0751 1 23 5.92487 23 12ZM15 16.4142L11 12.4142L11 5.5H13L13 11.5858L16.4142 15L15 16.4142Z"}}]},Ne=s.forwardRef(function(a,t){return s.createElement(Nt,Ye(Ye({},a),{},{id:"time",ref:t,icon:_a}))});Ne.displayName="TimeIcon";const dt=({children:a})=>e.jsx("div",{className:"ttd-dialog-panels",children:a}),xe=({label:a,children:t,panelAction:n,panelActionDisabled:o=!1,onTextSubmitInProgress:r,renderTopRight:c,renderSubmitShortcut:m,renderBottomRight:v})=>e.jsxs("div",{className:"ttd-dialog-panel",children:[e.jsxs("div",{className:"ttd-dialog-panel__header",children:[e.jsx("label",{children:a}),c==null?void 0:c()]}),t,e.jsxs("div",{className:Pe("ttd-dialog-panel-button-container",{invisible:!n}),style:{display:"flex",alignItems:"center"},children:[e.jsx("button",{className:"ttd-dialog-panel-button drawnix-button ","data-track":"ttd_click_panel_action",onClick:n&&n.action,disabled:o||r,children:e.jsxs("div",{className:Pe({invisible:r}),children:[n==null?void 0:n.label,(n==null?void 0:n.icon)&&e.jsx("span",{children:n.icon})]})}),!o&&!r&&(m==null?void 0:m()),v==null?void 0:v()]})]}),Je={CTRL_OR_CMD:Tt||Pt?"metaKey":"ctrlKey",ENTER:"Enter"},ut=({input:a,placeholder:t,onChange:n,onKeyboardSubmit:o})=>{const r=s.useRef(null),c=s.useRef(o);return c.current=o,s.useEffect(()=>{if(!c.current)return;const m=r.current;if(m){const v=x=>{var u;x[Je.CTRL_OR_CMD]&&x.key===Je.ENTER&&(x.preventDefault(),(u=c.current)==null||u.call(c))};return m.addEventListener(Me.KEYDOWN,v),()=>{m.removeEventListener(Me.KEYDOWN,v)}}},[]),e.jsx("textarea",{className:"ttd-dialog-input",onChange:n,value:a,placeholder:t,autoFocus:!0,ref:r})},ja=({error:a})=>e.jsxs("div",{"data-testid":"ttd-dialog-output-error",className:"ttd-dialog-output-error",children:["Error! ",e.jsx("p",{children:a})]}),mt=({error:a,value:t,loaded:n})=>{const o=[kt,Rt,Ot,Lt],r={readonly:!0,hideScrollbar:!1,disabledScrollOnNonFocus:!0,themeColors:At};return e.jsxs("div",{className:"ttd-dialog-output-wrapper",children:[a&&e.jsx(ja,{error:a.message}),e.jsx("div",{style:{opacity:a?"0.15":1},className:"ttd-dialog-output-canvas-container",children:e.jsx(Mt,{value:t,options:r,plugins:o,children:e.jsx(zt,{})})})]})},pt=()=>e.jsxs("div",{className:"ttd-dialog-submit-shortcut",children:[e.jsx("div",{className:"ttd-dialog-submit-shortcut__key",children:ke("CtrlOrCmd")}),e.jsx("div",{className:"ttd-dialog-submit-shortcut__key",children:ke("Enter")})]}),Ia=`flowchart TD
|
|
3
3
|
A[Christmas] -->|Get money| B(Go shopping)
|
|
4
4
|
B --> C{Let me think}
|
|
5
5
|
C -->|One| D[Laptop]
|
|
6
6
|
C -->|Two| E[iPhone]
|
|
7
|
-
C -->|Three| F[Car]`,Ca=()=>{const{appState:a,setAppState:t}=we(),{t:n,language:o}=he(),[r,c]=s.useState({loaded:!1,api:Promise.resolve({parseMermaidToDrawnix:async()=>({elements:[]})})});s.useEffect(()=>{(async()=>{try{const w=await be(()=>import("./index-
|
|
7
|
+
C -->|Three| F[Car]`,Ca=()=>{const{appState:a,setAppState:t}=we(),{t:n,language:o}=he(),[r,c]=s.useState({loaded:!1,api:Promise.resolve({parseMermaidToDrawnix:async()=>({elements:[]})})});s.useEffect(()=>{(async()=>{try{const w=await be(()=>import("./index-QG8-KVAs.js").then(I=>I.O),__vite__mapDeps([0,1,2,3,4]),import.meta.url);c({loaded:!0,api:Promise.resolve(w)})}catch(w){console.error("Failed to load mermaid library:",w),_(new Error(n("dialog.error.loadMermaid")))}})()},[]);const[m,v]=s.useState(()=>Ia),[x,u]=s.useState(()=>[]),C=s.useDeferredValue(m.trim()),[U,_]=s.useState(null),d=Te();s.useEffect(()=>{(async()=>{try{const w=await r.api;let I;try{I=await w.parseMermaidToDrawnix(C)}catch{I=await w.parseMermaidToDrawnix(C.replace(/"/g,"'"))}const{elements:A}=I;u(A),_(null)}catch(w){_(w)}})()},[C,r]);const j=()=>{if(!x.length)return;let f;const w=at(d);if(w)f=w;else{const I=st.getBoardContainer(d).getBoundingClientRect(),A=[I.width/2,I.height/2],y=d.viewport.zoom,b=rt(d),p=b[0]+A[0]/y,h=b[1]+A[1]/y,z=x,N=Re.getBoundingRectangle(z.filter(L=>!Ft.isGroup(L)).map(L=>Re.getRectangleByPoints(L.points)));f=[p-N.width/2,h-N.height/2]}d.insertFragment({elements:JSON.parse(JSON.stringify(x))},f,nt.paste),f&&requestAnimationFrame(()=>{ot(d,f)}),t({...a,openDialogType:null})};return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"ttd-dialog-desc",children:o==="zh"?e.jsxs(e.Fragment,{children:[n("dialog.mermaid.description")," ",e.jsx("a",{href:"https://mermaid.js.org/syntax/flowchart.html",target:"_blank",rel:"noreferrer",children:n("dialog.mermaid.flowchart")}),"、",e.jsx("a",{href:"https://mermaid.js.org/syntax/sequenceDiagram.html",target:"_blank",rel:"noreferrer",children:n("dialog.mermaid.sequence")})," ","和"," ",e.jsx("a",{href:"https://mermaid.js.org/syntax/classDiagram.html",target:"_blank",rel:"noreferrer",children:n("dialog.mermaid.class")}),n("dialog.mermaid.otherTypes")]}):e.jsxs(e.Fragment,{children:[n("dialog.mermaid.description")," ",e.jsx("a",{href:"https://mermaid.js.org/syntax/flowchart.html",target:"_blank",rel:"noreferrer",children:n("dialog.mermaid.flowchart")}),","," ",e.jsx("a",{href:"https://mermaid.js.org/syntax/sequenceDiagram.html",target:"_blank",rel:"noreferrer",children:n("dialog.mermaid.sequence")}),","," ",e.jsx("a",{href:"https://mermaid.js.org/syntax/classDiagram.html",target:"_blank",rel:"noreferrer",children:n("dialog.mermaid.class")}),n("dialog.mermaid.otherTypes")]})}),e.jsxs(dt,{children:[e.jsx(xe,{label:n("dialog.mermaid.syntax"),children:e.jsx(ut,{input:m,placeholder:n("dialog.mermaid.placeholder"),onChange:f=>v(f.target.value),onKeyboardSubmit:()=>{j()}})}),e.jsx(xe,{label:n("dialog.mermaid.preview"),panelAction:{action:()=>{j()},label:n("dialog.mermaid.insert")},renderSubmitShortcut:()=>e.jsx(pt,{}),children:e.jsx(mt,{value:x,loaded:r.loaded,error:U})})]})]})},Qe=a=>a==="zh"?`# 我开始了
|
|
8
8
|
|
|
9
9
|
- 让我看看是谁搞出了这个 bug 🕵️ ♂️ 🔍
|
|
10
10
|
- 😯 💣
|
|
@@ -40,8 +40,8 @@ import{r as s,I as Nt,_ as Et,J as e,aI as Pe,cm as Tt,cn as Pt,co as Me,cp as M
|
|
|
40
40
|
|
|
41
41
|
### Hello world 👋 🌍 ✨ 💻
|
|
42
42
|
|
|
43
|
-
#### Wow, a programmer 🤯 ⌨️ 💡 👩 💻`,Sa=()=>{const{appState:a,setAppState:t}=we(),{t:n,language:o}=he(),[r,c]=s.useState({loaded:!1,api:Promise.resolve({parseMarkdownToDrawnix:(f,w)=>null})});s.useEffect(()=>{(async()=>{try{const w=await be(()=>import("./index-DEjUAZUe.js"),__vite__mapDeps([5,1,2,6,7]),import.meta.url);c({loaded:!0,api:Promise.resolve(w)})}catch(w){console.error("Failed to load mermaid library:",w),_(new Error(n("dialog.error.loadMermaid")))}})()},[]);const[m,v]=s.useState(()=>Qe(o)),[x,u]=s.useState(()=>[]),C=s.useDeferredValue(m.trim()),[U,_]=s.useState(null),d=Te();s.useEffect(()=>{v(Qe(o))},[o]),s.useEffect(()=>{(async()=>{try{const w=await r.api;let I;try{I=await w.parseMarkdownToDrawnix(C)}catch{I=await w.parseMarkdownToDrawnix(C.replace(/"/g,"'"))}const A=I;A.points=[[0,0]],A&&(u([A]),_(null))}catch(w){_(w)}})()},[C,r]);const j=()=>{if(!x.length)return;let f;const w=at(d);if(w)f=w;else{const A=st.getBoardContainer(d).getBoundingClientRect(),y=[A.width/4,A.height/2-20],b=d.viewport.zoom,p=rt(d),h=p[0]+y[0]/b,z=p[1]+y[1]/b;f=[h,z]}const I=x;d.insertFragment({elements:JSON.parse(JSON.stringify(I))},f,nt.paste),f&&requestAnimationFrame(()=>{ot(d,f)}),t({...a,openDialogType:null})};return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"ttd-dialog-desc",children:n("dialog.markdown.description")}),e.jsxs(dt,{children:[e.jsx(xe,{label:n("dialog.markdown.syntax"),children:e.jsx(ut,{input:m,placeholder:n("dialog.markdown.placeholder"),onChange:f=>v(f.target.value),onKeyboardSubmit:()=>{j()}})}),e.jsx(xe,{label:n("dialog.markdown.preview"),panelAction:{action:()=>{j()},label:n("dialog.markdown.insert")},renderSubmitShortcut:()=>e.jsx(pt,{}),children:e.jsx(mt,{value:x,loaded:r.loaded,error:U})})]})]})};function ht(){const{completedTasks:a}=ye(),t=s.useMemo(()=>a.filter(r=>{var c;return r.type===X.IMAGE&&((c=r.result)==null?void 0:c.url)}).map(r=>({id:r.id,type:"image",prompt:r.params.prompt,timestamp:r.completedAt||r.createdAt,imageUrl:r.result.url,width:r.result.width||1024,height:r.result.height||1024,uploadedImages:r.params.uploadedImages})).sort((r,c)=>c.timestamp-r.timestamp),[a]),n=s.useMemo(()=>a.filter(r=>{var c;return r.type===X.VIDEO&&((c=r.result)==null?void 0:c.url)}).map(r=>({id:r.id,type:"video",prompt:r.params.prompt,timestamp:r.completedAt||r.createdAt,imageUrl:r.result.thumbnailUrl||r.result.url,width:r.result.width||400,height:r.result.height||225,previewUrl:r.result.url,downloadUrl:r.result.url,uploadedImage:r.params.uploadedImage})).sort((r,c)=>c.timestamp-r.timestamp),[a]),o=s.useMemo(()=>[...t,...n].sort((r,c)=>c.timestamp-r.timestamp),[t,n]);return{imageHistory:t,videoHistory:n,allHistory:o}}const Xe=(a,t,n)=>{const o=n==="image"?{isGenerating:a,imageLoading:t}:{isGenerating:a,videoLoading:t};window.dispatchEvent(new CustomEvent("ai-generation-state-change",{detail:o}))},ft=(a,t,n)=>{s.useEffect(()=>{const o=r=>{(r.metaKey||r.ctrlKey)&&r.key==="Enter"&&(r.preventDefault(),!a&&t.trim()&&n())};return document.addEventListener("keydown",o),()=>{document.removeEventListener("keydown",o)}},[a,t,n])},gt=a=>{const[t,n]=s.useState(!1),[o,r]=s.useState(!1),c=s.useCallback(v=>{n(v),Xe(v,o,a)},[o,a]),m=s.useCallback(v=>{r(v),Xe(t,v,a)},[t,a]);return{isGenerating:t,isLoading:o,updateIsGenerating:c,updateIsLoading:m}},Da=(a,t,n)=>t==="image"?a==="zh"?"一只可爱的小猫坐在窗台上,阳光透过窗户洒在它的毛发上,背景是温馨的家居环境":"A cute kitten sitting on a windowsill, with sunlight streaming through the window onto its fur, with a cozy home environment in the background":n==="sora"?a==="zh"?"描述视频内容,输入 @ 可引用已创建的角色,如 @username 在海边漫步...":"Describe video content, type @ to reference created characters, e.g. @username walking on the beach...":a==="zh"?"生成一个美丽的日出场景,阳光从山峰后缓缓升起,云朵轻柔地飘动":"Generate a beautiful sunrise scene where the sun slowly rises from behind mountains with clouds gently floating",Na=[1,2,3,4,5,10,20,50,100],Ea="aitu_image_generation_quantity",Ta="aitu_video_generation_quantity",Ce=100,vt=({language:a,type:t,isGenerating:n,hasGenerated:o,canGenerate:r,onGenerate:c,onReset:m,leftContent:v})=>{const x=t==="video"?Ta:Ea,[u,C]=s.useState(()=>{try{const p=localStorage.getItem(x);if(p){const h=parseInt(p,10);if(!isNaN(h)&&h>=1&&h<=Ce)return h}}catch{}return 1}),[U,_]=s.useState(!1),[d,j]=s.useState(()=>u.toString()),f=s.useRef(null);s.useEffect(()=>{j(u.toString());try{localStorage.setItem(x,u.toString())}catch{}},[u,x]),s.useEffect(()=>{const p=h=>{f.current&&!f.current.contains(h.target)&&(_(!1),w())};return document.addEventListener("mousedown",p),()=>document.removeEventListener("mousedown",p)},[d]);const w=()=>{let p=parseInt(d,10);(isNaN(p)||p<1)&&(p=1),p>Ce&&(p=Ce),j(p.toString()),C(p)},I=p=>{const h=p.target.value;(h===""||/^\d*$/.test(h))&&j(h)},A=p=>{C(p),j(p.toString()),_(!1)},y=()=>{n||_(!U)},b=()=>{c(u)};return e.jsxs("div",{className:"section-actions unified-action-bar",children:[v&&e.jsx("div",{className:"action-bar-left",children:v}),e.jsxs("div",{className:`unified-action-box ${n?"is-generating":""} ${r?"can-generate":""}`,children:[e.jsxs("div",{className:"quantity-section",ref:f,children:[e.jsx("span",{className:"quantity-label",children:a==="zh"?"数量":"Count"}),e.jsxs("div",{className:`quantity-control ${U?"is-open":""} ${n?"is-disabled":""}`,children:[e.jsx("input",{type:"text",inputMode:"numeric",value:d,onChange:I,onBlur:w,"data-track":"ai_click_quantity_input",onClick:()=>!n&&_(!0),disabled:n,className:"quantity-input"}),e.jsx("button",{type:"button","data-track":"ai_click_quantity_toggle",onClick:p=>{p.stopPropagation(),y()},disabled:n,className:"quantity-toggle",children:e.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:`quantity-icon ${U?"is-open":""}`,children:e.jsx("polyline",{points:"6 9 12 15 18 9"})})})]}),U&&e.jsxs("div",{className:"quantity-dropdown",children:[e.jsx("div",{className:"quantity-dropdown-header",children:a==="zh"?"选择数量":"Select Quantity"}),Na.map(p=>e.jsxs("button",{type:"button","data-track":"ai_click_quantity_select",onClick:()=>A(p),className:`quantity-option ${u===p?"is-selected":""}`,children:[e.jsxs("span",{children:[p," ",t==="video"?a==="zh"?"个":p>1?"videos":"video":a==="zh"?"张":p>1?"images":"image"]}),u===p&&e.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:e.jsx("polyline",{points:"20 6 9 17 4 12"})})]},p))]})]}),e.jsx("div",{className:"action-divider"}),e.jsx("button",{"data-track":"ai_click_generate",onClick:b,disabled:n||!r,className:`generate-button ${n?"loading":""}`,children:n?a==="zh"?"生成中...":"Generating...":o?a==="zh"?"重新生成":"Regenerate":t==="video"?a==="zh"?"生成视频":"Generate Video":a==="zh"?"生成":"Generate"})]}),e.jsx("button",{"data-track":"ai_click_reset",onClick:m,disabled:n,className:"action-button secondary",children:a==="zh"?"重置":"Reset"})]})},xt=({error:a})=>a?e.jsx("div",{className:"form-error",children:a}):null,wt=({visible:a,query:t,position:n,showBelow:o=!1,selectedIndex:r,onSelect:c,onClose:m})=>{const{completedCharacters:v,isLoading:x}=it(),u=s.useRef(null),C=s.useMemo(()=>{if(!t)return v;const d=t.toLowerCase();return v.filter(j=>j.username.toLowerCase().includes(d))},[v,t]);s.useEffect(()=>{if(!a||!u.current)return;const d=u.current.querySelector(".character-mention-popup__item--selected");d&&d.scrollIntoView({block:"nearest"})},[a,r]),s.useEffect(()=>{if(!a)return;const d=j=>{u.current&&!u.current.contains(j.target)&&m()};return document.addEventListener("mousedown",d),()=>document.removeEventListener("mousedown",d)},[a,m]);const U=s.useCallback(d=>{c(d)},[c]);if(!a)return null;const _={position:"fixed",top:n.top,left:n.left,transform:o?"none":"translateY(-100%)",zIndex:1e4,maxHeight:"200px",overflowY:"auto"};return x?e.jsx("div",{ref:u,className:"character-mention-popup",style:_,children:e.jsx("div",{className:"character-mention-popup__empty",children:"加载中..."})}):C.length===0?e.jsx("div",{ref:u,className:"character-mention-popup",style:_,children:e.jsx("div",{className:"character-mention-popup__empty",children:t?`未找到 "${t}" 相关角色`:"暂无可用角色"})}):e.jsx("div",{ref:u,className:"character-mention-popup",style:_,children:C.map((d,j)=>e.jsxs("div",{className:`character-mention-popup__item ${j===r?"character-mention-popup__item--selected":""}`,onClick:()=>U(d),"data-track":"character_click_mention",children:[e.jsx("div",{className:"character-mention-popup__item-avatar",children:e.jsx($t,{characterId:d.id,profilePictureUrl:d.profilePictureUrl,alt:d.username})}),e.jsxs("span",{className:"character-mention-popup__item-name",children:["@",d.username]})]},d.id))})},Pa={visible:!1,query:"",position:{top:0,left:0},showBelow:!1,startIndex:-1,selectedIndex:0};function bt({enabled:a=!0,onPromptChange:t,prompt:n}){const[o,r]=s.useState(Pa),c=s.useRef(null),{completedCharacters:m}=it(),v=s.useCallback(d=>{if(!c.current)return{top:0,left:0,showBelow:!1};const j=c.current,f=j.getBoundingClientRect(),w=document.createElement("div"),I=window.getComputedStyle(j),A=["fontFamily","fontSize","fontWeight","fontStyle","letterSpacing","lineHeight","textTransform","wordSpacing","whiteSpace","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","boxSizing"];w.style.position="absolute",w.style.top="0",w.style.left="-9999px",w.style.visibility="hidden",w.style.whiteSpace="pre-wrap",w.style.overflowWrap="break-word",w.style.overflow="hidden",w.style.width=`${j.clientWidth}px`,A.forEach(E=>{w.style[E]=I.getPropertyValue(E.replace(/([A-Z])/g,"-$1").toLowerCase())}),document.body.appendChild(w);let y=0,b=0;try{const E=j.value.substring(0,d),D=document.createTextNode(E),T=document.createElement("span");T.textContent="",w.appendChild(D),w.appendChild(T);const P=T.getBoundingClientRect(),g=w.getBoundingClientRect();y=P.top-g.top,b=P.left-g.left}finally{document.body.removeChild(w)}const p=j.scrollTop,h=parseInt(I.lineHeight)||20;let z=f.top+y-p,N=f.left+b;const L=240,H=window.innerWidth;N+L>H-16&&(N=H-L-16),N<16&&(N=16);const S=z<220+16;return S?z=z+h+4:z=z-48,{top:z,left:N,showBelow:S}},[]),x=s.useCallback((d,j)=>{if(!a)return;const f=d.substring(0,j),w=f.lastIndexOf("@");if(w===-1){r(b=>({...b,visible:!1}));return}const I=w>0?d[w-1]:" ";if(!/\s/.test(I)&&w!==0){r(b=>({...b,visible:!1}));return}const A=f.substring(w+1);if(A.includes(" ")){r(b=>({...b,visible:!1}));return}const y=v(j);r({visible:!0,query:A,position:{top:y.top,left:y.left},showBelow:y.showBelow,startIndex:w,selectedIndex:0})},[a,v]),u=s.useCallback(d=>{var A;if(o.startIndex===-1)return;const j=n.substring(0,o.startIndex),f=((A=c.current)==null?void 0:A.selectionStart)||n.length,w=n.substring(f),I=`${j}@${d.username} ${w}`;t(I),r(y=>({...y,visible:!1})),setTimeout(()=>{if(c.current){const y=j.length+d.username.length+2;c.current.focus(),c.current.setSelectionRange(y,y)}},0)},[o.startIndex,n,t]),C=s.useCallback(d=>{if(!o.visible)return;const j=o.query?m.filter(f=>f.username.toLowerCase().includes(o.query.toLowerCase())):m;switch(d.key){case"ArrowDown":d.preventDefault(),r(f=>({...f,selectedIndex:Math.min(f.selectedIndex+1,j.length-1)}));break;case"ArrowUp":d.preventDefault(),r(f=>({...f,selectedIndex:Math.max(f.selectedIndex-1,0)}));break;case"Enter":case"Tab":j.length>0&&(d.preventDefault(),u(j[o.selectedIndex]));break;case"Escape":d.preventDefault(),r(f=>({...f,visible:!1}));break}},[o,m,u]),U=s.useCallback((d,j)=>{t(d),x(d,j)},[t,x]),_=s.useCallback(()=>{r(d=>({...d,visible:!1}))},[]);return{mentionState:o,setMentionState:r,textareaRef:c,completedCharacters:m,handleTextChange:U,handleKeyDown:C,handleCharacterSelect:u,closeMentionPopup:_,calculateMentionPosition:v}}const yt=({prompt:a,onPromptChange:t,presetPrompts:n,language:o,type:r,disabled:c=!1,onError:m,enableMention:v=!0,videoProvider:x})=>{const[u,C]=s.useState(!1),U=s.useRef(null),_=s.useRef(null),[d,j]=s.useState(null),[f,w]=s.useState(0),I=s.useMemo(()=>ge.sortPrompts(r,n).map((P,g)=>({id:`preset-${g}-${P.slice(0,20)}`,content:P,pinned:ge.isPinned(r,P)})),[r,n,f]),A=v&&r==="video"&&x==="sora",{mentionState:y,textareaRef:b,handleTextChange:p,handleKeyDown:h,handleCharacterSelect:z,closeMentionPopup:N}=bt({enabled:A,onPromptChange:t,prompt:a}),L=s.useCallback(()=>{if(_.current&&u){const T=_.current.getBoundingClientRect();j({top:T.top-4,left:T.right})}},[u]);s.useEffect(()=>{if(u)return L(),window.addEventListener("scroll",L,!0),window.addEventListener("resize",L),()=>{window.removeEventListener("scroll",L,!0),window.removeEventListener("resize",L)}},[u,L]),s.useEffect(()=>{const T=P=>{const g=P.target;if(U.current&&!U.current.contains(g)){const B=document.querySelector(".preset-prompt-panel-portal");B!=null&&B.contains(g)||C(!1)}};if(u)return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[u]);const H=s.useCallback(T=>{t(T),m==null||m(null),C(!1)},[t,m]),G=s.useCallback(T=>{const P=I.find(g=>g.id===T);P&&(P.pinned?ge.unpinPrompt(r,P.content):ge.pinPrompt(r,P.content),w(g=>g+1))},[r,I]),S=s.useCallback(T=>{const P=I.find(g=>g.id===T);P&&(ge.deletePrompt(r,P.content),w(g=>g+1))},[r,I]),E=s.useCallback(T=>{const P=T.target.value,g=T.target.selectionStart||0;p(P,g),m==null||m(null)},[p,m]);s.useEffect(()=>{r!=="video"&&N()},[r,N]);const D=()=>{if(!u||!d)return null;const T=o==="zh"?`${r==="image"?"图片":"视频"}描述预设`:`${r==="image"?"Image":"Video"} Description Presets`,P=e.jsx("div",{className:"preset-prompt-panel-portal",style:{position:"fixed",top:d.top,left:d.left,transform:"translate(-100%, -100%)",zIndex:Ut.DIALOG_POPOVER},children:e.jsx(Bt,{title:T,items:I,onSelect:H,onTogglePin:G,onDelete:S,language:o,disabled:c,showCount:!0})});return lt.createPortal(P,document.body)};return e.jsxs("div",{className:"form-field",children:[e.jsxs("div",{className:"form-label-with-icon",children:[e.jsx("label",{className:"form-label",children:o==="zh"?`${r==="image"?"图片":"视频"}描述`:`${r==="image"?"Image":"Video"} Description`}),e.jsx("div",{className:"textarea-with-preset",children:e.jsxs("div",{className:"preset-tooltip-container",ref:U,children:[e.jsx("button",{ref:_,type:"button",className:"preset-icon-button",disabled:c,onClick:()=>C(!u),children:"💡"}),D()]})})]}),e.jsx("textarea",{ref:b,className:"form-textarea",value:a,onChange:E,onKeyDown:h,placeholder:Da(o,r,x),rows:4,disabled:c}),A&&e.jsx(wt,{visible:y.visible,query:y.query,position:y.position,showBelow:y.showBelow,selectedIndex:y.selectedIndex,onSelect:z,onClose:N})]})};function Ma(a){return a.map(t=>t.prompt.trim()).filter(t=>t.length>0).filter((t,n,o)=>o.indexOf(t)===n)}const _t=(a,t,n)=>{const o=a==="image"?Ht(t):Kt(t),r=Ma(n);return[...[...a==="video"?Vt():Gt(),...r].filter((x,u,C)=>C.indexOf(x)===u).slice(0,Wt),...o].filter((x,u,C)=>C.indexOf(x)===u).slice(0,qt)},jt=(a,t,n)=>{!t||!t.trim()||(a==="video"?Yt(t.trim()):Jt(t.trim()))},ka=({model:a,duration:t,size:n,onDurationChange:o,onSizeChange:r,disabled:c=!1})=>{const m=De(a);s.useEffect(()=>{const u=Se(a);m.durationOptions.find(_=>_.value===t)||o(u.duration),m.sizeOptions.find(_=>_.value===n)||r(u.size)},[a]);const v=m.durationOptions.map(u=>({label:u.label,value:u.value})),x=m.sizeOptions.map(u=>({label:`${u.label} (${u.value})`,value:u.value}));return e.jsxs("div",{className:"video-model-options",children:[e.jsxs("div",{className:"video-model-options__row",children:[e.jsx("label",{className:"video-model-options__label",children:"时长"}),e.jsx("div",{className:"video-model-options__control",children:m.durationOptions.length===1?e.jsx("span",{className:"video-model-options__fixed-value",children:m.durationOptions[0].label}):e.jsx(Oe.Group,{value:t,onChange:u=>o(u),disabled:c,variant:"default-filled",size:"small",children:v.map(u=>e.jsx(Oe.Button,{value:u.value,children:u.label},u.value))})})]}),e.jsxs("div",{className:"video-model-options__row",children:[e.jsx("label",{className:"video-model-options__label",children:"尺寸"}),e.jsx("div",{className:"video-model-options__control",children:e.jsx(_e,{value:n,onChange:u=>r(u),disabled:c,size:"small",options:x,style:{width:"200px"}})})]})]})},It={label:"自动",value:"auto",width:0,height:0,description:"由模型自动决定最佳比例"},Ee=[It,{label:"1:1",value:"1:1",width:1,height:1,description:"正方形"},{label:"2:3",value:"2:3",width:2,height:3,description:"竖版标准"},{label:"3:2",value:"3:2",width:3,height:2,description:"横版标准"},{label:"3:4",value:"3:4",width:3,height:4,description:"竖版"},{label:"4:3",value:"4:3",width:4,height:3,description:"横版"},{label:"4:5",value:"4:5",width:4,height:5,description:"竖版社交"},{label:"5:4",value:"5:4",width:5,height:4,description:"横版"},{label:"9:16",value:"9:16",width:9,height:16,description:"竖屏全屏"},{label:"16:9",value:"16:9",width:16,height:9,description:"横屏全屏"},{label:"21:9",value:"21:9",width:21,height:9,description:"超宽屏"}],Ze="auto";function Ra(a){return Ee.find(t=>t.value===a)}const Oa=({value:a,onChange:t,compact:n=!0})=>{const{language:o}=he(),[r,c]=s.useState(!1),m=s.useRef(null),v=s.useMemo(()=>a==="auto"?It:Ra(a),[a]);s.useEffect(()=>{const u=C=>{m.current&&!m.current.contains(C.target)&&c(!1)};return r&&document.addEventListener("mousedown",u),()=>{document.removeEventListener("mousedown",u)}},[r]);const x=u=>{t(u.value),c(!1)};return n?e.jsxs("div",{className:"aspect-ratio-selector aspect-ratio-selector--compact",ref:m,children:[e.jsx("div",{className:"aspect-ratio-selector__label",children:o==="zh"?"比例":"Ratio"}),e.jsxs("div",{className:`aspect-ratio-selector__trigger ${r?"aspect-ratio-selector__trigger--open":""}`,"data-track":"ai_click_ratio_toggle",onClick:()=>c(!r),children:[e.jsx("span",{className:"aspect-ratio-selector__trigger-value",children:(v==null?void 0:v.label)||a}),e.jsx("span",{className:`aspect-ratio-selector__trigger-icon ${r?"aspect-ratio-selector__trigger-icon--open":""}`,children:"▼"})]}),r&&e.jsx("div",{className:"aspect-ratio-selector__dropdown",children:e.jsx("div",{className:"aspect-ratio-selector__dropdown-grid",children:Ee.map(u=>e.jsx(Le,{content:u.description,theme:"light",placement:"top",children:e.jsx("div",{className:`aspect-ratio-selector__dropdown-item ${a===u.value?"aspect-ratio-selector__dropdown-item--selected":""}`,"data-track":"ai_click_ratio_select",onClick:()=>x(u),children:u.label})},u.value))})})]}):e.jsxs("div",{className:"aspect-ratio-selector",children:[e.jsx("div",{className:"aspect-ratio-selector__label",children:o==="zh"?"图片比例":"Aspect Ratio"}),e.jsx("div",{className:"aspect-ratio-selector__options",children:Ee.map(u=>e.jsx(Le,{content:u.description,theme:"light",placement:"top",children:e.jsx("div",{className:`aspect-ratio-selector__option ${a===u.value?"aspect-ratio-selector__option--selected":""}`,"data-track":"ai_click_ratio_select",onClick:()=>t(u.value),children:e.jsx("span",{className:"aspect-ratio-selector__option-ratio",children:u.label})})},u.value))})]})};function Ct(){return`scene-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}function et(a,t){return{id:Ct(),order:a,duration:t,prompt:""}}function La(a,t,n=1){if(a.length===0)return{valid:!1,error:"至少需要一个场景"};for(const r of a){if(r.duration<n)return{valid:!1,error:`场景 ${r.order} 时长不能少于 ${n} 秒`};if(r.duration>t)return{valid:!1,error:`场景 ${r.order} 时长不能超过 ${t} 秒`}}const o=a.find(r=>!r.prompt.trim());return o?{valid:!1,error:`场景 ${o.order} 需要填写提示词`}:{valid:!0}}function Aa(a){return a.sort((t,n)=>t.order-n.order).map((t,n)=>`Shot ${n+1}:
|
|
43
|
+
#### Wow, a programmer 🤯 ⌨️ 💡 👩 💻`,Sa=()=>{const{appState:a,setAppState:t}=we(),{t:n,language:o}=he(),[r,c]=s.useState({loaded:!1,api:Promise.resolve({parseMarkdownToDrawnix:(f,w)=>null})});s.useEffect(()=>{(async()=>{try{const w=await be(()=>import("./index-D1NStEds.js"),__vite__mapDeps([5,1,2,6,7]),import.meta.url);c({loaded:!0,api:Promise.resolve(w)})}catch(w){console.error("Failed to load mermaid library:",w),_(new Error(n("dialog.error.loadMermaid")))}})()},[]);const[m,v]=s.useState(()=>Qe(o)),[x,u]=s.useState(()=>[]),C=s.useDeferredValue(m.trim()),[U,_]=s.useState(null),d=Te();s.useEffect(()=>{v(Qe(o))},[o]),s.useEffect(()=>{(async()=>{try{const w=await r.api;let I;try{I=await w.parseMarkdownToDrawnix(C)}catch{I=await w.parseMarkdownToDrawnix(C.replace(/"/g,"'"))}const A=I;A.points=[[0,0]],A&&(u([A]),_(null))}catch(w){_(w)}})()},[C,r]);const j=()=>{if(!x.length)return;let f;const w=at(d);if(w)f=w;else{const A=st.getBoardContainer(d).getBoundingClientRect(),y=[A.width/4,A.height/2-20],b=d.viewport.zoom,p=rt(d),h=p[0]+y[0]/b,z=p[1]+y[1]/b;f=[h,z]}const I=x;d.insertFragment({elements:JSON.parse(JSON.stringify(I))},f,nt.paste),f&&requestAnimationFrame(()=>{ot(d,f)}),t({...a,openDialogType:null})};return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"ttd-dialog-desc",children:n("dialog.markdown.description")}),e.jsxs(dt,{children:[e.jsx(xe,{label:n("dialog.markdown.syntax"),children:e.jsx(ut,{input:m,placeholder:n("dialog.markdown.placeholder"),onChange:f=>v(f.target.value),onKeyboardSubmit:()=>{j()}})}),e.jsx(xe,{label:n("dialog.markdown.preview"),panelAction:{action:()=>{j()},label:n("dialog.markdown.insert")},renderSubmitShortcut:()=>e.jsx(pt,{}),children:e.jsx(mt,{value:x,loaded:r.loaded,error:U})})]})]})};function ht(){const{completedTasks:a}=ye(),t=s.useMemo(()=>a.filter(r=>{var c;return r.type===X.IMAGE&&((c=r.result)==null?void 0:c.url)}).map(r=>({id:r.id,type:"image",prompt:r.params.prompt,timestamp:r.completedAt||r.createdAt,imageUrl:r.result.url,width:r.result.width||1024,height:r.result.height||1024,uploadedImages:r.params.uploadedImages})).sort((r,c)=>c.timestamp-r.timestamp),[a]),n=s.useMemo(()=>a.filter(r=>{var c;return r.type===X.VIDEO&&((c=r.result)==null?void 0:c.url)}).map(r=>({id:r.id,type:"video",prompt:r.params.prompt,timestamp:r.completedAt||r.createdAt,imageUrl:r.result.thumbnailUrl||r.result.url,width:r.result.width||400,height:r.result.height||225,previewUrl:r.result.url,downloadUrl:r.result.url,uploadedImage:r.params.uploadedImage})).sort((r,c)=>c.timestamp-r.timestamp),[a]),o=s.useMemo(()=>[...t,...n].sort((r,c)=>c.timestamp-r.timestamp),[t,n]);return{imageHistory:t,videoHistory:n,allHistory:o}}const Xe=(a,t,n)=>{const o=n==="image"?{isGenerating:a,imageLoading:t}:{isGenerating:a,videoLoading:t};window.dispatchEvent(new CustomEvent("ai-generation-state-change",{detail:o}))},ft=(a,t,n)=>{s.useEffect(()=>{const o=r=>{(r.metaKey||r.ctrlKey)&&r.key==="Enter"&&(r.preventDefault(),!a&&t.trim()&&n())};return document.addEventListener("keydown",o),()=>{document.removeEventListener("keydown",o)}},[a,t,n])},gt=a=>{const[t,n]=s.useState(!1),[o,r]=s.useState(!1),c=s.useCallback(v=>{n(v),Xe(v,o,a)},[o,a]),m=s.useCallback(v=>{r(v),Xe(t,v,a)},[t,a]);return{isGenerating:t,isLoading:o,updateIsGenerating:c,updateIsLoading:m}},Da=(a,t,n)=>t==="image"?a==="zh"?"一只可爱的小猫坐在窗台上,阳光透过窗户洒在它的毛发上,背景是温馨的家居环境":"A cute kitten sitting on a windowsill, with sunlight streaming through the window onto its fur, with a cozy home environment in the background":n==="sora"?a==="zh"?"描述视频内容,输入 @ 可引用已创建的角色,如 @username 在海边漫步...":"Describe video content, type @ to reference created characters, e.g. @username walking on the beach...":a==="zh"?"生成一个美丽的日出场景,阳光从山峰后缓缓升起,云朵轻柔地飘动":"Generate a beautiful sunrise scene where the sun slowly rises from behind mountains with clouds gently floating",Na=[1,2,3,4,5,10,20,50,100],Ea="aitu_image_generation_quantity",Ta="aitu_video_generation_quantity",Ce=100,vt=({language:a,type:t,isGenerating:n,hasGenerated:o,canGenerate:r,onGenerate:c,onReset:m,leftContent:v})=>{const x=t==="video"?Ta:Ea,[u,C]=s.useState(()=>{try{const p=localStorage.getItem(x);if(p){const h=parseInt(p,10);if(!isNaN(h)&&h>=1&&h<=Ce)return h}}catch{}return 1}),[U,_]=s.useState(!1),[d,j]=s.useState(()=>u.toString()),f=s.useRef(null);s.useEffect(()=>{j(u.toString());try{localStorage.setItem(x,u.toString())}catch{}},[u,x]),s.useEffect(()=>{const p=h=>{f.current&&!f.current.contains(h.target)&&(_(!1),w())};return document.addEventListener("mousedown",p),()=>document.removeEventListener("mousedown",p)},[d]);const w=()=>{let p=parseInt(d,10);(isNaN(p)||p<1)&&(p=1),p>Ce&&(p=Ce),j(p.toString()),C(p)},I=p=>{const h=p.target.value;(h===""||/^\d*$/.test(h))&&j(h)},A=p=>{C(p),j(p.toString()),_(!1)},y=()=>{n||_(!U)},b=()=>{c(u)};return e.jsxs("div",{className:"section-actions unified-action-bar",children:[v&&e.jsx("div",{className:"action-bar-left",children:v}),e.jsxs("div",{className:`unified-action-box ${n?"is-generating":""} ${r?"can-generate":""}`,children:[e.jsxs("div",{className:"quantity-section",ref:f,children:[e.jsx("span",{className:"quantity-label",children:a==="zh"?"数量":"Count"}),e.jsxs("div",{className:`quantity-control ${U?"is-open":""} ${n?"is-disabled":""}`,children:[e.jsx("input",{type:"text",inputMode:"numeric",value:d,onChange:I,onBlur:w,"data-track":"ai_click_quantity_input",onClick:()=>!n&&_(!0),disabled:n,className:"quantity-input"}),e.jsx("button",{type:"button","data-track":"ai_click_quantity_toggle",onClick:p=>{p.stopPropagation(),y()},disabled:n,className:"quantity-toggle",children:e.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:`quantity-icon ${U?"is-open":""}`,children:e.jsx("polyline",{points:"6 9 12 15 18 9"})})})]}),U&&e.jsxs("div",{className:"quantity-dropdown",children:[e.jsx("div",{className:"quantity-dropdown-header",children:a==="zh"?"选择数量":"Select Quantity"}),Na.map(p=>e.jsxs("button",{type:"button","data-track":"ai_click_quantity_select",onClick:()=>A(p),className:`quantity-option ${u===p?"is-selected":""}`,children:[e.jsxs("span",{children:[p," ",t==="video"?a==="zh"?"个":p>1?"videos":"video":a==="zh"?"张":p>1?"images":"image"]}),u===p&&e.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:e.jsx("polyline",{points:"20 6 9 17 4 12"})})]},p))]})]}),e.jsx("div",{className:"action-divider"}),e.jsx("button",{"data-track":"ai_click_generate",onClick:b,disabled:n||!r,className:`generate-button ${n?"loading":""}`,children:n?a==="zh"?"生成中...":"Generating...":o?a==="zh"?"重新生成":"Regenerate":t==="video"?a==="zh"?"生成视频":"Generate Video":a==="zh"?"生成":"Generate"})]}),e.jsx("button",{"data-track":"ai_click_reset",onClick:m,disabled:n,className:"action-button secondary",children:a==="zh"?"重置":"Reset"})]})},xt=({error:a})=>a?e.jsx("div",{className:"form-error",children:a}):null,wt=({visible:a,query:t,position:n,showBelow:o=!1,selectedIndex:r,onSelect:c,onClose:m})=>{const{completedCharacters:v,isLoading:x}=it(),u=s.useRef(null),C=s.useMemo(()=>{if(!t)return v;const d=t.toLowerCase();return v.filter(j=>j.username.toLowerCase().includes(d))},[v,t]);s.useEffect(()=>{if(!a||!u.current)return;const d=u.current.querySelector(".character-mention-popup__item--selected");d&&d.scrollIntoView({block:"nearest"})},[a,r]),s.useEffect(()=>{if(!a)return;const d=j=>{u.current&&!u.current.contains(j.target)&&m()};return document.addEventListener("mousedown",d),()=>document.removeEventListener("mousedown",d)},[a,m]);const U=s.useCallback(d=>{c(d)},[c]);if(!a)return null;const _={position:"fixed",top:n.top,left:n.left,transform:o?"none":"translateY(-100%)",zIndex:1e4,maxHeight:"200px",overflowY:"auto"};return x?e.jsx("div",{ref:u,className:"character-mention-popup",style:_,children:e.jsx("div",{className:"character-mention-popup__empty",children:"加载中..."})}):C.length===0?e.jsx("div",{ref:u,className:"character-mention-popup",style:_,children:e.jsx("div",{className:"character-mention-popup__empty",children:t?`未找到 "${t}" 相关角色`:"暂无可用角色"})}):e.jsx("div",{ref:u,className:"character-mention-popup",style:_,children:C.map((d,j)=>e.jsxs("div",{className:`character-mention-popup__item ${j===r?"character-mention-popup__item--selected":""}`,onClick:()=>U(d),"data-track":"character_click_mention",children:[e.jsx("div",{className:"character-mention-popup__item-avatar",children:e.jsx($t,{characterId:d.id,profilePictureUrl:d.profilePictureUrl,alt:d.username})}),e.jsxs("span",{className:"character-mention-popup__item-name",children:["@",d.username]})]},d.id))})},Pa={visible:!1,query:"",position:{top:0,left:0},showBelow:!1,startIndex:-1,selectedIndex:0};function bt({enabled:a=!0,onPromptChange:t,prompt:n}){const[o,r]=s.useState(Pa),c=s.useRef(null),{completedCharacters:m}=it(),v=s.useCallback(d=>{if(!c.current)return{top:0,left:0,showBelow:!1};const j=c.current,f=j.getBoundingClientRect(),w=document.createElement("div"),I=window.getComputedStyle(j),A=["fontFamily","fontSize","fontWeight","fontStyle","letterSpacing","lineHeight","textTransform","wordSpacing","whiteSpace","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","boxSizing"];w.style.position="absolute",w.style.top="0",w.style.left="-9999px",w.style.visibility="hidden",w.style.whiteSpace="pre-wrap",w.style.overflowWrap="break-word",w.style.overflow="hidden",w.style.width=`${j.clientWidth}px`,A.forEach(E=>{w.style[E]=I.getPropertyValue(E.replace(/([A-Z])/g,"-$1").toLowerCase())}),document.body.appendChild(w);let y=0,b=0;try{const E=j.value.substring(0,d),D=document.createTextNode(E),T=document.createElement("span");T.textContent="",w.appendChild(D),w.appendChild(T);const P=T.getBoundingClientRect(),g=w.getBoundingClientRect();y=P.top-g.top,b=P.left-g.left}finally{document.body.removeChild(w)}const p=j.scrollTop,h=parseInt(I.lineHeight)||20;let z=f.top+y-p,N=f.left+b;const L=240,H=window.innerWidth;N+L>H-16&&(N=H-L-16),N<16&&(N=16);const S=z<220+16;return S?z=z+h+4:z=z-48,{top:z,left:N,showBelow:S}},[]),x=s.useCallback((d,j)=>{if(!a)return;const f=d.substring(0,j),w=f.lastIndexOf("@");if(w===-1){r(b=>({...b,visible:!1}));return}const I=w>0?d[w-1]:" ";if(!/\s/.test(I)&&w!==0){r(b=>({...b,visible:!1}));return}const A=f.substring(w+1);if(A.includes(" ")){r(b=>({...b,visible:!1}));return}const y=v(j);r({visible:!0,query:A,position:{top:y.top,left:y.left},showBelow:y.showBelow,startIndex:w,selectedIndex:0})},[a,v]),u=s.useCallback(d=>{var A;if(o.startIndex===-1)return;const j=n.substring(0,o.startIndex),f=((A=c.current)==null?void 0:A.selectionStart)||n.length,w=n.substring(f),I=`${j}@${d.username} ${w}`;t(I),r(y=>({...y,visible:!1})),setTimeout(()=>{if(c.current){const y=j.length+d.username.length+2;c.current.focus(),c.current.setSelectionRange(y,y)}},0)},[o.startIndex,n,t]),C=s.useCallback(d=>{if(!o.visible)return;const j=o.query?m.filter(f=>f.username.toLowerCase().includes(o.query.toLowerCase())):m;switch(d.key){case"ArrowDown":d.preventDefault(),r(f=>({...f,selectedIndex:Math.min(f.selectedIndex+1,j.length-1)}));break;case"ArrowUp":d.preventDefault(),r(f=>({...f,selectedIndex:Math.max(f.selectedIndex-1,0)}));break;case"Enter":case"Tab":j.length>0&&(d.preventDefault(),u(j[o.selectedIndex]));break;case"Escape":d.preventDefault(),r(f=>({...f,visible:!1}));break}},[o,m,u]),U=s.useCallback((d,j)=>{t(d),x(d,j)},[t,x]),_=s.useCallback(()=>{r(d=>({...d,visible:!1}))},[]);return{mentionState:o,setMentionState:r,textareaRef:c,completedCharacters:m,handleTextChange:U,handleKeyDown:C,handleCharacterSelect:u,closeMentionPopup:_,calculateMentionPosition:v}}const yt=({prompt:a,onPromptChange:t,presetPrompts:n,language:o,type:r,disabled:c=!1,onError:m,enableMention:v=!0,videoProvider:x})=>{const[u,C]=s.useState(!1),U=s.useRef(null),_=s.useRef(null),[d,j]=s.useState(null),[f,w]=s.useState(0),I=s.useMemo(()=>ge.sortPrompts(r,n).map((P,g)=>({id:`preset-${g}-${P.slice(0,20)}`,content:P,pinned:ge.isPinned(r,P)})),[r,n,f]),A=v&&r==="video"&&x==="sora",{mentionState:y,textareaRef:b,handleTextChange:p,handleKeyDown:h,handleCharacterSelect:z,closeMentionPopup:N}=bt({enabled:A,onPromptChange:t,prompt:a}),L=s.useCallback(()=>{if(_.current&&u){const T=_.current.getBoundingClientRect();j({top:T.top-4,left:T.right})}},[u]);s.useEffect(()=>{if(u)return L(),window.addEventListener("scroll",L,!0),window.addEventListener("resize",L),()=>{window.removeEventListener("scroll",L,!0),window.removeEventListener("resize",L)}},[u,L]),s.useEffect(()=>{const T=P=>{const g=P.target;if(U.current&&!U.current.contains(g)){const B=document.querySelector(".preset-prompt-panel-portal");B!=null&&B.contains(g)||C(!1)}};if(u)return document.addEventListener("mousedown",T),()=>document.removeEventListener("mousedown",T)},[u]);const H=s.useCallback(T=>{t(T),m==null||m(null),C(!1)},[t,m]),G=s.useCallback(T=>{const P=I.find(g=>g.id===T);P&&(P.pinned?ge.unpinPrompt(r,P.content):ge.pinPrompt(r,P.content),w(g=>g+1))},[r,I]),S=s.useCallback(T=>{const P=I.find(g=>g.id===T);P&&(ge.deletePrompt(r,P.content),w(g=>g+1))},[r,I]),E=s.useCallback(T=>{const P=T.target.value,g=T.target.selectionStart||0;p(P,g),m==null||m(null)},[p,m]);s.useEffect(()=>{r!=="video"&&N()},[r,N]);const D=()=>{if(!u||!d)return null;const T=o==="zh"?`${r==="image"?"图片":"视频"}描述预设`:`${r==="image"?"Image":"Video"} Description Presets`,P=e.jsx("div",{className:"preset-prompt-panel-portal",style:{position:"fixed",top:d.top,left:d.left,transform:"translate(-100%, -100%)",zIndex:Ut.DIALOG_POPOVER},children:e.jsx(Bt,{title:T,items:I,onSelect:H,onTogglePin:G,onDelete:S,language:o,disabled:c,showCount:!0})});return lt.createPortal(P,document.body)};return e.jsxs("div",{className:"form-field",children:[e.jsxs("div",{className:"form-label-with-icon",children:[e.jsx("label",{className:"form-label",children:o==="zh"?`${r==="image"?"图片":"视频"}描述`:`${r==="image"?"Image":"Video"} Description`}),e.jsx("div",{className:"textarea-with-preset",children:e.jsxs("div",{className:"preset-tooltip-container",ref:U,children:[e.jsx("button",{ref:_,type:"button",className:"preset-icon-button",disabled:c,onClick:()=>C(!u),children:"💡"}),D()]})})]}),e.jsx("textarea",{ref:b,className:"form-textarea",value:a,onChange:E,onKeyDown:h,placeholder:Da(o,r,x),rows:4,disabled:c}),A&&e.jsx(wt,{visible:y.visible,query:y.query,position:y.position,showBelow:y.showBelow,selectedIndex:y.selectedIndex,onSelect:z,onClose:N})]})};function Ma(a){return a.map(t=>t.prompt.trim()).filter(t=>t.length>0).filter((t,n,o)=>o.indexOf(t)===n)}const _t=(a,t,n)=>{const o=a==="image"?Ht(t):Kt(t),r=Ma(n);return[...[...a==="video"?Vt():Gt(),...r].filter((x,u,C)=>C.indexOf(x)===u).slice(0,Wt),...o].filter((x,u,C)=>C.indexOf(x)===u).slice(0,qt)},jt=(a,t,n)=>{!t||!t.trim()||(a==="video"?Yt(t.trim()):Jt(t.trim()))},ka=({model:a,duration:t,size:n,onDurationChange:o,onSizeChange:r,disabled:c=!1})=>{const m=De(a);s.useEffect(()=>{const u=Se(a);m.durationOptions.find(_=>_.value===t)||o(u.duration),m.sizeOptions.find(_=>_.value===n)||r(u.size)},[a]);const v=m.durationOptions.map(u=>({label:u.label,value:u.value})),x=m.sizeOptions.map(u=>({label:`${u.label} (${u.value})`,value:u.value}));return e.jsxs("div",{className:"video-model-options",children:[e.jsxs("div",{className:"video-model-options__row",children:[e.jsx("label",{className:"video-model-options__label",children:"时长"}),e.jsx("div",{className:"video-model-options__control",children:m.durationOptions.length===1?e.jsx("span",{className:"video-model-options__fixed-value",children:m.durationOptions[0].label}):e.jsx(Oe.Group,{value:t,onChange:u=>o(u),disabled:c,variant:"default-filled",size:"small",children:v.map(u=>e.jsx(Oe.Button,{value:u.value,children:u.label},u.value))})})]}),e.jsxs("div",{className:"video-model-options__row",children:[e.jsx("label",{className:"video-model-options__label",children:"尺寸"}),e.jsx("div",{className:"video-model-options__control",children:e.jsx(_e,{value:n,onChange:u=>r(u),disabled:c,size:"small",options:x,style:{width:"200px"}})})]})]})},It={label:"自动",value:"auto",width:0,height:0,description:"由模型自动决定最佳比例"},Ee=[It,{label:"1:1",value:"1:1",width:1,height:1,description:"正方形"},{label:"2:3",value:"2:3",width:2,height:3,description:"竖版标准"},{label:"3:2",value:"3:2",width:3,height:2,description:"横版标准"},{label:"3:4",value:"3:4",width:3,height:4,description:"竖版"},{label:"4:3",value:"4:3",width:4,height:3,description:"横版"},{label:"4:5",value:"4:5",width:4,height:5,description:"竖版社交"},{label:"5:4",value:"5:4",width:5,height:4,description:"横版"},{label:"9:16",value:"9:16",width:9,height:16,description:"竖屏全屏"},{label:"16:9",value:"16:9",width:16,height:9,description:"横屏全屏"},{label:"21:9",value:"21:9",width:21,height:9,description:"超宽屏"}],Ze="auto";function Ra(a){return Ee.find(t=>t.value===a)}const Oa=({value:a,onChange:t,compact:n=!0})=>{const{language:o}=he(),[r,c]=s.useState(!1),m=s.useRef(null),v=s.useMemo(()=>a==="auto"?It:Ra(a),[a]);s.useEffect(()=>{const u=C=>{m.current&&!m.current.contains(C.target)&&c(!1)};return r&&document.addEventListener("mousedown",u),()=>{document.removeEventListener("mousedown",u)}},[r]);const x=u=>{t(u.value),c(!1)};return n?e.jsxs("div",{className:"aspect-ratio-selector aspect-ratio-selector--compact",ref:m,children:[e.jsx("div",{className:"aspect-ratio-selector__label",children:o==="zh"?"比例":"Ratio"}),e.jsxs("div",{className:`aspect-ratio-selector__trigger ${r?"aspect-ratio-selector__trigger--open":""}`,"data-track":"ai_click_ratio_toggle",onClick:()=>c(!r),children:[e.jsx("span",{className:"aspect-ratio-selector__trigger-value",children:(v==null?void 0:v.label)||a}),e.jsx("span",{className:`aspect-ratio-selector__trigger-icon ${r?"aspect-ratio-selector__trigger-icon--open":""}`,children:"▼"})]}),r&&e.jsx("div",{className:"aspect-ratio-selector__dropdown",children:e.jsx("div",{className:"aspect-ratio-selector__dropdown-grid",children:Ee.map(u=>e.jsx(Le,{content:u.description,theme:"light",placement:"top",children:e.jsx("div",{className:`aspect-ratio-selector__dropdown-item ${a===u.value?"aspect-ratio-selector__dropdown-item--selected":""}`,"data-track":"ai_click_ratio_select",onClick:()=>x(u),children:u.label})},u.value))})})]}):e.jsxs("div",{className:"aspect-ratio-selector",children:[e.jsx("div",{className:"aspect-ratio-selector__label",children:o==="zh"?"图片比例":"Aspect Ratio"}),e.jsx("div",{className:"aspect-ratio-selector__options",children:Ee.map(u=>e.jsx(Le,{content:u.description,theme:"light",placement:"top",children:e.jsx("div",{className:`aspect-ratio-selector__option ${a===u.value?"aspect-ratio-selector__option--selected":""}`,"data-track":"ai_click_ratio_select",onClick:()=>t(u.value),children:e.jsx("span",{className:"aspect-ratio-selector__option-ratio",children:u.label})})},u.value))})]})};function Ct(){return`scene-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}function et(a,t){return{id:Ct(),order:a,duration:t,prompt:""}}function La(a,t,n=1){if(a.length===0)return{valid:!1,error:"至少需要一个场景"};for(const r of a){if(r.duration<n)return{valid:!1,error:`场景 ${r.order} 时长不能少于 ${n} 秒`};if(r.duration>t)return{valid:!1,error:`场景 ${r.order} 时长不能超过 ${t} 秒`}}const o=a.find(r=>!r.prompt.trim());return o?{valid:!1,error:`场景 ${o.order} 需要填写提示词`}:{valid:!0}}function Aa(a){return a.sort((t,n)=>t.order-n.order).map((t,n)=>`Shot ${n+1}:
|
|
44
44
|
duration: ${t.duration}sec
|
|
45
45
|
Scene: ${t.prompt.trim()}`).join(`
|
|
46
46
|
|
|
47
|
-
`)}function za(a){const t=/Shot\s+(\d+):\s*\n\s*duration:\s*([\d.]+)\s*sec\s*\n\s*Scene:\s*([^\n]+(?:\n(?!Shot\s+\d+:)[^\n]*)*)/gi,n=[];let o;for(;(o=t.exec(a))!==null;){const r=parseInt(o[1],10),c=parseFloat(o[2]),m=o[3].trim();n.push({id:Ct(),order:r,duration:c,prompt:m})}return n.length===0?null:n.sort((r,c)=>r.order-c.order)}const Fa=({value:a,onChange:t,placeholder:n,disabled:o=!1,autoFocus:r=!1,enableMention:c=!0})=>{const{mentionState:m,textareaRef:v,handleTextChange:x,handleKeyDown:u,handleCharacterSelect:C,closeMentionPopup:U}=bt({enabled:c,onPromptChange:t,prompt:a}),_=s.useCallback(d=>{const j=d.target.value,f=d.target.selectionStart||0;x(j,f)},[x]);return s.useEffect(()=>{r&&v.current&&v.current.focus()},[r,v]),e.jsxs("div",{className:"scene-prompt-input",children:[e.jsx("textarea",{ref:v,className:"scene-prompt-input__textarea",value:a,onChange:_,onKeyDown:u,placeholder:n,disabled:o,rows:3}),c&&e.jsx(wt,{visible:m.visible,query:m.query,position:m.position,showBelow:m.showBelow,selectedIndex:m.selectedIndex,onSelect:C,onClose:U})]})},$a=({enabled:a,onEnabledChange:t,totalDuration:n,maxScenes:o,minSceneDuration:r,scenes:c,onScenesChange:m,disabled:v=!1})=>{const[x,u]=s.useState(null),C=s.useRef(null);s.useEffect(()=>{a&&c.length>0&&!x&&u(c[0].id)},[a,c,x]);const U=s.useCallback(()=>{if(c.length>=o)return;const b=c.reduce((N,L)=>N+L.duration,0),p=n-b;let h=Math.max(r,p/2);h=parseFloat(h.toFixed(1)),h<r&&(h=r);const z=et(c.length+1,h);m([...c,z]),u(z.id),setTimeout(()=>{var N;(N=C.current)==null||N.scrollIntoView({behavior:"smooth"})},100)},[c,o,n,r,m]),_=s.useCallback(b=>{var z;if(c.length<=1)return;const h=c.filter(N=>N.id!==b).map((N,L)=>({...N,order:L+1}));m(h),x===b&&u(((z=h[0])==null?void 0:z.id)||null)},[c,m,x]),d=s.useCallback(b=>{const p=c.filter(h=>h.id!==b).reduce((h,z)=>h+z.duration,0);return Math.max(r,n-p)},[c,n,r]),j=s.useCallback(b=>{const p=d(b),h=[],z=.1;for(let N=r;N<=p+.001;N+=z){const L=parseFloat(N.toFixed(1));L<=p&&h.push({label:`${L}`,value:L})}return h},[r,d]),f=s.useCallback((b,p)=>{const h=typeof p=="string"?parseFloat(p):p;if(isNaN(h))return;const z=d(b),N=c.map(L=>{if(L.id===b){const H=Math.max(r,Math.min(h,z)),G=parseFloat(H.toFixed(1));return{...L,duration:G}}return L});m(N)},[c,r,d,m]),w=s.useCallback((b,p)=>{const h=c.map(z=>z.id===b?{...z,prompt:p}:z);m(h)},[c,m]),I=s.useCallback(b=>{if(t(b),b&&c.length===0){const p=et(1,n);m([p]),u(p.id)}},[c,n,t,m]),A=s.useCallback(b=>{u(b)},[]),y=c.length<o;return e.jsxs("div",{className:"storyboard-editor",children:[e.jsxs("div",{className:"storyboard-editor__header",children:[e.jsxs("div",{className:"storyboard-editor__toggle",children:[e.jsx(Qt,{value:a,onChange:I,disabled:v,size:"small"}),e.jsxs("div",{className:"storyboard-editor__title",children:[e.jsx("span",{className:"storyboard-editor__title-text",children:"故事场景模式"}),e.jsx("span",{className:"storyboard-editor__title-desc",children:"定义多个场景及其时长"})]})]}),a&&e.jsx("span",{className:"storyboard-editor__new-badge",children:"NEW"})]}),a&&e.jsxs("div",{className:"storyboard-editor__content",children:[e.jsxs("div",{className:"storyboard-editor__section-header",children:[e.jsx("span",{className:"storyboard-editor__section-title",children:"场景列表"}),e.jsxs("span",{className:"storyboard-editor__section-hint",children:["共 ",c.length," 个场景,已用 ",c.reduce((b,p)=>b+p.duration,0).toFixed(1)," 秒 / 总时长 ",n," 秒"]})]}),e.jsxs("div",{className:"storyboard-editor__scenes",children:[c.map((b,p)=>{const h=x===b.id,z=p===c.length-1;return e.jsxs("div",{className:`storyboard-editor__scene-wrapper ${h?"is-selected":""}`,children:[e.jsx("div",{className:`storyboard-editor__timeline-line ${z?"is-last":""}`}),e.jsx("div",{className:`storyboard-editor__timeline-node ${h?"is-selected":""}`,children:h?p+1:""}),!h&&e.jsxs("div",{className:"storyboard-editor__scene storyboard-editor__scene--compact",onClick:()=>A(b.id),children:[e.jsx("span",{className:"storyboard-editor__scene-index",children:p+1}),e.jsx("div",{className:"storyboard-editor__scene-preview",children:e.jsx("p",{className:"storyboard-editor__scene-preview-text",children:b.prompt||"暂无场景描述..."})}),e.jsxs("div",{className:"storyboard-editor__scene-duration-badge",children:[e.jsx(Ne,{size:"12px"}),e.jsxs("span",{children:[b.duration,"s"]})]}),e.jsx(ct,{className:"storyboard-editor__scene-arrow",size:"14px"})]}),h&&e.jsxs("div",{className:"storyboard-editor__scene storyboard-editor__scene--expanded",children:[e.jsxs("div",{className:"storyboard-editor__scene-header",children:[e.jsx("div",{className:"storyboard-editor__scene-info",children:e.jsxs("span",{className:"storyboard-editor__scene-label",children:[e.jsx("span",{className:"storyboard-editor__active-indicator"}),"场景 ",p+1]})}),e.jsxs("div",{className:"storyboard-editor__scene-controls",children:[e.jsx(Ne,{className:"storyboard-editor__time-icon"}),e.jsx(_e,{value:parseFloat(b.duration.toFixed(1)),onChange:N=>f(b.id,N),disabled:v,className:"storyboard-editor__duration-select",size:"small",options:j(b.id),filterable:!0,creatable:!0,popupProps:{overlayClassName:"storyboard-editor__duration-popup"}}),c.length>1&&e.jsx(de,{theme:"default",variant:"text",size:"small",icon:e.jsx(Xt,{}),onClick:N=>{N.stopPropagation(),_(b.id)},disabled:v,className:"storyboard-editor__scene-delete"})]})]}),e.jsx("div",{className:"storyboard-editor__scene-prompt",children:e.jsx(Fa,{value:b.prompt,onChange:N=>w(b.id,N),placeholder:`描述场景 ${p+1} 的内容,输入 @ 可引用角色`,disabled:v,autoFocus:!0,enableMention:!0})})]})]},b.id)}),e.jsx("div",{ref:C})]}),y&&e.jsx(de,{theme:"default",variant:"dashed",size:"medium",icon:e.jsx(Zt,{}),onClick:U,disabled:v,className:"storyboard-editor__add-btn",block:!0,children:"添加场景"})]})]})},St=({images:a,onImagesChange:t,language:n="zh",disabled:o=!1,multiple:r=!0,maxCount:c=10,label:m,slotLabels:v,onError:x})=>{const[u,C]=s.useState(!1),[U,_]=s.useState(!1),[d,j]=s.useState(0),f=s.useRef(null),w=s.useRef(null),{addAsset:I}=ea(),y={zh:{local:"本地",library:"素材库",dragHint:"拖拽图片到此处",pasteHint:"或 Ctrl+V 粘贴",invalidFile:"请上传图片文件",fileTooLarge:"图片大小不能超过 10MB",someFilesInvalid:"部分文件格式不支持或超过10MB限制",loadFailed:"加载图片失败",maxCountReached:"最多上传 {count} 张图片"},en:{local:"Local",library:"Library",dragHint:"Drop images here",pasteHint:"or Ctrl+V to paste",invalidFile:"Please upload image files",fileTooLarge:"Image size cannot exceed 10MB",someFilesInvalid:"Some files are not supported or exceed 10MB limit",loadFailed:"Failed to load image",maxCountReached:"Maximum {count} images allowed"}}[n],b=s.useCallback(i=>i.type.startsWith("image/")?i.size>10*1024*1024?(Q.error(y.fileTooLarge),!1):!0:(Q.error(y.invalidFile),!1),[y]),p=s.useCallback(i=>new Promise((l,k)=>{const R=new FileReader;R.onload=()=>{l({url:R.result,name:i.name,file:i})},R.onerror=k,R.readAsDataURL(i)}),[]),h=s.useCallback(async(i,l)=>{const R=Array.from(i).filter(b);if(R.length!==0){r&&a.length+R.length>c&&(Q.warning(y.maxCountReached.replace("{count}",String(c))),R.splice(c-a.length)),R.forEach(O=>{I(O,Ae.IMAGE,ta.LOCAL,O.name).catch(K=>{console.warn("[ReferenceImageUpload] Failed to add asset to library:",K)})});try{const O=await Promise.all(R.map(p));if(v&&l!==void 0){const K=[...a];K[l]=O[0],t(K.filter(Boolean))}else t(r?[...a,...O]:O.slice(0,1));x==null||x(null)}catch(O){console.error("[ReferenceImageUpload] Failed to process files:",O),x==null||x(y.loadFailed)}}},[a,r,c,v,b,p,I,t,x,y]),z=s.useCallback(i=>{const l=i.target.files;l&&l.length>0&&h(l,v?d:void 0),i.target.value=""},[h,v,d]),N=s.useCallback(async i=>{try{const k=await(await fetch(i.url)).blob(),R=new FileReader;R.onload=()=>{const O={url:R.result,name:i.name};if(v){const K=[...a];K[d]=O,t(K.filter(Boolean))}else if(r){if(a.length>=c){Q.warning(y.maxCountReached.replace("{count}",String(c)));return}t([...a,O])}else t([O]);C(!1),x==null||x(null)},R.readAsDataURL(k)}catch(l){console.error("[ReferenceImageUpload] Failed to convert asset to base64:",l),x==null||x(y.loadFailed),C(!1)}},[a,r,c,v,d,t,x,y]),L=s.useCallback(i=>{i.preventDefault(),i.stopPropagation(),o||_(!0)},[o]),H=s.useCallback(i=>{var k;i.preventDefault(),i.stopPropagation();const l=(k=f.current)==null?void 0:k.getBoundingClientRect();if(l){const{clientX:R,clientY:O}=i;(R<l.left||R>l.right||O<l.top||O>l.bottom)&&_(!1)}},[]),G=s.useCallback(i=>{i.preventDefault(),i.stopPropagation()},[]),S=s.useCallback((i,l)=>{if(i.preventDefault(),i.stopPropagation(),_(!1),o)return;const k=i.dataTransfer.files;k&&k.length>0&&h(k,l)},[o,h]);s.useEffect(()=>{const i=async l=>{var le;if(o)return;const k=document.activeElement,R=f.current;if(!R||!(R.contains(k)||k===document.body||(k==null?void 0:k.tagName)==="BODY"))return;const K=(le=l.clipboardData)==null?void 0:le.items;if(!K)return;const ae=[];for(let re=0;re<K.length;re++){const se=K[re];if(se.type.startsWith("image/")){const oe=se.getAsFile();oe&&ae.push(oe)}}ae.length>0&&(l.preventDefault(),h(ae))};return document.addEventListener("paste",i),()=>{document.removeEventListener("paste",i)}},[o,h]);const E=s.useCallback(i=>{const l=a.filter((k,R)=>R!==i);t(l)},[a,t]),D=s.useCallback(i=>{var l;i!==void 0&&j(i),(l=w.current)==null||l.click()},[]),T=s.useCallback(i=>{i!==void 0&&j(i),C(!0)},[]),P=i=>e.jsx("div",{className:`reference-image-upload__placeholder ${U?"reference-image-upload__placeholder--dragging":""}`,onDragEnter:L,onDragLeave:H,onDragOver:G,onDrop:l=>S(l,i),children:e.jsxs("div",{className:"reference-image-upload__buttons",children:[e.jsx(de,{variant:"outline",icon:e.jsx(ze,{size:16}),onClick:()=>D(i),disabled:o,"data-track":"reference_image_upload_local",className:"reference-image-upload__btn",children:y.local}),e.jsx(de,{variant:"outline",icon:e.jsx(Fe,{size:16}),onClick:()=>T(i),disabled:o,"data-track":"reference_image_upload_library",className:"reference-image-upload__btn",children:y.library})]})}),g=(i,l)=>e.jsxs("div",{className:"reference-image-upload__preview",children:[e.jsx("img",{src:i.url,alt:i.name,className:"reference-image-upload__image"}),e.jsx("button",{type:"button",className:"reference-image-upload__remove",onClick:()=>E(l),disabled:o,"data-track":"reference_image_upload_remove",children:e.jsx(ra,{size:14})}),v&&v[l]&&e.jsx("div",{className:"reference-image-upload__slot-label",children:v[l]})]},l),B=()=>v?e.jsx("div",{className:"reference-image-upload__slots",children:v.map((i,l)=>{const k=a[l];return e.jsxs("div",{className:"reference-image-upload__slot",children:[e.jsx("div",{className:"reference-image-upload__slot-title",children:i}),k?g(k,l):e.jsx("div",{className:`reference-image-upload__slot-placeholder ${U?"reference-image-upload__slot-placeholder--dragging":""}`,onDragEnter:L,onDragLeave:H,onDragOver:G,onDrop:R=>S(R,l),children:e.jsxs("div",{className:"reference-image-upload__slot-buttons",children:[e.jsx(de,{variant:"outline",icon:e.jsx(ze,{size:16}),onClick:()=>D(l),disabled:o,"data-track":"reference_image_upload_slot_local",className:"reference-image-upload__slot-btn",children:y.local}),e.jsx(de,{variant:"outline",icon:e.jsx(Fe,{size:16}),onClick:()=>T(l),disabled:o,"data-track":"reference_image_upload_slot_library",className:"reference-image-upload__slot-btn",children:y.library})]})})]},l)})}):null,$=()=>{const i=r&&a.length<c;return e.jsxs("div",{className:"reference-image-upload__grid",children:[a.map((l,k)=>g(l,k)),i&&P(),a.length===0&&!i&&P()]})},q=()=>a.length>0?e.jsxs("div",{className:"reference-image-upload__single",children:[g(a[0],0),e.jsx("div",{className:"reference-image-upload__replace",children:P()})]}):P();return e.jsxs("div",{ref:f,className:`reference-image-upload ${o?"reference-image-upload--disabled":""}`,tabIndex:0,children:[m&&e.jsx("div",{className:"reference-image-upload__label",children:m}),e.jsx("input",{ref:w,type:"file",accept:"image/*",multiple:r&&!v,onChange:z,className:"reference-image-upload__input",disabled:o}),v?B():r?$():q(),e.jsx(aa,{isOpen:u,onClose:()=>C(!1),mode:sa.SELECT,filterType:Ae.IMAGE,onSelect:N})]})},Dt=({taskIds:a,taskType:t,onEditTask:n})=>{var q;const{tasks:o,retryTask:r,deleteTask:c}=ye(),{board:m,openDialog:v}=we(),[x,u]=s.useState(!1),[C,U]=s.useState(null),[_,d]=s.useState(null),[j,f]=s.useState(""),[w,I]=s.useState(null),A=(i,l)=>{var ae,le,re,se,oe,ue,fe,M,F,V;if(!l.trim())return!0;const k=l.toLowerCase().split(/\s+/).filter(Boolean),R={[pe.PENDING]:"待处理",[pe.PROCESSING]:"处理中",[pe.COMPLETED]:"已完成",[pe.FAILED]:"失败",[pe.CANCELLED]:"已取消"},O=[];O.push(((ae=i.params)==null?void 0:ae.prompt)??""),O.push(((le=i.params)==null?void 0:le.model)??""),O.push(i.id??""),O.push(R[i.status]??String(i.status)),(re=i.params)!=null&&re.batchId&&O.push(String(i.params.batchId)),(se=i.params)!=null&&se.batchIndex&&O.push(String(i.params.batchIndex)),(oe=i.params)!=null&&oe.batchTotal&&O.push(String(i.params.batchTotal)),(ue=i.result)!=null&&ue.format&&O.push(String(i.result.format)),(fe=i.result)!=null&&fe.width&&((M=i.result)!=null&&M.height)?O.push(`${i.result.width}x${i.result.height}`):(F=i.params)!=null&&F.width&&((V=i.params)!=null&&V.height)&&O.push(`${i.params.width}x${i.params.height}`);const K=O.join(" ").toLowerCase();return k.every(W=>K.includes(W))},y=s.useMemo(()=>{let i=o;return a&&a.length>0&&(i=i.filter(l=>a.includes(l.id))),t!==void 0&&(i=i.filter(l=>l.type===t)),j.trim()&&(i=i.filter(l=>A(l,j))),i.sort((l,k)=>k.createdAt-l.createdAt)},[o,a,t,j]),b=i=>{r(i)},p=i=>{U(i),u(!0)},h=()=>{C&&c(C),u(!1),U(null)},z=async i=>{var R;const l=o.find(O=>O.id===i);if(!((R=l==null?void 0:l.result)!=null&&R.url))return;const k=`${ma(l.params.prompt)||l.type}.${l.result.format}`;try{const O=await pa.getCachedBlob(l.result.url);if(O){ha(O,k),Q.success("下载成功");return}const K=await fa(l.result.url,l.params.prompt,l.result.format,l.type);K&&"opened"in K?Q.success("已在新标签页打开,请右键另存为"):Q.success("下载成功")}catch(O){console.error("Download failed:",O),Q.error("下载失败,请稍后重试")}},N=async i=>{var k;const l=o.find(R=>R.id===i);if(!((k=l==null?void 0:l.result)!=null&&k.url)||!m){console.warn("Cannot insert: task result or board not available"),Q.warning("无法插入:白板未就绪");return}try{l.type===X.IMAGE?(await da(m,l.result.url),Q.success("图片已插入到白板")):l.type===X.VIDEO&&(await ua(m,l.result.url),Q.success("视频已插入到白板"))}catch(R){console.error("Failed to insert to board:",R),Q.error(`插入失败: ${R instanceof Error?R.message:"未知错误"}`)}},L=i=>{var k,R;const l=o.find(O=>O.id===i);if(!l){console.warn("Cannot edit: task not found");return}if(n){n(l);return}if(l.type===X.IMAGE){const O={initialPrompt:l.params.prompt,initialWidth:l.params.width,initialHeight:l.params.height,initialImages:l.params.uploadedImages,initialResultUrl:(k=l.result)==null?void 0:k.url};v(ee.aiImageGeneration,O)}else if(l.type===X.VIDEO){const O={initialPrompt:l.params.prompt,initialDuration:typeof l.params.seconds=="string"?parseInt(l.params.seconds,10):l.params.seconds,initialModel:l.params.model,initialSize:l.params.size,initialImages:l.params.uploadedImages,initialResultUrl:(R=l.result)==null?void 0:R.url};v(ee.aiVideoGeneration,O)}},H=i=>{const l=o.find(k=>k.id===i);l&&I(l)},G=s.useMemo(()=>y.filter(i=>{var l;return i.status===pe.COMPLETED&&((l=i.result)==null?void 0:l.url)}),[y]),S=s.useMemo(()=>{if(!_)return null;const i=G.findIndex(l=>l.id===_);return i===-1?null:{currentIndex:i,total:G.length,hasPrevious:i>0,hasNext:i<G.length-1}},[_,G]),E=i=>{d(i)},D=()=>{d(null)},T=()=>{!S||!S.hasPrevious||d(G[S.currentIndex-1].id)},P=()=>{!S||!S.hasNext||d(G[S.currentIndex+1].id)},g=s.useMemo(()=>_?o.find(i=>i.id===_):null,[_,o]);s.useEffect(()=>{if(!_)return;const i=l=>{l.key==="ArrowLeft"||l.key==="ArrowUp"?(l.preventDefault(),T()):l.key==="ArrowRight"||l.key==="ArrowDown"?(l.preventDefault(),P()):l.key==="Escape"&&(l.preventDefault(),D())};return window.addEventListener("keydown",i),()=>window.removeEventListener("keydown",i)},[_,S]);const B=s.useMemo(()=>{let i=o;return a&&a.length>0&&(i=i.filter(l=>a.includes(l.id))),t!==void 0&&(i=i.filter(l=>l.type===t)),i.length},[o,a,t]),$=j.trim()&&y.length===0&&B>0;return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"dialog-task-list",children:[e.jsxs("div",{className:"dialog-task-list__header",style:{display:"flex",alignItems:"center",gap:8,justifyContent:"space-between"},children:[e.jsxs("h4",{children:["生成任务 (",y.length,")"]}),e.jsx("div",{style:{minWidth:"180px",maxWidth:"240px",flexShrink:0},children:e.jsx(na,{value:j,onChange:i=>f(i),placeholder:"搜索任务(提示词/模型/...)",clearable:!0,prefixIcon:e.jsx(oa,{}),size:"small"})})]}),e.jsx(ia,{tasks:y,onRetry:b,onDelete:p,onDownload:z,onInsert:N,onEdit:L,onPreviewOpen:E,onExtractCharacter:H,className:"dialog-task-list__content",emptyContent:e.jsx("div",{className:"dialog-task-list__empty",children:$?e.jsx("p",{children:"未找到匹配的任务"}):e.jsx("p",{children:"暂无生成任务"})})})]}),e.jsx($e,{visible:x,header:"确认删除",onClose:()=>u(!1),onConfirm:h,onCancel:()=>u(!1),children:"确定要删除此任务吗?此操作无法撤销。"}),g&&((q=g.result)==null?void 0:q.url)&&e.jsx($e,{visible:!!_,onClose:D,width:"90vw",header:e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e.jsx("span",{children:g.type===X.IMAGE?"图片预览":g.type===X.CHARACTER?"角色预览":"视频预览"}),S&&e.jsxs("span",{style:{fontSize:"14px",color:"#757575",fontWeight:"normal"},children:[S.currentIndex+1," / ",S.total]})]}),footer:null,className:"task-preview-dialog",children:e.jsxs("div",{className:"task-preview-container",children:[e.jsx(de,{className:"task-preview-nav task-preview-nav--left",icon:e.jsx(la,{}),"data-track":"task_click_preview_previous",onClick:T,size:"large",shape:"circle",variant:"outline",disabled:!(S!=null&&S.hasPrevious)}),e.jsx(Ua,{task:g}),e.jsx(de,{className:"task-preview-nav task-preview-nav--right",icon:e.jsx(ct,{}),"data-track":"task_click_preview_next",onClick:P,size:"large",shape:"circle",variant:"outline",disabled:!(S!=null&&S.hasNext)})]})}),e.jsx(ca,{visible:!!w,task:w,onClose:()=>I(null),onCreateComplete:i=>{I(null)}})]})},Ua=({task:a})=>{var o;const{url:t,isFromCache:n}=ga(a.id,(o=a.result)==null?void 0:o.url);return t?e.jsxs("div",{className:"task-preview-content",children:[a.type===X.IMAGE||a.type===X.CHARACTER?e.jsx("img",{src:t,alt:"Preview",style:{maxWidth:"100%",maxHeight:"85vh",objectFit:"contain"}},a.id):e.jsx("video",{src:t,controls:!0,autoPlay:!0,style:{maxWidth:"100%",maxHeight:"85vh"}},a.id),n&&e.jsx("div",{className:"task-preview-cache-badge",children:"已缓存"})]}):e.jsx("div",{className:"task-preview-content",children:"加载中..."})},Ba=({initialPrompt:a="",initialImages:t=[],selectedElementIds:n=[],initialWidth:o,initialHeight:r,initialResultUrl:c,selectedModel:m,onModelChange:v}={})=>{const[x,u]=s.useState(a),[C,U]=s.useState(o||1024),[_,d]=s.useState(r||1024),[j,f]=s.useState(Ze),[w,I]=s.useState(null),[A,y]=s.useState(t),{imageHistory:b}=ht(),{isGenerating:p}=gt("image"),{language:h}=he(),{createTask:z}=ye(),[N,L]=s.useState(!1),H=ne.useRef("");s.useEffect(()=>{if(N)return;const g=JSON.stringify({prompt:a,images:t==null?void 0:t.map(B=>B.url),elementIds:n,width:o,height:r,result:c});H.current!==g&&(H.current=g,u(a),y(t||[]),o&&U(o),r&&d(r))},[a,t,n,o,r,c,N]),s.useEffect(()=>(I(null),()=>{I(null)}),[]);const G=()=>{u(""),y([]),I(null),f(Ze),L(!1),window.dispatchEvent(new CustomEvent("ai-image-clear"))},S=ne.useMemo(()=>_t("image",h,b),[b,h]),E=g=>{jt("image",g)},D=g=>{if(L(!0),u(g.params.prompt||""),U(g.params.width||1024),d(g.params.height||1024),g.params.uploadedImages&&g.params.uploadedImages.length>0?y(g.params.uploadedImages):y([]),g.params.model){const B=J.get();J.update({...B,imageModelName:g.params.model})}g.params.aspectRatio&&f(g.params.aspectRatio),I(null)},T=async()=>Promise.all(A.map(async g=>{if(g.file)return new Promise((B,$)=>{const q=new FileReader;q.onload=()=>{B({type:"url",url:q.result,name:g.name})},q.onerror=$,q.readAsDataURL(g.file)});if(g.url)return{type:"url",url:g.url,name:g.name};throw new Error("Invalid image data")})),P=async(g=1)=>{if(!x.trim()){I(h==="zh"?"请输入图像描述":"Please enter image description");return}if(!J.get().apiKey&&!await xa()){I(h==="zh"?"需要 API Key 才能生成图片":"API Key is required to generate images");return}try{const $=typeof C=="string"?parseInt(C)||1024:C,q=typeof _=="string"?parseInt(_)||1024:_,i=await T();if(g>1){const K=[],ae=`batch_${Date.now()}`,re=J.get().imageModelName||"gemini-3-pro-image-preview-vip";for(let se=0;se<g;se++){const oe={prompt:x.trim(),width:$,height:q,aspectRatio:j,model:re,uploadedImages:i,batchId:ae,batchIndex:se+1,batchTotal:g,autoInsertToCanvas:!0},ue=z(oe,X.IMAGE);ue&&K.push(ue.id)}K.length>0?(Q.success(h==="zh"?`已添加 ${K.length} 个任务到队列`:`Added ${K.length} tasks to queue`),E(x),I(null),L(!1)):I(h==="zh"?"批量任务创建失败,请稍后重试":"Failed to create batch tasks, please try again later");return}const k=J.get().imageModelName||"gemini-2.5-flash-image-vip",R={prompt:x.trim(),width:$,height:q,aspectRatio:j,model:k,uploadedImages:i,autoInsertToCanvas:!0};z(R,X.IMAGE)?(Q.success(h==="zh"?"任务已添加到队列,将在后台生成":"Task added to queue, will be generated in background"),E(x),I(null),L(!1)):I(h==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later")}catch($){console.error("Failed to create task:",$);let q=h==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later";$.message&&($.message.includes("exceed 5000 characters")?q=h==="zh"?"提示词不能超过 5000 字符":"Prompt must not exceed 5000 characters":$.message.includes("Duplicate submission")?q=h==="zh"?"请勿重复提交,请等待 5 秒后再试":"Duplicate submission. Please wait 5 seconds.":$.message.includes("Invalid parameters")&&(q=h==="zh"?`参数错误: ${$.message.replace("Invalid parameters: ","")}`:$.message)),I(q)}};return ft(p,x,()=>P(1)),e.jsx("div",{className:"ai-image-generation-container",children:e.jsxs("div",{className:"main-content",children:[e.jsxs("div",{className:"ai-image-generation-section",children:[e.jsxs("div",{className:"ai-image-generation-form",children:[m!==void 0&&v&&e.jsx("div",{className:"form-header-row",children:e.jsx("div",{className:"model-selector-wrapper",children:e.jsx(_e,{value:m,onChange:g=>v(g),options:va,size:"small",placeholder:h==="zh"?"选择图片模型":"Select Image Model",filterable:!0,creatable:!0,disabled:p})})}),e.jsx(St,{images:A,onImagesChange:y,language:h,disabled:p,multiple:!0,label:h==="zh"?"参考图片 (可选)":"Reference Images (Optional)",onError:I}),e.jsx(yt,{prompt:x,onPromptChange:u,presetPrompts:S,language:h,type:"image",disabled:p,onError:I}),e.jsx(xt,{error:w})]}),e.jsx(vt,{language:h,type:"image",isGenerating:p,hasGenerated:!1,canGenerate:!!x.trim(),onGenerate:P,onReset:G,leftContent:e.jsx(Oa,{value:j,onChange:f,compact:!0})})]}),e.jsx("div",{className:"task-sidebar",children:e.jsx(Dt,{taskType:X.IMAGE,onEditTask:D})})]})})},Va=({initialPrompt:a="",initialImage:t,initialImages:n,initialDuration:o,initialModel:r,initialSize:c,initialResultUrl:m,selectedModel:v,onModelChange:x}={})=>{const[u,C]=s.useState(a),[U,_]=s.useState(null),[d,j]=s.useState(()=>{const M=J.get();return r||M.videoModelName||"veo3"}),f=ne.useMemo(()=>De(d),[d]),w=ne.useMemo(()=>Se(d),[d]),[I,A]=s.useState((o==null?void 0:o.toString())||w.duration),[y,b]=s.useState(c||w.size),[p,h]=s.useState(()=>n&&n.length>0?n:t?[{slot:0,slotLabel:"参考图",url:t.url||"",name:t.name,file:t.file}]:[]),[z,N]=s.useState(()=>{const M=f.imageUpload.maxCount,F=f.imageUpload.labels||[];let V=[];return n&&n.length>0?V=n:t&&(V=[{slot:0,slotLabel:F[0]||"参考图",url:t.url||"",name:t.name,file:t.file}]),V.slice(0,M).map((W,Y)=>({...W,slot:Y,slotLabel:F[Y]||`参考图${Y+1}`}))}),[L,H]=s.useState(!1),[G,S]=s.useState([]),E=ne.useMemo(()=>wa(d),[d]),D=Ue(d),{videoHistory:T}=ht(),[P,g]=s.useState(0),{isGenerating:B}=gt("video"),{language:$}=he(),{createTask:q}=ye();s.useEffect(()=>{const M=F=>{const V=F.videoModelName||"veo3";V!==d&&j(V)};return J.addListener(M),()=>J.removeListener(M)},[d]),s.useEffect(()=>{v&&v!==d&&j(v)},[v]);const[i,l]=s.useState(!1),[k,R]=s.useState(!1);s.useEffect(()=>{if(k){R(!1);return}const M=f.imageUpload.maxCount,F=f.imageUpload.labels||[];if(A(w.duration),b(w.size),p.length>0){const V=p.slice(0,M).map((W,Y)=>({...W,slot:Y,slotLabel:F[Y]||`参考图${Y+1}`}));N(V)}else N([]);Ue(d)||(H(!1),S([]))},[d,w,k,p,f.imageUpload]);const O=ne.useRef("");s.useEffect(()=>{if(i)return;const M=JSON.stringify({prompt:a,image:t==null?void 0:t.url,images:n==null?void 0:n.map(Z=>Z.url),duration:o,model:r,size:c,result:m});if(O.current===M)return;O.current=M,C(a);const F=f.imageUpload.maxCount,V=f.imageUpload.labels||[];let W=[];n&&n.length>0?W=n:t&&(W=[{slot:0,slotLabel:"参考图",url:t.url||"",name:t.name,file:t.file}]),h(W);const Y=W.slice(0,F).map((Z,ie)=>({...Z,slot:ie,slotLabel:V[ie]||`参考图${ie+1}`}));N(Y),o!==void 0&&A(o.toString()),c&&b(c),_(null)},[a,t,n,o,c,m,f.imageUpload,i]),s.useEffect(()=>(_(null),()=>{_(null)}),[]);const K=()=>{C(""),h([]),N([]),_(null);const M=Se(d);A(M.duration),b(M.size),l(!1),H(!1),S([]),window.dispatchEvent(new CustomEvent("ai-video-clear"))},ae=ne.useCallback((M,F)=>M.map((V,W)=>({slot:W,slotLabel:F[W]||`参考图${W+1}`,url:V.url,name:V.name,file:V.file})),[]),le=ne.useCallback(M=>M.map(F=>({url:F.url,name:F.name,file:F.file})),[]),re=ne.useCallback(M=>{const F=f.imageUpload.labels||[],V=ae(M,F);N(V),h(V)},[f.imageUpload.labels,ae]),se=ne.useMemo(()=>_t("video",$,T),[T,$,P]),oe=M=>{jt("video",M),g(F=>F+1)},ue=M=>{var F,V;if(l(!0),R(!0),M.params.model){j(M.params.model);const W=J.get();J.update({...W,videoModelName:M.params.model})}if((F=M.params.storyboard)!=null&&F.enabled&&((V=M.params.storyboard)!=null&&V.scenes))H(!0),S(M.params.storyboard.scenes),C("");else{const W=M.params.prompt||"",Y=za(W);Y&&Y.length>0?(H(!0),S(Y),C("")):(H(!1),S([]),C(W))}if(M.params.seconds!==void 0){const W=typeof M.params.seconds=="string"?M.params.seconds:M.params.seconds.toString();A(W)}if(M.params.size&&b(M.params.size),M.params.uploadedImages&&M.params.uploadedImages.length>0){h(M.params.uploadedImages);const W=M.params.model||d,Y=De(W),Z=Y.imageUpload.maxCount,ie=Y.imageUpload.labels||[],me=M.params.uploadedImages.slice(0,Z).map((je,ce)=>({...je,slot:ce,slotLabel:ie[ce]||`参考图${ce+1}`}));N(me)}else h([]),N([]);_(null)},fe=async(M=1)=>{if(L){const F=La(G,parseFloat(I),E.minSceneDuration);if(!F.valid){_(F.error||"场景配置无效");return}}else if(!u.trim()){_($==="zh"?"请输入视频描述":"Please enter video description");return}try{const F=[];for(const Z of z)if(Z.file){const ie=await new Promise((me,je)=>{const ce=new FileReader;ce.onload=()=>me(ce.result),ce.onerror=je,ce.readAsDataURL(Z.file)});F.push({...Z,url:ie,file:void 0})}else F.push({...Z,file:void 0});const V=L?Aa(G):u.trim(),W=[],Y=M>1?`video_batch_${Date.now()}`:void 0;for(let Z=0;Z<M;Z++){const ie={prompt:V,model:d,seconds:I,size:y,uploadedImages:F,...L&&{storyboard:{enabled:!0,scenes:G,totalDuration:parseFloat(I)}},...Y&&{batchId:Y,batchIndex:Z+1,batchTotal:M},autoInsertToCanvas:!0},me=q(ie,X.VIDEO);me&&W.push(me.id)}W.length>0?(Q.success($==="zh"?M>1?`${W.length} 个视频任务已添加到队列,将在后台生成`:"视频任务已添加到队列,将在后台生成":M>1?`${W.length} video tasks added to queue, will be generated in background`:"Video task added to queue, will be generated in background"),oe(V),C(""),h([]),N([]),H(!1),S([]),_(null),l(!1)):_($==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later")}catch(F){console.error("Failed to create task:",F);let V=$==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later";F.message&&(F.message.includes("exceed 5000 characters")?V=$==="zh"?"提示词不能超过 5000 字符":"Prompt must not exceed 5000 characters":F.message.includes("Duplicate submission")?V=$==="zh"?"请勿重复提交,请等待 5 秒后再试":"Duplicate submission. Please wait 5 seconds.":F.message.includes("Invalid parameters")&&(V=$==="zh"?`参数错误: ${F.message.replace("Invalid parameters: ","")}`:F.message)),_(V)}};return ft(B,u,fe),e.jsx("div",{className:"ai-video-generation-container",children:e.jsxs("div",{className:"main-content",children:[e.jsxs("div",{className:"ai-image-generation-section",children:[e.jsxs("div",{className:"ai-image-generation-form",children:[v!==void 0&&x&&e.jsx("div",{className:"model-selector-wrapper",children:e.jsx(_e,{value:v,onChange:M=>x(M),options:ba,size:"small",placeholder:$==="zh"?"选择视频模型":"Select Video Model",filterable:!0,creatable:!0,disabled:B})}),e.jsx(ka,{model:d,duration:I,size:y,onDurationChange:A,onSizeChange:b,disabled:B}),e.jsx(St,{images:le(z),onImagesChange:re,language:$,disabled:B,multiple:f.imageUpload.maxCount>1,maxCount:f.imageUpload.maxCount,slotLabels:f.imageUpload.mode==="frames"?f.imageUpload.labels:void 0,label:f.imageUpload.mode==="frames"?$==="zh"?"首尾帧图片 (可选)":"Start/End Frames (Optional)":$==="zh"?"参考图片 (可选)":"Reference Images (Optional)"}),D&&e.jsx($a,{enabled:L,onEnabledChange:H,totalDuration:parseFloat(I),maxScenes:E.maxScenes,minSceneDuration:E.minSceneDuration,scenes:G,onScenesChange:S,disabled:B}),!L&&e.jsx(yt,{prompt:u,onPromptChange:C,presetPrompts:se,language:$,type:"video",disabled:B,onError:_,videoProvider:f.provider}),e.jsx(xt,{error:U})]}),e.jsx(vt,{language:$,type:"video",isGenerating:B,hasGenerated:!1,canGenerate:L?G.length>0:!!u.trim(),onGenerate:fe,onReset:K})]}),e.jsx("div",{className:"task-sidebar",children:e.jsx(Dt,{taskType:X.VIDEO,onEditTask:ue})})]})})};let te=null,ve=null;const Ga=async()=>te||(typeof window<"u"&&window.WinBox?(te=window.WinBox,te):ve||(ve=(async()=>{try{if(await be(()=>import("./winbox.bundle.min-CoRPjCs5.js"),[],import.meta.url),te=window.WinBox,te)return te;throw new Error("WinBox not found after import")}catch(a){return console.warn("Dynamic import failed, falling back to CDN:",a),new Promise((t,n)=>{const o=document.createElement("script");o.src="https://cdn.jsdelivr.net/npm/winbox@0.2.82/dist/winbox.bundle.min.js",o.async=!0,o.onload=()=>{te=window.WinBox,te?t(te):n(new Error("WinBox not found after CDN loading"))},o.onerror=n,document.head.appendChild(o)})}})(),ve)),tt=({visible:a,title:t,onClose:n,children:o,width:r="80%",height:c="80%",minWidth:m=400,minHeight:v=300,x="center",y:u="center",maximizable:C=!0,minimizable:U=!0,resizable:_=!0,movable:d=!0,modal:j=!1,background:f="linear-gradient(135deg, #5A4FCF 0%, #7B68EE 50%, #E91E63 100%)",border:w=0,className:I,id:A,headerContent:y,container:b,onMaximize:p,onRestore:h,onFocus:z,onBlur:N,onMove:L,onResize:H,autoMaximize:G=!1})=>{const S=s.useRef(null),E=s.useRef(null),D=s.useRef(null),[T,P]=s.useState(null),[g,B]=s.useState(!1),[$,q]=s.useState(!!te),i=ya(D,{enablePositionTracking:!1,enableScaleCompensation:!0});s.useEffect(()=>{$||Ga().then(()=>q(!0))},[$]);const l=s.useCallback(()=>(n==null||n(),!1),[n]);return s.useEffect(()=>{if(!(!$||!te)){if(!a){if(S.current){try{S.current.close(!0)}catch{}S.current=null,D.current=null,P(null),B(!1)}return}if(a&&!S.current&&E.current){const k=["winbox-react"];C||k.push("no-max"),U||k.push("no-min"),_||k.push("no-resize"),d||k.push("no-move"),k.push("no-full"),I&&k.push(I);const R=new te({id:A,title:t,mount:E.current,width:r,height:c,minwidth:m,minheight:v,x,y:u,modal:j,background:f,border:w,class:k,root:b||document.body,onclose:l,onmaximize:p,onrestore:h,onfocus:z,onblur:N,onmove:L,onresize:H});if(S.current=R,R.window&&(D.current=R.window,requestAnimationFrame(()=>{i()})),y&&R.window){const O=R.window.querySelector(".wb-drag");if(O){const K=document.createElement("div");K.className="wb-header-custom",O.appendChild(K),P(K)}}B(!0),G&&setTimeout(()=>{S.current&&S.current.maximize()},100)}}},[a,$,G]),s.useEffect(()=>()=>{if(S.current){try{S.current.onclose=null,S.current.close(!0)}catch{}S.current=null,D.current=null}},[]),s.useEffect(()=>{S.current&&t&&S.current.setTitle(t)},[t]),s.useEffect(()=>{S.current&&(a?(S.current.show(),S.current.focus()):S.current.hide())},[a]),s.useEffect(()=>{S.current&&G&&S.current.maximize()},[G]),e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{display:"none"},"data-winbox-placeholder":"true",children:e.jsx("div",{ref:E,className:"winbox-content-wrapper",style:{display:a?"block":"none"},children:o})}),g&&y&&T&<.createPortal(y,T)]})},Wa=s.lazy(()=>be(()=>import("./batch-image-generation-CgR-a8Ii.js"),__vite__mapDeps([8,1,2,9,10,11,12,13,14]),import.meta.url)),Ha=({container:a})=>{var L,H,G,S;const{appState:t,setAppState:n}=we(),{language:o}=he(),r=Te(),c=s.useRef(!1),m=s.useRef(null),[v,x]=s.useState(""),[u,C]=s.useState("");s.useEffect(()=>{const E=J.get();x(E.imageModelName||"gemini-3-pro-image-preview-vip"),C(E.videoModelName||"veo3")},[]),s.useEffect(()=>{const E=D=>{D.imageModelName&&x(D.imageModelName),D.videoModelName&&C(D.videoModelName)};return J.addListener(E),()=>J.removeListener(E)},[]);const U=E=>{x(E);const D=J.get();J.update({...D,imageModelName:E})},_=E=>{C(E);const D=J.get();J.update({...D,videoModelName:E})},[d,j]=s.useState({initialPrompt:"",initialImages:[],selectedElementIds:[]}),[f,w]=s.useState({initialPrompt:"",initialImage:void 0}),[I,A]=s.useState(!1),[y,b]=s.useState(()=>{try{return localStorage.getItem(Ie)==="batch"?"batch":"single"}catch{return"single"}}),p=s.useCallback(E=>{b(E),A(E==="batch");try{localStorage.setItem(Ie,E)}catch(D){console.warn("Failed to save image mode:",D)}},[]);s.useEffect(()=>{if(t.openDialogType===ee.aiImageGeneration){if(d.initialImages&&d.initialImages.length>0||d.initialPrompt&&d.initialPrompt.trim()!==""){A(!1);return}try{const D=localStorage.getItem(Ie);A(D==="batch")}catch{A(!1)}}},[t.openDialogType,d.initialImages,d.initialPrompt]);const h=s.useRef(null);s.useEffect(()=>{if(!r||!t.openDialogType){h.current=t.openDialogType;return}h.current!==t.openDialogType&&(c.current||(h.current=t.openDialogType,t.openDialogType===ee.aiImageGeneration&&(async()=>{c.current=!0,m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{console.warn("Processing timeout, resetting processing state"),c.current=!1},1e4);try{if(t.dialogInitialData){j({initialPrompt:t.dialogInitialData.initialPrompt||t.dialogInitialData.prompt||"",initialImages:t.dialogInitialData.initialImages||t.dialogInitialData.uploadedImages||[],selectedElementIds:[],initialResultUrl:t.dialogInitialData.initialResultUrl||t.dialogInitialData.resultUrl});return}const D=t.lastSelectedElementIds||[],T=await He(r,D),P=[];T.remainingImages.forEach(g=>{P.push({url:g.url,name:g.name||`selected-image-${Date.now()}.png`})}),T.graphicsImage&&P.push({url:T.graphicsImage,name:`graphics-combined-${Date.now()}.png`}),j({initialPrompt:T.remainingText||"",initialImages:P,selectedElementIds:D})}catch(D){console.warn("Error processing selected content for AI:",D);const T=Ke(r),P=T.images.map(g=>({url:g.url,name:g.name||`selected-image-${Date.now()}.png`}));j({initialPrompt:T.text||"",initialImages:P,selectedElementIds:[]})}finally{c.current=!1,m.current&&(clearTimeout(m.current),m.current=null)}})(),t.openDialogType===ee.aiVideoGeneration&&(async()=>{c.current=!0,m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{console.warn("Video processing timeout, resetting processing state"),c.current=!1},1e4);try{if(t.dialogInitialData){const g={initialPrompt:t.dialogInitialData.initialPrompt||t.dialogInitialData.prompt||"",initialImage:t.dialogInitialData.initialImage||t.dialogInitialData.uploadedImage,initialImages:t.dialogInitialData.initialImages||t.dialogInitialData.uploadedImages,initialDuration:t.dialogInitialData.initialDuration||t.dialogInitialData.duration,initialModel:t.dialogInitialData.initialModel||t.dialogInitialData.model,initialSize:t.dialogInitialData.initialSize||t.dialogInitialData.size,initialResultUrl:t.dialogInitialData.initialResultUrl||t.dialogInitialData.resultUrl};w(g);return}const D=t.lastSelectedElementIds||[],T=await He(r,D),P=[];T.remainingImages.length>0?T.remainingImages.forEach((g,B)=>{P.push({url:g.url,name:g.name||`selected-image-${B+1}-${Date.now()}.png`})}):T.graphicsImage&&P.push({url:T.graphicsImage,name:`graphics-combined-${Date.now()}.png`}),w({initialPrompt:T.remainingText||"",initialImage:P.length>0?P[0]:void 0,initialImages:P.map((g,B)=>({slot:B,slotLabel:`参考图${B+1}`,url:g.url,name:g.name}))})}catch(D){console.warn("Error processing selected content for AI video:",D);const T=Ke(r),P=T.images.map((g,B)=>({url:g.url,name:g.name||`selected-image-${B+1}-${Date.now()}.png`}));w({initialPrompt:T.text||"",initialImage:P.length>0?P[0]:void 0,initialImages:P.map((g,B)=>({slot:B,slotLabel:`参考图${B+1}`,url:g.url,name:g.name}))})}finally{c.current=!1,m.current&&(clearTimeout(m.current),m.current=null)}})()))},[t.openDialogType]),s.useEffect(()=>{t.openDialogType||(c.current=!1,h.current=null)},[t.openDialogType]);const z=s.useCallback(()=>{const E=localStorage.getItem(Be);if(E)try{const D=JSON.parse(E);D.timestamp=Date.now(),localStorage.setItem(Be,JSON.stringify(D))}catch(D){console.warn("Failed to update cache timestamp:",D)}n(D=>({...D,openDialogType:null}))},[n]),N=s.useCallback(()=>{const E=localStorage.getItem(Ve);if(E)try{const D=JSON.parse(E);D.timestamp=Date.now(),localStorage.setItem(Ve,JSON.stringify(D))}catch(D){console.warn("Failed to update cache timestamp:",D)}n(D=>({...D,openDialogType:null}))},[n]);return e.jsxs(e.Fragment,{children:[e.jsx(Ge,{open:t.openDialogType===ee.mermaidToDrawnix,onOpenChange:E=>{n({...t,openDialogType:E?ee.mermaidToDrawnix:null})},children:e.jsx(We,{className:"Dialog ttd-dialog",container:a,children:e.jsx(Ca,{})})}),e.jsx(Ge,{open:t.openDialogType===ee.markdownToDrawnix,onOpenChange:E=>{n({...t,openDialogType:E?ee.markdownToDrawnix:null})},children:e.jsx(We,{className:"Dialog ttd-dialog",container:a,children:e.jsx(Sa,{})})}),e.jsx(tt,{visible:t.openDialogType===ee.aiImageGeneration,title:y==="batch"?o==="zh"?"批量出图":"Batch Generation":o==="zh"?"AI 图片生成":"AI Image Generation",headerContent:e.jsxs("div",{className:"image-generation-mode-tabs",children:[e.jsx("button",{className:`mode-tab ${y==="single"?"active":""}`,onClick:()=>p("single"),children:o==="zh"?"AI 图片生成":"AI Image"}),e.jsx("button",{className:`mode-tab ${y==="batch"?"active":""}`,onClick:()=>p("batch"),children:o==="zh"?"批量出图":"Batch"})]}),onClose:z,width:"80%",height:"60%",minWidth:1024,minHeight:500,x:"center",y:"center",modal:!1,minimizable:!1,className:"winbox-ai-generation winbox-ai-image-generation",container:a,autoMaximize:I,children:t.openDialogType===ee.aiImageGeneration&&(y==="batch"?e.jsx(s.Suspense,{fallback:e.jsx("div",{className:"loading-fallback",children:o==="zh"?"加载中...":"Loading..."}),children:e.jsx(Wa,{onSwitchToSingle:()=>p("single")})}):e.jsx(Ba,{initialPrompt:d.initialPrompt,initialImages:d.initialImages,selectedElementIds:d.selectedElementIds,initialWidth:((L=t.dialogInitialData)==null?void 0:L.initialWidth)||((H=t.dialogInitialData)==null?void 0:H.width),initialHeight:((G=t.dialogInitialData)==null?void 0:G.initialHeight)||((S=t.dialogInitialData)==null?void 0:S.height),initialResultUrl:d.initialResultUrl,selectedModel:v,onModelChange:U}))}),e.jsx(tt,{visible:t.openDialogType===ee.aiVideoGeneration,title:o==="zh"?"AI 视频生成":"AI Video Generation",onClose:N,width:"70%",height:"60%",minWidth:800,minHeight:600,x:"center",y:"center",modal:!1,minimizable:!1,className:"winbox-ai-generation winbox-ai-video-generation",container:a,children:t.openDialogType===ee.aiVideoGeneration&&e.jsx(Va,{initialPrompt:f.initialPrompt,initialImage:f.initialImage,initialImages:f.initialImages,initialDuration:f.initialDuration,initialModel:f.initialModel,initialSize:f.initialSize,initialResultUrl:f.initialResultUrl,selectedModel:u,onModelChange:_})})]})},Xa=s.memo(Ha,(a,t)=>a.container===t.container);export{Xa as TTDDialog};
|
|
47
|
+
`)}function za(a){const t=/Shot\s+(\d+):\s*\n\s*duration:\s*([\d.]+)\s*sec\s*\n\s*Scene:\s*([^\n]+(?:\n(?!Shot\s+\d+:)[^\n]*)*)/gi,n=[];let o;for(;(o=t.exec(a))!==null;){const r=parseInt(o[1],10),c=parseFloat(o[2]),m=o[3].trim();n.push({id:Ct(),order:r,duration:c,prompt:m})}return n.length===0?null:n.sort((r,c)=>r.order-c.order)}const Fa=({value:a,onChange:t,placeholder:n,disabled:o=!1,autoFocus:r=!1,enableMention:c=!0})=>{const{mentionState:m,textareaRef:v,handleTextChange:x,handleKeyDown:u,handleCharacterSelect:C,closeMentionPopup:U}=bt({enabled:c,onPromptChange:t,prompt:a}),_=s.useCallback(d=>{const j=d.target.value,f=d.target.selectionStart||0;x(j,f)},[x]);return s.useEffect(()=>{r&&v.current&&v.current.focus()},[r,v]),e.jsxs("div",{className:"scene-prompt-input",children:[e.jsx("textarea",{ref:v,className:"scene-prompt-input__textarea",value:a,onChange:_,onKeyDown:u,placeholder:n,disabled:o,rows:3}),c&&e.jsx(wt,{visible:m.visible,query:m.query,position:m.position,showBelow:m.showBelow,selectedIndex:m.selectedIndex,onSelect:C,onClose:U})]})},$a=({enabled:a,onEnabledChange:t,totalDuration:n,maxScenes:o,minSceneDuration:r,scenes:c,onScenesChange:m,disabled:v=!1})=>{const[x,u]=s.useState(null),C=s.useRef(null);s.useEffect(()=>{a&&c.length>0&&!x&&u(c[0].id)},[a,c,x]);const U=s.useCallback(()=>{if(c.length>=o)return;const b=c.reduce((N,L)=>N+L.duration,0),p=n-b;let h=Math.max(r,p/2);h=parseFloat(h.toFixed(1)),h<r&&(h=r);const z=et(c.length+1,h);m([...c,z]),u(z.id),setTimeout(()=>{var N;(N=C.current)==null||N.scrollIntoView({behavior:"smooth"})},100)},[c,o,n,r,m]),_=s.useCallback(b=>{var z;if(c.length<=1)return;const h=c.filter(N=>N.id!==b).map((N,L)=>({...N,order:L+1}));m(h),x===b&&u(((z=h[0])==null?void 0:z.id)||null)},[c,m,x]),d=s.useCallback(b=>{const p=c.filter(h=>h.id!==b).reduce((h,z)=>h+z.duration,0);return Math.max(r,n-p)},[c,n,r]),j=s.useCallback(b=>{const p=d(b),h=[],z=.1;for(let N=r;N<=p+.001;N+=z){const L=parseFloat(N.toFixed(1));L<=p&&h.push({label:`${L}`,value:L})}return h},[r,d]),f=s.useCallback((b,p)=>{const h=typeof p=="string"?parseFloat(p):p;if(isNaN(h))return;const z=d(b),N=c.map(L=>{if(L.id===b){const H=Math.max(r,Math.min(h,z)),G=parseFloat(H.toFixed(1));return{...L,duration:G}}return L});m(N)},[c,r,d,m]),w=s.useCallback((b,p)=>{const h=c.map(z=>z.id===b?{...z,prompt:p}:z);m(h)},[c,m]),I=s.useCallback(b=>{if(t(b),b&&c.length===0){const p=et(1,n);m([p]),u(p.id)}},[c,n,t,m]),A=s.useCallback(b=>{u(b)},[]),y=c.length<o;return e.jsxs("div",{className:"storyboard-editor",children:[e.jsxs("div",{className:"storyboard-editor__header",children:[e.jsxs("div",{className:"storyboard-editor__toggle",children:[e.jsx(Qt,{value:a,onChange:I,disabled:v,size:"small"}),e.jsxs("div",{className:"storyboard-editor__title",children:[e.jsx("span",{className:"storyboard-editor__title-text",children:"故事场景模式"}),e.jsx("span",{className:"storyboard-editor__title-desc",children:"定义多个场景及其时长"})]})]}),a&&e.jsx("span",{className:"storyboard-editor__new-badge",children:"NEW"})]}),a&&e.jsxs("div",{className:"storyboard-editor__content",children:[e.jsxs("div",{className:"storyboard-editor__section-header",children:[e.jsx("span",{className:"storyboard-editor__section-title",children:"场景列表"}),e.jsxs("span",{className:"storyboard-editor__section-hint",children:["共 ",c.length," 个场景,已用 ",c.reduce((b,p)=>b+p.duration,0).toFixed(1)," 秒 / 总时长 ",n," 秒"]})]}),e.jsxs("div",{className:"storyboard-editor__scenes",children:[c.map((b,p)=>{const h=x===b.id,z=p===c.length-1;return e.jsxs("div",{className:`storyboard-editor__scene-wrapper ${h?"is-selected":""}`,children:[e.jsx("div",{className:`storyboard-editor__timeline-line ${z?"is-last":""}`}),e.jsx("div",{className:`storyboard-editor__timeline-node ${h?"is-selected":""}`,children:h?p+1:""}),!h&&e.jsxs("div",{className:"storyboard-editor__scene storyboard-editor__scene--compact",onClick:()=>A(b.id),children:[e.jsx("span",{className:"storyboard-editor__scene-index",children:p+1}),e.jsx("div",{className:"storyboard-editor__scene-preview",children:e.jsx("p",{className:"storyboard-editor__scene-preview-text",children:b.prompt||"暂无场景描述..."})}),e.jsxs("div",{className:"storyboard-editor__scene-duration-badge",children:[e.jsx(Ne,{size:"12px"}),e.jsxs("span",{children:[b.duration,"s"]})]}),e.jsx(ct,{className:"storyboard-editor__scene-arrow",size:"14px"})]}),h&&e.jsxs("div",{className:"storyboard-editor__scene storyboard-editor__scene--expanded",children:[e.jsxs("div",{className:"storyboard-editor__scene-header",children:[e.jsx("div",{className:"storyboard-editor__scene-info",children:e.jsxs("span",{className:"storyboard-editor__scene-label",children:[e.jsx("span",{className:"storyboard-editor__active-indicator"}),"场景 ",p+1]})}),e.jsxs("div",{className:"storyboard-editor__scene-controls",children:[e.jsx(Ne,{className:"storyboard-editor__time-icon"}),e.jsx(_e,{value:parseFloat(b.duration.toFixed(1)),onChange:N=>f(b.id,N),disabled:v,className:"storyboard-editor__duration-select",size:"small",options:j(b.id),filterable:!0,creatable:!0,popupProps:{overlayClassName:"storyboard-editor__duration-popup"}}),c.length>1&&e.jsx(de,{theme:"default",variant:"text",size:"small",icon:e.jsx(Xt,{}),onClick:N=>{N.stopPropagation(),_(b.id)},disabled:v,className:"storyboard-editor__scene-delete"})]})]}),e.jsx("div",{className:"storyboard-editor__scene-prompt",children:e.jsx(Fa,{value:b.prompt,onChange:N=>w(b.id,N),placeholder:`描述场景 ${p+1} 的内容,输入 @ 可引用角色`,disabled:v,autoFocus:!0,enableMention:!0})})]})]},b.id)}),e.jsx("div",{ref:C})]}),y&&e.jsx(de,{theme:"default",variant:"dashed",size:"medium",icon:e.jsx(Zt,{}),onClick:U,disabled:v,className:"storyboard-editor__add-btn",block:!0,children:"添加场景"})]})]})},St=({images:a,onImagesChange:t,language:n="zh",disabled:o=!1,multiple:r=!0,maxCount:c=10,label:m,slotLabels:v,onError:x})=>{const[u,C]=s.useState(!1),[U,_]=s.useState(!1),[d,j]=s.useState(0),f=s.useRef(null),w=s.useRef(null),{addAsset:I}=ea(),y={zh:{local:"本地",library:"素材库",dragHint:"拖拽图片到此处",pasteHint:"或 Ctrl+V 粘贴",invalidFile:"请上传图片文件",fileTooLarge:"图片大小不能超过 10MB",someFilesInvalid:"部分文件格式不支持或超过10MB限制",loadFailed:"加载图片失败",maxCountReached:"最多上传 {count} 张图片"},en:{local:"Local",library:"Library",dragHint:"Drop images here",pasteHint:"or Ctrl+V to paste",invalidFile:"Please upload image files",fileTooLarge:"Image size cannot exceed 10MB",someFilesInvalid:"Some files are not supported or exceed 10MB limit",loadFailed:"Failed to load image",maxCountReached:"Maximum {count} images allowed"}}[n],b=s.useCallback(i=>i.type.startsWith("image/")?i.size>10*1024*1024?(Q.error(y.fileTooLarge),!1):!0:(Q.error(y.invalidFile),!1),[y]),p=s.useCallback(i=>new Promise((l,k)=>{const R=new FileReader;R.onload=()=>{l({url:R.result,name:i.name,file:i})},R.onerror=k,R.readAsDataURL(i)}),[]),h=s.useCallback(async(i,l)=>{const R=Array.from(i).filter(b);if(R.length!==0){r&&a.length+R.length>c&&(Q.warning(y.maxCountReached.replace("{count}",String(c))),R.splice(c-a.length)),R.forEach(O=>{I(O,Ae.IMAGE,ta.LOCAL,O.name).catch(K=>{console.warn("[ReferenceImageUpload] Failed to add asset to library:",K)})});try{const O=await Promise.all(R.map(p));if(v&&l!==void 0){const K=[...a];K[l]=O[0],t(K.filter(Boolean))}else t(r?[...a,...O]:O.slice(0,1));x==null||x(null)}catch(O){console.error("[ReferenceImageUpload] Failed to process files:",O),x==null||x(y.loadFailed)}}},[a,r,c,v,b,p,I,t,x,y]),z=s.useCallback(i=>{const l=i.target.files;l&&l.length>0&&h(l,v?d:void 0),i.target.value=""},[h,v,d]),N=s.useCallback(async i=>{try{const k=await(await fetch(i.url)).blob(),R=new FileReader;R.onload=()=>{const O={url:R.result,name:i.name};if(v){const K=[...a];K[d]=O,t(K.filter(Boolean))}else if(r){if(a.length>=c){Q.warning(y.maxCountReached.replace("{count}",String(c)));return}t([...a,O])}else t([O]);C(!1),x==null||x(null)},R.readAsDataURL(k)}catch(l){console.error("[ReferenceImageUpload] Failed to convert asset to base64:",l),x==null||x(y.loadFailed),C(!1)}},[a,r,c,v,d,t,x,y]),L=s.useCallback(i=>{i.preventDefault(),i.stopPropagation(),o||_(!0)},[o]),H=s.useCallback(i=>{var k;i.preventDefault(),i.stopPropagation();const l=(k=f.current)==null?void 0:k.getBoundingClientRect();if(l){const{clientX:R,clientY:O}=i;(R<l.left||R>l.right||O<l.top||O>l.bottom)&&_(!1)}},[]),G=s.useCallback(i=>{i.preventDefault(),i.stopPropagation()},[]),S=s.useCallback((i,l)=>{if(i.preventDefault(),i.stopPropagation(),_(!1),o)return;const k=i.dataTransfer.files;k&&k.length>0&&h(k,l)},[o,h]);s.useEffect(()=>{const i=async l=>{var le;if(o)return;const k=document.activeElement,R=f.current;if(!R||!(R.contains(k)||k===document.body||(k==null?void 0:k.tagName)==="BODY"))return;const K=(le=l.clipboardData)==null?void 0:le.items;if(!K)return;const ae=[];for(let re=0;re<K.length;re++){const se=K[re];if(se.type.startsWith("image/")){const oe=se.getAsFile();oe&&ae.push(oe)}}ae.length>0&&(l.preventDefault(),h(ae))};return document.addEventListener("paste",i),()=>{document.removeEventListener("paste",i)}},[o,h]);const E=s.useCallback(i=>{const l=a.filter((k,R)=>R!==i);t(l)},[a,t]),D=s.useCallback(i=>{var l;i!==void 0&&j(i),(l=w.current)==null||l.click()},[]),T=s.useCallback(i=>{i!==void 0&&j(i),C(!0)},[]),P=i=>e.jsx("div",{className:`reference-image-upload__placeholder ${U?"reference-image-upload__placeholder--dragging":""}`,onDragEnter:L,onDragLeave:H,onDragOver:G,onDrop:l=>S(l,i),children:e.jsxs("div",{className:"reference-image-upload__buttons",children:[e.jsx(de,{variant:"outline",icon:e.jsx(ze,{size:16}),onClick:()=>D(i),disabled:o,"data-track":"reference_image_upload_local",className:"reference-image-upload__btn",children:y.local}),e.jsx(de,{variant:"outline",icon:e.jsx(Fe,{size:16}),onClick:()=>T(i),disabled:o,"data-track":"reference_image_upload_library",className:"reference-image-upload__btn",children:y.library})]})}),g=(i,l)=>e.jsxs("div",{className:"reference-image-upload__preview",children:[e.jsx("img",{src:i.url,alt:i.name,className:"reference-image-upload__image"}),e.jsx("button",{type:"button",className:"reference-image-upload__remove",onClick:()=>E(l),disabled:o,"data-track":"reference_image_upload_remove",children:e.jsx(ra,{size:14})}),v&&v[l]&&e.jsx("div",{className:"reference-image-upload__slot-label",children:v[l]})]},l),B=()=>v?e.jsx("div",{className:"reference-image-upload__slots",children:v.map((i,l)=>{const k=a[l];return e.jsxs("div",{className:"reference-image-upload__slot",children:[e.jsx("div",{className:"reference-image-upload__slot-title",children:i}),k?g(k,l):e.jsx("div",{className:`reference-image-upload__slot-placeholder ${U?"reference-image-upload__slot-placeholder--dragging":""}`,onDragEnter:L,onDragLeave:H,onDragOver:G,onDrop:R=>S(R,l),children:e.jsxs("div",{className:"reference-image-upload__slot-buttons",children:[e.jsx(de,{variant:"outline",icon:e.jsx(ze,{size:16}),onClick:()=>D(l),disabled:o,"data-track":"reference_image_upload_slot_local",className:"reference-image-upload__slot-btn",children:y.local}),e.jsx(de,{variant:"outline",icon:e.jsx(Fe,{size:16}),onClick:()=>T(l),disabled:o,"data-track":"reference_image_upload_slot_library",className:"reference-image-upload__slot-btn",children:y.library})]})})]},l)})}):null,$=()=>{const i=r&&a.length<c;return e.jsxs("div",{className:"reference-image-upload__grid",children:[a.map((l,k)=>g(l,k)),i&&P(),a.length===0&&!i&&P()]})},q=()=>a.length>0?e.jsxs("div",{className:"reference-image-upload__single",children:[g(a[0],0),e.jsx("div",{className:"reference-image-upload__replace",children:P()})]}):P();return e.jsxs("div",{ref:f,className:`reference-image-upload ${o?"reference-image-upload--disabled":""}`,tabIndex:0,children:[m&&e.jsx("div",{className:"reference-image-upload__label",children:m}),e.jsx("input",{ref:w,type:"file",accept:"image/*",multiple:r&&!v,onChange:z,className:"reference-image-upload__input",disabled:o}),v?B():r?$():q(),e.jsx(aa,{isOpen:u,onClose:()=>C(!1),mode:sa.SELECT,filterType:Ae.IMAGE,onSelect:N})]})},Dt=({taskIds:a,taskType:t,onEditTask:n})=>{var q;const{tasks:o,retryTask:r,deleteTask:c}=ye(),{board:m,openDialog:v}=we(),[x,u]=s.useState(!1),[C,U]=s.useState(null),[_,d]=s.useState(null),[j,f]=s.useState(""),[w,I]=s.useState(null),A=(i,l)=>{var ae,le,re,se,oe,ue,fe,M,F,V;if(!l.trim())return!0;const k=l.toLowerCase().split(/\s+/).filter(Boolean),R={[pe.PENDING]:"待处理",[pe.PROCESSING]:"处理中",[pe.COMPLETED]:"已完成",[pe.FAILED]:"失败",[pe.CANCELLED]:"已取消"},O=[];O.push(((ae=i.params)==null?void 0:ae.prompt)??""),O.push(((le=i.params)==null?void 0:le.model)??""),O.push(i.id??""),O.push(R[i.status]??String(i.status)),(re=i.params)!=null&&re.batchId&&O.push(String(i.params.batchId)),(se=i.params)!=null&&se.batchIndex&&O.push(String(i.params.batchIndex)),(oe=i.params)!=null&&oe.batchTotal&&O.push(String(i.params.batchTotal)),(ue=i.result)!=null&&ue.format&&O.push(String(i.result.format)),(fe=i.result)!=null&&fe.width&&((M=i.result)!=null&&M.height)?O.push(`${i.result.width}x${i.result.height}`):(F=i.params)!=null&&F.width&&((V=i.params)!=null&&V.height)&&O.push(`${i.params.width}x${i.params.height}`);const K=O.join(" ").toLowerCase();return k.every(W=>K.includes(W))},y=s.useMemo(()=>{let i=o;return a&&a.length>0&&(i=i.filter(l=>a.includes(l.id))),t!==void 0&&(i=i.filter(l=>l.type===t)),j.trim()&&(i=i.filter(l=>A(l,j))),i.sort((l,k)=>k.createdAt-l.createdAt)},[o,a,t,j]),b=i=>{r(i)},p=i=>{U(i),u(!0)},h=()=>{C&&c(C),u(!1),U(null)},z=async i=>{var R;const l=o.find(O=>O.id===i);if(!((R=l==null?void 0:l.result)!=null&&R.url))return;const k=`${ma(l.params.prompt)||l.type}.${l.result.format}`;try{const O=await pa.getCachedBlob(l.result.url);if(O){ha(O,k),Q.success("下载成功");return}const K=await fa(l.result.url,l.params.prompt,l.result.format,l.type);K&&"opened"in K?Q.success("已在新标签页打开,请右键另存为"):Q.success("下载成功")}catch(O){console.error("Download failed:",O),Q.error("下载失败,请稍后重试")}},N=async i=>{var k;const l=o.find(R=>R.id===i);if(!((k=l==null?void 0:l.result)!=null&&k.url)||!m){console.warn("Cannot insert: task result or board not available"),Q.warning("无法插入:白板未就绪");return}try{l.type===X.IMAGE?(await da(m,l.result.url),Q.success("图片已插入到白板")):l.type===X.VIDEO&&(await ua(m,l.result.url),Q.success("视频已插入到白板"))}catch(R){console.error("Failed to insert to board:",R),Q.error(`插入失败: ${R instanceof Error?R.message:"未知错误"}`)}},L=i=>{var k,R;const l=o.find(O=>O.id===i);if(!l){console.warn("Cannot edit: task not found");return}if(n){n(l);return}if(l.type===X.IMAGE){const O={initialPrompt:l.params.prompt,initialWidth:l.params.width,initialHeight:l.params.height,initialImages:l.params.uploadedImages,initialResultUrl:(k=l.result)==null?void 0:k.url};v(ee.aiImageGeneration,O)}else if(l.type===X.VIDEO){const O={initialPrompt:l.params.prompt,initialDuration:typeof l.params.seconds=="string"?parseInt(l.params.seconds,10):l.params.seconds,initialModel:l.params.model,initialSize:l.params.size,initialImages:l.params.uploadedImages,initialResultUrl:(R=l.result)==null?void 0:R.url};v(ee.aiVideoGeneration,O)}},H=i=>{const l=o.find(k=>k.id===i);l&&I(l)},G=s.useMemo(()=>y.filter(i=>{var l;return i.status===pe.COMPLETED&&((l=i.result)==null?void 0:l.url)}),[y]),S=s.useMemo(()=>{if(!_)return null;const i=G.findIndex(l=>l.id===_);return i===-1?null:{currentIndex:i,total:G.length,hasPrevious:i>0,hasNext:i<G.length-1}},[_,G]),E=i=>{d(i)},D=()=>{d(null)},T=()=>{!S||!S.hasPrevious||d(G[S.currentIndex-1].id)},P=()=>{!S||!S.hasNext||d(G[S.currentIndex+1].id)},g=s.useMemo(()=>_?o.find(i=>i.id===_):null,[_,o]);s.useEffect(()=>{if(!_)return;const i=l=>{l.key==="ArrowLeft"||l.key==="ArrowUp"?(l.preventDefault(),T()):l.key==="ArrowRight"||l.key==="ArrowDown"?(l.preventDefault(),P()):l.key==="Escape"&&(l.preventDefault(),D())};return window.addEventListener("keydown",i),()=>window.removeEventListener("keydown",i)},[_,S]);const B=s.useMemo(()=>{let i=o;return a&&a.length>0&&(i=i.filter(l=>a.includes(l.id))),t!==void 0&&(i=i.filter(l=>l.type===t)),i.length},[o,a,t]),$=j.trim()&&y.length===0&&B>0;return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"dialog-task-list",children:[e.jsxs("div",{className:"dialog-task-list__header",style:{display:"flex",alignItems:"center",gap:8,justifyContent:"space-between"},children:[e.jsxs("h4",{children:["生成任务 (",y.length,")"]}),e.jsx("div",{style:{minWidth:"180px",maxWidth:"240px",flexShrink:0},children:e.jsx(na,{value:j,onChange:i=>f(i),placeholder:"搜索任务(提示词/模型/...)",clearable:!0,prefixIcon:e.jsx(oa,{}),size:"small"})})]}),e.jsx(ia,{tasks:y,onRetry:b,onDelete:p,onDownload:z,onInsert:N,onEdit:L,onPreviewOpen:E,onExtractCharacter:H,className:"dialog-task-list__content",emptyContent:e.jsx("div",{className:"dialog-task-list__empty",children:$?e.jsx("p",{children:"未找到匹配的任务"}):e.jsx("p",{children:"暂无生成任务"})})})]}),e.jsx($e,{visible:x,header:"确认删除",onClose:()=>u(!1),onConfirm:h,onCancel:()=>u(!1),children:"确定要删除此任务吗?此操作无法撤销。"}),g&&((q=g.result)==null?void 0:q.url)&&e.jsx($e,{visible:!!_,onClose:D,width:"90vw",header:e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e.jsx("span",{children:g.type===X.IMAGE?"图片预览":g.type===X.CHARACTER?"角色预览":"视频预览"}),S&&e.jsxs("span",{style:{fontSize:"14px",color:"#757575",fontWeight:"normal"},children:[S.currentIndex+1," / ",S.total]})]}),footer:null,className:"task-preview-dialog",children:e.jsxs("div",{className:"task-preview-container",children:[e.jsx(de,{className:"task-preview-nav task-preview-nav--left",icon:e.jsx(la,{}),"data-track":"task_click_preview_previous",onClick:T,size:"large",shape:"circle",variant:"outline",disabled:!(S!=null&&S.hasPrevious)}),e.jsx(Ua,{task:g}),e.jsx(de,{className:"task-preview-nav task-preview-nav--right",icon:e.jsx(ct,{}),"data-track":"task_click_preview_next",onClick:P,size:"large",shape:"circle",variant:"outline",disabled:!(S!=null&&S.hasNext)})]})}),e.jsx(ca,{visible:!!w,task:w,onClose:()=>I(null),onCreateComplete:i=>{I(null)}})]})},Ua=({task:a})=>{var o;const{url:t,isFromCache:n}=ga(a.id,(o=a.result)==null?void 0:o.url);return t?e.jsxs("div",{className:"task-preview-content",children:[a.type===X.IMAGE||a.type===X.CHARACTER?e.jsx("img",{src:t,alt:"Preview",style:{maxWidth:"100%",maxHeight:"85vh",objectFit:"contain"}},a.id):e.jsx("video",{src:t,controls:!0,autoPlay:!0,style:{maxWidth:"100%",maxHeight:"85vh"}},a.id),n&&e.jsx("div",{className:"task-preview-cache-badge",children:"已缓存"})]}):e.jsx("div",{className:"task-preview-content",children:"加载中..."})},Ba=({initialPrompt:a="",initialImages:t=[],selectedElementIds:n=[],initialWidth:o,initialHeight:r,initialResultUrl:c,selectedModel:m,onModelChange:v}={})=>{const[x,u]=s.useState(a),[C,U]=s.useState(o||1024),[_,d]=s.useState(r||1024),[j,f]=s.useState(Ze),[w,I]=s.useState(null),[A,y]=s.useState(t),{imageHistory:b}=ht(),{isGenerating:p}=gt("image"),{language:h}=he(),{createTask:z}=ye(),[N,L]=s.useState(!1),H=ne.useRef("");s.useEffect(()=>{if(N)return;const g=JSON.stringify({prompt:a,images:t==null?void 0:t.map(B=>B.url),elementIds:n,width:o,height:r,result:c});H.current!==g&&(H.current=g,u(a),y(t||[]),o&&U(o),r&&d(r))},[a,t,n,o,r,c,N]),s.useEffect(()=>(I(null),()=>{I(null)}),[]);const G=()=>{u(""),y([]),I(null),f(Ze),L(!1),window.dispatchEvent(new CustomEvent("ai-image-clear"))},S=ne.useMemo(()=>_t("image",h,b),[b,h]),E=g=>{jt("image",g)},D=g=>{if(L(!0),u(g.params.prompt||""),U(g.params.width||1024),d(g.params.height||1024),g.params.uploadedImages&&g.params.uploadedImages.length>0?y(g.params.uploadedImages):y([]),g.params.model){const B=J.get();J.update({...B,imageModelName:g.params.model})}g.params.aspectRatio&&f(g.params.aspectRatio),I(null)},T=async()=>Promise.all(A.map(async g=>{if(g.file)return new Promise((B,$)=>{const q=new FileReader;q.onload=()=>{B({type:"url",url:q.result,name:g.name})},q.onerror=$,q.readAsDataURL(g.file)});if(g.url)return{type:"url",url:g.url,name:g.name};throw new Error("Invalid image data")})),P=async(g=1)=>{if(!x.trim()){I(h==="zh"?"请输入图像描述":"Please enter image description");return}if(!J.get().apiKey&&!await xa()){I(h==="zh"?"需要 API Key 才能生成图片":"API Key is required to generate images");return}try{const $=typeof C=="string"?parseInt(C)||1024:C,q=typeof _=="string"?parseInt(_)||1024:_,i=await T();if(g>1){const K=[],ae=`batch_${Date.now()}`,re=J.get().imageModelName||"gemini-3-pro-image-preview-vip";for(let se=0;se<g;se++){const oe={prompt:x.trim(),width:$,height:q,aspectRatio:j,model:re,uploadedImages:i,batchId:ae,batchIndex:se+1,batchTotal:g,autoInsertToCanvas:!0},ue=z(oe,X.IMAGE);ue&&K.push(ue.id)}K.length>0?(Q.success(h==="zh"?`已添加 ${K.length} 个任务到队列`:`Added ${K.length} tasks to queue`),E(x),I(null),L(!1)):I(h==="zh"?"批量任务创建失败,请稍后重试":"Failed to create batch tasks, please try again later");return}const k=J.get().imageModelName||"gemini-2.5-flash-image-vip",R={prompt:x.trim(),width:$,height:q,aspectRatio:j,model:k,uploadedImages:i,autoInsertToCanvas:!0};z(R,X.IMAGE)?(Q.success(h==="zh"?"任务已添加到队列,将在后台生成":"Task added to queue, will be generated in background"),E(x),I(null),L(!1)):I(h==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later")}catch($){console.error("Failed to create task:",$);let q=h==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later";$.message&&($.message.includes("exceed 5000 characters")?q=h==="zh"?"提示词不能超过 5000 字符":"Prompt must not exceed 5000 characters":$.message.includes("Duplicate submission")?q=h==="zh"?"请勿重复提交,请等待 5 秒后再试":"Duplicate submission. Please wait 5 seconds.":$.message.includes("Invalid parameters")&&(q=h==="zh"?`参数错误: ${$.message.replace("Invalid parameters: ","")}`:$.message)),I(q)}};return ft(p,x,()=>P(1)),e.jsx("div",{className:"ai-image-generation-container",children:e.jsxs("div",{className:"main-content",children:[e.jsxs("div",{className:"ai-image-generation-section",children:[e.jsxs("div",{className:"ai-image-generation-form",children:[m!==void 0&&v&&e.jsx("div",{className:"form-header-row",children:e.jsx("div",{className:"model-selector-wrapper",children:e.jsx(_e,{value:m,onChange:g=>v(g),options:va,size:"small",placeholder:h==="zh"?"选择图片模型":"Select Image Model",filterable:!0,creatable:!0,disabled:p})})}),e.jsx(St,{images:A,onImagesChange:y,language:h,disabled:p,multiple:!0,label:h==="zh"?"参考图片 (可选)":"Reference Images (Optional)",onError:I}),e.jsx(yt,{prompt:x,onPromptChange:u,presetPrompts:S,language:h,type:"image",disabled:p,onError:I}),e.jsx(xt,{error:w})]}),e.jsx(vt,{language:h,type:"image",isGenerating:p,hasGenerated:!1,canGenerate:!!x.trim(),onGenerate:P,onReset:G,leftContent:e.jsx(Oa,{value:j,onChange:f,compact:!0})})]}),e.jsx("div",{className:"task-sidebar",children:e.jsx(Dt,{taskType:X.IMAGE,onEditTask:D})})]})})},Va=({initialPrompt:a="",initialImage:t,initialImages:n,initialDuration:o,initialModel:r,initialSize:c,initialResultUrl:m,selectedModel:v,onModelChange:x}={})=>{const[u,C]=s.useState(a),[U,_]=s.useState(null),[d,j]=s.useState(()=>{const M=J.get();return r||M.videoModelName||"veo3"}),f=ne.useMemo(()=>De(d),[d]),w=ne.useMemo(()=>Se(d),[d]),[I,A]=s.useState((o==null?void 0:o.toString())||w.duration),[y,b]=s.useState(c||w.size),[p,h]=s.useState(()=>n&&n.length>0?n:t?[{slot:0,slotLabel:"参考图",url:t.url||"",name:t.name,file:t.file}]:[]),[z,N]=s.useState(()=>{const M=f.imageUpload.maxCount,F=f.imageUpload.labels||[];let V=[];return n&&n.length>0?V=n:t&&(V=[{slot:0,slotLabel:F[0]||"参考图",url:t.url||"",name:t.name,file:t.file}]),V.slice(0,M).map((W,Y)=>({...W,slot:Y,slotLabel:F[Y]||`参考图${Y+1}`}))}),[L,H]=s.useState(!1),[G,S]=s.useState([]),E=ne.useMemo(()=>wa(d),[d]),D=Ue(d),{videoHistory:T}=ht(),[P,g]=s.useState(0),{isGenerating:B}=gt("video"),{language:$}=he(),{createTask:q}=ye();s.useEffect(()=>{const M=F=>{const V=F.videoModelName||"veo3";V!==d&&j(V)};return J.addListener(M),()=>J.removeListener(M)},[d]),s.useEffect(()=>{v&&v!==d&&j(v)},[v]);const[i,l]=s.useState(!1),[k,R]=s.useState(!1);s.useEffect(()=>{if(k){R(!1);return}const M=f.imageUpload.maxCount,F=f.imageUpload.labels||[];if(A(w.duration),b(w.size),p.length>0){const V=p.slice(0,M).map((W,Y)=>({...W,slot:Y,slotLabel:F[Y]||`参考图${Y+1}`}));N(V)}else N([]);Ue(d)||(H(!1),S([]))},[d,w,k,p,f.imageUpload]);const O=ne.useRef("");s.useEffect(()=>{if(i)return;const M=JSON.stringify({prompt:a,image:t==null?void 0:t.url,images:n==null?void 0:n.map(Z=>Z.url),duration:o,model:r,size:c,result:m});if(O.current===M)return;O.current=M,C(a);const F=f.imageUpload.maxCount,V=f.imageUpload.labels||[];let W=[];n&&n.length>0?W=n:t&&(W=[{slot:0,slotLabel:"参考图",url:t.url||"",name:t.name,file:t.file}]),h(W);const Y=W.slice(0,F).map((Z,ie)=>({...Z,slot:ie,slotLabel:V[ie]||`参考图${ie+1}`}));N(Y),o!==void 0&&A(o.toString()),c&&b(c),_(null)},[a,t,n,o,c,m,f.imageUpload,i]),s.useEffect(()=>(_(null),()=>{_(null)}),[]);const K=()=>{C(""),h([]),N([]),_(null);const M=Se(d);A(M.duration),b(M.size),l(!1),H(!1),S([]),window.dispatchEvent(new CustomEvent("ai-video-clear"))},ae=ne.useCallback((M,F)=>M.map((V,W)=>({slot:W,slotLabel:F[W]||`参考图${W+1}`,url:V.url,name:V.name,file:V.file})),[]),le=ne.useCallback(M=>M.map(F=>({url:F.url,name:F.name,file:F.file})),[]),re=ne.useCallback(M=>{const F=f.imageUpload.labels||[],V=ae(M,F);N(V),h(V)},[f.imageUpload.labels,ae]),se=ne.useMemo(()=>_t("video",$,T),[T,$,P]),oe=M=>{jt("video",M),g(F=>F+1)},ue=M=>{var F,V;if(l(!0),R(!0),M.params.model){j(M.params.model);const W=J.get();J.update({...W,videoModelName:M.params.model})}if((F=M.params.storyboard)!=null&&F.enabled&&((V=M.params.storyboard)!=null&&V.scenes))H(!0),S(M.params.storyboard.scenes),C("");else{const W=M.params.prompt||"",Y=za(W);Y&&Y.length>0?(H(!0),S(Y),C("")):(H(!1),S([]),C(W))}if(M.params.seconds!==void 0){const W=typeof M.params.seconds=="string"?M.params.seconds:M.params.seconds.toString();A(W)}if(M.params.size&&b(M.params.size),M.params.uploadedImages&&M.params.uploadedImages.length>0){h(M.params.uploadedImages);const W=M.params.model||d,Y=De(W),Z=Y.imageUpload.maxCount,ie=Y.imageUpload.labels||[],me=M.params.uploadedImages.slice(0,Z).map((je,ce)=>({...je,slot:ce,slotLabel:ie[ce]||`参考图${ce+1}`}));N(me)}else h([]),N([]);_(null)},fe=async(M=1)=>{if(L){const F=La(G,parseFloat(I),E.minSceneDuration);if(!F.valid){_(F.error||"场景配置无效");return}}else if(!u.trim()){_($==="zh"?"请输入视频描述":"Please enter video description");return}try{const F=[];for(const Z of z)if(Z.file){const ie=await new Promise((me,je)=>{const ce=new FileReader;ce.onload=()=>me(ce.result),ce.onerror=je,ce.readAsDataURL(Z.file)});F.push({...Z,url:ie,file:void 0})}else F.push({...Z,file:void 0});const V=L?Aa(G):u.trim(),W=[],Y=M>1?`video_batch_${Date.now()}`:void 0;for(let Z=0;Z<M;Z++){const ie={prompt:V,model:d,seconds:I,size:y,uploadedImages:F,...L&&{storyboard:{enabled:!0,scenes:G,totalDuration:parseFloat(I)}},...Y&&{batchId:Y,batchIndex:Z+1,batchTotal:M},autoInsertToCanvas:!0},me=q(ie,X.VIDEO);me&&W.push(me.id)}W.length>0?(Q.success($==="zh"?M>1?`${W.length} 个视频任务已添加到队列,将在后台生成`:"视频任务已添加到队列,将在后台生成":M>1?`${W.length} video tasks added to queue, will be generated in background`:"Video task added to queue, will be generated in background"),oe(V),C(""),h([]),N([]),H(!1),S([]),_(null),l(!1)):_($==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later")}catch(F){console.error("Failed to create task:",F);let V=$==="zh"?"任务创建失败,请检查参数或稍后重试":"Failed to create task, please check parameters or try again later";F.message&&(F.message.includes("exceed 5000 characters")?V=$==="zh"?"提示词不能超过 5000 字符":"Prompt must not exceed 5000 characters":F.message.includes("Duplicate submission")?V=$==="zh"?"请勿重复提交,请等待 5 秒后再试":"Duplicate submission. Please wait 5 seconds.":F.message.includes("Invalid parameters")&&(V=$==="zh"?`参数错误: ${F.message.replace("Invalid parameters: ","")}`:F.message)),_(V)}};return ft(B,u,fe),e.jsx("div",{className:"ai-video-generation-container",children:e.jsxs("div",{className:"main-content",children:[e.jsxs("div",{className:"ai-image-generation-section",children:[e.jsxs("div",{className:"ai-image-generation-form",children:[v!==void 0&&x&&e.jsx("div",{className:"model-selector-wrapper",children:e.jsx(_e,{value:v,onChange:M=>x(M),options:ba,size:"small",placeholder:$==="zh"?"选择视频模型":"Select Video Model",filterable:!0,creatable:!0,disabled:B})}),e.jsx(ka,{model:d,duration:I,size:y,onDurationChange:A,onSizeChange:b,disabled:B}),e.jsx(St,{images:le(z),onImagesChange:re,language:$,disabled:B,multiple:f.imageUpload.maxCount>1,maxCount:f.imageUpload.maxCount,slotLabels:f.imageUpload.mode==="frames"?f.imageUpload.labels:void 0,label:f.imageUpload.mode==="frames"?$==="zh"?"首尾帧图片 (可选)":"Start/End Frames (Optional)":$==="zh"?"参考图片 (可选)":"Reference Images (Optional)"}),D&&e.jsx($a,{enabled:L,onEnabledChange:H,totalDuration:parseFloat(I),maxScenes:E.maxScenes,minSceneDuration:E.minSceneDuration,scenes:G,onScenesChange:S,disabled:B}),!L&&e.jsx(yt,{prompt:u,onPromptChange:C,presetPrompts:se,language:$,type:"video",disabled:B,onError:_,videoProvider:f.provider}),e.jsx(xt,{error:U})]}),e.jsx(vt,{language:$,type:"video",isGenerating:B,hasGenerated:!1,canGenerate:L?G.length>0:!!u.trim(),onGenerate:fe,onReset:K})]}),e.jsx("div",{className:"task-sidebar",children:e.jsx(Dt,{taskType:X.VIDEO,onEditTask:ue})})]})})};let te=null,ve=null;const Ga=async()=>te||(typeof window<"u"&&window.WinBox?(te=window.WinBox,te):ve||(ve=(async()=>{try{if(await be(()=>import("./winbox.bundle.min-CoRPjCs5.js"),[],import.meta.url),te=window.WinBox,te)return te;throw new Error("WinBox not found after import")}catch(a){return console.warn("Dynamic import failed, falling back to CDN:",a),new Promise((t,n)=>{const o=document.createElement("script");o.src="https://cdn.jsdelivr.net/npm/winbox@0.2.82/dist/winbox.bundle.min.js",o.async=!0,o.onload=()=>{te=window.WinBox,te?t(te):n(new Error("WinBox not found after CDN loading"))},o.onerror=n,document.head.appendChild(o)})}})(),ve)),tt=({visible:a,title:t,onClose:n,children:o,width:r="80%",height:c="80%",minWidth:m=400,minHeight:v=300,x="center",y:u="center",maximizable:C=!0,minimizable:U=!0,resizable:_=!0,movable:d=!0,modal:j=!1,background:f="linear-gradient(135deg, #5A4FCF 0%, #7B68EE 50%, #E91E63 100%)",border:w=0,className:I,id:A,headerContent:y,container:b,onMaximize:p,onRestore:h,onFocus:z,onBlur:N,onMove:L,onResize:H,autoMaximize:G=!1})=>{const S=s.useRef(null),E=s.useRef(null),D=s.useRef(null),[T,P]=s.useState(null),[g,B]=s.useState(!1),[$,q]=s.useState(!!te),i=ya(D,{enablePositionTracking:!1,enableScaleCompensation:!0});s.useEffect(()=>{$||Ga().then(()=>q(!0))},[$]);const l=s.useCallback(()=>(n==null||n(),!1),[n]);return s.useEffect(()=>{if(!(!$||!te)){if(!a){if(S.current){try{S.current.close(!0)}catch{}S.current=null,D.current=null,P(null),B(!1)}return}if(a&&!S.current&&E.current){const k=["winbox-react"];C||k.push("no-max"),U||k.push("no-min"),_||k.push("no-resize"),d||k.push("no-move"),k.push("no-full"),I&&k.push(I);const R=new te({id:A,title:t,mount:E.current,width:r,height:c,minwidth:m,minheight:v,x,y:u,modal:j,background:f,border:w,class:k,root:b||document.body,onclose:l,onmaximize:p,onrestore:h,onfocus:z,onblur:N,onmove:L,onresize:H});if(S.current=R,R.window&&(D.current=R.window,requestAnimationFrame(()=>{i()})),y&&R.window){const O=R.window.querySelector(".wb-drag");if(O){const K=document.createElement("div");K.className="wb-header-custom",O.appendChild(K),P(K)}}B(!0),G&&setTimeout(()=>{S.current&&S.current.maximize()},100)}}},[a,$,G]),s.useEffect(()=>()=>{if(S.current){try{S.current.onclose=null,S.current.close(!0)}catch{}S.current=null,D.current=null}},[]),s.useEffect(()=>{S.current&&t&&S.current.setTitle(t)},[t]),s.useEffect(()=>{S.current&&(a?(S.current.show(),S.current.focus()):S.current.hide())},[a]),s.useEffect(()=>{S.current&&G&&S.current.maximize()},[G]),e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{display:"none"},"data-winbox-placeholder":"true",children:e.jsx("div",{ref:E,className:"winbox-content-wrapper",style:{display:a?"block":"none"},children:o})}),g&&y&&T&<.createPortal(y,T)]})},Wa=s.lazy(()=>be(()=>import("./batch-image-generation-BEr8WnyA.js"),__vite__mapDeps([8,1,2,9,10,11,12,13,14]),import.meta.url)),Ha=({container:a})=>{var L,H,G,S;const{appState:t,setAppState:n}=we(),{language:o}=he(),r=Te(),c=s.useRef(!1),m=s.useRef(null),[v,x]=s.useState(""),[u,C]=s.useState("");s.useEffect(()=>{const E=J.get();x(E.imageModelName||"gemini-3-pro-image-preview-vip"),C(E.videoModelName||"veo3")},[]),s.useEffect(()=>{const E=D=>{D.imageModelName&&x(D.imageModelName),D.videoModelName&&C(D.videoModelName)};return J.addListener(E),()=>J.removeListener(E)},[]);const U=E=>{x(E);const D=J.get();J.update({...D,imageModelName:E})},_=E=>{C(E);const D=J.get();J.update({...D,videoModelName:E})},[d,j]=s.useState({initialPrompt:"",initialImages:[],selectedElementIds:[]}),[f,w]=s.useState({initialPrompt:"",initialImage:void 0}),[I,A]=s.useState(!1),[y,b]=s.useState(()=>{try{return localStorage.getItem(Ie)==="batch"?"batch":"single"}catch{return"single"}}),p=s.useCallback(E=>{b(E),A(E==="batch");try{localStorage.setItem(Ie,E)}catch(D){console.warn("Failed to save image mode:",D)}},[]);s.useEffect(()=>{if(t.openDialogType===ee.aiImageGeneration){if(d.initialImages&&d.initialImages.length>0||d.initialPrompt&&d.initialPrompt.trim()!==""){A(!1);return}try{const D=localStorage.getItem(Ie);A(D==="batch")}catch{A(!1)}}},[t.openDialogType,d.initialImages,d.initialPrompt]);const h=s.useRef(null);s.useEffect(()=>{if(!r||!t.openDialogType){h.current=t.openDialogType;return}h.current!==t.openDialogType&&(c.current||(h.current=t.openDialogType,t.openDialogType===ee.aiImageGeneration&&(async()=>{c.current=!0,m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{console.warn("Processing timeout, resetting processing state"),c.current=!1},1e4);try{if(t.dialogInitialData){j({initialPrompt:t.dialogInitialData.initialPrompt||t.dialogInitialData.prompt||"",initialImages:t.dialogInitialData.initialImages||t.dialogInitialData.uploadedImages||[],selectedElementIds:[],initialResultUrl:t.dialogInitialData.initialResultUrl||t.dialogInitialData.resultUrl});return}const D=t.lastSelectedElementIds||[],T=await He(r,D),P=[];T.remainingImages.forEach(g=>{P.push({url:g.url,name:g.name||`selected-image-${Date.now()}.png`})}),T.graphicsImage&&P.push({url:T.graphicsImage,name:`graphics-combined-${Date.now()}.png`}),j({initialPrompt:T.remainingText||"",initialImages:P,selectedElementIds:D})}catch(D){console.warn("Error processing selected content for AI:",D);const T=Ke(r),P=T.images.map(g=>({url:g.url,name:g.name||`selected-image-${Date.now()}.png`}));j({initialPrompt:T.text||"",initialImages:P,selectedElementIds:[]})}finally{c.current=!1,m.current&&(clearTimeout(m.current),m.current=null)}})(),t.openDialogType===ee.aiVideoGeneration&&(async()=>{c.current=!0,m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{console.warn("Video processing timeout, resetting processing state"),c.current=!1},1e4);try{if(t.dialogInitialData){const g={initialPrompt:t.dialogInitialData.initialPrompt||t.dialogInitialData.prompt||"",initialImage:t.dialogInitialData.initialImage||t.dialogInitialData.uploadedImage,initialImages:t.dialogInitialData.initialImages||t.dialogInitialData.uploadedImages,initialDuration:t.dialogInitialData.initialDuration||t.dialogInitialData.duration,initialModel:t.dialogInitialData.initialModel||t.dialogInitialData.model,initialSize:t.dialogInitialData.initialSize||t.dialogInitialData.size,initialResultUrl:t.dialogInitialData.initialResultUrl||t.dialogInitialData.resultUrl};w(g);return}const D=t.lastSelectedElementIds||[],T=await He(r,D),P=[];T.remainingImages.length>0?T.remainingImages.forEach((g,B)=>{P.push({url:g.url,name:g.name||`selected-image-${B+1}-${Date.now()}.png`})}):T.graphicsImage&&P.push({url:T.graphicsImage,name:`graphics-combined-${Date.now()}.png`}),w({initialPrompt:T.remainingText||"",initialImage:P.length>0?P[0]:void 0,initialImages:P.map((g,B)=>({slot:B,slotLabel:`参考图${B+1}`,url:g.url,name:g.name}))})}catch(D){console.warn("Error processing selected content for AI video:",D);const T=Ke(r),P=T.images.map((g,B)=>({url:g.url,name:g.name||`selected-image-${B+1}-${Date.now()}.png`}));w({initialPrompt:T.text||"",initialImage:P.length>0?P[0]:void 0,initialImages:P.map((g,B)=>({slot:B,slotLabel:`参考图${B+1}`,url:g.url,name:g.name}))})}finally{c.current=!1,m.current&&(clearTimeout(m.current),m.current=null)}})()))},[t.openDialogType]),s.useEffect(()=>{t.openDialogType||(c.current=!1,h.current=null)},[t.openDialogType]);const z=s.useCallback(()=>{const E=localStorage.getItem(Be);if(E)try{const D=JSON.parse(E);D.timestamp=Date.now(),localStorage.setItem(Be,JSON.stringify(D))}catch(D){console.warn("Failed to update cache timestamp:",D)}n(D=>({...D,openDialogType:null}))},[n]),N=s.useCallback(()=>{const E=localStorage.getItem(Ve);if(E)try{const D=JSON.parse(E);D.timestamp=Date.now(),localStorage.setItem(Ve,JSON.stringify(D))}catch(D){console.warn("Failed to update cache timestamp:",D)}n(D=>({...D,openDialogType:null}))},[n]);return e.jsxs(e.Fragment,{children:[e.jsx(Ge,{open:t.openDialogType===ee.mermaidToDrawnix,onOpenChange:E=>{n({...t,openDialogType:E?ee.mermaidToDrawnix:null})},children:e.jsx(We,{className:"Dialog ttd-dialog",container:a,children:e.jsx(Ca,{})})}),e.jsx(Ge,{open:t.openDialogType===ee.markdownToDrawnix,onOpenChange:E=>{n({...t,openDialogType:E?ee.markdownToDrawnix:null})},children:e.jsx(We,{className:"Dialog ttd-dialog",container:a,children:e.jsx(Sa,{})})}),e.jsx(tt,{visible:t.openDialogType===ee.aiImageGeneration,title:y==="batch"?o==="zh"?"批量出图":"Batch Generation":o==="zh"?"AI 图片生成":"AI Image Generation",headerContent:e.jsxs("div",{className:"image-generation-mode-tabs",children:[e.jsx("button",{className:`mode-tab ${y==="single"?"active":""}`,onClick:()=>p("single"),children:o==="zh"?"AI 图片生成":"AI Image"}),e.jsx("button",{className:`mode-tab ${y==="batch"?"active":""}`,onClick:()=>p("batch"),children:o==="zh"?"批量出图":"Batch"})]}),onClose:z,width:"80%",height:"60%",minWidth:1024,minHeight:500,x:"center",y:"center",modal:!1,minimizable:!1,className:"winbox-ai-generation winbox-ai-image-generation",container:a,autoMaximize:I,children:t.openDialogType===ee.aiImageGeneration&&(y==="batch"?e.jsx(s.Suspense,{fallback:e.jsx("div",{className:"loading-fallback",children:o==="zh"?"加载中...":"Loading..."}),children:e.jsx(Wa,{onSwitchToSingle:()=>p("single")})}):e.jsx(Ba,{initialPrompt:d.initialPrompt,initialImages:d.initialImages,selectedElementIds:d.selectedElementIds,initialWidth:((L=t.dialogInitialData)==null?void 0:L.initialWidth)||((H=t.dialogInitialData)==null?void 0:H.width),initialHeight:((G=t.dialogInitialData)==null?void 0:G.initialHeight)||((S=t.dialogInitialData)==null?void 0:S.height),initialResultUrl:d.initialResultUrl,selectedModel:v,onModelChange:U}))}),e.jsx(tt,{visible:t.openDialogType===ee.aiVideoGeneration,title:o==="zh"?"AI 视频生成":"AI Video Generation",onClose:N,width:"70%",height:"60%",minWidth:800,minHeight:600,x:"center",y:"center",modal:!1,minimizable:!1,className:"winbox-ai-generation winbox-ai-video-generation",container:a,children:t.openDialogType===ee.aiVideoGeneration&&e.jsx(Va,{initialPrompt:f.initialPrompt,initialImage:f.initialImage,initialImages:f.initialImages,initialDuration:f.initialDuration,initialModel:f.initialModel,initialSize:f.initialSize,initialResultUrl:f.initialResultUrl,selectedModel:u,onModelChange:_})})]})},Xa=s.memo(Ha,(a,t)=>a.container===t.container);export{Xa as TTDDialog};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{an as s,z as e,ao as t,ap as u,aq as i}from"./index-
|
|
1
|
+
import{an as s,z as e,ao as t,ap as u,aq as i}from"./index-C6f1jS5T.js";import{b as o}from"./_baseUniq-CJcN2wXt.js";function f(a,r){return s(r,function(n){return a[n]})}function b(a){return a==null?[]:f(a,e(a))}var m=t(function(a){return o(u(a,1,i,!0))});export{m as u,b as v};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as o,I as i,_ as f}from"./index-
|
|
1
|
+
import{r as o,I as i,_ as f}from"./index-C6f1jS5T.js";function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(p){return Object.getOwnPropertyDescriptor(e,p).enumerable})),t.push.apply(t,n)}return t}function c(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};r%2?a(Object(t),!0).forEach(function(n){f(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}var l={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12 2.58569L17.9142 8.49991L16.5 9.91412L13 6.41412L13 15.9999H11L11 6.41412L7.5 9.91412L6.08579 8.49991L12 2.58569ZM4.5 13.9999V18.9999H19.5V13.9999H21.5V20.9999H2.5V13.9999H4.5Z"}}]},s=o.forwardRef(function(e,r){return o.createElement(i,c(c({},e),{},{id:"upload",ref:r,icon:l}))});s.displayName="UploadIcon";export{s as U};
|