@spacecorexdev/filemanager 0.1.0 → 0.2.0
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/dist/index.js +198 -197
- package/dist/ui/index.js +198 -197
- package/package.json +2 -2
- package/types/ui/FileManager/FileContextMenu.d.ts +2 -0
- package/types/ui/FileManager/FileGridView.d.ts +1 -0
- package/types/ui/FileManager/FileTableView.d.ts +1 -0
- package/types/ui/FileManager/hooks/useFileManagerActions.d.ts +2 -0
- package/types/ui/FileManager/index.d.ts +2 -0
package/dist/ui/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
var Ka=Object.defineProperty;var Yl=(e,t,r)=>t in e?Ka(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Xe=(e,t)=>()=>(e&&(t=e(e=0)),t);var Qt=(e,t)=>{for(var r in t)Ka(e,r,{get:t[r],enumerable:!0})};var pn=(e,t,r)=>Yl(e,typeof t!="symbol"?t+"":t,r);import ec from"dexie";import*as Ga from"febs-browser";var zo,Dt,tc,Ho,Xa,Qr,nc,rc,oc,ac,sc,ic,He,lc,cc,dc,uc,pc,jn,eo=Xe(()=>{"use strict";zo=class extends ec{constructor(){super("FileContentDB");pn(this,"fileCache");pn(this,"fileMeta");this.version(1).stores({fileCache:"id, fileId, crc32, fileSize, updateTime"}),this.version(2).stores({fileCache:"id, fileId, crc32, fileSize, updateTime",fileMeta:"id, fileId, projectId, updateTime"})}},Dt=new zo,tc=async e=>new Promise((t,r)=>{let o=new File([e],"temp");Ga.crypt.crc32_file(o,a=>{a===0?r(new Error("CRC32 \u8BA1\u7B97\u5931\u8D25")):t(a)})}),Ho=async e=>{try{let t=await Dt.fileCache.where("fileId").equals(e).toArray();return t.length>0?t[0]:void 0}catch(t){console.error("\u8BFB\u53D6\u6587\u4EF6\u7F13\u5B58\u5931\u8D25:",t);return}},Xa=async(e,t,r,o,a)=>{try{let s=r??await tc(t),i=o??t.size,c=a??t.type??"",n=await t.arrayBuffer();await Dt.fileCache.where("fileId").equals(e).delete();let l={id:e,fileId:e,content:n,crc32:s,fileSize:i,contentType:c,updateTime:Date.now()};await Dt.fileCache.put(l)}catch(s){console.error("\u5199\u5165\u6587\u4EF6\u7F13\u5B58\u5931\u8D25:",s)}},Qr=async e=>{try{await Dt.fileCache.where("fileId").equals(e).delete()}catch(t){console.error("\u5220\u9664\u6587\u4EF6\u7F13\u5B58\u5931\u8D25:",t)}},nc=async e=>await Ho(e)!==void 0,rc=async e=>{let t=await Ho(e);if(!t)return console.log("[CacheFileContent] getCachedContent: \u65E0\u7F13\u5B58\u8BB0\u5F55 fileId=",e),null;let r=t.contentType??"",o;if(t.content instanceof ArrayBuffer)o=new Blob([t.content],{type:r}),console.log("[CacheFileContent] getCachedContent: fileId=",e,"[ArrayBuffer] byteLength=",t.content.byteLength,"reconstructedBlob.size=",o.size,"contentType=",r);else if(t.content instanceof Blob){let a=t.content;if(a.size===0)return console.warn("[CacheFileContent] getCachedContent: \u65E7 Blob \u5DF2\u635F\u574F (size=0)\uFF0C\u5C06\u5220\u9664\u7F13\u5B58\u5E76\u91CD\u65B0\u4E0B\u8F7D"),await Qr(e),null;try{let s=await a.arrayBuffer();o=new Blob([s],{type:r||a.type}),console.log("[CacheFileContent] getCachedContent: fileId=",e,"[Blob\u2192ArrayBuffer] size=",o.size,"contentType=",r),await Xa(e,o,t.crc32,t.fileSize,r||a.type)}catch(s){return console.warn("[CacheFileContent] getCachedContent: \u65E7 Blob \u8BFB\u53D6\u5931\u8D25\uFF0C\u5220\u9664\u7F13\u5B58:",s),await Qr(e),null}}else return console.warn("[CacheFileContent] getCachedContent: \u672A\u77E5 content \u7C7B\u578B\uFF0C\u5220\u9664\u7F13\u5B58"),await Qr(e),null;return{content:o,crc32:t.crc32,contentType:r}},oc=async(e,t)=>{let r=await Ho(e);if(!r)return console.log("[CacheFileContent] validateCache: \u65E0\u7F13\u5B58\u8BB0\u5F55 fileId=",e),!1;let o=r.crc32,a=t,s=o===a;return s||console.warn("[CacheFileContent] validateCache: crc32 \u4E0D\u5339\u914D","stored=",o,typeof o,"expected=",a,typeof a),s},ac=async()=>{try{await Dt.fileCache.clear(),await Dt.fileMeta.clear()}catch(e){console.error("\u6E05\u9664\u6240\u6709\u6587\u4EF6\u7F13\u5B58\u5931\u8D25:",e)}},sc=async()=>{try{let e=await Dt.fileCache.toArray();if(e.length===0)return{fileCount:0,totalSize:0,oldestTime:null,newestTime:null};let t=e.reduce((o,a)=>o+a.fileSize,0),r=e.map(o=>o.updateTime);return{fileCount:e.length,totalSize:t,oldestTime:Math.min(...r),newestTime:Math.max(...r)}}catch(e){return console.error("\u83B7\u53D6\u6587\u4EF6\u7F13\u5B58\u7EDF\u8BA1\u5931\u8D25:",e),{fileCount:0,totalSize:0,oldestTime:null,newestTime:null}}},ic=async()=>{try{return(await Dt.fileCache.toArray()).map(t=>({fileId:t.fileId,crc32:t.crc32,fileSize:t.fileSize,updateTime:t.updateTime}))}catch(e){return console.error("\u83B7\u53D6\u6587\u4EF6\u7F13\u5B58\u5217\u8868\u5931\u8D25:",e),[]}},He={saveToCache:Xa,removeFromCache:Qr,hasCache:nc,getCachedContent:rc,validateCache:oc,clearAllCache:ac,getCacheStats:sc,getCacheList:ic},lc=async(e,t)=>{try{if(!t||t.length===0)return;let r=Date.now(),o=t.map(a=>({id:a.id,fileId:a.id,projectId:e,meta:a,updateTime:r}));await Dt.fileMeta.bulkPut(o)}catch(r){console.error("\u6279\u91CF\u4FDD\u5B58\u6587\u4EF6\u5143\u6570\u636E\u7F13\u5B58\u5931\u8D25:",r)}},cc=async(e,t)=>{try{await Dt.fileMeta.put({id:t.id,fileId:t.id,projectId:e,meta:t,updateTime:Date.now()})}catch(r){console.error("\u4FDD\u5B58\u6587\u4EF6\u5143\u6570\u636E\u7F13\u5B58\u5931\u8D25:",r)}},dc=async e=>{try{return(await Dt.fileMeta.where("projectId").equals(e).toArray()).map(r=>r.meta)}catch(t){return console.error("\u5217\u51FA\u9879\u76EE\u6587\u4EF6\u5143\u6570\u636E\u7F13\u5B58\u5931\u8D25:",t),[]}},uc=async e=>{try{let t=await Dt.fileMeta.where("fileId").equals(e).toArray();return t.length>0?t[0].meta:void 0}catch(t){console.error("\u83B7\u53D6\u6587\u4EF6\u5143\u6570\u636E\u7F13\u5B58\u5931\u8D25:",t);return}},pc=async e=>{try{await Dt.fileMeta.where("fileId").equals(e).delete()}catch(t){console.error("\u5220\u9664\u6587\u4EF6\u5143\u6570\u636E\u7F13\u5B58\u5931\u8D25:",t)}},jn={saveFileMetaBatch:lc,saveFileMeta:cc,listFileMetaByProject:dc,getFileMeta:uc,removeFileMeta:pc}});import{AuthorizationHandler as Qa,ResponseCode as fc}from"@spacecorexdev/core/api";import*as no from"febs-browser";import{FileExcelFilled as mc,FileImageFilled as hc,FileMarkdownFilled as gc,FileOutlined as yc,FilePdfFilled as wc,FilePptFilled as bc,FileWordFilled as vc,FileZipFilled as _c,FolderFilled as qa,FolderOpenFilled as Ya,VideoCameraFilled as xc,FileTextFilled as Ja}from"@ant-design/icons";import{uiToast as tn,UIToastSingle as to}from"@spacecorexdev/core/ui";import{API as Sc}from"@spacecorexdev/core/api";import{jsx as St,jsxs as Ec}from"react/jsx-runtime";var es,ts,ns,kn,rr,rs,Rt,ro,oo,fn=Xe(()=>{"use strict";eo();es=["zip","zipx","7z","rar","tar","gz","gzip","tgz","bz2","bzip2","tbz","tbz2","xz","txz","lzma","zst","tzst","cab","ar","cpio","iso","xar","lha","lzh","jar","war","ear","apk","cbz","cbr"],ts=["dwg","dxf","dwf","dwfx","xps","oxps"],ns=e=>{let t=e;if(/^https?:\/\//i.test(e))try{t=new URL(e).pathname}catch{t=e.split(/[?#]/)[0]||""}else{let o=e.indexOf("?");o!==-1&&(t=e.substring(0,o))}return t.split(".").pop()?.toLowerCase()||""},kn=e=>{if(!e)return"";if(/^https?:\/\//i.test(e))return e;let t=e.lastIndexOf("/");if(t!==-1){let r=e.substring(t+1),o=e.substring(0,t+1);r=encodeURIComponent(r),e=`${o}${r}`}return e.startsWith("/")?`${import.meta.env.VITE_API_BASE}${e}`:`${import.meta.env.VITE_API_BASE}/${e}`},rr=e=>{if(!e||e.length===0)return"unknown";let t=ns(e),r="";return["jpg","jpeg","png","gif","bmp","svg","webp"].includes(t)||r.startsWith("image/")?"image":t==="pdf"||r.includes("pdf")?"pdf":["doc","docx","dot","dotx"].includes(t)||r.includes("word")||r.includes("msword")?"word":["ppt","pptx","pps","ppsx"].includes(t)||r.includes("powerpoint")||r.includes("presentation")?"ppt":["xls","xlsx","csv","xlsm","xlsb"].includes(t)||r.includes("excel")||r.includes("spreadsheet")?"excel":["md","markdown"].includes(t)||r.includes("markdown")?"markdown":t==="rdoc"?"richdoc":["mp4","mov","avi","mkv","webm","flv","wmv","mpeg","ogg"].includes(t)||r.startsWith("video/")?"video":es.includes(t)?"archive":ts.includes(t)?"cad":"unknown"},rs=({fileName:e,fileType:t,isExpanded:r=!1,isSecure:o=!1,isVirtualContractFolder:a=!1,isContractSubfolder:s=!1,isContractTagFolder:i=!1,contractSigned:c,size:n=22})=>{let l={fontSize:n,width:n,height:n};if(t==="folder"){if(a||s||i){let w=s&&c===!1?"#9ca3af":"#367f12";return r?St(Ya,{style:{...l,color:w}}):St(qa,{style:{...l,color:w}})}return r?St(Ya,{style:{...l,color:o?"rgb(240 100 80)":"#1890ff"}}):St(qa,{style:{...l,color:o?"rgb(240 100 80)":"#1890ff"}})}let d=ns(e),p=t?.toLowerCase()||"";return d==="pdf"||p.includes("pdf")?St(wc,{style:{...l,color:"#e53935"}}):["doc","docx","dot","dotx"].includes(d)||p.includes("word")||p.includes("msword")?St(vc,{style:{...l,color:"#1e88e5"}}):["ppt","pptx","pps","ppsx"].includes(d)||p.includes("powerpoint")||p.includes("presentation")?St(bc,{style:{...l,color:"#f97316"}}):["xls","xlsx","csv","xlsm","xlsb"].includes(d)||p.includes("excel")||p.includes("spreadsheet")?St(mc,{style:{...l,color:"#43a047"}}):["md","markdown"].includes(d)?St(gc,{style:{...l,color:"#333"}}):d==="rdoc"?St(Ja,{style:{...l,color:"#f9aa16"}}):p.startsWith("image/")||["jpg","jpeg","png","gif","bmp","svg","webp"].includes(d)?St(hc,{style:{...l,color:"#8e24aa"}}):p.startsWith("video/")||["mp4","mov","avi","mkv","webm"].includes(d)?St(xc,{style:{...l,color:"#3949ab"}}):es.includes(d)?St(_c,{style:{...l,color:"#8b5cf6"}}):ts.includes(d)?St(Ja,{style:{...l,color:"#00acc1"}}):St(yc,{style:{...l,color:"#757575"}})},Rt=(e,t)=>{let r=URL.createObjectURL(e),o=document.createElement("a");o.href=r,o.download=t,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(r)},ro=async(e,t,r,o)=>{let a=kn(e);if(!a)throw new Error("\u6587\u4EF6\u8D44\u6E90\u8DEF\u5F84\u4E0D\u53EF\u7528");let s=t||e.split("/").pop()||"downloaded_file";if(r)try{if(o!==void 0){if(await He.validateCache(r,o)){let l=await He.getCachedContent(r);if(l){console.log("[downloadFile] \u4F7F\u7528\u672C\u5730\u7F13\u5B58\u4E0B\u8F7D"),Rt(l.content,s),tn.success("\u6587\u4EF6\u5DF2\u4E0B\u8F7D\uFF0C\u8BF7\u67E5\u770B\u6D4F\u89C8\u5668\u7684\u4E0B\u8F7D\u6587\u4EF6\u5939");return}}}else{let n=await He.getCachedContent(r);if(n){console.log("[downloadFile] \u4F7F\u7528\u672C\u5730\u7F13\u5B58\u4E0B\u8F7D\uFF08\u65E0CRC\u6821\u9A8C\uFF09"),Rt(n.content,s),tn.success("\u6587\u4EF6\u5DF2\u4E0B\u8F7D\uFF0C\u8BF7\u67E5\u770B\u6D4F\u89C8\u5668\u7684\u4E0B\u8F7D\u6587\u4EF6\u5939");return}}}catch(n){console.error("[downloadFile] \u8BFB\u53D6\u7F13\u5B58\u5931\u8D25\uFF0C\u5C06\u4ECE\u7F51\u7EDC\u4E0B\u8F7D:",n)}console.log("[downloadFile] \u4ECE\u7F51\u7EDC\u4E0B\u8F7D");let i={};i.set=(n,l)=>{i[n]=l},Qa.requestHandleSid({headers:i}),tn.info("\u5373\u5C06\u5F00\u59CB\u4E0B\u8F7D\uFF0C\u8BF7\u7A0D\u540E...");let c=new no.net.AbortController;try{let n=await no.net.fetch(a,{headers:{Authorization:i.Authorization||""},credentials:"include",mode:"cors",timeout:Number(import.meta.env.VITE_API_FILEVIEW_TIMEOUT)||1e5,signal:c.signal,progress:p=>{to.info({key:a,message:Ec("div",{children:["\u4E0B\u8F7D\u8FDB\u5EA6: ",Math.floor(p*100)," %"]}),duration:p>=1?2:0,onClose:()=>{c&&c.abort()}})}});if(!n.ok)throw to.close(a),n.status==402?(tn.error("\u65E0\u6743\u67E5\u770B\u6B64\u6587\u4EF6"),new Error("\u65E0\u6743\u67E5\u770B\u6B64\u6587\u4EF6")):(tn.error(`\u6587\u4EF6\u52A0\u8F7D\u5931\u8D25\uFF0C\u72B6\u6001\u7801 ${n.status}`),new Error(`\u6587\u4EF6\u52A0\u8F7D\u5931\u8D25\uFF0C\u72B6\u6001\u7801 ${n.status}`));let l=await n.arrayBuffer();c=null,to.close(a);let d=new Blob([l],{type:n.headers.get("Content-Type")||"application/octet-stream"});if(r)try{await He.saveToCache(r,d,o,d.size,d.type),console.log("[downloadFile] \u5DF2\u4FDD\u5B58\u5230\u672C\u5730\u7F13\u5B58")}catch(p){console.error("[downloadFile] \u4FDD\u5B58\u5230\u7F13\u5B58\u5931\u8D25:",p)}Rt(d,s),tn.success("\u6587\u4EF6\u5DF2\u4E0B\u8F7D\uFF0C\u8BF7\u67E5\u770B\u6D4F\u89C8\u5668\u7684\u4E0B\u8F7D\u6587\u4EF6\u5939")}catch(n){c=null,to.close(a);let l=n?.message;if(!(l&&/^无权查看此文件|^文件加载失败,状态码/.test(l))){let p=l||String(n)||"\u672A\u77E5\u9519\u8BEF";tn.error(`\u6587\u4EF6\u4E0B\u8F7D\u5931\u8D25\uFF1A${p}`)}throw console.error("[downloadFile] \u4E0B\u8F7D\u5931\u8D25:",n,"url:",a),n}},oo=async(e,t,r,o,a,s,i)=>{let c=kn(e);if(!c)throw new Error("\u6587\u4EF6\u8D44\u6E90\u8DEF\u5F84\u4E0D\u53EF\u7528");let n=s,l=a?.startsWith("contract-file-");if(a&&!l)try{let h=i?await i(a):await Sc.project.file.getDetail({fileId:a});if(h?.code===fc.SUCCESS&&h.data){let _=h.data.crc32;_!=null&&(n=_),h.data.projectId&&jn.saveFileMeta(h.data.projectId,h.data).catch(b=>console.warn("\u6301\u4E45\u5316\u5355\u6761\u6587\u4EF6\u5143\u6570\u636E\u7F13\u5B58\u5931\u8D25:",b))}}catch(h){console.error("\u83B7\u53D6\u6587\u4EF6\u8BE6\u60C5\u5931\u8D25:",h)}if(a&&!l){let h=null;if(n!=null)if(await He.validateCache(a,n)){if(h=await He.getCachedContent(a),h)if(h.content.size===0)console.warn("[fetchFileBuffer] \u7F13\u5B58 Blob \u4E3A\u7A7A\uFF08size=0\uFF09\uFF0CSafari IndexedDB \u53EF\u80FD\u5DF2\u635F\u574F\uFF0C\u5220\u9664\u7F13\u5B58\u5E76\u4ECE\u7F51\u7EDC\u52A0\u8F7D"),await He.removeFromCache(a);else try{let x=(await h.content.arrayBuffer()).slice(0);console.log("[fetchFileBuffer] \u7F13\u5B58\u547D\u4E2D\uFF08detail crc32 \u6821\u9A8C\u901A\u8FC7\uFF09\uFF0Csize:",x.byteLength,"\u8DF3\u8FC7\u6587\u4EF6\u8D44\u6E90\u8BF7\u6C42");let S=new Headers;return h.contentType&&S.set("Content-Type",h.contentType),{buffer:x,headers:S,status:200,fromCache:!0}}catch(b){console.warn("[fetchFileBuffer] \u8BFB\u53D6\u7F13\u5B58 Blob \u5931\u8D25\uFF08Safari \u53EF\u80FD\u635F\u574F\uFF09\uFF0C\u5220\u9664\u7F13\u5B58\u5E76\u4ECE\u7F51\u7EDC\u52A0\u8F7D:",b),await He.removeFromCache(a)}}else console.log("[fetchFileBuffer] \u7F13\u5B58 crc32 \u4E0E\u670D\u52A1\u5668\u4E0D\u4E00\u81F4\uFF0C\u5C06\u4ECE\u7F51\u7EDC\u52A0\u8F7D\u6700\u65B0\u6587\u4EF6");else console.log("[fetchFileBuffer] \u65E0\u6CD5\u6821\u9A8C crc32\uFF08\u670D\u52A1\u5668\u672A\u8FD4\u56DE\uFF09\uFF0C\u8DF3\u8FC7\u7F13\u5B58\u68C0\u67E5\uFF0C\u5C06\u4ECE\u7F51\u7EDC\u52A0\u8F7D")}let d={};d.set=(h,_)=>{d[h]=_},Qa.requestHandleSid({headers:d});let p;try{p=await no.net.fetch(c+(t?`?tempToken=${t}`:""),{headers:{Authorization:d.Authorization||""},credentials:"include",mode:"cors",timeout:Number(import.meta.env.VITE_API_FILEVIEW_TIMEOUT)||1e5,progress:h=>o?.(Math.floor(h*100)),signal:r?r.signal:null})}catch(h){let _=h?.message||String(h)||"\u672A\u77E5\u9519\u8BEF";throw tn.error(`\u6587\u4EF6\u52A0\u8F7D\u5931\u8D25\uFF1A${_}`),console.error("[fetchFileBuffer] \u7F51\u7EDC\u8BF7\u6C42\u5931\u8D25:",h,"url:",c),h}if(!p.ok)throw p.status==402?(tn.error("\u65E0\u6743\u67E5\u770B\u6B64\u6587\u4EF6"),new Error("\u65E0\u6743\u67E5\u770B\u6B64\u6587\u4EF6")):(tn.error(`\u6587\u4EF6\u52A0\u8F7D\u5931\u8D25\uFF0C\u72B6\u6001\u7801 ${p.status}`),new Error(`\u6587\u4EF6\u52A0\u8F7D\u5931\u8D25\uFF0C\u72B6\u6001\u7801 ${p.status}`));let w=await p.arrayBuffer();if(a){let h=p.headers?.get?.("Content-Type")||"",_=new Blob([w],{type:h});await He.saveToCache(a,_,n,_.size,h)}return{buffer:w,headers:p.headers,status:p.status,fromCache:!1}}});function nn(){return new Promise((e,t)=>{let r=indexedDB.open(Ac,2);r.onerror=()=>{t(new Error("\u6253\u5F00 IndexedDB \u5931\u8D25"))},r.onsuccess=()=>{e(r.result)},r.onupgradeneeded=o=>{let a=o.target.result;if(!a.objectStoreNames.contains(ar)){let s=a.createObjectStore(ar,{keyPath:"id"});s.createIndex("userId","userId",{unique:!1}),s.createIndex("fileName","fileName",{unique:!1}),s.createIndex("fileType","fileType",{unique:!1}),s.createIndex("userId_fileName_type",["userId","fileName","fileType"],{unique:!0})}if(!a.objectStoreNames.contains(ft)){let s=a.createObjectStore(ft,{keyPath:"localId"});s.createIndex("userId","userId",{unique:!1}),s.createIndex("projectId","projectId",{unique:!1}),s.createIndex("userId_projectId",["userId","projectId"],{unique:!1}),s.createIndex("userId_serverFileId",["userId","serverFileId"],{unique:!1}),s.createIndex("serverFileId","serverFileId",{unique:!1})}}})}async function $t(e,t,r,o){try{let a=await nn(),i=a.transaction(ar,"readwrite").objectStore(ar),c={id:`${e}_${t}_${r}`,userId:e,fileName:t,fileType:r,data:o,updatedAt:Date.now()};return new Promise((n,l)=>{let d=i.put(c);d.onsuccess=()=>{a.close(),n()},d.onerror=()=>{a.close(),l(new Error("\u4FDD\u5B58\u6587\u4EF6\u5931\u8D25"))}})}catch(a){throw console.error("\u4FDD\u5B58\u6587\u4EF6\u5230 IndexedDB \u5931\u8D25:",a),a}}async function Pn(e,t,r){try{let o=await nn(),s=o.transaction(ar,"readwrite").objectStore(ar);return new Promise((i,c)=>{let n=s.delete(`${e}_${t}_${r}`);n.onsuccess=()=>{o.close(),i()},n.onerror=()=>{o.close(),c(new Error("\u5220\u9664\u6587\u4EF6\u5931\u8D25"))}})}catch(o){throw console.error("\u4ECE IndexedDB \u5220\u9664\u6587\u4EF6\u5931\u8D25:",o),o}}function cs(){return`local_${Date.now()}_${Math.random().toString(36).slice(2,10)}`}function so(e){return typeof e=="string"?new Blob([e]).size:e.byteLength}async function ds(e){let t=Date.now(),r={localId:cs(),userId:e.userId,projectId:e.projectId,parentId:e.parentId,fileName:e.fileName,fileType:e.fileType,serverFileId:null,isLocalOnly:!0,hasUnsyncedChanges:!0,originalServerFile:null,content:e.content,fileSize:so(e.content),createdAt:t,updatedAt:t};try{let o=await nn(),s=o.transaction(ft,"readwrite").objectStore(ft);return new Promise((i,c)=>{let n=s.put(r);n.onsuccess=()=>{o.close(),i(r)},n.onerror=()=>{o.close(),c(new Error("\u521B\u5EFA\u672C\u5730\u6587\u4EF6\u5931\u8D25"))}})}catch(o){throw console.error("\u521B\u5EFA\u672C\u5730\u6587\u4EF6\u5931\u8D25:",o),o}}async function sr(e){try{let t=await jo(e.userId,e.serverFileId),r=Date.now(),o=e.markUnsynced??!0,a=t?{...t,fileName:e.fileName,fileType:e.fileType,parentId:e.parentId,content:e.content,fileSize:so(e.content),hasUnsyncedChanges:o,originalServerFile:e.originalServerFile||t.originalServerFile,originalContent:t.originalContent??e.originalContent,updatedAt:r}:{localId:cs(),userId:e.userId,projectId:e.projectId,parentId:e.parentId,fileName:e.fileName,fileType:e.fileType,serverFileId:e.serverFileId,isLocalOnly:!1,hasUnsyncedChanges:o,originalServerFile:e.originalServerFile,originalContent:e.originalContent,content:e.content,fileSize:so(e.content),createdAt:r,updatedAt:r},s=await nn(),c=s.transaction(ft,"readwrite").objectStore(ft);return new Promise((n,l)=>{let d=c.put(a);d.onsuccess=()=>{s.close(),n(a)},d.onerror=()=>{s.close(),l(new Error("\u4FDD\u5B58\u672C\u5730\u672A\u540C\u6B65\u6587\u4EF6\u5931\u8D25"))}})}catch(t){throw console.error("\u4FDD\u5B58\u672C\u5730\u672A\u540C\u6B65\u6587\u4EF6\u5931\u8D25:",t),t}}async function Uo(e,t,r,o=!0){try{let a=await Mn(e);if(!a)return null;let s={...a,content:t,fileSize:so(t),fileName:r??a.fileName,hasUnsyncedChanges:o,updatedAt:Date.now()},i=await nn(),n=i.transaction(ft,"readwrite").objectStore(ft);return new Promise((l,d)=>{let p=n.put(s);p.onsuccess=()=>{i.close(),l(s)},p.onerror=()=>{i.close(),d(new Error("\u66F4\u65B0\u672C\u5730\u6587\u4EF6\u5185\u5BB9\u5931\u8D25"))}})}catch(a){return console.error("\u66F4\u65B0\u672C\u5730\u6587\u4EF6\u5185\u5BB9\u5931\u8D25:",a),null}}async function Mn(e){try{let t=await nn(),o=t.transaction(ft,"readonly").objectStore(ft);return new Promise((a,s)=>{let i=o.get(e);i.onsuccess=()=>{t.close(),a(i.result||null)},i.onerror=()=>{t.close(),s(new Error("\u83B7\u53D6\u672C\u5730\u6587\u4EF6\u5931\u8D25"))}})}catch(t){return console.error("\u83B7\u53D6\u672C\u5730\u6587\u4EF6\u5931\u8D25:",t),null}}async function jo(e,t){try{let r=await nn(),s=r.transaction(ft,"readonly").objectStore(ft).index("userId_serverFileId");return new Promise((i,c)=>{let n=s.get([e,t]);n.onsuccess=()=>{r.close(),i(n.result||null)},n.onerror=()=>{r.close(),c(new Error("\u67E5\u627E\u672C\u5730\u672A\u540C\u6B65\u6587\u4EF6\u5931\u8D25"))}})}catch(r){return console.error("\u67E5\u627E\u672C\u5730\u672A\u540C\u6B65\u6587\u4EF6\u5931\u8D25:",r),null}}async function us(e,t){try{let r=await nn(),s=r.transaction(ft,"readonly").objectStore(ft).index("userId_projectId");return new Promise((i,c)=>{let n=s.getAll([e,t]);n.onsuccess=()=>{r.close(),i(n.result||[])},n.onerror=()=>{r.close(),c(new Error("\u5217\u51FA\u672C\u5730\u6587\u4EF6\u5931\u8D25"))}})}catch(r){return console.error("\u5217\u51FA\u672C\u5730\u6587\u4EF6\u5931\u8D25:",r),[]}}async function xr(e,t){try{let r=await Mn(e);if(!r)return;let o=await nn(),s=o.transaction(ft,"readwrite").objectStore(ft);if(r.isLocalOnly)return new Promise((i,c)=>{let n=s.delete(e);n.onsuccess=()=>{o.close(),i()},n.onerror=()=>{o.close(),c(new Error("\u5220\u9664\u5DF2\u4E0A\u4F20\u672C\u5730\u6587\u4EF6\u8BB0\u5F55\u5931\u8D25"))}});{let i={...r,hasUnsyncedChanges:!1,serverFileId:t||r.serverFileId,updatedAt:Date.now()};return new Promise((c,n)=>{let l=s.put(i);l.onsuccess=()=>{o.close(),c()},l.onerror=()=>{o.close(),n(new Error("\u6807\u8BB0\u540C\u6B65\u5931\u8D25"))}})}}catch(r){console.error("\u6807\u8BB0\u672C\u5730\u6587\u4EF6\u540C\u6B65\u5931\u8D25:",r)}}async function In(e){try{let t=await nn(),o=t.transaction(ft,"readwrite").objectStore(ft);return new Promise((a,s)=>{let i=o.delete(e);i.onsuccess=()=>{t.close(),a()},i.onerror=()=>{t.close(),s(new Error("\u5220\u9664\u672C\u5730\u6587\u4EF6\u5931\u8D25"))}})}catch(t){console.error("\u5220\u9664\u672C\u5730\u6587\u4EF6\u5931\u8D25:",t)}}var Ac,ar,ft,Vn=Xe(()=>{"use strict";Ac="FileEditorDB",ar="files",ft="localFiles"});function Wt(e,{insertAt:t}={}){if(!e||typeof document>"u")return;let r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",t==="top"&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}var ir=Xe(()=>{"use strict"});var gs={};Qt(gs,{PdfPreview:()=>Hc});import{useCallback as Nc,useEffect as Lc,useMemo as ps,useRef as Vo}from"react";import{FileViewer as Bc}from"@file-viewer/react";import{pdfRenderer as Oc}from"@file-viewer/renderer-pdf";import{jsx as ms,jsxs as Uc}from"react/jsx-runtime";var hs,$c,zc,fs,Hc,ys=Xe(()=>{"use strict";hs="reading-progress:",$c=500,zc=e=>{try{let t=localStorage.getItem(hs+e);if(t)return JSON.parse(t).state}catch{}},fs=(e,t)=>{try{let r={state:t,savedAt:Date.now()};localStorage.setItem(hs+e,JSON.stringify(r))}catch{}},Hc=({file:e,progressKey:t})=>{let r=Vo(null),o=Vo(null),a=Vo(t);a.current=t;let s=ps(()=>{if(t)return zc(t)},[t]),i=Nc(l=>{if(l.type!=="view-state-change"||!t)return;let d=l.payload;d?.state&&(r.current=d.state,o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{r.current&&fs(t,r.current)},$c))},[t]);Lc(()=>()=>{o.current&&(clearTimeout(o.current),o.current=null);let l=a.current;l&&r.current&&fs(l,r.current)},[]);let c=[Oc],n=ps(()=>({locale:"zh-CN",rendererMode:"replace",renderers:c,theme:"light",toolbar:{position:"bottom-right",download:!1,print:!1,exportHtml:!1},pdf:{cMapUrl:"/cmaps/",defaultNavigationVisible:!1},initialViewState:s}),[s]);return Uc("div",{className:"ui-file-preview-pdf","data-global-context-menu-ignore":"true",children:[ms("style",{children:`.pdf-toolbar {
|
|
1
|
+
var Va=Object.defineProperty;var zl=(e,t,n)=>t in e?Va(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var it=(e,t)=>()=>(e&&(t=e(e=0)),t);var xn=(e,t)=>{for(var n in t)Va(e,n,{get:t[n],enumerable:!0})};var cn=(e,t,n)=>zl(e,typeof t!="symbol"?t+"":t,n);import Ul from"dexie";import*as Za from"febs-browser";var Oo,It,jl,zo,Wa,Jr,Vl,Zl,Wl,Kl,Gl,Xl,$e,ql,Yl,Jl,Ql,ec,jn,Qr=it(()=>{"use strict";Oo=class extends Ul{constructor(){super("FileContentDB");cn(this,"fileCache");cn(this,"fileMeta");this.version(1).stores({fileCache:"id, fileId, crc32, fileSize, updateTime"}),this.version(2).stores({fileCache:"id, fileId, crc32, fileSize, updateTime",fileMeta:"id, fileId, projectId, updateTime"})}},It=new Oo,jl=async e=>new Promise((t,n)=>{let r=new File([e],"temp");Za.crypt.crc32_file(r,o=>{o===0?n(new Error("CRC32 \u8BA1\u7B97\u5931\u8D25")):t(o)})}),zo=async e=>{try{let t=await It.fileCache.where("fileId").equals(e).toArray();return t.length>0?t[0]:void 0}catch(t){console.error("\u8BFB\u53D6\u6587\u4EF6\u7F13\u5B58\u5931\u8D25:",t);return}},Wa=async(e,t,n,r,o)=>{try{let i=n??await jl(t),l=r??t.size,d=o??t.type??"",a=await t.arrayBuffer();await It.fileCache.where("fileId").equals(e).delete();let s={id:e,fileId:e,content:a,crc32:i,fileSize:l,contentType:d,updateTime:Date.now()};await It.fileCache.put(s)}catch(i){console.error("\u5199\u5165\u6587\u4EF6\u7F13\u5B58\u5931\u8D25:",i)}},Jr=async e=>{try{await It.fileCache.where("fileId").equals(e).delete()}catch(t){console.error("\u5220\u9664\u6587\u4EF6\u7F13\u5B58\u5931\u8D25:",t)}},Vl=async e=>await zo(e)!==void 0,Zl=async e=>{let t=await zo(e);if(!t)return console.log("[CacheFileContent] getCachedContent: \u65E0\u7F13\u5B58\u8BB0\u5F55 fileId=",e),null;let n=t.contentType??"",r;if(t.content instanceof ArrayBuffer)r=new Blob([t.content],{type:n}),console.log("[CacheFileContent] getCachedContent: fileId=",e,"[ArrayBuffer] byteLength=",t.content.byteLength,"reconstructedBlob.size=",r.size,"contentType=",n);else if(t.content instanceof Blob){let o=t.content;if(o.size===0)return console.warn("[CacheFileContent] getCachedContent: \u65E7 Blob \u5DF2\u635F\u574F (size=0)\uFF0C\u5C06\u5220\u9664\u7F13\u5B58\u5E76\u91CD\u65B0\u4E0B\u8F7D"),await Jr(e),null;try{let i=await o.arrayBuffer();r=new Blob([i],{type:n||o.type}),console.log("[CacheFileContent] getCachedContent: fileId=",e,"[Blob\u2192ArrayBuffer] size=",r.size,"contentType=",n),await Wa(e,r,t.crc32,t.fileSize,n||o.type)}catch(i){return console.warn("[CacheFileContent] getCachedContent: \u65E7 Blob \u8BFB\u53D6\u5931\u8D25\uFF0C\u5220\u9664\u7F13\u5B58:",i),await Jr(e),null}}else return console.warn("[CacheFileContent] getCachedContent: \u672A\u77E5 content \u7C7B\u578B\uFF0C\u5220\u9664\u7F13\u5B58"),await Jr(e),null;return{content:r,crc32:t.crc32,contentType:n}},Wl=async(e,t)=>{let n=await zo(e);if(!n)return console.log("[CacheFileContent] validateCache: \u65E0\u7F13\u5B58\u8BB0\u5F55 fileId=",e),!1;let r=n.crc32,o=t,i=r===o;return i||console.warn("[CacheFileContent] validateCache: crc32 \u4E0D\u5339\u914D","stored=",r,typeof r,"expected=",o,typeof o),i},Kl=async()=>{try{await It.fileCache.clear(),await It.fileMeta.clear()}catch(e){console.error("\u6E05\u9664\u6240\u6709\u6587\u4EF6\u7F13\u5B58\u5931\u8D25:",e)}},Gl=async()=>{try{let e=await It.fileCache.toArray();if(e.length===0)return{fileCount:0,totalSize:0,oldestTime:null,newestTime:null};let t=e.reduce((r,o)=>r+o.fileSize,0),n=e.map(r=>r.updateTime);return{fileCount:e.length,totalSize:t,oldestTime:Math.min(...n),newestTime:Math.max(...n)}}catch(e){return console.error("\u83B7\u53D6\u6587\u4EF6\u7F13\u5B58\u7EDF\u8BA1\u5931\u8D25:",e),{fileCount:0,totalSize:0,oldestTime:null,newestTime:null}}},Xl=async()=>{try{return(await It.fileCache.toArray()).map(t=>({fileId:t.fileId,crc32:t.crc32,fileSize:t.fileSize,updateTime:t.updateTime}))}catch(e){return console.error("\u83B7\u53D6\u6587\u4EF6\u7F13\u5B58\u5217\u8868\u5931\u8D25:",e),[]}},$e={saveToCache:Wa,removeFromCache:Jr,hasCache:Vl,getCachedContent:Zl,validateCache:Wl,clearAllCache:Kl,getCacheStats:Gl,getCacheList:Xl},ql=async(e,t)=>{try{if(!t||t.length===0)return;let n=Date.now(),r=t.map(o=>({id:o.id,fileId:o.id,projectId:e,meta:o,updateTime:n}));await It.fileMeta.bulkPut(r)}catch(n){console.error("\u6279\u91CF\u4FDD\u5B58\u6587\u4EF6\u5143\u6570\u636E\u7F13\u5B58\u5931\u8D25:",n)}},Yl=async(e,t)=>{try{await It.fileMeta.put({id:t.id,fileId:t.id,projectId:e,meta:t,updateTime:Date.now()})}catch(n){console.error("\u4FDD\u5B58\u6587\u4EF6\u5143\u6570\u636E\u7F13\u5B58\u5931\u8D25:",n)}},Jl=async e=>{try{return(await It.fileMeta.where("projectId").equals(e).toArray()).map(n=>n.meta)}catch(t){return console.error("\u5217\u51FA\u9879\u76EE\u6587\u4EF6\u5143\u6570\u636E\u7F13\u5B58\u5931\u8D25:",t),[]}},Ql=async e=>{try{let t=await It.fileMeta.where("fileId").equals(e).toArray();return t.length>0?t[0].meta:void 0}catch(t){console.error("\u83B7\u53D6\u6587\u4EF6\u5143\u6570\u636E\u7F13\u5B58\u5931\u8D25:",t);return}},ec=async e=>{try{await It.fileMeta.where("fileId").equals(e).delete()}catch(t){console.error("\u5220\u9664\u6587\u4EF6\u5143\u6570\u636E\u7F13\u5B58\u5931\u8D25:",t)}},jn={saveFileMetaBatch:ql,saveFileMeta:Yl,listFileMetaByProject:Jl,getFileMeta:Ql,removeFileMeta:ec}});import{AuthorizationHandler as qa,ResponseCode as tc}from"@spacecorexdev/core/api";import*as to from"febs-browser";import{FileExcelFilled as nc,FileImageFilled as rc,FileMarkdownFilled as oc,FileOutlined as ac,FilePdfFilled as sc,FilePptFilled as ic,FileWordFilled as lc,FileZipFilled as cc,FolderFilled as Ka,FolderOpenFilled as Ga,VideoCameraFilled as dc,FileTextFilled as Xa}from"@ant-design/icons";import{uiToast as Qt,UIToastSingle as eo}from"@spacecorexdev/core/ui";import{API as uc}from"@spacecorexdev/core/api";import{jsx as xt,jsxs as pc}from"react/jsx-runtime";var Ya,Ja,Qa,Sn,rr,es,Dt,no,ro,dn=it(()=>{"use strict";Qr();Ya=["zip","zipx","7z","rar","tar","gz","gzip","tgz","bz2","bzip2","tbz","tbz2","xz","txz","lzma","zst","tzst","cab","ar","cpio","iso","xar","lha","lzh","jar","war","ear","apk","cbz","cbr"],Ja=["dwg","dxf","dwf","dwfx","xps","oxps"],Qa=e=>{let t=e;if(/^https?:\/\//i.test(e))try{t=new URL(e).pathname}catch{t=e.split(/[?#]/)[0]||""}else{let r=e.indexOf("?");r!==-1&&(t=e.substring(0,r))}return t.split(".").pop()?.toLowerCase()||""},Sn=e=>{if(!e)return"";if(/^https?:\/\//i.test(e))return e;let t=e.lastIndexOf("/");if(t!==-1){let n=e.substring(t+1),r=e.substring(0,t+1);n=encodeURIComponent(n),e=`${r}${n}`}return e.startsWith("/")?`${import.meta.env.VITE_API_BASE}${e}`:`${import.meta.env.VITE_API_BASE}/${e}`},rr=e=>{if(!e||e.length===0)return"unknown";let t=Qa(e),n="";return["jpg","jpeg","png","gif","bmp","svg","webp"].includes(t)||n.startsWith("image/")?"image":t==="pdf"||n.includes("pdf")?"pdf":["doc","docx","dot","dotx"].includes(t)||n.includes("word")||n.includes("msword")?"word":["ppt","pptx","pps","ppsx"].includes(t)||n.includes("powerpoint")||n.includes("presentation")?"ppt":["xls","xlsx","csv","xlsm","xlsb"].includes(t)||n.includes("excel")||n.includes("spreadsheet")?"excel":["md","markdown"].includes(t)||n.includes("markdown")?"markdown":t==="rdoc"?"richdoc":["mp4","mov","avi","mkv","webm","flv","wmv","mpeg","ogg"].includes(t)||n.startsWith("video/")?"video":Ya.includes(t)?"archive":Ja.includes(t)?"cad":"unknown"},es=({fileName:e,fileType:t,isExpanded:n=!1,isSecure:r=!1,isVirtualContractFolder:o=!1,isContractSubfolder:i=!1,isContractTagFolder:l=!1,contractSigned:d,size:a=22})=>{let s={fontSize:a,width:a,height:a};if(t==="folder"){if(o||i||l){let b=i&&d===!1?"#9ca3af":"#367f12";return n?xt(Ga,{style:{...s,color:b}}):xt(Ka,{style:{...s,color:b}})}return n?xt(Ga,{style:{...s,color:r?"rgb(240 100 80)":"#1890ff"}}):xt(Ka,{style:{...s,color:r?"rgb(240 100 80)":"#1890ff"}})}let c=Qa(e),p=t?.toLowerCase()||"";return c==="pdf"||p.includes("pdf")?xt(sc,{style:{...s,color:"#e53935"}}):["doc","docx","dot","dotx"].includes(c)||p.includes("word")||p.includes("msword")?xt(lc,{style:{...s,color:"#1e88e5"}}):["ppt","pptx","pps","ppsx"].includes(c)||p.includes("powerpoint")||p.includes("presentation")?xt(ic,{style:{...s,color:"#f97316"}}):["xls","xlsx","csv","xlsm","xlsb"].includes(c)||p.includes("excel")||p.includes("spreadsheet")?xt(nc,{style:{...s,color:"#43a047"}}):["md","markdown"].includes(c)?xt(oc,{style:{...s,color:"#333"}}):c==="rdoc"?xt(Xa,{style:{...s,color:"#f9aa16"}}):p.startsWith("image/")||["jpg","jpeg","png","gif","bmp","svg","webp"].includes(c)?xt(rc,{style:{...s,color:"#8e24aa"}}):p.startsWith("video/")||["mp4","mov","avi","mkv","webm"].includes(c)?xt(dc,{style:{...s,color:"#3949ab"}}):Ya.includes(c)?xt(cc,{style:{...s,color:"#8b5cf6"}}):Ja.includes(c)?xt(Xa,{style:{...s,color:"#00acc1"}}):xt(ac,{style:{...s,color:"#757575"}})},Dt=(e,t)=>{let n=URL.createObjectURL(e),r=document.createElement("a");r.href=n,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)},no=async(e,t,n,r)=>{let o=Sn(e);if(!o)throw new Error("\u6587\u4EF6\u8D44\u6E90\u8DEF\u5F84\u4E0D\u53EF\u7528");let i=t||e.split("/").pop()||"downloaded_file";if(n)try{if(r!==void 0){if(await $e.validateCache(n,r)){let s=await $e.getCachedContent(n);if(s){console.log("[downloadFile] \u4F7F\u7528\u672C\u5730\u7F13\u5B58\u4E0B\u8F7D"),Dt(s.content,i),Qt.success("\u6587\u4EF6\u5DF2\u4E0B\u8F7D\uFF0C\u8BF7\u67E5\u770B\u6D4F\u89C8\u5668\u7684\u4E0B\u8F7D\u6587\u4EF6\u5939");return}}}else{let a=await $e.getCachedContent(n);if(a){console.log("[downloadFile] \u4F7F\u7528\u672C\u5730\u7F13\u5B58\u4E0B\u8F7D\uFF08\u65E0CRC\u6821\u9A8C\uFF09"),Dt(a.content,i),Qt.success("\u6587\u4EF6\u5DF2\u4E0B\u8F7D\uFF0C\u8BF7\u67E5\u770B\u6D4F\u89C8\u5668\u7684\u4E0B\u8F7D\u6587\u4EF6\u5939");return}}}catch(a){console.error("[downloadFile] \u8BFB\u53D6\u7F13\u5B58\u5931\u8D25\uFF0C\u5C06\u4ECE\u7F51\u7EDC\u4E0B\u8F7D:",a)}console.log("[downloadFile] \u4ECE\u7F51\u7EDC\u4E0B\u8F7D");let l={};l.set=(a,s)=>{l[a]=s},qa.requestHandleSid({headers:l}),Qt.info("\u5373\u5C06\u5F00\u59CB\u4E0B\u8F7D\uFF0C\u8BF7\u7A0D\u540E...");let d=new to.net.AbortController;try{let a=await to.net.fetch(o,{headers:{Authorization:l.Authorization||""},credentials:"include",mode:"cors",timeout:Number(import.meta.env.VITE_API_FILEVIEW_TIMEOUT)||1e5,signal:d.signal,progress:p=>{eo.info({key:o,message:pc("div",{children:["\u4E0B\u8F7D\u8FDB\u5EA6: ",Math.floor(p*100)," %"]}),duration:p>=1?2:0,onClose:()=>{d&&d.abort()}})}});if(!a.ok)throw eo.close(o),a.status==402?(Qt.error("\u65E0\u6743\u67E5\u770B\u6B64\u6587\u4EF6"),new Error("\u65E0\u6743\u67E5\u770B\u6B64\u6587\u4EF6")):(Qt.error(`\u6587\u4EF6\u52A0\u8F7D\u5931\u8D25\uFF0C\u72B6\u6001\u7801 ${a.status}`),new Error(`\u6587\u4EF6\u52A0\u8F7D\u5931\u8D25\uFF0C\u72B6\u6001\u7801 ${a.status}`));let s=await a.arrayBuffer();d=null,eo.close(o);let c=new Blob([s],{type:a.headers.get("Content-Type")||"application/octet-stream"});if(n)try{await $e.saveToCache(n,c,r,c.size,c.type),console.log("[downloadFile] \u5DF2\u4FDD\u5B58\u5230\u672C\u5730\u7F13\u5B58")}catch(p){console.error("[downloadFile] \u4FDD\u5B58\u5230\u7F13\u5B58\u5931\u8D25:",p)}Dt(c,i),Qt.success("\u6587\u4EF6\u5DF2\u4E0B\u8F7D\uFF0C\u8BF7\u67E5\u770B\u6D4F\u89C8\u5668\u7684\u4E0B\u8F7D\u6587\u4EF6\u5939")}catch(a){d=null,eo.close(o);let s=a?.message;if(!(s&&/^无权查看此文件|^文件加载失败,状态码/.test(s))){let p=s||String(a)||"\u672A\u77E5\u9519\u8BEF";Qt.error(`\u6587\u4EF6\u4E0B\u8F7D\u5931\u8D25\uFF1A${p}`)}throw console.error("[downloadFile] \u4E0B\u8F7D\u5931\u8D25:",a,"url:",o),a}},ro=async(e,t,n,r,o,i,l)=>{let d=Sn(e);if(!d)throw new Error("\u6587\u4EF6\u8D44\u6E90\u8DEF\u5F84\u4E0D\u53EF\u7528");let a=i,s=o?.startsWith("contract-file-");if(o&&!s)try{let m=l?await l(o):await uc.project.file.getDetail({fileId:o});if(m?.code===tc.SUCCESS&&m.data){let _=m.data.crc32;_!=null&&(a=_),m.data.projectId&&jn.saveFileMeta(m.data.projectId,m.data).catch(h=>console.warn("\u6301\u4E45\u5316\u5355\u6761\u6587\u4EF6\u5143\u6570\u636E\u7F13\u5B58\u5931\u8D25:",h))}}catch(m){console.error("\u83B7\u53D6\u6587\u4EF6\u8BE6\u60C5\u5931\u8D25:",m)}if(o&&!s){let m=null;if(a!=null)if(await $e.validateCache(o,a)){if(m=await $e.getCachedContent(o),m)if(m.content.size===0)console.warn("[fetchFileBuffer] \u7F13\u5B58 Blob \u4E3A\u7A7A\uFF08size=0\uFF09\uFF0CSafari IndexedDB \u53EF\u80FD\u5DF2\u635F\u574F\uFF0C\u5220\u9664\u7F13\u5B58\u5E76\u4ECE\u7F51\u7EDC\u52A0\u8F7D"),await $e.removeFromCache(o);else try{let x=(await m.content.arrayBuffer()).slice(0);console.log("[fetchFileBuffer] \u7F13\u5B58\u547D\u4E2D\uFF08detail crc32 \u6821\u9A8C\u901A\u8FC7\uFF09\uFF0Csize:",x.byteLength,"\u8DF3\u8FC7\u6587\u4EF6\u8D44\u6E90\u8BF7\u6C42");let M=new Headers;return m.contentType&&M.set("Content-Type",m.contentType),{buffer:x,headers:M,status:200,fromCache:!0}}catch(h){console.warn("[fetchFileBuffer] \u8BFB\u53D6\u7F13\u5B58 Blob \u5931\u8D25\uFF08Safari \u53EF\u80FD\u635F\u574F\uFF09\uFF0C\u5220\u9664\u7F13\u5B58\u5E76\u4ECE\u7F51\u7EDC\u52A0\u8F7D:",h),await $e.removeFromCache(o)}}else console.log("[fetchFileBuffer] \u7F13\u5B58 crc32 \u4E0E\u670D\u52A1\u5668\u4E0D\u4E00\u81F4\uFF0C\u5C06\u4ECE\u7F51\u7EDC\u52A0\u8F7D\u6700\u65B0\u6587\u4EF6");else console.log("[fetchFileBuffer] \u65E0\u6CD5\u6821\u9A8C crc32\uFF08\u670D\u52A1\u5668\u672A\u8FD4\u56DE\uFF09\uFF0C\u8DF3\u8FC7\u7F13\u5B58\u68C0\u67E5\uFF0C\u5C06\u4ECE\u7F51\u7EDC\u52A0\u8F7D")}let c={};c.set=(m,_)=>{c[m]=_},qa.requestHandleSid({headers:c});let p;try{p=await to.net.fetch(d+(t?`?tempToken=${t}`:""),{headers:{Authorization:c.Authorization||""},credentials:"include",mode:"cors",timeout:Number(import.meta.env.VITE_API_FILEVIEW_TIMEOUT)||1e5,progress:m=>r?.(Math.floor(m*100)),signal:n?n.signal:null})}catch(m){let _=m?.message||String(m)||"\u672A\u77E5\u9519\u8BEF";throw Qt.error(`\u6587\u4EF6\u52A0\u8F7D\u5931\u8D25\uFF1A${_}`),console.error("[fetchFileBuffer] \u7F51\u7EDC\u8BF7\u6C42\u5931\u8D25:",m,"url:",d),m}if(!p.ok)throw p.status==402?(Qt.error("\u65E0\u6743\u67E5\u770B\u6B64\u6587\u4EF6"),new Error("\u65E0\u6743\u67E5\u770B\u6B64\u6587\u4EF6")):(Qt.error(`\u6587\u4EF6\u52A0\u8F7D\u5931\u8D25\uFF0C\u72B6\u6001\u7801 ${p.status}`),new Error(`\u6587\u4EF6\u52A0\u8F7D\u5931\u8D25\uFF0C\u72B6\u6001\u7801 ${p.status}`));let b=await p.arrayBuffer();if(o){let m=p.headers?.get?.("Content-Type")||"",_=new Blob([b],{type:m});await $e.saveToCache(o,_,a,_.size,m)}return{buffer:b,headers:p.headers,status:p.status,fromCache:!1}}});function en(){return new Promise((e,t)=>{let n=indexedDB.open(xc,2);n.onerror=()=>{t(new Error("\u6253\u5F00 IndexedDB \u5931\u8D25"))},n.onsuccess=()=>{e(n.result)},n.onupgradeneeded=r=>{let o=r.target.result;if(!o.objectStoreNames.contains(ar)){let i=o.createObjectStore(ar,{keyPath:"id"});i.createIndex("userId","userId",{unique:!1}),i.createIndex("fileName","fileName",{unique:!1}),i.createIndex("fileType","fileType",{unique:!1}),i.createIndex("userId_fileName_type",["userId","fileName","fileType"],{unique:!0})}if(!o.objectStoreNames.contains(pt)){let i=o.createObjectStore(pt,{keyPath:"localId"});i.createIndex("userId","userId",{unique:!1}),i.createIndex("projectId","projectId",{unique:!1}),i.createIndex("userId_projectId",["userId","projectId"],{unique:!1}),i.createIndex("userId_serverFileId",["userId","serverFileId"],{unique:!1}),i.createIndex("serverFileId","serverFileId",{unique:!1})}}})}async function Ot(e,t,n,r){try{let o=await en(),l=o.transaction(ar,"readwrite").objectStore(ar),d={id:`${e}_${t}_${n}`,userId:e,fileName:t,fileType:n,data:r,updatedAt:Date.now()};return new Promise((a,s)=>{let c=l.put(d);c.onsuccess=()=>{o.close(),a()},c.onerror=()=>{o.close(),s(new Error("\u4FDD\u5B58\u6587\u4EF6\u5931\u8D25"))}})}catch(o){throw console.error("\u4FDD\u5B58\u6587\u4EF6\u5230 IndexedDB \u5931\u8D25:",o),o}}async function Cn(e,t,n){try{let r=await en(),i=r.transaction(ar,"readwrite").objectStore(ar);return new Promise((l,d)=>{let a=i.delete(`${e}_${t}_${n}`);a.onsuccess=()=>{r.close(),l()},a.onerror=()=>{r.close(),d(new Error("\u5220\u9664\u6587\u4EF6\u5931\u8D25"))}})}catch(r){throw console.error("\u4ECE IndexedDB \u5220\u9664\u6587\u4EF6\u5931\u8D25:",r),r}}function ss(){return`local_${Date.now()}_${Math.random().toString(36).slice(2,10)}`}function ao(e){return typeof e=="string"?new Blob([e]).size:e.byteLength}async function is(e){let t=Date.now(),n={localId:ss(),userId:e.userId,projectId:e.projectId,parentId:e.parentId,fileName:e.fileName,fileType:e.fileType,serverFileId:null,isLocalOnly:!0,hasUnsyncedChanges:!0,originalServerFile:null,content:e.content,fileSize:ao(e.content),createdAt:t,updatedAt:t};try{let r=await en(),i=r.transaction(pt,"readwrite").objectStore(pt);return new Promise((l,d)=>{let a=i.put(n);a.onsuccess=()=>{r.close(),l(n)},a.onerror=()=>{r.close(),d(new Error("\u521B\u5EFA\u672C\u5730\u6587\u4EF6\u5931\u8D25"))}})}catch(r){throw console.error("\u521B\u5EFA\u672C\u5730\u6587\u4EF6\u5931\u8D25:",r),r}}async function sr(e){try{let t=await Ho(e.userId,e.serverFileId),n=Date.now(),r=e.markUnsynced??!0,o=t?{...t,fileName:e.fileName,fileType:e.fileType,parentId:e.parentId,content:e.content,fileSize:ao(e.content),hasUnsyncedChanges:r,originalServerFile:e.originalServerFile||t.originalServerFile,originalContent:t.originalContent??e.originalContent,updatedAt:n}:{localId:ss(),userId:e.userId,projectId:e.projectId,parentId:e.parentId,fileName:e.fileName,fileType:e.fileType,serverFileId:e.serverFileId,isLocalOnly:!1,hasUnsyncedChanges:r,originalServerFile:e.originalServerFile,originalContent:e.originalContent,content:e.content,fileSize:ao(e.content),createdAt:n,updatedAt:n},i=await en(),d=i.transaction(pt,"readwrite").objectStore(pt);return new Promise((a,s)=>{let c=d.put(o);c.onsuccess=()=>{i.close(),a(o)},c.onerror=()=>{i.close(),s(new Error("\u4FDD\u5B58\u672C\u5730\u672A\u540C\u6B65\u6587\u4EF6\u5931\u8D25"))}})}catch(t){throw console.error("\u4FDD\u5B58\u672C\u5730\u672A\u540C\u6B65\u6587\u4EF6\u5931\u8D25:",t),t}}async function $o(e,t,n,r=!0){try{let o=await Fn(e);if(!o)return null;let i={...o,content:t,fileSize:ao(t),fileName:n??o.fileName,hasUnsyncedChanges:r,updatedAt:Date.now()},l=await en(),a=l.transaction(pt,"readwrite").objectStore(pt);return new Promise((s,c)=>{let p=a.put(i);p.onsuccess=()=>{l.close(),s(i)},p.onerror=()=>{l.close(),c(new Error("\u66F4\u65B0\u672C\u5730\u6587\u4EF6\u5185\u5BB9\u5931\u8D25"))}})}catch(o){return console.error("\u66F4\u65B0\u672C\u5730\u6587\u4EF6\u5185\u5BB9\u5931\u8D25:",o),null}}async function Fn(e){try{let t=await en(),r=t.transaction(pt,"readonly").objectStore(pt);return new Promise((o,i)=>{let l=r.get(e);l.onsuccess=()=>{t.close(),o(l.result||null)},l.onerror=()=>{t.close(),i(new Error("\u83B7\u53D6\u672C\u5730\u6587\u4EF6\u5931\u8D25"))}})}catch(t){return console.error("\u83B7\u53D6\u672C\u5730\u6587\u4EF6\u5931\u8D25:",t),null}}async function Ho(e,t){try{let n=await en(),i=n.transaction(pt,"readonly").objectStore(pt).index("userId_serverFileId");return new Promise((l,d)=>{let a=i.get([e,t]);a.onsuccess=()=>{n.close(),l(a.result||null)},a.onerror=()=>{n.close(),d(new Error("\u67E5\u627E\u672C\u5730\u672A\u540C\u6B65\u6587\u4EF6\u5931\u8D25"))}})}catch(n){return console.error("\u67E5\u627E\u672C\u5730\u672A\u540C\u6B65\u6587\u4EF6\u5931\u8D25:",n),null}}async function ls(e,t){try{let n=await en(),i=n.transaction(pt,"readonly").objectStore(pt).index("userId_projectId");return new Promise((l,d)=>{let a=i.getAll([e,t]);a.onsuccess=()=>{n.close(),l(a.result||[])},a.onerror=()=>{n.close(),d(new Error("\u5217\u51FA\u672C\u5730\u6587\u4EF6\u5931\u8D25"))}})}catch(n){return console.error("\u5217\u51FA\u672C\u5730\u6587\u4EF6\u5931\u8D25:",n),[]}}async function xr(e,t){try{let n=await Fn(e);if(!n)return;let r=await en(),i=r.transaction(pt,"readwrite").objectStore(pt);if(n.isLocalOnly)return new Promise((l,d)=>{let a=i.delete(e);a.onsuccess=()=>{r.close(),l()},a.onerror=()=>{r.close(),d(new Error("\u5220\u9664\u5DF2\u4E0A\u4F20\u672C\u5730\u6587\u4EF6\u8BB0\u5F55\u5931\u8D25"))}});{let l={...n,hasUnsyncedChanges:!1,serverFileId:t||n.serverFileId,updatedAt:Date.now()};return new Promise((d,a)=>{let s=i.put(l);s.onsuccess=()=>{r.close(),d()},s.onerror=()=>{r.close(),a(new Error("\u6807\u8BB0\u540C\u6B65\u5931\u8D25"))}})}}catch(n){console.error("\u6807\u8BB0\u672C\u5730\u6587\u4EF6\u540C\u6B65\u5931\u8D25:",n)}}async function kn(e){try{let t=await en(),r=t.transaction(pt,"readwrite").objectStore(pt);return new Promise((o,i)=>{let l=r.delete(e);l.onsuccess=()=>{t.close(),o()},l.onerror=()=>{t.close(),i(new Error("\u5220\u9664\u672C\u5730\u6587\u4EF6\u5931\u8D25"))}})}catch(t){console.error("\u5220\u9664\u672C\u5730\u6587\u4EF6\u5931\u8D25:",t)}}var xc,ar,pt,Vn=it(()=>{"use strict";xc="FileEditorDB",ar="files",pt="localFiles"});function Wt(e,{insertAt:t}={}){if(!e||typeof document>"u")return;let n=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css",t==="top"&&n.firstChild?n.insertBefore(r,n.firstChild):n.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}var ir=it(()=>{"use strict"});var fs=it(()=>{"use strict";ir();Wt(`.vendorsys-export-dropdown{z-index:10000!important}[data-theme=dark] .vendorsys-export-trigger.ant-btn{color:#ffffffa6!important}[data-theme=dark] .vendorsys-export-trigger.ant-btn:not(:disabled):hover{color:#69b1ff!important;background-color:#ffffff14!important}[data-theme=dark] .vendorsys-export-trigger.ant-btn:not(:disabled):active{color:#91caff!important}[data-theme=dark] .vendorsys-export-trigger.ant-btn[disabled],[data-theme=dark] .vendorsys-export-trigger.ant-btn.ant-btn-disabled{color:#ffffff4d!important}[data-theme=dark] .vendorsys-export-trigger-on-light.ant-btn,[data-theme=light] .vendorsys-export-trigger-on-light.ant-btn{color:#3b3b3bad!important}[data-theme=dark] .vendorsys-export-trigger-on-light.ant-btn:not(:disabled):hover,[data-theme=light] .vendorsys-export-trigger-on-light.ant-btn:not(:disabled):hover{color:#1677ff!important;background-color:#0000000a!important}[data-theme=dark] .vendorsys-export-trigger-on-light.ant-btn:not(:disabled):active,[data-theme=light] .vendorsys-export-trigger-on-light.ant-btn:not(:disabled):active{color:#0958d9!important}[data-theme=dark] .vendorsys-export-trigger-on-light.ant-btn[disabled],[data-theme=light] .vendorsys-export-trigger-on-light.ant-btn[disabled]{color:#00000040!important}[data-theme=dark] .vendorsys-export-trigger-on-dark.ant-btn,[data-theme=light] .vendorsys-export-trigger-on-dark.ant-btn{color:#ffffffd9!important}[data-theme=dark] .vendorsys-export-trigger-on-dark.ant-btn:not(:disabled):hover,[data-theme=light] .vendorsys-export-trigger-on-dark.ant-btn:not(:disabled):hover{color:#69b1ff!important;background-color:#ffffff1f!important}[data-theme=dark] .vendorsys-export-trigger-on-dark.ant-btn:not(:disabled):active,[data-theme=light] .vendorsys-export-trigger-on-dark.ant-btn:not(:disabled):active{color:#91caff!important}[data-theme=dark] .vendorsys-export-trigger-on-dark.ant-btn[disabled],[data-theme=light] .vendorsys-export-trigger-on-dark.ant-btn[disabled]{color:#ffffff4d!important}
|
|
2
|
+
`)});import{useMemo as Hc}from"react";import{Button as Uc,Dropdown as jc}from"antd";import{DownloadOutlined as ms,FilePdfFilled as Vc}from"@ant-design/icons";import{jsx as Sr}from"react/jsx-runtime";var St,lr=it(()=>{"use strict";fs();St=({onExportPdf:e,onDownload:t,exportingPdf:n=!1,downloading:r=!1,disabled:o,label:i="\u5BFC\u51FA",buttonProps:l,overlayClassName:d="vendorsys-export-dropdown",extraItems:a})=>{let s=Hc(()=>{let c=[];return e&&c.push({key:"pdf",icon:Sr(Vc,{}),label:"\u5BFC\u51FAPDF",disabled:n,onClick:()=>{e()}}),a&&a.length>0&&c.push(...a),t&&c.push({key:"download",icon:Sr(ms,{}),label:"\u4E0B\u8F7D",disabled:r,onClick:()=>{t()}}),c},[e,t,n,r,a]);return!s||s.length===0?null:Sr(jc,{menu:{items:s},trigger:["click"],overlayClassName:d,placement:"bottomRight",getPopupContainer:c=>c?.ownerDocument?.body??document.body,children:Sr(Uc,{...l,className:["vendorsys-export-trigger",l?.className].filter(Boolean).join(" "),type:l?.type??"text",loading:n||r||l?.loading,disabled:o||l?.disabled,onMouseDown:c=>{l?.onMouseDown?.(c),c.preventDefault()},icon:Sr(ms,{}),children:i})})}});var As={};xn(As,{PdfPreview:()=>Ld});import{useCallback as Md,useEffect as Id,useMemo as Ms,useRef as Yo}from"react";import{FileViewer as Dd}from"@file-viewer/react";import{pdfRenderer as Rd}from"@file-viewer/renderer-pdf";import{jsx as Ds,jsxs as Bd}from"react/jsx-runtime";var Rs,Ad,Nd,Is,Ld,Ns=it(()=>{"use strict";Rs="reading-progress:",Ad=500,Nd=e=>{try{let t=localStorage.getItem(Rs+e);if(t)return JSON.parse(t).state}catch{}},Is=(e,t)=>{try{let n={state:t,savedAt:Date.now()};localStorage.setItem(Rs+e,JSON.stringify(n))}catch{}},Ld=({file:e,progressKey:t})=>{let n=Yo(null),r=Yo(null),o=Yo(t);o.current=t;let i=Ms(()=>{if(t)return Nd(t)},[t]),l=Md(s=>{if(s.type!=="view-state-change"||!t)return;let c=s.payload;c?.state&&(n.current=c.state,r.current&&clearTimeout(r.current),r.current=setTimeout(()=>{n.current&&Is(t,n.current)},Ad))},[t]);Id(()=>()=>{r.current&&(clearTimeout(r.current),r.current=null);let s=o.current;s&&n.current&&Is(s,n.current)},[]);let d=[Rd],a=Ms(()=>({locale:"zh-CN",rendererMode:"replace",styleIsolation:"none",renderers:d,theme:"light",toolbar:{position:"bottom-right",download:!1,print:!1,exportHtml:!1},pdf:{cMapUrl:"/cmaps/",defaultNavigationVisible:!1},initialViewState:i}),[i]);return Bd("div",{className:"ui-file-preview-pdf","data-global-context-menu-ignore":"true",children:[Ds("style",{children:`
|
|
3
|
+
.ui-file-preview-pdf .pdf-toolbar {
|
|
2
4
|
padding-right: 50px !important;
|
|
3
5
|
}
|
|
4
6
|
|
|
@@ -38,9 +40,8 @@ var Ka=Object.defineProperty;var Yl=(e,t,r)=>t in e?Ka(e,t,{enumerable:!0,config
|
|
|
38
40
|
-webkit-user-select: text !important;
|
|
39
41
|
-moz-user-select: text !important;
|
|
40
42
|
user-select: text !important;
|
|
41
|
-
}`}),e?
|
|
42
|
-
`)},
|
|
43
|
-
`)});import{useMemo as od}from"react";import{Button as ad,Dropdown as sd}from"antd";import{DownloadOutlined as Ss,FilePdfFilled as id}from"@ant-design/icons";import{jsx as Er}from"react/jsx-runtime";var Et,lr=Xe(()=>{"use strict";xs();Et=({onExportPdf:e,onDownload:t,exportingPdf:r=!1,downloading:o=!1,disabled:a,label:s="\u5BFC\u51FA",buttonProps:i,overlayClassName:c="vendorsys-export-dropdown",extraItems:n})=>{let l=od(()=>{let d=[];return e&&d.push({key:"pdf",icon:Er(id,{}),label:"\u5BFC\u51FAPDF",disabled:r,onClick:()=>{e()}}),n&&n.length>0&&d.push(...n),t&&d.push({key:"download",icon:Er(Ss,{}),label:"\u4E0B\u8F7D",disabled:o,onClick:()=>{t()}}),d},[e,t,r,o,n]);return!l||l.length===0?null:Er(sd,{menu:{items:l},trigger:["click"],overlayClassName:c,placement:"bottomRight",getPopupContainer:d=>d?.ownerDocument?.body??document.body,children:Er(ad,{...i,className:["vendorsys-export-trigger",i?.className].filter(Boolean).join(" "),type:i?.type??"text",loading:r||o||i?.loading,disabled:a||i?.disabled,onMouseDown:d=>{i?.onMouseDown?.(d),d.preventDefault()},icon:Er(Ss,{}),children:s})})}});var ks={};Qt(ks,{WordPreview:()=>dd});import{useMemo as ld,useState as lo,useEffect as Es,useRef as Cs,useCallback as Fs}from"react";import{message as Cr}from"antd";import{FileViewer as cd}from"@file-viewer/react";import{jsx as Kt,jsxs as co}from"react/jsx-runtime";var dd,Ts=Xe(()=>{"use strict";Ko();lr();fn();dd=({file:e})=>{let[t,r]=lo(!0),[o,a]=lo(0),[s,i]=lo(!1),[c,n]=lo(!1),l=Cs(null),d=Cs(!1),p=ld(()=>Wo(),[]),w=Fs(async()=>{if(!e){Cr.warning("\u6587\u6863\u5C1A\u672A\u52A0\u8F7D\u5B8C\u6210\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5");return}n(!0),Cr.loading({key:"word-export-pdf",content:"\u6B63\u5728\u51C6\u5907\u6587\u6863\u2026",duration:0});try{await io({file:e,fileName:e.name,onProgress:(_,b)=>{Cr.loading({key:"word-export-pdf",content:`\u6B63\u5728\u5BFC\u51FA\u7B2C ${_} / ${b} \u9875\u2026`,duration:0})}})}catch(_){console.error("Word \u5BFC\u51FA PDF \u5931\u8D25:",_),Cr.error(`\u5BFC\u51FA PDF \u5931\u8D25\uFF1A${_?.message||"\u8BF7\u91CD\u8BD5"}`)}finally{Cr.destroy("word-export-pdf"),n(!1)}},[e]),h=Fs(()=>{e&&Rt(e,e.name)},[e]);return Es(()=>{if(!l.current||!e)return;let _,b,x,S=()=>{clearInterval(_),clearTimeout(b),clearTimeout(x)};_=setInterval(()=>{a(W=>W>=95?W:W+Math.random()*15+5)},300);let N=()=>{let W=l.current;if(!W)return;if(W.innerHTML.trim().length>0&&W.querySelector(".docx-wrapper, .docx-page-frame, .docx-flow-frame")){a(100),setTimeout(()=>{r(!1),i(!1)},200),S();return}b=setTimeout(N,100)};return b=setTimeout(N,100),x=setTimeout(()=>{clearInterval(_),clearTimeout(b);let W=l.current;W&&!W.querySelector(".docx-wrapper, .docx-page-frame, .docx-flow-frame")&&i(!0)},3e4),()=>{S()}},[e,d.current]),Es(()=>{e&&(r(!0),a(0),i(!1))},[e]),co("div",{className:"ui-file-preview-word","data-global-context-menu-ignore":"true",style:{position:"relative"},children:[Kt("style",{children:`
|
|
43
|
+
}`}),e?Ds(Dd,{file:e,name:e.name,options:a,onEvent:l}):null]})}});import{createRoot as Od}from"react-dom/client";import{FileViewer as zd}from"@file-viewer/react";import{wordRenderer as $d}from"@file-viewer/renderer-word";import{withPolyfillWorkerBootstrap as Hd}from"@spacecorexdev/core/utils";import{jsx as Jd}from"react/jsx-runtime";var Ud,Er,jd,Qo,Vd,Ls,Zd,Jo,Wd,Bs,Kd,Os,Gd,Xd,qd,Yd,zs,ho,ea=it(()=>{"use strict";Ud="application/vnd.openxmlformats-officedocument.wordprocessingml.document",Er=3,jd=9e4,Qo=()=>({locale:"zh-CN",rendererMode:"replace",styleIsolation:"none",renderers:[$d],theme:"light",toolbar:{position:"bottom-right",download:!1,print:!1,exportHtml:!1},docx:{workerUrl:Hd("/vendor/docx/docx.worker.js?v=docgrid5"),workerJsZipUrl:"/vendor/docx/jszip.min.js",visualPagination:!0}}),Vd=()=>Qo(),Ls=e=>{e.style.setProperty("position","relative","important"),e.style.setProperty("left","auto","important"),e.style.setProperty("top","auto","important"),e.style.setProperty("transform","none","important"),e.style.setProperty("margin","0","important"),e.style.setProperty("box-shadow","none","important"),e.style.setProperty("outline","none","important")},Zd=async e=>{await Promise.all(Array.from(e.querySelectorAll("img")).map(async t=>{let n=t.getAttribute("src")||"";if(!(!n||n.startsWith("data:")))try{let r=await fetch(n).then(i=>i.blob()),o=await new Promise((i,l)=>{let d=new FileReader;d.onload=()=>i(d.result),d.onerror=l,d.readAsDataURL(r)});t.setAttribute("src",o)}catch{}}))},Jo=/url\(\s*(['"]?)([^'")]+)\1\s*\)/g,Wd=/^(animation|transition)(-|$)/,Bs=(e,t)=>{let n="";for(let r=0;r<e.length;r++){let o=e[r];if(o===t||Wd.test(o))continue;let i=e.getPropertyValue(o);i&&(n+=`${o}:${i};`)}return n},Kd=async e=>{let t=new Set;e.forEach(r=>{let o;for(Jo.lastIndex=0;o=Jo.exec(r);){let i=o[2];i&&!i.startsWith("data:")&&t.add(i)}});let n=new Map;return await Promise.all(Array.from(t).map(async r=>{try{let o=await fetch(r).then(l=>l.blob()),i=await new Promise((l,d)=>{let a=new FileReader;a.onload=()=>l(a.result),a.onerror=d,a.readAsDataURL(o)});n.set(r,i)}catch{}})),n},Os=(e,t)=>e.replace(Jo,(n,r,o)=>{let i=t.get(o);return i?`url("${i}")`:n}),Gd=async(e,t)=>{let n=[],r=[],o=[],i=0,l=e.ownerDocument.defaultView??window,d=(c,p,b)=>{let m=l.getComputedStyle(c,b),_=m.getPropertyValue("content");if(!_||_==="none"||_==="normal")return;let h=b.slice(2),x=`wpe-${++i}`;p.setAttribute(`data-pseudo-${h}`,x);let M=`content:${_};${Bs(m,"content")}`;r.push(M),o.push(`[data-pseudo-${h}="${x}"]${b}{${M}}`)},a=(c,p)=>{n.push({el:p,css:Bs(l.getComputedStyle(c))}),d(c,p,"::before"),d(c,p,"::after");let b=c.children,m=p.children;for(let _=0;_<b.length;_++)a(b[_],m[_])};a(e,t);let s=await Kd([...n.map(c=>c.css),...r]);return n.forEach(({el:c,css:p})=>{c.setAttribute("style",Os(p,s))}),o.map(c=>Os(c,s)).join(`
|
|
44
|
+
`)},Xd=async e=>{Ls(e);let t=e.getBoundingClientRect(),n=Math.max(1,Math.ceil(t.width)),r=Math.max(1,Math.ceil(t.height)),o=e.cloneNode(!0);o.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),await Zd(o);let i=await Gd(e,o);Ls(o);let l=new XMLSerializer().serializeToString(o),d=i?`<style><![CDATA[${i.replace(/\]\]>/g,"]] >")}]]></style>`:"",a=`<svg xmlns="http://www.w3.org/2000/svg" width="${n*Er}" height="${r*Er}"><g transform="scale(${Er})"><foreignObject x="0" y="0" width="${n}" height="${r}"><body xmlns="http://www.w3.org/1999/xhtml" style="margin:0;padding:0;background:#ffffff">${d}${l}</body></foreignObject></g></svg>`,s=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(a)}`,c=new Image;await new Promise((m,_)=>{c.onload=()=>m(),c.onerror=()=>{let h=[];try{let A=new DOMParser().parseFromString(a,"image/svg+xml").querySelector("parsererror");A&&h.push(`XML\u9519\u8BEF: ${(A.textContent||"").slice(0,150)}`)}catch{}let x=(a.match(/blob:/g)||[]).length,M=(a.match(/url\(\s*['"]?https?:/g)||[]).length;(x||M)&&h.push(`\u6B8B\u7559\u5916\u94FE blob:${x} http:${M}`),h.push(`SVG\u5927\u5C0F:${(a.length/1024).toFixed(0)}KB`),_(new Error(`\u9875\u9762\u5149\u6805\u5316\u5931\u8D25\uFF08${h.join("\uFF1B")}\uFF09`))},c.src=s});let p=document.createElement("canvas");p.width=n*Er,p.height=r*Er;let b=p.getContext("2d");if(!b)throw new Error("\u65E0\u6CD5\u521B\u5EFA\u7ED8\u56FE\u4E0A\u4E0B\u6587");return b.fillStyle="#ffffff",b.fillRect(0,0,p.width,p.height),b.drawImage(c,0,0),p},qd=e=>new Promise((t,n)=>{let r=Date.now(),o=-1,i=0,l=window.setInterval(()=>{let d=Array.from(e.querySelectorAll(".docx-page-frame")),a=d.filter(s=>{let c=s.querySelector("section.docx");return c&&c.getBoundingClientRect().height>100});a.length>=1&&a.length===o?(i||(i=Date.now()),Date.now()-i>=600&&(window.clearInterval(l),t(d))):i=0,o=a.length,Date.now()-r>jd&&(window.clearInterval(l),n(new Error("Word \u6587\u6863\u6E32\u67D3\u8D85\u65F6")))},150)}),Yd=(e,t)=>{let n=document.createElement("div");n.setAttribute("data-word-export-root","true"),Object.assign(n.style,{position:"fixed",top:"0",left:"-100000px",width:"1400px",background:"#ffffff",pointerEvents:"none"}),document.body.appendChild(n);let r=Od(n);return r.render(Jd(zd,{file:e,name:t,options:Vd()})),{host:n,unmount:()=>{r.unmount(),n.remove()}}},zs=e=>{let t=(r,o)=>{let i=/^([\d.]+)pt$/i.exec(r);if(i)return parseFloat(i[1]);let l=/^([\d.]+)px$/i.exec(r);return l?parseFloat(l[1])*.75:o*.75},n=e.getBoundingClientRect();return{wPt:t(e.style.width||"",n.width),hPt:t(e.style.height||"",n.height)}},ho=async({file:e,fileName:t,onProgress:n})=>{let r=/\.(docx|docm|dotx|dotm|doc|dot)$/i.test(t)?t.replace(/\.(docx|docm|dotx|dotm|doc|dot)$/i,""):t,o=`${r}.docx`,i=`${r}.pdf`,l=e instanceof File?e:new File([e],o,{type:Ud}),{jsPDF:d}=await import("jspdf"),{host:a,unmount:s}=Yd(l,o);try{let c=await qd(a);await new Promise(h=>requestAnimationFrame(()=>requestAnimationFrame(()=>h())));let p=c.map(h=>h.querySelector("section.docx")).filter(h=>!!h);if(p.length===0)throw new Error("\u672A\u83B7\u53D6\u5230\u53EF\u5BFC\u51FA\u7684\u6587\u6863\u9875\u9762");let b=p.length,m=zs(p[0]),_=new d({orientation:m.wPt>m.hPt?"landscape":"portrait",unit:"pt",format:[m.wPt,m.hPt],compress:!0});for(let h=0;h<b;h++){n?.(h+1,b);let x=p[h],{wPt:M,hPt:S}=zs(x),A=await Xd(x),Z=A.toDataURL("image/png");h>0&&_.addPage([M,S],M>S?"landscape":"portrait"),_.addImage(Z,"PNG",0,0,M,S,void 0,"FAST"),A.width=0,A.height=0}return _.save(i),i}finally{s()}}});var js={};xn(js,{WordPreview:()=>tu});import{useMemo as Qd,useState as go,useEffect as $s,useRef as Hs,useCallback as Us}from"react";import{message as Cr}from"antd";import{FileViewer as eu}from"@file-viewer/react";import{jsx as Gt,jsxs as yo}from"react/jsx-runtime";var tu,Vs=it(()=>{"use strict";ea();lr();dn();tu=({file:e})=>{let[t,n]=go(!0),[r,o]=go(0),[i,l]=go(!1),[d,a]=go(!1),s=Hs(null),c=Hs(!1),p=Qd(()=>Qo(),[]),b=Us(async()=>{if(!e){Cr.warning("\u6587\u6863\u5C1A\u672A\u52A0\u8F7D\u5B8C\u6210\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5");return}a(!0),Cr.loading({key:"word-export-pdf",content:"\u6B63\u5728\u51C6\u5907\u6587\u6863\u2026",duration:0});try{await ho({file:e,fileName:e.name,onProgress:(_,h)=>{Cr.loading({key:"word-export-pdf",content:`\u6B63\u5728\u5BFC\u51FA\u7B2C ${_} / ${h} \u9875\u2026`,duration:0})}})}catch(_){console.error("Word \u5BFC\u51FA PDF \u5931\u8D25:",_),Cr.error(`\u5BFC\u51FA PDF \u5931\u8D25\uFF1A${_?.message||"\u8BF7\u91CD\u8BD5"}`)}finally{Cr.destroy("word-export-pdf"),a(!1)}},[e]),m=Us(()=>{e&&Dt(e,e.name)},[e]);return $s(()=>{if(!s.current||!e)return;let _,h,x,M=()=>{clearInterval(_),clearTimeout(h),clearTimeout(x)};_=setInterval(()=>{o(Z=>Z>=95?Z:Z+Math.random()*15+5)},300);let A=()=>{let Z=s.current;if(!Z)return;if(Z.innerHTML.trim().length>0&&Z.querySelector(".docx-wrapper, .docx-page-frame, .docx-flow-frame")){o(100),setTimeout(()=>{n(!1),l(!1)},200),M();return}h=setTimeout(A,100)};return h=setTimeout(A,100),x=setTimeout(()=>{clearInterval(_),clearTimeout(h);let Z=s.current;Z&&!Z.querySelector(".docx-wrapper, .docx-page-frame, .docx-flow-frame")&&l(!0)},3e4),()=>{M()}},[e,c.current]),$s(()=>{e&&(n(!0),o(0),l(!1))},[e]),yo("div",{className:"ui-file-preview-word","data-global-context-menu-ignore":"true",style:{position:"relative"},children:[Gt("style",{children:`
|
|
44
45
|
.word-export-pdf-btn {
|
|
45
46
|
position: absolute;
|
|
46
47
|
top: 7px;
|
|
@@ -120,7 +121,7 @@ var Ka=Object.defineProperty;var Yl=(e,t,r)=>t in e?Ka(e,t,{enumerable:!0,config
|
|
|
120
121
|
@keyframes spin {
|
|
121
122
|
0% { transform: rotate(0deg); }
|
|
122
123
|
100% { transform: rotate(360deg); }
|
|
123
|
-
}`}),!t&&!
|
|
124
|
+
}`}),!t&&!i&&e&&Gt(St,{onExportPdf:b,onDownload:m,exportingPdf:d,buttonProps:{className:"vendorsys-export-trigger-on-light word-export-pdf-btn mr-[30px] bg-transparent border-none"}}),e&&t&&!i&&yo("div",{className:"word-loading-overlay",children:[Gt("div",{className:"word-loading-spinner"}),Gt("div",{className:"word-loading-text",children:"\u52A0\u8F7D\u4E2D..."}),Gt("div",{className:"word-loading-progress",children:Gt("div",{className:"word-loading-progress-bar",style:{width:`${Math.min(r,100)}%`}})}),yo("div",{className:"word-loading-percent",children:[Math.round(Math.min(r,100)),"%"]})]}),e&&i&&yo("div",{className:"word-loading-overlay",children:[Gt("div",{className:"word-loading-error-icon",children:"\u2715"}),Gt("div",{className:"word-loading-error-text",children:"\u6587\u6863\u52A0\u8F7D\u5931\u8D25"}),Gt("button",{className:"word-loading-retry-btn",onClick:()=>{l(!1),n(!0),o(0),c.current=!c.current},children:"\u91CD\u65B0\u52A0\u8F7D"})]}),e?Gt("div",{ref:s,style:{width:"100%",height:"100dvh"},children:Gt(eu,{file:e,name:e.name,options:p})}):null]})}});var Xs={};xn(Xs,{ExcelPreview:()=>uu});import{useEffect as nu,useRef as ru,useState as Zs}from"react";import*as fr from"xlsx";import{UniverSheetsCorePreset as ou}from"@univerjs/preset-sheets-core";import au from"@univerjs/preset-sheets-core/locales/zh-CN";import{createUniver as su,LocaleType as Ws,mergeLocales as iu}from"@univerjs/presets";import"@univerjs/preset-sheets-core/lib/index.css";import{Fragment as Gs,jsx as Dn,jsxs as ta}from"react/jsx-runtime";function lu(e,t){let n={},r=[],o=new Map;return(e.Workbook?.Sheets??[]).forEach(i=>{i.name&&o.set(i.name,!!i.Hidden)}),e.SheetNames.forEach((i,l)=>{let d=e.Sheets[i],a=`sheet-${l+1}`,s={},c=0,p=0;Object.keys(d).forEach(A=>{if(A.startsWith("!"))return;let Z=d[A];if(!Z)return;let{r:O,c:I}=fr.utils.decode_cell(A);c=Math.max(c,O),p=Math.max(p,I);let J={};typeof Z.f=="string"&&Z.f.length>0&&(J.f=Z.f.startsWith("=")?Z.f.slice(1):Z.f);let ne=Z.v;if(ne!=null&&ne!=="")if(Z.t==="d"&&ne instanceof Date)J.v=cu(ne),J.s={n:{pattern:Ks(Z.z)||"yyyy-mm-dd"}};else if(Z.t==="n"&&typeof ne=="number"){J.v=ne;let D=Ks(Z.z);D&&(J.s={n:{pattern:D}})}else Z.t==="b"?J.v=!!ne:J.v=String(ne);Object.keys(J).length>0&&(s[O]||(s[O]={}),s[O][I]=J)});let b=(d["!merges"]??[]).map(A=>({startRow:A.s.r,startColumn:A.s.c,endRow:A.e.r,endColumn:A.e.c}));(d["!merges"]??[]).forEach(A=>{c=Math.max(c,A.e.r),p=Math.max(p,A.e.c)});let m={};(d["!cols"]??[]).forEach((A,Z)=>{let O={};typeof A.wpx=="number"?O.w=Math.round(A.wpx):typeof A.wch=="number"&&(O.w=Math.round(A.wch*7+5)),A.hidden&&(O.hd=1),(O.w!==void 0||O.hd!==void 0)&&(m[Z]=O)});let _={};(d["!rows"]??[]).forEach((A,Z)=>{let O={};typeof A.hpx=="number"?O.h=Math.round(A.hpx):typeof A.hpt=="number"&&(O.h=Math.round(A.hpt*96/72)),A.hidden&&(O.hd=1),(O.h!==void 0||O.hd!==void 0)&&(_[Z]=O)});let h=d["!freeze"],x;if(h&&(h.xSplit||h.ySplit)){let A=h.ySplit??0,Z=h.xSplit??0;if(h.topLeftCell){let O=fr.utils.decode_cell(h.topLeftCell);A=O.r,Z=O.c}x={xSplit:h.xSplit??0,ySplit:h.ySplit??0,startRow:A,startColumn:Z}}let M=c,S=p;if(d["!ref"]){let A=fr.utils.decode_range(d["!ref"]);M=Math.max(M,A.e.r),S=Math.max(S,A.e.c)}n[a]={id:a,name:i,hidden:o.get(i)?1:0,...x?{freeze:x}:{},rowCount:Math.max(M+1,100),columnCount:Math.max(S+1,26),defaultColumnWidth:88,defaultRowHeight:24,showGridlines:1,rowHeader:{width:46},columnHeader:{height:22},mergeData:b,cellData:s,rowData:_,columnData:m},r.push(a)}),{id:`workbook-preview-${Date.now()}`,name:t,sheetOrder:r,sheets:n}}function cu(e){let t=Date.UTC(1899,11,30);return(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds())-t)/864e5}function Ks(e){if(e==null)return;if(typeof e=="number")return du[e];let t=e.trim();if(!(!t||t.toLowerCase()==="general"))return t}var du,uu,qs=it(()=>{"use strict";du={14:"yyyy/m/d",15:"d-mmm-yy",16:"d-mmm",17:"mmm-yy",18:"h:mm AM/PM",19:"h:mm:ss AM/PM",20:"h:mm",21:"h:mm:ss",22:"yyyy/m/d h:mm",27:"yyyy-mm-dd",28:"mmm-dd"};uu=({file:e})=>{let[t,n]=Zs("loading"),[r,o]=Zs(0),i=ru(null);return nu(()=>{if(!e||!i.current)return;let l=!1,d=null;return n("loading"),(async()=>{try{let a=await e.arrayBuffer(),s=fr.read(a,{type:"array",cellDates:!0,cellNF:!0}),c=lu(s,e.name);if(l||!i.current)return;if(d=su({locale:Ws.ZH_CN,locales:{[Ws.ZH_CN]:iu(au)},presets:[ou({container:i.current,header:!0,toolbar:!0,formulaBar:!0,contextMenu:!0})]}).univerAPI,l){d.dispose(),d=null;return}d.createWorkbook(c).setEditable(!1),n("ready")}catch(a){console.error("[ExcelPreview] \u6587\u6863\u52A0\u8F7D\u5931\u8D25:",a),l||n("error")}})(),()=>{l=!0,d&&(d.dispose(),d=null)}},[e,r]),ta("div",{className:"ui-file-preview-excel","data-global-context-menu-ignore":"true",children:[Dn("style",{children:`.excel-loading-overlay {
|
|
124
125
|
position: absolute;
|
|
125
126
|
top: 0;
|
|
126
127
|
left: 0;
|
|
@@ -171,13 +172,198 @@ var Ka=Object.defineProperty;var Yl=(e,t,r)=>t in e?Ka(e,t,{enumerable:!0,config
|
|
|
171
172
|
@keyframes excel-spin {
|
|
172
173
|
0% { transform: rotate(0deg); }
|
|
173
174
|
100% { transform: rotate(360deg); }
|
|
174
|
-
}`}),e&&t!=="ready"&&Dn("div",{className:"excel-loading-overlay",children:t==="error"?Go(Ds,{children:[Dn("div",{className:"excel-loading-error-icon",children:"\u2715"}),Dn("div",{className:"excel-loading-error-text",children:"\u6587\u6863\u52A0\u8F7D\u5931\u8D25"}),Dn("button",{className:"excel-loading-retry-btn",onClick:()=>a(i=>i+1),children:"\u91CD\u65B0\u52A0\u8F7D"})]}):Go(Ds,{children:[Dn("div",{className:"excel-loading-spinner"}),Dn("div",{className:"excel-loading-text",children:"\u52A0\u8F7D\u4E2D..."})]})}),e?Dn("div",{ref:s,style:{width:"100%",height:"100dvh"}},o):null]})}});var Ns=Xe(()=>{"use strict";ir();Wt(`@media(min-width:768px){.CodeMirror-fullscreen .editor-preview-full{padding:30px 64px 80px!important}}@media(min-width:1200px){.CodeMirror-fullscreen .editor-preview-full{padding:30px 128px 80px!important}}@media(min-width:1400px){.CodeMirror-fullscreen .editor-preview-full{padding:30px 256px 80px!important}}.editor-preview-side{margin-left:50vw!important;margin-top:32px!important}.EasyMDEContainer{padding-top:50px}.EasyMDEContainer .editor-preview *,.EasyMDEContainer .editor-preview-side *{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.EasyMDEContainer .editor-preview p,.EasyMDEContainer .editor-preview-side p{white-space:pre-wrap;word-wrap:break-word;line-height:1.6}.EasyMDEContainer .editor-preview hr,.EasyMDEContainer .editor-preview-side hr,.EasyMDEContainer .editor-preview table,.EasyMDEContainer .editor-preview-side table{margin-top:1em;margin-bottom:1em}.EasyMDEContainer .editor-preview,.EasyMDEContainer .editor-preview-side{line-height:1.6}.EasyMDEContainer .editor-preview h1,.EasyMDEContainer .editor-preview-side h1{font-size:200%;line-height:200%;font-weight:700;margin-top:.5em;margin-bottom:0;color:rgb(var(--color-markdown-h1))}.EasyMDEContainer .editor-preview h2,.EasyMDEContainer .editor-preview-side h2{font-size:160%;line-height:160%;font-weight:700;margin-top:.5em;margin-bottom:0;color:rgb(var(--color-markdown-h2))}.EasyMDEContainer .editor-preview h3,.EasyMDEContainer .editor-preview-side h3{font-size:125%;line-height:125%;font-weight:700;margin-top:1em;margin-bottom:1em;color:rgb(var(--color-markdown-h3))}.EasyMDEContainer .editor-preview h4,.EasyMDEContainer .editor-preview-side h4{font-size:110%;line-height:110%;font-weight:700;margin-top:1em;margin-bottom:1em;color:rgb(var(--color-markdown-h4))}.EasyMDEContainer .editor-preview code,.EasyMDEContainer .editor-preview-side code{border-radius:2px;padding:1px 2px;background:rgb(var(--color-markdown-comment) / .3)}.EasyMDEContainer .editor-preview pre,.EasyMDEContainer .editor-preview-side pre{padding-left:10px}.EasyMDEContainer .editor-preview blockquote,.EasyMDEContainer .editor-preview-side blockquote{border-left:2px solid rgb(var(--color-green-500));color:rgb(var(--color-markdown-comment));margin:1.5em 0;padding:0 1em;quotes:"\\201c" "\\201d" "\\2018" "\\2019";word-wrap:normal;white-space:normal;word-break:normal;display:block;margin-block-start:1em;margin-block-end:1em;unicode-bidi:isolate}.EasyMDEContainer .editor-preview ul,.EasyMDEContainer .editor-preview-side ul,.EasyMDEContainer .editor-preview ol,.EasyMDEContainer .editor-preview-side ol,.EasyMDEContainer .editor-preview li,.EasyMDEContainer .editor-preview-side li{word-wrap:normal;white-space:normal;word-break:normal;list-style:revert;margin:revert;padding:revert}/**
|
|
175
|
+
}`}),e&&t!=="ready"&&Dn("div",{className:"excel-loading-overlay",children:t==="error"?ta(Gs,{children:[Dn("div",{className:"excel-loading-error-icon",children:"\u2715"}),Dn("div",{className:"excel-loading-error-text",children:"\u6587\u6863\u52A0\u8F7D\u5931\u8D25"}),Dn("button",{className:"excel-loading-retry-btn",onClick:()=>o(l=>l+1),children:"\u91CD\u65B0\u52A0\u8F7D"})]}):ta(Gs,{children:[Dn("div",{className:"excel-loading-spinner"}),Dn("div",{className:"excel-loading-text",children:"\u52A0\u8F7D\u4E2D..."})]})}),e?Dn("div",{ref:i,style:{width:"100%",height:"100dvh"}},r):null]})}});var ei={};xn(ei,{ExcelEditor:()=>Qs,default:()=>Cu});import{useEffect as Wn,useRef as pn,useCallback as mr,useState as hr}from"react";import{Modal as pu,Button as na,Space as fu,message as fn,Popconfirm as mu,Tag as ra}from"antd";import{SaveOutlined as hu,FileExcelFilled as gu,UploadOutlined as yu,CloseOutlined as oa,CloudOutlined as Ys,CloudServerOutlined as wu}from"@ant-design/icons";import{UniverSheetsCorePreset as bu}from"@univerjs/preset-sheets-core";import vu from"@univerjs/preset-sheets-core/locales/zh-CN";import{createUniver as _u,LocaleType as Js,mergeLocales as xu}from"@univerjs/presets";import*as mn from"xlsx";import"@univerjs/preset-sheets-core/lib/index.css";import{CacheUserInfo as Su}from"@spacecorexdev/core/utils";import{jsx as nt,jsxs as Fr}from"react/jsx-runtime";var Eu,Qs,Cu,ti=it(()=>{"use strict";Vn();Eu=new Set(["sheet.mutation.set-range-values","sheet.mutation.move-range","sheet.mutation.remove-worksheet-merge","sheet.mutation.add-worksheet-merge","sheet.mutation.reorder-range","sheet.mutation.set-worksheet-default-style","sheet.mutation.set-row-data","sheet.mutation.set-col-data","sheet.mutation.set-worksheet-range-theme-style","sheet.mutation.remove-worksheet-range-theme-style"]),Qs=({visible:e,hiddenClose:t=!1,isCreate:n,onClose:r,fileName:o,onUpload:i,initialBlob:l,readOnly:d,uploadPercent:a,uploadSuccess:s,isOffline:c,isLocalOnly:p,hasUnsyncedChanges:b,onSaveLocalBlob:m})=>{let _=pn(null),h=pn(null),x=pn(null),M=pn(null),[S,A]=hr(null),[Z,O]=hr(null),[I,J]=hr(0),[ne,D]=hr(!1),[w,W]=hr(!n),[k,L]=hr(!1),$=pn(!1),B=pn(!1),K=pn(l),q=pn(b),ge=pn(m);q.current=b,ge.current=m,Wn(()=>{e&&(async()=>{try{let V=Su.currentLocalUser();V?.id?A(V.id):A(null)}catch(V){console.error("\u83B7\u53D6\u7528\u6237\u4FE1\u606F\u5931\u8D25:",V),A(null)}})()},[e]),Wn(()=>{(async()=>{if(e&&S)if(l)try{L(!0);let V=await l.arrayBuffer(),xe=mn.read(V),ce={id:`workbook-${Date.now()}`,name:o,sheets:{},sheetOrder:[],locale:"zhCN",appVersion:"0.10.2"};xe.SheetNames.forEach(ee=>{let Se=xe.Sheets[ee],Le=`sheet-${Date.now()}-${ee}`,_e=mn.utils.sheet_to_json(Se,{header:1,defval:"",raw:!1});ce.sheets[Le]={id:Le,name:ee,cellData:{},rowData:{},columnData:{},rowCount:Math.max(_e.length,100),columnCount:Math.max(..._e.map(pe=>pe?.length||0),20),defaultColumnWidth:100,defaultRowHeight:25,showGridlines:1,rowHeader:{width:46},columnHeader:{height:20}},_e.forEach((pe,Ge)=>{ce.sheets[Le].cellData[Ge]||(ce.sheets[Le].cellData[Ge]={}),pe.forEach((X,j)=>{X!=null&&X!==""&&(ce.sheets[Le].cellData[Ge][j]={v:X})})}),ce.sheetOrder.push(Le)}),O(ce),J(ee=>ee+1),D(!1)}catch(V){console.error("\u52A0\u8F7D\u6587\u4EF6\u5931\u8D25:",V),fn.error("\u52A0\u8F7D\u6587\u4EF6\u5931\u8D25"),O(null),D(!1)}finally{L(!1)}else if(n&&o&&S)try{O(null),D(!1)}catch(V){console.error("\u521B\u5EFA\u65B0\u5DE5\u4F5C\u7C3F\u5931\u8D25:",V),O(null),D(!1)}else O(null),D(!1)})()},[e,o,S,l,n,d]);let oe=mr(()=>{if(!x.current)return null;let ie=x.current.getActiveWorkbook();return ie?ie.save():null},[]),E=mr(async ie=>{ie&&(ie.preventDefault(),ie.stopPropagation());try{let V=x.current?.getActiveWorkbook?.();V&&typeof V.endEditingAsync=="function"?(await V.endEditingAsync(!0),console.log("[Excel] endEditingAsync(true) \u5B8C\u6210")):V&&typeof V.endEditing=="function"&&(await V.endEditing(!0),console.log("[Excel] endEditing(true) \u5B8C\u6210"))}catch(V){console.warn("[Excel] \u63D0\u4EA4\u5355\u5143\u683C\u7F16\u8F91\u5931\u8D25:",V)}},[]),be=mr(async()=>{try{if(!x.current)return fn.error("\u7F16\u8F91\u5668\u672A\u521D\u59CB\u5316"),null;let ie=x.current.getActiveWorkbook();if(!ie)return fn.error("\u6CA1\u6709\u53EF\u4FDD\u5B58\u7684\u5DE5\u4F5C\u7C3F"),null;await E();let V=ie.save(),xe=mn.utils.book_new();V.sheets&&V.sheetOrder&&V.sheetOrder.forEach(ee=>{let Se=V.sheets[ee];if(!Se)return;let Le=Se.name||"\u5DE5\u4F5C\u8868",_e=Se.cellData||{},pe=[];Object.keys(_e).forEach(X=>{let j=parseInt(X),re=_e[X];for(;pe.length<=j;)pe.push([]);Object.keys(re).forEach(Te=>{let Ve=parseInt(Te),st=re[Te];for(;pe[j].length<=Ve;)pe[j].push("");pe[j][Ve]=st?.v||""})});let Ge=mn.utils.aoa_to_sheet(pe);mn.utils.book_append_sheet(xe,Ge,Le)});let ce=mn.write(xe,{bookType:"xlsx",type:"array"});return new Blob([ce],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"})}catch(ie){return console.error("\u5BFC\u51FA Excel \u5931\u8D25:",ie),null}},[]),U=mr(()=>{if(!o||!S)return;let ie=oe();ie&&(M.current&&clearTimeout(M.current),M.current=setTimeout(async()=>{try{await Ot(S,o,"xlsx",ie),D(!1);let V=ge.current;if(V)try{let xe=await be();xe&&await V(xe,o,!1)}catch(xe){console.warn("\u81EA\u52A8\u4FDD\u5B58\u65F6\u540C\u6B65 localFiles store \u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u672C\u5730\u4FDD\u5B58\uFF09:",xe)}}catch(V){console.error("\u81EA\u52A8\u4FDD\u5B58\u5230 IndexedDB \u5931\u8D25:",V)}},2e4))},[o,S,oe,be]);Wn(()=>{if(!e||!_.current)return;x.current&&(x.current.dispose(),x.current=null,h.current=null);let{univer:ie,univerAPI:V}=_u({locale:Js.ZH_CN,locales:{[Js.ZH_CN]:xu(vu)},presets:[bu({container:_.current})]});if(h.current=ie,x.current=V,Z)try{V.createWorkbook(Z)}catch{V.createWorkbook({name:o})}else V.createWorkbook({name:o});let xe=V.addEvent(V.Event.CommandExecuted,({id:ce})=>{if(!(d||!Eu.has(ce))&&B.current&&(D(!0),W(!1),U(),!$.current&&!q.current&&ge.current)){$.current=!0;let ee=ge.current;(async()=>{try{let Se=await be();Se?await ee(Se,o):$.current=!1}catch(Se){$.current=!1,console.warn("\u7F16\u8F91\u65F6\u7ACB\u5373\u6807\u8BB0\u672A\u540C\u6B65\u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u7F16\u8F91\uFF0C\u7B49\u5F85\u81EA\u52A8/\u624B\u52A8\u4FDD\u5B58\u5373\u53EF\uFF09:",Se)}})()}});return()=>{xe.dispose(),x.current&&(x.current.dispose(),x.current=null,h.current=null)}},[e,o,Z,I,U,d,be]),Wn(()=>{if(!e||k)return;let ie=setTimeout(()=>{B.current=!0},2e3);return()=>{clearTimeout(ie),B.current=!1}},[I,e,k]),Wn(()=>{K.current=l},[l]);let se=mr(async()=>{try{let ie=oe();if(!ie){fn.error("\u7F16\u8F91\u5668\u672A\u521D\u59CB\u5316");return}if(!S){fn.error("\u65E0\u6CD5\u83B7\u53D6\u7528\u6237\u4FE1\u606F");return}if(await Ot(S,o,"xlsx",ie),D(!1),m)try{let V=await be();V&&await m(V,o,!1)}catch(V){console.warn("\u540C\u6B65\u672C\u5730\u6587\u4EF6\u5185\u5BB9\u5230 localFiles store \u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u672C\u5730\u4FDD\u5B58\uFF09:",V)}fn.success("\u5DF2\u4FDD\u5B58\u5230\u672C\u5730\u7F13\u5B58")}catch(ie){console.error("\u4FDD\u5B58\u5230\u672C\u5730\u7F13\u5B58\u5931\u8D25:",ie),fn.error("\u4FDD\u5B58\u5931\u8D25")}},[o,S,oe,be,m]),Ce=mr(async()=>{if(!i){fn.error("\u672A\u63D0\u4F9B\u4E0A\u4F20\u529F\u80FD");return}try{let ie=await be();if(!ie)return;let V=K.current??l;await i(V,ie,o),K.current=ie,S&&(await Cn(S,o,"xlsx"),D(!1),W(!0)),$.current=!1}catch(ie){console.error("\u4E0A\u4F20\u5931\u8D25:",ie),fn.error("\u4E0A\u4F20\u5931\u8D25")}},[o,i,be,S,l]);return Wn(()=>{if(!e)return;let ie=V=>{(V.ctrlKey||V.metaKey)&&V.key==="s"&&(V.preventDefault(),se())};return window.addEventListener("keydown",ie),()=>window.removeEventListener("keydown",ie)},[e,se]),Wn(()=>(e&&(W(!n),$.current=!1,M.current&&(clearTimeout(M.current),M.current=null)),()=>{M.current&&(clearTimeout(M.current),M.current=null)}),[e,n]),nt(pu,{open:e,onCancel:r,keyboard:!1,closeIcon:null,footer:null,style:{top:0,maxWidth:"100vw"},styles:{body:{height:"100dvh",padding:0}},className:"ant-modal-nopadding ant-modal-fullscreen",transitionName:"none",children:Fr("div",{className:"h-full flex flex-col bg-white p-0 m-0",children:[Fr("div",{className:`flex items-center justify-between px-4 py-2 pr-0 border-b flex-shrink-0 ${c?"bg-orange-50 border-orange-200":"bg-gray-50 border-gray-200"}`,children:[nt("span",{children:"\xA0"}),!d&&nt("span",{children:"\xA0"}),Fr("div",{className:"flex items-center gap-2 flex-wrap min-w-[40%]",children:[!c&&p&&nt(ra,{icon:nt(Ys,{}),color:"orange",style:{margin:0},children:"\u672C\u5730\u6587\u4EF6"}),!c&&!p&&b&&nt(ra,{icon:nt(Ys,{}),color:"warning",style:{margin:0},children:"\u6709\u672A\u540C\u6B65\u4FEE\u6539"}),!c&&!p&&!b&&!i?nt(ra,{icon:nt(wu,{}),color:"default",style:{margin:0},children:"\u540C\u6B65\u5B8C\u6210"}):null,nt(gu,{className:"text-green-600"}),Fr("span",{className:"text-sm font-medium",children:[ne?"*":"",o]})]}),!d&&!t&&Fr(fu,{wrap:!0,align:"center",direction:"horizontal",children:[i&&nt(na,{type:"text",style:{paddingLeft:4,paddingRight:4},title:"\u6BCF\u6B21\u4E0A\u4F20\u5C06\u4FDD\u7559\u4E00\u4E2A\u5386\u53F2\u7248\u672C\uFF0C\u6700\u591A\u4FDD\u755910\u4E2A\u7248\u672C",icon:nt(yu,{}),onMouseDown:E,onClick:Ce,disabled:a!==void 0&&a<1,children:a!==void 0&&a<1?`\u4E0A\u4F20\u4E2D ${Math.round(a*100)}%`:"\u4E0A\u4F20"}),nt(na,{type:"primary",icon:nt(hu,{}),onMouseDown:E,onClick:se,children:"\u4FDD\u5B58"}),!d&&(ne||!w)?nt(mu,{title:"\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F",description:ne?"\u4FEE\u6539\u672A\u4FDD\u5B58\uFF0C\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F":"\u4FEE\u6539\u672A\u4E0A\u4F20\uFF0C\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F",onConfirm:r,okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88",children:nt(na,{type:"text",className:"ml-3 mr-2",icon:nt(oa,{className:"w-6 h-6"})})}):nt(oa,{onClick:r,className:"ml-3 mr-2 w-6 h-6"})]}),d&&!t&&nt(oa,{onClick:r,className:"ml-3 mr-2 w-6 h-6"}),t&&nt("span",{children:"\xA0"})]}),nt("div",{className:"relative flex-1 min-h-0",children:nt("div",{ref:_,className:"h-full univer-container overflow-hidden",style:{height:"calc(100vh - 48px)"}},I)})]})})},Cu=Qs});import{PptxViewer as Fu}from"@file-viewer/pptx";import{withPolyfillWorkerBootstrap as ku}from"@spacecorexdev/core/utils";var Tu,kr,ni,Pu,Mu,aa,Iu,Du,Ru,ri,Au,Nu,Lu,Bu,Ou,zu,oi,ai=it(()=>{"use strict";Tu="application/vnd.openxmlformats-officedocument.presentationml.presentation",kr=2,ni=12e4,Pu=500,Mu="flyfish-pptx-native-style",aa=()=>/url\(\s*(['"]?)([^'")]+)\1\s*\)/gi,Iu=async e=>{let t=document.createElement("div");t.setAttribute("data-ppt-export-root","true"),Object.assign(t.style,{position:"fixed",top:"0",left:"-100000px",width:"1600px",background:"#ffffff",pointerEvents:"none"}),document.body.appendChild(t);let n=await e.arrayBuffer(),r=null,o=await Fu.open(n,t,{fitMode:"none",workerType:"classic",workerUrl:ku("/vendor/pptx/pptx.worker.js"),lazySlides:!1,listOptions:void 0,onError:i=>{r=i}});return{host:t,viewer:o,getFatal:()=>r,unmount:()=>{try{o.destroy()}finally{t.remove()}}}},Du=async(e,t,n)=>new Promise((r,o)=>{let i=Date.now(),l=-1,d=0,a=!1,s=async p=>{if(!a){a=!0,window.clearInterval(c);try{let b=Array.from(t.querySelectorAll(".flyfish-pptx-content img")),m=_=>new Promise(h=>{let x=()=>{window.clearTimeout(M),h()},M=window.setTimeout(x,5e3);_.decode().then(x).catch(x)});await Promise.all(b.map(_=>_.complete?Promise.resolve():m(_))),await new Promise(_=>window.setTimeout(_,120)),r(p)}catch(b){o(b)}}},c=window.setInterval(()=>{if(a)return;let p=n();if(p){a=!0,window.clearInterval(c),o(p instanceof Error?p:new Error(String(p)));return}let b=t.querySelector(".flyfish-pptx-content");if(!b){Date.now()-i>ni&&(a=!0,window.clearInterval(c),o(new Error("PPT \u6E32\u67D3\u8D85\u65F6")));return}let m=Array.from(b.querySelectorAll(":scope > .slide")),_=e.slideCount;_>0&&m.length===_&&b.dataset.renderState==="ready"&&m.every(x=>{let M=x.getBoundingClientRect();return M.width>100&&M.height>100})?(l!==m.length&&(d=0),d||(d=Date.now()),Date.now()-d>=Pu&&s(m)):d=0,l=m.length,Date.now()-i>ni&&(a=!0,window.clearInterval(c),o(new Error("PPT \u6E32\u67D3\u8D85\u65F6")))},120)}),Ru=e=>{let t=[],n=document.getElementById(Mu);return n?.textContent&&t.push(n.textContent),e.querySelectorAll("style").forEach(r=>r.textContent&&t.push(r.textContent)),t.join(`
|
|
176
|
+
`)},ri=async e=>{let t=new Map;return await Promise.all(Array.from(new Set(e)).map(async n=>{let r=n.trim();if(!(!r||r.startsWith("data:")||r.startsWith("#")))try{let o=await fetch(r).then(l=>{if(!l.ok)throw new Error(`HTTP ${l.status}`);return l.blob()}),i=await new Promise((l,d)=>{let a=new FileReader;a.onload=()=>l(a.result),a.onerror=d,a.readAsDataURL(o)});t.set(r,i)}catch{t.set(r,"")}})),t},Au=async e=>{let t=[];if(e.querySelectorAll("[src],[poster],[href],[xlink\\:href]").forEach(r=>{for(let o of Array.from(r.attributes)){if(!["src","poster","href","xlink:href"].includes(o.name))continue;let i=o.value.trim();!i||i.startsWith("data:")||i.startsWith("#")||t.push({el:r,attr:o})}}),t.length===0)return;let n=await ri(t.map(r=>r.attr.value.trim()));t.forEach(({el:r,attr:o})=>{let i=o.value.trim(),l=n.get(i);if(l!==void 0){if(l===""){r.removeAttributeNode(o);return}o.namespaceURI?r.setAttributeNS(o.namespaceURI,o.name,l):r.setAttribute(o.name,l)}})},Nu=async e=>{let t=[e,...Array.from(e.querySelectorAll("[style]"))],n=[];if(t.forEach(i=>{let l=i.getAttribute("style")||"",d=aa(),a;for(;a=d.exec(l);){let s=a[2].trim();s&&!s.startsWith("data:")&&!s.startsWith("#")&&n.push(s)}}),n.length===0)return;let r=await ri(n),o=i=>i.replace(aa(),(l,d,a)=>{let s=a.trim();if(s.startsWith("#")||s.startsWith("data:"))return l;let c=r.get(s);return c?`url("${c}")`:"none"});t.forEach(i=>{let l=i.getAttribute("style");l&&aa().test(l)&&i.setAttribute("style",o(l))})},Lu=(e,t)=>{let n=Array.from(e.querySelectorAll("canvas")),r=Array.from(t.querySelectorAll("canvas"));n.forEach((o,i)=>{let l=r[i];if(!l)return;let d="";try{d=o.toDataURL("image/png")}catch{d=""}let a=t.ownerDocument.createElement("img");a.setAttribute("style",`${l.getAttribute("style")||""};display:inline-block!important;`),l.className&&(a.className=l.className),a.setAttribute("width",String(o.width||l.width||1)),a.setAttribute("height",String(o.height||l.height||1)),a.src=d||Bu,l.replaceWith(a)})},Bu="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==",Ou=async(e,t)=>{let n=parseFloat(e.style.width||""),r=parseFloat(e.style.height||""),o=e.getBoundingClientRect(),i=Math.max(1,Math.round(Number.isFinite(n)&&n>0?n:o.width)),l=Math.max(1,Math.round(Number.isFinite(r)&&r>0?r:o.height)),d=e.cloneNode(!0);Lu(e,d),await Au(d),await Nu(d);let a=d.ownerDocument.createElement("div");a.className="flyfish-pptx-content",a.setAttribute("data-export-wrapper","true"),a.setAttribute("style",`position:relative!important;top:auto!important;left:auto!important;transform:none!important;width:${i}px!important;height:${l}px!important;margin:0!important;overflow:hidden!important;`),a.appendChild(d);let s=new XMLSerializer().serializeToString(a),p=`${t}
|
|
177
|
+
.flyfish-pptx-content .slide{margin:0!important;box-shadow:none!important;border-radius:0!important}`.replace(/\]\]>/g,"]] >"),b=`<svg xmlns="http://www.w3.org/2000/svg" width="${i*kr}" height="${l*kr}"><g transform="scale(${kr})"><foreignObject x="0" y="0" width="${i}" height="${l}"><body xmlns="http://www.w3.org/1999/xhtml" style="margin:0;padding:0;background:#ffffff"><style><![CDATA[${p}]]></style>${s}</body></foreignObject></g></svg>`,m=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(b)}`,_=new Image;await new Promise((S,A)=>{_.onload=()=>S(),_.onerror=()=>{let Z=[];try{let ne=new DOMParser().parseFromString(b,"image/svg+xml").querySelector("parsererror");if(ne){Z.push(`XML\u9519\u8BEF: ${(ne.textContent||"").slice(0,150)}`);let D=/line (\d+) at column (\d+)/.exec(ne.textContent||"");if(D){let w=Number(D[1]),W=Number(D[2]),L=b.split(`
|
|
178
|
+
`)[w-1]||"";Z.push(`\u4E0A\u4E0B\u6587:${L.slice(Math.max(0,W-160),W+160)}`)}}}catch{}let O=(b.match(/blob:/g)||[]).length,I=(b.match(/(?:src|poster|href)=["']https?:/g)||[]).length;(O||I)&&Z.push(`\u6B8B\u7559\u5916\u94FE blob:${O} http:${I}`),Z.push(`SVG\u5927\u5C0F:${(b.length/1024).toFixed(0)}KB`),A(new Error(`\u5E7B\u706F\u7247\u5149\u6805\u5316\u5931\u8D25\uFF08${Z.join("\uFF1B")}\uFF09`))},_.src=m});let h=document.createElement("canvas");h.width=i*kr,h.height=l*kr;let x=h.getContext("2d");if(!x)throw new Error("\u65E0\u6CD5\u521B\u5EFA\u7ED8\u56FE\u4E0A\u4E0B\u6587");x.fillStyle="#ffffff",x.fillRect(0,0,h.width,h.height),x.drawImage(_,0,0);let M=h.toDataURL("image/png");return h.width=0,h.height=0,{dataUrl:M,widthPx:i,heightPx:l}},zu=async(e,t)=>{let n=await Iu(e);try{let r=await Du(n.viewer,n.host,n.getFatal);if(r.length===0)throw new Error("\u672A\u83B7\u53D6\u5230\u53EF\u5BFC\u51FA\u7684\u5E7B\u706F\u7247");let o=n.host.querySelector(".flyfish-pptx-content");if(!o)throw new Error("\u672A\u83B7\u53D6\u5230\u5E7B\u706F\u7247\u5BB9\u5668");let i=Ru(o),l=r.length,d=[];for(let a=0;a<l;a++){t?.(a+1,l);let{dataUrl:s,widthPx:c,heightPx:p}=await Ou(r[a],i);d.push({dataUrl:s,widthPx:c,heightPx:p,widthPt:c*.75,heightPt:p*.75})}return d}finally{n.unmount()}},oi=async({file:e,fileName:t,onProgress:n})=>{let r=/\.(pptx|pptm|ppt|ppsx|pps|potx|potm)$/i.test(t)?t.replace(/\.(pptx|pptm|ppt|ppsx|pps|potx|potm)$/i,""):t,o=`${r}.pptx`,i=`${r}.pdf`,l=e instanceof File?e:new File([e],o,{type:Tu}),{jsPDF:d}=await import("jspdf"),a=await zu(l,n);if(a.length===0)throw new Error("\u672A\u83B7\u53D6\u5230\u53EF\u5BFC\u51FA\u7684\u5E7B\u706F\u7247");let s=a[0],c=new d({orientation:s.widthPt>s.heightPt?"landscape":"portrait",unit:"pt",format:[s.widthPt,s.heightPt],compress:!0});return a.forEach((p,b)=>{b>0&&c.addPage([p.widthPt,p.heightPt],p.widthPt>p.heightPt?"landscape":"portrait"),c.addImage(p.dataUrl,"PNG",0,0,p.widthPt,p.heightPt,void 0,"FAST")}),c.save(i),i}});var si={};xn(si,{PptPreview:()=>Uu});import{useCallback as wo,useEffect as Tr,useRef as Pr,useState as hn}from"react";import{message as Mr}from"antd";import{PptxViewer as $u}from"@file-viewer/pptx";import{withPolyfillWorkerBootstrap as Hu}from"@spacecorexdev/core/utils";import{jsx as zt,jsxs as sa}from"react/jsx-runtime";var Uu,ii=it(()=>{"use strict";ai();lr();dn();Uu=({file:e})=>{let[t,n]=hn(!0),[r,o]=hn(!1),[i,l]=hn(0),[d,a]=hn(!1),[s,c]=hn("parsing"),[p,b]=hn(0),[m,_]=hn(0),[h,x]=hn(0),[M,S]=hn(0),A=wo(async()=>{if(!e){Mr.warning("\u6587\u6863\u5C1A\u672A\u52A0\u8F7D\u5B8C\u6210\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5");return}a(!0),Mr.loading({key:"ppt-export-pdf",content:"\u6B63\u5728\u51C6\u5907\u6F14\u793A\u6587\u7A3F\u2026",duration:0});try{await oi({file:e,fileName:e.name,onProgress:(k,L)=>{Mr.loading({key:"ppt-export-pdf",content:`\u6B63\u5728\u5BFC\u51FA\u7B2C ${k} / ${L} \u9875\u2026`,duration:0})}})}catch(k){console.error("PPT \u5BFC\u51FA PDF \u5931\u8D25:",k),Mr.error(`\u5BFC\u51FA PDF \u5931\u8D25\uFF1A${k?.message||"\u8BF7\u91CD\u8BD5"}`)}finally{Mr.destroy("ppt-export-pdf"),a(!1)}},[e]),Z=wo(()=>{e&&Dt(e,e.name)},[e]),O=Pr(null),I=Pr(null),J=Pr(null),ne=Pr(null),D=Pr(!1),w=wo(()=>{let k=O.current;if(!k)return;let L=Array.from(k.querySelectorAll(".flyfish-pptx-content .slide"));if(L.length===0)return;let $=k.getBoundingClientRect().top+k.clientHeight/2,B=0,K=Number.POSITIVE_INFINITY;L.forEach((q,ge)=>{let oe=q.getBoundingClientRect(),E=Math.abs(oe.top+oe.height/2-$);E<K&&(K=E,B=ge)}),L.forEach((q,ge)=>{q.classList.toggle("ppt-slide-active",ge===B)})},[]),W=wo(async()=>{let k=J.current,L=O.current,$=ne.current;if(!k||!L||!$)return;let B=$.width??1,K=$.height??1,q=L.clientWidth/B,ge=L.clientHeight/K,oe=Math.min(q,ge);await k.setZoom(oe*100);let E=L.clientHeight/oe;requestAnimationFrame(()=>{Array.from(L.querySelectorAll(".flyfish-pptx-content .slide")).forEach(U=>{let se=Math.max(0,E-K);U.style.marginTop=`${se/2}px`,U.style.marginBottom=`${se/2}px`,U.style.marginLeft="auto",U.style.marginRight="auto"}),w()})},[w]);return Tr(()=>{let k=!1;return(async()=>{if(!(!e||!I.current||!O.current)){n(!0),o(!1),c("parsing"),b(0),_(0),x(0),S(0),D.current=!1,ne.current=null,O.current.scrollTop=0;try{let $=await e.arrayBuffer();if(k)return;let B=await $u.open($,I.current,{fitMode:"none",workerType:"classic",workerUrl:Hu("/vendor/pptx/pptx.worker.js"),lazySlides:!1,listOptions:void 0,onProgress:(K,q)=>{if(k)return;b(Math.min(100,Math.max(0,Math.floor(K))));let ge=q?.slide_num;typeof ge=="number"&&_(ge)},onSlideSize:K=>{ne.current=K},onSlideRendered:K=>{k||(x(q=>Math.max(q,K+1)),n(!1),requestAnimationFrame(()=>w()),D.current||(D.current=!0,W()))},onError:K=>{k||(console.error("[ppt-preview] render error:",K),o(!0),n(!1))}});if(k){B.destroy();return}J.current=B,S(B.slideCount||0),c("rendering")}catch($){if(k)return;console.error("[ppt-preview] mount failed:",$),o(!0),n(!1)}}})(),()=>{k=!0,J.current?.destroy(),J.current=null}},[e,i,W,w]),Tr(()=>{let k=0,L=()=>{cancelAnimationFrame(k),k=requestAnimationFrame(()=>{W()})};return window.addEventListener("resize",L),()=>{cancelAnimationFrame(k),window.removeEventListener("resize",L)}},[W]),Tr(()=>{let k=O.current;if(!k)return;let L=0,$=()=>{L||(L=requestAnimationFrame(()=>{L=0,w()}))};return k.addEventListener("scroll",$,{passive:!0}),()=>{L&&cancelAnimationFrame(L),k.removeEventListener("scroll",$)}},[w]),Tr(()=>{let k=O.current;if(!k)return;let L,$=!1,B=()=>{if($)return;let q=Array.from(k.querySelectorAll(".flyfish-pptx-content .slide"));if(q.length===0)return;let oe=k.getBoundingClientRect().top+k.clientHeight/2,E=q[0],be=Number.POSITIVE_INFINITY;for(let Ce of q){let ie=Ce.getBoundingClientRect(),V=Math.abs(ie.top+ie.height/2-oe);V<be&&(be=V,E=Ce)}let U=E.getBoundingClientRect(),se=U.top+U.height/2-oe;Math.abs(se)<3||($=!0,k.scrollTo({top:Math.max(0,k.scrollTop+se),behavior:"smooth"}),window.setTimeout(()=>{$=!1},500))},K=()=>{clearTimeout(L),L=window.setTimeout(B,150)};return k.addEventListener("scroll",K,{passive:!0}),()=>{clearTimeout(L),k.removeEventListener("scroll",K)}},[]),Tr(()=>{let k=O.current;if(!k)return;let L=B=>{let K=Array.from(k.querySelectorAll(".flyfish-pptx-content .slide"));if(K.length===0)return;let ge=k.getBoundingClientRect().top+k.clientHeight/2,oe=0,E=Number.POSITIVE_INFINITY;K.forEach((ie,V)=>{let xe=ie.getBoundingClientRect(),ce=Math.abs(xe.top+xe.height/2-ge);ce<E&&(E=ce,oe=V)});let be=Math.max(0,Math.min(K.length-1,oe+B));if(be===oe)return;let U=K[be].getBoundingClientRect(),Ce=U.top+U.height/2-ge;k.scrollTo({top:Math.max(0,k.scrollTop+Ce),behavior:"smooth"})},$=B=>{["ArrowUp","ArrowLeft"].includes(B.key)?(B.preventDefault(),L(-1)):["ArrowDown","ArrowRight"," "].includes(B.key)?(B.preventDefault(),L(1)):B.key==="Home"?(B.preventDefault(),L(-9999)):B.key==="End"&&(B.preventDefault(),L(9999))};return window.addEventListener("keydown",$),()=>window.removeEventListener("keydown",$)},[]),sa("div",{className:"ui-file-preview-ppt","data-global-context-menu-ignore":"true",children:[zt("style",{children:`.ui-file-preview-ppt {
|
|
179
|
+
position: relative;
|
|
180
|
+
width: 100%;
|
|
181
|
+
height: 100dvh;
|
|
182
|
+
background: #000;
|
|
183
|
+
color: #000;
|
|
184
|
+
color-scheme: light;
|
|
185
|
+
overflow: hidden;
|
|
186
|
+
}
|
|
187
|
+
.ppt-export-pdf-btn {
|
|
188
|
+
position: absolute;
|
|
189
|
+
top: 7px;
|
|
190
|
+
right: 16px;
|
|
191
|
+
z-index: 50;
|
|
192
|
+
}
|
|
193
|
+
.ppt-scroll-container {
|
|
194
|
+
width: 100%;
|
|
195
|
+
height: 100dvh;
|
|
196
|
+
overflow-y: auto;
|
|
197
|
+
overflow-x: hidden;
|
|
198
|
+
scrollbar-width: none;
|
|
199
|
+
}
|
|
200
|
+
.ppt-scroll-container::-webkit-scrollbar {
|
|
201
|
+
display: none;
|
|
202
|
+
}
|
|
203
|
+
/* \u8986\u76D6 viewer \u9ED8\u8BA4\u7684 .slide margin-bottom: 50px\uFF0C
|
|
204
|
+
\u7531 layoutSlides() \u7CBE\u786E\u8BA1\u7B97\u95F4\u8DDD\u5E76 inline \u8BBE\u7F6E\u3002
|
|
205
|
+
\u5355\u9875\u663E\u793A\uFF1A\u9ED8\u8BA4\u5168\u90E8\u900F\u660E\uFF0C\u4EC5\u5F53\u524D\u9875\uFF08\u89C6\u89C9\u4E2D\u5FC3\u6240\u5728\u9875\uFF09\u52A0
|
|
206
|
+
.ppt-slide-active \u540E\u4E0D\u900F\u660E\uFF0C\u4FDD\u8BC1\u4EFB\u4F55\u7A97\u53E3\u6BD4\u4F8B\u4E0B\u7A97\u53E3\u5185\u53EA\u51FA\u73B0\u4E00\u9875\uFF1B
|
|
207
|
+
\u8FC7\u6E21\u65F6\u95F4\u8981\u77ED\uFF0C\u7FFB\u9875\u65F6\u5FEB\u901F\u6DE1\u5165\u6DE1\u51FA\u800C\u4E0D\u62D6\u6CE5\u5E26\u6C34\u3002
|
|
208
|
+
\uFF08\u79BB\u5C4F\u5BFC\u51FA PDF \u7684 viewer \u4E0D\u5728 .ppt-scroll-container \u5185\uFF0C\u4E0D\u53D7\u5F71\u54CD\uFF09 */
|
|
209
|
+
.ppt-scroll-container .flyfish-pptx-content .slide {
|
|
210
|
+
box-shadow: none !important;
|
|
211
|
+
opacity: 0;
|
|
212
|
+
transition: opacity 0.18s ease;
|
|
213
|
+
}
|
|
214
|
+
.ppt-scroll-container .flyfish-pptx-content .slide.ppt-slide-active {
|
|
215
|
+
opacity: 1;
|
|
216
|
+
}
|
|
217
|
+
.ppt-loading-overlay {
|
|
218
|
+
position: absolute;
|
|
219
|
+
top: 0;
|
|
220
|
+
left: 0;
|
|
221
|
+
right: 0;
|
|
222
|
+
bottom: 0;
|
|
223
|
+
background: #000;
|
|
224
|
+
display: flex;
|
|
225
|
+
flex-direction: column;
|
|
226
|
+
align-items: center;
|
|
227
|
+
justify-content: center;
|
|
228
|
+
z-index: 100;
|
|
229
|
+
}
|
|
230
|
+
.ppt-loading-spinner {
|
|
231
|
+
width: 40px;
|
|
232
|
+
height: 40px;
|
|
233
|
+
border: 3px solid #333;
|
|
234
|
+
border-top: 3px solid #5292f7;
|
|
235
|
+
border-radius: 50%;
|
|
236
|
+
animation: ppt-spin 1s linear infinite;
|
|
237
|
+
}
|
|
238
|
+
.ppt-loading-text {
|
|
239
|
+
margin-top: 16px;
|
|
240
|
+
color: #ccc;
|
|
241
|
+
font-size: 14px;
|
|
242
|
+
}
|
|
243
|
+
.ppt-loading-progress {
|
|
244
|
+
margin-top: 20px;
|
|
245
|
+
width: 220px;
|
|
246
|
+
height: 6px;
|
|
247
|
+
background: #2a2a2a;
|
|
248
|
+
border-radius: 3px;
|
|
249
|
+
overflow: hidden;
|
|
250
|
+
}
|
|
251
|
+
.ppt-loading-progress-bar {
|
|
252
|
+
height: 100%;
|
|
253
|
+
background: linear-gradient(90deg, #5292f7, #67b8ff);
|
|
254
|
+
border-radius: 3px;
|
|
255
|
+
transition: width 0.3s ease;
|
|
256
|
+
}
|
|
257
|
+
.ppt-loading-percent {
|
|
258
|
+
margin-top: 8px;
|
|
259
|
+
color: #888;
|
|
260
|
+
font-size: 12px;
|
|
261
|
+
min-height: 16px;
|
|
262
|
+
}
|
|
263
|
+
.ppt-loading-error-icon {
|
|
264
|
+
font-size: 48px;
|
|
265
|
+
color: #f56c6c;
|
|
266
|
+
}
|
|
267
|
+
.ppt-loading-error-text {
|
|
268
|
+
margin-top: 16px;
|
|
269
|
+
color: #f56c6c;
|
|
270
|
+
font-size: 14px;
|
|
271
|
+
}
|
|
272
|
+
.ppt-loading-retry-btn {
|
|
273
|
+
margin-top: 20px;
|
|
274
|
+
padding: 8px 24px;
|
|
275
|
+
background: #5292f7;
|
|
276
|
+
color: #fff;
|
|
277
|
+
border: none;
|
|
278
|
+
border-radius: 4px;
|
|
279
|
+
cursor: pointer;
|
|
280
|
+
font-size: 14px;
|
|
281
|
+
}
|
|
282
|
+
.ppt-loading-retry-btn:hover {
|
|
283
|
+
background: #67b8ff;
|
|
284
|
+
}
|
|
285
|
+
@keyframes ppt-spin {
|
|
286
|
+
0% { transform: rotate(0deg); }
|
|
287
|
+
100% { transform: rotate(360deg); }
|
|
288
|
+
}`}),!t&&!r&&e&&zt(St,{onExportPdf:A,onDownload:Z,exportingPdf:d,buttonProps:{className:"vendorsys-export-trigger-on-dark ppt-export-pdf-btn mr-[30px] bg-transparent border-none"}}),e&&t&&!r&&sa("div",{className:"ppt-loading-overlay",children:[zt("div",{className:"ppt-loading-spinner"}),zt("div",{className:"ppt-loading-text",children:"\u52A0\u8F7D\u4E2D..."}),zt("div",{className:"ppt-loading-progress",children:zt("div",{className:"ppt-loading-progress-bar",style:{width:`${s==="rendering"?100:p}%`}})}),zt("div",{className:"ppt-loading-percent",children:s==="rendering"?M>0?`\u6B63\u5728\u6E32\u67D3\u5E7B\u706F\u7247 \u7B2C ${Math.max(h,1)} / ${M} \u9875`:"\u6B63\u5728\u6E32\u67D3\u5E7B\u706F\u7247\u2026":p>=100?"\u6B63\u5728\u5904\u7406\u5E7B\u706F\u7247\u8D44\u6E90\u2026":p>0?`\u6B63\u5728\u89E3\u6790\u6F14\u793A\u6587\u7A3F ${p}%${m>0?` \xB7 \u5DF2\u89E3\u6790\u7B2C ${m} \u9875`:""}`:"\u6B63\u5728\u8BFB\u53D6\u6587\u4EF6\u2026"})]}),e&&r&&sa("div",{className:"ppt-loading-overlay",children:[zt("div",{className:"ppt-loading-error-icon",children:"\u2715"}),zt("div",{className:"ppt-loading-error-text",children:"\u6587\u6863\u52A0\u8F7D\u5931\u8D25"}),zt("button",{className:"ppt-loading-retry-btn",onClick:()=>{o(!1),n(!0),l(k=>k+1)},children:"\u91CD\u65B0\u52A0\u8F7D"})]}),zt("div",{ref:O,className:"ppt-scroll-container",children:zt("div",{ref:I,className:"ppt-render-target",style:{width:"100%"}})})]})}});var li=it(()=>{"use strict";ir();Wt(`[role=option][data-value=Normal] span{font-family:STFangsong,STSong,"FangSong",serif!important}[role=option][data-value=Heading1] span,[role=option][data-value=Heading2] span,[role=option][data-value=Heading3] span,[role=option][data-value=Heading4] span,[role=option][data-value=Heading5] span,[role=option][data-value=Heading6] span,[role=option][data-value=Title] span{font-family:STHeiti,STSong,SimHei,Microsoft YaHei,sans-serif!important}[role=option][data-value=Subtitle] span,[role=option][data-value=Quote] span,[role=option][data-value=IntenseQuote] span{font-family:STKaiti,STSong,KaiTi,serif!important}.ep-root .paged-editor,.ep-root .paged-editor__pages-container{display:block!important}.ep-root,#vendorsys-word-editor-root,.vendorsys-word-editor-root{overflow:visible!important}.ep-root .layout-page{position:relative!important;box-sizing:content-box!important;display:block!important}.ep-root .layout-page-header{position:absolute!important;box-sizing:content-box!important;display:block!important;clear:both!important;float:none!important}.ep-root .layout-page-header>*{position:static!important;inset:0 auto auto 0!important;transform:none!important;margin:0!important}.ep-root .layout-page-footer{position:absolute!important;box-sizing:content-box!important;display:block!important;clear:both!important;float:none!important}.ep-root .layout-page-footer>*{position:static!important;inset:0 auto auto 0!important;transform:none!important;margin:0!important}.ep-root .layout-page-content{box-sizing:content-box!important;display:block!important;clear:both!important;float:none!important}.ep-root .layout-page-header>*,.ep-root .layout-page-footer>*,.ep-root .layout-page-header p,.ep-root .layout-page-footer p{text-align:inherit;float:none!important;clear:both;box-sizing:content-box!important}.ep-root .layout-page-header *,.ep-root .layout-page-footer *{box-sizing:content-box!important}.ep-root .docx-editor__pages-container,.ep-root .docx-editor-vue__pages-container,.ep-root .prosemirror-zoom-container,.ep-root .prosemirror-editor-wrapper{box-sizing:content-box!important;display:block!important}.ep-root .layout-paragraph,.ep-root .layout-line,.ep-root .layout-fragment{box-sizing:content-box!important;display:block!important;float:none!important}.ep-root .docx-editor__scroll-container,.ep-root .docx-editor-vue__pages-viewport{display:block!important}.ep-root .layout-page-header .layout-textbox,.ep-root .layout-page-footer .layout-textbox{width:auto!important;height:auto!important;min-width:0!important;min-height:0!important;inset:0 auto auto 50%!important;transform:translate(-50%)!important;position:absolute!important;box-sizing:content-box!important;padding:0!important}.ep-root .layout-page-header .layout-textbox .layout-paragraph,.ep-root .layout-page-footer .layout-textbox .layout-paragraph,.ep-root .layout-page-header .layout-textbox .layout-line,.ep-root .layout-page-footer .layout-textbox .layout-line{display:inline-block!important;width:auto!important;box-sizing:content-box!important}#vendorsys-word-editor-root .paged-editor,#vendorsys-word-editor-root .paged-editor__pages-container,.vendorsys-word-editor-root .paged-editor,.vendorsys-word-editor-root .paged-editor__pages-container{display:block!important}#vendorsys-word-editor-root .layout-page,.vendorsys-word-editor-root .layout-page{position:relative!important;box-sizing:content-box!important;display:block!important}#vendorsys-word-editor-root .layout-page-header,.vendorsys-word-editor-root .layout-page-header{position:absolute!important;box-sizing:content-box!important;display:block!important;clear:both!important;float:none!important}#vendorsys-word-editor-root .layout-page-header>*,.vendorsys-word-editor-root .layout-page-header>*{position:static!important;inset:0 auto auto 0!important;transform:none!important;margin:0!important}#vendorsys-word-editor-root .layout-page-footer,.vendorsys-word-editor-root .layout-page-footer{position:absolute!important;box-sizing:content-box!important;display:block!important;clear:both!important;float:none!important}#vendorsys-word-editor-root .layout-page-footer>*,.vendorsys-word-editor-root .layout-page-footer>*{position:static!important;inset:0 auto auto 0!important;transform:none!important;margin:0!important}#vendorsys-word-editor-root .layout-page-content,.vendorsys-word-editor-root .layout-page-content{box-sizing:content-box!important;display:block!important;clear:both!important;float:none!important}#vendorsys-word-editor-root .layout-page-header>*,.vendorsys-word-editor-root .layout-page-header>*,#vendorsys-word-editor-root .layout-page-footer>*,.vendorsys-word-editor-root .layout-page-footer>*,#vendorsys-word-editor-root .layout-page-header p,.vendorsys-word-editor-root .layout-page-header p,#vendorsys-word-editor-root .layout-page-footer p,.vendorsys-word-editor-root .layout-page-footer p{text-align:inherit;float:none!important;clear:both;box-sizing:content-box!important}#vendorsys-word-editor-root .layout-page-header *,.vendorsys-word-editor-root .layout-page-header *,#vendorsys-word-editor-root .layout-page-footer *,.vendorsys-word-editor-root .layout-page-footer *{box-sizing:content-box!important}#vendorsys-word-editor-root .docx-editor__pages-container,.vendorsys-word-editor-root .docx-editor__pages-container,#vendorsys-word-editor-root .docx-editor-vue__pages-container,.vendorsys-word-editor-root .docx-editor-vue__pages-container,#vendorsys-word-editor-root .prosemirror-zoom-container,.vendorsys-word-editor-root .prosemirror-zoom-container,#vendorsys-word-editor-root .prosemirror-editor-wrapper,.vendorsys-word-editor-root .prosemirror-editor-wrapper{box-sizing:content-box!important;display:block!important}#vendorsys-word-editor-root .layout-paragraph,.vendorsys-word-editor-root .layout-paragraph,#vendorsys-word-editor-root .layout-line,.vendorsys-word-editor-root .layout-line,#vendorsys-word-editor-root .layout-fragment,.vendorsys-word-editor-root .layout-fragment{box-sizing:content-box!important;display:block!important;float:none!important}#vendorsys-word-editor-root .docx-editor__scroll-container,.vendorsys-word-editor-root .docx-editor__scroll-container,#vendorsys-word-editor-root .docx-editor-vue__pages-viewport,.vendorsys-word-editor-root .docx-editor-vue__pages-viewport{display:block!important}#vendorsys-word-editor-root .layout-page-header .layout-textbox,.vendorsys-word-editor-root .layout-page-header .layout-textbox,#vendorsys-word-editor-root .layout-page-footer .layout-textbox,.vendorsys-word-editor-root .layout-page-footer .layout-textbox{width:auto!important;height:auto!important;min-width:0!important;min-height:0!important;inset:0 auto auto 50%!important;transform:translate(-50%)!important;position:absolute!important;box-sizing:content-box!important;padding:0!important}#vendorsys-word-editor-root .layout-page-header .layout-textbox .layout-paragraph,.vendorsys-word-editor-root .layout-page-header .layout-textbox .layout-paragraph,#vendorsys-word-editor-root .layout-page-footer .layout-textbox .layout-paragraph,.vendorsys-word-editor-root .layout-page-footer .layout-textbox .layout-paragraph,#vendorsys-word-editor-root .layout-page-header .layout-textbox .layout-line,.vendorsys-word-editor-root .layout-page-header .layout-textbox .layout-line,#vendorsys-word-editor-root .layout-page-footer .layout-textbox .layout-line,.vendorsys-word-editor-root .layout-page-footer .layout-textbox .layout-line{display:inline-block!important;width:auto!important;box-sizing:content-box!important}.layout-page{position:relative;box-sizing:content-box}.layout-page-header,.layout-page-footer{position:absolute;box-sizing:content-box;display:block;clear:both;float:none}.layout-page-header>*,.layout-page-footer>*{position:static!important;inset:0 auto auto 0!important;transform:none!important;margin:0!important}.layout-page-header .layout-textbox,.layout-page-footer .layout-textbox{width:auto!important;height:auto!important;min-width:0!important;min-height:0!important;left:50%!important;transform:translate(-50%)!important;top:0!important;position:absolute!important;box-sizing:content-box!important;padding:0!important}.layout-page-header .layout-textbox .layout-paragraph,.layout-page-footer .layout-textbox .layout-paragraph,.layout-page-header .layout-textbox .layout-line,.layout-page-footer .layout-textbox .layout-line{display:inline-block!important;width:auto!important}.layout-page-content{box-sizing:content-box;display:block;float:none}.ep-root .style-preview-Normal,#vendorsys-word-editor-root .style-preview-Normal,.style-preview-Normal,.ep-root .style-preview-Heading1,#vendorsys-word-editor-root .style-preview-Heading1,.style-preview-Heading1,.ep-root .style-preview-Heading2,#vendorsys-word-editor-root .style-preview-Heading2,.style-preview-Heading2,.ep-root .style-preview-Heading3,#vendorsys-word-editor-root .style-preview-Heading3,.style-preview-Heading3,.ep-root .style-preview-Title,#vendorsys-word-editor-root .style-preview-Title,.style-preview-Title,.ep-root .style-preview-Subtitle,#vendorsys-word-editor-root .style-preview-Subtitle,.style-preview-Subtitle,.ep-root .style-preview-Quote,#vendorsys-word-editor-root .style-preview-Quote,.style-preview-Quote,.ep-root .style-preview-IntenseQuote,#vendorsys-word-editor-root .style-preview-IntenseQuote,.style-preview-IntenseQuote,.ep-root .style-preview-NoSpacing,#vendorsys-word-editor-root .style-preview-NoSpacing,.style-preview-NoSpacing,.ep-root .style-preview-PlainText,#vendorsys-word-editor-root .style-preview-PlainText,.style-preview-PlainText{line-height:1.8!important;padding:2px 6px!important}.ep-root .style-preview-Normal,#vendorsys-word-editor-root .style-preview-Normal,.style-preview-Normal{font-family:STFangsong,STSong,"FangSong",serif!important;font-size:16px!important;font-weight:400!important}.ep-root .style-preview-Heading1,#vendorsys-word-editor-root .style-preview-Heading1,.style-preview-Heading1,.ep-root .style-preview-Title,#vendorsys-word-editor-root .style-preview-Title,.style-preview-Title{font-family:STHeiti,STSong,SimHei,Microsoft YaHei,sans-serif!important;font-size:18px!important;font-weight:700!important}.ep-root .style-preview-Heading2,#vendorsys-word-editor-root .style-preview-Heading2,.style-preview-Heading2{font-family:STHeiti,STSong,SimHei,Microsoft YaHei,sans-serif!important;font-size:16px!important;font-weight:700!important}.ep-root .style-preview-Heading3,#vendorsys-word-editor-root .style-preview-Heading3,.style-preview-Heading3,.ep-root .style-preview-Heading4,#vendorsys-word-editor-root .style-preview-Heading4,.style-preview-Heading4,.ep-root .style-preview-Heading5,#vendorsys-word-editor-root .style-preview-Heading5,.style-preview-Heading5,.ep-root .style-preview-Heading6,#vendorsys-word-editor-root .style-preview-Heading6,.style-preview-Heading6{font-family:STHeiti,STSong,SimHei,Microsoft YaHei,sans-serif!important;font-size:15px!important;font-weight:700!important}.ep-root .style-preview-Subtitle,#vendorsys-word-editor-root .style-preview-Subtitle,.style-preview-Subtitle{font-family:STKaiti,STSong,KaiTi,serif!important;font-size:16px!important;font-weight:400!important}.ep-root .style-preview-Quote,#vendorsys-word-editor-root .style-preview-Quote,.style-preview-Quote,.ep-root .style-preview-IntenseQuote,#vendorsys-word-editor-root .style-preview-IntenseQuote,.style-preview-IntenseQuote{font-family:STKaiti,STSong,KaiTi,serif!important;font-size:16px!important;font-style:italic!important;font-weight:400!important}.ep-root .style-preview-NoSpacing,#vendorsys-word-editor-root .style-preview-NoSpacing,.style-preview-NoSpacing,.ep-root .style-preview-PlainText,#vendorsys-word-editor-root .style-preview-PlainText,.style-preview-PlainText{font-family:STFangsong,STSong,"FangSong",serif!important;font-size:14px!important;font-weight:400!important}.ep-root [data-vendorsys-hidden-style-picker=true],#vendorsys-word-editor-root [data-vendorsys-hidden-style-picker=true],[data-vendorsys-hidden-style-picker=true]{display:none!important;visibility:hidden!important;width:0!important;height:0!important;overflow:hidden!important;padding:0!important;margin:0!important}.ep-root .vendorsys-custom-style-picker,#vendorsys-word-editor-root .vendorsys-custom-style-picker,.vendorsys-custom-style-picker{display:inline-flex!important;align-items:center!important;height:28px!important;padding:0 6px!important;box-sizing:border-box!important;background:transparent!important}.ep-root .vendorsys-custom-style-picker__label,#vendorsys-word-editor-root .vendorsys-custom-style-picker__label,.vendorsys-custom-style-picker__label{font-size:12px!important;line-height:28px!important;color:#8c8c8c!important;margin-right:4px!important;white-space:nowrap!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important}.ep-root .vendorsys-custom-style-picker>.ant-select,#vendorsys-word-editor-root .vendorsys-custom-style-picker>.ant-select,.vendorsys-custom-style-picker>.ant-select{width:150px!important;box-sizing:border-box!important}.ant-select-dropdown.vendorsys-word-style-dropdown,body>.ant-select-dropdown.vendorsys-word-style-dropdown{z-index:10000!important}:where(.ant-select-dropdown.vendorsys-word-style-dropdown) .ant-select-item,:where(.ant-select-dropdown.vendorsys-word-style-dropdown) .ant-select-item-option,:where(.ant-select-dropdown.vendorsys-word-style-dropdown) .ant-select-item-option-content,:where(.ant-select-dropdown.vendorsys-word-style-dropdown) .ant-select-item-option-content>*{font:inherit!important;line-height:inherit!important}:where(.ant-select-dropdown.vendorsys-word-style-dropdown) .ant-select-item,:where(.ant-select-dropdown.vendorsys-word-style-dropdown) .ant-select-item-option{padding-top:7px!important;padding-bottom:7px!important}:where(.ant-select-dropdown) .style-preview-Normal{font-family:STFangsong,STSong,"FangSong",serif!important}:where(.ant-select-dropdown) .style-preview-Heading1,:where(.ant-select-dropdown) .style-preview-Title{font-family:STHeiti,STSong,SimHei,Microsoft YaHei,sans-serif!important;font-weight:700!important}:where(.ant-select-dropdown) .style-preview-Heading2{font-family:STHeiti,STSong,SimHei,Microsoft YaHei,sans-serif!important;font-weight:700!important}:where(.ant-select-dropdown) .style-preview-Heading3,:where(.ant-select-dropdown) .style-preview-Heading4,:where(.ant-select-dropdown) .style-preview-Heading5,:where(.ant-select-dropdown) .style-preview-Heading6{font-family:STHeiti,STSong,SimHei,Microsoft YaHei,sans-serif!important;font-weight:700!important}:where(.ant-select-dropdown) .style-preview-Subtitle{font-family:STKaiti,STSong,KaiTi,serif!important}:where(.ant-select-dropdown) .style-preview-Quote,:where(.ant-select-dropdown) .style-preview-IntenseQuote{font-family:STKaiti,STSong,KaiTi,serif!important;font-style:italic!important}:where(.ant-select-dropdown) .style-preview-NoSpacing,:where(.ant-select-dropdown) .style-preview-PlainText{font-family:STFangsong,STSong,"FangSong",serif!important}:where(.ant-select-dropdown) .style-preview-fallback{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;color:#bfbfbf!important;font-style:italic!important}[data-theme=dark] .ant-select-dropdown.vendorsys-word-style-dropdown{background-color:#fff!important;color:#000000e0!important;color-scheme:light!important;box-shadow:0 6px 16px #0000001f,0 3px 6px -4px #00000029!important}[data-theme=dark] .ant-select-dropdown.vendorsys-word-style-dropdown .rc-virtual-list-holder,[data-theme=dark] .ant-select-dropdown.vendorsys-word-style-dropdown .rc-virtual-list-holder-inner{background-color:#fff!important}[data-theme=dark] .ant-select-dropdown.vendorsys-word-style-dropdown .ant-select-item,[data-theme=dark] .ant-select-dropdown.vendorsys-word-style-dropdown .ant-select-item-option,[data-theme=dark] .ant-select-dropdown.vendorsys-word-style-dropdown .ant-select-item-option-content{color:#000000e0}[data-theme=dark] .ant-select-dropdown.vendorsys-word-style-dropdown .ant-select-item-option-active:not(.ant-select-item-option-disabled){background-color:#f5f5f5!important}[data-theme=dark] .ant-select-dropdown.vendorsys-word-style-dropdown .ant-select-item-option-selected:not(.ant-select-item-option-disabled){background-color:#e6f4ff!important}[data-theme=dark] .ant-select-dropdown.vendorsys-word-style-dropdown .ant-select-item-option-disabled{color:#bfbfbf!important}[data-theme=dark] .ant-select-dropdown.vendorsys-word-style-dropdown ::-webkit-scrollbar-thumb{background-color:#0003!important}[data-theme=dark] .vendorsys-custom-style-picker{background:#0000000a!important}[data-theme=dark] .vendorsys-custom-style-picker .ant-select-selector{background-color:#fff!important;border-color:#d9d9d9!important}[data-theme=dark] .vendorsys-custom-style-picker .ant-select-selection-item,[data-theme=dark] .vendorsys-custom-style-picker .ant-select-selection-placeholder{color:#000000e0!important}[data-theme=dark] .vendorsys-custom-style-picker .ant-select-arrow{color:#00000073!important}[data-theme=dark] .vendorsys-custom-style-picker:hover .ant-select-selector,[data-theme=dark] .vendorsys-custom-style-picker .ant-select-focused .ant-select-selector{border-color:#4096ff!important}.ep-root [data-vendorsys-style-id=HongTouSeparator],.ep-root .vendorsys-pstyle-hongtouseparator{position:relative!important;border-top:none!important;border-left:none!important;border-right:none!important;border-bottom:none!important;padding-bottom:2px!important;box-sizing:content-box!important}.ep-root [data-vendorsys-style-id=HongTouSeparator]:after,.ep-root .vendorsys-pstyle-hongtouseparator:after{content:""!important;display:block!important;position:absolute!important;left:0!important;right:0!important;bottom:0!important;width:auto!important;height:2px!important;background-color:red!important;opacity:1!important;visibility:visible!important;pointer-events:none!important;z-index:1!important;border:none!important}#vendorsys-word-editor-root [data-vendorsys-style-id=HongTouSeparator],#vendorsys-word-editor-root .vendorsys-pstyle-hongtouseparator,.vendorsys-word-editor-root [data-vendorsys-style-id=HongTouSeparator],.vendorsys-word-editor-root .vendorsys-pstyle-hongtouseparator{position:relative!important;border-top:none!important;border-left:none!important;border-right:none!important;border-bottom:none!important;padding-bottom:2px!important;box-sizing:content-box!important}#vendorsys-word-editor-root [data-vendorsys-style-id=HongTouSeparator]:after,#vendorsys-word-editor-root .vendorsys-pstyle-hongtouseparator:after,.vendorsys-word-editor-root [data-vendorsys-style-id=HongTouSeparator]:after,.vendorsys-word-editor-root .vendorsys-pstyle-hongtouseparator:after{content:""!important;display:block!important;position:absolute!important;left:0!important;right:0!important;bottom:0!important;width:auto!important;height:2px!important;background-color:red!important;opacity:1!important;visibility:visible!important;pointer-events:none!important;z-index:1!important;border:none!important}[data-vendorsys-style-id=HongTouSeparator],.vendorsys-pstyle-hongtouseparator{position:relative!important;border-top:none!important;border-left:none!important;border-right:none!important;border-bottom:none!important;padding-bottom:2px!important;box-sizing:content-box!important}[data-vendorsys-style-id=HongTouSeparator]:after,.vendorsys-pstyle-hongtouseparator:after{content:""!important;display:block!important;position:absolute!important;left:0!important;right:0!important;bottom:0!important;width:auto!important;height:2px!important;background-color:red!important;opacity:1!important;visibility:visible!important;pointer-events:none!important;z-index:1!important;border:none!important}.vendorsys-paste-smart-tag{position:fixed;z-index:11000}.vendorsys-paste-smart-tag-trigger{display:inline-flex;align-items:center;gap:2px;padding:2px 6px;background:#fff;border:1px solid #d9d9d9;border-radius:4px;box-shadow:0 2px 8px #00000026;cursor:pointer;font-size:13px;color:#444}.vendorsys-paste-smart-tag-trigger:hover{color:#1677ff;border-color:#1677ff}.vendorsys-paste-smart-tag-trigger .arrow{font-size:9px}.vendorsys-paste-smart-tag-menu{min-width:176px;background:#fff;border:1px solid #e5e5e5;border-radius:6px;box-shadow:0 6px 16px #0000002e;padding:4px 0}.vendorsys-paste-smart-tag-menu button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:6px 14px;border:none;background:transparent;cursor:pointer;font-size:13px;color:#333;text-align:left}.vendorsys-paste-smart-tag-menu button:hover{background:#f0f5ff;color:#1677ff}.vendorsys-paste-smart-tag-menu button .key{margin-left:20px;font-size:12px;color:#999}.vendorsys-paste-smart-tag-menu button:hover .key{color:#1677ff}[data-theme=dark] .vendorsys-paste-smart-tag-trigger{background:#2b2b2b;border-color:#4a4a4a;color:#ddd}[data-theme=dark] .vendorsys-paste-smart-tag-menu{background:#2b2b2b;border-color:#4a4a4a}[data-theme=dark] .vendorsys-paste-smart-tag-menu button{color:#ddd}[data-theme=dark] .vendorsys-paste-smart-tag-menu button:hover{background:#1677ff2e;color:#69a9ff}[data-theme=dark] .vendorsys-paste-smart-tag-menu button:hover .key{color:#69a9ff}
|
|
289
|
+
`)});import*as ia from"mammoth";var ci,di=it(()=>{"use strict";ci=ia.default??ia});import ju from"turndown";import{gfm as Vu}from"turndown-plugin-gfm";var Zu,Wu,Ku,ui,pi=it(()=>{"use strict";di();dn();Zu=e=>`${e.replace(/\.(docx|doc)$/i,"")||"document"}.md`,Wu=e=>{let t=new DOMParser().parseFromString(e,"text/html");return t.querySelectorAll("table").forEach(n=>{let r=n.querySelector("tr");if(!r||!r.querySelector("td"))return;let o=t.createElement("thead");r.querySelectorAll("td").forEach(i=>{let l=t.createElement("th");l.innerHTML=i.innerHTML,i.replaceWith(l)}),n.insertBefore(o,n.firstChild),o.appendChild(r)}),t.querySelectorAll("table td, table th").forEach(n=>{n.querySelectorAll("p").forEach(r=>{let o=Array.from(r.childNodes);r.nextElementSibling&&o.push(t.createTextNode(" ")),r.replaceWith(...o)}),n.querySelectorAll("br").forEach(r=>{r.replaceWith(t.createTextNode(" "))})}),t.body},Ku=async e=>{let t=await e.arrayBuffer(),{value:n}=await ci.convertToHtml({arrayBuffer:t}),r=new ju({headingStyle:"atx",bulletListMarker:"-",codeBlockStyle:"fenced",hr:"---"});return r.use(Vu),r.turndown(Wu(n))},ui=async({file:e,fileName:t})=>{let n=await Ku(e);return Dt(new Blob([n],{type:"text/markdown;charset=utf-8"}),Zu(t)),n}});import{createEmptyDocument as Gu}from"@eigenpal/docx-editor-react";function da(){let e=Gu();return ua(e),e}function ua(e){if(!e.package)return e;let t=e.package.styles?.styles||[],n=new Set(kt.map(l=>l.styleId)),r=new Set(kt.filter(l=>l.name).map(l=>Rn(l.name))),i=[...t.filter(l=>{let d=l.name&&r.has(Rn(l.name)),a=n.has(l.styleId);return!(d||a)}),...kt];return e.package.styles={docDefaults:e.package.styles?.docDefaults,styles:i},e}function Qu(e,t){let n=0;for(let r of e.content??[])r.type==="run"&&r.formatting?.fontSize&&(n=Math.max(n,r.formatting.fontSize));n=Math.max(n,e.formatting?.runProperties?.fontSize??0);for(let r of t(e.formatting?.styleId))if(r.rPr?.fontSize){n=Math.max(n,r.rPr.fontSize);break}return n||Ju}function ep(e,t){let n=[],r=o=>{o&&n.push(o.eastAsia,o.ascii,o.hAnsi,o.cs)};for(let o of e.content??[])o.type==="run"&&r(o.formatting?.fontFamily);r(e.formatting?.runProperties?.fontFamily);for(let o of t(e.formatting?.styleId))r(o.rPr?.fontFamily);return n.filter(o=>typeof o=="string"&&o.length>0)}function vo(e,t){if(Array.isArray(e)){for(let n of e)if(!(!n||typeof n!="object")&&(n.type==="paragraph"&&t(n),Array.isArray(n.content)&&vo(n.content,t),Array.isArray(n.rows))){for(let r of n.rows)if(Array.isArray(r?.cells))for(let o of r.cells)vo(o.content,t)}}}function gi(e){let n=e.package?.document?.sections;if(!Array.isArray(n))return e;let r=e.package?.styles?.styles??[],o=i=>{let l=[],d=new Set,a=i;for(;a&&!d.has(a);){d.add(a);let s=r.find(c=>c.styleId===a);if(!s)break;l.push(s),a=s.basedOn}return l};for(let i of n){let l=i.properties?.docGrid,d=l?.linePitch;if(!d||l?.type!=="lines"&&l?.type!=="linesAndChars")continue;let a=s=>{let c=s.formatting??(s.formatting={});if(c.lineSpacing!==void 0&&c.lineSpacing!==null)return;let p=Qu(s,o),_=ep(s,o).some(M=>Xu.test(M))?qu:Yu,h=p*_*10,x=Math.max(1,Math.ceil(h/d-1e-6));c.lineSpacing=Math.round(x*d),c.lineSpacingRule="atLeast"};vo(i.content,a);for(let s of[i.headers,i.footers])if(s instanceof Map)for(let c of s.values())vo(c?.content,a)}return e}function bo(e){if(!e)return;let t=e.eastAsia?.trim();!t||!tp.test(t)||(e.ascii=t,e.hAnsi=t)}function _o(e,t){if(Array.isArray(e)){for(let n of e)if(!(!n||typeof n!="object")&&(t(n),Array.isArray(n.content)&&_o(n.content,t),Array.isArray(n.rows))){for(let r of n.rows)if(Array.isArray(r?.cells))for(let o of r.cells)_o(o.content,t)}}}function yi(e){let t=e.package?.document,n=o=>{bo(o.formatting?.fontFamily),bo(o.formatting?.runProperties?.fontFamily)};for(let o of t?.sections??[]){_o(o.content,n);for(let i of[o.headers,o.footers])if(i instanceof Map)for(let l of i.values())_o(l?.content,n)}let r=e.package?.styles;bo(r?.docDefaults?.rPr?.fontFamily);for(let o of r?.styles??[])bo(o.rPr?.fontFamily);return e}function np(e){let t=[];if(e.spaceBefore!==void 0||e.spaceAfter!==void 0||e.lineSpacing!==void 0||e.lineSpacingRule!==void 0||e.beforeAutospacing!==void 0||e.afterAutospacing!==void 0){let r=[];e.spaceBefore!==void 0&&r.push(`w:before="${e.spaceBefore}"`),e.spaceAfter!==void 0&&r.push(`w:after="${e.spaceAfter}"`),e.lineSpacing!==void 0&&r.push(`w:line="${e.lineSpacing}"`),e.lineSpacingRule!==void 0&&r.push(`w:lineRule="${e.lineSpacingRule}"`),e.beforeAutospacing!==void 0&&r.push(`w:beforeAutospacing="${e.beforeAutospacing?1:0}"`),e.afterAutospacing!==void 0&&r.push(`w:afterAutospacing="${e.afterAutospacing?1:0}"`),t.push(`<w:spacing ${r.join(" ")}/>`)}if(e.indentLeft!==void 0||e.indentRight!==void 0||e.indentFirstLine!==void 0){let r=[];e.indentLeft!==void 0&&r.push(`w:left="${e.indentLeft}"`),e.indentRight!==void 0&&r.push(`w:right="${e.indentRight}"`),e.indentFirstLine!==void 0&&(e.hangingIndent?r.push(`w:hanging="${Math.abs(e.indentFirstLine)}"`):r.push(`w:firstLine="${e.indentFirstLine}"`)),t.push(`<w:ind ${r.join(" ")}/>`)}return e.alignment!==void 0&&t.push(`<w:jc w:val="${e.alignment}"/>`),e.outlineLevel!==void 0&&t.push(`<w:outlineLvl w:val="${e.outlineLevel}"/>`),t.length?`<w:pPr>${t.join("")}</w:pPr>`:""}function rp(e){let t=[];if(e.fontFamily){let n=[];e.fontFamily.ascii&&n.push(`w:ascii="${gn(e.fontFamily.ascii)}"`),e.fontFamily.hAnsi&&n.push(`w:hAnsi="${gn(e.fontFamily.hAnsi)}"`),e.fontFamily.eastAsia&&n.push(`w:eastAsia="${gn(e.fontFamily.eastAsia)}"`),e.fontFamily.cs&&n.push(`w:cs="${gn(e.fontFamily.cs)}"`),n.length&&t.push(`<w:rFonts ${n.join(" ")}/>`)}if(e.bold&&t.push("<w:b/>"),e.boldCs&&t.push("<w:bCs/>"),e.italic&&t.push("<w:i/>"),e.italicCs&&t.push("<w:iCs/>"),e.color){let n=typeof e.color=="string"?e.color:e.color.rgb;n&&t.push(`<w:color w:val="${n}"/>`)}return e.fontSize!==void 0&&t.push(`<w:sz w:val="${e.fontSize}"/>`),e.fontSizeCs!==void 0&&t.push(`<w:szCs w:val="${e.fontSizeCs}"/>`),t.length?`<w:rPr>${t.join("")}</w:rPr>`:""}function fi(e){let t=[],n=e.type?` w:type="${e.type}"`:"",r=e.styleId?` w:styleId="${gn(e.styleId)}"`:"",o=e.default?' w:default="1"':"";if(t.push(`<w:style${n}${r}${o}>`),e.name!==void 0&&t.push(`<w:name w:val="${gn(e.name)}"/>`),e.basedOn!==void 0&&t.push(`<w:basedOn w:val="${gn(e.basedOn)}"/>`),e.next!==void 0&&t.push(`<w:next w:val="${gn(e.next)}"/>`),e.link!==void 0&&t.push(`<w:link w:val="${gn(e.link)}"/>`),e.uiPriority!==void 0&&t.push(`<w:uiPriority w:val="${e.uiPriority}"/>`),e.qFormat&&t.push("<w:qFormat/>"),e.hidden&&t.push("<w:hidden/>"),e.semiHidden&&t.push("<w:semiHidden/>"),e.unhideWhenUsed&&t.push("<w:unhideWhenUsed/>"),e.pPr){let i=np(e.pPr);i&&t.push(i)}if(e.rPr){let i=rp(e.rPr);i&&t.push(i)}return t.push("</w:style>"),t.join("")}function Rn(e){if(!e)return"";let t=String(e);t=t.replace(/[\uFF01-\uFF5E]/g,n=>String.fromCharCode(n.charCodeAt(0)-65248)),t=t.replace(/\u3000/g," "),t=t.toLowerCase().replace(/\s+/g,"");for(let n=1;n<=9;n++){let r=`\u6807\u9898${n}`,o=`heading${n}`;t.includes(r)&&(t=t.replace(r,o))}return(t==="\u6B63\u6587"||t==="default"||t==="standard")&&(t="normal"),t}function wi(e){let t=[];{let d=/<w:style\b[^>]*w:styleId="([^"]+)"[^>]*>[\s\S]*?<\/w:style>/g,a;for(;a=d.exec(e);){let s=a[0],c=a[1],p=s.match(/<w:name\s+w:val="([^"]*)"[^>]*>/),b=p?p[1]:"";t.push({styleId:c,name:b,normalizedName:Rn(b),matchStart:a.index,matchEnd:a.index+s.length})}}if(t.length===0)return e.replace("</w:styles>",`${kt.map(fi).join(`
|
|
290
|
+
`)}
|
|
291
|
+
</w:styles>`);let n=new Set(kt.map(d=>d.styleId)),r=new Set(kt.filter(d=>d.name).map(d=>Rn(d.name))),o=[];for(let d of t){let a=d.normalizedName&&r.has(d.normalizedName),s=n.has(d.styleId);(a||s)&&o.push({start:d.matchStart,end:d.matchEnd})}let i=e;if(o.length>0){o.sort((d,a)=>a.start-d.start);for(let{start:d,end:a}of o)i=i.slice(0,d)+i.slice(a)}let l=kt.map(fi).join(`
|
|
292
|
+
`);return i=i.replace("</w:styles>",`${l}
|
|
293
|
+
</w:styles>`),i}function mi(e,t,n){let r=0,o=new RegExp(t.source,t.flags.includes("i")?"gi":"g");for(;o.exec(e)!==null;)r++;let i=new RegExp(n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gi"),l=0;for(;i.exec(e)!==null;)l++;return Math.min(r,l)}function op(e){let t=[],n=e;for(let o of ca){let i=new RegExp(o.open.source,o.open.flags.includes("i")?"gi":"g"),l="",d=0,a;for(;(a=i.exec(n))!==null;){let s=a.index,c=s+a[0].length,p=1,b=new RegExp(o.open.source,o.open.flags.includes("i")?"gi":"g");b.lastIndex=c;let m=new RegExp(o.close.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gi");m.lastIndex=c;let _=b.exec(n),h=m.exec(n);for(;p>0&&h!==null;){let x=_?_.index:1/0,M=h.index;if(M<x){if(p--,p===0){let S=M+o.close.length,A=n.slice(s,S),Z=`__${o.guardPrefix}_${t.length}__`;t.push(A),l+=n.slice(d,s)+Z,d=S;break}h=m.exec(n)}else p++,_=b.exec(n)}}l+=n.slice(d),n=l}return{guarded:n,drawings:t,placeholderReg:/__(VEN_DRAWING|VEN_PICT|VEN_VML)_(\d+)__/g}}function ap(e,t,n){return n.lastIndex=0,e.replace(n,(r,o,i)=>{let l=Number(i);return Number.isNaN(l)||l<0||l>=t.length?r:t[l]})}function bi(e,t){let n=e.match(/^<\?xml[^?]*\?>\s*/),r=n?n[0]:"",o=n?e.slice(n[0].length):e,l=ca.map(h=>mi(o,h.open,h.close)).reduce((h,x)=>h+x,0),{guarded:d,drawings:a,placeholderReg:s}=op(o),{result:c,modified:p}=t(d);if(!p)return e;let b=ap(c,a,s),_=ca.map(h=>mi(b,h.open,h.close)).reduce((h,x)=>h+x,0);return l!==_?e:r+b}function vi(e){let t=new Map;for(let n of kt){if(!n.pPr||n.pPr.spaceBefore===void 0&&n.pPr.spaceAfter===void 0&&n.pPr.lineSpacing===void 0)continue;let r=[];n.pPr.spaceBefore!==void 0&&r.push(`w:before="${n.pPr.spaceBefore}"`),n.pPr.spaceAfter!==void 0&&r.push(`w:after="${n.pPr.spaceAfter}"`),n.pPr.lineSpacing!==void 0&&r.push(`w:line="${n.pPr.lineSpacing}"`),n.pPr.lineSpacingRule!==void 0&&r.push(`w:lineRule="${n.pPr.lineSpacingRule}"`),t.set(n.styleId,r.join(" "))}return t.size===0?e:bi(e,n=>{let r=!1;return{result:n.replace(/(<w:pPr\b[^>]*>)([\s\S]*?)<\/w:pPr>/g,(i,l,d)=>{let a=d.match(/<w:pStyle\s+w:val=(?:"([^"]+)"|'([^']+)')[^>]*?(?:\/>|><\/w:pStyle>)/);if(!a)return i;let s=a[1]||a[2];if(!s)return i;let c=t.get(s);if(!c)return i;if(/<w:spacing[\s/>]/.test(d)){let m=`<w:spacing ${c}/>`,_=d.replace(/<w:spacing\b[^>]*\/>/,m);return _!==d&&(r=!0),`${l}${_}</w:pPr>`}let p=`<w:spacing ${c}/>`,b=d.replace(a[0],a[0]+p);return r=!0,`${l}${b}</w:pPr>`}),modified:r}})}function _i(e){let t="HongTouSeparator";return e.includes(t)?bi(e,n=>{let r=!1;return{result:n.replace(/(<w:pPr\b[^>]*>)([\s\S]*?)<\/w:pPr>/g,(i,l,d)=>{let a=d.match(/<w:pStyle\s+w:val=(?:"([^"]+)"|'([^']+)')[^>]*?(?:\/>|><\/w:pStyle>)/);if(!a||(a[1]||a[2])!==t)return i;let c;if(/<w:pBdr\b[^>]*>[\s\S]*?<\/w:pBdr>/.test(d))return c=d.replace(/<w:pBdr\b[^>]*>[\s\S]*?<\/w:pBdr>/,la),c!==d&&(r=!0),`${l}${c}</w:pPr>`;let p=[{re:/<w:spacing[\s/>]/},{re:/<w:ind[\s/>]/},{re:/<w:jc[\s/>]/}],b=-1;for(let m of p){let _=d.match(m.re);if(_&&_.index!==void 0){b=_.index;break}}return b>=0?c=d.slice(0,b)+la+d.slice(b):c=d+la,c!==d&&(r=!0),`${l}${c}</w:pPr>`}),modified:r}}):e}var hi,kt,Xu,qu,Yu,Ju,tp,gn,ca,la,xi=it(()=>{"use strict";hi=[{name:"\u5B8B\u4F53",fontFamily:"STSong",category:"serif"},{name:"\u9ED1\u4F53",fontFamily:"STHeiti",category:"sans-serif"},{name:"\u5FAE\u8F6F\u96C5\u9ED1",fontFamily:'"Microsoft YaHei"',category:"sans-serif"},{name:"\u6977\u4F53",fontFamily:"STKaiti",category:"serif"},{name:"\u4EFF\u5B8B",fontFamily:"STFangsong",category:"serif"},{name:"\u534E\u6587\u5B8B\u4F53",fontFamily:"STSong",category:"serif"},{name:"\u534E\u6587\u9ED1\u4F53",fontFamily:"STHeiti",category:"sans-serif"},{name:"\u534E\u6587\u6977\u4F53",fontFamily:"STKaiti",category:"serif"},{name:"\u534E\u6587\u4EFF\u5B8B",fontFamily:"STFangsong",category:"serif"},{name:"Arial",fontFamily:"Arial",category:"sans-serif"},{name:"Times New Roman",fontFamily:'"Times New Roman"',category:"serif"},{name:"Courier New",fontFamily:'"Courier New"',category:"monospace"},{name:"Georgia",fontFamily:"Georgia",category:"serif"},{name:"Verdana",fontFamily:"Verdana",category:"sans-serif"},{name:"Tahoma",fontFamily:"Tahoma",category:"sans-serif"},{name:"Helvetica",fontFamily:"Helvetica",category:"sans-serif"}],kt=[{styleId:"Normal",type:"paragraph",name:"\u6B63\u6587",default:!0,qFormat:!0,rPr:{fontSize:30,bold:!1,fontFamily:{ascii:"STFangsong",hAnsi:"STFangsong",eastAsia:"STFangsong"}},pPr:{lineSpacing:360,lineSpacingRule:"auto"}},{styleId:"Heading1",type:"paragraph",name:"\u6807\u9898 1",basedOn:"Normal",next:"Normal",qFormat:!0,uiPriority:9,pPr:{lineSpacing:320,lineSpacingRule:"exact",spaceBefore:320,spaceAfter:320,beforeAutospacing:!1,afterAutospacing:!1,spacingExplicit:{before:!0,after:!0},outlineLevel:1},rPr:{fontSize:32,bold:!0,fontFamily:{ascii:"STHeiti",hAnsi:"STHeiti",eastAsia:"STHeiti"}}},{styleId:"Heading2",type:"paragraph",name:"\u6807\u9898 2",basedOn:"Normal",next:"Normal",qFormat:!0,uiPriority:9,pPr:{lineSpacing:450,lineSpacingRule:"exact",spaceBefore:150,spaceAfter:150,beforeAutospacing:!1,afterAutospacing:!1,spacingExplicit:{before:!0,after:!0},outlineLevel:2},rPr:{fontSize:30,bold:!0,fontFamily:{ascii:"STKaiti",hAnsi:"STKaiti",eastAsia:"STKaiti"}}},{styleId:"Heading3",type:"paragraph",name:"\u6807\u9898 3",basedOn:"Normal",next:"Normal",qFormat:!0,uiPriority:9,pPr:{lineSpacing:450,lineSpacingRule:"exact",spaceBefore:150,spaceAfter:120,beforeAutospacing:!1,afterAutospacing:!1,spacingExplicit:{before:!0,after:!0},outlineLevel:3},rPr:{fontSize:30,bold:!0,fontFamily:{ascii:"STFangsong",hAnsi:"STFangsong",eastAsia:"STFangsong"}}},{styleId:"Heading4",type:"paragraph",name:"\u6807\u9898 4",basedOn:"Normal",next:"Normal",qFormat:!0,uiPriority:9,pPr:{lineSpacing:450,lineSpacingRule:"exact",spaceBefore:150,spaceAfter:100,beforeAutospacing:!1,afterAutospacing:!1,spacingExplicit:{before:!0,after:!0},outlineLevel:4},rPr:{fontSize:30,bold:!0,fontFamily:{ascii:"STKaiti",hAnsi:"STKaiti",eastAsia:"STKaiti"}}},{styleId:"Title",type:"paragraph",name:"\u6807\u9898",basedOn:"Normal",next:"Normal",qFormat:!0,uiPriority:10,pPr:{spaceBefore:240,spaceAfter:240,beforeAutospacing:!1,afterAutospacing:!1,spacingExplicit:{before:!0,after:!0},alignment:"center"},rPr:{fontSize:44,bold:!0,fontFamily:{ascii:"STHeiti",hAnsi:"STHeiti",eastAsia:"STHeiti"}}},{styleId:"Subtitle",type:"paragraph",name:"\u526F\u6807\u9898",basedOn:"Normal",next:"Normal",qFormat:!0,uiPriority:11,pPr:{spaceBefore:200,spaceAfter:200,beforeAutospacing:!1,afterAutospacing:!1,spacingExplicit:{before:!0,after:!0},alignment:"center"},rPr:{fontSize:32,color:{rgb:"666666"},fontFamily:{ascii:"STKaiti",hAnsi:"STKaiti",eastAsia:"STKaiti"}}},{styleId:"Quote",type:"paragraph",name:"\u5F15\u7528",basedOn:"Normal",next:"Normal",qFormat:!0,uiPriority:29,pPr:{spaceBefore:200,spaceAfter:200,beforeAutospacing:!1,afterAutospacing:!1,spacingExplicit:{before:!0,after:!0},indentLeft:720},rPr:{fontSize:22,italic:!0,color:{rgb:"404040"},fontFamily:{ascii:"STKaiti",hAnsi:"STKaiti",eastAsia:"STKaiti"}}},{styleId:"IntenseQuote",type:"paragraph",name:"\u5F3A\u8C03\u5F15\u7528",basedOn:"Normal",next:"Normal",qFormat:!0,uiPriority:30,pPr:{spaceBefore:200,spaceAfter:200,beforeAutospacing:!1,afterAutospacing:!1,spacingExplicit:{before:!0,after:!0},indentLeft:720},rPr:{fontSize:22,italic:!0,bold:!0,color:{rgb:"000080"},fontFamily:{ascii:"STKaiti",hAnsi:"STKaiti",eastAsia:"STKaiti"}}},{styleId:"HongTou",type:"paragraph",name:"\u7EA2\u5934",basedOn:"Normal",next:"Normal",qFormat:!0,uiPriority:8,pPr:{alignment:"center",lineSpacing:360,lineSpacingRule:"auto",spaceBefore:240,spaceAfter:200,beforeAutospacing:!1,afterAutospacing:!1,spacingExplicit:{before:!0,after:!0}},rPr:{fontSize:68,bold:!0,color:{rgb:"FF0000"},fontFamily:{ascii:"Times New Roman",hAnsi:"Times New Roman",eastAsia:"FZXiaoBiaoSong-B05"}}},{styleId:"HongTouSeparator",type:"paragraph",name:"\u7EA2\u5934\u5206\u9694\u7EBF",basedOn:"Normal",next:"Normal",qFormat:!0,uiPriority:8,pPr:{alignment:"center",lineSpacing:360,lineSpacingRule:"auto",spaceBefore:160,spaceAfter:240,beforeAutospacing:!1,afterAutospacing:!1,spacingExplicit:{before:!0,after:!0},borders:{top:{style:"none",size:0,color:{rgb:"auto"}},left:{style:"none",size:0,color:{rgb:"auto"}},right:{style:"none",size:0,color:{rgb:"auto"}},bottom:{style:"single",size:12,space:1,color:{rgb:"FF0000"}}}},rPr:{fontSize:30,bold:!1,fontFamily:{ascii:"STFangsong",hAnsi:"STFangsong",eastAsia:"STFangsong"},color:{rgb:"000000"}}}];Xu=/simsun|nsimsun|fangsong|kaiti|simhei|microsoft yahei|dengxian|宋体|仿宋|楷体|黑体|雅黑|等线|mingliu|pmingliu|microsoft jhenghei/i,qu=1.32,Yu=1.2,Ju=24;tp=/simsun|nsimsun|songti|宋体|宋體|fangsong|仿宋|kaiti|楷体|楷體|simhei|黑体|黑體|heiti|yahei|雅黑|dengxian|等线|等線|mingliu|pmingliu|細明體|细明体|microsoft jhenghei|微軟正黑體|微软正黑体|stsong|stheiti|stkaiti|stfangsong|stzhongsong|华文|方正|fangzheng/i;gn=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""");ca=[{open:/<w:drawing(\s|>)/i,close:"</w:drawing>",guardPrefix:"VEN_DRAWING"},{open:/<w:pict(\s|>)/i,close:"</w:pict>",guardPrefix:"VEN_PICT"},{open:/<v:shape(\s|>)/i,close:"</v:shape>",guardPrefix:"VEN_VML"}];la='<w:pBdr><w:top w:val="nil" w:sz="0" w:space="0" w:color="auto"/><w:left w:val="nil" w:sz="0" w:space="0" w:color="auto"/><w:right w:val="nil" w:sz="0" w:space="0" w:color="auto"/><w:bottom w:val="single" w:sz="12" w:space="1" w:color="FF0000"/></w:pBdr>'});var Ni={};xn(Ni,{WordEditor:()=>Ai,default:()=>pf});import{useCallback as tt,useRef as rt,useEffect as mt,useState as ft,useMemo as sp,forwardRef as ip,useImperativeHandle as lp}from"react";import{createPortal as cp}from"react-dom";import{Modal as Si,Button as gr,Space as pa,message as Oe,Popconfirm as dp,Tag as fa,Select as xo,InputNumber as yr}from"antd";import{SaveOutlined as up,FileWordFilled as pp,UploadOutlined as fp,CloseOutlined as ma,CloudServerOutlined as mp,CloudOutlined as Ei,FormatPainterOutlined as hp,FileMarkdownOutlined as gp,AlignLeftOutlined as yp,SnippetsOutlined as wp,DownOutlined as bp}from"@ant-design/icons";import{DocxEditor as vp}from"@eigenpal/docx-editor-react";import{PluginHost as _p}from"@eigenpal/docx-editor-react/plugin-api";import{setGoogleFontsEnabled as xp}from"@eigenpal/docx-editor-core";import{applyStyle as ha,getStyleId as Sp,getDocumentStyleResolver as Ep,extractSelectionState as Cp,setAlignment as Fp,setIndentLeft as kp,setIndentRight as Tp,setIndentFirstLine as Pp,setLineSpacing as Mp,getParagraphAlignment as Ip}from"@eigenpal/docx-editor-core/prosemirror";import{setSpaceBefore as Dp,setSpaceAfter as Rp}from"@eigenpal/docx-editor-core/prosemirror/commands/paragraph";import{insertPageBreak as Ap}from"@eigenpal/docx-editor-core/prosemirror/commands/pageBreak";import{parseDocx as Np}from"@eigenpal/docx-editor-core/docx";import wr from"jszip";import{zhCN as Lp}from"@eigenpal/docx-editor-i18n/zh-CN";import"@eigenpal/docx-editor-react/styles.css";import{CacheUserInfo as Bp}from"@spacecorexdev/core/utils";import{useEffectResize as Op}from"@spacecorexdev/core/utils";import{TextSelection as zp}from"prosemirror-state";import{keymap as $p}from"prosemirror-keymap";import{splitBlockAs as Hp}from"prosemirror-commands";import{isSuggestionModeActive as Mi}from"@eigenpal/docx-editor-core/prosemirror/plugins";import{jsx as he,jsxs as at}from"react/jsx-runtime";function ga(e){return(e?.package?.styles?.styles??[]).filter(n=>n.type==="paragraph"&&!n.hidden&&!n.semiHidden)}function jp(e){return Up.some(t=>t.test(e))}var bt,Ii,Up,Vp,wa,Zp,Wp,Kp,Gp,va,Ci,Kn,Xp,_a,Di,qp,Yp,Jp,Qp,ef,tf,nf,Fi,ki,xa,Ri,ba,rf,Sa,of,af,ya,sf,Ti,So,Eo,Ir,Pi,lf,cf,df,uf,Ai,pf,Li=it(()=>{"use strict";li();Vn();ea();pi();lr();xi();bt="application/vnd.openxmlformats-officedocument.wordprocessingml.document",Ii=/^word\/(?:document|header\d+|footer\d+|footnotes|endnotes)\.xml$/;Up=[/^word\/header\d*\.xml$/i,/^word\/footer\d*\.xml$/i,/^word\/_rels\/header\d*\.xml\.rels$/i,/^word\/_rels\/footer\d*\.xml\.rels$/i,/^word\/media\//i,/^word\/embeddings\//i,/^word\/charts\//i,/^word\/diagrams\//i,/^word\/theme\/theme\d+\.xml$/i];Vp={1:"Heading1",2:"Heading2",3:"Heading3",4:"Heading4",9:"Title",0:"Normal"},wa=new Set(["comment","insertion","deletion"]),Zp=hp,Wp=(e,t,n,r)=>{let o=e.state.schema,i=new Map(r.map(s=>[s.type.name,s])),l=e.state.tr,d=!1;for(let s of Object.keys(o.marks)){if(wa.has(s))continue;let c=o.marks[s],p=i.get(s);p?(l=l.addMark(t,n,p),d=!0):e.state.doc.rangeHasMark(t,n,c)&&(l=l.removeMark(t,n,c),d=!0)}if(!d)return;let a=(e.state.storedMarks??[]).filter(s=>wa.has(s.type.name));l=l.setStoredMarks([...r,...a]),e.dispatch(l.setMeta("addToHistory",!0)),e.focus()},Kp=e=>{let[t,n]=ft(!1),r=rt([]),o=rt(null),i=rt(e);i.current=e;let l=s=>{let{selection:c,storedMarks:p}=s.state;return(c.empty?p??c.$from.marks():Gp(s,c.from,c.to)).filter(m=>!wa.has(m.type.name))},d=tt(()=>{let s=i.current();if(!s){Oe.warning("\u7F16\u8F91\u5668\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5");return}s.focus();let c=l(s);if(c.length===0){Oe.warning("\u5F53\u524D\u9009\u533A\u6CA1\u6709\u53EF\u590D\u5236\u7684\u5B57\u7B26\u683C\u5F0F\uFF0C\u8BF7\u9009\u4E2D\u5E26\u683C\u5F0F\u7684\u6587\u672C\u540E\u518D\u8BD5");return}let{selection:p}=s.state;r.current=c,o.current={from:p.from,to:p.to},n(!0),Oe.success(`\u5DF2\u590D\u5236 ${c.length} \u9879\u5B57\u7B26\u683C\u5F0F\uFF0C\u8BF7\u9009\u4E2D\u6587\u672C\u5E94\u7528`)},[]),a=tt(()=>{if(t){n(!1),r.current=[],o.current=null;return}d()},[t,d]);return mt(()=>{if(!t)return;let s=()=>{requestAnimationFrame(()=>{let c=i.current();if(!c)return;let{selection:p}=c.state;if(p.empty)return;let b=o.current;b&&p.from===b.from&&p.to===b.to||(Wp(c,p.from,p.to,r.current),n(!1),r.current=[],o.current=null)})};return window.addEventListener("pointerup",s),()=>window.removeEventListener("pointerup",s)},[t]),mt(()=>{if(!t)return;let s=c=>{c.key==="Escape"&&(n(!1),r.current=[],o.current=null)};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[t]),{active:t,toggle:a}},Gp=(e,t,n)=>{let r=new Set,o=[];return e.state.doc.nodesBetween(t,n,(i,l,d,a)=>{if(d==null||a==null)return!0;let s=d.child(a);if(!s||!s.isText)return!0;for(let c of s.marks){let p=`${c.type.name}:${JSON.stringify(c.attrs)}`;r.has(p)||(r.add(p),o.push(c))}return!0}),o.length===0?[...e.state.selection.$from.marks()]:o},va=e=>e.replace(/&/g,"&").replace(/"/g,'"').replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">"),Ci=(e,t)=>{let n=e.match(new RegExp(`\\b${t}="([^"]*)"`));return n?va(n[1]):""},Kn=e=>{let t=[];return e.replace(/\\/g,"/").split("/").forEach(n=>{if(!(!n||n===".")){if(n===".."){t.pop();return}t.push(n)}}),t.join("/")},Xp=e=>{let n=Kn(e).match(/^(.*)\/_rels\/([^/]+)\.rels$/);if(!n)return"";let r=Kn(`${n[1]}/${n[2]}`),o=r.lastIndexOf("/");return o>=0?r.slice(0,o):""},_a=(e,t)=>{let n=va(t).split("#")[0].split("?")[0];if(!n||/^[a-z][a-z\d+\-.]*:/i.test(n))return"";if(n.startsWith("/"))return Kn(n.slice(1));let r=Xp(e);return Kn(r?`${r}/${n}`:n)},Di=e=>e._data?.uncompressedSize??0,qp=e=>{let n=Kn(e).match(/^(.*)\/_rels\/([^/]+)\.rels$/);return n?Kn(`${n[1]}/${n[2]}`):""},Yp=e=>{let t=new Set,n=/(?:\b\w+:)?(?:embed|link|id)="([^"]+)"/g,r;for(;r=n.exec(e);)t.add(r[1]);return t},Jp=async e=>{let t=new Set,n=Object.values(e.files).filter(r=>!r.dir&&r.name.endsWith(".rels"));return await Promise.all(n.map(async r=>{let o=qp(r.name),i=o?e.file(o):null;if(!i)return;let l=await i.async("text"),d=Yp(l);if(d.size===0)return;let a=await r.async("text"),s=/<Relationship\b[^>]*\/>/g,c;for(;c=s.exec(a);){let p=Ci(c[0],"Id"),b=Ci(c[0],"Target"),m=_a(r.name,b);d.has(p)&&m.startsWith("word/media/")&&t.add(m)}})),t},Qp=async(e,t)=>{let n=Object.values(e.files).filter(o=>!o.dir&&o.name.endsWith(".rels")),r=0;return await Promise.all(n.map(async o=>{let i=await o.async("text"),l=i.replace(/<Relationship\b[^>]*\bTarget="([^"]+)"[^>]*\/>/g,(d,a)=>{let s=_a(o.name,a);return!s.startsWith("word/media/")||t.has(s)?d:(r+=1,"")});r>0&&l!==i&&e.file(o.name,l)})),r},ef=async(e,t,n)=>{let r=e.file(t);if(!r)return 0;let o=await r.async("text"),i=0,l=o.replace(/<Relationship\b[^>]*\bTarget="([^"]+)"[^>]*\/>/g,(d,a)=>_a(t,a).startsWith(n)?(i+=1,""):d);return i>0&&e.file(t,l),i},tf=async(e,t)=>{let n=e.file("[Content_Types].xml");if(!n)return 0;let r=await n.async("text"),o=0,i=r.replace(/<Override\b[^>]*\bPartName="([^"]+)"[^>]*\/>/g,(l,d)=>Kn(va(d).replace(/^\//,"")).startsWith(t)?(o+=1,""):l);return o>0&&e.file("[Content_Types].xml",i),o},nf=async e=>{let t=Object.values(e.files).filter(o=>!o.dir&&o.name.startsWith("word/fonts/"));if(t.length===0)return{removedCount:0,removedSize:0};let n=0;t.forEach(o=>{n+=Di(o),e.remove(o.name)}),await ef(e,"word/_rels/fontTable.xml.rels","word/fonts/"),await tf(e,"word/fonts/");let r=e.file("word/fontTable.xml");if(r){let o=await r.async("text");e.file("word/fontTable.xml",o.replace(/<w:embed(?:Regular|Bold|Italic|BoldItalic)\b[^>]*\/>/g,""))}return{removedCount:t.length,removedSize:n}},Fi=async e=>{try{let t=await wr.loadAsync(await e.arrayBuffer()),n=await Jp(t),r=Object.values(t.files).filter(c=>!c.dir&&c.name.startsWith("word/media/")),o=0,i=0;r.forEach(c=>{n.has(c.name)||(o+=1,i+=Di(c),t.remove(c.name))});let l=await Qp(t,n),d=await nf(t);if(o+=d.removedCount,i+=d.removedSize,o===0)return console.log(`[Word\u4F18\u5316] \u672A\u53D1\u73B0\u53EF\u6E05\u7406\u8D44\u6E90\uFF0C\u6587\u4EF6\u5927\u5C0F ${(e.size/1024/1024).toFixed(2)}MB`),e;let a=await t.generateAsync({type:"arraybuffer",compression:"DEFLATE",compressionOptions:{level:9}}),s=new Blob([a],{type:bt});return console.log(`[Word\u4F18\u5316] \u6E05\u7406\u672A\u4F7F\u7528\u5A92\u4F53 ${o-d.removedCount} \u4E2A\u3001\u5A92\u4F53\u5173\u7CFB ${l} \u4E2A\u3001\u5D4C\u5165\u5B57\u4F53 ${d.removedCount} \u4E2A\uFF0C\u7EA6 ${(i/1024/1024).toFixed(2)}MB\uFF0C\u6587\u4EF6\u5927\u5C0F ${(e.size/1024/1024).toFixed(2)}MB -> ${(s.size/1024/1024).toFixed(2)}MB`),s}catch(t){return console.warn("[Word\u4F18\u5316] \u6E05\u7406\u672A\u5F15\u7528\u5A92\u4F53\u5931\u8D25\uFF0C\u5C06\u4F7F\u7528\u539F\u59CB\u5BFC\u51FA\u6587\u4EF6",t),e}},ki=(e,t)=>{let n=URL.createObjectURL(e),r=document.createElement("a");r.href=n,r.download=t,r.dataset.optimizedDocxDownload="true",r.style.display="none",document.body.appendChild(r),r.click(),document.body.removeChild(r),setTimeout(()=>URL.revokeObjectURL(n),0)},xa=e=>{let t=new DOMParser().parseFromString(e,"application/xml"),n=t.getElementsByTagName("parsererror")[0];if(n)throw new Error(n.textContent||"XML \u89E3\u6790\u5931\u8D25");return t},Ri=(e,t)=>{let n=new Set(t);return Array.from(e.getElementsByTagName("*")).filter(r=>n.has(r.localName))},ba=(e,t)=>{Ri(e,t).forEach(n=>{n.parentNode?.removeChild(n)})},rf=(e,t)=>{Ri(e,t).forEach(n=>{let r=n.parentNode;if(r){for(;n.firstChild;)r.insertBefore(n.firstChild,n);r.removeChild(n)}})},Sa=e=>new XMLSerializer().serializeToString(e),of=e=>{let t=xa(e);return ba(t,["del","moveFrom"]),rf(t,["ins","moveTo"]),ba(t,["pPrChange","rPrChange","tblPrChange","trPrChange","tcPrChange","sectPrChange","tblGridChange","cellIns","cellDel","cellMerge"]),Sa(t)},af=e=>{let t=xa(e);return ba(t,["trackRevisions","revisionView"]),Sa(t)},ya=async e=>{let t=await wr.loadAsync(await e.arrayBuffer()),n=Object.values(t.files).filter(i=>!i.dir&&Ii.test(i.name));await Promise.all(n.map(async i=>{let l=await i.async("text");t.file(i.name,of(l))}));let r=t.file("word/settings.xml");if(r){let i=await r.async("text");t.file("word/settings.xml",af(i))}let o=await t.generateAsync({type:"arraybuffer",compression:"DEFLATE",compressionOptions:{level:9}});return new Blob([o],{type:bt})},sf=e=>{let t=xa(e),n=Array.from(t.getElementsByTagName("*")).filter(a=>a.localName==="fldSimple");for(let a of n){if(!(a.getAttribute("w:instr")||a.getAttribute("instr")||"").includes("TOC"))continue;let c=Array.from(a.getElementsByTagName("*")).filter(p=>p.localName==="hyperlink");for(let p of c){let b=p.parentNode;if(b){for(;p.firstChild;)b.insertBefore(p.firstChild,p);b.removeChild(p)}}}let r=Array.from(t.getElementsByTagName("*")),o=[],i=[];for(let a=0;a<r.length;a++){let s=r[a];if(s.localName==="fldChar"){let c=s.getAttribute("w:fldCharType")||s.getAttribute("fldCharType")||"";if(c==="begin")o.push({type:"",beginEl:s});else if(c==="end"&&o.length>0){let p=o.pop();if(p.type==="TOC"){let b=r.indexOf(p.beginEl),m=a;b>=0&&i.push({beginIdx:b,endIdx:m})}}}else if(s.localName==="instrText"){let c=s.textContent||"";if(o.length>0&&!o[o.length-1].type){let p=c.trim().match(/^\\?([A-Z][A-Z0-9]*)/i);p&&(o[o.length-1].type=p[1].toUpperCase())}}}let l=[];for(let a of i)for(let s=a.beginIdx;s<=a.endIdx;s++){let c=r[s];(c.localName==="fldChar"||c.localName==="instrText")&&l.push(c)}for(let a of l){let s=a.parentNode;s&&s.removeChild(a)}let d=Array.from(t.getElementsByTagName("*")).filter(a=>a.localName==="r");for(let a of d)if(!Array.from(a.children).some(c=>c.localName!=="rPr")){let c=a.parentNode;c&&c.removeChild(a)}return Sa(t)},Ti=async e=>{let t=await wr.loadAsync(await e.arrayBuffer()),n=Object.values(t.files).filter(o=>!o.dir&&Ii.test(o.name));await Promise.all(n.map(async o=>{let i=await o.async("text");t.file(o.name,sf(i))}));let r=await t.generateAsync({type:"arraybuffer",compression:"DEFLATE",compressionOptions:{level:9}});return new Blob([r],{type:bt})},So=async e=>{let t=await wr.loadAsync(await e.arrayBuffer()),n=!1,r=t.file("word/styles.xml");if(r){let i=await r.async("text"),l=wi(i);l!==i&&(t.file("word/styles.xml",l),n=!0)}let o=t.file("word/document.xml");if(o){let i=await o.async("text"),l=vi(i);l=_i(l),l!==i&&(t.file("word/document.xml",l),n=!0)}if(n){let i=await t.generateAsync({type:"arraybuffer",compression:"DEFLATE",compressionOptions:{level:9}});return new Blob([i],{type:bt})}return e},Eo=567,Ir=20,Pi={alignment:"left",indentLeftCm:0,indentRightCm:0,indentSpecial:"none",indentSpecialCm:0,spaceBeforePt:0,spaceAfterPt:0,lineRule:"auto",lineValue:1},lf=new Set(["paraId","textId","bookmarks","sectionBreakType","pPrIns","pPrDel","pPrChange","renderedPageBreakBefore","_originalFormatting","_originalRunBoundaries","_sectionProperties"]),cf=Hp(e=>({type:e.type,attrs:Object.fromEntries(Object.entries(e.attrs??{}).filter(([t])=>!lf.has(t)))})),df={id:"paragraph-formatting-enter",name:"\u56DE\u8F66\u4FDD\u7559\u6BB5\u843D\u683C\u5F0F / Ctrl+Enter \u5206\u9875",proseMirrorPlugins:[$p({Enter:(e,t)=>Mi(e)?!1:cf(e,t),"Mod-Enter":(e,t)=>Ap(e,t)})]},uf=[df],Ai=ip(({visible:e,hiddenClose:t=!1,isCreate:n=!1,onClose:r,fileName:o,onUpload:i,initialBlob:l,readOnly:d,uploadPercent:a,isOffline:s,isLocalOnly:c,hasUnsyncedChanges:p,onSaveLocalBlob:b},m)=>{let[_,h]=ft(!1),x=rt(null),M=rt(null),S=rt(null),A=rt(!1),Z=rt(!1),O=rt(null),I=rt(null),J=rt(!1),ne=rt(l),D=rt(!1),w=rt(()=>{}),W=rt(new Map),k=rt(p),L=rt(b);k.current=p,L.current=b;let[$,B]=ft(null),[K,q]=ft(null),[ge,oe]=ft(0),[E,be]=ft(null),[U,se]=ft(!1),[Ce,ie]=ft(!n),[V,xe]=ft(!1),[ce,ee]=ft(!1),[Se,Le]=ft("Normal"),[_e,pe]=ft([]),Ge=rt([]);Ge.current=_e;let X=tt(f=>{try{let y=Ep(f);if(!y)return;let v=(y.getParagraphStyles()??[]).filter(F=>!F.hidden);if(v.length===0)return;pe(F=>F.length===v.length&&F.every((H,R)=>H.styleId===v[R].styleId&&H.name===v[R].name)?F:v)}catch{}},[]),[j,re]=ft(!1);mt(()=>{if(!e)return;let f=y=>{re(g=>{if(!g)return g;let v=y.target;if(!v)return g;let F=v.closest('.vendorsys-custom-style-picker, [data-vendorsys-custom="true"]'),H=v.closest(".ant-select-dropdown.vendorsys-word-style-dropdown");return!F&&!H?!1:g})};return document.addEventListener("mouseup",f,{capture:!0,passive:!0}),()=>{document.removeEventListener("mouseup",f,{capture:!0})}},[e]);let Te=tt(f=>{let y={};if(!f)return y;let g=f.rPr,v=f.pPr,F={},H=g?.fontSize??g?.fontSizeCs;if(typeof H=="number"&&H>0){let fe=H*2/3;F.fontSize=`${Math.max(11,fe)}px`}(g?.bold===!0||g?.boldCs===!0)&&(F.fontWeight=700),(g?.italic===!0||g?.italicCs===!0)&&(F.fontStyle="italic");let R=g?.fontFamily;if(R){let fe=[];R.eastAsia&&fe.push(`"${R.eastAsia}"`),R.ascii&&R.ascii!==R.eastAsia&&fe.push(`"${R.ascii}"`),R.hAnsi&&R.hAnsi!==R.ascii&&R.hAnsi!==R.eastAsia&&fe.push(`"${R.hAnsi}"`),fe.push("system-ui","-apple-system","BlinkMacSystemFont",'"Segoe UI"',"Roboto",'"Helvetica Neue"',"Arial","sans-serif"),F.fontFamily=fe.join(", ")}typeof v?.lineSpacing=="number"&&v.lineSpacing>0?F.lineHeight=v.lineSpacing/240:F.fontSize&&(F.lineHeight=1.4);let te=g?.color,Y=null;if(typeof te=="string"&&te)Y=te.trim();else if(te&&typeof te=="object"){let fe=te;typeof fe.rgb=="string"?Y=fe.rgb.trim():typeof fe.color=="string"&&(Y=fe.color.trim())}if(Y&&(/^[0-9a-fA-F]{6}$/.test(Y)?F.color=`#${Y}`:/^[0-9a-fA-F]{3,8}$/.test(Y)?F.color=`#${Y}`:Y.startsWith("#")&&(F.color=Y)),g?.underline&&g.underline.style&&g.underline.style!=="none"&&(F.textDecoration="underline",g.underline.color)){let fe=g.underline.color;typeof fe=="string"&&/^[0-9a-fA-F]{6}$/.test(fe)&&(F.textDecorationColor=`#${fe}`)}if((g?.strike===!0||g?.doubleStrike===!0)&&(F.textDecoration=F.textDecoration?`${F.textDecoration} line-through`:"line-through"),v?.borders&&typeof v.borders=="object"){let fe=v.borders,Re=(ae,Pe)=>{let We=fe[ae];if(!We||typeof We!="object")return;let Q=We,Be=Q.style;if(!Be||Be==="none"||Be==="nil")return;let Ne="solid";switch(Be){case"single":case"thick":case"triple":case"outset":case"inset":Ne="solid";break;case"double":case"doubleWave":Ne="double";break;case"dotted":Ne="dotted";break;case"dashed":case"dashSmallGap":case"dashDotStroked":Ne="dashed";break;case"wave":Ne="solid";break;default:Ne="solid"}let ke=1,Ct=Q.size;typeof Ct=="number"&&Ct>0&&(ke=Math.max(1,Math.round(Ct*.1667)));let we="currentColor",ot=Q.color;if(ot&&typeof ot=="object"){let et=ot;if(typeof et.rgb=="string"&&/^[0-9a-fA-F]{6}$/.test(et.rgb))we=`#${et.rgb}`;else if(typeof et.themeColor=="string")switch(et.themeColor){case"hlink":we="#2F5496";break;case"accent1":we="#4472C4";break;case"accent2":we="#ED7D31";break;case"accent3":we="#A5A5A5";break;case"accent4":we="#FFC000";break;case"accent5":we="#5B9BD5";break;case"accent6":we="#70AD47";break;case"lt1":case"background1":we="#FFFFFF";break;default:we="#000000";break}}else typeof ot=="string"&&/^[0-9a-fA-F]{6}$/.test(ot)&&(we=`#${ot}`);F[Pe]=`${ke}px ${Ne} ${we}`};Re("top","borderTop"),Re("right","borderRight"),Re("bottom","borderBottom"),Re("left","borderLeft")}return F},[]),Ve=tt((f,y,g)=>{let v=[];return f.nodesBetween(y,g,F=>{if(!F||F.type.name!=="paragraph")return!0;let H=F.attrs?.paraId;return H&&v.push({paraId:H,node:F}),!0}),v},[]),st=tt(()=>{let f=x.current?.getEditorRef()?.getState();if(!f)return"Normal";try{let v=Cp(f);if(v&&v.styleId)return v.styleId}catch{}try{let v=Sp(f);if(v)return v}catch{}let{selection:y}=f,g=[y.$from,y.$anchor,y.$head];for(let v of g){if(!v)continue;for(let H=v.depth;H>=0;H--){let R=v.node(H);if(R&&R.type.name==="paragraph"){let te=R.attrs?.styleId;if(te)return te}}let F=v.parent;if(F&&F.type&&F.type.name==="paragraph"){let H=F.attrs?.styleId;if(H)return H}}return"Normal"},[]),Tt=Kp(()=>x.current?.getEditorRef()?.getView()??null),[ut,wt]=ft(null),on=rt(null),Nt=rt({x:0,y:0}),Et=rt(!1);mt(()=>{let f=y=>{Nt.current={x:y.clientX,y:y.clientY}};return window.addEventListener("mousemove",f,!0),()=>window.removeEventListener("mousemove",f,!0)},[]),mt(()=>{if(!e||V||d||ce)return;let f=y=>{let g=x.current?.getEditorRef()?.getView();if(!g?.dom||!g.dom.contains(y.target)||Mi(g.state))return;let v=y.clipboardData?.getData("text/html")??"",F=y.clipboardData?.getData("text/plain")??"";if(!v&&!F)return;let H=g.state.selection.from;setTimeout(()=>{let R=x.current?.getEditorRef()?.getView();if(!R)return;let te=R.state.selection.head;if(!(te<=H)){try{let Y=R.state.schema.marks,fe=Y.highlight??Y.backgroundColor??Y.background;fe&&R.state.doc.rangeHasMark(H,te,fe)&&R.dispatch(R.state.tr.removeMark(H,te,fe))}catch{}try{let{x:Y,y:fe}=Nt.current,ae=document.getElementById("vendorsys-word-editor-root")?.getBoundingClientRect();if(ae){let Pe=ae.left+8,We=ae.right-130,Q=ae.top+8,Be=ae.bottom-40;Y=Math.min(Math.max(Y,Pe),We),fe=Math.min(Math.max(fe,Q),Be)}wt({x:Y,y:fe+6,from:H,to:te,text:F,expanded:!1})}catch{}}},50)};return window.addEventListener("paste",f,!0),()=>window.removeEventListener("paste",f,!0)},[e,V,d,ce]);let _t=tt(f=>{let y=ut;if(!y)return;if(f==="formatted"){wt({...y,expanded:!0});return}let g=x.current?.getEditorRef()?.getView();if(!g)return;g.focus();let{doc:v}=g.state,F=Math.min(y.from,v.content.size),H=Math.min(y.to,v.content.size);if(H<=F)return;Et.current=!0,g.dispatch(g.state.tr.setSelection(zp.create(v,F,H)));let R=g.state.selection.from;if(g.pasteText(y.text),f==="text"){let Re=g.state.selection.head;Re>R&&g.dispatch(g.state.tr.removeMark(R,Re))}let te=g.state.selection.head,{x:Y,y:fe}=Nt.current;Et.current=!1,wt({...y,from:R,to:te,x:Y,y:fe+6,expanded:!0})},[ut]);mt(()=>{if(!ut)return;let f=ut.expanded,y=R=>{on.current?.contains(R.target)||wt(null)},g=R=>{if(R.key==="Escape"){wt(null);return}if(!f)return;let te=R.key.toLowerCase(),Y=te==="w"?"formatted":te==="m"?"match":te==="t"?"text":null;Y&&(R.preventDefault(),R.stopPropagation(),_t(Y))},v=()=>wt(null),F=()=>{Et.current||wt(null)},H=x.current?.getEditorRef()?.getView()?.dom;return H?.addEventListener("input",F),document.addEventListener("mousedown",y,!0),document.addEventListener("keydown",g,!0),window.addEventListener("scroll",v,!0),()=>{H?.removeEventListener("input",F),document.removeEventListener("mousedown",y,!0),document.removeEventListener("keydown",g,!0),window.removeEventListener("scroll",v,!0)}},[ut,_t]);let[Yt,Je]=ft(!1),[He,Ue]=ft(Pi),Qe=tt(()=>{Je(!0);try{let y=x.current?.getEditorRef()?.getView()?.state,g=(()=>{let ae=y?.selection.$from.parent;return ae&&ae.type.name==="paragraph"?ae.attrs:null})(),v=ae=>ae&&ae>0?Number((ae/Eo).toFixed(2)):0,F=ae=>ae&&ae>0?Number((ae/Ir).toFixed(2)):0,H=(y?Ip(y):null)??g?.alignment??"left",R=g?.lineSpacingRule??"auto",te=g?.lineSpacing,Y=te&&te>0?Number(R==="auto"?(te/240).toFixed(2):(te/Ir).toFixed(2)):1,fe=g?.indentFirstLine??0,Re=!!g?.hangingIndent;Ue({alignment:H,indentLeftCm:v(g?.indentLeft),indentRightCm:v(g?.indentRight),indentSpecial:fe>0?Re?"hanging":"firstLine":"none",indentSpecialCm:v(fe),spaceBeforePt:F(g?.spaceBefore),spaceAfterPt:F(g?.spaceAfter),lineRule:R,lineValue:Y})}catch(f){console.warn("[WordEditor] \u8BFB\u53D6\u6BB5\u843D\u683C\u5F0F\u5931\u8D25\uFF0C\u4F7F\u7528\u9ED8\u8BA4\u503C",f),Ue(Pi)}},[]),Ie=tt(()=>{let f=x.current?.getEditorRef()?.getView();if(!f){Oe.warning("\u7F16\u8F91\u5668\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u7A0D\u5019\u518D\u8BD5");return}let y=He.indentSpecial==="none"?0:Math.round(He.indentSpecialCm*Eo),g=He.lineRule==="auto"?Math.round(He.lineValue*240):Math.round(He.lineValue*Ir),v=[Fp(He.alignment),kp(Math.round(He.indentLeftCm*Eo)),Tp(Math.round(He.indentRightCm*Eo)),Pp(y,He.indentSpecial==="hanging"),Dp(Math.round(He.spaceBeforePt*Ir)),Rp(Math.round(He.spaceAfterPt*Ir)),Mp(g,He.lineRule)],F=!1;for(let H of v)H(f.state,f.dispatch,f)&&(F=!0);if(!F){Oe.warning("\u5F53\u524D\u9009\u533A\u65E0\u6CD5\u8BBE\u7F6E\u6BB5\u843D\u683C\u5F0F\uFF0C\u8BF7\u628A\u5149\u6807\u653E\u5728\u6B63\u6587\u6BB5\u843D\u4E2D\u518D\u8BD5");return}Je(!1),f.focus()},[He]);Op(()=>{h(!0)},()=>{h(!1)}),mt(()=>{if(!e||d||ce)return;let f=y=>{if(!(y.ctrlKey||y.metaKey)||!y.altKey)return;let v=Vp[y.key];if(!v)return;let F=y.target?.tagName;if(F==="INPUT"||F==="TEXTAREA")return;y.preventDefault();let H=x.current,R=H?.getEditorRef()?.getView();if(!H||!R)return;let{doc:te,selection:Y}=R.state,fe=Y.from,Re=Y.to,ae=Ve(te,fe,Re);if(ae.length===0)return;let Pe=0;for(let{paraId:We}of ae)try{H.setParagraphStyle({paraId:We,styleId:v})&&Pe++}catch{}if(Pe===0)try{ha(v)(R.state,R.dispatch,R),Pe=ae.length}catch{}Pe>0&&Le(v)};return window.addEventListener("keydown",f),()=>window.removeEventListener("keydown",f)},[e,d,ce,Ve]);let Ae=rt(null),Ze=tt(async f=>{if(!f)return;let y=Date.now(),g=Ae.current;if(g&&g.styleId===f&&y-g.ts<50){re(!1);return}Ae.current={styleId:f,ts:y};let v=x.current,F=v?.getEditorRef()?.getView();if(!v||!F){Oe.warning("\u7F16\u8F91\u5668\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5"),Le(f),re(!1);return}let{doc:H,selection:R}=F.state,te=R.from,Y=R.to,fe=Ve(H,te,Y),Re=null;if(fe.length===0){let Pe=[R.$from,R.$anchor,R.$head];for(let We of Pe){if(!We)continue;for(let Be=We.depth;Be>=0;Be--){let Ne=We.node(Be);if(Ne&&Ne.type&&Ne.type.name==="paragraph"&&Ne.attrs?.paraId){Re=Ne.attrs.paraId;break}}if(Re)break;let Q=We.parent;if(Q&&Q.type&&Q.type.name==="paragraph"&&Q.attrs?.paraId){Re=Q.attrs.paraId;break}}}let ae=!1;if(fe.length>0)for(let{paraId:Pe}of fe)try{v.setParagraphStyle({paraId:Pe,styleId:f})&&(ae=!0)}catch{}else if(Re)try{ae=v.setParagraphStyle({paraId:Re,styleId:f})}catch{}if(!ae)try{ha(f)(F.state,F.dispatch,F),ae=!0}catch(Pe){console.warn("applyStyle \u4E5F\u5931\u8D25\u4E86:",Pe),ae=!1}if(ae&&Se===f)try{ha(f)(F.state,F.dispatch,F)}catch{}ae&&(setTimeout(()=>{try{let Pe=st();Le(Pe)}catch{Le(f)}},0),F.focus(),[0,80,250].forEach(Pe=>{setTimeout(()=>{try{w.current?.()}catch{}},Pe)})),re(!1)},[st,Ve,Se]),zn=tt(()=>{let f=new Map;(Ge.current??[]).forEach(Q=>{f.has(Q.styleId)||f.set(Q.styleId,Q)}),kt.forEach(Q=>{f.has(Q.styleId)||f.set(Q.styleId,Q)});let y=(Ge.current??[]).map(Q=>{let Ne=(Q.name?Q.name.trim():"")||`\u6837\u5F0F ${Q.styleId}`;return{value:Q.styleId,label:Ne,isFromFile:!0,className:`style-preview-file-${Q.styleId}`,style:Te(Q)}}),g=new Map;y.forEach(Q=>g.set(Q.value,Q));for(let Q of kt){if(g.has(Q.styleId))continue;let Be=Q.name?String(Q.name).trim():"";g.set(Q.styleId,{value:Q.styleId,label:Be||Q.styleId,isPreset:!0,className:`style-preview-${Q.styleId}`,style:Te(Q)})}let v=Array.from(g.values()),F=new Set(kt.map(Q=>Q.styleId)),H=new Map;v.forEach(Q=>{let Be=Rn(Q.label);if(!Be){let ot=H.get(`__unnamed__:${Q.value}`)??{kept:Q,allStyleIds:[Q.value]};H.set(`__unnamed__:${Q.value}`,ot);return}let Ne=H.get(Be);if(!Ne){H.set(Be,{kept:Q,allStyleIds:[Q.value]});return}let ke=ot=>{let et=0;return(ot.isPreset||F.has(ot.value))&&(et+=4),/[\u4e00-\u9fa5]/.test(String(ot.label))&&(et+=2),ot.isFromFile&&!/[A-Za-z0-9]/.test(String(ot.label).trim())&&(et+=1),/^\d+$/.test(String(ot.value))&&(et-=0),et},Ct=ke(Ne.kept);ke(Q)>Ct?(Ne.allStyleIds.push(Ne.kept.value),Ne.kept=Q):Ne.allStyleIds.push(Q.value)});let R=[],te=new Map;H.forEach(({kept:Q,allStyleIds:Be})=>{R.push(Q),Be.forEach(Ne=>{te.has(Ne)||te.set(Ne,Q.value)}),te.has(Q.value)||te.set(Q.value,Q.value)});let Y=new Set(R.map(Q=>Q.value)),fe=te.get(Se)??Se;if(Y.has(Se)||Y.has(fe))return R;let ae=f.get(Se)??null,Pe=`\u6837\u5F0F ${Se}`;return[{value:Se,label:Pe,className:"style-preview-fallback",style:Te(ae),disabled:!0},...R]},[Se,Te]);mt(()=>{if(!e)return;let f=document.getElementById("vendorsys-word-style-preview-css");f||(f=document.createElement("style"),f.id="vendorsys-word-style-preview-css",f.setAttribute("data-vendorsys-generated","true"),document.head.appendChild(f));let y=new Map;_e.forEach(v=>{y.has(v.styleId)||y.set(v.styleId,v)}),kt.forEach(v=>{y.has(v.styleId)||y.set(v.styleId,v)});let g=[];return y.forEach((v,F)=>{let H=[`.style-preview-file-${F} .vendorsys-word-style-option-label`,`.style-preview-${F} .vendorsys-word-style-option-label`,`.style-preview-file-${F}`,`.style-preview-${F}`].join(", "),R=Te(v),te=[];R.fontSize&&te.push(`font-size: ${R.fontSize} !important;`),R.fontWeight!==void 0&&R.fontWeight!==null&&te.push(`font-weight: ${R.fontWeight} !important;`),R.fontStyle&&te.push(`font-style: ${R.fontStyle} !important;`),R.fontFamily&&te.push(`font-family: ${R.fontFamily} !important;`),R.lineHeight!==void 0&&R.lineHeight!==null&&te.push(`line-height: ${R.lineHeight} !important;`),R.color&&te.push(`color: ${R.color} !important;`),R.textDecoration&&te.push(`text-decoration: ${R.textDecoration} !important;`),te.length>0&&g.push(`${H} { ${te.join(" ")} }`)}),f.textContent=g.join(`
|
|
294
|
+
`),()=>{f&&f.parentNode}},[e,_e,Te]),mt(()=>{if(e)return;let f=document.getElementById("vendorsys-word-style-preview-css");f&&f.parentNode&&f.parentNode.removeChild(f)},[e]),lp(m,()=>x.current);let vn=tt(async f=>{let y=new Map;try{let g=await wr.loadAsync(f),v=[];g.forEach((F,H)=>{H.dir||v.push(H.async("uint8array").then(R=>{y.set(F,R)}))}),await Promise.all(v)}catch(g){console.warn("[WordEditor] docx \u5FEB\u7167\u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u6253\u5F00\uFF0C\u955C\u50CF\u56DE\u5199\u81EA\u52A8\u8DF3\u8FC7\uFF09\uFF1A",g)}return y},[]),an=tt(async(f,y)=>{if(!y||y.size===0)return f;try{let g=await wr.loadAsync(f),v=!1,F=[];return y.forEach((H,R)=>{if(!jp(R))return;let te=g.file(R);te&&F.push(te.async("uint8array").then(Y=>{if(Y.length!==H.length){g.file(R,H),v=!0;return}for(let fe=0;fe<Y.length;fe++)if(Y[fe]!==H[fe]){g.file(R,H),v=!0;return}}))}),await Promise.all(F),v?await g.generateAsync({type:"blob",mimeType:bt,compression:"DEFLATE",compressionOptions:{level:9}}):f}catch(g){return console.warn("[WordEditor] \u4E0D\u53EF\u53D8 part \u955C\u50CF\u56DE\u5199\u5931\u8D25\uFF08\u5C06\u4F7F\u7528\u539F\u59CB\u4FDD\u5B58\u8F93\u51FA\uFF0C\u4E0D\u5F71\u54CD\u6B63\u6587\u5185\u5BB9\uFF09\uFF1A",g),f}},[]),$n=tt(async(f,y)=>{let g=f.slice(0);vn(new Blob([g],{type:bt})).then(F=>{W.current=F});let v=g;try{v=await(await Ti(new Blob([g],{type:bt}))).arrayBuffer()}catch(F){console.warn("\u4FEE\u590D TOC \u5B57\u6BB5\u5931\u8D25\uFF0C\u4F7F\u7528\u539F\u59CB\u6587\u4EF6:",F)}try{v=await(await So(new Blob([v],{type:bt}))).arrayBuffer()}catch(F){console.warn("\u5408\u5E76\u9884\u8BBE\u6837\u5F0F\u5931\u8D25\uFF0C\u4F7F\u7528\u539F\u59CB\u6587\u4EF6:",F)}try{let F=await Np(v);if(ua(F),gi(F),yi(F),pe(ga(F)),!y){I.current=null,q(F),B(null),ee(!1),oe(H=>H+1);return}try{let H=new Blob([v],{type:bt}),te=await(await ya(H)).arrayBuffer();I.current=g,B(te),q(F),ee(!0)}catch(H){console.warn("\u751F\u6210\u9ED8\u8BA4\u6700\u7EC8\u7248\u9884\u89C8\u5931\u8D25\uFF0C\u5C06\u6253\u5F00\u539F\u59CB\u4FEE\u8BA2\u89C6\u56FE:",H),I.current=null,B(v),q(F),ee(!1)}}catch(F){if(console.warn("\u89E3\u6790\u6587\u6863\u6216\u5E94\u7528\u9884\u8BBE\u6837\u5F0F\u5931\u8D25\uFF0C\u56DE\u9000\u5230\u539F\u59CB\u52A0\u8F7D\u65B9\u5F0F:",F),!y){I.current=null,B(v),q(null),ee(!1),oe(H=>H+1);return}try{let H=new Blob([v],{type:bt}),te=await(await ya(H)).arrayBuffer();I.current=g,B(te),q(null),ee(!0)}catch(H){console.warn("\u751F\u6210\u9ED8\u8BA4\u6700\u7EC8\u7248\u9884\u89C8\u5931\u8D25\uFF0C\u5C06\u6253\u5F00\u539F\u59CB\u4FEE\u8BA2\u89C6\u56FE:",H),I.current=null,B(v),q(null),ee(!1)}}oe(F=>F+1),J.current=!1},[vn]);mt(()=>{xp(!1)},[]),mt(()=>{e&&(async()=>{try{let y=Bp.currentLocalUser();y?.id?be(y.id):be(null)}catch(y){console.error("\u83B7\u53D6\u7528\u6237\u4FE1\u606F\u5931\u8D25:",y),be(null)}})()},[e]),mt(()=>{ne.current=l,(async()=>{if(e&&E)if(l)try{xe(!0);let y=await l.arrayBuffer();await $n(y,!!d),se(!1),Oe.info("\u5DF2\u52A0\u8F7D\u6587\u4EF6")}catch(y){console.error("\u52A0\u8F7D\u6587\u4EF6\u5931\u8D25:",y),Oe.error("\u52A0\u8F7D\u6587\u4EF6\u5931\u8D25"),B(null),q(null),se(!1)}finally{xe(!1)}else if(n&&o&&E)try{let y=da();q(y),pe(ga(y)),B(null),I.current=null,ee(!1),oe(g=>g+1),se(!1),Oe.info("\u5DF2\u521B\u5EFA\u65B0\u6587\u6863")}catch(y){console.error("\u521B\u5EFA\u65B0\u6587\u6863\u5931\u8D25:",y);try{let g=da();q(g),pe(ga(g)),B(null),I.current=null,ee(!1),oe(v=>v+1)}catch(g){console.error("\u521B\u5EFA\u7A7A\u6587\u6863\u5931\u8D25:",g),q(null),B(null)}se(!1)}else B(null),q(null),I.current=null,ee(!1),se(!1)})()},[e,o,E,l,n,d,$n]),mt(()=>{if(e&&!V&&($||K)){let f=setTimeout(()=>{M.current&&M.current.refreshPluginStates()},5e3);return()=>clearTimeout(f)}},[e,V,$,K]);let ht=tt(async()=>{try{if(!x.current)return Oe.error("\u7F16\u8F91\u5668\u672A\u521D\u59CB\u5316"),null;A.current=!0,Z.current=!0;let f=await x.current.save({selective:!1});if(!f)return null;let y=new Blob([f],{type:bt}),g=await So(y),v=await an(g,W.current);return await Fi(v)}catch(f){return console.error("\u5BFC\u51FA Word \u5931\u8D25:",f),null}finally{A.current=!1,Z.current=!1}},[an]),Hn=tt(f=>{if(A.current)return;if(ce&&I.current){let g=new Blob([I.current],{type:bt});O.current=Promise.resolve(g),Oe.info("\u6700\u7EC8\u7248\u4EC5\u7528\u4E8E\u9884\u89C8\uFF0C\u5DF2\u4FDD\u5B58\u5E26\u4FEE\u8BA2\u7684\u539F\u6587\u4EF6");return}let y=new Blob([f],{type:bt});O.current=So(y).then(g=>an(g,W.current)).then(g=>Fi(g)).catch(g=>(console.error("\u5185\u7F6E\u83DC\u5355\u4FDD\u5B58\u4F18\u5316\u5931\u8D25:",g),Oe.error("\u4FDD\u5B58\u4F18\u5316\u5931\u8D25\uFF0C\u5C06\u4F7F\u7528\u539F\u59CB\u6587\u4EF6"),y))},[ce,an]);mt(()=>{if(!e)return;let f=HTMLAnchorElement.prototype.click;return HTMLAnchorElement.prototype.click=function(){let g=O.current,v=this.href.startsWith("blob:")&&/\.docx$/i.test(this.download||"");if(g&&v&&this.dataset.optimizedDocxDownload!=="true"){let F=this.href;O.current=null,g.then(H=>{ki(H,o),Oe.success("\u5DF2\u4FDD\u5B58\u4F18\u5316\u540E\u7684\u6587\u4EF6")}).catch(H=>{console.error("\u5185\u7F6E\u83DC\u5355\u4FDD\u5B58\u5931\u8D25:",H),Oe.error("\u4FDD\u5B58\u5931\u8D25")}).finally(()=>{setTimeout(()=>URL.revokeObjectURL(F),0)});return}return f.call(this)},()=>{HTMLAnchorElement.prototype.click=f,O.current=null}},[o,e]);let Un=tt(async()=>{ce||!o||!E||!x.current||(S.current&&clearTimeout(S.current),se(!0),S.current=setTimeout(async()=>{try{let f=await ht();if(f&&(await Ot(E,o,"docx",await f.arrayBuffer()),se(!1),L.current))try{await L.current(f,o,!1)}catch(y){console.warn("\u81EA\u52A8\u4FDD\u5B58\u65F6\u540C\u6B65 localFiles store \u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u672C\u5730\u4FDD\u5B58\uFF09:",y)}}catch(f){console.error("\u81EA\u52A8\u4FDD\u5B58\u5230 IndexedDB \u5931\u8D25:",f)}},1e4))},[ht,o,ce,E]),sn=tt(async()=>{try{if(!x.current){Oe.error("\u7F16\u8F91\u5668\u672A\u521D\u59CB\u5316");return}if(!E){Oe.error("\u65E0\u6CD5\u83B7\u53D6\u7528\u6237\u4FE1\u606F");return}let f=await ht();if(f){if(await Ot(E,o,"docx",await f.arrayBuffer()),se(!1),L.current)try{await L.current(f,o)}catch(y){console.warn("\u540C\u6B65\u672C\u5730\u6587\u4EF6\u5185\u5BB9\u5230 localFiles store \u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u672C\u5730\u4FDD\u5B58\uFF09:",y)}Oe.success("\u5DF2\u4FDD\u5B58\u5230\u672C\u5730\u7F13\u5B58")}}catch(f){console.error("\u4FDD\u5B58\u5230\u672C\u5730\u7F13\u5B58\u5931\u8D25:",f),Oe.error("\u4FDD\u5B58\u5931\u8D25")}},[ht,o,E]),[u,C]=ft(!1),T=tt(async()=>{C(!0),Oe.loading({key:"word-export-pdf",content:"\u6B63\u5728\u4FDD\u5B58\u6587\u6863\u5185\u5BB9\u2026",duration:0});try{let f=await ht();if(!f){Oe.error("\u5BFC\u51FA\u5931\u8D25\uFF1A\u65E0\u6CD5\u83B7\u53D6\u6587\u6863\u5185\u5BB9");return}await ho({file:f,fileName:o,onProgress:(y,g)=>{Oe.loading({key:"word-export-pdf",content:`\u6B63\u5728\u5BFC\u51FA\u7B2C ${y} / ${g} \u9875\u2026`,duration:0})}})}catch(f){console.error("Word \u5BFC\u51FA PDF \u5931\u8D25:",f),Oe.error(`\u5BFC\u51FA PDF \u5931\u8D25\uFF1A${f?.message||"\u672A\u77E5\u9519\u8BEF"}`)}finally{Oe.destroy("word-export-pdf"),C(!1)}},[ht,o]),[P,z]=ft(!1),N=tt(async()=>{z(!0),Oe.loading({key:"word-export-md",content:"\u6B63\u5728\u4FDD\u5B58\u6587\u6863\u5185\u5BB9\u2026",duration:0});try{let f=await ht();if(!f){Oe.error("\u5BFC\u51FA\u5931\u8D25\uFF1A\u65E0\u6CD5\u83B7\u53D6\u6587\u6863\u5185\u5BB9");return}Oe.loading({key:"word-export-md",content:"\u6B63\u5728\u8F6C\u6362\u4E3A Markdown\u2026",duration:0}),await ui({file:f,fileName:o})}catch(f){console.error("Word \u5BFC\u51FA Markdown \u5931\u8D25:",f),Oe.error(`\u5BFC\u51FA Markdown \u5931\u8D25\uFF1A${f?.message||"\u672A\u77E5\u9519\u8BEF"}`)}finally{Oe.destroy("word-export-md"),z(!1)}},[ht,o]),ue=sp(()=>[{key:"markdown",icon:he(gp,{}),label:"\u5BFC\u51FAMarkdown",disabled:P,onClick:()=>{N()}}],[P,N]),de=tt(()=>{l&&ki(l,o)},[l,o]),G=!n&&l?de:void 0,le=tt(async()=>{if(!i){Oe.error("\u672A\u63D0\u4F9B\u4E0A\u4F20\u529F\u80FD");return}try{let f=await ht();if(!f)return;let y=ne.current;await i(y,f,o),ne.current=f,E&&(await Cn(E,o,"docx"),se(!1),ie(!0)),D.current=!1}catch(f){console.error("\u4E0A\u4F20\u5931\u8D25:",f),Oe.error("\u4E0A\u4F20\u5931\u8D25")}},[o,i,ht,E]),ye=tt(()=>{if(!ce&&J.current&&!Z.current){try{let f=st();Le(y=>y===f?y:f)}catch{}if(ie(!1),Un(),!D.current&&!k.current&&L.current&&E&&x.current){D.current=!0;let f=L.current;(async()=>{try{let y=await ht();y?await f(y,o):D.current=!1}catch(y){D.current=!1,console.warn("\u7F16\u8F91\u65F6\u7ACB\u5373\u6807\u8BB0\u672A\u540C\u6B65\u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u7F16\u8F91\uFF0C\u7B49\u5F85\u81EA\u52A8/\u624B\u52A8\u4FDD\u5B58\u5373\u53EF\uFF09:",y)}})()}}},[Un,ce,E,ht,o,st]);mt(()=>{if(!e||V)return;let f=setTimeout(()=>{J.current=!0},2e3);return()=>clearTimeout(f)},[ge,e,V]);let Fe=tt(async()=>{try{if(ce){let F=I.current;if(!F){Oe.warning("\u672A\u627E\u5230\u539F\u59CB\u4FEE\u8BA2\u5185\u5BB9\uFF0C\u8BF7\u91CD\u65B0\u6253\u5F00\u6587\u4EF6");return}let H=F.slice(0);try{H=await(await Ti(new Blob([F],{type:bt}))).arrayBuffer()}catch(R){console.warn("\u4FEE\u590D TOC \u5B57\u6BB5\u5931\u8D25\uFF0C\u4F7F\u7528\u539F\u59CB\u6587\u4EF6:",R)}try{H=await(await So(new Blob([H],{type:bt}))).arrayBuffer()}catch(R){console.warn("\u5408\u5E76\u9884\u8BBE\u6837\u5F0F\u5931\u8D25\uFF0C\u4F7F\u7528\u539F\u59CB\u6587\u4EF6:",R)}B(H),q(null),ee(!1),oe(R=>R+1),Oe.info("\u5DF2\u5207\u6362\u5230\u4FEE\u8BA2\u89C6\u56FE");return}if(!$){Oe.warning("\u5F53\u524D\u6587\u6863\u6682\u4E0D\u652F\u6301\u6700\u7EC8\u7248\u9884\u89C8");return}let f=$.slice(0),y=new Blob([f],{type:bt}),v=await(await ya(y)).arrayBuffer();I.current=f,B(v),q(null),ee(!0),oe(F=>F+1),Oe.success("\u5DF2\u5207\u6362\u5230\u6700\u7EC8\u7248\u9884\u89C8")}catch(f){console.error("\u5207\u6362\u6700\u7EC8\u7248\u9884\u89C8\u5931\u8D25:",f),Oe.error("\u5207\u6362\u6700\u7EC8\u7248\u9884\u89C8\u5931\u8D25")}},[$,ce]);return mt(()=>{if(!e)return;let f=y=>{(y.ctrlKey||y.metaKey)&&y.key==="s"&&(y.preventDefault(),sn())};return window.addEventListener("keydown",f),()=>window.removeEventListener("keydown",f)},[e,sn]),mt(()=>{if(!e)return;let f="#vendorsys-word-editor-root",y=()=>{let ae=document.querySelector(f);if(!ae)return!1;let Pe=ae.querySelectorAll(".layout-page");Pe.forEach(ke=>{ke.style.position="relative",ke.style.boxSizing="content-box"}),ae.querySelectorAll(".layout-page-header").forEach(ke=>{ke.style.position="absolute",ke.style.display="block",ke.style.boxSizing="content-box",ke.style.setProperty("float","none","important"),ke.style.clear="both",Array.from(ke.children).forEach(we=>{we instanceof HTMLElement&&(we.style.position="static",we.style.top="0px",we.style.left="0px",we.style.right="auto",we.style.bottom="auto",we.style.transform="none",we.style.margin="0")}),ke.querySelectorAll(".layout-textbox").forEach(we=>{we.style.width="auto",we.style.height="auto",we.style.minWidth="0",we.style.minHeight="0",we.style.left="50%",we.style.transform="translateX(-50%)",we.style.top="0",we.style.bottom="auto",we.style.right="auto",we.style.padding="0",we.querySelectorAll(".layout-paragraph, .layout-line").forEach(et=>{et.style.display="inline-block",et.style.width="auto"})})});let Q=ae.querySelectorAll(".layout-page-footer"),Be=!1;return Q.forEach(ke=>{Be=!0,ke.style.position="absolute",ke.style.display="block",ke.style.boxSizing="content-box",ke.style.setProperty("float","none","important"),ke.style.clear="both",Array.from(ke.children).forEach(we=>{we instanceof HTMLElement&&(we.style.position="static",we.style.top="0px",we.style.left="0px",we.style.right="auto",we.style.bottom="auto",we.style.transform="none",we.style.margin="0")}),ke.querySelectorAll(".layout-textbox").forEach(we=>{we.style.width="auto",we.style.height="auto",we.style.minWidth="0",we.style.minHeight="0",we.style.left="50%",we.style.transform="translateX(-50%)",we.style.top="0",we.style.bottom="auto",we.style.right="auto",we.style.padding="0",we.querySelectorAll(".layout-paragraph, .layout-line").forEach(et=>{et.style.display="inline-block",et.style.width="auto"})})}),ae.querySelectorAll(".layout-page-content").forEach(ke=>{ke.style.boxSizing="content-box",ke.style.display="block"}),Pe.length>0||Be},g=()=>{try{let ae=st();Le(Pe=>Pe===ae?Pe:ae)}catch{}},v="HongTouSeparator",F="data-vendorsys-style-id",H=()=>{try{let ae=x.current;if(!ae)return;let Pe=ae.getEditorRef?.()?.getView?.(),We=document.querySelector("#vendorsys-word-editor-root");if(!We)return;let Q=0;We.querySelectorAll(`[${F}="${v}"]`).forEach(qe=>{qe.removeAttribute(F),qe.classList.remove("vendorsys-pstyle-hongtouseparator"),Q++});let Be=0,Ne=0;if(Pe&&Pe.domAtPos&&Pe.state?.doc){let qe=Pe.state.doc,gt=[];if(qe.descendants((jt,_n)=>{if(!jt||jt.type?.name!=="paragraph")return!0;let ln=jt.attrs?.styleId;if(ln!=null&>.push({pos:_n,styleId:ln,type:typeof ln}),ln!==v)return!0;try{let Lt=Pe.domAtPos(_n);if(!Lt||!Lt.node)return!0;let Pt=Lt.node,Ft=null,Bt=12,Vt=0;for(;Pt&&Vt<Bt;){if(Pt instanceof HTMLElement){if(Pt.classList?.contains("layout-paragraph")){Ft=Pt;break}let Jt=Pt.style?.borderBottom||window.getComputedStyle(Pt).borderBottom;if(Jt&&/(255,0,0|#ff0000|#F{2}0{2,4})/i.test(Jt.replace(/\s+/g,""))){Ft=Pt;break}}Pt=Pt.parentNode,Vt++}if(!Ft&&Lt.node instanceof HTMLElement?Ft=Lt.node:!Ft&&Lt.node instanceof Text&&Lt.node.parentElement instanceof HTMLElement&&(Ft=Lt.node.parentElement),!Ft)return!0;Ft.getAttribute(F)!==v&&(Ft.setAttribute(F,v),Ft.classList.add("vendorsys-pstyle-hongtouseparator"),Be++)}catch{}return!0}),gt.length>0){let jt=gt.filter(_n=>_n.type!=="string");jt.length>0&&console.debug(`[WordEditor] \u7EA2\u5934\u5206\u9694\u7EBF PM \u626B\u63CF\uFF1A\u53D1\u73B0 ${jt.length} \u4E2A paragraph \u7684 styleId \u662F\u975E\u5B57\u7B26\u4E32\uFF08likely \u6570\u5B57\u7D22\u5F15\uFF09\uFF1A`,jt.slice(0,5),"\u2192 \u8FD9\u90E8\u5206\u4F1A\u7531\u4E0B\u9762\u7684 DOM \u7279\u5F81\u626B\u63CF\u547D\u4E2D\u6253\u6807\uFF0C\u4E0D\u5F71\u54CD\u663E\u793A\u3002")}}let ke=/(255,\s*0,\s*0|#ff0000|#F{2}0{2,4}|rgb\(255,\s*0,\s*0\))/i,Ct=/solid/i,we=/^(none|0px|initial|inherit|transparent|unset|)\s*$/i,ot=qe=>{if(!qe)return!1;let gt=qe.replace(/\s+/g,"");return ke.test(gt)&&Ct.test(gt)},et=qe=>{if(!qe)return!0;let gt=qe.replace(/\s+/g,"");return we.test(gt)?!0:!(Ct.test(gt)&&ke.test(gt))},qr=new Set;We.querySelectorAll(".layout-paragraph, .layout-line, div, p, section, article").forEach(qe=>{!qe||!qe.isConnected||qe.closest('[role="toolbar"]')||qe.closest("[data-vendorsys-hidden-style-picker]")||qe.classList?.contains("ant-select-dropdown")||qr.add(qe)}),qr.forEach(qe=>{if(qe&&qe.getAttribute(F)!==v)try{let gt=window.getComputedStyle(qe),jt=gt.borderBottom||"",_n=gt.borderTop||"",ln=gt.borderLeft||"",Lt=gt.borderRight||"",Pt=ot(jt),Ft=et(_n),Bt=et(ln),Vt=et(Lt);Pt&&Ft&&Bt&&Vt&&(qe.setAttribute(F,v),qe.classList.add("vendorsys-pstyle-hongtouseparator"),Ne++)}catch{}}),(Q>0||Be>0||Ne>0)&&console.debug(`[WordEditor] \u7EA2\u5934\u5206\u9694\u7EBF\u6253\u6807\uFF1A\u6E05\u65E7 ${Q} \u6761 + PM \u547D\u4E2D ${Be} \u6761 + DOM \u7279\u5F81\u547D\u4E2D ${Ne} \u6761`)}catch(ae){console.debug("[WordEditor] \u6807\u8BB0\u7EA2\u5934\u5206\u9694\u7EBF\u6BB5\u843D\u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u4F7F\u7528\uFF09:",ae)}},R=()=>{try{let ae=document.querySelector('[role="combobox"][aria-label="\u9009\u62E9\u6BB5\u843D\u6837\u5F0F"]');if(!ae)return;let Pe=ae,We=0;for(;Pe&&We<6&&(Pe=Pe.parentElement,!!Pe);){We++;let Be=Pe.className??"";if(typeof Be=="string"&&/toolbar|item|group|segment|wrapper|cell|flex items-center/i.test(Be))break}let Q=Pe??ae;Q.style.setProperty("display","none","important"),Q.setAttribute("data-vendorsys-hidden-style-picker","true")}catch(ae){console.debug("[WordEditor] \u9690\u85CF\u81EA\u5E26\u6BB5\u843D\u6837\u5F0F\u9009\u62E9\u5668\u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u4F7F\u7528\uFF09:",ae)}},te=()=>{let ae=y();return g(),H(),R(),ae};w.current=te,te();let Y=[];[100,300,600,1e3,2e3].forEach(ae=>{Y.push(window.setTimeout(te,ae))});let fe=window.setInterval(()=>{try{w.current?.()}catch{}},500),Re=null;try{let ae=document.querySelector(f);ae&&(Re=new MutationObserver(Pe=>{let We=!1;Pe.forEach(Q=>{let Be=[];Q.target instanceof HTMLElement&&Be.push(Q.target),Q.addedNodes&&Q.addedNodes.forEach(ke=>Be.push(ke)),Q.removedNodes&&Q.removedNodes.forEach(ke=>Be.push(ke));let Ne=!1;for(let ke of Be)if(ke instanceof HTMLElement&&(ke.classList?.contains("ant-select-dropdown")||ke.querySelector?.(".ant-select-dropdown")||ke.closest?.(".ant-select-dropdown"))){Ne=!0;break}if(!Ne){if(Q.type==="childList"&&Q.addedNodes&&Q.addedNodes.length>0){We=!0;return}if(Q.type==="attributes"){let ke=Q.target;if(ke instanceof HTMLElement&&(ke.classList?.contains("layout-paragraph")||ke.classList?.contains("layout-line")||ke.closest?.(".layout-page-content, .layout-paragraph, .layout-line"))){We=!0;return}}}}),We&&requestAnimationFrame(te)}),Re.observe(ae,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style","class"]}))}catch{}return()=>{Y.forEach(ae=>window.clearTimeout(ae)),window.clearInterval(fe),Re&&Re.disconnect(),w.current=()=>{}}},[e,ge,V,ce,st]),mt(()=>(e&&(ie(!n),D.current=!1,I.current=null,ee(!1),S.current&&(clearTimeout(S.current),S.current=null)),()=>{S.current&&(clearTimeout(S.current),S.current=null)}),[e,n]),at(Si,{open:e,onCancel:r,keyboard:!1,closeIcon:null,footer:null,width:"100%",zIndex:100,style:{top:0,maxWidth:"100vw"},styles:{body:{height:"100dvh",padding:0},wrapper:{}},className:"ant-modal-nopadding ant-modal-fullscreen",getContainer:!1,transitionName:"none",children:[he("style",{children:`
|
|
295
|
+
.bg-doc-surface[data-testid=title-bar] {
|
|
296
|
+
padding-top: 0px !important;
|
|
297
|
+
padding-bottom: 0px !important;
|
|
298
|
+
}
|
|
299
|
+
.bg-doc-surface[data-testid=title-bar] > div {
|
|
300
|
+
padding-top: 0px !important;
|
|
301
|
+
padding-bottom: 0px !important;
|
|
302
|
+
}
|
|
303
|
+
.bg-doc-surface[data-testid=title-bar] > div:first-of-type svg {
|
|
304
|
+
display: none;
|
|
305
|
+
}
|
|
306
|
+
`}),at("div",{className:"h-full flex flex-col bg-white p-0 m-0",children:[at("div",{className:`flex items-center justify-between px-4 py-2 pr-0 border-b flex-shrink-0 ${s?"bg-orange-50 border-orange-200":"bg-gray-50 border-gray-200"}`,children:[he("span",{children:"\xA0"}),!d&&he("span",{children:"\xA0"}),at("div",{className:"flex items-center gap-2 flex-wrap min-w-[40%]",children:[!s&&c&&he(fa,{icon:he(Ei,{}),color:"orange",style:{margin:0},children:"\u672C\u5730\u6587\u4EF6"}),!s&&!c&&p&&he(fa,{icon:he(Ei,{}),color:"warning",style:{margin:0},children:"\u6709\u672A\u540C\u6B65\u4FEE\u6539"}),!s&&!c&&!p&&!i?he(fa,{icon:he(mp,{}),color:"default",style:{margin:0},children:"\u540C\u6B65\u5B8C\u6210"}):null,he(pp,{className:"text-blue-600"}),at("span",{className:"text-sm font-medium",children:[U?"*":"",o]})]}),!d&&!t&&at(pa,{wrap:!0,align:"center",direction:"horizontal",children:[he(St,{onExportPdf:T,onDownload:G,exportingPdf:u,extraItems:ue,buttonProps:{style:{paddingLeft:4,paddingRight:4}}}),!ce&&i&&he(gr,{type:"text",style:{paddingLeft:4,paddingRight:4},title:"\u6BCF\u6B21\u4E0A\u4F20\u5C06\u4FDD\u7559\u4E00\u4E2A\u5386\u53F2\u7248\u672C\uFF0C\u6700\u591A\u4FDD\u755910\u4E2A\u7248\u672C",icon:he(fp,{}),onClick:le,disabled:a!==void 0&&a<1,children:a!==void 0&&a<1?`\u4E0A\u4F20\u4E2D ${Math.round(a*100)}%`:"\u4E0A\u4F20"}),!ce&&he(gr,{type:"primary",icon:he(up,{}),onClick:sn,children:"\u4FDD\u5B58"}),!d&&(U||!Ce)?he(dp,{title:"\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F",description:U?"\u4FEE\u6539\u672A\u4FDD\u5B58\uFF0C\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F":"\u4FEE\u6539\u672A\u4E0A\u4F20\uFF0C\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F",onConfirm:r,okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88",children:he(gr,{type:"text",className:"ml-3 mr-2",icon:he(ma,{className:"w-6 h-6"})})}):he(ma,{onClick:r,className:"ml-3 mr-2 w-6 h-6"})]}),d&&!t&&at(pa,{children:[he(St,{onExportPdf:T,onDownload:G,exportingPdf:u,extraItems:ue,buttonProps:{style:{paddingLeft:4,paddingRight:4}}}),he(ma,{onClick:r,className:"ml-3 mr-2 w-6 h-6"})]}),t&&he(St,{onExportPdf:T,onDownload:G,exportingPdf:u,extraItems:ue,buttonProps:{style:{paddingLeft:4,paddingRight:4}}})]}),at("div",{id:"vendorsys-word-editor-root",className:"vendorsys-word-editor-root flex-1 overflow-auto",style:{height:"calc(100% - 50px)",position:"relative"},children:[e&&!V&&he(_p,{ref:M,plugins:uf,children:he(vp,{ref:x,initialZoom:_?.75:1,author:E||"tj",document:K??void 0,documentBuffer:K?void 0:$??void 0,onSave:Hn,onChange:ye,onSelectionChange:()=>{try{let f=x.current?.getEditorRef()?.getState();f&&X(f);let y=st();Le(g=>g===y?g:y)}catch{}},mode:ce||d?"viewing":"editing",showToolbar:!0,showFileOpen:!0,showHelpMenu:!1,showMarginGuides:!1,toolbarExtra:at(pa,{size:4,children:[!ce&&!d&&at("div",{className:"vendorsys-custom-style-picker","data-vendorsys-custom":"true",style:{display:"inline-flex",alignItems:"center",gap:4,marginRight:4,padding:"0 6px",background:"rgba(255,255,255,0.04)",borderRadius:4,height:28,boxSizing:"border-box"},onMouseDown:f=>{f.preventDefault()},children:[he("span",{className:"vendorsys-custom-style-picker__label",style:{fontSize:12,color:"#8c8c8c",whiteSpace:"nowrap"},children:"\u6837\u5F0F\uFF1A"}),he(xo,{size:"small",style:{width:150},value:(()=>{let f=zn();if(f.some(v=>!v.disabled&&v.value===Se))return Se;let y=(()=>{let v=Ge.current?.find(R=>R.styleId===Se),F=kt.find(R=>R.styleId===Se),H=v?.name||F?.name||`\u6837\u5F0F ${Se}`;return Rn(H)})();if(!y)return Se;let g=f.find(v=>!v.disabled&&Rn(v.label)===y);return g?g.value:Se})(),placeholder:"\u8BF7\u9009\u62E9\u6837\u5F0F",onSelect:Ze,onChange:Ze,popupMatchSelectWidth:!1,showSearch:!1,allowClear:!1,open:j,onOpenChange:f=>{f&&re(!0)},getPopupContainer:f=>{let y=f?.ownerDocument??document,g=y.querySelector(".ep-root");if(g)return g;let v=y.querySelector("#vendorsys-word-editor-root");return v||y.body},classNames:{popup:{root:"vendorsys-word-style-dropdown"}},options:zn()})]}),!ce&&!d&&he(gr,{size:"small",type:Tt.active?"primary":"default",title:Tt.active?"\u683C\u5F0F\u5237\u5DF2\u5F00\u542F\uFF1A\u9009\u4E2D\u6587\u672C\u5373\u53EF\u5E94\u7528\uFF0C\u518D\u6B21\u70B9\u51FB\u6216\u6309 Esc \u53D6\u6D88":"\u683C\u5F0F\u5237\uFF1A\u590D\u5236\u5F53\u524D\u9009\u533A\u683C\u5F0F\u5E76\u5E94\u7528\u5230\u5176\u4ED6\u6587\u672C",icon:he(Zp,{}),onMouseDown:f=>f.preventDefault(),onClick:()=>Tt.toggle()}),!ce&&!d&&he(gr,{size:"small",icon:he(yp,{}),title:"\u6BB5\u843D\u8BBE\u7F6E\uFF1A\u7F29\u8FDB\u3001\u6BB5\u524D\u6BB5\u540E\u3001\u884C\u8DDD\u3001\u5BF9\u9F50\u65B9\u5F0F",onClick:Qe,children:"\u6BB5\u843D"}),he(gr,{size:"small",type:ce?"primary":"default",onClick:Fe,children:ce?"\u67E5\u770B\u4FEE\u8BA2":"\u6700\u7EC8\u72B6\u6001"})]}),i18n:Lp,fontFamilies:hi,showRuler:!d&&!ce,rulerUnit:"cm",style:{height:"100%",width:"100%"}})}),ut&&!d&&cp(he("div",{ref:on,className:"vendorsys-paste-smart-tag",style:{left:ut.x,top:ut.y},onMouseDown:f=>f.preventDefault(),children:ut.expanded?at("div",{className:"vendorsys-paste-smart-tag-menu",children:[at("button",{type:"button",onClick:()=>_t("formatted"),children:[he("span",{className:"label",children:"\u5E26\u683C\u5F0F\u7C98\u8D34"}),he("span",{className:"key",children:"(W)"})]}),at("button",{type:"button",onClick:()=>_t("match"),children:[he("span",{className:"label",children:"\u5339\u914D\u5F53\u524D\u683C\u5F0F"}),he("span",{className:"key",children:"(M)"})]}),at("button",{type:"button",onClick:()=>_t("text"),children:[he("span",{className:"label",children:"\u53EA\u7C98\u8D34\u6587\u672C"}),he("span",{className:"key",children:"(T)"})]})]}):at("button",{type:"button",className:"vendorsys-paste-smart-tag-trigger",title:"\u7C98\u8D34\u9009\u9879",onClick:()=>wt({...ut,expanded:!0}),children:[he(wp,{}),he(bp,{className:"arrow"})]})}),document.body),V&&he("div",{className:"flex items-center justify-center h-full",children:he("span",{children:"\u52A0\u8F7D\u4E2D..."})}),he(Si,{open:Yt,title:"\u6BB5\u843D\u8BBE\u7F6E",okText:"\u5E94\u7528",cancelText:"\u53D6\u6D88",width:460,maskClosable:!1,zIndex:11e3,getContainer:()=>document.body,onOk:Ie,onCancel:()=>Je(!1),children:at("div",{style:{display:"flex",flexDirection:"column",gap:12,paddingTop:8},children:[at("div",{style:{display:"flex",alignItems:"center",gap:8},children:[he("span",{style:{width:76,color:"#8c8c8c",fontSize:13},children:"\u5BF9\u9F50\u65B9\u5F0F"}),he(xo,{style:{width:160},value:He.alignment,onChange:f=>Ue(y=>({...y,alignment:f})),options:[{label:"\u5DE6\u5BF9\u9F50",value:"left"},{label:"\u5C45\u4E2D",value:"center"},{label:"\u53F3\u5BF9\u9F50",value:"right"},{label:"\u4E24\u7AEF\u5BF9\u9F50",value:"both"}]})]}),at("div",{style:{display:"flex",alignItems:"center",gap:8},children:[he("span",{style:{width:76,color:"#8c8c8c",fontSize:13},children:"\u5DE6\u7F29\u8FDB"}),he(yr,{min:0,max:20,step:.1,precision:2,style:{width:120},value:He.indentLeftCm,onChange:f=>Ue(y=>({...y,indentLeftCm:Number(f)||0})),addonAfter:"\u5398\u7C73"}),he("span",{style:{color:"#8c8c8c",fontSize:13},children:"\u53F3\u7F29\u8FDB"}),he(yr,{min:0,max:20,step:.1,precision:2,style:{width:120},value:He.indentRightCm,onChange:f=>Ue(y=>({...y,indentRightCm:Number(f)||0})),addonAfter:"\u5398\u7C73"})]}),at("div",{style:{display:"flex",alignItems:"center",gap:8},children:[he("span",{style:{width:76,color:"#8c8c8c",fontSize:13},children:"\u7279\u6B8A\u683C\u5F0F"}),he(xo,{style:{width:160},value:He.indentSpecial,onChange:f=>Ue(y=>({...y,indentSpecial:f,indentSpecialCm:f==="none"?0:y.indentSpecialCm||.74})),options:[{label:"\u65E0",value:"none"},{label:"\u9996\u884C\u7F29\u8FDB",value:"firstLine"},{label:"\u60AC\u6302\u7F29\u8FDB",value:"hanging"}]}),he(yr,{min:0,max:20,step:.1,precision:2,style:{width:120},disabled:He.indentSpecial==="none",value:He.indentSpecialCm,onChange:f=>Ue(y=>({...y,indentSpecialCm:Number(f)||0})),addonAfter:"\u5398\u7C73"})]}),at("div",{style:{display:"flex",alignItems:"center",gap:8},children:[he("span",{style:{width:76,color:"#8c8c8c",fontSize:13},children:"\u6BB5\u524D"}),he(yr,{min:0,max:200,step:1,style:{width:120},value:He.spaceBeforePt,onChange:f=>Ue(y=>({...y,spaceBeforePt:Number(f)||0})),addonAfter:"\u78C5"}),he("span",{style:{color:"#8c8c8c",fontSize:13},children:"\u6BB5\u540E"}),he(yr,{min:0,max:200,step:1,style:{width:120},value:He.spaceAfterPt,onChange:f=>Ue(y=>({...y,spaceAfterPt:Number(f)||0})),addonAfter:"\u78C5"})]}),at("div",{style:{display:"flex",alignItems:"center",gap:8},children:[he("span",{style:{width:76,color:"#8c8c8c",fontSize:13},children:"\u884C\u8DDD"}),he(xo,{style:{width:160},value:He.lineRule,onChange:f=>Ue(y=>({...y,lineRule:f,lineValue:f==="auto"?y.lineRule==="auto"?y.lineValue:1:y.lineRule==="auto"?18:y.lineValue})),options:[{label:"\u500D\u6570",value:"auto"},{label:"\u56FA\u5B9A\u503C",value:"exact"},{label:"\u6700\u5C0F\u503C",value:"atLeast"}]}),he(yr,{min:.5,max:200,step:He.lineRule==="auto"?.05:1,precision:2,style:{width:120},value:He.lineValue,onChange:f=>Ue(y=>({...y,lineValue:Number(f)||1})),addonAfter:He.lineRule==="auto"?"\u500D":"\u78C5"})]})]})})]},ge)]})]})}),pf=Ai});var Oi={};xn(Oi,{ArchivePreview:()=>_f});import{useMemo as ff}from"react";import{FileViewer as mf}from"@file-viewer/react";import{archiveRenderer as hf}from"@file-viewer/renderer-archive";import{pdfRenderer as gf}from"@file-viewer/renderer-pdf";import{wordRenderer as yf}from"@file-viewer/renderer-word";import{spreadsheetRenderer as wf}from"@file-viewer/renderer-spreadsheet";import{textRenderer as bf}from"@file-viewer/renderer-text";import{withPolyfillWorkerBootstrap as vf}from"@spacecorexdev/core/utils";import{jsx as Bi,jsxs as xf}from"react/jsx-runtime";var _f,zi=it(()=>{"use strict";_f=({file:e})=>{let t=[hf,wf,yf,gf,bf],n=ff(()=>({locale:"zh-CN",rendererMode:"extend",renderers:t,theme:"light",toolbar:{position:"bottom-right",download:!1,print:!1,exportHtml:!1},archive:{workerUrl:vf("/vendor/libarchive/worker-bundle.js"),cache:!0,workerTimeoutMs:3e4,maxArchiveSize:320*1024*1024,maxEntryPreviewSize:64*1024*1024},spreadsheet:{worker:!1}}),[]);return xf("div",{className:"ui-file-preview-archive",style:{position:"relative",minHeight:"100vh"},children:[Bi("style",{children:`.ui-file-preview-archive .archive-head .archive-sidebar-toggle {
|
|
307
|
+
display: none !important;
|
|
308
|
+
}
|
|
309
|
+
.ui-file-preview-archive .fv-root,
|
|
310
|
+
.ui-file-preview-archive .fv-container {
|
|
311
|
+
padding-right: 50px !important;
|
|
312
|
+
}`}),e?Bi(mf,{file:e,name:e.name,options:n}):null]})}});var Hi={};xn(Hi,{CadPreview:()=>kf});import{useEffect as Ea,useMemo as Sf,useState as $i,useRef as An}from"react";import{FileViewer as Ef}from"@file-viewer/react";import{engineeringRenderers as Cf}from"@file-viewer/preset-engineering";import{withPolyfillModuleWorkerBootstrap as Ff}from"@spacecorexdev/core/utils";import{jsx as Ca}from"react/jsx-runtime";var kf,Ui=it(()=>{"use strict";kf=({file:e})=>{let[t,n]=$i(null),[r,o]=$i(1),i=An(null),l=An(null),d=An(0),a=An(1),s=An(null),c=An(1),p=An(!1),b=An(0);Ea(()=>{if(e){let _=new FileReader;_.onload=h=>{n(h.target?.result)},_.readAsArrayBuffer(e)}else n(null)},[e]),Ea(()=>{let _=document.querySelector('meta[name="viewport"]'),h=_?.getAttribute("content")||"";_&&_.setAttribute("content","width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no");let x=A=>{A.touches.length===2&&A.preventDefault()},M=A=>{A.preventDefault()},S=A=>{A.preventDefault()};return document.addEventListener("touchstart",x,{passive:!1,capture:!0}),document.addEventListener("gesturestart",M),document.addEventListener("gesturechange",S),()=>{_&&_.setAttribute("content",h),document.removeEventListener("touchstart",x,{capture:!0}),document.removeEventListener("gesturestart",M),document.removeEventListener("gesturechange",S)}},[]),Ea(()=>{let _=i.current;if(!_)return;let h=()=>{_.style.touchAction="pan-x pan-y"},x=()=>{let O=c.current,I=a.current,J=O/I;if(Math.abs(J-1)<.05)return;let ne=Math.round(Math.log(J)/Math.log(1.15)),D=Math.min(Math.abs(ne),10);if(ne>0)for(let w=0;w<D;w++)l.current?.zoomIn?.();else if(ne<0)for(let w=0;w<D;w++)l.current?.zoomOut?.()},M=O=>{let I=O.touches.length;if(I===2&&!p.current){let J=O.touches[0].clientX-O.touches[1].clientX,ne=O.touches[0].clientY-O.touches[1].clientY;d.current=Math.sqrt(J*J+ne*ne);let D=l.current?.getZoomState?.();a.current=D?.scale||1,c.current=a.current,o(1),p.current=!0,_.style.touchAction="none",O.preventDefault(),O.stopPropagation()}b.current=I},S=O=>{let I=O.touches.length;if(I===2&&p.current){let J=O.touches[0].clientX-O.touches[1].clientX,ne=O.touches[0].clientY-O.touches[1].clientY,D=Math.sqrt(J*J+ne*ne);if(d.current>0){let w=a.current*(D/d.current);c.current=w,s.current===null&&(s.current=requestAnimationFrame(()=>{s.current=null,o(c.current/a.current)}))}O.preventDefault(),O.stopPropagation()}else I<2&&p.current&&(p.current=!1,x(),s.current!==null&&(cancelAnimationFrame(s.current),s.current=null),setTimeout(()=>{o(1),h()},100));b.current=I},A=O=>{let I=O.touches.length;p.current&&I<2&&(p.current=!1,x(),s.current!==null&&(cancelAnimationFrame(s.current),s.current=null),setTimeout(()=>{o(1),h()},100)),I===0&&(d.current=0),b.current=I},Z=()=>{p.current=!1,d.current=0,s.current!==null&&(cancelAnimationFrame(s.current),s.current=null),o(1),h(),b.current=0};return _.addEventListener("touchstart",M,{passive:!1,capture:!0}),_.addEventListener("touchmove",S,{passive:!1,capture:!0}),_.addEventListener("touchend",A,{passive:!1,capture:!0}),_.addEventListener("touchcancel",Z,{passive:!1,capture:!0}),()=>{_.removeEventListener("touchstart",M,{capture:!0}),_.removeEventListener("touchmove",S,{capture:!0}),_.removeEventListener("touchend",A,{capture:!0}),_.removeEventListener("touchcancel",Z,{capture:!0}),s.current!==null&&cancelAnimationFrame(s.current)}},[t]);let m=Sf(()=>({locale:"zh-CN",rendererMode:"replace",styleIsolation:"none",renderers:Cf,theme:"dark",toolbar:{position:"bottom-right",download:!1,print:!1,exportHtml:!1},cad:{workerUrl:Ff("/wasm/cad/dwg-worker.js"),wasmPath:"/wasm/cad/",dwfWasmUrl:"/wasm/cad/dwfv-render.wasm",canvasOptions:{background:"#000000",foreground:"#ffffff"},dwfBackground:"#000000"}}),[]);return Ca("div",{ref:i,className:"ui-file-preview-cad",style:{width:"100%",height:"100vh",minHeight:"600px",touchAction:"pan-x pan-y",overflow:"hidden",userSelect:"none",WebkitUserSelect:"none"},children:t&&e?Ca("div",{style:{width:"100%",height:"100%",transform:`scale(${r})`,transformOrigin:"center center",transition:r===1?"transform 0.1s ease-out":"none",willChange:"transform"},children:Ca(Ef,{ref:_=>{l.current=_},buffer:t,filename:e.name,name:e.name,type:"dwg",size:e.size,options:m,style:{width:"100%",height:"100%"}})}):null})}});import{useEffect as bn,useRef as Ba,useMemo as Oa,useState as Lh}from"react";import{useSearchParams as Bh}from"react-router-dom";import{Card as Oh,Modal as Bo,Input as Kr,Checkbox as zh,Button as za,Spin as $h,Menu as Hh}from"antd";import{ProjectRole as Zt}from"@spacecorexdev/core/types";import{ArrowLeftOutlined as Uh,FolderAddOutlined as jh,FileTextFilled as Vh,FileMarkdownFilled as Zh,FileWordFilled as Wh,FileExcelFilled as Kh}from"@ant-design/icons";import{API as Mt}from"@spacecorexdev/core/api";import{ResponseCode as $l}from"@spacecorexdev/core/api";import{CacheUserInfo as Hl}from"@spacecorexdev/core/utils";var Yr={listFiles:e=>Mt.project.file.listFiles({projectId:e}),getDetail:e=>Mt.project.file.getDetail({fileId:e}),addFile:(e,t)=>Mt.project.file.addFile({projectId:e},t),removeFile:e=>Mt.project.file.removeFile({fileId:e}),moveFile:(e,t)=>Mt.project.file.moveFile({projectId:e},t),updateFileDescs:e=>Mt.project.file.updateFileDescs(e),updateFile:e=>Mt.project.file.updateFile(e),updateFileDelta:e=>Mt.project.file.updateFileDelta(e),copyFileToProject:(e,t)=>Mt.project.file.copyFileToProject({projectId:e,fileId:t}),generateTempAccessToken:(e,t)=>Mt.project.file.generateTempAccessToken({fileId:e,expireSeconds:t}),downloadFolder:(e,t,n)=>Mt.project.file.folderDownload({projectId:e},{folderPath:t,folderName:n}),getFolderDownloadStatus:e=>Mt.project.file.folderDownloadStatus({jobId:e}),resolveIsManager:async e=>{let t=await Hl.getUserInfo({forceRefresh:!0}),n=await Mt.project.project.getProjectMembers({projectId:e});return n.code==$l.SUCCESS?!!n.data?.find(o=>o.userId==t?.id&&(o.role==Zt.MANAGER||o.role==Zt.OWNER)):!1}};dn();import{Suspense as tn,lazy as Nn,useEffect as ji,useRef as Gn,useState as vt}from"react";import*as Fo from"febs-browser";import{Modal as Tf,Spin as Zi}from"antd";import{uiToast as Co}from"@spacecorexdev/core/ui";var fc=e=>{if(!e||e.byteLength<4)return"";let t=new Uint8Array(e,0,Math.min(16,e.byteLength));if(t[0]===255&&t[1]===216&&t[2]===255)return"image/jpeg";if(t[0]===137&&t[1]===80&&t[2]===78&&t[3]===71)return"image/png";if(t[0]===71&&t[1]===73&&t[2]===70&&t[3]===56)return"image/gif";if(t.length>=12&&t[0]===82&&t[1]===73&&t[2]===70&&t[3]===70&&t[8]===87&&t[9]===69&&t[10]===66&&t[11]===80)return"image/webp";if(t[0]===66&&t[1]===77)return"image/bmp";try{let n=new TextDecoder("utf-8").decode(t.slice(0,16)).trimStart();if(n.startsWith("<svg")||n.startsWith("<?xml"))return"image/svg+xml"}catch{}return""},ts=async(e,t)=>{let n=new Image,r=e.headers?.get?.("Content-Type")||"";r||(r=fc(e.buffer));let o=new Blob([e.buffer],{type:r});n.src=URL.createObjectURL(o),n.onload=()=>{n.style.maxWidth="100%",n.style.maxHeight="calc(100vh - 40px)",n.style.objectFit="contain",t.current.innerHTML="",t.current.appendChild(n),URL.revokeObjectURL(n.src)}},ns=e=>{};import{jsx as mc}from"react/jsx-runtime";var rs=({containerRef:e,type:t})=>t==="image"&&mc("div",{ref:e,style:{display:t==="image"?"inherit":"none",maxWidth:"100%",maxHeight:"calc(100vh - 40px)",objectFit:"contain"}});import{useState as En,useRef as hc,useEffect as gc,useCallback as yc}from"react";import{PlayCircleOutlined as os,LoadingOutlined as wc,ReloadOutlined as bc,PauseCircleOutlined as vc}from"@ant-design/icons";import{AuthorizationHandler as _c}from"@spacecorexdev/core/api";import{Button as oo}from"antd";import{jsx as yt,jsxs as or}from"react/jsx-runtime";var as=({previewUrl:e,type:t})=>{let[n,r]=En(!1),[o,i]=En(!1),[l,d]=En(!1),[a,s]=En(!1),[c,p]=En(1),[b,m]=En(null),[_,h]=En(!1),[x,M]=En(0),S=hc(null),A=yc(()=>{let $={},B={headers:{set:(K,q)=>{$[K]=q}}};return _c.requestHandleSid(B),$},[]);gc(()=>{if(t!=="video")return;(async()=>{let B=A();try{if(!(await fetch(e,{method:"HEAD",headers:{Authorization:B.Authorization||""}})).ok){console.warn("HEAD request failed, trying GET for poster");return}let q=await fetch(e,{method:"GET",headers:{Authorization:B.Authorization||"",Range:"bytes=0-102400"}});if(!q.ok&&q.status!==206){console.warn("Failed to fetch video header for poster");return}let ge=await q.blob(),oe=URL.createObjectURL(ge),E=document.createElement("video");E.crossOrigin="anonymous",E.src=oe;try{await new Promise((se,Ce)=>{E.onloadedmetadata=()=>{E.currentTime=.1,se()},E.onerror=Ce}),await new Promise(se=>{E.onseeked=()=>se()});let be=document.createElement("canvas");be.width=E.videoWidth||640,be.height=E.videoHeight||360;let U=be.getContext("2d");if(U){U.drawImage(E,0,0,be.width,be.height);let se=be.toDataURL("image/jpeg",.7);m(se)}}catch(be){console.warn("Failed to generate video poster:",be)}finally{URL.revokeObjectURL(oe)}}catch(K){console.warn("Failed to fetch video for poster:",K)}})()},[e,t,A]);let Z=async()=>{if(l){d(!1),r(!0),s(!0),await O();return}s(!0),r(!0),await O()},O=async()=>{try{let $=A(),B=await fetch(e,{method:"HEAD",headers:{Authorization:$.Authorization||""}}),K=B.headers.get("accept-ranges"),q=B.headers.get("content-length");console.log(`Server supports ranges: ${K}`),console.log(`Content length: ${q}`);let ge=document.createElement("source");if(ge.src=e,S.current){for(;S.current.firstChild;)S.current.removeChild(S.current.firstChild);S.current.appendChild(ge),S.current.crossOrigin="use-credentials",await S.current.load(),r(!1),i(!0),h(!0),S.current.play().catch(()=>{})}}catch($){console.error("Video setup error:",$),await I()}},I=async()=>{try{let $=A(),B=await fetch(e,{headers:{Authorization:$.Authorization||""},method:"GET"});if(!B.ok)throw new Error(`\u89C6\u9891\u52A0\u8F7D\u5931\u8D25\uFF0C\u72B6\u6001\u7801: ${B.status}`);let K=await B.blob(),q=URL.createObjectURL(K);return S.current&&(S.current.src=q,await S.current.load(),r(!1),i(!0),h(!0),S.current.play().catch(()=>{})),()=>{URL.revokeObjectURL(q)}}catch($){console.error("Fallback download error:",$),r(!1),d(!0)}},J=()=>{if(S.current){let $=S.current.buffered,B=S.current.duration;if($.length>0&&B>0){let K=$.end($.length-1),q=Math.min(K/B*100,100);M(q),q>=99&&console.log("Video fully buffered")}}},ne=()=>{r(!1),i(!0)},D=()=>{console.error("Video element error"),r(!1),d(!0)},w=()=>{h(!0)},W=()=>{h(!1)},k=$=>{p($),S.current&&(S.current.playbackRate=$)},L=()=>{S.current&&(_?S.current.pause():S.current.play().catch(()=>{}))};return t!=="video"?null:or("div",{style:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center",background:"#000",position:"relative"},children:[yt("video",{ref:S,controls:!0,preload:"metadata",onLoadedData:ne,onError:D,onProgress:J,onPlay:w,onPause:W,style:{maxWidth:"100%",maxHeight:"calc(100vh - 40px)",objectFit:"contain",display:a&&!n&&!l?"block":"none"},crossOrigin:"use-credentials"}),_&&x>0&&x<100&&yt("div",{style:{position:"absolute",bottom:"45px",left:"20px",right:"20px",height:"4px",backgroundColor:"rgba(255, 255, 255, 0.3)",borderRadius:"2px"},children:yt("div",{style:{height:"100%",backgroundColor:"#1890ff",borderRadius:"2px",transition:"width 0.3s ease",width:`${x}%`}})}),!a||n||l?or("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",background:"#1a1a1a"},children:[!n&&!l&&yt("img",{src:b||'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 72"%3E%3Crect fill="%232a2a2a" width="128" height="72"/%3E%3Ctext fill="%234a4a4a" font-family="sans-serif" font-size="12" x="50%25" y="50%25" text-anchor="middle" dominant-baseline="middle"%3E\u89C6\u9891\u9884\u89C8%3C/text%3E%3C/svg%3E',alt:"Video preview",style:{maxWidth:"100%",maxHeight:"calc(100vh - 200px)",objectFit:"contain"}}),n&&or("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:16},children:[yt(wc,{style:{fontSize:48,color:"#1890ff"},spin:!0}),yt("span",{style:{color:"#999",fontSize:14},children:"\u6B63\u5728\u51C6\u5907\u89C6\u9891..."})]}),l&&or("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:16},children:[yt("div",{style:{fontSize:48,color:"#ff4d4f"},children:yt("svg",{viewBox:"0 0 24 24",fill:"currentColor",children:yt("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"})})}),yt("span",{style:{color:"#ff4d4f",fontSize:14},children:"\u89C6\u9891\u52A0\u8F7D\u5931\u8D25"}),or(oo,{type:"primary",onClick:Z,style:{padding:"8px 16px",color:"#fff",border:"none",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",gap:8},children:[yt(bc,{}),"\u91CD\u8BD5\u52A0\u8F7D"]})]}),!n&&!l&&yt(oo,{type:"primary",onClick:Z,style:{position:"absolute",width:"80px",height:"80px",borderRadius:"50%",backgroundColor:"rgba(24, 144, 255, 0.9)",border:"none",cursor:"pointer",display:"flex",justifyContent:"center",alignItems:"center",transition:"transform 0.2s"},onMouseEnter:$=>{$.currentTarget.style.transform="scale(1.1)"},onMouseLeave:$=>{$.currentTarget.style.transform="scale(1)"},children:yt(os,{style:{fontSize:48,color:"#fff"}})})]}):null,o&&yt(oo,{type:"text",onClick:L,style:{position:"absolute",width:"60px",height:"60px",borderRadius:"50%",backgroundColor:"rgba(0, 0, 0, 0.6)",border:"none",cursor:"pointer",display:"none",justifyContent:"center",alignItems:"center",transition:"opacity 0.3s"},className:"video-overlay-play-btn",children:_?yt(vc,{style:{fontSize:36,color:"#fff"}}):yt(os,{style:{fontSize:36,color:"#fff"}})}),o&&yt("div",{style:{position:"absolute",bottom:"60px",right:"20px",backgroundColor:"rgba(0, 0, 0, 0.7)",padding:"4px",borderRadius:"4px",display:"flex",gap:"4px"},children:[.5,1,1.25,1.5,2].map($=>or(oo,{type:"text",onClick:()=>k($),style:{padding:"4px 8px",backgroundColor:c===$?"#1890ff":"transparent",color:"#fff",border:"none",borderRadius:"2px",fontSize:"12px",cursor:"pointer"},children:[$,"x"]},$))})]})};Vn();import{useState as Tn,useRef as Pn,useEffect as Mn,useCallback as un,useMemo as jo}from"react";import{Button as Vo,Modal as hs,Space as gs,message as Ye,Popconfirm as Zc,Tag as Zo}from"antd";import{SaveOutlined as Wc,UploadOutlined as Kc,CloseOutlined as Wo,CloudOutlined as ys,CloudServerOutlined as Gc,FileTextFilled as Xc,FileMarkdownOutlined as qc,ImportOutlined as Yc}from"@ant-design/icons";import{useCreateBlockNote as Jc}from"@blocknote/react";import{BlockNoteView as Qc}from"@blocknote/mantine";import{zh as ed}from"@blocknote/core/locales";import{BlockNoteSchema as td,defaultBlockSpecs as nd}from"@blocknote/core";import"@blocknote/core/fonts/inter.css";import"@blocknote/mantine/style.css";ir();Wt(`.richdoc-editor-host{height:100%;overflow-y:auto;background:#fff}.richdoc-editor-host .bn-container{height:100%}.dark .richdoc-editor-host:not(.rdoc-export-preview),[data-theme=dark] .richdoc-editor-host:not(.rdoc-export-preview){background:rgb(var(--color-surface))}.dark .richdoc-editor-host:not(.rdoc-export-preview) .bn-editor,[data-theme=dark] .richdoc-editor-host:not(.rdoc-export-preview) .bn-editor{background-color:transparent}.richdoc-editor-host .bn-editor{height:100%;margin:auto;max-width:700px;padding-top:24px;padding-left:0;padding-right:0;caret-color:rgb(var(--color-foreground))}.richdoc-editor-host .bn-editor code{border-radius:2px;padding:1px 2px;background:rgb(var(--color-markdown-comment) / .3)}.richdoc-editor-host .bn-editor pre code{background:none}@media(max-width:768px){.richdoc-editor-host .bn-editor{padding-inline:16px}}.richdoc-editor-host.richdoc-readonly .bn-side-menu{display:none}
|
|
313
|
+
`);Vn();var Sc=(e,t,n,r)=>{let o=new Set,i=(l,d)=>{!Number.isFinite(l)||d-l<=.5||l<=n+1||l>=r-1||o.add(Math.round(l*2)/2)};try{let l=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),d=l.nextNode();for(;d;){let a=d.nodeValue;if(a&&a.trim()){let s=document.createRange();s.selectNodeContents(d),Array.from(s.getClientRects()).forEach(c=>i(c.top-t,c.bottom-t)),typeof s.detach=="function"&&s.detach()}d=l.nextNode()}}catch{}return e.querySelectorAll("img, hr, tr, canvas, svg, video, figure").forEach(l=>{let d=l.getBoundingClientRect();i(d.top-t,d.bottom-t)}),Array.from(o).sort((l,d)=>l-d)},so=(e,t)=>{let n=e.getBoundingClientRect().top;return t.map(r=>{let o=r.getBoundingClientRect(),i=o.top-n,l=o.bottom-n;return{top:i,bottom:l,lineTops:Sc(r,n,i,l)}}).filter(r=>r.bottom-r.top>.5)},Ec=(e,t,n)=>{let r=null;for(let o of e.lineTops){if(o>n)break;o>t+1&&(r=o)}return r},io=(e,t)=>{let n=[];if(e.length===0)return n;let r=Math.max(0,e[0].top),o=r;for(let i of e){let l=i.top;for(;i.bottom-r>t;){let d=r+t,a=Ec(i,r,d);if(a!==null){n.push({y:r,height:a-r}),r=a,l=Math.max(l,a);continue}if(l>r+.5){n.push({y:r,height:l-r}),r=l,l=i.top;continue}n.push({y:r,height:t}),r+=t,l=r}o=Math.max(o,i.bottom)}return o>r&&n.push({y:r,height:o-r}),n};var lo=10,Cc=210,Fc=297,cs=Cc-lo*2,kc=Fc-lo*2,co=Math.round(cs/25.4*96),Tc=co*kc/cs,Uo=3,Pc=8e3,Mc="data-rdoc-export-root",Ic=`
|
|
314
|
+
.rdoc-export-preview {
|
|
315
|
+
background: #ffffff;
|
|
316
|
+
height: auto !important;
|
|
317
|
+
overflow: visible !important;
|
|
318
|
+
}
|
|
319
|
+
.rdoc-export-preview .bn-editor {
|
|
320
|
+
min-height: 0 !important;
|
|
321
|
+
height: auto !important;
|
|
322
|
+
padding-block: 0 !important;
|
|
323
|
+
outline: none !important;
|
|
324
|
+
}
|
|
325
|
+
/* \u53EA\u5F71\u54CD\u884C\u5185 code\uFF0C\u4E0D\u80FD\u6CE2\u53CA\u4EE3\u7801\u5757\uFF08pre > code\uFF09\u7684\u884C\u8DDD */
|
|
326
|
+
.rdoc-export-preview .bn-editor :not(pre) > code {
|
|
327
|
+
line-height: 1 !important;
|
|
328
|
+
vertical-align: baseline !important;
|
|
329
|
+
}
|
|
330
|
+
/* \u4FEE\u590D html2canvas 1.4 \u7684\u5B57\u5F62\u6D4B\u91CF\u73AF\u5883\uFF08\u4E0E Markdown \u5BFC\u51FA\u4E00\u81F4\uFF09\uFF1A
|
|
331
|
+
\u5B83\u4F1A\u5728 body \u4E0B\u4E34\u65F6\u63D2\u5165\u4E00\u4E2A 1x1 img \u6765\u63A8\u7B97\u57FA\u7EBF\uFF0CTailwind preflight \u7684 img{display:block}
|
|
332
|
+
\u4F1A\u628A\u8FD9\u4E2A\u6D4B\u91CF\u56FE\u6324\u51FA\u6587\u5B57\u884C\u76D2\uFF0C\u5BFC\u81F4\u6240\u6709\u6587\u5B57\u88AB\u7CFB\u7EDF\u6027\u4E0B\u79FB\u3002 */
|
|
333
|
+
body > div > img[width="1"][height="1"] {
|
|
334
|
+
display: inline !important;
|
|
335
|
+
}
|
|
336
|
+
.rdoc-export-preview .bn-editor pre code {
|
|
337
|
+
background: none !important;
|
|
338
|
+
color: inherit !important;
|
|
339
|
+
}
|
|
340
|
+
.rdoc-export-preview .bn-side-menu,
|
|
341
|
+
.rdoc-export-preview .bn-drag-handle,
|
|
342
|
+
.rdoc-export-preview .bn-block-actions,
|
|
343
|
+
.rdoc-export-preview .bn-toolbar,
|
|
344
|
+
.rdoc-export-preview .bn-suggestion-menu,
|
|
345
|
+
.rdoc-export-preview .bn-file-panel,
|
|
346
|
+
.rdoc-export-preview .bn-link-toolbar,
|
|
347
|
+
.rdoc-export-preview .ProseMirror-cursor,
|
|
348
|
+
.rdoc-export-preview .ProseMirror-separator,
|
|
349
|
+
.rdoc-export-preview .bn-trailing-block {
|
|
350
|
+
display: none !important;
|
|
351
|
+
}
|
|
352
|
+
/* \u7A7A\u5757\u4E0D\u663E\u793A\u5360\u4F4D\u63D0\u793A\u6587\u5B57 */
|
|
353
|
+
.rdoc-export-preview [data-placeholder]::before {
|
|
354
|
+
content: none !important;
|
|
355
|
+
}
|
|
356
|
+
/* \u6587\u4EF6/\u56FE\u7247\u5757\uFF1A\u53BB\u6389 hover \u6001\u4E0E\u64CD\u4F5C\u6309\u94AE\u7684\u5360\u4F4D\u9AD8\u5EA6 */
|
|
357
|
+
.rdoc-export-preview .bn-file-block-content-wrapper {
|
|
358
|
+
min-height: 0 !important;
|
|
359
|
+
}
|
|
360
|
+
`,Dc=e=>{let t=e.cloneNode(!0);return t.classList.remove("ProseMirror-focused"),t.removeAttribute("contenteditable"),t.removeAttribute("spellcheck"),t.removeAttribute("translate"),t.querySelectorAll(".bn-side-menu, .bn-drag-handle, .bn-block-actions, .bn-toolbar, .bn-suggestion-menu, .bn-file-panel, .bn-link-toolbar").forEach(n=>n.remove()),t.querySelectorAll("[contenteditable]").forEach(n=>{n.removeAttribute("contenteditable"),n.removeAttribute("spellcheck")}),t.querySelectorAll("[data-placeholder]").forEach(n=>n.removeAttribute("data-placeholder")),t.querySelectorAll("[data-selected]").forEach(n=>n.removeAttribute("data-selected")),t.querySelectorAll("[data-drop-target]").forEach(n=>n.removeAttribute("data-drop-target")),t.querySelectorAll(".ProseMirror-selectednode, .bn-block-selected").forEach(n=>n.classList.remove("ProseMirror-selectednode","bn-block-selected")),t},Rc=e=>{e.querySelectorAll('.bn-block-content[data-content-type="bulletListItem"], .bn-block-content[data-content-type="numberedListItem"]').forEach(n=>{if(n.querySelector(":scope > [data-rdoc-list-marker]"))return;let r;if(n.dataset.contentType==="numberedListItem")r=`${n.getAttribute("data-index")??n.getAttribute("data-start")??"1"}.`;else{let d=window.getComputedStyle(n,"::before").content?.match(/^"((?:\\.|[^"\\])*)"$/);r=d?d[1]:"\u2022"}let o=window.getComputedStyle(n,"::before"),i=document.createElement("span");i.setAttribute("data-rdoc-list-marker","true"),i.textContent=r,i.style.cssText=["display:flex","align-items:center","justify-content:center","flex:0 0 auto",`min-width:${o.minWidth==="auto"?"24px":o.minWidth}`,`padding-right:${o.paddingRight||"4px"}`,`font-size:${o.fontSize}`,`line-height:${o.lineHeight}`,`color:${o.color}`,"white-space:pre"].join(";"),n.insertBefore(i,n.firstChild)})},Ac=e=>{e.querySelectorAll('.bn-block-content[data-content-type="checkListItem"] input[type="checkbox"]').forEach(t=>{let n=t.closest(".bn-block-content[data-checked]"),r=n?n.getAttribute("data-checked")==="true":t.checked,o=document.createElement("span");o.setAttribute("data-rdoc-checkbox",r?"checked":"unchecked"),o.textContent=r?"\u2713":"",o.style.cssText=["display:inline-flex","align-items:center","justify-content:center","flex:0 0 auto","box-sizing:border-box","width:12px","height:12px","margin:6px 8px 6px 4px","border:1px solid #9ca3af","border-radius:2px","font-size:10px","line-height:1","color:#1f2937"].join(";"),t.replaceWith(o)})},Nc=e=>{let t=Array.from(e.querySelectorAll("img"));return t.length===0?Promise.resolve():Promise.all(t.map(n=>new Promise(r=>{if(n.complete){r();return}let o=!1,i=()=>{o||(o=!0,window.clearTimeout(l),n.removeEventListener("load",i),n.removeEventListener("error",i),r())},l=window.setTimeout(i,Pc);n.addEventListener("load",i),n.addEventListener("error",i)}))).then(()=>{})},Lc=e=>{let t=document.createElement("div");t.setAttribute(Mc,"true"),t.className="richdoc-editor-host rdoc-export-preview",Object.assign(t.style,{position:"fixed",top:"0",left:"-100000px",width:`${co}px`,height:"auto",background:"#ffffff",pointerEvents:"none"});let n=document.createElement("style");n.setAttribute("data-rdoc-export","true"),n.textContent=Ic,t.appendChild(n);let r=document.createElement("div");return r.className="bn-root bn-container",r.setAttribute("data-color-scheme","light"),Object.assign(r.style,{width:`${co}px`,height:"auto",background:"#ffffff",overflow:"visible"}),r.style.setProperty("--color-markdown-comment","133 133 133"),r.appendChild(Dc(e)),t.appendChild(r),document.body.appendChild(t),r},Bc=e=>`${e.replace(/\.rdoc$/i,"").trim()||"document"}.pdf`,ds=async e=>{let{editorElement:t,fileName:n,onProgress:r}=e;if(!t||t.querySelectorAll(".bn-block-outer").length===0)throw new Error("\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u5BFC\u51FA PDF");let o=Lc(t);try{Rc(o),Ac(o),document.fonts?.ready&&await document.fonts.ready.catch(()=>{}),await Nc(o),await new Promise(p=>requestAnimationFrame(()=>requestAnimationFrame(()=>p())));let i=Array.from(o.querySelectorAll(".bn-block-outer")).filter(p=>!p.parentElement?.closest(".bn-block-outer")),l=io(so(o,i),Tc);if(l.length===0)throw new Error("\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u5BFC\u51FA PDF");let[{default:d},{jsPDF:a}]=await Promise.all([import("html2canvas"),import("jspdf")]),s=new a({orientation:"portrait",unit:"mm",format:"a4",compress:!0}),c={scale:Uo,x:0,width:co,backgroundColor:"#ffffff",useCORS:!0,logging:!1,scrollX:window.scrollX,scrollY:window.scrollY,windowWidth:document.documentElement.clientWidth,windowHeight:document.documentElement.clientHeight};for(let p=0;p<l.length;p++){let b=l[p],m=await d(o,{...c,y:b.y,height:b.height}),_=m.toDataURL("image/png"),h=m.width/Uo/96*25.4,x=m.height/Uo/96*25.4;s.addImage(_,"PNG",lo,lo,h,x),r?.(p+1,l.length),p<l.length-1&&s.addPage()}s.save(Bc(n))}finally{o.parentElement?.remove()}};var Oc="image",us=(e,t)=>e.filter(n=>n.type===Oc?(t.count+=1,!1):!0).map(n=>n.children&&n.children.length>0?{...n,children:us(n.children,t)}:n),zc=e=>`${e.replace(/\.rdoc$/i,"").trim()||"document"}.md`,$c=(e,t)=>{let n=new Blob([e],{type:"text/markdown;charset=utf-8"}),r=URL.createObjectURL(n),o=document.createElement("a");o.href=r,o.download=zc(t),o.style.display="none",document.body.appendChild(o),o.click(),o.remove(),window.setTimeout(()=>URL.revokeObjectURL(r),0)},ps=(e,t,n)=>{let r={count:0},o=e.blocksToMarkdownLossy(us(t,r));if(!o.trim())throw new Error("\u6CA1\u6709\u53EF\u5BFC\u51FA\u7684\u5185\u5BB9\uFF08\u56FE\u7247\u4E0D\u53C2\u4E0E\u5BFC\u51FA\uFF09");return $c(o,n),{markdown:o,skippedImages:r.count}};lr();dn();import{CacheUserInfo as rd}from"@spacecorexdev/core/utils";import{jsx as Ke,jsxs as cr}from"react/jsx-runtime";var od=Object.fromEntries(Object.entries(nd).filter(([e])=>e!=="file")),ad=td.create({blockSpecs:od});function sd(e){if(!(!e||!e.trim()))try{let t=JSON.parse(e);if(!Array.isArray(t))return;let n=bs(t);return n.length>0?n:void 0}catch{return}}function bs(e){return e.filter(t=>t.type!=="file").map(t=>t.children&&t.children.length>0?{...t,children:bs(t.children)}:t)}var id={image:{limit:600*1024,message:"\u56FE\u7247\u5927\u5C0F\u4E0D\u80FD\u8D85\u8FC7 600KB\uFF0C\u8BF7\u538B\u7F29\u540E\u518D\u63D2\u5165"},video:{limit:2*1024*1024,message:"\u89C6\u9891\u5927\u5C0F\u4E0D\u80FD\u8D85\u8FC7 2MB\uFF0C\u8BF7\u538B\u7F29\u540E\u518D\u63D2\u5165"},audio:{limit:1*1024*1024,message:"\u97F3\u9891\u5927\u5C0F\u4E0D\u80FD\u8D85\u8FC7 1MB\uFF0C\u8BF7\u538B\u7F29\u540E\u518D\u63D2\u5165"}};function ld(e,t){let n=t?id[t]:void 0;return n&&e.size>n.limit?(Ye.error(n.message),Promise.resolve("")):new Promise((r,o)=>{let i=new FileReader;i.onload=()=>r(String(i.result)),i.onerror=()=>o(i.error??new Error("\u8BFB\u53D6\u6587\u4EF6\u5931\u8D25")),i.readAsDataURL(e)})}var ws=()=>{if(typeof document>"u")return"light";let e=document.documentElement;return e.dataset.theme==="dark"||e.classList.contains("dark")?"dark":"light"};var cd=({initialContent:e,markdownFallback:t,readOnly:n,colorScheme:r,onDocChange:o,editorInstanceRef:i})=>{let l=Jc({schema:ad,initialContent:e,dictionary:ed,uploadFile:(d,a)=>{let s=a?i.current?.getBlock(a)?.type:void 0;return ld(d,s)}});return Mn(()=>(i.current=l,()=>{i.current=null}),[l,i]),Mn(()=>{if(e||!t||!t.trim())return;let d=!1;return(async()=>{try{let a=await l.tryParseMarkdownToBlocks(t);!d&&a.length>0&&l.replaceBlocks(l.document,a)}catch(a){console.warn("[RichDocEditor] Markdown \u5BFC\u5165\u5931\u8D25\uFF0C\u6309\u7A7A\u767D\u6587\u6863\u5904\u7406:",a)}})(),()=>{d=!0}},[]),Ke(Qc,{editor:l,editable:!n,theme:r,onChange:()=>o(l.document)})},vs=({hiddenClose:e=!1,value:t="",visible:n,isCreate:r,onClose:o,onSaveLocal:i,fileName:l="document.rdoc",onUpload:d,onChange:a,readOnly:s=!1,uploadPercent:c,isOffline:p,isLocalOnly:b,hasUnsyncedChanges:m,onSaveLocalMarkdown:_})=>{let[h,x]=Tn(t),[M,S]=Tn(null),[A,Z]=Tn(0),[O,I]=Tn(!1),[J,ne]=Tn(!r),[D,w]=Tn(!1),[W,k]=Tn(ws),L=Pn(null),$=Pn(null),B=Pn(!1),K=Pn(t);K.current=h;let q=Pn(t),ge=Pn(m),oe=Pn(_);ge.current=m,oe.current=_,Mn(()=>{let j=document.documentElement,re=new MutationObserver(()=>k(ws()));return re.observe(j,{attributes:!0,attributeFilter:["class","data-theme"]}),()=>re.disconnect()},[]),Mn(()=>{n&&(async()=>{try{let j=rd.currentLocalUser();S(j?.id||null)}catch(j){console.error("\u83B7\u53D6\u7528\u6237\u4FE1\u606F\u5931\u8D25:",j),S(null)}})()},[n]),Mn(()=>{n&&M?t?(x(t),Z(j=>j+1),I(!1)):r&&l&&(x(t),I(!1)):n&&l&&!M&&(x(t),I(!1))},[n,l,M,t,r,s]),Mn(()=>{q.current=t},[t]);let E=un(j=>{let re=JSON.stringify(j);re!==K.current&&(x(re),ne(!1),a?.(re),!(!l||!M)&&(!B.current&&!ge.current&&oe.current&&(B.current=!0,oe.current(re,l).catch(Te=>{console.warn("\u7F16\u8F91\u65F6\u7ACB\u5373\u6807\u8BB0\u672A\u540C\u6B65\u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u7F16\u8F91\uFF0C\u7B49\u5F85\u81EA\u52A8/\u624B\u52A8\u4FDD\u5B58\u5373\u53EF\uFF09:",Te)})),$.current&&clearTimeout($.current),I(!0),$.current=setTimeout(async()=>{try{if(await Ot(M,l,"rdoc",re),I(!1),oe.current)try{await oe.current(re,l,!1)}catch(Te){console.warn("\u81EA\u52A8\u4FDD\u5B58\u65F6\u540C\u6B65 localFiles store \u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u672C\u5730\u4FDD\u5B58\uFF09:",Te)}}catch(Te){console.error("\u81EA\u52A8\u4FDD\u5B58\u5230 IndexedDB \u5931\u8D25:",Te)}},2e4)))},[l,M,a]),be=un(async()=>{let j=K.current;if(i&&!M){i(j);return}try{if(!M){Ye.error("\u65E0\u6CD5\u83B7\u53D6\u7528\u6237\u4FE1\u606F");return}if(await Ot(M,l,"rdoc",j),I(!1),oe.current)try{await oe.current(j,l)}catch(re){console.warn("\u540C\u6B65\u672C\u5730\u6587\u4EF6\u5185\u5BB9\u5230 localFiles store \u5931\u8D25:",re)}Ye.success("\u5DF2\u4FDD\u5B58\u5230\u672C\u5730\u7F13\u5B58")}catch(re){console.error("\u4FDD\u5B58\u5230\u672C\u5730\u7F13\u5B58\u5931\u8D25:",re),Ye.error("\u4FDD\u5B58\u5931\u8D25")}},[l,M,i]),U=un(async()=>{if(!d){Ye.error("\u672A\u63D0\u4F9B\u4E0A\u4F20\u529F\u80FD");return}try{let j=K.current,re=q.current;await d(re,j,l),q.current=j,M&&(await Cn(M,l,"rdoc"),I(!1),ne(!0)),B.current=!1}catch(j){console.error("\u4E0A\u4F20\u5931\u8D25:",j),Ye.error("\u4E0A\u4F20\u5931\u8D25")}},[l,d,M]),se=un(async()=>{let j=L.current;if(!j){Ye.warning("\u7F16\u8F91\u5668\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5");return}let re=j.domElement;if(!re||re.querySelectorAll(".bn-block-outer").length===0){Ye.warning("\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u5BFC\u51FA PDF");return}w(!0),Ye.loading({key:"rdoc-export-pdf",content:"\u6B63\u5728\u751F\u6210 PDF...",duration:0});try{await ds({editorElement:re,fileName:l,onProgress:(Te,Ve)=>Ye.loading({key:"rdoc-export-pdf",content:`\u6B63\u5728\u751F\u6210 PDF\uFF08${Te}/${Ve} \u9875\uFF09...`,duration:0})}),Ye.success({key:"rdoc-export-pdf",content:"PDF \u5DF2\u5BFC\u51FA"})}catch(Te){console.error("\u5BFC\u51FA PDF \u5931\u8D25:",Te),Ye.error({key:"rdoc-export-pdf",content:Te?.message||"\u5BFC\u51FA PDF \u5931\u8D25"})}finally{w(!1)}},[l]),Ce=un(()=>{let j=L.current;if(!j){Ye.warning("\u7F16\u8F91\u5668\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5");return}if(j.document.length===0){Ye.warning("\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u5BFC\u51FA Markdown");return}try{let{skippedImages:re}=ps(j,j.document,l);Ye.success(re>0?`Markdown \u5DF2\u5BFC\u51FA\uFF08\u5DF2\u8DF3\u8FC7 ${re} \u5F20\u56FE\u7247\uFF09`:"Markdown \u5DF2\u5BFC\u51FA")}catch(re){console.error("\u5BFC\u51FA Markdown \u5931\u8D25:",re),Ye.error(re?.message||"\u5BFC\u51FA Markdown \u5931\u8D25")}},[l]),ie=un(()=>{let j=K.current;if(!j||!j.trim()){Ye.warning("\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u4E0B\u8F7D");return}Dt(new Blob([j],{type:"application/json;charset=utf-8"}),l)},[l]),V=!r||h.trim()?ie:void 0,xe=Pn(null),[ce,ee]=Tn(!1),Se=un(async j=>{let re=L.current;if(!re){Ye.warning("\u7F16\u8F91\u5668\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5");return}ee(!0),Ye.loading({key:"rdoc-import-md",content:"\u6B63\u5728\u89E3\u6790 Markdown\u2026",duration:0});try{let Te=await j.text();if(!Te.trim()){Ye.warning("\u6587\u4EF6\u5185\u5BB9\u4E3A\u7A7A");return}let Ve=await re.tryParseMarkdownToBlocks(Te);if(!Ve||Ve.length===0){Ye.warning("\u672A\u80FD\u4ECE\u6587\u4EF6\u4E2D\u89E3\u6790\u51FA\u5185\u5BB9");return}re.replaceBlocks(re.document,Ve),Ye.success(`\u5DF2\u5BFC\u5165 Markdown\uFF0C\u5171 ${Ve.length} \u4E2A\u5185\u5BB9\u5757`)}catch(Te){console.error("[RichDocEditor] \u5BFC\u5165 Markdown \u5931\u8D25:",Te),Ye.error(`\u5BFC\u5165 Markdown \u5931\u8D25\uFF1A${Te?.message||"\u672A\u77E5\u9519\u8BEF"}`)}finally{Ye.destroy("rdoc-import-md"),ee(!1)}},[]),Le=un(()=>{if(!L.current){Ye.warning("\u7F16\u8F91\u5668\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5");return}xe.current?.click()},[]),_e=un(j=>{let re=j.target.files?.[0];if(j.target.value="",!re)return;let Te=L.current;if(!(!!Te&&(Te.document.length>1||Te.document.length===1&&Array.isArray(Te.document[0].content)&&Te.document[0].content.length>0))){Se(re);return}hs.confirm({title:"\u5BFC\u5165\u4F1A\u8986\u76D6\u5F53\u524D\u5185\u5BB9",content:"\u5F53\u524D\u6587\u6863\u5DF2\u6709\u5185\u5BB9\uFF0C\u5BFC\u5165 Markdown \u540E\u5C06\u6574\u4F53\u66FF\u6362\uFF0C\u4E14\u65E0\u6CD5\u64A4\u9500\u3002\u662F\u5426\u7EE7\u7EED\uFF1F",okText:"\u7EE7\u7EED\u5BFC\u5165",cancelText:"\u53D6\u6D88",okButtonProps:{danger:!0},onOk:()=>Se(re)})},[Se]),pe=jo(()=>[{key:"markdown",icon:Ke(qc,{}),label:"\u5BFC\u51FAMarkdown",onClick:Ce},...s?[]:[{key:"import-markdown",icon:Ke(Yc,{}),label:"\u5BFC\u5165Markdown",disabled:ce,onClick:Le}]],[Ce,Le,ce,s]);Mn(()=>{if(!n)return;let j=re=>{(re.ctrlKey||re.metaKey)&&re.key==="s"&&(re.preventDefault(),be())};return window.addEventListener("keydown",j),()=>window.removeEventListener("keydown",j)},[n,be]),Mn(()=>(n&&(ne(!r),B.current=!1,$.current&&(clearTimeout($.current),$.current=null)),()=>{$.current&&(clearTimeout($.current),$.current=null)}),[n,r]);let Ge=jo(()=>sd(h),[A]),X=jo(()=>Ge?void 0:h,[Ge,h]);return Ke(hs,{open:n,onCancel:o,keyboard:!1,closeIcon:null,footer:null,width:"100%",style:{top:0,maxWidth:"100vw"},styles:{body:{height:"100dvh",padding:0}},className:"ant-modal-nopadding ant-modal-fullscreen relative",transitionName:"none",children:cr("div",{className:"h-full flex flex-col bg-white p-0 m-0",children:[cr("div",{className:`flex items-center justify-between flex-wrap px-4 py-2 pr-0 flex-shrink-0 ${p?"bg-orange-50 border-b border-orange-200":"bg-gray-50 border-b border-gray-200"}`,children:[Ke("span",{children:"\xA0"}),!s&&Ke("span",{children:"\xA0"}),cr("div",{className:"flex items-center gap-2 flex-wrap min-w-[40%]",children:[!p&&b&&Ke(Zo,{icon:Ke(ys,{}),color:"orange",style:{margin:0},children:"\u672C\u5730\u6587\u4EF6"}),!p&&!b&&m&&Ke(Zo,{icon:Ke(ys,{}),color:"warning",style:{margin:0},children:"\u6709\u672A\u540C\u6B65\u4FEE\u6539"}),!p&&!b&&!m&&!d?Ke(Zo,{icon:Ke(Gc,{}),color:"default",style:{margin:0},children:"\u540C\u6B65\u5B8C\u6210"}):null,Ke(Xc,{className:"text-yellow-600"}),cr("span",{className:"text-sm font-medium",children:[O?"*":"",l]})]}),!s&&!e&&cr(gs,{wrap:!0,align:"center",direction:"horizontal",children:[Ke(St,{onExportPdf:se,onDownload:V,exportingPdf:D,extraItems:pe,buttonProps:{style:{paddingLeft:2,paddingRight:2}}}),d&&Ke(Vo,{type:"text",style:{paddingLeft:4,paddingRight:4},title:"\u6BCF\u6B21\u4E0A\u4F20\u5C06\u4FDD\u7559\u4E00\u4E2A\u5386\u53F2\u7248\u672C\uFF0C\u6700\u591A\u4FDD\u755910\u4E2A\u7248\u672C",icon:Ke(Kc,{}),onClick:U,disabled:c!==void 0&&c<100,children:c!==void 0&&c<100?`\u4E0A\u4F20\u4E2D ${Math.round(c*100)}%`:"\u4E0A\u4F20"}),Ke(Vo,{type:"primary",icon:Ke(Wc,{}),onClick:be,children:"\u4FDD\u5B58"}),O||!J?Ke(Zc,{title:"\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F",description:O?"\u4FEE\u6539\u672A\u4FDD\u5B58\uFF0C\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F":"\u4FEE\u6539\u672A\u4E0A\u4F20\uFF0C\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F",onConfirm:o,okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88",children:Ke(Vo,{type:"text",className:"ml-3 mr-2 text-gray-600 hover:text-gray-900",icon:Ke(Wo,{className:"w-6 h-6"})})}):Ke(Wo,{onClick:o,className:"ml-3 mr-2 w-6 h-6"})]}),s&&!e&&cr(gs,{className:"ml-3 mr-2",children:[Ke(St,{onExportPdf:se,onDownload:V,exportingPdf:D,extraItems:pe,buttonProps:{style:{}}}),Ke(Wo,{onClick:o,className:"w-6 h-6"})]}),e&&Ke("span",{children:"\xA0"}),Ke("input",{ref:xe,type:"file",accept:".md,.markdown,.txt,text/markdown,text/plain",style:{display:"none"},onChange:_e})]}),Ke("div",{className:`flex-1 richdoc-editor-host ${s?"richdoc-readonly":""}`,children:Ke(cd,{initialContent:Ge,markdownFallback:X,readOnly:s,colorScheme:W,onDocChange:E,editorInstanceRef:L},A)})]})})};import{useState as dr,useRef as Zn,useEffect as ur,useCallback as pr,useMemo as Cs}from"react";import Fs from"react-simplemde-editor";import"easymde/dist/easymde.min.css";ir();Wt(`@media(min-width:768px){.CodeMirror-fullscreen .editor-preview-full{padding:30px 64px 80px!important}}@media(min-width:1200px){.CodeMirror-fullscreen .editor-preview-full{padding:30px 128px 80px!important}}@media(min-width:1400px){.CodeMirror-fullscreen .editor-preview-full{padding:30px 256px 80px!important}}.editor-preview-side{margin-left:50vw!important;margin-top:32px!important}.EasyMDEContainer{padding-top:50px}.EasyMDEContainer .editor-preview *,.EasyMDEContainer .editor-preview-side *{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.EasyMDEContainer .editor-preview p,.EasyMDEContainer .editor-preview-side p{white-space:pre-wrap;word-wrap:break-word;line-height:1.6}.EasyMDEContainer .editor-preview hr,.EasyMDEContainer .editor-preview-side hr,.EasyMDEContainer .editor-preview table,.EasyMDEContainer .editor-preview-side table{margin-top:1em;margin-bottom:1em}.EasyMDEContainer .editor-preview,.EasyMDEContainer .editor-preview-side{line-height:1.6}.EasyMDEContainer .editor-preview h1,.EasyMDEContainer .editor-preview-side h1{font-size:200%;line-height:200%;font-weight:700;margin-top:.5em;margin-bottom:0;color:rgb(var(--color-markdown-h1))}.EasyMDEContainer .editor-preview h2,.EasyMDEContainer .editor-preview-side h2{font-size:160%;line-height:160%;font-weight:700;margin-top:.5em;margin-bottom:0;color:rgb(var(--color-markdown-h2))}.EasyMDEContainer .editor-preview h3,.EasyMDEContainer .editor-preview-side h3{font-size:125%;line-height:125%;font-weight:700;margin-top:1em;margin-bottom:1em;color:rgb(var(--color-markdown-h3))}.EasyMDEContainer .editor-preview h4,.EasyMDEContainer .editor-preview-side h4{font-size:110%;line-height:110%;font-weight:700;margin-top:1em;margin-bottom:1em;color:rgb(var(--color-markdown-h4))}.EasyMDEContainer .editor-preview code,.EasyMDEContainer .editor-preview-side code{border-radius:2px;padding:1px 2px;background:rgb(var(--color-markdown-comment) / .3)}.EasyMDEContainer .editor-preview pre,.EasyMDEContainer .editor-preview-side pre{padding-left:10px}.EasyMDEContainer .editor-preview blockquote,.EasyMDEContainer .editor-preview-side blockquote{border-left:2px solid rgb(var(--color-green-500));color:rgb(var(--color-markdown-comment));margin:1.5em 0;padding:0 1em;quotes:"\\201c" "\\201d" "\\2018" "\\2019";word-wrap:normal;white-space:normal;word-break:normal;display:block;margin-block-start:1em;margin-block-end:1em;unicode-bidi:isolate}.EasyMDEContainer .editor-preview ul,.EasyMDEContainer .editor-preview-side ul,.EasyMDEContainer .editor-preview ol,.EasyMDEContainer .editor-preview-side ol,.EasyMDEContainer .editor-preview li,.EasyMDEContainer .editor-preview-side li{word-wrap:normal;white-space:normal;word-break:normal;list-style:revert;margin:revert;padding:revert}/**
|
|
175
361
|
* simplemde v1.11.2
|
|
176
362
|
* Copyright Next Step Webs, Inc.
|
|
177
363
|
* @link https://github.com/NextStepWebs/simplemde-markdown-editor
|
|
178
364
|
* @license MIT
|
|
179
|
-
*/.CodeMirror{color:rgb(var(--color-foreground));border-color:rgb(var(--color-border))}.EasyMDEContainer,.EasyMDEContainer .CodeMirror{border-color:rgb(var(--color-border));background:rgb(var(--color-surface))}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:rgb(var(--color-surface))}.CodeMirror-gutters{border-right:1px solid rgb(var(--color-border));background-color:rgb(var(--color-surface));white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:rgb(var(--color-gray-400));white-space:nowrap}.CodeMirror-guttermarker{color:rgb(var(--color-foreground))}.CodeMirror-guttermarker-subtle{color:rgb(var(--color-gray-400))}.CodeMirror-cursor{border-left:1px solid rgb(var(--color-foreground));border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-animate-fat-cursor{width:auto;border:0;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-ruler{border-left:1px solid rgb(var(--color-border));position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.CodeMirror-matchingtag{background:#ff96004d}.CodeMirror-activeline-background{background:rgb(var(--color-primary-50))}.CodeMirror{position:relative;overflow:hidden;background:rgb(var(--color-surface))}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-top:0;outline:0;position:relative}.CodeMirror-fullscreen .CodeMirror-scroll{padding-top:0}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:0 0!important;border:none!important;-webkit-user-select:none;-moz-user-select:none;user-select:none}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{border-radius:0;border-width:0;background:0 0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;font-variant-ligatures:none}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;inset:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;overflow:auto}.CodeMirror-code{outline:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:rgb(var(--color-gray-200))}.CodeMirror-focused .CodeMirror-selected,.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:rgb(var(--color-primary-100))}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:rgb(var(--color-primary-100))}.cm-searching{background:rgb(var(--color-yellow-200) / .4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:0 0}.CodeMirror{height:100%!important;border:none!important;padding:10px;z-index:1;line-height:1.6}.CodeMirror-fullscreen .CodeMirror-scroll{height:calc(100vh - 90px)}.CodeMirror-fullscreen{background:rgb(var(--color-surface));position:fixed!important;inset:50px 0 0;height:auto;z-index:100!important}.CodeMirror-wrap{max-width:700px;margin:auto;font-size:16px!important}.CodeMirror-wrap.CodeMirror-fullscreen{max-width:100%;margin:inherit}.editor-toolbar{margin:auto;display:flex;justify-self:center;flex-wrap:wrap}.CodeMirror-sided{width:50%!important}.editor-toolbar{position:absolute;top:5px;opacity:1;background:rgb(var(--color-surface));z-index:1;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none;padding:0 10px;border:none}.ineditor-toolbar .editor-toolbar{top:50px}.editor-toolbar:after,.editor-toolbar:before{display:block;content:" ";height:1px}.editor-toolbar:before{margin-bottom:8px}.editor-toolbar:after{margin-top:8px}.editor-toolbar:hover,.editor-wrapper input.title:focus,.editor-wrapper input.title:hover{opacity:.8}.editor-toolbar.fullscreen{max-width:100%;margin:inherit;width:100%;height:50px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;padding-top:10px;padding-bottom:10px;box-sizing:border-box;background:rgb(var(--color-surface));border:0;position:fixed;top:0;left:0;opacity:1;z-index:100}.editor-toolbar.fullscreen:before{width:20px;height:50px;background:linear-gradient(to right,rgb(var(--color-surface) / 1) 0,rgb(var(--color-surface) / 0));position:fixed;top:0;left:0;margin:0;padding:0}.editor-toolbar.fullscreen:after{width:20px;height:50px;background:linear-gradient(to right,rgb(var(--color-surface) / 0) 0,rgb(var(--color-surface) / 1));position:fixed;top:0;right:0;margin:0;padding:0}.editor-toolbar a{display:inline-block;text-align:center;text-decoration:none!important;color:rgb(var(--color-foreground))!important;width:30px;height:30px;margin:0;border:1px solid transparent;border-radius:3px;cursor:pointer}.editor-toolbar a.active,.editor-toolbar a:hover,.editor-toolbar button.active,.editor-toolbar button:hover{background:rgb(var(--color-gray-50));border-color:rgb(var(--color-gray-400))}.dark .editor-toolbar:hover,[data-theme=dark] .editor-toolbar:hover{opacity:.8}.dark .editor-toolbar a,[data-theme=dark] .editor-toolbar a{color:rgb(var(--color-muted))!important}.dark .editor-toolbar a.active,.dark .editor-toolbar a:hover,.dark .editor-toolbar a:focus-visible,[data-theme=dark] .editor-toolbar a.active,[data-theme=dark] .editor-toolbar a:hover,[data-theme=dark] .editor-toolbar a:focus-visible{color:rgb(var(--color-foreground))!important;border-color:rgb(var(--color-email-ring))}.dark .editor-toolbar a.active:before,.dark .editor-toolbar a.active:after,.dark .editor-toolbar a:hover:before,.dark .editor-toolbar a:hover:after,.dark .editor-toolbar a:focus-visible:before,.dark .editor-toolbar a:focus-visible:after,[data-theme=dark] .editor-toolbar a.active:before,[data-theme=dark] .editor-toolbar a.active:after,[data-theme=dark] .editor-toolbar a:hover:before,[data-theme=dark] .editor-toolbar a:hover:after,[data-theme=dark] .editor-toolbar a:focus-visible:before,[data-theme=dark] .editor-toolbar a:focus-visible:after{color:inherit!important}.editor-toolbar a:before{line-height:30px}.editor-toolbar i.separator{display:inline-block;width:0;border-left:1px solid rgb(var(--color-border));border-right:1px solid rgb(var(--color-surface));color:transparent;text-indent:-10px;margin:0 6px}.editor-toolbar a.fa-header-x:after{font-family:Arial,Helvetica Neue,Helvetica,sans-serif;font-size:65%;vertical-align:text-bottom;position:relative;top:2px}.editor-toolbar a.fa-header-1:after{content:"1"}.editor-toolbar a.fa-header-2:after{content:"2"}.editor-toolbar a.fa-header-3:after{content:"3"}.editor-toolbar a.fa-header-bigger:after{content:"\\25b2"}.editor-toolbar a.fa-header-smaller:after{content:"\\25bc"}.editor-toolbar.disabled-for-preview a:not(.no-disable){pointer-events:none;background:rgb(var(--color-surface));border-color:transparent;text-shadow:inherit}@media only screen and (max-width:700px){.editor-toolbar a.no-mobile{display:none}}.editor-statusbar{max-width:700px;margin:auto;padding:8px 10px;font-size:12px;color:rgb(var(--color-muted));text-align:right}.editor-statusbar span{display:inline-block;min-width:4em;margin-left:1em}.editor-preview,.editor-preview-side{padding:10px 10px 60px;background:rgb(var(--color-surface));overflow:auto;display:none;box-sizing:border-box;z-index:100!important;font-size:16px!important}.editor-statusbar .lines:before{content:"lines: "}.editor-statusbar .words:before{content:"words: "}.editor-statusbar .characters:before{content:"characters: "}.editor-preview{position:absolute;width:100%;height:100%;top:0;left:0;z-index:7}.editor-preview-full .editor-preview{height:100%;padding-bottom:160px}.editor-preview-side{position:fixed;bottom:0;width:50%;top:18px;right:0;z-index:9;border:1px solid rgb(var(--color-border))}.editor-preview-active,.editor-preview-active-side{display:block}.editor-preview-side>p,.editor-preview>p{margin-top:.5em;margin-bottom:.5em}.editor-preview pre,.editor-preview-side pre{background:rgb(var(--color-gray-100));margin-bottom:10px}.editor-preview table td,.editor-preview table th,.editor-preview-side table td,.editor-preview-side table th{border:1px solid rgb(var(--color-border));padding:5px}.CodeMirror .CodeMirror-code .cm-tag{color:#63a35c}.CodeMirror .CodeMirror-code .cm-attribute{color:#795da3}.CodeMirror .CodeMirror-code .cm-string{color:#183691}.CodeMirror .CodeMirror-selected{background:rgb(var(--color-gray-200))}.CodeMirror .CodeMirror-code .cm-header-1{font-size:200%;line-height:200%}.CodeMirror .CodeMirror-code .cm-header-2{font-size:160%;line-height:160%}.CodeMirror .CodeMirror-code .cm-header-3{font-size:125%;line-height:125%}.CodeMirror .CodeMirror-code .cm-header-4{font-size:110%;line-height:110%}.CodeMirror .CodeMirror-code .cm-comment{background:rgb(var(--color-markdown-comment) / .3);border-radius:2px;padding:1px 2px}.CodeMirror .CodeMirror-code .cm-link{color:rgb(var(--color-muted))}.CodeMirror .CodeMirror-code .cm-url{color:rgb(var(--color-gray-400))}.CodeMirror .CodeMirror-code .cm-strikethrough{text-decoration:line-through}.CodeMirror .CodeMirror-placeholder{opacity:.5}.CodeMirror .cm-spell-error:not(.cm-url):not(.cm-comment):not(.cm-tag):not(.cm-word){background:rgb(var(--color-red-500) / .15)}
|
|
180
|
-
`)
|
|
365
|
+
*/.CodeMirror{color:rgb(var(--color-foreground));border-color:rgb(var(--color-border))}.EasyMDEContainer,.EasyMDEContainer .CodeMirror{border-color:rgb(var(--color-border));background:rgb(var(--color-surface))}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:rgb(var(--color-surface))}.CodeMirror-gutters{border-right:1px solid rgb(var(--color-border));background-color:rgb(var(--color-surface));white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:rgb(var(--color-gray-400));white-space:nowrap}.CodeMirror-guttermarker{color:rgb(var(--color-foreground))}.CodeMirror-guttermarker-subtle{color:rgb(var(--color-gray-400))}.CodeMirror-cursor{border-left:1px solid rgb(var(--color-foreground));border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-animate-fat-cursor{width:auto;border:0;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-ruler{border-left:1px solid rgb(var(--color-border));position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.CodeMirror-matchingtag{background:#ff96004d}.CodeMirror-activeline-background{background:rgb(var(--color-primary-50))}.CodeMirror{position:relative;overflow:hidden;background:rgb(var(--color-surface))}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-top:0;outline:0;position:relative}.CodeMirror-fullscreen .CodeMirror-scroll{padding-top:0}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:0 0!important;border:none!important;-webkit-user-select:none;-moz-user-select:none;user-select:none}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{border-radius:0;border-width:0;background:0 0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;font-variant-ligatures:none}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;inset:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;overflow:auto}.CodeMirror-code{outline:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:rgb(var(--color-gray-200))}.CodeMirror-focused .CodeMirror-selected,.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:rgb(var(--color-primary-100))}.CodeMirror-focused .CodeMirror-selected,.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:rgb(var(--color-primary-100))}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:rgb(var(--color-primary-100))}.cm-searching{background:rgb(var(--color-yellow-200) / .4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:0 0}.CodeMirror{height:100%!important;border:none!important;padding:10px;z-index:1;line-height:1.6}.CodeMirror-fullscreen .CodeMirror-scroll{height:calc(100vh - 90px)}.CodeMirror-fullscreen{background:rgb(var(--color-surface));position:fixed!important;inset:50px 0 0;height:auto;z-index:100!important}.CodeMirror-wrap{max-width:700px;margin:auto;font-size:16px!important}.CodeMirror-wrap.CodeMirror-fullscreen{max-width:100%;margin:inherit}.editor-toolbar{margin:auto;display:flex;justify-self:center;flex-wrap:wrap}.CodeMirror-sided{width:50%!important}.editor-toolbar{position:absolute;top:5px;opacity:1;background:rgb(var(--color-surface));z-index:1;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none;padding:0 10px;border:none}.ineditor-toolbar .editor-toolbar{top:50px}.editor-toolbar:after,.editor-toolbar:before{display:block;content:" ";height:1px}.editor-toolbar:before{margin-bottom:8px}.editor-toolbar:after{margin-top:8px}.editor-toolbar:hover,.editor-wrapper input.title:focus,.editor-wrapper input.title:hover{opacity:.8}.editor-toolbar.fullscreen{max-width:100%;margin:inherit;width:100%;height:50px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;padding-top:10px;padding-bottom:10px;box-sizing:border-box;background:rgb(var(--color-surface));border:0;position:fixed;top:0;left:0;opacity:1;z-index:100}.editor-toolbar.fullscreen:before{width:20px;height:50px;background:linear-gradient(to right,rgb(var(--color-surface) / 1) 0,rgb(var(--color-surface) / 0));position:fixed;top:0;left:0;margin:0;padding:0}.editor-toolbar.fullscreen:after{width:20px;height:50px;background:linear-gradient(to right,rgb(var(--color-surface) / 0) 0,rgb(var(--color-surface) / 1));position:fixed;top:0;right:0;margin:0;padding:0}.editor-toolbar a{display:inline-block;text-align:center;text-decoration:none!important;color:rgb(var(--color-foreground))!important;width:30px;height:30px;margin:0;border:1px solid transparent;border-radius:3px;cursor:pointer}.editor-toolbar a.active,.editor-toolbar a:hover,.editor-toolbar button.active,.editor-toolbar button:hover{background:rgb(var(--color-gray-50));border-color:rgb(var(--color-gray-400))}.dark .editor-toolbar:hover,[data-theme=dark] .editor-toolbar:hover{opacity:.8}.dark .editor-toolbar a,[data-theme=dark] .editor-toolbar a{color:rgb(var(--color-muted))!important}.dark .editor-toolbar a.active,.dark .editor-toolbar a:hover,.dark .editor-toolbar a:focus-visible,[data-theme=dark] .editor-toolbar a.active,[data-theme=dark] .editor-toolbar a:hover,[data-theme=dark] .editor-toolbar a:focus-visible{color:rgb(var(--color-foreground))!important;border-color:rgb(var(--color-email-ring))}.dark .editor-toolbar a.active:before,.dark .editor-toolbar a.active:after,.dark .editor-toolbar a:hover:before,.dark .editor-toolbar a:hover:after,.dark .editor-toolbar a:focus-visible:before,.dark .editor-toolbar a:focus-visible:after,[data-theme=dark] .editor-toolbar a.active:before,[data-theme=dark] .editor-toolbar a.active:after,[data-theme=dark] .editor-toolbar a:hover:before,[data-theme=dark] .editor-toolbar a:hover:after,[data-theme=dark] .editor-toolbar a:focus-visible:before,[data-theme=dark] .editor-toolbar a:focus-visible:after{color:inherit!important}.editor-toolbar a:before{line-height:30px}.editor-toolbar i.separator{display:inline-block;width:0;border-left:1px solid rgb(var(--color-border));border-right:1px solid rgb(var(--color-surface));color:transparent;text-indent:-10px;margin:0 6px}.editor-toolbar a.fa-header-x:after{font-family:Arial,Helvetica Neue,Helvetica,sans-serif;font-size:65%;vertical-align:text-bottom;position:relative;top:2px}.editor-toolbar a.fa-header-1:after{content:"1"}.editor-toolbar a.fa-header-2:after{content:"2"}.editor-toolbar a.fa-header-3:after{content:"3"}.editor-toolbar a.fa-header-bigger:after{content:"\\25b2"}.editor-toolbar a.fa-header-smaller:after{content:"\\25bc"}.editor-toolbar.disabled-for-preview a:not(.no-disable){pointer-events:none;background:rgb(var(--color-surface));border-color:transparent;text-shadow:inherit}@media only screen and (max-width:700px){.editor-toolbar a.no-mobile{display:none}}.editor-statusbar{max-width:700px;margin:auto;padding:8px 10px;font-size:12px;color:rgb(var(--color-muted));text-align:right}.editor-statusbar span{display:inline-block;min-width:4em;margin-left:1em}.editor-preview,.editor-preview-side{padding:10px 10px 60px;background:rgb(var(--color-surface));overflow:auto;display:none;box-sizing:border-box;z-index:100!important;font-size:16px!important}.editor-statusbar .lines:before{content:"lines: "}.editor-statusbar .words:before{content:"words: "}.editor-statusbar .characters:before{content:"characters: "}.editor-preview{position:absolute;width:100%;height:100%;top:0;left:0;z-index:7}.editor-preview-full .editor-preview{height:100%;padding-bottom:160px}.editor-preview-side{position:fixed;bottom:0;width:50%;top:18px;right:0;z-index:9;border:1px solid rgb(var(--color-border))}.editor-preview-active,.editor-preview-active-side{display:block}.editor-preview-side>p,.editor-preview>p{margin-top:.5em;margin-bottom:.5em}.editor-preview pre,.editor-preview-side pre{background:rgb(var(--color-gray-100));margin-bottom:10px}.editor-preview table td,.editor-preview table th,.editor-preview-side table td,.editor-preview-side table th{border:1px solid rgb(var(--color-border));padding:5px}.CodeMirror .CodeMirror-code .cm-tag{color:#63a35c}.CodeMirror .CodeMirror-code .cm-attribute{color:#795da3}.CodeMirror .CodeMirror-code .cm-string{color:#183691}.CodeMirror .CodeMirror-selected{background:rgb(var(--color-gray-200))}.CodeMirror .CodeMirror-code .cm-header-1{font-size:200%;line-height:200%}.CodeMirror .CodeMirror-code .cm-header-2{font-size:160%;line-height:160%}.CodeMirror .CodeMirror-code .cm-header-3{font-size:125%;line-height:125%}.CodeMirror .CodeMirror-code .cm-header-4{font-size:110%;line-height:110%}.CodeMirror .CodeMirror-code .cm-comment{background:rgb(var(--color-markdown-comment) / .3);border-radius:2px;padding:1px 2px}.CodeMirror .CodeMirror-code .cm-link{color:rgb(var(--color-muted))}.CodeMirror .CodeMirror-code .cm-url{color:rgb(var(--color-gray-400))}.CodeMirror .CodeMirror-code .cm-strikethrough{text-decoration:line-through}.CodeMirror .CodeMirror-placeholder{opacity:.5}.CodeMirror .cm-spell-error:not(.cm-url):not(.cm-comment):not(.cm-tag):not(.cm-word){background:rgb(var(--color-red-500) / .15)}
|
|
366
|
+
`);Vn();import{Button as fo,Modal as Sd,Space as ks,message as Kt,Popconfirm as Ed,Tag as Go}from"antd";import{SaveOutlined as Ts,FileMarkdownFilled as Cd,UploadOutlined as Fd,CloseOutlined as Xo,CloudOutlined as Ps,CloudServerOutlined as kd}from"@ant-design/icons";import{CacheUserInfo as Td}from"@spacecorexdev/core/utils";var uo=10,dd=210,ud=297,xs=dd-uo*2,pd=ud-uo*2,po=Math.round(xs/25.4*96),fd=po*pd/xs,Ko=3,md=15e3,Ss={"--color-surface":"255 255 255","--color-foreground":"31 41 55","--color-muted":"107 114 128","--color-border":"229 231 235","--color-markdown-comment":"133 133 133","--color-gray-50":"249 250 251","--color-gray-100":"243 244 246","--color-gray-200":"229 231 235","--color-gray-300":"209 213 219","--color-gray-400":"156 163 175","--color-green-500":"34 197 94"},hd=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),gd=e=>e||null,_s=e=>e.replace(/^\s*<html[^>]*>/i,"").replace(/<\/html>\s*$/i,"").replace(/^\s*<head[^>]*>[\s\S]*?<\/head>/i,"").replace(/^\s*<body[^>]*>/i,"").replace(/<\/body>\s*$/i,"").trim(),yd=(e,t)=>{let n=gd(t);if(n&&typeof n.markdown=="function")try{let i=_s(n.markdown(e));if(i)return i}catch(i){console.warn("[exportMarkdownPdf] EasyMDE markdown() \u6E32\u67D3\u5931\u8D25\uFF0C\u5C1D\u8BD5 previewRender:",i)}let r=n?.options,o=r?.previewRender;if(r&&typeof o=="function"){let i=document.createElement("div");try{let l=o.call(r,e,i),d=_s(typeof l=="string"&&l?l:i.innerHTML);if(d)return d}catch(l){console.warn("[exportMarkdownPdf] EasyMDE previewRender \u6E32\u67D3\u5931\u8D25\uFF0C\u964D\u7EA7\u4E3A\u7EAF\u6587\u672C:",l)}}return`<pre style="white-space:pre-wrap;font-size:16px;line-height:1.6;">${hd(e)}</pre>`},wd=e=>{let t=Array.from(e.querySelectorAll("img"));if(t.length===0)return Promise.resolve();let n=t.map(r=>new Promise(o=>{let i=!1,l=()=>{i||(i=!0,window.clearTimeout(d),r.removeEventListener("load",a),r.removeEventListener("error",s),o())},d=window.setTimeout(l,md),a=()=>l(),s=()=>l();r.addEventListener("load",a),r.addEventListener("error",s);let c=r.getAttribute("src");r.crossOrigin="anonymous",r.removeAttribute("src"),c&&r.setAttribute("src",c),r.complete&&l()}));return Promise.all(n).then(()=>{})},bd=`
|
|
181
367
|
/* \u6CE8\u610F\uFF1Awhite-space: pre-wrap \u53EA\u80FD\u4F5C\u7528\u4E8E\u5B50\u5143\u7D20\uFF08* \u9009\u62E9\u5668\uFF09\uFF0C\u4E0D\u80FD\u52A0\u5728\u5BB9\u5668\u81EA\u8EAB\u2014\u2014
|
|
182
368
|
\u5426\u5219 marked \u8F93\u51FA HTML \u4E2D\u5757\u7EA7\u5143\u7D20\u4E4B\u95F4\u7684\u6362\u884C\u7B26\u4F1A\u88AB\u6E32\u67D3\u6210\u989D\u5916\u7A7A\u767D\u884C\uFF08\u6BCF\u5904\u7EA6\u4E00\u884C\u9AD8\uFF09\uFF0C
|
|
183
369
|
\u5BFC\u81F4\u5BFC\u51FA PDF \u4E2D\u6807\u9898\u3001\u5206\u9694\u7EBF\u3001\u5F15\u7528\u5757\u7B49\u524D\u540E\u95F4\u8DDD\u6BD4\u771F\u5B9E\u9884\u89C8\u5927\u51FA\u4E00\u622A\u3002
|
|
@@ -361,194 +547,9 @@ body > div > img[width="1"][height="1"] {
|
|
|
361
547
|
color: #2563eb;
|
|
362
548
|
text-decoration: underline;
|
|
363
549
|
}
|
|
364
|
-
`,Rd=e=>{let t=document.createElement("div");t.className="EasyMDEContainer",t.setAttribute("data-md-export-root","true"),Object.entries(Os).forEach(([a,s])=>{t.style.setProperty(a,s)}),Object.assign(t.style,{position:"fixed",top:"0",left:"-100000px",width:`${mo}px`,background:"#ffffff",pointerEvents:"none"});let r=document.createElement("style");r.setAttribute("data-md-export","true"),r.textContent=Dd,t.appendChild(r);let o=document.createElement("div");return o.className="editor-preview editor-preview-full",Object.assign(o.style,{display:"block",position:"static",width:`${mo}px`,height:"auto",minHeight:"auto",margin:"0",padding:"0",overflow:"visible",zIndex:"auto",background:"#ffffff",color:"#1f2937",fontSize:"16px",lineHeight:"1.6",fontFamily:'-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif'}),o.innerHTML=e,t.appendChild(o),document.body.appendChild(t),o},Ad=(e,t)=>{let r="display:inline-block;width:1.6em;margin-left:-2em;padding-right:0.4em;text-align:right;white-space:nowrap;",o=(a,s)=>{let i=Number(a.getAttribute?.("start")??"1"),c=Number.isFinite(i)&&i>=1?Math.floor(i):1;a.querySelectorAll(":scope > li").forEach(n=>{if(n.querySelector(":scope > [data-md-list-marker], :scope > p > [data-md-list-marker]")){c+=1;return}let l=t.createElement("span");l.setAttribute("data-md-list-marker","true"),l.style.cssText=r,l.textContent=s(c);let d=n.firstElementChild,p=d&&d.tagName==="P"?d:n;p.insertBefore(l,p.firstChild),c+=1})};e.querySelectorAll("ol").forEach(a=>o(a,s=>`${s}.`)),e.querySelectorAll("ul").forEach(a=>o(a,()=>"\u2022"))},Nd=e=>`${e.replace(/\.(md|markdown)$/i,"").trim()||"document"}.pdf`,$s=async e=>{let{content:t,fileName:r,editor:o,onProgress:a}=e;if(!t||!t.trim())throw new Error("\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u5BFC\u51FA PDF");let s=Md(t,o),i=Rd(s);try{document.fonts?.ready&&await document.fonts.ready.catch(()=>{}),await Id(i),await new Promise(h=>requestAnimationFrame(()=>requestAnimationFrame(()=>h())));let c=Array.from(i.children),n=po(uo(i,c),Fd);if(n.length===0)throw new Error("\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u5BFC\u51FA PDF");let[{default:l},{jsPDF:d}]=await Promise.all([import("html2canvas"),import("jspdf")]),p=new d({orientation:"portrait",unit:"mm",format:"a4",compress:!0}),w={scale:qo,x:0,width:mo,backgroundColor:"#ffffff",useCORS:!0,logging:!1,scrollX:window.scrollX,scrollY:window.scrollY,windowWidth:document.documentElement.clientWidth,windowHeight:document.documentElement.clientHeight,onclone:h=>{let _=h.querySelector(".EasyMDEContainer[data-md-export-root]");if(_){Object.entries(Os).forEach(([x,S])=>{_.style.setProperty(x,S)});let b=_.querySelector(".editor-preview");b&&Ad(b,h)}}};for(let h=0;h<n.length;h++){let _=n[h],b=await l(i,{...w,y:_.y,height:_.height}),x=b.toDataURL("image/png"),S=b.width/qo/96*25.4,I=b.height/qo/96*25.4;p.addImage(x,"PNG",fo,fo,S,I),a?.(h+1,n.length),h<n.length-1&&p.addPage()}p.save(Nd(r))}finally{i.parentElement?.remove()}}});var Ws={};Qt(Ws,{MarkdownEditor:()=>Qo,default:()=>jd});import{useState as dr,useRef as Zn,useEffect as ur,useCallback as pr,useMemo as Hs}from"react";import Us from"react-simplemde-editor";import"easymde/dist/easymde.min.css";import{Button as ho,Modal as Ld,Space as js,message as Gt,Popconfirm as Bd,Tag as Yo}from"antd";import{SaveOutlined as Vs,FileMarkdownFilled as Od,UploadOutlined as $d,CloseOutlined as Jo,CloudOutlined as Zs,CloudServerOutlined as zd}from"@ant-design/icons";import{CacheUserInfo as Hd}from"@spacecorexdev/core/utils";import{jsx as We,jsxs as Rn}from"react/jsx-runtime";function Ud(e){let t=e.codemirror,r=t.getWrapperElement(),o=r.nextSibling,a=e.toolbarElements&&e.toolbarElements["side-by-side"],s=!1,i=r.parentNode;o.classList.contains("editor-preview-active-side")?(e.options.sideBySideFullscreen===!1&&i.classList.remove("sided--no-fullscreen"),o.classList.remove("editor-preview-active-side"),a&&a.classList.remove("active"),r.classList.remove("CodeMirror-sided")):(setTimeout(function(){o.classList.add("editor-preview-active-side")},1),a&&a.classList.add("active"),r.classList.add("CodeMirror-sided"),s=!0);let c=r.lastChild;if(c.classList.contains("editor-preview-active")){c.classList.remove("editor-preview-active");let l=e.toolbarElements.preview,d=e.toolbar_div;l.classList.remove("active"),d.classList.remove("disabled-for-preview")}let n=function(){let l=e.options.previewRender(e.value(),o);l!=null&&(o.innerHTML=l)};if(t.sideBySideRenderingFunction||(t.sideBySideRenderingFunction=n),s){let l=e.options.previewRender(e.value(),o);l!=null&&(o.innerHTML=l),t.on("update",t.sideBySideRenderingFunction)}else t.off("update",t.sideBySideRenderingFunction);t.refresh()}function go(e){let t=e.codemirror,r=t.getWrapperElement(),o=e.toolbar_div,a=e.options.toolbar?e.toolbarElements.preview:!1,s=r.lastChild,i=t.getWrapperElement().nextSibling;if(i&&i.classList.contains("editor-preview-active-side")&&Ud(e),!s||!s.classList.contains("editor-preview-full")){if(s=document.createElement("div"),s.className="editor-preview-full",e.options.previewClass)if(Array.isArray(e.options.previewClass))for(let n=0;n<e.options.previewClass.length;n++)s.classList.add(e.options.previewClass[n]);else typeof e.options.previewClass=="string"&&s.classList.add(e.options.previewClass);r.appendChild(s)}if(s.classList.contains("editor-preview-active"))return!0;setTimeout(function(){s.classList.add("editor-preview-active")},1),a&&(a.classList.add("active"),o.classList.add("disabled-for-preview"));let c=e.options.previewRender(e.value(),s);return c!==null?(s.innerHTML=c,!0):!1}var Qo,jd,ea=Xe(()=>{"use strict";Ns();Vn();zs();lr();fn();Qo=({hiddenClose:e=!1,value:t="",visible:r,isCreate:o,onClose:a,fileName:s="document.md",onUpload:i,onSaveLocal:c,onChange:n,placeholder:l="\u8BF7\u8F93\u5165Markdown\u5185\u5BB9...",readOnly:d=!1,allowFullscreen:p=!0,defaultPreviewMode:w=!0,showExportPdf:h=!0,noLocalCache:_=!1,uploadPercent:b,isOffline:x,isLocalOnly:S,hasUnsyncedChanges:I,onSaveLocalMarkdown:N})=>{let[W,H]=dr(t),[M,ee]=dr(null),[y,R]=dr(0),[G,P]=dr(!1),[L,j]=dr(!o),[O,z]=dr(!1),q=Zn(null),v=Zn(null),ye=Zn(!1),ne=Zn(t);ne.current=W;let A=Zn(t),re=Zn(I),_e=Zn(N);re.current=I,_e.current=N,ur(()=>{r&&!_&&(async()=>{try{let pe=Hd.currentLocalUser();pe?.id?ee(pe.id):ee(null)}catch(pe){console.error("\u83B7\u53D6\u7528\u6237\u4FE1\u606F\u5931\u8D25:",pe),ee(null)}})()},[r,_]),ur(()=>{if(_){H(t);return}r&&M?t?(H(t),R(be=>be+1),P(!1)):o&&s&&(H(t),P(!1)):r&&s&&!M&&(H(t),P(!1))},[r,s,M,t,o,_,d]),ur(()=>{A.current=t},[t]),ur(()=>{w&&q.current&&setTimeout(()=>{go(q.current)||setTimeout(()=>{go(q.current)},1e3)},100)},[w,y]);let le=pr(be=>{be!==ne.current&&(H(be),j(!1),n?.(be),!(!s||!M)&&(!ye.current&&!re.current&&_e.current&&(ye.current=!0,_e.current(be,s).catch(pe=>{console.warn("\u7F16\u8F91\u65F6\u7ACB\u5373\u6807\u8BB0\u672A\u540C\u6B65\u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u7F16\u8F91\uFF0C\u7B49\u5F85\u81EA\u52A8/\u624B\u52A8\u4FDD\u5B58\u5373\u53EF\uFF09:",pe)})),v.current&&clearTimeout(v.current),P(!0),v.current=setTimeout(async()=>{try{if(await $t(M,s,"md",be),P(!1),_e.current)try{await _e.current(be,s,!1)}catch(pe){console.warn("\u81EA\u52A8\u4FDD\u5B58\u65F6\u540C\u6B65 localFiles store \u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u672C\u5730\u4FDD\u5B58\uFF09:",pe)}}catch(pe){console.error("\u81EA\u52A8\u4FDD\u5B58\u5230 IndexedDB \u5931\u8D25:",pe)}},2e4)))},[s,M]),$e=Hs(()=>({autoDownloadFontAwesome:!0,autofocus:!d,spellChecker:!1,placeholder:l,toolbar:d?["guide",...p?["side-by-side","fullscreen"]:[]]:["bold","italic","strikethrough","|","heading-1","heading-2","heading-3","|","code","quote","table","|","unordered-list","ordered-list","|","link","image","|","preview","guide",...p?["side-by-side","fullscreen"]:[]]}),[p,l,d]),Y=Hs(()=>({spellChecker:!1,placeholder:l,toolbar:d?!1:["bold","italic","strikethrough","|","heading-1","heading-2","heading-3","|","code","quote","|","unordered-list","ordered-list","|","link","image","|","preview",...p?["side-by-side","fullscreen"]:[]]}),[p,l,d]),Z=pr(async()=>{let be=q.current.value();if(_){if(c?.(be),_e.current)try{await _e.current(be,s)}catch(pe){console.warn("\u540C\u6B65\u672C\u5730\u6587\u4EF6\u5185\u5BB9\u5230 localFiles store \u5931\u8D25:",pe)}return}try{if(!M){Gt.error("\u65E0\u6CD5\u83B7\u53D6\u7528\u6237\u4FE1\u606F");return}if(await $t(M,s,"md",be),P(!1),_e.current)try{await _e.current(be,s)}catch(pe){console.warn("\u540C\u6B65\u672C\u5730\u6587\u4EF6\u5185\u5BB9\u5230 localFiles store \u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u672C\u5730\u4FDD\u5B58\uFF09:",pe)}Gt.success("\u5DF2\u4FDD\u5B58\u5230\u672C\u5730\u7F13\u5B58")}catch(pe){console.error("\u4FDD\u5B58\u5230\u672C\u5730\u7F13\u5B58\u5931\u8D25:",pe),Gt.error("\u4FDD\u5B58\u5931\u8D25")}},[s,M,_,c]),xe=pr(async()=>{if(!i){Gt.error("\u672A\u63D0\u4F9B\u4E0A\u4F20\u529F\u80FD");return}try{let be=q.current.value(),pe=A.current;await i(pe,be,s),A.current=be,M&&(await Pn(M,s,"md"),P(!1),j(!0)),ye.current=!1}catch(be){console.error("\u4E0A\u4F20\u5931\u8D25:",be),Gt.error("\u4E0A\u4F20\u5931\u8D25")}},[s,i,M]),Q=pr(async()=>{let be=q.current,pe=be?be.value():ne.current;if(!pe||!pe.trim()){Gt.warning("\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u5BFC\u51FA PDF");return}z(!0),Gt.loading({key:"md-export-pdf",content:"\u6B63\u5728\u751F\u6210 PDF...",duration:0});try{await $s({content:pe,fileName:s,editor:be,onProgress:(K,ae)=>{Gt.loading({key:"md-export-pdf",content:`\u6B63\u5728\u751F\u6210 PDF\uFF08${K}/${ae} \u9875\uFF09...`,duration:0})}}),Gt.success({key:"md-export-pdf",content:"PDF \u5DF2\u5BFC\u51FA"})}catch(K){console.error("\u5BFC\u51FA PDF \u5931\u8D25:",K),Gt.error({key:"md-export-pdf",content:K?.message||"\u5BFC\u51FA PDF \u5931\u8D25"})}finally{z(!1)}},[s]),ke=pr(()=>{let be=q.current,pe=be?be.value():ne.current;if(!pe||!pe.trim()){Gt.warning("\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u4E0B\u8F7D");return}Rt(new Blob([pe],{type:"text/markdown;charset=utf-8"}),s)},[s]),Ee=!o||W.trim()?ke:void 0;ur(()=>{if(!r)return;let be=pe=>{(pe.ctrlKey||pe.metaKey)&&pe.key==="s"&&(pe.preventDefault(),Z())};return window.addEventListener("keydown",be),()=>window.removeEventListener("keydown",be)},[r,Z]),ur(()=>(r&&(j(!o),ye.current=!1,v.current&&(clearTimeout(v.current),v.current=null)),()=>{v.current&&(clearTimeout(v.current),v.current=null)}),[r,o]);let Be=pr(be=>{q.current=be,w&&setTimeout(()=>{go(q.current)||setTimeout(()=>{go(q.current)},1e3)},100)},[w]);return _?Rn("div",{className:"h-full flex flex-col bg-white p-0 m-0 relative",children:[(h||!d&&c)&&Rn("div",{className:"flex items-center justify-end gap-2 px-0 py-2 flex-shrink-0",children:[We(Et,{onExportPdf:h?Q:void 0,onDownload:Ee,exportingPdf:O}),!d&&c&&We(ho,{type:"primary",icon:We(Vs,{}),onClick:Z,children:"\u4FDD\u5B58"})]}),We("div",{className:"flex-1 overflow-y-auto h-full",children:We(Us,{value:W,onChange:le,options:Y,getMdeInstance:Be},y)})]}):We(Ld,{open:r,onCancel:a,keyboard:!1,closeIcon:null,footer:null,width:"100%",style:{top:0,maxWidth:"100vw"},styles:{body:{height:"100dvh",padding:0}},className:"ant-modal-nopadding ant-modal-fullscreen relative",transitionName:"none",children:Rn("div",{className:"h-full flex flex-col bg-white p-0 m-0",children:[Rn("div",{className:`flex items-center justify-between px-4 py-2 pr-0 flex-shrink-0 ${x?"bg-orange-50 border-b border-orange-200":"bg-gray-50 border-b border-gray-200"}`,children:[We("span",{children:"\xA0"}),!d&&We("span",{children:"\xA0"}),Rn("div",{className:"flex items-center gap-2 flex-wrap min-w-[40%]",children:[!x&&S&&We(Yo,{icon:We(Zs,{}),color:"orange",style:{margin:0},children:"\u672C\u5730\u6587\u4EF6"}),!x&&!S&&I&&We(Yo,{icon:We(Zs,{}),color:"warning",style:{margin:0},children:"\u6709\u672A\u540C\u6B65\u4FEE\u6539"}),!x&&!S&&!I&&!i?We(Yo,{icon:We(zd,{}),color:"default",style:{margin:0},children:"\u540C\u6B65\u5B8C\u6210"}):null,We(Od,{className:"text-gray-800"}),Rn("span",{className:"text-sm font-medium",children:[G?"*":"",s]})]}),!d&&!e&&Rn(js,{wrap:!0,align:"center",direction:"horizontal",children:[We(Et,{onExportPdf:h?Q:void 0,onDownload:Ee,exportingPdf:O,buttonProps:{style:{paddingLeft:4,paddingRight:4}}}),i&&We(ho,{type:"text",style:{paddingLeft:4,paddingRight:4},title:"\u6BCF\u6B21\u4E0A\u4F20\u5C06\u4FDD\u7559\u4E00\u4E2A\u5386\u53F2\u7248\u672C\uFF0C\u6700\u591A\u4FDD\u755910\u4E2A\u7248\u672C",icon:We($d,{}),onClick:xe,disabled:b!==void 0&&b<100,children:b!==void 0&&b<100?`\u4E0A\u4F20\u4E2D ${Math.round(b*100)}%`:"\u4E0A\u4F20"}),!d&&We(ho,{type:"primary",icon:We(Vs,{}),disabled:d,onClick:Z,children:"\u4FDD\u5B58"}),!d&&(G||!L)?We(Bd,{title:"\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F",description:G?"\u4FEE\u6539\u672A\u4FDD\u5B58\uFF0C\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F":"\u4FEE\u6539\u672A\u4E0A\u4F20\uFF0C\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F",onConfirm:a,okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88",children:We(ho,{type:"text",className:"ml-3 mr-2 text-gray-600 hover:text-gray-900",icon:We(Jo,{className:"w-6 h-6"})})}):We(Jo,{onClick:a,className:"ml-3 mr-2 w-6 h-6"})]}),d&&!e&&Rn(js,{className:"ml-3 mr-2",children:[We(Et,{onExportPdf:h?Q:void 0,onDownload:Ee,exportingPdf:O}),We(Jo,{onClick:a,className:"w-6 h-6"})]}),e&&We("span",{children:"\xA0"})]}),We("div",{className:"flex-1 overflow-y-auto h-full ineditor-toolbar",children:We(Us,{value:W,onChange:le,options:$e,getMdeInstance:Be},y)})]})})},jd=Qo});var Ks=Xe(()=>{"use strict";ir();Wt(`.richdoc-editor-host{height:100%;overflow-y:auto;background:#fff}.richdoc-editor-host .bn-container{height:100%}.dark .richdoc-editor-host:not(.rdoc-export-preview),[data-theme=dark] .richdoc-editor-host:not(.rdoc-export-preview){background:rgb(var(--color-surface))}.dark .richdoc-editor-host:not(.rdoc-export-preview) .bn-editor,[data-theme=dark] .richdoc-editor-host:not(.rdoc-export-preview) .bn-editor{background-color:transparent}.richdoc-editor-host .bn-editor{height:100%;margin:auto;max-width:700px;padding-top:24px;padding-left:0;padding-right:0;caret-color:rgb(var(--color-foreground))}.richdoc-editor-host .bn-editor code{border-radius:2px;padding:1px 2px;background:rgb(var(--color-markdown-comment) / .3)}.richdoc-editor-host .bn-editor pre code{background:none}@media(max-width:768px){.richdoc-editor-host .bn-editor{padding-inline:16px}}.richdoc-editor-host.richdoc-readonly .bn-side-menu{display:none}
|
|
365
|
-
`)}
|
|
366
|
-
.rdoc-export-preview {
|
|
367
|
-
background: #ffffff;
|
|
368
|
-
height: auto !important;
|
|
369
|
-
overflow: visible !important;
|
|
370
|
-
}
|
|
371
|
-
.rdoc-export-preview .bn-editor {
|
|
372
|
-
min-height: 0 !important;
|
|
373
|
-
height: auto !important;
|
|
374
|
-
padding-block: 0 !important;
|
|
375
|
-
outline: none !important;
|
|
376
|
-
}
|
|
377
|
-
/* \u53EA\u5F71\u54CD\u884C\u5185 code\uFF0C\u4E0D\u80FD\u6CE2\u53CA\u4EE3\u7801\u5757\uFF08pre > code\uFF09\u7684\u884C\u8DDD */
|
|
378
|
-
.rdoc-export-preview .bn-editor :not(pre) > code {
|
|
379
|
-
line-height: 1 !important;
|
|
380
|
-
vertical-align: baseline !important;
|
|
381
|
-
}
|
|
382
|
-
/* \u4FEE\u590D html2canvas 1.4 \u7684\u5B57\u5F62\u6D4B\u91CF\u73AF\u5883\uFF08\u4E0E Markdown \u5BFC\u51FA\u4E00\u81F4\uFF09\uFF1A
|
|
383
|
-
\u5B83\u4F1A\u5728 body \u4E0B\u4E34\u65F6\u63D2\u5165\u4E00\u4E2A 1x1 img \u6765\u63A8\u7B97\u57FA\u7EBF\uFF0CTailwind preflight \u7684 img{display:block}
|
|
384
|
-
\u4F1A\u628A\u8FD9\u4E2A\u6D4B\u91CF\u56FE\u6324\u51FA\u6587\u5B57\u884C\u76D2\uFF0C\u5BFC\u81F4\u6240\u6709\u6587\u5B57\u88AB\u7CFB\u7EDF\u6027\u4E0B\u79FB\u3002 */
|
|
385
|
-
body > div > img[width="1"][height="1"] {
|
|
386
|
-
display: inline !important;
|
|
387
|
-
}
|
|
388
|
-
.rdoc-export-preview .bn-editor pre code {
|
|
389
|
-
background: none !important;
|
|
390
|
-
color: inherit !important;
|
|
391
|
-
}
|
|
392
|
-
.rdoc-export-preview .bn-side-menu,
|
|
393
|
-
.rdoc-export-preview .bn-drag-handle,
|
|
394
|
-
.rdoc-export-preview .bn-block-actions,
|
|
395
|
-
.rdoc-export-preview .bn-toolbar,
|
|
396
|
-
.rdoc-export-preview .bn-suggestion-menu,
|
|
397
|
-
.rdoc-export-preview .bn-file-panel,
|
|
398
|
-
.rdoc-export-preview .bn-link-toolbar,
|
|
399
|
-
.rdoc-export-preview .ProseMirror-cursor,
|
|
400
|
-
.rdoc-export-preview .ProseMirror-separator,
|
|
401
|
-
.rdoc-export-preview .bn-trailing-block {
|
|
402
|
-
display: none !important;
|
|
403
|
-
}
|
|
404
|
-
/* \u7A7A\u5757\u4E0D\u663E\u793A\u5360\u4F4D\u63D0\u793A\u6587\u5B57 */
|
|
405
|
-
.rdoc-export-preview [data-placeholder]::before {
|
|
406
|
-
content: none !important;
|
|
407
|
-
}
|
|
408
|
-
/* \u6587\u4EF6/\u56FE\u7247\u5757\uFF1A\u53BB\u6389 hover \u6001\u4E0E\u64CD\u4F5C\u6309\u94AE\u7684\u5360\u4F4D\u9AD8\u5EA6 */
|
|
409
|
-
.rdoc-export-preview .bn-file-block-content-wrapper {
|
|
410
|
-
min-height: 0 !important;
|
|
411
|
-
}
|
|
412
|
-
`,Yd=e=>{let t=e.cloneNode(!0);return t.classList.remove("ProseMirror-focused"),t.removeAttribute("contenteditable"),t.removeAttribute("spellcheck"),t.removeAttribute("translate"),t.querySelectorAll(".bn-side-menu, .bn-drag-handle, .bn-block-actions, .bn-toolbar, .bn-suggestion-menu, .bn-file-panel, .bn-link-toolbar").forEach(r=>r.remove()),t.querySelectorAll("[contenteditable]").forEach(r=>{r.removeAttribute("contenteditable"),r.removeAttribute("spellcheck")}),t.querySelectorAll("[data-placeholder]").forEach(r=>r.removeAttribute("data-placeholder")),t.querySelectorAll("[data-selected]").forEach(r=>r.removeAttribute("data-selected")),t.querySelectorAll("[data-drop-target]").forEach(r=>r.removeAttribute("data-drop-target")),t.querySelectorAll(".ProseMirror-selectednode, .bn-block-selected").forEach(r=>r.classList.remove("ProseMirror-selectednode","bn-block-selected")),t},Jd=e=>{e.querySelectorAll('.bn-block-content[data-content-type="bulletListItem"], .bn-block-content[data-content-type="numberedListItem"]').forEach(r=>{if(r.querySelector(":scope > [data-rdoc-list-marker]"))return;let o;if(r.dataset.contentType==="numberedListItem")o=`${r.getAttribute("data-index")??r.getAttribute("data-start")??"1"}.`;else{let c=window.getComputedStyle(r,"::before").content?.match(/^"((?:\\.|[^"\\])*)"$/);o=c?c[1]:"\u2022"}let a=window.getComputedStyle(r,"::before"),s=document.createElement("span");s.setAttribute("data-rdoc-list-marker","true"),s.textContent=o,s.style.cssText=["display:flex","align-items:center","justify-content:center","flex:0 0 auto",`min-width:${a.minWidth==="auto"?"24px":a.minWidth}`,`padding-right:${a.paddingRight||"4px"}`,`font-size:${a.fontSize}`,`line-height:${a.lineHeight}`,`color:${a.color}`,"white-space:pre"].join(";"),r.insertBefore(s,r.firstChild)})},Qd=e=>{e.querySelectorAll('.bn-block-content[data-content-type="checkListItem"] input[type="checkbox"]').forEach(t=>{let r=t.closest(".bn-block-content[data-checked]"),o=r?r.getAttribute("data-checked")==="true":t.checked,a=document.createElement("span");a.setAttribute("data-rdoc-checkbox",o?"checked":"unchecked"),a.textContent=o?"\u2713":"",a.style.cssText=["display:inline-flex","align-items:center","justify-content:center","flex:0 0 auto","box-sizing:border-box","width:12px","height:12px","margin:6px 8px 6px 4px","border:1px solid #9ca3af","border-radius:2px","font-size:10px","line-height:1","color:#1f2937"].join(";"),t.replaceWith(a)})},eu=e=>{let t=Array.from(e.querySelectorAll("img"));return t.length===0?Promise.resolve():Promise.all(t.map(r=>new Promise(o=>{if(r.complete){o();return}let a=!1,s=()=>{a||(a=!0,window.clearTimeout(i),r.removeEventListener("load",s),r.removeEventListener("error",s),o())},i=window.setTimeout(s,Gd);r.addEventListener("load",s),r.addEventListener("error",s)}))).then(()=>{})},tu=e=>{let t=document.createElement("div");t.setAttribute(Xd,"true"),t.className="richdoc-editor-host rdoc-export-preview",Object.assign(t.style,{position:"fixed",top:"0",left:"-100000px",width:`${wo}px`,height:"auto",background:"#ffffff",pointerEvents:"none"});let r=document.createElement("style");r.setAttribute("data-rdoc-export","true"),r.textContent=qd,t.appendChild(r);let o=document.createElement("div");return o.className="bn-root bn-container",o.setAttribute("data-color-scheme","light"),Object.assign(o.style,{width:`${wo}px`,height:"auto",background:"#ffffff",overflow:"visible"}),o.style.setProperty("--color-markdown-comment","133 133 133"),o.appendChild(Yd(e)),t.appendChild(o),document.body.appendChild(t),o},nu=e=>`${e.replace(/\.rdoc$/i,"").trim()||"document"}.pdf`,Xs=async e=>{let{editorElement:t,fileName:r,onProgress:o}=e;if(!t||t.querySelectorAll(".bn-block-outer").length===0)throw new Error("\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u5BFC\u51FA PDF");let a=tu(t);try{Jd(a),Qd(a),document.fonts?.ready&&await document.fonts.ready.catch(()=>{}),await eu(a),await new Promise(p=>requestAnimationFrame(()=>requestAnimationFrame(()=>p())));let s=Array.from(a.querySelectorAll(".bn-block-outer")).filter(p=>!p.parentElement?.closest(".bn-block-outer")),i=po(uo(a,s),Kd);if(i.length===0)throw new Error("\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u5BFC\u51FA PDF");let[{default:c},{jsPDF:n}]=await Promise.all([import("html2canvas"),import("jspdf")]),l=new n({orientation:"portrait",unit:"mm",format:"a4",compress:!0}),d={scale:ta,x:0,width:wo,backgroundColor:"#ffffff",useCORS:!0,logging:!1,scrollX:window.scrollX,scrollY:window.scrollY,windowWidth:document.documentElement.clientWidth,windowHeight:document.documentElement.clientHeight};for(let p=0;p<i.length;p++){let w=i[p],h=await c(a,{...d,y:w.y,height:w.height}),_=h.toDataURL("image/png"),b=h.width/ta/96*25.4,x=h.height/ta/96*25.4;l.addImage(_,"PNG",yo,yo,b,x),o?.(p+1,i.length),p<i.length-1&&l.addPage()}l.save(nu(r))}finally{a.parentElement?.remove()}}});var ru,Ys,ou,au,Js,Qs=Xe(()=>{"use strict";ru="image",Ys=(e,t)=>e.filter(r=>r.type===ru?(t.count+=1,!1):!0).map(r=>r.children&&r.children.length>0?{...r,children:Ys(r.children,t)}:r),ou=e=>`${e.replace(/\.rdoc$/i,"").trim()||"document"}.md`,au=(e,t)=>{let r=new Blob([e],{type:"text/markdown;charset=utf-8"}),o=URL.createObjectURL(r),a=document.createElement("a");a.href=o,a.download=ou(t),a.style.display="none",document.body.appendChild(a),a.click(),a.remove(),window.setTimeout(()=>URL.revokeObjectURL(o),0)},Js=(e,t,r)=>{let o={count:0},a=e.blocksToMarkdownLossy(Ys(t,o));if(!a.trim())throw new Error("\u6CA1\u6709\u53EF\u5BFC\u51FA\u7684\u5185\u5BB9\uFF08\u56FE\u7247\u4E0D\u53C2\u4E0E\u5BFC\u51FA\uFF09");return au(a,r),{markdown:a,skippedImages:o.count}}});var ii={};Qt(ii,{RichDocEditor:()=>si,RichDocInlineEditor:()=>Su,default:()=>Eu});import{useState as mn,useRef as hn,useEffect as gn,useCallback as rn,useMemo as Fr}from"react";import{Button as na,Modal as ei,Space as ti,message as Je,Popconfirm as su,Tag as ra}from"antd";import{SaveOutlined as iu,UploadOutlined as lu,CloseOutlined as oa,CloudOutlined as ni,CloudServerOutlined as cu,FileTextFilled as du,FileMarkdownOutlined as uu,ImportOutlined as pu}from"@ant-design/icons";import{useCreateBlockNote as fu}from"@blocknote/react";import{BlockNoteView as mu}from"@blocknote/mantine";import{zh as hu}from"@blocknote/core/locales";import{BlockNoteSchema as gu,defaultBlockSpecs as yu}from"@blocknote/core";import"@blocknote/core/fonts/inter.css";import"@blocknote/mantine/style.css";import{CacheUserInfo as wu}from"@spacecorexdev/core/utils";import{jsx as Ze,jsxs as fr}from"react/jsx-runtime";function ri(e){if(!(!e||!e.trim()))try{let t=JSON.parse(e);if(!Array.isArray(t))return;let r=oi(t);return r.length>0?r:void 0}catch{return}}function oi(e){return e.filter(t=>t.type!=="file").map(t=>t.children&&t.children.length>0?{...t,children:oi(t.children)}:t)}function xu(e,t){let r=t?_u[t]:void 0;return r&&e.size>r.limit?(Je.error(r.message),Promise.resolve("")):new Promise((o,a)=>{let s=new FileReader;s.onload=()=>o(String(s.result)),s.onerror=()=>a(s.error??new Error("\u8BFB\u53D6\u6587\u4EF6\u5931\u8D25")),s.readAsDataURL(e)})}var bu,vu,_u,bo,Su,ai,si,Eu,li=Xe(()=>{"use strict";Ks();Vn();qs();Qs();lr();fn();bu=Object.fromEntries(Object.entries(yu).filter(([e])=>e!=="file")),vu=gu.create({blockSpecs:bu});_u={image:{limit:600*1024,message:"\u56FE\u7247\u5927\u5C0F\u4E0D\u80FD\u8D85\u8FC7 600KB\uFF0C\u8BF7\u538B\u7F29\u540E\u518D\u63D2\u5165"},video:{limit:2*1024*1024,message:"\u89C6\u9891\u5927\u5C0F\u4E0D\u80FD\u8D85\u8FC7 2MB\uFF0C\u8BF7\u538B\u7F29\u540E\u518D\u63D2\u5165"},audio:{limit:1*1024*1024,message:"\u97F3\u9891\u5927\u5C0F\u4E0D\u80FD\u8D85\u8FC7 1MB\uFF0C\u8BF7\u538B\u7F29\u540E\u518D\u63D2\u5165"}};bo=()=>{if(typeof document>"u")return"light";let e=document.documentElement;return e.dataset.theme==="dark"||e.classList.contains("dark")?"dark":"light"},Su=({value:e="",readOnly:t=!1,onChange:r,className:o=""})=>{let a=hn(null),[s,i]=mn(bo);gn(()=>{let d=document.documentElement,p=new MutationObserver(()=>i(bo()));return p.observe(d,{attributes:!0,attributeFilter:["class","data-theme"]}),()=>p.disconnect()},[]);let c=Fr(()=>ri(e),[]),n=Fr(()=>c?void 0:e,[c,e]),l=rn(d=>r?.(JSON.stringify(d)),[r]);return Ze("div",{className:`richdoc-editor-host ${t?"richdoc-readonly":""} ${o}`,children:Ze(ai,{initialContent:c,markdownFallback:n,readOnly:t,colorScheme:s,onDocChange:l,editorInstanceRef:a})})},ai=({initialContent:e,markdownFallback:t,readOnly:r,colorScheme:o,onDocChange:a,editorInstanceRef:s})=>{let i=fu({schema:vu,initialContent:e,dictionary:hu,uploadFile:(c,n)=>{let l=n?s.current?.getBlock(n)?.type:void 0;return xu(c,l)}});return gn(()=>(s.current=i,()=>{s.current=null}),[i,s]),gn(()=>{if(e||!t||!t.trim())return;let c=!1;return(async()=>{try{let n=await i.tryParseMarkdownToBlocks(t);!c&&n.length>0&&i.replaceBlocks(i.document,n)}catch(n){console.warn("[RichDocEditor] Markdown \u5BFC\u5165\u5931\u8D25\uFF0C\u6309\u7A7A\u767D\u6587\u6863\u5904\u7406:",n)}})(),()=>{c=!0}},[]),Ze(mu,{editor:i,editable:!r,theme:o,onChange:()=>a(i.document)})},si=({hiddenClose:e=!1,value:t="",visible:r,isCreate:o,onClose:a,onSaveLocal:s,fileName:i="document.rdoc",onUpload:c,onChange:n,readOnly:l=!1,uploadPercent:d,isOffline:p,isLocalOnly:w,hasUnsyncedChanges:h,onSaveLocalMarkdown:_})=>{let[b,x]=mn(t),[S,I]=mn(null),[N,W]=mn(0),[H,M]=mn(!1),[ee,y]=mn(!o),[R,G]=mn(!1),[P,L]=mn(bo),j=hn(null),O=hn(null),z=hn(!1),q=hn(t);q.current=b;let v=hn(t),ye=hn(h),ne=hn(_);ye.current=h,ne.current=_,gn(()=>{let te=document.documentElement,fe=new MutationObserver(()=>L(bo()));return fe.observe(te,{attributes:!0,attributeFilter:["class","data-theme"]}),()=>fe.disconnect()},[]),gn(()=>{r&&(async()=>{try{let te=wu.currentLocalUser();I(te?.id||null)}catch(te){console.error("\u83B7\u53D6\u7528\u6237\u4FE1\u606F\u5931\u8D25:",te),I(null)}})()},[r]),gn(()=>{r&&S?t?(x(t),W(te=>te+1),M(!1)):o&&i&&(x(t),M(!1)):r&&i&&!S&&(x(t),M(!1))},[r,i,S,t,o,l]),gn(()=>{v.current=t},[t]);let A=rn(te=>{let fe=JSON.stringify(te);fe!==q.current&&(x(fe),y(!1),n?.(fe),!(!i||!S)&&(!z.current&&!ye.current&&ne.current&&(z.current=!0,ne.current(fe,i).catch(Ce=>{console.warn("\u7F16\u8F91\u65F6\u7ACB\u5373\u6807\u8BB0\u672A\u540C\u6B65\u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u7F16\u8F91\uFF0C\u7B49\u5F85\u81EA\u52A8/\u624B\u52A8\u4FDD\u5B58\u5373\u53EF\uFF09:",Ce)})),O.current&&clearTimeout(O.current),M(!0),O.current=setTimeout(async()=>{try{if(await $t(S,i,"rdoc",fe),M(!1),ne.current)try{await ne.current(fe,i,!1)}catch(Ce){console.warn("\u81EA\u52A8\u4FDD\u5B58\u65F6\u540C\u6B65 localFiles store \u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u672C\u5730\u4FDD\u5B58\uFF09:",Ce)}}catch(Ce){console.error("\u81EA\u52A8\u4FDD\u5B58\u5230 IndexedDB \u5931\u8D25:",Ce)}},2e4)))},[i,S,n]),re=rn(async()=>{let te=q.current;if(s&&!S){s(te);return}try{if(!S){Je.error("\u65E0\u6CD5\u83B7\u53D6\u7528\u6237\u4FE1\u606F");return}if(await $t(S,i,"rdoc",te),M(!1),ne.current)try{await ne.current(te,i)}catch(fe){console.warn("\u540C\u6B65\u672C\u5730\u6587\u4EF6\u5185\u5BB9\u5230 localFiles store \u5931\u8D25:",fe)}Je.success("\u5DF2\u4FDD\u5B58\u5230\u672C\u5730\u7F13\u5B58")}catch(fe){console.error("\u4FDD\u5B58\u5230\u672C\u5730\u7F13\u5B58\u5931\u8D25:",fe),Je.error("\u4FDD\u5B58\u5931\u8D25")}},[i,S,s]),_e=rn(async()=>{if(!c){Je.error("\u672A\u63D0\u4F9B\u4E0A\u4F20\u529F\u80FD");return}try{let te=q.current,fe=v.current;await c(fe,te,i),v.current=te,S&&(await Pn(S,i,"rdoc"),M(!1),y(!0)),z.current=!1}catch(te){console.error("\u4E0A\u4F20\u5931\u8D25:",te),Je.error("\u4E0A\u4F20\u5931\u8D25")}},[i,c,S]),le=rn(async()=>{let te=j.current;if(!te){Je.warning("\u7F16\u8F91\u5668\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5");return}let fe=te.domElement;if(!fe||fe.querySelectorAll(".bn-block-outer").length===0){Je.warning("\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u5BFC\u51FA PDF");return}G(!0),Je.loading({key:"rdoc-export-pdf",content:"\u6B63\u5728\u751F\u6210 PDF...",duration:0});try{await Xs({editorElement:fe,fileName:i,onProgress:(Ce,rt)=>Je.loading({key:"rdoc-export-pdf",content:`\u6B63\u5728\u751F\u6210 PDF\uFF08${Ce}/${rt} \u9875\uFF09...`,duration:0})}),Je.success({key:"rdoc-export-pdf",content:"PDF \u5DF2\u5BFC\u51FA"})}catch(Ce){console.error("\u5BFC\u51FA PDF \u5931\u8D25:",Ce),Je.error({key:"rdoc-export-pdf",content:Ce?.message||"\u5BFC\u51FA PDF \u5931\u8D25"})}finally{G(!1)}},[i]),$e=rn(()=>{let te=j.current;if(!te){Je.warning("\u7F16\u8F91\u5668\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5");return}if(te.document.length===0){Je.warning("\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u5BFC\u51FA Markdown");return}try{let{skippedImages:fe}=Js(te,te.document,i);Je.success(fe>0?`Markdown \u5DF2\u5BFC\u51FA\uFF08\u5DF2\u8DF3\u8FC7 ${fe} \u5F20\u56FE\u7247\uFF09`:"Markdown \u5DF2\u5BFC\u51FA")}catch(fe){console.error("\u5BFC\u51FA Markdown \u5931\u8D25:",fe),Je.error(fe?.message||"\u5BFC\u51FA Markdown \u5931\u8D25")}},[i]),Y=rn(()=>{let te=q.current;if(!te||!te.trim()){Je.warning("\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u4E0B\u8F7D");return}Rt(new Blob([te],{type:"application/json;charset=utf-8"}),i)},[i]),Z=!o||b.trim()?Y:void 0,xe=hn(null),[Q,ke]=mn(!1),Ee=rn(async te=>{let fe=j.current;if(!fe){Je.warning("\u7F16\u8F91\u5668\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5");return}ke(!0),Je.loading({key:"rdoc-import-md",content:"\u6B63\u5728\u89E3\u6790 Markdown\u2026",duration:0});try{let Ce=await te.text();if(!Ce.trim()){Je.warning("\u6587\u4EF6\u5185\u5BB9\u4E3A\u7A7A");return}let rt=await fe.tryParseMarkdownToBlocks(Ce);if(!rt||rt.length===0){Je.warning("\u672A\u80FD\u4ECE\u6587\u4EF6\u4E2D\u89E3\u6790\u51FA\u5185\u5BB9");return}fe.replaceBlocks(fe.document,rt),Je.success(`\u5DF2\u5BFC\u5165 Markdown\uFF0C\u5171 ${rt.length} \u4E2A\u5185\u5BB9\u5757`)}catch(Ce){console.error("[RichDocEditor] \u5BFC\u5165 Markdown \u5931\u8D25:",Ce),Je.error(`\u5BFC\u5165 Markdown \u5931\u8D25\uFF1A${Ce?.message||"\u672A\u77E5\u9519\u8BEF"}`)}finally{Je.destroy("rdoc-import-md"),ke(!1)}},[]),Be=rn(()=>{if(!j.current){Je.warning("\u7F16\u8F91\u5668\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5");return}xe.current?.click()},[]),be=rn(te=>{let fe=te.target.files?.[0];if(te.target.value="",!fe)return;let Ce=j.current;if(!(!!Ce&&(Ce.document.length>1||Ce.document.length===1&&Array.isArray(Ce.document[0].content)&&Ce.document[0].content.length>0))){Ee(fe);return}ei.confirm({title:"\u5BFC\u5165\u4F1A\u8986\u76D6\u5F53\u524D\u5185\u5BB9",content:"\u5F53\u524D\u6587\u6863\u5DF2\u6709\u5185\u5BB9\uFF0C\u5BFC\u5165 Markdown \u540E\u5C06\u6574\u4F53\u66FF\u6362\uFF0C\u4E14\u65E0\u6CD5\u64A4\u9500\u3002\u662F\u5426\u7EE7\u7EED\uFF1F",okText:"\u7EE7\u7EED\u5BFC\u5165",cancelText:"\u53D6\u6D88",okButtonProps:{danger:!0},onOk:()=>Ee(fe)})},[Ee]),pe=Fr(()=>[{key:"markdown",icon:Ze(uu,{}),label:"\u5BFC\u51FAMarkdown",onClick:$e},...l?[]:[{key:"import-markdown",icon:Ze(pu,{}),label:"\u5BFC\u5165Markdown",disabled:Q,onClick:Be}]],[$e,Be,Q,l]);gn(()=>{if(!r)return;let te=fe=>{(fe.ctrlKey||fe.metaKey)&&fe.key==="s"&&(fe.preventDefault(),re())};return window.addEventListener("keydown",te),()=>window.removeEventListener("keydown",te)},[r,re]),gn(()=>(r&&(y(!o),z.current=!1,O.current&&(clearTimeout(O.current),O.current=null)),()=>{O.current&&(clearTimeout(O.current),O.current=null)}),[r,o]);let K=Fr(()=>ri(b),[N]),ae=Fr(()=>K?void 0:b,[K,b]);return Ze(ei,{open:r,onCancel:a,keyboard:!1,closeIcon:null,footer:null,width:"100%",style:{top:0,maxWidth:"100vw"},styles:{body:{height:"100dvh",padding:0}},className:"ant-modal-nopadding ant-modal-fullscreen relative",transitionName:"none",children:fr("div",{className:"h-full flex flex-col bg-white p-0 m-0",children:[fr("div",{className:`flex items-center justify-between flex-wrap px-4 py-2 pr-0 flex-shrink-0 ${p?"bg-orange-50 border-b border-orange-200":"bg-gray-50 border-b border-gray-200"}`,children:[Ze("span",{children:"\xA0"}),!l&&Ze("span",{children:"\xA0"}),fr("div",{className:"flex items-center gap-2 flex-wrap min-w-[40%]",children:[!p&&w&&Ze(ra,{icon:Ze(ni,{}),color:"orange",style:{margin:0},children:"\u672C\u5730\u6587\u4EF6"}),!p&&!w&&h&&Ze(ra,{icon:Ze(ni,{}),color:"warning",style:{margin:0},children:"\u6709\u672A\u540C\u6B65\u4FEE\u6539"}),!p&&!w&&!h&&!c?Ze(ra,{icon:Ze(cu,{}),color:"default",style:{margin:0},children:"\u540C\u6B65\u5B8C\u6210"}):null,Ze(du,{className:"text-yellow-600"}),fr("span",{className:"text-sm font-medium",children:[H?"*":"",i]})]}),!l&&!e&&fr(ti,{wrap:!0,align:"center",direction:"horizontal",children:[Ze(Et,{onExportPdf:le,onDownload:Z,exportingPdf:R,extraItems:pe,buttonProps:{style:{paddingLeft:2,paddingRight:2}}}),c&&Ze(na,{type:"text",style:{paddingLeft:4,paddingRight:4},title:"\u6BCF\u6B21\u4E0A\u4F20\u5C06\u4FDD\u7559\u4E00\u4E2A\u5386\u53F2\u7248\u672C\uFF0C\u6700\u591A\u4FDD\u755910\u4E2A\u7248\u672C",icon:Ze(lu,{}),onClick:_e,disabled:d!==void 0&&d<100,children:d!==void 0&&d<100?`\u4E0A\u4F20\u4E2D ${Math.round(d*100)}%`:"\u4E0A\u4F20"}),Ze(na,{type:"primary",icon:Ze(iu,{}),onClick:re,children:"\u4FDD\u5B58"}),H||!ee?Ze(su,{title:"\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F",description:H?"\u4FEE\u6539\u672A\u4FDD\u5B58\uFF0C\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F":"\u4FEE\u6539\u672A\u4E0A\u4F20\uFF0C\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F",onConfirm:a,okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88",children:Ze(na,{type:"text",className:"ml-3 mr-2 text-gray-600 hover:text-gray-900",icon:Ze(oa,{className:"w-6 h-6"})})}):Ze(oa,{onClick:a,className:"ml-3 mr-2 w-6 h-6"})]}),l&&!e&&fr(ti,{className:"ml-3 mr-2",children:[Ze(Et,{onExportPdf:le,onDownload:Z,exportingPdf:R,extraItems:pe,buttonProps:{style:{}}}),Ze(oa,{onClick:a,className:"w-6 h-6"})]}),e&&Ze("span",{children:"\xA0"}),Ze("input",{ref:xe,type:"file",accept:".md,.markdown,.txt,text/markdown,text/plain",style:{display:"none"},onChange:be})]}),Ze("div",{className:`flex-1 richdoc-editor-host ${l?"richdoc-readonly":""}`,children:Ze(ai,{initialContent:K,markdownFallback:ae,readOnly:l,colorScheme:P,onDocChange:A,editorInstanceRef:j},N)})]})})},Eu=si});var pi={};Qt(pi,{ExcelEditor:()=>ui,default:()=>Ou});import{useEffect as Wn,useRef as yn,useCallback as mr,useState as hr}from"react";import{Modal as Cu,Button as aa,Space as Fu,message as wn,Popconfirm as ku,Tag as sa}from"antd";import{SaveOutlined as Tu,FileExcelFilled as Pu,UploadOutlined as Mu,CloseOutlined as ia,CloudOutlined as ci,CloudServerOutlined as Iu}from"@ant-design/icons";import{UniverSheetsCorePreset as Du}from"@univerjs/preset-sheets-core";import Ru from"@univerjs/preset-sheets-core/locales/zh-CN";import{createUniver as Au,LocaleType as di,mergeLocales as Nu}from"@univerjs/presets";import*as bn from"xlsx";import"@univerjs/preset-sheets-core/lib/index.css";import{CacheUserInfo as Lu}from"@spacecorexdev/core/utils";import{jsx as ot,jsxs as kr}from"react/jsx-runtime";var Bu,ui,Ou,fi=Xe(()=>{"use strict";Vn();Bu=new Set(["sheet.mutation.set-range-values","sheet.mutation.move-range","sheet.mutation.remove-worksheet-merge","sheet.mutation.add-worksheet-merge","sheet.mutation.reorder-range","sheet.mutation.set-worksheet-default-style","sheet.mutation.set-row-data","sheet.mutation.set-col-data","sheet.mutation.set-worksheet-range-theme-style","sheet.mutation.remove-worksheet-range-theme-style"]),ui=({visible:e,hiddenClose:t=!1,isCreate:r,onClose:o,fileName:a,onUpload:s,initialBlob:i,readOnly:c,uploadPercent:n,uploadSuccess:l,isOffline:d,isLocalOnly:p,hasUnsyncedChanges:w,onSaveLocalBlob:h})=>{let _=yn(null),b=yn(null),x=yn(null),S=yn(null),[I,N]=hr(null),[W,H]=hr(null),[M,ee]=hr(0),[y,R]=hr(!1),[G,P]=hr(!r),[L,j]=hr(!1),O=yn(!1),z=yn(!1),q=yn(i),v=yn(w),ye=yn(h);v.current=w,ye.current=h,Wn(()=>{e&&(async()=>{try{let Z=Lu.currentLocalUser();Z?.id?N(Z.id):N(null)}catch(Z){console.error("\u83B7\u53D6\u7528\u6237\u4FE1\u606F\u5931\u8D25:",Z),N(null)}})()},[e]),Wn(()=>{(async()=>{if(e&&I)if(i)try{j(!0);let Z=await i.arrayBuffer(),xe=bn.read(Z),Q={id:`workbook-${Date.now()}`,name:a,sheets:{},sheetOrder:[],locale:"zhCN",appVersion:"0.10.2"};xe.SheetNames.forEach(ke=>{let Ee=xe.Sheets[ke],Be=`sheet-${Date.now()}-${ke}`,be=bn.utils.sheet_to_json(Ee,{header:1,defval:"",raw:!1});Q.sheets[Be]={id:Be,name:ke,cellData:{},rowData:{},columnData:{},rowCount:Math.max(be.length,100),columnCount:Math.max(...be.map(pe=>pe?.length||0),20),defaultColumnWidth:100,defaultRowHeight:25,showGridlines:1,rowHeader:{width:46},columnHeader:{height:20}},be.forEach((pe,K)=>{Q.sheets[Be].cellData[K]||(Q.sheets[Be].cellData[K]={}),pe.forEach((ae,te)=>{ae!=null&&ae!==""&&(Q.sheets[Be].cellData[K][te]={v:ae})})}),Q.sheetOrder.push(Be)}),H(Q),ee(ke=>ke+1),R(!1)}catch(Z){console.error("\u52A0\u8F7D\u6587\u4EF6\u5931\u8D25:",Z),wn.error("\u52A0\u8F7D\u6587\u4EF6\u5931\u8D25"),H(null),R(!1)}finally{j(!1)}else if(r&&a&&I)try{H(null),R(!1)}catch(Z){console.error("\u521B\u5EFA\u65B0\u5DE5\u4F5C\u7C3F\u5931\u8D25:",Z),H(null),R(!1)}else H(null),R(!1)})()},[e,a,I,i,r,c]);let ne=mr(()=>{if(!x.current)return null;let Y=x.current.getActiveWorkbook();return Y?Y.save():null},[]),A=mr(async Y=>{Y&&(Y.preventDefault(),Y.stopPropagation());try{let Z=x.current?.getActiveWorkbook?.();Z&&typeof Z.endEditingAsync=="function"?(await Z.endEditingAsync(!0),console.log("[Excel] endEditingAsync(true) \u5B8C\u6210")):Z&&typeof Z.endEditing=="function"&&(await Z.endEditing(!0),console.log("[Excel] endEditing(true) \u5B8C\u6210"))}catch(Z){console.warn("[Excel] \u63D0\u4EA4\u5355\u5143\u683C\u7F16\u8F91\u5931\u8D25:",Z)}},[]),re=mr(async()=>{try{if(!x.current)return wn.error("\u7F16\u8F91\u5668\u672A\u521D\u59CB\u5316"),null;let Y=x.current.getActiveWorkbook();if(!Y)return wn.error("\u6CA1\u6709\u53EF\u4FDD\u5B58\u7684\u5DE5\u4F5C\u7C3F"),null;await A();let Z=Y.save(),xe=bn.utils.book_new();Z.sheets&&Z.sheetOrder&&Z.sheetOrder.forEach(ke=>{let Ee=Z.sheets[ke];if(!Ee)return;let Be=Ee.name||"\u5DE5\u4F5C\u8868",be=Ee.cellData||{},pe=[];Object.keys(be).forEach(ae=>{let te=parseInt(ae),fe=be[ae];for(;pe.length<=te;)pe.push([]);Object.keys(fe).forEach(Ce=>{let rt=parseInt(Ce),lt=fe[Ce];for(;pe[te].length<=rt;)pe[te].push("");pe[te][rt]=lt?.v||""})});let K=bn.utils.aoa_to_sheet(pe);bn.utils.book_append_sheet(xe,K,Be)});let Q=bn.write(xe,{bookType:"xlsx",type:"array"});return new Blob([Q],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"})}catch(Y){return console.error("\u5BFC\u51FA Excel \u5931\u8D25:",Y),null}},[]),_e=mr(()=>{if(!a||!I)return;let Y=ne();Y&&(S.current&&clearTimeout(S.current),S.current=setTimeout(async()=>{try{await $t(I,a,"xlsx",Y),R(!1);let Z=ye.current;if(Z)try{let xe=await re();xe&&await Z(xe,a,!1)}catch(xe){console.warn("\u81EA\u52A8\u4FDD\u5B58\u65F6\u540C\u6B65 localFiles store \u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u672C\u5730\u4FDD\u5B58\uFF09:",xe)}}catch(Z){console.error("\u81EA\u52A8\u4FDD\u5B58\u5230 IndexedDB \u5931\u8D25:",Z)}},2e4))},[a,I,ne,re]);Wn(()=>{if(!e||!_.current)return;x.current&&(x.current.dispose(),x.current=null,b.current=null);let{univer:Y,univerAPI:Z}=Au({locale:di.ZH_CN,locales:{[di.ZH_CN]:Nu(Ru)},presets:[Du({container:_.current})]});if(b.current=Y,x.current=Z,W)try{Z.createWorkbook(W)}catch{Z.createWorkbook({name:a})}else Z.createWorkbook({name:a});let xe=Z.addEvent(Z.Event.CommandExecuted,({id:Q})=>{if(!(c||!Bu.has(Q))&&z.current&&(R(!0),P(!1),_e(),!O.current&&!v.current&&ye.current)){O.current=!0;let ke=ye.current;(async()=>{try{let Ee=await re();Ee?await ke(Ee,a):O.current=!1}catch(Ee){O.current=!1,console.warn("\u7F16\u8F91\u65F6\u7ACB\u5373\u6807\u8BB0\u672A\u540C\u6B65\u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u7F16\u8F91\uFF0C\u7B49\u5F85\u81EA\u52A8/\u624B\u52A8\u4FDD\u5B58\u5373\u53EF\uFF09:",Ee)}})()}});return()=>{xe.dispose(),x.current&&(x.current.dispose(),x.current=null,b.current=null)}},[e,a,W,M,_e,c,re]),Wn(()=>{if(!e||L)return;let Y=setTimeout(()=>{z.current=!0},2e3);return()=>{clearTimeout(Y),z.current=!1}},[M,e,L]),Wn(()=>{q.current=i},[i]);let le=mr(async()=>{try{let Y=ne();if(!Y){wn.error("\u7F16\u8F91\u5668\u672A\u521D\u59CB\u5316");return}if(!I){wn.error("\u65E0\u6CD5\u83B7\u53D6\u7528\u6237\u4FE1\u606F");return}if(await $t(I,a,"xlsx",Y),R(!1),h)try{let Z=await re();Z&&await h(Z,a,!1)}catch(Z){console.warn("\u540C\u6B65\u672C\u5730\u6587\u4EF6\u5185\u5BB9\u5230 localFiles store \u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u672C\u5730\u4FDD\u5B58\uFF09:",Z)}wn.success("\u5DF2\u4FDD\u5B58\u5230\u672C\u5730\u7F13\u5B58")}catch(Y){console.error("\u4FDD\u5B58\u5230\u672C\u5730\u7F13\u5B58\u5931\u8D25:",Y),wn.error("\u4FDD\u5B58\u5931\u8D25")}},[a,I,ne,re,h]),$e=mr(async()=>{if(!s){wn.error("\u672A\u63D0\u4F9B\u4E0A\u4F20\u529F\u80FD");return}try{let Y=await re();if(!Y)return;let Z=q.current??i;await s(Z,Y,a),q.current=Y,I&&(await Pn(I,a,"xlsx"),R(!1),P(!0)),O.current=!1}catch(Y){console.error("\u4E0A\u4F20\u5931\u8D25:",Y),wn.error("\u4E0A\u4F20\u5931\u8D25")}},[a,s,re,I,i]);return Wn(()=>{if(!e)return;let Y=Z=>{(Z.ctrlKey||Z.metaKey)&&Z.key==="s"&&(Z.preventDefault(),le())};return window.addEventListener("keydown",Y),()=>window.removeEventListener("keydown",Y)},[e,le]),Wn(()=>(e&&(P(!r),O.current=!1,S.current&&(clearTimeout(S.current),S.current=null)),()=>{S.current&&(clearTimeout(S.current),S.current=null)}),[e,r]),ot(Cu,{open:e,onCancel:o,keyboard:!1,closeIcon:null,footer:null,style:{top:0,maxWidth:"100vw"},styles:{body:{height:"100dvh",padding:0}},className:"ant-modal-nopadding ant-modal-fullscreen",transitionName:"none",children:kr("div",{className:"h-full flex flex-col bg-white p-0 m-0",children:[kr("div",{className:`flex items-center justify-between px-4 py-2 pr-0 border-b flex-shrink-0 ${d?"bg-orange-50 border-orange-200":"bg-gray-50 border-gray-200"}`,children:[ot("span",{children:"\xA0"}),!c&&ot("span",{children:"\xA0"}),kr("div",{className:"flex items-center gap-2 flex-wrap min-w-[40%]",children:[!d&&p&&ot(sa,{icon:ot(ci,{}),color:"orange",style:{margin:0},children:"\u672C\u5730\u6587\u4EF6"}),!d&&!p&&w&&ot(sa,{icon:ot(ci,{}),color:"warning",style:{margin:0},children:"\u6709\u672A\u540C\u6B65\u4FEE\u6539"}),!d&&!p&&!w&&!s?ot(sa,{icon:ot(Iu,{}),color:"default",style:{margin:0},children:"\u540C\u6B65\u5B8C\u6210"}):null,ot(Pu,{className:"text-green-600"}),kr("span",{className:"text-sm font-medium",children:[y?"*":"",a]})]}),!c&&!t&&kr(Fu,{wrap:!0,align:"center",direction:"horizontal",children:[s&&ot(aa,{type:"text",style:{paddingLeft:4,paddingRight:4},title:"\u6BCF\u6B21\u4E0A\u4F20\u5C06\u4FDD\u7559\u4E00\u4E2A\u5386\u53F2\u7248\u672C\uFF0C\u6700\u591A\u4FDD\u755910\u4E2A\u7248\u672C",icon:ot(Mu,{}),onMouseDown:A,onClick:$e,disabled:n!==void 0&&n<1,children:n!==void 0&&n<1?`\u4E0A\u4F20\u4E2D ${Math.round(n*100)}%`:"\u4E0A\u4F20"}),ot(aa,{type:"primary",icon:ot(Tu,{}),onMouseDown:A,onClick:le,children:"\u4FDD\u5B58"}),!c&&(y||!G)?ot(ku,{title:"\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F",description:y?"\u4FEE\u6539\u672A\u4FDD\u5B58\uFF0C\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F":"\u4FEE\u6539\u672A\u4E0A\u4F20\uFF0C\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F",onConfirm:o,okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88",children:ot(aa,{type:"text",className:"ml-3 mr-2",icon:ot(ia,{className:"w-6 h-6"})})}):ot(ia,{onClick:o,className:"ml-3 mr-2 w-6 h-6"})]}),c&&!t&&ot(ia,{onClick:o,className:"ml-3 mr-2 w-6 h-6"}),t&&ot("span",{children:"\xA0"})]}),ot("div",{className:"relative flex-1 min-h-0",children:ot("div",{ref:_,className:"h-full univer-container overflow-hidden",style:{height:"calc(100vh - 48px)"}},M)})]})})},Ou=ui});import{PptxViewer as $u}from"@file-viewer/pptx";import{withPolyfillWorkerBootstrap as zu}from"@spacecorexdev/core/utils";var Hu,Tr,mi,Uu,ju,la,Vu,Zu,Wu,hi,Ku,Gu,Xu,qu,Yu,Ju,gi,yi=Xe(()=>{"use strict";Hu="application/vnd.openxmlformats-officedocument.presentationml.presentation",Tr=2,mi=12e4,Uu=500,ju="flyfish-pptx-native-style",la=()=>/url\(\s*(['"]?)([^'")]+)\1\s*\)/gi,Vu=async e=>{let t=document.createElement("div");t.setAttribute("data-ppt-export-root","true"),Object.assign(t.style,{position:"fixed",top:"0",left:"-100000px",width:"1600px",background:"#ffffff",pointerEvents:"none"}),document.body.appendChild(t);let r=await e.arrayBuffer(),o=null,a=await $u.open(r,t,{fitMode:"none",workerType:"classic",workerUrl:zu("/vendor/pptx/pptx.worker.js"),lazySlides:!1,listOptions:void 0,onError:s=>{o=s}});return{host:t,viewer:a,getFatal:()=>o,unmount:()=>{try{a.destroy()}finally{t.remove()}}}},Zu=async(e,t,r)=>new Promise((o,a)=>{let s=Date.now(),i=-1,c=0,n=!1,l=async p=>{if(!n){n=!0,window.clearInterval(d);try{let w=Array.from(t.querySelectorAll(".flyfish-pptx-content img")),h=_=>new Promise(b=>{let x=()=>{window.clearTimeout(S),b()},S=window.setTimeout(x,5e3);_.decode().then(x).catch(x)});await Promise.all(w.map(_=>_.complete?Promise.resolve():h(_))),await new Promise(_=>window.setTimeout(_,120)),o(p)}catch(w){a(w)}}},d=window.setInterval(()=>{if(n)return;let p=r();if(p){n=!0,window.clearInterval(d),a(p instanceof Error?p:new Error(String(p)));return}let w=t.querySelector(".flyfish-pptx-content");if(!w){Date.now()-s>mi&&(n=!0,window.clearInterval(d),a(new Error("PPT \u6E32\u67D3\u8D85\u65F6")));return}let h=Array.from(w.querySelectorAll(":scope > .slide")),_=e.slideCount;_>0&&h.length===_&&w.dataset.renderState==="ready"&&h.every(x=>{let S=x.getBoundingClientRect();return S.width>100&&S.height>100})?(i!==h.length&&(c=0),c||(c=Date.now()),Date.now()-c>=Uu&&l(h)):c=0,i=h.length,Date.now()-s>mi&&(n=!0,window.clearInterval(d),a(new Error("PPT \u6E32\u67D3\u8D85\u65F6")))},120)}),Wu=e=>{let t=[],r=document.getElementById(ju);return r?.textContent&&t.push(r.textContent),e.querySelectorAll("style").forEach(o=>o.textContent&&t.push(o.textContent)),t.join(`
|
|
413
|
-
`)},hi=async e=>{let t=new Map;return await Promise.all(Array.from(new Set(e)).map(async r=>{let o=r.trim();if(!(!o||o.startsWith("data:")||o.startsWith("#")))try{let a=await fetch(o).then(i=>{if(!i.ok)throw new Error(`HTTP ${i.status}`);return i.blob()}),s=await new Promise((i,c)=>{let n=new FileReader;n.onload=()=>i(n.result),n.onerror=c,n.readAsDataURL(a)});t.set(o,s)}catch{t.set(o,"")}})),t},Ku=async e=>{let t=[];if(e.querySelectorAll("[src],[poster],[href],[xlink\\:href]").forEach(o=>{for(let a of Array.from(o.attributes)){if(!["src","poster","href","xlink:href"].includes(a.name))continue;let s=a.value.trim();!s||s.startsWith("data:")||s.startsWith("#")||t.push({el:o,attr:a})}}),t.length===0)return;let r=await hi(t.map(o=>o.attr.value.trim()));t.forEach(({el:o,attr:a})=>{let s=a.value.trim(),i=r.get(s);if(i!==void 0){if(i===""){o.removeAttributeNode(a);return}a.namespaceURI?o.setAttributeNS(a.namespaceURI,a.name,i):o.setAttribute(a.name,i)}})},Gu=async e=>{let t=[e,...Array.from(e.querySelectorAll("[style]"))],r=[];if(t.forEach(s=>{let i=s.getAttribute("style")||"",c=la(),n;for(;n=c.exec(i);){let l=n[2].trim();l&&!l.startsWith("data:")&&!l.startsWith("#")&&r.push(l)}}),r.length===0)return;let o=await hi(r),a=s=>s.replace(la(),(i,c,n)=>{let l=n.trim();if(l.startsWith("#")||l.startsWith("data:"))return i;let d=o.get(l);return d?`url("${d}")`:"none"});t.forEach(s=>{let i=s.getAttribute("style");i&&la().test(i)&&s.setAttribute("style",a(i))})},Xu=(e,t)=>{let r=Array.from(e.querySelectorAll("canvas")),o=Array.from(t.querySelectorAll("canvas"));r.forEach((a,s)=>{let i=o[s];if(!i)return;let c="";try{c=a.toDataURL("image/png")}catch{c=""}let n=t.ownerDocument.createElement("img");n.setAttribute("style",`${i.getAttribute("style")||""};display:inline-block!important;`),i.className&&(n.className=i.className),n.setAttribute("width",String(a.width||i.width||1)),n.setAttribute("height",String(a.height||i.height||1)),n.src=c||qu,i.replaceWith(n)})},qu="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==",Yu=async(e,t)=>{let r=parseFloat(e.style.width||""),o=parseFloat(e.style.height||""),a=e.getBoundingClientRect(),s=Math.max(1,Math.round(Number.isFinite(r)&&r>0?r:a.width)),i=Math.max(1,Math.round(Number.isFinite(o)&&o>0?o:a.height)),c=e.cloneNode(!0);Xu(e,c),await Ku(c),await Gu(c);let n=c.ownerDocument.createElement("div");n.className="flyfish-pptx-content",n.setAttribute("data-export-wrapper","true"),n.setAttribute("style",`position:relative!important;top:auto!important;left:auto!important;transform:none!important;width:${s}px!important;height:${i}px!important;margin:0!important;overflow:hidden!important;`),n.appendChild(c);let l=new XMLSerializer().serializeToString(n),p=`${t}
|
|
414
|
-
.flyfish-pptx-content .slide{margin:0!important;box-shadow:none!important;border-radius:0!important}`.replace(/\]\]>/g,"]] >"),w=`<svg xmlns="http://www.w3.org/2000/svg" width="${s*Tr}" height="${i*Tr}"><g transform="scale(${Tr})"><foreignObject x="0" y="0" width="${s}" height="${i}"><body xmlns="http://www.w3.org/1999/xhtml" style="margin:0;padding:0;background:#ffffff"><style><![CDATA[${p}]]></style>${l}</body></foreignObject></g></svg>`,h=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(w)}`,_=new Image;await new Promise((I,N)=>{_.onload=()=>I(),_.onerror=()=>{let W=[];try{let y=new DOMParser().parseFromString(w,"image/svg+xml").querySelector("parsererror");if(y){W.push(`XML\u9519\u8BEF: ${(y.textContent||"").slice(0,150)}`);let R=/line (\d+) at column (\d+)/.exec(y.textContent||"");if(R){let G=Number(R[1]),P=Number(R[2]),j=w.split(`
|
|
415
|
-
`)[G-1]||"";W.push(`\u4E0A\u4E0B\u6587:${j.slice(Math.max(0,P-160),P+160)}`)}}}catch{}let H=(w.match(/blob:/g)||[]).length,M=(w.match(/(?:src|poster|href)=["']https?:/g)||[]).length;(H||M)&&W.push(`\u6B8B\u7559\u5916\u94FE blob:${H} http:${M}`),W.push(`SVG\u5927\u5C0F:${(w.length/1024).toFixed(0)}KB`),N(new Error(`\u5E7B\u706F\u7247\u5149\u6805\u5316\u5931\u8D25\uFF08${W.join("\uFF1B")}\uFF09`))},_.src=h});let b=document.createElement("canvas");b.width=s*Tr,b.height=i*Tr;let x=b.getContext("2d");if(!x)throw new Error("\u65E0\u6CD5\u521B\u5EFA\u7ED8\u56FE\u4E0A\u4E0B\u6587");x.fillStyle="#ffffff",x.fillRect(0,0,b.width,b.height),x.drawImage(_,0,0);let S=b.toDataURL("image/png");return b.width=0,b.height=0,{dataUrl:S,widthPx:s,heightPx:i}},Ju=async(e,t)=>{let r=await Vu(e);try{let o=await Zu(r.viewer,r.host,r.getFatal);if(o.length===0)throw new Error("\u672A\u83B7\u53D6\u5230\u53EF\u5BFC\u51FA\u7684\u5E7B\u706F\u7247");let a=r.host.querySelector(".flyfish-pptx-content");if(!a)throw new Error("\u672A\u83B7\u53D6\u5230\u5E7B\u706F\u7247\u5BB9\u5668");let s=Wu(a),i=o.length,c=[];for(let n=0;n<i;n++){t?.(n+1,i);let{dataUrl:l,widthPx:d,heightPx:p}=await Yu(o[n],s);c.push({dataUrl:l,widthPx:d,heightPx:p,widthPt:d*.75,heightPt:p*.75})}return c}finally{r.unmount()}},gi=async({file:e,fileName:t,onProgress:r})=>{let o=/\.(pptx|pptm|ppt|ppsx|pps|potx|potm)$/i.test(t)?t.replace(/\.(pptx|pptm|ppt|ppsx|pps|potx|potm)$/i,""):t,a=`${o}.pptx`,s=`${o}.pdf`,i=e instanceof File?e:new File([e],a,{type:Hu}),{jsPDF:c}=await import("jspdf"),n=await Ju(i,r);if(n.length===0)throw new Error("\u672A\u83B7\u53D6\u5230\u53EF\u5BFC\u51FA\u7684\u5E7B\u706F\u7247");let l=n[0],d=new c({orientation:l.widthPt>l.heightPt?"landscape":"portrait",unit:"pt",format:[l.widthPt,l.heightPt],compress:!0});return n.forEach((p,w)=>{w>0&&d.addPage([p.widthPt,p.heightPt],p.widthPt>p.heightPt?"landscape":"portrait"),d.addImage(p.dataUrl,"PNG",0,0,p.widthPt,p.heightPt,void 0,"FAST")}),d.save(s),s}});var wi={};Qt(wi,{PptPreview:()=>tp});import{useCallback as vo,useEffect as Pr,useRef as Mr,useState as vn}from"react";import{message as Ir}from"antd";import{PptxViewer as Qu}from"@file-viewer/pptx";import{withPolyfillWorkerBootstrap as ep}from"@spacecorexdev/core/utils";import{jsx as zt,jsxs as ca}from"react/jsx-runtime";var tp,bi=Xe(()=>{"use strict";yi();lr();fn();tp=({file:e})=>{let[t,r]=vn(!0),[o,a]=vn(!1),[s,i]=vn(0),[c,n]=vn(!1),[l,d]=vn("parsing"),[p,w]=vn(0),[h,_]=vn(0),[b,x]=vn(0),[S,I]=vn(0),N=vo(async()=>{if(!e){Ir.warning("\u6587\u6863\u5C1A\u672A\u52A0\u8F7D\u5B8C\u6210\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5");return}n(!0),Ir.loading({key:"ppt-export-pdf",content:"\u6B63\u5728\u51C6\u5907\u6F14\u793A\u6587\u7A3F\u2026",duration:0});try{await gi({file:e,fileName:e.name,onProgress:(L,j)=>{Ir.loading({key:"ppt-export-pdf",content:`\u6B63\u5728\u5BFC\u51FA\u7B2C ${L} / ${j} \u9875\u2026`,duration:0})}})}catch(L){console.error("PPT \u5BFC\u51FA PDF \u5931\u8D25:",L),Ir.error(`\u5BFC\u51FA PDF \u5931\u8D25\uFF1A${L?.message||"\u8BF7\u91CD\u8BD5"}`)}finally{Ir.destroy("ppt-export-pdf"),n(!1)}},[e]),W=vo(()=>{e&&Rt(e,e.name)},[e]),H=Mr(null),M=Mr(null),ee=Mr(null),y=Mr(null),R=Mr(!1),G=vo(()=>{let L=H.current;if(!L)return;let j=Array.from(L.querySelectorAll(".flyfish-pptx-content .slide"));if(j.length===0)return;let O=L.getBoundingClientRect().top+L.clientHeight/2,z=0,q=Number.POSITIVE_INFINITY;j.forEach((v,ye)=>{let ne=v.getBoundingClientRect(),A=Math.abs(ne.top+ne.height/2-O);A<q&&(q=A,z=ye)}),j.forEach((v,ye)=>{v.classList.toggle("ppt-slide-active",ye===z)})},[]),P=vo(async()=>{let L=ee.current,j=H.current,O=y.current;if(!L||!j||!O)return;let z=O.width??1,q=O.height??1,v=j.clientWidth/z,ye=j.clientHeight/q,ne=Math.min(v,ye);await L.setZoom(ne*100);let A=j.clientHeight/ne;requestAnimationFrame(()=>{Array.from(j.querySelectorAll(".flyfish-pptx-content .slide")).forEach(_e=>{let le=Math.max(0,A-q);_e.style.marginTop=`${le/2}px`,_e.style.marginBottom=`${le/2}px`,_e.style.marginLeft="auto",_e.style.marginRight="auto"}),G()})},[G]);return Pr(()=>{let L=!1;return(async()=>{if(!(!e||!M.current||!H.current)){r(!0),a(!1),d("parsing"),w(0),_(0),x(0),I(0),R.current=!1,y.current=null,H.current.scrollTop=0;try{let O=await e.arrayBuffer();if(L)return;let z=await Qu.open(O,M.current,{fitMode:"none",workerType:"classic",workerUrl:ep("/vendor/pptx/pptx.worker.js"),lazySlides:!1,listOptions:void 0,onProgress:(q,v)=>{if(L)return;w(Math.min(100,Math.max(0,Math.floor(q))));let ye=v?.slide_num;typeof ye=="number"&&_(ye)},onSlideSize:q=>{y.current=q},onSlideRendered:q=>{L||(x(v=>Math.max(v,q+1)),r(!1),requestAnimationFrame(()=>G()),R.current||(R.current=!0,P()))},onError:q=>{L||(console.error("[ppt-preview] render error:",q),a(!0),r(!1))}});if(L){z.destroy();return}ee.current=z,I(z.slideCount||0),d("rendering")}catch(O){if(L)return;console.error("[ppt-preview] mount failed:",O),a(!0),r(!1)}}})(),()=>{L=!0,ee.current?.destroy(),ee.current=null}},[e,s,P,G]),Pr(()=>{let L=0,j=()=>{cancelAnimationFrame(L),L=requestAnimationFrame(()=>{P()})};return window.addEventListener("resize",j),()=>{cancelAnimationFrame(L),window.removeEventListener("resize",j)}},[P]),Pr(()=>{let L=H.current;if(!L)return;let j=0,O=()=>{j||(j=requestAnimationFrame(()=>{j=0,G()}))};return L.addEventListener("scroll",O,{passive:!0}),()=>{j&&cancelAnimationFrame(j),L.removeEventListener("scroll",O)}},[G]),Pr(()=>{let L=H.current;if(!L)return;let j,O=!1,z=()=>{if(O)return;let v=Array.from(L.querySelectorAll(".flyfish-pptx-content .slide"));if(v.length===0)return;let ne=L.getBoundingClientRect().top+L.clientHeight/2,A=v[0],re=Number.POSITIVE_INFINITY;for(let $e of v){let Y=$e.getBoundingClientRect(),Z=Math.abs(Y.top+Y.height/2-ne);Z<re&&(re=Z,A=$e)}let _e=A.getBoundingClientRect(),le=_e.top+_e.height/2-ne;Math.abs(le)<3||(O=!0,L.scrollTo({top:Math.max(0,L.scrollTop+le),behavior:"smooth"}),window.setTimeout(()=>{O=!1},500))},q=()=>{clearTimeout(j),j=window.setTimeout(z,150)};return L.addEventListener("scroll",q,{passive:!0}),()=>{clearTimeout(j),L.removeEventListener("scroll",q)}},[]),Pr(()=>{let L=H.current;if(!L)return;let j=z=>{let q=Array.from(L.querySelectorAll(".flyfish-pptx-content .slide"));if(q.length===0)return;let ye=L.getBoundingClientRect().top+L.clientHeight/2,ne=0,A=Number.POSITIVE_INFINITY;q.forEach((Y,Z)=>{let xe=Y.getBoundingClientRect(),Q=Math.abs(xe.top+xe.height/2-ye);Q<A&&(A=Q,ne=Z)});let re=Math.max(0,Math.min(q.length-1,ne+z));if(re===ne)return;let _e=q[re].getBoundingClientRect(),$e=_e.top+_e.height/2-ye;L.scrollTo({top:Math.max(0,L.scrollTop+$e),behavior:"smooth"})},O=z=>{["ArrowUp","ArrowLeft"].includes(z.key)?(z.preventDefault(),j(-1)):["ArrowDown","ArrowRight"," "].includes(z.key)?(z.preventDefault(),j(1)):z.key==="Home"?(z.preventDefault(),j(-9999)):z.key==="End"&&(z.preventDefault(),j(9999))};return window.addEventListener("keydown",O),()=>window.removeEventListener("keydown",O)},[]),ca("div",{className:"ui-file-preview-ppt","data-global-context-menu-ignore":"true",children:[zt("style",{children:`.ui-file-preview-ppt {
|
|
416
|
-
position: relative;
|
|
417
|
-
width: 100%;
|
|
418
|
-
height: 100dvh;
|
|
419
|
-
background: #000;
|
|
420
|
-
color: #000;
|
|
421
|
-
color-scheme: light;
|
|
422
|
-
overflow: hidden;
|
|
423
|
-
}
|
|
424
|
-
.ppt-export-pdf-btn {
|
|
425
|
-
position: absolute;
|
|
426
|
-
top: 7px;
|
|
427
|
-
right: 16px;
|
|
428
|
-
z-index: 50;
|
|
429
|
-
}
|
|
430
|
-
.ppt-scroll-container {
|
|
431
|
-
width: 100%;
|
|
432
|
-
height: 100dvh;
|
|
433
|
-
overflow-y: auto;
|
|
434
|
-
overflow-x: hidden;
|
|
435
|
-
scrollbar-width: none;
|
|
436
|
-
}
|
|
437
|
-
.ppt-scroll-container::-webkit-scrollbar {
|
|
438
|
-
display: none;
|
|
439
|
-
}
|
|
440
|
-
/* \u8986\u76D6 viewer \u9ED8\u8BA4\u7684 .slide margin-bottom: 50px\uFF0C
|
|
441
|
-
\u7531 layoutSlides() \u7CBE\u786E\u8BA1\u7B97\u95F4\u8DDD\u5E76 inline \u8BBE\u7F6E\u3002
|
|
442
|
-
\u5355\u9875\u663E\u793A\uFF1A\u9ED8\u8BA4\u5168\u90E8\u900F\u660E\uFF0C\u4EC5\u5F53\u524D\u9875\uFF08\u89C6\u89C9\u4E2D\u5FC3\u6240\u5728\u9875\uFF09\u52A0
|
|
443
|
-
.ppt-slide-active \u540E\u4E0D\u900F\u660E\uFF0C\u4FDD\u8BC1\u4EFB\u4F55\u7A97\u53E3\u6BD4\u4F8B\u4E0B\u7A97\u53E3\u5185\u53EA\u51FA\u73B0\u4E00\u9875\uFF1B
|
|
444
|
-
\u8FC7\u6E21\u65F6\u95F4\u8981\u77ED\uFF0C\u7FFB\u9875\u65F6\u5FEB\u901F\u6DE1\u5165\u6DE1\u51FA\u800C\u4E0D\u62D6\u6CE5\u5E26\u6C34\u3002
|
|
445
|
-
\uFF08\u79BB\u5C4F\u5BFC\u51FA PDF \u7684 viewer \u4E0D\u5728 .ppt-scroll-container \u5185\uFF0C\u4E0D\u53D7\u5F71\u54CD\uFF09 */
|
|
446
|
-
.ppt-scroll-container .flyfish-pptx-content .slide {
|
|
447
|
-
box-shadow: none !important;
|
|
448
|
-
opacity: 0;
|
|
449
|
-
transition: opacity 0.18s ease;
|
|
450
|
-
}
|
|
451
|
-
.ppt-scroll-container .flyfish-pptx-content .slide.ppt-slide-active {
|
|
452
|
-
opacity: 1;
|
|
453
|
-
}
|
|
454
|
-
.ppt-loading-overlay {
|
|
455
|
-
position: absolute;
|
|
456
|
-
top: 0;
|
|
457
|
-
left: 0;
|
|
458
|
-
right: 0;
|
|
459
|
-
bottom: 0;
|
|
460
|
-
background: #000;
|
|
461
|
-
display: flex;
|
|
462
|
-
flex-direction: column;
|
|
463
|
-
align-items: center;
|
|
464
|
-
justify-content: center;
|
|
465
|
-
z-index: 100;
|
|
466
|
-
}
|
|
467
|
-
.ppt-loading-spinner {
|
|
468
|
-
width: 40px;
|
|
469
|
-
height: 40px;
|
|
470
|
-
border: 3px solid #333;
|
|
471
|
-
border-top: 3px solid #5292f7;
|
|
472
|
-
border-radius: 50%;
|
|
473
|
-
animation: ppt-spin 1s linear infinite;
|
|
474
|
-
}
|
|
475
|
-
.ppt-loading-text {
|
|
476
|
-
margin-top: 16px;
|
|
477
|
-
color: #ccc;
|
|
478
|
-
font-size: 14px;
|
|
479
|
-
}
|
|
480
|
-
.ppt-loading-progress {
|
|
481
|
-
margin-top: 20px;
|
|
482
|
-
width: 220px;
|
|
483
|
-
height: 6px;
|
|
484
|
-
background: #2a2a2a;
|
|
485
|
-
border-radius: 3px;
|
|
486
|
-
overflow: hidden;
|
|
487
|
-
}
|
|
488
|
-
.ppt-loading-progress-bar {
|
|
489
|
-
height: 100%;
|
|
490
|
-
background: linear-gradient(90deg, #5292f7, #67b8ff);
|
|
491
|
-
border-radius: 3px;
|
|
492
|
-
transition: width 0.3s ease;
|
|
493
|
-
}
|
|
494
|
-
.ppt-loading-percent {
|
|
495
|
-
margin-top: 8px;
|
|
496
|
-
color: #888;
|
|
497
|
-
font-size: 12px;
|
|
498
|
-
min-height: 16px;
|
|
499
|
-
}
|
|
500
|
-
.ppt-loading-error-icon {
|
|
501
|
-
font-size: 48px;
|
|
502
|
-
color: #f56c6c;
|
|
503
|
-
}
|
|
504
|
-
.ppt-loading-error-text {
|
|
505
|
-
margin-top: 16px;
|
|
506
|
-
color: #f56c6c;
|
|
507
|
-
font-size: 14px;
|
|
508
|
-
}
|
|
509
|
-
.ppt-loading-retry-btn {
|
|
510
|
-
margin-top: 20px;
|
|
511
|
-
padding: 8px 24px;
|
|
512
|
-
background: #5292f7;
|
|
513
|
-
color: #fff;
|
|
514
|
-
border: none;
|
|
515
|
-
border-radius: 4px;
|
|
516
|
-
cursor: pointer;
|
|
517
|
-
font-size: 14px;
|
|
518
|
-
}
|
|
519
|
-
.ppt-loading-retry-btn:hover {
|
|
520
|
-
background: #67b8ff;
|
|
521
|
-
}
|
|
522
|
-
@keyframes ppt-spin {
|
|
523
|
-
0% { transform: rotate(0deg); }
|
|
524
|
-
100% { transform: rotate(360deg); }
|
|
525
|
-
}`}),!t&&!o&&e&&zt(Et,{onExportPdf:N,onDownload:W,exportingPdf:c,buttonProps:{className:"vendorsys-export-trigger-on-dark ppt-export-pdf-btn mr-[30px] bg-transparent border-none"}}),e&&t&&!o&&ca("div",{className:"ppt-loading-overlay",children:[zt("div",{className:"ppt-loading-spinner"}),zt("div",{className:"ppt-loading-text",children:"\u52A0\u8F7D\u4E2D..."}),zt("div",{className:"ppt-loading-progress",children:zt("div",{className:"ppt-loading-progress-bar",style:{width:`${l==="rendering"?100:p}%`}})}),zt("div",{className:"ppt-loading-percent",children:l==="rendering"?S>0?`\u6B63\u5728\u6E32\u67D3\u5E7B\u706F\u7247 \u7B2C ${Math.max(b,1)} / ${S} \u9875`:"\u6B63\u5728\u6E32\u67D3\u5E7B\u706F\u7247\u2026":p>=100?"\u6B63\u5728\u5904\u7406\u5E7B\u706F\u7247\u8D44\u6E90\u2026":p>0?`\u6B63\u5728\u89E3\u6790\u6F14\u793A\u6587\u7A3F ${p}%${h>0?` \xB7 \u5DF2\u89E3\u6790\u7B2C ${h} \u9875`:""}`:"\u6B63\u5728\u8BFB\u53D6\u6587\u4EF6\u2026"})]}),e&&o&&ca("div",{className:"ppt-loading-overlay",children:[zt("div",{className:"ppt-loading-error-icon",children:"\u2715"}),zt("div",{className:"ppt-loading-error-text",children:"\u6587\u6863\u52A0\u8F7D\u5931\u8D25"}),zt("button",{className:"ppt-loading-retry-btn",onClick:()=>{a(!1),r(!0),i(L=>L+1)},children:"\u91CD\u65B0\u52A0\u8F7D"})]}),zt("div",{ref:H,className:"ppt-scroll-container",children:zt("div",{ref:M,className:"ppt-render-target",style:{width:"100%"}})})]})}});var vi=Xe(()=>{"use strict";ir();Wt(`[role=option][data-value=Normal] span{font-family:STFangsong,STSong,"FangSong",serif!important}[role=option][data-value=Heading1] span,[role=option][data-value=Heading2] span,[role=option][data-value=Heading3] span,[role=option][data-value=Heading4] span,[role=option][data-value=Heading5] span,[role=option][data-value=Heading6] span,[role=option][data-value=Title] span{font-family:STHeiti,STSong,SimHei,Microsoft YaHei,sans-serif!important}[role=option][data-value=Subtitle] span,[role=option][data-value=Quote] span,[role=option][data-value=IntenseQuote] span{font-family:STKaiti,STSong,KaiTi,serif!important}.ep-root .paged-editor,.ep-root .paged-editor__pages-container{display:block!important}.ep-root,#vendorsys-word-editor-root,.vendorsys-word-editor-root{overflow:visible!important}.ep-root .layout-page{position:relative!important;box-sizing:content-box!important;display:block!important}.ep-root .layout-page-header{position:absolute!important;box-sizing:content-box!important;display:block!important;clear:both!important;float:none!important}.ep-root .layout-page-header>*{position:static!important;inset:0 auto auto 0!important;transform:none!important;margin:0!important}.ep-root .layout-page-footer{position:absolute!important;box-sizing:content-box!important;display:block!important;clear:both!important;float:none!important}.ep-root .layout-page-footer>*{position:static!important;inset:0 auto auto 0!important;transform:none!important;margin:0!important}.ep-root .layout-page-content{box-sizing:content-box!important;display:block!important;clear:both!important;float:none!important}.ep-root .layout-page-header>*,.ep-root .layout-page-footer>*,.ep-root .layout-page-header p,.ep-root .layout-page-footer p{text-align:inherit;float:none!important;clear:both;box-sizing:content-box!important}.ep-root .layout-page-header *,.ep-root .layout-page-footer *{box-sizing:content-box!important}.ep-root .docx-editor__pages-container,.ep-root .docx-editor-vue__pages-container,.ep-root .prosemirror-zoom-container,.ep-root .prosemirror-editor-wrapper{box-sizing:content-box!important;display:block!important}.ep-root .layout-paragraph,.ep-root .layout-line,.ep-root .layout-fragment{box-sizing:content-box!important;display:block!important;float:none!important}.ep-root .docx-editor__scroll-container,.ep-root .docx-editor-vue__pages-viewport{display:block!important}.ep-root .layout-page-header .layout-textbox,.ep-root .layout-page-footer .layout-textbox{width:auto!important;height:auto!important;min-width:0!important;min-height:0!important;inset:0 auto auto 50%!important;transform:translate(-50%)!important;position:absolute!important;box-sizing:content-box!important;padding:0!important}.ep-root .layout-page-header .layout-textbox .layout-paragraph,.ep-root .layout-page-footer .layout-textbox .layout-paragraph,.ep-root .layout-page-header .layout-textbox .layout-line,.ep-root .layout-page-footer .layout-textbox .layout-line{display:inline-block!important;width:auto!important;box-sizing:content-box!important}#vendorsys-word-editor-root .paged-editor,#vendorsys-word-editor-root .paged-editor__pages-container,.vendorsys-word-editor-root .paged-editor,.vendorsys-word-editor-root .paged-editor__pages-container{display:block!important}#vendorsys-word-editor-root .layout-page,.vendorsys-word-editor-root .layout-page{position:relative!important;box-sizing:content-box!important;display:block!important}#vendorsys-word-editor-root .layout-page-header,.vendorsys-word-editor-root .layout-page-header{position:absolute!important;box-sizing:content-box!important;display:block!important;clear:both!important;float:none!important}#vendorsys-word-editor-root .layout-page-header>*,.vendorsys-word-editor-root .layout-page-header>*{position:static!important;inset:0 auto auto 0!important;transform:none!important;margin:0!important}#vendorsys-word-editor-root .layout-page-footer,.vendorsys-word-editor-root .layout-page-footer{position:absolute!important;box-sizing:content-box!important;display:block!important;clear:both!important;float:none!important}#vendorsys-word-editor-root .layout-page-footer>*,.vendorsys-word-editor-root .layout-page-footer>*{position:static!important;inset:0 auto auto 0!important;transform:none!important;margin:0!important}#vendorsys-word-editor-root .layout-page-content,.vendorsys-word-editor-root .layout-page-content{box-sizing:content-box!important;display:block!important;clear:both!important;float:none!important}#vendorsys-word-editor-root .layout-page-header>*,.vendorsys-word-editor-root .layout-page-header>*,#vendorsys-word-editor-root .layout-page-footer>*,.vendorsys-word-editor-root .layout-page-footer>*,#vendorsys-word-editor-root .layout-page-header p,.vendorsys-word-editor-root .layout-page-header p,#vendorsys-word-editor-root .layout-page-footer p,.vendorsys-word-editor-root .layout-page-footer p{text-align:inherit;float:none!important;clear:both;box-sizing:content-box!important}#vendorsys-word-editor-root .layout-page-header *,.vendorsys-word-editor-root .layout-page-header *,#vendorsys-word-editor-root .layout-page-footer *,.vendorsys-word-editor-root .layout-page-footer *{box-sizing:content-box!important}#vendorsys-word-editor-root .docx-editor__pages-container,.vendorsys-word-editor-root .docx-editor__pages-container,#vendorsys-word-editor-root .docx-editor-vue__pages-container,.vendorsys-word-editor-root .docx-editor-vue__pages-container,#vendorsys-word-editor-root .prosemirror-zoom-container,.vendorsys-word-editor-root .prosemirror-zoom-container,#vendorsys-word-editor-root .prosemirror-editor-wrapper,.vendorsys-word-editor-root .prosemirror-editor-wrapper{box-sizing:content-box!important;display:block!important}#vendorsys-word-editor-root .layout-paragraph,.vendorsys-word-editor-root .layout-paragraph,#vendorsys-word-editor-root .layout-line,.vendorsys-word-editor-root .layout-line,#vendorsys-word-editor-root .layout-fragment,.vendorsys-word-editor-root .layout-fragment{box-sizing:content-box!important;display:block!important;float:none!important}#vendorsys-word-editor-root .docx-editor__scroll-container,.vendorsys-word-editor-root .docx-editor__scroll-container,#vendorsys-word-editor-root .docx-editor-vue__pages-viewport,.vendorsys-word-editor-root .docx-editor-vue__pages-viewport{display:block!important}#vendorsys-word-editor-root .layout-page-header .layout-textbox,.vendorsys-word-editor-root .layout-page-header .layout-textbox,#vendorsys-word-editor-root .layout-page-footer .layout-textbox,.vendorsys-word-editor-root .layout-page-footer .layout-textbox{width:auto!important;height:auto!important;min-width:0!important;min-height:0!important;inset:0 auto auto 50%!important;transform:translate(-50%)!important;position:absolute!important;box-sizing:content-box!important;padding:0!important}#vendorsys-word-editor-root .layout-page-header .layout-textbox .layout-paragraph,.vendorsys-word-editor-root .layout-page-header .layout-textbox .layout-paragraph,#vendorsys-word-editor-root .layout-page-footer .layout-textbox .layout-paragraph,.vendorsys-word-editor-root .layout-page-footer .layout-textbox .layout-paragraph,#vendorsys-word-editor-root .layout-page-header .layout-textbox .layout-line,.vendorsys-word-editor-root .layout-page-header .layout-textbox .layout-line,#vendorsys-word-editor-root .layout-page-footer .layout-textbox .layout-line,.vendorsys-word-editor-root .layout-page-footer .layout-textbox .layout-line{display:inline-block!important;width:auto!important;box-sizing:content-box!important}.layout-page{position:relative;box-sizing:content-box}.layout-page-header,.layout-page-footer{position:absolute;box-sizing:content-box;display:block;clear:both;float:none}.layout-page-header>*,.layout-page-footer>*{position:static!important;inset:0 auto auto 0!important;transform:none!important;margin:0!important}.layout-page-header .layout-textbox,.layout-page-footer .layout-textbox{width:auto!important;height:auto!important;min-width:0!important;min-height:0!important;left:50%!important;transform:translate(-50%)!important;top:0!important;position:absolute!important;box-sizing:content-box!important;padding:0!important}.layout-page-header .layout-textbox .layout-paragraph,.layout-page-footer .layout-textbox .layout-paragraph,.layout-page-header .layout-textbox .layout-line,.layout-page-footer .layout-textbox .layout-line{display:inline-block!important;width:auto!important}.layout-page-content{box-sizing:content-box;display:block;float:none}.ep-root .style-preview-Normal,#vendorsys-word-editor-root .style-preview-Normal,.style-preview-Normal,.ep-root .style-preview-Heading1,#vendorsys-word-editor-root .style-preview-Heading1,.style-preview-Heading1,.ep-root .style-preview-Heading2,#vendorsys-word-editor-root .style-preview-Heading2,.style-preview-Heading2,.ep-root .style-preview-Heading3,#vendorsys-word-editor-root .style-preview-Heading3,.style-preview-Heading3,.ep-root .style-preview-Title,#vendorsys-word-editor-root .style-preview-Title,.style-preview-Title,.ep-root .style-preview-Subtitle,#vendorsys-word-editor-root .style-preview-Subtitle,.style-preview-Subtitle,.ep-root .style-preview-Quote,#vendorsys-word-editor-root .style-preview-Quote,.style-preview-Quote,.ep-root .style-preview-IntenseQuote,#vendorsys-word-editor-root .style-preview-IntenseQuote,.style-preview-IntenseQuote,.ep-root .style-preview-NoSpacing,#vendorsys-word-editor-root .style-preview-NoSpacing,.style-preview-NoSpacing,.ep-root .style-preview-PlainText,#vendorsys-word-editor-root .style-preview-PlainText,.style-preview-PlainText{line-height:1.8!important;padding:2px 6px!important}.ep-root .style-preview-Normal,#vendorsys-word-editor-root .style-preview-Normal,.style-preview-Normal{font-family:STFangsong,STSong,"FangSong",serif!important;font-size:16px!important;font-weight:400!important}.ep-root .style-preview-Heading1,#vendorsys-word-editor-root .style-preview-Heading1,.style-preview-Heading1,.ep-root .style-preview-Title,#vendorsys-word-editor-root .style-preview-Title,.style-preview-Title{font-family:STHeiti,STSong,SimHei,Microsoft YaHei,sans-serif!important;font-size:18px!important;font-weight:700!important}.ep-root .style-preview-Heading2,#vendorsys-word-editor-root .style-preview-Heading2,.style-preview-Heading2{font-family:STHeiti,STSong,SimHei,Microsoft YaHei,sans-serif!important;font-size:16px!important;font-weight:700!important}.ep-root .style-preview-Heading3,#vendorsys-word-editor-root .style-preview-Heading3,.style-preview-Heading3,.ep-root .style-preview-Heading4,#vendorsys-word-editor-root .style-preview-Heading4,.style-preview-Heading4,.ep-root .style-preview-Heading5,#vendorsys-word-editor-root .style-preview-Heading5,.style-preview-Heading5,.ep-root .style-preview-Heading6,#vendorsys-word-editor-root .style-preview-Heading6,.style-preview-Heading6{font-family:STHeiti,STSong,SimHei,Microsoft YaHei,sans-serif!important;font-size:15px!important;font-weight:700!important}.ep-root .style-preview-Subtitle,#vendorsys-word-editor-root .style-preview-Subtitle,.style-preview-Subtitle{font-family:STKaiti,STSong,KaiTi,serif!important;font-size:16px!important;font-weight:400!important}.ep-root .style-preview-Quote,#vendorsys-word-editor-root .style-preview-Quote,.style-preview-Quote,.ep-root .style-preview-IntenseQuote,#vendorsys-word-editor-root .style-preview-IntenseQuote,.style-preview-IntenseQuote{font-family:STKaiti,STSong,KaiTi,serif!important;font-size:16px!important;font-style:italic!important;font-weight:400!important}.ep-root .style-preview-NoSpacing,#vendorsys-word-editor-root .style-preview-NoSpacing,.style-preview-NoSpacing,.ep-root .style-preview-PlainText,#vendorsys-word-editor-root .style-preview-PlainText,.style-preview-PlainText{font-family:STFangsong,STSong,"FangSong",serif!important;font-size:14px!important;font-weight:400!important}.ep-root [data-vendorsys-hidden-style-picker=true],#vendorsys-word-editor-root [data-vendorsys-hidden-style-picker=true],[data-vendorsys-hidden-style-picker=true]{display:none!important;visibility:hidden!important;width:0!important;height:0!important;overflow:hidden!important;padding:0!important;margin:0!important}.ep-root .vendorsys-custom-style-picker,#vendorsys-word-editor-root .vendorsys-custom-style-picker,.vendorsys-custom-style-picker{display:inline-flex!important;align-items:center!important;height:28px!important;padding:0 6px!important;box-sizing:border-box!important;background:transparent!important}.ep-root .vendorsys-custom-style-picker__label,#vendorsys-word-editor-root .vendorsys-custom-style-picker__label,.vendorsys-custom-style-picker__label{font-size:12px!important;line-height:28px!important;color:#8c8c8c!important;margin-right:4px!important;white-space:nowrap!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important}.ep-root .vendorsys-custom-style-picker>.ant-select,#vendorsys-word-editor-root .vendorsys-custom-style-picker>.ant-select,.vendorsys-custom-style-picker>.ant-select{width:150px!important;box-sizing:border-box!important}.ant-select-dropdown.vendorsys-word-style-dropdown,body>.ant-select-dropdown.vendorsys-word-style-dropdown{z-index:10000!important}:where(.ant-select-dropdown.vendorsys-word-style-dropdown) .ant-select-item,:where(.ant-select-dropdown.vendorsys-word-style-dropdown) .ant-select-item-option,:where(.ant-select-dropdown.vendorsys-word-style-dropdown) .ant-select-item-option-content,:where(.ant-select-dropdown.vendorsys-word-style-dropdown) .ant-select-item-option-content>*{font:inherit!important;line-height:inherit!important}:where(.ant-select-dropdown.vendorsys-word-style-dropdown) .ant-select-item,:where(.ant-select-dropdown.vendorsys-word-style-dropdown) .ant-select-item-option{padding-top:7px!important;padding-bottom:7px!important}:where(.ant-select-dropdown) .style-preview-Normal{font-family:STFangsong,STSong,"FangSong",serif!important}:where(.ant-select-dropdown) .style-preview-Heading1,:where(.ant-select-dropdown) .style-preview-Title{font-family:STHeiti,STSong,SimHei,Microsoft YaHei,sans-serif!important;font-weight:700!important}:where(.ant-select-dropdown) .style-preview-Heading2{font-family:STHeiti,STSong,SimHei,Microsoft YaHei,sans-serif!important;font-weight:700!important}:where(.ant-select-dropdown) .style-preview-Heading3,:where(.ant-select-dropdown) .style-preview-Heading4,:where(.ant-select-dropdown) .style-preview-Heading5,:where(.ant-select-dropdown) .style-preview-Heading6{font-family:STHeiti,STSong,SimHei,Microsoft YaHei,sans-serif!important;font-weight:700!important}:where(.ant-select-dropdown) .style-preview-Subtitle{font-family:STKaiti,STSong,KaiTi,serif!important}:where(.ant-select-dropdown) .style-preview-Quote,:where(.ant-select-dropdown) .style-preview-IntenseQuote{font-family:STKaiti,STSong,KaiTi,serif!important;font-style:italic!important}:where(.ant-select-dropdown) .style-preview-NoSpacing,:where(.ant-select-dropdown) .style-preview-PlainText{font-family:STFangsong,STSong,"FangSong",serif!important}:where(.ant-select-dropdown) .style-preview-fallback{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;color:#bfbfbf!important;font-style:italic!important}[data-theme=dark] .ant-select-dropdown.vendorsys-word-style-dropdown{background-color:#fff!important;color:#000000e0!important;color-scheme:light!important;box-shadow:0 6px 16px #0000001f,0 3px 6px -4px #00000029!important}[data-theme=dark] .ant-select-dropdown.vendorsys-word-style-dropdown .rc-virtual-list-holder,[data-theme=dark] .ant-select-dropdown.vendorsys-word-style-dropdown .rc-virtual-list-holder-inner{background-color:#fff!important}[data-theme=dark] .ant-select-dropdown.vendorsys-word-style-dropdown .ant-select-item,[data-theme=dark] .ant-select-dropdown.vendorsys-word-style-dropdown .ant-select-item-option,[data-theme=dark] .ant-select-dropdown.vendorsys-word-style-dropdown .ant-select-item-option-content{color:#000000e0}[data-theme=dark] .ant-select-dropdown.vendorsys-word-style-dropdown .ant-select-item-option-active:not(.ant-select-item-option-disabled){background-color:#f5f5f5!important}[data-theme=dark] .ant-select-dropdown.vendorsys-word-style-dropdown .ant-select-item-option-selected:not(.ant-select-item-option-disabled){background-color:#e6f4ff!important}[data-theme=dark] .ant-select-dropdown.vendorsys-word-style-dropdown .ant-select-item-option-disabled{color:#bfbfbf!important}[data-theme=dark] .ant-select-dropdown.vendorsys-word-style-dropdown ::-webkit-scrollbar-thumb{background-color:#0003!important}[data-theme=dark] .vendorsys-custom-style-picker{background:#0000000a!important}[data-theme=dark] .vendorsys-custom-style-picker .ant-select-selector{background-color:#fff!important;border-color:#d9d9d9!important}[data-theme=dark] .vendorsys-custom-style-picker .ant-select-selection-item,[data-theme=dark] .vendorsys-custom-style-picker .ant-select-selection-placeholder{color:#000000e0!important}[data-theme=dark] .vendorsys-custom-style-picker .ant-select-arrow{color:#00000073!important}[data-theme=dark] .vendorsys-custom-style-picker:hover .ant-select-selector,[data-theme=dark] .vendorsys-custom-style-picker .ant-select-focused .ant-select-selector{border-color:#4096ff!important}.ep-root [data-vendorsys-style-id=HongTouSeparator],.ep-root .vendorsys-pstyle-hongtouseparator{position:relative!important;border-top:none!important;border-left:none!important;border-right:none!important;border-bottom:none!important;padding-bottom:2px!important;box-sizing:content-box!important}.ep-root [data-vendorsys-style-id=HongTouSeparator]:after,.ep-root .vendorsys-pstyle-hongtouseparator:after{content:""!important;display:block!important;position:absolute!important;left:0!important;right:0!important;bottom:0!important;width:auto!important;height:2px!important;background-color:red!important;opacity:1!important;visibility:visible!important;pointer-events:none!important;z-index:1!important;border:none!important}#vendorsys-word-editor-root [data-vendorsys-style-id=HongTouSeparator],#vendorsys-word-editor-root .vendorsys-pstyle-hongtouseparator,.vendorsys-word-editor-root [data-vendorsys-style-id=HongTouSeparator],.vendorsys-word-editor-root .vendorsys-pstyle-hongtouseparator{position:relative!important;border-top:none!important;border-left:none!important;border-right:none!important;border-bottom:none!important;padding-bottom:2px!important;box-sizing:content-box!important}#vendorsys-word-editor-root [data-vendorsys-style-id=HongTouSeparator]:after,#vendorsys-word-editor-root .vendorsys-pstyle-hongtouseparator:after,.vendorsys-word-editor-root [data-vendorsys-style-id=HongTouSeparator]:after,.vendorsys-word-editor-root .vendorsys-pstyle-hongtouseparator:after{content:""!important;display:block!important;position:absolute!important;left:0!important;right:0!important;bottom:0!important;width:auto!important;height:2px!important;background-color:red!important;opacity:1!important;visibility:visible!important;pointer-events:none!important;z-index:1!important;border:none!important}[data-vendorsys-style-id=HongTouSeparator],.vendorsys-pstyle-hongtouseparator{position:relative!important;border-top:none!important;border-left:none!important;border-right:none!important;border-bottom:none!important;padding-bottom:2px!important;box-sizing:content-box!important}[data-vendorsys-style-id=HongTouSeparator]:after,.vendorsys-pstyle-hongtouseparator:after{content:""!important;display:block!important;position:absolute!important;left:0!important;right:0!important;bottom:0!important;width:auto!important;height:2px!important;background-color:red!important;opacity:1!important;visibility:visible!important;pointer-events:none!important;z-index:1!important;border:none!important}.vendorsys-paste-smart-tag{position:fixed;z-index:11000}.vendorsys-paste-smart-tag-trigger{display:inline-flex;align-items:center;gap:2px;padding:2px 6px;background:#fff;border:1px solid #d9d9d9;border-radius:4px;box-shadow:0 2px 8px #00000026;cursor:pointer;font-size:13px;color:#444}.vendorsys-paste-smart-tag-trigger:hover{color:#1677ff;border-color:#1677ff}.vendorsys-paste-smart-tag-trigger .arrow{font-size:9px}.vendorsys-paste-smart-tag-menu{min-width:176px;background:#fff;border:1px solid #e5e5e5;border-radius:6px;box-shadow:0 6px 16px #0000002e;padding:4px 0}.vendorsys-paste-smart-tag-menu button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:6px 14px;border:none;background:transparent;cursor:pointer;font-size:13px;color:#333;text-align:left}.vendorsys-paste-smart-tag-menu button:hover{background:#f0f5ff;color:#1677ff}.vendorsys-paste-smart-tag-menu button .key{margin-left:20px;font-size:12px;color:#999}.vendorsys-paste-smart-tag-menu button:hover .key{color:#1677ff}[data-theme=dark] .vendorsys-paste-smart-tag-trigger{background:#2b2b2b;border-color:#4a4a4a;color:#ddd}[data-theme=dark] .vendorsys-paste-smart-tag-menu{background:#2b2b2b;border-color:#4a4a4a}[data-theme=dark] .vendorsys-paste-smart-tag-menu button{color:#ddd}[data-theme=dark] .vendorsys-paste-smart-tag-menu button:hover{background:#1677ff2e;color:#69a9ff}[data-theme=dark] .vendorsys-paste-smart-tag-menu button:hover .key{color:#69a9ff}
|
|
526
|
-
`)});import*as da from"mammoth";var _i,xi=Xe(()=>{"use strict";_i=da.default??da});import np from"turndown";import{gfm as rp}from"turndown-plugin-gfm";var op,ap,sp,Si,Ei=Xe(()=>{"use strict";xi();fn();op=e=>`${e.replace(/\.(docx|doc)$/i,"")||"document"}.md`,ap=e=>{let t=new DOMParser().parseFromString(e,"text/html");return t.querySelectorAll("table").forEach(r=>{let o=r.querySelector("tr");if(!o||!o.querySelector("td"))return;let a=t.createElement("thead");o.querySelectorAll("td").forEach(s=>{let i=t.createElement("th");i.innerHTML=s.innerHTML,s.replaceWith(i)}),r.insertBefore(a,r.firstChild),a.appendChild(o)}),t.querySelectorAll("table td, table th").forEach(r=>{r.querySelectorAll("p").forEach(o=>{let a=Array.from(o.childNodes);o.nextElementSibling&&a.push(t.createTextNode(" ")),o.replaceWith(...a)}),r.querySelectorAll("br").forEach(o=>{o.replaceWith(t.createTextNode(" "))})}),t.body},sp=async e=>{let t=await e.arrayBuffer(),{value:r}=await _i.convertToHtml({arrayBuffer:t}),o=new np({headingStyle:"atx",bulletListMarker:"-",codeBlockStyle:"fenced",hr:"---"});return o.use(rp),o.turndown(ap(r))},Si=async({file:e,fileName:t})=>{let r=await sp(e);return Rt(new Blob([r],{type:"text/markdown;charset=utf-8"}),op(t)),r}});import{createEmptyDocument as ip}from"@eigenpal/docx-editor-react";function fa(){let e=ip();return ma(e),e}function ma(e){if(!e.package)return e;let t=e.package.styles?.styles||[],r=new Set(Tt.map(i=>i.styleId)),o=new Set(Tt.filter(i=>i.name).map(i=>An(i.name))),s=[...t.filter(i=>{let c=i.name&&o.has(An(i.name)),n=r.has(i.styleId);return!(c||n)}),...Tt];return e.package.styles={docDefaults:e.package.styles?.docDefaults,styles:s},e}function pp(e,t){let r=0;for(let o of e.content??[])o.type==="run"&&o.formatting?.fontSize&&(r=Math.max(r,o.formatting.fontSize));r=Math.max(r,e.formatting?.runProperties?.fontSize??0);for(let o of t(e.formatting?.styleId))if(o.rPr?.fontSize){r=Math.max(r,o.rPr.fontSize);break}return r||up}function fp(e,t){let r=[],o=a=>{a&&r.push(a.eastAsia,a.ascii,a.hAnsi,a.cs)};for(let a of e.content??[])a.type==="run"&&o(a.formatting?.fontFamily);o(e.formatting?.runProperties?.fontFamily);for(let a of t(e.formatting?.styleId))o(a.rPr?.fontFamily);return r.filter(a=>typeof a=="string"&&a.length>0)}function xo(e,t){if(Array.isArray(e)){for(let r of e)if(!(!r||typeof r!="object")&&(r.type==="paragraph"&&t(r),Array.isArray(r.content)&&xo(r.content,t),Array.isArray(r.rows))){for(let o of r.rows)if(Array.isArray(o?.cells))for(let a of o.cells)xo(a.content,t)}}}function Ti(e){let r=e.package?.document?.sections;if(!Array.isArray(r))return e;let o=e.package?.styles?.styles??[],a=s=>{let i=[],c=new Set,n=s;for(;n&&!c.has(n);){c.add(n);let l=o.find(d=>d.styleId===n);if(!l)break;i.push(l),n=l.basedOn}return i};for(let s of r){let i=s.properties?.docGrid,c=i?.linePitch;if(!c||i?.type!=="lines"&&i?.type!=="linesAndChars")continue;let n=l=>{let d=l.formatting??(l.formatting={});if(d.lineSpacing!==void 0&&d.lineSpacing!==null)return;let p=pp(l,a),_=fp(l,a).some(S=>lp.test(S))?cp:dp,b=p*_*10,x=Math.max(1,Math.ceil(b/c-1e-6));d.lineSpacing=Math.round(x*c),d.lineSpacingRule="atLeast"};xo(s.content,n);for(let l of[s.headers,s.footers])if(l instanceof Map)for(let d of l.values())xo(d?.content,n)}return e}function _o(e){if(!e)return;let t=e.eastAsia?.trim();!t||!mp.test(t)||(e.ascii=t,e.hAnsi=t)}function So(e,t){if(Array.isArray(e)){for(let r of e)if(!(!r||typeof r!="object")&&(t(r),Array.isArray(r.content)&&So(r.content,t),Array.isArray(r.rows))){for(let o of r.rows)if(Array.isArray(o?.cells))for(let a of o.cells)So(a.content,t)}}}function Pi(e){let t=e.package?.document,r=a=>{_o(a.formatting?.fontFamily),_o(a.formatting?.runProperties?.fontFamily)};for(let a of t?.sections??[]){So(a.content,r);for(let s of[a.headers,a.footers])if(s instanceof Map)for(let i of s.values())So(i?.content,r)}let o=e.package?.styles;_o(o?.docDefaults?.rPr?.fontFamily);for(let a of o?.styles??[])_o(a.rPr?.fontFamily);return e}function hp(e){let t=[];if(e.spaceBefore!==void 0||e.spaceAfter!==void 0||e.lineSpacing!==void 0||e.lineSpacingRule!==void 0||e.beforeAutospacing!==void 0||e.afterAutospacing!==void 0){let o=[];e.spaceBefore!==void 0&&o.push(`w:before="${e.spaceBefore}"`),e.spaceAfter!==void 0&&o.push(`w:after="${e.spaceAfter}"`),e.lineSpacing!==void 0&&o.push(`w:line="${e.lineSpacing}"`),e.lineSpacingRule!==void 0&&o.push(`w:lineRule="${e.lineSpacingRule}"`),e.beforeAutospacing!==void 0&&o.push(`w:beforeAutospacing="${e.beforeAutospacing?1:0}"`),e.afterAutospacing!==void 0&&o.push(`w:afterAutospacing="${e.afterAutospacing?1:0}"`),t.push(`<w:spacing ${o.join(" ")}/>`)}if(e.indentLeft!==void 0||e.indentRight!==void 0||e.indentFirstLine!==void 0){let o=[];e.indentLeft!==void 0&&o.push(`w:left="${e.indentLeft}"`),e.indentRight!==void 0&&o.push(`w:right="${e.indentRight}"`),e.indentFirstLine!==void 0&&(e.hangingIndent?o.push(`w:hanging="${Math.abs(e.indentFirstLine)}"`):o.push(`w:firstLine="${e.indentFirstLine}"`)),t.push(`<w:ind ${o.join(" ")}/>`)}return e.alignment!==void 0&&t.push(`<w:jc w:val="${e.alignment}"/>`),e.outlineLevel!==void 0&&t.push(`<w:outlineLvl w:val="${e.outlineLevel}"/>`),t.length?`<w:pPr>${t.join("")}</w:pPr>`:""}function gp(e){let t=[];if(e.fontFamily){let r=[];e.fontFamily.ascii&&r.push(`w:ascii="${_n(e.fontFamily.ascii)}"`),e.fontFamily.hAnsi&&r.push(`w:hAnsi="${_n(e.fontFamily.hAnsi)}"`),e.fontFamily.eastAsia&&r.push(`w:eastAsia="${_n(e.fontFamily.eastAsia)}"`),e.fontFamily.cs&&r.push(`w:cs="${_n(e.fontFamily.cs)}"`),r.length&&t.push(`<w:rFonts ${r.join(" ")}/>`)}if(e.bold&&t.push("<w:b/>"),e.boldCs&&t.push("<w:bCs/>"),e.italic&&t.push("<w:i/>"),e.italicCs&&t.push("<w:iCs/>"),e.color){let r=typeof e.color=="string"?e.color:e.color.rgb;r&&t.push(`<w:color w:val="${r}"/>`)}return e.fontSize!==void 0&&t.push(`<w:sz w:val="${e.fontSize}"/>`),e.fontSizeCs!==void 0&&t.push(`<w:szCs w:val="${e.fontSizeCs}"/>`),t.length?`<w:rPr>${t.join("")}</w:rPr>`:""}function Ci(e){let t=[],r=e.type?` w:type="${e.type}"`:"",o=e.styleId?` w:styleId="${_n(e.styleId)}"`:"",a=e.default?' w:default="1"':"";if(t.push(`<w:style${r}${o}${a}>`),e.name!==void 0&&t.push(`<w:name w:val="${_n(e.name)}"/>`),e.basedOn!==void 0&&t.push(`<w:basedOn w:val="${_n(e.basedOn)}"/>`),e.next!==void 0&&t.push(`<w:next w:val="${_n(e.next)}"/>`),e.link!==void 0&&t.push(`<w:link w:val="${_n(e.link)}"/>`),e.uiPriority!==void 0&&t.push(`<w:uiPriority w:val="${e.uiPriority}"/>`),e.qFormat&&t.push("<w:qFormat/>"),e.hidden&&t.push("<w:hidden/>"),e.semiHidden&&t.push("<w:semiHidden/>"),e.unhideWhenUsed&&t.push("<w:unhideWhenUsed/>"),e.pPr){let s=hp(e.pPr);s&&t.push(s)}if(e.rPr){let s=gp(e.rPr);s&&t.push(s)}return t.push("</w:style>"),t.join("")}function An(e){if(!e)return"";let t=String(e);t=t.replace(/[\uFF01-\uFF5E]/g,r=>String.fromCharCode(r.charCodeAt(0)-65248)),t=t.replace(/\u3000/g," "),t=t.toLowerCase().replace(/\s+/g,"");for(let r=1;r<=9;r++){let o=`\u6807\u9898${r}`,a=`heading${r}`;t.includes(o)&&(t=t.replace(o,a))}return(t==="\u6B63\u6587"||t==="default"||t==="standard")&&(t="normal"),t}function Mi(e){let t=[];{let c=/<w:style\b[^>]*w:styleId="([^"]+)"[^>]*>[\s\S]*?<\/w:style>/g,n;for(;n=c.exec(e);){let l=n[0],d=n[1],p=l.match(/<w:name\s+w:val="([^"]*)"[^>]*>/),w=p?p[1]:"";t.push({styleId:d,name:w,normalizedName:An(w),matchStart:n.index,matchEnd:n.index+l.length})}}if(t.length===0)return e.replace("</w:styles>",`${Tt.map(Ci).join(`
|
|
527
|
-
`)}
|
|
528
|
-
</w:styles>`);let r=new Set(Tt.map(c=>c.styleId)),o=new Set(Tt.filter(c=>c.name).map(c=>An(c.name))),a=[];for(let c of t){let n=c.normalizedName&&o.has(c.normalizedName),l=r.has(c.styleId);(n||l)&&a.push({start:c.matchStart,end:c.matchEnd})}let s=e;if(a.length>0){a.sort((c,n)=>n.start-c.start);for(let{start:c,end:n}of a)s=s.slice(0,c)+s.slice(n)}let i=Tt.map(Ci).join(`
|
|
529
|
-
`);return s=s.replace("</w:styles>",`${i}
|
|
530
|
-
</w:styles>`),s}function Fi(e,t,r){let o=0,a=new RegExp(t.source,t.flags.includes("i")?"gi":"g");for(;a.exec(e)!==null;)o++;let s=new RegExp(r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gi"),i=0;for(;s.exec(e)!==null;)i++;return Math.min(o,i)}function yp(e){let t=[],r=e;for(let a of pa){let s=new RegExp(a.open.source,a.open.flags.includes("i")?"gi":"g"),i="",c=0,n;for(;(n=s.exec(r))!==null;){let l=n.index,d=l+n[0].length,p=1,w=new RegExp(a.open.source,a.open.flags.includes("i")?"gi":"g");w.lastIndex=d;let h=new RegExp(a.close.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gi");h.lastIndex=d;let _=w.exec(r),b=h.exec(r);for(;p>0&&b!==null;){let x=_?_.index:1/0,S=b.index;if(S<x){if(p--,p===0){let I=S+a.close.length,N=r.slice(l,I),W=`__${a.guardPrefix}_${t.length}__`;t.push(N),i+=r.slice(c,l)+W,c=I;break}b=h.exec(r)}else p++,_=w.exec(r)}}i+=r.slice(c),r=i}return{guarded:r,drawings:t,placeholderReg:/__(VEN_DRAWING|VEN_PICT|VEN_VML)_(\d+)__/g}}function wp(e,t,r){return r.lastIndex=0,e.replace(r,(o,a,s)=>{let i=Number(s);return Number.isNaN(i)||i<0||i>=t.length?o:t[i]})}function Ii(e,t){let r=e.match(/^<\?xml[^?]*\?>\s*/),o=r?r[0]:"",a=r?e.slice(r[0].length):e,i=pa.map(b=>Fi(a,b.open,b.close)).reduce((b,x)=>b+x,0),{guarded:c,drawings:n,placeholderReg:l}=yp(a),{result:d,modified:p}=t(c);if(!p)return e;let w=wp(d,n,l),_=pa.map(b=>Fi(w,b.open,b.close)).reduce((b,x)=>b+x,0);return i!==_?e:o+w}function Di(e){let t=new Map;for(let r of Tt){if(!r.pPr||r.pPr.spaceBefore===void 0&&r.pPr.spaceAfter===void 0&&r.pPr.lineSpacing===void 0)continue;let o=[];r.pPr.spaceBefore!==void 0&&o.push(`w:before="${r.pPr.spaceBefore}"`),r.pPr.spaceAfter!==void 0&&o.push(`w:after="${r.pPr.spaceAfter}"`),r.pPr.lineSpacing!==void 0&&o.push(`w:line="${r.pPr.lineSpacing}"`),r.pPr.lineSpacingRule!==void 0&&o.push(`w:lineRule="${r.pPr.lineSpacingRule}"`),t.set(r.styleId,o.join(" "))}return t.size===0?e:Ii(e,r=>{let o=!1;return{result:r.replace(/(<w:pPr\b[^>]*>)([\s\S]*?)<\/w:pPr>/g,(s,i,c)=>{let n=c.match(/<w:pStyle\s+w:val=(?:"([^"]+)"|'([^']+)')[^>]*?(?:\/>|><\/w:pStyle>)/);if(!n)return s;let l=n[1]||n[2];if(!l)return s;let d=t.get(l);if(!d)return s;if(/<w:spacing[\s/>]/.test(c)){let h=`<w:spacing ${d}/>`,_=c.replace(/<w:spacing\b[^>]*\/>/,h);return _!==c&&(o=!0),`${i}${_}</w:pPr>`}let p=`<w:spacing ${d}/>`,w=c.replace(n[0],n[0]+p);return o=!0,`${i}${w}</w:pPr>`}),modified:o}})}function Ri(e){let t="HongTouSeparator";return e.includes(t)?Ii(e,r=>{let o=!1;return{result:r.replace(/(<w:pPr\b[^>]*>)([\s\S]*?)<\/w:pPr>/g,(s,i,c)=>{let n=c.match(/<w:pStyle\s+w:val=(?:"([^"]+)"|'([^']+)')[^>]*?(?:\/>|><\/w:pStyle>)/);if(!n||(n[1]||n[2])!==t)return s;let d;if(/<w:pBdr\b[^>]*>[\s\S]*?<\/w:pBdr>/.test(c))return d=c.replace(/<w:pBdr\b[^>]*>[\s\S]*?<\/w:pBdr>/,ua),d!==c&&(o=!0),`${i}${d}</w:pPr>`;let p=[{re:/<w:spacing[\s/>]/},{re:/<w:ind[\s/>]/},{re:/<w:jc[\s/>]/}],w=-1;for(let h of p){let _=c.match(h.re);if(_&&_.index!==void 0){w=_.index;break}}return w>=0?d=c.slice(0,w)+ua+c.slice(w):d=c+ua,d!==c&&(o=!0),`${i}${d}</w:pPr>`}),modified:o}}):e}var ki,Tt,lp,cp,dp,up,mp,_n,pa,ua,Ai=Xe(()=>{"use strict";ki=[{name:"\u5B8B\u4F53",fontFamily:"STSong",category:"serif"},{name:"\u9ED1\u4F53",fontFamily:"STHeiti",category:"sans-serif"},{name:"\u5FAE\u8F6F\u96C5\u9ED1",fontFamily:'"Microsoft YaHei"',category:"sans-serif"},{name:"\u6977\u4F53",fontFamily:"STKaiti",category:"serif"},{name:"\u4EFF\u5B8B",fontFamily:"STFangsong",category:"serif"},{name:"\u534E\u6587\u5B8B\u4F53",fontFamily:"STSong",category:"serif"},{name:"\u534E\u6587\u9ED1\u4F53",fontFamily:"STHeiti",category:"sans-serif"},{name:"\u534E\u6587\u6977\u4F53",fontFamily:"STKaiti",category:"serif"},{name:"\u534E\u6587\u4EFF\u5B8B",fontFamily:"STFangsong",category:"serif"},{name:"Arial",fontFamily:"Arial",category:"sans-serif"},{name:"Times New Roman",fontFamily:'"Times New Roman"',category:"serif"},{name:"Courier New",fontFamily:'"Courier New"',category:"monospace"},{name:"Georgia",fontFamily:"Georgia",category:"serif"},{name:"Verdana",fontFamily:"Verdana",category:"sans-serif"},{name:"Tahoma",fontFamily:"Tahoma",category:"sans-serif"},{name:"Helvetica",fontFamily:"Helvetica",category:"sans-serif"}],Tt=[{styleId:"Normal",type:"paragraph",name:"\u6B63\u6587",default:!0,qFormat:!0,rPr:{fontSize:30,bold:!1,fontFamily:{ascii:"STFangsong",hAnsi:"STFangsong",eastAsia:"STFangsong"}},pPr:{lineSpacing:360,lineSpacingRule:"auto"}},{styleId:"Heading1",type:"paragraph",name:"\u6807\u9898 1",basedOn:"Normal",next:"Normal",qFormat:!0,uiPriority:9,pPr:{lineSpacing:320,lineSpacingRule:"exact",spaceBefore:320,spaceAfter:320,beforeAutospacing:!1,afterAutospacing:!1,spacingExplicit:{before:!0,after:!0},outlineLevel:1},rPr:{fontSize:32,bold:!0,fontFamily:{ascii:"STHeiti",hAnsi:"STHeiti",eastAsia:"STHeiti"}}},{styleId:"Heading2",type:"paragraph",name:"\u6807\u9898 2",basedOn:"Normal",next:"Normal",qFormat:!0,uiPriority:9,pPr:{lineSpacing:450,lineSpacingRule:"exact",spaceBefore:150,spaceAfter:150,beforeAutospacing:!1,afterAutospacing:!1,spacingExplicit:{before:!0,after:!0},outlineLevel:2},rPr:{fontSize:30,bold:!0,fontFamily:{ascii:"STKaiti",hAnsi:"STKaiti",eastAsia:"STKaiti"}}},{styleId:"Heading3",type:"paragraph",name:"\u6807\u9898 3",basedOn:"Normal",next:"Normal",qFormat:!0,uiPriority:9,pPr:{lineSpacing:450,lineSpacingRule:"exact",spaceBefore:150,spaceAfter:120,beforeAutospacing:!1,afterAutospacing:!1,spacingExplicit:{before:!0,after:!0},outlineLevel:3},rPr:{fontSize:30,bold:!0,fontFamily:{ascii:"STFangsong",hAnsi:"STFangsong",eastAsia:"STFangsong"}}},{styleId:"Heading4",type:"paragraph",name:"\u6807\u9898 4",basedOn:"Normal",next:"Normal",qFormat:!0,uiPriority:9,pPr:{lineSpacing:450,lineSpacingRule:"exact",spaceBefore:150,spaceAfter:100,beforeAutospacing:!1,afterAutospacing:!1,spacingExplicit:{before:!0,after:!0},outlineLevel:4},rPr:{fontSize:30,bold:!0,fontFamily:{ascii:"STKaiti",hAnsi:"STKaiti",eastAsia:"STKaiti"}}},{styleId:"Title",type:"paragraph",name:"\u6807\u9898",basedOn:"Normal",next:"Normal",qFormat:!0,uiPriority:10,pPr:{spaceBefore:240,spaceAfter:240,beforeAutospacing:!1,afterAutospacing:!1,spacingExplicit:{before:!0,after:!0},alignment:"center"},rPr:{fontSize:44,bold:!0,fontFamily:{ascii:"STHeiti",hAnsi:"STHeiti",eastAsia:"STHeiti"}}},{styleId:"Subtitle",type:"paragraph",name:"\u526F\u6807\u9898",basedOn:"Normal",next:"Normal",qFormat:!0,uiPriority:11,pPr:{spaceBefore:200,spaceAfter:200,beforeAutospacing:!1,afterAutospacing:!1,spacingExplicit:{before:!0,after:!0},alignment:"center"},rPr:{fontSize:32,color:{rgb:"666666"},fontFamily:{ascii:"STKaiti",hAnsi:"STKaiti",eastAsia:"STKaiti"}}},{styleId:"Quote",type:"paragraph",name:"\u5F15\u7528",basedOn:"Normal",next:"Normal",qFormat:!0,uiPriority:29,pPr:{spaceBefore:200,spaceAfter:200,beforeAutospacing:!1,afterAutospacing:!1,spacingExplicit:{before:!0,after:!0},indentLeft:720},rPr:{fontSize:22,italic:!0,color:{rgb:"404040"},fontFamily:{ascii:"STKaiti",hAnsi:"STKaiti",eastAsia:"STKaiti"}}},{styleId:"IntenseQuote",type:"paragraph",name:"\u5F3A\u8C03\u5F15\u7528",basedOn:"Normal",next:"Normal",qFormat:!0,uiPriority:30,pPr:{spaceBefore:200,spaceAfter:200,beforeAutospacing:!1,afterAutospacing:!1,spacingExplicit:{before:!0,after:!0},indentLeft:720},rPr:{fontSize:22,italic:!0,bold:!0,color:{rgb:"000080"},fontFamily:{ascii:"STKaiti",hAnsi:"STKaiti",eastAsia:"STKaiti"}}},{styleId:"HongTou",type:"paragraph",name:"\u7EA2\u5934",basedOn:"Normal",next:"Normal",qFormat:!0,uiPriority:8,pPr:{alignment:"center",lineSpacing:360,lineSpacingRule:"auto",spaceBefore:240,spaceAfter:200,beforeAutospacing:!1,afterAutospacing:!1,spacingExplicit:{before:!0,after:!0}},rPr:{fontSize:68,bold:!0,color:{rgb:"FF0000"},fontFamily:{ascii:"Times New Roman",hAnsi:"Times New Roman",eastAsia:"FZXiaoBiaoSong-B05"}}},{styleId:"HongTouSeparator",type:"paragraph",name:"\u7EA2\u5934\u5206\u9694\u7EBF",basedOn:"Normal",next:"Normal",qFormat:!0,uiPriority:8,pPr:{alignment:"center",lineSpacing:360,lineSpacingRule:"auto",spaceBefore:160,spaceAfter:240,beforeAutospacing:!1,afterAutospacing:!1,spacingExplicit:{before:!0,after:!0},borders:{top:{style:"none",size:0,color:{rgb:"auto"}},left:{style:"none",size:0,color:{rgb:"auto"}},right:{style:"none",size:0,color:{rgb:"auto"}},bottom:{style:"single",size:12,space:1,color:{rgb:"FF0000"}}}},rPr:{fontSize:30,bold:!1,fontFamily:{ascii:"STFangsong",hAnsi:"STFangsong",eastAsia:"STFangsong"},color:{rgb:"000000"}}}];lp=/simsun|nsimsun|fangsong|kaiti|simhei|microsoft yahei|dengxian|宋体|仿宋|楷体|黑体|雅黑|等线|mingliu|pmingliu|microsoft jhenghei/i,cp=1.32,dp=1.2,up=24;mp=/simsun|nsimsun|songti|宋体|宋體|fangsong|仿宋|kaiti|楷体|楷體|simhei|黑体|黑體|heiti|yahei|雅黑|dengxian|等线|等線|mingliu|pmingliu|細明體|细明体|microsoft jhenghei|微軟正黑體|微软正黑体|stsong|stheiti|stkaiti|stfangsong|stzhongsong|华文|方正|fangzheng/i;_n=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""");pa=[{open:/<w:drawing(\s|>)/i,close:"</w:drawing>",guardPrefix:"VEN_DRAWING"},{open:/<w:pict(\s|>)/i,close:"</w:pict>",guardPrefix:"VEN_PICT"},{open:/<v:shape(\s|>)/i,close:"</v:shape>",guardPrefix:"VEN_VML"}];ua='<w:pBdr><w:top w:val="nil" w:sz="0" w:space="0" w:color="auto"/><w:left w:val="nil" w:sz="0" w:space="0" w:color="auto"/><w:right w:val="nil" w:sz="0" w:space="0" w:color="auto"/><w:bottom w:val="single" w:sz="12" w:space="1" w:color="FF0000"/></w:pBdr>'});var Ki={};Qt(Ki,{WordEditor:()=>Wi,default:()=>Cf});import{useCallback as nt,useRef as at,useEffect as ht,useState as mt,useMemo as bp,forwardRef as vp,useImperativeHandle as _p}from"react";import{createPortal as xp}from"react-dom";import{Modal as Ni,Button as gr,Space as ha,message as Oe,Popconfirm as Sp,Tag as ga,Select as Eo,InputNumber as yr}from"antd";import{SaveOutlined as Ep,FileWordFilled as Cp,UploadOutlined as Fp,CloseOutlined as ya,CloudServerOutlined as kp,CloudOutlined as Li,FormatPainterOutlined as Tp,FileMarkdownOutlined as Pp,AlignLeftOutlined as Mp,SnippetsOutlined as Ip,DownOutlined as Dp}from"@ant-design/icons";import{DocxEditor as Rp}from"@eigenpal/docx-editor-react";import{PluginHost as Ap}from"@eigenpal/docx-editor-react/plugin-api";import{setGoogleFontsEnabled as Np}from"@eigenpal/docx-editor-core";import{applyStyle as wa,getStyleId as Lp,getDocumentStyleResolver as Bp,extractSelectionState as Op,setAlignment as $p,setIndentLeft as zp,setIndentRight as Hp,setIndentFirstLine as Up,setLineSpacing as jp,getParagraphAlignment as Vp}from"@eigenpal/docx-editor-core/prosemirror";import{setSpaceBefore as Zp,setSpaceAfter as Wp}from"@eigenpal/docx-editor-core/prosemirror/commands/paragraph";import{insertPageBreak as Kp}from"@eigenpal/docx-editor-core/prosemirror/commands/pageBreak";import{parseDocx as Gp}from"@eigenpal/docx-editor-core/docx";import wr from"jszip";import{zhCN as Xp}from"@eigenpal/docx-editor-i18n/zh-CN";import"@eigenpal/docx-editor-react/styles.css";import{CacheUserInfo as qp}from"@spacecorexdev/core/utils";import{useEffectResize as Yp}from"@spacecorexdev/core/utils";import{TextSelection as Jp}from"prosemirror-state";import{keymap as Qp}from"prosemirror-keymap";import{splitBlockAs as ef}from"prosemirror-commands";import{isSuggestionModeActive as Ui}from"@eigenpal/docx-editor-core/prosemirror/plugins";import{jsx as he,jsxs as it}from"react/jsx-runtime";function ba(e){return(e?.package?.styles?.styles??[]).filter(r=>r.type==="paragraph"&&!r.hidden&&!r.semiHidden)}function nf(e){return tf.some(t=>t.test(e))}var vt,ji,tf,rf,_a,of,af,sf,lf,Sa,Bi,Kn,cf,Ea,Vi,df,uf,pf,ff,mf,hf,gf,Oi,$i,Ca,Zi,xa,yf,Fa,wf,bf,va,vf,zi,Co,Fo,Dr,Hi,_f,xf,Sf,Ef,Wi,Cf,Gi=Xe(()=>{"use strict";vi();Vn();Ko();Ei();lr();Ai();vt="application/vnd.openxmlformats-officedocument.wordprocessingml.document",ji=/^word\/(?:document|header\d+|footer\d+|footnotes|endnotes)\.xml$/;tf=[/^word\/header\d*\.xml$/i,/^word\/footer\d*\.xml$/i,/^word\/_rels\/header\d*\.xml\.rels$/i,/^word\/_rels\/footer\d*\.xml\.rels$/i,/^word\/media\//i,/^word\/embeddings\//i,/^word\/charts\//i,/^word\/diagrams\//i,/^word\/theme\/theme\d+\.xml$/i];rf={1:"Heading1",2:"Heading2",3:"Heading3",4:"Heading4",9:"Title",0:"Normal"},_a=new Set(["comment","insertion","deletion"]),of=Tp,af=(e,t,r,o)=>{let a=e.state.schema,s=new Map(o.map(l=>[l.type.name,l])),i=e.state.tr,c=!1;for(let l of Object.keys(a.marks)){if(_a.has(l))continue;let d=a.marks[l],p=s.get(l);p?(i=i.addMark(t,r,p),c=!0):e.state.doc.rangeHasMark(t,r,d)&&(i=i.removeMark(t,r,d),c=!0)}if(!c)return;let n=(e.state.storedMarks??[]).filter(l=>_a.has(l.type.name));i=i.setStoredMarks([...o,...n]),e.dispatch(i.setMeta("addToHistory",!0)),e.focus()},sf=e=>{let[t,r]=mt(!1),o=at([]),a=at(null),s=at(e);s.current=e;let i=l=>{let{selection:d,storedMarks:p}=l.state;return(d.empty?p??d.$from.marks():lf(l,d.from,d.to)).filter(h=>!_a.has(h.type.name))},c=nt(()=>{let l=s.current();if(!l){Oe.warning("\u7F16\u8F91\u5668\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5");return}l.focus();let d=i(l);if(d.length===0){Oe.warning("\u5F53\u524D\u9009\u533A\u6CA1\u6709\u53EF\u590D\u5236\u7684\u5B57\u7B26\u683C\u5F0F\uFF0C\u8BF7\u9009\u4E2D\u5E26\u683C\u5F0F\u7684\u6587\u672C\u540E\u518D\u8BD5");return}let{selection:p}=l.state;o.current=d,a.current={from:p.from,to:p.to},r(!0),Oe.success(`\u5DF2\u590D\u5236 ${d.length} \u9879\u5B57\u7B26\u683C\u5F0F\uFF0C\u8BF7\u9009\u4E2D\u6587\u672C\u5E94\u7528`)},[]),n=nt(()=>{if(t){r(!1),o.current=[],a.current=null;return}c()},[t,c]);return ht(()=>{if(!t)return;let l=()=>{requestAnimationFrame(()=>{let d=s.current();if(!d)return;let{selection:p}=d.state;if(p.empty)return;let w=a.current;w&&p.from===w.from&&p.to===w.to||(af(d,p.from,p.to,o.current),r(!1),o.current=[],a.current=null)})};return window.addEventListener("pointerup",l),()=>window.removeEventListener("pointerup",l)},[t]),ht(()=>{if(!t)return;let l=d=>{d.key==="Escape"&&(r(!1),o.current=[],a.current=null)};return window.addEventListener("keydown",l),()=>window.removeEventListener("keydown",l)},[t]),{active:t,toggle:n}},lf=(e,t,r)=>{let o=new Set,a=[];return e.state.doc.nodesBetween(t,r,(s,i,c,n)=>{if(c==null||n==null)return!0;let l=c.child(n);if(!l||!l.isText)return!0;for(let d of l.marks){let p=`${d.type.name}:${JSON.stringify(d.attrs)}`;o.has(p)||(o.add(p),a.push(d))}return!0}),a.length===0?[...e.state.selection.$from.marks()]:a},Sa=e=>e.replace(/&/g,"&").replace(/"/g,'"').replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">"),Bi=(e,t)=>{let r=e.match(new RegExp(`\\b${t}="([^"]*)"`));return r?Sa(r[1]):""},Kn=e=>{let t=[];return e.replace(/\\/g,"/").split("/").forEach(r=>{if(!(!r||r===".")){if(r===".."){t.pop();return}t.push(r)}}),t.join("/")},cf=e=>{let r=Kn(e).match(/^(.*)\/_rels\/([^/]+)\.rels$/);if(!r)return"";let o=Kn(`${r[1]}/${r[2]}`),a=o.lastIndexOf("/");return a>=0?o.slice(0,a):""},Ea=(e,t)=>{let r=Sa(t).split("#")[0].split("?")[0];if(!r||/^[a-z][a-z\d+\-.]*:/i.test(r))return"";if(r.startsWith("/"))return Kn(r.slice(1));let o=cf(e);return Kn(o?`${o}/${r}`:r)},Vi=e=>e._data?.uncompressedSize??0,df=e=>{let r=Kn(e).match(/^(.*)\/_rels\/([^/]+)\.rels$/);return r?Kn(`${r[1]}/${r[2]}`):""},uf=e=>{let t=new Set,r=/(?:\b\w+:)?(?:embed|link|id)="([^"]+)"/g,o;for(;o=r.exec(e);)t.add(o[1]);return t},pf=async e=>{let t=new Set,r=Object.values(e.files).filter(o=>!o.dir&&o.name.endsWith(".rels"));return await Promise.all(r.map(async o=>{let a=df(o.name),s=a?e.file(a):null;if(!s)return;let i=await s.async("text"),c=uf(i);if(c.size===0)return;let n=await o.async("text"),l=/<Relationship\b[^>]*\/>/g,d;for(;d=l.exec(n);){let p=Bi(d[0],"Id"),w=Bi(d[0],"Target"),h=Ea(o.name,w);c.has(p)&&h.startsWith("word/media/")&&t.add(h)}})),t},ff=async(e,t)=>{let r=Object.values(e.files).filter(a=>!a.dir&&a.name.endsWith(".rels")),o=0;return await Promise.all(r.map(async a=>{let s=await a.async("text"),i=s.replace(/<Relationship\b[^>]*\bTarget="([^"]+)"[^>]*\/>/g,(c,n)=>{let l=Ea(a.name,n);return!l.startsWith("word/media/")||t.has(l)?c:(o+=1,"")});o>0&&i!==s&&e.file(a.name,i)})),o},mf=async(e,t,r)=>{let o=e.file(t);if(!o)return 0;let a=await o.async("text"),s=0,i=a.replace(/<Relationship\b[^>]*\bTarget="([^"]+)"[^>]*\/>/g,(c,n)=>Ea(t,n).startsWith(r)?(s+=1,""):c);return s>0&&e.file(t,i),s},hf=async(e,t)=>{let r=e.file("[Content_Types].xml");if(!r)return 0;let o=await r.async("text"),a=0,s=o.replace(/<Override\b[^>]*\bPartName="([^"]+)"[^>]*\/>/g,(i,c)=>Kn(Sa(c).replace(/^\//,"")).startsWith(t)?(a+=1,""):i);return a>0&&e.file("[Content_Types].xml",s),a},gf=async e=>{let t=Object.values(e.files).filter(a=>!a.dir&&a.name.startsWith("word/fonts/"));if(t.length===0)return{removedCount:0,removedSize:0};let r=0;t.forEach(a=>{r+=Vi(a),e.remove(a.name)}),await mf(e,"word/_rels/fontTable.xml.rels","word/fonts/"),await hf(e,"word/fonts/");let o=e.file("word/fontTable.xml");if(o){let a=await o.async("text");e.file("word/fontTable.xml",a.replace(/<w:embed(?:Regular|Bold|Italic|BoldItalic)\b[^>]*\/>/g,""))}return{removedCount:t.length,removedSize:r}},Oi=async e=>{try{let t=await wr.loadAsync(await e.arrayBuffer()),r=await pf(t),o=Object.values(t.files).filter(d=>!d.dir&&d.name.startsWith("word/media/")),a=0,s=0;o.forEach(d=>{r.has(d.name)||(a+=1,s+=Vi(d),t.remove(d.name))});let i=await ff(t,r),c=await gf(t);if(a+=c.removedCount,s+=c.removedSize,a===0)return console.log(`[Word\u4F18\u5316] \u672A\u53D1\u73B0\u53EF\u6E05\u7406\u8D44\u6E90\uFF0C\u6587\u4EF6\u5927\u5C0F ${(e.size/1024/1024).toFixed(2)}MB`),e;let n=await t.generateAsync({type:"arraybuffer",compression:"DEFLATE",compressionOptions:{level:9}}),l=new Blob([n],{type:vt});return console.log(`[Word\u4F18\u5316] \u6E05\u7406\u672A\u4F7F\u7528\u5A92\u4F53 ${a-c.removedCount} \u4E2A\u3001\u5A92\u4F53\u5173\u7CFB ${i} \u4E2A\u3001\u5D4C\u5165\u5B57\u4F53 ${c.removedCount} \u4E2A\uFF0C\u7EA6 ${(s/1024/1024).toFixed(2)}MB\uFF0C\u6587\u4EF6\u5927\u5C0F ${(e.size/1024/1024).toFixed(2)}MB -> ${(l.size/1024/1024).toFixed(2)}MB`),l}catch(t){return console.warn("[Word\u4F18\u5316] \u6E05\u7406\u672A\u5F15\u7528\u5A92\u4F53\u5931\u8D25\uFF0C\u5C06\u4F7F\u7528\u539F\u59CB\u5BFC\u51FA\u6587\u4EF6",t),e}},$i=(e,t)=>{let r=URL.createObjectURL(e),o=document.createElement("a");o.href=r,o.download=t,o.dataset.optimizedDocxDownload="true",o.style.display="none",document.body.appendChild(o),o.click(),document.body.removeChild(o),setTimeout(()=>URL.revokeObjectURL(r),0)},Ca=e=>{let t=new DOMParser().parseFromString(e,"application/xml"),r=t.getElementsByTagName("parsererror")[0];if(r)throw new Error(r.textContent||"XML \u89E3\u6790\u5931\u8D25");return t},Zi=(e,t)=>{let r=new Set(t);return Array.from(e.getElementsByTagName("*")).filter(o=>r.has(o.localName))},xa=(e,t)=>{Zi(e,t).forEach(r=>{r.parentNode?.removeChild(r)})},yf=(e,t)=>{Zi(e,t).forEach(r=>{let o=r.parentNode;if(o){for(;r.firstChild;)o.insertBefore(r.firstChild,r);o.removeChild(r)}})},Fa=e=>new XMLSerializer().serializeToString(e),wf=e=>{let t=Ca(e);return xa(t,["del","moveFrom"]),yf(t,["ins","moveTo"]),xa(t,["pPrChange","rPrChange","tblPrChange","trPrChange","tcPrChange","sectPrChange","tblGridChange","cellIns","cellDel","cellMerge"]),Fa(t)},bf=e=>{let t=Ca(e);return xa(t,["trackRevisions","revisionView"]),Fa(t)},va=async e=>{let t=await wr.loadAsync(await e.arrayBuffer()),r=Object.values(t.files).filter(s=>!s.dir&&ji.test(s.name));await Promise.all(r.map(async s=>{let i=await s.async("text");t.file(s.name,wf(i))}));let o=t.file("word/settings.xml");if(o){let s=await o.async("text");t.file("word/settings.xml",bf(s))}let a=await t.generateAsync({type:"arraybuffer",compression:"DEFLATE",compressionOptions:{level:9}});return new Blob([a],{type:vt})},vf=e=>{let t=Ca(e),r=Array.from(t.getElementsByTagName("*")).filter(n=>n.localName==="fldSimple");for(let n of r){if(!(n.getAttribute("w:instr")||n.getAttribute("instr")||"").includes("TOC"))continue;let d=Array.from(n.getElementsByTagName("*")).filter(p=>p.localName==="hyperlink");for(let p of d){let w=p.parentNode;if(w){for(;p.firstChild;)w.insertBefore(p.firstChild,p);w.removeChild(p)}}}let o=Array.from(t.getElementsByTagName("*")),a=[],s=[];for(let n=0;n<o.length;n++){let l=o[n];if(l.localName==="fldChar"){let d=l.getAttribute("w:fldCharType")||l.getAttribute("fldCharType")||"";if(d==="begin")a.push({type:"",beginEl:l});else if(d==="end"&&a.length>0){let p=a.pop();if(p.type==="TOC"){let w=o.indexOf(p.beginEl),h=n;w>=0&&s.push({beginIdx:w,endIdx:h})}}}else if(l.localName==="instrText"){let d=l.textContent||"";if(a.length>0&&!a[a.length-1].type){let p=d.trim().match(/^\\?([A-Z][A-Z0-9]*)/i);p&&(a[a.length-1].type=p[1].toUpperCase())}}}let i=[];for(let n of s)for(let l=n.beginIdx;l<=n.endIdx;l++){let d=o[l];(d.localName==="fldChar"||d.localName==="instrText")&&i.push(d)}for(let n of i){let l=n.parentNode;l&&l.removeChild(n)}let c=Array.from(t.getElementsByTagName("*")).filter(n=>n.localName==="r");for(let n of c)if(!Array.from(n.children).some(d=>d.localName!=="rPr")){let d=n.parentNode;d&&d.removeChild(n)}return Fa(t)},zi=async e=>{let t=await wr.loadAsync(await e.arrayBuffer()),r=Object.values(t.files).filter(a=>!a.dir&&ji.test(a.name));await Promise.all(r.map(async a=>{let s=await a.async("text");t.file(a.name,vf(s))}));let o=await t.generateAsync({type:"arraybuffer",compression:"DEFLATE",compressionOptions:{level:9}});return new Blob([o],{type:vt})},Co=async e=>{let t=await wr.loadAsync(await e.arrayBuffer()),r=!1,o=t.file("word/styles.xml");if(o){let s=await o.async("text"),i=Mi(s);i!==s&&(t.file("word/styles.xml",i),r=!0)}let a=t.file("word/document.xml");if(a){let s=await a.async("text"),i=Di(s);i=Ri(i),i!==s&&(t.file("word/document.xml",i),r=!0)}if(r){let s=await t.generateAsync({type:"arraybuffer",compression:"DEFLATE",compressionOptions:{level:9}});return new Blob([s],{type:vt})}return e},Fo=567,Dr=20,Hi={alignment:"left",indentLeftCm:0,indentRightCm:0,indentSpecial:"none",indentSpecialCm:0,spaceBeforePt:0,spaceAfterPt:0,lineRule:"auto",lineValue:1},_f=new Set(["paraId","textId","bookmarks","sectionBreakType","pPrIns","pPrDel","pPrChange","renderedPageBreakBefore","_originalFormatting","_originalRunBoundaries","_sectionProperties"]),xf=ef(e=>({type:e.type,attrs:Object.fromEntries(Object.entries(e.attrs??{}).filter(([t])=>!_f.has(t)))})),Sf={id:"paragraph-formatting-enter",name:"\u56DE\u8F66\u4FDD\u7559\u6BB5\u843D\u683C\u5F0F / Ctrl+Enter \u5206\u9875",proseMirrorPlugins:[Qp({Enter:(e,t)=>Ui(e)?!1:xf(e,t),"Mod-Enter":(e,t)=>Kp(e,t)})]},Ef=[Sf],Wi=vp(({visible:e,hiddenClose:t=!1,isCreate:r=!1,onClose:o,fileName:a,onUpload:s,initialBlob:i,readOnly:c,uploadPercent:n,isOffline:l,isLocalOnly:d,hasUnsyncedChanges:p,onSaveLocalBlob:w},h)=>{let[_,b]=mt(!1),x=at(null),S=at(null),I=at(null),N=at(!1),W=at(!1),H=at(null),M=at(null),ee=at(!1),y=at(i),R=at(!1),G=at(()=>{}),P=at(new Map),L=at(p),j=at(w);L.current=p,j.current=w;let[O,z]=mt(null),[q,v]=mt(null),[ye,ne]=mt(0),[A,re]=mt(null),[_e,le]=mt(!1),[$e,Y]=mt(!r),[Z,xe]=mt(!1),[Q,ke]=mt(!1),[Ee,Be]=mt("Normal"),[be,pe]=mt([]),K=at([]);K.current=be;let ae=nt(f=>{try{let m=Bp(f);if(!m)return;let C=(m.getParagraphStyles()??[]).filter(k=>!k.hidden);if(C.length===0)return;pe(k=>k.length===C.length&&k.every((V,D)=>V.styleId===C[D].styleId&&V.name===C[D].name)?k:C)}catch{}},[]),[te,fe]=mt(!1);ht(()=>{if(!e)return;let f=m=>{fe(g=>{if(!g)return g;let C=m.target;if(!C)return g;let k=C.closest('.vendorsys-custom-style-picker, [data-vendorsys-custom="true"]'),V=C.closest(".ant-select-dropdown.vendorsys-word-style-dropdown");return!k&&!V?!1:g})};return document.addEventListener("mouseup",f,{capture:!0,passive:!0}),()=>{document.removeEventListener("mouseup",f,{capture:!0})}},[e]);let Ce=nt(f=>{let m={};if(!f)return m;let g=f.rPr,C=f.pPr,k={},V=g?.fontSize??g?.fontSizeCs;if(typeof V=="number"&&V>0){let de=V*2/3;k.fontSize=`${Math.max(11,de)}px`}(g?.bold===!0||g?.boldCs===!0)&&(k.fontWeight=700),(g?.italic===!0||g?.italicCs===!0)&&(k.fontStyle="italic");let D=g?.fontFamily;if(D){let de=[];D.eastAsia&&de.push(`"${D.eastAsia}"`),D.ascii&&D.ascii!==D.eastAsia&&de.push(`"${D.ascii}"`),D.hAnsi&&D.hAnsi!==D.ascii&&D.hAnsi!==D.eastAsia&&de.push(`"${D.hAnsi}"`),de.push("system-ui","-apple-system","BlinkMacSystemFont",'"Segoe UI"',"Roboto",'"Helvetica Neue"',"Arial","sans-serif"),k.fontFamily=de.join(", ")}typeof C?.lineSpacing=="number"&&C.lineSpacing>0?k.lineHeight=C.lineSpacing/240:k.fontSize&&(k.lineHeight=1.4);let U=g?.color,ve=null;if(typeof U=="string"&&U)ve=U.trim();else if(U&&typeof U=="object"){let de=U;typeof de.rgb=="string"?ve=de.rgb.trim():typeof de.color=="string"&&(ve=de.color.trim())}if(ve&&(/^[0-9a-fA-F]{6}$/.test(ve)?k.color=`#${ve}`:/^[0-9a-fA-F]{3,8}$/.test(ve)?k.color=`#${ve}`:ve.startsWith("#")&&(k.color=ve)),g?.underline&&g.underline.style&&g.underline.style!=="none"&&(k.textDecoration="underline",g.underline.color)){let de=g.underline.color;typeof de=="string"&&/^[0-9a-fA-F]{6}$/.test(de)&&(k.textDecorationColor=`#${de}`)}if((g?.strike===!0||g?.doubleStrike===!0)&&(k.textDecoration=k.textDecoration?`${k.textDecoration} line-through`:"line-through"),C?.borders&&typeof C.borders=="object"){let de=C.borders,Ve=(ie,Pe)=>{let Ge=de[ie];if(!Ge||typeof Ge!="object")return;let J=Ge,Le=J.style;if(!Le||Le==="none"||Le==="nil")return;let Ne="solid";switch(Le){case"single":case"thick":case"triple":case"outset":case"inset":Ne="solid";break;case"double":case"doubleWave":Ne="double";break;case"dotted":Ne="dotted";break;case"dashed":case"dashSmallGap":case"dashDotStroked":Ne="dashed";break;case"wave":Ne="solid";break;default:Ne="solid"}let Fe=1,Ft=J.size;typeof Ft=="number"&&Ft>0&&(Fe=Math.max(1,Math.round(Ft*.1667)));let ge="currentColor",st=J.color;if(st&&typeof st=="object"){let tt=st;if(typeof tt.rgb=="string"&&/^[0-9a-fA-F]{6}$/.test(tt.rgb))ge=`#${tt.rgb}`;else if(typeof tt.themeColor=="string")switch(tt.themeColor){case"hlink":ge="#2F5496";break;case"accent1":ge="#4472C4";break;case"accent2":ge="#ED7D31";break;case"accent3":ge="#A5A5A5";break;case"accent4":ge="#FFC000";break;case"accent5":ge="#5B9BD5";break;case"accent6":ge="#70AD47";break;case"lt1":case"background1":ge="#FFFFFF";break;default:ge="#000000";break}}else typeof st=="string"&&/^[0-9a-fA-F]{6}$/.test(st)&&(ge=`#${st}`);k[Pe]=`${Fe}px ${Ne} ${ge}`};Ve("top","borderTop"),Ve("right","borderRight"),Ve("bottom","borderBottom"),Ve("left","borderLeft")}return k},[]),rt=nt((f,m,g)=>{let C=[];return f.nodesBetween(m,g,k=>{if(!k||k.type.name!=="paragraph")return!0;let V=k.attrs?.paraId;return V&&C.push({paraId:V,node:k}),!0}),C},[]),lt=nt(()=>{let f=x.current?.getEditorRef()?.getState();if(!f)return"Normal";try{let C=Op(f);if(C&&C.styleId)return C.styleId}catch{}try{let C=Lp(f);if(C)return C}catch{}let{selection:m}=f,g=[m.$from,m.$anchor,m.$head];for(let C of g){if(!C)continue;for(let V=C.depth;V>=0;V--){let D=C.node(V);if(D&&D.type.name==="paragraph"){let U=D.attrs?.styleId;if(U)return U}}let k=C.parent;if(k&&k.type&&k.type.name==="paragraph"){let V=k.attrs?.styleId;if(V)return V}}return"Normal"},[]),Pt=sf(()=>x.current?.getEditorRef()?.getView()??null),[pt,bt]=mt(null),cn=at(null),Lt=at({x:0,y:0}),Ct=at(!1);ht(()=>{let f=m=>{Lt.current={x:m.clientX,y:m.clientY}};return window.addEventListener("mousemove",f,!0),()=>window.removeEventListener("mousemove",f,!0)},[]),ht(()=>{if(!e||Z||c||Q)return;let f=m=>{let g=x.current?.getEditorRef()?.getView();if(!g?.dom||!g.dom.contains(m.target)||Ui(g.state))return;let C=m.clipboardData?.getData("text/html")??"",k=m.clipboardData?.getData("text/plain")??"";if(!C&&!k)return;let V=g.state.selection.from;setTimeout(()=>{let D=x.current?.getEditorRef()?.getView();if(!D)return;let U=D.state.selection.head;if(!(U<=V)){try{let ve=D.state.schema.marks,de=ve.highlight??ve.backgroundColor??ve.background;de&&D.state.doc.rangeHasMark(V,U,de)&&D.dispatch(D.state.tr.removeMark(V,U,de))}catch{}try{let{x:ve,y:de}=Lt.current,ie=document.getElementById("vendorsys-word-editor-root")?.getBoundingClientRect();if(ie){let Pe=ie.left+8,Ge=ie.right-130,J=ie.top+8,Le=ie.bottom-40;ve=Math.min(Math.max(ve,Pe),Ge),de=Math.min(Math.max(de,J),Le)}bt({x:ve,y:de+6,from:V,to:U,text:k,expanded:!1})}catch{}}},50)};return window.addEventListener("paste",f,!0),()=>window.removeEventListener("paste",f,!0)},[e,Z,c,Q]);let xt=nt(f=>{let m=pt;if(!m)return;if(f==="formatted"){bt({...m,expanded:!0});return}let g=x.current?.getEditorRef()?.getView();if(!g)return;g.focus();let{doc:C}=g.state,k=Math.min(m.from,C.content.size),V=Math.min(m.to,C.content.size);if(V<=k)return;Ct.current=!0,g.dispatch(g.state.tr.setSelection(Jp.create(C,k,V)));let D=g.state.selection.from;if(g.pasteText(m.text),f==="text"){let Ve=g.state.selection.head;Ve>D&&g.dispatch(g.state.tr.removeMark(D,Ve))}let U=g.state.selection.head,{x:ve,y:de}=Lt.current;Ct.current=!1,bt({...m,from:D,to:U,x:ve,y:de+6,expanded:!0})},[pt]);ht(()=>{if(!pt)return;let f=pt.expanded,m=D=>{cn.current?.contains(D.target)||bt(null)},g=D=>{if(D.key==="Escape"){bt(null);return}if(!f)return;let U=D.key.toLowerCase(),ve=U==="w"?"formatted":U==="m"?"match":U==="t"?"text":null;ve&&(D.preventDefault(),D.stopPropagation(),xt(ve))},C=()=>bt(null),k=()=>{Ct.current||bt(null)},V=x.current?.getEditorRef()?.getView()?.dom;return V?.addEventListener("input",k),document.addEventListener("mousedown",m,!0),document.addEventListener("keydown",g,!0),window.addEventListener("scroll",C,!0),()=>{V?.removeEventListener("input",k),document.removeEventListener("mousedown",m,!0),document.removeEventListener("keydown",g,!0),window.removeEventListener("scroll",C,!0)}},[pt,xt]);let[Yt,Qe]=mt(!1),[Ue,je]=mt(Hi),et=nt(()=>{Qe(!0);try{let m=x.current?.getEditorRef()?.getView()?.state,g=(()=>{let ie=m?.selection.$from.parent;return ie&&ie.type.name==="paragraph"?ie.attrs:null})(),C=ie=>ie&&ie>0?Number((ie/Fo).toFixed(2)):0,k=ie=>ie&&ie>0?Number((ie/Dr).toFixed(2)):0,V=(m?Vp(m):null)??g?.alignment??"left",D=g?.lineSpacingRule??"auto",U=g?.lineSpacing,ve=U&&U>0?Number(D==="auto"?(U/240).toFixed(2):(U/Dr).toFixed(2)):1,de=g?.indentFirstLine??0,Ve=!!g?.hangingIndent;je({alignment:V,indentLeftCm:C(g?.indentLeft),indentRightCm:C(g?.indentRight),indentSpecial:de>0?Ve?"hanging":"firstLine":"none",indentSpecialCm:C(de),spaceBeforePt:k(g?.spaceBefore),spaceAfterPt:k(g?.spaceAfter),lineRule:D,lineValue:ve})}catch(f){console.warn("[WordEditor] \u8BFB\u53D6\u6BB5\u843D\u683C\u5F0F\u5931\u8D25\uFF0C\u4F7F\u7528\u9ED8\u8BA4\u503C",f),je(Hi)}},[]),Ie=nt(()=>{let f=x.current?.getEditorRef()?.getView();if(!f){Oe.warning("\u7F16\u8F91\u5668\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u7A0D\u5019\u518D\u8BD5");return}let m=Ue.indentSpecial==="none"?0:Math.round(Ue.indentSpecialCm*Fo),g=Ue.lineRule==="auto"?Math.round(Ue.lineValue*240):Math.round(Ue.lineValue*Dr),C=[$p(Ue.alignment),zp(Math.round(Ue.indentLeftCm*Fo)),Hp(Math.round(Ue.indentRightCm*Fo)),Up(m,Ue.indentSpecial==="hanging"),Zp(Math.round(Ue.spaceBeforePt*Dr)),Wp(Math.round(Ue.spaceAfterPt*Dr)),jp(g,Ue.lineRule)],k=!1;for(let V of C)V(f.state,f.dispatch,f)&&(k=!0);if(!k){Oe.warning("\u5F53\u524D\u9009\u533A\u65E0\u6CD5\u8BBE\u7F6E\u6BB5\u843D\u683C\u5F0F\uFF0C\u8BF7\u628A\u5149\u6807\u653E\u5728\u6B63\u6587\u6BB5\u843D\u4E2D\u518D\u8BD5");return}Qe(!1),f.focus()},[Ue]);Yp(()=>{b(!0)},()=>{b(!1)}),ht(()=>{if(!e||c||Q)return;let f=m=>{if(!(m.ctrlKey||m.metaKey)||!m.altKey)return;let C=rf[m.key];if(!C)return;let k=m.target?.tagName;if(k==="INPUT"||k==="TEXTAREA")return;m.preventDefault();let V=x.current,D=V?.getEditorRef()?.getView();if(!V||!D)return;let{doc:U,selection:ve}=D.state,de=ve.from,Ve=ve.to,ie=rt(U,de,Ve);if(ie.length===0)return;let Pe=0;for(let{paraId:Ge}of ie)try{V.setParagraphStyle({paraId:Ge,styleId:C})&&Pe++}catch{}if(Pe===0)try{wa(C)(D.state,D.dispatch,D),Pe=ie.length}catch{}Pe>0&&Be(C)};return window.addEventListener("keydown",f),()=>window.removeEventListener("keydown",f)},[e,c,Q,rt]);let Ae=at(null),Ke=nt(async f=>{if(!f)return;let m=Date.now(),g=Ae.current;if(g&&g.styleId===f&&m-g.ts<50){fe(!1);return}Ae.current={styleId:f,ts:m};let C=x.current,k=C?.getEditorRef()?.getView();if(!C||!k){Oe.warning("\u7F16\u8F91\u5668\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5"),Be(f),fe(!1);return}let{doc:V,selection:D}=k.state,U=D.from,ve=D.to,de=rt(V,U,ve),Ve=null;if(de.length===0){let Pe=[D.$from,D.$anchor,D.$head];for(let Ge of Pe){if(!Ge)continue;for(let Le=Ge.depth;Le>=0;Le--){let Ne=Ge.node(Le);if(Ne&&Ne.type&&Ne.type.name==="paragraph"&&Ne.attrs?.paraId){Ve=Ne.attrs.paraId;break}}if(Ve)break;let J=Ge.parent;if(J&&J.type&&J.type.name==="paragraph"&&J.attrs?.paraId){Ve=J.attrs.paraId;break}}}let ie=!1;if(de.length>0)for(let{paraId:Pe}of de)try{C.setParagraphStyle({paraId:Pe,styleId:f})&&(ie=!0)}catch{}else if(Ve)try{ie=C.setParagraphStyle({paraId:Ve,styleId:f})}catch{}if(!ie)try{wa(f)(k.state,k.dispatch,k),ie=!0}catch(Pe){console.warn("applyStyle \u4E5F\u5931\u8D25\u4E86:",Pe),ie=!1}if(ie&&Ee===f)try{wa(f)(k.state,k.dispatch,k)}catch{}ie&&(setTimeout(()=>{try{let Pe=lt();Be(Pe)}catch{Be(f)}},0),k.focus(),[0,80,250].forEach(Pe=>{setTimeout(()=>{try{G.current?.()}catch{}},Pe)})),fe(!1)},[lt,rt,Ee]),zn=nt(()=>{let f=new Map;(K.current??[]).forEach(J=>{f.has(J.styleId)||f.set(J.styleId,J)}),Tt.forEach(J=>{f.has(J.styleId)||f.set(J.styleId,J)});let m=(K.current??[]).map(J=>{let Ne=(J.name?J.name.trim():"")||`\u6837\u5F0F ${J.styleId}`;return{value:J.styleId,label:Ne,isFromFile:!0,className:`style-preview-file-${J.styleId}`,style:Ce(J)}}),g=new Map;m.forEach(J=>g.set(J.value,J));for(let J of Tt){if(g.has(J.styleId))continue;let Le=J.name?String(J.name).trim():"";g.set(J.styleId,{value:J.styleId,label:Le||J.styleId,isPreset:!0,className:`style-preview-${J.styleId}`,style:Ce(J)})}let C=Array.from(g.values()),k=new Set(Tt.map(J=>J.styleId)),V=new Map;C.forEach(J=>{let Le=An(J.label);if(!Le){let st=V.get(`__unnamed__:${J.value}`)??{kept:J,allStyleIds:[J.value]};V.set(`__unnamed__:${J.value}`,st);return}let Ne=V.get(Le);if(!Ne){V.set(Le,{kept:J,allStyleIds:[J.value]});return}let Fe=st=>{let tt=0;return(st.isPreset||k.has(st.value))&&(tt+=4),/[\u4e00-\u9fa5]/.test(String(st.label))&&(tt+=2),st.isFromFile&&!/[A-Za-z0-9]/.test(String(st.label).trim())&&(tt+=1),/^\d+$/.test(String(st.value))&&(tt-=0),tt},Ft=Fe(Ne.kept);Fe(J)>Ft?(Ne.allStyleIds.push(Ne.kept.value),Ne.kept=J):Ne.allStyleIds.push(J.value)});let D=[],U=new Map;V.forEach(({kept:J,allStyleIds:Le})=>{D.push(J),Le.forEach(Ne=>{U.has(Ne)||U.set(Ne,J.value)}),U.has(J.value)||U.set(J.value,J.value)});let ve=new Set(D.map(J=>J.value)),de=U.get(Ee)??Ee;if(ve.has(Ee)||ve.has(de))return D;let ie=f.get(Ee)??null,Pe=`\u6837\u5F0F ${Ee}`;return[{value:Ee,label:Pe,className:"style-preview-fallback",style:Ce(ie),disabled:!0},...D]},[Ee,Ce]);ht(()=>{if(!e)return;let f=document.getElementById("vendorsys-word-style-preview-css");f||(f=document.createElement("style"),f.id="vendorsys-word-style-preview-css",f.setAttribute("data-vendorsys-generated","true"),document.head.appendChild(f));let m=new Map;be.forEach(C=>{m.has(C.styleId)||m.set(C.styleId,C)}),Tt.forEach(C=>{m.has(C.styleId)||m.set(C.styleId,C)});let g=[];return m.forEach((C,k)=>{let V=[`.style-preview-file-${k} .vendorsys-word-style-option-label`,`.style-preview-${k} .vendorsys-word-style-option-label`,`.style-preview-file-${k}`,`.style-preview-${k}`].join(", "),D=Ce(C),U=[];D.fontSize&&U.push(`font-size: ${D.fontSize} !important;`),D.fontWeight!==void 0&&D.fontWeight!==null&&U.push(`font-weight: ${D.fontWeight} !important;`),D.fontStyle&&U.push(`font-style: ${D.fontStyle} !important;`),D.fontFamily&&U.push(`font-family: ${D.fontFamily} !important;`),D.lineHeight!==void 0&&D.lineHeight!==null&&U.push(`line-height: ${D.lineHeight} !important;`),D.color&&U.push(`color: ${D.color} !important;`),D.textDecoration&&U.push(`text-decoration: ${D.textDecoration} !important;`),U.length>0&&g.push(`${V} { ${U.join(" ")} }`)}),f.textContent=g.join(`
|
|
531
|
-
`),()=>{f&&f.parentNode}},[e,be,Ce]),ht(()=>{if(e)return;let f=document.getElementById("vendorsys-word-style-preview-css");f&&f.parentNode&&f.parentNode.removeChild(f)},[e]),_p(h,()=>x.current);let En=nt(async f=>{let m=new Map;try{let g=await wr.loadAsync(f),C=[];g.forEach((k,V)=>{V.dir||C.push(V.async("uint8array").then(D=>{m.set(k,D)}))}),await Promise.all(C)}catch(g){console.warn("[WordEditor] docx \u5FEB\u7167\u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u6253\u5F00\uFF0C\u955C\u50CF\u56DE\u5199\u81EA\u52A8\u8DF3\u8FC7\uFF09\uFF1A",g)}return m},[]),dn=nt(async(f,m)=>{if(!m||m.size===0)return f;try{let g=await wr.loadAsync(f),C=!1,k=[];return m.forEach((V,D)=>{if(!nf(D))return;let U=g.file(D);U&&k.push(U.async("uint8array").then(ve=>{if(ve.length!==V.length){g.file(D,V),C=!0;return}for(let de=0;de<ve.length;de++)if(ve[de]!==V[de]){g.file(D,V),C=!0;return}}))}),await Promise.all(k),C?await g.generateAsync({type:"blob",mimeType:vt,compression:"DEFLATE",compressionOptions:{level:9}}):f}catch(g){return console.warn("[WordEditor] \u4E0D\u53EF\u53D8 part \u955C\u50CF\u56DE\u5199\u5931\u8D25\uFF08\u5C06\u4F7F\u7528\u539F\u59CB\u4FDD\u5B58\u8F93\u51FA\uFF0C\u4E0D\u5F71\u54CD\u6B63\u6587\u5185\u5BB9\uFF09\uFF1A",g),f}},[]),Hn=nt(async(f,m)=>{let g=f.slice(0);En(new Blob([g],{type:vt})).then(k=>{P.current=k});let C=g;try{C=await(await zi(new Blob([g],{type:vt}))).arrayBuffer()}catch(k){console.warn("\u4FEE\u590D TOC \u5B57\u6BB5\u5931\u8D25\uFF0C\u4F7F\u7528\u539F\u59CB\u6587\u4EF6:",k)}try{C=await(await Co(new Blob([C],{type:vt}))).arrayBuffer()}catch(k){console.warn("\u5408\u5E76\u9884\u8BBE\u6837\u5F0F\u5931\u8D25\uFF0C\u4F7F\u7528\u539F\u59CB\u6587\u4EF6:",k)}try{let k=await Gp(C);if(ma(k),Ti(k),Pi(k),pe(ba(k)),!m){M.current=null,v(k),z(null),ke(!1),ne(V=>V+1);return}try{let V=new Blob([C],{type:vt}),U=await(await va(V)).arrayBuffer();M.current=g,z(U),v(k),ke(!0)}catch(V){console.warn("\u751F\u6210\u9ED8\u8BA4\u6700\u7EC8\u7248\u9884\u89C8\u5931\u8D25\uFF0C\u5C06\u6253\u5F00\u539F\u59CB\u4FEE\u8BA2\u89C6\u56FE:",V),M.current=null,z(C),v(k),ke(!1)}}catch(k){if(console.warn("\u89E3\u6790\u6587\u6863\u6216\u5E94\u7528\u9884\u8BBE\u6837\u5F0F\u5931\u8D25\uFF0C\u56DE\u9000\u5230\u539F\u59CB\u52A0\u8F7D\u65B9\u5F0F:",k),!m){M.current=null,z(C),v(null),ke(!1),ne(V=>V+1);return}try{let V=new Blob([C],{type:vt}),U=await(await va(V)).arrayBuffer();M.current=g,z(U),v(null),ke(!0)}catch(V){console.warn("\u751F\u6210\u9ED8\u8BA4\u6700\u7EC8\u7248\u9884\u89C8\u5931\u8D25\uFF0C\u5C06\u6253\u5F00\u539F\u59CB\u4FEE\u8BA2\u89C6\u56FE:",V),M.current=null,z(C),v(null),ke(!1)}}ne(k=>k+1),ee.current=!1},[En]);ht(()=>{Np(!1)},[]),ht(()=>{e&&(async()=>{try{let m=qp.currentLocalUser();m?.id?re(m.id):re(null)}catch(m){console.error("\u83B7\u53D6\u7528\u6237\u4FE1\u606F\u5931\u8D25:",m),re(null)}})()},[e]),ht(()=>{y.current=i,(async()=>{if(e&&A)if(i)try{xe(!0);let m=await i.arrayBuffer();await Hn(m,!!c),le(!1),Oe.info("\u5DF2\u52A0\u8F7D\u6587\u4EF6")}catch(m){console.error("\u52A0\u8F7D\u6587\u4EF6\u5931\u8D25:",m),Oe.error("\u52A0\u8F7D\u6587\u4EF6\u5931\u8D25"),z(null),v(null),le(!1)}finally{xe(!1)}else if(r&&a&&A)try{let m=fa();v(m),pe(ba(m)),z(null),M.current=null,ke(!1),ne(g=>g+1),le(!1),Oe.info("\u5DF2\u521B\u5EFA\u65B0\u6587\u6863")}catch(m){console.error("\u521B\u5EFA\u65B0\u6587\u6863\u5931\u8D25:",m);try{let g=fa();v(g),pe(ba(g)),z(null),M.current=null,ke(!1),ne(C=>C+1)}catch(g){console.error("\u521B\u5EFA\u7A7A\u6587\u6863\u5931\u8D25:",g),v(null),z(null)}le(!1)}else z(null),v(null),M.current=null,ke(!1),le(!1)})()},[e,a,A,i,r,c,Hn]),ht(()=>{if(e&&!Z&&(O||q)){let f=setTimeout(()=>{S.current&&S.current.refreshPluginStates()},5e3);return()=>clearTimeout(f)}},[e,Z,O,q]);let gt=nt(async()=>{try{if(!x.current)return Oe.error("\u7F16\u8F91\u5668\u672A\u521D\u59CB\u5316"),null;N.current=!0,W.current=!0;let f=await x.current.save({selective:!1});if(!f)return null;let m=new Blob([f],{type:vt}),g=await Co(m),C=await dn(g,P.current);return await Oi(C)}catch(f){return console.error("\u5BFC\u51FA Word \u5931\u8D25:",f),null}finally{N.current=!1,W.current=!1}},[dn]),Un=nt(f=>{if(N.current)return;if(Q&&M.current){let g=new Blob([M.current],{type:vt});H.current=Promise.resolve(g),Oe.info("\u6700\u7EC8\u7248\u4EC5\u7528\u4E8E\u9884\u89C8\uFF0C\u5DF2\u4FDD\u5B58\u5E26\u4FEE\u8BA2\u7684\u539F\u6587\u4EF6");return}let m=new Blob([f],{type:vt});H.current=Co(m).then(g=>dn(g,P.current)).then(g=>Oi(g)).catch(g=>(console.error("\u5185\u7F6E\u83DC\u5355\u4FDD\u5B58\u4F18\u5316\u5931\u8D25:",g),Oe.error("\u4FDD\u5B58\u4F18\u5316\u5931\u8D25\uFF0C\u5C06\u4F7F\u7528\u539F\u59CB\u6587\u4EF6"),m))},[Q,dn]);ht(()=>{if(!e)return;let f=HTMLAnchorElement.prototype.click;return HTMLAnchorElement.prototype.click=function(){let g=H.current,C=this.href.startsWith("blob:")&&/\.docx$/i.test(this.download||"");if(g&&C&&this.dataset.optimizedDocxDownload!=="true"){let k=this.href;H.current=null,g.then(V=>{$i(V,a),Oe.success("\u5DF2\u4FDD\u5B58\u4F18\u5316\u540E\u7684\u6587\u4EF6")}).catch(V=>{console.error("\u5185\u7F6E\u83DC\u5355\u4FDD\u5B58\u5931\u8D25:",V),Oe.error("\u4FDD\u5B58\u5931\u8D25")}).finally(()=>{setTimeout(()=>URL.revokeObjectURL(k),0)});return}return f.call(this)},()=>{HTMLAnchorElement.prototype.click=f,H.current=null}},[a,e]);let Cn=nt(async()=>{Q||!a||!A||!x.current||(I.current&&clearTimeout(I.current),le(!0),I.current=setTimeout(async()=>{try{let f=await gt();if(f&&(await $t(A,a,"docx",await f.arrayBuffer()),le(!1),j.current))try{await j.current(f,a,!1)}catch(m){console.warn("\u81EA\u52A8\u4FDD\u5B58\u65F6\u540C\u6B65 localFiles store \u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u672C\u5730\u4FDD\u5B58\uFF09:",m)}}catch(f){console.error("\u81EA\u52A8\u4FDD\u5B58\u5230 IndexedDB \u5931\u8D25:",f)}},1e4))},[gt,a,Q,A]),u=nt(async()=>{try{if(!x.current){Oe.error("\u7F16\u8F91\u5668\u672A\u521D\u59CB\u5316");return}if(!A){Oe.error("\u65E0\u6CD5\u83B7\u53D6\u7528\u6237\u4FE1\u606F");return}let f=await gt();if(f){if(await $t(A,a,"docx",await f.arrayBuffer()),le(!1),j.current)try{await j.current(f,a)}catch(m){console.warn("\u540C\u6B65\u672C\u5730\u6587\u4EF6\u5185\u5BB9\u5230 localFiles store \u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u672C\u5730\u4FDD\u5B58\uFF09:",m)}Oe.success("\u5DF2\u4FDD\u5B58\u5230\u672C\u5730\u7F13\u5B58")}}catch(f){console.error("\u4FDD\u5B58\u5230\u672C\u5730\u7F13\u5B58\u5931\u8D25:",f),Oe.error("\u4FDD\u5B58\u5931\u8D25")}},[gt,a,A]),[E,F]=mt(!1),T=nt(async()=>{F(!0),Oe.loading({key:"word-export-pdf",content:"\u6B63\u5728\u4FDD\u5B58\u6587\u6863\u5185\u5BB9\u2026",duration:0});try{let f=await gt();if(!f){Oe.error("\u5BFC\u51FA\u5931\u8D25\uFF1A\u65E0\u6CD5\u83B7\u53D6\u6587\u6863\u5185\u5BB9");return}await io({file:f,fileName:a,onProgress:(m,g)=>{Oe.loading({key:"word-export-pdf",content:`\u6B63\u5728\u5BFC\u51FA\u7B2C ${m} / ${g} \u9875\u2026`,duration:0})}})}catch(f){console.error("Word \u5BFC\u51FA PDF \u5931\u8D25:",f),Oe.error(`\u5BFC\u51FA PDF \u5931\u8D25\uFF1A${f?.message||"\u672A\u77E5\u9519\u8BEF"}`)}finally{Oe.destroy("word-export-pdf"),F(!1)}},[gt,a]),[$,B]=mt(!1),ce=nt(async()=>{B(!0),Oe.loading({key:"word-export-md",content:"\u6B63\u5728\u4FDD\u5B58\u6587\u6863\u5185\u5BB9\u2026",duration:0});try{let f=await gt();if(!f){Oe.error("\u5BFC\u51FA\u5931\u8D25\uFF1A\u65E0\u6CD5\u83B7\u53D6\u6587\u6863\u5185\u5BB9");return}Oe.loading({key:"word-export-md",content:"\u6B63\u5728\u8F6C\u6362\u4E3A Markdown\u2026",duration:0}),await Si({file:f,fileName:a})}catch(f){console.error("Word \u5BFC\u51FA Markdown \u5931\u8D25:",f),Oe.error(`\u5BFC\u51FA Markdown \u5931\u8D25\uFF1A${f?.message||"\u672A\u77E5\u9519\u8BEF"}`)}finally{Oe.destroy("word-export-md"),B(!1)}},[gt,a]),se=bp(()=>[{key:"markdown",icon:he(Pp,{}),label:"\u5BFC\u51FAMarkdown",disabled:$,onClick:()=>{ce()}}],[$,ce]),X=nt(()=>{i&&$i(i,a)},[i,a]),oe=!r&&i?X:void 0,me=nt(async()=>{if(!s){Oe.error("\u672A\u63D0\u4F9B\u4E0A\u4F20\u529F\u80FD");return}try{let f=await gt();if(!f)return;let m=y.current;await s(m,f,a),y.current=f,A&&(await Pn(A,a,"docx"),le(!1),Y(!0)),R.current=!1}catch(f){console.error("\u4E0A\u4F20\u5931\u8D25:",f),Oe.error("\u4E0A\u4F20\u5931\u8D25")}},[a,s,gt,A]),Te=nt(()=>{if(!Q&&ee.current&&!W.current){try{let f=lt();Be(m=>m===f?m:f)}catch{}if(Y(!1),Cn(),!R.current&&!L.current&&j.current&&A&&x.current){R.current=!0;let f=j.current;(async()=>{try{let m=await gt();m?await f(m,a):R.current=!1}catch(m){R.current=!1,console.warn("\u7F16\u8F91\u65F6\u7ACB\u5373\u6807\u8BB0\u672A\u540C\u6B65\u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u7F16\u8F91\uFF0C\u7B49\u5F85\u81EA\u52A8/\u624B\u52A8\u4FDD\u5B58\u5373\u53EF\uFF09:",m)}})()}}},[Cn,Q,A,gt,a,lt]);ht(()=>{if(!e||Z)return;let f=setTimeout(()=>{ee.current=!0},2e3);return()=>clearTimeout(f)},[ye,e,Z]);let De=nt(async()=>{try{if(Q){let k=M.current;if(!k){Oe.warning("\u672A\u627E\u5230\u539F\u59CB\u4FEE\u8BA2\u5185\u5BB9\uFF0C\u8BF7\u91CD\u65B0\u6253\u5F00\u6587\u4EF6");return}let V=k.slice(0);try{V=await(await zi(new Blob([k],{type:vt}))).arrayBuffer()}catch(D){console.warn("\u4FEE\u590D TOC \u5B57\u6BB5\u5931\u8D25\uFF0C\u4F7F\u7528\u539F\u59CB\u6587\u4EF6:",D)}try{V=await(await Co(new Blob([V],{type:vt}))).arrayBuffer()}catch(D){console.warn("\u5408\u5E76\u9884\u8BBE\u6837\u5F0F\u5931\u8D25\uFF0C\u4F7F\u7528\u539F\u59CB\u6587\u4EF6:",D)}z(V),v(null),ke(!1),ne(D=>D+1),Oe.info("\u5DF2\u5207\u6362\u5230\u4FEE\u8BA2\u89C6\u56FE");return}if(!O){Oe.warning("\u5F53\u524D\u6587\u6863\u6682\u4E0D\u652F\u6301\u6700\u7EC8\u7248\u9884\u89C8");return}let f=O.slice(0),m=new Blob([f],{type:vt}),C=await(await va(m)).arrayBuffer();M.current=f,z(C),v(null),ke(!0),ne(k=>k+1),Oe.success("\u5DF2\u5207\u6362\u5230\u6700\u7EC8\u7248\u9884\u89C8")}catch(f){console.error("\u5207\u6362\u6700\u7EC8\u7248\u9884\u89C8\u5931\u8D25:",f),Oe.error("\u5207\u6362\u6700\u7EC8\u7248\u9884\u89C8\u5931\u8D25")}},[O,Q]);return ht(()=>{if(!e)return;let f=m=>{(m.ctrlKey||m.metaKey)&&m.key==="s"&&(m.preventDefault(),u())};return window.addEventListener("keydown",f),()=>window.removeEventListener("keydown",f)},[e,u]),ht(()=>{if(!e)return;let f="#vendorsys-word-editor-root",m=()=>{let ie=document.querySelector(f);if(!ie)return!1;let Pe=ie.querySelectorAll(".layout-page");Pe.forEach(Fe=>{Fe.style.position="relative",Fe.style.boxSizing="content-box"}),ie.querySelectorAll(".layout-page-header").forEach(Fe=>{Fe.style.position="absolute",Fe.style.display="block",Fe.style.boxSizing="content-box",Fe.style.setProperty("float","none","important"),Fe.style.clear="both",Array.from(Fe.children).forEach(ge=>{ge instanceof HTMLElement&&(ge.style.position="static",ge.style.top="0px",ge.style.left="0px",ge.style.right="auto",ge.style.bottom="auto",ge.style.transform="none",ge.style.margin="0")}),Fe.querySelectorAll(".layout-textbox").forEach(ge=>{ge.style.width="auto",ge.style.height="auto",ge.style.minWidth="0",ge.style.minHeight="0",ge.style.left="50%",ge.style.transform="translateX(-50%)",ge.style.top="0",ge.style.bottom="auto",ge.style.right="auto",ge.style.padding="0",ge.querySelectorAll(".layout-paragraph, .layout-line").forEach(tt=>{tt.style.display="inline-block",tt.style.width="auto"})})});let J=ie.querySelectorAll(".layout-page-footer"),Le=!1;return J.forEach(Fe=>{Le=!0,Fe.style.position="absolute",Fe.style.display="block",Fe.style.boxSizing="content-box",Fe.style.setProperty("float","none","important"),Fe.style.clear="both",Array.from(Fe.children).forEach(ge=>{ge instanceof HTMLElement&&(ge.style.position="static",ge.style.top="0px",ge.style.left="0px",ge.style.right="auto",ge.style.bottom="auto",ge.style.transform="none",ge.style.margin="0")}),Fe.querySelectorAll(".layout-textbox").forEach(ge=>{ge.style.width="auto",ge.style.height="auto",ge.style.minWidth="0",ge.style.minHeight="0",ge.style.left="50%",ge.style.transform="translateX(-50%)",ge.style.top="0",ge.style.bottom="auto",ge.style.right="auto",ge.style.padding="0",ge.querySelectorAll(".layout-paragraph, .layout-line").forEach(tt=>{tt.style.display="inline-block",tt.style.width="auto"})})}),ie.querySelectorAll(".layout-page-content").forEach(Fe=>{Fe.style.boxSizing="content-box",Fe.style.display="block"}),Pe.length>0||Le},g=()=>{try{let ie=lt();Be(Pe=>Pe===ie?Pe:ie)}catch{}},C="HongTouSeparator",k="data-vendorsys-style-id",V=()=>{try{let ie=x.current;if(!ie)return;let Pe=ie.getEditorRef?.()?.getView?.(),Ge=document.querySelector("#vendorsys-word-editor-root");if(!Ge)return;let J=0;Ge.querySelectorAll(`[${k}="${C}"]`).forEach(Ye=>{Ye.removeAttribute(k),Ye.classList.remove("vendorsys-pstyle-hongtouseparator"),J++});let Le=0,Ne=0;if(Pe&&Pe.domAtPos&&Pe.state?.doc){let Ye=Pe.state.doc,yt=[];if(Ye.descendants((Vt,Fn)=>{if(!Vt||Vt.type?.name!=="paragraph")return!0;let un=Vt.attrs?.styleId;if(un!=null&&yt.push({pos:Fn,styleId:un,type:typeof un}),un!==C)return!0;try{let Bt=Pe.domAtPos(Fn);if(!Bt||!Bt.node)return!0;let Mt=Bt.node,kt=null,Ot=12,Zt=0;for(;Mt&&Zt<Ot;){if(Mt instanceof HTMLElement){if(Mt.classList?.contains("layout-paragraph")){kt=Mt;break}let Jt=Mt.style?.borderBottom||window.getComputedStyle(Mt).borderBottom;if(Jt&&/(255,0,0|#ff0000|#F{2}0{2,4})/i.test(Jt.replace(/\s+/g,""))){kt=Mt;break}}Mt=Mt.parentNode,Zt++}if(!kt&&Bt.node instanceof HTMLElement?kt=Bt.node:!kt&&Bt.node instanceof Text&&Bt.node.parentElement instanceof HTMLElement&&(kt=Bt.node.parentElement),!kt)return!0;kt.getAttribute(k)!==C&&(kt.setAttribute(k,C),kt.classList.add("vendorsys-pstyle-hongtouseparator"),Le++)}catch{}return!0}),yt.length>0){let Vt=yt.filter(Fn=>Fn.type!=="string");Vt.length>0&&console.debug(`[WordEditor] \u7EA2\u5934\u5206\u9694\u7EBF PM \u626B\u63CF\uFF1A\u53D1\u73B0 ${Vt.length} \u4E2A paragraph \u7684 styleId \u662F\u975E\u5B57\u7B26\u4E32\uFF08likely \u6570\u5B57\u7D22\u5F15\uFF09\uFF1A`,Vt.slice(0,5),"\u2192 \u8FD9\u90E8\u5206\u4F1A\u7531\u4E0B\u9762\u7684 DOM \u7279\u5F81\u626B\u63CF\u547D\u4E2D\u6253\u6807\uFF0C\u4E0D\u5F71\u54CD\u663E\u793A\u3002")}}let Fe=/(255,\s*0,\s*0|#ff0000|#F{2}0{2,4}|rgb\(255,\s*0,\s*0\))/i,Ft=/solid/i,ge=/^(none|0px|initial|inherit|transparent|unset|)\s*$/i,st=Ye=>{if(!Ye)return!1;let yt=Ye.replace(/\s+/g,"");return Fe.test(yt)&&Ft.test(yt)},tt=Ye=>{if(!Ye)return!0;let yt=Ye.replace(/\s+/g,"");return ge.test(yt)?!0:!(Ft.test(yt)&&Fe.test(yt))},Yr=new Set;Ge.querySelectorAll(".layout-paragraph, .layout-line, div, p, section, article").forEach(Ye=>{!Ye||!Ye.isConnected||Ye.closest('[role="toolbar"]')||Ye.closest("[data-vendorsys-hidden-style-picker]")||Ye.classList?.contains("ant-select-dropdown")||Yr.add(Ye)}),Yr.forEach(Ye=>{if(Ye&&Ye.getAttribute(k)!==C)try{let yt=window.getComputedStyle(Ye),Vt=yt.borderBottom||"",Fn=yt.borderTop||"",un=yt.borderLeft||"",Bt=yt.borderRight||"",Mt=st(Vt),kt=tt(Fn),Ot=tt(un),Zt=tt(Bt);Mt&&kt&&Ot&&Zt&&(Ye.setAttribute(k,C),Ye.classList.add("vendorsys-pstyle-hongtouseparator"),Ne++)}catch{}}),(J>0||Le>0||Ne>0)&&console.debug(`[WordEditor] \u7EA2\u5934\u5206\u9694\u7EBF\u6253\u6807\uFF1A\u6E05\u65E7 ${J} \u6761 + PM \u547D\u4E2D ${Le} \u6761 + DOM \u7279\u5F81\u547D\u4E2D ${Ne} \u6761`)}catch(ie){console.debug("[WordEditor] \u6807\u8BB0\u7EA2\u5934\u5206\u9694\u7EBF\u6BB5\u843D\u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u4F7F\u7528\uFF09:",ie)}},D=()=>{try{let ie=document.querySelector('[role="combobox"][aria-label="\u9009\u62E9\u6BB5\u843D\u6837\u5F0F"]');if(!ie)return;let Pe=ie,Ge=0;for(;Pe&&Ge<6&&(Pe=Pe.parentElement,!!Pe);){Ge++;let Le=Pe.className??"";if(typeof Le=="string"&&/toolbar|item|group|segment|wrapper|cell|flex items-center/i.test(Le))break}let J=Pe??ie;J.style.setProperty("display","none","important"),J.setAttribute("data-vendorsys-hidden-style-picker","true")}catch(ie){console.debug("[WordEditor] \u9690\u85CF\u81EA\u5E26\u6BB5\u843D\u6837\u5F0F\u9009\u62E9\u5668\u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u4F7F\u7528\uFF09:",ie)}},U=()=>{let ie=m();return g(),V(),D(),ie};G.current=U,U();let ve=[];[100,300,600,1e3,2e3].forEach(ie=>{ve.push(window.setTimeout(U,ie))});let de=window.setInterval(()=>{try{G.current?.()}catch{}},500),Ve=null;try{let ie=document.querySelector(f);ie&&(Ve=new MutationObserver(Pe=>{let Ge=!1;Pe.forEach(J=>{let Le=[];J.target instanceof HTMLElement&&Le.push(J.target),J.addedNodes&&J.addedNodes.forEach(Fe=>Le.push(Fe)),J.removedNodes&&J.removedNodes.forEach(Fe=>Le.push(Fe));let Ne=!1;for(let Fe of Le)if(Fe instanceof HTMLElement&&(Fe.classList?.contains("ant-select-dropdown")||Fe.querySelector?.(".ant-select-dropdown")||Fe.closest?.(".ant-select-dropdown"))){Ne=!0;break}if(!Ne){if(J.type==="childList"&&J.addedNodes&&J.addedNodes.length>0){Ge=!0;return}if(J.type==="attributes"){let Fe=J.target;if(Fe instanceof HTMLElement&&(Fe.classList?.contains("layout-paragraph")||Fe.classList?.contains("layout-line")||Fe.closest?.(".layout-page-content, .layout-paragraph, .layout-line"))){Ge=!0;return}}}}),Ge&&requestAnimationFrame(U)}),Ve.observe(ie,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style","class"]}))}catch{}return()=>{ve.forEach(ie=>window.clearTimeout(ie)),window.clearInterval(de),Ve&&Ve.disconnect(),G.current=()=>{}}},[e,ye,Z,Q,lt]),ht(()=>(e&&(Y(!r),R.current=!1,M.current=null,ke(!1),I.current&&(clearTimeout(I.current),I.current=null)),()=>{I.current&&(clearTimeout(I.current),I.current=null)}),[e,r]),it(Ni,{open:e,onCancel:o,keyboard:!1,closeIcon:null,footer:null,width:"100%",zIndex:100,style:{top:0,maxWidth:"100vw"},styles:{body:{height:"100dvh",padding:0},wrapper:{}},className:"ant-modal-nopadding ant-modal-fullscreen",getContainer:!1,transitionName:"none",children:[he("style",{children:`
|
|
532
|
-
.bg-doc-surface[data-testid=title-bar] {
|
|
533
|
-
padding-top: 0px !important;
|
|
534
|
-
padding-bottom: 0px !important;
|
|
535
|
-
}
|
|
536
|
-
.bg-doc-surface[data-testid=title-bar] > div {
|
|
537
|
-
padding-top: 0px !important;
|
|
538
|
-
padding-bottom: 0px !important;
|
|
539
|
-
}
|
|
540
|
-
.bg-doc-surface[data-testid=title-bar] > div:first-of-type svg {
|
|
541
|
-
display: none;
|
|
542
|
-
}
|
|
543
|
-
`}),it("div",{className:"h-full flex flex-col bg-white p-0 m-0",children:[it("div",{className:`flex items-center justify-between px-4 py-2 pr-0 border-b flex-shrink-0 ${l?"bg-orange-50 border-orange-200":"bg-gray-50 border-gray-200"}`,children:[he("span",{children:"\xA0"}),!c&&he("span",{children:"\xA0"}),it("div",{className:"flex items-center gap-2 flex-wrap min-w-[40%]",children:[!l&&d&&he(ga,{icon:he(Li,{}),color:"orange",style:{margin:0},children:"\u672C\u5730\u6587\u4EF6"}),!l&&!d&&p&&he(ga,{icon:he(Li,{}),color:"warning",style:{margin:0},children:"\u6709\u672A\u540C\u6B65\u4FEE\u6539"}),!l&&!d&&!p&&!s?he(ga,{icon:he(kp,{}),color:"default",style:{margin:0},children:"\u540C\u6B65\u5B8C\u6210"}):null,he(Cp,{className:"text-blue-600"}),it("span",{className:"text-sm font-medium",children:[_e?"*":"",a]})]}),!c&&!t&&it(ha,{wrap:!0,align:"center",direction:"horizontal",children:[he(Et,{onExportPdf:T,onDownload:oe,exportingPdf:E,extraItems:se,buttonProps:{style:{paddingLeft:4,paddingRight:4}}}),!Q&&s&&he(gr,{type:"text",style:{paddingLeft:4,paddingRight:4},title:"\u6BCF\u6B21\u4E0A\u4F20\u5C06\u4FDD\u7559\u4E00\u4E2A\u5386\u53F2\u7248\u672C\uFF0C\u6700\u591A\u4FDD\u755910\u4E2A\u7248\u672C",icon:he(Fp,{}),onClick:me,disabled:n!==void 0&&n<1,children:n!==void 0&&n<1?`\u4E0A\u4F20\u4E2D ${Math.round(n*100)}%`:"\u4E0A\u4F20"}),!Q&&he(gr,{type:"primary",icon:he(Ep,{}),onClick:u,children:"\u4FDD\u5B58"}),!c&&(_e||!$e)?he(Sp,{title:"\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F",description:_e?"\u4FEE\u6539\u672A\u4FDD\u5B58\uFF0C\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F":"\u4FEE\u6539\u672A\u4E0A\u4F20\uFF0C\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F",onConfirm:o,okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88",children:he(gr,{type:"text",className:"ml-3 mr-2",icon:he(ya,{className:"w-6 h-6"})})}):he(ya,{onClick:o,className:"ml-3 mr-2 w-6 h-6"})]}),c&&!t&&it(ha,{children:[he(Et,{onExportPdf:T,onDownload:oe,exportingPdf:E,extraItems:se,buttonProps:{style:{paddingLeft:4,paddingRight:4}}}),he(ya,{onClick:o,className:"ml-3 mr-2 w-6 h-6"})]}),t&&he(Et,{onExportPdf:T,onDownload:oe,exportingPdf:E,extraItems:se,buttonProps:{style:{paddingLeft:4,paddingRight:4}}})]}),it("div",{id:"vendorsys-word-editor-root",className:"vendorsys-word-editor-root flex-1 overflow-auto",style:{height:"calc(100% - 50px)",position:"relative"},children:[e&&!Z&&he(Ap,{ref:S,plugins:Ef,children:he(Rp,{ref:x,initialZoom:_?.75:1,author:A||"tj",document:q??void 0,documentBuffer:q?void 0:O??void 0,onSave:Un,onChange:Te,onSelectionChange:()=>{try{let f=x.current?.getEditorRef()?.getState();f&&ae(f);let m=lt();Be(g=>g===m?g:m)}catch{}},mode:Q||c?"viewing":"editing",showToolbar:!0,showFileOpen:!0,showHelpMenu:!1,showMarginGuides:!1,toolbarExtra:it(ha,{size:4,children:[!Q&&!c&&it("div",{className:"vendorsys-custom-style-picker","data-vendorsys-custom":"true",style:{display:"inline-flex",alignItems:"center",gap:4,marginRight:4,padding:"0 6px",background:"rgba(255,255,255,0.04)",borderRadius:4,height:28,boxSizing:"border-box"},onMouseDown:f=>{f.preventDefault()},children:[he("span",{className:"vendorsys-custom-style-picker__label",style:{fontSize:12,color:"#8c8c8c",whiteSpace:"nowrap"},children:"\u6837\u5F0F\uFF1A"}),he(Eo,{size:"small",style:{width:150},value:(()=>{let f=zn();if(f.some(C=>!C.disabled&&C.value===Ee))return Ee;let m=(()=>{let C=K.current?.find(D=>D.styleId===Ee),k=Tt.find(D=>D.styleId===Ee),V=C?.name||k?.name||`\u6837\u5F0F ${Ee}`;return An(V)})();if(!m)return Ee;let g=f.find(C=>!C.disabled&&An(C.label)===m);return g?g.value:Ee})(),placeholder:"\u8BF7\u9009\u62E9\u6837\u5F0F",onSelect:Ke,onChange:Ke,popupMatchSelectWidth:!1,showSearch:!1,allowClear:!1,open:te,onOpenChange:f=>{f&&fe(!0)},getPopupContainer:f=>{let m=f?.ownerDocument??document,g=m.querySelector(".ep-root");if(g)return g;let C=m.querySelector("#vendorsys-word-editor-root");return C||m.body},classNames:{popup:{root:"vendorsys-word-style-dropdown"}},options:zn()})]}),!Q&&!c&&he(gr,{size:"small",type:Pt.active?"primary":"default",title:Pt.active?"\u683C\u5F0F\u5237\u5DF2\u5F00\u542F\uFF1A\u9009\u4E2D\u6587\u672C\u5373\u53EF\u5E94\u7528\uFF0C\u518D\u6B21\u70B9\u51FB\u6216\u6309 Esc \u53D6\u6D88":"\u683C\u5F0F\u5237\uFF1A\u590D\u5236\u5F53\u524D\u9009\u533A\u683C\u5F0F\u5E76\u5E94\u7528\u5230\u5176\u4ED6\u6587\u672C",icon:he(of,{}),onMouseDown:f=>f.preventDefault(),onClick:()=>Pt.toggle()}),!Q&&!c&&he(gr,{size:"small",icon:he(Mp,{}),title:"\u6BB5\u843D\u8BBE\u7F6E\uFF1A\u7F29\u8FDB\u3001\u6BB5\u524D\u6BB5\u540E\u3001\u884C\u8DDD\u3001\u5BF9\u9F50\u65B9\u5F0F",onClick:et,children:"\u6BB5\u843D"}),he(gr,{size:"small",type:Q?"primary":"default",onClick:De,children:Q?"\u67E5\u770B\u4FEE\u8BA2":"\u6700\u7EC8\u72B6\u6001"})]}),i18n:Xp,fontFamilies:ki,showRuler:!c&&!Q,rulerUnit:"cm",style:{height:"100%",width:"100%"}})}),pt&&!c&&xp(he("div",{ref:cn,className:"vendorsys-paste-smart-tag",style:{left:pt.x,top:pt.y},onMouseDown:f=>f.preventDefault(),children:pt.expanded?it("div",{className:"vendorsys-paste-smart-tag-menu",children:[it("button",{type:"button",onClick:()=>xt("formatted"),children:[he("span",{className:"label",children:"\u5E26\u683C\u5F0F\u7C98\u8D34"}),he("span",{className:"key",children:"(W)"})]}),it("button",{type:"button",onClick:()=>xt("match"),children:[he("span",{className:"label",children:"\u5339\u914D\u5F53\u524D\u683C\u5F0F"}),he("span",{className:"key",children:"(M)"})]}),it("button",{type:"button",onClick:()=>xt("text"),children:[he("span",{className:"label",children:"\u53EA\u7C98\u8D34\u6587\u672C"}),he("span",{className:"key",children:"(T)"})]})]}):it("button",{type:"button",className:"vendorsys-paste-smart-tag-trigger",title:"\u7C98\u8D34\u9009\u9879",onClick:()=>bt({...pt,expanded:!0}),children:[he(Ip,{}),he(Dp,{className:"arrow"})]})}),document.body),Z&&he("div",{className:"flex items-center justify-center h-full",children:he("span",{children:"\u52A0\u8F7D\u4E2D..."})}),he(Ni,{open:Yt,title:"\u6BB5\u843D\u8BBE\u7F6E",okText:"\u5E94\u7528",cancelText:"\u53D6\u6D88",width:460,maskClosable:!1,zIndex:11e3,getContainer:()=>document.body,onOk:Ie,onCancel:()=>Qe(!1),children:it("div",{style:{display:"flex",flexDirection:"column",gap:12,paddingTop:8},children:[it("div",{style:{display:"flex",alignItems:"center",gap:8},children:[he("span",{style:{width:76,color:"#8c8c8c",fontSize:13},children:"\u5BF9\u9F50\u65B9\u5F0F"}),he(Eo,{style:{width:160},value:Ue.alignment,onChange:f=>je(m=>({...m,alignment:f})),options:[{label:"\u5DE6\u5BF9\u9F50",value:"left"},{label:"\u5C45\u4E2D",value:"center"},{label:"\u53F3\u5BF9\u9F50",value:"right"},{label:"\u4E24\u7AEF\u5BF9\u9F50",value:"both"}]})]}),it("div",{style:{display:"flex",alignItems:"center",gap:8},children:[he("span",{style:{width:76,color:"#8c8c8c",fontSize:13},children:"\u5DE6\u7F29\u8FDB"}),he(yr,{min:0,max:20,step:.1,precision:2,style:{width:120},value:Ue.indentLeftCm,onChange:f=>je(m=>({...m,indentLeftCm:Number(f)||0})),addonAfter:"\u5398\u7C73"}),he("span",{style:{color:"#8c8c8c",fontSize:13},children:"\u53F3\u7F29\u8FDB"}),he(yr,{min:0,max:20,step:.1,precision:2,style:{width:120},value:Ue.indentRightCm,onChange:f=>je(m=>({...m,indentRightCm:Number(f)||0})),addonAfter:"\u5398\u7C73"})]}),it("div",{style:{display:"flex",alignItems:"center",gap:8},children:[he("span",{style:{width:76,color:"#8c8c8c",fontSize:13},children:"\u7279\u6B8A\u683C\u5F0F"}),he(Eo,{style:{width:160},value:Ue.indentSpecial,onChange:f=>je(m=>({...m,indentSpecial:f,indentSpecialCm:f==="none"?0:m.indentSpecialCm||.74})),options:[{label:"\u65E0",value:"none"},{label:"\u9996\u884C\u7F29\u8FDB",value:"firstLine"},{label:"\u60AC\u6302\u7F29\u8FDB",value:"hanging"}]}),he(yr,{min:0,max:20,step:.1,precision:2,style:{width:120},disabled:Ue.indentSpecial==="none",value:Ue.indentSpecialCm,onChange:f=>je(m=>({...m,indentSpecialCm:Number(f)||0})),addonAfter:"\u5398\u7C73"})]}),it("div",{style:{display:"flex",alignItems:"center",gap:8},children:[he("span",{style:{width:76,color:"#8c8c8c",fontSize:13},children:"\u6BB5\u524D"}),he(yr,{min:0,max:200,step:1,style:{width:120},value:Ue.spaceBeforePt,onChange:f=>je(m=>({...m,spaceBeforePt:Number(f)||0})),addonAfter:"\u78C5"}),he("span",{style:{color:"#8c8c8c",fontSize:13},children:"\u6BB5\u540E"}),he(yr,{min:0,max:200,step:1,style:{width:120},value:Ue.spaceAfterPt,onChange:f=>je(m=>({...m,spaceAfterPt:Number(f)||0})),addonAfter:"\u78C5"})]}),it("div",{style:{display:"flex",alignItems:"center",gap:8},children:[he("span",{style:{width:76,color:"#8c8c8c",fontSize:13},children:"\u884C\u8DDD"}),he(Eo,{style:{width:160},value:Ue.lineRule,onChange:f=>je(m=>({...m,lineRule:f,lineValue:f==="auto"?m.lineRule==="auto"?m.lineValue:1:m.lineRule==="auto"?18:m.lineValue})),options:[{label:"\u500D\u6570",value:"auto"},{label:"\u56FA\u5B9A\u503C",value:"exact"},{label:"\u6700\u5C0F\u503C",value:"atLeast"}]}),he(yr,{min:.5,max:200,step:Ue.lineRule==="auto"?.05:1,precision:2,style:{width:120},value:Ue.lineValue,onChange:f=>je(m=>({...m,lineValue:Number(f)||1})),addonAfter:Ue.lineRule==="auto"?"\u500D":"\u78C5"})]})]})})]},ye)]})]})}),Cf=Wi});var qi={};Qt(qi,{ArchivePreview:()=>Af});import{useMemo as Ff}from"react";import{FileViewer as kf}from"@file-viewer/react";import{archiveRenderer as Tf}from"@file-viewer/renderer-archive";import{pdfRenderer as Pf}from"@file-viewer/renderer-pdf";import{wordRenderer as Mf}from"@file-viewer/renderer-word";import{spreadsheetRenderer as If}from"@file-viewer/renderer-spreadsheet";import{textRenderer as Df}from"@file-viewer/renderer-text";import{withPolyfillWorkerBootstrap as Rf}from"@spacecorexdev/core/utils";import{jsx as Xi,jsxs as Nf}from"react/jsx-runtime";var Af,Yi=Xe(()=>{"use strict";Af=({file:e})=>{let t=[Tf,If,Mf,Pf,Df],r=Ff(()=>({locale:"zh-CN",rendererMode:"extend",renderers:t,theme:"light",toolbar:{position:"bottom-right",download:!1,print:!1,exportHtml:!1},archive:{workerUrl:Rf("/vendor/libarchive/worker-bundle.js"),cache:!0,workerTimeoutMs:3e4,maxArchiveSize:320*1024*1024,maxEntryPreviewSize:64*1024*1024},spreadsheet:{worker:!1}}),[]);return Nf("div",{className:"ui-file-preview-archive",style:{position:"relative",minHeight:"100vh"},children:[Xi("style",{children:`.ui-file-preview-archive .archive-head .archive-sidebar-toggle {
|
|
544
|
-
display: none !important;
|
|
545
|
-
}
|
|
546
|
-
.ui-file-preview-archive .fv-root,
|
|
547
|
-
.ui-file-preview-archive .fv-container {
|
|
548
|
-
padding-right: 50px !important;
|
|
549
|
-
}`}),e?Xi(kf,{file:e,name:e.name,options:r}):null]})}});var Qi={};Qt(Qi,{CadPreview:()=>zf});import{useEffect as ka,useMemo as Lf,useState as Ji,useRef as Nn}from"react";import{FileViewer as Bf}from"@file-viewer/react";import{engineeringRenderers as Of}from"@file-viewer/preset-engineering";import{withPolyfillModuleWorkerBootstrap as $f}from"@spacecorexdev/core/utils";import{jsx as Ta}from"react/jsx-runtime";var zf,el=Xe(()=>{"use strict";zf=({file:e})=>{let[t,r]=Ji(null),[o,a]=Ji(1),s=Nn(null),i=Nn(null),c=Nn(0),n=Nn(1),l=Nn(null),d=Nn(1),p=Nn(!1),w=Nn(0);ka(()=>{if(e){let _=new FileReader;_.onload=b=>{r(b.target?.result)},_.readAsArrayBuffer(e)}else r(null)},[e]),ka(()=>{let _=document.querySelector('meta[name="viewport"]'),b=_?.getAttribute("content")||"";_&&_.setAttribute("content","width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no");let x=N=>{N.touches.length===2&&N.preventDefault()},S=N=>{N.preventDefault()},I=N=>{N.preventDefault()};return document.addEventListener("touchstart",x,{passive:!1,capture:!0}),document.addEventListener("gesturestart",S),document.addEventListener("gesturechange",I),()=>{_&&_.setAttribute("content",b),document.removeEventListener("touchstart",x,{capture:!0}),document.removeEventListener("gesturestart",S),document.removeEventListener("gesturechange",I)}},[]),ka(()=>{let _=s.current;if(!_)return;let b=()=>{_.style.touchAction="pan-x pan-y"},x=()=>{let H=d.current,M=n.current,ee=H/M;if(Math.abs(ee-1)<.05)return;let y=Math.round(Math.log(ee)/Math.log(1.15)),R=Math.min(Math.abs(y),10);if(y>0)for(let G=0;G<R;G++)i.current?.zoomIn?.();else if(y<0)for(let G=0;G<R;G++)i.current?.zoomOut?.()},S=H=>{let M=H.touches.length;if(M===2&&!p.current){let ee=H.touches[0].clientX-H.touches[1].clientX,y=H.touches[0].clientY-H.touches[1].clientY;c.current=Math.sqrt(ee*ee+y*y);let R=i.current?.getZoomState?.();n.current=R?.scale||1,d.current=n.current,a(1),p.current=!0,_.style.touchAction="none",H.preventDefault(),H.stopPropagation()}w.current=M},I=H=>{let M=H.touches.length;if(M===2&&p.current){let ee=H.touches[0].clientX-H.touches[1].clientX,y=H.touches[0].clientY-H.touches[1].clientY,R=Math.sqrt(ee*ee+y*y);if(c.current>0){let G=n.current*(R/c.current);d.current=G,l.current===null&&(l.current=requestAnimationFrame(()=>{l.current=null,a(d.current/n.current)}))}H.preventDefault(),H.stopPropagation()}else M<2&&p.current&&(p.current=!1,x(),l.current!==null&&(cancelAnimationFrame(l.current),l.current=null),setTimeout(()=>{a(1),b()},100));w.current=M},N=H=>{let M=H.touches.length;p.current&&M<2&&(p.current=!1,x(),l.current!==null&&(cancelAnimationFrame(l.current),l.current=null),setTimeout(()=>{a(1),b()},100)),M===0&&(c.current=0),w.current=M},W=()=>{p.current=!1,c.current=0,l.current!==null&&(cancelAnimationFrame(l.current),l.current=null),a(1),b(),w.current=0};return _.addEventListener("touchstart",S,{passive:!1,capture:!0}),_.addEventListener("touchmove",I,{passive:!1,capture:!0}),_.addEventListener("touchend",N,{passive:!1,capture:!0}),_.addEventListener("touchcancel",W,{passive:!1,capture:!0}),()=>{_.removeEventListener("touchstart",S,{capture:!0}),_.removeEventListener("touchmove",I,{capture:!0}),_.removeEventListener("touchend",N,{capture:!0}),_.removeEventListener("touchcancel",W,{capture:!0}),l.current!==null&&cancelAnimationFrame(l.current)}},[t]);let h=Lf(()=>({locale:"zh-CN",rendererMode:"replace",renderers:Of,theme:"dark",toolbar:{position:"bottom-right",download:!1,print:!1,exportHtml:!1},cad:{workerUrl:$f("/wasm/cad/dwg-worker.js"),wasmPath:"/wasm/cad/",dwfWasmUrl:"/wasm/cad/dwfv-render.wasm",canvasOptions:{background:"#000000",foreground:"#ffffff"},dwfBackground:"#000000"}}),[]);return Ta("div",{ref:s,className:"ui-file-preview-cad",style:{width:"100%",height:"100vh",minHeight:"600px",touchAction:"pan-x pan-y",overflow:"hidden",userSelect:"none",WebkitUserSelect:"none"},children:t&&e?Ta("div",{style:{width:"100%",height:"100%",transform:`scale(${o})`,transformOrigin:"center center",transition:o===1?"transform 0.1s ease-out":"none",willChange:"transform"},children:Ta(Bf,{ref:_=>{i.current=_},buffer:t,filename:e.name,name:e.name,type:"dwg",size:e.size,options:h,style:{width:"100%",height:"100%"}})}):null})}});import{useEffect as $n,useRef as za,useMemo as Ha,useState as Yh}from"react";import{useSearchParams as Jh}from"react-router-dom";import{Card as Qh,Modal as $o,Input as Gr,Checkbox as eg,Button as Ua,Spin as tg,Menu as ng}from"antd";import{ProjectRole as en}from"@spacecorexdev/core/types";import{ArrowLeftOutlined as rg,FolderAddOutlined as og,FileTextFilled as ag,FileMarkdownFilled as sg,FileWordFilled as ig,FileExcelFilled as lg}from"@ant-design/icons";import{API as It}from"@spacecorexdev/core/api";import{ResponseCode as Jl}from"@spacecorexdev/core/api";import{CacheUserInfo as Ql}from"@spacecorexdev/core/utils";var Jr={listFiles:e=>It.project.file.listFiles({projectId:e}),getDetail:e=>It.project.file.getDetail({fileId:e}),addFile:(e,t)=>It.project.file.addFile({projectId:e},t),removeFile:e=>It.project.file.removeFile({fileId:e}),moveFile:(e,t)=>It.project.file.moveFile({projectId:e},t),updateFileDescs:e=>It.project.file.updateFileDescs(e),updateFile:e=>It.project.file.updateFile(e),updateFileDelta:e=>It.project.file.updateFileDelta(e),copyFileToProject:(e,t)=>It.project.file.copyFileToProject({projectId:e,fileId:t}),generateTempAccessToken:(e,t)=>It.project.file.generateTempAccessToken({fileId:e,expireSeconds:t}),downloadFolder:(e,t,r)=>It.project.file.folderDownload({projectId:e},{folderPath:t,folderName:r}),getFolderDownloadStatus:e=>It.project.file.folderDownloadStatus({jobId:e}),resolveIsManager:async e=>{let t=await Ql.getUserInfo({forceRefresh:!0}),r=await It.project.project.getProjectMembers({projectId:e});return r.code==Jl.SUCCESS?!!r.data?.find(a=>a.userId==t?.id&&(a.role==en.MANAGER||a.role==en.OWNER)):!1}};fn();import{Suspense as on,lazy as sn,useEffect as tl,useRef as Gn,useState as _t}from"react";import*as To from"febs-browser";import{Modal as Hf,Spin as rl}from"antd";import{uiToast as ko}from"@spacecorexdev/core/ui";var Cc=e=>{if(!e||e.byteLength<4)return"";let t=new Uint8Array(e,0,Math.min(16,e.byteLength));if(t[0]===255&&t[1]===216&&t[2]===255)return"image/jpeg";if(t[0]===137&&t[1]===80&&t[2]===78&&t[3]===71)return"image/png";if(t[0]===71&&t[1]===73&&t[2]===70&&t[3]===56)return"image/gif";if(t.length>=12&&t[0]===82&&t[1]===73&&t[2]===70&&t[3]===70&&t[8]===87&&t[9]===69&&t[10]===66&&t[11]===80)return"image/webp";if(t[0]===66&&t[1]===77)return"image/bmp";try{let r=new TextDecoder("utf-8").decode(t.slice(0,16)).trimStart();if(r.startsWith("<svg")||r.startsWith("<?xml"))return"image/svg+xml"}catch{}return""},os=async(e,t)=>{let r=new Image,o=e.headers?.get?.("Content-Type")||"";o||(o=Cc(e.buffer));let a=new Blob([e.buffer],{type:o});r.src=URL.createObjectURL(a),r.onload=()=>{r.style.maxWidth="100%",r.style.maxHeight="calc(100vh - 40px)",r.style.objectFit="contain",t.current.innerHTML="",t.current.appendChild(r),URL.revokeObjectURL(r.src)}},as=e=>{};import{jsx as Fc}from"react/jsx-runtime";var ss=({containerRef:e,type:t})=>t==="image"&&Fc("div",{ref:e,style:{display:t==="image"?"inherit":"none",maxWidth:"100%",maxHeight:"calc(100vh - 40px)",objectFit:"contain"}});import{useState as Tn,useRef as kc,useEffect as Tc,useCallback as Pc}from"react";import{PlayCircleOutlined as is,LoadingOutlined as Mc,ReloadOutlined as Ic,PauseCircleOutlined as Dc}from"@ant-design/icons";import{AuthorizationHandler as Rc}from"@spacecorexdev/core/api";import{Button as ao}from"antd";import{jsx as wt,jsxs as or}from"react/jsx-runtime";var ls=({previewUrl:e,type:t})=>{let[r,o]=Tn(!1),[a,s]=Tn(!1),[i,c]=Tn(!1),[n,l]=Tn(!1),[d,p]=Tn(1),[w,h]=Tn(null),[_,b]=Tn(!1),[x,S]=Tn(0),I=kc(null),N=Pc(()=>{let O={},z={headers:{set:(q,v)=>{O[q]=v}}};return Rc.requestHandleSid(z),O},[]);Tc(()=>{if(t!=="video")return;(async()=>{let z=N();try{if(!(await fetch(e,{method:"HEAD",headers:{Authorization:z.Authorization||""}})).ok){console.warn("HEAD request failed, trying GET for poster");return}let v=await fetch(e,{method:"GET",headers:{Authorization:z.Authorization||"",Range:"bytes=0-102400"}});if(!v.ok&&v.status!==206){console.warn("Failed to fetch video header for poster");return}let ye=await v.blob(),ne=URL.createObjectURL(ye),A=document.createElement("video");A.crossOrigin="anonymous",A.src=ne;try{await new Promise((le,$e)=>{A.onloadedmetadata=()=>{A.currentTime=.1,le()},A.onerror=$e}),await new Promise(le=>{A.onseeked=()=>le()});let re=document.createElement("canvas");re.width=A.videoWidth||640,re.height=A.videoHeight||360;let _e=re.getContext("2d");if(_e){_e.drawImage(A,0,0,re.width,re.height);let le=re.toDataURL("image/jpeg",.7);h(le)}}catch(re){console.warn("Failed to generate video poster:",re)}finally{URL.revokeObjectURL(ne)}}catch(q){console.warn("Failed to fetch video for poster:",q)}})()},[e,t,N]);let W=async()=>{if(i){c(!1),o(!0),l(!0),await H();return}l(!0),o(!0),await H()},H=async()=>{try{let O=N(),z=await fetch(e,{method:"HEAD",headers:{Authorization:O.Authorization||""}}),q=z.headers.get("accept-ranges"),v=z.headers.get("content-length");console.log(`Server supports ranges: ${q}`),console.log(`Content length: ${v}`);let ye=document.createElement("source");if(ye.src=e,I.current){for(;I.current.firstChild;)I.current.removeChild(I.current.firstChild);I.current.appendChild(ye),I.current.crossOrigin="use-credentials",await I.current.load(),o(!1),s(!0),b(!0),I.current.play().catch(()=>{})}}catch(O){console.error("Video setup error:",O),await M()}},M=async()=>{try{let O=N(),z=await fetch(e,{headers:{Authorization:O.Authorization||""},method:"GET"});if(!z.ok)throw new Error(`\u89C6\u9891\u52A0\u8F7D\u5931\u8D25\uFF0C\u72B6\u6001\u7801: ${z.status}`);let q=await z.blob(),v=URL.createObjectURL(q);return I.current&&(I.current.src=v,await I.current.load(),o(!1),s(!0),b(!0),I.current.play().catch(()=>{})),()=>{URL.revokeObjectURL(v)}}catch(O){console.error("Fallback download error:",O),o(!1),c(!0)}},ee=()=>{if(I.current){let O=I.current.buffered,z=I.current.duration;if(O.length>0&&z>0){let q=O.end(O.length-1),v=Math.min(q/z*100,100);S(v),v>=99&&console.log("Video fully buffered")}}},y=()=>{o(!1),s(!0)},R=()=>{console.error("Video element error"),o(!1),c(!0)},G=()=>{b(!0)},P=()=>{b(!1)},L=O=>{p(O),I.current&&(I.current.playbackRate=O)},j=()=>{I.current&&(_?I.current.pause():I.current.play().catch(()=>{}))};return t!=="video"?null:or("div",{style:{width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center",background:"#000",position:"relative"},children:[wt("video",{ref:I,controls:!0,preload:"metadata",onLoadedData:y,onError:R,onProgress:ee,onPlay:G,onPause:P,style:{maxWidth:"100%",maxHeight:"calc(100vh - 40px)",objectFit:"contain",display:n&&!r&&!i?"block":"none"},crossOrigin:"use-credentials"}),_&&x>0&&x<100&&wt("div",{style:{position:"absolute",bottom:"45px",left:"20px",right:"20px",height:"4px",backgroundColor:"rgba(255, 255, 255, 0.3)",borderRadius:"2px"},children:wt("div",{style:{height:"100%",backgroundColor:"#1890ff",borderRadius:"2px",transition:"width 0.3s ease",width:`${x}%`}})}),!n||r||i?or("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",background:"#1a1a1a"},children:[!r&&!i&&wt("img",{src:w||'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 72"%3E%3Crect fill="%232a2a2a" width="128" height="72"/%3E%3Ctext fill="%234a4a4a" font-family="sans-serif" font-size="12" x="50%25" y="50%25" text-anchor="middle" dominant-baseline="middle"%3E\u89C6\u9891\u9884\u89C8%3C/text%3E%3C/svg%3E',alt:"Video preview",style:{maxWidth:"100%",maxHeight:"calc(100vh - 200px)",objectFit:"contain"}}),r&&or("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:16},children:[wt(Mc,{style:{fontSize:48,color:"#1890ff"},spin:!0}),wt("span",{style:{color:"#999",fontSize:14},children:"\u6B63\u5728\u51C6\u5907\u89C6\u9891..."})]}),i&&or("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:16},children:[wt("div",{style:{fontSize:48,color:"#ff4d4f"},children:wt("svg",{viewBox:"0 0 24 24",fill:"currentColor",children:wt("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"})})}),wt("span",{style:{color:"#ff4d4f",fontSize:14},children:"\u89C6\u9891\u52A0\u8F7D\u5931\u8D25"}),or(ao,{type:"primary",onClick:W,style:{padding:"8px 16px",color:"#fff",border:"none",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",gap:8},children:[wt(Ic,{}),"\u91CD\u8BD5\u52A0\u8F7D"]})]}),!r&&!i&&wt(ao,{type:"primary",onClick:W,style:{position:"absolute",width:"80px",height:"80px",borderRadius:"50%",backgroundColor:"rgba(24, 144, 255, 0.9)",border:"none",cursor:"pointer",display:"flex",justifyContent:"center",alignItems:"center",transition:"transform 0.2s"},onMouseEnter:O=>{O.currentTarget.style.transform="scale(1.1)"},onMouseLeave:O=>{O.currentTarget.style.transform="scale(1)"},children:wt(is,{style:{fontSize:48,color:"#fff"}})})]}):null,a&&wt(ao,{type:"text",onClick:j,style:{position:"absolute",width:"60px",height:"60px",borderRadius:"50%",backgroundColor:"rgba(0, 0, 0, 0.6)",border:"none",cursor:"pointer",display:"none",justifyContent:"center",alignItems:"center",transition:"opacity 0.3s"},className:"video-overlay-play-btn",children:_?wt(Dc,{style:{fontSize:36,color:"#fff"}}):wt(is,{style:{fontSize:36,color:"#fff"}})}),a&&wt("div",{style:{position:"absolute",bottom:"60px",right:"20px",backgroundColor:"rgba(0, 0, 0, 0.7)",padding:"4px",borderRadius:"4px",display:"flex",gap:"4px"},children:[.5,1,1.25,1.5,2].map(O=>or(ao,{type:"text",onClick:()=>L(O),style:{padding:"4px 8px",backgroundColor:d===O?"#1890ff":"transparent",color:"#fff",border:"none",borderRadius:"2px",fontSize:"12px",cursor:"pointer"},children:[O,"x"]},O))})]})};Vn();ir();Wt(`.pptx-preview-wrapper .pptx-preview-slide-wrapper{border-bottom:1px solid rgb(var(--color-border));margin:0!important}.pptx-preview-wrapper .pptx-preview-slide-wrapper .slide-master-wrapper,.pptx-preview-wrapper .pptx-preview-slide-wrapper .slide-layout-wrapper,.pptx-preview-wrapper .pptx-preview-slide-wrapper .slide-wrapper{right:0}.pptx-preview-wrapper .pptx-preview-slide-wrapper table{width:100%}.ant-modal-root .ant-modal-wrap .ant-modal.ant-modal-fullscreen.ant-modal-ppt .ant-modal-content{min-height:100vh!important;margin-bottom:0!important;padding:0!important}.ant-modal-root .ant-modal-wrap .ant-modal.ant-modal-fullscreen.ant-modal-ppt .ant-modal-content .ant-modal-body{min-height:100vh!important;background:rgb(var(--color-black))}.ant-modal-root .ant-modal-wrap .ant-modal.ant-modal-fullscreen.ant-modal-ppt .ant-modal-content .ant-modal-body>div{background:rgb(var(--color-black))!important}.ant-modal-root .ant-modal-wrap .ant-modal.ant-modal-fullscreen.ant-modal-ppt .ant-modal-content .ant-modal-close{color:rgb(var(--color-gray-300))}.ant-modal-root .ant-modal-wrap .ant-modal.ant-modal-fullscreen.ant-modal-ppt .ant-modal-content .ant-modal-close:hover{color:rgb(var(--color-white))}.ant-modal-root .ant-modal-wrap .ant-modal.ant-modal-fullscreen .ant-modal-content .ant-modal-close{position:fixed}.docx-preview{justify-self:center}.ui-file-preview-archive,.ui-file-preview-pdf{width:100%;height:100dvh;min-height:0;background:rgb(var(--color-surface))}.ui-file-preview-pdf .pdfViewer .page .textLayer{z-index:2!important;pointer-events:auto!important}.ui-file-preview-pdf .pdfViewer .textLayer span,.ui-file-preview-pdf .pdfViewer .textLayer br,.ui-file-preview-pdf .pdfViewer.enablePermissions .textLayer span{-webkit-user-select:text!important;-moz-user-select:text!important;user-select:text!important;cursor:text!important;pointer-events:auto!important}.ui-file-preview-pdf .pdfViewer .textLayer ::-moz-selection,.ui-file-preview-pdf .pdfViewer .textLayer span::-moz-selection,.ui-file-preview-pdf .pdfViewer .textLayer br::-moz-selection{background:AccentColor!important;background:highlight!important}.ui-file-preview-pdf .pdfViewer .textLayer ::selection,.ui-file-preview-pdf .pdfViewer .textLayer span::selection,.ui-file-preview-pdf .pdfViewer .textLayer br::selection{background:AccentColor!important;background:highlight!important}.ui-file-preview-pdf .pdfViewer .textLayer ::-moz-selection,.ui-file-preview-pdf .pdfViewer .textLayer span::-moz-selection,.ui-file-preview-pdf .pdfViewer .textLayer br::-moz-selection{background:highlight!important}.ui-file-preview-pdf .pdfViewer,.ui-file-preview-pdf .pdfViewer .page,.ui-file-preview-pdf .pdfViewer .textLayer{-webkit-user-select:text!important;-moz-user-select:text!important;user-select:text!important}.ui-file-preview-pdf .pdf-toolbar{padding-right:50px}.ui-file-preview-word{width:100%;height:100vh;min-height:0;background:rgb(var(--color-surface))}.ui-file-preview-excel{width:100%;height:100vh;min-height:0;background:#fff}.ui-file-preview-excel .e-virt-table-canvas{background:#fff}.ui-file-preview-cad .cad-toolbar{padding-right:50px}.ui-file-preview-ebook{width:100%;height:100dvh;min-height:0;background:#f5ecd9}@media(min-width:720px){.ui-file-preview-ebook .epub-actions{margin-right:35px}}.ui-file-preview-ebook .file-viewer,.ui-file-preview-ebook .file-viewer *{max-width:none}.ui-file-preview-ebook .epub-viewer{width:100%!important;height:100%!important}.ui-file-preview-ebook .epub-container{max-width:100%!important;width:100%!important}.ui-file-preview-ebook .epub-stage-wrap{padding:0}.ui-file-preview-ebook .epub-toolbar,.ui-file-preview-ebook .epub-icon-button,.ui-file-preview-ebook .epub-button{background:#f5ecd9!important}.ui-file-preview-ebook .epub-toc{background:#f2deb4!important}.ui-file-preview-ebook .epub-stage{background:#f5ecd9!important;box-shadow:none!important;touch-action:pan-y}
|
|
550
|
-
`);import{WarningOutlined as nl}from"@ant-design/icons";import{Fragment as Qf,jsx as Re,jsxs as Xn}from"react/jsx-runtime";var Uf=sn(()=>Promise.resolve().then(()=>(ys(),gs)).then(e=>({default:e.PdfPreview}))),jf=sn(()=>Promise.resolve().then(()=>(Ts(),ks)).then(e=>({default:e.WordPreview}))),Vf=sn(()=>Promise.resolve().then(()=>(As(),Rs)).then(e=>({default:e.ExcelPreview}))),Zf=sn(()=>Promise.resolve().then(()=>(ea(),Ws)).then(e=>({default:e.MarkdownEditor}))),Wf=sn(()=>Promise.resolve().then(()=>(li(),ii)).then(e=>({default:e.RichDocEditor}))),Kf=sn(()=>Promise.resolve().then(()=>(fi(),pi)).then(e=>({default:e.ExcelEditor}))),Gf=sn(()=>Promise.resolve().then(()=>(bi(),wi)).then(e=>({default:e.PptPreview}))),Xf=sn(()=>Promise.resolve().then(()=>(Gi(),Ki)).then(e=>({default:e.WordEditor}))),qf=sn(()=>Promise.resolve().then(()=>(Yi(),qi)).then(e=>({default:e.ArchivePreview}))),Yf=sn(()=>Promise.resolve().then(()=>(el(),Qi)).then(e=>({default:e.CadPreview}))),an=(e,t,r)=>{if(e)return e;let o=t||"",a=o.indexOf("?");a!==-1&&(o=o.substring(0,a));let s=o.split("/").filter(Boolean).pop();if(!s)return r;try{return decodeURIComponent(s)}catch{return s}},Jf=(e,t)=>{if(!t)return e;let r=e.includes("?")?"&":"?";return`${e}${r}tempToken=${encodeURIComponent(t)}`},br=({label:e})=>Xn("div",{className:"flex min-h-[260px] flex-col items-center justify-center",style:{width:"100%"},children:[Re(rl,{}),Xn("span",{style:{marginTop:16,color:"rgb(var(--color-muted))"},children:["\u6B63\u5728\u52A0\u8F7D",e,"..."]})]}),Rr=({fileUrl:e,accessToken:t,visible:r,isCreate:o,onClose:a,hiddenClose:s=!1,editable:i=!1,fileName:c,uploadPercent:n,uploadSuccess:l,onUploadBlob:d,onUploadMarkdown:p,fileId:w,crc32:h,fetchFileDetail:_,onCacheSaved:b,localId:x,isLocalOnly:S,hasUnsyncedChanges:I,isOffline:N,onSaveLocalBlob:W,onSaveLocalMarkdown:H})=>{let[M,ee]=_t("unknown"),[y,R]=_t(""),[G,P]=_t(!1),[L,j]=_t(0),[O,z]=_t(null),[q,v]=_t(""),[ye,ne]=_t(""),[A,re]=_t(null),[_e,le]=_t(null),[$e,Y]=_t(null),[Z,xe]=_t(null),[Q,ke]=_t(null),[Ee,Be]=_t(null),[be,pe]=_t(null),[K,ae]=_t(null),[te,fe]=_t(null),Ce=Gn(null),rt=["image","pdf","word","ppt","excel","markdown","richdoc","video","archive","cad"],lt=Gn(new To.net.AbortController),Pt=Gn(!1),pt=Gn(x),bt=Gn(S),cn=Gn(I);pt.current=x,bt.current=S,cn.current=I;let Lt=Gn(_);Lt.current=_,tl(()=>{let xt=function(){window.history.go(1)};return window.history.pushState(null,null,document.URL),window.addEventListener("popstate",xt),()=>{window.removeEventListener("popstate",xt)}},[]),tl(()=>r?(xe(null),re(null),Y(null),v(""),ne(""),fe(null),(async()=>{let Yt=pt.current,Qe=c||e?.substring(e?.lastIndexOf("/")+1||0);if(Yt&&i&&Qe){let et=rr(Qe);if(!["ppt","excel","markdown","word","richdoc"].includes(et)){ko.warning("\u5F53\u524D\u6587\u4EF6\u7C7B\u578B\u4E0D\u652F\u6301\u672C\u5730\u7F16\u8F91");return}ee(et),z(null),P(!0);try{let Ie=await Mn(Yt);if(!Ie){P(!1);return}if(fe(Ie),Ie.content&&(typeof Ie.content=="string"&&Ie.content.length>0||typeof Ie.content!="string"&&Ie.content.byteLength>0)){if(et==="markdown")v(typeof Ie.content=="string"?Ie.content:"");else if(et==="richdoc")ne(typeof Ie.content=="string"?Ie.content:"");else if(et==="word"){let Ae=typeof Ie.content!="string"?Ie.content:new ArrayBuffer(0),Ke=new Blob([Ae],{type:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"});xe(Ke),ke(new File([Ke],Qe,{type:Ke.type}))}else if(et==="excel"){let Ae=typeof Ie.content!="string"?Ie.content:new ArrayBuffer(0),Ke=new Blob([Ae],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});re(Ke),le(new File([Ke],Qe,{type:Ke.type}))}else if(et==="ppt"){let Ae=typeof Ie.content!="string"?Ie.content:new ArrayBuffer(0),Ke=new Blob([Ae],{type:"application/vnd.openxmlformats-officedocument.presentationml.presentation"});Y(new File([Ke],Qe,{type:Ke.type}))}P(!1);return}P(!1)}catch(Ie){console.error("\u52A0\u8F7D\u672C\u5730\u6587\u4EF6\u5931\u8D25:",Ie),P(!1)}}if(!e&&!Yt&&Qe&&i){let et=rr(Qe);["ppt","excel","markdown","word","richdoc"].includes(et)?(ee(et),z(null),P(!1)):ko.warning("\u5F53\u524D\u6587\u4EF6\u7C7B\u578B\u4E0D\u652F\u6301\u65B0\u5EFA");return}if(!e)return;if(h!=null&&!w){console.log("[UIFilePreview] crc32 \u5DF2\u5C31\u7EEA\u4F46 fileId \u5C1A\u672A\u5C31\u7EEA\uFF0C\u7B49\u5F85\u4E0B\u6B21\u6E32\u67D3...");return}let je=rr(Qe||e);if(je==="unknown"){ee(je),ko.warning("\u5F53\u524D\u6587\u4EF6\u7C7B\u578B\u4E0D\u652F\u6301\u9884\u89C8");return}ee(je),R(""),z(null),re(null),le(null),Y(null),xe(null),ke(null),Be(null),pe(null),ae(null),v(""),ne(""),as(Ce),j(0),P(!0);try{let et=kn(e);if(!et){ko.error("\u6587\u4EF6\u8D44\u6E90\u8DEF\u5F84\u4E0D\u53EF\u7528\uFF0C\u65E0\u6CD5\u9884\u89C8"),P(!1);return}if(je==="video"){R(Jf(et,t)),P(!1);return}let Ie=await oo(e,t,lt.current,j,w,h,Lt.current);if(w&&b&&b(w),je==="image")await os(Ie,Ce);else if(je==="pdf"){let Ae=new Blob([Ie.buffer],{type:Ie.headers.get("Content-Type")||"application/pdf"});ae(new File([Ae],an(Qe,e,"\u9884\u89C8.pdf"),{type:Ae.type}))}else if(je==="word"){let Ae=new Blob([Ie.buffer],{type:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"});xe(Ae),ke(new File([Ae],an(Qe,e,"\u9884\u89C8.docx"),{type:Ae.type}))}else if(je==="excel"){let Ae=new Blob([Ie.buffer],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});re(Ae),le(new File([Ae],an(Qe,e,"\u9884\u89C8.xlsx"),{type:Ae.type}))}else if(je==="ppt"){let Ae=new Blob([Ie.buffer],{type:"application/vnd.openxmlformats-officedocument.presentationml.presentation"});Y(new File([Ae],an(Qe,e,"\u9884\u89C8.pptx"),{type:Ae.type}))}else if(je==="markdown"){let Ke=new TextDecoder("utf-8").decode(Ie.buffer);v(Ke)}else if(je==="richdoc"){let Ke=new TextDecoder("utf-8").decode(Ie.buffer);ne(Ke)}else if(je==="archive"){let Ae=new Blob([Ie.buffer],{type:Ie.headers.get("Content-Type")||"application/octet-stream"});Be(new File([Ae],an(Qe,e,"\u9884\u89C8.zip"),{type:Ae.type}))}else if(je==="cad"){let Ae=new Blob([Ie.buffer],{type:"application/octet-stream"});pe(new File([Ae],an(Qe,e,"\u9884\u89C8.dwg"),{type:"application/octet-stream"}))}}catch(et){if(Pt.current)return;console.error(et);let Ie=et?.message||"",Ae=et?.name||"",Ke=[];Ke.push("\u6587\u4EF6\u9884\u89C8\u5931\u8D25"),Ae&&Ke.push(`\u9519\u8BEF\u7C7B\u578B\uFF1A${Ae}`),Ie&&Ke.push(`\u9519\u8BEF\u4FE1\u606F\uFF1A${Ie}`),z(Ke.join(`
|
|
551
|
-
`))}finally{P(!1)}})().catch(()=>{}),()=>{Pt.current=!0,lt.current.abort(),lt.current=new To.net.AbortController}):void 0,[e,r,t,i,c,w,h]);let Ct=()=>{Pt.current=!0,lt.current.abort(),lt.current=new To.net.AbortController,P(!1),R(""),re(null),le(null),Y(null),xe(null),ke(null),Be(null),pe(null),ae(null),z(null),v(""),ne(""),a()};return Re(Hf,{open:r,closeIcon:s||M==="markdown"||M==="richdoc"||M==="word"&&i||M==="excel"&&i?null:void 0,onCancel:Ct,footer:null,className:"ant-modal-nopadding ant-modal-fullscreen"+(M=="ppt"?" ant-modal-ppt":""),styles:{body:{padding:0,justifyContent:"center",display:"flex"}},destroyOnHidden:!0,keyboard:!1,transitionName:s?"none":void 0,children:Xn("div",{style:{width:"100%",display:"flex",justifyContent:"center",alignItems:M==="excel"&&!i?"flex-start":"center",background:M==="excel"&&!i?"#ffffff":"rgb(var(--color-background))",minHeight:"100dvh",position:"relative"},children:[M==="word"&&i&&Re(on,{fallback:Re(br,{label:"Word \u7F16\u8F91\u5668"}),children:Re(Xf,{hiddenClose:s,isCreate:o,visible:M==="word"&&r,fileName:an(c,e,"\u9884\u89C8.docx"),initialBlob:Z||void 0,onClose:Ct,readOnly:!i,onUpload:i?d:void 0,uploadPercent:n,isOffline:N,isLocalOnly:S,hasUnsyncedChanges:I,onSaveLocalBlob:W})}),M==="word"&&!i&&Re(on,{fallback:Re("div",{style:{width:"100%",display:"flex",justifyContent:"center",alignItems:"center",minHeight:240},children:"\u52A0\u8F7DWord\u9884\u89C8\u7EC4\u4EF6..."}),children:Re(jf,{file:Q})}),M==="excel"&&i&&Re(on,{fallback:Re(br,{label:"Excel \u7F16\u8F91\u5668"}),children:Re(Kf,{hiddenClose:s,visible:M==="excel"&&r,fileName:an(c,e,"\u9884\u89C8.xlsx"),initialBlob:A||void 0,isCreate:o,onClose:Ct,readOnly:!i,onUpload:i?d:void 0,uploadPercent:n,uploadSuccess:l,isOffline:N,isLocalOnly:S,hasUnsyncedChanges:I,onSaveLocalBlob:W})}),M==="excel"&&!i&&Re(on,{fallback:Re("div",{style:{width:"100%",display:"flex",justifyContent:"center",alignItems:"center",minHeight:240},children:"\u52A0\u8F7DExcel\u9884\u89C8\u7EC4\u4EF6..."}),children:Re(Vf,{file:_e})}),M==="pdf"&&Re(on,{fallback:Re("div",{style:{width:"100%",display:"flex",justifyContent:"center",alignItems:"center",minHeight:240},children:"\u52A0\u8F7DPDF\u9884\u89C8\u7EC4\u4EF6..."}),children:Re(Uf,{file:K,progressKey:w||(c?`name:${c}`:void 0)})}),Re(ss,{containerRef:Ce,type:M}),Re(ls,{previewUrl:y,type:M}),M==="archive"&&Re(on,{fallback:Re(br,{label:"\u538B\u7F29\u5305\u9884\u89C8\u5668"}),children:Re(qf,{file:Ee})}),M==="cad"&&Re(on,{fallback:Re(br,{label:"CAD \u56FE\u7EB8\u9884\u89C8\u5668"}),children:Re(Yf,{file:be})}),M==="markdown"&&Re(on,{fallback:Re(br,{label:"Markdown \u7F16\u8F91\u5668"}),children:Re(Zf,{hiddenClose:s,value:q,onClose:Ct,readOnly:!i,isCreate:o,visible:M==="markdown"&&r,defaultPreviewMode:!i,onUpload:i?p:void 0,fileName:an(c,e,"\u9884\u89C8.md"),uploadPercent:n,uploadSuccess:l,isOffline:N,isLocalOnly:S,hasUnsyncedChanges:I,onSaveLocalMarkdown:H})}),M==="richdoc"&&Re(on,{fallback:Re(br,{label:"\u6587\u6863\u7F16\u8F91\u5668"}),children:Re(Wf,{hiddenClose:s,value:ye,onClose:Ct,readOnly:!i,isCreate:o,visible:M==="richdoc"&&r,onUpload:i?p:void 0,fileName:an(c,e,"\u9884\u89C8.rdoc"),uploadPercent:n,uploadSuccess:l,isOffline:N,isLocalOnly:S,hasUnsyncedChanges:I,onSaveLocalMarkdown:H})}),M==="ppt"&&Re(on,{fallback:Re("div",{style:{width:"100%",display:"flex",justifyContent:"center",alignItems:"center",minHeight:240},children:"\u52A0\u8F7DPPT\u9884\u89C8\u7EC4\u4EF6..."}),children:Re(Gf,{file:$e})}),G?Xn("div",{style:{width:"100%",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",position:"absolute",top:0,left:0,right:0,bottom:0,background:"rgb(var(--color-surface))",zIndex:10},children:[Re(rl,{}),Xn("span",{style:{marginTop:16,color:"rgb(var(--color-muted))"},children:["\u6B63\u5728\u52A0\u8F7D\u9884\u89C8\u5185\u5BB9 ",L,"% ..."]})]}):O?Xn("div",{style:{color:"#ff4d4f",width:"100%",maxWidth:640,display:"flex",flexDirection:"column",gap:12,justifyContent:"center",alignItems:"center",position:"absolute",top:0,left:0,right:0,bottom:0,background:"rgb(var(--color-surface))",zIndex:100,padding:24,textAlign:"center",whiteSpace:"pre-line",wordBreak:"break-all"},children:[Re(nl,{style:{fontSize:40,color:"#ff4d4f"}}),Re("span",{style:{fontSize:16,lineHeight:1.8},children:O})]}):M==="image"||M==="video"?Re(Qf,{}):rt.includes(M)?null:Xn("div",{style:{padding:24,color:"#555"},children:[Re(nl,{style:{color:"#faad14"}})," \u5F53\u524D\u6587\u4EF6\u7C7B\u578B\u4E0D\u652F\u6301\u9884\u89C8\u3002"]})]})})};fn();ea();var Xt={downloadFile:ro,fetchFileBuffer:oo,getFileIcon:rs,getFileUrl:kn,getFilePreviewType:rr};import{useEffectResize as cg}from"@spacecorexdev/core/utils";import{getViewMode as dg,setViewMode as ug}from"@spacecorexdev/core/utils";var ol=(e,t=0)=>{e.forEach(r=>{r.level=t,r.children&&r.children.length>0&&ol(r.children,t+1)})},ct=e=>{let t=new Map,r=[];e.forEach(a=>{let s={...a,children:[]};t.set(a.id,s)});let o=new Map;return e.forEach(a=>{a.fileType==="folder"&&o.set(a.filePath+a.fileName+"/",a.id)}),e.forEach(a=>{let s=t.get(a.id),i=a.filePath,c=o.get(i)||null;if(c){s.parentId=c;let n=t.get(c);n&&n.children?n.children.push(s):r.push(s)}else r.push(s)}),ol(r),r},Po=(e,t)=>{let r=[],o=[e];for(;o.length;){let a=o.pop(),s=t.filter(i=>i.parentId===a.id);for(let i of s)r.push(i.id),o.push(i)}return r};var Pa=(e,t)=>{let r=[];if(e&&e.fileType==="folder"){let o=e.filePath+e.fileName+"/";r=t.filter(a=>a.id===e.id||a.filePath&&a.filePath.startsWith(o))}return r},Ln=e=>[...e].sort((t,r)=>t.isVirtualContractFolder&&!r.isVirtualContractFolder?-1:!t.isVirtualContractFolder&&r.isVirtualContractFolder?1:t.fileType==="folder"&&r.fileType!=="folder"?-1:t.fileType!=="folder"&&r.fileType==="folder"?1:t.isSecure&&!r.isSecure?-1:!t.isSecure&&r.isSecure?1:t.fileName.localeCompare(r.fileName)),Ar=(e,t,r)=>[...e].sort((a,s)=>{if(a.isVirtualContractFolder&&!s.isVirtualContractFolder)return-1;if(!a.isVirtualContractFolder&&s.isVirtualContractFolder)return 1;if(a.fileType==="folder"&&s.fileType!=="folder")return-1;if(a.fileType!=="folder"&&s.fileType==="folder")return 1;if(a.isSecure&&!s.isSecure)return-1;if(!a.isSecure&&s.isSecure)return 1;let i=0;if(t==="fileName")i=a.fileName.localeCompare(s.fileName,"zh-CN");else if(t==="uploadTime"){let c=a.uploadTime instanceof Date?a.uploadTime.getTime():new Date(a.uploadTime).getTime(),n=s.uploadTime instanceof Date?s.uploadTime.getTime():new Date(s.uploadTime).getTime();i=c-n}else if(t==="fileSize")i=(a.fileSize||0)-(s.fileSize||0),i===0&&(i=a.fileName.localeCompare(s.fileName,"zh-CN"));else{let c=a.fileType==="folder"?"folder":(a.fileName.split(".").pop()||"").toLowerCase(),n=s.fileType==="folder"?"folder":(s.fileName.split(".").pop()||"").toLowerCase();i=c.localeCompare(n,"zh-CN"),i===0&&(i=a.fileName.localeCompare(s.fileName,"zh-CN"))}return r==="asc"?i:-i}).map(a=>({...a,children:a.children&&a.children.length>0?Ar(a.children,t,r):a.children}));import{memo as sm,useMemo as im}from"react";import{useLongPress as lm}from"@spacecorexdev/core/hooks";import{Tag as Ma,Checkbox as cm}from"antd";import{ResizableTable as dm}from"@spacecorexdev/core/ui";import{formatDatetime as um,formatDisksize as pm}from"@spacecorexdev/core/utils";import{CheckOutlined as fm,CloudOutlined as mm,WarningOutlined as hm,LinkOutlined as gm}from"@ant-design/icons";var Nr=e=>{let t=e.toLowerCase().split(".").pop()||"";return["pptx","md","xlsx","docx","rdoc"].includes(t)},em="$$__notes$$__",tm=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),nm=new RegExp(`^${tm(em)}\\d*$`),al=e=>nm.test(e),rm=e=>e?e.split("/").some(t=>!!t&&al(t)):!1,Mo=e=>e.filter(t=>!al(t.fileName)&&!rm(t.filePath)),om="__contracts__",am="\u5408\u540C",Io="__contracts_virtual__",qn=(e,t)=>t?.isVirtualContractFolder&&e===om?am:t?.isContractSubfolder&&t?.descs?t.descs:e;import{jsx as At,jsxs as sl}from"react/jsx-runtime";var Ia=["ascend","descend","ascend"],ym=({dataSource:e,expandedRowKeys:t,selectedFolderId:r,dragOverId:o,dragSourceId:a,smallView:s,isFolderExpanded:i,onExpand:c,onPreview:n,onDownload:l,onCopyLink:d,onRename:p,onEditDescs:w,onDelete:h,onEdit:_,onGenerateTempLink:b,onMove:x,onDragStart:S,onDragEnd:I,onDragOver:N,onDragLeave:W,onDrop:H,onRowContextMenu:M,onMoveToProject:ee,onCopyToProject:y,onCopyToSelf:R,onViewVersionHistory:G,onJumpToContract:P,sortBy:L,sortOrder:j,onSortByChange:O,selectedIds:z,onToggleSelect:q})=>{let{handleTouchStart:v,handleTouchMove:ye,handleTouchEnd:ne,handleTouchCancel:A,wasLongPressed:re,resetLongPress:_e}=lm((K,ae)=>{let te=ae.touches[0],fe={preventDefault:()=>{},stopPropagation:()=>{},clientX:te.clientX,clientY:te.clientY};M(fe,K)},{delay:500,smallView:s}),le=im(()=>Ar(e,L,j),[e,L,j]),$e=(K,ae,te)=>{let Ce=(Array.isArray(te)?te[0]:te)?.columnKey;Ce!=="fileName"&&Ce!=="fileSize"&&Ce!=="uploadTime"||O(Ce)},Y=K=>L===K?j==="asc"?"ascend":"descend":null,Z=K=>()=>{re(K)||K.fileType==="folder"&&c(!i(K.id),K),_e(K)},xe=s?12:16,Q=K=>!!K.isContractLink||!!K.isVirtualContractFolder||!!K.isContractSubfolder||!!K.isContractTagFolder,ke=[{title:"\u540D\u79F0",dataIndex:"fileName",key:"fileName",width:400,sorter:!0,sortDirections:Ia,sortOrder:Y("fileName"),render:(K,ae)=>sl("div",{className:"flex",style:{minWidth:0,opacity:(ae.isContractSubfolder||ae.isContractLink)&&ae.contractSigned===!1?.55:void 0},onContextMenu:te=>{te.preventDefault(),te.stopPropagation(),M(te,ae)},children:[At("div",{className:"flex items-center",onClick:te=>te.stopPropagation(),children:At(cm,{checked:z.includes(ae.id),disabled:Q(ae),onChange:te=>q(ae.id,te.target.checked)})}),sl("div",{className:"flex items-center ml-2 text-ellipsis overflow-hidden",children:[Xt.getFileIcon({fileName:K,fileType:ae.fileType,isExpanded:i(ae.id),isSecure:ae.isSecure,isVirtualContractFolder:ae.isVirtualContractFolder,isContractSubfolder:ae.isContractSubfolder,isContractTagFolder:ae.isContractTagFolder,contractSigned:ae.contractSigned}),ae.isContractLink&&At(gm,{className:"ml-1 text-green-600",style:{fontSize:12}}),At("span",{className:`truncate ml-1 flex-1 ${ae.isContractLink?"hover:underline cursor-pointer":""}`,title:ae.isContractLink?`\u5408\u540C\u9644\u4EF6${ae.descs?`\uFF08${ae.descs}\uFF09`:""}`:qn(K,{isVirtualContractFolder:ae.isVirtualContractFolder,isContractSubfolder:ae.isContractSubfolder,descs:ae.descs}),children:qn(K,{isVirtualContractFolder:ae.isVirtualContractFolder,isContractSubfolder:ae.isContractSubfolder,descs:ae.descs})}),ae.isContractSubfolder&&ae.contractSigned===!1&&At(Ma,{className:"ml-1",style:{marginInlineStart:4},title:"\u8BE5\u5408\u540C\u5C1A\u672A\u7B7E\u7EA6\uFF0C\u7B7E\u7EA6\u540E\u76D6\u7AE0\u6587\u4EF6\u4F1A\u663E\u793A\u5728\u6B64\u6587\u4EF6\u5939\u4E2D",children:"\u672A\u7B7E\u7EA6"}),ae.isLocalOnly&&At(Ma,{icon:At(mm,{}),color:"orange",className:"ml-1",style:{marginInlineStart:4},title:"\u4EC5\u4FDD\u5B58\u5728\u672C\u5730\uFF0C\u5C1A\u672A\u4E0A\u4F20\u5230\u670D\u52A1\u5668",children:"\u672C\u5730"}),!ae.isLocalOnly&&ae.hasUnsyncedChanges&&At(Ma,{icon:At(hm,{}),color:"warning",className:"ml-1",style:{marginInlineStart:4},title:"\u672C\u5730\u6709\u672A\u540C\u6B65\u7684\u4FEE\u6539\uFF0C\u91CD\u65B0\u4E0A\u4F20\u540E\u53EF\u4E0E\u670D\u52A1\u5668\u4E00\u81F4",children:"\u672A\u540C\u6B65"}),ae.hasLocalCache&&At("span",{className:"ml-1 flex h-3 w-3 items-center justify-center rounded-full bg-green-600 text-white",title:"\u5DF2\u7F13\u5B58\u5230\u672C\u5730",children:At(fm,{className:"w-2 h-2"})})]})]})},{title:"\u5927\u5C0F",dataIndex:"fileSize",key:"fileSize",width:85,className:"font-thin",sorter:!0,sortDirections:Ia,sortOrder:Y("fileSize"),render:K=>K==0?"":pm(K)}],Ee={title:"\u5907\u6CE8",dataIndex:"descs",key:"descs",className:"font-thin",ellipsis:!0,render:K=>K||""},Be=[{title:"\u4E0A\u4F20\u4EBA",dataIndex:"uploaderName",key:"uploaderName",width:80,className:"font-thin"},{title:"\u4E0A\u4F20\u65F6\u95F4",dataIndex:"uploadTime",key:"uploadTime",width:140,className:"font-thin",sorter:!0,sortDirections:Ia,sortOrder:Y("uploadTime"),render:K=>um(K)}],be=s?ke:ke.concat(Be);return be.push(Ee),At("div",{children:At(dm,{className:"file-manager-table",scroll:{x:800},columns:be,dataSource:le,loading:!1,rowKey:"id",pagination:!1,size:"small",onChange:$e,expandable:{expandedRowKeys:t,onExpand:c,rowExpandable:K=>K.fileType==="folder"},expandIcon:()=>null,onRow:K=>({style:{cursor:"pointer"},title:K.isSecure?"\u4EC5\u7BA1\u7406\u5458\u53EF\u89C1":qn(K.fileName,{isVirtualContractFolder:K.isVirtualContractFolder,isContractSubfolder:K.isContractSubfolder,descs:K.descs}),draggable:!K.isContractLink&&!K.isVirtualContractFolder&&!K.isContractSubfolder&&!K.isContractTagFolder,onDragStart:ae=>{if(K.isContractLink||K.isVirtualContractFolder||K.isContractSubfolder||K.isContractTagFolder){ae.preventDefault();return}ae.dataTransfer.setData("text/plain",K.id),S(K.id)},onDragEnd:()=>{I()},onDragOver:ae=>{K.fileType==="folder"&&(ae.preventDefault(),N(K.id))},onDragLeave:()=>{o===K.id&&W(K.id)},onDrop:ae=>{if(K.fileType==="folder"){ae.preventDefault();let te=ae.dataTransfer.getData("text/plain");te&&H(te,K.id)}},onDoubleClick:()=>{K.fileType!=="folder"&&n(K)},onClick:Z(K),onTouchStart:v(K),onTouchMove:ye(K),onTouchEnd:ne(K),onTouchCancel:A(K),onContextMenu:ae=>{M(ae,K)}}),rowClassName:K=>z.includes(K.id)?"file-table-row-selected":K.fileType==="folder"&&K.id===r||K.fileType==="folder"&&o===K.id?"file-table-row-highlight":""})})},il=sm(ym);import{memo as Fm,useMemo as ml,useEffect as km}from"react";import{useLongPress as Tm}from"@spacecorexdev/core/hooks";import{Button as Or,Checkbox as Pm}from"antd";import{formatDisksize as Mm}from"@spacecorexdev/core/utils";import{useState as ll,useRef as wm,useLayoutEffect as bm,memo as vm}from"react";import{Menu as _m}from"antd";import{DownloadOutlined as Do,DeleteOutlined as cl,EditOutlined as Ro,InfoCircleOutlined as Lr,CopyOutlined as xm,ExportOutlined as Br,FolderAddOutlined as Da,HistoryOutlined as dl,LinkOutlined as Ra,CommentOutlined as Aa,ClearOutlined as ul,ArrowUpOutlined as pl,FileAddOutlined as Sm}from"@ant-design/icons";import{useEffectResize as Em}from"@spacecorexdev/core/utils";import{ShareAltOutlined as fl}from"@ant-design/icons";import{jsx as Me}from"react/jsx-runtime";var Cm=({record:e,onPreview:t,onDownload:r,onDownloadFolder:o,onCopyLink:a,onRename:s,onEditDescs:i,onDelete:c,onEdit:n,onGenerateTempLink:l,onMoveToProject:d,onCopyToProject:p,onCopyToSelf:w,onViewVersionHistory:h,onShareToWechat:_,onClearCache:b,onOpenInNewWindow:x,onJumpToContract:S,onCreateContract:I,isAdminOrOwner:N=!1,trigger:W="click",placement:H="bottomRight",open:M,position:ee,className:y})=>{let[R,G]=ll(!1);Em(()=>{G(!0)},()=>{G(!1)});let P=[],L=[];w&&L.push({key:"copyToSelf",label:"\u590D\u5236\u526F\u672C",icon:Me(Da,{}),onClick:v=>{w(e),v.domEvent.stopPropagation()}}),p&&L.push({key:"copyToProject",label:"\u590D\u5236\u5230\u5176\u4ED6\u9879\u76EE",icon:Me(Da,{}),onClick:v=>{p(e),v.domEvent.stopPropagation()}}),d&&L.push({key:"moveToProject",label:"\u79FB\u52A8\u5230\u5176\u4ED6\u9879\u76EE",icon:Me(Br,{}),onClick:v=>{d(e),v.domEvent.stopPropagation()}}),e.isContractLink?(P.push({key:"preview",label:"\u9884\u89C8",icon:Me(Lr,{}),onClick:v=>{t(e),v.domEvent.stopPropagation()}},{key:"download",label:"\u4E0B\u8F7D",icon:Me(Do,{}),onClick:v=>{r(e),v.domEvent.stopPropagation()}}),S&&P.push({key:"jumpToContract",label:"\u8DF3\u8F6C\u81F3\u5408\u540C",icon:Me(Br,{}),onClick:v=>{S(e),v.domEvent.stopPropagation()}})):e.isVirtualContractFolder?(I&&P.push({key:"createContract",label:"\u521B\u5EFA\u5408\u540C",icon:Me(Sm,{}),onClick:v=>{I(e),v.domEvent.stopPropagation()}}),e.id!==Io?(P.push({key:"editDescs",label:"\u7F16\u8F91\u5907\u6CE8",icon:Me(Aa,{}),onClick:v=>{i(e),v.domEvent.stopPropagation()}}),l&&P.push({key:"generateTempLink",label:"\u4E34\u65F6\u8BBF\u95EE\u94FE\u63A5",icon:Me(Ra,{}),onClick:v=>{l(e),v.domEvent.stopPropagation()}})):I||P.push({key:"contractFolderHint",label:"\u5408\u540C\u9644\u4EF6\u6587\u4EF6\u5939",icon:Me(Lr,{}),disabled:!0})):e.isContractSubfolder?S&&P.push({key:"jumpToContract",label:"\u8DF3\u8F6C\u81F3\u5408\u540C",icon:Me(Br,{}),onClick:v=>{S(e),v.domEvent.stopPropagation()}}):e.isContractTagFolder?P.push({key:"contractTagFolderHint",label:"\u5408\u540C\u5206\u7C7B\u6587\u4EF6\u5939",icon:Me(Lr,{}),disabled:!0}):e.fileType==="folder"||e.isSecure?(e.isSecure&&e.fileType!=="folder"&&(P.push({key:"preview",label:"\u9884\u89C8",icon:Me(Lr,{}),onClick:v=>{t(e),v.domEvent.stopPropagation()}}),x&&P.push({key:"openInNewWindow",label:"\u5728\u65B0\u7A97\u53E3\u6253\u5F00",icon:Me(pl,{}),onClick:v=>{x(e),v.domEvent.stopPropagation()}}),n&&Nr(e.fileName)&&P.push({key:"edit",label:"\u7F16\u8F91",icon:Me(Ro,{}),onClick:v=>{n(e),v.domEvent.stopPropagation()}}),h&&Nr(e.fileName)&&P.push({key:"versionHistory",label:"\u67E5\u770B\u5386\u53F2\u7248\u672C",icon:Me(dl,{}),onClick:v=>{h(e),v.domEvent.stopPropagation()}}),P.push({key:"download",label:"\u4E0B\u8F7D",icon:Me(Do,{}),onClick:v=>{r(e),v.domEvent.stopPropagation()}})),e.fileType==="folder"&&o&&!e.isVirtualContractFolder&&!e.isContractSubfolder&&!e.isContractTagFolder&&P.push({key:"downloadFolder",label:"\u4E0B\u8F7D\u6587\u4EF6\u5939",icon:Me(Do,{}),onClick:v=>{o(e),v.domEvent.stopPropagation()}}),P.push({key:"rename",label:"\u91CD\u547D\u540D",icon:Me(Ro,{}),onClick:v=>{s(e),v.domEvent.stopPropagation()}},{key:"editDescs",label:"\u7F16\u8F91\u5907\u6CE8",icon:Me(Aa,{}),onClick:v=>{i(e),v.domEvent.stopPropagation()}}),e.fileType==="folder"?p&&P.push({key:"copyToProject",label:"\u590D\u5236\u5230\u5176\u4ED6\u9879\u76EE",icon:Me(Da,{}),onClick:v=>{p(e),v.domEvent.stopPropagation()}}):L.length>0&&P.push({key:"moveCopyToProject",label:"\u79FB\u52A8/\u590D\u5236...",icon:Me(Br,{}),children:L}),_&&e.isSecure&&N&&P.push({key:"shareToWechat",label:"\u5206\u4EAB\u5230\u5FAE\u4FE1",icon:Me(fl,{}),onClick:v=>{_(e),v.domEvent.stopPropagation()}}),b&&e.isSecure&&e.fileType!=="folder"&&P.push({key:"clearCache",label:"\u6E05\u7406\u7F13\u5B58",icon:Me(ul,{}),onClick:v=>{b(e),v.domEvent.stopPropagation()}}),e.fileType==="folder"&&l&&P.push({key:"generateTempLink",label:"\u4E34\u65F6\u8BBF\u95EE\u94FE\u63A5",icon:Me(Ra,{}),onClick:v=>{l(e),v.domEvent.stopPropagation()}}),P.push({key:"delete",label:"\u5220\u9664",icon:Me(cl,{}),danger:!0,onClick:v=>{c(e.id),v.domEvent.stopPropagation()}})):(P.push({key:"preview",label:"\u9884\u89C8",icon:Me(Lr,{}),onClick:v=>{t(e),v.domEvent.stopPropagation()}}),x&&P.push({key:"openInNewWindow",label:"\u5728\u65B0\u7A97\u53E3\u6253\u5F00",icon:Me(pl,{}),onClick:v=>{x(e),v.domEvent.stopPropagation()}}),n&&Nr(e.fileName)&&!e.fileName.toLowerCase().endsWith(".pptx")&&P.push({key:"edit",label:"\u7F16\u8F91",icon:Me(Ro,{}),onClick:v=>{n(e),v.domEvent.stopPropagation()}}),h&&Nr(e.fileName)&&P.push({key:"versionHistory",label:"\u67E5\u770B\u5386\u53F2\u7248\u672C",icon:Me(dl,{}),onClick:v=>{h(e),v.domEvent.stopPropagation()}}),P.push({key:"download",label:"\u4E0B\u8F7D",icon:Me(Do,{}),onClick:v=>{r(e),v.domEvent.stopPropagation()}},{key:"rename",label:"\u91CD\u547D\u540D",icon:Me(Ro,{}),onClick:v=>{s(e),v.domEvent.stopPropagation()}},{key:"editDescs",label:"\u7F16\u8F91\u5907\u6CE8",icon:Me(Aa,{}),onClick:v=>{i(e),v.domEvent.stopPropagation()}}),L.length>0&&P.push({key:"moveCopyToProject",label:"\u79FB\u52A8/\u590D\u5236...",icon:Me(Br,{}),children:L}),l&&P.push({key:"generateTempLink",label:"\u4E34\u65F6\u8BBF\u95EE\u94FE\u63A5",icon:Me(Ra,{}),onClick:v=>{l(e),v.domEvent.stopPropagation()}}),a&&P.push({key:"copyLink",label:"\u590D\u5236\u94FE\u63A5",icon:Me(xm,{}),onClick:v=>{a(e),v.domEvent.stopPropagation()}}),_&&P.push({key:"shareToWechat",label:"\u5206\u4EAB\u5230\u5FAE\u4FE1",icon:Me(fl,{}),onClick:v=>{_(e),v.domEvent.stopPropagation()}}),b&&e.fileType!=="folder"&&P.push({key:"clearCache",label:"\u6E05\u7406\u7F13\u5B58",icon:Me(ul,{}),onClick:v=>{b(e),v.domEvent.stopPropagation()}}),P.push({key:"delete",label:"\u5220\u9664",icon:Me(cl,{}),danger:!0,onClick:v=>{c(e.id),v.domEvent.stopPropagation()}}));let j=M!==void 0,O=wm(null),[z,q]=ll({left:0,top:0});return bm(()=>{if(!j||!M||!ee||!O.current)return;let v=8,ye=O.current.offsetWidth||160,ne=O.current.offsetHeight||192,A=window.innerWidth-ye-v,re=window.innerHeight-ne-v;q({left:Math.max(v,Math.min(ee.x,A)),top:Math.max(v,Math.min(ee.y,re))})},[j,M,ee]),j&&M?Me("div",{className:"fixed z-50",style:{left:z.left||ee?.x||0,top:z.top||ee?.y||0,minWidth:160},onClick:v=>{v.stopPropagation()},children:Me("div",{ref:O,children:Me(_m,{items:P,mode:"vertical",style:{borderRadius:6,boxShadow:"0 2px 8px rgb(var(--shadow-color) / 0.15)",background:"rgb(var(--color-surface))",border:"1px solid rgb(var(--color-border))",padding:"4px 0",fontSize:"14px",minWidth:160,maxHeight:"calc(100vh - 16px)",overflowY:"auto"}})})}):Me("div",{className:y})},Ao=vm(Cm);import{htmlNoData as Im}from"@spacecorexdev/core/utils";import{CheckOutlined as Dm,WarningOutlined as Rm,CloudOutlined as Am,LinkOutlined as Nm,SortAscendingOutlined as Lm,SortDescendingOutlined as Bm}from"@ant-design/icons";import{jsx as qe,jsxs as Yn}from"react/jsx-runtime";var Om=({item:e,level:t,selectedFolderId:r,dragOverId:o,isFolderExpanded:a,smallView:s,onPreview:i,onDownload:c,onDownloadFolder:n,onCopyLink:l,onRename:d,onEditDescs:p,onDelete:w,onEdit:h,onGenerateTempLink:_,onToggleExpand:b,onMove:x,onDragStart:S,onDragEnd:I,onDragOver:N,onDragLeave:W,onDrop:H,onRowContextMenu:M,onMoveToProject:ee,onCopyToProject:y,onCopyToSelf:R,onViewVersionHistory:G,onJumpToContract:P,selected:L,onToggleSelect:j})=>{let{handleTouchStart:O,handleTouchMove:z,handleTouchEnd:q,handleTouchCancel:v,wasLongPressed:ye,resetLongPress:ne}=Tm((Q,ke)=>{let Ee=ke.touches[0],Be={preventDefault:()=>{},stopPropagation:()=>{},clientX:Ee.clientX,clientY:Ee.clientY};M(Be,Q)},{delay:500,smallView:s}),A=()=>{let Q=["relative","group","p-4","rounded-lg","cursor-pointer","hover:bg-tableHover","hover:-translate-y-px","hover:shadow-sm","transition-all","duration-200"];return L?Q.push("bg-blue-50","ring-1","ring-blue-300"):e.fileType==="folder"&&e.id===r?Q.push("bg-blue-100"):e.fileType==="folder"&&o===e.id&&Q.push("bg-blue-50"),Q.join(" ")},re=()=>{let Q="\u4F4D\u7F6E\uFF1A"+(e.filePath==="/"?"/":e.filePath.slice(0,e.filePath.length-1));return e.isSecure&&(Q+="\uFF08\u4EC5\u7BA1\u7406\u5458\u53EF\u89C1\uFF09"),e.isContractLink&&(Q+="\uFF08\u5408\u540C\u9644\u4EF6\uFF09"),e.isContractSubfolder&&e.contractSigned===!1&&(Q+="\uFF08\u672A\u7B7E\u7EA6\uFF09"),Q},_e=(e.isContractSubfolder||e.isContractLink)&&e.contractSigned===!1,le=Q=>{e.fileType==="folder"&&(Q.preventDefault(),N(e.id))},$e=()=>{o===e.id&&W(e.id)},Y=Q=>{if(e.fileType==="folder"){Q.preventDefault();let ke=Q.dataTransfer.getData("text/plain");ke&&x(ke,e.id),W(e.id)}},Z=()=>{e.fileType!=="folder"&&i(e)},xe=()=>{ye(e)||e.fileType==="folder"&&b(e),ne(e)};return Yn("div",{title:re(),className:A(),style:{marginLeft:`${t*16}px`,opacity:_e?.55:void 0},draggable:!e.isContractLink&&!e.isVirtualContractFolder&&!e.isContractSubfolder&&!e.isContractTagFolder,onDragStart:Q=>{if(e.isContractLink||e.isVirtualContractFolder||e.isContractSubfolder||e.isContractTagFolder){Q.preventDefault();return}Q.dataTransfer.setData("text/plain",e.id),S(e.id)},onDragEnd:()=>{I()},onDragOver:le,onDragLeave:$e,onDrop:Y,onDoubleClick:Z,onClick:xe,onTouchStart:O(e),onTouchMove:z(e),onTouchEnd:q(e),onTouchCancel:v(e),onContextMenu:Q=>{Q.preventDefault(),Q.stopPropagation(),M(Q,e)},children:[!e.isContractLink&&!e.isVirtualContractFolder&&!e.isContractSubfolder&&!e.isContractTagFolder&&qe("div",{className:`absolute left-1 top-1 z-10 ${L||s?"opacity-100":"opacity-0 group-hover:opacity-100"}`,onClick:Q=>Q.stopPropagation(),children:qe(Pm,{checked:L,onChange:Q=>j(e.id,Q.target.checked)})}),Yn("div",{className:"flex flex-col items-center text-center",children:[Yn("div",{className:"relative mb-2",children:[qe("div",{className:"text-4xl",children:Xt.getFileIcon({fileName:e.fileName,fileType:e.fileType,isExpanded:a(e.id),isSecure:e.isSecure,isVirtualContractFolder:e.isVirtualContractFolder,isContractSubfolder:e.isContractSubfolder,isContractTagFolder:e.isContractTagFolder,contractSigned:e.contractSigned,size:32})}),e.isContractLink&&qe("span",{className:"absolute -top-1 -left-1 flex h-4 w-4 items-center justify-center rounded-full text-white text-[10px] shadow-sm",style:{backgroundColor:"#52c41a"},title:"\u5408\u540C\u9644\u4EF6",children:qe(Nm,{})}),e.isLocalOnly&&qe("span",{className:"absolute -top-1 -left-1 flex h-4 w-4 items-center justify-center rounded-full text-white text-[10px] shadow-sm",style:{backgroundColor:"#fa8c16"},title:"\u4EC5\u4FDD\u5B58\u5728\u672C\u5730\uFF0C\u5C1A\u672A\u4E0A\u4F20\u5230\u670D\u52A1\u5668",children:qe(Am,{})}),!e.isLocalOnly&&e.hasUnsyncedChanges&&qe("span",{className:"absolute -top-1 -left-1 flex h-4 w-4 items-center justify-center rounded-full text-white text-[10px] shadow-sm",style:{backgroundColor:"#faad14"},title:"\u672C\u5730\u6709\u672A\u540C\u6B65\u7684\u4FEE\u6539\uFF0C\u91CD\u65B0\u4E0A\u4F20\u540E\u53EF\u4E0E\u670D\u52A1\u5668\u4E00\u81F4",children:qe(Rm,{className:"w-2.5 h-2.5"})}),e.hasLocalCache&&qe("span",{className:"absolute -top-1 -right-1 flex h-3 w-3 items-center justify-center rounded-full bg-green-600 text-white text-xs",children:qe(Dm,{className:"w-2 h-2"})})]}),Yn("div",{className:"text-sm w-full",style:{display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden",wordBreak:"break-all",lineHeight:"1.3em",maxHeight:"2.6em"},title:e.isContractLink?`\u5408\u540C\u9644\u4EF6${e.descs?`\uFF08${e.descs}\uFF09`:""}`:qn(e.fileName,{isVirtualContractFolder:e.isVirtualContractFolder,isContractSubfolder:e.isContractSubfolder,descs:e.descs}),children:[e.isLocalOnly&&qe("span",{className:"mr-1 inline-flex items-center text-[10px] px-1 rounded",style:{backgroundColor:"#fff7e6",color:"#d46b08",border:"1px solid #ffd591"},children:"\u672C\u5730"}),!e.isLocalOnly&&e.hasUnsyncedChanges&&qe("span",{className:"mr-1 inline-flex items-center text-[10px] px-1 rounded",style:{backgroundColor:"#fffbe6",color:"#ad6800",border:"1px solid #ffe58f"},children:"\u672A\u540C\u6B65"}),e.isContractSubfolder&&e.contractSigned===!1&&qe("span",{className:"mr-1 inline-flex items-center text-[10px] px-1 rounded",style:{backgroundColor:"#f3f4f6",color:"#6b7280",border:"1px solid #d1d5db"},children:"\u672A\u7B7E\u7EA6"}),qe("span",{className:"text-sm",children:qn(e.fileName,{isVirtualContractFolder:e.isVirtualContractFolder,isContractSubfolder:e.isContractSubfolder,descs:e.descs})})]}),qe("div",{className:"text-xs text-gray-400 mt-1",children:e.fileSize>0?Mm(e.fileSize):""})]}),qe(Ao,{record:e,onPreview:i,onDownload:c,onDownloadFolder:n,onCopyLink:l,onRename:d,onEditDescs:p,onDelete:w,onEdit:h,onGenerateTempLink:_,onMoveToProject:ee,onCopyToProject:y,onCopyToSelf:R,onViewVersionHistory:G,onJumpToContract:P,trigger:"click",placement:"bottomRight",className:"absolute top-2 right-2 z-10"})]},e.id)},$m=({dataSource:e,selectedFolderId:t,dragOverId:r,isFolderExpanded:o,smallView:a,onPreview:s,onDownload:i,onDownloadFolder:c,onCopyLink:n,onRename:l,onEditDescs:d,onDelete:p,onEdit:w,onGenerateTempLink:h,onFolderChange:_,onMove:b,onDragStart:x,onDragEnd:S,onDragOver:I,onDragLeave:N,onDrop:W,onRowContextMenu:H,onMoveToProject:M,onCopyToProject:ee,onCopyToSelf:y,onViewVersionHistory:R,onJumpToContract:G,sortBy:P,sortOrder:L,onSortByChange:j,onSortOrderToggle:O,selectedIds:z,onToggleSelect:q})=>{let v=ml(()=>Ar(e,P,L),[e,P,L]),ye=ml(()=>{let _e=new Map,le=$e=>{$e.forEach(Y=>{_e.set(Y.id,Y),Y.children&&Y.children.length>0&&le(Y.children)})};return le(v),_e},[v]),ne=t?ye.get(t):void 0,A=ne?ne.children||[]:v;km(()=>{t&&!ye.has(t)&&_(null)},[t,ye,_]);let re=_e=>_e.map(le=>qe(Om,{item:le,level:0,selectedFolderId:t,dragOverId:r,isFolderExpanded:o,smallView:a,onPreview:s,onDownload:i,onDownloadFolder:c,onCopyLink:n,onRename:l,onEditDescs:d,onDelete:p,onEdit:w,onGenerateTempLink:h,onToggleExpand:$e=>_($e.id),onMove:b,onDragStart:x,onDragEnd:S,onDragOver:I,onDragLeave:N,onDrop:W,onRowContextMenu:H,onMoveToProject:M,onCopyToProject:ee,onCopyToSelf:y,onViewVersionHistory:R,onJumpToContract:G,selected:z.includes(le.id),onToggleSelect:q},le.id));return e.length==0?qe("div",{className:"flex items-center justify-center",children:Im()}):Yn("div",{children:[Yn("div",{className:"flex items-center gap-2 mb-2 mt-2 px-2 flex-wrap",children:[qe(Or,{type:P==="fileName"?"primary":"default",size:"small",onClick:()=>j("fileName"),style:{touchAction:"manipulation"},children:"\u6309\u540D\u79F0"}),qe(Or,{type:P==="fileType"?"primary":"default",size:"small",onClick:()=>j("fileType"),style:{touchAction:"manipulation"},children:"\u6309\u7C7B\u578B"}),qe(Or,{type:P==="fileSize"?"primary":"default",size:"small",onClick:()=>j("fileSize"),style:{touchAction:"manipulation"},children:"\u6309\u5927\u5C0F"}),qe(Or,{type:P==="uploadTime"?"primary":"default",size:"small",onClick:()=>j("uploadTime"),style:{touchAction:"manipulation"},children:"\u6309\u65F6\u95F4"}),qe(Or,{type:"text",size:"small",icon:L==="asc"?qe(Lm,{}):qe(Bm,{}),onClick:O,title:L==="asc"?"\u5347\u5E8F\uFF08\u70B9\u51FB\u5207\u6362\u4E3A\u964D\u5E8F\uFF09":"\u964D\u5E8F\uFF08\u70B9\u51FB\u5207\u6362\u4E3A\u5347\u5E8F\uFF09",style:{touchAction:"manipulation"},children:L==="asc"?"\u5347\u5E8F":"\u964D\u5E8F"})]}),Yn("div",{className:"grid grid-cols-3 sm:grid-cols-6 md:grid-cols-8 lg:grid-cols-10 xl:grid-cols-12 p-4",children:[re(A),ne&&A.length===0&&qe("div",{className:"col-span-full text-center text-sm text-gray-400 py-6",children:"\u8BE5\u76EE\u5F55\u4E3A\u7A7A"})]})]})},hl=Fm($m);import{useState as zm,memo as Hm}from"react";import{Button as Um,Dropdown as jm,Divider as Vm}from"antd";import{FolderAddOutlined as Zm,FileMarkdownFilled as Wm,FileExcelFilled as Km,FileWordFilled as Gm,CaretDownOutlined as Xm,FileTextFilled as qm}from"@ant-design/icons";import{UIFileUpload as Ym}from"@spacecorexdev/core/ui";import{UITableGridViewToggle as Jm}from"@spacecorexdev/core/ui";import{Space as Qm}from"antd";import{Fragment as $r,jsx as ln,jsxs as Jn}from"react/jsx-runtime";var eh=({currentUserRole:e,viewMode:t,onToggleViewMode:r,onCreateFolder:o,onCreateMarkdown:a,onCreateRdoc:s,onCreateExcel:i,onCreateWord:c,onUploadFiles:n})=>{let[l,d]=zm([]),p=e===en.MANAGER||e===en.OWNER,w=p||e===en.MEMBER;return Jn(Qm,{children:[p&&ln(jm,{menu:{items:[{key:"1",label:Jn($r,{children:[ln(Zm,{className:"text-blue-400 mr-1"})," \u65B0\u5EFA\u6587\u4EF6\u5939"]}),onClick:o},{key:"6",label:Jn($r,{children:[ln(qm,{className:"text-yellow-600 mr-1"})," \u65B0\u5EFA\u6587\u6863"]}),onClick:s},{key:"2",label:Jn($r,{children:[ln(Wm,{className:"text-gray-800 mr-1"})," \u65B0\u5EFAMarkdown"]}),onClick:a},{key:"3",label:Jn($r,{children:[ln(Gm,{className:"text-blue-600 mr-1"})," \u65B0\u5EFAWord"]}),onClick:c},{key:"5",label:Jn($r,{children:[ln(Km,{className:"text-green-600 mr-1"})," \u65B0\u5EFAExcel"]}),onClick:i}]},placement:"bottom",children:Jn(Um,{type:"text",children:["\u65B0\u5EFA ",ln(Xm,{})]})}),w&&ln(Ym,{fileList:l,onFinish:async(h,_)=>{await n(h,_),d([])},onChange:d,multiple:!1}),ln(Vm,{type:"vertical"}),ln(Jm,{viewMode:t,onToggle:r})]})},gl=Hm(eh);import{useState as yl}from"react";import{Modal as th,message as vr,Alert as nh}from"antd";import{ProjectSelector as rh}from"@spacecorexdev/core/ui";import{API as wl}from"@spacecorexdev/core/api";import{ResponseCode as oh}from"@spacecorexdev/core/api";import{jsx as Na,jsxs as ah}from"react/jsx-runtime";var bl=({visible:e,fileIds:t,files:r,currentProjectId:o,mode:a,onCancel:s,onSuccess:i})=>{let[c,n]=yl(!1),[l,d]=yl(void 0),p=r?.length===1&&r[0].fileType==="folder",w=a==="move"?"\u79FB\u52A8":"\u590D\u5236";return ah(th,{title:p?"\u590D\u5236\u6587\u4EF6\u5939\u5230\u5176\u4ED6\u9879\u76EE":a==="move"?"\u79FB\u52A8\u5230\u5176\u4ED6\u9879\u76EE":"\u590D\u5236\u5230\u5176\u4ED6\u9879\u76EE",className:"ant-modal-nofull",open:e,onCancel:s,onOk:async()=>{if(!l){vr.warning("\u8BF7\u9009\u62E9\u76EE\u6807\u9879\u76EE");return}n(!0);try{let b=a==="move"?wl.project.file.moveFileToProject:wl.project.file.copyFileToProject,x=await Promise.all(t.map(I=>b({projectId:l,fileId:I}))),S=x.filter(I=>I.code!==oh.SUCCESS).length;S===0?(p?vr.success(`\u6587\u4EF6\u5939\u590D\u5236\u6210\u529F\uFF0C\u76EE\u6807\u9879\u76EE\u4E2D\u7684\u6587\u4EF6\u5939\u540D\u4E3A\uFF1A${x[0].data}`):vr.success(`${w}\u6210\u529F, \u6587\u4EF6\u540D\u4E3A\uFF1A${x[0].data}`),i()):S<t.length?(vr.warning(`\u90E8\u5206${p?"\u6587\u4EF6\u5939":"\u6587\u4EF6"}${w}\u6210\u529F`),i()):vr.error(`${w}\u5931\u8D25`)}catch{vr.error(`${w}\u5931\u8D25`)}finally{n(!1)}},okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88",confirmLoading:c,okButtonProps:{disabled:!l},width:480,children:[p&&Na(nh,{className:"mb-3",type:"info",showIcon:!0,message:"\u6587\u4EF6\u5939\u5185\u7684\u5168\u90E8\u5B50\u6587\u4EF6\u5939\u548C\u6587\u4EF6\u5C06\u4E00\u5E76\u590D\u5236\u5230\u76EE\u6807\u9879\u76EE\u7684\u6839\u76EE\u5F55\uFF0C\u91CD\u540D\u65F6\u4F1A\u81EA\u52A8\u8FFD\u52A0\u6570\u5B57\u540E\u7F00\u3002"}),Na("div",{className:"w-full flex items-center justify-center",children:Na(rh,{value:l?[l]:void 0,onChange:b=>{d(b[0])},className:"w-[100%]",excludeProjectIds:[o],placeholder:"\u8BF7\u9009\u62E9\u76EE\u6807\u9879\u76EE",multiple:!1,allowClear:!0})})]})};import{useState as No,useEffect as sh,useCallback as ih}from"react";import{Modal as lh,Spin as ch,Empty as dh,Button as vl,Space as uh,message as _l}from"antd";import{ResizableTable as ph}from"@spacecorexdev/core/ui";import{HistoryOutlined as fh,DownloadOutlined as mh,EyeOutlined as hh}from"@ant-design/icons";import{API as gh}from"@spacecorexdev/core/api";import{ResponseCode as yh}from"@spacecorexdev/core/api";import{formatDatetime as wh,formatDisksize as bh}from"@spacecorexdev/core/utils";import{Fragment as vh,jsx as Ht,jsxs as zr}from"react/jsx-runtime";var xl=({visible:e,file:t,onClose:r})=>{let[o,a]=No(!1),[s,i]=No([]),[c,n]=No(null),[l,d]=No(!1),p=ih(async()=>{if(t){a(!0);try{let b=await gh.project.fileversion.listVersions({fileId:t.id});b.code===yh.SUCCESS&&b.data?i(b.data):_l.error("\u83B7\u53D6\u6587\u4EF6\u5386\u53F2\u7248\u672C\u5931\u8D25")}catch{_l.error("\u83B7\u53D6\u6587\u4EF6\u5386\u53F2\u7248\u672C\u5931\u8D25")}finally{a(!1)}}},[t]);sh(()=>{e&&t?p():i([])},[e,t,p]);let w=b=>{n(b.fileResourcePath),d(!0)},h=b=>{Xt.downloadFile(b.fileResourcePath,void 0,b.fileId).catch(()=>{})},_=[{title:"\u7248\u672C",key:"version",width:80,render:(b,x,S)=>zr("span",{className:"text-blue-600",children:["v",s.length-S]})},{title:"\u6587\u4EF6\u5927\u5C0F",dataIndex:"fileSize",key:"fileSize",width:100,render:b=>bh(b)},{title:"\u4E0A\u4F20\u65F6\u95F4",dataIndex:"uploadTime",key:"uploadTime",width:160,render:b=>wh(b)},{title:"\u4E0A\u4F20\u4EBA",dataIndex:"uploaderName",key:"uploaderName",width:100},{title:"\u64CD\u4F5C",key:"action",width:120,render:(b,x)=>zr(uh,{children:[Ht(vl,{type:"text",icon:Ht(hh,{}),onClick:()=>w(x),title:"\u9884\u89C8"}),Ht(vl,{type:"text",icon:Ht(mh,{}),onClick:()=>h(x),title:"\u4E0B\u8F7D"})]})}];return zr(vh,{children:[Ht(lh,{title:zr("div",{className:"flex items-center",children:[Ht(fh,{className:"mr-2"}),zr("span",{children:["\u6587\u4EF6\u5386\u53F2\u7248\u672C - ",t?.fileName]})]}),open:e,onCancel:r,footer:null,width:720,destroyOnHidden:!0,children:Ht("div",{className:"py-4",children:o?Ht("div",{className:"flex justify-center items-center py-12",children:Ht(ch,{})}):s.length===0?Ht(dh,{description:"\u6682\u65E0\u5386\u53F2\u7248\u672C",className:"py-12"}):Ht(ph,{columns:_,dataSource:s,rowKey:"id",pagination:!1,scroll:{y:400},size:"middle"})})}),Ht(Rr,{fileUrl:c,fileName:t?.fileName,visible:l,onClose:()=>d(!1),editable:!1,uploadPercent:void 0})]})};fn();eo();import{useEffect as _h,useMemo as xh,useRef as Sh,useState as _r}from"react";import{Modal as Eh,message as Qn,Button as Hr}from"antd";import{CopyOutlined as Sl,ShareAltOutlined as La}from"@ant-design/icons";import{AuthorizationHandler as Ch}from"@spacecorexdev/core/api";import{copyToClipboard as El}from"@spacecorexdev/core/utils";import{jsx as dt,jsxs as Ur}from"react/jsx-runtime";var Fh={doc:"application/msword",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",xls:"application/vnd.ms-excel",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",ppt:"application/vnd.ms-powerpoint",pptx:"application/vnd.openxmlformats-officedocument.presentationml.presentation",pdf:"application/pdf",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",bmp:"image/bmp",txt:"text/plain",csv:"text/csv",mp4:"video/mp4",mp3:"audio/mpeg",zip:"application/zip"},kh=e=>{let t=e.split(".").pop()?.toLowerCase()??"";return Fh[t]??""},Cl=({visible:e,file:t,onClose:r,onFileCached:o})=>{let[a,s]=_r(!1),[i,c]=_r(!1),[n,l]=_r(!1),[d,p]=_r(!1),[w,h]=_r(!1),[_,b]=_r(!1),x=Sh(null),S=xh(()=>t?`${window.location.origin}/filepreview?fileid=${t.id}&path=${encodeURIComponent(t.fileResourcePath)}&name=${encodeURIComponent(t.fileName)}`:"",[t]);_h(()=>{if(!e){x.current=null;return}let R=navigator.userAgent||"",G=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(R),P=/MicroMessenger/i.test(R),L=window.matchMedia("(display-mode: standalone)").matches||!!navigator.standalone,j=!!navigator.share;console.log("[ShareToWechat] \u73AF\u5883\u68C0\u6D4B:",{userAgent:R,isMobile:G,isWechatBrowser:P,hasNativeShare:j,protocol:window.location.protocol,hostname:window.location.hostname,standalone:L}),l(G),h(P),p(j),b(L),c(!1),s(!1),x.current=null,G&&j&&I().then(O=>{x.current=O}).catch(O=>{console.error("[ShareToWechat] \u9884\u53D6\u6587\u4EF6\u5931\u8D25:",O)})},[e]);let I=async()=>{if(!t)throw new Error("\u6587\u4EF6\u4E0D\u5B58\u5728");if(t.hasLocalCache&&t.id)try{let j=await He.getCachedContent(t.id);if(j)return console.log("[ShareToWechat] \u4F7F\u7528\u672C\u5730\u7F13\u5B58\u7684\u6587\u4EF6"),j.content}catch(j){console.error("[ShareToWechat] \u8BFB\u53D6\u7F13\u5B58\u5931\u8D25\uFF0C\u5C06\u4ECE\u7F51\u7EDC\u83B7\u53D6:",j)}console.log("[ShareToWechat] \u4ECE\u7F51\u7EDC\u83B7\u53D6\u6587\u4EF6");let R=kn(t.fileResourcePath);if(!R)throw new Error("\u6587\u4EF6\u8D44\u6E90\u8DEF\u5F84\u4E0D\u53EF\u7528");let G={};G.set=(j,O)=>{G[j]=O},Ch.requestHandleSid({headers:G});let P=await fetch(R,{headers:{Authorization:G.Authorization||""},credentials:"include",mode:"cors"});if(!P.ok)throw new Error(`\u6587\u4EF6\u52A0\u8F7D\u5931\u8D25\uFF0C\u72B6\u6001\u7801 ${P.status}`);let L=await P.blob();if(t.id)try{await He.saveToCache(t.id,L,t.crc32),console.log("[ShareToWechat] \u5DF2\u4FDD\u5B58\u5230\u672C\u5730\u7F13\u5B58"),o?.(t.id)}catch(j){console.error("[ShareToWechat] \u4FDD\u5B58\u5230\u7F13\u5B58\u5931\u8D25:",j)}return L},N=async()=>{if(t){if(n&&d)try{let R=x.current,G=!1;if(R&&navigator.canShare){let P=R.type&&R.type!=="application/octet-stream"?R.type:kh(t.fileName),L=new File([R],t.fileName,{type:P});if(console.log("[ShareToWechat] \u51C6\u5907\u6587\u4EF6\u5206\u4EAB:",{fileName:t.fileName,blobType:R.type,fileType:P,blobSize:R.size,canShare:navigator.canShare({files:[L]})}),navigator.canShare({files:[L]})){G=!0;try{await navigator.share({files:[L],title:t.fileName,text:`\u8BF7\u67E5\u770B\u6587\u4EF6\uFF1A${t.fileName}`}),Qn.success("\u5206\u4EAB\u6210\u529F"),r();return}catch(j){if(j.name==="AbortError"){Qn.info("\u5206\u4EAB\u5DF2\u53D6\u6D88");return}console.warn("[ShareToWechat] \u6587\u4EF6\u5206\u4EAB\u5931\u8D25\uFF0C\u56DE\u9000\u4E0B\u8F7D:",j)}}}if(!G)try{await navigator.share({title:t.fileName,text:`\u8BF7\u67E5\u770B\u6587\u4EF6\uFF1A${t.fileName}`,url:S}),Qn.success("\u5206\u4EAB\u6210\u529F"),r();return}catch(P){if(P.name==="AbortError"){Qn.info("\u5206\u4EAB\u5DF2\u53D6\u6D88");return}console.warn("[ShareToWechat] \u94FE\u63A5\u5206\u4EAB\u5931\u8D25\uFF0C\u56DE\u9000\u4E0B\u8F7D:",P)}}catch(R){console.error("[ShareToWechat] \u5206\u4EAB\u8FC7\u7A0B\u5F02\u5E38:",R)}s(!0);try{await ro(t.fileResourcePath,t.fileName,t.id,t.crc32),c(!0),o?.(t.id)}catch(R){console.error("\u4E0B\u8F7D\u5931\u8D25:",R)}finally{s(!1)}}},W=async()=>{if(t){try{await El(S)}catch(R){console.warn("[ShareToWechat] \u590D\u5236\u94FE\u63A5\u5931\u8D25:",R)}window.location.href="weixin://",Qn.info("\u94FE\u63A5\u5DF2\u590D\u5236\uFF0C\u8BF7\u5728\u5FAE\u4FE1\u804A\u5929\u4E2D\u7C98\u8D34\u53D1\u9001")}},H=async()=>{if(t)try{await El(S),Qn.success("\u5206\u4EAB\u94FE\u63A5\u5DF2\u590D\u5236")}catch(R){Qn.error("\u590D\u5236\u94FE\u63A5\u5931\u8D25"),console.error("\u590D\u5236\u5931\u8D25:",R)}},M=_&&!d,ee=()=>a?"\u5904\u7406\u4E2D...":M?"\u5728\u6D4F\u89C8\u5668\u4E2D\u6253\u5F00":n&&d?"\u5206\u4EAB\u5230\u5FAE\u4FE1":w?"\u590D\u5236\u94FE\u63A5":n?"\u6253\u5F00\u5FAE\u4FE1":"\u4E0B\u8F7D\u6587\u4EF6",y=()=>M?"\u5F53\u524D\u4E3A\u684C\u9762\u5E94\u7528\u6A21\u5F0F\uFF0C\u4E0D\u652F\u6301\u76F4\u63A5\u5206\u4EAB\u3002\u8BF7\u70B9\u51FB\u4E0B\u65B9\u6309\u94AE\u5728\u6D4F\u89C8\u5668\u4E2D\u6253\u5F00\u540E\u5206\u4EAB":n&&d?"\u70B9\u51FB\u4E0B\u65B9\u6309\u94AE\uFF0C\u5728\u7CFB\u7EDF\u5206\u4EAB\u9762\u677F\u4E2D\u9009\u62E9\u5FAE\u4FE1\u53D1\u9001":w?"\u70B9\u51FB\u4E0B\u65B9\u6309\u94AE\u590D\u5236\u94FE\u63A5\uFF0C\u7136\u540E\u70B9\u51FB\u53F3\u4E0A\u89D2\u300C\xB7\xB7\xB7\u300D\u2192\u300C\u53D1\u9001\u7ED9\u670B\u53CB\u300D\u5373\u53EF\u5206\u4EAB":n?"\u70B9\u51FB\u4E0B\u65B9\u6309\u94AE\u6253\u5F00\u5FAE\u4FE1\uFF0C\u94FE\u63A5\u5DF2\u81EA\u52A8\u590D\u5236\uFF0C\u8BF7\u5728\u804A\u5929\u4E2D\u7C98\u8D34\u53D1\u9001":"\u8BF7\u4E0B\u8F7D\u6587\u4EF6\u540E\uFF0C\u5728\u5FAE\u4FE1\u4E2D\u53D1\u9001\u7ED9\u597D\u53CB";return t?dt(Eh,{open:e,onCancel:r,title:"\u5206\u4EAB\u5230\u5FAE\u4FE1",footer:null,width:320,className:"ant-modal-nofull",children:Ur("div",{className:"flex flex-col items-center",children:[dt("div",{className:"mb-4 text-center",children:dt("p",{className:"text-sm text-gray-600",children:y()})}),dt("div",{className:"w-full mb-4",children:Ur("div",{className:"bg-gray-50 rounded-lg p-3",children:[dt("p",{className:"text-sm font-medium text-gray-700 truncate",children:t.fileName}),Ur("p",{className:"text-xs text-gray-400 mt-1",children:[(t.fileSize/1024/1024).toFixed(2)," MB"]}),t.hasLocalCache&&dt("p",{className:"text-xs text-green-500 mt-1",children:"\u{1F4C1} \u5DF2\u7F13\u5B58\uFF0C\u53EF\u79BB\u7EBF\u4F7F\u7528"})]})}),Ur("div",{className:"w-full space-y-2",children:[M?dt(Hr,{type:"primary",block:!0,icon:dt(La,{}),href:window.location.href,target:"_blank",rel:"noopener",children:ee()}):w&&!d?dt(Hr,{type:"primary",block:!0,icon:dt(Sl,{}),onClick:H,children:ee()}):n&&!d?dt(Hr,{type:"primary",block:!0,icon:dt(La,{}),onClick:W,children:ee()}):dt(Hr,{type:"primary",block:!0,icon:dt(La,{}),loading:a,onClick:N,children:ee()}),!w&&!(n&&d)&&dt(Hr,{block:!0,icon:dt(Sl,{}),onClick:H,children:"\u590D\u5236\u5206\u4EAB\u94FE\u63A5"})]}),i&&dt("div",{className:"mt-4 pt-4 border-t border-gray-100 w-full",children:Ur("div",{className:"space-y-2",children:[dt("p",{className:"text-xs text-gray-400 text-center",children:"\u{1F4A1} \u5206\u4EAB\u65B9\u5F0F\uFF1A\u6253\u5F00\u5FAE\u4FE1 \u2192 \u8FDB\u5165\u804A\u5929\u7A97\u53E3"}),dt("p",{className:"text-xs text-gray-400 text-center",children:"\u70B9\u51FB\u53F3\u4E0B\u89D2\u300C+\u300D\u2192\u300C\u6587\u4EF6\u300D\u2192 \u9009\u62E9\u521A\u4E0B\u8F7D\u7684\u6587\u4EF6"})]})})]})}):null};import{useState as we,useCallback as xn,useEffect as Th}from"react";var kl="file-manager-sort",Ph=e=>e==="fileName"||e==="fileType"||e==="fileSize"||e==="uploadTime",Fl=()=>{try{let e=localStorage.getItem(kl);if(!e)return null;let t=JSON.parse(e);return t&&Ph(t.sortBy)&&(t.sortOrder==="asc"||t.sortOrder==="desc")?{sortBy:t.sortBy,sortOrder:t.sortOrder}:null}catch{return null}},Tl=()=>{let[e,t]=we([]),[r,o]=we([]),[a,s]=we(!1),[i,c]=we([]),[n,l]=we("table"),[d,p]=we(!1),[w,h]=we(null),[_,b]=we(null),[x,S]=we(null),[I,N]=we(!1),[W,H]=we(void 0),[M,ee]=we(void 0),[y,R]=we(void 0),[G,P]=we(void 0),[L,j]=we(""),[O,z]=we(!1),[q,v]=we(!1),[ye,ne]=we(""),[A,re]=we(""),[_e,le]=we(!1),[$e,Y]=we(!1),[Z,xe]=we(""),[Q,ke]=we(null),[Ee,Be]=we(!1),[be,pe]=we(null),[K,ae]=we(""),[te,fe]=we(!1),[Ce,rt]=we(null),[lt,Pt]=we(!1),[pt,bt]=we(""),[cn,Lt]=we(null),[Ct,xt]=we(null),[Yt,Qe]=we(!1),[Ue,je]=we(null),[et,Ie]=we(void 0),[Ae,Ke]=we(null),[zn,En]=we(!1),[dn,Hn]=we({x:0,y:0}),[gt,Un]=we(null),[Cn,u]=we(!1),[E,F]=we(!1),[T,$]=we("move"),[B,ce]=we([]),[se,X]=we(!1),[oe,me]=we(null),[Te,De]=we(!1),[f,m]=we(null),[g,C]=we(typeof navigator<"u"?navigator.onLine:!0),[k,V]=we(null),[D,U]=we(!1),[ve,de]=we(!1),[Ve,ie]=we(!1),[Pe,Ge]=we(""),[J,Le]=we(null),[Ne,Fe]=we(()=>Fl()?.sortBy??"fileName"),[Ft,ge]=we(()=>Fl()?.sortOrder??"asc"),[st,tt]=we([]);Th(()=>{try{localStorage.setItem(kl,JSON.stringify({sortBy:Ne,sortOrder:Ft}))}catch{}},[Ne,Ft]);let Yr=xn(Ot=>{c(Zt=>Zt.includes(Ot)?Zt.filter(Jt=>Jt!==Ot):[...Zt,Ot])},[]),Ye=xn((Ot,Zt)=>{tt(Jt=>(Zt===void 0?!Jt.includes(Ot):Zt)?Jt.includes(Ot)?Jt:[...Jt,Ot]:Jt.filter(ql=>ql!==Ot))},[]),yt=xn(()=>{xt(null),Qe(!1),je(null),Ie(void 0),Ke(null),V(null),U(!1),de(!1)},[]),Vt=xn(()=>{fe(!1),rt(null),V(null),U(!1),de(!1)},[]),Fn=xn(()=>{Pt(!1),bt(""),Lt(null),V(null),U(!1),de(!1)},[]),un=xn(()=>{En(!1),Un(null)},[]),Bt=xn(()=>{F(!1),ce([])},[]),Mt=xn(()=>{X(!1),me(null)},[]),kt=xn(()=>{De(!1),m(null)},[]);return[{files:e,fileTreeData:r,loading:a,expandedRowKeys:i,viewMode:n,smallView:d,selectedFolderId:w,dragSourceId:_,dragOverId:x,rootDragOver:I,uploadPercent:W,uploadSuccess:M,dragUploadPercent:y,dragUploadSuccess:G,dragUploadingFileName:L,isExternalDragOver:O,createFolderVisible:q,newFolderName:ye,newFolderDescs:A,isEncryptedFolder:_e,renameVisible:$e,renameFileName:Z,renameFileId:Q,descsVisible:Ee,descsFileId:be,descsValue:K,editorVisible:te,editingFile:Ce,creatorVisible:lt,creatingFileName:pt,creatingFileType:cn,previewUrl:Ct,previewVisible:Yt,previewFileName:Ue,previewCrc32:et,previewingFile:Ae,contextMenuVisible:zn,contextMenuPosition:dn,contextMenuRecord:gt,isManager:Cn,moveCopyModalVisible:E,moveCopyMode:T,moveCopyFiles:B,versionHistoryModalVisible:se,versionHistoryFile:oe,shareToWechatVisible:Te,shareToWechatFile:f,isOnline:g,previewLocalId:k,previewIsLocalOnly:D,previewHasUnsyncedChanges:ve,createFileVisible:Ve,newFileName:Pe,pendingFileType:J,sortBy:Ne,sortOrder:Ft,selectedIds:st},{setFiles:t,setFileTreeData:o,setLoading:s,setExpandedRowKeys:c,toggleExpandKey:Yr,setViewMode:l,setSmallView:p,setSelectedFolderId:h,setDragSourceId:b,setDragOverId:S,setRootDragOver:N,setUploadPercent:H,setUploadSuccess:ee,setDragUploadPercent:R,setDragUploadSuccess:P,setDragUploadingFileName:j,setIsExternalDragOver:z,setCreateFolderVisible:v,setNewFolderName:ne,setNewFolderDescs:re,setIsEncryptedFolder:le,setRenameVisible:Y,setRenameFileName:xe,setRenameFileId:ke,setDescsVisible:Be,setDescsFileId:pe,setDescsValue:ae,setEditorVisible:fe,setEditingFile:rt,setCreatorVisible:Pt,setCreatingFileName:bt,setCreatingFileType:Lt,setPreviewUrl:xt,setPreviewVisible:Qe,setPreviewFileName:je,setPreviewCrc32:Ie,setPreviewingFile:Ke,setContextMenuVisible:En,setContextMenuPosition:Hn,setContextMenuRecord:Un,setIsManager:u,setMoveCopyModalVisible:F,setMoveCopyMode:$,setMoveCopyFiles:ce,setVersionHistoryModalVisible:X,setVersionHistoryFile:me,setShareToWechatVisible:De,setShareToWechatFile:m,setIsOnline:C,setPreviewLocalId:V,setPreviewIsLocalOnly:U,setPreviewHasUnsyncedChanges:de,setCreateFileVisible:ie,setNewFileName:Ge,setPendingFileType:Le,setSortBy:Fe,setSortOrder:ge,setSelectedIds:tt,toggleSelectedId:Ye,resetPreviewState:yt,resetEditorState:Vt,resetCreatorState:Fn,resetContextMenu:un,resetMoveCopyState:Bt,resetVersionHistoryState:Mt,resetShareToWechatState:kt}]};import On,{useCallback as ue,useRef as tr,useMemo as $h,useState as zh,useEffect as Lo}from"react";import{useSearchParams as Hh}from"react-router-dom";import{message as Se,Modal as $l,Input as Uh}from"antd";import{API as zl}from"@spacecorexdev/core/api";import{ResponseCode as ut}from"@spacecorexdev/core/api";eo();import{CacheUserInfo as Bn}from"@spacecorexdev/core/utils";import{CachePermissionInfo as jh,PERMISSION_FOLDER_DOWNLOAD as Vh}from"@spacecorexdev/core/utils";import*as Vr from"febs-browser";import{FileUploadHandler as Ih}from"@spacecorexdev/core/ui";import{ResponseCode as er}from"@spacecorexdev/core/api";import{file as Dh}from"@spacecorexdev/core/api";import{API as Rh}from"@spacecorexdev/core/api";var Mh=`"use strict";
|
|
550
|
+
`,vd=e=>{let t=document.createElement("div");t.className="EasyMDEContainer",t.setAttribute("data-md-export-root","true"),Object.entries(Ss).forEach(([o,i])=>{t.style.setProperty(o,i)}),Object.assign(t.style,{position:"fixed",top:"0",left:"-100000px",width:`${po}px`,background:"#ffffff",pointerEvents:"none"});let n=document.createElement("style");n.setAttribute("data-md-export","true"),n.textContent=bd,t.appendChild(n);let r=document.createElement("div");return r.className="editor-preview editor-preview-full",Object.assign(r.style,{display:"block",position:"static",width:`${po}px`,height:"auto",minHeight:"auto",margin:"0",padding:"0",overflow:"visible",zIndex:"auto",background:"#ffffff",color:"#1f2937",fontSize:"16px",lineHeight:"1.6",fontFamily:'-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif'}),r.innerHTML=e,t.appendChild(r),document.body.appendChild(t),r},_d=(e,t)=>{let n="display:inline-block;width:1.6em;margin-left:-2em;padding-right:0.4em;text-align:right;white-space:nowrap;",r=(o,i)=>{let l=Number(o.getAttribute?.("start")??"1"),d=Number.isFinite(l)&&l>=1?Math.floor(l):1;o.querySelectorAll(":scope > li").forEach(a=>{if(a.querySelector(":scope > [data-md-list-marker], :scope > p > [data-md-list-marker]")){d+=1;return}let s=t.createElement("span");s.setAttribute("data-md-list-marker","true"),s.style.cssText=n,s.textContent=i(d);let c=a.firstElementChild,p=c&&c.tagName==="P"?c:a;p.insertBefore(s,p.firstChild),d+=1})};e.querySelectorAll("ol").forEach(o=>r(o,i=>`${i}.`)),e.querySelectorAll("ul").forEach(o=>r(o,()=>"\u2022"))},xd=e=>`${e.replace(/\.(md|markdown)$/i,"").trim()||"document"}.pdf`,Es=async e=>{let{content:t,fileName:n,editor:r,onProgress:o}=e;if(!t||!t.trim())throw new Error("\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u5BFC\u51FA PDF");let i=yd(t,r),l=vd(i);try{document.fonts?.ready&&await document.fonts.ready.catch(()=>{}),await wd(l),await new Promise(m=>requestAnimationFrame(()=>requestAnimationFrame(()=>m())));let d=Array.from(l.children),a=io(so(l,d),fd);if(a.length===0)throw new Error("\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u5BFC\u51FA PDF");let[{default:s},{jsPDF:c}]=await Promise.all([import("html2canvas"),import("jspdf")]),p=new c({orientation:"portrait",unit:"mm",format:"a4",compress:!0}),b={scale:Ko,x:0,width:po,backgroundColor:"#ffffff",useCORS:!0,logging:!1,scrollX:window.scrollX,scrollY:window.scrollY,windowWidth:document.documentElement.clientWidth,windowHeight:document.documentElement.clientHeight,onclone:m=>{let _=m.querySelector(".EasyMDEContainer[data-md-export-root]");if(_){Object.entries(Ss).forEach(([x,M])=>{_.style.setProperty(x,M)});let h=_.querySelector(".editor-preview");h&&_d(h,m)}}};for(let m=0;m<a.length;m++){let _=a[m],h=await s(l,{...b,y:_.y,height:_.height}),x=h.toDataURL("image/png"),M=h.width/Ko/96*25.4,S=h.height/Ko/96*25.4;p.addImage(x,"PNG",uo,uo,M,S),o?.(m+1,a.length),m<a.length-1&&p.addPage()}p.save(xd(n))}finally{l.parentElement?.remove()}};lr();dn();import{jsx as je,jsxs as In}from"react/jsx-runtime";function Pd(e){let t=e.codemirror,n=t.getWrapperElement(),r=n.nextSibling,o=e.toolbarElements&&e.toolbarElements["side-by-side"],i=!1,l=n.parentNode;r.classList.contains("editor-preview-active-side")?(e.options.sideBySideFullscreen===!1&&l.classList.remove("sided--no-fullscreen"),r.classList.remove("editor-preview-active-side"),o&&o.classList.remove("active"),n.classList.remove("CodeMirror-sided")):(setTimeout(function(){r.classList.add("editor-preview-active-side")},1),o&&o.classList.add("active"),n.classList.add("CodeMirror-sided"),i=!0);let d=n.lastChild;if(d.classList.contains("editor-preview-active")){d.classList.remove("editor-preview-active");let s=e.toolbarElements.preview,c=e.toolbar_div;s.classList.remove("active"),c.classList.remove("disabled-for-preview")}let a=function(){let s=e.options.previewRender(e.value(),r);s!=null&&(r.innerHTML=s)};if(t.sideBySideRenderingFunction||(t.sideBySideRenderingFunction=a),i){let s=e.options.previewRender(e.value(),r);s!=null&&(r.innerHTML=s),t.on("update",t.sideBySideRenderingFunction)}else t.off("update",t.sideBySideRenderingFunction);t.refresh()}function mo(e){let t=e.codemirror,n=t.getWrapperElement(),r=e.toolbar_div,o=e.options.toolbar?e.toolbarElements.preview:!1,i=n.lastChild,l=t.getWrapperElement().nextSibling;if(l&&l.classList.contains("editor-preview-active-side")&&Pd(e),!i||!i.classList.contains("editor-preview-full")){if(i=document.createElement("div"),i.className="editor-preview-full",e.options.previewClass)if(Array.isArray(e.options.previewClass))for(let a=0;a<e.options.previewClass.length;a++)i.classList.add(e.options.previewClass[a]);else typeof e.options.previewClass=="string"&&i.classList.add(e.options.previewClass);n.appendChild(i)}if(i.classList.contains("editor-preview-active"))return!0;setTimeout(function(){i.classList.add("editor-preview-active")},1),o&&(o.classList.add("active"),r.classList.add("disabled-for-preview"));let d=e.options.previewRender(e.value(),i);return d!==null?(i.innerHTML=d,!0):!1}var qo=({hiddenClose:e=!1,value:t="",visible:n,isCreate:r,onClose:o,fileName:i="document.md",onUpload:l,onSaveLocal:d,onChange:a,placeholder:s="\u8BF7\u8F93\u5165Markdown\u5185\u5BB9...",readOnly:c=!1,allowFullscreen:p=!0,defaultPreviewMode:b=!0,showExportPdf:m=!0,noLocalCache:_=!1,uploadPercent:h,isOffline:x,isLocalOnly:M,hasUnsyncedChanges:S,onSaveLocalMarkdown:A})=>{let[Z,O]=dr(t),[I,J]=dr(null),[ne,D]=dr(0),[w,W]=dr(!1),[k,L]=dr(!r),[$,B]=dr(!1),K=Zn(null),q=Zn(null),ge=Zn(!1),oe=Zn(t);oe.current=Z;let E=Zn(t),be=Zn(S),U=Zn(A);be.current=S,U.current=A,ur(()=>{n&&!_&&(async()=>{try{let pe=Td.currentLocalUser();pe?.id?J(pe.id):J(null)}catch(pe){console.error("\u83B7\u53D6\u7528\u6237\u4FE1\u606F\u5931\u8D25:",pe),J(null)}})()},[n,_]),ur(()=>{if(_){O(t);return}n&&I?t?(O(t),D(_e=>_e+1),W(!1)):r&&i&&(O(t),W(!1)):n&&i&&!I&&(O(t),W(!1))},[n,i,I,t,r,_,c]),ur(()=>{E.current=t},[t]),ur(()=>{b&&K.current&&setTimeout(()=>{mo(K.current)||setTimeout(()=>{mo(K.current)},1e3)},100)},[b,ne]);let se=pr(_e=>{_e!==oe.current&&(O(_e),L(!1),a?.(_e),!(!i||!I)&&(!ge.current&&!be.current&&U.current&&(ge.current=!0,U.current(_e,i).catch(pe=>{console.warn("\u7F16\u8F91\u65F6\u7ACB\u5373\u6807\u8BB0\u672A\u540C\u6B65\u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u7F16\u8F91\uFF0C\u7B49\u5F85\u81EA\u52A8/\u624B\u52A8\u4FDD\u5B58\u5373\u53EF\uFF09:",pe)})),q.current&&clearTimeout(q.current),W(!0),q.current=setTimeout(async()=>{try{if(await Ot(I,i,"md",_e),W(!1),U.current)try{await U.current(_e,i,!1)}catch(pe){console.warn("\u81EA\u52A8\u4FDD\u5B58\u65F6\u540C\u6B65 localFiles store \u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u672C\u5730\u4FDD\u5B58\uFF09:",pe)}}catch(pe){console.error("\u81EA\u52A8\u4FDD\u5B58\u5230 IndexedDB \u5931\u8D25:",pe)}},2e4)))},[i,I]),Ce=Cs(()=>({autoDownloadFontAwesome:!0,autofocus:!c,spellChecker:!1,placeholder:s,toolbar:c?["guide",...p?["side-by-side","fullscreen"]:[]]:["bold","italic","strikethrough","|","heading-1","heading-2","heading-3","|","code","quote","table","|","unordered-list","ordered-list","|","link","image","|","preview","guide",...p?["side-by-side","fullscreen"]:[]]}),[p,s,c]),ie=Cs(()=>({spellChecker:!1,placeholder:s,toolbar:c?!1:["bold","italic","strikethrough","|","heading-1","heading-2","heading-3","|","code","quote","|","unordered-list","ordered-list","|","link","image","|","preview",...p?["side-by-side","fullscreen"]:[]]}),[p,s,c]),V=pr(async()=>{let _e=K.current.value();if(_){if(d?.(_e),U.current)try{await U.current(_e,i)}catch(pe){console.warn("\u540C\u6B65\u672C\u5730\u6587\u4EF6\u5185\u5BB9\u5230 localFiles store \u5931\u8D25:",pe)}return}try{if(!I){Kt.error("\u65E0\u6CD5\u83B7\u53D6\u7528\u6237\u4FE1\u606F");return}if(await Ot(I,i,"md",_e),W(!1),U.current)try{await U.current(_e,i)}catch(pe){console.warn("\u540C\u6B65\u672C\u5730\u6587\u4EF6\u5185\u5BB9\u5230 localFiles store \u5931\u8D25\uFF08\u4E0D\u5F71\u54CD\u672C\u5730\u4FDD\u5B58\uFF09:",pe)}Kt.success("\u5DF2\u4FDD\u5B58\u5230\u672C\u5730\u7F13\u5B58")}catch(pe){console.error("\u4FDD\u5B58\u5230\u672C\u5730\u7F13\u5B58\u5931\u8D25:",pe),Kt.error("\u4FDD\u5B58\u5931\u8D25")}},[i,I,_,d]),xe=pr(async()=>{if(!l){Kt.error("\u672A\u63D0\u4F9B\u4E0A\u4F20\u529F\u80FD");return}try{let _e=K.current.value(),pe=E.current;await l(pe,_e,i),E.current=_e,I&&(await Cn(I,i,"md"),W(!1),L(!0)),ge.current=!1}catch(_e){console.error("\u4E0A\u4F20\u5931\u8D25:",_e),Kt.error("\u4E0A\u4F20\u5931\u8D25")}},[i,l,I]),ce=pr(async()=>{let _e=K.current,pe=_e?_e.value():oe.current;if(!pe||!pe.trim()){Kt.warning("\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u5BFC\u51FA PDF");return}B(!0),Kt.loading({key:"md-export-pdf",content:"\u6B63\u5728\u751F\u6210 PDF...",duration:0});try{await Es({content:pe,fileName:i,editor:_e,onProgress:(Ge,X)=>{Kt.loading({key:"md-export-pdf",content:`\u6B63\u5728\u751F\u6210 PDF\uFF08${Ge}/${X} \u9875\uFF09...`,duration:0})}}),Kt.success({key:"md-export-pdf",content:"PDF \u5DF2\u5BFC\u51FA"})}catch(Ge){console.error("\u5BFC\u51FA PDF \u5931\u8D25:",Ge),Kt.error({key:"md-export-pdf",content:Ge?.message||"\u5BFC\u51FA PDF \u5931\u8D25"})}finally{B(!1)}},[i]),ee=pr(()=>{let _e=K.current,pe=_e?_e.value():oe.current;if(!pe||!pe.trim()){Kt.warning("\u5185\u5BB9\u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u4E0B\u8F7D");return}Dt(new Blob([pe],{type:"text/markdown;charset=utf-8"}),i)},[i]),Se=!r||Z.trim()?ee:void 0;ur(()=>{if(!n)return;let _e=pe=>{(pe.ctrlKey||pe.metaKey)&&pe.key==="s"&&(pe.preventDefault(),V())};return window.addEventListener("keydown",_e),()=>window.removeEventListener("keydown",_e)},[n,V]),ur(()=>(n&&(L(!r),ge.current=!1,q.current&&(clearTimeout(q.current),q.current=null)),()=>{q.current&&(clearTimeout(q.current),q.current=null)}),[n,r]);let Le=pr(_e=>{K.current=_e,b&&setTimeout(()=>{mo(K.current)||setTimeout(()=>{mo(K.current)},1e3)},100)},[b]);return _?In("div",{className:"h-full flex flex-col bg-white p-0 m-0 relative",children:[(m||!c&&d)&&In("div",{className:"flex items-center justify-end gap-2 px-0 py-2 flex-shrink-0",children:[je(St,{onExportPdf:m?ce:void 0,onDownload:Se,exportingPdf:$}),!c&&d&&je(fo,{type:"primary",icon:je(Ts,{}),onClick:V,children:"\u4FDD\u5B58"})]}),je("div",{className:"flex-1 overflow-y-auto h-full",children:je(Fs,{value:Z,onChange:se,options:ie,getMdeInstance:Le},ne)})]}):je(Sd,{open:n,onCancel:o,keyboard:!1,closeIcon:null,footer:null,width:"100%",style:{top:0,maxWidth:"100vw"},styles:{body:{height:"100dvh",padding:0}},className:"ant-modal-nopadding ant-modal-fullscreen relative",transitionName:"none",children:In("div",{className:"h-full flex flex-col bg-white p-0 m-0",children:[In("div",{className:`flex items-center justify-between px-4 py-2 pr-0 flex-shrink-0 ${x?"bg-orange-50 border-b border-orange-200":"bg-gray-50 border-b border-gray-200"}`,children:[je("span",{children:"\xA0"}),!c&&je("span",{children:"\xA0"}),In("div",{className:"flex items-center gap-2 flex-wrap min-w-[40%]",children:[!x&&M&&je(Go,{icon:je(Ps,{}),color:"orange",style:{margin:0},children:"\u672C\u5730\u6587\u4EF6"}),!x&&!M&&S&&je(Go,{icon:je(Ps,{}),color:"warning",style:{margin:0},children:"\u6709\u672A\u540C\u6B65\u4FEE\u6539"}),!x&&!M&&!S&&!l?je(Go,{icon:je(kd,{}),color:"default",style:{margin:0},children:"\u540C\u6B65\u5B8C\u6210"}):null,je(Cd,{className:"text-gray-800"}),In("span",{className:"text-sm font-medium",children:[w?"*":"",i]})]}),!c&&!e&&In(ks,{wrap:!0,align:"center",direction:"horizontal",children:[je(St,{onExportPdf:m?ce:void 0,onDownload:Se,exportingPdf:$,buttonProps:{style:{paddingLeft:4,paddingRight:4}}}),l&&je(fo,{type:"text",style:{paddingLeft:4,paddingRight:4},title:"\u6BCF\u6B21\u4E0A\u4F20\u5C06\u4FDD\u7559\u4E00\u4E2A\u5386\u53F2\u7248\u672C\uFF0C\u6700\u591A\u4FDD\u755910\u4E2A\u7248\u672C",icon:je(Fd,{}),onClick:xe,disabled:h!==void 0&&h<100,children:h!==void 0&&h<100?`\u4E0A\u4F20\u4E2D ${Math.round(h*100)}%`:"\u4E0A\u4F20"}),!c&&je(fo,{type:"primary",icon:je(Ts,{}),disabled:c,onClick:V,children:"\u4FDD\u5B58"}),!c&&(w||!k)?je(Ed,{title:"\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F",description:w?"\u4FEE\u6539\u672A\u4FDD\u5B58\uFF0C\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F":"\u4FEE\u6539\u672A\u4E0A\u4F20\uFF0C\u786E\u5B9A\u8981\u9000\u51FA\u5417\uFF1F",onConfirm:o,okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88",children:je(fo,{type:"text",className:"ml-3 mr-2 text-gray-600 hover:text-gray-900",icon:je(Xo,{className:"w-6 h-6"})})}):je(Xo,{onClick:o,className:"ml-3 mr-2 w-6 h-6"})]}),c&&!e&&In(ks,{className:"ml-3 mr-2",children:[je(St,{onExportPdf:m?ce:void 0,onDownload:Se,exportingPdf:$}),je(Xo,{onClick:o,className:"w-6 h-6"})]}),e&&je("span",{children:"\xA0"})]}),je("div",{className:"flex-1 overflow-y-auto h-full ineditor-toolbar",children:je(Fs,{value:Z,onChange:se,options:Ce,getMdeInstance:Le},ne)})]})})};ir();Wt(`.pptx-preview-wrapper .pptx-preview-slide-wrapper{border-bottom:1px solid rgb(var(--color-border));margin:0!important}.pptx-preview-wrapper .pptx-preview-slide-wrapper .slide-master-wrapper,.pptx-preview-wrapper .pptx-preview-slide-wrapper .slide-layout-wrapper,.pptx-preview-wrapper .pptx-preview-slide-wrapper .slide-wrapper{right:0}.pptx-preview-wrapper .pptx-preview-slide-wrapper table{width:100%}.ant-modal-root .ant-modal-wrap .ant-modal.ant-modal-fullscreen.ant-modal-ppt .ant-modal-content{min-height:100vh!important;margin-bottom:0!important;padding:0!important}.ant-modal-root .ant-modal-wrap .ant-modal.ant-modal-fullscreen.ant-modal-ppt .ant-modal-content .ant-modal-body{min-height:100vh!important;background:rgb(var(--color-black))}.ant-modal-root .ant-modal-wrap .ant-modal.ant-modal-fullscreen.ant-modal-ppt .ant-modal-content .ant-modal-body>div{background:rgb(var(--color-black))!important}.ant-modal-root .ant-modal-wrap .ant-modal.ant-modal-fullscreen.ant-modal-ppt .ant-modal-content .ant-modal-close{color:rgb(var(--color-gray-300))}.ant-modal-root .ant-modal-wrap .ant-modal.ant-modal-fullscreen.ant-modal-ppt .ant-modal-content .ant-modal-close:hover{color:rgb(var(--color-white))}.ant-modal-root .ant-modal-wrap .ant-modal.ant-modal-fullscreen .ant-modal-content .ant-modal-close{position:fixed}.docx-preview{justify-self:center}.ui-file-preview-archive,.ui-file-preview-pdf{width:100%;height:100dvh;min-height:0;background:rgb(var(--color-surface))}.ui-file-preview-pdf .pdfViewer .page .textLayer{z-index:2!important;pointer-events:auto!important}.ui-file-preview-pdf .pdfViewer .textLayer span,.ui-file-preview-pdf .pdfViewer .textLayer br,.ui-file-preview-pdf .pdfViewer.enablePermissions .textLayer span{-webkit-user-select:text!important;-moz-user-select:text!important;user-select:text!important;cursor:text!important;pointer-events:auto!important}.ui-file-preview-pdf .pdfViewer .textLayer ::-moz-selection,.ui-file-preview-pdf .pdfViewer .textLayer span::-moz-selection,.ui-file-preview-pdf .pdfViewer .textLayer br::-moz-selection{background:AccentColor!important;background:highlight!important}.ui-file-preview-pdf .pdfViewer .textLayer ::selection,.ui-file-preview-pdf .pdfViewer .textLayer span::selection,.ui-file-preview-pdf .pdfViewer .textLayer br::selection{background:AccentColor!important;background:highlight!important}.ui-file-preview-pdf .pdfViewer .textLayer ::-moz-selection,.ui-file-preview-pdf .pdfViewer .textLayer span::-moz-selection,.ui-file-preview-pdf .pdfViewer .textLayer br::-moz-selection{background:highlight!important}.ui-file-preview-pdf .pdfViewer,.ui-file-preview-pdf .pdfViewer .page,.ui-file-preview-pdf .pdfViewer .textLayer{-webkit-user-select:text!important;-moz-user-select:text!important;user-select:text!important}.pdf-toolbar{padding-right:50px}.ui-file-preview-word{width:100%;height:100vh;min-height:0;background:rgb(var(--color-surface))}.ui-file-preview-excel{width:100%;height:100vh;min-height:0;background:#fff}.ui-file-preview-excel .e-virt-table-canvas{background:#fff}.ui-file-preview-cad .cad-toolbar{padding-right:50px}.ui-file-preview-ebook{width:100%;height:100dvh;min-height:0;background:#f5ecd9}@media(min-width:720px){.ui-file-preview-ebook .epub-actions{margin-right:35px}}.ui-file-preview-ebook .file-viewer,.ui-file-preview-ebook .file-viewer *{max-width:none}.ui-file-preview-ebook .epub-viewer{width:100%!important;height:100%!important}.ui-file-preview-ebook .epub-container{max-width:100%!important;width:100%!important}.ui-file-preview-ebook .epub-stage-wrap{padding:0}.ui-file-preview-ebook .epub-toolbar,.ui-file-preview-ebook .epub-icon-button,.ui-file-preview-ebook .epub-button{background:#f5ecd9!important}.ui-file-preview-ebook .epub-toc{background:#f2deb4!important}.ui-file-preview-ebook .epub-stage{background:#f5ecd9!important;box-shadow:none!important;touch-action:pan-y}
|
|
551
|
+
`);import{WarningOutlined as Vi}from"@ant-design/icons";import{Fragment as Of,jsx as De,jsxs as Xn}from"react/jsx-runtime";var Pf=Nn(()=>Promise.resolve().then(()=>(Ns(),As)).then(e=>({default:e.PdfPreview}))),Mf=Nn(()=>Promise.resolve().then(()=>(Vs(),js)).then(e=>({default:e.WordPreview}))),If=Nn(()=>Promise.resolve().then(()=>(qs(),Xs)).then(e=>({default:e.ExcelPreview}))),Df=Nn(()=>Promise.resolve().then(()=>(ti(),ei)).then(e=>({default:e.ExcelEditor}))),Rf=Nn(()=>Promise.resolve().then(()=>(ii(),si)).then(e=>({default:e.PptPreview}))),Af=Nn(()=>Promise.resolve().then(()=>(Li(),Ni)).then(e=>({default:e.WordEditor}))),Nf=Nn(()=>Promise.resolve().then(()=>(zi(),Oi)).then(e=>({default:e.ArchivePreview}))),Lf=Nn(()=>Promise.resolve().then(()=>(Ui(),Hi)).then(e=>({default:e.CadPreview}))),nn=(e,t,n)=>{if(e)return e;let r=t||"",o=r.indexOf("?");o!==-1&&(r=r.substring(0,o));let i=r.split("/").filter(Boolean).pop();if(!i)return n;try{return decodeURIComponent(i)}catch{return i}},Bf=(e,t)=>{if(!t)return e;let n=e.includes("?")?"&":"?";return`${e}${n}tempToken=${encodeURIComponent(t)}`},br=({label:e})=>Xn("div",{className:"flex min-h-[260px] flex-col items-center justify-center",style:{width:"100%"},children:[De(Zi,{}),Xn("span",{style:{marginTop:16,color:"rgb(var(--color-muted))"},children:["\u6B63\u5728\u52A0\u8F7D",e,"..."]})]}),Dr=({fileUrl:e,accessToken:t,visible:n,isCreate:r,onClose:o,hiddenClose:i=!1,editable:l=!1,fileName:d,uploadPercent:a,uploadSuccess:s,onUploadBlob:c,onUploadMarkdown:p,fileId:b,crc32:m,fetchFileDetail:_,onCacheSaved:h,localId:x,isLocalOnly:M,hasUnsyncedChanges:S,isOffline:A,onSaveLocalBlob:Z,onSaveLocalMarkdown:O})=>{let[I,J]=vt("unknown"),[ne,D]=vt(""),[w,W]=vt(!1),[k,L]=vt(0),[$,B]=vt(null),[K,q]=vt(""),[ge,oe]=vt(""),[E,be]=vt(null),[U,se]=vt(null),[Ce,ie]=vt(null),[V,xe]=vt(null),[ce,ee]=vt(null),[Se,Le]=vt(null),[_e,pe]=vt(null),[Ge,X]=vt(null),[j,re]=vt(null),Te=Gn(null),Ve=["image","pdf","word","ppt","excel","markdown","richdoc","video","archive","cad"],st=Gn(new Fo.net.AbortController),Tt=Gn(!1),ut=Gn(x),wt=Gn(M),on=Gn(S);ut.current=x,wt.current=M,on.current=S;let Nt=Gn(_);Nt.current=_,ji(()=>{let _t=function(){window.history.go(1)};return window.history.pushState(null,null,document.URL),window.addEventListener("popstate",_t),()=>{window.removeEventListener("popstate",_t)}},[]),ji(()=>n?(xe(null),be(null),ie(null),q(""),oe(""),re(null),(async()=>{let Yt=ut.current,Je=d||e?.substring(e?.lastIndexOf("/")+1||0);if(Yt&&l&&Je){let Qe=rr(Je);if(!["ppt","excel","markdown","word","richdoc"].includes(Qe)){Co.warning("\u5F53\u524D\u6587\u4EF6\u7C7B\u578B\u4E0D\u652F\u6301\u672C\u5730\u7F16\u8F91");return}J(Qe),B(null),W(!0);try{let Ie=await Fn(Yt);if(!Ie){W(!1);return}if(re(Ie),Ie.content&&(typeof Ie.content=="string"&&Ie.content.length>0||typeof Ie.content!="string"&&Ie.content.byteLength>0)){if(Qe==="markdown")q(typeof Ie.content=="string"?Ie.content:"");else if(Qe==="richdoc")oe(typeof Ie.content=="string"?Ie.content:"");else if(Qe==="word"){let Ae=typeof Ie.content!="string"?Ie.content:new ArrayBuffer(0),Ze=new Blob([Ae],{type:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"});xe(Ze),ee(new File([Ze],Je,{type:Ze.type}))}else if(Qe==="excel"){let Ae=typeof Ie.content!="string"?Ie.content:new ArrayBuffer(0),Ze=new Blob([Ae],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});be(Ze),se(new File([Ze],Je,{type:Ze.type}))}else if(Qe==="ppt"){let Ae=typeof Ie.content!="string"?Ie.content:new ArrayBuffer(0),Ze=new Blob([Ae],{type:"application/vnd.openxmlformats-officedocument.presentationml.presentation"});ie(new File([Ze],Je,{type:Ze.type}))}W(!1);return}W(!1)}catch(Ie){console.error("\u52A0\u8F7D\u672C\u5730\u6587\u4EF6\u5931\u8D25:",Ie),W(!1)}}if(!e&&!Yt&&Je&&l){let Qe=rr(Je);["ppt","excel","markdown","word","richdoc"].includes(Qe)?(J(Qe),B(null),W(!1)):Co.warning("\u5F53\u524D\u6587\u4EF6\u7C7B\u578B\u4E0D\u652F\u6301\u65B0\u5EFA");return}if(!e)return;if(m!=null&&!b){console.log("[UIFilePreview] crc32 \u5DF2\u5C31\u7EEA\u4F46 fileId \u5C1A\u672A\u5C31\u7EEA\uFF0C\u7B49\u5F85\u4E0B\u6B21\u6E32\u67D3...");return}let Ue=rr(Je||e);if(Ue==="unknown"){J(Ue),Co.warning("\u5F53\u524D\u6587\u4EF6\u7C7B\u578B\u4E0D\u652F\u6301\u9884\u89C8");return}J(Ue),D(""),B(null),be(null),se(null),ie(null),xe(null),ee(null),Le(null),pe(null),X(null),q(""),oe(""),ns(Te),L(0),W(!0);try{let Qe=Sn(e);if(!Qe){Co.error("\u6587\u4EF6\u8D44\u6E90\u8DEF\u5F84\u4E0D\u53EF\u7528\uFF0C\u65E0\u6CD5\u9884\u89C8"),W(!1);return}if(Ue==="video"){D(Bf(Qe,t)),W(!1);return}let Ie=await ro(e,t,st.current,L,b,m,Nt.current);if(b&&h&&h(b),Ue==="image")await ts(Ie,Te);else if(Ue==="pdf"){let Ae=new Blob([Ie.buffer],{type:Ie.headers.get("Content-Type")||"application/pdf"});X(new File([Ae],nn(Je,e,"\u9884\u89C8.pdf"),{type:Ae.type}))}else if(Ue==="word"){let Ae=new Blob([Ie.buffer],{type:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"});xe(Ae),ee(new File([Ae],nn(Je,e,"\u9884\u89C8.docx"),{type:Ae.type}))}else if(Ue==="excel"){let Ae=new Blob([Ie.buffer],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});be(Ae),se(new File([Ae],nn(Je,e,"\u9884\u89C8.xlsx"),{type:Ae.type}))}else if(Ue==="ppt"){let Ae=new Blob([Ie.buffer],{type:"application/vnd.openxmlformats-officedocument.presentationml.presentation"});ie(new File([Ae],nn(Je,e,"\u9884\u89C8.pptx"),{type:Ae.type}))}else if(Ue==="markdown"){let Ze=new TextDecoder("utf-8").decode(Ie.buffer);q(Ze)}else if(Ue==="richdoc"){let Ze=new TextDecoder("utf-8").decode(Ie.buffer);oe(Ze)}else if(Ue==="archive"){let Ae=new Blob([Ie.buffer],{type:Ie.headers.get("Content-Type")||"application/octet-stream"});Le(new File([Ae],nn(Je,e,"\u9884\u89C8.zip"),{type:Ae.type}))}else if(Ue==="cad"){let Ae=new Blob([Ie.buffer],{type:"application/octet-stream"});pe(new File([Ae],nn(Je,e,"\u9884\u89C8.dwg"),{type:"application/octet-stream"}))}}catch(Qe){if(Tt.current)return;console.error(Qe);let Ie=Qe?.message||"",Ae=Qe?.name||"",Ze=[];Ze.push("\u6587\u4EF6\u9884\u89C8\u5931\u8D25"),Ae&&Ze.push(`\u9519\u8BEF\u7C7B\u578B\uFF1A${Ae}`),Ie&&Ze.push(`\u9519\u8BEF\u4FE1\u606F\uFF1A${Ie}`),B(Ze.join(`
|
|
552
|
+
`))}finally{W(!1)}})().catch(()=>{}),()=>{Tt.current=!0,st.current.abort(),st.current=new Fo.net.AbortController}):void 0,[e,n,t,l,d,b,m]);let Et=()=>{Tt.current=!0,st.current.abort(),st.current=new Fo.net.AbortController,W(!1),D(""),be(null),se(null),ie(null),xe(null),ee(null),Le(null),pe(null),X(null),B(null),q(""),oe(""),o()};return De(Tf,{open:n,closeIcon:i||I==="markdown"||I==="richdoc"||I==="word"&&l||I==="excel"&&l?null:void 0,onCancel:Et,footer:null,className:"ant-modal-nopadding ant-modal-fullscreen"+(I=="ppt"?" ant-modal-ppt":""),styles:{body:{padding:0,justifyContent:"center",display:"flex"}},destroyOnHidden:!0,keyboard:!1,transitionName:i?"none":void 0,children:Xn("div",{style:{width:"100%",display:"flex",justifyContent:"center",alignItems:I==="excel"&&!l?"flex-start":"center",background:I==="excel"&&!l?"#ffffff":"rgb(var(--color-background))",minHeight:"100dvh",position:"relative"},children:[I==="word"&&l&&De(tn,{fallback:De(br,{label:"Word \u7F16\u8F91\u5668"}),children:De(Af,{hiddenClose:i,isCreate:r,visible:I==="word"&&n,fileName:nn(d,e,"\u9884\u89C8.docx"),initialBlob:V||void 0,onClose:Et,readOnly:!l,onUpload:l?c:void 0,uploadPercent:a,isOffline:A,isLocalOnly:M,hasUnsyncedChanges:S,onSaveLocalBlob:Z})}),I==="word"&&!l&&De(tn,{fallback:De("div",{style:{width:"100%",display:"flex",justifyContent:"center",alignItems:"center",minHeight:240},children:"\u52A0\u8F7DWord\u9884\u89C8\u7EC4\u4EF6..."}),children:De(Mf,{file:ce})}),I==="excel"&&l&&De(tn,{fallback:De(br,{label:"Excel \u7F16\u8F91\u5668"}),children:De(Df,{hiddenClose:i,visible:I==="excel"&&n,fileName:nn(d,e,"\u9884\u89C8.xlsx"),initialBlob:E||void 0,isCreate:r,onClose:Et,readOnly:!l,onUpload:l?c:void 0,uploadPercent:a,uploadSuccess:s,isOffline:A,isLocalOnly:M,hasUnsyncedChanges:S,onSaveLocalBlob:Z})}),I==="excel"&&!l&&De(tn,{fallback:De("div",{style:{width:"100%",display:"flex",justifyContent:"center",alignItems:"center",minHeight:240},children:"\u52A0\u8F7DExcel\u9884\u89C8\u7EC4\u4EF6..."}),children:De(If,{file:U})}),I==="pdf"&&De(tn,{fallback:De("div",{style:{width:"100%",display:"flex",justifyContent:"center",alignItems:"center",minHeight:240},children:"\u52A0\u8F7DPDF\u9884\u89C8\u7EC4\u4EF6..."}),children:De(Pf,{file:Ge,progressKey:b||(d?`name:${d}`:void 0)})}),De(rs,{containerRef:Te,type:I}),De(as,{previewUrl:ne,type:I}),I==="archive"&&De(tn,{fallback:De(br,{label:"\u538B\u7F29\u5305\u9884\u89C8\u5668"}),children:De(Nf,{file:Se})}),I==="cad"&&De(tn,{fallback:De(br,{label:"CAD \u56FE\u7EB8\u9884\u89C8\u5668"}),children:De(Lf,{file:_e})}),I==="markdown"&&De(tn,{fallback:De(br,{label:"Markdown \u7F16\u8F91\u5668"}),children:De(qo,{hiddenClose:i,value:K,onClose:Et,readOnly:!l,isCreate:r,visible:I==="markdown"&&n,defaultPreviewMode:!l,onUpload:l?p:void 0,fileName:nn(d,e,"\u9884\u89C8.md"),uploadPercent:a,uploadSuccess:s,isOffline:A,isLocalOnly:M,hasUnsyncedChanges:S,onSaveLocalMarkdown:O})}),I==="richdoc"&&De(tn,{fallback:De(br,{label:"\u6587\u6863\u7F16\u8F91\u5668"}),children:De(vs,{hiddenClose:i,value:ge,onClose:Et,readOnly:!l,isCreate:r,visible:I==="richdoc"&&n,onUpload:l?p:void 0,fileName:nn(d,e,"\u9884\u89C8.rdoc"),uploadPercent:a,uploadSuccess:s,isOffline:A,isLocalOnly:M,hasUnsyncedChanges:S,onSaveLocalMarkdown:O})}),I==="ppt"&&De(tn,{fallback:De("div",{style:{width:"100%",display:"flex",justifyContent:"center",alignItems:"center",minHeight:240},children:"\u52A0\u8F7DPPT\u9884\u89C8\u7EC4\u4EF6..."}),children:De(Rf,{file:Ce})}),w?Xn("div",{style:{width:"100%",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",position:"absolute",top:0,left:0,right:0,bottom:0,background:"rgb(var(--color-surface))",zIndex:10},children:[De(Zi,{}),Xn("span",{style:{marginTop:16,color:"rgb(var(--color-muted))"},children:["\u6B63\u5728\u52A0\u8F7D\u9884\u89C8\u5185\u5BB9 ",k,"% ..."]})]}):$?Xn("div",{style:{color:"#ff4d4f",width:"100%",maxWidth:640,display:"flex",flexDirection:"column",gap:12,justifyContent:"center",alignItems:"center",position:"absolute",top:0,left:0,right:0,bottom:0,background:"rgb(var(--color-surface))",zIndex:100,padding:24,textAlign:"center",whiteSpace:"pre-line",wordBreak:"break-all"},children:[De(Vi,{style:{fontSize:40,color:"#ff4d4f"}}),De("span",{style:{fontSize:16,lineHeight:1.8},children:$})]}):I==="image"||I==="video"?De(Of,{}):Ve.includes(I)?null:Xn("div",{style:{padding:24,color:"#555"},children:[De(Vi,{style:{color:"#faad14"}})," \u5F53\u524D\u6587\u4EF6\u7C7B\u578B\u4E0D\u652F\u6301\u9884\u89C8\u3002"]})]})})};dn();var Xt={downloadFile:no,fetchFileBuffer:ro,getFileIcon:es,getFileUrl:Sn,getFilePreviewType:rr};import{useEffectResize as Gh}from"@spacecorexdev/core/utils";import{getViewMode as Xh,setViewMode as qh}from"@spacecorexdev/core/utils";var Wi=(e,t=0)=>{e.forEach(n=>{n.level=t,n.children&&n.children.length>0&&Wi(n.children,t+1)})},lt=e=>{let t=new Map,n=[];e.forEach(o=>{let i={...o,children:[]};t.set(o.id,i)});let r=new Map;return e.forEach(o=>{o.fileType==="folder"&&r.set(o.filePath+o.fileName+"/",o.id)}),e.forEach(o=>{let i=t.get(o.id),l=o.filePath,d=r.get(l)||null;if(d){i.parentId=d;let a=t.get(d);a&&a.children?a.children.push(i):n.push(i)}else n.push(i)}),Wi(n),n},ko=(e,t)=>{let n=[],r=[e];for(;r.length;){let o=r.pop(),i=t.filter(l=>l.parentId===o.id);for(let l of i)n.push(l.id),r.push(l)}return n};var Fa=(e,t)=>{let n=[];if(e&&e.fileType==="folder"){let r=e.filePath+e.fileName+"/";n=t.filter(o=>o.id===e.id||o.filePath&&o.filePath.startsWith(r))}return n},Ln=e=>[...e].sort((t,n)=>t.isVirtualContractFolder&&!n.isVirtualContractFolder?-1:!t.isVirtualContractFolder&&n.isVirtualContractFolder?1:t.fileType==="folder"&&n.fileType!=="folder"?-1:t.fileType!=="folder"&&n.fileType==="folder"?1:t.isSecure&&!n.isSecure?-1:!t.isSecure&&n.isSecure?1:t.fileName.localeCompare(n.fileName)),Rr=(e,t,n)=>[...e].sort((o,i)=>{if(o.isVirtualContractFolder&&!i.isVirtualContractFolder)return-1;if(!o.isVirtualContractFolder&&i.isVirtualContractFolder)return 1;if(o.fileType==="folder"&&i.fileType!=="folder")return-1;if(o.fileType!=="folder"&&i.fileType==="folder")return 1;if(o.isSecure&&!i.isSecure)return-1;if(!o.isSecure&&i.isSecure)return 1;let l=0;if(t==="fileName")l=o.fileName.localeCompare(i.fileName,"zh-CN");else if(t==="uploadTime"){let d=o.uploadTime instanceof Date?o.uploadTime.getTime():new Date(o.uploadTime).getTime(),a=i.uploadTime instanceof Date?i.uploadTime.getTime():new Date(i.uploadTime).getTime();l=d-a}else if(t==="fileSize")l=(o.fileSize||0)-(i.fileSize||0),l===0&&(l=o.fileName.localeCompare(i.fileName,"zh-CN"));else{let d=o.fileType==="folder"?"folder":(o.fileName.split(".").pop()||"").toLowerCase(),a=i.fileType==="folder"?"folder":(i.fileName.split(".").pop()||"").toLowerCase();l=d.localeCompare(a,"zh-CN"),l===0&&(l=o.fileName.localeCompare(i.fileName,"zh-CN"))}return n==="asc"?l:-l}).map(o=>({...o,children:o.children&&o.children.length>0?Rr(o.children,t,n):o.children}));import{memo as Zf,useMemo as Wf}from"react";import{useLongPress as Kf}from"@spacecorexdev/core/hooks";import{Tag as ka,Checkbox as Gf}from"antd";import{ResizableTable as Xf}from"@spacecorexdev/core/ui";import{formatDatetime as qf,formatDisksize as Yf}from"@spacecorexdev/core/utils";import{CheckOutlined as Jf,CloudOutlined as Qf,WarningOutlined as em,LinkOutlined as tm}from"@ant-design/icons";var Ar=e=>{let t=e.toLowerCase().split(".").pop()||"";return["pptx","md","xlsx","docx","rdoc"].includes(t)},zf="$$__notes$$__",$f=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),Hf=new RegExp(`^${$f(zf)}\\d*$`),Ki=e=>Hf.test(e),Uf=e=>e?e.split("/").some(t=>!!t&&Ki(t)):!1,To=e=>e.filter(t=>!Ki(t.fileName)&&!Uf(t.filePath)),jf="__contracts__",Vf="\u5408\u540C",Po="__contracts_virtual__",qn=(e,t)=>t?.isVirtualContractFolder&&e===jf?Vf:t?.isContractSubfolder&&t?.descs?t.descs:e;import{jsx as Rt,jsxs as Gi}from"react/jsx-runtime";var Ta=["ascend","descend","ascend"],nm=({dataSource:e,expandedRowKeys:t,selectedFolderId:n,dragOverId:r,dragSourceId:o,smallView:i,readOnly:l=!1,isFolderExpanded:d,onExpand:a,onPreview:s,onDownload:c,onCopyLink:p,onRename:b,onEditDescs:m,onDelete:_,onEdit:h,onGenerateTempLink:x,onMove:M,onDragStart:S,onDragEnd:A,onDragOver:Z,onDragLeave:O,onDrop:I,onRowContextMenu:J,onMoveToProject:ne,onCopyToProject:D,onCopyToSelf:w,onViewVersionHistory:W,onJumpToContract:k,sortBy:L,sortOrder:$,onSortByChange:B,selectedIds:K,onToggleSelect:q})=>{let{handleTouchStart:ge,handleTouchMove:oe,handleTouchEnd:E,handleTouchCancel:be,wasLongPressed:U,resetLongPress:se}=Kf((X,j)=>{let re=j.touches[0],Te={preventDefault:()=>{},stopPropagation:()=>{},clientX:re.clientX,clientY:re.clientY};J(Te,X)},{delay:500,smallView:i}),Ce=Wf(()=>Rr(e,L,$),[e,L,$]),ie=(X,j,re)=>{let Ve=(Array.isArray(re)?re[0]:re)?.columnKey;Ve!=="fileName"&&Ve!=="fileSize"&&Ve!=="uploadTime"||B(Ve)},V=X=>L===X?$==="asc"?"ascend":"descend":null,xe=X=>()=>{U(X)||X.fileType==="folder"&&a(!d(X.id),X),se(X)},ce=i?12:16,ee=X=>!!X.isContractLink||!!X.isVirtualContractFolder||!!X.isContractSubfolder||!!X.isContractTagFolder,Se=[{title:"\u540D\u79F0",dataIndex:"fileName",key:"fileName",width:400,sorter:!0,sortDirections:Ta,sortOrder:V("fileName"),render:(X,j)=>Gi("div",{className:"flex",style:{minWidth:0,opacity:(j.isContractSubfolder||j.isContractLink)&&j.contractSigned===!1?.55:void 0},onContextMenu:re=>{re.preventDefault(),re.stopPropagation(),J(re,j)},children:[Rt("div",{className:"flex items-center",onClick:re=>re.stopPropagation(),children:Rt(Gf,{checked:K.includes(j.id),disabled:l||ee(j),onChange:re=>q(j.id,re.target.checked)})}),Gi("div",{className:"flex items-center ml-2 text-ellipsis overflow-hidden",children:[Xt.getFileIcon({fileName:X,fileType:j.fileType,isExpanded:d(j.id),isSecure:j.isSecure,isVirtualContractFolder:j.isVirtualContractFolder,isContractSubfolder:j.isContractSubfolder,isContractTagFolder:j.isContractTagFolder,contractSigned:j.contractSigned}),j.isContractLink&&Rt(tm,{className:"ml-1 text-green-600",style:{fontSize:12}}),Rt("span",{className:`truncate ml-1 flex-1 ${j.isContractLink?"hover:underline cursor-pointer":""}`,title:j.isContractLink?`\u5408\u540C\u9644\u4EF6${j.descs?`\uFF08${j.descs}\uFF09`:""}`:qn(X,{isVirtualContractFolder:j.isVirtualContractFolder,isContractSubfolder:j.isContractSubfolder,descs:j.descs}),children:qn(X,{isVirtualContractFolder:j.isVirtualContractFolder,isContractSubfolder:j.isContractSubfolder,descs:j.descs})}),j.isContractSubfolder&&j.contractSigned===!1&&Rt(ka,{className:"ml-1",style:{marginInlineStart:4},title:"\u8BE5\u5408\u540C\u5C1A\u672A\u7B7E\u7EA6\uFF0C\u7B7E\u7EA6\u540E\u76D6\u7AE0\u6587\u4EF6\u4F1A\u663E\u793A\u5728\u6B64\u6587\u4EF6\u5939\u4E2D",children:"\u672A\u7B7E\u7EA6"}),j.isLocalOnly&&Rt(ka,{icon:Rt(Qf,{}),color:"orange",className:"ml-1",style:{marginInlineStart:4},title:"\u4EC5\u4FDD\u5B58\u5728\u672C\u5730\uFF0C\u5C1A\u672A\u4E0A\u4F20\u5230\u670D\u52A1\u5668",children:"\u672C\u5730"}),!j.isLocalOnly&&j.hasUnsyncedChanges&&Rt(ka,{icon:Rt(em,{}),color:"warning",className:"ml-1",style:{marginInlineStart:4},title:"\u672C\u5730\u6709\u672A\u540C\u6B65\u7684\u4FEE\u6539\uFF0C\u91CD\u65B0\u4E0A\u4F20\u540E\u53EF\u4E0E\u670D\u52A1\u5668\u4E00\u81F4",children:"\u672A\u540C\u6B65"}),j.hasLocalCache&&Rt("span",{className:"ml-1 flex h-3 w-3 items-center justify-center rounded-full bg-green-600 text-white",title:"\u5DF2\u7F13\u5B58\u5230\u672C\u5730",children:Rt(Jf,{className:"w-2 h-2"})})]})]})},{title:"\u5927\u5C0F",dataIndex:"fileSize",key:"fileSize",width:85,className:"font-thin",sorter:!0,sortDirections:Ta,sortOrder:V("fileSize"),render:X=>X==0?"":Yf(X)}],Le={title:"\u5907\u6CE8",dataIndex:"descs",key:"descs",className:"font-thin",ellipsis:!0,render:X=>X||""},_e=[{title:"\u4E0A\u4F20\u4EBA",dataIndex:"uploaderName",key:"uploaderName",width:80,className:"font-thin"},{title:"\u4E0A\u4F20\u65F6\u95F4",dataIndex:"uploadTime",key:"uploadTime",width:140,className:"font-thin",sorter:!0,sortDirections:Ta,sortOrder:V("uploadTime"),render:X=>qf(X)}],pe=i?Se:Se.concat(_e);return pe.push(Le),Rt("div",{children:Rt(Xf,{className:"file-manager-table",scroll:{x:800},columns:pe,dataSource:Ce,loading:!1,rowKey:"id",pagination:!1,size:"small",onChange:ie,expandable:{expandedRowKeys:t,onExpand:a,rowExpandable:X=>X.fileType==="folder"},expandIcon:()=>null,onRow:X=>({style:{cursor:"pointer"},title:X.isSecure?"\u4EC5\u7BA1\u7406\u5458\u53EF\u89C1":qn(X.fileName,{isVirtualContractFolder:X.isVirtualContractFolder,isContractSubfolder:X.isContractSubfolder,descs:X.descs}),draggable:!l&&!X.isContractLink&&!X.isVirtualContractFolder&&!X.isContractSubfolder&&!X.isContractTagFolder,onDragStart:j=>{if(l||X.isContractLink||X.isVirtualContractFolder||X.isContractSubfolder||X.isContractTagFolder){j.preventDefault();return}j.dataTransfer.setData("text/plain",X.id),S(X.id)},onDragEnd:()=>{A()},onDragOver:j=>{!l&&X.fileType==="folder"&&(j.preventDefault(),Z(X.id))},onDragLeave:()=>{r===X.id&&O(X.id)},onDrop:j=>{if(!l&&X.fileType==="folder"){j.preventDefault();let re=j.dataTransfer.getData("text/plain");re&&I(re,X.id)}},onDoubleClick:()=>{X.fileType!=="folder"&&s(X)},onClick:xe(X),onTouchStart:ge(X),onTouchMove:oe(X),onTouchEnd:E(X),onTouchCancel:be(X),onContextMenu:j=>{J(j,X)}}),rowClassName:X=>K.includes(X.id)?"file-table-row-selected":X.fileType==="folder"&&X.id===n||X.fileType==="folder"&&r===X.id?"file-table-row-highlight":""})})},Xi=Zf(nm);import{memo as um,useMemo as nl,useEffect as pm}from"react";import{useLongPress as fm}from"@spacecorexdev/core/hooks";import{Button as Br,Checkbox as mm}from"antd";import{formatDisksize as hm}from"@spacecorexdev/core/utils";import{useState as qi,useRef as rm,useLayoutEffect as om,memo as am}from"react";import{Menu as sm}from"antd";import{DownloadOutlined as Mo,DeleteOutlined as Yi,EditOutlined as Io,InfoCircleOutlined as Nr,CopyOutlined as im,ExportOutlined as Lr,FolderAddOutlined as Pa,HistoryOutlined as Ji,LinkOutlined as Ma,CommentOutlined as Ia,ClearOutlined as Qi,ArrowUpOutlined as el,FileAddOutlined as lm}from"@ant-design/icons";import{useEffectResize as cm}from"@spacecorexdev/core/utils";import{ShareAltOutlined as tl}from"@ant-design/icons";import{jsx as Me}from"react/jsx-runtime";var dm=({record:e,onPreview:t,onDownload:n,onDownloadFolder:r,onCopyLink:o,onRename:i,onEditDescs:l,onDelete:d,onEdit:a,onGenerateTempLink:s,onMoveToProject:c,onCopyToProject:p,onCopyToSelf:b,onViewVersionHistory:m,onShareToWechat:_,onClearCache:h,onOpenInNewWindow:x,onJumpToContract:M,onCreateContract:S,isAdminOrOwner:A=!1,readOnly:Z=!1,trigger:O="click",placement:I="bottomRight",open:J,position:ne,className:D})=>{let[w,W]=qi(!1);cm(()=>{W(!0)},()=>{W(!1)});let k=[],L=[];b&&L.push({key:"copyToSelf",label:"\u590D\u5236\u526F\u672C",icon:Me(Pa,{}),onClick:E=>{b(e),E.domEvent.stopPropagation()}}),p&&L.push({key:"copyToProject",label:"\u590D\u5236\u5230\u5176\u4ED6\u9879\u76EE",icon:Me(Pa,{}),onClick:E=>{p(e),E.domEvent.stopPropagation()}}),c&&L.push({key:"moveToProject",label:"\u79FB\u52A8\u5230\u5176\u4ED6\u9879\u76EE",icon:Me(Lr,{}),onClick:E=>{c(e),E.domEvent.stopPropagation()}}),e.isContractLink?(k.push({key:"preview",label:"\u9884\u89C8",icon:Me(Nr,{}),onClick:E=>{t(e),E.domEvent.stopPropagation()}},{key:"download",label:"\u4E0B\u8F7D",icon:Me(Mo,{}),onClick:E=>{n(e),E.domEvent.stopPropagation()}}),M&&k.push({key:"jumpToContract",label:"\u8DF3\u8F6C\u81F3\u5408\u540C",icon:Me(Lr,{}),onClick:E=>{M(e),E.domEvent.stopPropagation()}})):e.isVirtualContractFolder?(S&&k.push({key:"createContract",label:"\u521B\u5EFA\u5408\u540C",icon:Me(lm,{}),onClick:E=>{S(e),E.domEvent.stopPropagation()}}),e.id!==Po?(k.push({key:"editDescs",label:"\u7F16\u8F91\u5907\u6CE8",icon:Me(Ia,{}),onClick:E=>{l(e),E.domEvent.stopPropagation()}}),s&&k.push({key:"generateTempLink",label:"\u4E34\u65F6\u8BBF\u95EE\u94FE\u63A5",icon:Me(Ma,{}),onClick:E=>{s(e),E.domEvent.stopPropagation()}})):S||k.push({key:"contractFolderHint",label:"\u5408\u540C\u9644\u4EF6\u6587\u4EF6\u5939",icon:Me(Nr,{}),disabled:!0})):e.isContractSubfolder?M&&k.push({key:"jumpToContract",label:"\u8DF3\u8F6C\u81F3\u5408\u540C",icon:Me(Lr,{}),onClick:E=>{M(e),E.domEvent.stopPropagation()}}):e.isContractTagFolder?k.push({key:"contractTagFolderHint",label:"\u5408\u540C\u5206\u7C7B\u6587\u4EF6\u5939",icon:Me(Nr,{}),disabled:!0}):e.fileType==="folder"||e.isSecure?(e.isSecure&&e.fileType!=="folder"&&(k.push({key:"preview",label:"\u9884\u89C8",icon:Me(Nr,{}),onClick:E=>{t(e),E.domEvent.stopPropagation()}}),x&&k.push({key:"openInNewWindow",label:"\u5728\u65B0\u7A97\u53E3\u6253\u5F00",icon:Me(el,{}),onClick:E=>{x(e),E.domEvent.stopPropagation()}}),a&&Ar(e.fileName)&&k.push({key:"edit",label:"\u7F16\u8F91",icon:Me(Io,{}),onClick:E=>{a(e),E.domEvent.stopPropagation()}}),m&&Ar(e.fileName)&&k.push({key:"versionHistory",label:"\u67E5\u770B\u5386\u53F2\u7248\u672C",icon:Me(Ji,{}),onClick:E=>{m(e),E.domEvent.stopPropagation()}}),k.push({key:"download",label:"\u4E0B\u8F7D",icon:Me(Mo,{}),onClick:E=>{n(e),E.domEvent.stopPropagation()}})),e.fileType==="folder"&&r&&!e.isVirtualContractFolder&&!e.isContractSubfolder&&!e.isContractTagFolder&&k.push({key:"downloadFolder",label:"\u4E0B\u8F7D\u6587\u4EF6\u5939",icon:Me(Mo,{}),onClick:E=>{r(e),E.domEvent.stopPropagation()}}),k.push({key:"rename",label:"\u91CD\u547D\u540D",icon:Me(Io,{}),onClick:E=>{i(e),E.domEvent.stopPropagation()}},{key:"editDescs",label:"\u7F16\u8F91\u5907\u6CE8",icon:Me(Ia,{}),onClick:E=>{l(e),E.domEvent.stopPropagation()}}),e.fileType==="folder"?p&&k.push({key:"copyToProject",label:"\u590D\u5236\u5230\u5176\u4ED6\u9879\u76EE",icon:Me(Pa,{}),onClick:E=>{p(e),E.domEvent.stopPropagation()}}):L.length>0&&k.push({key:"moveCopyToProject",label:"\u79FB\u52A8/\u590D\u5236...",icon:Me(Lr,{}),children:L}),_&&e.isSecure&&A&&k.push({key:"shareToWechat",label:"\u5206\u4EAB\u5230\u5FAE\u4FE1",icon:Me(tl,{}),onClick:E=>{_(e),E.domEvent.stopPropagation()}}),h&&e.isSecure&&e.fileType!=="folder"&&k.push({key:"clearCache",label:"\u6E05\u7406\u7F13\u5B58",icon:Me(Qi,{}),onClick:E=>{h(e),E.domEvent.stopPropagation()}}),e.fileType==="folder"&&s&&k.push({key:"generateTempLink",label:"\u4E34\u65F6\u8BBF\u95EE\u94FE\u63A5",icon:Me(Ma,{}),onClick:E=>{s(e),E.domEvent.stopPropagation()}}),k.push({key:"delete",label:"\u5220\u9664",icon:Me(Yi,{}),danger:!0,onClick:E=>{d(e.id),E.domEvent.stopPropagation()}})):(k.push({key:"preview",label:"\u9884\u89C8",icon:Me(Nr,{}),onClick:E=>{t(e),E.domEvent.stopPropagation()}}),x&&k.push({key:"openInNewWindow",label:"\u5728\u65B0\u7A97\u53E3\u6253\u5F00",icon:Me(el,{}),onClick:E=>{x(e),E.domEvent.stopPropagation()}}),a&&Ar(e.fileName)&&!e.fileName.toLowerCase().endsWith(".pptx")&&k.push({key:"edit",label:"\u7F16\u8F91",icon:Me(Io,{}),onClick:E=>{a(e),E.domEvent.stopPropagation()}}),m&&Ar(e.fileName)&&k.push({key:"versionHistory",label:"\u67E5\u770B\u5386\u53F2\u7248\u672C",icon:Me(Ji,{}),onClick:E=>{m(e),E.domEvent.stopPropagation()}}),k.push({key:"download",label:"\u4E0B\u8F7D",icon:Me(Mo,{}),onClick:E=>{n(e),E.domEvent.stopPropagation()}},{key:"rename",label:"\u91CD\u547D\u540D",icon:Me(Io,{}),onClick:E=>{i(e),E.domEvent.stopPropagation()}},{key:"editDescs",label:"\u7F16\u8F91\u5907\u6CE8",icon:Me(Ia,{}),onClick:E=>{l(e),E.domEvent.stopPropagation()}}),L.length>0&&k.push({key:"moveCopyToProject",label:"\u79FB\u52A8/\u590D\u5236...",icon:Me(Lr,{}),children:L}),s&&k.push({key:"generateTempLink",label:"\u4E34\u65F6\u8BBF\u95EE\u94FE\u63A5",icon:Me(Ma,{}),onClick:E=>{s(e),E.domEvent.stopPropagation()}}),o&&k.push({key:"copyLink",label:"\u590D\u5236\u94FE\u63A5",icon:Me(im,{}),onClick:E=>{o(e),E.domEvent.stopPropagation()}}),_&&k.push({key:"shareToWechat",label:"\u5206\u4EAB\u5230\u5FAE\u4FE1",icon:Me(tl,{}),onClick:E=>{_(e),E.domEvent.stopPropagation()}}),h&&e.fileType!=="folder"&&k.push({key:"clearCache",label:"\u6E05\u7406\u7F13\u5B58",icon:Me(Qi,{}),onClick:E=>{h(e),E.domEvent.stopPropagation()}}),k.push({key:"delete",label:"\u5220\u9664",icon:Me(Yi,{}),danger:!0,onClick:E=>{d(e.id),E.domEvent.stopPropagation()}}));let $=new Set(["createContract","edit","rename","editDescs","delete","moveCopyToProject","copyToProject","generateTempLink","shareToWechat"]),B=Z?k.filter(E=>E&&!$.has(String(E.key))):k,K=J!==void 0,q=rm(null),[ge,oe]=qi({left:0,top:0});return om(()=>{if(!K||!J||!ne||!q.current)return;let E=8,be=q.current.offsetWidth||160,U=q.current.offsetHeight||192,se=window.innerWidth-be-E,Ce=window.innerHeight-U-E;oe({left:Math.max(E,Math.min(ne.x,se)),top:Math.max(E,Math.min(ne.y,Ce))})},[K,J,ne]),K&&J?Me("div",{className:"fixed z-50",style:{left:ge.left||ne?.x||0,top:ge.top||ne?.y||0,minWidth:160},onClick:E=>{E.stopPropagation()},children:Me("div",{ref:q,children:Me(sm,{items:B,mode:"vertical",style:{borderRadius:6,boxShadow:"0 2px 8px rgb(var(--shadow-color) / 0.15)",background:"rgb(var(--color-surface))",border:"1px solid rgb(var(--color-border))",padding:"4px 0",fontSize:"14px",minWidth:160,maxHeight:"calc(100vh - 16px)",overflowY:"auto"}})})}):Me("div",{className:D})},Do=am(dm);import{htmlNoData as gm}from"@spacecorexdev/core/utils";import{CheckOutlined as ym,WarningOutlined as wm,CloudOutlined as bm,LinkOutlined as vm,SortAscendingOutlined as _m,SortDescendingOutlined as xm}from"@ant-design/icons";import{jsx as Xe,jsxs as Yn}from"react/jsx-runtime";var Sm=({item:e,level:t,selectedFolderId:n,dragOverId:r,isFolderExpanded:o,smallView:i,readOnly:l=!1,onPreview:d,onDownload:a,onDownloadFolder:s,onCopyLink:c,onRename:p,onEditDescs:b,onDelete:m,onEdit:_,onGenerateTempLink:h,onToggleExpand:x,onMove:M,onDragStart:S,onDragEnd:A,onDragOver:Z,onDragLeave:O,onDrop:I,onRowContextMenu:J,onMoveToProject:ne,onCopyToProject:D,onCopyToSelf:w,onViewVersionHistory:W,onJumpToContract:k,selected:L,onToggleSelect:$})=>{let{handleTouchStart:B,handleTouchMove:K,handleTouchEnd:q,handleTouchCancel:ge,wasLongPressed:oe,resetLongPress:E}=fm((ee,Se)=>{let Le=Se.touches[0],_e={preventDefault:()=>{},stopPropagation:()=>{},clientX:Le.clientX,clientY:Le.clientY};J(_e,ee)},{delay:500,smallView:i}),be=()=>{let ee=["relative","group","p-4","rounded-lg","cursor-pointer","hover:bg-tableHover","hover:-translate-y-px","hover:shadow-sm","transition-all","duration-200"];return L?ee.push("bg-blue-50","ring-1","ring-blue-300"):e.fileType==="folder"&&e.id===n?ee.push("bg-blue-100"):e.fileType==="folder"&&r===e.id&&ee.push("bg-blue-50"),ee.join(" ")},U=()=>{let ee="\u4F4D\u7F6E\uFF1A"+(e.filePath==="/"?"/":e.filePath.slice(0,e.filePath.length-1));return e.isSecure&&(ee+="\uFF08\u4EC5\u7BA1\u7406\u5458\u53EF\u89C1\uFF09"),e.isContractLink&&(ee+="\uFF08\u5408\u540C\u9644\u4EF6\uFF09"),e.isContractSubfolder&&e.contractSigned===!1&&(ee+="\uFF08\u672A\u7B7E\u7EA6\uFF09"),ee},se=(e.isContractSubfolder||e.isContractLink)&&e.contractSigned===!1,Ce=ee=>{!l&&e.fileType==="folder"&&(ee.preventDefault(),Z(e.id))},ie=()=>{r===e.id&&O(e.id)},V=ee=>{if(!l&&e.fileType==="folder"){ee.preventDefault();let Se=ee.dataTransfer.getData("text/plain");Se&&M(Se,e.id),O(e.id)}},xe=()=>{e.fileType!=="folder"&&d(e)},ce=()=>{oe(e)||e.fileType==="folder"&&x(e),E(e)};return Yn("div",{title:U(),className:be(),style:{marginLeft:`${t*16}px`,opacity:se?.55:void 0},draggable:!l&&!e.isContractLink&&!e.isVirtualContractFolder&&!e.isContractSubfolder&&!e.isContractTagFolder,onDragStart:ee=>{if(l||e.isContractLink||e.isVirtualContractFolder||e.isContractSubfolder||e.isContractTagFolder){ee.preventDefault();return}ee.dataTransfer.setData("text/plain",e.id),S(e.id)},onDragEnd:()=>{A()},onDragOver:Ce,onDragLeave:ie,onDrop:V,onDoubleClick:xe,onClick:ce,onTouchStart:B(e),onTouchMove:K(e),onTouchEnd:q(e),onTouchCancel:ge(e),onContextMenu:ee=>{ee.preventDefault(),ee.stopPropagation(),J(ee,e)},children:[!e.isContractLink&&!e.isVirtualContractFolder&&!e.isContractSubfolder&&!e.isContractTagFolder&&Xe("div",{className:`absolute left-1 top-1 z-10 ${L||i?"opacity-100":"opacity-0 group-hover:opacity-100"}`,onClick:ee=>ee.stopPropagation(),children:Xe(mm,{checked:L,disabled:l,onChange:ee=>$(e.id,ee.target.checked)})}),Yn("div",{className:"flex flex-col items-center text-center",children:[Yn("div",{className:"relative mb-2",children:[Xe("div",{className:"text-4xl",children:Xt.getFileIcon({fileName:e.fileName,fileType:e.fileType,isExpanded:o(e.id),isSecure:e.isSecure,isVirtualContractFolder:e.isVirtualContractFolder,isContractSubfolder:e.isContractSubfolder,isContractTagFolder:e.isContractTagFolder,contractSigned:e.contractSigned,size:32})}),e.isContractLink&&Xe("span",{className:"absolute -top-1 -left-1 flex h-4 w-4 items-center justify-center rounded-full text-white text-[10px] shadow-sm",style:{backgroundColor:"#52c41a"},title:"\u5408\u540C\u9644\u4EF6",children:Xe(vm,{})}),e.isLocalOnly&&Xe("span",{className:"absolute -top-1 -left-1 flex h-4 w-4 items-center justify-center rounded-full text-white text-[10px] shadow-sm",style:{backgroundColor:"#fa8c16"},title:"\u4EC5\u4FDD\u5B58\u5728\u672C\u5730\uFF0C\u5C1A\u672A\u4E0A\u4F20\u5230\u670D\u52A1\u5668",children:Xe(bm,{})}),!e.isLocalOnly&&e.hasUnsyncedChanges&&Xe("span",{className:"absolute -top-1 -left-1 flex h-4 w-4 items-center justify-center rounded-full text-white text-[10px] shadow-sm",style:{backgroundColor:"#faad14"},title:"\u672C\u5730\u6709\u672A\u540C\u6B65\u7684\u4FEE\u6539\uFF0C\u91CD\u65B0\u4E0A\u4F20\u540E\u53EF\u4E0E\u670D\u52A1\u5668\u4E00\u81F4",children:Xe(wm,{className:"w-2.5 h-2.5"})}),e.hasLocalCache&&Xe("span",{className:"absolute -top-1 -right-1 flex h-3 w-3 items-center justify-center rounded-full bg-green-600 text-white text-xs",children:Xe(ym,{className:"w-2 h-2"})})]}),Yn("div",{className:"text-sm w-full",style:{display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden",wordBreak:"break-all",lineHeight:"1.3em",maxHeight:"2.6em"},title:e.isContractLink?`\u5408\u540C\u9644\u4EF6${e.descs?`\uFF08${e.descs}\uFF09`:""}`:qn(e.fileName,{isVirtualContractFolder:e.isVirtualContractFolder,isContractSubfolder:e.isContractSubfolder,descs:e.descs}),children:[e.isLocalOnly&&Xe("span",{className:"mr-1 inline-flex items-center text-[10px] px-1 rounded",style:{backgroundColor:"#fff7e6",color:"#d46b08",border:"1px solid #ffd591"},children:"\u672C\u5730"}),!e.isLocalOnly&&e.hasUnsyncedChanges&&Xe("span",{className:"mr-1 inline-flex items-center text-[10px] px-1 rounded",style:{backgroundColor:"#fffbe6",color:"#ad6800",border:"1px solid #ffe58f"},children:"\u672A\u540C\u6B65"}),e.isContractSubfolder&&e.contractSigned===!1&&Xe("span",{className:"mr-1 inline-flex items-center text-[10px] px-1 rounded",style:{backgroundColor:"#f3f4f6",color:"#6b7280",border:"1px solid #d1d5db"},children:"\u672A\u7B7E\u7EA6"}),Xe("span",{className:"text-sm",children:qn(e.fileName,{isVirtualContractFolder:e.isVirtualContractFolder,isContractSubfolder:e.isContractSubfolder,descs:e.descs})})]}),Xe("div",{className:"text-xs text-gray-400 mt-1",children:e.fileSize>0?hm(e.fileSize):""})]}),Xe(Do,{record:e,readOnly:l,onPreview:d,onDownload:a,onDownloadFolder:s,onCopyLink:c,onRename:p,onEditDescs:b,onDelete:m,onEdit:_,onGenerateTempLink:h,onMoveToProject:ne,onCopyToProject:D,onCopyToSelf:w,onViewVersionHistory:W,onJumpToContract:k,trigger:"click",placement:"bottomRight",className:"absolute top-2 right-2 z-10"})]},e.id)},Em=({dataSource:e,selectedFolderId:t,dragOverId:n,isFolderExpanded:r,smallView:o,readOnly:i=!1,onPreview:l,onDownload:d,onDownloadFolder:a,onCopyLink:s,onRename:c,onEditDescs:p,onDelete:b,onEdit:m,onGenerateTempLink:_,onFolderChange:h,onMove:x,onDragStart:M,onDragEnd:S,onDragOver:A,onDragLeave:Z,onDrop:O,onRowContextMenu:I,onMoveToProject:J,onCopyToProject:ne,onCopyToSelf:D,onViewVersionHistory:w,onJumpToContract:W,sortBy:k,sortOrder:L,onSortByChange:$,onSortOrderToggle:B,selectedIds:K,onToggleSelect:q})=>{let ge=nl(()=>Rr(e,k,L),[e,k,L]),oe=nl(()=>{let se=new Map,Ce=ie=>{ie.forEach(V=>{se.set(V.id,V),V.children&&V.children.length>0&&Ce(V.children)})};return Ce(ge),se},[ge]),E=t?oe.get(t):void 0,be=E?E.children||[]:ge;pm(()=>{t&&!oe.has(t)&&h(null)},[t,oe,h]);let U=se=>se.map(Ce=>Xe(Sm,{item:Ce,level:0,selectedFolderId:t,dragOverId:n,isFolderExpanded:r,smallView:o,readOnly:i,onPreview:l,onDownload:d,onDownloadFolder:a,onCopyLink:s,onRename:c,onEditDescs:p,onDelete:b,onEdit:m,onGenerateTempLink:_,onToggleExpand:ie=>h(ie.id),onMove:x,onDragStart:M,onDragEnd:S,onDragOver:A,onDragLeave:Z,onDrop:O,onRowContextMenu:I,onMoveToProject:J,onCopyToProject:ne,onCopyToSelf:D,onViewVersionHistory:w,onJumpToContract:W,selected:K.includes(Ce.id),onToggleSelect:q},Ce.id));return e.length==0?Xe("div",{className:"flex items-center justify-center",children:gm()}):Yn("div",{children:[Yn("div",{className:"flex items-center gap-2 mb-2 mt-2 px-2 flex-wrap",children:[Xe(Br,{type:k==="fileName"?"primary":"default",size:"small",onClick:()=>$("fileName"),style:{touchAction:"manipulation"},children:"\u6309\u540D\u79F0"}),Xe(Br,{type:k==="fileType"?"primary":"default",size:"small",onClick:()=>$("fileType"),style:{touchAction:"manipulation"},children:"\u6309\u7C7B\u578B"}),Xe(Br,{type:k==="fileSize"?"primary":"default",size:"small",onClick:()=>$("fileSize"),style:{touchAction:"manipulation"},children:"\u6309\u5927\u5C0F"}),Xe(Br,{type:k==="uploadTime"?"primary":"default",size:"small",onClick:()=>$("uploadTime"),style:{touchAction:"manipulation"},children:"\u6309\u65F6\u95F4"}),Xe(Br,{type:"text",size:"small",icon:L==="asc"?Xe(_m,{}):Xe(xm,{}),onClick:B,title:L==="asc"?"\u5347\u5E8F\uFF08\u70B9\u51FB\u5207\u6362\u4E3A\u964D\u5E8F\uFF09":"\u964D\u5E8F\uFF08\u70B9\u51FB\u5207\u6362\u4E3A\u5347\u5E8F\uFF09",style:{touchAction:"manipulation"},children:L==="asc"?"\u5347\u5E8F":"\u964D\u5E8F"})]}),Yn("div",{className:"grid grid-cols-3 sm:grid-cols-6 md:grid-cols-8 lg:grid-cols-10 xl:grid-cols-12 p-4",children:[U(be),E&&be.length===0&&Xe("div",{className:"col-span-full text-center text-sm text-gray-400 py-6",children:"\u8BE5\u76EE\u5F55\u4E3A\u7A7A"})]})]})},rl=um(Em);import{useState as Cm,memo as Fm}from"react";import{Button as km,Dropdown as Tm,Divider as Pm}from"antd";import{FolderAddOutlined as Mm,FileMarkdownFilled as Im,FileExcelFilled as Dm,FileWordFilled as Rm,CaretDownOutlined as Am,FileTextFilled as Nm}from"@ant-design/icons";import{UIFileUpload as Lm}from"@spacecorexdev/core/ui";import{UITableGridViewToggle as Bm}from"@spacecorexdev/core/ui";import{Space as Om}from"antd";import{Fragment as Or,jsx as rn,jsxs as Jn}from"react/jsx-runtime";var zm=({currentUserRole:e,viewMode:t,onToggleViewMode:n,onCreateFolder:r,onCreateMarkdown:o,onCreateRdoc:i,onCreateExcel:l,onCreateWord:d,onUploadFiles:a})=>{let[s,c]=Cm([]),p=e===Zt.MANAGER||e===Zt.OWNER,b=p||e===Zt.MEMBER;return Jn(Om,{children:[p&&rn(Tm,{menu:{items:[{key:"1",label:Jn(Or,{children:[rn(Mm,{className:"text-blue-400 mr-1"})," \u65B0\u5EFA\u6587\u4EF6\u5939"]}),onClick:r},{key:"6",label:Jn(Or,{children:[rn(Nm,{className:"text-yellow-600 mr-1"})," \u65B0\u5EFA\u6587\u6863"]}),onClick:i},{key:"2",label:Jn(Or,{children:[rn(Im,{className:"text-gray-800 mr-1"})," \u65B0\u5EFAMarkdown"]}),onClick:o},{key:"3",label:Jn(Or,{children:[rn(Rm,{className:"text-blue-600 mr-1"})," \u65B0\u5EFAWord"]}),onClick:d},{key:"5",label:Jn(Or,{children:[rn(Dm,{className:"text-green-600 mr-1"})," \u65B0\u5EFAExcel"]}),onClick:l}]},placement:"bottom",children:Jn(km,{type:"text",children:["\u65B0\u5EFA ",rn(Am,{})]})}),b&&rn(Lm,{fileList:s,onFinish:async(m,_)=>{await a(m,_),c([])},onChange:c,multiple:!1}),rn(Pm,{type:"vertical"}),rn(Bm,{viewMode:t,onToggle:n})]})},ol=Fm(zm);import{useState as al}from"react";import{Modal as $m,message as vr,Alert as Hm}from"antd";import{ProjectSelector as Um}from"@spacecorexdev/core/ui";import{API as sl}from"@spacecorexdev/core/api";import{ResponseCode as jm}from"@spacecorexdev/core/api";import{jsx as Da,jsxs as Vm}from"react/jsx-runtime";var il=({visible:e,fileIds:t,files:n,currentProjectId:r,mode:o,onCancel:i,onSuccess:l})=>{let[d,a]=al(!1),[s,c]=al(void 0),p=n?.length===1&&n[0].fileType==="folder",b=o==="move"?"\u79FB\u52A8":"\u590D\u5236";return Vm($m,{title:p?"\u590D\u5236\u6587\u4EF6\u5939\u5230\u5176\u4ED6\u9879\u76EE":o==="move"?"\u79FB\u52A8\u5230\u5176\u4ED6\u9879\u76EE":"\u590D\u5236\u5230\u5176\u4ED6\u9879\u76EE",className:"ant-modal-nofull",open:e,onCancel:i,onOk:async()=>{if(!s){vr.warning("\u8BF7\u9009\u62E9\u76EE\u6807\u9879\u76EE");return}a(!0);try{let h=o==="move"?sl.project.file.moveFileToProject:sl.project.file.copyFileToProject,x=await Promise.all(t.map(S=>h({projectId:s,fileId:S}))),M=x.filter(S=>S.code!==jm.SUCCESS).length;M===0?(p?vr.success(`\u6587\u4EF6\u5939\u590D\u5236\u6210\u529F\uFF0C\u76EE\u6807\u9879\u76EE\u4E2D\u7684\u6587\u4EF6\u5939\u540D\u4E3A\uFF1A${x[0].data}`):vr.success(`${b}\u6210\u529F, \u6587\u4EF6\u540D\u4E3A\uFF1A${x[0].data}`),l()):M<t.length?(vr.warning(`\u90E8\u5206${p?"\u6587\u4EF6\u5939":"\u6587\u4EF6"}${b}\u6210\u529F`),l()):vr.error(`${b}\u5931\u8D25`)}catch{vr.error(`${b}\u5931\u8D25`)}finally{a(!1)}},okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88",confirmLoading:d,okButtonProps:{disabled:!s},width:480,children:[p&&Da(Hm,{className:"mb-3",type:"info",showIcon:!0,message:"\u6587\u4EF6\u5939\u5185\u7684\u5168\u90E8\u5B50\u6587\u4EF6\u5939\u548C\u6587\u4EF6\u5C06\u4E00\u5E76\u590D\u5236\u5230\u76EE\u6807\u9879\u76EE\u7684\u6839\u76EE\u5F55\uFF0C\u91CD\u540D\u65F6\u4F1A\u81EA\u52A8\u8FFD\u52A0\u6570\u5B57\u540E\u7F00\u3002"}),Da("div",{className:"w-full flex items-center justify-center",children:Da(Um,{value:s?[s]:void 0,onChange:h=>{c(h[0])},className:"w-[100%]",excludeProjectIds:[r],placeholder:"\u8BF7\u9009\u62E9\u76EE\u6807\u9879\u76EE",multiple:!1,allowClear:!0})})]})};import{useState as Ro,useEffect as Zm,useCallback as Wm}from"react";import{Modal as Km,Spin as Gm,Empty as Xm,Button as ll,Space as qm,message as cl}from"antd";import{ResizableTable as Ym}from"@spacecorexdev/core/ui";import{HistoryOutlined as Jm,DownloadOutlined as Qm,EyeOutlined as eh}from"@ant-design/icons";import{API as th}from"@spacecorexdev/core/api";import{ResponseCode as nh}from"@spacecorexdev/core/api";import{formatDatetime as rh,formatDisksize as oh}from"@spacecorexdev/core/utils";import{Fragment as ah,jsx as $t,jsxs as zr}from"react/jsx-runtime";var dl=({visible:e,file:t,onClose:n})=>{let[r,o]=Ro(!1),[i,l]=Ro([]),[d,a]=Ro(null),[s,c]=Ro(!1),p=Wm(async()=>{if(t){o(!0);try{let h=await th.project.fileversion.listVersions({fileId:t.id});h.code===nh.SUCCESS&&h.data?l(h.data):cl.error("\u83B7\u53D6\u6587\u4EF6\u5386\u53F2\u7248\u672C\u5931\u8D25")}catch{cl.error("\u83B7\u53D6\u6587\u4EF6\u5386\u53F2\u7248\u672C\u5931\u8D25")}finally{o(!1)}}},[t]);Zm(()=>{e&&t?p():l([])},[e,t,p]);let b=h=>{a(h.fileResourcePath),c(!0)},m=h=>{Xt.downloadFile(h.fileResourcePath,void 0,h.fileId).catch(()=>{})},_=[{title:"\u7248\u672C",key:"version",width:80,render:(h,x,M)=>zr("span",{className:"text-blue-600",children:["v",i.length-M]})},{title:"\u6587\u4EF6\u5927\u5C0F",dataIndex:"fileSize",key:"fileSize",width:100,render:h=>oh(h)},{title:"\u4E0A\u4F20\u65F6\u95F4",dataIndex:"uploadTime",key:"uploadTime",width:160,render:h=>rh(h)},{title:"\u4E0A\u4F20\u4EBA",dataIndex:"uploaderName",key:"uploaderName",width:100},{title:"\u64CD\u4F5C",key:"action",width:120,render:(h,x)=>zr(qm,{children:[$t(ll,{type:"text",icon:$t(eh,{}),onClick:()=>b(x),title:"\u9884\u89C8"}),$t(ll,{type:"text",icon:$t(Qm,{}),onClick:()=>m(x),title:"\u4E0B\u8F7D"})]})}];return zr(ah,{children:[$t(Km,{title:zr("div",{className:"flex items-center",children:[$t(Jm,{className:"mr-2"}),zr("span",{children:["\u6587\u4EF6\u5386\u53F2\u7248\u672C - ",t?.fileName]})]}),open:e,onCancel:n,footer:null,width:720,destroyOnHidden:!0,children:$t("div",{className:"py-4",children:r?$t("div",{className:"flex justify-center items-center py-12",children:$t(Gm,{})}):i.length===0?$t(Xm,{description:"\u6682\u65E0\u5386\u53F2\u7248\u672C",className:"py-12"}):$t(Ym,{columns:_,dataSource:i,rowKey:"id",pagination:!1,scroll:{y:400},size:"middle"})})}),$t(Dr,{fileUrl:d,fileName:t?.fileName,visible:s,onClose:()=>c(!1),editable:!1,uploadPercent:void 0})]})};dn();Qr();import{useEffect as sh,useMemo as ih,useRef as lh,useState as _r}from"react";import{Modal as ch,message as Qn,Button as $r}from"antd";import{CopyOutlined as ul,ShareAltOutlined as Ra}from"@ant-design/icons";import{AuthorizationHandler as dh}from"@spacecorexdev/core/api";import{copyToClipboard as pl}from"@spacecorexdev/core/utils";import{jsx as ct,jsxs as Hr}from"react/jsx-runtime";var uh={doc:"application/msword",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",xls:"application/vnd.ms-excel",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",ppt:"application/vnd.ms-powerpoint",pptx:"application/vnd.openxmlformats-officedocument.presentationml.presentation",pdf:"application/pdf",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",bmp:"image/bmp",txt:"text/plain",csv:"text/csv",mp4:"video/mp4",mp3:"audio/mpeg",zip:"application/zip"},ph=e=>{let t=e.split(".").pop()?.toLowerCase()??"";return uh[t]??""},fl=({visible:e,file:t,onClose:n,onFileCached:r})=>{let[o,i]=_r(!1),[l,d]=_r(!1),[a,s]=_r(!1),[c,p]=_r(!1),[b,m]=_r(!1),[_,h]=_r(!1),x=lh(null),M=ih(()=>t?`${window.location.origin}/filepreview?fileid=${t.id}&path=${encodeURIComponent(t.fileResourcePath)}&name=${encodeURIComponent(t.fileName)}`:"",[t]);sh(()=>{if(!e){x.current=null;return}let D=navigator.userAgent||"",w=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(D),W=/MicroMessenger/i.test(D),k=window.matchMedia("(display-mode: standalone)").matches||!!navigator.standalone,L=!!navigator.share;console.log("[ShareToWechat] \u73AF\u5883\u68C0\u6D4B:",{userAgent:D,isMobile:w,isWechatBrowser:W,hasNativeShare:L,protocol:window.location.protocol,hostname:window.location.hostname,standalone:k}),s(w),m(W),p(L),h(k),d(!1),i(!1),x.current=null,w&&L&&S().then($=>{x.current=$}).catch($=>{console.error("[ShareToWechat] \u9884\u53D6\u6587\u4EF6\u5931\u8D25:",$)})},[e]);let S=async()=>{if(!t)throw new Error("\u6587\u4EF6\u4E0D\u5B58\u5728");if(t.hasLocalCache&&t.id)try{let L=await $e.getCachedContent(t.id);if(L)return console.log("[ShareToWechat] \u4F7F\u7528\u672C\u5730\u7F13\u5B58\u7684\u6587\u4EF6"),L.content}catch(L){console.error("[ShareToWechat] \u8BFB\u53D6\u7F13\u5B58\u5931\u8D25\uFF0C\u5C06\u4ECE\u7F51\u7EDC\u83B7\u53D6:",L)}console.log("[ShareToWechat] \u4ECE\u7F51\u7EDC\u83B7\u53D6\u6587\u4EF6");let D=Sn(t.fileResourcePath);if(!D)throw new Error("\u6587\u4EF6\u8D44\u6E90\u8DEF\u5F84\u4E0D\u53EF\u7528");let w={};w.set=(L,$)=>{w[L]=$},dh.requestHandleSid({headers:w});let W=await fetch(D,{headers:{Authorization:w.Authorization||""},credentials:"include",mode:"cors"});if(!W.ok)throw new Error(`\u6587\u4EF6\u52A0\u8F7D\u5931\u8D25\uFF0C\u72B6\u6001\u7801 ${W.status}`);let k=await W.blob();if(t.id)try{await $e.saveToCache(t.id,k,t.crc32),console.log("[ShareToWechat] \u5DF2\u4FDD\u5B58\u5230\u672C\u5730\u7F13\u5B58"),r?.(t.id)}catch(L){console.error("[ShareToWechat] \u4FDD\u5B58\u5230\u7F13\u5B58\u5931\u8D25:",L)}return k},A=async()=>{if(t){if(a&&c)try{let D=x.current,w=!1;if(D&&navigator.canShare){let W=D.type&&D.type!=="application/octet-stream"?D.type:ph(t.fileName),k=new File([D],t.fileName,{type:W});if(console.log("[ShareToWechat] \u51C6\u5907\u6587\u4EF6\u5206\u4EAB:",{fileName:t.fileName,blobType:D.type,fileType:W,blobSize:D.size,canShare:navigator.canShare({files:[k]})}),navigator.canShare({files:[k]})){w=!0;try{await navigator.share({files:[k],title:t.fileName,text:`\u8BF7\u67E5\u770B\u6587\u4EF6\uFF1A${t.fileName}`}),Qn.success("\u5206\u4EAB\u6210\u529F"),n();return}catch(L){if(L.name==="AbortError"){Qn.info("\u5206\u4EAB\u5DF2\u53D6\u6D88");return}console.warn("[ShareToWechat] \u6587\u4EF6\u5206\u4EAB\u5931\u8D25\uFF0C\u56DE\u9000\u4E0B\u8F7D:",L)}}}if(!w)try{await navigator.share({title:t.fileName,text:`\u8BF7\u67E5\u770B\u6587\u4EF6\uFF1A${t.fileName}`,url:M}),Qn.success("\u5206\u4EAB\u6210\u529F"),n();return}catch(W){if(W.name==="AbortError"){Qn.info("\u5206\u4EAB\u5DF2\u53D6\u6D88");return}console.warn("[ShareToWechat] \u94FE\u63A5\u5206\u4EAB\u5931\u8D25\uFF0C\u56DE\u9000\u4E0B\u8F7D:",W)}}catch(D){console.error("[ShareToWechat] \u5206\u4EAB\u8FC7\u7A0B\u5F02\u5E38:",D)}i(!0);try{await no(t.fileResourcePath,t.fileName,t.id,t.crc32),d(!0),r?.(t.id)}catch(D){console.error("\u4E0B\u8F7D\u5931\u8D25:",D)}finally{i(!1)}}},Z=async()=>{if(t){try{await pl(M)}catch(D){console.warn("[ShareToWechat] \u590D\u5236\u94FE\u63A5\u5931\u8D25:",D)}window.location.href="weixin://",Qn.info("\u94FE\u63A5\u5DF2\u590D\u5236\uFF0C\u8BF7\u5728\u5FAE\u4FE1\u804A\u5929\u4E2D\u7C98\u8D34\u53D1\u9001")}},O=async()=>{if(t)try{await pl(M),Qn.success("\u5206\u4EAB\u94FE\u63A5\u5DF2\u590D\u5236")}catch(D){Qn.error("\u590D\u5236\u94FE\u63A5\u5931\u8D25"),console.error("\u590D\u5236\u5931\u8D25:",D)}},I=_&&!c,J=()=>o?"\u5904\u7406\u4E2D...":I?"\u5728\u6D4F\u89C8\u5668\u4E2D\u6253\u5F00":a&&c?"\u5206\u4EAB\u5230\u5FAE\u4FE1":b?"\u590D\u5236\u94FE\u63A5":a?"\u6253\u5F00\u5FAE\u4FE1":"\u4E0B\u8F7D\u6587\u4EF6",ne=()=>I?"\u5F53\u524D\u4E3A\u684C\u9762\u5E94\u7528\u6A21\u5F0F\uFF0C\u4E0D\u652F\u6301\u76F4\u63A5\u5206\u4EAB\u3002\u8BF7\u70B9\u51FB\u4E0B\u65B9\u6309\u94AE\u5728\u6D4F\u89C8\u5668\u4E2D\u6253\u5F00\u540E\u5206\u4EAB":a&&c?"\u70B9\u51FB\u4E0B\u65B9\u6309\u94AE\uFF0C\u5728\u7CFB\u7EDF\u5206\u4EAB\u9762\u677F\u4E2D\u9009\u62E9\u5FAE\u4FE1\u53D1\u9001":b?"\u70B9\u51FB\u4E0B\u65B9\u6309\u94AE\u590D\u5236\u94FE\u63A5\uFF0C\u7136\u540E\u70B9\u51FB\u53F3\u4E0A\u89D2\u300C\xB7\xB7\xB7\u300D\u2192\u300C\u53D1\u9001\u7ED9\u670B\u53CB\u300D\u5373\u53EF\u5206\u4EAB":a?"\u70B9\u51FB\u4E0B\u65B9\u6309\u94AE\u6253\u5F00\u5FAE\u4FE1\uFF0C\u94FE\u63A5\u5DF2\u81EA\u52A8\u590D\u5236\uFF0C\u8BF7\u5728\u804A\u5929\u4E2D\u7C98\u8D34\u53D1\u9001":"\u8BF7\u4E0B\u8F7D\u6587\u4EF6\u540E\uFF0C\u5728\u5FAE\u4FE1\u4E2D\u53D1\u9001\u7ED9\u597D\u53CB";return t?ct(ch,{open:e,onCancel:n,title:"\u5206\u4EAB\u5230\u5FAE\u4FE1",footer:null,width:320,className:"ant-modal-nofull",children:Hr("div",{className:"flex flex-col items-center",children:[ct("div",{className:"mb-4 text-center",children:ct("p",{className:"text-sm text-gray-600",children:ne()})}),ct("div",{className:"w-full mb-4",children:Hr("div",{className:"bg-gray-50 rounded-lg p-3",children:[ct("p",{className:"text-sm font-medium text-gray-700 truncate",children:t.fileName}),Hr("p",{className:"text-xs text-gray-400 mt-1",children:[(t.fileSize/1024/1024).toFixed(2)," MB"]}),t.hasLocalCache&&ct("p",{className:"text-xs text-green-500 mt-1",children:"\u{1F4C1} \u5DF2\u7F13\u5B58\uFF0C\u53EF\u79BB\u7EBF\u4F7F\u7528"})]})}),Hr("div",{className:"w-full space-y-2",children:[I?ct($r,{type:"primary",block:!0,icon:ct(Ra,{}),href:window.location.href,target:"_blank",rel:"noopener",children:J()}):b&&!c?ct($r,{type:"primary",block:!0,icon:ct(ul,{}),onClick:O,children:J()}):a&&!c?ct($r,{type:"primary",block:!0,icon:ct(Ra,{}),onClick:Z,children:J()}):ct($r,{type:"primary",block:!0,icon:ct(Ra,{}),loading:o,onClick:A,children:J()}),!b&&!(a&&c)&&ct($r,{block:!0,icon:ct(ul,{}),onClick:O,children:"\u590D\u5236\u5206\u4EAB\u94FE\u63A5"})]}),l&&ct("div",{className:"mt-4 pt-4 border-t border-gray-100 w-full",children:Hr("div",{className:"space-y-2",children:[ct("p",{className:"text-xs text-gray-400 text-center",children:"\u{1F4A1} \u5206\u4EAB\u65B9\u5F0F\uFF1A\u6253\u5F00\u5FAE\u4FE1 \u2192 \u8FDB\u5165\u804A\u5929\u7A97\u53E3"}),ct("p",{className:"text-xs text-gray-400 text-center",children:"\u70B9\u51FB\u53F3\u4E0B\u89D2\u300C+\u300D\u2192\u300C\u6587\u4EF6\u300D\u2192 \u9009\u62E9\u521A\u4E0B\u8F7D\u7684\u6587\u4EF6"})]})})]})}):null};import{useState as ve,useCallback as yn,useEffect as fh}from"react";var hl="file-manager-sort",mh=e=>e==="fileName"||e==="fileType"||e==="fileSize"||e==="uploadTime",ml=()=>{try{let e=localStorage.getItem(hl);if(!e)return null;let t=JSON.parse(e);return t&&mh(t.sortBy)&&(t.sortOrder==="asc"||t.sortOrder==="desc")?{sortBy:t.sortBy,sortOrder:t.sortOrder}:null}catch{return null}},gl=()=>{let[e,t]=ve([]),[n,r]=ve([]),[o,i]=ve(!1),[l,d]=ve([]),[a,s]=ve("table"),[c,p]=ve(!1),[b,m]=ve(null),[_,h]=ve(null),[x,M]=ve(null),[S,A]=ve(!1),[Z,O]=ve(void 0),[I,J]=ve(void 0),[ne,D]=ve(void 0),[w,W]=ve(void 0),[k,L]=ve(""),[$,B]=ve(!1),[K,q]=ve(!1),[ge,oe]=ve(""),[E,be]=ve(""),[U,se]=ve(!1),[Ce,ie]=ve(!1),[V,xe]=ve(""),[ce,ee]=ve(null),[Se,Le]=ve(!1),[_e,pe]=ve(null),[Ge,X]=ve(""),[j,re]=ve(!1),[Te,Ve]=ve(null),[st,Tt]=ve(!1),[ut,wt]=ve(""),[on,Nt]=ve(null),[Et,_t]=ve(null),[Yt,Je]=ve(!1),[He,Ue]=ve(null),[Qe,Ie]=ve(void 0),[Ae,Ze]=ve(null),[zn,vn]=ve(!1),[an,$n]=ve({x:0,y:0}),[ht,Hn]=ve(null),[Un,sn]=ve(!1),[u,C]=ve(!1),[T,P]=ve("move"),[z,N]=ve([]),[ue,de]=ve(!1),[G,le]=ve(null),[ye,Fe]=ve(!1),[f,y]=ve(null),[g,v]=ve(typeof navigator<"u"?navigator.onLine:!0),[F,H]=ve(null),[R,te]=ve(!1),[Y,fe]=ve(!1),[Re,ae]=ve(!1),[Pe,We]=ve(""),[Q,Be]=ve(null),[Ne,ke]=ve(()=>ml()?.sortBy??"fileName"),[Ct,we]=ve(()=>ml()?.sortOrder??"asc"),[ot,et]=ve([]);fh(()=>{try{localStorage.setItem(hl,JSON.stringify({sortBy:Ne,sortOrder:Ct}))}catch{}},[Ne,Ct]);let qr=yn(Bt=>{d(Vt=>Vt.includes(Bt)?Vt.filter(Jt=>Jt!==Bt):[...Vt,Bt])},[]),qe=yn((Bt,Vt)=>{et(Jt=>(Vt===void 0?!Jt.includes(Bt):Vt)?Jt.includes(Bt)?Jt:[...Jt,Bt]:Jt.filter(Ol=>Ol!==Bt))},[]),gt=yn(()=>{_t(null),Je(!1),Ue(null),Ie(void 0),Ze(null),H(null),te(!1),fe(!1)},[]),jt=yn(()=>{re(!1),Ve(null),H(null),te(!1),fe(!1)},[]),_n=yn(()=>{Tt(!1),wt(""),Nt(null),H(null),te(!1),fe(!1)},[]),ln=yn(()=>{vn(!1),Hn(null)},[]),Lt=yn(()=>{C(!1),N([])},[]),Pt=yn(()=>{de(!1),le(null)},[]),Ft=yn(()=>{Fe(!1),y(null)},[]);return[{files:e,fileTreeData:n,loading:o,expandedRowKeys:l,viewMode:a,smallView:c,selectedFolderId:b,dragSourceId:_,dragOverId:x,rootDragOver:S,uploadPercent:Z,uploadSuccess:I,dragUploadPercent:ne,dragUploadSuccess:w,dragUploadingFileName:k,isExternalDragOver:$,createFolderVisible:K,newFolderName:ge,newFolderDescs:E,isEncryptedFolder:U,renameVisible:Ce,renameFileName:V,renameFileId:ce,descsVisible:Se,descsFileId:_e,descsValue:Ge,editorVisible:j,editingFile:Te,creatorVisible:st,creatingFileName:ut,creatingFileType:on,previewUrl:Et,previewVisible:Yt,previewFileName:He,previewCrc32:Qe,previewingFile:Ae,contextMenuVisible:zn,contextMenuPosition:an,contextMenuRecord:ht,isManager:Un,moveCopyModalVisible:u,moveCopyMode:T,moveCopyFiles:z,versionHistoryModalVisible:ue,versionHistoryFile:G,shareToWechatVisible:ye,shareToWechatFile:f,isOnline:g,previewLocalId:F,previewIsLocalOnly:R,previewHasUnsyncedChanges:Y,createFileVisible:Re,newFileName:Pe,pendingFileType:Q,sortBy:Ne,sortOrder:Ct,selectedIds:ot},{setFiles:t,setFileTreeData:r,setLoading:i,setExpandedRowKeys:d,toggleExpandKey:qr,setViewMode:s,setSmallView:p,setSelectedFolderId:m,setDragSourceId:h,setDragOverId:M,setRootDragOver:A,setUploadPercent:O,setUploadSuccess:J,setDragUploadPercent:D,setDragUploadSuccess:W,setDragUploadingFileName:L,setIsExternalDragOver:B,setCreateFolderVisible:q,setNewFolderName:oe,setNewFolderDescs:be,setIsEncryptedFolder:se,setRenameVisible:ie,setRenameFileName:xe,setRenameFileId:ee,setDescsVisible:Le,setDescsFileId:pe,setDescsValue:X,setEditorVisible:re,setEditingFile:Ve,setCreatorVisible:Tt,setCreatingFileName:wt,setCreatingFileType:Nt,setPreviewUrl:_t,setPreviewVisible:Je,setPreviewFileName:Ue,setPreviewCrc32:Ie,setPreviewingFile:Ze,setContextMenuVisible:vn,setContextMenuPosition:$n,setContextMenuRecord:Hn,setIsManager:sn,setMoveCopyModalVisible:C,setMoveCopyMode:P,setMoveCopyFiles:N,setVersionHistoryModalVisible:de,setVersionHistoryFile:le,setShareToWechatVisible:Fe,setShareToWechatFile:y,setIsOnline:v,setPreviewLocalId:H,setPreviewIsLocalOnly:te,setPreviewHasUnsyncedChanges:fe,setCreateFileVisible:ae,setNewFileName:We,setPendingFileType:Be,setSortBy:ke,setSortOrder:we,setSelectedIds:et,toggleSelectedId:qe,resetPreviewState:gt,resetEditorState:jt,resetCreatorState:_n,resetContextMenu:ln,resetMoveCopyState:Lt,resetVersionHistoryState:Pt,resetShareToWechatState:Ft}]};import On,{useCallback as me,useRef as tr,useMemo as Eh,useState as Ch,useEffect as Ao}from"react";import{useSearchParams as Fh}from"react-router-dom";import{message as Ee,Modal as kl,Input as kh}from"antd";import{API as Tl}from"@spacecorexdev/core/api";import{ResponseCode as dt}from"@spacecorexdev/core/api";Qr();import{CacheUserInfo as Bn}from"@spacecorexdev/core/utils";import{CachePermissionInfo as Th,PERMISSION_FOLDER_DOWNLOAD as Ph}from"@spacecorexdev/core/utils";import*as jr from"febs-browser";import{FileUploadHandler as gh}from"@spacecorexdev/core/ui";import{ResponseCode as er}from"@spacecorexdev/core/api";import{file as yh}from"@spacecorexdev/core/api";import{API as wh}from"@spacecorexdev/core/api";var hh=`"use strict";
|
|
552
553
|
(() => {
|
|
553
554
|
// node_modules/pako/dist/pako.esm.mjs
|
|
554
555
|
var Z_FIXED$1 = 4;
|
|
@@ -4894,4 +4895,4 @@ body > div > img[width="1"][height="1"] {
|
|
|
4894
4895
|
pako/dist/pako.esm.mjs:
|
|
4895
4896
|
(*! pako 2.2.0 https://github.com/nodeca/pako @license (MIT AND Zlib) *)
|
|
4896
4897
|
*/
|
|
4897
|
-
`,jr=class{constructor(){let t=URL.createObjectURL(new Blob([Mh],{type:"text/javascript"})),r=new Worker(t);return setTimeout(()=>URL.revokeObjectURL(t),0),r}};import{uiToast as Ah}from"@spacecorexdev/core/ui";var Nh=100*1024*1024,Pl=20*1024*1024,Lh=2*1024*1024,Ml=3e4,Ba=class{constructor(){pn(this,"workers",new Map);pn(this,"worker",null);pn(this,"isReady",!1);pn(this,"readyPromise");pn(this,"resolveReady");this.readyPromise=new Promise(t=>{this.resolveReady=t}),this.initWorker()}initWorker(){try{this.worker=new jr,this.worker.onmessage=t=>{let{type:r,id:o,data:a,error:s}=t.data;switch(r){case"ready":{this.isReady=!0,this.resolveReady(),console.log("[Worker] \u5DEE\u5206\u8BA1\u7B97\u6A21\u5757\u5DF2\u5C31\u7EEA");break}case"progress":{let i=this.workers.get(o);i&&i.onProgress&&i.onProgress(a.percent,a.message);break}case"success":{let i=this.workers.get(o);i&&(i.resolve({compressedPatch:a.compressedPatch,patchSize:a.patchSize}),this.workers.delete(o));break}case"error":{let i=this.workers.get(o);i&&(i.reject(new Error(s||"Worker \u8BA1\u7B97\u5931\u8D25")),this.workers.delete(o));break}case"aborted":this.workers.delete(o);break}},this.worker.onerror=t=>{console.error("[Worker] Worker \u9519\u8BEF:",t),this.terminate(),setTimeout(()=>this.initWorker(),1e3)}}catch(t){console.error("[Worker] \u521D\u59CB\u5316 Worker \u5931\u8D25:",t)}}async waitForReady(){if(!this.isReady)return this.readyPromise}async computeDelta(t,r,o){return await this.waitForReady(),new Promise((a,s)=>{if(!this.worker){s(new Error("Worker \u672A\u521D\u59CB\u5316"));return}let i=`task_${Date.now()}_${Math.random().toString(36).substr(2,9)}`,c={id:i,worker:this.worker,resolve:a,reject:s,onProgress:o};this.workers.set(i,c),this.worker.postMessage({type:"computeDelta",id:i,data:{oldBuffer:t,newBuffer:r,taskId:i}})})}terminate(){this.workers.forEach((t,r)=>{t.worker.postMessage({type:"abort",data:{taskId:r}})}),this.workers.clear(),this.worker&&(this.worker.terminate(),this.worker=null),this.isReady=!1,this.readyPromise=new Promise(t=>{this.resolveReady=t})}},Bh=new Ba,Oh=(e,t,r)=>Promise.race([e,new Promise((o,a)=>setTimeout(()=>a(new Error(r)),t))]);var Zr=e=>new Promise((t,r)=>{Vr.crypt.crc32_file(e,o=>{o===0?r(new Error("CRC32 \u8BA1\u7B97\u5931\u8D25")):t(o)})}),Sn=e=>{switch(e.toLowerCase().split(".").pop()||""){case"pptx":return"application/vnd.openxmlformats-officedocument.presentationml.presentation";case"xlsx":return"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";case"md":return"text/markdown";default:return"application/octet-stream"}},Wr=e=>{let t=e.trim();return t=Vr.string.replace(t,"/",""),t=Vr.string.replace(t,"\\",""),t},Kr=e=>{let t=e.lastIndexOf(".");return t<=0?"":e.slice(t)},Oa=e=>{let t=Kr(e);return t?e.slice(0,e.length-t.length):e},Ut=async(e,t,r,o)=>{let a=Sn(t),s=new File([e],t,{type:a}),i=await Zr(s);return e.size>Nh?new Promise((c,n)=>n("\u6587\u4EF6\u5927\u5C0F\u8D85\u8FC7100MB\uFF0C\u65E0\u6CD5\u4E0A\u4F20")):new Promise((c,n)=>{Ih.uploadSingle(s,i,r,l=>{n(l)},l=>{if(l.code===er.SUCCESS){o?.(!0);let d=typeof l.data=="string"?l.data:t;c({crc32:i,serverFileName:d})}else o?.(!1),Ah.error(l.message||"\u6587\u4EF6\u4E0A\u4F20\u5931\u8D25"),n(new Error(l.message||"\u6587\u4EF6\u4E0A\u4F20\u5931\u8D25"))})})};var $a=async(e,t,r,o,a,s,i=!1,c,n)=>{try{let l=n?.updateFile||(R=>Rh.project.file.updateFile(R)),d=n?n.updateFileDelta:(R=>Dh.updateFileDelta(R)),p=i||!d,w=r.size,h=o.size,_=Sn(t),b=new File([o],t,{type:_}),x=await Zr(b);if(p){console.log("[\u4E0A\u4F20\u4F18\u5316] \u5F3A\u5236\u5168\u91CF\u4E0A\u4F20"),a?.(.05);let{serverFileName:R}=await Ut(o,t,P=>a?.(.05+P*.95)),G=await l({fileId:e,fileName:t,fileSize:h,crc32:x,fileResourcePath:R});if(G.code!==er.SUCCESS)throw new Error(G.message||"\u66F4\u65B0\u6587\u4EF6\u5143\u6570\u636E\u5931\u8D25");return a?.(1),s?.(!0),{crc32:x,serverFileName:R}}if(w>Pl||h>Pl){console.log(`[\u4E0A\u4F20\u4F18\u5316] \u6587\u4EF6\u8FC7\u5927\uFF08\u65E7: ${(w/1024/1024).toFixed(2)}MB, \u65B0: ${(h/1024/1024).toFixed(2)}MB\uFF09\uFF0C\u8DF3\u8FC7\u5DEE\u5206\u8BA1\u7B97`),a?.(.05);let{serverFileName:R}=await Ut(o,t,P=>a?.(.05+P*.95)),G=await l({fileId:e,fileName:t,fileSize:h,crc32:x,fileResourcePath:R});if(G.code!==er.SUCCESS)throw new Error(G.message||"\u66F4\u65B0\u6587\u4EF6\u5143\u6570\u636E\u5931\u8D25");return a?.(1),s?.(!0),{crc32:x,serverFileName:R}}a?.(.02);let S=await r.arrayBuffer(),I=await o.arrayBuffer();a?.(.05);let N;try{let R=await Oh(Bh.computeDelta(S,I,(G,P)=>{let L=.05+G*.45;a?.(L),console.log(`[\u5DEE\u5206\u8BA1\u7B97] ${P} (${(G*100).toFixed(0)}%)`)}),Ml,`\u5DEE\u5206\u8BA1\u7B97\u8D85\u65F6\uFF08${Ml/1e3}\u79D2\uFF09\uFF0C\u81EA\u52A8\u56DE\u9000\u5230\u5B8C\u6574\u4E0A\u4F20`);N=new Uint8Array(R.compressedPatch),console.log(`[\u4E0A\u4F20\u4F18\u5316] \u5DEE\u5206\u8BA1\u7B97\u5B8C\u6210\uFF0C\u538B\u7F29\u540E\u5927\u5C0F: ${(R.patchSize/1024).toFixed(2)}KB`)}catch(R){console.warn("[\u4E0A\u4F20\u4F18\u5316] \u5DEE\u5206\u8BA1\u7B97\u5931\u8D25\uFF0C\u81EA\u52A8\u56DE\u9000\u5230\u5B8C\u6574\u4E0A\u4F20\u3002\u539F\u56E0:",R instanceof Error?R.message:R),a?.(.5);let{serverFileName:G}=await Ut(o,t,L=>a?.(.5+L*.5)),P=await l({fileId:e,fileName:t,fileSize:h,crc32:x,fileResourcePath:G});if(P.code!==er.SUCCESS)throw new Error(P.message||"\u66F4\u65B0\u6587\u4EF6\u5143\u6570\u636E\u5931\u8D25");return a?.(1),s?.(!0),{crc32:x,serverFileName:G}}if(a?.(.5),N.length===0)return a?.(1),console.log("[\u4E0A\u4F20\u4F18\u5316] \u6587\u4EF6\u672A\u53D8\u5316\uFF0C\u65E0\u9700\u4E0A\u4F20"),s?.(!0),{crc32:x,serverFileName:t};if(N.length>Lh){console.log(`[\u4E0A\u4F20\u4F18\u5316] \u5DEE\u5F02\u8FC7\u5927\uFF08${(N.length/1024).toFixed(2)}KB > 300KB\uFF09\uFF0C\u4F7F\u7528\u5B8C\u6574\u4E0A\u4F20`),a?.(.55);let{serverFileName:R}=await Ut(o,t,P=>a?.(.55+P*.45)),G=await l({fileId:e,fileName:t,fileSize:h,crc32:x,fileResourcePath:R});if(G.code!==er.SUCCESS)throw new Error(G.message||"\u66F4\u65B0\u6587\u4EF6\u5143\u6570\u636E\u5931\u8D25");return a?.(1),s?.(!0),{crc32:x,serverFileName:R}}a?.(.6);let W=8192,H="";for(let R=0;R<N.length;R+=W){let G=N.subarray(R,Math.min(R+W,N.length));H+=String.fromCharCode(...G)}let M=btoa(H);a?.(.7);let ee=await d({fileId:e,deltaData:M,deltaSize:N.length,newFileSize:h,crc32:x});if(console.log("[\u4E0A\u4F20\u8BCA\u65AD] updateFileDelta \u54CD\u5E94:",{code:ee.code,message:ee.message,data:ee.data}),a?.(1),ee.code!==er.SUCCESS){if(console.warn(`[\u4E0A\u4F20\u4F18\u5316] \u5DEE\u5206\u4E0A\u4F20\u5931\u8D25(code=${ee.code})\uFF0C\u56DE\u9000\u5168\u91CF\u4E0A\u4F20:`,ee.message),c&&!await c({code:ee.code,message:ee.message}))throw a?.(1),s?.(!1),new Error("\u7528\u6237\u53D6\u6D88\u4E0A\u4F20");let{serverFileName:R}=await Ut(o,t,P=>a?.(.05+P*.95)),G=await l({fileId:e,fileName:t,fileSize:h,crc32:x,fileResourcePath:R});if(G.code!==er.SUCCESS)throw new Error(G.message||"\u66F4\u65B0\u6587\u4EF6\u5143\u6570\u636E\u5931\u8D25");return a?.(1),s?.(!0),{crc32:x,serverFileName:R}}let y=ee.data||t;return console.log("[\u4E0A\u4F20\u4F18\u5316] \u5DEE\u5206\u4E0A\u4F20\u6210\u529F"),a?.(1),s?.(!0),{crc32:x,serverFileName:y}}catch(l){throw s?.(!1),console.error("\u589E\u91CF\u4E0A\u4F20\u5931\u8D25:",l),l}},Il=async(e,t,r,o,a,s,i=!1,c,n)=>{let l=new Blob([r],{type:"text/markdown"}),d=new Blob([o],{type:"text/markdown"});return $a(e,t,l,d,a,s,i,c,n)},Dl=async e=>{let t=[],r=(a,s="")=>new Promise(i=>{if(a.isFile)a.file(c=>{let n=s?`${s}/${c.name}`:c.name;t.push({file:c,relativePath:n}),i()},()=>i());else if(a.isDirectory){let c=a.createReader(),n=s?`${s}/${a.name}`:a.name;c.readEntries(d=>{if(d.length===0){i();return}Promise.all(d.map(p=>r(p,n))).then(()=>i())},()=>i())}else i()}),o=[];for(let a=0;a<e.length;a++){let i=e[a].webkitGetAsEntry?.();i&&o.push(r(i))}return await Promise.all(o),t};Vn();import{uiConfirm as Bo}from"@spacecorexdev/core/ui";import{getViewMode as Zh}from"@spacecorexdev/core/utils";import{copyToClipboard as Rl}from"@spacecorexdev/core/utils";import{uiToast as qt}from"@spacecorexdev/core/ui";var Wh="file-manager",Al=255,Oo="__contracts__",Nl=async(e,t)=>{if(t.isLocalOnly)return{result:"no-conflict"};try{let r=await e.getDetail(t.id);if(r.code!==ut.SUCCESS||!r.data)return{result:"no-conflict"};let o=new Date(t.uploadTime).getTime(),a=new Date(r.data.uploadTime).getTime();return!isNaN(o)&&!isNaN(a)&&a>o?{result:await Bo.confirm("\u5DF2\u7ECF\u6709\u5176\u4ED6\u7528\u6237\u66F4\u65B0\u4E86\u6587\u4EF6\uFF0C\u662F\u5426\u8986\u76D6\uFF1F")?"overwrite":"cancel",serverCrc32:r.data.crc32,serverFileResourcePath:r.data.fileResourcePath}:{result:"no-conflict",serverCrc32:r.data.crc32,serverFileResourcePath:r.data.fileResourcePath}}catch(r){console.warn("\u68C0\u67E5\u6587\u4EF6\u66F4\u65B0\u51B2\u7A81\u5931\u8D25:",r)}return{result:"no-conflict"}},Ll=async(e,t)=>{try{let r=await e.getDetail(t);if(r.code===ut.SUCCESS&&r.data)return{uploadTime:r.data.uploadTime,updateTime:r.data.updateTime}}catch(r){console.warn("\u83B7\u53D6\u6700\u65B0\u6587\u4EF6\u5143\u6570\u636E\u5931\u8D25:",r)}return null},Kh={pptx:".pptx",md:".md",xlsx:".xlsx",docx:".docx",rdoc:".rdoc"};async function Gh(e,t){let r=[];for(let o of e){let a=o.status==="SIGNED",s=o.tag||"\u672A\u5206\u7C7B",i=`contract-folder-${o.id}`,c=`/${Oo}/`;r.push({id:i,isSecure:!1,projectId:t,parentId:null,fileName:o.id,filePath:c,fileType:"folder",fileSize:0,crc32:0,fileResourcePath:"",uploaderName:"",uploadTime:new Date(o.updateTime),createTime:new Date(o.updateTime),updateTime:new Date(o.updateTime),createBy:o.createBy,updateBy:o.createBy,isContractSubfolder:!0,contractSigned:a,contractTag:s,descs:o.name||"\u672A\u547D\u540D\u5408\u540C"});let n=!1;if(!o.fileResourcePaths)n=!1;else{let l=[];try{l=JSON.parse(o.fileResourcePaths)}catch{n=!1}if(Array.isArray(l)&&l.length>0){n=!0;for(let d of l)d&&r.push({id:`contract-file-${o.id}-${d}`,isSecure:!1,projectId:t,parentId:i,fileName:d,filePath:`${c}${o.id}/`,fileType:Sn(d),fileSize:0,crc32:0,fileResourcePath:`/private/projects/${t}/contracts/${o.id}/seal/${d}`,uploaderName:"\u5408\u540C",uploadTime:new Date(o.updateTime),createTime:new Date(o.updateTime),updateTime:new Date(o.updateTime),createBy:o.createBy,updateBy:o.createBy,isContractLink:!0,contractSigned:a,contractTag:s,descs:o.name})}else n=!1}if(!a&&!n)try{let l=await zl.project.contract.getVersionList({contractId:o.id});if(l.code===ut.SUCCESS&&l.data?.length){let d=l.data.reduce((p,w)=>(w.versionNumber??0)>(p.versionNumber??0)?w:p);d.fileResourcePath&&d.fileName&&r.push({id:`contract-file-${o.id}-v${d.versionNumber}-${d.fileName}`,isSecure:!1,projectId:t,parentId:i,fileName:d.fileName,filePath:`${c}${o.id}/`,fileType:Sn(d.fileName),fileSize:d.fileSize||0,crc32:0,fileResourcePath:d.fileResourcePath,uploaderName:"\u5408\u540C",uploadTime:new Date(d.createTime||o.updateTime),createTime:new Date(d.createTime||o.updateTime),updateTime:new Date(d.createTime||o.updateTime),createBy:d.createBy||o.createBy,updateBy:d.createBy||o.createBy,isContractLink:!0,contractSigned:!1,contractTag:s,descs:o.name})}}catch(l){console.warn("[\u5408\u540C\u6587\u4EF6\u5939] \u52A0\u8F7D\u672A\u7B7E\u7EA6\u5408\u540C\u7248\u672C\u5931\u8D25:",o.id,l)}}return r}function Xh(e){return{id:Io,isSecure:!1,projectId:e,parentId:null,fileName:Oo,filePath:"/",fileType:"folder",fileSize:0,crc32:0,fileResourcePath:"",uploaderName:"",uploadTime:new Date,createTime:new Date,updateTime:new Date,createBy:"",updateBy:"",isVirtualContractFolder:!0}}function Bl(e,t){if(t!=="fileType"||!e.some(n=>n.isContractSubfolder||n.isContractLink))return e;let o=`${`/${Oo}`}/`,a=new Map;e.forEach(n=>{n.isContractSubfolder&&a.set(n.fileName,n.contractTag||"\u672A\u5206\u7C7B")});let s=[],i=new Map,c=(n,l,d)=>{let p=`contract-tag-${n}`,w=i.get(n);return w?new Date(d).getTime()>new Date(w.uploadTime).getTime()&&(w.uploadTime=d,w.updateTime=d):(w={id:p,isSecure:!1,projectId:l,parentId:null,fileName:n,filePath:o,fileType:"folder",fileSize:0,crc32:0,fileResourcePath:"",uploaderName:"",uploadTime:d,createTime:d,updateTime:d,createBy:"",updateBy:"",isContractTagFolder:!0},i.set(n,w),s.push(w)),p};for(let n of e)if(n.isContractSubfolder){let l=n.contractTag||"\u672A\u5206\u7C7B",d=c(l,n.projectId,new Date(n.uploadTime));s.push({...n,filePath:`${o}${l}/`,parentId:d})}else if(n.filePath&&n.filePath.startsWith(o)){let l=n.filePath.substring(o.length),d=l.split("/")[0],p=n.contractTag||a.get(d);p?(c(p,n.projectId,new Date(n.uploadTime)),s.push({...n,filePath:`${o}${p}/${l}`})):s.push(n)}else s.push(n);return s}function Ol(e){let t=new Date(e.updatedAt);return{id:e.localId,localId:e.localId,isLocalOnly:e.isLocalOnly,hasUnsyncedChanges:e.hasUnsyncedChanges,isSecure:!1,projectId:e.projectId,parentId:e.parentId,fileName:e.fileName,filePath:"/",fileType:e.fileType,fileSize:e.fileSize,crc32:0,hasLocalCache:!0,fileResourcePath:"",uploaderName:"\u6211",uploadTime:t,createTime:new Date(e.createdAt),updateTime:t,createBy:e.userId,updateBy:e.userId}}function qh(e){let t={current:null};$l.info({title:"\u8BF7\u624B\u52A8\u590D\u5236\u94FE\u63A5",content:On.createElement(Uh,{value:e,readOnly:!0,ref:r=>{t.current=r},onFocus:r=>r.target.select()}),okText:"\u5173\u95ED",width:480,afterClose:()=>{},onOk:()=>{}}),setTimeout(()=>{t.current?.focus?.(),t.current?.select?.()},100)}var Hl=(e,t,r,o,a)=>{let[s,i]=Hh(),c=tr(0),n=tr(o),l=tr(r),d=tr(()=>{}),p=tr(new Map),w=tr([]);n.current=o,l.current=r;let h=a?.api||Jr,b=(a?.features||{}).contracts!==!1,x=tr(h);x.current=h,Lo(()=>{if(w.current.length===0)return;let u=Ln(Bl(w.current,l.current.sortBy));n.current.setFileTreeData(ct(u)),n.current.setFiles(u)},[r.sortBy]),Lo(()=>{let u=p.current;return()=>{u.forEach(E=>clearInterval(E)),u.clear()}},[]),Lo(()=>{let u=()=>n.current.setIsOnline(!0),E=()=>n.current.setIsOnline(!1);return window.addEventListener("online",u),window.addEventListener("offline",E),n.current.setIsOnline(typeof navigator<"u"?navigator.onLine:!0),()=>{window.removeEventListener("online",u),window.removeEventListener("offline",E)}},[]);let S=ue(async()=>{n.current.setLoading(!0);try{let E=(await Bn.getUserInfo({forceRefresh:!1}))?.id||"local-user",F=[];try{F=await us(E,e)}catch(m){console.warn("\u52A0\u8F7D\u672C\u5730\u6587\u4EF6\u5217\u8868\u5931\u8D25:",m)}let T=[],$=typeof navigator<"u"?navigator.onLine:!0;if($){let m=await h.listFiles(e);m.code===ut.SUCCESS&&m.data&&(T=m.data),jn.saveFileMetaBatch(e,T).catch(g=>console.warn("\u6301\u4E45\u5316\u6587\u4EF6\u5143\u6570\u636E\u7F13\u5B58\u5931\u8D25:",g))}else{let m=await jn.listFileMetaByProject(e),g=F.filter(U=>!U.isLocalOnly&&U.serverFileId&&U.originalServerFile).map(U=>U.originalServerFile),C=new Set([...m.map(U=>U.id),...g.map(U=>U.id)]),k=(await He.getCacheList()).map(U=>U.fileId).filter(U=>!C.has(U)),V=[];for(let U of k){let ve=await jn.getFileMeta(U);ve&&ve.projectId===e&&V.push(ve)}let D=new Map;for(let U of m)D.set(U.id,U);for(let U of g)D.has(U.id)||D.set(U.id,U);for(let U of V)D.has(U.id)||D.set(U.id,U);T=Array.from(D.values())}let B=F.filter(m=>m.isLocalOnly).map(m=>{let g=Ol(m),C=m.parentId?T.find(k=>k.id===m.parentId):void 0;return{...g,filePath:C?`${C.filePath}${C.fileName}/`:"/"}}),ce=new Set(F.filter(m=>!m.isLocalOnly&&m.serverFileId&&m.hasUnsyncedChanges).map(m=>m.serverFileId)),se={};for(let m of F)m.serverFileId&&(se[m.serverFileId]=m);let X=await Promise.all(T.map(async m=>{let g=se[m.id],C=m.fileType!=="folder"?!!g||await He.hasCache(m.id):!1;return{...m,hasUnsyncedChanges:ce.has(m.id),localId:g?.localId,hasLocalCache:C}})),oe=e===E,me=[],Te=null;if(b&&!oe&&t!=="viewer"){let m=X.find(g=>g.fileType==="folder"&&g.fileName===Oo&&g.filePath==="/");if(m)m.isVirtualContractFolder=!0,Te=m.id;else{let g=Xh(e);X.push(g),Te=g.id}if($&&Te)try{let g=await zl.project.contract.getContractList({projectId:e,pageNum:1,pageSize:1e4});g.code===ut.SUCCESS&&g.data?.list?.length&&(me=await Gh(g.data.list,e))}catch(g){console.warn("[\u5408\u540C\u6587\u4EF6\u5939] \u52A0\u8F7D\u5408\u540C\u5217\u8868\u5931\u8D25:",g)}}let De=Mo([...X,...B,...me]);w.current=De;let f=Ln(Bl(De,l.current.sortBy));n.current.setFileTreeData(ct(f)),n.current.setFiles(f)}catch(u){console.error("\u52A0\u8F7D\u6587\u4EF6\u5217\u8868\u5931\u8D25:",u),Se.error("\u52A0\u8F7D\u6587\u4EF6\u5217\u8868\u5931\u8D25")}finally{n.current.setLoading(!1)}},[e,t,h,b]),I=ue(async u=>{try{let{files:E,selectedFolderId:F}=l.current,T=E.find(X=>X.id===F),$=u[0],{crc32:B,serverFileName:ce}=await Ut($,$.name,()=>{}),se=await h.addFile(e,{fileName:$.name,filePath:T?`${T.filePath}${T.fileName}/`:"/",fileType:$.type,fileSize:$.size,crc32:B,fileResourcePath:ce});se.code===ut.SUCCESS&&(await He.saveToCache(se.data.fileId,$,B,$.size),S())}catch{Se.error("\u6587\u4EF6\u4E0A\u4F20\u5931\u8D25")}},[e,h,S]),N=ue(u=>{if(u.fileType==="folder")return;let E=typeof navigator<"u"?navigator.onLine:!0;if(u.isLocalOnly||u.hasUnsyncedChanges||!E&&u.localId){n.current.setEditingFile(u),n.current.setEditorVisible(!0),n.current.setPreviewLocalId(u.localId||null),n.current.setPreviewIsLocalOnly(!!u.isLocalOnly),n.current.setPreviewHasUnsyncedChanges(!!u.hasUnsyncedChanges),n.current.setPreviewFileName(u.fileName);return}n.current.setPreviewFileName(u.fileName),n.current.setPreviewUrl(u.fileResourcePath),n.current.setPreviewCrc32(u.isContractLink?void 0:u.crc32),n.current.setPreviewLocalId(null),n.current.setPreviewIsLocalOnly(!1),n.current.setPreviewHasUnsyncedChanges(!1);let F=l.current,T=F.files.find($=>$.id===u.id);if(T&&T.crc32!==u.crc32){let $=F.files.map(B=>B.id===u.id?{...B,crc32:u.crc32}:B);n.current.setFiles($),n.current.setFileTreeData(ct($))}n.current.setPreviewVisible(!0),n.current.setPreviewingFile(u),i($=>{let B=new URLSearchParams($);return B.set("fileid",u.id),B},{replace:!0})},[i]),W=ue(async u=>{if(u.localId)try{let E=await Mn(u.localId);if(E&&E.content){let F=E.content,T;typeof F=="string"?T=new Blob([F],{type:"text/markdown"}):T=new Blob([F],{type:Sn(u.fileName)});let $=URL.createObjectURL(T),B=document.createElement("a");B.href=$,B.download=u.fileName,document.body.appendChild(B),B.click(),document.body.removeChild(B),URL.revokeObjectURL($),qt.success("\u6587\u4EF6\u5DF2\u4E0B\u8F7D\uFF0C\u8BF7\u67E5\u770B\u6D4F\u89C8\u5668\u7684\u4E0B\u8F7D\u6587\u4EF6\u5939");return}}catch(E){console.warn("\u4E0B\u8F7D\u672C\u5730\u6587\u4EF6\u5931\u8D25\uFF0C\u56DE\u9000\u5230\u670D\u52A1\u5668\u4E0B\u8F7D:",E)}if(u.isLocalOnly){qt.error("\u672C\u5730\u6587\u4EF6\u5185\u5BB9\u4E0D\u53EF\u7528");return}Xt.downloadFile(u.fileResourcePath,u.fileName,u.id,u.crc32).then(()=>{d.current(u.id)}).catch(()=>{})},[]),H=ue(async u=>{if(u.fileType!=="folder")return;let E=h.downloadFolder,F=h.getFolderDownloadStatus;if(!E||!F){qt.error("\u5F53\u524D\u573A\u666F\u4E0D\u652F\u6301\u6587\u4EF6\u5939\u4E0B\u8F7D");return}if(!l.current.isManager){qt.error("\u65E0\u6743\u4E0B\u8F7D\u6B64\u6587\u4EF6\u5939");return}n.current.setContextMenuVisible(!1),n.current.setContextMenuRecord(null);try{let T=await E(e,u.filePath||"/",u.fileName);if(T.code!==ut.SUCCESS||!T.data||!T.data.jobId){qt.error(T.message||"\u53D1\u8D77\u6587\u4EF6\u5939\u6253\u5305\u5931\u8D25");return}let $=T.data.jobId,B=`${u.fileName.replace(/[\\/:*?"<>|]/g,"_")}.zip`;qt.info(`\u6B63\u5728\u6253\u5305\u6587\u4EF6\u5939\u300C${u.fileName}\u300D\uFF0C\u5B8C\u6210\u540E\u5C06\u81EA\u52A8\u4E0B\u8F7D\uFF0C\u4E5F\u53EF\u5728\u901A\u77E5\u4E2D\u5FC3\u67E5\u770B`);let ce=0,se=setInterval(async()=>{if(ce+=1,ce>300){clearInterval(se),p.current.delete($),qt.info("\u6253\u5305\u4ECD\u5728\u8FDB\u884C\uFF0C\u5B8C\u6210\u540E\u53EF\u5728\u901A\u77E5\u4E2D\u5FC3\u67E5\u770B\u4E0B\u8F7D\u5730\u5740");return}try{let X=await F($);if(X.code!==ut.SUCCESS){clearInterval(se),p.current.delete($),qt.error(X.message||"\u6253\u5305\u4EFB\u52A1\u4E0D\u5B58\u5728\u6216\u5DF2\u8FC7\u671F");return}if(!X.data)return;let oe=X.data;if(oe.status==="pending")return;clearInterval(se),p.current.delete($),oe.status==="success"&&oe.url?(qt.success("\u6587\u4EF6\u5939\u6253\u5305\u5B8C\u6210\uFF0C\u5373\u5C06\u5F00\u59CB\u4E0B\u8F7D"),Xt.downloadFile(oe.url,oe.fileName||B).catch(()=>{})):qt.error(oe.message||"\u6587\u4EF6\u5939\u6253\u5305\u5931\u8D25")}catch(X){console.warn("\u67E5\u8BE2\u6587\u4EF6\u5939\u6253\u5305\u72B6\u6001\u5931\u8D25:",X)}},2e3);p.current.set($,se)}catch(T){console.error("\u53D1\u8D77\u6587\u4EF6\u5939\u6253\u5305\u5931\u8D25:",T),qt.error("\u53D1\u8D77\u6587\u4EF6\u5939\u6253\u5305\u5931\u8D25")}},[e,h]),M=ue(u=>{n.current.setShareToWechatFile(u),n.current.setShareToWechatVisible(!0)},[]),ee=ue(async u=>{let E=`${window.location.origin}/filepreview?fileid=${u.id}&path=${encodeURIComponent(u.fileResourcePath)}&name=${encodeURIComponent(u.fileName)}`;try{await Rl(E),Se.success("\u94FE\u63A5\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F")}catch{qh(E)}},[]),y=ue(u=>{let E;if(u.isContractSubfolder?E=u.id.match(/^contract-folder-([0-9a-f]{24})$/)?.[1]:E=u.id.match(/^contract-file-([0-9a-f]{24})-/)?.[1],!E){Se.warning("\u65E0\u6CD5\u83B7\u53D6\u5408\u540C\u4FE1\u606F");return}i(F=>{let T=new URLSearchParams(F);return T.set("tab","contracts"),T.set("contractId",E),T},{replace:!0})},[i]),R=ue(u=>{i(E=>{let F=new URLSearchParams(E);return F.set("tab","contracts"),F.set("createContract","1"),F.delete("contractId"),F},{replace:!0})},[i]),G=ue(async u=>{try{let E=await new Promise(T=>{let $={current:30},B=[{days:7,label:"7\u5929"},{days:30,label:"30\u5929"},{days:90,label:"90\u5929"},{days:365,label:"1\u5E74"}],ce=()=>{let[X,oe]=zh("30");return Lo(()=>{$.current=parseInt(X)},[X]),On.createElement("div",{className:"flex flex-col gap-4"},[On.createElement("div",null,"\u9009\u62E9\u6709\u6548\u671F"),On.createElement("div",{className:"flex gap-2"},B.map(me=>On.createElement("label",{key:me.days,className:`flex items-center gap-1 px-3 py-2 rounded cursor-pointer border cursor-pointer ${X===String(me.days)?"border-blue-500 bg-blue-50":"border-gray-300 hover:border-gray-400"}`,onClick:()=>oe(String(me.days))},[On.createElement("input",{type:"radio",name:"expireTime",value:me.days,checked:X===String(me.days),onChange:()=>oe(String(me.days)),className:"hidden"}),On.createElement("span",null,me.label)])))])},se=$l.confirm({className:"ant-modal-nofull",title:"\u9009\u62E9\u4E34\u65F6\u94FE\u63A5\u6709\u6548\u671F",content:On.createElement(ce),onOk:()=>{let X=$.current;T({seconds:X*24*60*60,label:B.find(oe=>oe.days===X)?.label||`${X}\u5929`})},onCancel:()=>{T({seconds:0,label:""})},okText:"\u751F\u6210\u94FE\u63A5",cancelText:"\u53D6\u6D88",width:400});return()=>se.destroy()});if(!E.seconds||!h.generateTempAccessToken)return;let F=await h.generateTempAccessToken(u.id,E.seconds);if(F.code===ut.SUCCESS&&F.data){let T=F.data,$=`${window.location.origin}/filepreview?fileid=${u.id}&path=${encodeURIComponent(u.fileResourcePath)}&name=${encodeURIComponent(u.fileName||"")}&token=${encodeURIComponent(T)}`;if(u.fileType==="folder"){let B=new URLSearchParams({token:T,folderId:u.id,name:u.fileName||"",path:`${u.filePath}${u.fileName}/`});$=`${window.location.origin}/fileshare?${B.toString()}`}await Rl($),Se.success(`\u4E34\u65F6\u94FE\u63A5\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F\uFF08\u6709\u6548\u671F ${E.label}\uFF09`)}else Se.error(F.message||"\u751F\u6210\u4E34\u65F6\u94FE\u63A5\u5931\u8D25")}catch(E){console.error("\u751F\u6210\u4E34\u65F6\u94FE\u63A5\u5931\u8D25:",E),Se.error("\u751F\u6210\u4E34\u65F6\u94FE\u63A5\u5931\u8D25")}},[h]),P=ue(async u=>{try{let{files:E}=l.current,F=E.find(B=>B.id===u);if(F?.isContractLink||F?.isVirtualContractFolder||F?.isContractSubfolder||F?.isContractTagFolder){Se.warning("\u5408\u540C\u9644\u4EF6\u4E0D\u652F\u6301\u5220\u9664");return}if(!await Bo.confirm("\u786E\u8BA4\u5220\u9664\u6587\u4EF6\u5417\uFF1F"))return;if(F?.isLocalOnly){F.localId&&await In(F.localId);let B=E.filter(ce=>ce.id!==u);n.current.setFiles(B),n.current.setFileTreeData(ct(B)),Se.success("\u6587\u4EF6\u5220\u9664\u6210\u529F");return}if((await h.removeFile(u)).code===ut.SUCCESS){if(F?.localId)try{await In(F.localId)}catch{}Se.success("\u6587\u4EF6\u5220\u9664\u6210\u529F"),S()}}catch{Se.error("\u6587\u4EF6\u5220\u9664\u5931\u8D25")}},[h,S]),L=ue(u=>l.current.expandedRowKeys.includes(u),[]),j=u=>!!u.isContractLink||!!u.isVirtualContractFolder||!!u.isContractSubfolder||!!u.isContractTagFolder,O=ue(async(u,E)=>{let{files:F}=l.current,$=Array.from(new Set(u)).map(Te=>F.find(De=>De.id===Te)).filter(Te=>!!Te),B=$.filter(Te=>{if(j(Te)||Te.id===E)return!1;if(E){if(Po(Te,F).includes(E))return!1}else if(Te.filePath==="/")return!1;return!0}),ce=B.filter(Te=>!B.some(De=>De.id!==Te.id&&De.fileType==="folder"&&Po(De,F).includes(Te.id)));if(ce.length===0){let Te=$.some(j),De=!!E&&$.some(f=>Po(f,F).includes(E));Te?Se.warning("\u5408\u540C\u9644\u4EF6\u4E0D\u652F\u6301\u79FB\u52A8"):De&&Se.warning("\u65E0\u6CD5\u5C06\u6587\u4EF6\u5939\u79FB\u52A8\u5230\u5176\u5B50\u9879\u4E2D");return}let se=E?F.find(Te=>Te.id===E):void 0,X=se?se.filePath+se.fileName+"/":"/",oe=0,me=0;for(let Te of ce)try{(await h.moveFile(e,{oldFileName:Te.fileName,oldFilePath:Te.filePath,newFileName:Te.fileName,newFilePath:X})).code===ut.SUCCESS?oe++:me++}catch{me++}oe>0&&(n.current.setSelectedIds([]),S()),me===0?Se.success(ce.length>1?`\u5DF2\u79FB\u52A8 ${oe} \u9879`:"\u79FB\u52A8\u6210\u529F"):oe>0?Se.warning(`\u5DF2\u79FB\u52A8 ${oe} \u9879\uFF0C${me} \u9879\u79FB\u52A8\u5931\u8D25`):Se.error("\u79FB\u52A8\u5931\u8D25")},[e,h,S]),z=ue((u,E)=>{O([u],E)},[O]),q=ue(u=>{n.current.setRenameFileId(u.id),n.current.setRenameFileName(u.fileName),n.current.setRenameVisible(!0)},[]),v=ue(u=>{n.current.setDescsFileId(u.id),n.current.setDescsValue(u.descs||""),n.current.setDescsVisible(!0),n.current.setContextMenuVisible(!1),n.current.setContextMenuRecord(null)},[]),ye=ue(async(u,E)=>{if(u)try{let F=await h.updateFileDescs({fileId:u,descs:E.trim().slice(0,Al)});F.code===ut.SUCCESS?(Se.success("\u5907\u6CE8\u5DF2\u4FDD\u5B58"),n.current.setDescsVisible(!1),n.current.setDescsFileId(null),n.current.setDescsValue(""),S()):Se.error(F.message||"\u5907\u6CE8\u4FDD\u5B58\u5931\u8D25")}catch{Se.error("\u5907\u6CE8\u4FDD\u5B58\u5931\u8D25")}},[h,S]),ne=ue(async(u,E)=>{let{files:F}=l.current,T=F.find(B=>B.id===u);if(!T)return;if(T.isContractLink||T.isVirtualContractFolder||T.isContractSubfolder||T.isContractTagFolder){Se.warning("\u5408\u540C\u9644\u4EF6\u4E0D\u652F\u6301\u91CD\u547D\u540D"),n.current.setRenameVisible(!1);return}let $=Wr(E);if(T.fileType!=="folder"){let B=Kr(T.fileName);Kr($).toLowerCase()!==B.toLowerCase()&&Se.warning(B?`\u6269\u5C55\u540D\u4E0D\u5141\u8BB8\u4FEE\u6539\uFF0C\u5DF2\u4FDD\u7559\u539F\u6269\u5C55\u540D ${B}`:"\u6269\u5C55\u540D\u4E0D\u5141\u8BB8\u4FEE\u6539\uFF0C\u5DF2\u53BB\u9664\u8F93\u5165\u7684\u6269\u5C55\u540D"),$=Oa($)+B}if($!==E&&n.current.setRenameFileName($),T.fileName!==$)try{(await h.moveFile(e,{oldFileName:T.fileName,oldFilePath:T.filePath,newFileName:$,newFilePath:T.filePath})).code===ut.SUCCESS&&(Se.success("\u91CD\u547D\u540D\u6210\u529F"),n.current.setRenameVisible(!1),S())}catch{Se.error("\u91CD\u547D\u540D\u5931\u8D25")}},[e,h,S]),A=ue(()=>{n.current.setIsEncryptedFolder(!1),n.current.setCreateFolderVisible(!0),n.current.setNewFolderName(""),n.current.setNewFolderDescs("")},[]),re=ue(async(u,E)=>{try{let T=(await Bn.getUserInfo({forceRefresh:!1}))?.id||"local-user",{selectedFolderId:$,files:B}=l.current,ce=B.find(me=>me.id===$),se=await ds({userId:T,projectId:e,parentId:$,fileName:u,fileType:E,content:""}),X={...Ol(se),filePath:ce?`${ce.filePath}${ce.fileName}/`:"/"},oe=Ln([...B,X]);n.current.setFiles(oe),n.current.setFileTreeData(ct(oe)),n.current.setEditingFile(X),n.current.setEditorVisible(!0),n.current.setPreviewLocalId(se.localId),n.current.setPreviewIsLocalOnly(!0),n.current.setPreviewHasUnsyncedChanges(se.hasUnsyncedChanges),n.current.setPreviewFileName(u)}catch(F){console.error("\u521B\u5EFA\u672C\u5730\u6587\u4EF6\u5931\u8D25:",F),Se.error("\u521B\u5EFA\u672C\u5730\u6587\u4EF6\u5931\u8D25")}},[e]),_e=ue((u,E)=>{n.current.setCreatingFileName(u),n.current.setCreatingFileType(E),n.current.setCreatorVisible(!0)},[]),le=ue((u,E)=>{n.current.setNewFileName(u),n.current.setPendingFileType(E),n.current.setCreateFileVisible(!0)},[]),$e=ue((u,E)=>{if(!E)return;let F=Wr(u);if(!F){Se.warning("\u8BF7\u8F93\u5165\u6587\u4EF6\u540D\u79F0");return}let T=Kh[E];Kr(F).toLowerCase()!==T.toLowerCase()&&(F=Oa(F)+T,n.current.setNewFileName(F)),n.current.setCreateFileVisible(!1),re(F,E)},[re]),Y=ue(()=>{le("\u65B0\u5EFA\u6F14\u793A\u6587\u7A3F.pptx","pptx")},[le]),Z=ue(()=>{le("\u65B0\u5EFA\u6587\u6863.md","md")},[le]),xe=ue(()=>{le("\u65B0\u5EFA\u8868\u683C.xlsx","xlsx")},[le]),Q=ue(()=>{le("\u65B0\u5EFA\u6587\u6863.docx","docx")},[le]),ke=ue(()=>{le("\u65B0\u5EFA\u6587\u6863.rdoc","rdoc")},[le]),Ee=ue(async(u,E,F)=>{if(!u.trim()){Se.warning("\u8BF7\u8F93\u5165\u6587\u4EF6\u5939\u540D\u79F0");return}let T=Wr(u);T!==u&&n.current.setNewFolderName(T);try{let{files:$,selectedFolderId:B}=l.current,ce=$.find(se=>se.id===B);await h.addFile(e,{fileName:T,filePath:ce?`${ce.filePath}${ce.fileName}/`:"/",fileType:"folder",fileSize:0,fileResourcePath:"",isSecure:F,descs:E.trim().slice(0,Al)}),S(),n.current.setCreateFolderVisible(!1)}catch{Se.error("\u6587\u4EF6\u5939\u521B\u5EFA\u5931\u8D25")}},[e,h,S]),Be=ue(async u=>{let E=u.fileName.toLowerCase().split(".").pop()||"";if(!["md","xlsx","docx","rdoc"].includes(E)){Se.error("\u4E0D\u652F\u6301\u7F16\u8F91\u8BE5\u6587\u4EF6\u7C7B\u578B");return}let F=typeof navigator<"u"?navigator.onLine:!0;if(u.localId){n.current.setEditingFile(u),n.current.setEditorVisible(!0),n.current.setPreviewLocalId(u.localId),n.current.setPreviewIsLocalOnly(!!u.isLocalOnly),n.current.setPreviewHasUnsyncedChanges(!!u.hasUnsyncedChanges),n.current.setPreviewFileName(u.fileName);return}if(!F)try{let $=(await Bn.getUserInfo({forceRefresh:!1}))?.id||"local-user",B="",ce=await He.getCachedContent(u.id);ce&&(B=await ce.content.arrayBuffer());let X=await jo($,u.id)??await sr({userId:$,projectId:e,parentId:u.parentId??null,fileName:u.fileName,fileType:E==="docx"?"docx":E==="xlsx"?"xlsx":E==="pptx"?"pptx":E==="md"?"md":"markdown",serverFileId:u.id,originalServerFile:u,content:B});n.current.setEditingFile({...u,localId:X.localId,isLocalOnly:!1,hasUnsyncedChanges:!0}),n.current.setEditorVisible(!0),n.current.setPreviewLocalId(X.localId),n.current.setPreviewIsLocalOnly(!1),n.current.setPreviewHasUnsyncedChanges(!0),n.current.setPreviewFileName(u.fileName);let oe=l.current.files.map(me=>me.id===u.id?{...me,localId:X.localId,hasUnsyncedChanges:!0}:me);n.current.setFiles(oe),n.current.setFileTreeData(ct(oe));return}catch(T){console.warn("\u521B\u5EFA\u79BB\u7EBF\u7F16\u8F91\u5FEB\u7167\u5931\u8D25:",T)}n.current.setEditingFile(u),n.current.setEditorVisible(!0),n.current.setPreviewLocalId(u.localId||null),n.current.setPreviewIsLocalOnly(!1),n.current.setPreviewHasUnsyncedChanges(!!u.hasUnsyncedChanges),n.current.setPreviewFileName(u.fileName),n.current.setPreviewCrc32(u.crc32)},[e]),be=ue(async(u,E,F,T=!0)=>{try{let $=await E.arrayBuffer(),B=u,ce=l.current;if(B){if(!await Uo(B,$,F,T)){let oe=ce.editingFile;if(!oe||oe.isLocalOnly||!oe.id)return;let me=F.split(".").pop()?.toLowerCase()||"",De=(await Bn.getUserInfo({forceRefresh:!1}))?.id||"local-user";B=(await sr({userId:De,projectId:e,parentId:oe.parentId??null,fileName:F,fileType:me==="docx"?"docx":me==="xlsx"?"xlsx":me==="pptx"?"pptx":me==="md"?"md":"markdown",serverFileId:oe.id,originalServerFile:oe,content:$,markUnsynced:T})).localId}}else{let X=ce.editingFile;if(!X||X.isLocalOnly||!X.id)return;let oe=F.split(".").pop()?.toLowerCase()||"",Te=(await Bn.getUserInfo({forceRefresh:!1}))?.id||"local-user",De;try{let m=await He.getCachedContent(X.id);m&&(De=await m.content.arrayBuffer())}catch(m){console.warn("\u83B7\u53D6\u539F\u59CB\u670D\u52A1\u5668\u7F13\u5B58\u5931\u8D25:",m)}B=(await sr({userId:Te,projectId:e,parentId:X.parentId??null,fileName:F,fileType:oe==="docx"?"docx":oe==="xlsx"?"xlsx":oe==="pptx"?"pptx":oe==="md"?"md":"markdown",serverFileId:X.id,originalServerFile:X,content:$,originalContent:De,markUnsynced:T})).localId}let se=l.current.files.map(X=>ce.editingFile&&X.id===ce.editingFile.id?{...X,hasUnsyncedChanges:T?!0:X.hasUnsyncedChanges,localId:B,fileSize:$.byteLength}:X.localId===B?{...X,hasUnsyncedChanges:T?!0:X.hasUnsyncedChanges,fileSize:$.byteLength}:X);n.current.setFiles(se),n.current.setFileTreeData(ct(se)),T&&n.current.setPreviewHasUnsyncedChanges(!0),B&&n.current.setPreviewLocalId(B),ce.editingFile&&n.current.setEditingFile({...ce.editingFile,hasUnsyncedChanges:T?!0:ce.editingFile.hasUnsyncedChanges,localId:B??ce.editingFile.localId})}catch($){console.error("\u4FDD\u5B58\u672C\u5730\u6587\u4EF6\u5931\u8D25:",$)}},[e]),pe=ue(async(u,E,F,T=!0)=>{try{let $=u,B=l.current;if($){if(!await Uo($,E,F,T)){let X=B.editingFile;if(!X||X.isLocalOnly||!X.id)return;let me=(await Bn.getUserInfo({forceRefresh:!1}))?.id||"local-user";$=(await sr({userId:me,projectId:e,parentId:X.parentId??null,fileName:F,fileType:"md",serverFileId:X.id,originalServerFile:X,content:E,markUnsynced:T})).localId}}else{let se=B.editingFile;if(!se||se.isLocalOnly||!se.id)return;let oe=(await Bn.getUserInfo({forceRefresh:!1}))?.id||"local-user",me;try{let De=await He.getCachedContent(se.id);De&&(me=await De.content.text())}catch(De){console.warn("\u83B7\u53D6\u539F\u59CB\u670D\u52A1\u5668\u7F13\u5B58\u5931\u8D25:",De)}$=(await sr({userId:oe,projectId:e,parentId:se.parentId??null,fileName:F,fileType:"md",serverFileId:se.id,originalServerFile:se,content:E,originalContent:me,markUnsynced:T})).localId}let ce=l.current.files.map(se=>B.editingFile&&se.id===B.editingFile.id?{...se,hasUnsyncedChanges:T?!0:se.hasUnsyncedChanges,localId:$,fileSize:E.length}:se.localId===$?{...se,hasUnsyncedChanges:T?!0:se.hasUnsyncedChanges,fileSize:E.length}:se);n.current.setFiles(ce),n.current.setFileTreeData(ct(ce)),T&&n.current.setPreviewHasUnsyncedChanges(!0),$&&n.current.setPreviewLocalId($),B.editingFile&&n.current.setEditingFile({...B.editingFile,hasUnsyncedChanges:T?!0:B.editingFile.hasUnsyncedChanges,localId:$??B.editingFile.localId})}catch($){console.error("\u4FDD\u5B58\u672C\u5730 Markdown \u5931\u8D25:",$)}},[e]),K=ue(async(u,E,F,T)=>{if(u)try{let $=!!u.isLocalOnly,B=u.localId,ce=u.id;if($){let{files:f,selectedFolderId:m}=l.current,g=f.find(U=>U.id===m),C=g?`${g.filePath}${g.fileName}/`:"/",{crc32:k,serverFileName:V}=await Ut(F,T,U=>n.current.setUploadPercent(U),U=>n.current.setUploadSuccess(U)),D=await h.addFile(e,{fileName:T,filePath:C,fileType:Sn(T),fileSize:F.size,crc32:k,fileResourcePath:V});if(D.code===ut.SUCCESS&&D.data){if(ce=D.data.fileId,B)try{await xr(B,ce),await In(B)}catch(U){console.warn("\u6807\u8BB0\u672C\u5730\u5DF2\u540C\u6B65\u5931\u8D25:",U)}await He.saveToCache(ce,F,k,F.size),n.current.setUploadPercent(void 0),Se.success("\u6587\u4EF6\u4E0A\u4F20\u6210\u529F"),S()}else n.current.setUploadPercent(void 0),Se.error(D.message||"\u4E0A\u4F20\u5931\u8D25");return}let se=await Nl(h,u);if(se.result==="cancel"){n.current.setUploadPercent(void 0);return}let X=E;if(B&&!se.result.includes("overwrite")){try{let f=await He.getCachedContent(u.id);if(f&&se.serverCrc32!==void 0){let m=await Zr(new File([f.content],T,{type:Sn(T)}));if(m===se.serverCrc32){let g=await f.content.arrayBuffer();X=new Blob([g])}else console.warn("[\u4E0A\u4F20\u8BCA\u65AD] CacheFileContent CRC \u4E0D\u5339\u914D\u670D\u52A1\u5668, cached:",m,"server:",se.serverCrc32)}}catch(f){console.warn("[\u4E0A\u4F20\u8BCA\u65AD] CacheFileContent \u83B7\u53D6\u5931\u8D25:",f)}if(X===E)try{let f=await Mn(B);if(f?.originalContent){let m=typeof f.originalContent=="string"?new TextEncoder().encode(f.originalContent).buffer:f.originalContent;X=new Blob([m])}}catch(f){console.warn("[\u4E0A\u4F20\u8BCA\u65AD] \u52A0\u8F7D originalContent \u5931\u8D25:",f)}}let oe=se.result==="overwrite"||!X,me=B?async()=>await Bo.confirm("\u5DF2\u7ECF\u6709\u5176\u4ED6\u7528\u6237\u66F4\u65B0\u4E86\u6587\u4EF6\uFF0C\u662F\u5426\u5168\u91CF\u8986\u76D6\u4E0A\u4F20\uFF1F"):void 0,{crc32:Te}=await $a(u.id,T,X||new Blob([]),F,f=>n.current.setUploadPercent(f),f=>n.current.setUploadSuccess(f),oe,me,{updateFile:h.updateFile,updateFileDelta:h.updateFileDelta});if(await He.removeFromCache(u.id),await He.saveToCache(u.id,F,Te,F.size),B){try{await xr(B,u.id),await In(B)}catch(m){console.warn("\u6807\u8BB0\u672A\u540C\u6B65\u6587\u4EF6\u4E3A\u5DF2\u540C\u6B65\u5931\u8D25:",m)}let f=l.current.files.map(m=>m.id===u.id?{...m,hasUnsyncedChanges:!1,localId:void 0}:m);n.current.setFiles(f),n.current.setFileTreeData(ct(f))}n.current.setPreviewHasUnsyncedChanges(!1),n.current.setPreviewLocalId(null);let De=await Ll(h,u.id);n.current.setEditingFile({...u,hasUnsyncedChanges:!1,localId:void 0,uploadTime:De?.uploadTime??u.uploadTime,updateTime:De?.updateTime??u.updateTime}),n.current.setUploadPercent(void 0),Se.success("\u6587\u4EF6\u66F4\u65B0\u6210\u529F"),S()}catch($){n.current.setUploadPercent(void 0),console.error("\u66F4\u65B0/\u4E0A\u4F20\u6587\u4EF6\u5931\u8D25:",$),Se.error(typeof $=="string"?$:"\u4E0A\u4F20\u5931\u8D25")}},[e,h,S]),ae=ue(async(u,E,F,T)=>{if(u)try{let $=!!u.isLocalOnly,B=u.localId,ce=u.id,se=T.toLowerCase().endsWith(".rdoc")?"application/json":"text/markdown",X=new Blob([F],{type:se});if($){let{files:g,selectedFolderId:C}=l.current,k=g.find(de=>de.id===C),V=k?`${k.filePath}${k.fileName}/`:"/",{crc32:D,serverFileName:U}=await Ut(X,T,de=>n.current.setUploadPercent(de),de=>n.current.setUploadSuccess(de)),ve=await h.addFile(e,{fileName:T,filePath:V,fileType:se,fileSize:X.size,crc32:D,fileResourcePath:U});if(ve.code===ut.SUCCESS&&ve.data){if(ce=ve.data.fileId,B)try{await xr(B,ce),await In(B)}catch(de){console.warn("\u6807\u8BB0\u672C\u5730\u5DF2\u540C\u6B65\u5931\u8D25:",de)}await He.saveToCache(ce,X,D,X.size),n.current.setUploadPercent(void 0),Se.success("Markdown \u6587\u6863\u4E0A\u4F20\u6210\u529F"),S()}else n.current.setUploadPercent(void 0),Se.error(ve.message||"\u4E0A\u4F20\u5931\u8D25");return}let oe=await Nl(h,u);if(oe.result==="cancel"){n.current.setUploadPercent(void 0);return}let me=E;if(B&&!oe.result.includes("overwrite")){try{let g=await He.getCachedContent(u.id);if(g&&oe.serverCrc32!==void 0){let C=await g.content.text(),k=await Zr(new File([C],T,{type:"text/markdown"}));k===oe.serverCrc32?me=C:console.warn("[\u4E0A\u4F20\u8BCA\u65AD] Markdown CacheFileContent CRC \u4E0D\u5339\u914D, cached:",k,"server:",oe.serverCrc32)}}catch(g){console.warn("[\u4E0A\u4F20\u8BCA\u65AD] Markdown CacheFileContent \u83B7\u53D6\u5931\u8D25:",g)}if(me===E)try{let g=await Mn(B);g?.originalContent&&typeof g.originalContent=="string"&&(me=g.originalContent)}catch(g){console.warn("[\u4E0A\u4F20\u8BCA\u65AD] Markdown \u52A0\u8F7D originalContent \u5931\u8D25:",g)}}let Te=oe.result==="overwrite",De=B?async()=>await Bo.confirm("\u5DF2\u7ECF\u6709\u5176\u4ED6\u7528\u6237\u66F4\u65B0\u4E86\u6587\u4EF6\uFF0C\u662F\u5426\u5168\u91CF\u8986\u76D6\u4E0A\u4F20\uFF1F"):void 0,{crc32:f}=await Il(u.id,T,me,F,g=>n.current.setUploadPercent(g),g=>n.current.setUploadSuccess(g),Te,De,{updateFile:h.updateFile,updateFileDelta:h.updateFileDelta});if(await He.removeFromCache(u.id),await He.saveToCache(u.id,X,f,X.size),B){try{await xr(B,u.id),await In(B)}catch(C){console.warn("\u6807\u8BB0\u672A\u540C\u6B65\u6587\u4EF6\u4E3A\u5DF2\u540C\u6B65\u5931\u8D25:",C)}let g=l.current.files.map(C=>C.id===u.id?{...C,hasUnsyncedChanges:!1,localId:void 0}:C);n.current.setFiles(g),n.current.setFileTreeData(ct(g))}n.current.setPreviewHasUnsyncedChanges(!1),n.current.setPreviewLocalId(null);let m=await Ll(h,u.id);n.current.setEditingFile({...u,hasUnsyncedChanges:!1,localId:void 0,uploadTime:m?.uploadTime??u.uploadTime,updateTime:m?.updateTime??u.updateTime}),n.current.setUploadPercent(void 0),Se.success("\u6587\u6863\u66F4\u65B0\u6210\u529F"),S()}catch($){n.current.setUploadPercent(void 0),console.error("\u66F4\u65B0/\u4E0A\u4F20\u5931\u8D25:",$),Se.error("\u66F4\u65B0\u5931\u8D25")}},[e,h,S]),te=ue(async(u,E,F)=>{try{let{files:T,selectedFolderId:$}=l.current,B=T.find(me=>me.id===$),ce=B?`${B.filePath}${B.fileName}/`:"/",{crc32:se,serverFileName:X}=await Ut(E,F,me=>n.current.setUploadPercent(me),me=>{n.current.setUploadSuccess(me)}),oe=await h.addFile(e,{fileName:F,filePath:ce,fileType:Sn(F),fileSize:E.size,crc32:se,fileResourcePath:X});n.current.setUploadPercent(void 0),oe.code===ut.SUCCESS?(await He.saveToCache(oe.data.fileId,E,se,E.size),S()):Se.error(oe.message||"\u521B\u5EFA\u5931\u8D25")}catch(T){n.current.setUploadPercent(void 0),console.error("\u521B\u5EFA\u6587\u4EF6\u5931\u8D25:",T),Se.error("\u521B\u5EFA\u5931\u8D25")}},[e,h,S]),fe=ue(async(u,E,F)=>{try{let{files:T,selectedFolderId:$}=l.current,B=T.find(De=>De.id===$),ce=B?`${B.filePath}${B.fileName}/`:"/",se=F.toLowerCase().endsWith(".rdoc")?"application/json":"text/markdown",X=new Blob([E],{type:se}),{crc32:oe,serverFileName:me}=await Ut(X,F,De=>n.current.setUploadPercent(De),De=>n.current.setUploadSuccess(De)),Te=await h.addFile(e,{fileName:F,filePath:ce,fileType:se,fileSize:X.size,crc32:oe,fileResourcePath:me});n.current.setUploadPercent(void 0),Te.code===ut.SUCCESS?(await He.saveToCache(Te.data.fileId,X,oe,X.size),S()):Se.error(Te.message||"\u521B\u5EFA\u5931\u8D25")}catch(T){n.current.setUploadPercent(void 0),console.error("\u521B\u5EFA Markdown \u6587\u6863\u5931\u8D25:",T),Se.error("\u521B\u5EFA\u5931\u8D25")}},[e,h,S]),Ce=ue((u,E)=>{if(!E.fileType||E.fileType!=="folder")return;let{expandedRowKeys:F}=l.current;n.current.setExpandedRowKeys(u?[...F,E.id]:F.filter(T=>T!==E.id)),n.current.setSelectedFolderId(u?E.id:null)},[]),rt=ue((u,E)=>{if(u.fileType!=="folder")return;let{expandedRowKeys:F,selectedFolderId:T,files:$}=l.current;if(n.current.setExpandedRowKeys(F.includes(u.id)?F.filter(B=>B!==u.id):[...F,u.id]),n.current.setSelectedFolderId(T===u.id?null:u.id),!E)if(!L(u.id))n.current.setFileTreeData(ct(Pa(u,$)));else{let B=$.find(ce=>ce.id===u.parentId);n.current.setFileTreeData(ct(B?Pa(B,$):$))}},[L]),lt=ue(u=>{n.current.setDragSourceId(u)},[]),Pt=ue(()=>{n.current.setDragSourceId(null),n.current.setDragOverId(null)},[]),pt=ue(u=>{n.current.setDragOverId(u)},[]),bt=ue(u=>{l.current.dragOverId===u&&n.current.setDragOverId(null)},[]),cn=ue((u,E)=>{let{selectedIds:F}=l.current,T=F.includes(u)&&F.length>1?F:[u];O(T,E),n.current.setDragOverId(null)},[O]),Lt=ue(u=>{u.preventDefault(),(u.dataTransfer.types.includes("Files")||u.dataTransfer.items.length>0)&&(c.current++,n.current.setIsExternalDragOver(!0))},[]),Ct=ue(u=>{u.preventDefault(),(u.dataTransfer.types.includes("Files")||u.dataTransfer.items.length>0)&&(u.dataTransfer.dropEffect="copy")},[]),xt=ue(u=>{c.current--,c.current<=0&&(c.current=0,n.current.setIsExternalDragOver(!1))},[]),Yt=ue(async u=>{u.preventDefault(),c.current=0,n.current.setIsExternalDragOver(!1);let E=await Dl(u.dataTransfer.items);if(E.length!==0)try{let{files:F,selectedFolderId:T}=l.current,$=F.find(X=>X.id===T),B=$?`${$.filePath}${$.fileName}/`:"/",ce=new Set,se=new Set(F.filter(X=>X.fileType==="folder").map(X=>`${X.filePath}${X.fileName}`));for(let[X,{file:oe,relativePath:me}]of E.entries()){n.current.setDragUploadingFileName(E.length>1?`${me} (${X+1}/${E.length})`:me),n.current.setDragUploadPercent(0),n.current.setDragUploadSuccess(void 0);let Te=me.lastIndexOf("/"),De=Te>=0?me.substring(Te+1):me,f=Te>=0?me.substring(0,Te):"",m=B;if(f){let V=B+f+"/";if(!ce.has(V)){let D=f.split("/"),U=B;for(let ve of D){let de=Wr(ve),Ve=`${U}${de}`;!se.has(Ve)&&!ce.has(Ve)&&(await h.addFile(e,{fileName:de,filePath:U,fileType:"folder",fileSize:0,fileResourcePath:"",isSecure:!1}),ce.add(Ve)),U=`${U}${de}/`}}ce.add(V),m=V}let{crc32:g,serverFileName:C}=await Ut(oe,De,V=>n.current.setDragUploadPercent(V),V=>n.current.setDragUploadSuccess(V)),k=await h.addFile(e,{fileName:De,filePath:m,fileType:oe.type||"application/octet-stream",fileSize:oe.size,crc32:g,fileResourcePath:C});k.code!==ut.SUCCESS?(n.current.setDragUploadSuccess(!1),Se.error(k.message||`\u6587\u4EF6 ${me} \u4E0A\u4F20\u5931\u8D25`)):k.data?.fileId&&await He.saveToCache(k.data.fileId,oe,g,oe.size)}S()}catch(F){console.error("\u6587\u4EF6\u4E0A\u4F20\u5931\u8D25:",F),n.current.setDragUploadSuccess(!1),typeof F=="string"?Se.error("\u6587\u4EF6\u4E0A\u4F20\u5931\u8D25: "+F):Se.error("\u6587\u4EF6\u4E0A\u4F20\u5931\u8D25")}finally{window.setTimeout(()=>{n.current.setDragUploadPercent(void 0),n.current.setDragUploadSuccess(void 0),n.current.setDragUploadingFileName("")},1e3)}},[e,h,S]),Qe=ue((u,E)=>{u.preventDefault(),u.stopPropagation(),n.current.setContextMenuRecord(E),n.current.setContextMenuPosition({x:u.clientX,y:u.clientY}),n.current.setContextMenuVisible(!0)},[]),Ue=ue(u=>{n.current.setMoveCopyFiles([u]),n.current.setMoveCopyMode("move"),n.current.setMoveCopyModalVisible(!0),n.current.setContextMenuVisible(!1),n.current.setContextMenuRecord(null)},[]),je=ue(u=>{n.current.setMoveCopyFiles([u]),n.current.setMoveCopyMode("copy"),n.current.setMoveCopyModalVisible(!0),n.current.setContextMenuVisible(!1),n.current.setContextMenuRecord(null)},[]),et=ue(async u=>{if(n.current.setContextMenuVisible(!1),n.current.setContextMenuRecord(null),!!h.copyFileToProject)try{let E=await h.copyFileToProject(e,u.id);E.code===ut.SUCCESS?(Se.success(`\u590D\u5236\u6210\u529F\uFF0C\u6587\u4EF6\u540D\u4E3A\uFF1A${E.data}`),S()):Se.error(E.message||"\u590D\u5236\u5931\u8D25")}catch(E){Se.error("\u590D\u5236\u5931\u8D25"),console.error("\u590D\u5236\u526F\u672C\u5931\u8D25:",E)}},[e,h,S]),Ie=ue(()=>{n.current.setMoveCopyModalVisible(!1),n.current.setMoveCopyFiles([]),S()},[S]),Ae=ue(u=>{n.current.setVersionHistoryFile(u),n.current.setVersionHistoryModalVisible(!0),n.current.setContextMenuVisible(!1),n.current.setContextMenuRecord(null)},[]),Ke=ue(u=>{if(u.fileType==="folder")return;let E=`${window.location.origin}/filepreview?fileid=${u.id}&path=${encodeURIComponent(u.fileResourcePath)}&name=${encodeURIComponent(u.fileName)}`;window.open(E,"_blank","noopener,noreferrer"),n.current.setContextMenuVisible(!1),n.current.setContextMenuRecord(null)},[]),zn=ue(u=>{u.preventDefault(),n.current.setRootDragOver(!0)},[]),En=ue(()=>{n.current.setRootDragOver(!1)},[]),dn=ue(u=>{u.preventDefault(),n.current.setRootDragOver(!1);let E=u.dataTransfer.getData("text/plain");if(E){let{selectedIds:F}=l.current,T=F.includes(E)&&F.length>1?F:[E];O(T,null)}},[O]),Hn=ue(()=>{h.resolveIsManager&&h.resolveIsManager(e).then(u=>{if(!u){n.current.setIsManager(!1);return}(async()=>{let T=(await Bn.getUserInfo({forceRefresh:!1}))?.id||"local-user";return e===T?!0:jh.hasPermission({permission:Vh})})().then(F=>{F&&n.current.setIsManager(!0)}).catch(()=>{})}).catch(()=>{})},[e,h]),gt=ue(async()=>{let u=await Zh(Wh);u&&(u==="grid"||u==="table")&&n.current.setViewMode(u)},[]),Un=ue(async u=>{try{await He.removeFromCache(u.id);try{await jn.removeFileMeta(u.id)}catch(T){console.warn("\u5220\u9664 fileMeta \u8BB0\u5F55\u5931\u8D25:",T)}if(u.localId)try{await In(u.localId)}catch(T){console.warn("\u5220\u9664 localFiles \u8BB0\u5F55\u5931\u8D25:",T)}Se.success("\u7F13\u5B58\u6E05\u7406\u6210\u529F");let{files:E}=l.current,F=E.map(T=>T.id===u.id?{...T,hasLocalCache:!1,hasUnsyncedChanges:!1,localId:void 0}:T);n.current.setFileTreeData(ct(F)),n.current.setFiles(F),n.current.setContextMenuVisible(!1),n.current.setContextMenuRecord(null)}catch(E){console.error("\u6E05\u7406\u7F13\u5B58\u5931\u8D25:",E),Se.error("\u6E05\u7406\u7F13\u5B58\u5931\u8D25")}},[]),Cn=ue(u=>{let{files:E}=l.current,F=E.find(T=>T.id===u);if(F&&!F.hasLocalCache){let T=E.map($=>$.id===u?{...$,hasLocalCache:!0}:$);n.current.setFileTreeData(ct(T)),n.current.setFiles(T)}},[]);return d.current=Cn,$h(()=>({loadFiles:S,uploadFiles:I,handlePreview:N,handleDownload:W,handleDownloadFolder:H,handleShareToWechat:M,handleCopyLink:ee,handleJumpToContract:y,handleCreateContract:R,handleGenerateTempLink:G,handleDelete:P,isFolderExpanded:L,handleMove:z,handleRename:q,handleEditDescs:v,handleDescsConfirm:ye,handleRenameConfirm:ne,handleCreateFolder:A,openCreator:_e,handleCreatePptx:Y,handleCreateMarkdown:Z,handleCreateRdoc:ke,handleCreateExcel:xe,handleCreateWord:Q,handleCreateFileConfirm:$e,handleCreateFolderConfirm:Ee,handleEditFile:Be,handleUploadBlob:K,handleUploadMarkdown:ae,handleCreateUploadBlob:te,handleCreateUploadMarkdown:fe,handleSaveLocalBlob:be,handleSaveLocalMarkdown:pe,handleExpand:Ce,toggleFolderExpand:rt,handleDragStart:lt,handleDragEnd:Pt,handleDragOver:pt,handleDragLeave:bt,handleDrop:cn,handleExternalDragEnter:Lt,handleExternalDragOver:Ct,handleExternalDragLeave:xt,handleExternalDrop:Yt,handleContextMenu:Qe,handleMoveToProject:Ue,handleCopyToProject:je,handleCopyToSelf:et,handleMoveCopySuccess:Ie,handleViewVersionHistory:Ae,handleClearCache:Un,handleCacheSaved:Cn,handleOpenInNewWindow:Ke,handleRootDragOver:zn,handleRootDragLeave:En,handleRootDrop:dn,initUserRole:Hn,initViewMode:gt}),[S,I,N,W,H,M,ee,y,R,G,P,L,z,q,v,ye,ne,A,_e,Y,Z,ke,xe,Q,$e,Ee,Be,K,ae,te,fe,be,pe,Ce,rt,lt,Pt,pt,bt,cn,Lt,Ct,xt,Yt,Qe,Ue,je,et,Ie,Ae,Un,Cn,Ke,zn,En,dn,Hn,gt])};import{Fragment as Xr,jsx as ze,jsxs as Nt}from"react/jsx-runtime";var Ul="file-manager",jl=255,Vl=(e,t)=>{for(let r of e){if(r.id===t)return r;if(r.children&&r.children.length>0){let o=Vl(r.children,t);if(o)return o}}},J0=({projectId:e,currentUserRole:t,isActive:r=!0,className:o,api:a,features:s})=>{let[i,c]=Jh(),[n,l]=Tl(),[d,p]=Yh(null),w=a||Jr,h=Ha(()=>s||{},[s]),_=t===en.MANAGER||t===en.OWNER,b=h.contracts!==!1,x=h.moveCopyToProject!==!1,S=h.shareToWechat!==!1,I=h.versionHistory!==!1,N=h.externalLink!==!1,W=!!w.generateTempAccessToken,H=!!w.copyFileToProject,M=Ha(()=>({api:w,features:h}),[w,h]),ee=Ha(()=>A=>w.getDetail(A),[w]),y=Hl(e,t,n,l,M),R=za(y);R.current=y;let G=i.get("fileid"),P=n.dragUploadPercent===void 0?0:Math.min(100,Math.round(n.dragUploadPercent*100));$n(()=>{let{initUserRole:A,loadFiles:re}=R.current;l.setSelectedIds([]),A(),re()},[e]);let L=za(r);$n(()=>{r&&!L.current&&R.current.loadFiles(),L.current=r},[r]),$n(()=>{if(G&&n.files.length>0){let A=n.files.find(re=>re.id===G);A&&A.fileType!=="folder"&&(l.setPreviewFileName(A.fileName),l.setPreviewUrl(A.fileResourcePath),l.setPreviewVisible(!0))}},[G,n.files]);let j=za(n.previewVisible);j.current=n.previewVisible,$n(()=>{!G&&j.current&&(l.setPreviewVisible(!1),l.setPreviewUrl(null),l.setPreviewingFile(null))},[G]),cg(()=>{l.setSmallView(!0),l.setViewMode("grid")},()=>{l.setSmallView(!1),l.setViewMode("table")},500),$n(()=>{(async()=>{let re=await dg(Ul);re&&(re==="grid"||re==="table")&&l.setViewMode(re)})()},[]);let O=A=>{A===n.sortBy?l.setSortOrder(n.sortOrder==="asc"?"desc":"asc"):(l.setSortBy(A),l.setSortOrder("asc"))},z=()=>{l.setSortOrder(n.sortOrder==="asc"?"desc":"asc")},q=n.viewMode==="grid"&&n.selectedFolderId?Vl(n.fileTreeData,n.selectedFolderId):void 0,v=()=>{l.setSelectedFolderId(q?.parentId||null)};$n(()=>{n.viewMode==="grid"?l.setExpandedRowKeys([]):l.setFileTreeData(ct(Ln(n.files)))},[n.viewMode,n.files]),$n(()=>{let A=()=>{n.contextMenuVisible&&(l.setContextMenuVisible(!1),l.setContextMenuRecord(null)),d&&p(null)};return document.addEventListener("click",A),()=>{document.removeEventListener("click",A)}},[n.contextMenuVisible,d]),$n(()=>{n.contextMenuVisible&&p(null)},[n.contextMenuVisible]);let ye=A=>{_&&(A.preventDefault(),n.contextMenuVisible&&(l.setContextMenuVisible(!1),l.setContextMenuRecord(null)),p({x:A.clientX,y:A.clientY}))},ne=()=>{l.setUploadPercent(void 0),l.setPreviewFileName(null),l.setUploadSuccess(void 0),n.previewVisible?(l.setPreviewVisible(!1),l.setPreviewingFile(null),c(A=>{let re=new URLSearchParams(A);return re.delete("fileid"),re},{replace:!0})):n.editorVisible?(l.setEditorVisible(!1),l.setEditingFile(null)):n.creatorVisible&&(l.setCreatorVisible(!1),l.setCreatingFileName(""),l.setCreatingFileType(null))};return Nt(Qh,{className:o,styles:{body:{padding:0},header:{paddingLeft:n.smallView?16:0,paddingRight:n.smallView?16:0},extra:{margin:0,marginLeft:"auto",marginRight:n.smallView?0:"8px"}},title:q?ze(Ua,{type:"text",size:"small",icon:ze(rg,{}),onClick:v,title:"\u8FD4\u56DE\u4E0A\u7EA7\u76EE\u5F55",style:{marginLeft:n.smallView?0:16}}):void 0,extra:ze(gl,{currentUserRole:t,viewMode:n.viewMode,onToggleViewMode:A=>{l.setViewMode(A),ug(Ul,A)},onCreateFolder:y.handleCreateFolder,onCreateMarkdown:y.handleCreateMarkdown,onCreateRdoc:y.handleCreateRdoc,onCreateExcel:y.handleCreateExcel,onCreateWord:y.handleCreateWord,onUploadFiles:y.uploadFiles}),children:[ze("div",{className:`flex justify-center items-center rounded border ${n.rootDragOver?"border-blue-500 bg-blue-50":"border-dashed border-gray-300 bg-white"}`,style:{opacity:n.dragSourceId?1:0,textAlign:"center",zIndex:40,position:"absolute",height:"40px",left:0,right:0,margin:"auto",transition:"all 0.2s",borderWidth:"2px",pointerEvents:n.dragSourceId?"auto":"none"},onDragOver:y.handleRootDragOver,onDragLeave:y.handleRootDragLeave,onDrop:y.handleRootDrop,children:"\u79FB\u52A8\u5230\u6839\u76EE\u5F55"}),Nt("div",{className:"relative",onDragEnter:y.handleExternalDragEnter,onDragOver:y.handleExternalDragOver,onDragLeave:y.handleExternalDragLeave,onDrop:y.handleExternalDrop,children:[n.dragUploadPercent!==void 0&&Nt(Ua,{className:"absolute right-3 top-3 z-50 shadow-md",type:n.dragUploadSuccess===!1?"default":"primary",danger:n.dragUploadSuccess===!1,loading:n.dragUploadSuccess!==!1&&P<100,disabled:!0,children:[n.dragUploadSuccess===!1?"\u62D6\u62FD\u4E0A\u4F20\u5931\u8D25":P>=100?"\u62D6\u62FD\u4E0A\u4F20\u5B8C\u6210":`\u62D6\u62FD\u4E0A\u4F20\u4E2D ${P}%`,n.dragUploadingFileName?`\uFF1A${n.dragUploadingFileName}`:""]}),n.isExternalDragOver&&Nt("div",{className:"absolute inset-0 z-50 flex flex-col items-center justify-center bg-blue-500/10 border-2 border-blue-500 border-dashed rounded m-2",style:{pointerEvents:"none"},children:[ze("div",{className:"text-blue-600 text-lg font-medium",children:"\u91CA\u653E\u4EE5\u4E0A\u4F20\u6587\u4EF6"}),ze("div",{className:"text-blue-400 text-sm mt-1",children:n.selectedFolderId?"\u4E0A\u4F20\u5230\u5F53\u524D\u6587\u4EF6\u5939":"\u4E0A\u4F20\u5230\u6839\u76EE\u5F55"})]}),n.selectedIds.length>0&&Nt("div",{className:"mx-2 mb-2 flex flex-wrap items-center gap-2 rounded-md border border-blue-200 bg-blue-50 px-3 py-1.5 text-sm text-blue-700",children:[Nt("span",{className:"font-medium",children:["\u5DF2\u9009\u62E9 ",n.selectedIds.length," \u9879"]}),ze("span",{className:"text-xs text-blue-500",children:"\u5C06\u5176\u4E2D\u4EFB\u610F\u4E00\u9879\u62D6\u62FD\u5230\u76EE\u6807\u6587\u4EF6\u5939\uFF0C\u6216\u62D6\u5230\u9876\u90E8\u300C\u79FB\u52A8\u5230\u6839\u76EE\u5F55\u300D\uFF0C\u5373\u53EF\u6279\u91CF\u79FB\u52A8"}),ze(Ua,{type:"link",size:"small",className:"ml-auto",onClick:()=>l.setSelectedIds([]),children:"\u53D6\u6D88\u9009\u62E9"})]}),ze(tg,{spinning:n.loading,children:ze("div",{className:"min-h-[400px]",onContextMenu:ye,children:n.viewMode==="table"?ze(il,{dataSource:n.fileTreeData,expandedRowKeys:n.expandedRowKeys,selectedFolderId:n.selectedFolderId,dragOverId:n.dragOverId,dragSourceId:n.dragSourceId,smallView:n.smallView,isFolderExpanded:y.isFolderExpanded,onExpand:y.handleExpand,onPreview:y.handlePreview,onDownload:y.handleDownload,onDownloadFolder:n.isManager?y.handleDownloadFolder:void 0,onCopyLink:N?y.handleCopyLink:void 0,onRename:y.handleRename,onEditDescs:y.handleEditDescs,onDelete:y.handleDelete,onEdit:y.handleEditFile,onGenerateTempLink:W?y.handleGenerateTempLink:void 0,onMove:y.handleMove,onDragStart:y.handleDragStart,onDragEnd:y.handleDragEnd,onDragOver:y.handleDragOver,onDragLeave:y.handleDragLeave,onDrop:y.handleDrop,onRowContextMenu:y.handleContextMenu,onMoveToProject:x?y.handleMoveToProject:void 0,onCopyToProject:x?y.handleCopyToProject:void 0,onCopyToSelf:H?y.handleCopyToSelf:void 0,onViewVersionHistory:I?y.handleViewVersionHistory:void 0,onJumpToContract:b?y.handleJumpToContract:void 0,sortBy:n.sortBy,sortOrder:n.sortOrder,onSortByChange:O,selectedIds:n.selectedIds,onToggleSelect:l.toggleSelectedId}):ze(hl,{dataSource:n.fileTreeData,selectedFolderId:n.selectedFolderId,dragOverId:n.dragOverId,dragSourceId:n.dragSourceId,isFolderExpanded:y.isFolderExpanded,smallView:n.smallView,onPreview:y.handlePreview,onDownload:y.handleDownload,onDownloadFolder:n.isManager?y.handleDownloadFolder:void 0,onCopyLink:N?y.handleCopyLink:void 0,onRename:y.handleRename,onEditDescs:y.handleEditDescs,onDelete:y.handleDelete,onEdit:y.handleEditFile,onGenerateTempLink:W?y.handleGenerateTempLink:void 0,onFolderChange:l.setSelectedFolderId,onMove:y.handleDrop,onDragStart:y.handleDragStart,onDragEnd:y.handleDragEnd,onDragOver:y.handleDragOver,onDragLeave:y.handleDragLeave,onDrop:y.handleDrop,onRowContextMenu:y.handleContextMenu,onMoveToProject:x?y.handleMoveToProject:void 0,onCopyToProject:x?y.handleCopyToProject:void 0,onCopyToSelf:H?y.handleCopyToSelf:void 0,onViewVersionHistory:I?y.handleViewVersionHistory:void 0,onJumpToContract:b?y.handleJumpToContract:void 0,sortBy:n.sortBy,sortOrder:n.sortOrder,onSortByChange:O,onSortOrderToggle:z,selectedIds:n.selectedIds,onToggleSelect:l.toggleSelectedId})})})]}),Nt($o,{className:"ant-modal-nofull",title:"\u65B0\u5EFA\u6587\u4EF6\u5939",open:n.createFolderVisible,onOk:()=>y.handleCreateFolderConfirm(n.newFolderName,n.newFolderDescs,n.isEncryptedFolder),onCancel:()=>l.setCreateFolderVisible(!1),okText:"\u521B\u5EFA",cancelText:"\u53D6\u6D88",children:[ze(Gr,{placeholder:"\u8BF7\u8F93\u5165\u6587\u4EF6\u5939\u540D\u79F0",value:n.newFolderName,onChange:A=>l.setNewFolderName(A.target.value)}),ze(Gr.TextArea,{className:"mt-3",placeholder:"\u8BF7\u8F93\u5165\u5907\u6CE8\uFF08\u53EF\u9009\uFF09",value:n.newFolderDescs,autoSize:{minRows:3,maxRows:6},maxLength:jl,showCount:!0,style:{marginBottom:24},onChange:A=>l.setNewFolderDescs(A.target.value)}),n.isManager&&Nt(eg,{className:"mt-2",checked:n.isEncryptedFolder,onChange:A=>l.setIsEncryptedFolder(A.target.checked),children:["\u52A0\u5BC6\u6587\u4EF6\u5939",ze("span",{className:"text-sm text-gray-500 font-thin",children:"\uFF08\u4EC5\u5BF9\u7BA1\u7406\u5458\u53EF\u89C1)"})]})]}),ze($o,{className:"ant-modal-nofull",title:"\u65B0\u5EFA\u6587\u4EF6",open:n.createFileVisible,onOk:()=>y.handleCreateFileConfirm(n.newFileName,n.pendingFileType),onCancel:()=>l.setCreateFileVisible(!1),okText:"\u521B\u5EFA",cancelText:"\u53D6\u6D88",children:ze(Gr,{placeholder:"\u8BF7\u8F93\u5165\u6587\u4EF6\u540D\u79F0",value:n.newFileName,onChange:A=>l.setNewFileName(A.target.value),onPressEnter:()=>y.handleCreateFileConfirm(n.newFileName,n.pendingFileType),autoFocus:!0})}),ze($o,{title:"\u7F16\u8F91\u5907\u6CE8",className:"ant-modal-nofull",open:n.descsVisible,onOk:()=>y.handleDescsConfirm(n.descsFileId,n.descsValue),onCancel:()=>{l.setDescsVisible(!1),l.setDescsFileId(null),l.setDescsValue("")},okText:"\u4FDD\u5B58",cancelText:"\u53D6\u6D88",children:ze(Gr.TextArea,{placeholder:"\u8BF7\u8F93\u5165\u5907\u6CE8",value:n.descsValue,autoSize:{minRows:4,maxRows:8},maxLength:jl,showCount:!0,style:{marginBottom:24},onChange:A=>l.setDescsValue(A.target.value)})}),ze($o,{title:"\u91CD\u547D\u540D",className:"ant-modal-nofull",open:n.renameVisible,onOk:()=>y.handleRenameConfirm(n.renameFileId,n.renameFileName),onCancel:()=>l.setRenameVisible(!1),okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88",children:ze(Gr,{placeholder:"\u8BF7\u8F93\u5165\u65B0\u540D\u79F0",value:n.renameFileName,onChange:A=>l.setRenameFileName(A.target.value),onPressEnter:()=>y.handleRenameConfirm(n.renameFileId,n.renameFileName)})}),(()=>{let A=n.editingFile||n.previewingFile||(G?n.files.find(Y=>Y.id===G):void 0),re=!n.isOnline,_e=re&&!n.previewIsLocalOnly,le=n.editorVisible||n.creatorVisible,$e=n.previewLocalId||A?.localId;return ze(Rr,{fileUrl:n.previewVisible?n.previewUrl:n.editingFile?.fileResourcePath||null,visible:n.previewVisible||n.editorVisible||n.creatorVisible,editable:le,isCreate:n.creatorVisible||!!n.previewIsLocalOnly,fileName:n.editingFile?.fileName||n.creatingFileName||n.previewFileName||void 0,uploadPercent:n.uploadPercent,uploadSuccess:n.uploadSuccess,onClose:ne,onUploadBlob:_e?void 0:n.editorVisible?async(Y,Z,xe)=>y.handleUploadBlob(n.editingFile,Y,Z,xe):n.creatorVisible?async(Y,Z,xe)=>y.handleCreateUploadBlob(Y,Z,xe):void 0,onUploadMarkdown:_e?void 0:n.editorVisible?async(Y,Z,xe)=>y.handleUploadMarkdown(n.editingFile,Y,Z,xe):n.creatorVisible?async(Y,Z,xe)=>y.handleCreateUploadMarkdown(Y,Z,xe):void 0,onSaveLocalBlob:(Y,Z,xe)=>y.handleSaveLocalBlob($e,Y,Z,xe),onSaveLocalMarkdown:(Y,Z,xe)=>y.handleSaveLocalMarkdown($e,Y,Z,xe),fileId:A?.isContractLink?void 0:A?.id,localId:$e,isLocalOnly:n.previewIsLocalOnly||!!A?.isLocalOnly,hasUnsyncedChanges:n.previewHasUnsyncedChanges||!!A?.hasUnsyncedChanges,isOffline:re,crc32:n.previewCrc32,fetchFileDetail:ee,onCacheSaved:y.handleCacheSaved})})(),d&&ze("div",{className:"fixed z-50",style:{left:Math.max(8,Math.min(d.x,window.innerWidth-200)),top:Math.max(8,Math.min(d.y,window.innerHeight-280)),minWidth:160},onClick:A=>A.stopPropagation(),onContextMenu:A=>A.stopPropagation(),children:ze(ng,{mode:"vertical",items:[{key:"createFolder",label:Nt(Xr,{children:[ze(og,{className:"text-blue-400 mr-1"})," \u65B0\u5EFA\u6587\u4EF6\u5939"]}),onClick:()=>{p(null),y.handleCreateFolder()}},{key:"createRdoc",label:Nt(Xr,{children:[ze(ag,{className:"text-yellow-600 mr-1"})," \u65B0\u5EFA\u6587\u6863"]}),onClick:()=>{p(null),y.handleCreateRdoc()}},{key:"createMarkdown",label:Nt(Xr,{children:[ze(sg,{className:"text-gray-800 mr-1"})," \u65B0\u5EFAMarkdown"]}),onClick:()=>{p(null),y.handleCreateMarkdown()}},{key:"createWord",label:Nt(Xr,{children:[ze(ig,{className:"text-blue-600 mr-1"})," \u65B0\u5EFAWord"]}),onClick:()=>{p(null),y.handleCreateWord()}},{key:"createExcel",label:Nt(Xr,{children:[ze(lg,{className:"text-green-600 mr-1"})," \u65B0\u5EFAExcel"]}),onClick:()=>{p(null),y.handleCreateExcel()}}],style:{borderRadius:6,boxShadow:"0 2px 8px rgb(var(--shadow-color) / 0.15)",background:"rgb(var(--color-surface))",border:"1px solid rgb(var(--color-border))",padding:"4px 0",fontSize:"14px",minWidth:160}})}),n.contextMenuVisible&&n.contextMenuRecord&&ze(Ao,{record:n.contextMenuRecord,onPreview:y.handlePreview,onDownload:y.handleDownload,onDownloadFolder:n.isManager?y.handleDownloadFolder:void 0,onCopyLink:N?y.handleCopyLink:void 0,onRename:y.handleRename,onEditDescs:y.handleEditDescs,onDelete:y.handleDelete,onEdit:y.handleEditFile,onGenerateTempLink:W?y.handleGenerateTempLink:void 0,onMoveToProject:x?y.handleMoveToProject:void 0,onCopyToProject:x?y.handleCopyToProject:void 0,onCopyToSelf:H?y.handleCopyToSelf:void 0,onViewVersionHistory:I?y.handleViewVersionHistory:void 0,onJumpToContract:b?y.handleJumpToContract:void 0,onCreateContract:b?y.handleCreateContract:void 0,onShareToWechat:S?y.handleShareToWechat:void 0,onClearCache:y.handleClearCache,onOpenInNewWindow:N?y.handleOpenInNewWindow:void 0,isAdminOrOwner:n.isManager,open:!0,position:n.contextMenuPosition}),x&&ze(bl,{visible:n.moveCopyModalVisible,fileIds:n.moveCopyFiles.map(A=>A.id),files:n.moveCopyFiles.map(A=>({fileName:A.fileName,fileType:A.fileType})),currentProjectId:e,mode:n.moveCopyMode,onCancel:()=>{l.setMoveCopyModalVisible(!1),l.setMoveCopyFiles([])},onSuccess:y.handleMoveCopySuccess}),I&&ze(xl,{visible:n.versionHistoryModalVisible,file:n.versionHistoryFile,onClose:()=>{l.setVersionHistoryModalVisible(!1),l.setVersionHistoryFile(null)}}),S&&ze(Cl,{visible:n.shareToWechatVisible,file:n.shareToWechatFile,onFileCached:y.handleCacheSaved,onClose:()=>{l.setShareToWechatVisible(!1),l.setShareToWechatFile(null)}})]})};import{useEffect as pg,useMemo as nr,useState as qr}from"react";import{ReloadOutlined as fg}from"@ant-design/icons";import{Button as mg,Empty as Zl,Input as hg,Modal as gg,Spin as yg,Tree as wg,message as ja}from"antd";import{API as Va}from"@spacecorexdev/core/api";import{ResponseCode as Wl}from"@spacecorexdev/core/api";import{CacheUserInfo as bg}from"@spacecorexdev/core/utils";import{jsx as jt,jsxs as Za}from"react/jsx-runtime";var Wa=e=>e.fileType==="folder",vg=e=>!e||e<=0?"":e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/1024/1024).toFixed(1)} MB`,Kl=e=>e.flatMap(t=>[t,...Kl(t.children||[])]),_g=e=>{let t=e.filePath&&e.filePath!=="/"?e.filePath:"/";return`${t}${t.endsWith("/")?"":"/"}${e.fileName}`},xg=(e,t)=>t==="single"?e.length?"\u9009\u62E9\u6587\u4EF6":"\u8BF7\u9009\u62E9\u6587\u4EF6":e.length?`\u6DFB\u52A0 ${e.length} \u4E2A\u6587\u4EF6`:"\u6DFB\u52A0\u6587\u4EF6",Sg=(e,t)=>t==="single"?e.length?`\u5DF2\u9009\u62E9\uFF1A${e[0].fileName}`:"\u53EA\u80FD\u9009\u62E9\u6587\u4EF6\uFF0C\u6587\u4EF6\u5939\u4E0D\u4F1A\u88AB\u9009\u4E2D\u3002":`\u53EA\u80FD\u9009\u62E9\u6587\u4EF6\uFF0C\u6587\u4EF6\u5939\u4E0D\u4F1A\u88AB\u6DFB\u52A0\u3002\u5DF2\u9009\u62E9 ${e.length} \u4E2A\u6587\u4EF6\u3002`,Gl=(e,t,r)=>{let o=t.trim().toLowerCase();return e.flatMap(a=>{if(Wa(a)){let c=Gl(a.children||[],t,r);return c.length?[{...a,children:c}]:[]}let s=!o||_g(a).toLowerCase().includes(o),i=r?r(a):!0;return s&&i?[a]:[]})},Xl=(e,t,r)=>e.map(o=>{let a=t.has(o.id);return{key:o.id,selectable:r==="single"?a:!1,disableCheckbox:r==="multiple"?!a:void 0,title:Za("div",{className:"flex w-full min-w-0 max-w-full items-center gap-2 whitespace-nowrap",children:[jt("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center text-base text-muted",children:Xt.getFileIcon({fileName:o.fileName,fileType:o.fileType,size:18})}),jt("span",{className:"min-w-0 flex-1 truncate",title:o.fileName,children:o.fileName}),!Wa(o)&&jt("span",{className:"w-16 shrink-0 text-right text-xs text-muted",children:vg(o.fileSize||0)})]}),children:o.children?.length?Xl(o.children,t,r):void 0}}),dx=({open:e,confirmLoading:t=!1,title:r="\u4ECE\u6211\u7684\u6587\u4EF6\u9009\u62E9\u6587\u4EF6",searchPlaceholder:o="\u641C\u7D22\u6211\u7684\u6587\u4EF6",selectionMode:a="multiple",okText:s,emptyDescription:i,helperText:c,fileFilter:n,onCancel:l,onConfirm:d})=>{let[p,w]=qr(!1),[h,_]=qr(""),[b,x]=qr([]),[S,I]=qr([]),[N,W]=qr(""),H=async()=>{let z=bg.currentLocalUser();if(!z?.id){ja.warning("\u8BF7\u5148\u767B\u5F55\u540E\u518D\u9009\u62E9\u6211\u7684\u6587\u4EF6");return}w(!0);try{let q=z.id;if(!(await Va.project.project.getProjectName({projectId:z.id})).data){let ne=await Va.project.project.enableUserPrivateProject();if(ne.code!==Wl.SUCCESS||!ne.data){ja.error(ne.message||"\u542F\u7528\u6211\u7684\u6587\u4EF6\u5931\u8D25");return}q=ne.data}_(q);let ye=await Va.project.file.listFiles({projectId:q});if(ye.code!==Wl.SUCCESS){ja.error(ye.message||"\u52A0\u8F7D\u6211\u7684\u6587\u4EF6\u5931\u8D25");return}x(Ln(Mo(ye.data||[])))}finally{w(!1)}};pg(()=>{if(!e){I([]),W("");return}H()},[e]);let M=nr(()=>ct(b),[b]),ee=nr(()=>Kl(M),[M]),y=nr(()=>ee.filter(z=>!Wa(z)&&(!n||n(z))),[ee,n]),R=nr(()=>new Set(y.map(z=>z.id)),[y]),G=nr(()=>new Map(y.map(z=>[z.id,z])),[y]),P=nr(()=>S.flatMap(z=>{let q=G.get(String(z));return q?[q]:[]}),[S,G]),L=nr(()=>Xl(Gl(M,N,n),R,a),[n,M,N,R,a]),j=typeof s=="function"?s(P):s||xg(P,a),O=typeof c=="function"?c(P):c||Sg(P,a);return jt(gg,{title:r,open:e,width:720,className:"max-md:!top-2 max-md:!max-w-[calc(100vw-16px)] max-md:[&_.ant-modal-body]:!flex max-md:[&_.ant-modal-body]:!min-h-0 max-md:[&_.ant-modal-body]:!flex-1 max-md:[&_.ant-modal-body]:!flex-col max-md:[&_.ant-modal-body]:!overflow-hidden max-md:[&_.ant-modal-content]:!flex max-md:[&_.ant-modal-content]:!h-[calc(100dvh-16px)] max-md:[&_.ant-modal-content]:!flex-col max-md:[&_.ant-modal-footer]:!shrink-0",okText:j,cancelText:"\u53D6\u6D88",confirmLoading:t,okButtonProps:{disabled:P.length===0},onCancel:t?void 0:l,onOk:()=>d(P),children:Za("div",{className:"flex min-h-0 flex-col gap-3 max-md:flex-1",children:[Za("div",{className:"flex shrink-0 items-center gap-2",children:[jt(hg.Search,{allowClear:!0,placeholder:o,value:N,onChange:z=>W(z.target.value)}),jt(mg,{icon:jt(fg,{}),disabled:p||t,onClick:H,children:"\u5237\u65B0"})]}),jt("div",{className:"max-h-[52vh] min-h-[360px] overflow-y-auto overflow-x-hidden rounded-xl border border-email-divider bg-surface p-3 max-md:min-h-0 max-md:flex-1 max-md:max-h-none",children:jt(yg,{spinning:p,children:L.length?jt(wg,{className:"w-full [&_.ant-tree-list-holder-inner]:!w-full [&_.ant-tree-node-content-wrapper]:!min-w-0 [&_.ant-tree-node-content-wrapper]:!flex-1 [&_.ant-tree-node-content-wrapper]:!overflow-hidden [&_.ant-tree-title]:!block [&_.ant-tree-title]:!min-w-0 [&_.ant-tree-title]:!w-full [&_.ant-tree-treenode]:!w-full [&_.ant-tree-treenode]:!min-w-0",checkable:a==="multiple",selectable:a==="single",checkStrictly:!0,treeData:L,checkedKeys:a==="multiple"?S:void 0,selectedKeys:a==="single"?S:void 0,defaultExpandAll:!!N.trim(),onCheck:z=>{let q=Array.isArray(z)?z:z.checked;I(q.filter(v=>R.has(String(v))))},onSelect:z=>{I(z.filter(q=>R.has(String(q))).slice(0,1))}}):jt(Zl,{image:Zl.PRESENTED_IMAGE_SIMPLE,description:h?i||"\u6682\u65E0\u53EF\u9009\u62E9\u7684\u6587\u4EF6":"\u6211\u7684\u6587\u4EF6\u5C1A\u672A\u542F\u7528"})})}),jt("div",{className:"shrink-0 text-xs text-muted",children:O})]})})};export{J0 as FileManager,Qo as MarkdownEditor,bl as MoveCopyToProjectModal,dx as MyFileSelectorModal,en as ProjectRole,Rr as UIFilePreview,Xt as uiFilePreview};
|
|
4898
|
+
`,Ur=class{constructor(){let t=URL.createObjectURL(new Blob([hh],{type:"text/javascript"})),n=new Worker(t);return setTimeout(()=>URL.revokeObjectURL(t),0),n}};import{uiToast as bh}from"@spacecorexdev/core/ui";var vh=100*1024*1024,yl=20*1024*1024,_h=2*1024*1024,wl=3e4,Aa=class{constructor(){cn(this,"workers",new Map);cn(this,"worker",null);cn(this,"isReady",!1);cn(this,"readyPromise");cn(this,"resolveReady");this.readyPromise=new Promise(t=>{this.resolveReady=t}),this.initWorker()}initWorker(){try{this.worker=new Ur,this.worker.onmessage=t=>{let{type:n,id:r,data:o,error:i}=t.data;switch(n){case"ready":{this.isReady=!0,this.resolveReady(),console.log("[Worker] \u5DEE\u5206\u8BA1\u7B97\u6A21\u5757\u5DF2\u5C31\u7EEA");break}case"progress":{let l=this.workers.get(r);l&&l.onProgress&&l.onProgress(o.percent,o.message);break}case"success":{let l=this.workers.get(r);l&&(l.resolve({compressedPatch:o.compressedPatch,patchSize:o.patchSize}),this.workers.delete(r));break}case"error":{let l=this.workers.get(r);l&&(l.reject(new Error(i||"Worker \u8BA1\u7B97\u5931\u8D25")),this.workers.delete(r));break}case"aborted":this.workers.delete(r);break}},this.worker.onerror=t=>{console.error("[Worker] Worker \u9519\u8BEF:",t),this.terminate(),setTimeout(()=>this.initWorker(),1e3)}}catch(t){console.error("[Worker] \u521D\u59CB\u5316 Worker \u5931\u8D25:",t)}}async waitForReady(){if(!this.isReady)return this.readyPromise}async computeDelta(t,n,r){return await this.waitForReady(),new Promise((o,i)=>{if(!this.worker){i(new Error("Worker \u672A\u521D\u59CB\u5316"));return}let l=`task_${Date.now()}_${Math.random().toString(36).substr(2,9)}`,d={id:l,worker:this.worker,resolve:o,reject:i,onProgress:r};this.workers.set(l,d),this.worker.postMessage({type:"computeDelta",id:l,data:{oldBuffer:t,newBuffer:n,taskId:l}})})}terminate(){this.workers.forEach((t,n)=>{t.worker.postMessage({type:"abort",data:{taskId:n}})}),this.workers.clear(),this.worker&&(this.worker.terminate(),this.worker=null),this.isReady=!1,this.readyPromise=new Promise(t=>{this.resolveReady=t})}},xh=new Aa,Sh=(e,t,n)=>Promise.race([e,new Promise((r,o)=>setTimeout(()=>o(new Error(n)),t))]);var Vr=e=>new Promise((t,n)=>{jr.crypt.crc32_file(e,r=>{r===0?n(new Error("CRC32 \u8BA1\u7B97\u5931\u8D25")):t(r)})}),wn=e=>{switch(e.toLowerCase().split(".").pop()||""){case"pptx":return"application/vnd.openxmlformats-officedocument.presentationml.presentation";case"xlsx":return"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";case"md":return"text/markdown";default:return"application/octet-stream"}},Zr=e=>{let t=e.trim();return t=jr.string.replace(t,"/",""),t=jr.string.replace(t,"\\",""),t},Wr=e=>{let t=e.lastIndexOf(".");return t<=0?"":e.slice(t)},Na=e=>{let t=Wr(e);return t?e.slice(0,e.length-t.length):e},Ht=async(e,t,n,r)=>{let o=wn(t),i=new File([e],t,{type:o}),l=await Vr(i);return e.size>vh?new Promise((d,a)=>a("\u6587\u4EF6\u5927\u5C0F\u8D85\u8FC7100MB\uFF0C\u65E0\u6CD5\u4E0A\u4F20")):new Promise((d,a)=>{gh.uploadSingle(i,l,n,s=>{a(s)},s=>{if(s.code===er.SUCCESS){r?.(!0);let c=typeof s.data=="string"?s.data:t;d({crc32:l,serverFileName:c})}else r?.(!1),bh.error(s.message||"\u6587\u4EF6\u4E0A\u4F20\u5931\u8D25"),a(new Error(s.message||"\u6587\u4EF6\u4E0A\u4F20\u5931\u8D25"))})})};var La=async(e,t,n,r,o,i,l=!1,d,a)=>{try{let s=a?.updateFile||(D=>wh.project.file.updateFile(D)),c=a?a.updateFileDelta:(D=>yh.updateFileDelta(D)),p=l||!c,b=n.size,m=r.size,_=wn(t),h=new File([r],t,{type:_}),x=await Vr(h);if(p){console.log("[\u4E0A\u4F20\u4F18\u5316] \u5F3A\u5236\u5168\u91CF\u4E0A\u4F20"),o?.(.05);let{serverFileName:D}=await Ht(r,t,W=>o?.(.05+W*.95)),w=await s({fileId:e,fileName:t,fileSize:m,crc32:x,fileResourcePath:D});if(w.code!==er.SUCCESS)throw new Error(w.message||"\u66F4\u65B0\u6587\u4EF6\u5143\u6570\u636E\u5931\u8D25");return o?.(1),i?.(!0),{crc32:x,serverFileName:D}}if(b>yl||m>yl){console.log(`[\u4E0A\u4F20\u4F18\u5316] \u6587\u4EF6\u8FC7\u5927\uFF08\u65E7: ${(b/1024/1024).toFixed(2)}MB, \u65B0: ${(m/1024/1024).toFixed(2)}MB\uFF09\uFF0C\u8DF3\u8FC7\u5DEE\u5206\u8BA1\u7B97`),o?.(.05);let{serverFileName:D}=await Ht(r,t,W=>o?.(.05+W*.95)),w=await s({fileId:e,fileName:t,fileSize:m,crc32:x,fileResourcePath:D});if(w.code!==er.SUCCESS)throw new Error(w.message||"\u66F4\u65B0\u6587\u4EF6\u5143\u6570\u636E\u5931\u8D25");return o?.(1),i?.(!0),{crc32:x,serverFileName:D}}o?.(.02);let M=await n.arrayBuffer(),S=await r.arrayBuffer();o?.(.05);let A;try{let D=await Sh(xh.computeDelta(M,S,(w,W)=>{let k=.05+w*.45;o?.(k),console.log(`[\u5DEE\u5206\u8BA1\u7B97] ${W} (${(w*100).toFixed(0)}%)`)}),wl,`\u5DEE\u5206\u8BA1\u7B97\u8D85\u65F6\uFF08${wl/1e3}\u79D2\uFF09\uFF0C\u81EA\u52A8\u56DE\u9000\u5230\u5B8C\u6574\u4E0A\u4F20`);A=new Uint8Array(D.compressedPatch),console.log(`[\u4E0A\u4F20\u4F18\u5316] \u5DEE\u5206\u8BA1\u7B97\u5B8C\u6210\uFF0C\u538B\u7F29\u540E\u5927\u5C0F: ${(D.patchSize/1024).toFixed(2)}KB`)}catch(D){console.warn("[\u4E0A\u4F20\u4F18\u5316] \u5DEE\u5206\u8BA1\u7B97\u5931\u8D25\uFF0C\u81EA\u52A8\u56DE\u9000\u5230\u5B8C\u6574\u4E0A\u4F20\u3002\u539F\u56E0:",D instanceof Error?D.message:D),o?.(.5);let{serverFileName:w}=await Ht(r,t,k=>o?.(.5+k*.5)),W=await s({fileId:e,fileName:t,fileSize:m,crc32:x,fileResourcePath:w});if(W.code!==er.SUCCESS)throw new Error(W.message||"\u66F4\u65B0\u6587\u4EF6\u5143\u6570\u636E\u5931\u8D25");return o?.(1),i?.(!0),{crc32:x,serverFileName:w}}if(o?.(.5),A.length===0)return o?.(1),console.log("[\u4E0A\u4F20\u4F18\u5316] \u6587\u4EF6\u672A\u53D8\u5316\uFF0C\u65E0\u9700\u4E0A\u4F20"),i?.(!0),{crc32:x,serverFileName:t};if(A.length>_h){console.log(`[\u4E0A\u4F20\u4F18\u5316] \u5DEE\u5F02\u8FC7\u5927\uFF08${(A.length/1024).toFixed(2)}KB > 300KB\uFF09\uFF0C\u4F7F\u7528\u5B8C\u6574\u4E0A\u4F20`),o?.(.55);let{serverFileName:D}=await Ht(r,t,W=>o?.(.55+W*.45)),w=await s({fileId:e,fileName:t,fileSize:m,crc32:x,fileResourcePath:D});if(w.code!==er.SUCCESS)throw new Error(w.message||"\u66F4\u65B0\u6587\u4EF6\u5143\u6570\u636E\u5931\u8D25");return o?.(1),i?.(!0),{crc32:x,serverFileName:D}}o?.(.6);let Z=8192,O="";for(let D=0;D<A.length;D+=Z){let w=A.subarray(D,Math.min(D+Z,A.length));O+=String.fromCharCode(...w)}let I=btoa(O);o?.(.7);let J=await c({fileId:e,deltaData:I,deltaSize:A.length,newFileSize:m,crc32:x});if(console.log("[\u4E0A\u4F20\u8BCA\u65AD] updateFileDelta \u54CD\u5E94:",{code:J.code,message:J.message,data:J.data}),o?.(1),J.code!==er.SUCCESS){if(console.warn(`[\u4E0A\u4F20\u4F18\u5316] \u5DEE\u5206\u4E0A\u4F20\u5931\u8D25(code=${J.code})\uFF0C\u56DE\u9000\u5168\u91CF\u4E0A\u4F20:`,J.message),d&&!await d({code:J.code,message:J.message}))throw o?.(1),i?.(!1),new Error("\u7528\u6237\u53D6\u6D88\u4E0A\u4F20");let{serverFileName:D}=await Ht(r,t,W=>o?.(.05+W*.95)),w=await s({fileId:e,fileName:t,fileSize:m,crc32:x,fileResourcePath:D});if(w.code!==er.SUCCESS)throw new Error(w.message||"\u66F4\u65B0\u6587\u4EF6\u5143\u6570\u636E\u5931\u8D25");return o?.(1),i?.(!0),{crc32:x,serverFileName:D}}let ne=J.data||t;return console.log("[\u4E0A\u4F20\u4F18\u5316] \u5DEE\u5206\u4E0A\u4F20\u6210\u529F"),o?.(1),i?.(!0),{crc32:x,serverFileName:ne}}catch(s){throw i?.(!1),console.error("\u589E\u91CF\u4E0A\u4F20\u5931\u8D25:",s),s}},bl=async(e,t,n,r,o,i,l=!1,d,a)=>{let s=new Blob([n],{type:"text/markdown"}),c=new Blob([r],{type:"text/markdown"});return La(e,t,s,c,o,i,l,d,a)},vl=async e=>{let t=[],n=(o,i="")=>new Promise(l=>{if(o.isFile)o.file(d=>{let a=i?`${i}/${d.name}`:d.name;t.push({file:d,relativePath:a}),l()},()=>l());else if(o.isDirectory){let d=o.createReader(),a=i?`${i}/${o.name}`:o.name;d.readEntries(c=>{if(c.length===0){l();return}Promise.all(c.map(p=>n(p,a))).then(()=>l())},()=>l())}else l()}),r=[];for(let o=0;o<e.length;o++){let l=e[o].webkitGetAsEntry?.();l&&r.push(n(l))}return await Promise.all(r),t};Vn();import{uiConfirm as No}from"@spacecorexdev/core/ui";import{getViewMode as Mh}from"@spacecorexdev/core/utils";import{copyToClipboard as _l}from"@spacecorexdev/core/utils";import{uiToast as qt}from"@spacecorexdev/core/ui";var Ih="file-manager",xl=255,Lo="__contracts__",Sl=async(e,t)=>{if(t.isLocalOnly)return{result:"no-conflict"};try{let n=await e.getDetail(t.id);if(n.code!==dt.SUCCESS||!n.data)return{result:"no-conflict"};let r=new Date(t.uploadTime).getTime(),o=new Date(n.data.uploadTime).getTime();return!isNaN(r)&&!isNaN(o)&&o>r?{result:await No.confirm("\u5DF2\u7ECF\u6709\u5176\u4ED6\u7528\u6237\u66F4\u65B0\u4E86\u6587\u4EF6\uFF0C\u662F\u5426\u8986\u76D6\uFF1F")?"overwrite":"cancel",serverCrc32:n.data.crc32,serverFileResourcePath:n.data.fileResourcePath}:{result:"no-conflict",serverCrc32:n.data.crc32,serverFileResourcePath:n.data.fileResourcePath}}catch(n){console.warn("\u68C0\u67E5\u6587\u4EF6\u66F4\u65B0\u51B2\u7A81\u5931\u8D25:",n)}return{result:"no-conflict"}},El=async(e,t)=>{try{let n=await e.getDetail(t);if(n.code===dt.SUCCESS&&n.data)return{uploadTime:n.data.uploadTime,updateTime:n.data.updateTime}}catch(n){console.warn("\u83B7\u53D6\u6700\u65B0\u6587\u4EF6\u5143\u6570\u636E\u5931\u8D25:",n)}return null},Dh={pptx:".pptx",md:".md",xlsx:".xlsx",docx:".docx",rdoc:".rdoc"};async function Rh(e,t){let n=[];for(let r of e){let o=r.status==="SIGNED",i=r.tag||"\u672A\u5206\u7C7B",l=`contract-folder-${r.id}`,d=`/${Lo}/`;n.push({id:l,isSecure:!1,projectId:t,parentId:null,fileName:r.id,filePath:d,fileType:"folder",fileSize:0,crc32:0,fileResourcePath:"",uploaderName:"",uploadTime:new Date(r.updateTime),createTime:new Date(r.updateTime),updateTime:new Date(r.updateTime),createBy:r.createBy,updateBy:r.createBy,isContractSubfolder:!0,contractSigned:o,contractTag:i,descs:r.name||"\u672A\u547D\u540D\u5408\u540C"});let a=!1;if(!r.fileResourcePaths)a=!1;else{let s=[];try{s=JSON.parse(r.fileResourcePaths)}catch{a=!1}if(Array.isArray(s)&&s.length>0){a=!0;for(let c of s)c&&n.push({id:`contract-file-${r.id}-${c}`,isSecure:!1,projectId:t,parentId:l,fileName:c,filePath:`${d}${r.id}/`,fileType:wn(c),fileSize:0,crc32:0,fileResourcePath:`/private/projects/${t}/contracts/${r.id}/seal/${c}`,uploaderName:"\u5408\u540C",uploadTime:new Date(r.updateTime),createTime:new Date(r.updateTime),updateTime:new Date(r.updateTime),createBy:r.createBy,updateBy:r.createBy,isContractLink:!0,contractSigned:o,contractTag:i,descs:r.name})}else a=!1}if(!o&&!a)try{let s=await Tl.project.contract.getVersionList({contractId:r.id});if(s.code===dt.SUCCESS&&s.data?.length){let c=s.data.reduce((p,b)=>(b.versionNumber??0)>(p.versionNumber??0)?b:p);c.fileResourcePath&&c.fileName&&n.push({id:`contract-file-${r.id}-v${c.versionNumber}-${c.fileName}`,isSecure:!1,projectId:t,parentId:l,fileName:c.fileName,filePath:`${d}${r.id}/`,fileType:wn(c.fileName),fileSize:c.fileSize||0,crc32:0,fileResourcePath:c.fileResourcePath,uploaderName:"\u5408\u540C",uploadTime:new Date(c.createTime||r.updateTime),createTime:new Date(c.createTime||r.updateTime),updateTime:new Date(c.createTime||r.updateTime),createBy:c.createBy||r.createBy,updateBy:c.createBy||r.createBy,isContractLink:!0,contractSigned:!1,contractTag:i,descs:r.name})}}catch(s){console.warn("[\u5408\u540C\u6587\u4EF6\u5939] \u52A0\u8F7D\u672A\u7B7E\u7EA6\u5408\u540C\u7248\u672C\u5931\u8D25:",r.id,s)}}return n}function Ah(e){return{id:Po,isSecure:!1,projectId:e,parentId:null,fileName:Lo,filePath:"/",fileType:"folder",fileSize:0,crc32:0,fileResourcePath:"",uploaderName:"",uploadTime:new Date,createTime:new Date,updateTime:new Date,createBy:"",updateBy:"",isVirtualContractFolder:!0}}function Cl(e,t){if(t!=="fileType"||!e.some(a=>a.isContractSubfolder||a.isContractLink))return e;let r=`${`/${Lo}`}/`,o=new Map;e.forEach(a=>{a.isContractSubfolder&&o.set(a.fileName,a.contractTag||"\u672A\u5206\u7C7B")});let i=[],l=new Map,d=(a,s,c)=>{let p=`contract-tag-${a}`,b=l.get(a);return b?new Date(c).getTime()>new Date(b.uploadTime).getTime()&&(b.uploadTime=c,b.updateTime=c):(b={id:p,isSecure:!1,projectId:s,parentId:null,fileName:a,filePath:r,fileType:"folder",fileSize:0,crc32:0,fileResourcePath:"",uploaderName:"",uploadTime:c,createTime:c,updateTime:c,createBy:"",updateBy:"",isContractTagFolder:!0},l.set(a,b),i.push(b)),p};for(let a of e)if(a.isContractSubfolder){let s=a.contractTag||"\u672A\u5206\u7C7B",c=d(s,a.projectId,new Date(a.uploadTime));i.push({...a,filePath:`${r}${s}/`,parentId:c})}else if(a.filePath&&a.filePath.startsWith(r)){let s=a.filePath.substring(r.length),c=s.split("/")[0],p=a.contractTag||o.get(c);p?(d(p,a.projectId,new Date(a.uploadTime)),i.push({...a,filePath:`${r}${p}/${s}`})):i.push(a)}else i.push(a);return i}function Fl(e){let t=new Date(e.updatedAt);return{id:e.localId,localId:e.localId,isLocalOnly:e.isLocalOnly,hasUnsyncedChanges:e.hasUnsyncedChanges,isSecure:!1,projectId:e.projectId,parentId:e.parentId,fileName:e.fileName,filePath:"/",fileType:e.fileType,fileSize:e.fileSize,crc32:0,hasLocalCache:!0,fileResourcePath:"",uploaderName:"\u6211",uploadTime:t,createTime:new Date(e.createdAt),updateTime:t,createBy:e.userId,updateBy:e.userId}}function Nh(e){let t={current:null};kl.info({title:"\u8BF7\u624B\u52A8\u590D\u5236\u94FE\u63A5",content:On.createElement(kh,{value:e,readOnly:!0,ref:n=>{t.current=n},onFocus:n=>n.target.select()}),okText:"\u5173\u95ED",width:480,afterClose:()=>{},onOk:()=>{}}),setTimeout(()=>{t.current?.focus?.(),t.current?.select?.()},100)}var Pl=(e,t,n,r,o)=>{let[i,l]=Fh(),d=tr(0),a=tr(r),s=tr(n),c=tr(()=>{}),p=tr(new Map),b=tr([]);a.current=r,s.current=n;let m=o?.api||Yr,h=(o?.features||{}).contracts!==!1,x=o?.allowViewerContracts===!0,M=tr(m);M.current=m,Ao(()=>{if(b.current.length===0)return;let u=Ln(Cl(b.current,s.current.sortBy));a.current.setFileTreeData(lt(u)),a.current.setFiles(u)},[n.sortBy]),Ao(()=>{let u=p.current;return()=>{u.forEach(C=>clearInterval(C)),u.clear()}},[]),Ao(()=>{let u=()=>a.current.setIsOnline(!0),C=()=>a.current.setIsOnline(!1);return window.addEventListener("online",u),window.addEventListener("offline",C),a.current.setIsOnline(typeof navigator<"u"?navigator.onLine:!0),()=>{window.removeEventListener("online",u),window.removeEventListener("offline",C)}},[]);let S=me(async()=>{a.current.setLoading(!0);try{let C=(await Bn.getUserInfo({forceRefresh:!1}))?.id||"local-user",T=[];try{T=await ls(C,e)}catch(g){console.warn("\u52A0\u8F7D\u672C\u5730\u6587\u4EF6\u5217\u8868\u5931\u8D25:",g)}let P=[],z=typeof navigator<"u"?navigator.onLine:!0;if(z){let g=await m.listFiles(e);g.code===dt.SUCCESS&&g.data&&(P=g.data),jn.saveFileMetaBatch(e,P).catch(v=>console.warn("\u6301\u4E45\u5316\u6587\u4EF6\u5143\u6570\u636E\u7F13\u5B58\u5931\u8D25:",v))}else{let g=await jn.listFileMetaByProject(e),v=T.filter(Y=>!Y.isLocalOnly&&Y.serverFileId&&Y.originalServerFile).map(Y=>Y.originalServerFile),F=new Set([...g.map(Y=>Y.id),...v.map(Y=>Y.id)]),H=(await $e.getCacheList()).map(Y=>Y.fileId).filter(Y=>!F.has(Y)),R=[];for(let Y of H){let fe=await jn.getFileMeta(Y);fe&&fe.projectId===e&&R.push(fe)}let te=new Map;for(let Y of g)te.set(Y.id,Y);for(let Y of v)te.has(Y.id)||te.set(Y.id,Y);for(let Y of R)te.has(Y.id)||te.set(Y.id,Y);P=Array.from(te.values())}let N=T.filter(g=>g.isLocalOnly).map(g=>{let v=Fl(g),F=g.parentId?P.find(H=>H.id===g.parentId):void 0;return{...v,filePath:F?`${F.filePath}${F.fileName}/`:"/"}}),ue=new Set(T.filter(g=>!g.isLocalOnly&&g.serverFileId&&g.hasUnsyncedChanges).map(g=>g.serverFileId)),de={};for(let g of T)g.serverFileId&&(de[g.serverFileId]=g);let G=await Promise.all(P.map(async g=>{let v=de[g.id],F=g.fileType!=="folder"?!!v||await $e.hasCache(g.id):!1;return{...g,hasUnsyncedChanges:ue.has(g.id),localId:v?.localId,hasLocalCache:F}})),le=e===C,ye=[],Fe=null;if(h&&!le&&(t!=="viewer"||x)){let g=G.find(v=>v.fileType==="folder"&&v.fileName===Lo&&v.filePath==="/");if(g)g.isVirtualContractFolder=!0,Fe=g.id;else{let v=Ah(e);G.push(v),Fe=v.id}if(z&&Fe)try{let v=await Tl.project.contract.getContractList({projectId:e,pageNum:1,pageSize:1e4});v.code===dt.SUCCESS&&v.data?.list?.length&&(ye=await Rh(v.data.list,e))}catch(v){console.warn("[\u5408\u540C\u6587\u4EF6\u5939] \u52A0\u8F7D\u5408\u540C\u5217\u8868\u5931\u8D25:",v)}}let f=To([...G,...N,...ye]);b.current=f;let y=Ln(Cl(f,s.current.sortBy));a.current.setFileTreeData(lt(y)),a.current.setFiles(y)}catch(u){console.error("\u52A0\u8F7D\u6587\u4EF6\u5217\u8868\u5931\u8D25:",u),Ee.error("\u52A0\u8F7D\u6587\u4EF6\u5217\u8868\u5931\u8D25")}finally{a.current.setLoading(!1)}},[e,t,m,h,x]),A=me(async u=>{try{let{files:C,selectedFolderId:T}=s.current,P=C.find(G=>G.id===T),z=u[0],{crc32:N,serverFileName:ue}=await Ht(z,z.name,()=>{}),de=await m.addFile(e,{fileName:z.name,filePath:P?`${P.filePath}${P.fileName}/`:"/",fileType:z.type,fileSize:z.size,crc32:N,fileResourcePath:ue});de.code===dt.SUCCESS&&(await $e.saveToCache(de.data.fileId,z,N,z.size),S())}catch{Ee.error("\u6587\u4EF6\u4E0A\u4F20\u5931\u8D25")}},[e,m,S]),Z=me(u=>{if(u.fileType==="folder")return;let C=typeof navigator<"u"?navigator.onLine:!0;if(u.isLocalOnly||u.hasUnsyncedChanges||!C&&u.localId){a.current.setEditingFile(u),a.current.setEditorVisible(!0),a.current.setPreviewLocalId(u.localId||null),a.current.setPreviewIsLocalOnly(!!u.isLocalOnly),a.current.setPreviewHasUnsyncedChanges(!!u.hasUnsyncedChanges),a.current.setPreviewFileName(u.fileName);return}a.current.setPreviewFileName(u.fileName),a.current.setPreviewUrl(u.fileResourcePath),a.current.setPreviewCrc32(u.isContractLink?void 0:u.crc32),a.current.setPreviewLocalId(null),a.current.setPreviewIsLocalOnly(!1),a.current.setPreviewHasUnsyncedChanges(!1);let T=s.current,P=T.files.find(z=>z.id===u.id);if(P&&P.crc32!==u.crc32){let z=T.files.map(N=>N.id===u.id?{...N,crc32:u.crc32}:N);a.current.setFiles(z),a.current.setFileTreeData(lt(z))}a.current.setPreviewVisible(!0),a.current.setPreviewingFile(u),l(z=>{let N=new URLSearchParams(z);return N.set("fileid",u.id),N},{replace:!0})},[l]),O=me(async u=>{if(u.localId)try{let C=await Fn(u.localId);if(C&&C.content){let T=C.content,P;typeof T=="string"?P=new Blob([T],{type:"text/markdown"}):P=new Blob([T],{type:wn(u.fileName)});let z=URL.createObjectURL(P),N=document.createElement("a");N.href=z,N.download=u.fileName,document.body.appendChild(N),N.click(),document.body.removeChild(N),URL.revokeObjectURL(z),qt.success("\u6587\u4EF6\u5DF2\u4E0B\u8F7D\uFF0C\u8BF7\u67E5\u770B\u6D4F\u89C8\u5668\u7684\u4E0B\u8F7D\u6587\u4EF6\u5939");return}}catch(C){console.warn("\u4E0B\u8F7D\u672C\u5730\u6587\u4EF6\u5931\u8D25\uFF0C\u56DE\u9000\u5230\u670D\u52A1\u5668\u4E0B\u8F7D:",C)}if(u.isLocalOnly){qt.error("\u672C\u5730\u6587\u4EF6\u5185\u5BB9\u4E0D\u53EF\u7528");return}Xt.downloadFile(u.fileResourcePath,u.fileName,u.id,u.crc32).then(()=>{c.current(u.id)}).catch(()=>{})},[]),I=me(async u=>{if(u.fileType!=="folder")return;let C=m.downloadFolder,T=m.getFolderDownloadStatus;if(!C||!T){qt.error("\u5F53\u524D\u573A\u666F\u4E0D\u652F\u6301\u6587\u4EF6\u5939\u4E0B\u8F7D");return}if(!s.current.isManager){qt.error("\u65E0\u6743\u4E0B\u8F7D\u6B64\u6587\u4EF6\u5939");return}a.current.setContextMenuVisible(!1),a.current.setContextMenuRecord(null);try{let P=await C(e,u.filePath||"/",u.fileName);if(P.code!==dt.SUCCESS||!P.data||!P.data.jobId){qt.error(P.message||"\u53D1\u8D77\u6587\u4EF6\u5939\u6253\u5305\u5931\u8D25");return}let z=P.data.jobId,N=`${u.fileName.replace(/[\\/:*?"<>|]/g,"_")}.zip`;qt.info(`\u6B63\u5728\u6253\u5305\u6587\u4EF6\u5939\u300C${u.fileName}\u300D\uFF0C\u5B8C\u6210\u540E\u5C06\u81EA\u52A8\u4E0B\u8F7D\uFF0C\u4E5F\u53EF\u5728\u901A\u77E5\u4E2D\u5FC3\u67E5\u770B`);let ue=0,de=setInterval(async()=>{if(ue+=1,ue>300){clearInterval(de),p.current.delete(z),qt.info("\u6253\u5305\u4ECD\u5728\u8FDB\u884C\uFF0C\u5B8C\u6210\u540E\u53EF\u5728\u901A\u77E5\u4E2D\u5FC3\u67E5\u770B\u4E0B\u8F7D\u5730\u5740");return}try{let G=await T(z);if(G.code!==dt.SUCCESS){clearInterval(de),p.current.delete(z),qt.error(G.message||"\u6253\u5305\u4EFB\u52A1\u4E0D\u5B58\u5728\u6216\u5DF2\u8FC7\u671F");return}if(!G.data)return;let le=G.data;if(le.status==="pending")return;clearInterval(de),p.current.delete(z),le.status==="success"&&le.url?(qt.success("\u6587\u4EF6\u5939\u6253\u5305\u5B8C\u6210\uFF0C\u5373\u5C06\u5F00\u59CB\u4E0B\u8F7D"),Xt.downloadFile(le.url,le.fileName||N).catch(()=>{})):qt.error(le.message||"\u6587\u4EF6\u5939\u6253\u5305\u5931\u8D25")}catch(G){console.warn("\u67E5\u8BE2\u6587\u4EF6\u5939\u6253\u5305\u72B6\u6001\u5931\u8D25:",G)}},2e3);p.current.set(z,de)}catch(P){console.error("\u53D1\u8D77\u6587\u4EF6\u5939\u6253\u5305\u5931\u8D25:",P),qt.error("\u53D1\u8D77\u6587\u4EF6\u5939\u6253\u5305\u5931\u8D25")}},[e,m]),J=me(u=>{a.current.setShareToWechatFile(u),a.current.setShareToWechatVisible(!0)},[]),ne=me(async u=>{let C=`${window.location.origin}/filepreview?fileid=${u.id}&path=${encodeURIComponent(u.fileResourcePath)}&name=${encodeURIComponent(u.fileName)}`;try{await _l(C),Ee.success("\u94FE\u63A5\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F")}catch{Nh(C)}},[]),D=me(u=>{let C;if(u.isContractSubfolder?C=u.id.match(/^contract-folder-([0-9a-f]{24})$/)?.[1]:C=u.id.match(/^contract-file-([0-9a-f]{24})-/)?.[1],!C){Ee.warning("\u65E0\u6CD5\u83B7\u53D6\u5408\u540C\u4FE1\u606F");return}l(T=>{let P=new URLSearchParams(T);return P.set("tab","contracts"),P.set("contractId",C),P},{replace:!0})},[l]),w=me(u=>{l(C=>{let T=new URLSearchParams(C);return T.set("tab","contracts"),T.set("createContract","1"),T.delete("contractId"),T},{replace:!0})},[l]),W=me(async u=>{try{let C=await new Promise(P=>{let z={current:30},N=[{days:7,label:"7\u5929"},{days:30,label:"30\u5929"},{days:90,label:"90\u5929"},{days:365,label:"1\u5E74"}],ue=()=>{let[G,le]=Ch("30");return Ao(()=>{z.current=parseInt(G)},[G]),On.createElement("div",{className:"flex flex-col gap-4"},[On.createElement("div",null,"\u9009\u62E9\u6709\u6548\u671F"),On.createElement("div",{className:"flex gap-2"},N.map(ye=>On.createElement("label",{key:ye.days,className:`flex items-center gap-1 px-3 py-2 rounded cursor-pointer border cursor-pointer ${G===String(ye.days)?"border-blue-500 bg-blue-50":"border-gray-300 hover:border-gray-400"}`,onClick:()=>le(String(ye.days))},[On.createElement("input",{type:"radio",name:"expireTime",value:ye.days,checked:G===String(ye.days),onChange:()=>le(String(ye.days)),className:"hidden"}),On.createElement("span",null,ye.label)])))])},de=kl.confirm({className:"ant-modal-nofull",title:"\u9009\u62E9\u4E34\u65F6\u94FE\u63A5\u6709\u6548\u671F",content:On.createElement(ue),onOk:()=>{let G=z.current;P({seconds:G*24*60*60,label:N.find(le=>le.days===G)?.label||`${G}\u5929`})},onCancel:()=>{P({seconds:0,label:""})},okText:"\u751F\u6210\u94FE\u63A5",cancelText:"\u53D6\u6D88",width:400});return()=>de.destroy()});if(!C.seconds||!m.generateTempAccessToken)return;let T=await m.generateTempAccessToken(u.id,C.seconds);if(T.code===dt.SUCCESS&&T.data){let P=T.data,z=`${window.location.origin}/filepreview?fileid=${u.id}&path=${encodeURIComponent(u.fileResourcePath)}&name=${encodeURIComponent(u.fileName||"")}&token=${encodeURIComponent(P)}`;if(u.fileType==="folder"){let N=new URLSearchParams({token:P,folderId:u.id,name:u.fileName||"",path:`${u.filePath}${u.fileName}/`});z=`${window.location.origin}/fileshare?${N.toString()}`}await _l(z),Ee.success(`\u4E34\u65F6\u94FE\u63A5\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F\uFF08\u6709\u6548\u671F ${C.label}\uFF09`)}else Ee.error(T.message||"\u751F\u6210\u4E34\u65F6\u94FE\u63A5\u5931\u8D25")}catch(C){console.error("\u751F\u6210\u4E34\u65F6\u94FE\u63A5\u5931\u8D25:",C),Ee.error("\u751F\u6210\u4E34\u65F6\u94FE\u63A5\u5931\u8D25")}},[m]),k=me(async u=>{try{let{files:C}=s.current,T=C.find(N=>N.id===u);if(T?.isContractLink||T?.isVirtualContractFolder||T?.isContractSubfolder||T?.isContractTagFolder){Ee.warning("\u5408\u540C\u9644\u4EF6\u4E0D\u652F\u6301\u5220\u9664");return}if(!await No.confirm("\u786E\u8BA4\u5220\u9664\u6587\u4EF6\u5417\uFF1F"))return;if(T?.isLocalOnly){T.localId&&await kn(T.localId);let N=C.filter(ue=>ue.id!==u);a.current.setFiles(N),a.current.setFileTreeData(lt(N)),Ee.success("\u6587\u4EF6\u5220\u9664\u6210\u529F");return}if((await m.removeFile(u)).code===dt.SUCCESS){if(T?.localId)try{await kn(T.localId)}catch{}Ee.success("\u6587\u4EF6\u5220\u9664\u6210\u529F"),S()}}catch{Ee.error("\u6587\u4EF6\u5220\u9664\u5931\u8D25")}},[m,S]),L=me(u=>s.current.expandedRowKeys.includes(u),[]),$=u=>!!u.isContractLink||!!u.isVirtualContractFolder||!!u.isContractSubfolder||!!u.isContractTagFolder,B=me(async(u,C)=>{let{files:T}=s.current,z=Array.from(new Set(u)).map(Fe=>T.find(f=>f.id===Fe)).filter(Fe=>!!Fe),N=z.filter(Fe=>{if($(Fe)||Fe.id===C)return!1;if(C){if(ko(Fe,T).includes(C))return!1}else if(Fe.filePath==="/")return!1;return!0}),ue=N.filter(Fe=>!N.some(f=>f.id!==Fe.id&&f.fileType==="folder"&&ko(f,T).includes(Fe.id)));if(ue.length===0){let Fe=z.some($),f=!!C&&z.some(y=>ko(y,T).includes(C));Fe?Ee.warning("\u5408\u540C\u9644\u4EF6\u4E0D\u652F\u6301\u79FB\u52A8"):f&&Ee.warning("\u65E0\u6CD5\u5C06\u6587\u4EF6\u5939\u79FB\u52A8\u5230\u5176\u5B50\u9879\u4E2D");return}let de=C?T.find(Fe=>Fe.id===C):void 0,G=de?de.filePath+de.fileName+"/":"/",le=0,ye=0;for(let Fe of ue)try{(await m.moveFile(e,{oldFileName:Fe.fileName,oldFilePath:Fe.filePath,newFileName:Fe.fileName,newFilePath:G})).code===dt.SUCCESS?le++:ye++}catch{ye++}le>0&&(a.current.setSelectedIds([]),S()),ye===0?Ee.success(ue.length>1?`\u5DF2\u79FB\u52A8 ${le} \u9879`:"\u79FB\u52A8\u6210\u529F"):le>0?Ee.warning(`\u5DF2\u79FB\u52A8 ${le} \u9879\uFF0C${ye} \u9879\u79FB\u52A8\u5931\u8D25`):Ee.error("\u79FB\u52A8\u5931\u8D25")},[e,m,S]),K=me((u,C)=>{B([u],C)},[B]),q=me(u=>{a.current.setRenameFileId(u.id),a.current.setRenameFileName(u.fileName),a.current.setRenameVisible(!0)},[]),ge=me(u=>{a.current.setDescsFileId(u.id),a.current.setDescsValue(u.descs||""),a.current.setDescsVisible(!0),a.current.setContextMenuVisible(!1),a.current.setContextMenuRecord(null)},[]),oe=me(async(u,C)=>{if(u)try{let T=await m.updateFileDescs({fileId:u,descs:C.trim().slice(0,xl)});T.code===dt.SUCCESS?(Ee.success("\u5907\u6CE8\u5DF2\u4FDD\u5B58"),a.current.setDescsVisible(!1),a.current.setDescsFileId(null),a.current.setDescsValue(""),S()):Ee.error(T.message||"\u5907\u6CE8\u4FDD\u5B58\u5931\u8D25")}catch{Ee.error("\u5907\u6CE8\u4FDD\u5B58\u5931\u8D25")}},[m,S]),E=me(async(u,C)=>{let{files:T}=s.current,P=T.find(N=>N.id===u);if(!P)return;if(P.isContractLink||P.isVirtualContractFolder||P.isContractSubfolder||P.isContractTagFolder){Ee.warning("\u5408\u540C\u9644\u4EF6\u4E0D\u652F\u6301\u91CD\u547D\u540D"),a.current.setRenameVisible(!1);return}let z=Zr(C);if(P.fileType!=="folder"){let N=Wr(P.fileName);Wr(z).toLowerCase()!==N.toLowerCase()&&Ee.warning(N?`\u6269\u5C55\u540D\u4E0D\u5141\u8BB8\u4FEE\u6539\uFF0C\u5DF2\u4FDD\u7559\u539F\u6269\u5C55\u540D ${N}`:"\u6269\u5C55\u540D\u4E0D\u5141\u8BB8\u4FEE\u6539\uFF0C\u5DF2\u53BB\u9664\u8F93\u5165\u7684\u6269\u5C55\u540D"),z=Na(z)+N}if(z!==C&&a.current.setRenameFileName(z),P.fileName!==z)try{(await m.moveFile(e,{oldFileName:P.fileName,oldFilePath:P.filePath,newFileName:z,newFilePath:P.filePath})).code===dt.SUCCESS&&(Ee.success("\u91CD\u547D\u540D\u6210\u529F"),a.current.setRenameVisible(!1),S())}catch{Ee.error("\u91CD\u547D\u540D\u5931\u8D25")}},[e,m,S]),be=me(()=>{a.current.setIsEncryptedFolder(!1),a.current.setCreateFolderVisible(!0),a.current.setNewFolderName(""),a.current.setNewFolderDescs("")},[]),U=me(async(u,C)=>{try{let P=(await Bn.getUserInfo({forceRefresh:!1}))?.id||"local-user",{selectedFolderId:z,files:N}=s.current,ue=N.find(ye=>ye.id===z),de=await is({userId:P,projectId:e,parentId:z,fileName:u,fileType:C,content:""}),G={...Fl(de),filePath:ue?`${ue.filePath}${ue.fileName}/`:"/"},le=Ln([...N,G]);a.current.setFiles(le),a.current.setFileTreeData(lt(le)),a.current.setEditingFile(G),a.current.setEditorVisible(!0),a.current.setPreviewLocalId(de.localId),a.current.setPreviewIsLocalOnly(!0),a.current.setPreviewHasUnsyncedChanges(de.hasUnsyncedChanges),a.current.setPreviewFileName(u)}catch(T){console.error("\u521B\u5EFA\u672C\u5730\u6587\u4EF6\u5931\u8D25:",T),Ee.error("\u521B\u5EFA\u672C\u5730\u6587\u4EF6\u5931\u8D25")}},[e]),se=me((u,C)=>{a.current.setCreatingFileName(u),a.current.setCreatingFileType(C),a.current.setCreatorVisible(!0)},[]),Ce=me((u,C)=>{a.current.setNewFileName(u),a.current.setPendingFileType(C),a.current.setCreateFileVisible(!0)},[]),ie=me((u,C)=>{if(!C)return;let T=Zr(u);if(!T){Ee.warning("\u8BF7\u8F93\u5165\u6587\u4EF6\u540D\u79F0");return}let P=Dh[C];Wr(T).toLowerCase()!==P.toLowerCase()&&(T=Na(T)+P,a.current.setNewFileName(T)),a.current.setCreateFileVisible(!1),U(T,C)},[U]),V=me(()=>{Ce("\u65B0\u5EFA\u6F14\u793A\u6587\u7A3F.pptx","pptx")},[Ce]),xe=me(()=>{Ce("\u65B0\u5EFA\u6587\u6863.md","md")},[Ce]),ce=me(()=>{Ce("\u65B0\u5EFA\u8868\u683C.xlsx","xlsx")},[Ce]),ee=me(()=>{Ce("\u65B0\u5EFA\u6587\u6863.docx","docx")},[Ce]),Se=me(()=>{Ce("\u65B0\u5EFA\u6587\u6863.rdoc","rdoc")},[Ce]),Le=me(async(u,C,T)=>{if(!u.trim()){Ee.warning("\u8BF7\u8F93\u5165\u6587\u4EF6\u5939\u540D\u79F0");return}let P=Zr(u);P!==u&&a.current.setNewFolderName(P);try{let{files:z,selectedFolderId:N}=s.current,ue=z.find(de=>de.id===N);await m.addFile(e,{fileName:P,filePath:ue?`${ue.filePath}${ue.fileName}/`:"/",fileType:"folder",fileSize:0,fileResourcePath:"",isSecure:T,descs:C.trim().slice(0,xl)}),S(),a.current.setCreateFolderVisible(!1)}catch{Ee.error("\u6587\u4EF6\u5939\u521B\u5EFA\u5931\u8D25")}},[e,m,S]),_e=me(async u=>{let C=u.fileName.toLowerCase().split(".").pop()||"";if(!["md","xlsx","docx","rdoc"].includes(C)){Ee.error("\u4E0D\u652F\u6301\u7F16\u8F91\u8BE5\u6587\u4EF6\u7C7B\u578B");return}let T=typeof navigator<"u"?navigator.onLine:!0;if(u.localId){a.current.setEditingFile(u),a.current.setEditorVisible(!0),a.current.setPreviewLocalId(u.localId),a.current.setPreviewIsLocalOnly(!!u.isLocalOnly),a.current.setPreviewHasUnsyncedChanges(!!u.hasUnsyncedChanges),a.current.setPreviewFileName(u.fileName);return}if(!T)try{let z=(await Bn.getUserInfo({forceRefresh:!1}))?.id||"local-user",N="",ue=await $e.getCachedContent(u.id);ue&&(N=await ue.content.arrayBuffer());let G=await Ho(z,u.id)??await sr({userId:z,projectId:e,parentId:u.parentId??null,fileName:u.fileName,fileType:C==="docx"?"docx":C==="xlsx"?"xlsx":C==="pptx"?"pptx":C==="md"?"md":"markdown",serverFileId:u.id,originalServerFile:u,content:N});a.current.setEditingFile({...u,localId:G.localId,isLocalOnly:!1,hasUnsyncedChanges:!0}),a.current.setEditorVisible(!0),a.current.setPreviewLocalId(G.localId),a.current.setPreviewIsLocalOnly(!1),a.current.setPreviewHasUnsyncedChanges(!0),a.current.setPreviewFileName(u.fileName);let le=s.current.files.map(ye=>ye.id===u.id?{...ye,localId:G.localId,hasUnsyncedChanges:!0}:ye);a.current.setFiles(le),a.current.setFileTreeData(lt(le));return}catch(P){console.warn("\u521B\u5EFA\u79BB\u7EBF\u7F16\u8F91\u5FEB\u7167\u5931\u8D25:",P)}a.current.setEditingFile(u),a.current.setEditorVisible(!0),a.current.setPreviewLocalId(u.localId||null),a.current.setPreviewIsLocalOnly(!1),a.current.setPreviewHasUnsyncedChanges(!!u.hasUnsyncedChanges),a.current.setPreviewFileName(u.fileName),a.current.setPreviewCrc32(u.crc32)},[e]),pe=me(async(u,C,T,P=!0)=>{try{let z=await C.arrayBuffer(),N=u,ue=s.current;if(N){if(!await $o(N,z,T,P)){let le=ue.editingFile;if(!le||le.isLocalOnly||!le.id)return;let ye=T.split(".").pop()?.toLowerCase()||"",f=(await Bn.getUserInfo({forceRefresh:!1}))?.id||"local-user";N=(await sr({userId:f,projectId:e,parentId:le.parentId??null,fileName:T,fileType:ye==="docx"?"docx":ye==="xlsx"?"xlsx":ye==="pptx"?"pptx":ye==="md"?"md":"markdown",serverFileId:le.id,originalServerFile:le,content:z,markUnsynced:P})).localId}}else{let G=ue.editingFile;if(!G||G.isLocalOnly||!G.id)return;let le=T.split(".").pop()?.toLowerCase()||"",Fe=(await Bn.getUserInfo({forceRefresh:!1}))?.id||"local-user",f;try{let g=await $e.getCachedContent(G.id);g&&(f=await g.content.arrayBuffer())}catch(g){console.warn("\u83B7\u53D6\u539F\u59CB\u670D\u52A1\u5668\u7F13\u5B58\u5931\u8D25:",g)}N=(await sr({userId:Fe,projectId:e,parentId:G.parentId??null,fileName:T,fileType:le==="docx"?"docx":le==="xlsx"?"xlsx":le==="pptx"?"pptx":le==="md"?"md":"markdown",serverFileId:G.id,originalServerFile:G,content:z,originalContent:f,markUnsynced:P})).localId}let de=s.current.files.map(G=>ue.editingFile&&G.id===ue.editingFile.id?{...G,hasUnsyncedChanges:P?!0:G.hasUnsyncedChanges,localId:N,fileSize:z.byteLength}:G.localId===N?{...G,hasUnsyncedChanges:P?!0:G.hasUnsyncedChanges,fileSize:z.byteLength}:G);a.current.setFiles(de),a.current.setFileTreeData(lt(de)),P&&a.current.setPreviewHasUnsyncedChanges(!0),N&&a.current.setPreviewLocalId(N),ue.editingFile&&a.current.setEditingFile({...ue.editingFile,hasUnsyncedChanges:P?!0:ue.editingFile.hasUnsyncedChanges,localId:N??ue.editingFile.localId})}catch(z){console.error("\u4FDD\u5B58\u672C\u5730\u6587\u4EF6\u5931\u8D25:",z)}},[e]),Ge=me(async(u,C,T,P=!0)=>{try{let z=u,N=s.current;if(z){if(!await $o(z,C,T,P)){let G=N.editingFile;if(!G||G.isLocalOnly||!G.id)return;let ye=(await Bn.getUserInfo({forceRefresh:!1}))?.id||"local-user";z=(await sr({userId:ye,projectId:e,parentId:G.parentId??null,fileName:T,fileType:"md",serverFileId:G.id,originalServerFile:G,content:C,markUnsynced:P})).localId}}else{let de=N.editingFile;if(!de||de.isLocalOnly||!de.id)return;let le=(await Bn.getUserInfo({forceRefresh:!1}))?.id||"local-user",ye;try{let f=await $e.getCachedContent(de.id);f&&(ye=await f.content.text())}catch(f){console.warn("\u83B7\u53D6\u539F\u59CB\u670D\u52A1\u5668\u7F13\u5B58\u5931\u8D25:",f)}z=(await sr({userId:le,projectId:e,parentId:de.parentId??null,fileName:T,fileType:"md",serverFileId:de.id,originalServerFile:de,content:C,originalContent:ye,markUnsynced:P})).localId}let ue=s.current.files.map(de=>N.editingFile&&de.id===N.editingFile.id?{...de,hasUnsyncedChanges:P?!0:de.hasUnsyncedChanges,localId:z,fileSize:C.length}:de.localId===z?{...de,hasUnsyncedChanges:P?!0:de.hasUnsyncedChanges,fileSize:C.length}:de);a.current.setFiles(ue),a.current.setFileTreeData(lt(ue)),P&&a.current.setPreviewHasUnsyncedChanges(!0),z&&a.current.setPreviewLocalId(z),N.editingFile&&a.current.setEditingFile({...N.editingFile,hasUnsyncedChanges:P?!0:N.editingFile.hasUnsyncedChanges,localId:z??N.editingFile.localId})}catch(z){console.error("\u4FDD\u5B58\u672C\u5730 Markdown \u5931\u8D25:",z)}},[e]),X=me(async(u,C,T,P)=>{if(u)try{let z=!!u.isLocalOnly,N=u.localId,ue=u.id;if(z){let{files:y,selectedFolderId:g}=s.current,v=y.find(Y=>Y.id===g),F=v?`${v.filePath}${v.fileName}/`:"/",{crc32:H,serverFileName:R}=await Ht(T,P,Y=>a.current.setUploadPercent(Y),Y=>a.current.setUploadSuccess(Y)),te=await m.addFile(e,{fileName:P,filePath:F,fileType:wn(P),fileSize:T.size,crc32:H,fileResourcePath:R});if(te.code===dt.SUCCESS&&te.data){if(ue=te.data.fileId,N)try{await xr(N,ue),await kn(N)}catch(Y){console.warn("\u6807\u8BB0\u672C\u5730\u5DF2\u540C\u6B65\u5931\u8D25:",Y)}await $e.saveToCache(ue,T,H,T.size),a.current.setUploadPercent(void 0),Ee.success("\u6587\u4EF6\u4E0A\u4F20\u6210\u529F"),S()}else a.current.setUploadPercent(void 0),Ee.error(te.message||"\u4E0A\u4F20\u5931\u8D25");return}let de=await Sl(m,u);if(de.result==="cancel"){a.current.setUploadPercent(void 0);return}let G=C;if(N&&!de.result.includes("overwrite")){try{let y=await $e.getCachedContent(u.id);if(y&&de.serverCrc32!==void 0){let g=await Vr(new File([y.content],P,{type:wn(P)}));if(g===de.serverCrc32){let v=await y.content.arrayBuffer();G=new Blob([v])}else console.warn("[\u4E0A\u4F20\u8BCA\u65AD] CacheFileContent CRC \u4E0D\u5339\u914D\u670D\u52A1\u5668, cached:",g,"server:",de.serverCrc32)}}catch(y){console.warn("[\u4E0A\u4F20\u8BCA\u65AD] CacheFileContent \u83B7\u53D6\u5931\u8D25:",y)}if(G===C)try{let y=await Fn(N);if(y?.originalContent){let g=typeof y.originalContent=="string"?new TextEncoder().encode(y.originalContent).buffer:y.originalContent;G=new Blob([g])}}catch(y){console.warn("[\u4E0A\u4F20\u8BCA\u65AD] \u52A0\u8F7D originalContent \u5931\u8D25:",y)}}let le=de.result==="overwrite"||!G,ye=N?async()=>await No.confirm("\u5DF2\u7ECF\u6709\u5176\u4ED6\u7528\u6237\u66F4\u65B0\u4E86\u6587\u4EF6\uFF0C\u662F\u5426\u5168\u91CF\u8986\u76D6\u4E0A\u4F20\uFF1F"):void 0,{crc32:Fe}=await La(u.id,P,G||new Blob([]),T,y=>a.current.setUploadPercent(y),y=>a.current.setUploadSuccess(y),le,ye,{updateFile:m.updateFile,updateFileDelta:m.updateFileDelta});if(await $e.removeFromCache(u.id),await $e.saveToCache(u.id,T,Fe,T.size),N){try{await xr(N,u.id),await kn(N)}catch(g){console.warn("\u6807\u8BB0\u672A\u540C\u6B65\u6587\u4EF6\u4E3A\u5DF2\u540C\u6B65\u5931\u8D25:",g)}let y=s.current.files.map(g=>g.id===u.id?{...g,hasUnsyncedChanges:!1,localId:void 0}:g);a.current.setFiles(y),a.current.setFileTreeData(lt(y))}a.current.setPreviewHasUnsyncedChanges(!1),a.current.setPreviewLocalId(null);let f=await El(m,u.id);a.current.setEditingFile({...u,hasUnsyncedChanges:!1,localId:void 0,uploadTime:f?.uploadTime??u.uploadTime,updateTime:f?.updateTime??u.updateTime}),a.current.setUploadPercent(void 0),Ee.success("\u6587\u4EF6\u66F4\u65B0\u6210\u529F"),S()}catch(z){a.current.setUploadPercent(void 0),console.error("\u66F4\u65B0/\u4E0A\u4F20\u6587\u4EF6\u5931\u8D25:",z),Ee.error(typeof z=="string"?z:"\u4E0A\u4F20\u5931\u8D25")}},[e,m,S]),j=me(async(u,C,T,P)=>{if(u)try{let z=!!u.isLocalOnly,N=u.localId,ue=u.id,de=P.toLowerCase().endsWith(".rdoc")?"application/json":"text/markdown",G=new Blob([T],{type:de});if(z){let{files:v,selectedFolderId:F}=s.current,H=v.find(Re=>Re.id===F),R=H?`${H.filePath}${H.fileName}/`:"/",{crc32:te,serverFileName:Y}=await Ht(G,P,Re=>a.current.setUploadPercent(Re),Re=>a.current.setUploadSuccess(Re)),fe=await m.addFile(e,{fileName:P,filePath:R,fileType:de,fileSize:G.size,crc32:te,fileResourcePath:Y});if(fe.code===dt.SUCCESS&&fe.data){if(ue=fe.data.fileId,N)try{await xr(N,ue),await kn(N)}catch(Re){console.warn("\u6807\u8BB0\u672C\u5730\u5DF2\u540C\u6B65\u5931\u8D25:",Re)}await $e.saveToCache(ue,G,te,G.size),a.current.setUploadPercent(void 0),Ee.success("Markdown \u6587\u6863\u4E0A\u4F20\u6210\u529F"),S()}else a.current.setUploadPercent(void 0),Ee.error(fe.message||"\u4E0A\u4F20\u5931\u8D25");return}let le=await Sl(m,u);if(le.result==="cancel"){a.current.setUploadPercent(void 0);return}let ye=C;if(N&&!le.result.includes("overwrite")){try{let v=await $e.getCachedContent(u.id);if(v&&le.serverCrc32!==void 0){let F=await v.content.text(),H=await Vr(new File([F],P,{type:"text/markdown"}));H===le.serverCrc32?ye=F:console.warn("[\u4E0A\u4F20\u8BCA\u65AD] Markdown CacheFileContent CRC \u4E0D\u5339\u914D, cached:",H,"server:",le.serverCrc32)}}catch(v){console.warn("[\u4E0A\u4F20\u8BCA\u65AD] Markdown CacheFileContent \u83B7\u53D6\u5931\u8D25:",v)}if(ye===C)try{let v=await Fn(N);v?.originalContent&&typeof v.originalContent=="string"&&(ye=v.originalContent)}catch(v){console.warn("[\u4E0A\u4F20\u8BCA\u65AD] Markdown \u52A0\u8F7D originalContent \u5931\u8D25:",v)}}let Fe=le.result==="overwrite",f=N?async()=>await No.confirm("\u5DF2\u7ECF\u6709\u5176\u4ED6\u7528\u6237\u66F4\u65B0\u4E86\u6587\u4EF6\uFF0C\u662F\u5426\u5168\u91CF\u8986\u76D6\u4E0A\u4F20\uFF1F"):void 0,{crc32:y}=await bl(u.id,P,ye,T,v=>a.current.setUploadPercent(v),v=>a.current.setUploadSuccess(v),Fe,f,{updateFile:m.updateFile,updateFileDelta:m.updateFileDelta});if(await $e.removeFromCache(u.id),await $e.saveToCache(u.id,G,y,G.size),N){try{await xr(N,u.id),await kn(N)}catch(F){console.warn("\u6807\u8BB0\u672A\u540C\u6B65\u6587\u4EF6\u4E3A\u5DF2\u540C\u6B65\u5931\u8D25:",F)}let v=s.current.files.map(F=>F.id===u.id?{...F,hasUnsyncedChanges:!1,localId:void 0}:F);a.current.setFiles(v),a.current.setFileTreeData(lt(v))}a.current.setPreviewHasUnsyncedChanges(!1),a.current.setPreviewLocalId(null);let g=await El(m,u.id);a.current.setEditingFile({...u,hasUnsyncedChanges:!1,localId:void 0,uploadTime:g?.uploadTime??u.uploadTime,updateTime:g?.updateTime??u.updateTime}),a.current.setUploadPercent(void 0),Ee.success("\u6587\u6863\u66F4\u65B0\u6210\u529F"),S()}catch(z){a.current.setUploadPercent(void 0),console.error("\u66F4\u65B0/\u4E0A\u4F20\u5931\u8D25:",z),Ee.error("\u66F4\u65B0\u5931\u8D25")}},[e,m,S]),re=me(async(u,C,T)=>{try{let{files:P,selectedFolderId:z}=s.current,N=P.find(ye=>ye.id===z),ue=N?`${N.filePath}${N.fileName}/`:"/",{crc32:de,serverFileName:G}=await Ht(C,T,ye=>a.current.setUploadPercent(ye),ye=>{a.current.setUploadSuccess(ye)}),le=await m.addFile(e,{fileName:T,filePath:ue,fileType:wn(T),fileSize:C.size,crc32:de,fileResourcePath:G});a.current.setUploadPercent(void 0),le.code===dt.SUCCESS?(await $e.saveToCache(le.data.fileId,C,de,C.size),S()):Ee.error(le.message||"\u521B\u5EFA\u5931\u8D25")}catch(P){a.current.setUploadPercent(void 0),console.error("\u521B\u5EFA\u6587\u4EF6\u5931\u8D25:",P),Ee.error("\u521B\u5EFA\u5931\u8D25")}},[e,m,S]),Te=me(async(u,C,T)=>{try{let{files:P,selectedFolderId:z}=s.current,N=P.find(f=>f.id===z),ue=N?`${N.filePath}${N.fileName}/`:"/",de=T.toLowerCase().endsWith(".rdoc")?"application/json":"text/markdown",G=new Blob([C],{type:de}),{crc32:le,serverFileName:ye}=await Ht(G,T,f=>a.current.setUploadPercent(f),f=>a.current.setUploadSuccess(f)),Fe=await m.addFile(e,{fileName:T,filePath:ue,fileType:de,fileSize:G.size,crc32:le,fileResourcePath:ye});a.current.setUploadPercent(void 0),Fe.code===dt.SUCCESS?(await $e.saveToCache(Fe.data.fileId,G,le,G.size),S()):Ee.error(Fe.message||"\u521B\u5EFA\u5931\u8D25")}catch(P){a.current.setUploadPercent(void 0),console.error("\u521B\u5EFA Markdown \u6587\u6863\u5931\u8D25:",P),Ee.error("\u521B\u5EFA\u5931\u8D25")}},[e,m,S]),Ve=me((u,C)=>{if(!C.fileType||C.fileType!=="folder")return;let{expandedRowKeys:T}=s.current;a.current.setExpandedRowKeys(u?[...T,C.id]:T.filter(P=>P!==C.id)),a.current.setSelectedFolderId(u?C.id:null)},[]),st=me((u,C)=>{if(u.fileType!=="folder")return;let{expandedRowKeys:T,selectedFolderId:P,files:z}=s.current;if(a.current.setExpandedRowKeys(T.includes(u.id)?T.filter(N=>N!==u.id):[...T,u.id]),a.current.setSelectedFolderId(P===u.id?null:u.id),!C)if(!L(u.id))a.current.setFileTreeData(lt(Fa(u,z)));else{let N=z.find(ue=>ue.id===u.parentId);a.current.setFileTreeData(lt(N?Fa(N,z):z))}},[L]),Tt=me(u=>{a.current.setDragSourceId(u)},[]),ut=me(()=>{a.current.setDragSourceId(null),a.current.setDragOverId(null)},[]),wt=me(u=>{a.current.setDragOverId(u)},[]),on=me(u=>{s.current.dragOverId===u&&a.current.setDragOverId(null)},[]),Nt=me((u,C)=>{let{selectedIds:T}=s.current,P=T.includes(u)&&T.length>1?T:[u];B(P,C),a.current.setDragOverId(null)},[B]),Et=me(u=>{u.preventDefault(),(u.dataTransfer.types.includes("Files")||u.dataTransfer.items.length>0)&&(d.current++,a.current.setIsExternalDragOver(!0))},[]),_t=me(u=>{u.preventDefault(),(u.dataTransfer.types.includes("Files")||u.dataTransfer.items.length>0)&&(u.dataTransfer.dropEffect="copy")},[]),Yt=me(u=>{d.current--,d.current<=0&&(d.current=0,a.current.setIsExternalDragOver(!1))},[]),Je=me(async u=>{u.preventDefault(),d.current=0,a.current.setIsExternalDragOver(!1);let C=await vl(u.dataTransfer.items);if(C.length!==0)try{let{files:T,selectedFolderId:P}=s.current,z=T.find(G=>G.id===P),N=z?`${z.filePath}${z.fileName}/`:"/",ue=new Set,de=new Set(T.filter(G=>G.fileType==="folder").map(G=>`${G.filePath}${G.fileName}`));for(let[G,{file:le,relativePath:ye}]of C.entries()){a.current.setDragUploadingFileName(C.length>1?`${ye} (${G+1}/${C.length})`:ye),a.current.setDragUploadPercent(0),a.current.setDragUploadSuccess(void 0);let Fe=ye.lastIndexOf("/"),f=Fe>=0?ye.substring(Fe+1):ye,y=Fe>=0?ye.substring(0,Fe):"",g=N;if(y){let R=N+y+"/";if(!ue.has(R)){let te=y.split("/"),Y=N;for(let fe of te){let Re=Zr(fe),ae=`${Y}${Re}`;!de.has(ae)&&!ue.has(ae)&&(await m.addFile(e,{fileName:Re,filePath:Y,fileType:"folder",fileSize:0,fileResourcePath:"",isSecure:!1}),ue.add(ae)),Y=`${Y}${Re}/`}}ue.add(R),g=R}let{crc32:v,serverFileName:F}=await Ht(le,f,R=>a.current.setDragUploadPercent(R),R=>a.current.setDragUploadSuccess(R)),H=await m.addFile(e,{fileName:f,filePath:g,fileType:le.type||"application/octet-stream",fileSize:le.size,crc32:v,fileResourcePath:F});H.code!==dt.SUCCESS?(a.current.setDragUploadSuccess(!1),Ee.error(H.message||`\u6587\u4EF6 ${ye} \u4E0A\u4F20\u5931\u8D25`)):H.data?.fileId&&await $e.saveToCache(H.data.fileId,le,v,le.size)}S()}catch(T){console.error("\u6587\u4EF6\u4E0A\u4F20\u5931\u8D25:",T),a.current.setDragUploadSuccess(!1),typeof T=="string"?Ee.error("\u6587\u4EF6\u4E0A\u4F20\u5931\u8D25: "+T):Ee.error("\u6587\u4EF6\u4E0A\u4F20\u5931\u8D25")}finally{window.setTimeout(()=>{a.current.setDragUploadPercent(void 0),a.current.setDragUploadSuccess(void 0),a.current.setDragUploadingFileName("")},1e3)}},[e,m,S]),He=me((u,C)=>{u.preventDefault(),u.stopPropagation(),a.current.setContextMenuRecord(C),a.current.setContextMenuPosition({x:u.clientX,y:u.clientY}),a.current.setContextMenuVisible(!0)},[]),Ue=me(u=>{a.current.setMoveCopyFiles([u]),a.current.setMoveCopyMode("move"),a.current.setMoveCopyModalVisible(!0),a.current.setContextMenuVisible(!1),a.current.setContextMenuRecord(null)},[]),Qe=me(u=>{a.current.setMoveCopyFiles([u]),a.current.setMoveCopyMode("copy"),a.current.setMoveCopyModalVisible(!0),a.current.setContextMenuVisible(!1),a.current.setContextMenuRecord(null)},[]),Ie=me(async u=>{if(a.current.setContextMenuVisible(!1),a.current.setContextMenuRecord(null),!!m.copyFileToProject)try{let C=await m.copyFileToProject(e,u.id);C.code===dt.SUCCESS?(Ee.success(`\u590D\u5236\u6210\u529F\uFF0C\u6587\u4EF6\u540D\u4E3A\uFF1A${C.data}`),S()):Ee.error(C.message||"\u590D\u5236\u5931\u8D25")}catch(C){Ee.error("\u590D\u5236\u5931\u8D25"),console.error("\u590D\u5236\u526F\u672C\u5931\u8D25:",C)}},[e,m,S]),Ae=me(()=>{a.current.setMoveCopyModalVisible(!1),a.current.setMoveCopyFiles([]),S()},[S]),Ze=me(u=>{a.current.setVersionHistoryFile(u),a.current.setVersionHistoryModalVisible(!0),a.current.setContextMenuVisible(!1),a.current.setContextMenuRecord(null)},[]),zn=me(u=>{if(u.fileType==="folder")return;let C=`${window.location.origin}/filepreview?fileid=${u.id}&path=${encodeURIComponent(u.fileResourcePath)}&name=${encodeURIComponent(u.fileName)}`;window.open(C,"_blank","noopener,noreferrer"),a.current.setContextMenuVisible(!1),a.current.setContextMenuRecord(null)},[]),vn=me(u=>{u.preventDefault(),a.current.setRootDragOver(!0)},[]),an=me(()=>{a.current.setRootDragOver(!1)},[]),$n=me(u=>{u.preventDefault(),a.current.setRootDragOver(!1);let C=u.dataTransfer.getData("text/plain");if(C){let{selectedIds:T}=s.current,P=T.includes(C)&&T.length>1?T:[C];B(P,null)}},[B]),ht=me(()=>{m.resolveIsManager&&m.resolveIsManager(e).then(u=>{if(!u){a.current.setIsManager(!1);return}(async()=>{let P=(await Bn.getUserInfo({forceRefresh:!1}))?.id||"local-user";return e===P?!0:Th.hasPermission({permission:Ph})})().then(T=>{T&&a.current.setIsManager(!0)}).catch(()=>{})}).catch(()=>{})},[e,m]),Hn=me(async()=>{let u=await Mh(Ih);u&&(u==="grid"||u==="table")&&a.current.setViewMode(u)},[]),Un=me(async u=>{try{await $e.removeFromCache(u.id);try{await jn.removeFileMeta(u.id)}catch(P){console.warn("\u5220\u9664 fileMeta \u8BB0\u5F55\u5931\u8D25:",P)}if(u.localId)try{await kn(u.localId)}catch(P){console.warn("\u5220\u9664 localFiles \u8BB0\u5F55\u5931\u8D25:",P)}Ee.success("\u7F13\u5B58\u6E05\u7406\u6210\u529F");let{files:C}=s.current,T=C.map(P=>P.id===u.id?{...P,hasLocalCache:!1,hasUnsyncedChanges:!1,localId:void 0}:P);a.current.setFileTreeData(lt(T)),a.current.setFiles(T),a.current.setContextMenuVisible(!1),a.current.setContextMenuRecord(null)}catch(C){console.error("\u6E05\u7406\u7F13\u5B58\u5931\u8D25:",C),Ee.error("\u6E05\u7406\u7F13\u5B58\u5931\u8D25")}},[]),sn=me(u=>{let{files:C}=s.current,T=C.find(P=>P.id===u);if(T&&!T.hasLocalCache){let P=C.map(z=>z.id===u?{...z,hasLocalCache:!0}:z);a.current.setFileTreeData(lt(P)),a.current.setFiles(P)}},[]);return c.current=sn,Eh(()=>({loadFiles:S,uploadFiles:A,handlePreview:Z,handleDownload:O,handleDownloadFolder:I,handleShareToWechat:J,handleCopyLink:ne,handleJumpToContract:D,handleCreateContract:w,handleGenerateTempLink:W,handleDelete:k,isFolderExpanded:L,handleMove:K,handleRename:q,handleEditDescs:ge,handleDescsConfirm:oe,handleRenameConfirm:E,handleCreateFolder:be,openCreator:se,handleCreatePptx:V,handleCreateMarkdown:xe,handleCreateRdoc:Se,handleCreateExcel:ce,handleCreateWord:ee,handleCreateFileConfirm:ie,handleCreateFolderConfirm:Le,handleEditFile:_e,handleUploadBlob:X,handleUploadMarkdown:j,handleCreateUploadBlob:re,handleCreateUploadMarkdown:Te,handleSaveLocalBlob:pe,handleSaveLocalMarkdown:Ge,handleExpand:Ve,toggleFolderExpand:st,handleDragStart:Tt,handleDragEnd:ut,handleDragOver:wt,handleDragLeave:on,handleDrop:Nt,handleExternalDragEnter:Et,handleExternalDragOver:_t,handleExternalDragLeave:Yt,handleExternalDrop:Je,handleContextMenu:He,handleMoveToProject:Ue,handleCopyToProject:Qe,handleCopyToSelf:Ie,handleMoveCopySuccess:Ae,handleViewVersionHistory:Ze,handleClearCache:Un,handleCacheSaved:sn,handleOpenInNewWindow:zn,handleRootDragOver:vn,handleRootDragLeave:an,handleRootDrop:$n,initUserRole:ht,initViewMode:Hn}),[S,A,Z,O,I,J,ne,D,w,W,k,L,K,q,ge,oe,E,be,se,V,xe,Se,ce,ee,ie,Le,_e,X,j,re,Te,pe,Ge,Ve,st,Tt,ut,wt,on,Nt,Et,_t,Yt,Je,He,Ue,Qe,Ie,Ae,Ze,Un,sn,zn,vn,an,$n,ht,Hn])};import{Fragment as Gr,jsx as ze,jsxs as At}from"react/jsx-runtime";var Ml="file-manager",Il=255,Dl=(e,t)=>{for(let n of e){if(n.id===t)return n;if(n.children&&n.children.length>0){let r=Dl(n.children,t);if(r)return r}}},H0=({projectId:e,currentUserRole:t,isActive:n=!0,className:r,api:o,features:i,allowViewerContracts:l=!1})=>{let[d,a]=Bh(),[s,c]=gl(),[p,b]=Lh(null),m=o||Yr,_=Oa(()=>i||{},[i]),h=!t||t===Zt.VIEWER,x=t===Zt.MANAGER||t===Zt.OWNER,M=_.contracts!==!1,S=_.moveCopyToProject!==!1,A=_.shareToWechat!==!1,Z=_.versionHistory!==!1,O=_.externalLink!==!1,I=!!m.generateTempAccessToken,J=!!m.copyFileToProject,ne=Oa(()=>({api:m,features:_,allowViewerContracts:l}),[m,_,l]),D=Oa(()=>U=>m.getDetail(U),[m]),w=Pl(e,t,s,c,ne),W=Ba(w);W.current=w;let k=d.get("fileid"),L=s.dragUploadPercent===void 0?0:Math.min(100,Math.round(s.dragUploadPercent*100));bn(()=>{let{initUserRole:U,loadFiles:se}=W.current;c.setSelectedIds([]),U(),se()},[e]);let $=Ba(n);bn(()=>{n&&!$.current&&W.current.loadFiles(),$.current=n},[n]),bn(()=>{if(k&&s.files.length>0){let U=s.files.find(se=>se.id===k);U&&U.fileType!=="folder"&&(c.setPreviewFileName(U.fileName),c.setPreviewUrl(U.fileResourcePath),c.setPreviewVisible(!0))}},[k,s.files]);let B=Ba(s.previewVisible);B.current=s.previewVisible,bn(()=>{!k&&B.current&&(c.setPreviewVisible(!1),c.setPreviewUrl(null),c.setPreviewingFile(null))},[k]),Gh(()=>{c.setSmallView(!0),c.setViewMode("grid")},()=>{c.setSmallView(!1),c.setViewMode("table")},500),bn(()=>{(async()=>{let se=await Xh(Ml);se&&(se==="grid"||se==="table")&&c.setViewMode(se)})()},[]);let K=U=>{U===s.sortBy?c.setSortOrder(s.sortOrder==="asc"?"desc":"asc"):(c.setSortBy(U),c.setSortOrder("asc"))},q=()=>{c.setSortOrder(s.sortOrder==="asc"?"desc":"asc")},ge=s.viewMode==="grid"&&s.selectedFolderId?Dl(s.fileTreeData,s.selectedFolderId):void 0,oe=()=>{c.setSelectedFolderId(ge?.parentId||null)};bn(()=>{h&&(b(null),c.setSelectedIds([]),c.setDragSourceId(null),c.setCreateFolderVisible(!1),c.setCreateFileVisible(!1),c.setRenameVisible(!1),c.setDescsVisible(!1),c.setShareToWechatVisible(!1),c.setShareToWechatFile(null),c.resetEditorState(),c.resetCreatorState(),c.resetMoveCopyState())},[h]),bn(()=>{s.viewMode==="grid"?c.setExpandedRowKeys([]):c.setFileTreeData(lt(Ln(s.files)))},[s.viewMode,s.files]),bn(()=>{let U=()=>{s.contextMenuVisible&&(c.setContextMenuVisible(!1),c.setContextMenuRecord(null)),p&&b(null)};return document.addEventListener("click",U),()=>{document.removeEventListener("click",U)}},[s.contextMenuVisible,p]),bn(()=>{s.contextMenuVisible&&b(null)},[s.contextMenuVisible]);let E=U=>{x&&(U.preventDefault(),s.contextMenuVisible&&(c.setContextMenuVisible(!1),c.setContextMenuRecord(null)),b({x:U.clientX,y:U.clientY}))},be=()=>{c.setUploadPercent(void 0),c.setPreviewFileName(null),c.setUploadSuccess(void 0),s.previewVisible?(c.setPreviewVisible(!1),c.setPreviewingFile(null),a(U=>{let se=new URLSearchParams(U);return se.delete("fileid"),se},{replace:!0})):s.editorVisible?(c.setEditorVisible(!1),c.setEditingFile(null)):s.creatorVisible&&(c.setCreatorVisible(!1),c.setCreatingFileName(""),c.setCreatingFileType(null))};return At(Oh,{className:r,styles:{body:{padding:0},header:{paddingLeft:s.smallView?16:0,paddingRight:s.smallView?16:0},extra:{margin:0,marginLeft:"auto",marginRight:s.smallView?0:"8px"}},title:ge?ze(za,{type:"text",size:"small",icon:ze(Uh,{}),onClick:oe,title:"\u8FD4\u56DE\u4E0A\u7EA7\u76EE\u5F55",style:{marginLeft:s.smallView?0:16}}):void 0,extra:ze(ol,{currentUserRole:t,viewMode:s.viewMode,onToggleViewMode:U=>{c.setViewMode(U),qh(Ml,U)},onCreateFolder:w.handleCreateFolder,onCreateMarkdown:w.handleCreateMarkdown,onCreateRdoc:w.handleCreateRdoc,onCreateExcel:w.handleCreateExcel,onCreateWord:w.handleCreateWord,onUploadFiles:w.uploadFiles}),children:[ze("div",{className:`flex justify-center items-center rounded border ${s.rootDragOver?"border-blue-500 bg-blue-50":"border-dashed border-gray-300 bg-white"}`,style:{opacity:s.dragSourceId?1:0,textAlign:"center",zIndex:40,position:"absolute",height:"40px",left:0,right:0,margin:"auto",transition:"all 0.2s",borderWidth:"2px",pointerEvents:s.dragSourceId?"auto":"none"},onDragOver:h?void 0:w.handleRootDragOver,onDragLeave:h?void 0:w.handleRootDragLeave,onDrop:h?void 0:w.handleRootDrop,children:"\u79FB\u52A8\u5230\u6839\u76EE\u5F55"}),At("div",{className:"relative",onDragEnter:h?void 0:w.handleExternalDragEnter,onDragOver:h?void 0:w.handleExternalDragOver,onDragLeave:h?void 0:w.handleExternalDragLeave,onDrop:h?void 0:w.handleExternalDrop,children:[s.dragUploadPercent!==void 0&&At(za,{className:"absolute right-3 top-3 z-50 shadow-md",type:s.dragUploadSuccess===!1?"default":"primary",danger:s.dragUploadSuccess===!1,loading:s.dragUploadSuccess!==!1&&L<100,disabled:!0,children:[s.dragUploadSuccess===!1?"\u62D6\u62FD\u4E0A\u4F20\u5931\u8D25":L>=100?"\u62D6\u62FD\u4E0A\u4F20\u5B8C\u6210":`\u62D6\u62FD\u4E0A\u4F20\u4E2D ${L}%`,s.dragUploadingFileName?`\uFF1A${s.dragUploadingFileName}`:""]}),s.isExternalDragOver&&At("div",{className:"absolute inset-0 z-50 flex flex-col items-center justify-center bg-blue-500/10 border-2 border-blue-500 border-dashed rounded m-2",style:{pointerEvents:"none"},children:[ze("div",{className:"text-blue-600 text-lg font-medium",children:"\u91CA\u653E\u4EE5\u4E0A\u4F20\u6587\u4EF6"}),ze("div",{className:"text-blue-400 text-sm mt-1",children:s.selectedFolderId?"\u4E0A\u4F20\u5230\u5F53\u524D\u6587\u4EF6\u5939":"\u4E0A\u4F20\u5230\u6839\u76EE\u5F55"})]}),s.selectedIds.length>0&&At("div",{className:"mx-2 mb-2 flex flex-wrap items-center gap-2 rounded-md border border-blue-200 bg-blue-50 px-3 py-1.5 text-sm text-blue-700",children:[At("span",{className:"font-medium",children:["\u5DF2\u9009\u62E9 ",s.selectedIds.length," \u9879"]}),ze("span",{className:"text-xs text-blue-500",children:"\u5C06\u5176\u4E2D\u4EFB\u610F\u4E00\u9879\u62D6\u62FD\u5230\u76EE\u6807\u6587\u4EF6\u5939\uFF0C\u6216\u62D6\u5230\u9876\u90E8\u300C\u79FB\u52A8\u5230\u6839\u76EE\u5F55\u300D\uFF0C\u5373\u53EF\u6279\u91CF\u79FB\u52A8"}),ze(za,{type:"link",size:"small",className:"ml-auto",onClick:()=>c.setSelectedIds([]),children:"\u53D6\u6D88\u9009\u62E9"})]}),ze($h,{spinning:s.loading,children:ze("div",{className:"min-h-[400px]",onContextMenu:E,children:s.viewMode==="table"?ze(Xi,{dataSource:s.fileTreeData,expandedRowKeys:s.expandedRowKeys,selectedFolderId:s.selectedFolderId,dragOverId:s.dragOverId,dragSourceId:s.dragSourceId,smallView:s.smallView,readOnly:h,isFolderExpanded:w.isFolderExpanded,onExpand:w.handleExpand,onPreview:w.handlePreview,onDownload:w.handleDownload,onDownloadFolder:s.isManager?w.handleDownloadFolder:void 0,onCopyLink:O?w.handleCopyLink:void 0,onRename:w.handleRename,onEditDescs:w.handleEditDescs,onDelete:w.handleDelete,onEdit:w.handleEditFile,onGenerateTempLink:I?w.handleGenerateTempLink:void 0,onMove:w.handleMove,onDragStart:w.handleDragStart,onDragEnd:w.handleDragEnd,onDragOver:w.handleDragOver,onDragLeave:w.handleDragLeave,onDrop:w.handleDrop,onRowContextMenu:w.handleContextMenu,onMoveToProject:S?w.handleMoveToProject:void 0,onCopyToProject:S?w.handleCopyToProject:void 0,onCopyToSelf:J?w.handleCopyToSelf:void 0,onViewVersionHistory:Z?w.handleViewVersionHistory:void 0,onJumpToContract:M?w.handleJumpToContract:void 0,sortBy:s.sortBy,sortOrder:s.sortOrder,onSortByChange:K,selectedIds:s.selectedIds,onToggleSelect:c.toggleSelectedId}):ze(rl,{dataSource:s.fileTreeData,selectedFolderId:s.selectedFolderId,dragOverId:s.dragOverId,dragSourceId:s.dragSourceId,isFolderExpanded:w.isFolderExpanded,smallView:s.smallView,readOnly:h,onPreview:w.handlePreview,onDownload:w.handleDownload,onDownloadFolder:s.isManager?w.handleDownloadFolder:void 0,onCopyLink:O?w.handleCopyLink:void 0,onRename:w.handleRename,onEditDescs:w.handleEditDescs,onDelete:w.handleDelete,onEdit:w.handleEditFile,onGenerateTempLink:I?w.handleGenerateTempLink:void 0,onFolderChange:c.setSelectedFolderId,onMove:w.handleDrop,onDragStart:w.handleDragStart,onDragEnd:w.handleDragEnd,onDragOver:w.handleDragOver,onDragLeave:w.handleDragLeave,onDrop:w.handleDrop,onRowContextMenu:w.handleContextMenu,onMoveToProject:S?w.handleMoveToProject:void 0,onCopyToProject:S?w.handleCopyToProject:void 0,onCopyToSelf:J?w.handleCopyToSelf:void 0,onViewVersionHistory:Z?w.handleViewVersionHistory:void 0,onJumpToContract:M?w.handleJumpToContract:void 0,sortBy:s.sortBy,sortOrder:s.sortOrder,onSortByChange:K,onSortOrderToggle:q,selectedIds:s.selectedIds,onToggleSelect:c.toggleSelectedId})})})]}),At(Bo,{className:"ant-modal-nofull",title:"\u65B0\u5EFA\u6587\u4EF6\u5939",open:!h&&s.createFolderVisible,onOk:()=>w.handleCreateFolderConfirm(s.newFolderName,s.newFolderDescs,s.isEncryptedFolder),onCancel:()=>c.setCreateFolderVisible(!1),okText:"\u521B\u5EFA",cancelText:"\u53D6\u6D88",children:[ze(Kr,{placeholder:"\u8BF7\u8F93\u5165\u6587\u4EF6\u5939\u540D\u79F0",value:s.newFolderName,onChange:U=>c.setNewFolderName(U.target.value)}),ze(Kr.TextArea,{className:"mt-3",placeholder:"\u8BF7\u8F93\u5165\u5907\u6CE8\uFF08\u53EF\u9009\uFF09",value:s.newFolderDescs,autoSize:{minRows:3,maxRows:6},maxLength:Il,showCount:!0,style:{marginBottom:24},onChange:U=>c.setNewFolderDescs(U.target.value)}),s.isManager&&At(zh,{className:"mt-2",checked:s.isEncryptedFolder,onChange:U=>c.setIsEncryptedFolder(U.target.checked),children:["\u52A0\u5BC6\u6587\u4EF6\u5939",ze("span",{className:"text-sm text-gray-500 font-thin",children:"\uFF08\u4EC5\u5BF9\u7BA1\u7406\u5458\u53EF\u89C1)"})]})]}),ze(Bo,{className:"ant-modal-nofull",title:"\u65B0\u5EFA\u6587\u4EF6",open:!h&&s.createFileVisible,onOk:()=>w.handleCreateFileConfirm(s.newFileName,s.pendingFileType),onCancel:()=>c.setCreateFileVisible(!1),okText:"\u521B\u5EFA",cancelText:"\u53D6\u6D88",children:ze(Kr,{placeholder:"\u8BF7\u8F93\u5165\u6587\u4EF6\u540D\u79F0",value:s.newFileName,onChange:U=>c.setNewFileName(U.target.value),onPressEnter:()=>w.handleCreateFileConfirm(s.newFileName,s.pendingFileType),autoFocus:!0})}),ze(Bo,{title:"\u7F16\u8F91\u5907\u6CE8",className:"ant-modal-nofull",open:!h&&s.descsVisible,onOk:()=>w.handleDescsConfirm(s.descsFileId,s.descsValue),onCancel:()=>{c.setDescsVisible(!1),c.setDescsFileId(null),c.setDescsValue("")},okText:"\u4FDD\u5B58",cancelText:"\u53D6\u6D88",children:ze(Kr.TextArea,{placeholder:"\u8BF7\u8F93\u5165\u5907\u6CE8",value:s.descsValue,autoSize:{minRows:4,maxRows:8},maxLength:Il,showCount:!0,style:{marginBottom:24},onChange:U=>c.setDescsValue(U.target.value)})}),ze(Bo,{title:"\u91CD\u547D\u540D",className:"ant-modal-nofull",open:!h&&s.renameVisible,onOk:()=>w.handleRenameConfirm(s.renameFileId,s.renameFileName),onCancel:()=>c.setRenameVisible(!1),okText:"\u786E\u5B9A",cancelText:"\u53D6\u6D88",children:ze(Kr,{placeholder:"\u8BF7\u8F93\u5165\u65B0\u540D\u79F0",value:s.renameFileName,onChange:U=>c.setRenameFileName(U.target.value),onPressEnter:()=>w.handleRenameConfirm(s.renameFileId,s.renameFileName)})}),(()=>{let U=s.editingFile||s.previewingFile||(k?s.files.find(xe=>xe.id===k):void 0),se=!s.isOnline,Ce=se&&!s.previewIsLocalOnly,ie=s.editorVisible||s.creatorVisible,V=s.previewLocalId||U?.localId;return ze(Dr,{fileUrl:s.previewVisible?s.previewUrl:s.editingFile?.fileResourcePath||null,visible:s.previewVisible||!h&&(s.editorVisible||s.creatorVisible),editable:!h&&ie,isCreate:!h&&(s.creatorVisible||!!s.previewIsLocalOnly),fileName:s.editingFile?.fileName||s.creatingFileName||s.previewFileName||void 0,uploadPercent:s.uploadPercent,uploadSuccess:s.uploadSuccess,onClose:be,onUploadBlob:!h&&!Ce?s.editorVisible?async(xe,ce,ee)=>w.handleUploadBlob(s.editingFile,xe,ce,ee):s.creatorVisible?async(xe,ce,ee)=>w.handleCreateUploadBlob(xe,ce,ee):void 0:void 0,onUploadMarkdown:!h&&!Ce?s.editorVisible?async(xe,ce,ee)=>w.handleUploadMarkdown(s.editingFile,xe,ce,ee):s.creatorVisible?async(xe,ce,ee)=>w.handleCreateUploadMarkdown(xe,ce,ee):void 0:void 0,onSaveLocalBlob:h?void 0:(xe,ce,ee)=>w.handleSaveLocalBlob(V,xe,ce,ee),onSaveLocalMarkdown:h?void 0:(xe,ce,ee)=>w.handleSaveLocalMarkdown(V,xe,ce,ee),fileId:U?.isContractLink?void 0:U?.id,localId:V,isLocalOnly:s.previewIsLocalOnly||!!U?.isLocalOnly,hasUnsyncedChanges:s.previewHasUnsyncedChanges||!!U?.hasUnsyncedChanges,isOffline:se,crc32:s.previewCrc32,fetchFileDetail:D,onCacheSaved:w.handleCacheSaved})})(),!h&&p&&ze("div",{className:"fixed z-50",style:{left:Math.max(8,Math.min(p.x,window.innerWidth-200)),top:Math.max(8,Math.min(p.y,window.innerHeight-280)),minWidth:160},onClick:U=>U.stopPropagation(),onContextMenu:U=>U.stopPropagation(),children:ze(Hh,{mode:"vertical",items:[{key:"createFolder",label:At(Gr,{children:[ze(jh,{className:"text-blue-400 mr-1"})," \u65B0\u5EFA\u6587\u4EF6\u5939"]}),onClick:()=>{b(null),w.handleCreateFolder()}},{key:"createRdoc",label:At(Gr,{children:[ze(Vh,{className:"text-yellow-600 mr-1"})," \u65B0\u5EFA\u6587\u6863"]}),onClick:()=>{b(null),w.handleCreateRdoc()}},{key:"createMarkdown",label:At(Gr,{children:[ze(Zh,{className:"text-gray-800 mr-1"})," \u65B0\u5EFAMarkdown"]}),onClick:()=>{b(null),w.handleCreateMarkdown()}},{key:"createWord",label:At(Gr,{children:[ze(Wh,{className:"text-blue-600 mr-1"})," \u65B0\u5EFAWord"]}),onClick:()=>{b(null),w.handleCreateWord()}},{key:"createExcel",label:At(Gr,{children:[ze(Kh,{className:"text-green-600 mr-1"})," \u65B0\u5EFAExcel"]}),onClick:()=>{b(null),w.handleCreateExcel()}}],style:{borderRadius:6,boxShadow:"0 2px 8px rgb(var(--shadow-color) / 0.15)",background:"rgb(var(--color-surface))",border:"1px solid rgb(var(--color-border))",padding:"4px 0",fontSize:"14px",minWidth:160}})}),s.contextMenuVisible&&s.contextMenuRecord&&ze(Do,{record:s.contextMenuRecord,onPreview:w.handlePreview,onDownload:w.handleDownload,onDownloadFolder:s.isManager?w.handleDownloadFolder:void 0,onCopyLink:O?w.handleCopyLink:void 0,onRename:w.handleRename,onEditDescs:w.handleEditDescs,onDelete:w.handleDelete,onEdit:w.handleEditFile,onGenerateTempLink:I?w.handleGenerateTempLink:void 0,onMoveToProject:S?w.handleMoveToProject:void 0,onCopyToProject:S?w.handleCopyToProject:void 0,onCopyToSelf:J?w.handleCopyToSelf:void 0,onViewVersionHistory:Z?w.handleViewVersionHistory:void 0,onJumpToContract:M?w.handleJumpToContract:void 0,onCreateContract:M?w.handleCreateContract:void 0,onShareToWechat:A?w.handleShareToWechat:void 0,onClearCache:w.handleClearCache,onOpenInNewWindow:O?w.handleOpenInNewWindow:void 0,isAdminOrOwner:s.isManager,readOnly:h,open:!0,position:s.contextMenuPosition}),!h&&S&&ze(il,{visible:s.moveCopyModalVisible,fileIds:s.moveCopyFiles.map(U=>U.id),files:s.moveCopyFiles.map(U=>({fileName:U.fileName,fileType:U.fileType})),currentProjectId:e,mode:s.moveCopyMode,onCancel:()=>{c.setMoveCopyModalVisible(!1),c.setMoveCopyFiles([])},onSuccess:w.handleMoveCopySuccess}),Z&&ze(dl,{visible:s.versionHistoryModalVisible,file:s.versionHistoryFile,onClose:()=>{c.setVersionHistoryModalVisible(!1),c.setVersionHistoryFile(null)}}),!h&&A&&ze(fl,{visible:s.shareToWechatVisible,file:s.shareToWechatFile,onFileCached:w.handleCacheSaved,onClose:()=>{c.setShareToWechatVisible(!1),c.setShareToWechatFile(null)}})]})};import{useEffect as Yh,useMemo as nr,useState as Xr}from"react";import{ReloadOutlined as Jh}from"@ant-design/icons";import{Button as Qh,Empty as Rl,Input as eg,Modal as tg,Spin as ng,Tree as rg,message as $a}from"antd";import{API as Ha}from"@spacecorexdev/core/api";import{ResponseCode as Al}from"@spacecorexdev/core/api";import{CacheUserInfo as og}from"@spacecorexdev/core/utils";import{jsx as Ut,jsxs as Ua}from"react/jsx-runtime";var ja=e=>e.fileType==="folder",ag=e=>!e||e<=0?"":e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/1024/1024).toFixed(1)} MB`,Nl=e=>e.flatMap(t=>[t,...Nl(t.children||[])]),sg=e=>{let t=e.filePath&&e.filePath!=="/"?e.filePath:"/";return`${t}${t.endsWith("/")?"":"/"}${e.fileName}`},ig=(e,t)=>t==="single"?e.length?"\u9009\u62E9\u6587\u4EF6":"\u8BF7\u9009\u62E9\u6587\u4EF6":e.length?`\u6DFB\u52A0 ${e.length} \u4E2A\u6587\u4EF6`:"\u6DFB\u52A0\u6587\u4EF6",lg=(e,t)=>t==="single"?e.length?`\u5DF2\u9009\u62E9\uFF1A${e[0].fileName}`:"\u53EA\u80FD\u9009\u62E9\u6587\u4EF6\uFF0C\u6587\u4EF6\u5939\u4E0D\u4F1A\u88AB\u9009\u4E2D\u3002":`\u53EA\u80FD\u9009\u62E9\u6587\u4EF6\uFF0C\u6587\u4EF6\u5939\u4E0D\u4F1A\u88AB\u6DFB\u52A0\u3002\u5DF2\u9009\u62E9 ${e.length} \u4E2A\u6587\u4EF6\u3002`,Ll=(e,t,n)=>{let r=t.trim().toLowerCase();return e.flatMap(o=>{if(ja(o)){let d=Ll(o.children||[],t,n);return d.length?[{...o,children:d}]:[]}let i=!r||sg(o).toLowerCase().includes(r),l=n?n(o):!0;return i&&l?[o]:[]})},Bl=(e,t,n)=>e.map(r=>{let o=t.has(r.id);return{key:r.id,selectable:n==="single"?o:!1,disableCheckbox:n==="multiple"?!o:void 0,title:Ua("div",{className:"flex w-full min-w-0 max-w-full items-center gap-2 whitespace-nowrap",children:[Ut("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center text-base text-muted",children:Xt.getFileIcon({fileName:r.fileName,fileType:r.fileType,size:18})}),Ut("span",{className:"min-w-0 flex-1 truncate",title:r.fileName,children:r.fileName}),!ja(r)&&Ut("span",{className:"w-16 shrink-0 text-right text-xs text-muted",children:ag(r.fileSize||0)})]}),children:r.children?.length?Bl(r.children,t,n):void 0}}),Q0=({open:e,confirmLoading:t=!1,title:n="\u4ECE\u6211\u7684\u6587\u4EF6\u9009\u62E9\u6587\u4EF6",searchPlaceholder:r="\u641C\u7D22\u6211\u7684\u6587\u4EF6",selectionMode:o="multiple",okText:i,emptyDescription:l,helperText:d,fileFilter:a,onCancel:s,onConfirm:c})=>{let[p,b]=Xr(!1),[m,_]=Xr(""),[h,x]=Xr([]),[M,S]=Xr([]),[A,Z]=Xr(""),O=async()=>{let B=og.currentLocalUser();if(!B?.id){$a.warning("\u8BF7\u5148\u767B\u5F55\u540E\u518D\u9009\u62E9\u6211\u7684\u6587\u4EF6");return}b(!0);try{let K=B.id;if(!(await Ha.project.project.getProjectName({projectId:B.id})).data){let oe=await Ha.project.project.enableUserPrivateProject();if(oe.code!==Al.SUCCESS||!oe.data){$a.error(oe.message||"\u542F\u7528\u6211\u7684\u6587\u4EF6\u5931\u8D25");return}K=oe.data}_(K);let ge=await Ha.project.file.listFiles({projectId:K});if(ge.code!==Al.SUCCESS){$a.error(ge.message||"\u52A0\u8F7D\u6211\u7684\u6587\u4EF6\u5931\u8D25");return}x(Ln(To(ge.data||[])))}finally{b(!1)}};Yh(()=>{if(!e){S([]),Z("");return}O()},[e]);let I=nr(()=>lt(h),[h]),J=nr(()=>Nl(I),[I]),ne=nr(()=>J.filter(B=>!ja(B)&&(!a||a(B))),[J,a]),D=nr(()=>new Set(ne.map(B=>B.id)),[ne]),w=nr(()=>new Map(ne.map(B=>[B.id,B])),[ne]),W=nr(()=>M.flatMap(B=>{let K=w.get(String(B));return K?[K]:[]}),[M,w]),k=nr(()=>Bl(Ll(I,A,a),D,o),[a,I,A,D,o]),L=typeof i=="function"?i(W):i||ig(W,o),$=typeof d=="function"?d(W):d||lg(W,o);return Ut(tg,{title:n,open:e,width:720,className:"max-md:!top-2 max-md:!max-w-[calc(100vw-16px)] max-md:[&_.ant-modal-body]:!flex max-md:[&_.ant-modal-body]:!min-h-0 max-md:[&_.ant-modal-body]:!flex-1 max-md:[&_.ant-modal-body]:!flex-col max-md:[&_.ant-modal-body]:!overflow-hidden max-md:[&_.ant-modal-content]:!flex max-md:[&_.ant-modal-content]:!h-[calc(100dvh-16px)] max-md:[&_.ant-modal-content]:!flex-col max-md:[&_.ant-modal-footer]:!shrink-0",okText:L,cancelText:"\u53D6\u6D88",confirmLoading:t,okButtonProps:{disabled:W.length===0},onCancel:t?void 0:s,onOk:()=>c(W),children:Ua("div",{className:"flex min-h-0 flex-col gap-3 max-md:flex-1",children:[Ua("div",{className:"flex shrink-0 items-center gap-2",children:[Ut(eg.Search,{allowClear:!0,placeholder:r,value:A,onChange:B=>Z(B.target.value)}),Ut(Qh,{icon:Ut(Jh,{}),disabled:p||t,onClick:O,children:"\u5237\u65B0"})]}),Ut("div",{className:"max-h-[52vh] min-h-[360px] overflow-y-auto overflow-x-hidden rounded-xl border border-email-divider bg-surface p-3 max-md:min-h-0 max-md:flex-1 max-md:max-h-none",children:Ut(ng,{spinning:p,children:k.length?Ut(rg,{className:"w-full [&_.ant-tree-list-holder-inner]:!w-full [&_.ant-tree-node-content-wrapper]:!min-w-0 [&_.ant-tree-node-content-wrapper]:!flex-1 [&_.ant-tree-node-content-wrapper]:!overflow-hidden [&_.ant-tree-title]:!block [&_.ant-tree-title]:!min-w-0 [&_.ant-tree-title]:!w-full [&_.ant-tree-treenode]:!w-full [&_.ant-tree-treenode]:!min-w-0",checkable:o==="multiple",selectable:o==="single",checkStrictly:!0,treeData:k,checkedKeys:o==="multiple"?M:void 0,selectedKeys:o==="single"?M:void 0,defaultExpandAll:!!A.trim(),onCheck:B=>{let K=Array.isArray(B)?B:B.checked;S(K.filter(q=>D.has(String(q))))},onSelect:B=>{S(B.filter(K=>D.has(String(K))).slice(0,1))}}):Ut(Rl,{image:Rl.PRESENTED_IMAGE_SIMPLE,description:m?l||"\u6682\u65E0\u53EF\u9009\u62E9\u7684\u6587\u4EF6":"\u6211\u7684\u6587\u4EF6\u5C1A\u672A\u542F\u7528"})})}),Ut("div",{className:"shrink-0 text-xs text-muted",children:$})]})})};export{H0 as FileManager,qo as MarkdownEditor,il as MoveCopyToProjectModal,Q0 as MyFileSelectorModal,Zt as ProjectRole,Dr as UIFilePreview,Xt as uiFilePreview};
|