@spacecorexdev/core 0.0.2 → 0.0.5

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.
Files changed (345) hide show
  1. package/package.json +20 -38
  2. package/public/cmaps/78-EUC-H.bcmap +0 -0
  3. package/public/cmaps/78-EUC-V.bcmap +0 -0
  4. package/public/cmaps/78-H.bcmap +0 -0
  5. package/public/cmaps/78-RKSJ-H.bcmap +0 -0
  6. package/public/cmaps/78-RKSJ-V.bcmap +0 -0
  7. package/public/cmaps/78-V.bcmap +0 -0
  8. package/public/cmaps/78ms-RKSJ-H.bcmap +0 -0
  9. package/public/cmaps/78ms-RKSJ-V.bcmap +0 -0
  10. package/public/cmaps/83pv-RKSJ-H.bcmap +0 -0
  11. package/public/cmaps/90ms-RKSJ-H.bcmap +0 -0
  12. package/public/cmaps/90ms-RKSJ-V.bcmap +0 -0
  13. package/public/cmaps/90msp-RKSJ-H.bcmap +0 -0
  14. package/public/cmaps/90msp-RKSJ-V.bcmap +0 -0
  15. package/public/cmaps/90pv-RKSJ-H.bcmap +0 -0
  16. package/public/cmaps/90pv-RKSJ-V.bcmap +0 -0
  17. package/public/cmaps/Add-H.bcmap +0 -0
  18. package/public/cmaps/Add-RKSJ-H.bcmap +0 -0
  19. package/public/cmaps/Add-RKSJ-V.bcmap +0 -0
  20. package/public/cmaps/Add-V.bcmap +0 -0
  21. package/public/cmaps/Adobe-CNS1-0.bcmap +0 -0
  22. package/public/cmaps/Adobe-CNS1-1.bcmap +0 -0
  23. package/public/cmaps/Adobe-CNS1-2.bcmap +0 -0
  24. package/public/cmaps/Adobe-CNS1-3.bcmap +0 -0
  25. package/public/cmaps/Adobe-CNS1-4.bcmap +0 -0
  26. package/public/cmaps/Adobe-CNS1-5.bcmap +0 -0
  27. package/public/cmaps/Adobe-CNS1-6.bcmap +0 -0
  28. package/public/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
  29. package/public/cmaps/Adobe-GB1-0.bcmap +0 -0
  30. package/public/cmaps/Adobe-GB1-1.bcmap +0 -0
  31. package/public/cmaps/Adobe-GB1-2.bcmap +0 -0
  32. package/public/cmaps/Adobe-GB1-3.bcmap +0 -0
  33. package/public/cmaps/Adobe-GB1-4.bcmap +0 -0
  34. package/public/cmaps/Adobe-GB1-5.bcmap +0 -0
  35. package/public/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
  36. package/public/cmaps/Adobe-Japan1-0.bcmap +0 -0
  37. package/public/cmaps/Adobe-Japan1-1.bcmap +0 -0
  38. package/public/cmaps/Adobe-Japan1-2.bcmap +0 -0
  39. package/public/cmaps/Adobe-Japan1-3.bcmap +0 -0
  40. package/public/cmaps/Adobe-Japan1-4.bcmap +0 -0
  41. package/public/cmaps/Adobe-Japan1-5.bcmap +0 -0
  42. package/public/cmaps/Adobe-Japan1-6.bcmap +0 -0
  43. package/public/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
  44. package/public/cmaps/Adobe-Korea1-0.bcmap +0 -0
  45. package/public/cmaps/Adobe-Korea1-1.bcmap +0 -0
  46. package/public/cmaps/Adobe-Korea1-2.bcmap +0 -0
  47. package/public/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
  48. package/public/cmaps/B5-H.bcmap +0 -0
  49. package/public/cmaps/B5-V.bcmap +0 -0
  50. package/public/cmaps/B5pc-H.bcmap +0 -0
  51. package/public/cmaps/B5pc-V.bcmap +0 -0
  52. package/public/cmaps/CNS-EUC-H.bcmap +0 -0
  53. package/public/cmaps/CNS-EUC-V.bcmap +0 -0
  54. package/public/cmaps/CNS1-H.bcmap +0 -0
  55. package/public/cmaps/CNS1-V.bcmap +0 -0
  56. package/public/cmaps/CNS2-H.bcmap +0 -0
  57. package/public/cmaps/CNS2-V.bcmap +3 -0
  58. package/public/cmaps/ETHK-B5-H.bcmap +0 -0
  59. package/public/cmaps/ETHK-B5-V.bcmap +0 -0
  60. package/public/cmaps/ETen-B5-H.bcmap +0 -0
  61. package/public/cmaps/ETen-B5-V.bcmap +0 -0
  62. package/public/cmaps/ETenms-B5-H.bcmap +3 -0
  63. package/public/cmaps/ETenms-B5-V.bcmap +0 -0
  64. package/public/cmaps/EUC-H.bcmap +0 -0
  65. package/public/cmaps/EUC-V.bcmap +0 -0
  66. package/public/cmaps/Ext-H.bcmap +0 -0
  67. package/public/cmaps/Ext-RKSJ-H.bcmap +0 -0
  68. package/public/cmaps/Ext-RKSJ-V.bcmap +0 -0
  69. package/public/cmaps/Ext-V.bcmap +0 -0
  70. package/public/cmaps/GB-EUC-H.bcmap +0 -0
  71. package/public/cmaps/GB-EUC-V.bcmap +0 -0
  72. package/public/cmaps/GB-H.bcmap +4 -0
  73. package/public/cmaps/GB-V.bcmap +0 -0
  74. package/public/cmaps/GBK-EUC-H.bcmap +0 -0
  75. package/public/cmaps/GBK-EUC-V.bcmap +0 -0
  76. package/public/cmaps/GBK2K-H.bcmap +0 -0
  77. package/public/cmaps/GBK2K-V.bcmap +0 -0
  78. package/public/cmaps/GBKp-EUC-H.bcmap +0 -0
  79. package/public/cmaps/GBKp-EUC-V.bcmap +0 -0
  80. package/public/cmaps/GBT-EUC-H.bcmap +0 -0
  81. package/public/cmaps/GBT-EUC-V.bcmap +0 -0
  82. package/public/cmaps/GBT-H.bcmap +0 -0
  83. package/public/cmaps/GBT-V.bcmap +0 -0
  84. package/public/cmaps/GBTpc-EUC-H.bcmap +0 -0
  85. package/public/cmaps/GBTpc-EUC-V.bcmap +0 -0
  86. package/public/cmaps/GBpc-EUC-H.bcmap +0 -0
  87. package/public/cmaps/GBpc-EUC-V.bcmap +0 -0
  88. package/public/cmaps/H.bcmap +0 -0
  89. package/public/cmaps/HKdla-B5-H.bcmap +0 -0
  90. package/public/cmaps/HKdla-B5-V.bcmap +0 -0
  91. package/public/cmaps/HKdlb-B5-H.bcmap +0 -0
  92. package/public/cmaps/HKdlb-B5-V.bcmap +0 -0
  93. package/public/cmaps/HKgccs-B5-H.bcmap +0 -0
  94. package/public/cmaps/HKgccs-B5-V.bcmap +0 -0
  95. package/public/cmaps/HKm314-B5-H.bcmap +0 -0
  96. package/public/cmaps/HKm314-B5-V.bcmap +0 -0
  97. package/public/cmaps/HKm471-B5-H.bcmap +0 -0
  98. package/public/cmaps/HKm471-B5-V.bcmap +0 -0
  99. package/public/cmaps/HKscs-B5-H.bcmap +0 -0
  100. package/public/cmaps/HKscs-B5-V.bcmap +0 -0
  101. package/public/cmaps/Hankaku.bcmap +0 -0
  102. package/public/cmaps/Hiragana.bcmap +0 -0
  103. package/public/cmaps/KSC-EUC-H.bcmap +0 -0
  104. package/public/cmaps/KSC-EUC-V.bcmap +0 -0
  105. package/public/cmaps/KSC-H.bcmap +0 -0
  106. package/public/cmaps/KSC-Johab-H.bcmap +0 -0
  107. package/public/cmaps/KSC-Johab-V.bcmap +0 -0
  108. package/public/cmaps/KSC-V.bcmap +0 -0
  109. package/public/cmaps/KSCms-UHC-H.bcmap +0 -0
  110. package/public/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
  111. package/public/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
  112. package/public/cmaps/KSCms-UHC-V.bcmap +0 -0
  113. package/public/cmaps/KSCpc-EUC-H.bcmap +0 -0
  114. package/public/cmaps/KSCpc-EUC-V.bcmap +0 -0
  115. package/public/cmaps/Katakana.bcmap +0 -0
  116. package/public/cmaps/LICENSE +36 -0
  117. package/public/cmaps/NWP-H.bcmap +0 -0
  118. package/public/cmaps/NWP-V.bcmap +0 -0
  119. package/public/cmaps/RKSJ-H.bcmap +0 -0
  120. package/public/cmaps/RKSJ-V.bcmap +0 -0
  121. package/public/cmaps/Roman.bcmap +0 -0
  122. package/public/cmaps/UniCNS-UCS2-H.bcmap +0 -0
  123. package/public/cmaps/UniCNS-UCS2-V.bcmap +0 -0
  124. package/public/cmaps/UniCNS-UTF16-H.bcmap +0 -0
  125. package/public/cmaps/UniCNS-UTF16-V.bcmap +0 -0
  126. package/public/cmaps/UniCNS-UTF32-H.bcmap +0 -0
  127. package/public/cmaps/UniCNS-UTF32-V.bcmap +0 -0
  128. package/public/cmaps/UniCNS-UTF8-H.bcmap +0 -0
  129. package/public/cmaps/UniCNS-UTF8-V.bcmap +0 -0
  130. package/public/cmaps/UniGB-UCS2-H.bcmap +0 -0
  131. package/public/cmaps/UniGB-UCS2-V.bcmap +0 -0
  132. package/public/cmaps/UniGB-UTF16-H.bcmap +0 -0
  133. package/public/cmaps/UniGB-UTF16-V.bcmap +0 -0
  134. package/public/cmaps/UniGB-UTF32-H.bcmap +0 -0
  135. package/public/cmaps/UniGB-UTF32-V.bcmap +0 -0
  136. package/public/cmaps/UniGB-UTF8-H.bcmap +0 -0
  137. package/public/cmaps/UniGB-UTF8-V.bcmap +0 -0
  138. package/public/cmaps/UniJIS-UCS2-H.bcmap +0 -0
  139. package/public/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
  140. package/public/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
  141. package/public/cmaps/UniJIS-UCS2-V.bcmap +0 -0
  142. package/public/cmaps/UniJIS-UTF16-H.bcmap +0 -0
  143. package/public/cmaps/UniJIS-UTF16-V.bcmap +0 -0
  144. package/public/cmaps/UniJIS-UTF32-H.bcmap +0 -0
  145. package/public/cmaps/UniJIS-UTF32-V.bcmap +0 -0
  146. package/public/cmaps/UniJIS-UTF8-H.bcmap +0 -0
  147. package/public/cmaps/UniJIS-UTF8-V.bcmap +0 -0
  148. package/public/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
  149. package/public/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
  150. package/public/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
  151. package/public/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
  152. package/public/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
  153. package/public/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
  154. package/public/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
  155. package/public/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
  156. package/public/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
  157. package/public/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
  158. package/public/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
  159. package/public/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
  160. package/public/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
  161. package/public/cmaps/UniKS-UCS2-H.bcmap +0 -0
  162. package/public/cmaps/UniKS-UCS2-V.bcmap +0 -0
  163. package/public/cmaps/UniKS-UTF16-H.bcmap +0 -0
  164. package/public/cmaps/UniKS-UTF16-V.bcmap +0 -0
  165. package/public/cmaps/UniKS-UTF32-H.bcmap +0 -0
  166. package/public/cmaps/UniKS-UTF32-V.bcmap +0 -0
  167. package/public/cmaps/UniKS-UTF8-H.bcmap +0 -0
  168. package/public/cmaps/UniKS-UTF8-V.bcmap +0 -0
  169. package/public/cmaps/V.bcmap +0 -0
  170. package/public/cmaps/WP-Symbol.bcmap +0 -0
  171. package/public/polyfills/polyfills.js +802 -0
  172. package/public/vendor/docx/docx.worker.js +5 -0
  173. package/public/vendor/docx/jszip.min.js +13 -0
  174. package/public/vendor/libarchive/libarchive.wasm +0 -0
  175. package/public/vendor/libarchive/worker-bundle.js +6 -0
  176. package/public/vendor/pptx/pptx.worker.js +26 -0
  177. package/public/wasm/cad/0.8.2/dwfv-render.wasm +0 -0
  178. package/public/wasm/cad/0.8.2/dwg-worker.js +24 -0
  179. package/public/wasm/cad/0.8.2/dwg-worker.js.map +1 -0
  180. package/public/wasm/cad/0.8.2/libredwg-web.js +2 -0
  181. package/public/wasm/cad/0.8.2/libredwg-web.wasm +0 -0
  182. package/public/wasm/cad/dwfv-render.wasm +0 -0
  183. package/public/wasm/cad/dwg-worker.js +24 -0
  184. package/public/wasm/cad/dwg-worker.js.map +1 -0
  185. package/public/wasm/cad/libredwg-web.js +2 -0
  186. package/public/wasm/cad/libredwg-web.wasm +0 -0
  187. package/public/wasm/data/sql-wasm.wasm +0 -0
  188. package/public/wasm/hdiff.wasm +0 -0
  189. package/public/wasm/model/LICENSE.occt-import-js.txt +504 -0
  190. package/public/wasm/model/LICENSE.occt.txt +502 -0
  191. package/public/wasm/model/occt-import-js.js +19 -0
  192. package/public/wasm/model/occt-import-js.wasm +0 -0
  193. package/public/wasm/model/occt-worker.js +83 -0
  194. package/public/wasm/typst/fonts/DejaVuSansMono-Bold.ttf +0 -0
  195. package/public/wasm/typst/fonts/DejaVuSansMono-BoldOblique.ttf +0 -0
  196. package/public/wasm/typst/fonts/DejaVuSansMono-Oblique.ttf +0 -0
  197. package/public/wasm/typst/fonts/DejaVuSansMono.ttf +0 -0
  198. package/public/wasm/typst/fonts/LibertinusSerif-Bold.otf +0 -0
  199. package/public/wasm/typst/fonts/LibertinusSerif-BoldItalic.otf +0 -0
  200. package/public/wasm/typst/fonts/LibertinusSerif-Italic.otf +0 -0
  201. package/public/wasm/typst/fonts/LibertinusSerif-Regular.otf +0 -0
  202. package/public/wasm/typst/fonts/LibertinusSerif-Semibold.otf +0 -0
  203. package/public/wasm/typst/fonts/LibertinusSerif-SemiboldItalic.otf +0 -0
  204. package/public/wasm/typst/fonts/NewCM10-Bold.otf +0 -0
  205. package/public/wasm/typst/fonts/NewCM10-BoldItalic.otf +0 -0
  206. package/public/wasm/typst/fonts/NewCM10-Italic.otf +0 -0
  207. package/public/wasm/typst/fonts/NewCM10-Regular.otf +0 -0
  208. package/public/wasm/typst/fonts/NewCMMath-Bold.otf +0 -0
  209. package/public/wasm/typst/fonts/NewCMMath-Book.otf +0 -0
  210. package/public/wasm/typst/fonts/NewCMMath-Regular.otf +0 -0
  211. package/public/wasm/typst/fonts/README.md +7 -0
  212. package/public/wasm/typst/typst_ts_renderer_bg.wasm +0 -0
  213. package/public/wasm/typst/typst_ts_web_compiler_bg.wasm +0 -0
  214. package/scripts/patch-docx-grid.cjs +412 -0
  215. package/src/api/_base.ts +243 -0
  216. package/src/api/index.ts +17 -0
  217. package/src/api/project.ts +1345 -0
  218. package/src/api/user.ts +1174 -0
  219. package/src/contract.ts +50 -0
  220. package/src/hooks/index.ts +2 -0
  221. package/{dist/hooks/index.js → src/hooks/useLongPress.ts} +53 -49
  222. package/src/hooks/useOnlineStatus.ts +22 -0
  223. package/src/index.ts +14 -0
  224. package/src/types/id.ts +2 -0
  225. package/src/types/index.ts +5 -0
  226. package/src/types/project/base.ts +63 -0
  227. package/src/types/project/contract.ts +79 -0
  228. package/src/types/project/contractStatus.tsx +15 -0
  229. package/src/types/project/index.ts +5 -0
  230. package/src/types/project/member.ts +46 -0
  231. package/src/types/project/progress.ts +43 -0
  232. package/src/types/projectRole.ts +17 -0
  233. package/src/types/theme.ts +1 -0
  234. package/src/types/user/index.ts +1 -0
  235. package/src/types/user/role.ts +7 -0
  236. package/src/ui/CommentTimeline/index.tsx +330 -0
  237. package/src/ui/FileManager/FileContextMenu.tsx +628 -0
  238. package/src/ui/FileManager/FileGridView.tsx +529 -0
  239. package/src/ui/FileManager/FileTableView.tsx +405 -0
  240. package/src/ui/FileManager/FileToolbar.tsx +119 -0
  241. package/src/ui/FileManager/FileVersionHistoryModal.tsx +175 -0
  242. package/src/ui/FileManager/MoveCopyToProjectModal.tsx +119 -0
  243. package/src/ui/FileManager/ShareToWechatModal.tsx +419 -0
  244. package/src/ui/FileManager/hooks/useFileManagerActions.ts +2532 -0
  245. package/src/ui/FileManager/hooks/useFileManagerState.ts +419 -0
  246. package/src/ui/FileManager/index.tsx +580 -0
  247. package/src/ui/FileManager/projectFileManagerApi.ts +57 -0
  248. package/src/ui/FileManager/types.ts +184 -0
  249. package/src/ui/FileManager/utils/fileDeltaWorker.ts +193 -0
  250. package/src/ui/FileManager/utils/fileTree.ts +178 -0
  251. package/src/ui/FileManager/utils/fileUpload.ts +714 -0
  252. package/src/ui/FileManager/utils/fileUtils.ts +65 -0
  253. package/src/ui/InvoiceRecordsList/index.tsx +813 -0
  254. package/src/ui/MyFileSelectorModal.tsx +261 -0
  255. package/src/ui/ProjectSelector/index.tsx +472 -0
  256. package/src/ui/ProjectSelector/projectCache.ts +40 -0
  257. package/src/ui/RoleSelector/index.tsx +473 -0
  258. package/src/ui/RoleSelector/roleCache.ts +40 -0
  259. package/src/ui/UIAlert.tsx +399 -0
  260. package/src/ui/UIAlertExample.tsx +129 -0
  261. package/src/ui/UIConfirm.tsx +335 -0
  262. package/src/ui/UIConfirmExample.tsx +165 -0
  263. package/src/ui/UIDatePicker.tsx +146 -0
  264. package/src/ui/UIDateRangePicker.tsx +38 -0
  265. package/src/ui/UIFilePreview/ExcelEditor/index.tsx +617 -0
  266. package/src/ui/UIFilePreview/ExcelEditor/types.ts +24 -0
  267. package/src/ui/UIFilePreview/ExportDropdown.css +85 -0
  268. package/src/ui/UIFilePreview/ExportDropdown.tsx +109 -0
  269. package/src/ui/UIFilePreview/IndexedDBUtils.ts +564 -0
  270. package/src/ui/UIFilePreview/MarkdownEditor/exportMarkdownPdf.ts +576 -0
  271. package/src/ui/UIFilePreview/MarkdownEditor/index.tsx +677 -0
  272. package/src/ui/UIFilePreview/MarkdownEditor/markdownEditor.css +1005 -0
  273. package/src/ui/UIFilePreview/MarkdownEditor/types.ts +15 -0
  274. package/src/ui/UIFilePreview/PPTXEditor/index.tsx +602 -0
  275. package/src/ui/UIFilePreview/RichDocEditor/exportRDocMarkdown.ts +77 -0
  276. package/src/ui/UIFilePreview/RichDocEditor/exportRDocPdf.ts +374 -0
  277. package/src/ui/UIFilePreview/RichDocEditor/index.tsx +730 -0
  278. package/src/ui/UIFilePreview/RichDocEditor/richdoc-editor.css +59 -0
  279. package/src/ui/UIFilePreview/UIFilePreview.tsx +611 -0
  280. package/src/ui/UIFilePreview/WordEditor/index.tsx +3933 -0
  281. package/src/ui/UIFilePreview/WordEditor/style.ts +1213 -0
  282. package/src/ui/UIFilePreview/WordEditor/word-editor.css +999 -0
  283. package/src/ui/UIFilePreview/filePreview.css +193 -0
  284. package/src/ui/UIFilePreview/filetypes/archive.tsx +66 -0
  285. package/src/ui/UIFilePreview/filetypes/cad.tsx +287 -0
  286. package/src/ui/UIFilePreview/filetypes/excel.tsx +355 -0
  287. package/src/ui/UIFilePreview/filetypes/image.tsx +20 -0
  288. package/src/ui/UIFilePreview/filetypes/imageLoader.ts +63 -0
  289. package/src/ui/UIFilePreview/filetypes/pdf.tsx +156 -0
  290. package/src/ui/UIFilePreview/filetypes/ppt.tsx +535 -0
  291. package/src/ui/UIFilePreview/filetypes/pptExportPdf.ts +523 -0
  292. package/src/ui/UIFilePreview/filetypes/video.tsx +482 -0
  293. package/src/ui/UIFilePreview/filetypes/word.tsx +245 -0
  294. package/src/ui/UIFilePreview/filetypes/wordExportMarkdown.ts +86 -0
  295. package/src/ui/UIFilePreview/filetypes/wordExportPdf.tsx +427 -0
  296. package/src/ui/UIFilePreview/index.ts +35 -0
  297. package/src/ui/UIFilePreview/pdfPagination.ts +143 -0
  298. package/src/ui/UIFilePreview/previewUtils.tsx +531 -0
  299. package/src/ui/UIFileUpload.tsx +382 -0
  300. package/src/ui/UIImageUpload.tsx +195 -0
  301. package/src/ui/UILoading.tsx +255 -0
  302. package/src/ui/UILoadingExample.tsx +139 -0
  303. package/src/ui/UISelect.tsx +105 -0
  304. package/src/ui/UIToast.tsx +381 -0
  305. package/src/ui/UIToastExample.tsx +69 -0
  306. package/src/ui/UIToastSingle.tsx +279 -0
  307. package/src/ui/UIViewToggle.tsx +64 -0
  308. package/src/ui/UserSelector/index.tsx +583 -0
  309. package/src/ui/index.ts +84 -0
  310. package/src/ui/upload/image.ts +135 -0
  311. package/src/ui/upload/index.ts +73 -0
  312. package/src/ui/upload/submitFile.ts +106 -0
  313. package/src/ui/upload/submitForm.ts +124 -0
  314. package/src/ui/upload/upload.err.ts +15 -0
  315. package/src/ui/upload/upload.ts +250 -0
  316. package/src/utils/CacheDepartmentInfo.ts +372 -0
  317. package/src/utils/CacheFileContent.ts +315 -0
  318. package/src/utils/CachePermissionInfo.ts +235 -0
  319. package/src/utils/CacheRoleInfo.ts +303 -0
  320. package/src/utils/CacheUserInfo.ts +818 -0
  321. package/src/utils/CacheViewToggleInfo.ts +182 -0
  322. package/src/utils/MessageContentUtils.ts +268 -0
  323. package/src/utils/clipboard.ts +70 -0
  324. package/src/utils/companyEmail.ts +19 -0
  325. package/src/utils/forbidDebugger.ts +59 -0
  326. package/src/utils/formatters.ts +94 -0
  327. package/src/utils/htmlUtils.tsx +59 -0
  328. package/src/utils/index.ts +18 -0
  329. package/src/utils/keyboard.ts +114 -0
  330. package/src/utils/mammothApi.ts +16 -0
  331. package/src/utils/polyfills.ts +928 -0
  332. package/src/utils/regex.ts +14 -0
  333. package/src/utils/storage.ts +95 -0
  334. package/src/utils/workerBootstrap.ts +87 -0
  335. package/dist/api/index.js +0 -1553
  336. package/dist/contract.js +0 -5
  337. package/dist/index.js +0 -4492
  338. package/dist/types/index.js +0 -49
  339. package/dist/ui/index.css +0 -1876
  340. package/dist/ui/index.js +0 -22245
  341. package/dist/utils/index.js +0 -4296
  342. /package/{dist → src}/styles/ant-modal.css +0 -0
  343. /package/{dist → src}/styles/ant-spin.css +0 -0
  344. /package/{dist → src}/styles/ant-table.css +0 -0
  345. /package/{dist → src}/styles/index.css +0 -0
