aitu-app 0.5.21 → 0.5.24
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-DZUaOu9O.js} +3 -3
- package/assets/{Serializer-DPCLjt6U.js → Serializer-C_KNMVa5.js} +1 -1
- package/assets/{ToolboxDrawer-D-ZDs49h.js → ToolboxDrawer-DMs6NEQ9.js} +18 -18
- package/assets/_baseUniq-CkDEmepm.js +1 -0
- package/assets/{advancedFormat-Chr195ZY.js → advancedFormat-DDVKqCcb.js} +1 -1
- package/assets/{ai-analyze-D3V-tpIV.js → ai-analyze-CdMnSdcj.js} +1 -1
- package/assets/{arc-lNLKXIKC.js → arc-DxooX0JA.js} +1 -1
- package/assets/{architectureDiagram-VXUJARFQ-CCzBT9XK.js → architectureDiagram-VXUJARFQ-By9X2_fg.js} +1 -1
- package/assets/{batch-image-generation-CgR-a8Ii.js → batch-image-generation-BNCavPE3.js} +1 -1
- package/assets/{blockDiagram-38ab4fdb-CbcE_DRD.js → blockDiagram-38ab4fdb-CaSq1se3.js} +1 -1
- package/assets/{blockDiagram-VD42YOAC-CgcfCyW1.js → blockDiagram-VD42YOAC-BikDTbXB.js} +1 -1
- package/assets/{c4Diagram-3d4e48cf-DqzYo_xg.js → c4Diagram-3d4e48cf-B4tV12g-.js} +1 -1
- package/assets/{c4Diagram-YG6GDRKO-BTZAWhX1.js → c4Diagram-YG6GDRKO-JMT--oeK.js} +1 -1
- package/assets/channel-C_nOy9ji.js +1 -0
- package/assets/{chunk-4BX2VUAB-DH-I_3Sl.js → chunk-4BX2VUAB-BPeyyZbJ.js} +1 -1
- package/assets/{chunk-55IACEB6-BJKBSn0v.js → chunk-55IACEB6-Ccwuu0V6.js} +1 -1
- package/assets/{chunk-B4BG7PRW-BIhB4ChZ.js → chunk-B4BG7PRW-DLAZ694p.js} +1 -1
- package/assets/{chunk-DI55MBZ5-NlFLhYIc.js → chunk-DI55MBZ5-B4N06CXR.js} +1 -1
- package/assets/{chunk-FMBD7UC4-QVfOPBEJ.js → chunk-FMBD7UC4-DhF98R8b.js} +1 -1
- package/assets/{chunk-QN33PNHL-C_DotWZ6.js → chunk-QN33PNHL-DRmv0Kl8.js} +1 -1
- package/assets/{chunk-QZHKN3VN-Ei6ogyMg.js → chunk-QZHKN3VN-NK4FKL-2.js} +1 -1
- package/assets/{chunk-TZMSLE5B-CKPTgIMs.js → chunk-TZMSLE5B-C3pBP9gO.js} +1 -1
- package/assets/classDiagram-2ON5EDUG-LTjKb48E.js +1 -0
- package/assets/{classDiagram-70f12bd4-DeAD0Lw4.js → classDiagram-70f12bd4-CzjJ3zBX.js} +1 -1
- package/assets/classDiagram-v2-WZHVMYZB-LTjKb48E.js +1 -0
- package/assets/{classDiagram-v2-f2320105-DR43MMrr.js → classDiagram-v2-f2320105-4itfn1co.js} +1 -1
- package/assets/clone-aw5zGyML.js +1 -0
- package/assets/{cose-bilkent-S5V4N54A-CE31mcuy.js → cose-bilkent-S5V4N54A-D40X2DSY.js} +1 -1
- package/assets/{createText-2e5e7dd3-DuyGuD-n.js → createText-2e5e7dd3-DhE7DCyc.js} +1 -1
- package/assets/{cytoscape-cose-bilkent-DTqUuT3l.js → cytoscape-cose-bilkent-BsYgDGHx.js} +1 -1
- package/assets/{dagre-6UL2VRFP-CuJmVGl3.js → dagre-6UL2VRFP-uiP7xLTe.js} +1 -1
- package/assets/{diagram-PSM6KHXK-D5Y5dlL9.js → diagram-PSM6KHXK-BUdQQ4mi.js} +1 -1
- package/assets/{diagram-QEK2KX5R-DOWAGxHq.js → diagram-QEK2KX5R-Da7c7682.js} +1 -1
- package/assets/{diagram-S2PKOQOG-ykMhl6fc.js → diagram-S2PKOQOG-B6hGrurD.js} +1 -1
- package/assets/{edges-e0da2a9e-BpsZLv9t.js → edges-e0da2a9e-BzY0YHdX.js} +1 -1
- package/assets/{erDiagram-9861fffd-rZLPDBgy.js → erDiagram-9861fffd-C4picwCJ.js} +1 -1
- package/assets/{erDiagram-Q2GNP2WA-zRo1erex.js → erDiagram-Q2GNP2WA-C0s9UR06.js} +1 -1
- package/assets/{flowDb-956e92f1-f4MK2XS7.js → flowDb-956e92f1-B5hwoPgC.js} +1 -1
- package/assets/{flowDiagram-66a62f08-_6Eo5sZi.js → flowDiagram-66a62f08-CrR2uteW.js} +1 -1
- package/assets/{flowDiagram-NV44I4VS-CFCClCRc.js → flowDiagram-NV44I4VS-DjrSimbb.js} +1 -1
- package/assets/flowDiagram-v2-96b9c2cf-DgGX-RZm.js +1 -0
- package/assets/{flowchart-elk-definition-4a651766-t4QJuK_b.js → flowchart-elk-definition-4a651766-BDOktHiR.js} +1 -1
- package/assets/{ganttDiagram-JELNMOA3-DIX2ad-2.js → ganttDiagram-JELNMOA3-4pTVMpLW.js} +1 -1
- package/assets/{ganttDiagram-c361ad54-dX5QjWrh.js → ganttDiagram-c361ad54-DRHnwNf3.js} +1 -1
- package/assets/{gitGraphDiagram-72cf32ee-BBZSqS6J.js → gitGraphDiagram-72cf32ee-C5lLz1AW.js} +1 -1
- package/assets/{gitGraphDiagram-NY62KEGX-C-FRyLSQ.js → gitGraphDiagram-NY62KEGX-RhL9MP5w.js} +1 -1
- package/assets/{graph-BpCqwwyJ.js → graph-CfNSLaMq.js} +1 -1
- package/assets/{graph-dwf5l9kJ.js → graph-bUdqaJE_.js} +1 -1
- package/assets/{grid-image-DRAUp_wj.js → grid-image-acNs-BIa.js} +1 -1
- package/assets/{has-BBSmRLAB.js → has-DqJVnicm.js} +1 -1
- package/assets/hasIn-BgAGChZR.js +1 -0
- package/assets/{index-3862675e-BmuXVGGA.js → index-3862675e-CGEqBqVJ.js} +1 -1
- package/assets/{index-DNIlXgAo.js → index-BJLqfOr0.js} +15 -15
- package/assets/{index-DEjUAZUe.js → index-BVXa7MXV.js} +2 -2
- package/assets/index-CB62HEjY.js +1 -0
- package/assets/index-CJy2IilV.js +13 -0
- package/assets/index-CNCXXhfY.css +1 -0
- package/assets/{index-DvbaH1wH.js → index-Ck1hF1QZ.js} +9 -9
- package/assets/index-D5zpPSZd.css +1 -0
- package/assets/index-DNBUgJ6m.js +6 -0
- package/assets/{index-eOV7y-oZ.js → index-DYqiMz6F.js} +1 -1
- package/assets/{index-_FyCDKGq.js → index-DwM7FTGg.js} +4 -4
- package/assets/{index-CISxTBJ3.js → index-Mr4gAcdX.js} +1 -1
- package/assets/index-UMnk2FgQ.css +1 -0
- package/assets/index-hu9MEe3D.js +2087 -0
- package/assets/{infoDiagram-WHAUD3N6-Cw6LtQsv.js → infoDiagram-WHAUD3N6-PQkd8OJe.js} +1 -1
- package/assets/{infoDiagram-f8f76790-suYKggbB.js → infoDiagram-f8f76790-DMu2j8xn.js} +1 -1
- package/assets/{inspiration-board-8CO8xK39.js → inspiration-board-DjFziX4I.js} +1 -1
- package/assets/{isEmpty-BZ44SF3F.js → isEmpty-lhEuKFnA.js} +1 -1
- package/assets/{journeyDiagram-49397b02-DLzRdow3.js → journeyDiagram-49397b02-c1Ox_S5e.js} +1 -1
- package/assets/{journeyDiagram-XKPGCS4Q-CcD6LNVi.js → journeyDiagram-XKPGCS4Q-C9TTNqlU.js} +1 -1
- package/assets/{kanban-definition-3W4ZIXB7-DWA3YqY9.js → kanban-definition-3W4ZIXB7-D48lDwmv.js} +1 -1
- package/assets/{layout-D8KZ21ze.js → layout-LQknPSHO.js} +1 -1
- package/assets/{layout-jxFX0Ar3.js → layout-k4A-djr0.js} +1 -1
- package/assets/{line-B3fXWiyE.js → line-DW5onvZ1.js} +1 -1
- package/assets/{linear-DsVcoO9v.js → linear-BD1p-SFP.js} +1 -1
- package/assets/{mermaid.core-ruaJ9d8x.js → mermaid.core-C9xtTvXS.js} +4 -4
- package/assets/{min-B6fh4WRE.js → min-DVwuybYx.js} +1 -1
- package/assets/{mindmap-definition-VGOIOE7T-BzeNa7DW.js → mindmap-definition-VGOIOE7T-CKq7aT8O.js} +1 -1
- package/assets/{mindmap-definition-fc14e90a-C3sElkm0.js → mindmap-definition-fc14e90a-ByyhB4pn.js} +1 -1
- package/assets/{photo-wall-splitter-C1GbxYBl.js → photo-wall-splitter-BIKUaBqT.js} +1 -1
- package/assets/{pick-DUB8w7iE.js → pick-DgQOmoYu.js} +1 -1
- package/assets/{pie-DAYMJpRO.js → pie-B6R_p3p3.js} +1 -1
- package/assets/{pieDiagram-8a3498a8-CZI3pF7g.js → pieDiagram-8a3498a8-DHhO5yag.js} +1 -1
- package/assets/{pieDiagram-ADFJNKIX-BqonG77Q.js → pieDiagram-ADFJNKIX-DN2VC8bQ.js} +1 -1
- package/assets/{quadrantDiagram-120e2f19-Q2bVMK-T.js → quadrantDiagram-120e2f19-DPjaVe-4.js} +1 -1
- package/assets/{quadrantDiagram-AYHSOK5B-yJZRIs-Q.js → quadrantDiagram-AYHSOK5B-CiJOSVPI.js} +1 -1
- package/assets/{requirementDiagram-UZGBJVZJ-3kaAkLjO.js → requirementDiagram-UZGBJVZJ-D2GEKncs.js} +1 -1
- package/assets/{requirementDiagram-deff3bca-DHOhXBYo.js → requirementDiagram-deff3bca-Bw6uhN2Z.js} +1 -1
- package/assets/{sankeyDiagram-04a897e0-3UqYNZg9.js → sankeyDiagram-04a897e0-glX-T11Z.js} +1 -1
- package/assets/{sankeyDiagram-TZEHDZUN-Ce844Tbc.js → sankeyDiagram-TZEHDZUN-B0sxBMgX.js} +1 -1
- package/assets/{sequenceDiagram-704730f1-CBXqjnXl.js → sequenceDiagram-704730f1-YOQcYS6k.js} +1 -1
- package/assets/{sequenceDiagram-WL72ISMW-DBN2cRGt.js → sequenceDiagram-WL72ISMW-CH7OsdKd.js} +1 -1
- package/assets/{settings-dialog-aU8BHcuS.js → settings-dialog-BhXTHyTf.js} +1 -1
- package/assets/{stateDiagram-587899a1-BGKPA37n.js → stateDiagram-587899a1-DB0HJUlE.js} +1 -1
- package/assets/{stateDiagram-FKZM4ZOC-Czg5Opf0.js → stateDiagram-FKZM4ZOC-D7dinatq.js} +1 -1
- package/assets/stateDiagram-v2-4FDKWEC3-34OgkUmW.js +1 -0
- package/assets/{stateDiagram-v2-d93cdb3a-DWU3UljE.js → stateDiagram-v2-d93cdb3a-CVqrr3U9.js} +1 -1
- package/assets/{styles-6aaf32cf-BVLDN8CD.js → styles-6aaf32cf-CJlj1Ty8.js} +1 -1
- package/assets/{styles-9a916d00-vSy8MhZp.js → styles-9a916d00-l8x77ac6.js} +1 -1
- package/assets/{styles-c10674c1-dzTvI8BU.js → styles-c10674c1-DixhXbk5.js} +1 -1
- package/assets/{svgDrawCommon-08f97a94-dptVwf62.js → svgDrawCommon-08f97a94-9oE5_zSZ.js} +1 -1
- package/assets/{timeline-definition-85554ec2-jKiT0ZaE.js → timeline-definition-85554ec2-BARq6AF9.js} +1 -1
- package/assets/{timeline-definition-IT6M3QCI-B2NoE4jH.js → timeline-definition-IT6M3QCI-B_wm5Yc_.js} +1 -1
- package/assets/{treemap-KMMF4GRG-1nrNbz-r.js → treemap-KMMF4GRG-CEXoIc79.js} +1 -1
- package/assets/ttd-dialog-BgDkODyr.js +47 -0
- package/assets/{ttd-dialog-DCapefb6.css → ttd-dialog-DhSikbX8.css} +1 -1
- package/assets/union-C2tc6S2B.js +1 -0
- package/assets/{upload-Crej215t.js → upload-DQt3EdOm.js} +1 -1
- package/assets/{video-recovery-service-Zb_336FQ.js → video-recovery-service-B0iISZ_W.js} +1 -1
- package/assets/{xychartDiagram-PRI3JC2R-UPkX0dfi.js → xychartDiagram-PRI3JC2R-gNLbCmE-.js} +1 -1
- package/assets/{xychartDiagram-e933f94c-BXYMaBZh.js → xychartDiagram-e933f94c-C1RYlf2W.js} +1 -1
- package/assets/zipObject-B1zPFQtb.js +1 -0
- package/package.json +1 -1
- package/sw-debug/app.js +7 -9
- package/sw-debug/console-entry.js +68 -26
- package/sw-debug/postmessage-entry.js +4 -3
- package/sw-debug/styles.css +58 -102
- package/sw-debug/utils.js +3 -6
- package/sw.js +7 -7
- package/version.json +2 -2
- package/assets/_baseUniq-CHS3E5If.js +0 -1
- 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/hasIn-CGUnHN5L.js +0 -1
- package/assets/index-B2dvADz8.css +0 -1
- package/assets/index-DCs3C-gs.js +0 -1
- package/assets/index-Ds1UcDjn.js +0 -2064
- package/assets/stateDiagram-v2-4FDKWEC3-4Ev4KuVZ.js +0 -1
- package/assets/ttd-dialog-WN-s4x87.js +0 -47
- package/assets/union-B2D_ldts.js +0 -1
- package/assets/zipObject-bwVIVuzi.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as r,b as e,a,S as i}from"./chunk-DI55MBZ5-NlFLhYIc.js";import{_ as s}from"./mermaid.core-ruaJ9d8x.js";import"./Serializer-DPCLjt6U.js";import"./chunk-55IACEB6-BJKBSn0v.js";import"./chunk-QN33PNHL-C_DotWZ6.js";import"./index-Ds1UcDjn.js";import"./line-B3fXWiyE.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";import"./isEmpty-BZ44SF3F.js";var g={parser:a,get db(){return new i(2)},renderer:e,styles:r,init:s(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{g as diagram};
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-_FyCDKGq.js","./index-Ds1UcDjn.js","./index-B2dvADz8.css","./Serializer-DPCLjt6U.js","./isEmpty-BZ44SF3F.js","./index-DEjUAZUe.js","./index-CISxTBJ3.js","./index.dom-C3-224fz.js","./batch-image-generation-CgR-a8Ii.js","./index-DNIlXgAo.js","./pick-DUB8w7iE.js","./hasIn-CGUnHN5L.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-Ds1UcDjn.js";/* empty css */import{S as _e}from"./index-DNIlXgAo.js";import"./pick-DUB8w7iE.js";import"./hasIn-CGUnHN5L.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
|
-
A[Christmas] -->|Get money| B(Go shopping)
|
|
4
|
-
B --> C{Let me think}
|
|
5
|
-
C -->|One| D[Laptop]
|
|
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-_FyCDKGq.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
|
-
|
|
9
|
-
- 让我看看是谁搞出了这个 bug 🕵️ ♂️ 🔍
|
|
10
|
-
- 😯 💣
|
|
11
|
-
- 原来是我 👈 🎯 💘
|
|
12
|
-
|
|
13
|
-
- 竟然不可以运行,为什么呢 🚫 ⚙️ ❓
|
|
14
|
-
- 竟然可以运行了,为什么呢?🎢 ✨
|
|
15
|
-
- 🤯 ⚡ ➡️ 🎉
|
|
16
|
-
|
|
17
|
-
- 能运行起来的 🐞 🚀
|
|
18
|
-
- 就不要去动它 🛑 ✋
|
|
19
|
-
- 👾 💥 🏹 🎯
|
|
20
|
-
|
|
21
|
-
## 男孩还是女孩 👶 ❓ 🤷 ♂️ ♀️
|
|
22
|
-
|
|
23
|
-
### Hello world 👋 🌍 ✨ 💻
|
|
24
|
-
|
|
25
|
-
#### 哇 是个程序员 🤯 ⌨️ 💡 👩 💻`:`# I have started
|
|
26
|
-
|
|
27
|
-
- Let me see who made this bug 🕵️ ♂️ 🔍
|
|
28
|
-
- 😯 💣
|
|
29
|
-
- Turns out it was me 👈 🎯 💘
|
|
30
|
-
|
|
31
|
-
- Unexpectedly, it cannot run; why is that 🚫 ⚙️ ❓
|
|
32
|
-
- Unexpectedly, it can run now; why is that? 🎢 ✨
|
|
33
|
-
- 🤯 ⚡ ➡️ 🎉
|
|
34
|
-
|
|
35
|
-
- What can run 🐞 🚀
|
|
36
|
-
- then do not touch it 🛑 ✋
|
|
37
|
-
- 👾 💥 🏹 🎯
|
|
38
|
-
|
|
39
|
-
## Boy or girl 👶 ❓ 🤷 ♂️ ♀️
|
|
40
|
-
|
|
41
|
-
### Hello world 👋 🌍 ✨ 💻
|
|
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}:
|
|
44
|
-
duration: ${t.duration}sec
|
|
45
|
-
Scene: ${t.prompt.trim()}`).join(`
|
|
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};
|
package/assets/union-B2D_ldts.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{an as s,z as e,ao as t,ap as u,aq as i}from"./index-Ds1UcDjn.js";import{b as o}from"./_baseUniq-CHS3E5If.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 +0,0 @@
|
|
|
1
|
-
import{br as B,ao as v,bs as h,bt as w,bu as E,m as L,z,bv as G,bw as P,aE as O,aD as x,an as s,n as V,ar as p,bx as q,ap as T,by as U,ax as X}from"./index-Ds1UcDjn.js";import{d as c,e as Y,g as M,h as F}from"./_baseUniq-CHS3E5If.js";import{b as A,a as Z,c as _}from"./min-B6fh4WRE.js";var o=1/0,$=17976931348623157e292;function b(r){if(!r)return r===0?r:0;if(r=B(r),r===o||r===-o){var n=r<0?-1:1;return n*$}return r===r?r:0}function l(r){var n=b(r),i=n%1;return n===n?i?n-i:n:0}var C=Object.prototype,H=C.hasOwnProperty,tn=v(function(r,n){r=Object(r);var i=-1,u=n.length,f=u>2?n[2]:void 0;for(f&&h(n[0],n[1],f)&&(u=1);++i<u;)for(var a=n[i],t=w(a),d=-1,e=t.length;++d<e;){var g=t[d],m=r[g];(m===void 0||E(m,C[g])&&!H.call(r,g))&&(r[g]=a[g])}return r});function J(r){return function(n,i,u){var f=Object(n);if(!L(n)){var a=c(i);n=z(n),i=function(d){return a(f[d],d,f)}}var t=r(n,i,u);return t>-1?f[a?n[t]:t]:void 0}}var K=Math.max;function N(r,n,i){var u=r==null?0:r.length;if(!u)return-1;var f=i==null?0:l(i);return f<0&&(f=K(u+f,0)),Y(r,c(n),f)}var dn=J(N);function gn(r,n){return r==null?r:G(r,M(n),w)}function en(r,n){return r&&F(r,M(n))}function Q(r,n){return r>n}function cn(r,n){var i={};return n=c(n),F(r,function(u,f,a){P(i,f,n(u,f,a))}),i}function bn(r){return r&&r.length?A(r,O,Q):void 0}function hn(r,n){return r&&r.length?A(r,c(n),Z):void 0}function R(r,n){var i=r.length;for(r.sort(n);i--;)r[i]=r[i].value;return r}function W(r,n){if(r!==n){var i=r!==void 0,u=r===null,f=r===r,a=x(r),t=n!==void 0,d=n===null,e=n===n,g=x(n);if(!d&&!g&&!a&&r>n||a&&t&&e&&!d&&!g||u&&t&&e||!i&&e||!f)return 1;if(!u&&!a&&!g&&r<n||g&&i&&f&&!u&&!a||d&&i&&f||!t&&f||!e)return-1}return 0}function j(r,n,i){for(var u=-1,f=r.criteria,a=n.criteria,t=f.length,d=i.length;++u<t;){var e=W(f[u],a[u]);if(e){if(u>=d)return e;var g=i[u];return e*(g=="desc"?-1:1)}}return r.index-n.index}function k(r,n,i){n.length?n=s(n,function(a){return V(a)?function(t){return p(t,a.length===1?a[0]:a)}:a}):n=[O];var u=-1;n=s(n,q(c));var f=_(r,function(a,t,d){var e=s(n,function(g){return g(a)});return{criteria:e,index:++u,value:a}});return R(f,function(a,t){return j(a,t,i)})}var y=Math.ceil,D=Math.max;function S(r,n,i,u){for(var f=-1,a=D(y((n-r)/(i||1)),0),t=Array(a);a--;)t[++f]=r,r+=i;return t}function I(r){return function(n,i,u){return u&&typeof u!="number"&&h(n,i,u)&&(i=u=void 0),n=b(n),i===void 0?(i=n,n=0):i=b(i),u=u===void 0?n<i?1:-1:b(u),S(n,i,u)}}var sn=I(),mn=v(function(r,n){if(r==null)return[];var i=n.length;return i>1&&h(r,n[0],n[1])?n=[]:i>2&&h(n[0],n[1],n[2])&&(n=[n[0]]),k(r,T(n),[])}),nn=0;function xn(r){var n=++nn;return U(r)+n}function rn(r,n,i){for(var u=-1,f=r.length,a=n.length,t={};++u<f;){var d=u<a?n[u]:void 0;i(t,r[u],d)}return t}function on(r,n){return rn(r||[],n||[],X)}export{hn as a,cn as b,gn as c,tn as d,en as e,dn as f,bn as m,sn as r,mn as s,xn as u,on as z};
|