aitu-app 0.6.39 → 0.6.41
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/{AudioTrackList-CQEd1SE2.js → AudioTrackList-BtCRG0W9.js} +1 -1
- package/assets/{BaseDrawer-F3GT0wol.js → BaseDrawer-D3uMjiL3.js} +1 -1
- package/assets/{CanvasAudioPlayer-BzrQPq21.js → CanvasAudioPlayer-UVBRzAXF.js} +2 -2
- package/assets/{ChatMessagesArea-BVWuc832.js → ChatMessagesArea-DJejf06U.js} +2 -2
- package/assets/{DeferredMediaLibraryModal-CIs0-iBb.js → DeferredMediaLibraryModal-DcsXW5VN.js} +1 -1
- package/assets/{DeferredSyncSettings-CYz23NFv.js → DeferredSyncSettings-CyaQpm3i.js} +1 -1
- package/assets/{DrawnixDeferredFeatures-D5KdFjk7.js → DrawnixDeferredFeatures-Dn7Xj0Z3.js} +1 -1
- package/assets/DrawnixDeferredRuntime-IAIlHrj-.js +2 -0
- package/assets/{FrameSlideshow-B5Sqi_uV.js → FrameSlideshow-BoTtxoO1.js} +1 -1
- package/assets/{KnowledgeBaseContent-CmYEJ68E.js → KnowledgeBaseContent-H9TbTJvp.js} +3 -3
- package/assets/{MVCreator-CiekRLRL.js → MVCreator-aXPJyopn.js} +1 -1
- package/assets/{MediaViewer-CSkzdABU.js → MediaViewer-DzoUeXBR.js} +1 -1
- package/assets/{ModelBenchmarkWorkbench-Cg3ZArhL.js → ModelBenchmarkWorkbench-BwWtsodh.js} +1 -1
- package/assets/{MusicAnalyzer-DKddmB8C.js → MusicAnalyzer-CDvA6t6F.js} +1 -1
- package/assets/{MusicAnalyzer-Ch6kc-VC.js → MusicAnalyzer-dSwp-5u_.js} +1 -1
- package/assets/{PerformancePanel-CG1_1lC_.js → PerformancePanel-DzTs2p1S.js} +1 -1
- package/assets/{ProjectDrawer-B05H2n8S.js → ProjectDrawer-DewT6n4a.js} +1 -1
- package/assets/{ResizableDivider-3ZzTVK5M.js → ResizableDivider-C2cq_TjJ.js} +1 -1
- package/assets/TaskQueuePanel-BeApAqO9.js +33 -0
- package/assets/{ToolWinBoxManager-CX4BFjZL.js → ToolWinBoxManager-Soe0apvc.js} +1 -1
- package/assets/{ToolboxDrawer-DVxfQUMA.js → ToolboxDrawer-Btme0xvj.js} +1 -1
- package/assets/{VideoAnalyzer-BZLeASAQ.js → VideoAnalyzer-CuzOgGcP.js} +1 -1
- package/assets/{_baseFlatten-DHT6_8EL.js → _baseFlatten-BCqnPdEZ.js} +1 -1
- package/assets/{_baseUnset-Cb5y6_CP.js → _baseUnset-CvjcxnsS.js} +1 -1
- package/assets/_flatRest-rR2Z0C6Y.js +1 -0
- package/assets/{ai-analyze-BvjohIET.js → ai-analyze-X7h-GOWX.js} +1 -1
- package/assets/{arc-wiKe35BQ.js → arc-DXO039Xm.js} +1 -1
- package/assets/{arc-8k3RC1rL.js → arc-pfqxEt0t.js} +1 -1
- package/assets/{backup-restore-dialog-Cyxi_Y_l.js → backup-restore-dialog-BtB57ttG.js} +1 -1
- package/assets/{batch-image-generation-7zLsAOoI.js → batch-image-generation-D-i-Clb3.js} +1 -1
- package/assets/{blockDiagram-38ab4fdb-C1eTyro1.js → blockDiagram-38ab4fdb-DaJgeJH3.js} +1 -1
- package/assets/{blockDiagram-38ab4fdb-B_Rlv1o7.js → blockDiagram-38ab4fdb-Ds5ygtJ4.js} +1 -1
- package/assets/{browser-BV_Vo8ib.js → browser-BanMklii.js} +1 -1
- package/assets/{c4Diagram-3d4e48cf-wWn-Dh3x.js → c4Diagram-3d4e48cf-DJiQAduw.js} +1 -1
- package/assets/{c4Diagram-3d4e48cf-DJ9zPKS5.js → c4Diagram-3d4e48cf-o7ZLfD1H.js} +1 -1
- package/assets/{canvas-search-C6q6eL16.js → canvas-search-B3cv-vBS.js} +1 -1
- package/assets/channel-B6SjUS7J.js +1 -0
- package/assets/channel-DmO21CjN.js +1 -0
- package/assets/{character-api-service-C-_8TuNT.js → character-api-service-Z5lj969r.js} +1 -1
- package/assets/{character-storage-service-C2yg9sZZ.js → character-storage-service-C15hxlXu.js} +1 -1
- package/assets/{chevron-right-Dz5PrqD9.js → chevron-right-JQJ6nsCM.js} +1 -1
- package/assets/{classDiagram-70f12bd4-ZR7RlD8j.js → classDiagram-70f12bd4-BuujyQDs.js} +1 -1
- package/assets/{classDiagram-70f12bd4-C98UuGfZ.js → classDiagram-70f12bd4-Ck4-oQ5D.js} +1 -1
- package/assets/{classDiagram-v2-f2320105-CRHLGmlc.js → classDiagram-v2-f2320105-DoNQx5aA.js} +1 -1
- package/assets/{classDiagram-v2-f2320105-DwdJcJnt.js → classDiagram-v2-f2320105-Dv6Fyw1T.js} +1 -1
- package/assets/{clipper-C-3Qh_LP.js → clipper-Mxx-YtU_.js} +1 -1
- package/assets/clone-B5TrWxil.js +1 -0
- package/assets/clone-BtBg_52f.js +1 -0
- package/assets/{cloud-upload-CUOtugCp.js → cloud-upload-BPCicte3.js} +1 -1
- package/assets/{command-palette-CFAIZcMn.js → command-palette-DtjyZO1K.js} +1 -1
- package/assets/{createText-2e5e7dd3-D5vBY76-.js → createText-2e5e7dd3-C1lbpLn5.js} +1 -1
- package/assets/{createText-2e5e7dd3-tEJFXclV.js → createText-2e5e7dd3-zEue2anl.js} +1 -1
- package/assets/{download-hxWX9Zug.js → download-DYHFFs_D.js} +1 -1
- package/assets/{edges-e0da2a9e-CZg0dJ7e.js → edges-e0da2a9e-6TFI6ri7.js} +1 -1
- package/assets/{edges-e0da2a9e-DdZcggFY.js → edges-e0da2a9e-DLDhf7N7.js} +1 -1
- package/assets/{erDiagram-9861fffd-Bmy_l1e2.js → erDiagram-9861fffd-BwNvQade.js} +1 -1
- package/assets/{erDiagram-9861fffd-BST5k6B4.js → erDiagram-9861fffd-D8gvypkQ.js} +1 -1
- package/assets/{flowDb-956e92f1-C1e0_b4D.js → flowDb-956e92f1-BjoO9lX3.js} +1 -1
- package/assets/{flowDb-956e92f1-DSmVZJdU.js → flowDb-956e92f1-DThEumt2.js} +1 -1
- package/assets/{flowDiagram-66a62f08-CGUWQVBs.js → flowDiagram-66a62f08-D_3eV3FW.js} +1 -1
- package/assets/{flowDiagram-66a62f08-DhtZQo8y.js → flowDiagram-66a62f08-Djar-0xH.js} +1 -1
- package/assets/flowDiagram-v2-96b9c2cf-D_o_l8mf.js +1 -0
- package/assets/flowDiagram-v2-96b9c2cf-DlX4O43J.js +1 -0
- package/assets/{flowchart-elk-definition-4a651766-3gPCxf8A.js → flowchart-elk-definition-4a651766-DRuIOBj4.js} +1 -1
- package/assets/{flowchart-elk-definition-4a651766-CHnG4qQD.js → flowchart-elk-definition-4a651766-jtxteXv9.js} +1 -1
- package/assets/{ganttDiagram-c361ad54-CdFUB0PH.js → ganttDiagram-c361ad54-CMUm4MNv.js} +1 -1
- package/assets/{ganttDiagram-c361ad54-BGYuN1kY.js → ganttDiagram-c361ad54-DHKw9_fl.js} +1 -1
- package/assets/{gitGraphDiagram-72cf32ee-89Sf2o_5.js → gitGraphDiagram-72cf32ee-BQLvVnfS.js} +1 -1
- package/assets/{gitGraphDiagram-72cf32ee-DmC20udR.js → gitGraphDiagram-72cf32ee-Bbv0LiBu.js} +1 -1
- package/assets/{graph-B7_YBdiF.js → graph-BrEvzXkm.js} +1 -1
- package/assets/{graph-czHcr1bG.js → graph-DjrCCbgI.js} +1 -1
- package/assets/{grid-image-BuvvMKxR.js → grid-image-CveytoVB.js} +1 -1
- package/assets/{has-aqa_Fwg4.js → has-CvGtAZQx.js} +1 -1
- package/assets/{hasIn-BDL07gxd.js → hasIn-nbpeC_Rj.js} +1 -1
- package/assets/{image-C--jLg-o.js → image-C9vXAEOB.js} +1 -1
- package/assets/{index-3862675e-dB13VUjK.js → index-3862675e-BPi9rMHp.js} +1 -1
- package/assets/{index-3862675e-DqCaYyno.js → index-3862675e-C7dRX1tW.js} +1 -1
- package/assets/{index-AlmVCHjU.js → index-9VQ_keH7.js} +1 -1
- package/assets/{index-B0oVxHhb.js → index-9eZTYsQ4.js} +1 -1
- package/assets/{index-BcO0jvMY.js → index-B4YlucHs.js} +3 -3
- package/assets/{index-H0kbbmQa.js → index-B9_izWqT.js} +1 -1
- package/assets/{index-Dh9eNp-v.js → index-BNDRjX-d.js} +1 -1
- package/assets/{index-BMU-_5bW.js → index-BPqPzEbH.js} +1 -1
- package/assets/{index-NgLyuYs6.js → index-BjfO-2FL.js} +1 -1
- package/assets/{index-Dn-qqFRl.js → index-BkVG2Gm-.js} +1 -1
- package/assets/{index-CGAblvb-.js → index-Bl3dSmrt.js} +1 -1
- package/assets/{index-BDQbV2jT.js → index-C-CsfKtF.js} +1 -1
- package/assets/{index-Cp9T70tQ.js → index-CD9kyN2v.js} +1 -1
- package/assets/{index-DClRjyu_.js → index-CEceAxXa.js} +1 -1
- package/assets/{index-DsUayqw4.js → index-CRwF9kqw.js} +1 -1
- package/assets/{index-BMDx01aS.js → index-CXL-MAju.js} +1 -1
- package/assets/{index-DO8EqZSl.js → index-CbaLEWkX.js} +1 -1
- package/assets/{index-B159qVyk.js → index-CexfuLbX.js} +2 -2
- package/assets/{index-B12ExW-F.js → index-CjN5gXVP.js} +1 -1
- package/assets/{index-D63ClKwx.js → index-Cpw9Vij_.js} +1 -1
- package/assets/{index-CkSVbc7G.js → index-CuwHJJO4.js} +1 -1
- package/assets/{index-DXQDvWCm.js → index-Cw2YKg1X.js} +1 -1
- package/assets/{index-CDzl3czx.js → index-CwNwP9Dz.js} +1 -1
- package/assets/{index-BzXnlXkO.js → index-D04A0IqG.js} +1 -1
- package/assets/{index-BrfFsgde.js → index-D3yA2Deq.js} +1 -1
- package/assets/{index-CLp1N2JZ.js → index-D5YSioyv.js} +446 -445
- package/assets/{index-C9YPl9-V.js → index-D5e1IjmG.js} +1 -1
- package/assets/{index-69uVWCdC.js → index-D6CsrbT9.js} +1 -1
- package/assets/{index-Bp7QPVjC.js → index-DGEeQ7HV.js} +1 -1
- package/assets/{index-CS5gukgf.js → index-DI85grSr.js} +1 -1
- package/assets/{index-lHFn9fJk.js → index-DT5jCbGv.js} +1 -1
- package/assets/{index-DZczd-Cs.js → index-DVeMBRmh.js} +1 -1
- package/assets/{index-CL20-Lcn.js → index-DVmfYR4F.js} +1 -1
- package/assets/{index-w5pQgeYM.js → index-Dl7bI3dX.js} +1 -1
- package/assets/{index-BtAZEAqz.js → index-DrbRZzbV.js} +1 -1
- package/assets/{index-B9-Ksy1Y.js → index-DurJrENV.js} +1 -1
- package/assets/{index-DOf52awh.js → index-DuziGvh-.js} +1 -1
- package/assets/{index-B_74mOb3.js → index-DvHo6b9D.js} +1 -1
- package/assets/{index-MJpNPXv1.js → index-JUrStxAi.js} +1 -1
- package/assets/{index-DQzqI7bu.js → index-adb9JY8F.js} +1 -1
- package/assets/{index-ByZKBjmp.js → index-ahgk9PwY.js} +1 -1
- package/assets/{index-CJoYIJX6.js → index-iluEOi_R.js} +1 -1
- package/assets/{index-C2BjB9jD.js → index-mLaJnBAA.js} +1 -1
- package/assets/{index-Cci1CSF_.js → index-oOX-Ov_6.js} +1 -1
- package/assets/{index-DRtMRiLt.js → index-rRAjaCK6.js} +1 -1
- package/assets/{infoDiagram-f8f76790-2cxTV6ND.js → infoDiagram-f8f76790-DrZHsJcU.js} +1 -1
- package/assets/{infoDiagram-f8f76790-ncuTC4ZY.js → infoDiagram-f8f76790-xt1FG5kQ.js} +1 -1
- package/assets/{inspiration-board-D82q1P-g.js → inspiration-board-BMLGXtqa.js} +1 -1
- package/assets/{isEmpty-B0mmAwLs.js → isEmpty-qhP_Neh1.js} +1 -1
- package/assets/{journeyDiagram-49397b02-DnlSIYWp.js → journeyDiagram-49397b02-BXRUGums.js} +1 -1
- package/assets/{journeyDiagram-49397b02-D8uY2urN.js → journeyDiagram-49397b02-HG6JHZLW.js} +1 -1
- package/assets/{layers-D8yoqIuj.js → layers-37JfnNNl.js} +1 -1
- package/assets/{layout-CNovTgcJ.js → layout-0pP-oOdd.js} +1 -1
- package/assets/{layout-a3RfPzuD.js → layout-DiM0C_oE.js} +1 -1
- package/assets/{line-CDzoo4WB.js → line-Cn0HzQ42.js} +1 -1
- package/assets/{line-DvT1zUiJ.js → line-mCdubqmQ.js} +1 -1
- package/assets/{linear-PVY0JHkj.js → linear-Bav735VS.js} +1 -1
- package/assets/{linear-DdU4qJ1G.js → linear-D-8dOoVw.js} +1 -1
- package/assets/{lock-on-CXR9jpJA.js → lock-on-Du4SUznS.js} +1 -1
- package/assets/{memoize-DRWJ2oTL.js → memoize-CUfUlF3P.js} +1 -1
- package/assets/{mermaid.core-DQGbcicL.js → mermaid.core-C90rcTNj.js} +3 -3
- package/assets/{mindmap-definition-fc14e90a-BsVSwvhh.js → mindmap-definition-fc14e90a-DrPVXCNG.js} +1 -1
- package/assets/{mindmap-definition-fc14e90a-nwzPUDis.js → mindmap-definition-fc14e90a-kvuxr1PD.js} +1 -1
- package/assets/{model-benchmark-launcher-mcvgVSuC.js → model-benchmark-launcher-D7-0vF6C.js} +1 -1
- package/assets/{move-DOixEjqO.js → move-CrZ5ZpJ2.js} +1 -1
- package/assets/{photo-wall-splitter-qUPnfBPY.js → photo-wall-splitter-DJyzIrKV.js} +1 -1
- package/assets/{pick-C6VtGb4t.js → pick-8ulasiIr.js} +1 -1
- package/assets/{pieDiagram-8a3498a8-9eGElA9h.js → pieDiagram-8a3498a8-BV4yujZi.js} +1 -1
- package/assets/{pieDiagram-8a3498a8-jvbiFkC_.js → pieDiagram-8a3498a8-COebT5dY.js} +1 -1
- package/assets/{quadrantDiagram-120e2f19-B78rPuqy.js → quadrantDiagram-120e2f19-D7Pf5tdd.js} +1 -1
- package/assets/{quadrantDiagram-120e2f19-BFZXHPpX.js → quadrantDiagram-120e2f19-DzzHIi2O.js} +1 -1
- package/assets/{refresh-Bh3E8vu6.js → refresh-DqZ7biGU.js} +1 -1
- package/assets/{requirementDiagram-deff3bca-Dwsj1NJQ.js → requirementDiagram-deff3bca-BBh4lHOB.js} +1 -1
- package/assets/{requirementDiagram-deff3bca-Dyve0zys.js → requirementDiagram-deff3bca-D4gYW6VD.js} +1 -1
- package/assets/{sankeyDiagram-04a897e0-Dqzsdxsz.js → sankeyDiagram-04a897e0-6qMEhCdC.js} +1 -1
- package/assets/{sankeyDiagram-04a897e0-BmtIc_Gd.js → sankeyDiagram-04a897e0-DZfZTWnU.js} +1 -1
- package/assets/{sequenceDiagram-704730f1-DynL_kQJ.js → sequenceDiagram-704730f1-CF1FgHNp.js} +1 -1
- package/assets/{sequenceDiagram-704730f1-B7x0Kpog.js → sequenceDiagram-704730f1-Ky4oD9iw.js} +1 -1
- package/assets/{settings-dialog-Sz7sfOrI.js → settings-dialog-DWewjQlv.js} +1 -1
- package/assets/{shard-sync-service-8YTrUOnK.js → shard-sync-service-DhnPeZid.js} +1 -1
- package/assets/{stateDiagram-587899a1-CJTsLZ1r.js → stateDiagram-587899a1-C8z4TA39.js} +1 -1
- package/assets/{stateDiagram-587899a1-DUJNQ1DY.js → stateDiagram-587899a1-DhG3pQnc.js} +1 -1
- package/assets/{stateDiagram-v2-d93cdb3a-CG_NTdTs.js → stateDiagram-v2-d93cdb3a-CZ40HHGj.js} +1 -1
- package/assets/{stateDiagram-v2-d93cdb3a-KVoAwaCx.js → stateDiagram-v2-d93cdb3a-WjPgMbps.js} +1 -1
- package/assets/{styles-6aaf32cf-DBt4ei8W.js → styles-6aaf32cf-BiffgEl9.js} +1 -1
- package/assets/{styles-6aaf32cf-Cba2lFIZ.js → styles-6aaf32cf-DvyqUWEr.js} +1 -1
- package/assets/{styles-9a916d00-DHlla0Yt.js → styles-9a916d00-FAscS3iZ.js} +1 -1
- package/assets/{styles-9a916d00-KLddCkwp.js → styles-9a916d00-L-cTkIzG.js} +1 -1
- package/assets/{styles-c10674c1-CRA4Rhbz.js → styles-c10674c1-CkrpQSst.js} +1 -1
- package/assets/{styles-c10674c1-COY2QM5h.js → styles-c10674c1-DEwIcJGE.js} +1 -1
- package/assets/{svgDrawCommon-08f97a94-g2Xfy9Cn.js → svgDrawCommon-08f97a94-ByDqcIPi.js} +1 -1
- package/assets/{svgDrawCommon-08f97a94-B-xiMCiD.js → svgDrawCommon-08f97a94-DuY5GSOk.js} +1 -1
- package/assets/{task.types-CLfkYpCd.js → task.types-CBk6eZLY.js} +1 -1
- package/assets/{throttle-rCTAR-V0.js → throttle-DggB2waX.js} +1 -1
- package/assets/{timeline-definition-85554ec2-K1ig-iz5.js → timeline-definition-85554ec2-D3RKFEj4.js} +1 -1
- package/assets/{timeline-definition-85554ec2-DzXbh9iM.js → timeline-definition-85554ec2-DScTS5ad.js} +1 -1
- package/assets/{ttd-dialog-DBgFfIa8.js → ttd-dialog-D0U4oJwF.js} +4 -4
- package/assets/{upload-DydsLM8-.js → upload-B9RKSZna.js} +1 -1
- package/assets/useCharacters-uSUTHHnh.js +6 -0
- package/assets/{version-update-prompt-BnY7MFFE.js → version-update-prompt-CN1vliv8.js} +1 -1
- package/assets/{video-UIyGGGOK.js → video-B4LwvF3Q.js} +1 -1
- package/assets/{video-recovery-service-DpIX-4Cn.js → video-recovery-service-QWvZ0c0j.js} +1 -1
- package/assets/{workflow-generation-utils-BFUZ8qwH.js → workflow-generation-utils-BOXsMshH.js} +2 -2
- package/assets/{xychartDiagram-e933f94c-DJXH3Qk3.js → xychartDiagram-e933f94c-8_HkrupM.js} +1 -1
- package/assets/{xychartDiagram-e933f94c-BHRiS9cZ.js → xychartDiagram-e933f94c-B6-zQO32.js} +1 -1
- package/changelog.json +30 -0
- package/idle-prefetch-manifest.json +2 -2
- package/package.json +1 -1
- package/precache-manifest.json +393 -393
- package/sw.js +1 -1
- package/version.json +5 -3
- package/assets/DrawnixDeferredRuntime-D-K_FUT-.js +0 -2
- package/assets/TaskQueuePanel-Dcg0DCDL.js +0 -33
- package/assets/_flatRest-CXdsvGPY.js +0 -1
- package/assets/channel-CBV8i3Jf.js +0 -1
- package/assets/channel-n9jkWJRh.js +0 -1
- package/assets/clone-DMkRnOiD.js +0 -1
- package/assets/clone-jEb1TSUN.js +0 -1
- package/assets/flowDiagram-v2-96b9c2cf-CAAw3p-z.js +0 -1
- package/assets/flowDiagram-v2-96b9c2cf-DVu2NCro.js +0 -1
- package/assets/useCharacters-B9XvF2GC.js +0 -6
package/assets/{DeferredMediaLibraryModal-CIs0-iBb.js → DeferredMediaLibraryModal-DcsXW5VN.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{x as e,an as a,ao as i}from"./index-
|
|
1
|
+
import{x as e,an as a,ao as i}from"./index-D5YSioyv.js";function d(r){return e.jsxDEV(a,{children:e.jsxDEV(i,{...r},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DeferredMediaLibraryModal.tsx",lineNumber:10,columnNumber:7},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DeferredMediaLibraryModal.tsx",lineNumber:9,columnNumber:5},this)}export{d as DeferredMediaLibraryModal,d as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{b as c,bB as bs,bC as vs,e9 as Z,hh as Is,K as u,cO as qe,cI as Oe,aR as fe,cP as B,hi as Bs,hj as $s,ea as Ue,hd as Ms,cJ as zs,ck as Hs,ec as Fs,hk as As,hf as Fe,gt as Zs,I as ye,_ as pe,hl as js,x as e,bm as ks,aC as E,hm as be,bS as m,hn as ws,d5 as Ss,gu as ge,bO as Es,dp as Ve,bM as Ws,gv as Ks,bE as Js,b1 as Ge,c5 as Ae,H as ve,fM as Ys,an as Qs}from"./index-
|
|
1
|
+
import{b as c,bB as bs,bC as vs,e9 as Z,hh as Is,K as u,cO as qe,cI as Oe,aR as fe,cP as B,hi as Bs,hj as $s,ea as Ue,hd as Ms,cJ as zs,ck as Hs,ec as Fs,hk as As,hf as Fe,gt as Zs,I as ye,_ as pe,hl as js,x as e,bm as ks,aC as E,hm as be,bS as m,hn as ws,d5 as Ss,gu as ge,bO as Es,dp as Ve,bM as Ws,gv as Ks,bE as Js,b1 as Ge,c5 as Ae,H as ve,fM as Ys,an as Qs}from"./index-D5YSioyv.js";import{R as Ds}from"./refresh-DqZ7biGU.js";import{u as Xs,C as en}from"./cloud-upload-BPCicte3.js";import{o as sn}from"./dep-46bcb4bf-n6CAFNaf.js";import{L as nn,a as tn}from"./lock-on-Du4SUznS.js";function Ze(t,i){var s=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);i&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),s.push.apply(s,n)}return s}function We(t){for(var i=1;i<arguments.length;i++){var s=arguments[i]!=null?arguments[i]:{};i%2?Ze(Object(s),!0).forEach(function(n){vs(t,n,s[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(s)):Ze(Object(s)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(s,n))})}return t}var rn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"g",attrs:{id:"image-error"},children:[{tag:"path",attrs:{id:"stroke1",stroke:"props.strokeColor1",d:"M21 11V3H3V21H11M13 14L9 10L3.5 15.5M17.75 8.25C17.75 9.35457 16.8546 10.25 15.75 10.25C14.6454 10.25 13.75 9.35457 13.75 8.25C13.75 7.14543 14.6454 6.25 15.75 6.25C16.8546 6.25 17.75 7.14543 17.75 8.25Z",strokeLinecap:"square",strokeWidth:"props.strokeWidth"}},{tag:"path",attrs:{id:"stroke2",stroke:"props.strokeColor2",d:"M21.8287 16.1719L19.0003 19.0003M19.0003 19.0003L16.1719 21.8287M19.0003 19.0003L16.1719 16.1719M19.0003 19.0003L21.8287 21.8287",strokeLinecap:"square",strokeWidth:"props.strokeWidth"}}]}]},_s=c.forwardRef(function(t,i){return c.createElement(bs,We(We({},t),{},{id:"image-error",ref:i,icon:rn}))});_s.displayName="ImageErrorIcon";function Ke(t,i){var s=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);i&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),s.push.apply(s,n)}return s}function Je(t){for(var i=1;i<arguments.length;i++){var s=arguments[i]!=null?arguments[i]:{};i%2?Ke(Object(s),!0).forEach(function(n){vs(t,n,s[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(s)):Ke(Object(s)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(s,n))})}return t}var cn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"g",attrs:{id:"image"},children:[{tag:"path",attrs:{id:"fill1",fill:"props.fillColor1",d:"M3 21H20L9 10L3 16V21Z"}},{tag:"circle",attrs:{id:"fill2",cx:15.75,cy:8.25,r:2,fill:"props.fillColor2"}},{tag:"path",attrs:{id:"stroke1",stroke:"props.strokeColor1",d:"M3 16V3H21V21H20M3 16V21H20M3 16L9 10L20 21",strokeWidth:"props.strokeWidth"}},{tag:"circle",attrs:{id:"stroke2",cx:15.75,cy:8.25,r:2,stroke:"props.strokeColor2",strokeWidth:"props.strokeWidth"}}]}]},Us=c.forwardRef(function(t,i){return c.createElement(bs,Je(Je({},t),{},{id:"image",ref:i,icon:cn}))});Us.displayName="ImageIcon";/**
|
|
2
2
|
* tdesign v1.16.3
|
|
3
3
|
* (c) 2026 tdesign
|
|
4
4
|
* @license MIT
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-BvpTiXWY.css","./BaseDrawer-Dd2zQgH8.css","./index-bVY4-vOK.css","./ProjectDrawer-CPK-dSny.css","./index-DylICWaU.css","./index-C1XdOOAn.css","./ToolboxDrawer-DfaLlo2Z.css","./index-D5zpPSZd.css","./backup-restore-dialog-Cz1tSwF3.css","./version-update-prompt-P9Rd5ve2.css","./PerformancePanel-CMSJoJ2l.css","./DeferredSyncSettings-B09z_LHJ.css","./command-palette-DQP9t98t.css","./canvas-search-PM8lOnca.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{aq as q,x as s,b as r,O as a}from"./index-
|
|
2
|
+
import{aq as q,x as s,b as r,O as a}from"./index-D5YSioyv.js";const S=r.lazy(()=>a(()=>import("./ProjectDrawer-DewT6n4a.js"),__vite__mapDeps([0,1,2,3]),import.meta.url).then(e=>({default:e.ProjectDrawer}))),C=r.lazy(()=>a(()=>import("./ToolboxDrawer-Btme0xvj.js"),__vite__mapDeps([0,4,5,1,6]),import.meta.url).then(e=>({default:e.ToolboxDrawer}))),O=r.lazy(()=>a(()=>import("./DeferredMediaLibraryModal-DcsXW5VN.js"),__vite__mapDeps([0]),import.meta.url).then(e=>({default:e.DeferredMediaLibraryModal}))),T=r.lazy(()=>a(()=>import("./backup-restore-dialog-BtB57ttG.js"),__vite__mapDeps([0,7,8]),import.meta.url).then(e=>({default:e.BackupRestoreDialog}))),A=r.lazy(()=>a(()=>import("./version-update-prompt-CN1vliv8.js"),__vite__mapDeps([0,9]),import.meta.url).then(e=>({default:e.VersionUpdatePrompt}))),I=r.lazy(()=>a(()=>import("./PerformancePanel-DzTs2p1S.js"),__vite__mapDeps([0,10]),import.meta.url).then(e=>({default:e.PerformancePanel}))),L=r.lazy(()=>a(()=>import("./DeferredSyncSettings-CyaQpm3i.js"),__vite__mapDeps([0,11]),import.meta.url).then(e=>({default:e.DeferredSyncSettings}))),R=r.lazy(()=>a(()=>import("./command-palette-DtjyZO1K.js"),__vite__mapDeps([0,12]),import.meta.url).then(e=>({default:e.CommandPalette}))),z=r.lazy(()=>a(()=>import("./canvas-search-B3cv-vBS.js"),__vite__mapDeps([0,13]),import.meta.url).then(e=>({default:e.CanvasSearch}))),B=r.lazy(()=>a(()=>import("./ToolWinBoxManager-Soe0apvc.js"),__vite__mapDeps([0]),import.meta.url).then(e=>({default:e.ToolWinBoxManager})));function W({board:e,value:_,containerRef:i,versionUpdateEnabled:w,performancePanelEnabled:b,toolWindowManagerEnabled:j,projectDrawerOpen:l,toolboxDrawerOpen:o,mediaLibraryOpen:c,backupRestoreOpen:m,cloudSyncOpen:d,onBoardSwitch:n,setProjectDrawerOpen:E,setToolboxDrawerOpen:v,setMediaLibraryOpen:y,setBackupRestoreOpen:k,setCloudSyncOpen:V,handleBeforeSwitch:p,onCreateProjectForMemory:g}){const{appState:f,setAppState:x}=q(),D=f.openCommandPalette||!1,h=f.openCanvasSearch||!1;return s.jsxDEV(s.Fragment,{children:[c&&s.jsxDEV(r.Suspense,{fallback:null,children:s.jsxDEV(O,{isOpen:c,onClose:()=>y(!1)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:110,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:109,columnNumber:9},this),m&&s.jsxDEV(r.Suspense,{fallback:null,children:s.jsxDEV(T,{open:m,onOpenChange:k,container:i.current,onBeforeImport:async()=>{await p()},onSwitchBoard:async(t,N)=>{const{workspaceService:P}=await a(async()=>{const{workspaceService:F}=await import("./index-D5YSioyv.js").then(U=>U.lh);return{workspaceService:F}},__vite__mapDeps([0]),import.meta.url),u=await P.switchBoard(t);u&&n&&(N&&(u.viewport=N),n(u))}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:118,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:117,columnNumber:9},this),d&&s.jsxDEV(r.Suspense,{fallback:null,children:s.jsxDEV(L,{visible:d,onClose:()=>V(!1)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:142,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:141,columnNumber:9},this),w&&s.jsxDEV(r.Suspense,{fallback:null,children:s.jsxDEV(A,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:150,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:149,columnNumber:9},this),j&&s.jsxDEV(r.Suspense,{fallback:null,children:s.jsxDEV(B,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:155,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:154,columnNumber:9},this),D&&s.jsxDEV(r.Suspense,{fallback:null,children:s.jsxDEV(R,{open:D,onClose:()=>{x(t=>({...t,openCommandPalette:!1}))},board:e,container:i.current},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:160,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:159,columnNumber:9},this),h&&s.jsxDEV(r.Suspense,{fallback:null,children:s.jsxDEV(z,{open:h,onClose:()=>{x(t=>({...t,openCanvasSearch:!1}))},board:e},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:175,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:174,columnNumber:9},this),b&&s.jsxDEV(r.Suspense,{fallback:null,children:s.jsxDEV(I,{container:i.current,onCreateProject:g,elements:(e==null?void 0:e.children)||_},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:189,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:188,columnNumber:9},this),l&&s.jsxDEV(r.Suspense,{fallback:null,children:s.jsxDEV(S,{isOpen:l,onOpenChange:E,onBeforeSwitch:p,onBoardSwitch:n},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:198,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:197,columnNumber:9},this),o&&s.jsxDEV(r.Suspense,{fallback:null,children:s.jsxDEV(C,{isOpen:o,onOpenChange:v},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:208,columnNumber:11},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:207,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/startup/DrawnixDeferredFeatures.tsx",lineNumber:107,columnNumber:5},this)}export{W as DrawnixDeferredFeatures,W as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-BvpTiXWY.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{ab as S,b as G,O as Z,dM as Wt,ac as A,eK as be,eL as te,c$ as P,eM as wt,eN as qe,dF as X,eO as Ne,eP as Vt,ax as tt,eQ as Ke,eR as Ze,eS as Et,eT as qt,eU as Kt,eV as Zt,eW as Ht,eX as Qt,eY as R,eZ as jt,e_ as ye,e$ as rt,f0 as Lt,f1 as F,f2 as Gt,f3 as Ft,f4 as Mt,f5 as Yt,f6 as nt,f7 as yt,f8 as He,f9 as Ue,fa as Xt,fb as St,fc as At,fd as We,fe as Qe,ff as Jt,fg as Pt,fh as vt,fi as kt,fj as er,fk as tr,fl as rr,fm as or,fn as Nt,fo as sr,R as nr,fp as ir,er as ar,fq as cr,fr as ur}from"./index-D5YSioyv.js";import{c as lr}from"./character-api-service-Z5lj969r.js";import{c as dr}from"./character-storage-service-C15hxlXu.js";import{r as je}from"./audio-task-result-utils-C9RziLY_.js";import"./task.types-CBk6eZLY.js";function Fe(){return S}const Ye=Object.freeze(Object.defineProperty({__proto__:null,getTaskQueueService:Fe,legacyTaskQueueService:S,taskQueueService:S},Symbol.toStringTag,{value:"Module"}));let Rt=!1,Xe=null;function fr(t=100){return new Promise(e=>{"requestIdleCallback"in window?window.requestIdleCallback(()=>e(),{timeout:t}):setTimeout(e,0)})}function mr(){const[t,e]=G.useState(!1);return G.useEffect(()=>{let r=!0;const s=async()=>{await fr(50),console.warn("[useTaskStorage] Idle callback fired, starting init");try{const{migrateFromLegacyDB:o}=await Z(async()=>{const{migrateFromLegacyDB:a}=await import("./index-D5YSioyv.js").then(d=>d.ld);return{migrateFromLegacyDB:a}},__vite__mapDeps([0]),import.meta.url);await o();const n=await Wt.getAllTasks();if(console.warn(`[useTaskStorage] Loaded ${n.length} tasks from IndexedDB`),n.length>0){S.restoreTasks(n),console.warn(`[useTaskStorage] Restored ${n.length} tasks to memory`);const a=n.filter(m=>m.status==="processing");a.length>0&&(console.warn(`[useTaskStorage] Found ${a.length} interrupted processing tasks`),a.forEach(m=>{var p;const i=m.type===A.IMAGE&&m.remoteId&&be((p=m.params)==null?void 0:p.model),u=m.type===A.VIDEO&&!!m.remoteId,l=m.type===A.AUDIO&&!!m.remoteId;if(console.warn(`[useTaskStorage] task=${m.id} type=${m.type} phase=${m.executionPhase||"unknown"} remoteId=${m.remoteId||"none"} → ${u||l||i?"KEEP":"MARK_FAILED"}`),!(u||l||i)){let I="任务被中断(页面刷新)",w="INTERRUPTED";m.type===A.VIDEO&&m.executionPhase===te.SUBMITTING&&(I="任务在提交过程中被中断,可能已在后台执行",w="INTERRUPTED_DURING_SUBMISSION"),S.updateTaskStatus(m.id,P.FAILED,{startedAt:void 0,executionPhase:void 0,error:{code:w,message:I,details:{originalError:`Task interrupted by page refresh before completion (phase: ${m.executionPhase||"unknown"})`,timestamp:Date.now()}}})}}));const d=n.filter(m=>{var i;return m.status==="failed"&&m.remoteId&&(m.type===A.VIDEO||m.type===A.AUDIO||m.type===A.IMAGE&&be((i=m.params)==null?void 0:i.model))}),h=n.filter(m=>m.status==="failed"&&m.type===A.VIDEO).length,f=n.filter(m=>m.status==="failed"&&m.type===A.VIDEO&&m.remoteId).length,c=n.filter(m=>m.status==="failed"&&m.type===A.AUDIO).length,b=n.filter(m=>m.status==="failed"&&m.type===A.AUDIO&&m.remoteId).length;if(console.warn(`[useTaskStorage] Recovery check: ${a.length} processing, ${h} failed video (${f} with remoteId), ${c} failed audio (${b} with remoteId), ${d.length} recoverable`),d.length>0){const m=new Set(["INTERRUPTED","INTERRUPTED_DURING_SUBMISSION","RESUME_FAILED"]);d.forEach(i=>{var l;const u=((l=i.error)==null?void 0:l.code)||"";if(!m.has(u)){console.warn(`[useTaskStorage] Skip recovery for task ${i.id}: terminal failure (${u||"no error code"})`);return}console.warn(`[useTaskStorage] Recovering interrupted task ${i.id} (error: ${u}, remoteId: ${i.remoteId})`),S.updateTaskStatus(i.id,P.PROCESSING,{error:void 0,executionPhase:te.POLLING})})}n.filter(m=>m.status==="processing"||m.status==="pending").length>0}}catch(o){console.error("[useTaskStorage] Failed to initialize storage:",o)}};return Xe||(Xe=(async()=>{Rt||(Rt=!0,await s())})()),Xe.then(()=>{r&&e(!0)}),()=>{r=!1}},[]),t}function Dt(t,e){return typeof t=="string"&&t?t:t&&typeof t=="object"&&typeof t.modelId=="string"&&t.modelId?t.modelId:e}class pr{constructor(){this.abortControllers=new Map}async generate(e,r,s){const o=new AbortController;this.abortControllers.set(e,o);const n=Date.now(),a=s===A.IMAGE?"image":s===A.VIDEO?"video":"audio",d=r.model||(a==="image"?wt:a==="video"?"gemini-video":qe),h=!!r.uploadedImage||!!r.uploadedImages||!!r.referenceImages;X.trackModelCall({taskId:e,taskType:a,model:d,promptLength:r.prompt.length,hasUploadedImage:h,startTime:n,aspectRatio:r.size,duration:r.duration,resolution:r.width&&r.height?`${r.width}x${r.height}`:void 0,batchCount:r.count||1,hasReferenceImage:h});try{const f=Ne[s.toUpperCase()],c=new Promise((i,u)=>{setTimeout(()=>{u(new Error("TIMEOUT"))},f)}),b=s===A.IMAGE?this.generateImage(e,r,o.signal):s===A.VIDEO?this.generateVideo(e,r,o.signal):this.generateAudio(e,r,o.signal),E=await Promise.race([b,c]),m=Date.now()-n;return X.trackModelSuccess({taskId:e,taskType:a,model:d,duration:m,resultSize:E.size}),E}catch(f){const c=Date.now()-n;throw console.error(`[GenerationAPI] Generation failed for task ${e}:`,f),f.message==="TIMEOUT"?(X.trackModelFailure({taskId:e,taskType:a,model:d,duration:c,error:"TIMEOUT"}),new Error(`${s===A.IMAGE?"图片":s===A.VIDEO?"视频":"音频"}生成超时`)):f.name==="AbortError"?(X.trackTaskCancellation({taskId:e,taskType:a,duration:c}),new Error("任务已取消")):(X.trackModelFailure({taskId:e,taskType:a,model:d,duration:c,error:f.message||"UNKNOWN_ERROR"}),f)}finally{this.abortControllers.delete(e)}}convertAspectRatioToSize(e){return Vt(e)}deriveAspectRatio(e){const r=s=>{if(!s.includes("x"))return;const[o,n]=s.split("x"),a=Number(o),d=Number(n);if(!a||!d)return;const h=(c,b)=>b===0?c:h(b,c%b),f=h(a,d);return`${a/f}:${d/f}`};if(e.size){const s=r(e.size);if(s)return s}if(e.width&&e.height){const s=(n,a)=>a===0?n:s(a,n%a),o=s(e.width,e.height);return`${e.width/o}:${e.height/o}`}}async extractReferenceImages(e){var o;const r=[],s=e.uploadedImages;if(Array.isArray(s)){for(const n of s)if(n!=null&&n.url)if(n.type==="url"){const a=await tt.getImageForAI(n.url);r.push(a.value)}else r.push(n.url)}return(o=e.uploadedImage)!=null&&o.url&&r.push(e.uploadedImage.url),Array.isArray(e.referenceImages)&&r.push(...e.referenceImages),r}async generateImage(e,r,s){try{const o=r.model,n=r.modelRef,a=Ke("image",o||wt,n||null);if(!a||a.kind!=="image")throw new Error(`No image adapter for model: ${o}`);const d=await this.extractReferenceImages(r);let h=r.size;h||(h=this.convertAspectRatioToSize(r.aspectRatio)),!h&&be(o)&&(h=this.deriveAspectRatio(r)||"1:1");const f=await a.generateImage(Ze("image",n||o),{prompt:r.prompt,model:o,modelRef:n||null,size:h,referenceImages:d.length>0?d:void 0,params:{quality:r.quality,response_format:r.response_format,...r.params,onProgress:c=>{S.updateTaskProgress(e,c),S.updateTaskStatus(e,P.PROCESSING,{executionPhase:te.POLLING})},onSubmitted:c=>{S.updateTaskStatus(e,P.PROCESSING,{remoteId:c,executionPhase:te.POLLING})}}});return{url:f.url,urls:f.urls,format:f.format||"png",size:0}}catch(o){console.error("[GenerationAPI] Image generation error:",o);const n=new Error(o.message||"图片生成失败");throw o.apiErrorBody&&(n.apiErrorBody=o.apiErrorBody),o.httpStatus&&(n.httpStatus=o.httpStatus),o.fullResponse&&(n.fullResponse=o.fullResponse),n}}async resumeAsyncImageGeneration(e,r,s){const o=Ne.IMAGE,n=new Promise((a,d)=>{setTimeout(()=>d(new Error("TIMEOUT")),o)});try{const a=await Promise.race([Et.resumePolling(r,{interval:5e3,routeModel:s,onProgress:f=>{S.updateTaskProgress(e,f)}}),n]),{url:d,format:h}=Et.extractUrlAndFormat(a);return{url:d,format:h,size:0}}catch(a){const d=new Error(a.message||"图片生成失败");throw a.apiErrorBody&&(d.apiErrorBody=a.apiErrorBody),a.httpStatus&&(d.httpStatus=a.httpStatus),d}}async generateVideo(e,r,s){try{const o=r.model,n=r.modelRef,a=Ke("video",o||"veo3",n||null);if(!a||a.kind!=="video")throw new Error(`No video adapter for model: ${o}`);S.updateTaskStatus(e,"processing",{executionPhase:te.SUBMITTING});const d=await this.extractReferenceImages(r),h=r.duration??r.seconds,f=await a.generateVideo(Ze("video",n||o),{prompt:r.prompt,model:o,modelRef:n||null,size:r.size,duration:h!==void 0?Number(h):void 0,referenceImages:d.length>0?d:void 0,params:{...r.params,onProgress:c=>{S.updateTaskProgress(e,c)},onSubmitted:c=>{S.updateTaskStatus(e,"processing",{remoteId:c,executionPhase:te.POLLING})}}});return{url:f.url,format:f.format||"mp4",size:0,duration:f.duration||0}}catch(o){console.error("[GenerationAPI] Video generation error:",o);const n=new Error(o.message||"视频生成失败");throw o.apiErrorBody&&(n.apiErrorBody=o.apiErrorBody),o.httpStatus&&(n.httpStatus=o.httpStatus),n}}async generateAudio(e,r,s){try{const o=r.model,n=r.modelRef,a=Ke("audio",o||qe,n||null);if(!a||a.kind!=="audio")throw new Error(`No audio adapter for model: ${o}`);S.updateTaskStatus(e,P.PROCESSING,{executionPhase:te.SUBMITTING});const d=await a.generateAudio(Ze("audio",n||o),{prompt:r.prompt,model:o,modelRef:n||null,title:r.title,tags:r.tags,mv:r.mv,sunoAction:r.sunoAction,notifyHook:r.notifyHook,continueClipId:r.continueClipId,continueTaskId:r.continueTaskId,continueAt:r.continueAt,infillStartS:r.infillStartS,infillEndS:r.infillEndS,params:{...r.params,signal:s,onProgress:h=>{S.updateTaskProgress(e,h),S.updateTaskStatus(e,P.PROCESSING,{executionPhase:te.POLLING})},onSubmitted:h=>{S.updateTaskStatus(e,P.PROCESSING,{remoteId:h,executionPhase:te.POLLING})}}});return{url:d.url,urls:d.urls,format:d.format||(d.resultKind==="lyrics"?"lyrics":"mp3"),size:0,resultKind:d.resultKind,duration:typeof d.duration=="number"?d.duration:void 0,previewImageUrl:d.imageUrl,title:d.title,lyricsText:d.lyricsText,lyricsTitle:d.lyricsTitle,lyricsTags:d.lyricsTags,providerTaskId:d.providerTaskId,primaryClipId:d.primaryClipId,clipIds:d.clipIds,clips:d.clips}}catch(o){console.error("[GenerationAPI] Audio generation error:",o);const n=new Error(o.message||"音频生成失败");throw o.apiErrorBody&&(n.apiErrorBody=o.apiErrorBody),o.httpStatus&&(n.httpStatus=o.httpStatus),n}}async resumeVideoGeneration(e,r,s){const o=Date.now(),n=Dt(s,"gemini-video");X.trackModelCall({taskId:e,taskType:"video",model:n,promptLength:0,hasUploadedImage:!1,startTime:o});try{const a=Ne.VIDEO,d=new Promise((E,m)=>{setTimeout(()=>{m(new Error("TIMEOUT"))},a)}),h=qt.resumePolling(r,{interval:5e3,routeModel:s,onProgress:(E,m)=>{S.updateTaskProgress(e,E)}}),f=await Promise.race([h,d]),c=Date.now()-o;X.trackModelSuccess({taskId:e,taskType:"video",model:n,duration:c,resultSize:0});const b=f.video_url||f.url;if(!b)throw new Error("API 未返回有效的视频 URL");return{url:b,format:"mp4",size:0,duration:parseInt(f.seconds)||8}}catch(a){const d=Date.now()-o;throw console.error(`[GenerationAPI] Resumed video generation failed for task ${e}:`,a),X.trackModelFailure({taskId:e,taskType:"video",model:n,duration:d,error:a.message||"UNKNOWN_ERROR"}),a}}async resumeAudioGeneration(e,r,s){const o=Date.now(),n=Dt(s,qe);X.trackModelCall({taskId:e,taskType:"audio",model:n,promptLength:0,hasUploadedImage:!1,startTime:o});try{const a=Ne.AUDIO,d=new Promise((E,m)=>{setTimeout(()=>{m(new Error("TIMEOUT"))},a)}),h=Kt.resumePolling(r,{interval:5e3,routeModel:s,onProgress:E=>{S.updateTaskProgress(e,E)}}),f=await Promise.race([h,d]),c=Zt(f),b=Date.now()-o;return X.trackModelSuccess({taskId:e,taskType:"audio",model:n,duration:b,resultSize:0}),{url:c.url,urls:c.urls,format:c.format||(c.resultKind==="lyrics"?"lyrics":"mp3"),size:0,resultKind:c.resultKind,duration:typeof c.duration=="number"?c.duration:void 0,previewImageUrl:c.imageUrl,title:c.title,lyricsText:c.lyricsText,lyricsTitle:c.lyricsTitle,lyricsTags:c.lyricsTags,providerTaskId:c.providerTaskId,primaryClipId:c.primaryClipId,clipIds:c.clipIds,clips:c.clips}}catch(a){const d=Date.now()-o;throw console.error(`[GenerationAPI] Resumed audio generation failed for task ${e}:`,a),X.trackModelFailure({taskId:e,taskType:"audio",model:n,duration:d,error:a.message||"UNKNOWN_ERROR"}),a}}cancelRequest(e){const r=this.abortControllers.get(e);r&&(r.abort(),this.abortControllers.delete(e))}hasActiveRequest(e){return this.abortControllers.has(e)}}const Le=new pr;function gr(t){var e;if(!t)return null;try{const r=JSON.parse(t);if((e=r.error)!=null&&e.message)return r.error.message;if(r.message)return r.message;if(r.error&&typeof r.error=="string")return r.error;if(r.detail)return r.detail;if(r.msg)return r.msg}catch{return t}return null}function ze(t){const e=(t==null?void 0:t.message)||String(t),r=(t==null?void 0:t.apiErrorBody)||"",s=t==null?void 0:t.httpStatus,o=Qt(t),n=gr(r),a=`${e} ${r}`;return a.includes("insufficient_user_quota")||a.includes("预扣费额度失败")?"账户额度不足,请充值后重试":e.includes("PROHIBITED_CONTENT")||e.includes("has been blocked by Google Gemini")?e:e.includes("cannot")||e.includes("I cannot")||e.includes("I can't")?"AI 拒绝生成此内容":e.includes("unable to")||e.includes("not able to")?"AI 无法处理此请求":e.includes("signal")&&e.includes("timed out")?"请求超时,服务器响应过慢,正在自动重试":e.includes("TIMEOUT")||e.includes("超时")?"生成超时,请稍后重试":e.includes("network")||e.includes("Network")||e.includes("fetch")||e.includes("Failed to fetch")?"网络连接失败,请检查网络后重试":e.includes("rate limit")||e.includes("429")||s===429?"请求过于频繁,请稍后重试":o==="invalid"?"API Key 无效或已过期,请重新配置":o==="missing"?"缺少 API Key,请先在设置中配置":e.includes("401")||s===401?"接口返回 401,请检查鉴权方式、账号权限或服务端策略":(e.includes("403")||s===403)&&!r.includes("quota")?"API 访问被拒绝,请检查配置":e.includes("500")||s===500?n?`AI 服务器内部错误: ${n}`:"AI 服务器内部错误,正在自动重试":e.includes("502")||s===502?n?`AI 服务暂时不可用: ${n}`:"AI 服务暂时不可用(502),正在自动重试":e.includes("503")||s===503?n?`AI 服务繁忙: ${n}`:"AI 服务繁忙(503),正在自动重试":e.includes("504")||s===504?n?`AI 服务响应超时: ${n}`:"AI 服务响应超时(504),正在自动重试":n||e}const _t=3,Ir=2e3;function hr(){const t=G.useRef(new Set),e=G.useRef([]),r=G.useRef(null);G.useEffect(()=>{let s=!0;const o=()=>{if(s)for(;e.current.length>0&&t.current.size<_t;){const u=e.current.shift();u&&!t.current.has(u.id)&&f(u)}},n=u=>{t.current.delete(u),o()},a=async u=>{const l=u.id,p=u.remoteId;if(!t.current.has(l)){t.current.add(l);try{const I=await Le.resumeAudioGeneration(l,p,u.params.modelRef||u.params.model||null);if(!s)return;S.updateTaskStatus(l,P.COMPLETED,{result:I})}catch(I){if(!s)return;const w=I.httpStatus?`HTTP_${I.httpStatus}`:I.name||"ERROR",C=ze(I),v=I.fullResponse||I.apiErrorBody||I.message||String(I);S.updateTaskStatus(l,P.FAILED,{error:{code:w,message:C,details:{originalError:v,timestamp:Date.now()}}})}finally{n(l)}}},d=async u=>{const l=u.id,p=u.remoteId;if(!t.current.has(l)){t.current.add(l);try{const I=await Le.resumeAsyncImageGeneration(l,p,u.params.modelRef||u.params.model||null);if(!s)return;if(S.updateTaskStatus(l,P.COMPLETED,{result:I}),I.url)try{await tt.registerImageMetadata(I.url,{taskId:u.id,model:u.params.model,prompt:u.params.prompt,params:u.params})}catch(w){console.error(`[TaskExecutor] Failed to register metadata for resumed async image task ${l}:`,w)}}catch(I){if(!s)return;const w=I.httpStatus?`HTTP_${I.httpStatus}`:I.name||"ERROR",C=ze(I),v=I.fullResponse||I.apiErrorBody||I.message||String(I);S.updateTaskStatus(l,P.FAILED,{error:{code:w,message:C,details:{originalError:v,timestamp:Date.now()}}})}finally{n(l)}}},h=async u=>{const l=u.id;if(!t.current.has(l)){t.current.add(l);try{S.updateTaskStatus(l,P.PROCESSING);const{sourceVideoTaskId:p,characterTimestamps:I,model:w,prompt:C}=u.params;if(!p)throw new Error("缺少源视频任务ID");const v=await lr.createCharacterWithPolling({videoTaskId:p,characterTimestamps:I,localTaskId:u.params.sourceLocalTaskId,sourcePrompt:C,sourceModel:w},{onStatusChange:z=>{}});if(!s)return;await dr.saveCharacter({id:v.characterId,username:v.username,profilePictureUrl:v.profile_picture_url,permalink:v.permalink,sourceTaskId:u.params.sourceLocalTaskId||"",sourceVideoId:p,sourcePrompt:C,characterTimestamps:I,status:"completed",createdAt:u.createdAt,completedAt:Date.now()}),S.updateTaskStatus(l,P.COMPLETED,{result:{url:v.profile_picture_url,format:"character",size:0,characterUsername:v.username,characterProfileUrl:v.profile_picture_url,characterPermalink:v.permalink},remoteId:v.characterId})}catch(p){if(!s||(console.error(`[TaskExecutor] Character task ${l} failed:`,p),!S.getTask(l)))return;const w=p.httpStatus?`HTTP_${p.httpStatus}`:p.name||"ERROR",C=ze(p),z={originalError:p.fullResponse||p.apiErrorBody||p.message||String(p),timestamp:Date.now()};S.updateTaskStatus(l,P.FAILED,{error:{code:w,message:C,details:z}})}finally{n(l)}}},f=async u=>{const l=u.id;if(u.type===A.CHARACTER)return h(u);if(u.type===A.IMAGE&&u.remoteId&&u.status===P.PROCESSING&&be(u.params.model))return d(u);if(!(u.type===A.VIDEO&&u.remoteId&&u.status===P.PROCESSING)){if(u.type===A.AUDIO&&u.remoteId&&u.status===P.PROCESSING)return a(u);if(!t.current.has(l)){t.current.add(l);try{S.updateTaskStatus(l,P.PROCESSING);const p=await Le.generate(l,u.params,u.type);if(!s)return;if(S.updateTaskStatus(l,P.COMPLETED,{result:p}),p.url)try{await tt.registerImageMetadata(p.url,{taskId:u.id,model:u.params.model,prompt:u.params.prompt,params:u.params})}catch(I){console.error(`[TaskExecutor] Failed to register metadata for task ${l}:`,I)}}catch(p){if(!s||(console.error(`[TaskExecutor] Task ${l} failed:`,p),!S.getTask(l)))return;const w=p.httpStatus?`HTTP_${p.httpStatus}`:p.name||"ERROR",C=ze(p),z={originalError:p.fullResponse||p.apiErrorBody||p.message||String(p),timestamp:Date.now()};S.updateTaskStatus(l,P.FAILED,{error:{code:w,message:C,details:z}})}finally{n(l)}}}},c=u=>{t.current.has(u.id)||e.current.some(l=>l.id===u.id)||(t.current.size<_t?f(u):e.current.push(u))},b=()=>{if(!s)return;const u=S.getAllTasks(),l=u.filter(w=>w.status===P.PENDING),p=u.filter(w=>w.type===A.IMAGE&&w.remoteId&&w.status===P.PROCESSING&&be(w.params.model)),I=u.filter(w=>w.type===A.AUDIO&&w.remoteId&&w.status===P.PROCESSING);console.warn(`[TaskExecutor] processPendingTasks: ${u.length} total, ${l.length} pending, ${p.length} resumable-image, ${I.length} resumable-audio, ${t.current.size} executing`),l.forEach(w=>{c(w)}),p.forEach(w=>{c(w)}),I.forEach(w=>{c(w)})},E=()=>{if(!s)return;S.getAllTasks().filter(p=>p.status===P.PROCESSING).forEach(p=>{if(Ht(p)){console.warn(`[TaskExecutor] Task ${p.id} timed out`),Le.cancelRequest(p.id);const I={originalError:`Task ${p.id} timed out after processing`,timestamp:Date.now()};S.updateTaskStatus(p.id,P.FAILED,{error:{code:"TIMEOUT",message:"任务执行超时",details:I}})}})},m=S.observeTaskUpdates().subscribe(u=>{if(s&&(u.type==="taskCreated"||u.type==="taskUpdated")){const l=u.task;(l.status===P.PENDING||!t.current.has(l.id)&&l.remoteId&&l.type===A.IMAGE&&l.status===P.PROCESSING&&be(l.params.model)||!t.current.has(l.id)&&l.remoteId&&l.type===A.AUDIO&&l.status===P.PROCESSING)&&c(l)}}),i=setTimeout(b,Ir);return r.current=setInterval(E,1e4),()=>{s=!1,m.unsubscribe(),clearTimeout(i),e.current=[],r.current&&clearInterval(r.current),t.current.forEach(u=>{Le.cancelRequest(u)}),t.current.clear()}},[])}function Tr(t){return!!(t.gridImageRows&&t.gridImageCols)}function wr(t){return!!(t.isInspirationBoard&&t.inspirationBoardLayoutStyle==="inspiration-board")}function Er(t=800){const e=ye();if(e)return Lt(e)}async function yr(t,e,r,s={}){const o=ye();if(!o)return{success:!1,count:0,error:"Board not available"};R.registerTask(t,r.batchId),R.startPostProcessing(t,"split_and_insert");try{const n=await jt(o,e,{scrollToResult:s.scrollToResult??!0}),a=s.insertionPoint||Er();return n.success?(R.completePostProcessing(t,n.count,a),{success:!0,count:n.count}):(console.warn(`[MediaResultHandler] Split failed: ${n.error}, falling back to direct insert`),(await rt([e],a)).success?(R.completePostProcessing(t,1,a),{success:!0,count:1}):(R.failPostProcessing(t,n.error||"Split and insert failed"),{success:!1,count:0,error:n.error}))}catch(n){const a=String(n);return console.error("[MediaResultHandler] Split and insert error:",n),R.failPostProcessing(t,a),{success:!1,count:0,error:a}}}function ot(t){return Array.isArray(t)&&t.length===2&&typeof t[0]=="number"&&typeof t[1]=="number"}function Sr(t,e){return!t||!e?t===e:t[0]===e[0]&&t[1]===e[1]}function zt(t){var e;return ot((e=t==null?void 0:t.points)==null?void 0:e[0])?t.points[0]:void 0}function Ar(t){const{anchor:e,workzoneExpectedInsertPosition:r}=t,s=zt(e);if(s)return s;if(ot(r))return r;if(ot(e==null?void 0:e.expectedInsertPosition))return e.expectedInsertPosition}function Pr(t,e){if(typeof e=="string")return F.getAnchorByTaskId(t,e);const r=F.getAnchorByTaskId(t,e.id);if(r)return r;const s=Gt(e),o=Ft(e),n=Mt(e);if(o&&typeof n=="number"){const a=F.getAnchorByBatchSlot(t,{workflowId:s,batchId:o,batchIndex:n});if(a)return a;const d=F.getAllAnchors(t).find(h=>h.anchorType!=="stack"&&h.batchId===o&&h.batchIndex===n&&(!s||h.workflowId===s));if(d)return d}if(s){const a=F.getAnchorsByWorkflowId(t,s);return a.find(h=>!Yt(h))||a[0]||null}return null}const vr={enabled:!0,insertPrompt:!1,groupSimilarTasks:!0,groupTimeWindow:5e3},Me=new Set;function Ve(t){var s;const e=ye();if(!e)return null;const r=nt.getAllWorkZones(e);for(const o of r)if((s=o.workflow.steps)==null?void 0:s.some(a=>{const d=a.result;return(d==null?void 0:d.taskId)===t}))return o;return null}function Be(t){const e=ye();return e?Pr(e,t):null}function kr(t,e){const r=ye();if(!r)return;const s=t.taskIds.includes(e.id)?t.taskIds:[...t.taskIds,e.id];F.updateAnchor(r,t.id,{taskIds:s,primaryTaskId:t.primaryTaskId||e.id})}function Rr(t){Me.add(t)}function ee(t){Me.delete(t)}function $e(t){Me.add(t),Fe().markAsInserted(t,"auto_insert")}function st(t){return Array.isArray(t)&&t.length===2&&typeof t[0]=="number"&&typeof t[1]=="number"}function bt(t){return typeof t=="object"&&t!==null&&typeof t.width=="number"&&typeof t.height=="number"}function Ct(t,e){if(e)return e;const r=t.result;return typeof(r==null?void 0:r.width)=="number"&&typeof(r==null?void 0:r.height)=="number"&&r.width>0&&r.height>0?{width:r.width,height:r.height}:We(t.params.size)}function Ot(t,e){if(!t||t.anchorType!=="stack")return e}function _e(t,e,r){if(!t||!e)return;const s={};r.position&&(s.expectedInsertPosition=r.position),r.transitionMode&&r.transitionMode!==e.transitionMode&&(s.transitionMode=r.transitionMode),Object.keys(s).length>0&&F.updateAnchor(t,e.id,s),(r.position||r.size)&&F.updateGeometry(t,e.id,{position:r.position,size:r.size})}function ve(t,e){const r=t==null?void 0:t.data;return st(r==null?void 0:r.firstElementPosition)?r.firstElementPosition:e}function Ge(t,e,r,s){const o=t==null?void 0:t.data,n=(o==null?void 0:o.items.find(h=>s==null?void 0:s.includes(h.type)))??(o==null?void 0:o.items[0]),a=st(n==null?void 0:n.point)?n.point:st(o==null?void 0:o.firstElementPosition)?o.firstElementPosition:e,d=bt(n==null?void 0:n.size)?n.size:bt(o==null?void 0:o.firstElementSize)?o.firstElementSize:r;return{elementId:(n==null?void 0:n.elementId)??(o==null?void 0:o.firstElementId),position:a,size:d}}function Dr(t,e){var h;const r=Ve(e.id),s=Be(e);let o=Ar({anchor:s,workzoneExpectedInsertPosition:r==null?void 0:r.expectedInsertPosition}),n,a;const d=zt(s);return s&&d&&!Sr(s.expectedInsertPosition,d)&&F.updateAnchor(t,s.id,{expectedInsertPosition:d}),r!=null&&r.targetFrameId&&(r!=null&&r.targetFrameDimensions)&&(n=r.targetFrameId,a=r.targetFrameDimensions),!n&&(s!=null&&s.targetFrameId)&&(s!=null&&s.targetFrameDimensions)&&(n=s.targetFrameId,a=s.targetFrameDimensions),!n&&((h=e.params)!=null&&h.targetFrameId)&&(n=e.params.targetFrameId,a=e.params.targetFrameDimensions),s&&(kr(s,e),F.updateAnchor(t,s.id,er("inserting"))),o||(o=Lt(t)),{insertionPoint:o,targetFrameId:n,targetFrameDimensions:a,imageAnchor:s}}function Je(t,e,r,s){var d;const o=ye();if(!o)return;const n=Ve(t);if(!n)return;const a=(d=n.workflow.steps)==null?void 0:d.map(h=>{const f=h.result;return(f==null?void 0:f.taskId)===t?(typeof h.result=="object"&&h.result!==null&&h.result,{...h,status:e,result:h.result,error:s}):h});a&&nt.updateWorkflow(o,n.id,{steps:a})}function _r(t={}){const e={...vr,...t},r=G.useRef(new Map),s=G.useRef(null);G.useEffect(()=>{if(!e.enabled)return;let o=!0;const n=async()=>{var p,I,w,C,v,z,Se,V,$,ke,j,Ce,it,at,ct,ut,lt,dt,ft,mt,pt,gt;const i=ye();if(!i||!o)return;const u=r.current;if(u.size===0)return;const l=new Map(u);u.clear();for(const[$t,q]of l){if(!o)break;const K=(p=q[0])==null?void 0:p.task;if(!K)continue;const{insertionPoint:D,targetFrameId:xt,targetFrameDimensions:Bt,imageAnchor:It}=Dr(i,K);if(!D){for(const{task:g}of q)ee(g.id),R.failPostProcessing(g.id,"No insertion point available");continue}for(const{task:g}of q){const H=g.params.batchId;R.registerTask(g.id,H),R.startPostProcessing(g.id,q.length===1?"direct_insert":"group_insert")}try{if(q.length===1){const{task:g}=q[0],H=He(g),Re=(I=g.result)==null?void 0:I.url,x=typeof Re=="string"&&Re.length>0,Ae=Array.isArray((w=g.result)==null?void 0:w.urls)&&g.result.urls.length>0;if(!x&&!Ae&&!H){ee(g.id),R.failPostProcessing(g.id,"No result URL");continue}const k=H?"text":g.type===A.VIDEO?"video":g.type===A.AUDIO?"audio":"image",Y=k==="audio"?{width:At,height:St}:k==="text"?void 0:We(g.params.size),y=k==="audio"?{title:((C=g.result)==null?void 0:C.title)||g.params.title,duration:typeof((Se=(z=(v=g.result)==null?void 0:v.clips)==null?void 0:z[0])==null?void 0:Se.duration)=="number"?g.result.clips[0].duration||void 0:(V=g.result)==null?void 0:V.duration,previewImageUrl:($=g.result)==null?void 0:$.previewImageUrl,tags:typeof g.params.tags=="string"?g.params.tags:void 0,mv:typeof g.params.mv=="string"?g.params.mv:void 0,prompt:g.params.prompt,providerTaskId:((ke=g.result)==null?void 0:ke.providerTaskId)||g.remoteId,clipId:((j=g.result)==null?void 0:j.primaryClipId)||((at=(it=(Ce=g.result)==null?void 0:Ce.clips)==null?void 0:it[0])==null?void 0:at.clipId)||((lt=(ut=(ct=g.result)==null?void 0:ct.clips)==null?void 0:ut[0])==null?void 0:lt.id)||((ft=(dt=g.result)==null?void 0:dt.clipIds)==null?void 0:ft[0]),clipIds:(mt=g.result)==null?void 0:mt.clipIds}:void 0,Oe=k==="audio"?y:void 0,M=k==="text"?[Qe(g)]:k==="audio"?je(g.result):(gt=(pt=g.result)==null?void 0:pt.urls)!=null&>.length?g.result.urls:[Re],T=xt||g.params.targetFrameId,_=Bt||g.params.targetFrameDimensions,O=k==="image"?It??Be(g):null,B=k==="image"?Ct(g,Y):void 0;let Q=D,re,J=B;if(T&&_&&i&&k!=="audio"&&k!=="text"&&M.length===1){const L=await Jt(i,M[0],k,T,_,Y);L&&(Q=L.point,re=L.elementId,J=L.size,_e(i,O,{position:L.point,size:L.size,transitionMode:(O==null?void 0:O.anchorType)==="ghost"?"morph":"hold"}))}else if(e.insertPrompt&&k!=="text"){const L=await Pt(g.params.prompt,M.map((De,U)=>{var Pe,W,oe,se,ne,ie,ae,ce,ue,le,de,fe,me,pe,ge,Ie,he,Te,we,Ee;return{type:k,url:De,dimensions:Y,metadata:k==="audio"?{...y,title:((oe=(W=(Pe=g.result)==null?void 0:Pe.clips)==null?void 0:W[U])==null?void 0:oe.title)||(M.length>1?`${(y==null?void 0:y.title)||g.params.title||"Audio"} ${U+1}`:y==null?void 0:y.title),previewImageUrl:((ie=(ne=(se=g.result)==null?void 0:se.clips)==null?void 0:ne[U])==null?void 0:ie.imageLargeUrl)||((ue=(ce=(ae=g.result)==null?void 0:ae.clips)==null?void 0:ce[U])==null?void 0:ue.imageUrl)||(y==null?void 0:y.previewImageUrl),duration:typeof((fe=(de=(le=g.result)==null?void 0:le.clips)==null?void 0:de[U])==null?void 0:fe.duration)=="number"?g.result.clips[U].duration||void 0:y==null?void 0:y.duration,clipId:((ge=(pe=(me=g.result)==null?void 0:me.clips)==null?void 0:pe[U])==null?void 0:ge.clipId)||((Te=(he=(Ie=g.result)==null?void 0:Ie.clips)==null?void 0:he[U])==null?void 0:Te.id)||((Ee=(we=g.result)==null?void 0:we.clipIds)==null?void 0:Ee[U])||(y==null?void 0:y.clipId)}:void 0}}),D),N=Ge(L,D,B,["image"]);Q=N.position,re=N.elementId,J=N.size}else if(k==="image"&&M.length>1){O&&_e(i,O,{position:D,size:Ot(O,B),transitionMode:"morph"});const L=await rt(M,D,Y),N=Ge(L,D,B,["image"]);Q=N.position,re=N.elementId,J=N.size}else if(k==="text"){const L=vt(g.result,g.params.title||g.params.prompt)||(g.params.prompt||"").slice(0,20)||void 0,N=await Ue({items:[{type:"text",content:M[0],label:L}],startPoint:D});Q=ve(N,D)}else if(k==="audio"&&M.length>1){const L=`audio-group-${g.id}`,N=await Ue({items:M.map((De,U)=>{var Pe,W,oe,se,ne,ie,ae,ce,ue,le,de,fe,me,pe,ge,Ie,he,Te,we,Ee;return{type:"audio",content:De,groupId:L,dimensions:Y,metadata:{...y,title:((oe=(W=(Pe=g.result)==null?void 0:Pe.clips)==null?void 0:W[U])==null?void 0:oe.title)||(M.length>1?`${(y==null?void 0:y.title)||g.params.title||"Audio"} ${U+1}`:y==null?void 0:y.title),previewImageUrl:((ie=(ne=(se=g.result)==null?void 0:se.clips)==null?void 0:ne[U])==null?void 0:ie.imageLargeUrl)||((ue=(ce=(ae=g.result)==null?void 0:ae.clips)==null?void 0:ce[U])==null?void 0:ue.imageUrl)||(y==null?void 0:y.previewImageUrl),duration:typeof((fe=(de=(le=g.result)==null?void 0:le.clips)==null?void 0:de[U])==null?void 0:fe.duration)=="number"?g.result.clips[U].duration||void 0:y==null?void 0:y.duration,clipId:((ge=(pe=(me=g.result)==null?void 0:me.clips)==null?void 0:pe[U])==null?void 0:ge.clipId)||((Te=(he=(Ie=g.result)==null?void 0:Ie.clips)==null?void 0:he[U])==null?void 0:Te.id)||((Ee=(we=g.result)==null?void 0:we.clipIds)==null?void 0:Ee[U])||(y==null?void 0:y.clipId)}}}),startPoint:D});Q=ve(N,D)}else{k==="image"&&O&&!e.insertPrompt&&B&&_e(i,O,{position:D,size:B,transitionMode:O.anchorType==="ghost"?"morph":"hold"});const L=await kt(k,M[0],D,Y,Oe);if(k==="image"){const N=Ge(L,D,B,["image"]);Q=N.position,re=N.elementId,J=N.size}else Q=ve(L,D)}k==="image"&&O&&J&&_e(i,O,{position:Q,size:J,transitionMode:O.anchorType==="ghost"?"morph":"hold"}),R.completePostProcessing(g.id,M.length,Q,k==="image"?re:void 0,k==="image"?J:void 0),$e(g.id)}else{const g=He(K),H=g?q.map(({task:T})=>Qe(T)):q.flatMap(({task:T})=>{var _,O,B;return K.type===A.AUDIO?je(T.result):(O=(_=T.result)==null?void 0:_.urls)!=null&&O.length?T.result.urls:[(B=T.result)==null?void 0:B.url]}).filter(T=>!!T),Re=K.type===A.AUDIO?q.flatMap(({task:T})=>{var B,Q,re,J,L,N,De,U;const _=je(T.result),O={title:((B=T.result)==null?void 0:B.title)||T.params.title,duration:typeof((J=(re=(Q=T.result)==null?void 0:Q.clips)==null?void 0:re[0])==null?void 0:J.duration)=="number"?T.result.clips[0].duration||void 0:(L=T.result)==null?void 0:L.duration,previewImageUrl:(N=T.result)==null?void 0:N.previewImageUrl,tags:typeof T.params.tags=="string"?T.params.tags:void 0,mv:typeof T.params.mv=="string"?T.params.mv:void 0,prompt:T.params.prompt,providerTaskId:((De=T.result)==null?void 0:De.providerTaskId)||T.remoteId,clipIds:(U=T.result)==null?void 0:U.clipIds};return _.map((Pe,W)=>{var oe,se,ne,ie,ae,ce,ue,le,de,fe,me,pe,ge,Ie,he,Te,we,Ee,ht,Tt;return{url:Pe,metadata:{...O,title:((ne=(se=(oe=T.result)==null?void 0:oe.clips)==null?void 0:se[W])==null?void 0:ne.title)||(_.length>1?`${O.title||T.params.title||"Audio"} ${W+1}`:O.title),previewImageUrl:((ce=(ae=(ie=T.result)==null?void 0:ie.clips)==null?void 0:ae[W])==null?void 0:ce.imageLargeUrl)||((de=(le=(ue=T.result)==null?void 0:ue.clips)==null?void 0:le[W])==null?void 0:de.imageUrl)||O.previewImageUrl,duration:typeof((pe=(me=(fe=T.result)==null?void 0:fe.clips)==null?void 0:me[W])==null?void 0:pe.duration)=="number"?T.result.clips[W].duration||void 0:O.duration,clipId:((he=(Ie=(ge=T.result)==null?void 0:ge.clips)==null?void 0:Ie[W])==null?void 0:he.clipId)||((Ee=(we=(Te=T.result)==null?void 0:Te.clips)==null?void 0:we[W])==null?void 0:Ee.id)||((Tt=(ht=T.result)==null?void 0:ht.clipIds)==null?void 0:Tt[W])}}})}):[];if(H.length===0){for(const{task:T}of q)ee(T.id),R.failPostProcessing(T.id,"No result URL");continue}const x=g?"text":K.type===A.VIDEO?"video":K.type===A.AUDIO?"audio":"image",Ae=x==="audio"?{width:At,height:St}:x==="text"?void 0:We(K.params.size),k=x==="image"?It??Be(K):null,Y=x==="image"?Ct(K,Ae):void 0;let y=D,Oe,M=Y;if(e.insertPrompt&&x!=="text"){const T=await Pt(K.params.prompt,H.map((_,O)=>{var B;return{type:x,url:_,dimensions:Ae,metadata:x==="audio"?{...(B=Re[O])==null?void 0:B.metadata}:void 0}}),D);if(x==="image"){const _=Ge(T,D,Y,["image"]);y=_.position,Oe=_.elementId,M=_.size}else y=ve(T,D)}else if(x==="image"){k&&_e(i,k,{position:D,size:Ot(k,Y),transitionMode:"morph"});const T=await rt(H,D,Ae),_=Ge(T,D,Y,["image"]);y=_.position,Oe=_.elementId,M=_.size}else if(x==="text"){const T=await Ue({items:q.map(({task:_})=>({type:"text",content:Qe(_),label:vt(_.result,_.params.title||_.params.prompt)||(_.params.prompt||"").slice(0,20)||void 0,groupId:`lyrics-group-${K.id}`})),startPoint:D});y=ve(T,D)}else if(x==="audio"){const T=`audio-group-${K.id}`,_=await Ue({items:Re.map(O=>({type:"audio",content:O.url,groupId:T,dimensions:Ae,metadata:O.metadata})),startPoint:D});y=ve(_,D)}else for(const T of H){const _=await kt("video",T,D,Ae);y=ve(_,D)}x==="image"&&k&&M&&_e(i,k,{position:y,size:M,transitionMode:"morph"});for(const{task:T}of q)R.completePostProcessing(T.id,1,y,x==="image"?Oe:void 0,x==="image"?M:void 0),$e(T.id)}}catch(g){console.error(`[AutoInsert] Failed to insert for prompt ${$t}:`,g);for(const{task:H}of q)ee(H.id),R.failPostProcessing(H.id,String(g))}}},a=()=>{s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{n()},e.groupTimeWindow)},d=async i=>{var p;const u=(p=i.result)==null?void 0:p.url;if(!u){console.error("[AutoInsert] Split task has no result URL"),ee(i.id),R.failPostProcessing(i.id,"No result URL"),Je(i.id,"failed",void 0,"No result URL");return}const l=i.params;try{const I=await yr(i.id,u,l,{scrollToResult:!0});if(I.success){$e(i.id);return}ee(i.id),Je(i.id,"failed",void 0,I.error||"拆分失败")}catch(I){const w=String(I);ee(i.id),R.failPostProcessing(i.id,w),Je(i.id,"failed",void 0,w)}},h=i=>{var v,z,Se,V,$;const u=Ve(i.id),l=Be(i);if(!(i.params.autoInsertToCanvas||!!u||!!l)||Me.has(i.id))return;if(i.insertedToCanvas){Me.add(i.id);return}if(i.type!==A.IMAGE&&i.type!==A.VIDEO&&i.type!==A.AUDIO&&i.type!==A.CHAT||!((v=i.result)!=null&&v.url)&&!((Se=(z=i.result)==null?void 0:z.urls)!=null&&Se.length)&&!He(i)&&!((V=i.result)!=null&&V.chatResponse))return;Rr(i.id);const I=i.params;if(i.type===A.CHAT){const ke=(i.params.prompt||"").slice(0,20)||void 0;Ue({items:[{type:"text",content:(($=i.result)==null?void 0:$.chatResponse)||"",label:ke}]}).then(()=>{R.completePostProcessing(i.id,1),$e(i.id)}).catch(j=>{ee(i.id),R.failPostProcessing(i.id,String(j))});return}if(wr(I)){d(i);return}if(Tr(I)){d(i);return}const w=Xt(i,l),C=r.current.get(w)||[];C.push({task:i,completedAt:Date.now()}),r.current.set(w,C),e.groupSimilarTasks?a():n()},f=i=>{},b=Fe().observeTaskUpdates().subscribe(i=>{o&&(i.type==="taskUpdated"||i.type==="taskCompleted"?i.task.status===P.COMPLETED?h(i.task):i.task.status===P.FAILED&&f(i.task):i.type==="taskFailed"?f(i.task):i.type==="taskSynced"&&i.task.status===P.COMPLETED&&h(i.task))}),E=R.observeCompletionEvents().subscribe(i=>{var u,l;if(i.type==="postProcessingCompleted"||i.type==="postProcessingFailed"){const p=ye();if(!p)return;const I=Ve(i.taskId);I&&((u=I.workflow.steps)!=null&&u.every(C=>C.status==="completed"||C.status==="failed"||C.status==="skipped"))&&(l=I.workflow.steps)!=null&&l.every(v=>{const z=v.result;return z!=null&&z.taskId?R.isPostProcessingCompleted(z.taskId):!0})&&setTimeout(()=>{nt.removeWorkZone(p,I.id)},1500)}}),m=i=>{var I;const l=(I=i.detail)==null?void 0:I.taskId;if(!l)return;ee(l),R.clearTask(l);const p=Fe().getTask(l);if(p){if(p.status===P.FAILED||p.status===P.CANCELLED){Fe().retryTask(l);return}p.status===P.COMPLETED&&h({...p,insertedToCanvas:!1})}};return window.addEventListener(yt,m),()=>{o=!1,b.unsubscribe(),E.unsubscribe(),window.removeEventListener(yt,m),s.current&&clearTimeout(s.current)}},[e.enabled,e.insertPrompt,e.groupSimilarTasks,e.groupTimeWindow])}const br=1600;function Cr(t){return t.type===A.IMAGE}function Or(t,e){return t.length!==e.length?!1:t.every((r,s)=>r===e[s])}function Ur(t,e){if(e.length===0)return;const r=e.map(a=>R.getPostProcessingStatus(a.id)).filter(a=>!!a),s=r.some(a=>a.status==="failed"),o=e.some(a=>{const d=R.getPostProcessingStatus(a.id);return a.status!==P.FAILED&&(d==null?void 0:d.status)!=="failed"});if(s&&!o)return"failed";if(r.some(a=>a.status==="processing"))return"processing";if(Nt(t,e)&&e.every(a=>{var d;return!!a.insertedToCanvas||((d=R.getPostProcessingStatus(a.id))==null?void 0:d.status)==="completed"}))return"completed"}function Lr(t,e,r){var o,n,a;const s=r.map(d=>R.getPostProcessingStatus(d.id)).find(d=>(d==null?void 0:d.status)==="failed");return(s==null?void 0:s.error)||((o=e==null?void 0:e.error)==null?void 0:o.message)||((a=(n=e==null?void 0:e.error)==null?void 0:n.details)==null?void 0:a.originalError)||t.error}function Gr(t,e){var s;const r=e==null?void 0:e.result;return(r==null?void 0:r.previewImageUrl)||(r==null?void 0:r.url)||((s=r==null?void 0:r.urls)==null?void 0:s.find(o=>typeof o=="string"&&o.length>0))||t.previewImageUrl}function et(t,e){return!t||!e?t===e:t[0]===e[0]&&t[1]===e[1]}function Fr(t){return typeof t=="object"&&t!==null&&Array.isArray(t.points)&&t.points.length===2}function Mr(t,e){if(!(e!=null&&e.firstElementId))return;const r=t.children.find(o=>o.id===e.firstElementId);if(!Fr(r))return;const s=nr.getRectangleByPoints(r.points);return{position:r.points[0],size:{width:s.width,height:s.height}}}function Nr(t,e,r){var o,n;if(t.anchorType==="stack")return;if(typeof((o=r==null?void 0:r.firstElementSize)==null?void 0:o.width)=="number"&&typeof((n=r==null?void 0:r.firstElementSize)==null?void 0:n.height)=="number"&&r.firstElementSize.width>0&&r.firstElementSize.height>0)return{width:r.firstElementSize.width,height:r.firstElementSize.height};const s=e==null?void 0:e.result;return typeof(s==null?void 0:s.width)=="number"&&typeof(s==null?void 0:s.height)=="number"&&s.width>0&&s.height>0?{width:s.width,height:s.height}:t.targetFrameDimensions||We(t.requestedSize)}function zr(t,e,r){const s={};if(e&&!et(t.expectedInsertPosition,e)&&(s.expectedInsertPosition=e),e&&r){const o=[e,[e[0]+r.width,e[1]+r.height]],[n,a]=t.points;et(n,o[0])&&et(a,o[1])||(s.points=o)}return s}function $r(t,e,r){if(r.current.has(e))return;const s=setTimeout(()=>{r.current.delete(e);const o=F.getAnchorById(t,e);!o||o.phase!=="completed"||F.removeAnchor(t,e)},br);r.current.set(e,s)}function Ut(t,e){const r=e.current.get(t);r&&(clearTimeout(r),e.current.delete(t))}function xr({board:t,enabled:e=!0}){const r=G.useRef(new Map);G.useEffect(()=>{if(!t||!e)return;const s=r.current,o=f=>{const c=F.getAnchorById(t,f);if(!c){Ut(f,r);return}const b=S.getAllTasks(),E=tr(c,b),m=rr(c,E),i=or(c,E),u=c.primaryTaskId||(m==null?void 0:m.id),l=Ur(c,E),p=(u?R.getPostProcessingStatus(u):void 0)||E.map(j=>R.getPostProcessingStatus(j.id)).find(j=>!!j),I=E.length>0&&Nt(c,E)&&E.every(j=>{var Ce;return!!j.insertedToCanvas||((Ce=R.getPostProcessingStatus(j.id))==null?void 0:Ce.status)==="completed"}),w=Lr(c,m,E),C=Gr(c,m),v=Mr(t,p),z=sr({anchor:{...c,taskIds:i,primaryTaskId:u,error:w},task:m??void 0,tasks:E,postProcessingStatus:l,isInserting:c.phase==="inserting"&&l==="processing",hasInserted:I}),{viewModel:Se,nextPatch:V}=z,$={};Or(c.taskIds,i)||($.taskIds=i),u&&u!==c.primaryTaskId&&($.primaryTaskId=u),c.phase!==V.phase&&($.phase=V.phase),(c.progress??null)!==(V.progress??null)&&($.progress=V.progress),(c.subtitle??"")!==(V.subtitle??"")&&($.subtitle=V.subtitle),(c.error??void 0)!==(V.error??void 0)&&($.error=V.error),(c.previewImageUrl??"")!==(C??"")&&($.previewImageUrl=C);const ke=zr(c,(v==null?void 0:v.position)??(p==null?void 0:p.firstElementPosition),(v==null?void 0:v.size)??Nr(c,m,p));Object.assign($,ke),p!=null&&p.firstElementPosition&&c.transitionMode!==(c.anchorType==="frame"?"hold":"morph")&&($.transitionMode=c.anchorType==="frame"?"hold":"morph"),Object.keys($).length>0&&F.updateAnchor(t,c.id,$),Se.phase==="completed"&&I?$r(t,c.id,r):Ut(c.id,r)},n=()=>{F.getAllAnchors(t).forEach(f=>{o(f.id)})},a=f=>{const c=new Set,b=F.getAnchorByTaskId(t,f.id);b&&c.add(b.id);const E=Gt(f),m=Ft(f),i=Mt(f);let u=!1;if(E&&m&&typeof i=="number"){const l=F.getAnchorByBatchSlot(t,{workflowId:E,batchId:m,batchIndex:i});l&&(c.add(l.id),u=!0)}if(E&&!u&&F.getAnchorsByWorkflowId(t,E).forEach(l=>{c.add(l.id)}),c.size===0){n();return}c.forEach(l=>o(l))};n();const d=S.observeTaskUpdates().subscribe(f=>{Cr(f.task)&&a(f.task)}),h=R.observeCompletionEvents().subscribe(f=>{const c=F.getAnchorByTaskId(t,f.taskId);if(c){o(c.id);return}n()});return()=>{d.unsubscribe(),h.unsubscribe(),s.forEach(f=>clearTimeout(f)),s.clear()}},[t,e])}function Br(){G.useEffect(()=>{const t=e=>{if(ir())return e.preventDefault(),e.returnValue="",""};return window.onbeforeunload=t,()=>{window.onbeforeunload=null}},[])}function Wr(){return()=>{}}function xe(t,e){const r=window.requestIdleCallback;if(typeof r=="function"){const o=r(t,{timeout:e});return()=>{var n;(n=window.cancelIdleCallback)==null||n.call(window,o)}}const s=window.setTimeout(t,Math.min(e,500));return()=>window.clearTimeout(s)}function Qr({board:t,value:e}){const r=mr(),s=ar();return G.useEffect(()=>{if(s.length===0)return;const o=window.setTimeout(()=>{cr.warmupProfiles(s)},0);return()=>{window.clearTimeout(o)}},[s]),G.useEffect(()=>Wr(),[]),G.useEffect(()=>{if(!(!e||e.length===0))return xe(()=>{ur.preloadBoardFonts(e).catch(o=>{console.warn("[DrawnixDeferredRuntime] Failed to preload board fonts:",o)})},2e3)},[e]),G.useEffect(()=>{if(t)return xe(()=>{Z(async()=>{const{initVideoRecoveryService:o}=await import("./video-recovery-service-QWvZ0c0j.js");return{initVideoRecoveryService:o}},__vite__mapDeps([0]),import.meta.url).then(({initVideoRecoveryService:o})=>{o(t)})},3e3)},[t]),G.useEffect(()=>{if(r)return xe(()=>{(async()=>{try{const{workflowRecoveryPromise:h}=await Z(async()=>{const{workflowRecoveryPromise:f}=await import("./index-D5YSioyv.js").then(c=>c.lj);return{workflowRecoveryPromise:f}},__vite__mapDeps([0]),import.meta.url);await Promise.race([h,new Promise(f=>window.setTimeout(f,5e3))])}catch{}const[{fallbackMediaExecutor:n},{taskQueueService:a}]=await Promise.all([Z(()=>import("./index-D5YSioyv.js").then(h=>h.le),__vite__mapDeps([0]),import.meta.url),Z(()=>Promise.resolve().then(()=>Ye),void 0,import.meta.url)]),d=a.getAllTasks();n.resumePendingTasks((h,f,c)=>{a.updateTaskStatus(h,f,c)},d)})().catch(n=>{console.error("[DrawnixDeferredRuntime] Failed to resume tasks:",n)})},5e3)},[r]),G.useEffect(()=>{if(!(!r||!t||!e||e.length===0))return xe(()=>{(async()=>{const[{WorkZoneTransforms:n},{TaskStatus:a},{taskQueueService:d}]=await Promise.all([Z(()=>import("./index-D5YSioyv.js").then(f=>f.lf),__vite__mapDeps([0]),import.meta.url),Z(()=>import("./task.types-CBk6eZLY.js").then(f=>f.t),__vite__mapDeps([0]),import.meta.url),Z(()=>Promise.resolve().then(()=>Ye),void 0,import.meta.url)]),h=n.getAllWorkZones(t);for(const f of h){const c={...f.workflow,steps:[...f.workflow.steps]},b=c.steps.some(i=>i.status==="running"||i.status==="pending");if(c.status==="completed"&&!b){n.removeWorkZone(t,f.id);continue}if(!b)continue;const E=c.steps.map(i=>{var p,I;if(i.status!=="running"&&i.status!=="pending")return i;const u=(p=i.result)==null?void 0:p.taskId;if(!u){const w=["generate_image","generate_video","generate_grid_image","generate_inspiration_board"];return i.mcp==="ai_analyze"||w.includes(i.mcp)?i:i.status==="running"?{...i,status:"failed",error:"页面刷新导致中断,请删除后重新发起"}:i}const l=d.getTask(u);if(!l)return{...i,status:"failed",error:"任务未找到,请重试"};switch(l.status){case a.COMPLETED:return{...i,status:"completed",result:{taskId:u,result:l.result}};case a.FAILED:return{...i,status:"failed",error:((I=l.error)==null?void 0:I.message)||"任务执行失败"};case a.CANCELLED:return{...i,status:"skipped"};default:return i}});E.some((i,u)=>{var l;return i.status!==((l=c.steps[u])==null?void 0:l.status)})&&n.updateWorkflow(t,f.id,{steps:E})}})().catch(n=>{console.error("[DrawnixDeferredRuntime] Failed to restore WorkZones:",n)})},2e3)},[t,r,e]),G.useEffect(()=>{if(!t)return;let o=null;return(async()=>{const a=await Z(()=>import("./index-D5YSioyv.js").then(f=>f.li),__vite__mapDeps([0]),import.meta.url),{WorkZoneTransforms:d}=await Z(async()=>{const{WorkZoneTransforms:f}=await import("./index-D5YSioyv.js").then(c=>c.lf);return{WorkZoneTransforms:f}},__vite__mapDeps([0]),import.meta.url),{workflowSubmissionService:h}=a;o=h.subscribeToAllEvents(f=>{const c=f,E=d.getAllWorkZones(t).find(m=>m.workflow.id===c.workflowId);if(E)switch(c.type){case"step":{const m=E.workflow.steps.map(i=>i.id===c.stepId?{...i,status:c.status||i.status,result:c.result??i.result,error:c.error??i.error,duration:c.duration??i.duration}:i);d.updateWorkflow(t,E.id,{steps:m});break}case"steps_added":{const m=(c.steps||[]).map(i=>({id:i.id,mcp:i.mcp,args:i.args,description:i.description,status:i.status}));d.updateWorkflow(t,E.id,{steps:[...E.workflow.steps,...m]});break}case"completed":case"failed":{const m=c.type==="completed"?"completed":"failed",i=E.workflow.steps.map(u=>{if(u.status!=="running"&&u.status!=="pending")return u;const l=u.result;return l!=null&&l.taskId?u:{...u,status:m,error:c.type==="failed"?c.error:void 0}});d.updateWorkflow(t,E.id,{steps:i});break}case"recovered":{c.workflow&&d.updateWorkflow(t,E.id,{steps:c.workflow.steps,status:c.workflow.status});break}}})})().catch(a=>{console.error("[DrawnixDeferredRuntime] Failed to setup workflow sync:",a)}),()=>{o==null||o.unsubscribe()}},[t]),G.useEffect(()=>{if(!r||!t)return;let o=null;return(async()=>{const{taskQueueService:a}=await Z(async()=>{const{taskQueueService:f}=await Promise.resolve().then(()=>Ye);return{taskQueueService:f}},void 0,import.meta.url),{WorkZoneTransforms:d}=await Z(async()=>{const{WorkZoneTransforms:f}=await import("./index-D5YSioyv.js").then(c=>c.lf);return{WorkZoneTransforms:f}},__vite__mapDeps([0]),import.meta.url),{TaskStatus:h}=await Z(async()=>{const{TaskStatus:f}=await import("./task.types-CBk6eZLY.js").then(c=>c.t);return{TaskStatus:f}},__vite__mapDeps([0]),import.meta.url);o=a.observeTaskUpdates().subscribe(f=>{if(f.type!=="taskUpdated"&&f.type!=="taskCompleted"&&f.type!=="taskFailed")return;const c=f.task;if(!c)return;const b=d.getAllWorkZones(t);for(const E of b){const m={...E.workflow,steps:[...E.workflow.steps]};let i=!1;const u=m.steps.map(l=>{var v;const p=l.result;if((p==null?void 0:p.taskId)!==c.id)return l;let I=l.status,w=l.error,C=l.result;switch(c.status){case h.COMPLETED:I="completed",C={taskId:c.id,result:c.result};break;case h.FAILED:I="failed",w=((v=c.error)==null?void 0:v.message)||"任务失败";break;case h.PROCESSING:I="running";break;case h.PENDING:I="pending";break;case h.CANCELLED:I="skipped";break}return I!==l.status||w!==l.error?(i=!0,{...l,status:I,error:w,result:C}):l});i&&d.updateWorkflow(t,E.id,{steps:u})}})})().catch(a=>{console.error("[DrawnixDeferredRuntime] Failed to sync task queue:",a)}),()=>{o==null||o.unsubscribe()}},[t,r]),hr(),_r({enabled:!0,insertPrompt:!1,groupSimilarTasks:!0}),xr({board:t,enabled:r}),Br(),null}export{Qr as DrawnixDeferredRuntime,Qr as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as o,u as J,k as Q,F,s as ee,n as se,o as re,B as S,P as R,p as C,q as ne,v as te,w as oe,x as s,Z as ie,H as y,y as ae,z as ce,E as le,L as de,R as ue,A as me,C as he,S as fe,D as we,G as pe,J as Ne}from"./index-CLp1N2JZ.js";const M=60,I="slideshow-active";function U(r){r?document.documentElement.classList.add(I):document.documentElement.classList.remove(I)}function xe(r){const n=[];for(const i of r.children)he(i)&&n.push(i);return n}function je(r,n){const i=ue.getRectangleByPoints(n.points),x=me.getBoardContainer(r),c=x.clientWidth,j=x.clientHeight,u=(c-M*2)/i.width,E=(j-M*2)/i.height,d=Math.min(u,E,3),V=i.x+i.width/2,m=i.y+i.height/2,g=[V-c/2/d,m-j/2/d];S.updateViewport(r,g,d);const h=x.getBoundingClientRect(),v=h.left+(i.x-g[0])*d,_=h.top+(i.y-g[1])*d,w=i.width*d,b=i.height*d;return{left:v,top:_,width:w,height:b}}function ke(r){const n=window.innerWidth,i=window.innerHeight,x={top:0,left:0,width:n,height:Math.max(0,r.top)},c={top:r.top+r.height,left:0,width:n,height:Math.max(0,i-r.top-r.height)},j={top:r.top,left:0,width:Math.max(0,r.left),height:r.height},u={top:r.top,left:r.left+r.width,width:Math.max(0,n-r.left-r.width),height:r.height};return[x,c,j,u]}const ge=["#000000","#e91e63","#f39c12","#4caf50","#2196f3","#9c27b0","#ffffff"],ve=[{style:F.solid,icon:s.jsxDEV(fe,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:167,columnNumber:45},void 0)},{style:F.dashed,icon:s.jsxDEV(we,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:168,columnNumber:46},void 0)},{style:F.dotted,icon:s.jsxDEV(pe,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:169,columnNumber:46},void 0)},{style:F.double,icon:s.jsxDEV(Ne,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:170,columnNumber:46},void 0)}],be=[1,2,4,8],ye=({visible:r,board:n,onClose:i,initialFrameId:x})=>{const[c,j]=o.useState(0),[u,E]=o.useState(null),[d,V]=o.useState(!0),[m,g]=o.useState("select"),h=J(),v=o.useRef(),_=o.useRef(null),w=o.useRef(null),b=o.useRef([]),p=r?Q(n):null,[A,z]=o.useState((p==null?void 0:p.strokeColor)??"#000000"),[W,B]=o.useState((p==null?void 0:p.strokeStyle)??F.solid),[H,$]=o.useState((p==null?void 0:p.strokeWidth)??2),O=o.useCallback(e=>{z(e),ee(n,e)},[n]),G=o.useCallback(e=>{B(e),se(n,e)},[n]),K=o.useCallback(e=>{$(e),re(n,e)},[n]),N=o.useCallback(()=>{V(!0),v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{V(!1)},3e3)},[]),q=o.useCallback(e=>{if(g(e),N(),e==="select")S.updatePointerType(n,R.selection),h(R.selection);else{const a={pen:C.feltTipPen,eraser:C.eraser,laser:C.laserPointer}[e];ne(n,te.drawing),S.updatePointerType(n,a),h(a)}},[n,N,h]),l=o.useCallback(e=>{const t=b.current;if(!n||e<0||e>=t.length)return;const a=je(n,t[e]);E(a),j(e),N()},[n,N]);o.useEffect(()=>{var k,f;if(!r)return;const e=xe(n);if(e.length===0){i();return}b.current=e;const t=n.viewport;_.current={origination:t!=null&&t.origination?[t.origination[0],t.origination[1]]:null,zoom:(t==null?void 0:t.zoom)??1},w.current=n.pointer,U(!0);let a=0;if(x){const T=e.findIndex(Z=>Z.id===x);T>=0&&(a=T)}return l(a),(f=(k=document.documentElement).requestFullscreen)==null||f.call(k).then(()=>{setTimeout(()=>l(a),300)}).catch(()=>{}),()=>{U(!1),v.current&&clearTimeout(v.current)}},[r]);const P=o.useCallback(()=>{var t;U(!1);const e=_.current;if(e&&n){const a=e.origination??[0,0];S.updateViewport(n,a,e.zoom)}w.current!==null&&(S.updatePointerType(n,w.current),h(w.current)),document.fullscreenElement&&((t=document.exitFullscreen)==null||t.call(document).catch(()=>{})),E(null),g("select"),i()},[n,i,h]);o.useEffect(()=>{if(!r)return;const e=()=>{if(!document.fullscreenElement&&r){U(!1);const t=_.current;if(t&&n){const a=t.origination??[0,0];S.updateViewport(n,a,t.zoom)}w.current!==null&&(S.updatePointerType(n,w.current),h(w.current)),E(null),g("select"),i()}};return document.addEventListener("fullscreenchange",e),()=>{document.removeEventListener("fullscreenchange",e)}},[r,n,i,h]),o.useEffect(()=>{if(!r)return;const e=()=>{l(c)};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[r,c,l]),o.useEffect(()=>{if(!r)return;const e=b.current;if(e.length===0)return;const t=a=>{switch(N(),a.key){case"ArrowRight":case" ":case"Enter":case"PageDown":case"ArrowDown":{a.preventDefault(),j(k=>{const f=Math.min(k+1,e.length-1);return f!==k&&l(f),f});break}case"ArrowLeft":case"Backspace":case"PageUp":case"ArrowUp":{a.preventDefault(),j(k=>{const f=Math.max(k-1,0);return f!==k&&l(f),f});break}case"Escape":{a.preventDefault(),P();break}case"Home":{a.preventDefault(),l(0);break}case"End":{a.preventDefault(),l(e.length-1);break}}};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[r,l,P,N]);const X=o.useCallback(e=>{if(m!=="select")return;const t=e.target;if(t.closest(".frame-slideshow__controls")||t.closest(".frame-slideshow__nav"))return;const a=b.current;c<a.length-1&&l(c+1)},[m,c,l]);if(o.useEffect(()=>{if(!r)return;const e=()=>N();return window.addEventListener("mousemove",e),()=>window.removeEventListener("mousemove",e)},[r,N]),!r||!u)return null;const D=b.current,L=D[c],Y=ke(u);return oe.createPortal(s.jsxDEV("div",{className:"frame-slideshow",style:{zIndex:ie.SLIDESHOW},onMouseMove:N,onClick:X,children:[s.jsxDEV("div",{className:"frame-slideshow__mask",children:Y.map((e,t)=>s.jsxDEV("div",{className:"frame-slideshow__mask-block",style:e},t,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:482,columnNumber:11},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:480,columnNumber:7},void 0),m==="select"&&s.jsxDEV("div",{className:"frame-slideshow__content-overlay",style:{position:"absolute",left:u.left,top:u.top,width:u.width,height:u.height,cursor:c<D.length-1?"pointer":"default"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:488,columnNumber:9},void 0),s.jsxDEV("div",{className:"frame-slideshow__controls",style:{opacity:d?1:0},children:[s.jsxDEV("div",{className:"frame-slideshow__controls-left",children:[L&&s.jsxDEV("div",{className:"frame-slideshow__title",children:L.name||`Frame ${c+1}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:509,columnNumber:13},void 0),s.jsxDEV("div",{className:"frame-slideshow__esc-hint",children:["按 ",s.jsxDEV("kbd",{children:"ESC"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:514,columnNumber:15},void 0)," 退出"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:513,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:507,columnNumber:9},void 0),D.length>0&&s.jsxDEV("div",{className:"frame-slideshow__indicator",children:[s.jsxDEV("span",{className:"frame-slideshow__indicator-current",children:c+1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:521,columnNumber:13},void 0),s.jsxDEV("span",{className:"frame-slideshow__indicator-sep",children:"/"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:524,columnNumber:13},void 0),s.jsxDEV("span",{className:"frame-slideshow__indicator-total",children:D.length},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:525,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:520,columnNumber:11},void 0),s.jsxDEV("div",{className:"frame-slideshow__controls-right",children:[m==="pen"&&s.jsxDEV("div",{className:"frame-slideshow__settings-panel",children:[s.jsxDEV("div",{className:"frame-slideshow__pen-colors",children:ge.map(e=>s.jsxDEV("button",{className:`frame-slideshow__pen-color ${A===e?"frame-slideshow__pen-color--active":""}`,style:{backgroundColor:e},onClick:()=>O(e)},e,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:539,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:537,columnNumber:15},void 0),s.jsxDEV("div",{className:"frame-slideshow__pen-divider"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:547,columnNumber:15},void 0),s.jsxDEV("div",{className:"frame-slideshow__pen-styles",children:ve.map(({style:e,icon:t})=>s.jsxDEV("button",{className:`frame-slideshow__pen-style ${W===e?"frame-slideshow__pen-style--active":""}`,onClick:()=>G(e),children:t},e,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:551,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:549,columnNumber:15},void 0),s.jsxDEV("div",{className:"frame-slideshow__pen-divider"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:560,columnNumber:15},void 0),s.jsxDEV("div",{className:"frame-slideshow__pen-widths",children:be.map(e=>s.jsxDEV("button",{className:`frame-slideshow__pen-width ${H===e?"frame-slideshow__pen-width--active":""}`,onClick:()=>K(e),children:s.jsxDEV("svg",{width:"20",height:"20",viewBox:"0 0 20 20",children:s.jsxDEV("line",{x1:"3",y1:"10",x2:"17",y2:"10",stroke:"currentColor",strokeWidth:e,strokeLinecap:"round"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:570,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:569,columnNumber:21},void 0)},e,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:564,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:562,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:535,columnNumber:13},void 0),s.jsxDEV(y,{content:"选择工具",showArrow:!1,children:s.jsxDEV("button",{className:`frame-slideshow__tool-btn ${m==="select"?"frame-slideshow__tool-btn--active":""}`,onClick:()=>q("select"),children:s.jsxDEV(ae,{size:20},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:582,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:578,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:577,columnNumber:11},void 0),s.jsxDEV(y,{content:"画笔",showArrow:!1,children:s.jsxDEV("button",{className:`frame-slideshow__tool-btn ${m==="pen"?"frame-slideshow__tool-btn--active":""}`,onClick:()=>q("pen"),children:s.jsxDEV(ce,{size:20},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:590,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:586,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:585,columnNumber:11},void 0),s.jsxDEV(y,{content:"橡皮擦",showArrow:!1,children:s.jsxDEV("button",{className:`frame-slideshow__tool-btn ${m==="eraser"?"frame-slideshow__tool-btn--active":""}`,onClick:()=>q("eraser"),children:s.jsxDEV(le,{size:20},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:598,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:594,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:593,columnNumber:11},void 0),s.jsxDEV(y,{content:"激光笔",showArrow:!1,children:s.jsxDEV("button",{className:`frame-slideshow__tool-btn ${m==="laser"?"frame-slideshow__tool-btn--active":""}`,onClick:()=>q("laser"),children:s.jsxDEV(de,{size:20},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:606,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:602,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:601,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:532,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:502,columnNumber:7},void 0),c>0&&s.jsxDEV(y,{content:"上一页",showArrow:!1,children:s.jsxDEV("button",{className:"frame-slideshow__nav frame-slideshow__nav--prev",style:{opacity:d?1:0},onClick:()=>l(c-1),children:s.jsxDEV("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",children:s.jsxDEV("path",{d:"M15 18l-6-6 6-6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:621,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:620,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:615,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:614,columnNumber:9},void 0),c<D.length-1&&s.jsxDEV(y,{content:"下一页",showArrow:!1,children:s.jsxDEV("button",{className:"frame-slideshow__nav frame-slideshow__nav--next",style:{opacity:d?1:0},onClick:()=>l(c+1),children:s.jsxDEV("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",children:s.jsxDEV("path",{d:"M9 18l6-6-6-6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:640,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:639,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:634,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:633,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:473,columnNumber:5},void 0),document.body)};export{ye as FrameSlideshow};
|
|
1
|
+
import{b as o,u as J,k as Q,F,s as ee,n as se,o as re,B as S,P as R,p as C,q as ne,v as te,w as oe,x as s,Z as ie,H as y,y as ae,z as ce,E as le,L as de,R as ue,A as me,C as he,S as fe,D as we,G as pe,J as Ne}from"./index-D5YSioyv.js";const M=60,I="slideshow-active";function U(r){r?document.documentElement.classList.add(I):document.documentElement.classList.remove(I)}function xe(r){const n=[];for(const i of r.children)he(i)&&n.push(i);return n}function je(r,n){const i=ue.getRectangleByPoints(n.points),x=me.getBoardContainer(r),c=x.clientWidth,j=x.clientHeight,u=(c-M*2)/i.width,E=(j-M*2)/i.height,d=Math.min(u,E,3),V=i.x+i.width/2,m=i.y+i.height/2,g=[V-c/2/d,m-j/2/d];S.updateViewport(r,g,d);const h=x.getBoundingClientRect(),v=h.left+(i.x-g[0])*d,_=h.top+(i.y-g[1])*d,w=i.width*d,b=i.height*d;return{left:v,top:_,width:w,height:b}}function ke(r){const n=window.innerWidth,i=window.innerHeight,x={top:0,left:0,width:n,height:Math.max(0,r.top)},c={top:r.top+r.height,left:0,width:n,height:Math.max(0,i-r.top-r.height)},j={top:r.top,left:0,width:Math.max(0,r.left),height:r.height},u={top:r.top,left:r.left+r.width,width:Math.max(0,n-r.left-r.width),height:r.height};return[x,c,j,u]}const ge=["#000000","#e91e63","#f39c12","#4caf50","#2196f3","#9c27b0","#ffffff"],ve=[{style:F.solid,icon:s.jsxDEV(fe,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:167,columnNumber:45},void 0)},{style:F.dashed,icon:s.jsxDEV(we,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:168,columnNumber:46},void 0)},{style:F.dotted,icon:s.jsxDEV(pe,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:169,columnNumber:46},void 0)},{style:F.double,icon:s.jsxDEV(Ne,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:170,columnNumber:46},void 0)}],be=[1,2,4,8],ye=({visible:r,board:n,onClose:i,initialFrameId:x})=>{const[c,j]=o.useState(0),[u,E]=o.useState(null),[d,V]=o.useState(!0),[m,g]=o.useState("select"),h=J(),v=o.useRef(),_=o.useRef(null),w=o.useRef(null),b=o.useRef([]),p=r?Q(n):null,[A,z]=o.useState((p==null?void 0:p.strokeColor)??"#000000"),[W,B]=o.useState((p==null?void 0:p.strokeStyle)??F.solid),[H,$]=o.useState((p==null?void 0:p.strokeWidth)??2),O=o.useCallback(e=>{z(e),ee(n,e)},[n]),G=o.useCallback(e=>{B(e),se(n,e)},[n]),K=o.useCallback(e=>{$(e),re(n,e)},[n]),N=o.useCallback(()=>{V(!0),v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{V(!1)},3e3)},[]),q=o.useCallback(e=>{if(g(e),N(),e==="select")S.updatePointerType(n,R.selection),h(R.selection);else{const a={pen:C.feltTipPen,eraser:C.eraser,laser:C.laserPointer}[e];ne(n,te.drawing),S.updatePointerType(n,a),h(a)}},[n,N,h]),l=o.useCallback(e=>{const t=b.current;if(!n||e<0||e>=t.length)return;const a=je(n,t[e]);E(a),j(e),N()},[n,N]);o.useEffect(()=>{var k,f;if(!r)return;const e=xe(n);if(e.length===0){i();return}b.current=e;const t=n.viewport;_.current={origination:t!=null&&t.origination?[t.origination[0],t.origination[1]]:null,zoom:(t==null?void 0:t.zoom)??1},w.current=n.pointer,U(!0);let a=0;if(x){const T=e.findIndex(Z=>Z.id===x);T>=0&&(a=T)}return l(a),(f=(k=document.documentElement).requestFullscreen)==null||f.call(k).then(()=>{setTimeout(()=>l(a),300)}).catch(()=>{}),()=>{U(!1),v.current&&clearTimeout(v.current)}},[r]);const P=o.useCallback(()=>{var t;U(!1);const e=_.current;if(e&&n){const a=e.origination??[0,0];S.updateViewport(n,a,e.zoom)}w.current!==null&&(S.updatePointerType(n,w.current),h(w.current)),document.fullscreenElement&&((t=document.exitFullscreen)==null||t.call(document).catch(()=>{})),E(null),g("select"),i()},[n,i,h]);o.useEffect(()=>{if(!r)return;const e=()=>{if(!document.fullscreenElement&&r){U(!1);const t=_.current;if(t&&n){const a=t.origination??[0,0];S.updateViewport(n,a,t.zoom)}w.current!==null&&(S.updatePointerType(n,w.current),h(w.current)),E(null),g("select"),i()}};return document.addEventListener("fullscreenchange",e),()=>{document.removeEventListener("fullscreenchange",e)}},[r,n,i,h]),o.useEffect(()=>{if(!r)return;const e=()=>{l(c)};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[r,c,l]),o.useEffect(()=>{if(!r)return;const e=b.current;if(e.length===0)return;const t=a=>{switch(N(),a.key){case"ArrowRight":case" ":case"Enter":case"PageDown":case"ArrowDown":{a.preventDefault(),j(k=>{const f=Math.min(k+1,e.length-1);return f!==k&&l(f),f});break}case"ArrowLeft":case"Backspace":case"PageUp":case"ArrowUp":{a.preventDefault(),j(k=>{const f=Math.max(k-1,0);return f!==k&&l(f),f});break}case"Escape":{a.preventDefault(),P();break}case"Home":{a.preventDefault(),l(0);break}case"End":{a.preventDefault(),l(e.length-1);break}}};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[r,l,P,N]);const X=o.useCallback(e=>{if(m!=="select")return;const t=e.target;if(t.closest(".frame-slideshow__controls")||t.closest(".frame-slideshow__nav"))return;const a=b.current;c<a.length-1&&l(c+1)},[m,c,l]);if(o.useEffect(()=>{if(!r)return;const e=()=>N();return window.addEventListener("mousemove",e),()=>window.removeEventListener("mousemove",e)},[r,N]),!r||!u)return null;const D=b.current,L=D[c],Y=ke(u);return oe.createPortal(s.jsxDEV("div",{className:"frame-slideshow",style:{zIndex:ie.SLIDESHOW},onMouseMove:N,onClick:X,children:[s.jsxDEV("div",{className:"frame-slideshow__mask",children:Y.map((e,t)=>s.jsxDEV("div",{className:"frame-slideshow__mask-block",style:e},t,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:482,columnNumber:11},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:480,columnNumber:7},void 0),m==="select"&&s.jsxDEV("div",{className:"frame-slideshow__content-overlay",style:{position:"absolute",left:u.left,top:u.top,width:u.width,height:u.height,cursor:c<D.length-1?"pointer":"default"}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:488,columnNumber:9},void 0),s.jsxDEV("div",{className:"frame-slideshow__controls",style:{opacity:d?1:0},children:[s.jsxDEV("div",{className:"frame-slideshow__controls-left",children:[L&&s.jsxDEV("div",{className:"frame-slideshow__title",children:L.name||`Frame ${c+1}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:509,columnNumber:13},void 0),s.jsxDEV("div",{className:"frame-slideshow__esc-hint",children:["按 ",s.jsxDEV("kbd",{children:"ESC"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:514,columnNumber:15},void 0)," 退出"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:513,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:507,columnNumber:9},void 0),D.length>0&&s.jsxDEV("div",{className:"frame-slideshow__indicator",children:[s.jsxDEV("span",{className:"frame-slideshow__indicator-current",children:c+1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:521,columnNumber:13},void 0),s.jsxDEV("span",{className:"frame-slideshow__indicator-sep",children:"/"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:524,columnNumber:13},void 0),s.jsxDEV("span",{className:"frame-slideshow__indicator-total",children:D.length},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:525,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:520,columnNumber:11},void 0),s.jsxDEV("div",{className:"frame-slideshow__controls-right",children:[m==="pen"&&s.jsxDEV("div",{className:"frame-slideshow__settings-panel",children:[s.jsxDEV("div",{className:"frame-slideshow__pen-colors",children:ge.map(e=>s.jsxDEV("button",{className:`frame-slideshow__pen-color ${A===e?"frame-slideshow__pen-color--active":""}`,style:{backgroundColor:e},onClick:()=>O(e)},e,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:539,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:537,columnNumber:15},void 0),s.jsxDEV("div",{className:"frame-slideshow__pen-divider"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:547,columnNumber:15},void 0),s.jsxDEV("div",{className:"frame-slideshow__pen-styles",children:ve.map(({style:e,icon:t})=>s.jsxDEV("button",{className:`frame-slideshow__pen-style ${W===e?"frame-slideshow__pen-style--active":""}`,onClick:()=>G(e),children:t},e,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:551,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:549,columnNumber:15},void 0),s.jsxDEV("div",{className:"frame-slideshow__pen-divider"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:560,columnNumber:15},void 0),s.jsxDEV("div",{className:"frame-slideshow__pen-widths",children:be.map(e=>s.jsxDEV("button",{className:`frame-slideshow__pen-width ${H===e?"frame-slideshow__pen-width--active":""}`,onClick:()=>K(e),children:s.jsxDEV("svg",{width:"20",height:"20",viewBox:"0 0 20 20",children:s.jsxDEV("line",{x1:"3",y1:"10",x2:"17",y2:"10",stroke:"currentColor",strokeWidth:e,strokeLinecap:"round"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:570,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:569,columnNumber:21},void 0)},e,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:564,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:562,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:535,columnNumber:13},void 0),s.jsxDEV(y,{content:"选择工具",showArrow:!1,children:s.jsxDEV("button",{className:`frame-slideshow__tool-btn ${m==="select"?"frame-slideshow__tool-btn--active":""}`,onClick:()=>q("select"),children:s.jsxDEV(ae,{size:20},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:582,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:578,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:577,columnNumber:11},void 0),s.jsxDEV(y,{content:"画笔",showArrow:!1,children:s.jsxDEV("button",{className:`frame-slideshow__tool-btn ${m==="pen"?"frame-slideshow__tool-btn--active":""}`,onClick:()=>q("pen"),children:s.jsxDEV(ce,{size:20},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:590,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:586,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:585,columnNumber:11},void 0),s.jsxDEV(y,{content:"橡皮擦",showArrow:!1,children:s.jsxDEV("button",{className:`frame-slideshow__tool-btn ${m==="eraser"?"frame-slideshow__tool-btn--active":""}`,onClick:()=>q("eraser"),children:s.jsxDEV(le,{size:20},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:598,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:594,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:593,columnNumber:11},void 0),s.jsxDEV(y,{content:"激光笔",showArrow:!1,children:s.jsxDEV("button",{className:`frame-slideshow__tool-btn ${m==="laser"?"frame-slideshow__tool-btn--active":""}`,onClick:()=>q("laser"),children:s.jsxDEV(de,{size:20},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:606,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:602,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:601,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:532,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:502,columnNumber:7},void 0),c>0&&s.jsxDEV(y,{content:"上一页",showArrow:!1,children:s.jsxDEV("button",{className:"frame-slideshow__nav frame-slideshow__nav--prev",style:{opacity:d?1:0},onClick:()=>l(c-1),children:s.jsxDEV("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",children:s.jsxDEV("path",{d:"M15 18l-6-6 6-6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:621,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:620,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:615,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:614,columnNumber:9},void 0),c<D.length-1&&s.jsxDEV(y,{content:"下一页",showArrow:!1,children:s.jsxDEV("button",{className:"frame-slideshow__nav frame-slideshow__nav--next",style:{opacity:d?1:0},onClick:()=>l(c+1),children:s.jsxDEV("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",children:s.jsxDEV("path",{d:"M9 18l6-6-6-6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:640,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:639,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:634,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:633,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/project-drawer/FrameSlideshow.tsx",lineNumber:473,columnNumber:5},void 0),document.body)};export{ye as FrameSlideshow};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-BvpTiXWY.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{cn as Z,b as s,x as e,w as Ws,fy as le,bt as fe,Z as Os,fJ as qe,hP as cs,fH as be,bs as ke,dn as he,H as O,eG as je,hQ as Te,hR as Hs,hS as re,hT as we,aH as us,cq as Xs,hU as es,dH as D,g1 as Ys,hV as Zs,g2 as Gs,dq as Qs,dr as Js,hW as ze,aI as Ce,hX as Se,hY as en,ao as sn,d6 as nn,bM as ye,bq as ms,aC as Ne,ei as an,bE as fs,bm as tn,hZ as on,bS as M,h_ as bs,h$ as Ns,bd as rn,cT as dn,cV as ss,aK as Me,i0 as ln,i1 as cn,i2 as un,K as mn,i3 as fn,O as Ve,i4 as bn,aA as Nn}from"./index-
|
|
2
|
+
import{cn as Z,b as s,x as e,w as Ws,fy as le,bt as fe,Z as Os,fJ as qe,hP as cs,fH as be,bs as ke,dn as he,H as O,eG as je,hQ as Te,hR as Hs,hS as re,hT as we,aH as us,cq as Xs,hU as es,dH as D,g1 as Ys,hV as Zs,g2 as Gs,dq as Qs,dr as Js,hW as ze,aI as Ce,hX as Se,hY as en,ao as sn,d6 as nn,bM as ye,bq as ms,aC as Ne,ei as an,bE as fs,bm as tn,hZ as on,bS as M,h_ as bs,h$ as Ns,bd as rn,cT as dn,cV as ss,aK as Me,i0 as ln,i1 as cn,i2 as un,K as mn,i3 as fn,O as Ve,i4 as bn,aA as Nn}from"./index-D5YSioyv.js";import{K as gn,M as Ae}from"./index-CexfuLbX.js";/* empty css */import{D as gs}from"./index-9eZTYsQ4.js";import"./katex-Cu_Erd72.js";import"./index-CuwHJJO4.js";import"./browser-BanMklii.js";import"./throttle-DggB2waX.js";import"./chevron-right-JQJ6nsCM.js";import"./_baseUnset-CvjcxnsS.js";import"./_baseFlatten-BCqnPdEZ.js";import"./memoize-CUfUlF3P.js";import"./last-DXTTfs9a.js";import"./_flatRest-rR2Z0C6Y.js";/**
|
|
3
3
|
* @license lucide-react v0.562.0 - ISC
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the ISC license.
|
|
@@ -123,6 +123,6 @@ ${n}
|
|
|
123
123
|
`).trim()}const ui=({noteId:n,noteContent:i,noteTitle:r,onInsertToNote:d,onSaved:k})=>{const N=dn("text"),[b,l]=s.useState([]),[j,R]=s.useState(""),[y,v]=s.useState(N.modelId||rs),[B,V]=s.useState(()=>ss(N.profileId,N.modelId||rs)),[p,E]=s.useState(!1),[c,m]=s.useState(null),[C,L]=s.useState(null),z=s.useRef(null),I=s.useRef(null);s.useEffect(()=>{let w=!0;return(async()=>{l([]);try{const A=await oi(n);w&&(A&&A.messages.length>0?l(A.messages):l([{id:"init",role:"model",content:"我已经阅读了这篇笔记。你可以让我提取摘要、关键点,或者直接与我讨论笔记内容。",type:"text",timestamp:Date.now()}]))}catch(A){console.error("Failed to load chat history",A)}})(),()=>{w=!1}},[n]),s.useEffect(()=>{b.length>0&&ri(n,b).catch(console.error)},[b,n]),s.useEffect(()=>{z.current&&(z.current.scrollTop=z.current.scrollHeight)},[b]),s.useEffect(()=>{I.current&&(I.current.style.height="auto",I.current.style.height=`${Math.min(I.current.scrollHeight,120)}px`)},[j]);const f=s.useCallback(()=>{C&&(C.abort(),L(null),E(!1),l(w=>[...w,{id:Date.now().toString(),role:"model",content:"🚫 已停止生成",type:"text",timestamp:Date.now()}]))},[C]),U=s.useCallback(async()=>{if(!j.trim()||p)return;const w={id:Date.now().toString(),role:"user",content:j,type:"text",timestamp:Date.now()};l(A=>[...A,w]),R(""),E(!0),I.current&&(I.current.style.height="auto");const P=new AbortController;L(P);try{const A=b.concat(w).map(K=>({role:K.role==="model"?"assistant":"user",content:[{type:"text",text:K.content}]}));if(A.length<=2){const K=`Context:
|
|
124
124
|
${i}
|
|
125
125
|
|
|
126
|
-
Task: ${w.content}`,F=A.length-1;A[F].content=[{type:"text",text:K}]}const g=(Date.now()+1).toString();m(g),l(K=>[...K,{id:g,role:"model",content:"正在思考...",type:"text",timestamp:Date.now()}]),await ni(A,{model:B||y,onProgress:K=>{l(F=>F.map(ee=>ee.id===g?{...ee,content:K}:ee))},signal:P.signal})}catch(A){A.name!=="AbortError"&&l(g=>[...g,{id:Date.now().toString(),role:"model",content:`Error: ${A.message||"Something went wrong"}`,type:"text",timestamp:Date.now()}])}finally{E(!1),L(null),m(null)}},[j,p,b,i,y,B]),$=s.useCallback(async()=>{if(p)return;E(!0);const w={id:Date.now().toString(),role:"user",content:"提取知识点",type:"text",timestamp:Date.now()};l(g=>[...g,w]);const P=new AbortController;L(P);const A=(Date.now()+1).toString();l(g=>[...g,{id:A,role:"model",content:"正在分析笔记内容并提取知识点...",type:"text",timestamp:Date.now()}]);try{const g=await ii(i,{title:r,model:B||y,signal:P.signal});l(K=>K.map(F=>F.id===A?{...F,content:"知识点提取完成:",type:"extraction-result",data:g}:F))}catch(g){g.name!=="AbortError"&&l(K=>K.map(F=>F.id===A?{...F,content:`提取失败: ${g.message}`}:F))}finally{E(!1),L(null)}},[p,i,r,y,B]),_=w=>{w.key==="Enter"&&!w.shiftKey&&(w.preventDefault(),U())},Y=s.useCallback(w=>{if(!w){M.warning("没有可复制的内容");return}navigator.clipboard.writeText(w).then(()=>{M.success("复制成功")}).catch(()=>{M.error("复制失败")})},[]),X=s.useCallback(w=>w.type==="text"?w.content:w.type==="extraction-result"&&w.data?ks(w.data):"",[]),H=s.useCallback(w=>{if(w.type==="extraction-result"&&w.data)try{const P=li(w.data,{format:"markdown",includeSource:!0,includeTags:!0});ci(P.content,P.filename,P.mimeType)}catch(P){console.error("Failed to export",P),M.error("导出失败")}},[]);return e.jsxDEV("div",{className:"kb-extraction-chat",children:[e.jsxDEV("div",{className:"kb-extraction-chat__header",children:e.jsxDEV("div",{className:"kb-extraction-chat__title",children:[e.jsxDEV(Me,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:428,columnNumber:11},void 0),e.jsxDEV("span",{children:"知识提取 & 对话"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:429,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:427,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:426,columnNumber:7},void 0),e.jsxDEV("div",{className:"kb-extraction-chat__messages",ref:z,children:b.map(w=>e.jsxDEV("div",{className:`kb-message kb-message--${w.role}`,children:[e.jsxDEV("div",{className:"kb-message__avatar",children:w.role==="user"?e.jsxDEV(Ce,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:437,columnNumber:38},void 0):e.jsxDEV(ln,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:437,columnNumber:49},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:436,columnNumber:13},void 0),e.jsxDEV("div",{className:"kb-message__body",children:[e.jsxDEV("div",{className:"kb-message__content",children:w.role==="model"?e.jsxDEV("div",{className:"kb-message__content-scroll",children:w.type==="text"?w.id===c&&(w.content==="正在思考..."||w.content==="正在分析笔记内容并提取知识点...")?e.jsxDEV("div",{className:"kb-message__thinking","aria-label":"思考中",children:[e.jsxDEV("span",{className:"kb-message__thinking-text",children:w.content.replace(/\.+$/,"")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:446,columnNumber:27},void 0),e.jsxDEV("span",{className:"kb-message__thinking-dots",children:[e.jsxDEV("span",{children:"."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:448,columnNumber:29},void 0),e.jsxDEV("span",{children:"."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:448,columnNumber:43},void 0),e.jsxDEV("span",{children:"."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:448,columnNumber:57},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:447,columnNumber:27},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:445,columnNumber:25},void 0):w.content?e.jsxDEV("div",{className:"kb-message__markdown-wrap",children:e.jsxDEV(Ae,{markdown:w.content,readOnly:!0,showModeSwitch:!1,initialMode:"wysiwyg",className:"kb-extraction-markdown"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:453,columnNumber:27},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:452,columnNumber:25},void 0):null:e.jsxDEV(ds,{result:w.data},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:463,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:442,columnNumber:19},void 0):w.type==="text"?e.jsxDEV("div",{className:"kb-message__text",children:w.content},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:468,columnNumber:21},void 0):e.jsxDEV(ds,{result:w.data},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:470,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:440,columnNumber:15},void 0),w.role==="model"&&e.jsxDEV("div",{className:"kb-message__actions",children:[e.jsxDEV(O,{content:"复制",showArrow:!1,children:e.jsxDEV("button",{className:"kb-message__action-btn",onClick:()=>Y(X(w)),children:e.jsxDEV(qe,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:481,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:477,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:476,columnNumber:19},void 0),e.jsxDEV(O,{content:"插入到笔记",showArrow:!1,children:e.jsxDEV("button",{className:"kb-message__action-btn",onClick:()=>{const P=X(w);P&&(d==null||d(P))},children:e.jsxDEV(qn,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:492,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:485,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:484,columnNumber:19},void 0),w.type==="extraction-result"&&e.jsxDEV(O,{content:"导出 Markdown",showArrow:!1,children:e.jsxDEV("button",{className:"kb-message__action-btn",onClick:()=>H(w),children:e.jsxDEV(ze,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:501,columnNumber:25},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:497,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:496,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:475,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:439,columnNumber:13},void 0)]},w.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:435,columnNumber:11},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:433,columnNumber:7},void 0),e.jsxDEV("div",{className:"kb-extraction-chat__input-area",children:[e.jsxDEV("div",{className:"kb-extraction-chat__input-wrapper",children:e.jsxDEV("textarea",{ref:I,className:"kb-extraction-chat__textarea",value:j,onChange:w=>R(w.target.value),onKeyDown:_,placeholder:"输入问题,与 AI 讨论笔记内容...",disabled:p,rows:1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:514,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:513,columnNumber:9},void 0),e.jsxDEV("div",{className:"kb-extraction-chat__input-actions",children:[e.jsxDEV("div",{className:"kb-extraction-chat__model-selector",children:e.jsxDEV(cn,{value:y,valueRef:B,onChange:(w,P)=>{v(w),V(P||ss(null,w))},variant:"capsule"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:527,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:526,columnNumber:11},void 0),e.jsxDEV("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[e.jsxDEV(O,{content:"一键提取知识点",showArrow:!1,children:e.jsxDEV("span",{children:e.jsxDEV("button",{className:"kb-extraction-chat__icon-btn",onClick:$,disabled:p,children:e.jsxDEV(Me,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:546,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:541,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:540,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:539,columnNumber:13},void 0),e.jsxDEV("button",{className:`kb-extraction-chat__send-btn ${j.trim()||p?"kb-extraction-chat__send-btn--active":""}`,onClick:p?f:U,disabled:!j.trim()&&!p,title:p?"停止生成":"发送",children:p?e.jsxDEV(kn,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:561,columnNumber:28},void 0):e.jsxDEV(un,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:561,columnNumber:55},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:551,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:538,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:525,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:512,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:425,columnNumber:5},void 0)},ds=({result:n})=>{const i=mn.useMemo(()=>ks(n),[n]);return e.jsxDEV("div",{className:"kb-extraction-result-view",children:e.jsxDEV(Ae,{markdown:i,readOnly:!0,showModeSwitch:!1,initialMode:"wysiwyg",className:"kb-extraction-markdown"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:580,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:579,columnNumber:5},void 0)},ls=[{label:"更新时间",value:"updatedAt"},{label:"创建时间",value:"createdAt"},{label:"标题",value:"title"}],mi=({value:n,onChange:i})=>{var N;const r=((N=ls.find(b=>b.value===n.field))==null?void 0:N.label)||"排序",d=b=>{const l=b.value;["asc","desc"].includes(l)?i({...n,order:l}):l===n.field?i({...n,order:n.order==="asc"?"desc":"asc"}):i({...n,field:l,order:l==="title"?"asc":"desc"})},k=[{content:"排序字段",disabled:!0,className:"kb-sort-dropdown__header"},...ls.map(b=>({content:b.label,value:b.value,prefixIcon:n.field===b.value?e.jsxDEV(le,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:47,columnNumber:47},void 0):e.jsxDEV("div",{style:{width:14}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:47,columnNumber:69},void 0)})),{divider:!0},{content:"排序方式",disabled:!0,className:"kb-sort-dropdown__header"},{content:"升序",value:"asc",prefixIcon:n.order==="asc"?e.jsxDEV(le,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:58,columnNumber:43},void 0):e.jsxDEV("div",{style:{width:14}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:58,columnNumber:65},void 0),suffixIcon:e.jsxDEV(is,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:59,columnNumber:19},void 0)},{content:"降序",value:"desc",prefixIcon:n.order==="desc"?e.jsxDEV(le,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:64,columnNumber:44},void 0):e.jsxDEV("div",{style:{width:14}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:64,columnNumber:66},void 0),suffixIcon:e.jsxDEV(ns,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:65,columnNumber:19},void 0)}];return e.jsxDEV(gs,{options:k,onClick:d,trigger:"click",minColumnWidth:120,children:e.jsxDEV(Ne,{variant:"outline",size:"small",className:"kb-sort-trigger",children:[n.order==="asc"?e.jsxDEV(is,{size:14,style:{marginRight:4}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:77,columnNumber:34},void 0):e.jsxDEV(ns,{size:14,style:{marginRight:4}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:77,columnNumber:85},void 0),r]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:76,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:70,columnNumber:5},void 0)},_i=({initialNoteId:n})=>{var Ze;const[i,r]=s.useState([]),[d,k]=s.useState([]),[N,b]=s.useState([]),[l,j]=s.useState(null),[R,y]=s.useState([]),[v,B]=s.useState({}),[V,p]=s.useState(null),[E,c]=s.useState(new Set),[m,C]=s.useState(null),[L,z]=s.useState(""),[I,f]=s.useState(D.loadSortPreference?D.loadSortPreference():{field:"updatedAt",order:"desc"}),[U,$]=s.useState([]),[_,Y]=s.useState(!1),[X,H]=s.useState(!1),[w,P]=s.useState(!1),[A,g]=s.useState(null),K=s.useRef(null),F=s.useRef(0),ee=s.useRef(null),{confirm:ne,confirmDialog:ge}=fs(),[q,G]=s.useState(!1),[Q,J]=s.useState("related"),[ve,$e]=s.useState(280),[Ee,Le]=s.useState(300),ce=s.useRef(!1),ue=s.useRef(!1),De=s.useRef(null);s.useEffect(()=>{const a=localStorage.getItem("kb-sidebar-width");if(a){const t=parseInt(a,10);!isNaN(t)&&t>100&&t<800&&$e(t)}const o=localStorage.getItem("kb-right-sidebar-width");if(o){const t=parseInt(o,10);!isNaN(t)&&t>100&&t<800&&Le(t)}},[]),s.useEffect(()=>{const a=t=>{if(!De.current)return;const x=De.current.getBoundingClientRect();if(ce.current){t.preventDefault();const u=Math.max(200,Math.min(600,t.clientX-x.left));$e(u)}else if(ue.current){t.preventDefault();const u=Math.max(200,Math.min(600,x.right-t.clientX));Le(u)}},o=()=>{ce.current&&(ce.current=!1,localStorage.setItem("kb-sidebar-width",ve.toString()),document.body.style.cursor=""),ue.current&&(ue.current=!1,localStorage.setItem("kb-right-sidebar-width",Ee.toString()),document.body.style.cursor="")};return ce.current||ue.current?(document.addEventListener("mousemove",a),document.addEventListener("mouseup",o)):document.addEventListener("mousemove",a),document.addEventListener("mousemove",a),document.addEventListener("mouseup",o),()=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",o)}},[ve,Ee]);const hs=a=>{a.preventDefault(),ce.current=!0,document.body.style.cursor="col-resize"},js=a=>{a.preventDefault(),ue.current=!0,document.body.style.cursor="col-resize"},[Ie,ys]=s.useState(null),Pe=s.useRef(!1),Fe=s.useRef(!1);s.useEffect(()=>{if(Pe.current)return;Pe.current=!0,(async()=>{await D.initialize(),await W();try{const t=await D.getStorageUsage();ys(t)}catch{}if(n){se(n);return}const o=window.__kbPendingNavigation;if(o){window.__kbPendingNavigation=null;const{directoryName:t,autoCreateNote:x}=o;if(t){const h=(await D.getAllDirectories()).find(T=>T.name===t);if(h&&(p(h.id),c(T=>{const S=new Set(T);return S.add(h.id),S}),x)){const T=t==="Skill"?"新Skill":"新笔记",S=await D.createNote(T,h.id);await W(),c(te=>{const me=new Set(te);return me.add(h.id),me}),C(S.id);const ie=await D.getNoteById(S.id);j(ie),y([])}}}})()},[]);const W=s.useCallback(async()=>{const[a,o,t]=await Promise.all([D.getAllDirectories(),D.getAllNoteMetas(),D.getAllTags()]),x=Array.from(new Map(a.map(T=>[T.id,T])).values());r(x);const u=Array.from(new Map(o.map(T=>[T.id,T])).values());k(u);const h=Array.from(new Map(t.map(T=>[T.id,T])).values());b(h),!V&&!m&&x.length>0&&(p(x[0].id),c(new Set([x[0].id]))),await vs(u)},[V,m]),vs=s.useCallback(async a=>{try{const[o,t]=await Promise.all([D.getAllTags(),D.getAllNoteTags()]),x=new Map(o.map(h=>[h.id,h])),u={};for(const h of a)u[h.id]=[];for(const h of t)if(u[h.noteId]&&x.has(h.tagId)){const T=x.get(h.tagId);T&&(u[h.noteId].some(S=>S.id===T.id)||u[h.noteId].push(T))}for(const h in u)u[h].sort((T,S)=>T.name.localeCompare(S.name));B(u)}catch(o){console.error("Failed to refresh note tags map:",o)}},[]);s.useEffect(()=>{if(!L.trim()){g(null);return}return K.current&&clearTimeout(K.current),K.current=setTimeout(async()=>{try{const o=await bs().search(L,{limit:50,filter:V?{directoryId:V}:{}});g(o)}catch{g(null)}},300),()=>{K.current&&clearTimeout(K.current)}},[L,V]);const ae=s.useMemo(()=>{if(A&&L.trim()){const o=new Set(A.map(u=>u.id)),t=new Map(A.map((u,h)=>[u.id,h]));let x=d.filter(u=>o.has(u.id));if(U.length>0){const u=new Set(U);x=x.filter(h=>(v[h.id]||[]).some(S=>u.has(S.id)))}return x.sort((u,h)=>(t.get(u.id)??0)-(t.get(h.id)??0))}let a=d;if(U.length>0){const o=new Set(U);a=a.filter(t=>(v[t.id]||[]).some(u=>o.has(u.id)))}return D.sortNoteMetas(a,I)},[d,V,L,U,I,v,A]),Es=s.useMemo(()=>{const a={},o=new Set;for(const t of ae)o.has(t.id)||(o.add(t.id),a[t.directoryId]=(a[t.directoryId]||0)+1);return a},[ae]),Ds=s.useMemo(()=>{var o;const a={};for(const t of ae){const x=a[o=t.directoryId]??(a[o]=[]);x.some(u=>u.id===t.id)||x.push(t)}return a},[ae]),Ue=s.useCallback(async a=>{await D.createDirectory(a),await W()},[W]),Us=s.useCallback(async(a,o)=>{await D.updateDirectory(a,{name:o}),await W()},[W]),_s=s.useCallback(async a=>{var x;const o=i.find(u=>u.id===a);if(!(!o||!await ne({title:"确认删除目录",description:`确定要删除目录 "${o.name}" 及其下的所有笔记吗?此操作不可撤销。`,confirmText:"删除",cancelText:"取消",danger:!0})))try{await D.deleteDirectory(a),V===a&&(p(((x=i[0])==null?void 0:x.id)||null),C(null),j(null)),await W(),M.success("目录已删除")}catch(u){M.error(`删除失败: ${u.message}`)}},[W,V,i]),Ks=s.useCallback(async a=>{try{await D.duplicateDirectory(a),await W(),M.success("目录复制成功")}catch(o){M.error(`复制目录失败: ${o.message}`)}},[W]),Bs=s.useCallback(a=>{c(o=>{const t=new Set(o);return t.has(a)?t.delete(a):t.add(a),t})},[]),se=s.useCallback(async a=>{const o=++F.current;if(C(a),p(null),y(v[a]||[]),a.startsWith(de)){const x=a.slice(de.length),u=Te.find(h=>h.id===x);if(u){const h=["image","inspiration","grid_image"],T=["ppt"],S=u.mcpTool&&h.some(te=>u.mcpTool.includes(te))?"image":u.mcpTool&&T.some(te=>u.mcpTool.includes(te))?"ppt":void 0,ie={id:a,title:u.name,content:u.description||"",directoryId:"",createdAt:0,updatedAt:0,metadata:{...S?{outputType:S}:{}}};o===F.current&&(j(ie),y([]))}return}if(a.startsWith(re)){const x=a.slice(re.length),u=fn(x);if(u){const h={id:a,title:u.name,content:u.content||u.description||"",directoryId:"",createdAt:0,updatedAt:0,metadata:{...u.outputType?{outputType:u.outputType}:{},...u.category?{category:u.category}:{}}};o===F.current&&(j(h),y([]))}return}const t=await D.getNoteById(a);if(o===F.current&&(j(t),t)){const x=await D.getTagsForNote(t.id);if(o!==F.current)return;y(x),c(u=>{const h=new Set(u);return h.add(t.directoryId),h})}},[i,v]),_e=s.useCallback(async a=>{const o=new Set(d.filter(S=>S.directoryId===a).map(S=>S.title)),t=i.find(S=>S.id===a),x=(t==null?void 0:t.name)==="Skill"?"新Skill":"新笔记";let u=x,h=1;for(;o.has(u);)u=`${x} ${h}`,h++;const T=await D.createNote(u,a);await W(),c(S=>{const ie=new Set(S);return ie.add(a),ie}),se(T.id)},[W,se,d,i]),Ke=s.useCallback(async(a,o)=>{await D.updateNote(a,o),k(t=>t.map(x=>x.id===a?{...x,...o,updatedAt:Date.now()}:x)),(l==null?void 0:l.id)===a&&j(t=>t&&{...t,...o,updatedAt:Date.now()});try{const t=window.__drawnixBoard;if(t&&t.children){const{Transforms:x}=await Ve(async()=>{const{Transforms:u}=await import("./index-CLp1N2JZ.js").then(h=>h.lc);return{Transforms:u}},__vite__mapDeps([0]),import.meta.url);t.children.forEach((u,h)=>{if(u.noteId===a){const T={};o.title!==void 0&&(T.title=o.title),o.content!==void 0&&(T.body=o.content),Object.keys(T).length>0&&x.setNode(t,T,[h])}})}}catch(t){console.warn("[KB] Failed to sync note update to canvas card:",t)}},[l]),Vs=s.useCallback(async a=>{if(!l)return;const o=l.content?`
|
|
126
|
+
Task: ${w.content}`,F=A.length-1;A[F].content=[{type:"text",text:K}]}const g=(Date.now()+1).toString();m(g),l(K=>[...K,{id:g,role:"model",content:"正在思考...",type:"text",timestamp:Date.now()}]),await ni(A,{model:B||y,onProgress:K=>{l(F=>F.map(ee=>ee.id===g?{...ee,content:K}:ee))},signal:P.signal})}catch(A){A.name!=="AbortError"&&l(g=>[...g,{id:Date.now().toString(),role:"model",content:`Error: ${A.message||"Something went wrong"}`,type:"text",timestamp:Date.now()}])}finally{E(!1),L(null),m(null)}},[j,p,b,i,y,B]),$=s.useCallback(async()=>{if(p)return;E(!0);const w={id:Date.now().toString(),role:"user",content:"提取知识点",type:"text",timestamp:Date.now()};l(g=>[...g,w]);const P=new AbortController;L(P);const A=(Date.now()+1).toString();l(g=>[...g,{id:A,role:"model",content:"正在分析笔记内容并提取知识点...",type:"text",timestamp:Date.now()}]);try{const g=await ii(i,{title:r,model:B||y,signal:P.signal});l(K=>K.map(F=>F.id===A?{...F,content:"知识点提取完成:",type:"extraction-result",data:g}:F))}catch(g){g.name!=="AbortError"&&l(K=>K.map(F=>F.id===A?{...F,content:`提取失败: ${g.message}`}:F))}finally{E(!1),L(null)}},[p,i,r,y,B]),_=w=>{w.key==="Enter"&&!w.shiftKey&&(w.preventDefault(),U())},Y=s.useCallback(w=>{if(!w){M.warning("没有可复制的内容");return}navigator.clipboard.writeText(w).then(()=>{M.success("复制成功")}).catch(()=>{M.error("复制失败")})},[]),X=s.useCallback(w=>w.type==="text"?w.content:w.type==="extraction-result"&&w.data?ks(w.data):"",[]),H=s.useCallback(w=>{if(w.type==="extraction-result"&&w.data)try{const P=li(w.data,{format:"markdown",includeSource:!0,includeTags:!0});ci(P.content,P.filename,P.mimeType)}catch(P){console.error("Failed to export",P),M.error("导出失败")}},[]);return e.jsxDEV("div",{className:"kb-extraction-chat",children:[e.jsxDEV("div",{className:"kb-extraction-chat__header",children:e.jsxDEV("div",{className:"kb-extraction-chat__title",children:[e.jsxDEV(Me,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:428,columnNumber:11},void 0),e.jsxDEV("span",{children:"知识提取 & 对话"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:429,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:427,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:426,columnNumber:7},void 0),e.jsxDEV("div",{className:"kb-extraction-chat__messages",ref:z,children:b.map(w=>e.jsxDEV("div",{className:`kb-message kb-message--${w.role}`,children:[e.jsxDEV("div",{className:"kb-message__avatar",children:w.role==="user"?e.jsxDEV(Ce,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:437,columnNumber:38},void 0):e.jsxDEV(ln,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:437,columnNumber:49},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:436,columnNumber:13},void 0),e.jsxDEV("div",{className:"kb-message__body",children:[e.jsxDEV("div",{className:"kb-message__content",children:w.role==="model"?e.jsxDEV("div",{className:"kb-message__content-scroll",children:w.type==="text"?w.id===c&&(w.content==="正在思考..."||w.content==="正在分析笔记内容并提取知识点...")?e.jsxDEV("div",{className:"kb-message__thinking","aria-label":"思考中",children:[e.jsxDEV("span",{className:"kb-message__thinking-text",children:w.content.replace(/\.+$/,"")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:446,columnNumber:27},void 0),e.jsxDEV("span",{className:"kb-message__thinking-dots",children:[e.jsxDEV("span",{children:"."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:448,columnNumber:29},void 0),e.jsxDEV("span",{children:"."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:448,columnNumber:43},void 0),e.jsxDEV("span",{children:"."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:448,columnNumber:57},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:447,columnNumber:27},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:445,columnNumber:25},void 0):w.content?e.jsxDEV("div",{className:"kb-message__markdown-wrap",children:e.jsxDEV(Ae,{markdown:w.content,readOnly:!0,showModeSwitch:!1,initialMode:"wysiwyg",className:"kb-extraction-markdown"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:453,columnNumber:27},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:452,columnNumber:25},void 0):null:e.jsxDEV(ds,{result:w.data},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:463,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:442,columnNumber:19},void 0):w.type==="text"?e.jsxDEV("div",{className:"kb-message__text",children:w.content},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:468,columnNumber:21},void 0):e.jsxDEV(ds,{result:w.data},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:470,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:440,columnNumber:15},void 0),w.role==="model"&&e.jsxDEV("div",{className:"kb-message__actions",children:[e.jsxDEV(O,{content:"复制",showArrow:!1,children:e.jsxDEV("button",{className:"kb-message__action-btn",onClick:()=>Y(X(w)),children:e.jsxDEV(qe,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:481,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:477,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:476,columnNumber:19},void 0),e.jsxDEV(O,{content:"插入到笔记",showArrow:!1,children:e.jsxDEV("button",{className:"kb-message__action-btn",onClick:()=>{const P=X(w);P&&(d==null||d(P))},children:e.jsxDEV(qn,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:492,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:485,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:484,columnNumber:19},void 0),w.type==="extraction-result"&&e.jsxDEV(O,{content:"导出 Markdown",showArrow:!1,children:e.jsxDEV("button",{className:"kb-message__action-btn",onClick:()=>H(w),children:e.jsxDEV(ze,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:501,columnNumber:25},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:497,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:496,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:475,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:439,columnNumber:13},void 0)]},w.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:435,columnNumber:11},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:433,columnNumber:7},void 0),e.jsxDEV("div",{className:"kb-extraction-chat__input-area",children:[e.jsxDEV("div",{className:"kb-extraction-chat__input-wrapper",children:e.jsxDEV("textarea",{ref:I,className:"kb-extraction-chat__textarea",value:j,onChange:w=>R(w.target.value),onKeyDown:_,placeholder:"输入问题,与 AI 讨论笔记内容...",disabled:p,rows:1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:514,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:513,columnNumber:9},void 0),e.jsxDEV("div",{className:"kb-extraction-chat__input-actions",children:[e.jsxDEV("div",{className:"kb-extraction-chat__model-selector",children:e.jsxDEV(cn,{value:y,valueRef:B,onChange:(w,P)=>{v(w),V(P||ss(null,w))},variant:"capsule"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:527,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:526,columnNumber:11},void 0),e.jsxDEV("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[e.jsxDEV(O,{content:"一键提取知识点",showArrow:!1,children:e.jsxDEV("span",{children:e.jsxDEV("button",{className:"kb-extraction-chat__icon-btn",onClick:$,disabled:p,children:e.jsxDEV(Me,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:546,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:541,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:540,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:539,columnNumber:13},void 0),e.jsxDEV("button",{className:`kb-extraction-chat__send-btn ${j.trim()||p?"kb-extraction-chat__send-btn--active":""}`,onClick:p?f:U,disabled:!j.trim()&&!p,title:p?"停止生成":"发送",children:p?e.jsxDEV(kn,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:561,columnNumber:28},void 0):e.jsxDEV(un,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:561,columnNumber:55},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:551,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:538,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:525,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:512,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:425,columnNumber:5},void 0)},ds=({result:n})=>{const i=mn.useMemo(()=>ks(n),[n]);return e.jsxDEV("div",{className:"kb-extraction-result-view",children:e.jsxDEV(Ae,{markdown:i,readOnly:!0,showModeSwitch:!1,initialMode:"wysiwyg",className:"kb-extraction-markdown"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:580,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:579,columnNumber:5},void 0)},ls=[{label:"更新时间",value:"updatedAt"},{label:"创建时间",value:"createdAt"},{label:"标题",value:"title"}],mi=({value:n,onChange:i})=>{var N;const r=((N=ls.find(b=>b.value===n.field))==null?void 0:N.label)||"排序",d=b=>{const l=b.value;["asc","desc"].includes(l)?i({...n,order:l}):l===n.field?i({...n,order:n.order==="asc"?"desc":"asc"}):i({...n,field:l,order:l==="title"?"asc":"desc"})},k=[{content:"排序字段",disabled:!0,className:"kb-sort-dropdown__header"},...ls.map(b=>({content:b.label,value:b.value,prefixIcon:n.field===b.value?e.jsxDEV(le,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:47,columnNumber:47},void 0):e.jsxDEV("div",{style:{width:14}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:47,columnNumber:69},void 0)})),{divider:!0},{content:"排序方式",disabled:!0,className:"kb-sort-dropdown__header"},{content:"升序",value:"asc",prefixIcon:n.order==="asc"?e.jsxDEV(le,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:58,columnNumber:43},void 0):e.jsxDEV("div",{style:{width:14}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:58,columnNumber:65},void 0),suffixIcon:e.jsxDEV(is,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:59,columnNumber:19},void 0)},{content:"降序",value:"desc",prefixIcon:n.order==="desc"?e.jsxDEV(le,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:64,columnNumber:44},void 0):e.jsxDEV("div",{style:{width:14}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:64,columnNumber:66},void 0),suffixIcon:e.jsxDEV(ns,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:65,columnNumber:19},void 0)}];return e.jsxDEV(gs,{options:k,onClick:d,trigger:"click",minColumnWidth:120,children:e.jsxDEV(Ne,{variant:"outline",size:"small",className:"kb-sort-trigger",children:[n.order==="asc"?e.jsxDEV(is,{size:14,style:{marginRight:4}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:77,columnNumber:34},void 0):e.jsxDEV(ns,{size:14,style:{marginRight:4}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:77,columnNumber:85},void 0),r]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:76,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:70,columnNumber:5},void 0)},_i=({initialNoteId:n})=>{var Ze;const[i,r]=s.useState([]),[d,k]=s.useState([]),[N,b]=s.useState([]),[l,j]=s.useState(null),[R,y]=s.useState([]),[v,B]=s.useState({}),[V,p]=s.useState(null),[E,c]=s.useState(new Set),[m,C]=s.useState(null),[L,z]=s.useState(""),[I,f]=s.useState(D.loadSortPreference?D.loadSortPreference():{field:"updatedAt",order:"desc"}),[U,$]=s.useState([]),[_,Y]=s.useState(!1),[X,H]=s.useState(!1),[w,P]=s.useState(!1),[A,g]=s.useState(null),K=s.useRef(null),F=s.useRef(0),ee=s.useRef(null),{confirm:ne,confirmDialog:ge}=fs(),[q,G]=s.useState(!1),[Q,J]=s.useState("related"),[ve,$e]=s.useState(280),[Ee,Le]=s.useState(300),ce=s.useRef(!1),ue=s.useRef(!1),De=s.useRef(null);s.useEffect(()=>{const a=localStorage.getItem("kb-sidebar-width");if(a){const t=parseInt(a,10);!isNaN(t)&&t>100&&t<800&&$e(t)}const o=localStorage.getItem("kb-right-sidebar-width");if(o){const t=parseInt(o,10);!isNaN(t)&&t>100&&t<800&&Le(t)}},[]),s.useEffect(()=>{const a=t=>{if(!De.current)return;const x=De.current.getBoundingClientRect();if(ce.current){t.preventDefault();const u=Math.max(200,Math.min(600,t.clientX-x.left));$e(u)}else if(ue.current){t.preventDefault();const u=Math.max(200,Math.min(600,x.right-t.clientX));Le(u)}},o=()=>{ce.current&&(ce.current=!1,localStorage.setItem("kb-sidebar-width",ve.toString()),document.body.style.cursor=""),ue.current&&(ue.current=!1,localStorage.setItem("kb-right-sidebar-width",Ee.toString()),document.body.style.cursor="")};return ce.current||ue.current?(document.addEventListener("mousemove",a),document.addEventListener("mouseup",o)):document.addEventListener("mousemove",a),document.addEventListener("mousemove",a),document.addEventListener("mouseup",o),()=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",o)}},[ve,Ee]);const hs=a=>{a.preventDefault(),ce.current=!0,document.body.style.cursor="col-resize"},js=a=>{a.preventDefault(),ue.current=!0,document.body.style.cursor="col-resize"},[Ie,ys]=s.useState(null),Pe=s.useRef(!1),Fe=s.useRef(!1);s.useEffect(()=>{if(Pe.current)return;Pe.current=!0,(async()=>{await D.initialize(),await W();try{const t=await D.getStorageUsage();ys(t)}catch{}if(n){se(n);return}const o=window.__kbPendingNavigation;if(o){window.__kbPendingNavigation=null;const{directoryName:t,autoCreateNote:x}=o;if(t){const h=(await D.getAllDirectories()).find(T=>T.name===t);if(h&&(p(h.id),c(T=>{const S=new Set(T);return S.add(h.id),S}),x)){const T=t==="Skill"?"新Skill":"新笔记",S=await D.createNote(T,h.id);await W(),c(te=>{const me=new Set(te);return me.add(h.id),me}),C(S.id);const ie=await D.getNoteById(S.id);j(ie),y([])}}}})()},[]);const W=s.useCallback(async()=>{const[a,o,t]=await Promise.all([D.getAllDirectories(),D.getAllNoteMetas(),D.getAllTags()]),x=Array.from(new Map(a.map(T=>[T.id,T])).values());r(x);const u=Array.from(new Map(o.map(T=>[T.id,T])).values());k(u);const h=Array.from(new Map(t.map(T=>[T.id,T])).values());b(h),!V&&!m&&x.length>0&&(p(x[0].id),c(new Set([x[0].id]))),await vs(u)},[V,m]),vs=s.useCallback(async a=>{try{const[o,t]=await Promise.all([D.getAllTags(),D.getAllNoteTags()]),x=new Map(o.map(h=>[h.id,h])),u={};for(const h of a)u[h.id]=[];for(const h of t)if(u[h.noteId]&&x.has(h.tagId)){const T=x.get(h.tagId);T&&(u[h.noteId].some(S=>S.id===T.id)||u[h.noteId].push(T))}for(const h in u)u[h].sort((T,S)=>T.name.localeCompare(S.name));B(u)}catch(o){console.error("Failed to refresh note tags map:",o)}},[]);s.useEffect(()=>{if(!L.trim()){g(null);return}return K.current&&clearTimeout(K.current),K.current=setTimeout(async()=>{try{const o=await bs().search(L,{limit:50,filter:V?{directoryId:V}:{}});g(o)}catch{g(null)}},300),()=>{K.current&&clearTimeout(K.current)}},[L,V]);const ae=s.useMemo(()=>{if(A&&L.trim()){const o=new Set(A.map(u=>u.id)),t=new Map(A.map((u,h)=>[u.id,h]));let x=d.filter(u=>o.has(u.id));if(U.length>0){const u=new Set(U);x=x.filter(h=>(v[h.id]||[]).some(S=>u.has(S.id)))}return x.sort((u,h)=>(t.get(u.id)??0)-(t.get(h.id)??0))}let a=d;if(U.length>0){const o=new Set(U);a=a.filter(t=>(v[t.id]||[]).some(u=>o.has(u.id)))}return D.sortNoteMetas(a,I)},[d,V,L,U,I,v,A]),Es=s.useMemo(()=>{const a={},o=new Set;for(const t of ae)o.has(t.id)||(o.add(t.id),a[t.directoryId]=(a[t.directoryId]||0)+1);return a},[ae]),Ds=s.useMemo(()=>{var o;const a={};for(const t of ae){const x=a[o=t.directoryId]??(a[o]=[]);x.some(u=>u.id===t.id)||x.push(t)}return a},[ae]),Ue=s.useCallback(async a=>{await D.createDirectory(a),await W()},[W]),Us=s.useCallback(async(a,o)=>{await D.updateDirectory(a,{name:o}),await W()},[W]),_s=s.useCallback(async a=>{var x;const o=i.find(u=>u.id===a);if(!(!o||!await ne({title:"确认删除目录",description:`确定要删除目录 "${o.name}" 及其下的所有笔记吗?此操作不可撤销。`,confirmText:"删除",cancelText:"取消",danger:!0})))try{await D.deleteDirectory(a),V===a&&(p(((x=i[0])==null?void 0:x.id)||null),C(null),j(null)),await W(),M.success("目录已删除")}catch(u){M.error(`删除失败: ${u.message}`)}},[W,V,i]),Ks=s.useCallback(async a=>{try{await D.duplicateDirectory(a),await W(),M.success("目录复制成功")}catch(o){M.error(`复制目录失败: ${o.message}`)}},[W]),Bs=s.useCallback(a=>{c(o=>{const t=new Set(o);return t.has(a)?t.delete(a):t.add(a),t})},[]),se=s.useCallback(async a=>{const o=++F.current;if(C(a),p(null),y(v[a]||[]),a.startsWith(de)){const x=a.slice(de.length),u=Te.find(h=>h.id===x);if(u){const h=["image","inspiration","grid_image"],T=["ppt"],S=u.mcpTool&&h.some(te=>u.mcpTool.includes(te))?"image":u.mcpTool&&T.some(te=>u.mcpTool.includes(te))?"ppt":void 0,ie={id:a,title:u.name,content:u.description||"",directoryId:"",createdAt:0,updatedAt:0,metadata:{...S?{outputType:S}:{}}};o===F.current&&(j(ie),y([]))}return}if(a.startsWith(re)){const x=a.slice(re.length),u=fn(x);if(u){const h={id:a,title:u.name,content:u.content||u.description||"",directoryId:"",createdAt:0,updatedAt:0,metadata:{...u.outputType?{outputType:u.outputType}:{},...u.category?{category:u.category}:{}}};o===F.current&&(j(h),y([]))}return}const t=await D.getNoteById(a);if(o===F.current&&(j(t),t)){const x=await D.getTagsForNote(t.id);if(o!==F.current)return;y(x),c(u=>{const h=new Set(u);return h.add(t.directoryId),h})}},[i,v]),_e=s.useCallback(async a=>{const o=new Set(d.filter(S=>S.directoryId===a).map(S=>S.title)),t=i.find(S=>S.id===a),x=(t==null?void 0:t.name)==="Skill"?"新Skill":"新笔记";let u=x,h=1;for(;o.has(u);)u=`${x} ${h}`,h++;const T=await D.createNote(u,a);await W(),c(S=>{const ie=new Set(S);return ie.add(a),ie}),se(T.id)},[W,se,d,i]),Ke=s.useCallback(async(a,o)=>{await D.updateNote(a,o),k(t=>t.map(x=>x.id===a?{...x,...o,updatedAt:Date.now()}:x)),(l==null?void 0:l.id)===a&&j(t=>t&&{...t,...o,updatedAt:Date.now()});try{const t=window.__drawnixBoard;if(t&&t.children){const{Transforms:x}=await Ve(async()=>{const{Transforms:u}=await import("./index-D5YSioyv.js").then(h=>h.lc);return{Transforms:u}},__vite__mapDeps([0]),import.meta.url);t.children.forEach((u,h)=>{if(u.noteId===a){const T={};o.title!==void 0&&(T.title=o.title),o.content!==void 0&&(T.body=o.content),Object.keys(T).length>0&&x.setNode(t,T,[h])}})}}catch(t){console.warn("[KB] Failed to sync note update to canvas card:",t)}},[l]),Vs=s.useCallback(async a=>{if(!l)return;const o=l.content?`
|
|
127
127
|
|
|
128
|
-
`:"",t=(l.content||"")+o+a;await Ke(l.id,{content:t}),M.success("已插入到笔记末尾")},[l,Ke]),qs=s.useCallback(async a=>{var t,x;const o=window.__drawnixBoard;if(!o){M.warning("请先打开画布");return}try{if(o.children.find(oe=>oe.noteId===a.id)&&!await ne({title:"重复插入提醒",description:"画布中已存在关联该笔记的卡片,是否再次插入?",confirmText:"继续插入",cancelText:"取消"}))return;const h=await D.getNoteById(a.id);if(!h){M.error("获取笔记内容失败");return}const{getViewportOrigination:T}=await Ve(async()=>{const{getViewportOrigination:oe}=await import("./index-CLp1N2JZ.js").then(Be=>Be.lc);return{getViewportOrigination:oe}},__vite__mapDeps([0]),import.meta.url),S=T(o),ie=((t=o.host)==null?void 0:t.clientWidth)||800,te=((x=o.host)==null?void 0:x.clientHeight)||600,me=Math.round(window.innerWidth*.5),Ge=180,Qe=((S==null?void 0:S[0])??0)+ie/2-me/2,Je=((S==null?void 0:S[1])??0)+te/2-Ge/2,{Transforms:Ps}=await Ve(async()=>{const{Transforms:oe}=await import("./index-CLp1N2JZ.js").then(Be=>Be.lc);return{Transforms:oe}},__vite__mapDeps([0]),import.meta.url),Fs={type:"card",id:`card-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,title:h.title||"无标题",body:h.content||"",noteId:h.id,fillColor:"#FA8C16",points:[[Qe,Je],[Qe+me,Je+Ge]]};Ps.insertNode(o,Fs,[o.children.length]),M.success("已插入到画布")}catch(u){console.error("[KB] Failed to insert note to canvas:",u),M.error(`插入失败: ${u.message}`)}},[]),Ts=s.useCallback(async a=>{try{await D.duplicateNote(a),await W(),M.success("笔记复制成功")}catch(o){M.error(`复制笔记失败: ${o.message}`)}},[W]),Cs=s.useCallback(async a=>{if(a.startsWith(de)){M.warning("系统内置 Skill,不可删除");return}if(a.startsWith(re)){M.warning("外部 Skill,不可在此删除(请在设置中管理外部 Skill 包)");return}const o=d.find(x=>x.id===a);if(!(!o||!await ne({title:"确认删除笔记",description:`确定要删除笔记 "${o.title||"无标题"}" 吗?此操作不可撤销。`,confirmText:"删除",cancelText:"取消",danger:!0})))try{await D.deleteNote(a),m===a&&(C(null),j(null),y([])),await W(),M.success("笔记已删除")}catch(x){M.error(`删除失败: ${x.message}`)}},[m,W,d]);s.useEffect(()=>{!Fe.current&&ae.length>0&&(se(ae[0].id),Fe.current=!0)},[ae,se]),s.useEffect(()=>{const a=o=>{const{noteId:t}=o.detail;t&&se(t)};return window.addEventListener("kb:open-note",a),()=>window.removeEventListener("kb:open-note",a)},[se]),s.useEffect(()=>{const a=async o=>{const{directoryName:t,autoCreateNote:x}=o.detail;if(!t)return;window.__kbPendingNavigation&&(window.__kbPendingNavigation=null);const h=(await D.getAllDirectories()).find(T=>T.name===t);h&&(p(h.id),c(T=>{const S=new Set(T);return S.add(h.id),S}),x&&await _e(h.id))};return window.addEventListener("kb:navigate",a),()=>window.removeEventListener("kb:navigate",a)},[_e]);const Ss=s.useCallback(async(a,o)=>{await D.setNoteTags(a,o);const t=await D.getTagsForNote(a);y(t),B(u=>({...u,[a]:t}));const x=await D.getAllTags();b(x)},[]),We=s.useCallback(async a=>{const o=await D.createTag(a),t=await D.getAllTags();return b(t),o},[]),Ms=s.useCallback(async(a,o)=>{await D.updateTag(a,{name:o});const t=await D.getAllTags();b(t)},[]),Rs=s.useCallback(async a=>{await D.deleteTag(a);const o=await D.getAllTags();if(b(o),l){const t=await D.getTagsForNote(l.id);y(t),B(x=>({...x,[l.id]:t}))}},[l]),zs=s.useCallback(a=>{f(a),D.saveSortPreference&&D.saveSortPreference(a)},[]);s.useEffect(()=>{if(!X)return;const a=o=>{ee.current&&!ee.current.contains(o.target)&&H(!1)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[X]);const pe=s.useRef(null),Oe=s.useCallback(()=>{var a;(a=pe.current)==null||a.click()},[]),As=s.useCallback(async a=>{const o=a.target.files;if(!(!o||!V)){for(const t of Array.from(o)){if(!t.name.endsWith(".md")&&!t.name.endsWith(".markdown"))continue;const x=await t.text();await D.importNoteFromMarkdown(x,V,t.name)}await W(),pe.current&&(pe.current.value="")}},[V,W]),He=s.useCallback(async()=>{try{const a=await D.exportAsZip(),o=URL.createObjectURL(a),t=document.createElement("a");t.href=o,t.download=`knowledge-base-${new Date().toISOString().slice(0,10)}.zip`,document.body.appendChild(t),t.click(),document.body.removeChild(t),URL.revokeObjectURL(o)}catch(a){console.error("Export failed:",a),M.error("导出失败")}},[]),xe=s.useRef(null),Xe=s.useCallback(()=>{var a;(a=xe.current)==null||a.click()},[]),$s=s.useCallback(async a=>{var t;const o=(t=a.target.files)==null?void 0:t[0];if(o){try{if(o.name.toLowerCase().endsWith(".zip")){const x=await D.importFromZip(o);x.noteCount===0&&x.dirCount===0?M.warning("导入完成:没有新增内容(可能已存在重复内容)"):M.success(`导入完成:${x.dirCount} 个新目录、${x.noteCount} 篇笔记`)}else{const x=await o.text(),u=JSON.parse(x);if(u.version!==1&&u.version!==2){M.error("不支持的导入格式");return}const h=await D.importAllData(u);M.success(`导入完成:${h.dirCount} 个目录、${h.noteCount} 篇笔记、${h.tagCount} 个标签`)}await W()}catch(x){console.error(x),M.error("导入失败,请确认文件格式正确")}xe.current&&(xe.current.value="")}},[W]),Ye=s.useCallback(()=>{const a=window.prompt("请输入目录名称","新建目录");a&&Ue(a)},[Ue]),Ls=s.useCallback(a=>{switch(a.value){case"create-dir":Ye();break;case"manage-tags":Y(!0);break;case"import-md":Oe();break;case"import-zip":Xe();break;case"export-zip":He();break}},[Ye,Oe,Xe,He]),Is=s.useMemo(()=>[{content:"新建目录",value:"create-dir",prefixIcon:e.jsxDEV(vn,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:938,columnNumber:57},void 0)},{content:"管理标签",value:"manage-tags",prefixIcon:e.jsxDEV($n,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:939,columnNumber:58},void 0)},{content:"导入 Markdown",value:"import-md",prefixIcon:e.jsxDEV(as,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:940,columnNumber:63},void 0)},{content:"导入 ZIP",value:"import-zip",prefixIcon:e.jsxDEV(as,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:941,columnNumber:59},void 0)},{content:"导出 ZIP",value:"export-zip",prefixIcon:e.jsxDEV(ze,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:942,columnNumber:59},void 0)}],[]);return e.jsxDEV("div",{className:"kb-drawer",children:[e.jsxDEV("input",{ref:pe,type:"file",accept:".md,.markdown",multiple:!0,style:{display:"none"},onChange:As},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:948,columnNumber:7},void 0),e.jsxDEV("input",{ref:xe,type:"file",accept:".json,.zip",style:{display:"none"},onChange:$s},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:956,columnNumber:7},void 0),e.jsxDEV("div",{className:"kb-drawer__body",ref:De,children:[e.jsxDEV("div",{className:"kb-drawer__sidebar",style:{width:ve},children:[e.jsxDEV("div",{className:"kb-drawer__toolbar",children:[e.jsxDEV("div",{className:"kb-drawer__search",style:{display:"flex",gap:"8px",alignItems:"center",marginBottom:"8px"},children:[e.jsxDEV(ye,{size:"small",prefixIcon:e.jsxDEV(ms,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:973,columnNumber:29},void 0),placeholder:"搜索笔记...",value:L,onChange:a=>z(a),clearable:!0,style:{flex:1}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:971,columnNumber:15},void 0),e.jsxDEV(gs,{trigger:"click",options:Is,onClick:Ls,minColumnWidth:120,maxColumnWidth:200,popupProps:{overlayStyle:{width:200}},children:e.jsxDEV(O,{content:"更多操作",showArrow:!1,children:e.jsxDEV("button",{style:{background:"transparent",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",padding:"4px",color:"var(--td-text-color-secondary)",borderRadius:"4px"},onMouseEnter:a=>a.currentTarget.style.backgroundColor="var(--td-bg-color-container-hover)",onMouseLeave:a=>a.currentTarget.style.backgroundColor="transparent",children:e.jsxDEV(bn,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1009,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:989,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:988,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:980,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:970,columnNumber:13},void 0),e.jsxDEV("div",{className:"kb-drawer__filters",style:{display:"flex",gap:"8px",alignItems:"center"},children:[e.jsxDEV(Xn,{allTags:N,selectedTagIds:U,onSelectedChange:$},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1016,columnNumber:15},void 0),e.jsxDEV("div",{style:{flex:1}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1021,columnNumber:15},void 0),e.jsxDEV(mi,{value:I,onChange:zs},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1022,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1015,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:969,columnNumber:11},void 0),e.jsxDEV(Pn,{directories:i,notesByDir:Ds,noteTagsMap:v,noteCounts:Es,selectedDirId:V,selectedNoteId:m,expandedDirIds:E,onSelectDir:a=>{p(a),C(null),j(null)},onToggleExpand:Bs,onCreateDir:Ue,onRenameDir:Us,onDeleteDir:_s,onDuplicateDir:Ks,onSelectNote:se,onCreateNote:_e,onDeleteNote:Cs,onDuplicateNote:Ts,isCreatingDir:w,onCancelCreateDir:()=>P(!1),onInsertNoteToCanvas:qs},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1027,columnNumber:11},void 0),Ie&&e.jsxDEV("div",{className:"kb-drawer__storage-bar",children:[e.jsxDEV(Nn,{size:12},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1057,columnNumber:15},void 0),e.jsxDEV("span",{className:"kb-drawer__storage-text",children:["已用 ",fi(Ie.used)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1058,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1056,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:967,columnNumber:9},void 0),e.jsxDEV("div",{className:"kb-resizer",onMouseDown:hs},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1065,columnNumber:9},void 0),e.jsxDEV("div",{className:"kb-drawer__editor",children:e.jsxDEV(Hn,{note:l,allTags:N,noteTags:R,readOnly:!!(m&&(m.startsWith(de)||m.startsWith(re))),isSkillDirectory:!!(l&&(((Ze=i.find(a=>a.id===l.directoryId))==null?void 0:Ze.name)==="Skill"||m&&m.startsWith(de)||m&&m.startsWith(re))),onUpdateNote:Ke,onSetNoteTags:Ss,onCreateTag:We},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1069,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1068,columnNumber:9},void 0),l&&e.jsxDEV(e.Fragment,{children:q?e.jsxDEV(O,{content:"展开侧边栏",showArrow:!1,children:e.jsxDEV("button",{className:"kb-drawer__right-toggle",onClick:()=>G(!1),children:e.jsxDEV(Mn,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1096,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1092,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1091,columnNumber:15},void 0):e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"kb-resizer",onMouseDown:js},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1101,columnNumber:17},void 0),e.jsxDEV("div",{className:"kb-drawer__right-sidebar",style:{width:Ee},children:[e.jsxDEV("div",{className:"kb-drawer__right-header",children:[e.jsxDEV("div",{className:"kb-drawer__right-tabs",children:[e.jsxDEV(O,{content:"相似笔记",showArrow:!1,children:e.jsxDEV("button",{className:`kb-drawer__right-tab ${Q==="related"?"kb-drawer__right-tab--active":""}`,onClick:()=>J("related"),children:e.jsxDEV(ps,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1111,columnNumber:25},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1107,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1106,columnNumber:21},void 0),e.jsxDEV(O,{content:"知识提取",showArrow:!1,children:e.jsxDEV("button",{className:`kb-drawer__right-tab ${Q==="extraction"?"kb-drawer__right-tab--active":""}`,onClick:()=>J("extraction"),children:e.jsxDEV(Me,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1119,columnNumber:25},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1115,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1114,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1105,columnNumber:19},void 0),e.jsxDEV(O,{content:"收起侧边栏",showArrow:!1,children:e.jsxDEV("button",{className:"kb-drawer__right-collapse-btn",onClick:()=>G(!0),children:e.jsxDEV(Cn,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1128,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1124,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1123,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1104,columnNumber:19},void 0),e.jsxDEV("div",{className:"kb-drawer__right-content",children:Q==="related"?e.jsxDEV(Zn,{currentNoteId:l.id,allNotes:d,noteTagsMap:v,onSelectNote:se},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1136,columnNumber:21},void 0):e.jsxDEV(ui,{noteId:l.id,noteContent:l.content,noteTitle:l.title,onSaved:()=>W(),onInsertToNote:Vs},l.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1143,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1134,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1102,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1100,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1089,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:965,columnNumber:7},void 0),e.jsxDEV(Yn,{visible:_,onClose:()=>Y(!1),allTags:N,onCreateTag:We,onUpdateTag:Ms,onDeleteTag:Rs},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1159,columnNumber:7},void 0),ge]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:946,columnNumber:5},void 0)};function fi(n){if(n===0)return"0 B";const i=["B","KB","MB","GB"],r=Math.floor(Math.log(n)/Math.log(1024));return`${(n/Math.pow(1024,r)).toFixed(1)} ${i[r]}`}export{_i as default};
|
|
128
|
+
`:"",t=(l.content||"")+o+a;await Ke(l.id,{content:t}),M.success("已插入到笔记末尾")},[l,Ke]),qs=s.useCallback(async a=>{var t,x;const o=window.__drawnixBoard;if(!o){M.warning("请先打开画布");return}try{if(o.children.find(oe=>oe.noteId===a.id)&&!await ne({title:"重复插入提醒",description:"画布中已存在关联该笔记的卡片,是否再次插入?",confirmText:"继续插入",cancelText:"取消"}))return;const h=await D.getNoteById(a.id);if(!h){M.error("获取笔记内容失败");return}const{getViewportOrigination:T}=await Ve(async()=>{const{getViewportOrigination:oe}=await import("./index-D5YSioyv.js").then(Be=>Be.lc);return{getViewportOrigination:oe}},__vite__mapDeps([0]),import.meta.url),S=T(o),ie=((t=o.host)==null?void 0:t.clientWidth)||800,te=((x=o.host)==null?void 0:x.clientHeight)||600,me=Math.round(window.innerWidth*.5),Ge=180,Qe=((S==null?void 0:S[0])??0)+ie/2-me/2,Je=((S==null?void 0:S[1])??0)+te/2-Ge/2,{Transforms:Ps}=await Ve(async()=>{const{Transforms:oe}=await import("./index-D5YSioyv.js").then(Be=>Be.lc);return{Transforms:oe}},__vite__mapDeps([0]),import.meta.url),Fs={type:"card",id:`card-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,title:h.title||"无标题",body:h.content||"",noteId:h.id,fillColor:"#FA8C16",points:[[Qe,Je],[Qe+me,Je+Ge]]};Ps.insertNode(o,Fs,[o.children.length]),M.success("已插入到画布")}catch(u){console.error("[KB] Failed to insert note to canvas:",u),M.error(`插入失败: ${u.message}`)}},[]),Ts=s.useCallback(async a=>{try{await D.duplicateNote(a),await W(),M.success("笔记复制成功")}catch(o){M.error(`复制笔记失败: ${o.message}`)}},[W]),Cs=s.useCallback(async a=>{if(a.startsWith(de)){M.warning("系统内置 Skill,不可删除");return}if(a.startsWith(re)){M.warning("外部 Skill,不可在此删除(请在设置中管理外部 Skill 包)");return}const o=d.find(x=>x.id===a);if(!(!o||!await ne({title:"确认删除笔记",description:`确定要删除笔记 "${o.title||"无标题"}" 吗?此操作不可撤销。`,confirmText:"删除",cancelText:"取消",danger:!0})))try{await D.deleteNote(a),m===a&&(C(null),j(null),y([])),await W(),M.success("笔记已删除")}catch(x){M.error(`删除失败: ${x.message}`)}},[m,W,d]);s.useEffect(()=>{!Fe.current&&ae.length>0&&(se(ae[0].id),Fe.current=!0)},[ae,se]),s.useEffect(()=>{const a=o=>{const{noteId:t}=o.detail;t&&se(t)};return window.addEventListener("kb:open-note",a),()=>window.removeEventListener("kb:open-note",a)},[se]),s.useEffect(()=>{const a=async o=>{const{directoryName:t,autoCreateNote:x}=o.detail;if(!t)return;window.__kbPendingNavigation&&(window.__kbPendingNavigation=null);const h=(await D.getAllDirectories()).find(T=>T.name===t);h&&(p(h.id),c(T=>{const S=new Set(T);return S.add(h.id),S}),x&&await _e(h.id))};return window.addEventListener("kb:navigate",a),()=>window.removeEventListener("kb:navigate",a)},[_e]);const Ss=s.useCallback(async(a,o)=>{await D.setNoteTags(a,o);const t=await D.getTagsForNote(a);y(t),B(u=>({...u,[a]:t}));const x=await D.getAllTags();b(x)},[]),We=s.useCallback(async a=>{const o=await D.createTag(a),t=await D.getAllTags();return b(t),o},[]),Ms=s.useCallback(async(a,o)=>{await D.updateTag(a,{name:o});const t=await D.getAllTags();b(t)},[]),Rs=s.useCallback(async a=>{await D.deleteTag(a);const o=await D.getAllTags();if(b(o),l){const t=await D.getTagsForNote(l.id);y(t),B(x=>({...x,[l.id]:t}))}},[l]),zs=s.useCallback(a=>{f(a),D.saveSortPreference&&D.saveSortPreference(a)},[]);s.useEffect(()=>{if(!X)return;const a=o=>{ee.current&&!ee.current.contains(o.target)&&H(!1)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[X]);const pe=s.useRef(null),Oe=s.useCallback(()=>{var a;(a=pe.current)==null||a.click()},[]),As=s.useCallback(async a=>{const o=a.target.files;if(!(!o||!V)){for(const t of Array.from(o)){if(!t.name.endsWith(".md")&&!t.name.endsWith(".markdown"))continue;const x=await t.text();await D.importNoteFromMarkdown(x,V,t.name)}await W(),pe.current&&(pe.current.value="")}},[V,W]),He=s.useCallback(async()=>{try{const a=await D.exportAsZip(),o=URL.createObjectURL(a),t=document.createElement("a");t.href=o,t.download=`knowledge-base-${new Date().toISOString().slice(0,10)}.zip`,document.body.appendChild(t),t.click(),document.body.removeChild(t),URL.revokeObjectURL(o)}catch(a){console.error("Export failed:",a),M.error("导出失败")}},[]),xe=s.useRef(null),Xe=s.useCallback(()=>{var a;(a=xe.current)==null||a.click()},[]),$s=s.useCallback(async a=>{var t;const o=(t=a.target.files)==null?void 0:t[0];if(o){try{if(o.name.toLowerCase().endsWith(".zip")){const x=await D.importFromZip(o);x.noteCount===0&&x.dirCount===0?M.warning("导入完成:没有新增内容(可能已存在重复内容)"):M.success(`导入完成:${x.dirCount} 个新目录、${x.noteCount} 篇笔记`)}else{const x=await o.text(),u=JSON.parse(x);if(u.version!==1&&u.version!==2){M.error("不支持的导入格式");return}const h=await D.importAllData(u);M.success(`导入完成:${h.dirCount} 个目录、${h.noteCount} 篇笔记、${h.tagCount} 个标签`)}await W()}catch(x){console.error(x),M.error("导入失败,请确认文件格式正确")}xe.current&&(xe.current.value="")}},[W]),Ye=s.useCallback(()=>{const a=window.prompt("请输入目录名称","新建目录");a&&Ue(a)},[Ue]),Ls=s.useCallback(a=>{switch(a.value){case"create-dir":Ye();break;case"manage-tags":Y(!0);break;case"import-md":Oe();break;case"import-zip":Xe();break;case"export-zip":He();break}},[Ye,Oe,Xe,He]),Is=s.useMemo(()=>[{content:"新建目录",value:"create-dir",prefixIcon:e.jsxDEV(vn,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:938,columnNumber:57},void 0)},{content:"管理标签",value:"manage-tags",prefixIcon:e.jsxDEV($n,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:939,columnNumber:58},void 0)},{content:"导入 Markdown",value:"import-md",prefixIcon:e.jsxDEV(as,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:940,columnNumber:63},void 0)},{content:"导入 ZIP",value:"import-zip",prefixIcon:e.jsxDEV(as,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:941,columnNumber:59},void 0)},{content:"导出 ZIP",value:"export-zip",prefixIcon:e.jsxDEV(ze,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:942,columnNumber:59},void 0)}],[]);return e.jsxDEV("div",{className:"kb-drawer",children:[e.jsxDEV("input",{ref:pe,type:"file",accept:".md,.markdown",multiple:!0,style:{display:"none"},onChange:As},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:948,columnNumber:7},void 0),e.jsxDEV("input",{ref:xe,type:"file",accept:".json,.zip",style:{display:"none"},onChange:$s},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:956,columnNumber:7},void 0),e.jsxDEV("div",{className:"kb-drawer__body",ref:De,children:[e.jsxDEV("div",{className:"kb-drawer__sidebar",style:{width:ve},children:[e.jsxDEV("div",{className:"kb-drawer__toolbar",children:[e.jsxDEV("div",{className:"kb-drawer__search",style:{display:"flex",gap:"8px",alignItems:"center",marginBottom:"8px"},children:[e.jsxDEV(ye,{size:"small",prefixIcon:e.jsxDEV(ms,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:973,columnNumber:29},void 0),placeholder:"搜索笔记...",value:L,onChange:a=>z(a),clearable:!0,style:{flex:1}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:971,columnNumber:15},void 0),e.jsxDEV(gs,{trigger:"click",options:Is,onClick:Ls,minColumnWidth:120,maxColumnWidth:200,popupProps:{overlayStyle:{width:200}},children:e.jsxDEV(O,{content:"更多操作",showArrow:!1,children:e.jsxDEV("button",{style:{background:"transparent",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",padding:"4px",color:"var(--td-text-color-secondary)",borderRadius:"4px"},onMouseEnter:a=>a.currentTarget.style.backgroundColor="var(--td-bg-color-container-hover)",onMouseLeave:a=>a.currentTarget.style.backgroundColor="transparent",children:e.jsxDEV(bn,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1009,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:989,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:988,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:980,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:970,columnNumber:13},void 0),e.jsxDEV("div",{className:"kb-drawer__filters",style:{display:"flex",gap:"8px",alignItems:"center"},children:[e.jsxDEV(Xn,{allTags:N,selectedTagIds:U,onSelectedChange:$},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1016,columnNumber:15},void 0),e.jsxDEV("div",{style:{flex:1}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1021,columnNumber:15},void 0),e.jsxDEV(mi,{value:I,onChange:zs},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1022,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1015,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:969,columnNumber:11},void 0),e.jsxDEV(Pn,{directories:i,notesByDir:Ds,noteTagsMap:v,noteCounts:Es,selectedDirId:V,selectedNoteId:m,expandedDirIds:E,onSelectDir:a=>{p(a),C(null),j(null)},onToggleExpand:Bs,onCreateDir:Ue,onRenameDir:Us,onDeleteDir:_s,onDuplicateDir:Ks,onSelectNote:se,onCreateNote:_e,onDeleteNote:Cs,onDuplicateNote:Ts,isCreatingDir:w,onCancelCreateDir:()=>P(!1),onInsertNoteToCanvas:qs},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1027,columnNumber:11},void 0),Ie&&e.jsxDEV("div",{className:"kb-drawer__storage-bar",children:[e.jsxDEV(Nn,{size:12},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1057,columnNumber:15},void 0),e.jsxDEV("span",{className:"kb-drawer__storage-text",children:["已用 ",fi(Ie.used)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1058,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1056,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:967,columnNumber:9},void 0),e.jsxDEV("div",{className:"kb-resizer",onMouseDown:hs},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1065,columnNumber:9},void 0),e.jsxDEV("div",{className:"kb-drawer__editor",children:e.jsxDEV(Hn,{note:l,allTags:N,noteTags:R,readOnly:!!(m&&(m.startsWith(de)||m.startsWith(re))),isSkillDirectory:!!(l&&(((Ze=i.find(a=>a.id===l.directoryId))==null?void 0:Ze.name)==="Skill"||m&&m.startsWith(de)||m&&m.startsWith(re))),onUpdateNote:Ke,onSetNoteTags:Ss,onCreateTag:We},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1069,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1068,columnNumber:9},void 0),l&&e.jsxDEV(e.Fragment,{children:q?e.jsxDEV(O,{content:"展开侧边栏",showArrow:!1,children:e.jsxDEV("button",{className:"kb-drawer__right-toggle",onClick:()=>G(!1),children:e.jsxDEV(Mn,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1096,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1092,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1091,columnNumber:15},void 0):e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"kb-resizer",onMouseDown:js},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1101,columnNumber:17},void 0),e.jsxDEV("div",{className:"kb-drawer__right-sidebar",style:{width:Ee},children:[e.jsxDEV("div",{className:"kb-drawer__right-header",children:[e.jsxDEV("div",{className:"kb-drawer__right-tabs",children:[e.jsxDEV(O,{content:"相似笔记",showArrow:!1,children:e.jsxDEV("button",{className:`kb-drawer__right-tab ${Q==="related"?"kb-drawer__right-tab--active":""}`,onClick:()=>J("related"),children:e.jsxDEV(ps,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1111,columnNumber:25},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1107,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1106,columnNumber:21},void 0),e.jsxDEV(O,{content:"知识提取",showArrow:!1,children:e.jsxDEV("button",{className:`kb-drawer__right-tab ${Q==="extraction"?"kb-drawer__right-tab--active":""}`,onClick:()=>J("extraction"),children:e.jsxDEV(Me,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1119,columnNumber:25},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1115,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1114,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1105,columnNumber:19},void 0),e.jsxDEV(O,{content:"收起侧边栏",showArrow:!1,children:e.jsxDEV("button",{className:"kb-drawer__right-collapse-btn",onClick:()=>G(!0),children:e.jsxDEV(Cn,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1128,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1124,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1123,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1104,columnNumber:19},void 0),e.jsxDEV("div",{className:"kb-drawer__right-content",children:Q==="related"?e.jsxDEV(Zn,{currentNoteId:l.id,allNotes:d,noteTagsMap:v,onSelectNote:se},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1136,columnNumber:21},void 0):e.jsxDEV(ui,{noteId:l.id,noteContent:l.content,noteTitle:l.title,onSaved:()=>W(),onInsertToNote:Vs},l.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1143,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1134,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1102,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1100,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1089,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:965,columnNumber:7},void 0),e.jsxDEV(Yn,{visible:_,onClose:()=>Y(!1),allTags:N,onCreateTag:We,onUpdateTag:Ms,onDeleteTag:Rs},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1159,columnNumber:7},void 0),ge]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:946,columnNumber:5},void 0)};function fi(n){if(n===0)return"0 B";const i=["B","KB","MB","GB"],r=Math.floor(Math.log(n)/Math.log(1024));return`${(n/Math.pow(1024,r)).toFixed(1)} ${i[r]}`}export{_i as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{cn as rs,g3 as hs,g4 as bs,g5 as xs,g6 as ys,x as a,K as js,g7 as ws,ee as Ee,ew as Ta,g8 as ks,g9 as Es,ga as Vs,b as r,cR as Le,ab as le,dM as Ds,c$ as he,ac as Ie,e as Ya,d3 as Fe,cZ as He,em as ya,en as ja,aq as Ps,eB as wa,eD as Ja,dd as Za,bS as Xe,eC as oa,dl as ts,eE as ka,dw as Ss,H as Oe,eF as _s,ao as Xa,aF as Ea,d6 as Qa,dn as Us,dp as qs}from"./index-
|
|
1
|
+
import{cn as rs,g3 as hs,g4 as bs,g5 as xs,g6 as ys,x as a,K as js,g7 as ws,ee as Ee,ew as Ta,g8 as ks,g9 as Es,ga as Vs,b as r,cR as Le,ab as le,dM as Ds,c$ as he,ac as Ie,e as Ya,d3 as Fe,cZ as He,em as ya,en as ja,aq as Ps,eB as wa,eD as Ja,dd as Za,bS as Xe,eC as oa,dl as ts,eE as ka,dw as Ss,H as Oe,eF as _s,ao as Xa,aF as Ea,d6 as Qa,dn as Us,dp as qs}from"./index-D5YSioyv.js";import{e as Is,b as Cs}from"./MusicAnalyzer-dSwp-5u_.js";import{musicAnalyzerTool as Ms}from"./index-mLaJnBAA.js";import{r as ue,w as Be,S as $a,C as Va,V as As,a as Ts,b as $s,d as Gs,f as zs,u as Os,g as ca,h as Da,i as Pa,j as Sa,k as Rs,l as Ls}from"./workflow-generation-utils-BOXsMshH.js";import{r as ns,u as is,a as os,e as Fs,b as Hs,c as la,f as Bs,s as Ks}from"./VideoAnalyzer-BFgHFDkt.js";import"./character-storage-service-C15hxlXu.js";/* empty css */import{R as Ws}from"./ResizableDivider-C2cq_TjJ.js";/* empty css *//**
|
|
2
2
|
* @license lucide-react v0.562.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|