@@ -0,0 +1,419 @@
1
+ import { useState, useCallback, useEffect } from 'react';
2
+ import { ProjectFile, FileSortBy } from '../types';
3
+
4
+ type ViewMode = 'table' | 'grid';
5
+ type CreatingFileType = 'pptx' | 'md' | 'xlsx' | 'docx' | 'rdoc' | null;
6
+ type SortOrder = 'asc' | 'desc';
7
+
8
+ /** 文件排序偏好(grid/table 共用)缓存键 */
9
+ const SORT_CACHE_KEY = 'file-manager-sort';
10
+
11
+ interface SortCache {
12
+ sortBy: FileSortBy;
13
+ sortOrder: SortOrder;
14
+ }
15
+
16
+ const isFileSortBy = (value: unknown): value is FileSortBy =>
17
+ value === 'fileName' || value === 'fileType' || value === 'fileSize' || value === 'uploadTime';
18
+
19
+ /** 读取本地排序偏好,无效或异常时返回 null */
20
+ const readSortCache = (): SortCache | null => {
21
+ try {
22
+ const raw = localStorage.getItem(SORT_CACHE_KEY);
23
+ if (!raw) return null;
24
+ const parsed = JSON.parse(raw) as Partial<SortCache> | null;
25
+ if (parsed && isFileSortBy(parsed.sortBy) && (parsed.sortOrder === 'asc' || parsed.sortOrder === 'desc')) {
26
+ return { sortBy: parsed.sortBy, sortOrder: parsed.sortOrder };
27
+ }
28
+ return null;
29
+ } catch {
30
+ return null;
31
+ }
32
+ };
33
+
34
+ interface FileManagerState {
35
+ files: ProjectFile[];
36
+ fileTreeData: ProjectFile[];
37
+ /** 文件列表是否正在加载 */
38
+ loading: boolean;
39
+ expandedRowKeys: string[];
40
+ viewMode: ViewMode;
41
+ smallView: boolean;
42
+ selectedFolderId: string | null;
43
+ dragSourceId: string | null;
44
+ dragOverId: string | null;
45
+ rootDragOver: boolean;
46
+ uploadPercent: number | undefined;
47
+ uploadSuccess: boolean | undefined;
48
+ dragUploadPercent: number | undefined;
49
+ dragUploadSuccess: boolean | undefined;
50
+ dragUploadingFileName: string;
51
+ isExternalDragOver: boolean;
52
+ createFolderVisible: boolean;
53
+ newFolderName: string;
54
+ newFolderDescs: string;
55
+ isEncryptedFolder: boolean;
56
+ renameVisible: boolean;
57
+ renameFileName: string;
58
+ renameFileId: string | null;
59
+ descsVisible: boolean;
60
+ descsFileId: string | null;
61
+ descsValue: string;
62
+ editorVisible: boolean;
63
+ editingFile: ProjectFile | null;
64
+ creatorVisible: boolean;
65
+ creatingFileName: string;
66
+ creatingFileType: CreatingFileType;
67
+ previewUrl: string | null;
68
+ previewVisible: boolean;
69
+ previewFileName: string | null;
70
+ previewCrc32: number | undefined;
71
+ /** 当前预览中的文件(由 handlePreview 同步设置,作为 previewFile 计算的权威来源) */
72
+ previewingFile: ProjectFile | null;
73
+ contextMenuVisible: boolean;
74
+ contextMenuPosition: { x: number; y: number };
75
+ contextMenuRecord: ProjectFile | null;
76
+ isManager: boolean;
77
+ moveCopyModalVisible: boolean;
78
+ moveCopyMode: 'move' | 'copy';
79
+ moveCopyFiles: ProjectFile[];
80
+ versionHistoryModalVisible: boolean;
81
+ versionHistoryFile: ProjectFile | null;
82
+ shareToWechatVisible: boolean;
83
+ shareToWechatFile: ProjectFile | null;
84
+ /** 当前是否在线(网络状态) */
85
+ isOnline: boolean;
86
+ /** 当前预览/编辑的本地文件唯一标识(仅本地文件或有未同步修改时存在) */
87
+ previewLocalId: string | null;
88
+ /** 当前预览/编辑的是否为仅本地文件(从未上传) */
89
+ previewIsLocalOnly: boolean;
90
+ /** 当前预览/编辑的文件是否有未同步的本地修改 */
91
+ previewHasUnsyncedChanges: boolean;
92
+ /** 新建文件名输入对话框可见性 */
93
+ createFileVisible: boolean;
94
+ /** 新建文件名输入对话框中的文件名(含扩展名) */
95
+ newFileName: string;
96
+ /** 新建文件名对话框待创建的文件类型 */
97
+ pendingFileType: CreatingFileType;
98
+ /** 排序字段 */
99
+ sortBy: FileSortBy;
100
+ /** 排序顺序 */
101
+ sortOrder: 'asc' | 'desc';
102
+ }
103
+
104
+ interface FileManagerStateActions {
105
+ setFiles: (files: ProjectFile[]) => void;
106
+ setFileTreeData: (data: ProjectFile[]) => void;
107
+ setLoading: (loading: boolean) => void;
108
+ setExpandedRowKeys: (keys: string[]) => void;
109
+ toggleExpandKey: (key: string) => void;
110
+ setViewMode: (mode: ViewMode) => void;
111
+ setSmallView: (small: boolean) => void;
112
+ setSelectedFolderId: (id: string | null) => void;
113
+ setDragSourceId: (id: string | null) => void;
114
+ setDragOverId: (id: string | null) => void;
115
+ setRootDragOver: (over: boolean) => void;
116
+ setUploadPercent: (percent: number | undefined) => void;
117
+ setUploadSuccess: (success: boolean | undefined) => void;
118
+ setDragUploadPercent: (percent: number | undefined) => void;
119
+ setDragUploadSuccess: (success: boolean | undefined) => void;
120
+ setDragUploadingFileName: (name: string) => void;
121
+ setIsExternalDragOver: (over: boolean) => void;
122
+ setCreateFolderVisible: (visible: boolean) => void;
123
+ setNewFolderName: (name: string) => void;
124
+ setNewFolderDescs: (descs: string) => void;
125
+ setIsEncryptedFolder: (encrypted: boolean) => void;
126
+ setRenameVisible: (visible: boolean) => void;
127
+ setRenameFileName: (name: string) => void;
128
+ setRenameFileId: (id: string | null) => void;
129
+ setDescsVisible: (visible: boolean) => void;
130
+ setDescsFileId: (id: string | null) => void;
131
+ setDescsValue: (value: string) => void;
132
+ setEditorVisible: (visible: boolean) => void;
133
+ setEditingFile: (file: ProjectFile | null) => void;
134
+ setCreatorVisible: (visible: boolean) => void;
135
+ setCreatingFileName: (name: string) => void;
136
+ setCreatingFileType: (type: CreatingFileType) => void;
137
+ setPreviewUrl: (url: string | null) => void;
138
+ setPreviewVisible: (visible: boolean) => void;
139
+ setPreviewFileName: (name: string | null) => void;
140
+ setPreviewCrc32: (crc32: number | undefined) => void;
141
+ setPreviewingFile: (file: ProjectFile | null) => void;
142
+ setContextMenuVisible: (visible: boolean) => void;
143
+ setContextMenuPosition: (pos: { x: number; y: number }) => void;
144
+ setContextMenuRecord: (record: ProjectFile | null) => void;
145
+ setIsManager: (manager: boolean) => void;
146
+ setMoveCopyModalVisible: (visible: boolean) => void;
147
+ setMoveCopyMode: (mode: 'move' | 'copy') => void;
148
+ setMoveCopyFiles: (files: ProjectFile[]) => void;
149
+ setVersionHistoryModalVisible: (visible: boolean) => void;
150
+ setVersionHistoryFile: (file: ProjectFile | null) => void;
151
+ setShareToWechatVisible: (visible: boolean) => void;
152
+ setShareToWechatFile: (file: ProjectFile | null) => void;
153
+ setIsOnline: (online: boolean) => void;
154
+ setPreviewLocalId: (localId: string | null) => void;
155
+ setPreviewIsLocalOnly: (isLocalOnly: boolean) => void;
156
+ setPreviewHasUnsyncedChanges: (has: boolean) => void;
157
+ setCreateFileVisible: (visible: boolean) => void;
158
+ setNewFileName: (name: string) => void;
159
+ setPendingFileType: (type: CreatingFileType) => void;
160
+ setSortBy: (by: FileSortBy) => void;
161
+ setSortOrder: (order: 'asc' | 'desc') => void;
162
+ resetPreviewState: () => void;
163
+ resetEditorState: () => void;
164
+ resetCreatorState: () => void;
165
+ resetContextMenu: () => void;
166
+ resetMoveCopyState: () => void;
167
+ resetVersionHistoryState: () => void;
168
+ resetShareToWechatState: () => void;
169
+ }
170
+
171
+ export const useFileManagerState = (): [FileManagerState, FileManagerStateActions] => {
172
+ const [files, setFiles] = useState<ProjectFile[]>([]);
173
+ const [fileTreeData, setFileTreeData] = useState<ProjectFile[]>([]);
174
+ const [loading, setLoading] = useState<boolean>(false);
175
+ const [expandedRowKeys, setExpandedRowKeys] = useState<string[]>([]);
176
+ const [viewMode, setViewMode] = useState<ViewMode>('table');
177
+ const [smallView, setSmallView] = useState(false);
178
+ const [selectedFolderId, setSelectedFolderId] = useState<string | null>(null);
179
+ const [dragSourceId, setDragSourceId] = useState<string | null>(null);
180
+ const [dragOverId, setDragOverId] = useState<string | null>(null);
181
+ const [rootDragOver, setRootDragOver] = useState(false);
182
+ const [uploadPercent, setUploadPercent] = useState<number | undefined>(undefined);
183
+ const [uploadSuccess, setUploadSuccess] = useState<boolean | undefined>(undefined);
184
+ const [dragUploadPercent, setDragUploadPercent] = useState<number | undefined>(undefined);
185
+ const [dragUploadSuccess, setDragUploadSuccess] = useState<boolean | undefined>(undefined);
186
+ const [dragUploadingFileName, setDragUploadingFileName] = useState('');
187
+ const [isExternalDragOver, setIsExternalDragOver] = useState(false);
188
+ const [createFolderVisible, setCreateFolderVisible] = useState(false);
189
+ const [newFolderName, setNewFolderName] = useState('');
190
+ const [newFolderDescs, setNewFolderDescs] = useState('');
191
+ const [isEncryptedFolder, setIsEncryptedFolder] = useState(false);
192
+ const [renameVisible, setRenameVisible] = useState(false);
193
+ const [renameFileName, setRenameFileName] = useState('');
194
+ const [renameFileId, setRenameFileId] = useState<string | null>(null);
195
+ const [descsVisible, setDescsVisible] = useState(false);
196
+ const [descsFileId, setDescsFileId] = useState<string | null>(null);
197
+ const [descsValue, setDescsValue] = useState('');
198
+ const [editorVisible, setEditorVisible] = useState(false);
199
+ const [editingFile, setEditingFile] = useState<ProjectFile | null>(null);
200
+ const [creatorVisible, setCreatorVisible] = useState(false);
201
+ const [creatingFileName, setCreatingFileName] = useState('');
202
+ const [creatingFileType, setCreatingFileType] = useState<CreatingFileType>(null);
203
+ const [previewUrl, setPreviewUrl] = useState<string | null>(null);
204
+ const [previewVisible, setPreviewVisible] = useState(false);
205
+ const [previewFileName, setPreviewFileName] = useState<string | null>(null);
206
+ const [previewCrc32, setPreviewCrc32] = useState<number | undefined>(undefined);
207
+ const [previewingFile, setPreviewingFile] = useState<ProjectFile | null>(null);
208
+ const [contextMenuVisible, setContextMenuVisible] = useState(false);
209
+ const [contextMenuPosition, setContextMenuPosition] = useState({ x: 0, y: 0 });
210
+ const [contextMenuRecord, setContextMenuRecord] = useState<ProjectFile | null>(null);
211
+ const [isManager, setIsManager] = useState(false);
212
+ const [moveCopyModalVisible, setMoveCopyModalVisible] = useState(false);
213
+ const [moveCopyMode, setMoveCopyMode] = useState<'move' | 'copy'>('move');
214
+ const [moveCopyFiles, setMoveCopyFiles] = useState<ProjectFile[]>([]);
215
+ const [versionHistoryModalVisible, setVersionHistoryModalVisible] = useState(false);
216
+ const [versionHistoryFile, setVersionHistoryFile] = useState<ProjectFile | null>(null);
217
+ const [shareToWechatVisible, setShareToWechatVisible] = useState(false);
218
+ const [shareToWechatFile, setShareToWechatFile] = useState<ProjectFile | null>(null);
219
+ const [isOnline, setIsOnline] = useState<boolean>(typeof navigator !== 'undefined' ? navigator.onLine : true);
220
+ const [previewLocalId, setPreviewLocalId] = useState<string | null>(null);
221
+ const [previewIsLocalOnly, setPreviewIsLocalOnly] = useState<boolean>(false);
222
+ const [previewHasUnsyncedChanges, setPreviewHasUnsyncedChanges] = useState<boolean>(false);
223
+ const [createFileVisible, setCreateFileVisible] = useState<boolean>(false);
224
+ const [newFileName, setNewFileName] = useState<string>('');
225
+ const [pendingFileType, setPendingFileType] = useState<CreatingFileType>(null);
226
+ const [sortBy, setSortBy] = useState<FileSortBy>(() => readSortCache()?.sortBy ?? 'fileName');
227
+ const [sortOrder, setSortOrder] = useState<SortOrder>(() => readSortCache()?.sortOrder ?? 'asc');
228
+
229
+ // 排序偏好落本地:grid/table 共用同一份状态,下次进入文件管理页面时恢复
230
+ useEffect(() => {
231
+ try {
232
+ localStorage.setItem(SORT_CACHE_KEY, JSON.stringify({ sortBy, sortOrder }));
233
+ } catch {
234
+ // 本地存储不可用时忽略
235
+ }
236
+ }, [sortBy, sortOrder]);
237
+
238
+ const toggleExpandKey = useCallback((key: string) => {
239
+ setExpandedRowKeys(prev => prev.includes(key)
240
+ ? prev.filter(k => k !== key)
241
+ : [...prev, key]
242
+ );
243
+ }, []);
244
+
245
+ const resetPreviewState = useCallback(() => {
246
+ setPreviewUrl(null);
247
+ setPreviewVisible(false);
248
+ setPreviewFileName(null);
249
+ setPreviewCrc32(undefined);
250
+ setPreviewingFile(null);
251
+ setPreviewLocalId(null);
252
+ setPreviewIsLocalOnly(false);
253
+ setPreviewHasUnsyncedChanges(false);
254
+ }, []);
255
+
256
+ const resetEditorState = useCallback(() => {
257
+ setEditorVisible(false);
258
+ setEditingFile(null);
259
+ setPreviewLocalId(null);
260
+ setPreviewIsLocalOnly(false);
261
+ setPreviewHasUnsyncedChanges(false);
262
+ }, []);
263
+
264
+ const resetCreatorState = useCallback(() => {
265
+ setCreatorVisible(false);
266
+ setCreatingFileName('');
267
+ setCreatingFileType(null);
268
+ setPreviewLocalId(null);
269
+ setPreviewIsLocalOnly(false);
270
+ setPreviewHasUnsyncedChanges(false);
271
+ }, []);
272
+
273
+ const resetContextMenu = useCallback(() => {
274
+ setContextMenuVisible(false);
275
+ setContextMenuRecord(null);
276
+ }, []);
277
+
278
+ const resetMoveCopyState = useCallback(() => {
279
+ setMoveCopyModalVisible(false);
280
+ setMoveCopyFiles([]);
281
+ }, []);
282
+
283
+ const resetVersionHistoryState = useCallback(() => {
284
+ setVersionHistoryModalVisible(false);
285
+ setVersionHistoryFile(null);
286
+ }, []);
287
+
288
+ const resetShareToWechatState = useCallback(() => {
289
+ setShareToWechatVisible(false);
290
+ setShareToWechatFile(null);
291
+ }, []);
292
+
293
+ return [
294
+ {
295
+ files,
296
+ fileTreeData,
297
+ loading,
298
+ expandedRowKeys,
299
+ viewMode,
300
+ smallView,
301
+ selectedFolderId,
302
+ dragSourceId,
303
+ dragOverId,
304
+ rootDragOver,
305
+ uploadPercent,
306
+ uploadSuccess,
307
+ dragUploadPercent,
308
+ dragUploadSuccess,
309
+ dragUploadingFileName,
310
+ isExternalDragOver,
311
+ createFolderVisible,
312
+ newFolderName,
313
+ newFolderDescs,
314
+ isEncryptedFolder,
315
+ renameVisible,
316
+ renameFileName,
317
+ renameFileId,
318
+ descsVisible,
319
+ descsFileId,
320
+ descsValue,
321
+ editorVisible,
322
+ editingFile,
323
+ creatorVisible,
324
+ creatingFileName,
325
+ creatingFileType,
326
+ previewUrl,
327
+ previewVisible,
328
+ previewFileName,
329
+ previewCrc32,
330
+ previewingFile,
331
+ contextMenuVisible,
332
+ contextMenuPosition,
333
+ contextMenuRecord,
334
+ isManager,
335
+ moveCopyModalVisible,
336
+ moveCopyMode,
337
+ moveCopyFiles,
338
+ versionHistoryModalVisible,
339
+ versionHistoryFile,
340
+ shareToWechatVisible,
341
+ shareToWechatFile,
342
+ isOnline,
343
+ previewLocalId,
344
+ previewIsLocalOnly,
345
+ previewHasUnsyncedChanges,
346
+ createFileVisible,
347
+ newFileName,
348
+ pendingFileType,
349
+ sortBy,
350
+ sortOrder,
351
+ },
352
+ {
353
+ setFiles,
354
+ setFileTreeData,
355
+ setLoading,
356
+ setExpandedRowKeys,
357
+ toggleExpandKey,
358
+ setViewMode,
359
+ setSmallView,
360
+ setSelectedFolderId,
361
+ setDragSourceId,
362
+ setDragOverId,
363
+ setRootDragOver,
364
+ setUploadPercent,
365
+ setUploadSuccess,
366
+ setDragUploadPercent,
367
+ setDragUploadSuccess,
368
+ setDragUploadingFileName,
369
+ setIsExternalDragOver,
370
+ setCreateFolderVisible,
371
+ setNewFolderName,
372
+ setNewFolderDescs,
373
+ setIsEncryptedFolder,
374
+ setRenameVisible,
375
+ setRenameFileName,
376
+ setRenameFileId,
377
+ setDescsVisible,
378
+ setDescsFileId,
379
+ setDescsValue,
380
+ setEditorVisible,
381
+ setEditingFile,
382
+ setCreatorVisible,
383
+ setCreatingFileName,
384
+ setCreatingFileType,
385
+ setPreviewUrl,
386
+ setPreviewVisible,
387
+ setPreviewFileName,
388
+ setPreviewCrc32,
389
+ setPreviewingFile,
390
+ setContextMenuVisible,
391
+ setContextMenuPosition,
392
+ setContextMenuRecord,
393
+ setIsManager,
394
+ setMoveCopyModalVisible,
395
+ setMoveCopyMode,
396
+ setMoveCopyFiles,
397
+ setVersionHistoryModalVisible,
398
+ setVersionHistoryFile,
399
+ setShareToWechatVisible,
400
+ setShareToWechatFile,
401
+ setIsOnline,
402
+ setPreviewLocalId,
403
+ setPreviewIsLocalOnly,
404
+ setPreviewHasUnsyncedChanges,
405
+ setCreateFileVisible,
406
+ setNewFileName,
407
+ setPendingFileType,
408
+ setSortBy,
409
+ setSortOrder,
410
+ resetPreviewState,
411
+ resetEditorState,
412
+ resetCreatorState,
413
+ resetContextMenu,
414
+ resetMoveCopyState,
415
+ resetVersionHistoryState,
416
+ resetShareToWechatState,
417
+ },
418
+ ];
419
+ };