aitu-app 0.5.21 → 0.5.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/assets/{ChatMessagesArea-CAnmzKeA.js → ChatMessagesArea-DZUaOu9O.js} +3 -3
- package/assets/{Serializer-DPCLjt6U.js → Serializer-C_KNMVa5.js} +1 -1
- package/assets/{ToolboxDrawer-D-ZDs49h.js → ToolboxDrawer-DMs6NEQ9.js} +18 -18
- package/assets/_baseUniq-CkDEmepm.js +1 -0
- package/assets/{advancedFormat-Chr195ZY.js → advancedFormat-DDVKqCcb.js} +1 -1
- package/assets/{ai-analyze-D3V-tpIV.js → ai-analyze-CdMnSdcj.js} +1 -1
- package/assets/{arc-lNLKXIKC.js → arc-DxooX0JA.js} +1 -1
- package/assets/{architectureDiagram-VXUJARFQ-CCzBT9XK.js → architectureDiagram-VXUJARFQ-By9X2_fg.js} +1 -1
- package/assets/{batch-image-generation-CgR-a8Ii.js → batch-image-generation-BNCavPE3.js} +1 -1
- package/assets/{blockDiagram-38ab4fdb-CbcE_DRD.js → blockDiagram-38ab4fdb-CaSq1se3.js} +1 -1
- package/assets/{blockDiagram-VD42YOAC-CgcfCyW1.js → blockDiagram-VD42YOAC-BikDTbXB.js} +1 -1
- package/assets/{c4Diagram-3d4e48cf-DqzYo_xg.js → c4Diagram-3d4e48cf-B4tV12g-.js} +1 -1
- package/assets/{c4Diagram-YG6GDRKO-BTZAWhX1.js → c4Diagram-YG6GDRKO-JMT--oeK.js} +1 -1
- package/assets/channel-C_nOy9ji.js +1 -0
- package/assets/{chunk-4BX2VUAB-DH-I_3Sl.js → chunk-4BX2VUAB-BPeyyZbJ.js} +1 -1
- package/assets/{chunk-55IACEB6-BJKBSn0v.js → chunk-55IACEB6-Ccwuu0V6.js} +1 -1
- package/assets/{chunk-B4BG7PRW-BIhB4ChZ.js → chunk-B4BG7PRW-DLAZ694p.js} +1 -1
- package/assets/{chunk-DI55MBZ5-NlFLhYIc.js → chunk-DI55MBZ5-B4N06CXR.js} +1 -1
- package/assets/{chunk-FMBD7UC4-QVfOPBEJ.js → chunk-FMBD7UC4-DhF98R8b.js} +1 -1
- package/assets/{chunk-QN33PNHL-C_DotWZ6.js → chunk-QN33PNHL-DRmv0Kl8.js} +1 -1
- package/assets/{chunk-QZHKN3VN-Ei6ogyMg.js → chunk-QZHKN3VN-NK4FKL-2.js} +1 -1
- package/assets/{chunk-TZMSLE5B-CKPTgIMs.js → chunk-TZMSLE5B-C3pBP9gO.js} +1 -1
- package/assets/classDiagram-2ON5EDUG-LTjKb48E.js +1 -0
- package/assets/{classDiagram-70f12bd4-DeAD0Lw4.js → classDiagram-70f12bd4-CzjJ3zBX.js} +1 -1
- package/assets/classDiagram-v2-WZHVMYZB-LTjKb48E.js +1 -0
- package/assets/{classDiagram-v2-f2320105-DR43MMrr.js → classDiagram-v2-f2320105-4itfn1co.js} +1 -1
- package/assets/clone-aw5zGyML.js +1 -0
- package/assets/{cose-bilkent-S5V4N54A-CE31mcuy.js → cose-bilkent-S5V4N54A-D40X2DSY.js} +1 -1
- package/assets/{createText-2e5e7dd3-DuyGuD-n.js → createText-2e5e7dd3-DhE7DCyc.js} +1 -1
- package/assets/{cytoscape-cose-bilkent-DTqUuT3l.js → cytoscape-cose-bilkent-BsYgDGHx.js} +1 -1
- package/assets/{dagre-6UL2VRFP-CuJmVGl3.js → dagre-6UL2VRFP-uiP7xLTe.js} +1 -1
- package/assets/{diagram-PSM6KHXK-D5Y5dlL9.js → diagram-PSM6KHXK-BUdQQ4mi.js} +1 -1
- package/assets/{diagram-QEK2KX5R-DOWAGxHq.js → diagram-QEK2KX5R-Da7c7682.js} +1 -1
- package/assets/{diagram-S2PKOQOG-ykMhl6fc.js → diagram-S2PKOQOG-B6hGrurD.js} +1 -1
- package/assets/{edges-e0da2a9e-BpsZLv9t.js → edges-e0da2a9e-BzY0YHdX.js} +1 -1
- package/assets/{erDiagram-9861fffd-rZLPDBgy.js → erDiagram-9861fffd-C4picwCJ.js} +1 -1
- package/assets/{erDiagram-Q2GNP2WA-zRo1erex.js → erDiagram-Q2GNP2WA-C0s9UR06.js} +1 -1
- package/assets/{flowDb-956e92f1-f4MK2XS7.js → flowDb-956e92f1-B5hwoPgC.js} +1 -1
- package/assets/{flowDiagram-66a62f08-_6Eo5sZi.js → flowDiagram-66a62f08-CrR2uteW.js} +1 -1
- package/assets/{flowDiagram-NV44I4VS-CFCClCRc.js → flowDiagram-NV44I4VS-DjrSimbb.js} +1 -1
- package/assets/flowDiagram-v2-96b9c2cf-DgGX-RZm.js +1 -0
- package/assets/{flowchart-elk-definition-4a651766-t4QJuK_b.js → flowchart-elk-definition-4a651766-BDOktHiR.js} +1 -1
- package/assets/{ganttDiagram-JELNMOA3-DIX2ad-2.js → ganttDiagram-JELNMOA3-4pTVMpLW.js} +1 -1
- package/assets/{ganttDiagram-c361ad54-dX5QjWrh.js → ganttDiagram-c361ad54-DRHnwNf3.js} +1 -1
- package/assets/{gitGraphDiagram-72cf32ee-BBZSqS6J.js → gitGraphDiagram-72cf32ee-C5lLz1AW.js} +1 -1
- package/assets/{gitGraphDiagram-NY62KEGX-C-FRyLSQ.js → gitGraphDiagram-NY62KEGX-RhL9MP5w.js} +1 -1
- package/assets/{graph-BpCqwwyJ.js → graph-CfNSLaMq.js} +1 -1
- package/assets/{graph-dwf5l9kJ.js → graph-bUdqaJE_.js} +1 -1
- package/assets/{grid-image-DRAUp_wj.js → grid-image-acNs-BIa.js} +1 -1
- package/assets/{has-BBSmRLAB.js → has-DqJVnicm.js} +1 -1
- package/assets/hasIn-BgAGChZR.js +1 -0
- package/assets/{index-3862675e-BmuXVGGA.js → index-3862675e-CGEqBqVJ.js} +1 -1
- package/assets/{index-DNIlXgAo.js → index-BJLqfOr0.js} +15 -15
- package/assets/{index-DEjUAZUe.js → index-BVXa7MXV.js} +2 -2
- package/assets/index-CB62HEjY.js +1 -0
- package/assets/index-CJy2IilV.js +13 -0
- package/assets/index-CNCXXhfY.css +1 -0
- package/assets/{index-DvbaH1wH.js → index-Ck1hF1QZ.js} +9 -9
- package/assets/index-D5zpPSZd.css +1 -0
- package/assets/index-DNBUgJ6m.js +6 -0
- package/assets/{index-eOV7y-oZ.js → index-DYqiMz6F.js} +1 -1
- package/assets/{index-_FyCDKGq.js → index-DwM7FTGg.js} +4 -4
- package/assets/{index-CISxTBJ3.js → index-Mr4gAcdX.js} +1 -1
- package/assets/index-UMnk2FgQ.css +1 -0
- package/assets/index-hu9MEe3D.js +2087 -0
- package/assets/{infoDiagram-WHAUD3N6-Cw6LtQsv.js → infoDiagram-WHAUD3N6-PQkd8OJe.js} +1 -1
- package/assets/{infoDiagram-f8f76790-suYKggbB.js → infoDiagram-f8f76790-DMu2j8xn.js} +1 -1
- package/assets/{inspiration-board-8CO8xK39.js → inspiration-board-DjFziX4I.js} +1 -1
- package/assets/{isEmpty-BZ44SF3F.js → isEmpty-lhEuKFnA.js} +1 -1
- package/assets/{journeyDiagram-49397b02-DLzRdow3.js → journeyDiagram-49397b02-c1Ox_S5e.js} +1 -1
- package/assets/{journeyDiagram-XKPGCS4Q-CcD6LNVi.js → journeyDiagram-XKPGCS4Q-C9TTNqlU.js} +1 -1
- package/assets/{kanban-definition-3W4ZIXB7-DWA3YqY9.js → kanban-definition-3W4ZIXB7-D48lDwmv.js} +1 -1
- package/assets/{layout-D8KZ21ze.js → layout-LQknPSHO.js} +1 -1
- package/assets/{layout-jxFX0Ar3.js → layout-k4A-djr0.js} +1 -1
- package/assets/{line-B3fXWiyE.js → line-DW5onvZ1.js} +1 -1
- package/assets/{linear-DsVcoO9v.js → linear-BD1p-SFP.js} +1 -1
- package/assets/{mermaid.core-ruaJ9d8x.js → mermaid.core-C9xtTvXS.js} +4 -4
- package/assets/{min-B6fh4WRE.js → min-DVwuybYx.js} +1 -1
- package/assets/{mindmap-definition-VGOIOE7T-BzeNa7DW.js → mindmap-definition-VGOIOE7T-CKq7aT8O.js} +1 -1
- package/assets/{mindmap-definition-fc14e90a-C3sElkm0.js → mindmap-definition-fc14e90a-ByyhB4pn.js} +1 -1
- package/assets/{photo-wall-splitter-C1GbxYBl.js → photo-wall-splitter-BIKUaBqT.js} +1 -1
- package/assets/{pick-DUB8w7iE.js → pick-DgQOmoYu.js} +1 -1
- package/assets/{pie-DAYMJpRO.js → pie-B6R_p3p3.js} +1 -1
- package/assets/{pieDiagram-8a3498a8-CZI3pF7g.js → pieDiagram-8a3498a8-DHhO5yag.js} +1 -1
- package/assets/{pieDiagram-ADFJNKIX-BqonG77Q.js → pieDiagram-ADFJNKIX-DN2VC8bQ.js} +1 -1
- package/assets/{quadrantDiagram-120e2f19-Q2bVMK-T.js → quadrantDiagram-120e2f19-DPjaVe-4.js} +1 -1
- package/assets/{quadrantDiagram-AYHSOK5B-yJZRIs-Q.js → quadrantDiagram-AYHSOK5B-CiJOSVPI.js} +1 -1
- package/assets/{requirementDiagram-UZGBJVZJ-3kaAkLjO.js → requirementDiagram-UZGBJVZJ-D2GEKncs.js} +1 -1
- package/assets/{requirementDiagram-deff3bca-DHOhXBYo.js → requirementDiagram-deff3bca-Bw6uhN2Z.js} +1 -1
- package/assets/{sankeyDiagram-04a897e0-3UqYNZg9.js → sankeyDiagram-04a897e0-glX-T11Z.js} +1 -1
- package/assets/{sankeyDiagram-TZEHDZUN-Ce844Tbc.js → sankeyDiagram-TZEHDZUN-B0sxBMgX.js} +1 -1
- package/assets/{sequenceDiagram-704730f1-CBXqjnXl.js → sequenceDiagram-704730f1-YOQcYS6k.js} +1 -1
- package/assets/{sequenceDiagram-WL72ISMW-DBN2cRGt.js → sequenceDiagram-WL72ISMW-CH7OsdKd.js} +1 -1
- package/assets/{settings-dialog-aU8BHcuS.js → settings-dialog-BhXTHyTf.js} +1 -1
- package/assets/{stateDiagram-587899a1-BGKPA37n.js → stateDiagram-587899a1-DB0HJUlE.js} +1 -1
- package/assets/{stateDiagram-FKZM4ZOC-Czg5Opf0.js → stateDiagram-FKZM4ZOC-D7dinatq.js} +1 -1
- package/assets/stateDiagram-v2-4FDKWEC3-34OgkUmW.js +1 -0
- package/assets/{stateDiagram-v2-d93cdb3a-DWU3UljE.js → stateDiagram-v2-d93cdb3a-CVqrr3U9.js} +1 -1
- package/assets/{styles-6aaf32cf-BVLDN8CD.js → styles-6aaf32cf-CJlj1Ty8.js} +1 -1
- package/assets/{styles-9a916d00-vSy8MhZp.js → styles-9a916d00-l8x77ac6.js} +1 -1
- package/assets/{styles-c10674c1-dzTvI8BU.js → styles-c10674c1-DixhXbk5.js} +1 -1
- package/assets/{svgDrawCommon-08f97a94-dptVwf62.js → svgDrawCommon-08f97a94-9oE5_zSZ.js} +1 -1
- package/assets/{timeline-definition-85554ec2-jKiT0ZaE.js → timeline-definition-85554ec2-BARq6AF9.js} +1 -1
- package/assets/{timeline-definition-IT6M3QCI-B2NoE4jH.js → timeline-definition-IT6M3QCI-B_wm5Yc_.js} +1 -1
- package/assets/{treemap-KMMF4GRG-1nrNbz-r.js → treemap-KMMF4GRG-CEXoIc79.js} +1 -1
- package/assets/ttd-dialog-BgDkODyr.js +47 -0
- package/assets/{ttd-dialog-DCapefb6.css → ttd-dialog-DhSikbX8.css} +1 -1
- package/assets/union-C2tc6S2B.js +1 -0
- package/assets/{upload-Crej215t.js → upload-DQt3EdOm.js} +1 -1
- package/assets/{video-recovery-service-Zb_336FQ.js → video-recovery-service-B0iISZ_W.js} +1 -1
- package/assets/{xychartDiagram-PRI3JC2R-UPkX0dfi.js → xychartDiagram-PRI3JC2R-gNLbCmE-.js} +1 -1
- package/assets/{xychartDiagram-e933f94c-BXYMaBZh.js → xychartDiagram-e933f94c-C1RYlf2W.js} +1 -1
- package/assets/zipObject-B1zPFQtb.js +1 -0
- package/package.json +1 -1
- package/sw-debug/app.js +7 -9
- package/sw-debug/console-entry.js +68 -26
- package/sw-debug/postmessage-entry.js +4 -3
- package/sw-debug/styles.css +58 -102
- package/sw-debug/utils.js +3 -6
- package/sw.js +7 -7
- package/version.json +2 -2
- package/assets/_baseUniq-CHS3E5If.js +0 -1
- package/assets/channel-Bew-Iahk.js +0 -1
- package/assets/classDiagram-2ON5EDUG-DIttp4Yk.js +0 -1
- package/assets/classDiagram-v2-WZHVMYZB-DIttp4Yk.js +0 -1
- package/assets/clone-Y0952eQY.js +0 -1
- package/assets/flowDiagram-v2-96b9c2cf-Dn2WmcvX.js +0 -1
- package/assets/hasIn-CGUnHN5L.js +0 -1
- package/assets/index-B2dvADz8.css +0 -1
- package/assets/index-DCs3C-gs.js +0 -1
- package/assets/index-Ds1UcDjn.js +0 -2064
- package/assets/stateDiagram-v2-4FDKWEC3-4Ev4KuVZ.js +0 -1
- package/assets/ttd-dialog-WN-s4x87.js +0 -47
- package/assets/union-B2D_ldts.js +0 -1
- package/assets/zipObject-bwVIVuzi.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{aT as Se,b0 as gt,aR as ge,aV as ee,aW as Z,r as l,b1 as ve,aU as L,b2 as wt,b3 as ue,b4 as yt,aS as jt,b5 as Ot,b6 as xt,b7 as _t,b8 as Ct,I as se,_ as le,a8 as Ae,aa as ae,ab as Dt,ac as Pt,b9 as Et,ba as be,ad as $e,ae as me,bb as It,W as J,J as o,bc as St,aF as Q,a3 as xe,bd as Le,be as Nt,bf as Pe,bg as kt,bh as nt,bi as At,bj as Fe,bk as Me,bl as $t}from"./index-hu9MEe3D.js";import{U as Lt}from"./upload-DQt3EdOm.js";/**
|
|
2
2
|
* tdesign v1.16.3
|
|
3
3
|
* (c) 2026 tdesign
|
|
4
4
|
* @license MIT
|
|
@@ -6,7 +6,7 @@ import{aF as Se,aG as bt,aH as be,aI as ee,aJ as Z,r as l,aK as ve,aL as L,aM as
|
|
|
6
6
|
* tdesign v1.16.3
|
|
7
7
|
* (c) 2026 tdesign
|
|
8
8
|
* @license MIT
|
|
9
|
-
*/var Mt=["layout","dashed","align","className","style","children","content","size"];function He(n,r){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);r&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,t)}return e}function _e(n){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?He(Object(e),!0).forEach(function(t){Z(n,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):He(Object(e)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))})}return n}var at=function(r){var e=Se(r,Ft),t=e.layout,a=e.dashed,u=e.align,p=e.className,S=e.style,
|
|
9
|
+
*/var Mt=["layout","dashed","align","className","style","children","content","size"];function He(n,r){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);r&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,t)}return e}function _e(n){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?He(Object(e),!0).forEach(function(t){Z(n,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):He(Object(e)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))})}return n}var at=function(r){var e=Se(r,Ft),t=e.layout,a=e.dashed,u=e.align,p=e.className,S=e.style,b=e.children,k=e.content,A=e.size,h=gt(e,Mt),m=ge(),y=m.classPrefix,N=k||b,g=t!=="vertical",d=g&&!!N,f=ee("".concat(y,"-divider"),p,Z(Z(Z(Z({},"".concat(y,"-divider--").concat(t),t),"".concat(y,"-divider--dashed"),!!a),"".concat(y,"-divider--with-text"),d),"".concat(y,"-divider--with-text-").concat(u),d)),x=l.useMemo(function(){if(A){var j=g?"".concat(ve(A)," 0"):"0 ".concat(ve(A));return _e({margin:j},S)}return S},[g,A,S]);return L.createElement("div",_e(_e({},h),{},{className:f,style:x}),d?L.createElement("span",{className:"".concat(y,"-divider__inner-text")},N):null)};at.displayName="Divider";/**
|
|
10
10
|
* tdesign v1.16.3
|
|
11
11
|
* (c) 2026 tdesign
|
|
12
12
|
* @license MIT
|
|
@@ -18,25 +18,25 @@ import{aF as Se,aG as bt,aH as be,aI as ee,aJ as Z,r as l,aK as ve,aL as L,aM as
|
|
|
18
18
|
* tdesign v1.16.3
|
|
19
19
|
* (c) 2026 tdesign
|
|
20
20
|
* @license MIT
|
|
21
|
-
*/function Re(n,r){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);r&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,t)}return e}function Rt(n){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Re(Object(e),!0).forEach(function(t){Z(n,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):Re(Object(e)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))})}return n}var oe=l.forwardRef(function(n,r){var e=Se(n,Vt),t=e.children,a=e.className,u=e.active,p=e.disabled,S=e.value,
|
|
21
|
+
*/function Re(n,r){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);r&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,t)}return e}function Rt(n){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Re(Object(e),!0).forEach(function(t){Z(n,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):Re(Object(e)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))})}return n}var oe=l.forwardRef(function(n,r){var e=Se(n,Vt),t=e.children,a=e.className,u=e.active,p=e.disabled,S=e.value,b=e.theme,k=e.prefixIcon,A=e.maxColumnWidth,h=e.minColumnWidth,m=e.onClick,y=e.style,N=e.isSubmenu,g=ge(),d=g.classPrefix,f=wt(),x=ue(f,2),j=x[0],F=x[1];yt(N||p?null:(r==null?void 0:r.current)||j);var _=function(i){p||m==null||m(S,{e:i})};return L.createElement(L.Fragment,null,L.createElement("li",{className:ee(a,"".concat(d,"-dropdown__item--theme-").concat(b),Z(Z({},"".concat(d,"-dropdown__item--active"),u),"".concat(d,"-dropdown__item--disabled"),p)),onClick:_,style:Rt({maxWidth:ve(A),minWidth:ve(h)},y),ref:r||F},k?L.createElement("div",{className:"".concat(d,"-dropdown__item-icon")},k):null,t))});oe.displayName="DropdownItem";/**
|
|
22
22
|
* tdesign v1.16.3
|
|
23
23
|
* (c) 2026 tdesign
|
|
24
24
|
* @license MIT
|
|
25
|
-
*/function Te(n,r){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);r&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,t)}return e}function Ce(n){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Te(Object(e),!0).forEach(function(t){Z(n,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):Te(Object(e)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))})}return n}var ne=function(r){var e=r.options,t=e===void 0?[]:e,a=r.maxHeight,u=a===void 0?300:a,p=r.minColumnWidth,S=p===void 0?10:p,
|
|
25
|
+
*/function Te(n,r){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);r&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,t)}return e}function Ce(n){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Te(Object(e),!0).forEach(function(t){Z(n,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):Te(Object(e)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))})}return n}var ne=function(r){var e=r.options,t=e===void 0?[]:e,a=r.maxHeight,u=a===void 0?300:a,p=r.minColumnWidth,S=p===void 0?10:p,b=r.maxColumnWidth,k=b===void 0?160:b,A=r.direction,h=r.panelTopContent,m=r.panelBottomContent,y=ge(),N=y.classPrefix,g="".concat(N,"-dropdown"),d="".concat(g,"__menu"),f=l.useState(null),x=ue(f,2),j=x[0],F=x[1],_=jt({ChevronRightIcon:Ot}),M=_.ChevronRightIcon,i=l.useRef(null),W=l.useState(!1),T=ue(W,2),z=T[0],V=T[1],G=l.useState({}),K=ue(G,2),U=K[0],B=K[1];l.useEffect(function(){var w=i.current;if(w){var v,s=((v=w.childNodes)===null||v===void 0?void 0:v.length)*30;requestAnimationFrame(function(){if(h){var D,P,E=parseInt((D=getComputedStyle((P=w.childNodes)===null||P===void 0?void 0:P[0]))===null||D===void 0?void 0:D.height,10)||0;F(E)}}),s>=u&&V(!0)}},[u,h]);var q=function(v){var s,D,P=v.data,E=v.context;P==null||(s=P.onClick)===null||s===void 0||s.call(P,P,E),(D=r.onClick)===null||D===void 0||D.call(r,P,E)},Y=function(v){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,D=v.target.scrollTop;B(Ce(Ce({},U),{},Z({},s,D)))},te=xt(Y,100),X=function(v,s){var D,P=[],E;return(D=v.forEach)===null||D===void 0||D.call(v,function(R,I){var c=Ce({},R),re=Math.ceil(U[s]/30),ye=I>=re,ie=h&&s>0,je=ye?I-re:I;c.children?(c.children=X(c.children,s+1),E=L.createElement("div",{key:I},L.createElement(oe,{className:ee(c.className,"".concat(g,"__item"),"".concat(g,"__item--suffix")),style:c.style,value:c.value,theme:c.theme,active:c.active,prefixIcon:c.prefixIcon,disabled:c.disabled,minColumnWidth:S,maxColumnWidth:k,isSubmenu:!0},L.createElement("div",{className:"".concat(g,"__item-content")},L.createElement("span",{className:"".concat(g,"__item-text")},c.content),L.createElement(M,{className:"".concat(g,"__item-direction"),size:"16"})),L.createElement("div",{className:ee("".concat(g,"__submenu-wrapper"),Z({},"".concat(g,"__submenu-wrapper--").concat(r.direction),r.direction)),style:{position:"absolute",top:"".concat(je*30+(ie?0:j),"px")}},L.createElement("div",{className:ee("".concat(g,"__submenu"),Z({},"".concat(g,"__submenu--disabled"),c.disabled)),style:{position:"static",maxHeight:"".concat(r.maxHeight,"px")},onScroll:function(ce){return Y(ce,s+1)}},L.createElement("ul",null,c.children)))),c.divider?L.createElement(Ve,null):null)):E=L.createElement("div",{key:I},L.createElement(oe,{className:ee(c.className,"".concat(g,"__item")),style:c.style,value:c.value,theme:c.theme,active:c.active,prefixIcon:c.prefixIcon,disabled:c.disabled,minColumnWidth:S,maxColumnWidth:k,onClick:c.disabled||c.children?function(){return null}:function(Oe,ce){return q({data:c,context:ce})}},L.createElement("span",{className:"".concat(g,"__item-text")},c.content)),c.divider?L.createElement(Ve,null):null),P.push(E)}),P};return L.createElement("div",{className:ee(d,"".concat(d,"--").concat(A),Z({},"".concat(d,"--overflow"),z)),style:{maxHeight:"".concat(u,"px")},ref:i,onScroll:te},h?L.createElement("div",{className:"".concat(g,"__top-content")},h):null,X(t,0),m?L.createElement("div",{className:"".concat(g,"__bottom-content")},m):null)};ne.displayName="DropdownMenu";/**
|
|
26
26
|
* tdesign v1.16.3
|
|
27
27
|
* (c) 2026 tdesign
|
|
28
28
|
* @license MIT
|
|
29
|
-
*/function We(n,r){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);r&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,t)}return e}function he(n){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?We(Object(e),!0).forEach(function(t){Z(n,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):We(Object(e)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))})}return n}var Ee=function(r){if(!r)return[];if(r.type===ne){var e=r.props.children;if(Array.isArray(e))return Ee(e)}return L.Children.toArray(r).map(function(t){var a,u,p=(a=t.props)===null||a===void 0?void 0:a.children,S=(u=t.props)===null||u===void 0?void 0:u.content;if(Array.isArray(p)){var
|
|
29
|
+
*/function We(n,r){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);r&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,t)}return e}function he(n){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?We(Object(e),!0).forEach(function(t){Z(n,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):We(Object(e)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))})}return n}var Ee=function(r){if(!r)return[];if(r.type===ne){var e=r.props.children;if(Array.isArray(e))return Ee(e)}return L.Children.toArray(r).map(function(t){var a,u,p=(a=t.props)===null||a===void 0?void 0:a.children,S=(u=t.props)===null||u===void 0?void 0:u.content;if(Array.isArray(p)){var b,k,A=p==null||(b=p.filter)===null||b===void 0?void 0:b.call(p,function(m){return![oe,ne].includes(m.type)}),h=p==null||(k=p.filter)===null||k===void 0?void 0:k.call(p,function(m){return[oe,ne].includes(m.type)});return he(he({},t.props),{},{content:A||p,children:h.length>0?Ee(p[1]):null})}return he(he({},t.props),{},{content:p||S,children:null})}).filter(function(t){return!!t.content})};function Tt(n,r){var e=l.useMemo(function(){if(r&&r.length>0)return r;var t;return L.Children.forEach(n,function(a){L.isValidElement(a)&&a.type===ne&&a.props.children&&(t=a.props.children)}),Ee(t)},[r,n]);return e}/**
|
|
30
30
|
* tdesign v1.16.3
|
|
31
31
|
* (c) 2026 tdesign
|
|
32
32
|
* @license MIT
|
|
33
|
-
*/function ze(n,r){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);r&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,t)}return e}function de(n){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?ze(Object(e),!0).forEach(function(t){Z(n,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):ze(Object(e)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))})}return n}var we=function(r){var e=Se(r,Ht),t=e.popupProps,a=t===void 0?{}:t,u=e.disabled,p=e.placement,S=e.trigger,
|
|
33
|
+
*/function ze(n,r){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);r&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,t)}return e}function de(n){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?ze(Object(e),!0).forEach(function(t){Z(n,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):ze(Object(e)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))})}return n}var we=function(r){var e=Se(r,Ht),t=e.popupProps,a=t===void 0?{}:t,u=e.disabled,p=e.placement,S=e.trigger,b=e.className,k=e.children,A=e.hideAfterItemClick,h=e.options,m=e.style,y=L.Children.toArray(k),N=ge(),g=N.classPrefix,d=l.useState(!1),f=ue(d,2),x=f[0],j=f[1],F="".concat(g,"-dropdown"),_=Tt(y,h),M=function(K,U){var B;if(A){var q;j(!1),a==null||(q=a.onVisibleChange)===null||q===void 0||q.call(a,!1,U)}(B=e.onClick)===null||B===void 0||B.call(e,K,U)},i=function(K,U){var B;u||!_.length||(j(K),a==null||(B=a.onVisibleChange)===null||B===void 0||B.call(a,K,U))},W=L.createElement(ne,de(de({},e),{},{options:_,onClick:M})),T=de(de({disabled:u,placement:p,trigger:S,showArrow:!1,content:W},_t(a,"onVisibleChange")),{},{overlayInnerClassName:ee(F,b,a==null?void 0:a.overlayInnerClassName),overlayInnerStyle:m}),z=y==null?void 0:y[0],V=l.isValidElement(z)?L.cloneElement(z,{disabled:u}):z;return L.createElement(Ct,de({expandAnimation:!0,destroyOnClose:!0,visible:x,onVisibleChange:i},T),V)};we.DropdownItem=oe;we.DropdownMenu=ne;we.displayName="Dropdown";/**
|
|
34
34
|
* tdesign v1.16.3
|
|
35
35
|
* (c) 2026 tdesign
|
|
36
36
|
* @license MIT
|
|
37
|
-
*/var Ze=we;function Ke(n,r){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);r&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,t)}return e}function Be(n){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Ke(Object(e),!0).forEach(function(t){le(n,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):Ke(Object(e)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))})}return n}var Wt={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8 2V6L16 6V2L18 2V6L22 6V8L18 8L18 16L22 16V18L18 18V22H16L16 18L8 18V22H6L6 18H2L2 16H6L6 8L2 8L2 6L6 6L6 2L8 2ZM8 8L8 16L16 16V8L8 8Z"}}]},ot=l.forwardRef(function(n,r){return l.createElement(se,Be(Be({},n),{},{id:"artboard",ref:r,icon:Wt}))});ot.displayName="ArtboardIcon";function Ue(n,r){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);r&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,t)}return e}function Je(n){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Ue(Object(e),!0).forEach(function(t){le(n,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):Ue(Object(e)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))})}return n}var zt={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M6 1H15.4142L21 6.58579V19H6V1ZM8 3V17H19V9H13V3H8ZM15 3.41421V7H18.5858L15 3.41421ZM4 5V21H15V23H2V5H4Z"}}]},st=l.forwardRef(function(n,r){return l.createElement(se,Je(Je({},n),{},{id:"file-copy",ref:r,icon:zt}))});st.displayName="FileCopyIcon";function Ge(n,r){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);r&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,t)}return e}function Qe(n){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Ge(Object(e),!0).forEach(function(t){le(n,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):Ge(Object(e)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))})}return n}var Zt={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M1 2.5L9.48063 2.5L11.4806 5H23V12H21V7H10.5194L8.51938 4.5L3 4.5L3 19H14V21H1L1 2.5ZM21 14V17H24V19H21V22H19V19H16V17H19V14H21Z"}}]},Ne=l.forwardRef(function(n,r){return l.createElement(se,Qe(Qe({},n),{},{id:"folder-add",ref:r,icon:Zt}))});Ne.displayName="FolderAddIcon";function qe(n,r){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);r&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,t)}return e}function Ye(n){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?qe(Object(e),!0).forEach(function(t){le(n,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):qe(Object(e)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))})}return n}var Kt={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M1 2.5L11.4806 2.5L13.4806 5H23V7H12.5194L10.5194 4.5L1 4.5L1 2.5ZM1 6.5L9.48063 6.5L11.4806 9H23V21H1L1 6.5ZM3 8.5L3 19H21V11H10.5194L8.51938 8.5L3 8.5Z"}}]},lt=l.forwardRef(function(n,r){return l.createElement(se,Ye(Ye({},n),{},{id:"folder-open",ref:r,icon:Kt}))});lt.displayName="FolderOpenIcon";function Xe(n,r){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);r&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,t)}return e}function et(n){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Xe(Object(e),!0).forEach(function(t){le(n,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):Xe(Object(e)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))})}return n}var Bt={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M1 2.5L9.48063 2.5L11.4806 5L23 5L23 21L1 21L1 2.5ZM3 4.5L3 19L21 19L21 7L10.5194 7L8.51937 4.5L3 4.5Z"}}]},it=l.forwardRef(function(n,r){return l.createElement(se,et(et({},n),{},{id:"folder",ref:r,icon:Bt}))});it.displayName="FolderIcon";function tt(n,r){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);r&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,t)}return e}function rt(n){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?tt(Object(e),!0).forEach(function(t){le(n,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):tt(Object(e)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))})}return n}var Ut={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M10.5 3H13.5V6H10.5V3ZM10.5 10.5H13.5V13.5H10.5V10.5ZM10.5 18H13.5V21H10.5V18Z"}}]},Ie=l.forwardRef(function(n,r){return l.createElement(se,rt(rt({},n),{},{id:"more",ref:r,icon:Ut}))});Ie.displayName="MoreIcon";class Jt{async exportToZip(r){const{onProgress:e}=r||{},t=new $e;e==null||e(5,"正在加载数据...");const[a,u]=await Promise.all([ae.loadAllFolders(),ae.loadAllBoards()]);e==null||e(15,"正在构建目录结构...");const p=this.buildFolderPathMap(a),S=this.collectAssetIds(u);e==null||e(20,"正在加载素材...");const g=await this.loadAssets(S);e==null||e(30,"正在创建文件夹...");for(const h of a){const m=p.get(h.id)||h.name;t.folder(m)}e==null||e(40,"正在导出画板...");const k=u.length;for(let h=0;h<u.length;h++){const m=u[h],y=m.folderId?p.get(m.folderId):null,N=this.sanitizeFileName(m.name),b=y?`${y}/${N}.drawnix`:`${N}.drawnix`,d={type:Dt.drawnix,version:Pt.drawnix,source:"web",elements:m.elements||[],viewport:m.viewport||{zoom:1},theme:m.theme,boardMeta:{id:m.id,name:m.name,order:m.order,createdAt:m.createdAt,updatedAt:m.updatedAt}};if(t.file(b,JSON.stringify(d,null,2)),k>0){const f=40+Math.round((h+1)/k*20);e==null||e(f,`正在导出画板 (${h+1}/${k})...`)}}if(e==null||e(60,"正在导出素材..."),g.length>0){const h=t.folder("_assets");if(h){const m=g.length;for(let y=0;y<g.length;y++){const N=g[y],{blobData:b,...d}=N;h.file(`${N.id}.meta.json`,JSON.stringify(d,null,2)),b&&h.file(`${N.id}.blob`,b);const f=60+Math.round((y+1)/m*20);e==null||e(f,`正在导出素材 (${y+1}/${m})...`)}}}e==null||e(85,"正在压缩文件...");const $=await t.generateAsync({type:"blob",compression:"DEFLATE",compressionOptions:{level:6}},h=>{const m=85+Math.round(h.percent*.14),y=h.currentFile||"",N=y.length>30?"..."+y.slice(-27):y;e==null||e(m,`正在压缩: ${N||"..."}`)});return e==null||e(100,"导出完成"),$}buildFolderPathMap(r){const e=new Map,t=new Map;for(const u of r)t.set(u.id,u);const a=u=>{if(e.has(u))return e.get(u);const p=t.get(u);if(!p)return"";const S=this.sanitizeFileName(p.name);if(p.parentId){const g=a(p.parentId),k=g?`${g}/${S}`:S;return e.set(u,k),k}return e.set(u,S),S};for(const u of r)a(u.id);return e}sanitizeFileName(r){return r.replace(/[<>:"/\\|?*]/g,"_").replace(/\s+/g," ").trim()||"unnamed"}async importFromZip(r,e={}){var k;const{merge:t=!1,onProgress:a}=e,u=[];let p=0,S=0,g=0;try{a==null||a(5,"正在读取文件...");const $=await $e.loadAsync(r);a==null||a(10,"正在验证文件格式...");const h=Object.keys($.files).filter(d=>d.endsWith(".drawnix")&&!d.startsWith("_"));if(h.length===0)throw new Error("无效的导出文件:未找到画板文件");t||(a==null||a(15,"正在清理现有数据..."),await ae.clearAll(),await Et.clearAll(),await ae.saveState({currentBoardId:null,expandedFolderIds:[],sidebarWidth:ge.SIDEBAR_WIDTH,sidebarCollapsed:!1,migrationCompleted:!0})),a==null||a(20,"正在导入素材...");const m=Object.keys($.files).filter(d=>d.startsWith("_assets/")&&d.endsWith(".meta.json"));for(let d=0;d<m.length;d++){const f=m[d],x=f.replace("_assets/","").replace(".meta.json",""),j=f.replace(".meta.json",".blob");try{const F=$.file(f),_=$.file(j);if(F&&_){const M=await F.async("string"),i=JSON.parse(M),W=await _.async("blob"),T={...i,blobData:W};await this.saveStoredAsset(T),g++}}catch(F){const _=F instanceof Error?F.message:String(F);u.push(`素材 ${x} 导入失败: ${_}`)}if(m.length>0){const F=20+(d+1)/m.length*30;a==null||a(F,`正在导入素材 (${d+1}/${m.length})...`)}}a==null||a(55,"正在分析目录结构...");const y=new Set,N=new Map;for(const d of h){const f=d.split("/");if(f.length>1){let x="";for(let j=0;j<f.length-1;j++)x=x?`${x}/${f[j]}`:f[j],y.add(x)}}const b=Array.from(y).sort((d,f)=>{const x=d.split("/").length,j=f.split("/").length;return x-j||d.localeCompare(f)});a==null||a(60,"正在导入文件夹...");for(let d=0;d<b.length;d++){const f=b[d],x=f.split("/"),j=x[x.length-1],F=x.length>1?x.slice(0,-1).join("/"):null,_=F&&N.get(F)||null;try{const M=this.generateId();N.set(f,M);const i={id:M,name:j,parentId:_,order:d,isExpanded:!0,createdAt:Date.now(),updatedAt:Date.now()};await ae.saveFolder(i),p++}catch(M){const i=M instanceof Error?M.message:String(M);u.push(`文件夹 "${j}" 导入失败: ${i}`)}}a==null||a(70,"正在导入画板...");for(let d=0;d<h.length;d++){const f=h[d];try{const j=$.file(f);if(j){const F=await j.async("string"),_=JSON.parse(F),M=f.split("/").pop()||"unnamed.drawnix",i=((k=_.boardMeta)==null?void 0:k.name)||M.replace(".drawnix",""),W=f.split("/"),T=W.length>1?W.slice(0,-1).join("/"):null,z=T&&N.get(T)||null,V=_.boardMeta,G={id:(V==null?void 0:V.id)||this.generateId(),name:i,folderId:z,order:(V==null?void 0:V.order)??d,elements:_.elements||[],viewport:_.viewport,theme:_.theme,createdAt:(V==null?void 0:V.createdAt)||Date.now(),updatedAt:(V==null?void 0:V.updatedAt)||Date.now()};await ae.saveBoard(G),S++}}catch(j){const F=f.split("/").pop()||f,_=j instanceof Error?j.message:String(j);u.push(`画板 "${F}" 导入失败: ${_}`)}const x=70+(d+1)/h.length*25;a==null||a(x,`正在导入画板 (${d+1}/${h.length})...`)}return a==null||a(100,"导入完成"),{success:u.length===0,folders:p,boards:S,assets:g,errors:u}}catch($){const h=$ instanceof Error?$.message:String($);return{success:!1,folders:p,boards:S,assets:g,errors:[...u,h]}}}generateId(){return`${Date.now().toString(36)}-${Math.random().toString(36).substring(2,11)}`}collectAssetIds(r){const e=new Set;for(const t of r)t.elements&&this.findAssetIdsInElements(t.elements,e);return e}findAssetIdsInElements(r,e){for(const t of r)t.assetId&&e.add(t.assetId),t.imageAssetId&&e.add(t.imageAssetId),t.videoAssetId&&e.add(t.videoAssetId),t.children&&Array.isArray(t.children)&&this.findAssetIdsInElements(t.children,e)}async loadAssets(r){const e=[],t=Ae.createInstance({name:me.STORAGE_NAME,storeName:me.STORE_NAME});for(const a of r)try{const u=await t.getItem(a);u&&e.push(u)}catch(u){console.warn(`[WorkspaceExport] Failed to load asset ${a}:`,u)}return e}async saveStoredAsset(r){await Ae.createInstance({name:me.STORAGE_NAME,storeName:me.STORE_NAME}).setItem(r.id,r)}downloadZip(r,e){const t=new Date,a=t.toISOString().split("T")[0],u=t.toTimeString().split(" ")[0].replace(/:/g,""),p=`aitu_workspace_${a}_${u}.zip`,S=URL.createObjectURL(r),g=document.createElement("a");g.href=S,g.download=e||p,document.body.appendChild(g),g.click(),document.body.removeChild(g),URL.revokeObjectURL(S)}}const De=new Jt,Gt=({tree:n,currentBoard:r,onBoardClick:e,onCreateBoard:t,onCreateFolder:a,onRename:u,onDelete:p,onCopyBoard:S,onMoveBoard:g,onMoveFolder:k,toggleFolderExpanded:$,autoEditBoardId:h,onAutoEditDone:m})=>{const[y,N]=l.useState(null),[b,d]=l.useState("");l.useEffect(()=>{h&&(N(h),d(ge.DEFAULT_BOARD_NAME),m==null||m())},[h,m]);const[f,x]=l.useState(null),[j,F]=l.useState(null),[_,M]=l.useState(null),i=l.useRef(null);l.useEffect(()=>()=>{i.current&&(clearTimeout(i.current),i.current=null)},[]);const W=l.useCallback((w,v)=>{const s=v.e.target;s&&s.select&&s.select()},[]),T=l.useCallback((w,v)=>{if(!b.trim()){N(null);return}u(w,v,b.trim()),N(null)},[b,u]),z=l.useCallback((w,v)=>{N(w),d(v)},[]),V=l.useCallback(w=>{const v=[{content:"根目录",value:"root"}],s=(D,P="")=>{D.forEach(E=>{if(E.type==="folder"){const R=E.data;R.id!==w&&(v.push({content:P+R.name,value:R.id}),E.children&&s(E.children,P+" "))}})};return s(n),v},[n]),G=l.useCallback((w,v,s)=>{const D={type:v,id:s};x(D),w.dataTransfer.effectAllowed="move",w.dataTransfer.setData("application/json",JSON.stringify(D))},[]),K=l.useCallback(()=>{x(null),F(null),M(null)},[]),U=l.useCallback((w,v,s)=>{if(!f||f.id===v)return;w.preventDefault(),w.dataTransfer.dropEffect="move";const D=w.currentTarget.getBoundingClientRect(),P=w.clientY-D.top,E=D.height;let R;s==="folder"?P<E*.25?R="before":P>E*.75?R="after":R="inside":R=P<E/2?"before":"after",(j!==v||_!==R)&&(F(v),M(R))},[f,j,_]),B=l.useCallback(w=>{const v=w.relatedTarget;w.currentTarget.contains(v)||(F(null),M(null))},[]),Q=l.useCallback((w,v,s,D)=>{if(w.preventDefault(),!f||!_)return;const{type:P,id:E}=f;_==="inside"&&s==="folder"?P==="board"?g(E,v):k(E,v):(_==="before"||_==="after")&&(P==="board"?g(E,D,v,_):k(E,D,v,_)),K()},[f,_,g,k,K]),Y=w=>{if(j!==w)return"";switch(_){case"before":return"project-drawer-node__row--drag-over-before";case"after":return"project-drawer-node__row--drag-over-after";case"inside":return"project-drawer-node__row--drag-over-inside";default:return""}},te=(w,v=0)=>{const{data:s,children:D}=w,P=s.isExpanded,E=y===s.id,R=(f==null?void 0:f.id)===s.id,I=v*16+8;return o.jsxs("div",{className:"project-drawer-node",children:[o.jsxs("div",{className:`project-drawer-node__row project-drawer-node__row--folder
|
|
37
|
+
*/var Ze=we;function Ke(n,r){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);r&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,t)}return e}function Be(n){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Ke(Object(e),!0).forEach(function(t){le(n,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):Ke(Object(e)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))})}return n}var Wt={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8 2V6L16 6V2L18 2V6L22 6V8L18 8L18 16L22 16V18L18 18V22H16L16 18L8 18V22H6L6 18H2L2 16H6L6 8L2 8L2 6L6 6L6 2L8 2ZM8 8L8 16L16 16V8L8 8Z"}}]},ot=l.forwardRef(function(n,r){return l.createElement(se,Be(Be({},n),{},{id:"artboard",ref:r,icon:Wt}))});ot.displayName="ArtboardIcon";function Ue(n,r){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);r&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,t)}return e}function Je(n){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Ue(Object(e),!0).forEach(function(t){le(n,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):Ue(Object(e)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))})}return n}var zt={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M6 1H15.4142L21 6.58579V19H6V1ZM8 3V17H19V9H13V3H8ZM15 3.41421V7H18.5858L15 3.41421ZM4 5V21H15V23H2V5H4Z"}}]},st=l.forwardRef(function(n,r){return l.createElement(se,Je(Je({},n),{},{id:"file-copy",ref:r,icon:zt}))});st.displayName="FileCopyIcon";function Ge(n,r){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);r&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,t)}return e}function qe(n){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Ge(Object(e),!0).forEach(function(t){le(n,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):Ge(Object(e)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))})}return n}var Zt={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M1 2.5L9.48063 2.5L11.4806 5H23V12H21V7H10.5194L8.51938 4.5L3 4.5L3 19H14V21H1L1 2.5ZM21 14V17H24V19H21V22H19V19H16V17H19V14H21Z"}}]},Ne=l.forwardRef(function(n,r){return l.createElement(se,qe(qe({},n),{},{id:"folder-add",ref:r,icon:Zt}))});Ne.displayName="FolderAddIcon";function Qe(n,r){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);r&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,t)}return e}function Ye(n){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Qe(Object(e),!0).forEach(function(t){le(n,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):Qe(Object(e)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))})}return n}var Kt={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M1 2.5L11.4806 2.5L13.4806 5H23V7H12.5194L10.5194 4.5L1 4.5L1 2.5ZM1 6.5L9.48063 6.5L11.4806 9H23V21H1L1 6.5ZM3 8.5L3 19H21V11H10.5194L8.51938 8.5L3 8.5Z"}}]},lt=l.forwardRef(function(n,r){return l.createElement(se,Ye(Ye({},n),{},{id:"folder-open",ref:r,icon:Kt}))});lt.displayName="FolderOpenIcon";function Xe(n,r){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);r&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,t)}return e}function et(n){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?Xe(Object(e),!0).forEach(function(t){le(n,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):Xe(Object(e)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))})}return n}var Bt={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M1 2.5L9.48063 2.5L11.4806 5L23 5L23 21L1 21L1 2.5ZM3 4.5L3 19L21 19L21 7L10.5194 7L8.51937 4.5L3 4.5Z"}}]},it=l.forwardRef(function(n,r){return l.createElement(se,et(et({},n),{},{id:"folder",ref:r,icon:Bt}))});it.displayName="FolderIcon";function tt(n,r){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);r&&(t=t.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,t)}return e}function rt(n){for(var r=1;r<arguments.length;r++){var e=arguments[r]!=null?arguments[r]:{};r%2?tt(Object(e),!0).forEach(function(t){le(n,t,e[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(e)):tt(Object(e)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t))})}return n}var Ut={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M10.5 3H13.5V6H10.5V3ZM10.5 10.5H13.5V13.5H10.5V10.5ZM10.5 18H13.5V21H10.5V18Z"}}]},Ie=l.forwardRef(function(n,r){return l.createElement(se,rt(rt({},n),{},{id:"more",ref:r,icon:Ut}))});Ie.displayName="MoreIcon";class Jt{async exportToZip(r){const{onProgress:e}=r||{},t=new Ae;e==null||e(5,"正在加载数据...");const[a,u]=await Promise.all([ae.loadAllFolders(),ae.loadAllBoards()]);e==null||e(15,"正在构建目录结构...");const p=this.buildFolderPathMap(a),S=this.collectAssetIds(u);e==null||e(20,"正在加载素材...");const b=await this.loadAssets(S);e==null||e(30,"正在创建文件夹...");for(const h of a){const m=p.get(h.id)||h.name;t.folder(m)}e==null||e(40,"正在导出画板...");const k=u.length;for(let h=0;h<u.length;h++){const m=u[h],y=m.folderId?p.get(m.folderId):null,N=this.sanitizeFileName(m.name),g=y?`${y}/${N}.drawnix`:`${N}.drawnix`,d={type:Dt.drawnix,version:Pt.drawnix,source:"web",elements:m.elements||[],viewport:m.viewport||{zoom:1},theme:m.theme,boardMeta:{id:m.id,name:m.name,order:m.order,createdAt:m.createdAt,updatedAt:m.updatedAt}};if(t.file(g,JSON.stringify(d,null,2)),k>0){const f=40+Math.round((h+1)/k*20);e==null||e(f,`正在导出画板 (${h+1}/${k})...`)}}if(e==null||e(60,"正在导出素材..."),b.length>0){const h=t.folder("_assets");if(h){const m=b.length;for(let y=0;y<b.length;y++){const N=b[y],{blobData:g,...d}=N;h.file(`${N.id}.meta.json`,JSON.stringify(d,null,2)),g&&h.file(`${N.id}.blob`,g);const f=60+Math.round((y+1)/m*20);e==null||e(f,`正在导出素材 (${y+1}/${m})...`)}}}e==null||e(85,"正在压缩文件...");const A=await t.generateAsync({type:"blob",compression:"DEFLATE",compressionOptions:{level:6}},h=>{const m=85+Math.round(h.percent*.14),y=h.currentFile||"",N=y.length>30?"..."+y.slice(-27):y;e==null||e(m,`正在压缩: ${N||"..."}`)});return e==null||e(100,"导出完成"),A}buildFolderPathMap(r){const e=new Map,t=new Map;for(const u of r)t.set(u.id,u);const a=u=>{if(e.has(u))return e.get(u);const p=t.get(u);if(!p)return"";const S=this.sanitizeFileName(p.name);if(p.parentId){const b=a(p.parentId),k=b?`${b}/${S}`:S;return e.set(u,k),k}return e.set(u,S),S};for(const u of r)a(u.id);return e}sanitizeFileName(r){return r.replace(/[<>:"/\\|?*]/g,"_").replace(/\s+/g," ").trim()||"unnamed"}async importFromZip(r,e={}){var k;const{merge:t=!1,onProgress:a}=e,u=[];let p=0,S=0,b=0;try{a==null||a(5,"正在读取文件...");const A=await Ae.loadAsync(r);a==null||a(10,"正在验证文件格式...");const h=Object.keys(A.files).filter(d=>d.endsWith(".drawnix")&&!d.startsWith("_"));if(h.length===0)throw new Error("无效的导出文件:未找到画板文件");t||(a==null||a(15,"正在清理现有数据..."),await ae.clearAll(),await Et.clearAll(),await ae.saveState({currentBoardId:null,expandedFolderIds:[],sidebarWidth:be.SIDEBAR_WIDTH,sidebarCollapsed:!1,migrationCompleted:!0})),a==null||a(20,"正在导入素材...");const m=Object.keys(A.files).filter(d=>d.startsWith("_assets/")&&d.endsWith(".meta.json"));for(let d=0;d<m.length;d++){const f=m[d],x=f.replace("_assets/","").replace(".meta.json",""),j=f.replace(".meta.json",".blob");try{const F=A.file(f),_=A.file(j);if(F&&_){const M=await F.async("string"),i=JSON.parse(M),W=await _.async("blob"),T={...i,blobData:W};await this.saveStoredAsset(T),b++}}catch(F){const _=F instanceof Error?F.message:String(F);u.push(`素材 ${x} 导入失败: ${_}`)}if(m.length>0){const F=20+(d+1)/m.length*30;a==null||a(F,`正在导入素材 (${d+1}/${m.length})...`)}}a==null||a(55,"正在分析目录结构...");const y=new Set,N=new Map;for(const d of h){const f=d.split("/");if(f.length>1){let x="";for(let j=0;j<f.length-1;j++)x=x?`${x}/${f[j]}`:f[j],y.add(x)}}const g=Array.from(y).sort((d,f)=>{const x=d.split("/").length,j=f.split("/").length;return x-j||d.localeCompare(f)});a==null||a(60,"正在导入文件夹...");for(let d=0;d<g.length;d++){const f=g[d],x=f.split("/"),j=x[x.length-1],F=x.length>1?x.slice(0,-1).join("/"):null,_=F&&N.get(F)||null;try{const M=this.generateId();N.set(f,M);const i={id:M,name:j,parentId:_,order:d,isExpanded:!0,createdAt:Date.now(),updatedAt:Date.now()};await ae.saveFolder(i),p++}catch(M){const i=M instanceof Error?M.message:String(M);u.push(`文件夹 "${j}" 导入失败: ${i}`)}}a==null||a(70,"正在导入画板...");for(let d=0;d<h.length;d++){const f=h[d];try{const j=A.file(f);if(j){const F=await j.async("string"),_=JSON.parse(F),M=f.split("/").pop()||"unnamed.drawnix",i=((k=_.boardMeta)==null?void 0:k.name)||M.replace(".drawnix",""),W=f.split("/"),T=W.length>1?W.slice(0,-1).join("/"):null,z=T&&N.get(T)||null,V=_.boardMeta,G={id:(V==null?void 0:V.id)||this.generateId(),name:i,folderId:z,order:(V==null?void 0:V.order)??d,elements:_.elements||[],viewport:_.viewport,theme:_.theme,createdAt:(V==null?void 0:V.createdAt)||Date.now(),updatedAt:(V==null?void 0:V.updatedAt)||Date.now()};await ae.saveBoard(G),S++}}catch(j){const F=f.split("/").pop()||f,_=j instanceof Error?j.message:String(j);u.push(`画板 "${F}" 导入失败: ${_}`)}const x=70+(d+1)/h.length*25;a==null||a(x,`正在导入画板 (${d+1}/${h.length})...`)}return a==null||a(100,"导入完成"),{success:u.length===0,folders:p,boards:S,assets:b,errors:u}}catch(A){const h=A instanceof Error?A.message:String(A);return{success:!1,folders:p,boards:S,assets:b,errors:[...u,h]}}}generateId(){return`${Date.now().toString(36)}-${Math.random().toString(36).substring(2,11)}`}collectAssetIds(r){const e=new Set;for(const t of r)t.elements&&this.findAssetIdsInElements(t.elements,e);return e}findAssetIdsInElements(r,e){for(const t of r)t.assetId&&e.add(t.assetId),t.imageAssetId&&e.add(t.imageAssetId),t.videoAssetId&&e.add(t.videoAssetId),t.children&&Array.isArray(t.children)&&this.findAssetIdsInElements(t.children,e)}async loadAssets(r){const e=[],t=$e.createInstance({name:me.STORAGE_NAME,storeName:me.STORE_NAME});for(const a of r)try{const u=await t.getItem(a);u&&e.push(u)}catch(u){console.warn(`[WorkspaceExport] Failed to load asset ${a}:`,u)}return e}async saveStoredAsset(r){await $e.createInstance({name:me.STORAGE_NAME,storeName:me.STORE_NAME}).setItem(r.id,r)}downloadZip(r,e){const t=new Date,a=t.toISOString().split("T")[0],u=t.toTimeString().split(" ")[0].replace(/:/g,""),p=`aitu_workspace_${a}_${u}.zip`,S=URL.createObjectURL(r),b=document.createElement("a");b.href=S,b.download=e||p,document.body.appendChild(b),b.click(),document.body.removeChild(b),URL.revokeObjectURL(S)}}const De=new Jt,Gt=({tree:n,currentBoard:r,onBoardClick:e,onCreateBoard:t,onCreateFolder:a,onRename:u,onDelete:p,onCopyBoard:S,onMoveBoard:b,onMoveFolder:k,toggleFolderExpanded:A,autoEditBoardId:h,onAutoEditDone:m})=>{const[y,N]=l.useState(null),[g,d]=l.useState("");l.useEffect(()=>{h&&(N(h),d(be.DEFAULT_BOARD_NAME),m==null||m())},[h,m]);const[f,x]=l.useState(null),[j,F]=l.useState(null),[_,M]=l.useState(null),i=l.useRef(null);l.useEffect(()=>()=>{i.current&&(clearTimeout(i.current),i.current=null)},[]);const W=l.useCallback((w,v)=>{const s=v.e.target;s&&s.select&&s.select()},[]),T=l.useCallback((w,v)=>{if(!g.trim()){N(null);return}u(w,v,g.trim()),N(null)},[g,u]),z=l.useCallback((w,v)=>{N(w),d(v)},[]),V=l.useCallback(w=>{const v=[{content:"根目录",value:"root"}],s=(D,P="")=>{D.forEach(E=>{if(E.type==="folder"){const R=E.data;R.id!==w&&(v.push({content:P+R.name,value:R.id}),E.children&&s(E.children,P+" "))}})};return s(n),v},[n]),G=l.useCallback((w,v,s)=>{const D={type:v,id:s};x(D),w.dataTransfer.effectAllowed="move",w.dataTransfer.setData("application/json",JSON.stringify(D))},[]),K=l.useCallback(()=>{x(null),F(null),M(null)},[]),U=l.useCallback((w,v,s)=>{if(!f||f.id===v)return;w.preventDefault(),w.dataTransfer.dropEffect="move";const D=w.currentTarget.getBoundingClientRect(),P=w.clientY-D.top,E=D.height;let R;s==="folder"?P<E*.25?R="before":P>E*.75?R="after":R="inside":R=P<E/2?"before":"after",(j!==v||_!==R)&&(F(v),M(R))},[f,j,_]),B=l.useCallback(w=>{const v=w.relatedTarget;w.currentTarget.contains(v)||(F(null),M(null))},[]),q=l.useCallback((w,v,s,D)=>{if(w.preventDefault(),!f||!_)return;const{type:P,id:E}=f;_==="inside"&&s==="folder"?P==="board"?b(E,v):k(E,v):(_==="before"||_==="after")&&(P==="board"?b(E,D,v,_):k(E,D,v,_)),K()},[f,_,b,k,K]),Y=w=>{if(j!==w)return"";switch(_){case"before":return"project-drawer-node__row--drag-over-before";case"after":return"project-drawer-node__row--drag-over-after";case"inside":return"project-drawer-node__row--drag-over-inside";default:return""}},te=(w,v=0)=>{const{data:s,children:D}=w,P=s.isExpanded,E=y===s.id,R=(f==null?void 0:f.id)===s.id,I=v*16+8;return o.jsxs("div",{className:"project-drawer-node",children:[o.jsxs("div",{className:`project-drawer-node__row project-drawer-node__row--folder
|
|
38
38
|
${R?"project-drawer-node__row--dragging":""}
|
|
39
|
-
${Y(s.id)}`,style:{paddingLeft:I},draggable:!E,onClick:()=>{E||(i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{
|
|
39
|
+
${Y(s.id)}`,style:{paddingLeft:I},draggable:!E,onClick:()=>{E||(i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{A(s.id)},200))},onDragStart:c=>G(c,"folder",s.id),onDragEnd:K,onDragOver:c=>U(c,s.id,"folder"),onDragLeave:B,onDrop:c=>q(c,s.id,"folder",s.parentId),children:[o.jsx("span",{className:"project-drawer-node__expand",onClick:c=>{c.stopPropagation(),A(s.id)},children:o.jsx(At,{style:{transform:P?"rotate(90deg)":"none",transition:"transform 0.2s"}})}),o.jsx("span",{className:"project-drawer-node__icon",children:P?o.jsx(lt,{}):o.jsx(it,{})}),E?o.jsx(Pe,{value:g,size:"small",autofocus:!0,onFocus:W,onClick:c=>c.e.stopPropagation(),onChange:c=>d(c),onBlur:()=>T("folder",s.id),onKeydown:(c,re)=>{re.e.key==="Enter"?T("folder",s.id):re.e.key==="Escape"&&N(null)}}):o.jsx("span",{className:"project-drawer-node__label",onDoubleClick:c=>{c.stopPropagation(),i.current&&(clearTimeout(i.current),i.current=null),z(s.id,s.name)},children:s.name}),o.jsx("div",{className:"project-drawer-node__actions",onClick:c=>c.stopPropagation(),children:o.jsx(Ze,{options:[{content:"新建画板",value:"new-board",prefixIcon:o.jsx(nt,{})},{content:"新建文件夹",value:"new-folder",prefixIcon:o.jsx(Ne,{})},{content:"重命名",value:"rename",prefixIcon:o.jsx(Fe,{})},{content:"删除",value:"delete",prefixIcon:o.jsx(Me,{})}],onClick:c=>{c.value==="new-board"?t(s.id):c.value==="new-folder"?a(s.id):c.value==="rename"?z(s.id,s.name):c.value==="delete"&&p("folder",s.id,s.name)},children:o.jsx(Q,{variant:"text",size:"small",icon:o.jsx(Ie,{})})})})]}),P&&D&&D.length>0&&o.jsx("div",{className:"project-drawer-node__children",children:D.map(c=>c.type==="folder"?te(c,v+1):X(c,v+1))})]},s.id)},X=(w,v=0)=>{const{data:s}=w,D=s.id===(r==null?void 0:r.id),P=y===s.id,E=(f==null?void 0:f.id)===s.id,R=v*16+8;return o.jsx("div",{className:"project-drawer-node",children:o.jsxs("div",{className:`project-drawer-node__row
|
|
40
40
|
${D?"project-drawer-node__row--active":""}
|
|
41
41
|
${E?"project-drawer-node__row--dragging":""}
|
|
42
|
-
${Y(s.id)}`,style:{paddingLeft:R},draggable:!P,onClick:()=>{P||(i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{e(s)},200))},onDragStart:I=>G(I,"board",s.id),onDragEnd:K,onDragOver:I=>U(I,s.id,"board"),onDragLeave:B,onDrop:I=>
|
|
42
|
+
${Y(s.id)}`,style:{paddingLeft:R},draggable:!P,onClick:()=>{P||(i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{e(s)},200))},onDragStart:I=>G(I,"board",s.id),onDragEnd:K,onDragOver:I=>U(I,s.id,"board"),onDragLeave:B,onDrop:I=>q(I,s.id,"board",s.folderId),children:[o.jsx("span",{className:"project-drawer-node__expand"}),o.jsx("span",{className:"project-drawer-node__icon",children:o.jsx(ot,{})}),P?o.jsx(Pe,{value:g,size:"small",autofocus:!0,onFocus:W,onClick:I=>I.e.stopPropagation(),onChange:I=>d(I),onBlur:()=>T("board",s.id),onKeydown:(I,c)=>{c.e.key==="Enter"?T("board",s.id):c.e.key==="Escape"&&N(null)}}):o.jsx("span",{className:"project-drawer-node__label",onDoubleClick:I=>{I.stopPropagation(),i.current&&(clearTimeout(i.current),i.current=null),z(s.id,s.name)},children:s.name}),o.jsx("div",{className:"project-drawer-node__actions",onClick:I=>I.stopPropagation(),children:o.jsx(Ze,{options:[{content:"复制",value:"copy",prefixIcon:o.jsx(st,{})},{content:"重命名",value:"rename",prefixIcon:o.jsx(Fe,{})},{content:"移动到",value:"move",prefixIcon:o.jsx($t,{}),children:V()},{content:"删除",value:"delete",prefixIcon:o.jsx(Me,{})}],onClick:I=>{I.value==="copy"?S(s.id):I.value==="rename"?z(s.id,s.name):I.value==="delete"?p("board",s.id,s.name):I.value==="root"?b(s.id,null):typeof I.value=="string"&&I.value!=="move"&&b(s.id,I.value)},children:o.jsx(Q,{variant:"text",size:"small",icon:o.jsx(Ie,{})})})})]})},s.id)};return o.jsx("div",{className:"project-drawer__tree",children:n.map(w=>w.type==="folder"?te(w):X(w))})},Xt=({isOpen:n=!1,onOpenChange:r,onBeforeSwitch:e,onBoardSwitch:t})=>{const{isLoading:a,tree:u,currentBoard:p,createFolder:S,renameFolder:b,deleteFolder:k,deleteFolderWithContents:A,moveFolder:h,toggleFolderExpanded:m,createBoard:y,renameBoard:N,deleteBoard:g,moveBoard:d,copyBoard:f,switchBoard:x}=It(),[j,F]=l.useState(""),[_,M]=l.useState(!1),[i,W]=l.useState(null),[T,z]=l.useState(!1),[V,G]=l.useState(!1),[K,U]=l.useState(!1),[B,q]=l.useState(!1),[Y,te]=l.useState({progress:0,message:""}),[X,w]=l.useState({progress:0,message:""}),[v,s]=l.useState(null),D=l.useRef(null),P=l.useCallback(()=>{r==null||r(!1)},[r]),E=l.useCallback(async O=>{e&&await e();const $=await y({name:be.DEFAULT_BOARD_NAME,folderId:O||null});if($){const C=await x($.id);C&&t&&t(C),s($.id),J.success("画板已创建")}},[y,x,e,t]),R=l.useCallback(async O=>{await S({name:be.DEFAULT_FOLDER_NAME,parentId:O||null})},[S]),I=l.useCallback(async(O,$,C)=>{O==="folder"?await b($,C):await N($,C)},[b,N]),c=l.useCallback((O,$,C)=>{W({type:O,id:$,name:C}),M(!0)},[]),re=l.useCallback(async()=>{if(!i||i.type!=="folder")return;await k(i.id)&&J.success("删除成功"),M(!1),W(null)},[i,k]),ye=l.useCallback(async()=>{if(!i||i.type!=="folder")return;await A(i.id)&&J.success("删除成功"),M(!1),W(null)},[i,A]),ie=l.useCallback((O,$)=>{for(const C of O){if(C.type==="board"&&C.data.id!==$)return C.data;if(C.type==="folder"&&C.children){const H=ie(C.children,$);if(H)return H}}return null},[]),je=l.useCallback(async()=>{if(!i||i.type!=="board")return;const O=i.id===(p==null?void 0:p.id);if(await g(i.id)&&(J.success("删除成功"),O)){const C=ie(u,i.id);if(C){e&&await e();const H=await x(C.id);H&&t&&t(H)}}M(!1),W(null)},[i,g,p,u,ie,e,x,t]),Oe=l.useCallback(async O=>{await f(O)&&J.success("画板已复制")},[f]),ce=l.useCallback(async(O,$,C,H)=>{await d(O,$,C,H)},[d]),ct=l.useCallback(async(O,$,C,H)=>{await h(O,$,C,H)||J.error("无法移动文件夹到其子目录")},[h]),dt=l.useCallback(async()=>{if(!T)try{z(!0),q(!0),w({progress:0,message:"准备导出..."}),e&&await e();const O=await De.exportToZip({onProgress:($,C)=>{w({progress:$,message:C})}});De.downloadZip(O),J.success("导出成功")}catch(O){console.error("[ProjectDrawer] Export failed:",O),J.error(`导出失败: ${O.message}`)}finally{z(!1),q(!1)}},[T,e]),ut=l.useCallback(()=>{var O;(O=D.current)==null||O.click()},[]),pt=l.useCallback(async O=>{var C;const $=(C=O.target.files)==null?void 0:C[0];if($){if(O.target.value="",!$.name.endsWith(".zip")){J.error("请选择 ZIP 文件");return}U(!0),G(!0),te({progress:0,message:"准备导入..."});try{e&&await e();const H=await De.importFromZip($,{merge:!1,onProgress:(pe,fe)=>{te({progress:pe,message:fe})}});H.success?(J.success(`导入成功:${H.folders} 个文件夹,${H.boards} 个画板,${H.assets} 个素材`),window.location.reload()):(H.errors.length>0&&(J.warning(`导入完成,但有 ${H.errors.length} 个错误`),console.warn("[ProjectDrawer] Import errors:",H.errors)),window.location.reload())}catch(H){console.error("[ProjectDrawer] Import failed:",H),J.error(`导入失败: ${H.message}`)}finally{G(!1),U(!1)}}},[e]),ft=l.useCallback(async O=>{if(O.id===(p==null?void 0:p.id))return;e&&await e();const $=await x(O.id);$&&t&&t($)},[p,e,t,x]),ke=l.useMemo(()=>{if(!j.trim())return u;const O=j.toLowerCase().trim(),$=C=>{if(C.type==="board")return C.data.name.toLowerCase().includes(O)?C:null;if(C.type==="folder"){const H=C,pe=H.data,fe=H.children?H.children.map($).filter(bt=>bt!==null):[];return pe.name.toLowerCase().includes(O)||fe.length>0?{...H,children:fe}:null}return null};return u.map($).filter(C=>C!==null)},[u,j]),mt=o.jsxs(o.Fragment,{children:[o.jsx(Q,{variant:"text",size:"small",icon:o.jsx(nt,{}),onClick:()=>E(),title:"新建画板"}),o.jsx(Q,{variant:"text",size:"small",icon:o.jsx(Ne,{}),onClick:()=>R(),title:"新建文件夹"})]}),ht=o.jsx(Pe,{placeholder:"搜索...",value:j,onChange:F,prefixIcon:o.jsx(kt,{}),size:"small"}),vt=o.jsxs("div",{className:"project-drawer__footer-actions",children:[o.jsx(Q,{variant:"outline",size:"small",icon:o.jsx(Lt,{}),onClick:ut,disabled:V,title:"从 ZIP 文件导入",children:"导入"}),o.jsx(Q,{variant:"outline",size:"small",icon:o.jsx(Nt,{}),onClick:dt,loading:T,title:"导出为 ZIP 文件",children:"导出"}),o.jsx("input",{ref:D,type:"file",accept:".zip",style:{display:"none"},onChange:pt})]});return o.jsxs(o.Fragment,{children:[o.jsx(St,{isOpen:n,onClose:P,title:"项目",headerActions:mt,filterSection:ht,footer:vt,position:"toolbar-right",width:"narrow",className:"project-drawer",contentClassName:"project-drawer__content",children:a?o.jsx("div",{className:"project-drawer__loading",children:"加载中..."}):ke.length===0?o.jsxs("div",{className:"project-drawer__empty",children:[o.jsx("p",{children:"暂无画板"}),o.jsx(Q,{size:"small",onClick:()=>E(),children:"创建第一个画板"})]}):o.jsx(Gt,{tree:ke,currentBoard:p,onBoardClick:ft,onCreateBoard:E,onCreateFolder:R,onRename:I,onDelete:c,onCopyBoard:Oe,onMoveBoard:ce,onMoveFolder:ct,toggleFolderExpanded:m,autoEditBoardId:v,onAutoEditDone:()=>s(null)})}),o.jsx(xe,{visible:_,header:"确认删除",onClose:()=>M(!1),footer:(i==null?void 0:i.type)==="folder"?o.jsxs("div",{className:"project-drawer__delete-dialog-footer",children:[o.jsx(Q,{variant:"outline",onClick:()=>M(!1),children:"取消"}),o.jsx(Q,{theme:"default",onClick:re,children:"仅删目录"}),o.jsx(Q,{theme:"danger",onClick:ye,children:"删除目录及文件"})]}):void 0,onConfirm:(i==null?void 0:i.type)==="board"?je:void 0,confirmBtn:(i==null?void 0:i.type)==="board"?"删除":void 0,cancelBtn:(i==null?void 0:i.type)==="board"?"取消":void 0,children:o.jsxs("p",{children:["确定要删除 ",(i==null?void 0:i.type)==="folder"?"文件夹":"画板",' "',i==null?void 0:i.name,'" 吗?',(i==null?void 0:i.type)==="folder"&&o.jsx("span",{style:{color:"var(--td-text-color-secondary)",display:"block",marginTop:"8px"},children:"仅删目录时,文件夹内的所有内容将被移动到根目录。"})]})}),o.jsx(xe,{visible:K,header:"正在导入",closeOnOverlayClick:!1,closeOnEscKeydown:!1,showOverlay:!0,footer:!1,children:o.jsxs("div",{className:"project-drawer__import-progress",children:[o.jsx(Le,{loading:!0,size:"medium"}),o.jsx("p",{className:"project-drawer__import-message",children:Y.message}),o.jsx("div",{className:"project-drawer__import-bar",children:o.jsx("div",{className:"project-drawer__import-bar-fill",style:{width:`${Y.progress}%`}})}),o.jsxs("p",{className:"project-drawer__import-percent",children:[Math.round(Y.progress),"%"]})]})}),o.jsx(xe,{visible:B,header:"正在导出",closeOnOverlayClick:!1,closeOnEscKeydown:!1,showOverlay:!0,footer:!1,children:o.jsxs("div",{className:"project-drawer__import-progress",children:[o.jsx(Le,{loading:!0,size:"medium"}),o.jsx("p",{className:"project-drawer__import-message",children:X.message}),o.jsx("div",{className:"project-drawer__import-bar",children:o.jsx("div",{className:"project-drawer__import-bar-fill",style:{width:`${X.progress}%`}})}),o.jsxs("p",{className:"project-drawer__import-percent",children:[Math.round(X.progress),"%"]})]})})]})};export{Xt as ProjectDrawer};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.t-progress{font:var(--td-font-body-medium);color:var(--td-text-color-primary);box-sizing:border-box;margin:0;padding:0;list-style:none}.t-progress__inner{position:relative;height:100%;background:var(--td-brand-color);border-radius:var(--td-radius-round);transition:all .2s cubic-bezier(.38,0,.24,1)}.t-progress__info{margin-left:var(--td-comp-margin-s);color:var(--td-text-color-primary);white-space:nowrap;display:inline-flex}.t-progress__icon{font-size:calc(var(--td-font-size-body-medium) + 2px)}.t-progress__bar{width:100%;height:var(--td-size-3);overflow:hidden;background:var(--td-bg-color-component);border-radius:var(--td-radius-round)}.t-progress--thin{display:flex;justify-content:space-between;align-items:center}.t-progress--plump{height:var(--td-comp-size-xxs);border-radius:calc(var(--td-comp-size-xxs) / 2);display:flex;align-items:center}.t-progress--plump .t-progress__info{font-size:var(--td-font-size-body-small)}.t-progress--over-ten .t-progress__info{position:absolute;top:50%;z-index:10;right:var(--td-comp-margin-s);color:var(--td-text-color-anti);transform:translateY(-50%)}.t-progress--under-ten .t-progress__info,.t-progress--under-ten .t-progress__inner{display:inline-block}.t-progress--under-ten .t-progress__info{vertical-align:top}.t-progress--circle{position:relative}.t-progress--circle .t-progress__info{position:absolute;display:block;top:50%;left:50%;width:100%;margin:0;font-size:inherit;font-weight:600;line-height:1;text-align:center;transform:translate(-50%,-50%)}.t-progress--circle .t-progress__circle-outer{stroke:var(--td-bg-color-component)}.t-progress--circle .t-progress__circle-inner{stroke:var(--td-brand-color);transition:all .2s cubic-bezier(.38,0,.24,1)}.t-progress--circle .t-progress__icon{font-size:2.4em}.t-progress--status--active .t-progress__inner:before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:"";animation:progress-active-animation 2s cubic-bezier(.23,.99,.86,.2) infinite;background:var(--td-text-color-anti);opacity:.2}.t-progress--status--success .t-progress__inner{background:var(--td-success-color)}.t-progress--status--success .t-progress__circle-inner{stroke:var(--td-success-color)}.t-progress--status--success .t-progress__icon{color:var(--td-success-color)}.t-progress--status--warning .t-progress__inner{background:var(--td-warning-color)}.t-progress--status--warning .t-progress__circle-inner{stroke:var(--td-warning-color)}.t-progress--status--warning .t-progress__icon{color:var(--td-warning-color)}.t-progress--status--error .t-progress__inner{background:var(--td-error-color)}.t-progress--status--error .t-progress__circle-inner{stroke:var(--td-error-color)}.t-progress--status--error .t-progress__icon{color:var(--td-error-color)}@keyframes progress-active-animation{0%{width:0;opacity:.1}35%{width:50%;opacity:.4}to{width:100%;opacity:0}}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{aC as o,J as e,aD as n,aE as _,aF as i,aG as b,a6 as h,R as t,aH as m,aI as y}from"./index-hu9MEe3D.js";import{aK as L,aM as E,aJ as f,aL as z,a4 as I}from"./index-hu9MEe3D.js";import{P as x}from"./index-CJy2IilV.js";/**
|
|
2
|
+
* @license lucide-react v0.562.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/const u=[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]],k=o("cpu",u);function j({assetCount:a,storageStatus:r}){var c,l;const d=((c=r==null?void 0:r.quota)==null?void 0:c.percentUsed)||0,s=((l=r==null?void 0:r.quota)==null?void 0:l.usage)||0;return e.jsxs("div",{className:"storage-bar",children:[e.jsxs("div",{className:"storage-bar__header",children:[e.jsxs("div",{className:"storage-bar__header-left",children:[e.jsx(n,{size:14,className:"storage-bar__icon"}),e.jsx("span",{className:"storage-bar__title",children:"本地存储空间"})]}),e.jsxs("span",{className:"storage-bar__count",children:[a," 个素材"]})]}),e.jsx("div",{className:"storage-bar__usage",children:e.jsxs("span",{className:"storage-bar__usage-value",children:["已用:",_(s)]})}),e.jsx(x,{percentage:d,size:"small",strokeWidth:6,label:!1})]})}function M({filters:a,assetCount:r,storageStatus:d,onFilterChange:s}){return e.jsxs("div",{className:"media-library-sidebar",children:[e.jsxs("div",{className:"media-library-sidebar__section",children:[e.jsx("h3",{className:"media-library-sidebar__title",children:"类型"}),e.jsxs("div",{className:"media-library-sidebar__buttons",children:[e.jsxs(i,{variant:a.activeType==="ALL"?"base":"outline",onClick:()=>s({activeType:"ALL"}),block:!0,theme:"default","data-track":"sidebar_filter_type_all",children:[e.jsx(b,{size:16}),e.jsx("span",{children:"全部素材"})]}),e.jsxs(i,{variant:a.activeType===t.IMAGE?"base":"outline",onClick:()=>s({activeType:t.IMAGE}),block:!0,theme:"default","data-track":"sidebar_filter_type_image",children:[e.jsx(h,{size:16}),e.jsx("span",{children:"图片"})]}),e.jsxs(i,{variant:a.activeType===t.VIDEO?"base":"outline",onClick:()=>s({activeType:t.VIDEO}),block:!0,theme:"default","data-track":"sidebar_filter_type_video",children:[e.jsx(m,{size:16}),e.jsx("span",{children:"视频"})]})]})]}),e.jsxs("div",{className:"media-library-sidebar__section",children:[e.jsx("h3",{className:"media-library-sidebar__title",children:"来源"}),e.jsxs("div",{className:"media-library-sidebar__buttons",children:[e.jsxs(i,{variant:a.activeSource==="ALL"?"base":"outline",onClick:()=>s({activeSource:"ALL"}),block:!0,theme:"default","data-track":"sidebar_filter_source_all",children:[e.jsx(y,{size:16}),e.jsx("span",{children:"全部来源"})]}),e.jsxs(i,{variant:a.activeSource==="LOCAL"?"base":"outline",onClick:()=>s({activeSource:"LOCAL"}),block:!0,theme:"default","data-track":"sidebar_filter_source_local",children:[e.jsx(n,{size:16}),e.jsx("span",{children:"本地上传"})]}),e.jsxs(i,{variant:a.activeSource==="AI"?"base":"outline",onClick:()=>s({activeSource:"AI"}),block:!0,theme:"default","data-track":"sidebar_filter_source_ai",children:[e.jsx(k,{size:16}),e.jsx("span",{children:"AI生成"})]})]})]}),e.jsxs("div",{className:"media-library-sidebar__section",children:[e.jsx("h3",{className:"media-library-sidebar__title",children:"排序"}),e.jsxs("div",{className:"media-library-sidebar__buttons",children:[e.jsx(i,{variant:a.sortBy==="DATE_DESC"?"base":"outline",onClick:()=>s({sortBy:"DATE_DESC"}),block:!0,size:"small",theme:"default","data-track":"sidebar_sort_date_desc",children:"最新优先"}),e.jsx(i,{variant:a.sortBy==="DATE_ASC"?"base":"outline",onClick:()=>s({sortBy:"DATE_ASC"}),block:!0,size:"small",theme:"default","data-track":"sidebar_sort_date_asc",children:"最旧优先"}),e.jsx(i,{variant:a.sortBy==="NAME_ASC"?"base":"outline",onClick:()=>s({sortBy:"NAME_ASC"}),block:!0,size:"small",theme:"default","data-track":"sidebar_sort_name_asc",children:"名称排序"}),e.jsx(i,{variant:a.sortBy==="SIZE_DESC"?"base":"outline",onClick:()=>s({sortBy:"SIZE_DESC"}),block:!0,size:"small",theme:"default","data-track":"sidebar_sort_size_desc",children:"大小排序"})]})]}),e.jsx("div",{className:"media-library-sidebar__section media-library-sidebar__section--storage",children:e.jsx(j,{assetCount:r,storageStatus:d})})]})}export{L as AssetItem,E as MediaLibraryEmpty,f as MediaLibraryGrid,z as MediaLibraryInspector,I as MediaLibraryModal,M as MediaLibrarySidebar,j as MediaLibraryStorageBar};
|