sa2kit 3.0.0 → 3.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.
Files changed (980) hide show
  1. package/README.md +5 -5
  2. package/dist/AliyunOSSProvider-7IOT5U6M.js +15 -0
  3. package/dist/AliyunOSSProvider-7IOT5U6M.js.map +1 -0
  4. package/dist/AliyunOSSProvider-ZXZM7OQA.mjs +6 -0
  5. package/dist/AliyunOSSProvider-ZXZM7OQA.mjs.map +1 -0
  6. package/dist/LocalStorageProvider-KJKRCKBS.js +15 -0
  7. package/dist/LocalStorageProvider-KJKRCKBS.js.map +1 -0
  8. package/dist/LocalStorageProvider-O22465NY.mjs +6 -0
  9. package/dist/LocalStorageProvider-O22465NY.mjs.map +1 -0
  10. package/dist/chunk-2234T4A6.js +303 -0
  11. package/dist/chunk-2234T4A6.js.map +1 -0
  12. package/dist/chunk-36KGNXKW.js +16 -0
  13. package/dist/chunk-36KGNXKW.js.map +1 -0
  14. package/dist/chunk-375C7WL7.js +2695 -0
  15. package/dist/chunk-375C7WL7.js.map +1 -0
  16. package/dist/chunk-3J24Z4MB.js +991 -0
  17. package/dist/chunk-3J24Z4MB.js.map +1 -0
  18. package/dist/chunk-3QCATFQV.js +43 -0
  19. package/dist/chunk-3QCATFQV.js.map +1 -0
  20. package/dist/chunk-3R6JHA6D.js +120 -0
  21. package/dist/chunk-3R6JHA6D.js.map +1 -0
  22. package/dist/chunk-4OXKHV7J.js +43 -0
  23. package/dist/chunk-4OXKHV7J.js.map +1 -0
  24. package/dist/chunk-4PJM4752.js +4 -0
  25. package/dist/chunk-4PJM4752.js.map +1 -0
  26. package/dist/chunk-65JRVC3F.mjs +54 -0
  27. package/dist/chunk-65JRVC3F.mjs.map +1 -0
  28. package/dist/chunk-6HL54I2B.js +336 -0
  29. package/dist/chunk-6HL54I2B.js.map +1 -0
  30. package/dist/chunk-6V2MIQPF.mjs +77 -0
  31. package/dist/chunk-6V2MIQPF.mjs.map +1 -0
  32. package/dist/chunk-6YLCRWKM.mjs +8 -0
  33. package/dist/chunk-6YLCRWKM.mjs.map +1 -0
  34. package/dist/chunk-7CRU2Y5X.mjs +152 -0
  35. package/dist/chunk-7CRU2Y5X.mjs.map +1 -0
  36. package/dist/chunk-7PMT4L4I.js +324 -0
  37. package/dist/chunk-7PMT4L4I.js.map +1 -0
  38. package/dist/chunk-7VVZHFEM.js +88 -0
  39. package/dist/chunk-7VVZHFEM.js.map +1 -0
  40. package/dist/chunk-AWHGIKTQ.js +56 -0
  41. package/dist/chunk-AWHGIKTQ.js.map +1 -0
  42. package/dist/chunk-B3GYF6TY.js +37 -0
  43. package/dist/chunk-B3GYF6TY.js.map +1 -0
  44. package/dist/chunk-BDBJFOXM.mjs +14 -0
  45. package/dist/chunk-BDBJFOXM.mjs.map +1 -0
  46. package/dist/chunk-BTW3SWQN.mjs +25 -0
  47. package/dist/chunk-BTW3SWQN.mjs.map +1 -0
  48. package/dist/chunk-CHYSSZ4E.mjs +734 -0
  49. package/dist/chunk-CHYSSZ4E.mjs.map +1 -0
  50. package/dist/chunk-DO6QYAZV.mjs +298 -0
  51. package/dist/chunk-DO6QYAZV.mjs.map +1 -0
  52. package/dist/chunk-DTR53LQO.mjs +781 -0
  53. package/dist/chunk-DTR53LQO.mjs.map +1 -0
  54. package/dist/chunk-EI2S4XDG.mjs +89 -0
  55. package/dist/chunk-EI2S4XDG.mjs.map +1 -0
  56. package/dist/chunk-EOZHUI46.js +93 -0
  57. package/dist/chunk-EOZHUI46.js.map +1 -0
  58. package/dist/chunk-F2BZIU67.js +184 -0
  59. package/dist/chunk-F2BZIU67.js.map +1 -0
  60. package/dist/chunk-F2TEJSCP.js +756 -0
  61. package/dist/chunk-F2TEJSCP.js.map +1 -0
  62. package/dist/chunk-FCLS5R24.js +148 -0
  63. package/dist/chunk-FCLS5R24.js.map +1 -0
  64. package/dist/chunk-FUA6ZGMI.mjs +376 -0
  65. package/dist/chunk-FUA6ZGMI.mjs.map +1 -0
  66. package/dist/chunk-FY2X3LYR.mjs +3 -0
  67. package/dist/chunk-FY2X3LYR.mjs.map +1 -0
  68. package/dist/chunk-GS4SAW25.mjs +116 -0
  69. package/dist/chunk-GS4SAW25.mjs.map +1 -0
  70. package/dist/chunk-H56ICWUO.js +321 -0
  71. package/dist/chunk-H56ICWUO.js.map +1 -0
  72. package/dist/chunk-HG34SGMN.mjs +546 -0
  73. package/dist/chunk-HG34SGMN.mjs.map +1 -0
  74. package/dist/chunk-HL4H2HF6.js +279 -0
  75. package/dist/chunk-HL4H2HF6.js.map +1 -0
  76. package/dist/chunk-IJIQUMAK.mjs +272 -0
  77. package/dist/chunk-IJIQUMAK.mjs.map +1 -0
  78. package/dist/chunk-KEZFTDZT.mjs +559 -0
  79. package/dist/chunk-KEZFTDZT.mjs.map +1 -0
  80. package/dist/chunk-KHOVC2KL.js +144 -0
  81. package/dist/chunk-KHOVC2KL.js.map +1 -0
  82. package/dist/chunk-KRBSTLKC.js +6154 -0
  83. package/dist/chunk-KRBSTLKC.js.map +1 -0
  84. package/dist/chunk-KVYHCGRY.js +2011 -0
  85. package/dist/chunk-KVYHCGRY.js.map +1 -0
  86. package/dist/chunk-LZ5YTMMP.mjs +41 -0
  87. package/dist/chunk-LZ5YTMMP.mjs.map +1 -0
  88. package/dist/chunk-MJ6XJGAL.js +1551 -0
  89. package/dist/chunk-MJ6XJGAL.js.map +1 -0
  90. package/dist/chunk-MKLXCV4Z.mjs +1510 -0
  91. package/dist/chunk-MKLXCV4Z.mjs.map +1 -0
  92. package/dist/chunk-MMDSZIXD.mjs +286 -0
  93. package/dist/chunk-MMDSZIXD.mjs.map +1 -0
  94. package/dist/chunk-N2O3OX5Y.mjs +243 -0
  95. package/dist/chunk-N2O3OX5Y.mjs.map +1 -0
  96. package/dist/chunk-O6NNSPWD.mjs +35 -0
  97. package/dist/chunk-O6NNSPWD.mjs.map +1 -0
  98. package/dist/chunk-OIRZXSYM.js +80 -0
  99. package/dist/chunk-OIRZXSYM.js.map +1 -0
  100. package/dist/chunk-P7JQRNBJ.mjs +76 -0
  101. package/dist/chunk-P7JQRNBJ.mjs.map +1 -0
  102. package/dist/chunk-PA4ELVGI.js +20 -0
  103. package/dist/chunk-PA4ELVGI.js.map +1 -0
  104. package/dist/chunk-PLIG5257.mjs +2613 -0
  105. package/dist/chunk-PLIG5257.mjs.map +1 -0
  106. package/dist/chunk-QIF4MG5V.mjs +283 -0
  107. package/dist/chunk-QIF4MG5V.mjs.map +1 -0
  108. package/dist/chunk-RHECN4E2.mjs +6077 -0
  109. package/dist/chunk-RHECN4E2.mjs.map +1 -0
  110. package/dist/chunk-RHHTZTIN.mjs +314 -0
  111. package/dist/chunk-RHHTZTIN.mjs.map +1 -0
  112. package/dist/chunk-RRQ2X26Z.js +106 -0
  113. package/dist/chunk-RRQ2X26Z.js.map +1 -0
  114. package/dist/chunk-RST2T54Y.js +836 -0
  115. package/dist/chunk-RST2T54Y.js.map +1 -0
  116. package/dist/chunk-RVNQI6BI.js +249 -0
  117. package/dist/chunk-RVNQI6BI.js.map +1 -0
  118. package/dist/chunk-S3K4LTRI.mjs +226 -0
  119. package/dist/chunk-S3K4LTRI.mjs.map +1 -0
  120. package/dist/chunk-SWZ5XNF6.js +158 -0
  121. package/dist/chunk-SWZ5XNF6.js.map +1 -0
  122. package/dist/chunk-TNJ6LYX7.mjs +18 -0
  123. package/dist/chunk-TNJ6LYX7.mjs.map +1 -0
  124. package/dist/chunk-U7HNBCBS.js +207 -0
  125. package/dist/chunk-U7HNBCBS.js.map +1 -0
  126. package/dist/chunk-UJS3YSD3.mjs +37 -0
  127. package/dist/chunk-UJS3YSD3.mjs.map +1 -0
  128. package/dist/chunk-UJUWDF7M.mjs +336 -0
  129. package/dist/chunk-UJUWDF7M.mjs.map +1 -0
  130. package/dist/chunk-UR5NENGE.js +78 -0
  131. package/dist/chunk-UR5NENGE.js.map +1 -0
  132. package/dist/chunk-V7HGBDCB.mjs +135 -0
  133. package/dist/chunk-V7HGBDCB.mjs.map +1 -0
  134. package/dist/chunk-V7RLIZMN.js +90 -0
  135. package/dist/chunk-V7RLIZMN.js.map +1 -0
  136. package/dist/chunk-VCKXK6V5.js +345 -0
  137. package/dist/chunk-VCKXK6V5.js.map +1 -0
  138. package/dist/chunk-VIEXDTNF.mjs +100 -0
  139. package/dist/chunk-VIEXDTNF.mjs.map +1 -0
  140. package/dist/chunk-VN2DULIA.js +579 -0
  141. package/dist/chunk-VN2DULIA.js.map +1 -0
  142. package/dist/chunk-VNWMRUY6.js +168 -0
  143. package/dist/chunk-VNWMRUY6.js.map +1 -0
  144. package/dist/chunk-VYK4M2D6.mjs +177 -0
  145. package/dist/chunk-VYK4M2D6.mjs.map +1 -0
  146. package/dist/chunk-WB4H6ZUW.mjs +86 -0
  147. package/dist/chunk-WB4H6ZUW.mjs.map +1 -0
  148. package/dist/chunk-WM3AEJ2E.mjs +981 -0
  149. package/dist/chunk-WM3AEJ2E.mjs.map +1 -0
  150. package/dist/chunk-X5GINUGI.mjs +162 -0
  151. package/dist/chunk-X5GINUGI.mjs.map +1 -0
  152. package/dist/chunk-XB7GUEHZ.mjs +82 -0
  153. package/dist/chunk-XB7GUEHZ.mjs.map +1 -0
  154. package/dist/chunk-XE5RGZ3B.js +242 -0
  155. package/dist/chunk-XE5RGZ3B.js.map +1 -0
  156. package/dist/chunk-XNTIMVSL.mjs +193 -0
  157. package/dist/chunk-XNTIMVSL.mjs.map +1 -0
  158. package/dist/chunk-Y7WHUKJF.js +387 -0
  159. package/dist/chunk-Y7WHUKJF.js.map +1 -0
  160. package/dist/chunk-YIRPPMCN.mjs +1916 -0
  161. package/dist/chunk-YIRPPMCN.mjs.map +1 -0
  162. package/dist/chunk-YTGUIRRH.js +10 -0
  163. package/dist/chunk-YTGUIRRH.js.map +1 -0
  164. package/dist/chunk-Z2SNB5LJ.js +28 -0
  165. package/dist/chunk-Z2SNB5LJ.js.map +1 -0
  166. package/dist/chunk-ZOP7YIVX.js +552 -0
  167. package/dist/chunk-ZOP7YIVX.js.map +1 -0
  168. package/dist/chunk-ZUZLWHH5.mjs +146 -0
  169. package/dist/chunk-ZUZLWHH5.mjs.map +1 -0
  170. package/dist/common/ai/llm/core/index.d.mts +70 -0
  171. package/dist/common/ai/llm/core/index.d.ts +70 -0
  172. package/dist/common/ai/llm/core/index.js +54 -0
  173. package/dist/common/ai/llm/core/index.mjs +5 -0
  174. package/dist/common/ai/llm/electron/index.d.mts +6 -0
  175. package/dist/common/ai/llm/electron/index.d.ts +6 -0
  176. package/dist/common/ai/llm/electron/index.js +67 -0
  177. package/dist/common/ai/llm/electron/index.mjs +10 -0
  178. package/dist/common/ai/llm/index.d.mts +3 -0
  179. package/dist/common/ai/llm/index.d.ts +3 -0
  180. package/dist/common/ai/llm/index.js +54 -0
  181. package/dist/common/ai/llm/index.mjs +5 -0
  182. package/dist/common/ai/llm/miniapp/index.d.mts +6 -0
  183. package/dist/common/ai/llm/miniapp/index.d.ts +6 -0
  184. package/dist/common/ai/llm/miniapp/index.js +59 -0
  185. package/dist/common/ai/llm/miniapp/index.mjs +6 -0
  186. package/dist/common/ai/llm/rn/index.d.mts +6 -0
  187. package/dist/common/ai/llm/rn/index.d.ts +6 -0
  188. package/dist/common/ai/llm/rn/index.js +59 -0
  189. package/dist/common/ai/llm/rn/index.mjs +6 -0
  190. package/dist/common/ai/llm/ui/electron/index.d.mts +5 -0
  191. package/dist/common/ai/llm/ui/electron/index.d.ts +5 -0
  192. package/dist/common/ai/llm/ui/electron/index.js +22 -0
  193. package/dist/common/ai/llm/ui/electron/index.mjs +9 -0
  194. package/dist/common/ai/llm/ui/miniapp/index.d.mts +9 -0
  195. package/dist/common/ai/llm/ui/miniapp/index.d.ts +9 -0
  196. package/dist/common/ai/llm/ui/miniapp/index.js +14 -0
  197. package/dist/common/ai/llm/ui/miniapp/index.mjs +5 -0
  198. package/dist/common/ai/llm/ui/rn/index.d.mts +9 -0
  199. package/dist/common/ai/llm/ui/rn/index.d.ts +9 -0
  200. package/dist/common/ai/llm/ui/rn/index.js +14 -0
  201. package/dist/common/ai/llm/ui/rn/index.mjs +5 -0
  202. package/dist/common/ai/llm/ui/web/index.d.mts +15 -0
  203. package/dist/common/ai/llm/ui/web/index.d.ts +15 -0
  204. package/dist/common/ai/llm/ui/web/index.js +21 -0
  205. package/dist/common/ai/llm/ui/web/index.mjs +8 -0
  206. package/dist/common/ai/llm/web/index.d.mts +6 -0
  207. package/dist/common/ai/llm/web/index.d.ts +6 -0
  208. package/dist/common/ai/llm/web/index.js +66 -0
  209. package/dist/common/ai/llm/web/index.mjs +9 -0
  210. package/dist/common/analytics/index.d.mts +2 -0
  211. package/dist/common/analytics/index.d.ts +2 -0
  212. package/dist/common/analytics/index.js +314 -0
  213. package/dist/common/analytics/index.mjs +5 -0
  214. package/dist/common/analytics/server/index.js +529 -0
  215. package/dist/common/analytics/server/index.js.map +1 -0
  216. package/dist/common/analytics/server/index.mjs +525 -0
  217. package/dist/common/analytics/server/index.mjs.map +1 -0
  218. package/dist/common/api/index.d.mts +3 -0
  219. package/dist/common/api/index.d.ts +3 -0
  220. package/dist/common/api/index.js +21 -0
  221. package/dist/common/api/index.mjs +4 -0
  222. package/dist/common/auth/client/index.d.mts +1 -31
  223. package/dist/common/auth/client/index.d.ts +1 -31
  224. package/dist/common/auth/client/index.js +2 -15
  225. package/dist/common/auth/client/index.mjs +1 -2
  226. package/dist/common/auth/components/index.d.mts +5 -239
  227. package/dist/common/auth/components/index.d.ts +5 -239
  228. package/dist/common/auth/components/index.js +878 -49
  229. package/dist/common/auth/components/index.js.map +1 -1
  230. package/dist/common/auth/components/index.mjs +871 -5
  231. package/dist/common/auth/components/index.mjs.map +1 -1
  232. package/dist/common/auth/hooks/index.d.mts +2 -29
  233. package/dist/common/auth/hooks/index.d.ts +2 -29
  234. package/dist/common/auth/hooks/index.js +2 -11
  235. package/dist/common/auth/hooks/index.mjs +1 -2
  236. package/dist/common/auth/index.d.mts +5 -9
  237. package/dist/common/auth/index.d.ts +5 -9
  238. package/dist/common/auth/index.js +5 -26
  239. package/dist/common/auth/index.mjs +3 -4
  240. package/dist/common/auth/rn/index.d.mts +1 -17
  241. package/dist/common/auth/rn/index.d.ts +1 -17
  242. package/dist/common/auth/rn/index.js +2 -34
  243. package/dist/common/auth/rn/index.js.map +1 -1
  244. package/dist/common/auth/rn/index.mjs +2 -31
  245. package/dist/common/auth/rn/index.mjs.map +1 -1
  246. package/dist/common/auth/server/index.d.mts +81 -2
  247. package/dist/common/auth/server/index.d.ts +81 -2
  248. package/dist/common/auth/server/index.js +128 -37
  249. package/dist/common/auth/server/index.js.map +1 -1
  250. package/dist/common/auth/server/index.mjs +124 -1
  251. package/dist/common/auth/server/index.mjs.map +1 -1
  252. package/dist/common/auth/services/index.js +12 -9
  253. package/dist/common/auth/services/index.js.map +1 -1
  254. package/dist/common/auth/services/index.mjs +10 -1
  255. package/dist/common/auth/services/index.mjs.map +1 -1
  256. package/dist/common/components/index.d.mts +4 -0
  257. package/dist/common/components/index.d.ts +4 -0
  258. package/dist/common/components/index.js +414 -0
  259. package/dist/common/components/index.mjs +9 -0
  260. package/dist/common/config/index.d.mts +1 -0
  261. package/dist/common/config/index.d.ts +1 -0
  262. package/dist/common/config/index.js +21 -0
  263. package/dist/common/config/index.mjs +4 -0
  264. package/dist/common/config/server/index.js +1177 -0
  265. package/dist/common/config/server/index.js.map +1 -0
  266. package/dist/common/config/server/index.mjs +1138 -0
  267. package/dist/common/config/server/index.mjs.map +1 -0
  268. package/dist/common/export/index.d.mts +2 -2
  269. package/dist/common/export/index.d.ts +2 -2
  270. package/dist/common/export/index.js +67 -67
  271. package/dist/common/export/index.mjs +3 -3
  272. package/dist/common/export/server/index.d.mts +2 -2
  273. package/dist/common/export/server/index.d.ts +2 -2
  274. package/dist/common/export/server/index.js +76 -48
  275. package/dist/common/export/server/index.mjs +3 -3
  276. package/dist/common/file/index.d.mts +2 -2
  277. package/dist/common/file/index.d.ts +2 -2
  278. package/dist/common/file/index.js +27 -27
  279. package/dist/common/file/index.mjs +5 -5
  280. package/dist/common/file/server/index.d.mts +2 -2
  281. package/dist/common/file/server/index.d.ts +2 -2
  282. package/dist/common/file/server/index.js +58 -50
  283. package/dist/common/file/server/index.mjs +8 -8
  284. package/dist/common/i18n/index.d.mts +2 -0
  285. package/dist/common/i18n/index.d.ts +2 -0
  286. package/dist/common/i18n/index.js +73 -0
  287. package/dist/common/i18n/index.mjs +4 -0
  288. package/dist/common/imageCrop/index.d.mts +2 -0
  289. package/dist/common/imageCrop/index.d.ts +2 -0
  290. package/dist/common/imageCrop/index.js +61 -0
  291. package/dist/common/imageCrop/index.mjs +4 -0
  292. package/dist/common/index.d.mts +17 -20
  293. package/dist/common/index.d.ts +17 -20
  294. package/dist/common/index.js +76 -70
  295. package/dist/common/index.mjs +27 -29
  296. package/dist/common/logger/index.d.mts +1 -1
  297. package/dist/common/logger/index.d.ts +1 -1
  298. package/dist/common/logger/index.js +6 -7
  299. package/dist/common/logger/index.mjs +1 -2
  300. package/dist/common/ossFile/index.d.mts +61 -0
  301. package/dist/common/ossFile/index.d.ts +61 -0
  302. package/dist/common/ossFile/index.js +96 -0
  303. package/dist/common/ossFile/index.mjs +7 -0
  304. package/dist/common/ossFile/server/index.d.mts +94 -0
  305. package/dist/common/ossFile/server/index.d.ts +94 -0
  306. package/dist/common/ossFile/server/index.js +221 -0
  307. package/dist/common/ossFile/server/index.mjs +12 -0
  308. package/dist/common/platform/index.js +8 -8
  309. package/dist/common/platform/index.mjs +4 -4
  310. package/dist/common/request/index.d.mts +1 -1
  311. package/dist/common/request/index.d.ts +1 -1
  312. package/dist/common/request/index.js +5 -7
  313. package/dist/common/request/index.mjs +2 -4
  314. package/dist/common/storage/index.d.mts +1 -1
  315. package/dist/common/storage/index.d.ts +1 -1
  316. package/dist/common/storage/index.js +17 -17
  317. package/dist/common/storage/index.mjs +5 -5
  318. package/dist/common/universalExport/index.d.mts +232 -0
  319. package/dist/common/universalExport/index.d.ts +232 -0
  320. package/dist/common/universalExport/index.js +178 -0
  321. package/dist/common/universalExport/index.mjs +5 -0
  322. package/dist/common/universalExport/server/index.d.mts +1189 -0
  323. package/dist/common/universalExport/server/index.d.ts +1189 -0
  324. package/dist/common/universalExport/server/index.js +151 -0
  325. package/dist/common/universalExport/server/index.mjs +6 -0
  326. package/dist/common/universalFile/index.d.mts +409 -0
  327. package/dist/common/universalFile/index.d.ts +409 -0
  328. package/dist/common/universalFile/index.js +1742 -0
  329. package/dist/common/universalFile/index.js.map +1 -0
  330. package/dist/common/universalFile/index.mjs +1497 -0
  331. package/dist/common/universalFile/index.mjs.map +1 -0
  332. package/dist/common/universalFile/server/index.d.mts +1064 -0
  333. package/dist/common/universalFile/server/index.d.ts +1064 -0
  334. package/dist/common/universalFile/server/index.js +311 -0
  335. package/dist/common/universalFile/server/index.mjs +10 -0
  336. package/dist/common/utils/index.d.mts +1 -1
  337. package/dist/common/utils/index.d.ts +1 -1
  338. package/dist/common/utils/index.js +11 -12
  339. package/dist/common/utils/index.mjs +2 -3
  340. package/dist/index-BRLygK4h.d.ts +67 -0
  341. package/dist/index-BWNK5mH2.d.ts +76 -0
  342. package/dist/index-Bd7cKF1j.d.mts +50 -0
  343. package/dist/index-BiCK6gg6.d.mts +210 -0
  344. package/dist/index-BiCK6gg6.d.ts +210 -0
  345. package/dist/index-C-P2yBTH.d.mts +76 -0
  346. package/dist/index-CT4K2z-O.d.ts +81 -0
  347. package/dist/index-D6RJTGce.d.mts +81 -0
  348. package/dist/index-DA7L9JlE.d.mts +159 -0
  349. package/dist/index-DRQxtCDw.d.ts +50 -0
  350. package/dist/index-DXVph21C.d.mts +201 -0
  351. package/dist/index-DXVph21C.d.ts +201 -0
  352. package/dist/index-DzyK789B.d.mts +67 -0
  353. package/dist/index-FVJZCEtm.d.mts +145 -0
  354. package/dist/index-FVJZCEtm.d.ts +145 -0
  355. package/dist/index-nD9vPCZT.d.ts +159 -0
  356. package/dist/index-nOmIv2BG.d.mts +559 -0
  357. package/dist/index-nOmIv2BG.d.ts +559 -0
  358. package/dist/path-Bzc7hj1N.d.ts +45 -0
  359. package/dist/path-DN_65vhO.d.mts +45 -0
  360. package/dist/utils-Dm3O1rAa.d.mts +366 -0
  361. package/dist/utils-Dm3O1rAa.d.ts +366 -0
  362. package/package.json +293 -348
  363. package/dist/AliyunOSSProvider-4GRL2FJB.js +0 -15
  364. package/dist/AliyunOSSProvider-4GRL2FJB.js.map +0 -1
  365. package/dist/AliyunOSSProvider-QNVFIZ7Q.mjs +0 -6
  366. package/dist/AliyunOSSProvider-QNVFIZ7Q.mjs.map +0 -1
  367. package/dist/CollisionBalls-BpHufX3H.d.mts +0 -41
  368. package/dist/CollisionBalls-BpHufX3H.d.ts +0 -41
  369. package/dist/ConfigService-BxK06xP6.d.mts +0 -262
  370. package/dist/ConfigService-BxK06xP6.d.ts +0 -262
  371. package/dist/LocalStorageProvider-J5RHV37G.mjs +0 -6
  372. package/dist/LocalStorageProvider-J5RHV37G.mjs.map +0 -1
  373. package/dist/LocalStorageProvider-PFA2DMIJ.js +0 -15
  374. package/dist/LocalStorageProvider-PFA2DMIJ.js.map +0 -1
  375. package/dist/UniversalFileService-CC4d3wkc.d.ts +0 -139
  376. package/dist/UniversalFileService-CzAE_G4V.d.mts +0 -139
  377. package/dist/ai/llm/core/index.d.mts +0 -70
  378. package/dist/ai/llm/core/index.d.ts +0 -70
  379. package/dist/ai/llm/core/index.js +0 -54
  380. package/dist/ai/llm/core/index.mjs +0 -5
  381. package/dist/ai/llm/electron/index.d.mts +0 -6
  382. package/dist/ai/llm/electron/index.d.ts +0 -6
  383. package/dist/ai/llm/electron/index.js +0 -66
  384. package/dist/ai/llm/electron/index.mjs +0 -9
  385. package/dist/ai/llm/index.d.mts +0 -3
  386. package/dist/ai/llm/index.d.ts +0 -3
  387. package/dist/ai/llm/index.js +0 -54
  388. package/dist/ai/llm/index.mjs +0 -5
  389. package/dist/ai/llm/miniapp/index.d.mts +0 -6
  390. package/dist/ai/llm/miniapp/index.d.ts +0 -6
  391. package/dist/ai/llm/miniapp/index.js +0 -59
  392. package/dist/ai/llm/miniapp/index.mjs +0 -6
  393. package/dist/ai/llm/rn/index.d.mts +0 -6
  394. package/dist/ai/llm/rn/index.d.ts +0 -6
  395. package/dist/ai/llm/rn/index.js +0 -59
  396. package/dist/ai/llm/rn/index.mjs +0 -6
  397. package/dist/ai/llm/ui/electron/index.d.mts +0 -5
  398. package/dist/ai/llm/ui/electron/index.d.ts +0 -5
  399. package/dist/ai/llm/ui/electron/index.js +0 -21
  400. package/dist/ai/llm/ui/electron/index.mjs +0 -8
  401. package/dist/ai/llm/ui/miniapp/index.d.mts +0 -9
  402. package/dist/ai/llm/ui/miniapp/index.d.ts +0 -9
  403. package/dist/ai/llm/ui/miniapp/index.js +0 -14
  404. package/dist/ai/llm/ui/miniapp/index.mjs +0 -5
  405. package/dist/ai/llm/ui/rn/index.d.mts +0 -9
  406. package/dist/ai/llm/ui/rn/index.d.ts +0 -9
  407. package/dist/ai/llm/ui/rn/index.js +0 -14
  408. package/dist/ai/llm/ui/rn/index.mjs +0 -5
  409. package/dist/ai/llm/ui/web/index.d.mts +0 -15
  410. package/dist/ai/llm/ui/web/index.d.ts +0 -15
  411. package/dist/ai/llm/ui/web/index.js +0 -20
  412. package/dist/ai/llm/ui/web/index.mjs +0 -7
  413. package/dist/ai/llm/web/index.d.mts +0 -6
  414. package/dist/ai/llm/web/index.d.ts +0 -6
  415. package/dist/ai/llm/web/index.js +0 -65
  416. package/dist/ai/llm/web/index.mjs +0 -8
  417. package/dist/analytics/index.d.mts +0 -2
  418. package/dist/analytics/index.d.ts +0 -2
  419. package/dist/analytics/index.js +0 -314
  420. package/dist/analytics/index.mjs +0 -5
  421. package/dist/analytics/server/index.js +0 -529
  422. package/dist/analytics/server/index.js.map +0 -1
  423. package/dist/analytics/server/index.mjs +0 -525
  424. package/dist/analytics/server/index.mjs.map +0 -1
  425. package/dist/api/index.d.mts +0 -3
  426. package/dist/api/index.d.ts +0 -3
  427. package/dist/api/index.js +0 -21
  428. package/dist/api/index.mjs +0 -4
  429. package/dist/audioDetection/index.d.mts +0 -449
  430. package/dist/audioDetection/index.d.ts +0 -449
  431. package/dist/audioDetection/index.js +0 -1244
  432. package/dist/audioDetection/index.js.map +0 -1
  433. package/dist/audioDetection/index.mjs +0 -1227
  434. package/dist/audioDetection/index.mjs.map +0 -1
  435. package/dist/auth/client/index.d.mts +0 -13
  436. package/dist/auth/client/index.d.ts +0 -13
  437. package/dist/auth/client/index.js +0 -26
  438. package/dist/auth/client/index.mjs +0 -5
  439. package/dist/auth/components/index.d.mts +0 -10
  440. package/dist/auth/components/index.d.ts +0 -10
  441. package/dist/auth/components/index.js +0 -70
  442. package/dist/auth/components/index.mjs +0 -9
  443. package/dist/auth/hooks/index.d.mts +0 -13
  444. package/dist/auth/hooks/index.d.ts +0 -13
  445. package/dist/auth/hooks/index.js +0 -28
  446. package/dist/auth/hooks/index.mjs +0 -7
  447. package/dist/auth/index.d.mts +0 -21
  448. package/dist/auth/index.d.ts +0 -21
  449. package/dist/auth/index.js +0 -112
  450. package/dist/auth/index.mjs +0 -11
  451. package/dist/auth/rn/index.d.mts +0 -3133
  452. package/dist/auth/rn/index.d.ts +0 -3133
  453. package/dist/auth/rn/index.js +0 -684
  454. package/dist/auth/rn/index.js.map +0 -1
  455. package/dist/auth/rn/index.mjs +0 -663
  456. package/dist/auth/rn/index.mjs.map +0 -1
  457. package/dist/auth/schema/index.d.mts +0 -4
  458. package/dist/auth/schema/index.d.ts +0 -4
  459. package/dist/auth/schema/index.js +0 -49
  460. package/dist/auth/schema/index.mjs +0 -4
  461. package/dist/auth/services/index.d.mts +0 -1
  462. package/dist/auth/services/index.d.ts +0 -1
  463. package/dist/auth/services/index.js +0 -17
  464. package/dist/auth/services/index.mjs +0 -4
  465. package/dist/base-api-client-BpmcQt4Q.d.ts +0 -103
  466. package/dist/base-api-client-CFIhZK4C.d.mts +0 -277
  467. package/dist/base-api-client-CFIhZK4C.d.ts +0 -277
  468. package/dist/base-api-client-DXLsq2yz.d.mts +0 -103
  469. package/dist/boothVaultService-Cn4WPhjg.d.mts +0 -83
  470. package/dist/boothVaultService-Cn4WPhjg.d.ts +0 -83
  471. package/dist/business/index.d.mts +0 -2
  472. package/dist/business/index.d.ts +0 -2
  473. package/dist/business/index.js +0 -581
  474. package/dist/business/index.js.map +0 -1
  475. package/dist/business/index.mjs +0 -575
  476. package/dist/business/index.mjs.map +0 -1
  477. package/dist/calendar/index.d.mts +0 -1325
  478. package/dist/calendar/index.d.ts +0 -1325
  479. package/dist/calendar/index.js +0 -5964
  480. package/dist/calendar/index.js.map +0 -1
  481. package/dist/calendar/index.mjs +0 -5878
  482. package/dist/calendar/index.mjs.map +0 -1
  483. package/dist/calendar/routes/index.d.mts +0 -191
  484. package/dist/calendar/routes/index.d.ts +0 -191
  485. package/dist/calendar/routes/index.js +0 -844
  486. package/dist/calendar/routes/index.js.map +0 -1
  487. package/dist/calendar/routes/index.mjs +0 -826
  488. package/dist/calendar/routes/index.mjs.map +0 -1
  489. package/dist/chunk-25OFOKNF.js +0 -171
  490. package/dist/chunk-25OFOKNF.js.map +0 -1
  491. package/dist/chunk-2Y7BKFKZ.js +0 -37
  492. package/dist/chunk-2Y7BKFKZ.js.map +0 -1
  493. package/dist/chunk-3DXPQ4YV.mjs +0 -165
  494. package/dist/chunk-3DXPQ4YV.mjs.map +0 -1
  495. package/dist/chunk-3FRAIS4T.mjs +0 -35
  496. package/dist/chunk-3FRAIS4T.mjs.map +0 -1
  497. package/dist/chunk-3NHAT7D4.mjs +0 -361
  498. package/dist/chunk-3NHAT7D4.mjs.map +0 -1
  499. package/dist/chunk-3Z43XGA4.mjs +0 -54
  500. package/dist/chunk-3Z43XGA4.mjs.map +0 -1
  501. package/dist/chunk-4FDUURSD.js +0 -22
  502. package/dist/chunk-4FDUURSD.js.map +0 -1
  503. package/dist/chunk-4WBCWJSN.js +0 -836
  504. package/dist/chunk-4WBCWJSN.js.map +0 -1
  505. package/dist/chunk-5GBDDXYL.mjs +0 -23
  506. package/dist/chunk-5GBDDXYL.mjs.map +0 -1
  507. package/dist/chunk-5USIS3UM.js +0 -4
  508. package/dist/chunk-5USIS3UM.js.map +0 -1
  509. package/dist/chunk-7E3J7VAD.mjs +0 -3
  510. package/dist/chunk-7E3J7VAD.mjs.map +0 -1
  511. package/dist/chunk-ACUFEDVQ.js +0 -345
  512. package/dist/chunk-ACUFEDVQ.js.map +0 -1
  513. package/dist/chunk-AQPU2AXH.js +0 -756
  514. package/dist/chunk-AQPU2AXH.js.map +0 -1
  515. package/dist/chunk-ATUCZXJY.js +0 -80
  516. package/dist/chunk-ATUCZXJY.js.map +0 -1
  517. package/dist/chunk-B3CZ3HXJ.mjs +0 -126
  518. package/dist/chunk-B3CZ3HXJ.mjs.map +0 -1
  519. package/dist/chunk-BCE6RUZV.js +0 -2695
  520. package/dist/chunk-BCE6RUZV.js.map +0 -1
  521. package/dist/chunk-BIHYZA67.mjs +0 -2613
  522. package/dist/chunk-BIHYZA67.mjs.map +0 -1
  523. package/dist/chunk-C6KV7VTZ.mjs +0 -152
  524. package/dist/chunk-C6KV7VTZ.mjs.map +0 -1
  525. package/dist/chunk-CAYOQDBR.js +0 -78
  526. package/dist/chunk-CAYOQDBR.js.map +0 -1
  527. package/dist/chunk-CIVO4R6N.mjs +0 -37
  528. package/dist/chunk-CIVO4R6N.mjs.map +0 -1
  529. package/dist/chunk-CX2GHCAI.mjs +0 -217
  530. package/dist/chunk-CX2GHCAI.mjs.map +0 -1
  531. package/dist/chunk-DIF5VRL3.mjs +0 -73
  532. package/dist/chunk-DIF5VRL3.mjs.map +0 -1
  533. package/dist/chunk-FCEBAWN6.js +0 -18
  534. package/dist/chunk-FCEBAWN6.js.map +0 -1
  535. package/dist/chunk-FHIE5MTC.mjs +0 -541
  536. package/dist/chunk-FHIE5MTC.mjs.map +0 -1
  537. package/dist/chunk-FHLTPXAR.js +0 -56
  538. package/dist/chunk-FHLTPXAR.js.map +0 -1
  539. package/dist/chunk-FIUBFREP.mjs +0 -298
  540. package/dist/chunk-FIUBFREP.mjs.map +0 -1
  541. package/dist/chunk-FOQEQWX5.js +0 -4
  542. package/dist/chunk-FOQEQWX5.js.map +0 -1
  543. package/dist/chunk-FXQOXLDE.js +0 -120
  544. package/dist/chunk-FXQOXLDE.js.map +0 -1
  545. package/dist/chunk-G4NFB2QA.mjs +0 -212
  546. package/dist/chunk-G4NFB2QA.mjs.map +0 -1
  547. package/dist/chunk-G5HJGXGC.mjs +0 -39
  548. package/dist/chunk-G5HJGXGC.mjs.map +0 -1
  549. package/dist/chunk-G6HXNQ2U.mjs +0 -336
  550. package/dist/chunk-G6HXNQ2U.mjs.map +0 -1
  551. package/dist/chunk-G6NSKJMH.js +0 -106
  552. package/dist/chunk-G6NSKJMH.js.map +0 -1
  553. package/dist/chunk-G7UBMCUT.mjs +0 -41
  554. package/dist/chunk-G7UBMCUT.mjs.map +0 -1
  555. package/dist/chunk-GQZHGSRR.js +0 -44
  556. package/dist/chunk-GQZHGSRR.js.map +0 -1
  557. package/dist/chunk-GS7XLKET.js +0 -41
  558. package/dist/chunk-GS7XLKET.js.map +0 -1
  559. package/dist/chunk-GWNBVGDT.mjs +0 -1232
  560. package/dist/chunk-GWNBVGDT.mjs.map +0 -1
  561. package/dist/chunk-HDMIOOZY.mjs +0 -546
  562. package/dist/chunk-HDMIOOZY.mjs.map +0 -1
  563. package/dist/chunk-HJ6MH7J7.js +0 -552
  564. package/dist/chunk-HJ6MH7J7.js.map +0 -1
  565. package/dist/chunk-HJZHQW5R.mjs +0 -146
  566. package/dist/chunk-HJZHQW5R.mjs.map +0 -1
  567. package/dist/chunk-I5ZPEDNR.mjs +0 -734
  568. package/dist/chunk-I5ZPEDNR.mjs.map +0 -1
  569. package/dist/chunk-IBWDBBX5.mjs +0 -16
  570. package/dist/chunk-IBWDBBX5.mjs.map +0 -1
  571. package/dist/chunk-J77KR2EV.mjs +0 -193
  572. package/dist/chunk-J77KR2EV.mjs.map +0 -1
  573. package/dist/chunk-KH6RQ4J5.js +0 -28
  574. package/dist/chunk-KH6RQ4J5.js.map +0 -1
  575. package/dist/chunk-KQ643L7Z.js +0 -144
  576. package/dist/chunk-KQ643L7Z.js.map +0 -1
  577. package/dist/chunk-LFB5EIIM.mjs +0 -31
  578. package/dist/chunk-LFB5EIIM.mjs.map +0 -1
  579. package/dist/chunk-LHJKLUM7.mjs +0 -18
  580. package/dist/chunk-LHJKLUM7.mjs.map +0 -1
  581. package/dist/chunk-MBANGIG3.mjs +0 -781
  582. package/dist/chunk-MBANGIG3.mjs.map +0 -1
  583. package/dist/chunk-MWSAH7ZG.mjs +0 -42
  584. package/dist/chunk-MWSAH7ZG.mjs.map +0 -1
  585. package/dist/chunk-MZOGYD4N.mjs +0 -186
  586. package/dist/chunk-MZOGYD4N.mjs.map +0 -1
  587. package/dist/chunk-NCRP2YHY.mjs +0 -1598
  588. package/dist/chunk-NCRP2YHY.mjs.map +0 -1
  589. package/dist/chunk-NDGHXVGS.js +0 -25
  590. package/dist/chunk-NDGHXVGS.js.map +0 -1
  591. package/dist/chunk-NDPO5OMC.js +0 -563
  592. package/dist/chunk-NDPO5OMC.js.map +0 -1
  593. package/dist/chunk-PBI7FKMB.js +0 -43
  594. package/dist/chunk-PBI7FKMB.js.map +0 -1
  595. package/dist/chunk-Q5EDCKQA.js +0 -336
  596. package/dist/chunk-Q5EDCKQA.js.map +0 -1
  597. package/dist/chunk-Q5VFBPMG.mjs +0 -76
  598. package/dist/chunk-Q5VFBPMG.mjs.map +0 -1
  599. package/dist/chunk-QDUBO567.js +0 -1148
  600. package/dist/chunk-QDUBO567.js.map +0 -1
  601. package/dist/chunk-QP5N3ER6.js +0 -18
  602. package/dist/chunk-QP5N3ER6.js.map +0 -1
  603. package/dist/chunk-QXAOXBVB.mjs +0 -135
  604. package/dist/chunk-QXAOXBVB.mjs.map +0 -1
  605. package/dist/chunk-R2DXTE2L.js +0 -249
  606. package/dist/chunk-R2DXTE2L.js.map +0 -1
  607. package/dist/chunk-RJP2BRJD.mjs +0 -6077
  608. package/dist/chunk-RJP2BRJD.mjs.map +0 -1
  609. package/dist/chunk-RTD2WHQQ.mjs +0 -16
  610. package/dist/chunk-RTD2WHQQ.mjs.map +0 -1
  611. package/dist/chunk-RWCD2CAD.mjs +0 -1132
  612. package/dist/chunk-RWCD2CAD.mjs.map +0 -1
  613. package/dist/chunk-S37OK2QG.js +0 -216
  614. package/dist/chunk-S37OK2QG.js.map +0 -1
  615. package/dist/chunk-S3PUP7N4.js +0 -20
  616. package/dist/chunk-S3PUP7N4.js.map +0 -1
  617. package/dist/chunk-S6YSGVWD.js +0 -224
  618. package/dist/chunk-S6YSGVWD.js.map +0 -1
  619. package/dist/chunk-S732H246.js +0 -6154
  620. package/dist/chunk-S732H246.js.map +0 -1
  621. package/dist/chunk-SFDJNKWC.js +0 -22
  622. package/dist/chunk-SFDJNKWC.js.map +0 -1
  623. package/dist/chunk-SKFEJPMJ.mjs +0 -226
  624. package/dist/chunk-SKFEJPMJ.mjs.map +0 -1
  625. package/dist/chunk-SLKOEYFH.js +0 -303
  626. package/dist/chunk-SLKOEYFH.js.map +0 -1
  627. package/dist/chunk-TC5YU6A4.mjs +0 -243
  628. package/dist/chunk-TC5YU6A4.mjs.map +0 -1
  629. package/dist/chunk-TXMX6PZR.js +0 -190
  630. package/dist/chunk-TXMX6PZR.js.map +0 -1
  631. package/dist/chunk-UCOE6SET.js +0 -148
  632. package/dist/chunk-UCOE6SET.js.map +0 -1
  633. package/dist/chunk-UIYKZ73N.js +0 -36
  634. package/dist/chunk-UIYKZ73N.js.map +0 -1
  635. package/dist/chunk-V7EVKD5G.mjs +0 -116
  636. package/dist/chunk-V7EVKD5G.mjs.map +0 -1
  637. package/dist/chunk-VHN7PF5I.js +0 -20
  638. package/dist/chunk-VHN7PF5I.js.map +0 -1
  639. package/dist/chunk-VMTEDX5H.js +0 -1275
  640. package/dist/chunk-VMTEDX5H.js.map +0 -1
  641. package/dist/chunk-VRN76M56.mjs +0 -3
  642. package/dist/chunk-VRN76M56.mjs.map +0 -1
  643. package/dist/chunk-VXFUXZN5.mjs +0 -20
  644. package/dist/chunk-VXFUXZN5.mjs.map +0 -1
  645. package/dist/chunk-WEEXCPSE.mjs +0 -86
  646. package/dist/chunk-WEEXCPSE.mjs.map +0 -1
  647. package/dist/chunk-WW4GE6CZ.js +0 -1647
  648. package/dist/chunk-WW4GE6CZ.js.map +0 -1
  649. package/dist/chunk-WZDTNDYR.js +0 -207
  650. package/dist/chunk-WZDTNDYR.js.map +0 -1
  651. package/dist/chunk-XBZIS3MV.mjs +0 -13
  652. package/dist/chunk-XBZIS3MV.mjs.map +0 -1
  653. package/dist/chunk-XFOZ56FB.mjs +0 -20
  654. package/dist/chunk-XFOZ56FB.mjs.map +0 -1
  655. package/dist/chunk-XJ7ZAGC5.js +0 -88
  656. package/dist/chunk-XJ7ZAGC5.js.map +0 -1
  657. package/dist/chunk-XUS5ACKR.mjs +0 -100
  658. package/dist/chunk-XUS5ACKR.mjs.map +0 -1
  659. package/dist/chunk-YOTQG4NP.mjs +0 -314
  660. package/dist/chunk-YOTQG4NP.mjs.map +0 -1
  661. package/dist/chunk-Z23HAXHL.js +0 -136
  662. package/dist/chunk-Z23HAXHL.js.map +0 -1
  663. package/dist/chunk-ZGVB35L2.mjs +0 -25
  664. package/dist/chunk-ZGVB35L2.mjs.map +0 -1
  665. package/dist/chunk-ZLYPALF3.js +0 -242
  666. package/dist/chunk-ZLYPALF3.js.map +0 -1
  667. package/dist/chunk-ZM2SZJTZ.js +0 -158
  668. package/dist/chunk-ZM2SZJTZ.js.map +0 -1
  669. package/dist/chunk-ZRAW3HXA.js +0 -43
  670. package/dist/chunk-ZRAW3HXA.js.map +0 -1
  671. package/dist/chunk-ZWQJSZEY.js +0 -371
  672. package/dist/chunk-ZWQJSZEY.js.map +0 -1
  673. package/dist/components/index.d.mts +0 -405
  674. package/dist/components/index.d.ts +0 -405
  675. package/dist/components/index.js +0 -2516
  676. package/dist/components/index.js.map +0 -1
  677. package/dist/components/index.mjs +0 -2396
  678. package/dist/components/index.mjs.map +0 -1
  679. package/dist/config/index.d.mts +0 -1
  680. package/dist/config/index.d.ts +0 -1
  681. package/dist/config/index.js +0 -21
  682. package/dist/config/index.mjs +0 -4
  683. package/dist/config/server/index.js +0 -1177
  684. package/dist/config/server/index.js.map +0 -1
  685. package/dist/config/server/index.mjs +0 -1138
  686. package/dist/config/server/index.mjs.map +0 -1
  687. package/dist/drizzle-schema-BNhqj2AZ.d.mts +0 -1114
  688. package/dist/drizzle-schema-BNhqj2AZ.d.ts +0 -1114
  689. package/dist/festivalCard/index.d.mts +0 -76
  690. package/dist/festivalCard/index.d.ts +0 -76
  691. package/dist/festivalCard/index.js +0 -1492
  692. package/dist/festivalCard/index.js.map +0 -1
  693. package/dist/festivalCard/index.mjs +0 -1475
  694. package/dist/festivalCard/index.mjs.map +0 -1
  695. package/dist/festivalCard/routes/index.d.mts +0 -42
  696. package/dist/festivalCard/routes/index.d.ts +0 -42
  697. package/dist/festivalCard/routes/index.js +0 -361
  698. package/dist/festivalCard/routes/index.js.map +0 -1
  699. package/dist/festivalCard/routes/index.mjs +0 -356
  700. package/dist/festivalCard/routes/index.mjs.map +0 -1
  701. package/dist/festivalCard/server/index.d.mts +0 -120
  702. package/dist/festivalCard/server/index.d.ts +0 -120
  703. package/dist/festivalCard/server/index.js +0 -272
  704. package/dist/festivalCard/server/index.js.map +0 -1
  705. package/dist/festivalCard/server/index.mjs +0 -265
  706. package/dist/festivalCard/server/index.mjs.map +0 -1
  707. package/dist/festivalCardService-B3GsnNpV.d.ts +0 -13
  708. package/dist/festivalCardService-CWhrLNE9.d.mts +0 -13
  709. package/dist/i18n/index.d.mts +0 -2
  710. package/dist/i18n/index.d.ts +0 -2
  711. package/dist/i18n/index.js +0 -73
  712. package/dist/i18n/index.mjs +0 -4
  713. package/dist/imageCrop/index.d.mts +0 -165
  714. package/dist/imageCrop/index.d.ts +0 -165
  715. package/dist/imageCrop/index.js +0 -560
  716. package/dist/imageCrop/index.js.map +0 -1
  717. package/dist/imageCrop/index.mjs +0 -541
  718. package/dist/imageCrop/index.mjs.map +0 -1
  719. package/dist/index-2G9Dxjvt.d.ts +0 -81
  720. package/dist/index-BcjDRcKp.d.mts +0 -40
  721. package/dist/index-Bjem5rWn.d.mts +0 -17
  722. package/dist/index-BlpXrrTy.d.ts +0 -40
  723. package/dist/index-C5U-2hJq.d.ts +0 -23
  724. package/dist/index-CYuUB8aF.d.mts +0 -67
  725. package/dist/index-CifSBBP2.d.ts +0 -17
  726. package/dist/index-D0K4ehme.d.mts +0 -20
  727. package/dist/index-DLnfKN-a.d.mts +0 -23
  728. package/dist/index-DSel44Ke.d.mts +0 -93
  729. package/dist/index-DSel44Ke.d.ts +0 -93
  730. package/dist/index-DZ5iJtNO.d.mts +0 -102
  731. package/dist/index-DZ5iJtNO.d.ts +0 -102
  732. package/dist/index-Da7qdkgW.d.ts +0 -20
  733. package/dist/index-DrPcMJPc.d.mts +0 -250
  734. package/dist/index-DrPcMJPc.d.ts +0 -250
  735. package/dist/index-WrR57hKT.d.ts +0 -67
  736. package/dist/index-oLUvfqT8.d.ts +0 -20
  737. package/dist/index-pe38RDgC.d.mts +0 -20
  738. package/dist/index-qcOvRVuN.d.mts +0 -81
  739. package/dist/index.d.mts +0 -11590
  740. package/dist/index.d.ts +0 -11590
  741. package/dist/index.js +0 -17679
  742. package/dist/index.js.map +0 -1
  743. package/dist/index.mjs +0 -17403
  744. package/dist/index.mjs.map +0 -1
  745. package/dist/logger/index.d.mts +0 -125
  746. package/dist/logger/index.d.ts +0 -125
  747. package/dist/logger/index.js +0 -29
  748. package/dist/logger/index.mjs +0 -4
  749. package/dist/mikuContest/ui/web/index.d.mts +0 -2
  750. package/dist/mikuContest/ui/web/index.d.ts +0 -2
  751. package/dist/mikuContest/ui/web/index.js +0 -353
  752. package/dist/mikuContest/ui/web/index.js.map +0 -1
  753. package/dist/mikuContest/ui/web/index.mjs +0 -343
  754. package/dist/mikuContest/ui/web/index.mjs.map +0 -1
  755. package/dist/mikuFireworks3D/index.d.mts +0 -268
  756. package/dist/mikuFireworks3D/index.d.ts +0 -268
  757. package/dist/mikuFireworks3D/index.js +0 -1267
  758. package/dist/mikuFireworks3D/index.js.map +0 -1
  759. package/dist/mikuFireworks3D/index.mjs +0 -1228
  760. package/dist/mikuFireworks3D/index.mjs.map +0 -1
  761. package/dist/mikuFusionGame/index.d.mts +0 -117
  762. package/dist/mikuFusionGame/index.d.ts +0 -117
  763. package/dist/mikuFusionGame/index.js +0 -1208
  764. package/dist/mikuFusionGame/index.js.map +0 -1
  765. package/dist/mikuFusionGame/index.mjs +0 -1195
  766. package/dist/mikuFusionGame/index.mjs.map +0 -1
  767. package/dist/mmd/admin/index.d.mts +0 -487
  768. package/dist/mmd/admin/index.d.ts +0 -487
  769. package/dist/mmd/admin/index.js +0 -1058
  770. package/dist/mmd/admin/index.js.map +0 -1
  771. package/dist/mmd/admin/index.mjs +0 -1027
  772. package/dist/mmd/admin/index.mjs.map +0 -1
  773. package/dist/mmd/index.d.mts +0 -2467
  774. package/dist/mmd/index.d.ts +0 -2467
  775. package/dist/mmd/index.js +0 -10119
  776. package/dist/mmd/index.js.map +0 -1
  777. package/dist/mmd/index.mjs +0 -10028
  778. package/dist/mmd/index.mjs.map +0 -1
  779. package/dist/mmd/server/index.d.mts +0 -139
  780. package/dist/mmd/server/index.d.ts +0 -139
  781. package/dist/mmd/server/index.js +0 -424
  782. package/dist/mmd/server/index.js.map +0 -1
  783. package/dist/mmd/server/index.mjs +0 -404
  784. package/dist/mmd/server/index.mjs.map +0 -1
  785. package/dist/music/index.d.mts +0 -74
  786. package/dist/music/index.d.ts +0 -74
  787. package/dist/music/index.js +0 -830
  788. package/dist/music/index.js.map +0 -1
  789. package/dist/music/index.mjs +0 -809
  790. package/dist/music/index.mjs.map +0 -1
  791. package/dist/music/server/index.d.mts +0 -1
  792. package/dist/music/server/index.d.ts +0 -1
  793. package/dist/music/server/index.js +0 -194
  794. package/dist/music/server/index.js.map +0 -1
  795. package/dist/music/server/index.mjs +0 -182
  796. package/dist/music/server/index.mjs.map +0 -1
  797. package/dist/navigation/index.d.mts +0 -93
  798. package/dist/navigation/index.d.ts +0 -93
  799. package/dist/navigation/index.js +0 -453
  800. package/dist/navigation/index.js.map +0 -1
  801. package/dist/navigation/index.mjs +0 -443
  802. package/dist/navigation/index.mjs.map +0 -1
  803. package/dist/ossFile/index.d.mts +0 -61
  804. package/dist/ossFile/index.d.ts +0 -61
  805. package/dist/ossFile/index.js +0 -96
  806. package/dist/ossFile/index.js.map +0 -1
  807. package/dist/ossFile/index.mjs +0 -7
  808. package/dist/ossFile/index.mjs.map +0 -1
  809. package/dist/ossFile/server/index.d.mts +0 -94
  810. package/dist/ossFile/server/index.d.ts +0 -94
  811. package/dist/ossFile/server/index.js +0 -213
  812. package/dist/ossFile/server/index.js.map +0 -1
  813. package/dist/ossFile/server/index.mjs +0 -12
  814. package/dist/ossFile/server/index.mjs.map +0 -1
  815. package/dist/path-DkaHQSyW.d.mts +0 -41
  816. package/dist/path-qjVnH8qU.d.ts +0 -41
  817. package/dist/portfolio/index.d.mts +0 -66
  818. package/dist/portfolio/index.d.ts +0 -66
  819. package/dist/portfolio/index.js +0 -736
  820. package/dist/portfolio/index.js.map +0 -1
  821. package/dist/portfolio/index.mjs +0 -724
  822. package/dist/portfolio/index.mjs.map +0 -1
  823. package/dist/qqbot/server/index.d.mts +0 -216
  824. package/dist/qqbot/server/index.d.ts +0 -216
  825. package/dist/qqbot/server/index.js +0 -394
  826. package/dist/qqbot/server/index.js.map +0 -1
  827. package/dist/qqbot/server/index.mjs +0 -385
  828. package/dist/qqbot/server/index.mjs.map +0 -1
  829. package/dist/qqbot/ui/web/index.d.mts +0 -10
  830. package/dist/qqbot/ui/web/index.d.ts +0 -10
  831. package/dist/qqbot/ui/web/index.js +0 -105
  832. package/dist/qqbot/ui/web/index.js.map +0 -1
  833. package/dist/qqbot/ui/web/index.mjs +0 -99
  834. package/dist/qqbot/ui/web/index.mjs.map +0 -1
  835. package/dist/request/index.d.mts +0 -59
  836. package/dist/request/index.d.ts +0 -59
  837. package/dist/request/index.js +0 -23
  838. package/dist/request/index.js.map +0 -1
  839. package/dist/request/index.mjs +0 -6
  840. package/dist/request/index.mjs.map +0 -1
  841. package/dist/screenReceiver/index.d.mts +0 -86
  842. package/dist/screenReceiver/index.d.ts +0 -86
  843. package/dist/screenReceiver/index.js +0 -281
  844. package/dist/screenReceiver/index.js.map +0 -1
  845. package/dist/screenReceiver/index.mjs +0 -273
  846. package/dist/screenReceiver/index.mjs.map +0 -1
  847. package/dist/session-BCXvGCnm.d.mts +0 -81
  848. package/dist/session-BCXvGCnm.d.ts +0 -81
  849. package/dist/storage/index.d.mts +0 -136
  850. package/dist/storage/index.d.ts +0 -136
  851. package/dist/storage/index.js +0 -48
  852. package/dist/storage/index.js.map +0 -1
  853. package/dist/storage/index.mjs +0 -7
  854. package/dist/storage/index.mjs.map +0 -1
  855. package/dist/testYourself/admin/index.d.mts +0 -58
  856. package/dist/testYourself/admin/index.d.ts +0 -58
  857. package/dist/testYourself/admin/index.js +0 -1009
  858. package/dist/testYourself/admin/index.js.map +0 -1
  859. package/dist/testYourself/admin/index.mjs +0 -1002
  860. package/dist/testYourself/admin/index.mjs.map +0 -1
  861. package/dist/testYourself/index.d.mts +0 -53
  862. package/dist/testYourself/index.d.ts +0 -53
  863. package/dist/testYourself/index.js +0 -2551
  864. package/dist/testYourself/index.js.map +0 -1
  865. package/dist/testYourself/index.mjs +0 -2531
  866. package/dist/testYourself/index.mjs.map +0 -1
  867. package/dist/testYourself/server/index.d.mts +0 -1029
  868. package/dist/testYourself/server/index.d.ts +0 -1029
  869. package/dist/testYourself/server/index.js +0 -825
  870. package/dist/testYourself/server/index.js.map +0 -1
  871. package/dist/testYourself/server/index.mjs +0 -816
  872. package/dist/testYourself/server/index.mjs.map +0 -1
  873. package/dist/types-3ujSNAXb.d.mts +0 -286
  874. package/dist/types-3ujSNAXb.d.ts +0 -286
  875. package/dist/types-B6B210gX.d.mts +0 -270
  876. package/dist/types-B6B210gX.d.ts +0 -270
  877. package/dist/types-Bdnte5EN.d.mts +0 -292
  878. package/dist/types-C_W_CoUD.d.ts +0 -99
  879. package/dist/types-Cs0CLvrH.d.mts +0 -70
  880. package/dist/types-Cs0CLvrH.d.ts +0 -70
  881. package/dist/types-DCRvasyH.d.mts +0 -99
  882. package/dist/types-HorDyIRv.d.mts +0 -303
  883. package/dist/types-HorDyIRv.d.ts +0 -303
  884. package/dist/types-_rFX1atk.d.ts +0 -292
  885. package/dist/types.legacy-J-j-_ig_.d.mts +0 -25
  886. package/dist/types.legacy-J-j-_ig_.d.ts +0 -25
  887. package/dist/universalExport/index.d.mts +0 -312
  888. package/dist/universalExport/index.d.ts +0 -312
  889. package/dist/universalExport/index.js +0 -178
  890. package/dist/universalExport/index.js.map +0 -1
  891. package/dist/universalExport/index.mjs +0 -5
  892. package/dist/universalExport/index.mjs.map +0 -1
  893. package/dist/universalExport/server/index.d.mts +0 -1270
  894. package/dist/universalExport/server/index.d.ts +0 -1270
  895. package/dist/universalExport/server/index.js +0 -123
  896. package/dist/universalExport/server/index.js.map +0 -1
  897. package/dist/universalExport/server/index.mjs +0 -6
  898. package/dist/universalExport/server/index.mjs.map +0 -1
  899. package/dist/universalFile/index.d.mts +0 -409
  900. package/dist/universalFile/index.d.ts +0 -409
  901. package/dist/universalFile/index.js +0 -1742
  902. package/dist/universalFile/index.js.map +0 -1
  903. package/dist/universalFile/index.mjs +0 -1497
  904. package/dist/universalFile/index.mjs.map +0 -1
  905. package/dist/universalFile/server/index.d.mts +0 -1064
  906. package/dist/universalFile/server/index.d.ts +0 -1064
  907. package/dist/universalFile/server/index.js +0 -311
  908. package/dist/universalFile/server/index.js.map +0 -1
  909. package/dist/universalFile/server/index.mjs +0 -10
  910. package/dist/universalFile/server/index.mjs.map +0 -1
  911. package/dist/utils/index.d.mts +0 -192
  912. package/dist/utils/index.d.ts +0 -192
  913. package/dist/utils/index.js +0 -46
  914. package/dist/utils/index.js.map +0 -1
  915. package/dist/utils/index.mjs +0 -5
  916. package/dist/utils/index.mjs.map +0 -1
  917. package/dist/vocaloidBooth/index.d.mts +0 -64
  918. package/dist/vocaloidBooth/index.d.ts +0 -64
  919. package/dist/vocaloidBooth/index.js +0 -376
  920. package/dist/vocaloidBooth/index.js.map +0 -1
  921. package/dist/vocaloidBooth/index.mjs +0 -362
  922. package/dist/vocaloidBooth/index.mjs.map +0 -1
  923. package/dist/vocaloidBooth/server/index.d.mts +0 -111
  924. package/dist/vocaloidBooth/server/index.d.ts +0 -111
  925. package/dist/vocaloidBooth/server/index.js +0 -247
  926. package/dist/vocaloidBooth/server/index.js.map +0 -1
  927. package/dist/vocaloidBooth/server/index.mjs +0 -237
  928. package/dist/vocaloidBooth/server/index.mjs.map +0 -1
  929. package/dist/vocaloidBooth/web/index.d.mts +0 -3
  930. package/dist/vocaloidBooth/web/index.d.ts +0 -3
  931. package/dist/vocaloidBooth/web/index.js +0 -376
  932. package/dist/vocaloidBooth/web/index.js.map +0 -1
  933. package/dist/vocaloidBooth/web/index.mjs +0 -362
  934. package/dist/vocaloidBooth/web/index.mjs.map +0 -1
  935. /package/dist/{ai → common/ai}/llm/core/index.js.map +0 -0
  936. /package/dist/{ai → common/ai}/llm/core/index.mjs.map +0 -0
  937. /package/dist/{ai → common/ai}/llm/electron/index.js.map +0 -0
  938. /package/dist/{ai → common/ai}/llm/electron/index.mjs.map +0 -0
  939. /package/dist/{ai → common/ai}/llm/index.js.map +0 -0
  940. /package/dist/{ai → common/ai}/llm/index.mjs.map +0 -0
  941. /package/dist/{ai → common/ai}/llm/miniapp/index.js.map +0 -0
  942. /package/dist/{ai → common/ai}/llm/miniapp/index.mjs.map +0 -0
  943. /package/dist/{ai → common/ai}/llm/rn/index.js.map +0 -0
  944. /package/dist/{ai → common/ai}/llm/rn/index.mjs.map +0 -0
  945. /package/dist/{ai → common/ai}/llm/ui/electron/index.js.map +0 -0
  946. /package/dist/{ai → common/ai}/llm/ui/electron/index.mjs.map +0 -0
  947. /package/dist/{ai → common/ai}/llm/ui/miniapp/index.js.map +0 -0
  948. /package/dist/{ai → common/ai}/llm/ui/miniapp/index.mjs.map +0 -0
  949. /package/dist/{ai → common/ai}/llm/ui/rn/index.js.map +0 -0
  950. /package/dist/{ai → common/ai}/llm/ui/rn/index.mjs.map +0 -0
  951. /package/dist/{ai → common/ai}/llm/ui/web/index.js.map +0 -0
  952. /package/dist/{ai → common/ai}/llm/ui/web/index.mjs.map +0 -0
  953. /package/dist/{ai → common/ai}/llm/web/index.js.map +0 -0
  954. /package/dist/{ai → common/ai}/llm/web/index.mjs.map +0 -0
  955. /package/dist/{analytics → common/analytics}/index.js.map +0 -0
  956. /package/dist/{analytics → common/analytics}/index.mjs.map +0 -0
  957. /package/dist/{analytics → common/analytics}/server/index.d.mts +0 -0
  958. /package/dist/{analytics → common/analytics}/server/index.d.ts +0 -0
  959. /package/dist/{api → common/api}/index.js.map +0 -0
  960. /package/dist/{api → common/api}/index.mjs.map +0 -0
  961. /package/dist/{auth/client → common/components}/index.js.map +0 -0
  962. /package/dist/{auth/client → common/components}/index.mjs.map +0 -0
  963. /package/dist/{auth/components → common/config}/index.js.map +0 -0
  964. /package/dist/{auth/components → common/config}/index.mjs.map +0 -0
  965. /package/dist/{config → common/config}/server/index.d.mts +0 -0
  966. /package/dist/{config → common/config}/server/index.d.ts +0 -0
  967. /package/dist/{auth/hooks → common/i18n}/index.js.map +0 -0
  968. /package/dist/{auth/hooks → common/i18n}/index.mjs.map +0 -0
  969. /package/dist/{auth → common/imageCrop}/index.js.map +0 -0
  970. /package/dist/{auth → common/imageCrop}/index.mjs.map +0 -0
  971. /package/dist/{auth/schema → common/ossFile}/index.js.map +0 -0
  972. /package/dist/{auth/schema → common/ossFile}/index.mjs.map +0 -0
  973. /package/dist/{auth/services → common/ossFile/server}/index.js.map +0 -0
  974. /package/dist/{auth/services → common/ossFile/server}/index.mjs.map +0 -0
  975. /package/dist/{config → common/universalExport}/index.js.map +0 -0
  976. /package/dist/{config → common/universalExport}/index.mjs.map +0 -0
  977. /package/dist/{i18n → common/universalExport/server}/index.js.map +0 -0
  978. /package/dist/{i18n → common/universalExport/server}/index.mjs.map +0 -0
  979. /package/dist/{logger → common/universalFile/server}/index.js.map +0 -0
  980. /package/dist/{logger → common/universalFile/server}/index.mjs.map +0 -0
@@ -1,1275 +0,0 @@
1
- 'use strict';
2
-
3
- var React = require('react');
4
- var clsx = require('clsx');
5
- var lucideReact = require('lucide-react');
6
-
7
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
-
9
- var React__default = /*#__PURE__*/_interopDefault(React);
10
-
11
- // src/universalExport/constants.ts
12
- var UNIVERSAL_EXPORT_VERSION = "1.0.0";
13
- var UNIVERSAL_EXPORT_NAME = "@lyricnote/universal-export";
14
- var DEFAULT_EXPORT_FORMAT = "csv";
15
- var DEFAULT_CSV_DELIMITER = ",";
16
- var DEFAULT_ENCODING = "utf-8";
17
- var DEFAULT_ADD_BOM = true;
18
- var DEFAULT_MAX_FILE_SIZE = 100 * 1024 * 1024;
19
- var DEFAULT_MAX_ROWS = 1e5;
20
- var DEFAULT_MAX_CONCURRENT_EXPORTS = 5;
21
- var DEFAULT_EXPORT_TIMEOUT = 3e5;
22
- var DEFAULT_CONFIG_CACHE_TTL = 3600;
23
- var DEFAULT_RESULT_CACHE_TTL = 1800;
24
- var EXPORT_FORMAT_EXTENSIONS = {
25
- csv: "csv",
26
- excel: "xlsx",
27
- json: "json"
28
- };
29
- var EXPORT_FORMAT_MIME_TYPES = {
30
- csv: "text/csv; charset=utf-8",
31
- excel: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
32
- json: "application/json; charset=utf-8"
33
- };
34
- var API_BASE_PATH = "/api/universal-export";
35
- var API_ENDPOINTS = {
36
- /** 获取配置列表 */
37
- GET_CONFIGS: API_BASE_PATH + "/configs",
38
- /** 创建配置 */
39
- CREATE_CONFIG: API_BASE_PATH + "/configs",
40
- /** 更新配置 */
41
- UPDATE_CONFIG: (configId) => API_BASE_PATH + "/configs/" + configId,
42
- /** 删除配置 */
43
- DELETE_CONFIG: (configId) => API_BASE_PATH + "/configs/" + configId,
44
- /** 触发导出 */
45
- EXPORT_DATA: API_BASE_PATH + "/export",
46
- /** 查询导出进度 */
47
- GET_PROGRESS: (exportId) => API_BASE_PATH + "/export/" + exportId + "/progress",
48
- /** 下载导出文件 */
49
- DOWNLOAD_FILE: (exportId) => API_BASE_PATH + "/export/" + exportId + "/download"
50
- };
51
- var ERROR_CODES = {
52
- /** 导出配置错误 */
53
- EXPORT_CONFIG_ERROR: "EXPORT_CONFIG_ERROR",
54
- /** 导出数据错误 */
55
- EXPORT_DATA_ERROR: "EXPORT_DATA_ERROR",
56
- /** 导出文件错误 */
57
- EXPORT_FILE_ERROR: "EXPORT_FILE_ERROR",
58
- /** 网络错误 */
59
- NETWORK_ERROR: "NETWORK_ERROR",
60
- /** 超时错误 */
61
- TIMEOUT_ERROR: "TIMEOUT_ERROR",
62
- /** 未授权 */
63
- UNAUTHORIZED: "UNAUTHORIZED",
64
- /** 服务器错误 */
65
- SERVER_ERROR: "SERVER_ERROR"
66
- };
67
-
68
- // src/universalExport/utils.ts
69
- function generateExportFileName(template, format) {
70
- const now = /* @__PURE__ */ new Date();
71
- const dateStr = now.toISOString().split("T")[0] || "";
72
- const timeStr = (now.toTimeString().split(" ")[0] || "").replace(/:/g, "-");
73
- const extension = EXPORT_FORMAT_EXTENSIONS[format];
74
- return template.replace("{date}", dateStr).replace("{time}", timeStr).replace("{timestamp}", now.getTime().toString()) + "." + extension;
75
- }
76
- function validateFileName(fileName) {
77
- const invalidChars = /[<>:"|?*\/\\]/;
78
- if (invalidChars.test(fileName)) {
79
- return false;
80
- }
81
- if (fileName.length === 0 || fileName.length > 255) {
82
- return false;
83
- }
84
- return true;
85
- }
86
- function sanitizeFileName(fileName) {
87
- return fileName.replace(/[<>:"|?*\/\\]/g, "_").substring(0, 255);
88
- }
89
- function escapeCSVField(value, delimiter = ",") {
90
- const valueStr = String(value || "");
91
- if (valueStr.includes(delimiter) || valueStr.includes('"') || valueStr.includes("\n")) {
92
- return '"' + valueStr.replace(/"/g, '""') + '"';
93
- }
94
- return valueStr;
95
- }
96
- function parseCSVField(field) {
97
- if (field.startsWith('"') && field.endsWith('"')) {
98
- return field.slice(1, -1).replace(/""/g, '"');
99
- }
100
- return field;
101
- }
102
- var DEFAULT_FORMATTERS = {
103
- // 日期格式化
104
- date: (value) => {
105
- if (!value) return "";
106
- const date = new Date(value);
107
- if (isNaN(date.getTime())) return String(value);
108
- return date.toISOString().split("T")[0] || "";
109
- },
110
- // 时间格式化
111
- datetime: (value) => {
112
- if (!value) return "";
113
- const date = new Date(value);
114
- if (isNaN(date.getTime())) return String(value);
115
- return date.toLocaleString("zh-CN");
116
- },
117
- // 数字格式化
118
- number: (value) => {
119
- if (value === null || value === void 0) return "";
120
- return String(value);
121
- },
122
- // 货币格式化
123
- currency: (value) => {
124
- if (value === null || value === void 0) return "";
125
- return "\xA5" + Number(value).toFixed(2);
126
- },
127
- // 百分比格式化
128
- percentage: (value) => {
129
- if (value === null || value === void 0) return "";
130
- return (Number(value) * 100).toFixed(2) + "%";
131
- },
132
- // 布尔值格式化
133
- boolean: (value) => {
134
- if (value === null || value === void 0) return "";
135
- return value ? "\u662F" : "\u5426";
136
- },
137
- // 数组格式化
138
- array: (value) => {
139
- if (!Array.isArray(value)) return "";
140
- return value.join(", ");
141
- },
142
- // 对象格式化
143
- object: (value) => {
144
- if (!value || typeof value !== "object") return "";
145
- return JSON.stringify(value);
146
- }
147
- };
148
- function applyFormatter(value, formatter, type) {
149
- if (formatter) {
150
- return formatter(value);
151
- }
152
- if (type && DEFAULT_FORMATTERS[type]) {
153
- return DEFAULT_FORMATTERS[type](value);
154
- }
155
- return String(value || "");
156
- }
157
- function validateExportConfig(config) {
158
- const errors = [];
159
- if (!config.name || config.name.trim() === "") {
160
- errors.push("\u914D\u7F6E\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A");
161
- }
162
- if (!config.fields || !Array.isArray(config.fields) || config.fields.length === 0) {
163
- errors.push("\u81F3\u5C11\u9700\u8981\u5B9A\u4E49\u4E00\u4E2A\u5B57\u6BB5");
164
- }
165
- if (config.fields) {
166
- const enabledFields = config.fields.filter((f) => f.enabled);
167
- if (enabledFields.length === 0) {
168
- errors.push("\u81F3\u5C11\u9700\u8981\u542F\u7528\u4E00\u4E2A\u5B57\u6BB5");
169
- }
170
- const keys = config.fields.map((f) => f.key);
171
- const uniqueKeys = new Set(keys);
172
- if (keys.length !== uniqueKeys.size) {
173
- errors.push("\u5B57\u6BB5\u952E\u540D\u5FC5\u987B\u552F\u4E00");
174
- }
175
- }
176
- return {
177
- valid: errors.length === 0,
178
- errors
179
- };
180
- }
181
- function validateExportRequest(request) {
182
- const errors = [];
183
- if (!request.configId) {
184
- errors.push("\u5BFC\u51FA\u914D\u7F6EID\u4E0D\u80FD\u4E3A\u7A7A");
185
- }
186
- if (!request.dataSource) {
187
- errors.push("\u6570\u636E\u6E90\u4E0D\u80FD\u4E3A\u7A7A");
188
- }
189
- return {
190
- valid: errors.length === 0,
191
- errors
192
- };
193
- }
194
- function formatFileSize(bytes) {
195
- if (bytes === 0) return "0 B";
196
- const units = ["B", "KB", "MB", "GB", "TB"];
197
- const k = 1024;
198
- const i = Math.floor(Math.log(bytes) / Math.log(k));
199
- return (bytes / Math.pow(k, i)).toFixed(2) + " " + units[i];
200
- }
201
- function formatDuration(milliseconds) {
202
- if (milliseconds < 1e3) {
203
- return milliseconds + "ms";
204
- }
205
- const seconds = Math.floor(milliseconds / 1e3);
206
- if (seconds < 60) {
207
- return seconds + "\u79D2";
208
- }
209
- const minutes = Math.floor(seconds / 60);
210
- const remainingSeconds = seconds % 60;
211
- if (minutes < 60) {
212
- return remainingSeconds > 0 ? minutes + "\u5206" + remainingSeconds + "\u79D2" : minutes + "\u5206\u949F";
213
- }
214
- const hours = Math.floor(minutes / 60);
215
- const remainingMinutes = minutes % 60;
216
- return remainingMinutes > 0 ? hours + "\u5C0F\u65F6" + remainingMinutes + "\u5206\u949F" : hours + "\u5C0F\u65F6";
217
- }
218
- function estimateEndTime(startTime, processedRows, totalRows) {
219
- if (processedRows === 0 || totalRows === 0) {
220
- return void 0;
221
- }
222
- const elapsed = Date.now() - startTime.getTime();
223
- const avgTimePerRow = elapsed / processedRows;
224
- const remainingRows = totalRows - processedRows;
225
- const remainingTime = avgTimePerRow * remainingRows;
226
- return new Date(Date.now() + remainingTime);
227
- }
228
- function getNestedValue(obj, path) {
229
- return path.split(".").reduce((current, key) => {
230
- return current && current[key] !== void 0 ? current[key] : null;
231
- }, obj);
232
- }
233
- function setNestedValue(obj, path, value) {
234
- const keys = path.split(".");
235
- const lastKey = keys.pop();
236
- if (!lastKey) return;
237
- const target = keys.reduce((current, key) => {
238
- if (!current[key] || typeof current[key] !== "object") {
239
- current[key] = {};
240
- }
241
- return current[key];
242
- }, obj);
243
- target[lastKey] = value;
244
- }
245
- function createExportError(code, message, details) {
246
- return {
247
- code,
248
- message,
249
- details,
250
- timestamp: /* @__PURE__ */ new Date()
251
- };
252
- }
253
- function formatErrorMessage(error) {
254
- if (error instanceof Error) {
255
- return error.message;
256
- }
257
- if (typeof error === "string") {
258
- return error;
259
- }
260
- return "\u672A\u77E5\u9519\u8BEF";
261
- }
262
-
263
- // src/universalExport/client.ts
264
- var UniversalExportClient = class {
265
- constructor(config = {}) {
266
- this.config = {
267
- baseUrl: config.baseUrl || "",
268
- timeout: config.timeout || 3e4,
269
- headers: config.headers || {}
270
- };
271
- }
272
- // ============= 配置管理API =============
273
- /**
274
- * 获取模块的导出配置列表
275
- */
276
- async getConfigsByModule(moduleId, businessId) {
277
- const params = new URLSearchParams({ moduleId });
278
- if (businessId) {
279
- params.append("businessId", businessId);
280
- }
281
- const url = this.config.baseUrl + API_ENDPOINTS.GET_CONFIGS + "?" + params;
282
- try {
283
- const response = await this.fetchWithTimeout(url, {
284
- method: "GET",
285
- headers: this.getHeaders()
286
- });
287
- if (!response.ok) {
288
- throw new Error("\u83B7\u53D6\u914D\u7F6E\u5931\u8D25: " + response.statusText);
289
- }
290
- const data = await response.json();
291
- return this.transformConfigsFromAPI(data.configs || []);
292
- } catch (error) {
293
- throw createExportError(
294
- ERROR_CODES.NETWORK_ERROR,
295
- "\u83B7\u53D6\u5BFC\u51FA\u914D\u7F6E\u5931\u8D25: " + formatErrorMessage(error),
296
- { moduleId, businessId, originalError: error }
297
- );
298
- }
299
- }
300
- /**
301
- * 创建导出配置
302
- */
303
- async createConfig(config) {
304
- const url = this.config.baseUrl + API_ENDPOINTS.CREATE_CONFIG;
305
- try {
306
- const response = await this.fetchWithTimeout(url, {
307
- method: "POST",
308
- headers: {
309
- ...this.getHeaders(),
310
- "Content-Type": "application/json"
311
- },
312
- body: JSON.stringify(config)
313
- });
314
- if (!response.ok) {
315
- throw new Error("\u521B\u5EFA\u914D\u7F6E\u5931\u8D25: " + response.statusText);
316
- }
317
- const data = await response.json();
318
- return this.transformConfigFromAPI(data.config);
319
- } catch (error) {
320
- throw createExportError(
321
- ERROR_CODES.NETWORK_ERROR,
322
- "\u521B\u5EFA\u5BFC\u51FA\u914D\u7F6E\u5931\u8D25: " + formatErrorMessage(error),
323
- { config, originalError: error }
324
- );
325
- }
326
- }
327
- /**
328
- * 更新导出配置
329
- */
330
- async updateConfig(configId, updates) {
331
- const url = this.config.baseUrl + API_ENDPOINTS.UPDATE_CONFIG(configId);
332
- try {
333
- const response = await this.fetchWithTimeout(url, {
334
- method: "PUT",
335
- headers: {
336
- ...this.getHeaders(),
337
- "Content-Type": "application/json"
338
- },
339
- body: JSON.stringify(updates)
340
- });
341
- if (!response.ok) {
342
- throw new Error("\u66F4\u65B0\u914D\u7F6E\u5931\u8D25: " + response.statusText);
343
- }
344
- const data = await response.json();
345
- return this.transformConfigFromAPI(data.config);
346
- } catch (error) {
347
- throw createExportError(
348
- ERROR_CODES.NETWORK_ERROR,
349
- "\u66F4\u65B0\u5BFC\u51FA\u914D\u7F6E\u5931\u8D25: " + formatErrorMessage(error),
350
- { configId, updates, originalError: error }
351
- );
352
- }
353
- }
354
- /**
355
- * 删除导出配置
356
- */
357
- async deleteConfig(configId) {
358
- const url = this.config.baseUrl + API_ENDPOINTS.DELETE_CONFIG(configId);
359
- try {
360
- const response = await this.fetchWithTimeout(url, {
361
- method: "DELETE",
362
- headers: this.getHeaders()
363
- });
364
- if (!response.ok) {
365
- throw new Error("\u5220\u9664\u914D\u7F6E\u5931\u8D25: " + response.statusText);
366
- }
367
- } catch (error) {
368
- throw createExportError(
369
- ERROR_CODES.NETWORK_ERROR,
370
- "\u5220\u9664\u5BFC\u51FA\u914D\u7F6E\u5931\u8D25: " + formatErrorMessage(error),
371
- { configId, originalError: error }
372
- );
373
- }
374
- }
375
- // ============= 导出执行API =============
376
- /**
377
- * 触发数据导出
378
- */
379
- async exportData(request) {
380
- const url = this.config.baseUrl + API_ENDPOINTS.EXPORT_DATA;
381
- try {
382
- const isDataArray = Array.isArray(request.dataSource);
383
- const requestBody = {
384
- queryParams: request.queryParams,
385
- fieldMapping: request.fieldMapping,
386
- filters: request.filters,
387
- sortBy: request.sortBy,
388
- pagination: request.pagination,
389
- customFileName: request.customFileName
390
- };
391
- if (typeof request.configId === "string") {
392
- requestBody.configId = request.configId;
393
- } else if (request.configId && typeof request.configId === "object") {
394
- requestBody.config = request.configId;
395
- }
396
- if (isDataArray) {
397
- requestBody.data = request.dataSource;
398
- } else {
399
- requestBody.dataSource = request.dataSource;
400
- }
401
- const response = await this.fetchWithTimeout(url, {
402
- method: "POST",
403
- headers: {
404
- ...this.getHeaders(),
405
- "Content-Type": "application/json"
406
- },
407
- body: JSON.stringify(requestBody)
408
- });
409
- if (!response.ok) {
410
- const errorText = await response.text();
411
- let errorData;
412
- try {
413
- errorData = JSON.parse(errorText);
414
- } catch {
415
- errorData = { message: errorText };
416
- }
417
- throw new Error(errorData.message || "\u5BFC\u51FA\u5931\u8D25: " + response.statusText);
418
- }
419
- const data = await response.json();
420
- return this.transformExportResultFromAPI(data.result);
421
- } catch (error) {
422
- throw createExportError(
423
- ERROR_CODES.EXPORT_DATA_ERROR,
424
- "\u6570\u636E\u5BFC\u51FA\u5931\u8D25: " + formatErrorMessage(error),
425
- { request, originalError: error }
426
- );
427
- }
428
- }
429
- /**
430
- * 查询导出进度
431
- */
432
- async getExportProgress(exportId) {
433
- const url = this.config.baseUrl + API_ENDPOINTS.GET_PROGRESS(exportId);
434
- try {
435
- const response = await this.fetchWithTimeout(url, {
436
- method: "GET",
437
- headers: this.getHeaders()
438
- });
439
- if (!response.ok) {
440
- throw new Error("\u83B7\u53D6\u5BFC\u51FA\u8FDB\u5EA6\u5931\u8D25: " + response.statusText);
441
- }
442
- const data = await response.json();
443
- return this.transformProgressFromAPI(data.progress);
444
- } catch (error) {
445
- throw createExportError(
446
- ERROR_CODES.NETWORK_ERROR,
447
- "\u83B7\u53D6\u5BFC\u51FA\u8FDB\u5EA6\u5931\u8D25: " + formatErrorMessage(error),
448
- { exportId, originalError: error }
449
- );
450
- }
451
- }
452
- /**
453
- * 下载导出文件
454
- */
455
- async downloadExportFile(exportId) {
456
- const url = this.config.baseUrl + API_ENDPOINTS.DOWNLOAD_FILE(exportId);
457
- try {
458
- const response = await this.fetchWithTimeout(url, {
459
- method: "GET",
460
- headers: this.getHeaders()
461
- });
462
- if (!response.ok) {
463
- throw new Error("\u4E0B\u8F7D\u6587\u4EF6\u5931\u8D25: " + response.statusText);
464
- }
465
- return await response.blob();
466
- } catch (error) {
467
- throw createExportError(
468
- ERROR_CODES.NETWORK_ERROR,
469
- "\u4E0B\u8F7D\u5BFC\u51FA\u6587\u4EF6\u5931\u8D25: " + formatErrorMessage(error),
470
- { exportId, originalError: error }
471
- );
472
- }
473
- }
474
- // ============= 私有辅助方法 =============
475
- /**
476
- * 获取请求头
477
- */
478
- getHeaders() {
479
- return {
480
- ...this.config.headers
481
- };
482
- }
483
- /**
484
- * 带超时的fetch请求
485
- */
486
- async fetchWithTimeout(url, options) {
487
- const controller = new AbortController();
488
- const timeoutId = setTimeout(() => controller.abort(), this.config.timeout);
489
- try {
490
- const response = await fetch(url, {
491
- ...options,
492
- signal: controller.signal
493
- });
494
- return response;
495
- } catch (error) {
496
- if (error instanceof Error && error.name === "AbortError") {
497
- throw createExportError(ERROR_CODES.TIMEOUT_ERROR, "\u8BF7\u6C42\u8D85\u65F6", {
498
- url,
499
- timeout: this.config.timeout
500
- });
501
- }
502
- throw error;
503
- } finally {
504
- clearTimeout(timeoutId);
505
- }
506
- }
507
- /**
508
- * 转换API返回的配置数据
509
- */
510
- transformConfigFromAPI(apiConfig) {
511
- return {
512
- id: apiConfig.id,
513
- name: apiConfig.name,
514
- description: apiConfig.description || void 0,
515
- format: apiConfig.format,
516
- fields: apiConfig.fields,
517
- grouping: apiConfig.grouping,
518
- fileNameTemplate: apiConfig.fileNameTemplate,
519
- includeHeader: apiConfig.includeHeader,
520
- delimiter: apiConfig.delimiter,
521
- encoding: apiConfig.encoding,
522
- addBOM: apiConfig.addBOM,
523
- maxRows: apiConfig.maxRows || void 0,
524
- createdAt: new Date(apiConfig.createdAt),
525
- updatedAt: new Date(apiConfig.updatedAt),
526
- moduleId: apiConfig.moduleId,
527
- businessId: apiConfig.businessId || void 0,
528
- createdBy: apiConfig.createdBy || void 0
529
- };
530
- }
531
- /**
532
- * 转换API返回的配置列表
533
- */
534
- transformConfigsFromAPI(apiConfigs) {
535
- return apiConfigs.map((config) => this.transformConfigFromAPI(config));
536
- }
537
- /**
538
- * 转换API返回的导出结果
539
- */
540
- transformExportResultFromAPI(apiResult) {
541
- const fileBlob = this.createFileBlobFromBase64(
542
- apiResult.fileData ?? apiResult.fileBlob,
543
- apiResult.fileName
544
- );
545
- return {
546
- exportId: apiResult.exportId,
547
- fileName: apiResult.fileName,
548
- fileSize: apiResult.fileSize,
549
- fileUrl: apiResult.fileUrl,
550
- fileBlob,
551
- exportedRows: apiResult.exportedRows,
552
- startTime: new Date(apiResult.startTime),
553
- endTime: new Date(apiResult.endTime),
554
- duration: apiResult.duration,
555
- statistics: apiResult.statistics
556
- };
557
- }
558
- /**
559
- * 将后端返回的base64文件数据转换为Blob
560
- */
561
- createFileBlobFromBase64(fileData, fileName) {
562
- if (!fileData || typeof fileData !== "string") {
563
- return void 0;
564
- }
565
- try {
566
- if (typeof atob === "function") {
567
- const binaryString = atob(fileData);
568
- const bytes = new Uint8Array(binaryString.length);
569
- for (let i = 0; i < binaryString.length; i++) {
570
- bytes[i] = binaryString.charCodeAt(i);
571
- }
572
- const arrayBuffer = bytes.buffer.slice(
573
- bytes.byteOffset,
574
- bytes.byteOffset + bytes.byteLength
575
- );
576
- return new Blob([arrayBuffer], { type: this.getMimeTypeByFileName(fileName) });
577
- } else if (typeof Buffer !== "undefined") {
578
- const bufferBytes = Buffer.from(fileData, "base64");
579
- const bytes = Uint8Array.from(bufferBytes);
580
- const arrayBuffer = bytes.buffer.slice(
581
- bytes.byteOffset,
582
- bytes.byteOffset + bytes.byteLength
583
- );
584
- return new Blob([arrayBuffer], { type: this.getMimeTypeByFileName(fileName) });
585
- } else {
586
- return void 0;
587
- }
588
- } catch {
589
- return void 0;
590
- }
591
- }
592
- /**
593
- * 根据文件名推断MIME类型
594
- */
595
- getMimeTypeByFileName(fileName) {
596
- const extension = fileName?.split(".").pop()?.toLowerCase();
597
- switch (extension) {
598
- case "csv":
599
- return "text/csv; charset=utf-8";
600
- case "xlsx":
601
- case "xls":
602
- return "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
603
- case "json":
604
- return "application/json; charset=utf-8";
605
- default:
606
- return "application/octet-stream";
607
- }
608
- }
609
- /**
610
- * 转换API返回的进度数据
611
- */
612
- transformProgressFromAPI(apiProgress) {
613
- return {
614
- exportId: apiProgress.exportId,
615
- status: apiProgress.status,
616
- progress: apiProgress.progress,
617
- processedRows: apiProgress.processedRows,
618
- totalRows: apiProgress.totalRows,
619
- startTime: new Date(apiProgress.startTime),
620
- estimatedEndTime: apiProgress.estimatedEndTime ? new Date(apiProgress.estimatedEndTime) : void 0,
621
- currentData: apiProgress.currentData,
622
- error: apiProgress.error
623
- };
624
- }
625
- };
626
- var universalExportClient = new UniversalExportClient();
627
- function createExportClient(config) {
628
- return new UniversalExportClient(config);
629
- }
630
- var FORMAT_ICONS = {
631
- csv: /* @__PURE__ */ React__default.default.createElement(lucideReact.FileText, { className: "w-4 h-4" }),
632
- excel: /* @__PURE__ */ React__default.default.createElement(lucideReact.FileSpreadsheet, { className: "w-4 h-4" }),
633
- json: /* @__PURE__ */ React__default.default.createElement(lucideReact.Database, { className: "w-4 h-4" })
634
- };
635
- var FORMAT_DESCRIPTIONS = {
636
- csv: "\u9017\u53F7\u5206\u9694\u503C\u6587\u4EF6\uFF0C\u517C\u5BB9\u6027\u6700\u597D",
637
- excel: "Excel\u8868\u683C\u6587\u4EF6\uFF0C\u652F\u6301\u683C\u5F0F\u5316\u548C\u5355\u5143\u683C\u5408\u5E76",
638
- json: "JSON\u6570\u636E\u6587\u4EF6\uFF0C\u9002\u5408\u5F00\u53D1\u8005\u4F7F\u7528"
639
- };
640
- var ExportConfigEditor = ({
641
- initialConfig,
642
- moduleId,
643
- businessId,
644
- availableFields,
645
- onSave,
646
- onCancel,
647
- visible = false,
648
- className = "",
649
- onConfigChange
650
- }) => {
651
- const [config, setConfig] = React.useState(() => {
652
- if (initialConfig) {
653
- return { ...initialConfig };
654
- }
655
- return {
656
- id: "",
657
- name: "\u65B0\u5EFA\u5BFC\u51FA\u914D\u7F6E",
658
- description: "",
659
- format: "csv",
660
- fields: availableFields.map((field, index) => ({
661
- ...field,
662
- enabled: true,
663
- sortOrder: index
664
- })),
665
- grouping: {
666
- enabled: false,
667
- fields: [],
668
- preserveOrder: true,
669
- nullValueHandling: "separate",
670
- nullGroupName: "\u672A\u5206\u7EC4"
671
- },
672
- fileNameTemplate: "\u5BFC\u51FA\u6570\u636E_{date}",
673
- includeHeader: true,
674
- delimiter: ",",
675
- encoding: "utf-8",
676
- addBOM: true,
677
- maxRows: void 0,
678
- createdAt: /* @__PURE__ */ new Date(),
679
- updatedAt: /* @__PURE__ */ new Date(),
680
- moduleId,
681
- businessId
682
- };
683
- });
684
- const [activeTab, setActiveTab] = React.useState("basic");
685
- const [savedConfigs, setSavedConfigs] = React.useState([]);
686
- const [loadingConfigs, setLoadingConfigs] = React.useState(false);
687
- const [deletingConfigId, setDeletingConfigId] = React.useState(null);
688
- const loadSavedConfigs = React.useCallback(async () => {
689
- if (!visible || activeTab !== "manage") return;
690
- setLoadingConfigs(true);
691
- try {
692
- const params = new URLSearchParams({ moduleId });
693
- if (businessId) {
694
- params.set("businessId", businessId);
695
- }
696
- const response = await fetch("/api/universal-export/configs?" + params.toString());
697
- if (response.ok) {
698
- const data = await response.json();
699
- setSavedConfigs(data.configs || []);
700
- }
701
- } catch (error) {
702
- console.error("\u52A0\u8F7D\u914D\u7F6E\u5F02\u5E38:", error);
703
- } finally {
704
- setLoadingConfigs(false);
705
- }
706
- }, [visible, activeTab, moduleId, businessId]);
707
- const deleteConfig = React.useCallback(async (configId) => {
708
- setDeletingConfigId(configId);
709
- try {
710
- const response = await fetch("/api/universal-export/configs/" + configId, {
711
- method: "DELETE"
712
- });
713
- if (response.ok) {
714
- setSavedConfigs((prev) => prev.filter((cfg) => cfg.id !== configId));
715
- onConfigChange?.();
716
- }
717
- } catch (error) {
718
- console.error("\u5220\u9664\u914D\u7F6E\u5931\u8D25:", error);
719
- } finally {
720
- setDeletingConfigId(null);
721
- }
722
- }, [onConfigChange]);
723
- const loadConfigToEditor = React.useCallback((config2) => {
724
- setConfig(config2);
725
- setActiveTab("basic");
726
- }, []);
727
- React.useEffect(() => {
728
- if (activeTab === "manage") {
729
- loadSavedConfigs();
730
- }
731
- }, [activeTab, loadSavedConfigs]);
732
- React.useEffect(() => {
733
- if (!visible) return;
734
- const scrollY = window.scrollY;
735
- document.body.style.position = "fixed";
736
- document.body.style.top = "-" + scrollY + "px";
737
- document.body.style.left = "0";
738
- document.body.style.right = "0";
739
- document.body.style.overflow = "hidden";
740
- const handleKeyDown = (e) => {
741
- if (e.key === "Escape") {
742
- onCancel?.();
743
- }
744
- };
745
- document.addEventListener("keydown", handleKeyDown);
746
- return () => {
747
- document.body.style.position = "";
748
- document.body.style.top = "";
749
- document.body.style.left = "";
750
- document.body.style.right = "";
751
- document.body.style.overflow = "";
752
- window.scrollTo(0, scrollY);
753
- document.removeEventListener("keydown", handleKeyDown);
754
- };
755
- }, [visible, onCancel]);
756
- const toggleFieldEnabled = React.useCallback((fieldKey) => {
757
- setConfig((prev) => ({
758
- ...prev,
759
- fields: prev.fields.map(
760
- (field) => field.key === fieldKey ? { ...field, enabled: !field.enabled } : field
761
- )
762
- }));
763
- }, []);
764
- React.useCallback((fieldKey, updates) => {
765
- setConfig((prev) => ({
766
- ...prev,
767
- fields: prev.fields.map(
768
- (field) => field.key === fieldKey ? { ...field, ...updates } : field
769
- )
770
- }));
771
- }, []);
772
- const moveField = React.useCallback((fieldKey, direction) => {
773
- setConfig((prev) => {
774
- const fields = [...prev.fields];
775
- const index = fields.findIndex((f) => f.key === fieldKey);
776
- if (direction === "up" && index > 0) {
777
- const temp = fields[index - 1];
778
- fields[index - 1] = fields[index];
779
- fields[index] = temp;
780
- } else if (direction === "down" && index < fields.length - 1) {
781
- const temp = fields[index + 1];
782
- fields[index + 1] = fields[index];
783
- fields[index] = temp;
784
- }
785
- return {
786
- ...prev,
787
- fields: fields.map((field, idx) => ({ ...field, sortOrder: idx }))
788
- };
789
- });
790
- }, []);
791
- const removeField = React.useCallback((fieldKey) => {
792
- setConfig((prev) => ({
793
- ...prev,
794
- fields: prev.fields.filter((f) => f.key !== fieldKey)
795
- }));
796
- }, []);
797
- const toggleGrouping = React.useCallback((enabled) => {
798
- setConfig((prev) => ({
799
- ...prev,
800
- grouping: {
801
- ...prev.grouping,
802
- enabled
803
- }
804
- }));
805
- }, []);
806
- const addGroupingField = React.useCallback((fieldKey) => {
807
- const field = config.fields.find((f) => f.key === fieldKey);
808
- if (!field) return;
809
- const groupField = {
810
- key: field.key,
811
- label: field.label,
812
- mode: "merge",
813
- valueProcessing: "first",
814
- showGroupHeader: false,
815
- mergeCells: true
816
- };
817
- setConfig((prev) => ({
818
- ...prev,
819
- grouping: {
820
- ...prev.grouping,
821
- fields: [...prev.grouping.fields, groupField]
822
- }
823
- }));
824
- }, [config.fields]);
825
- const removeGroupingField = React.useCallback((fieldKey) => {
826
- setConfig((prev) => ({
827
- ...prev,
828
- grouping: {
829
- ...prev.grouping,
830
- fields: prev.grouping.fields.filter((f) => f.key !== fieldKey)
831
- }
832
- }));
833
- }, []);
834
- const updateGroupingField = React.useCallback((fieldKey, updates) => {
835
- setConfig((prev) => ({
836
- ...prev,
837
- grouping: {
838
- ...prev.grouping,
839
- fields: prev.grouping.fields.map(
840
- (field) => field.key === fieldKey ? { ...field, ...updates } : field
841
- )
842
- }
843
- }));
844
- }, []);
845
- React.useCallback((fieldKey, direction) => {
846
- setConfig((prev) => {
847
- const fields = [...prev.grouping.fields];
848
- const index = fields.findIndex((f) => f.key === fieldKey);
849
- if (direction === "up" && index > 0) {
850
- const temp = fields[index - 1];
851
- fields[index - 1] = fields[index];
852
- fields[index] = temp;
853
- } else if (direction === "down" && index < fields.length - 1) {
854
- const temp = fields[index + 1];
855
- fields[index + 1] = fields[index];
856
- fields[index] = temp;
857
- }
858
- return {
859
- ...prev,
860
- grouping: {
861
- ...prev.grouping,
862
- fields
863
- }
864
- };
865
- });
866
- }, []);
867
- React.useCallback((updates) => {
868
- setConfig((prev) => ({
869
- ...prev,
870
- grouping: {
871
- ...prev.grouping,
872
- ...updates
873
- }
874
- }));
875
- }, []);
876
- const handleSave = React.useCallback(() => {
877
- if (!config.name.trim()) {
878
- alert("\u8BF7\u8F93\u5165\u914D\u7F6E\u540D\u79F0");
879
- return;
880
- }
881
- const enabledFields = config.fields.filter((f) => f.enabled);
882
- if (enabledFields.length === 0) {
883
- alert("\u81F3\u5C11\u9700\u8981\u542F\u7528\u4E00\u4E2A\u5B57\u6BB5");
884
- return;
885
- }
886
- const updatedConfig = {
887
- ...config,
888
- updatedAt: /* @__PURE__ */ new Date()
889
- };
890
- onSave?.(updatedConfig);
891
- onConfigChange?.();
892
- }, [config, onSave, onConfigChange]);
893
- if (!visible) {
894
- return null;
895
- }
896
- const tabs = [
897
- { id: "basic", label: "\u57FA\u672C\u914D\u7F6E", icon: /* @__PURE__ */ React__default.default.createElement(lucideReact.Settings, { className: "w-4 h-4" }), description: "\u914D\u7F6E\u540D\u79F0\u3001\u683C\u5F0F\u548C\u57FA\u672C\u9009\u9879" },
898
- { id: "fields", label: "\u5B57\u6BB5\u8BBE\u7F6E", icon: /* @__PURE__ */ React__default.default.createElement(lucideReact.Type, { className: "w-4 h-4" }), description: "\u9009\u62E9\u548C\u914D\u7F6E\u5BFC\u51FA\u5B57\u6BB5" },
899
- { id: "grouping", label: "\u5206\u7EC4\u8BBE\u7F6E", icon: /* @__PURE__ */ React__default.default.createElement(lucideReact.Group, { className: "w-4 h-4" }), description: "\u914D\u7F6E\u6570\u636E\u5206\u7EC4\u548C\u5408\u5E76\u9009\u9879" },
900
- { id: "manage", label: "\u914D\u7F6E\u7BA1\u7406", icon: /* @__PURE__ */ React__default.default.createElement(lucideReact.Database, { className: "w-4 h-4" }), description: "\u7BA1\u7406\u5DF2\u4FDD\u5B58\u7684\u5BFC\u51FA\u914D\u7F6E" }
901
- ];
902
- return /* @__PURE__ */ React__default.default.createElement(
903
- "div",
904
- {
905
- className: clsx.clsx("fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-[50] p-4", className),
906
- onClick: onCancel
907
- },
908
- /* @__PURE__ */ React__default.default.createElement(
909
- "div",
910
- {
911
- className: "bg-white rounded-lg shadow-xl w-full max-w-5xl max-h-[90vh] flex flex-col",
912
- onClick: (e) => e.stopPropagation()
913
- },
914
- /* @__PURE__ */ React__default.default.createElement("div", { className: "flex items-center justify-between p-4 border-b flex-shrink-0" }, /* @__PURE__ */ React__default.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React__default.default.createElement(lucideReact.Settings, { className: "w-6 h-6 text-blue-600" }), /* @__PURE__ */ React__default.default.createElement("div", null, /* @__PURE__ */ React__default.default.createElement("h2", { className: "text-xl font-semibold text-gray-900" }, "\u5BFC\u51FA\u914D\u7F6E\u7F16\u8F91\u5668"), /* @__PURE__ */ React__default.default.createElement("p", { className: "text-sm text-gray-600" }, "\u914D\u7F6E\u5BFC\u51FA\u5B57\u6BB5\u548C\u683C\u5F0F\u9009\u9879"))), /* @__PURE__ */ React__default.default.createElement("button", { onClick: onCancel, className: "p-2 text-gray-400 hover:text-gray-600 hover:bg-gray-100 rounded-lg" }, /* @__PURE__ */ React__default.default.createElement(lucideReact.X, { className: "w-5 h-5" }))),
915
- /* @__PURE__ */ React__default.default.createElement("div", { className: "border-b bg-gray-50 flex-shrink-0" }, /* @__PURE__ */ React__default.default.createElement("nav", { className: "flex space-x-1 p-2" }, tabs.map((tab) => /* @__PURE__ */ React__default.default.createElement(
916
- "button",
917
- {
918
- key: tab.id,
919
- onClick: () => setActiveTab(tab.id),
920
- className: clsx.clsx("flex items-center gap-2 px-4 py-3 text-sm font-medium rounded-lg transition-colors", activeTab === tab.id ? "bg-white text-blue-600 shadow-sm border border-gray-200" : "text-gray-600 hover:text-gray-900")
921
- },
922
- tab.icon,
923
- /* @__PURE__ */ React__default.default.createElement("span", null, tab.label)
924
- )))),
925
- /* @__PURE__ */ React__default.default.createElement("div", { className: "flex-1 overflow-hidden flex flex-col" }, /* @__PURE__ */ React__default.default.createElement("div", { className: "bg-blue-50 border-b border-blue-100 p-4 flex-shrink-0" }, /* @__PURE__ */ React__default.default.createElement("div", { className: "flex items-center gap-2 text-blue-800 text-sm font-medium" }, tabs.find((t) => t.id === activeTab)?.icon, tabs.find((t) => t.id === activeTab)?.description)), /* @__PURE__ */ React__default.default.createElement("div", { className: "flex-1 overflow-y-auto p-4 sm:p-6" }, activeTab === "basic" && /* @__PURE__ */ React__default.default.createElement("div", { className: "max-w-2xl mx-auto space-y-6" }, /* @__PURE__ */ React__default.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700" }, "\u914D\u7F6E\u540D\u79F0 *"), /* @__PURE__ */ React__default.default.createElement(
926
- "input",
927
- {
928
- type: "text",
929
- value: config.name,
930
- onChange: (e) => setConfig((prev) => ({ ...prev, name: e.target.value })),
931
- className: "w-full px-3 py-2 border border-gray-300 rounded-lg"
932
- }
933
- ), /* @__PURE__ */ React__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700" }, "\u63CF\u8FF0"), /* @__PURE__ */ React__default.default.createElement(
934
- "textarea",
935
- {
936
- value: config.description,
937
- onChange: (e) => setConfig((prev) => ({ ...prev, description: e.target.value })),
938
- className: "w-full px-3 py-2 border border-gray-300 rounded-lg",
939
- rows: 3
940
- }
941
- ), /* @__PURE__ */ React__default.default.createElement("label", { className: "block text-sm font-medium text-gray-700" }, "\u5BFC\u51FA\u683C\u5F0F"), /* @__PURE__ */ React__default.default.createElement("div", { className: "space-y-3" }, ["csv", "excel", "json"].map((format) => /* @__PURE__ */ React__default.default.createElement("label", { key: format, className: "flex items-start gap-3 p-3 border rounded-lg cursor-pointer hover:border-blue-300" }, /* @__PURE__ */ React__default.default.createElement(
942
- "input",
943
- {
944
- type: "radio",
945
- checked: config.format === format,
946
- onChange: () => setConfig((prev) => ({ ...prev, format })),
947
- className: "mt-1"
948
- }
949
- ), /* @__PURE__ */ React__default.default.createElement("div", null, /* @__PURE__ */ React__default.default.createElement("div", { className: "flex items-center gap-2 font-medium" }, FORMAT_ICONS[format], " ", format.toUpperCase()), /* @__PURE__ */ React__default.default.createElement("p", { className: "text-sm text-gray-600" }, FORMAT_DESCRIPTIONS[format]))))))), activeTab === "fields" && /* @__PURE__ */ React__default.default.createElement("div", { className: "space-y-4" }, config.fields.map((field, index) => /* @__PURE__ */ React__default.default.createElement("div", { key: field.key, className: "flex items-center gap-3 p-3 border rounded-lg bg-white" }, /* @__PURE__ */ React__default.default.createElement("button", { onClick: () => toggleFieldEnabled(field.key), className: field.enabled ? "text-blue-600" : "text-gray-400" }, field.enabled ? /* @__PURE__ */ React__default.default.createElement(lucideReact.Eye, { className: "w-4 h-4" }) : /* @__PURE__ */ React__default.default.createElement(lucideReact.EyeOff, { className: "w-4 h-4" })), /* @__PURE__ */ React__default.default.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React__default.default.createElement("div", { className: "font-medium" }, field.label), /* @__PURE__ */ React__default.default.createElement("div", { className: "text-xs text-gray-500" }, field.key)), /* @__PURE__ */ React__default.default.createElement("div", { className: "flex gap-1" }, /* @__PURE__ */ React__default.default.createElement("button", { onClick: () => moveField(field.key, "up"), disabled: index === 0, className: "disabled:opacity-30" }, /* @__PURE__ */ React__default.default.createElement(lucideReact.MoveUp, { className: "w-4 h-4" })), /* @__PURE__ */ React__default.default.createElement("button", { onClick: () => moveField(field.key, "down"), disabled: index === config.fields.length - 1, className: "disabled:opacity-30" }, /* @__PURE__ */ React__default.default.createElement(lucideReact.MoveDown, { className: "w-4 h-4" })), /* @__PURE__ */ React__default.default.createElement("button", { onClick: () => removeField(field.key), className: "text-red-600" }, /* @__PURE__ */ React__default.default.createElement(lucideReact.Trash2, { className: "w-4 h-4" })))))), activeTab === "grouping" && /* @__PURE__ */ React__default.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ React__default.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React__default.default.createElement("h3", { className: "text-lg font-medium flex items-center gap-2" }, /* @__PURE__ */ React__default.default.createElement(lucideReact.Group, { className: "w-5 h-5 text-blue-600" }), " \u5206\u7EC4\u914D\u7F6E"), /* @__PURE__ */ React__default.default.createElement("label", { className: "flex items-center gap-2" }, /* @__PURE__ */ React__default.default.createElement("input", { type: "checkbox", checked: config.grouping?.enabled, onChange: (e) => toggleGrouping(e.target.checked) }), "\u542F\u7528\u5206\u7EC4")), config.grouping?.enabled && /* @__PURE__ */ React__default.default.createElement("div", { className: "space-y-4" }, config.grouping.fields.map((gf, index) => /* @__PURE__ */ React__default.default.createElement("div", { key: gf.key, className: "p-4 border rounded-lg bg-blue-50 border-blue-200" }, /* @__PURE__ */ React__default.default.createElement("div", { className: "flex justify-between items-center mb-4" }, /* @__PURE__ */ React__default.default.createElement("span", { className: "font-medium text-blue-900" }, gf.label), /* @__PURE__ */ React__default.default.createElement("button", { onClick: () => removeGroupingField(gf.key), className: "text-red-600" }, /* @__PURE__ */ React__default.default.createElement(lucideReact.Trash2, { className: "w-4 h-4" }))), /* @__PURE__ */ React__default.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React__default.default.createElement("select", { value: gf.mode, onChange: (e) => updateGroupingField(gf.key, { mode: e.target.value }), className: "border rounded p-2" }, /* @__PURE__ */ React__default.default.createElement("option", { value: "merge" }, "\u5408\u5E76\u6A21\u5F0F"), /* @__PURE__ */ React__default.default.createElement("option", { value: "separate" }, "\u5206\u79BB\u6A21\u5F0F"), /* @__PURE__ */ React__default.default.createElement("option", { value: "nested" }, "\u5D4C\u5957\u6A21\u5F0F")), /* @__PURE__ */ React__default.default.createElement("select", { value: gf.valueProcessing, onChange: (e) => updateGroupingField(gf.key, { valueProcessing: e.target.value }), className: "border rounded p-2" }, /* @__PURE__ */ React__default.default.createElement("option", { value: "first" }, "\u9996\u503C"), /* @__PURE__ */ React__default.default.createElement("option", { value: "sum" }, "\u6C42\u548C"), /* @__PURE__ */ React__default.default.createElement("option", { value: "count" }, "\u8BA1\u6570"))))), /* @__PURE__ */ React__default.default.createElement("select", { onChange: (e) => e.target.value && addGroupingField(e.target.value), className: "w-full border rounded p-2" }, /* @__PURE__ */ React__default.default.createElement("option", { value: "" }, "\u6DFB\u52A0\u5206\u7EC4\u5B57\u6BB5..."), config.fields.filter((f) => f.enabled && !config.grouping?.fields.some((gf) => gf.key === f.key)).map((f) => /* @__PURE__ */ React__default.default.createElement("option", { key: f.key, value: f.key }, f.label))))), activeTab === "manage" && /* @__PURE__ */ React__default.default.createElement("div", { className: "space-y-4" }, loadingConfigs ? /* @__PURE__ */ React__default.default.createElement("div", { className: "text-center py-10" }, "\u52A0\u8F7D\u4E2D...") : savedConfigs.map((sc) => /* @__PURE__ */ React__default.default.createElement("div", { key: sc.id, className: "flex justify-between items-center p-4 border rounded-lg" }, /* @__PURE__ */ React__default.default.createElement("div", null, /* @__PURE__ */ React__default.default.createElement("div", { className: "font-medium" }, sc.name), /* @__PURE__ */ React__default.default.createElement("div", { className: "text-sm text-gray-500" }, sc.format)), /* @__PURE__ */ React__default.default.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React__default.default.createElement("button", { onClick: () => loadConfigToEditor(sc), className: "text-blue-600 px-3 py-1 border rounded" }, "\u7F16\u8F91"), /* @__PURE__ */ React__default.default.createElement("button", { onClick: () => deleteConfig(sc.id), className: "text-red-600 px-3 py-1 border rounded" }, "\u5220\u9664"))))))),
950
- /* @__PURE__ */ React__default.default.createElement("div", { className: "flex justify-end gap-3 p-4 border-t bg-gray-50" }, /* @__PURE__ */ React__default.default.createElement("button", { onClick: onCancel, className: "px-4 py-2 border rounded" }, "\u53D6\u6D88"), activeTab !== "manage" && /* @__PURE__ */ React__default.default.createElement("button", { onClick: handleSave, className: "px-4 py-2 bg-blue-600 text-white rounded flex items-center gap-2" }, /* @__PURE__ */ React__default.default.createElement(lucideReact.Save, { className: "w-4 h-4" }), " \u4FDD\u5B58\u914D\u7F6E"))
951
- )
952
- );
953
- };
954
-
955
- // src/universalExport/components/UniversalExportButton.tsx
956
- var BUTTON_STYLES = {
957
- primary: {
958
- sm: "px-3 py-1.5 text-sm bg-blue-600 text-white hover:bg-blue-700",
959
- md: "px-4 py-2 text-sm bg-blue-600 text-white hover:bg-blue-700",
960
- lg: "px-6 py-3 text-base bg-blue-600 text-white hover:bg-blue-700"
961
- },
962
- secondary: {
963
- sm: "px-3 py-1.5 text-sm bg-gray-600 text-white hover:bg-gray-700",
964
- md: "px-4 py-2 text-sm bg-gray-600 text-white hover:bg-gray-700",
965
- lg: "px-6 py-3 text-base bg-gray-600 text-white hover:bg-gray-700"
966
- },
967
- outline: {
968
- sm: "px-3 py-1.5 text-sm border border-gray-300 text-gray-700 hover:bg-gray-50",
969
- md: "px-4 py-2 text-sm border border-gray-300 text-gray-700 hover:bg-gray-50",
970
- lg: "px-6 py-3 text-base border border-gray-300 text-gray-700 hover:bg-gray-50"
971
- }
972
- };
973
- var UniversalExportButton = ({
974
- exportService,
975
- moduleId,
976
- businessId,
977
- availableFields,
978
- dataSource,
979
- defaultConfig,
980
- buttonText = "\u5BFC\u51FA\u6570\u636E",
981
- variant = "primary",
982
- size = "md",
983
- disabled = false,
984
- className = "",
985
- onExportSuccess,
986
- onExportError,
987
- onConfigSave
988
- }) => {
989
- const [showConfigEditor, setShowConfigEditor] = React.useState(false);
990
- const [showDropdown, setShowDropdown] = React.useState(false);
991
- const [isExporting, setIsExporting] = React.useState(false);
992
- const [exportProgress, setExportProgress] = React.useState(null);
993
- const [savedConfigs, setSavedConfigs] = React.useState([]);
994
- const loadSavedConfigs = React.useCallback(async () => {
995
- try {
996
- if (exportService) {
997
- const configs = await exportService.getConfigsByModule(moduleId, businessId);
998
- setSavedConfigs(configs);
999
- }
1000
- } catch (error) {
1001
- console.error("\u52A0\u8F7D\u4FDD\u5B58\u7684\u914D\u7F6E\u5931\u8D25:", error);
1002
- }
1003
- }, [exportService, moduleId, businessId]);
1004
- React__default.default.useEffect(() => {
1005
- loadSavedConfigs();
1006
- }, [loadSavedConfigs]);
1007
- const handleExport = React.useCallback(async (config) => {
1008
- console.log("\u{1F680} [UniversalExportButton] \u5F00\u59CB\u5BFC\u51FA:", {
1009
- configId: config.id,
1010
- configName: config.name,
1011
- format: config.format,
1012
- fieldsCount: config.fields.length
1013
- });
1014
- if (!exportService) {
1015
- console.error("\u274C [UniversalExportButton] \u5BFC\u51FA\u670D\u52A1\u672A\u521D\u59CB\u5316");
1016
- onExportError?.("\u5BFC\u51FA\u670D\u52A1\u672A\u521D\u59CB\u5316");
1017
- return;
1018
- }
1019
- setIsExporting(true);
1020
- setExportProgress(null);
1021
- try {
1022
- console.log("\u{1F4CA} [UniversalExportButton] \u83B7\u53D6\u6570\u636E...");
1023
- const data = await dataSource();
1024
- console.log("\u2705 [UniversalExportButton] \u6570\u636E\u83B7\u53D6\u6210\u529F:", {
1025
- dataType: typeof data,
1026
- isArray: Array.isArray(data),
1027
- length: Array.isArray(data) ? data.length : "N/A"
1028
- });
1029
- const request = {
1030
- configId: config,
1031
- dataSource: data,
1032
- // 传递实际数据而不是函数
1033
- queryParams: void 0,
1034
- fieldMapping: void 0,
1035
- filters: void 0,
1036
- sortBy: void 0,
1037
- pagination: void 0,
1038
- customFileName: void 0
1039
- };
1040
- console.log("\u{1F4DE} [UniversalExportButton] \u8C03\u7528\u5BFC\u51FA\u670D\u52A1...");
1041
- const result = await exportService.exportData(request);
1042
- console.log("\u2705 [UniversalExportButton] \u5BFC\u51FA\u6210\u529F:", {
1043
- fileName: result.fileName,
1044
- fileSize: result.fileSize,
1045
- exportedRows: result.exportedRows
1046
- });
1047
- const progress = {
1048
- exportId: result.exportId,
1049
- status: "completed",
1050
- progress: 100,
1051
- processedRows: result.exportedRows,
1052
- totalRows: result.exportedRows,
1053
- startTime: result.startTime,
1054
- estimatedEndTime: result.endTime
1055
- };
1056
- setExportProgress(progress);
1057
- if (result.fileUrl) {
1058
- console.log("\u{1F4E5} [UniversalExportButton] \u4ECEURL\u4E0B\u8F7D\u6587\u4EF6...");
1059
- const link = document.createElement("a");
1060
- link.href = result.fileUrl;
1061
- link.download = result.fileName;
1062
- document.body.appendChild(link);
1063
- link.click();
1064
- document.body.removeChild(link);
1065
- console.log("\u2705 [UniversalExportButton] \u6587\u4EF6\u4E0B\u8F7D\u5B8C\u6210");
1066
- } else if (result.fileBlob) {
1067
- console.log("\u{1F4E5} [UniversalExportButton] \u4ECEBlob\u4E0B\u8F7D\u6587\u4EF6...");
1068
- const url = window.URL.createObjectURL(result.fileBlob);
1069
- const link = document.createElement("a");
1070
- link.href = url;
1071
- link.download = result.fileName;
1072
- document.body.appendChild(link);
1073
- link.click();
1074
- document.body.removeChild(link);
1075
- window.URL.revokeObjectURL(url);
1076
- console.log("\u2705 [UniversalExportButton] \u6587\u4EF6\u4E0B\u8F7D\u5B8C\u6210");
1077
- } else if (result.exportId && typeof exportService.downloadExportFile === "function") {
1078
- console.log("\u{1F4E5} [UniversalExportButton] \u4ECEexportId\u515C\u5E95\u4E0B\u8F7D\u6587\u4EF6...");
1079
- const blob = await exportService.downloadExportFile(result.exportId);
1080
- const url = window.URL.createObjectURL(blob);
1081
- const link = document.createElement("a");
1082
- link.href = url;
1083
- link.download = result.fileName;
1084
- document.body.appendChild(link);
1085
- link.click();
1086
- document.body.removeChild(link);
1087
- window.URL.revokeObjectURL(url);
1088
- console.log("\u2705 [UniversalExportButton] \u6587\u4EF6\u4E0B\u8F7D\u5B8C\u6210\uFF08\u515C\u5E95\u5206\u652F\uFF09");
1089
- } else {
1090
- console.warn("\u26A0\uFE0F [UniversalExportButton] \u5BFC\u51FA\u6210\u529F\u4F46\u7F3A\u5C11\u53EF\u4E0B\u8F7D\u6587\u4EF6\u4FE1\u606F:", result);
1091
- }
1092
- setTimeout(() => {
1093
- setIsExporting(false);
1094
- setExportProgress(null);
1095
- }, 1e3);
1096
- onExportSuccess?.(result);
1097
- } catch (error) {
1098
- console.error("\u274C [UniversalExportButton] \u5BFC\u51FA\u5F02\u5E38:", error);
1099
- setIsExporting(false);
1100
- setExportProgress(null);
1101
- let errorMessage = "\u5BFC\u51FA\u5931\u8D25";
1102
- if (error && typeof error === "object") {
1103
- if ("message" in error && typeof error.message === "string") {
1104
- errorMessage = error.message;
1105
- } else if ("code" in error && "message" in error) {
1106
- errorMessage = error.code + ": " + error.message;
1107
- }
1108
- } else if (typeof error === "string") {
1109
- errorMessage = error;
1110
- }
1111
- onExportError?.(errorMessage);
1112
- }
1113
- }, [exportService, dataSource, onExportSuccess, onExportError]);
1114
- const handleQuickExport = React.useCallback(async () => {
1115
- if (defaultConfig) {
1116
- await handleExport(defaultConfig);
1117
- } else {
1118
- const config = {
1119
- id: "quick_export",
1120
- name: "\u5FEB\u901F\u5BFC\u51FA",
1121
- description: "\u4F7F\u7528\u9ED8\u8BA4\u914D\u7F6E\u5FEB\u901F\u5BFC\u51FA",
1122
- format: "csv",
1123
- fields: availableFields.map((field, index) => ({
1124
- ...field,
1125
- enabled: true,
1126
- sortOrder: index
1127
- })),
1128
- fileNameTemplate: "\u5BFC\u51FA\u6570\u636E_{date}",
1129
- includeHeader: true,
1130
- delimiter: ",",
1131
- encoding: "utf-8",
1132
- addBOM: true,
1133
- createdAt: /* @__PURE__ */ new Date(),
1134
- updatedAt: /* @__PURE__ */ new Date(),
1135
- moduleId,
1136
- businessId
1137
- };
1138
- await handleExport(config);
1139
- }
1140
- }, [defaultConfig, availableFields, moduleId, businessId, handleExport]);
1141
- const handleConfigSave = React.useCallback(async (config) => {
1142
- try {
1143
- if (exportService) {
1144
- const savedConfig = await exportService.createConfig(config);
1145
- await loadSavedConfigs();
1146
- onConfigSave?.(savedConfig);
1147
- }
1148
- setShowConfigEditor(false);
1149
- } catch (error) {
1150
- onExportError?.(error instanceof Error ? error.message : "\u4FDD\u5B58\u914D\u7F6E\u5931\u8D25");
1151
- }
1152
- }, [exportService, onConfigSave, onExportError, loadSavedConfigs]);
1153
- const renderProgress = () => {
1154
- if (!exportProgress) return null;
1155
- const { status, progress, processedRows, totalRows } = exportProgress;
1156
- return /* @__PURE__ */ React__default.default.createElement("div", { className: "absolute top-full left-0 right-0 mt-2 bg-white border border-gray-200 rounded-lg shadow-lg p-4 z-[10]" }, /* @__PURE__ */ React__default.default.createElement("div", { className: "flex items-center gap-3 mb-2" }, /* @__PURE__ */ React__default.default.createElement(lucideReact.Loader2, { className: "w-4 h-4 animate-spin text-blue-600" }), /* @__PURE__ */ React__default.default.createElement("span", { className: "text-sm font-medium text-gray-900" }, status === "processing" ? "\u6B63\u5728\u5BFC\u51FA..." : "\u5BFC\u51FA\u5B8C\u6210")), /* @__PURE__ */ React__default.default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React__default.default.createElement("div", { className: "flex justify-between text-xs text-gray-600" }, /* @__PURE__ */ React__default.default.createElement("span", null, "\u8FDB\u5EA6: ", progress, "%"), /* @__PURE__ */ React__default.default.createElement("span", null, processedRows, " / ", totalRows, " \u884C")), /* @__PURE__ */ React__default.default.createElement("div", { className: "w-full bg-gray-200 rounded-full h-2" }, /* @__PURE__ */ React__default.default.createElement(
1157
- "div",
1158
- {
1159
- className: "bg-blue-600 h-2 rounded-full transition-all duration-300",
1160
- style: { width: progress + "%" }
1161
- }
1162
- ))));
1163
- };
1164
- const renderDropdown = () => {
1165
- if (!showDropdown) return null;
1166
- return /* @__PURE__ */ React__default.default.createElement("div", { className: "absolute top-full left-0 mt-2 bg-white border border-gray-200 rounded-lg shadow-lg py-2 z-[10] min-w-48" }, /* @__PURE__ */ React__default.default.createElement(
1167
- "button",
1168
- {
1169
- onClick: () => {
1170
- setShowDropdown(false);
1171
- handleQuickExport();
1172
- },
1173
- disabled: isExporting,
1174
- className: "w-full px-4 py-2 text-left text-sm text-gray-700 hover:bg-gray-50 flex items-center gap-2"
1175
- },
1176
- /* @__PURE__ */ React__default.default.createElement(lucideReact.Download, { className: "w-4 h-4" }),
1177
- "\u5FEB\u901F\u5BFC\u51FA"
1178
- ), savedConfigs.length > 0 && /* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, /* @__PURE__ */ React__default.default.createElement("div", { className: "border-t border-gray-200 my-1" }), savedConfigs.map((config) => /* @__PURE__ */ React__default.default.createElement(
1179
- "button",
1180
- {
1181
- key: config.id,
1182
- onClick: () => {
1183
- setShowDropdown(false);
1184
- handleExport(config);
1185
- },
1186
- disabled: isExporting,
1187
- className: "w-full px-4 py-2 text-left text-sm text-gray-700 hover:bg-gray-50 flex items-center gap-2"
1188
- },
1189
- /* @__PURE__ */ React__default.default.createElement(lucideReact.FileText, { className: "w-4 h-4" }),
1190
- config.name
1191
- ))), /* @__PURE__ */ React__default.default.createElement("div", { className: "border-t border-gray-200 my-1" }), /* @__PURE__ */ React__default.default.createElement(
1192
- "button",
1193
- {
1194
- onClick: () => {
1195
- setShowDropdown(false);
1196
- setShowConfigEditor(true);
1197
- },
1198
- className: "w-full px-4 py-2 text-left text-sm text-gray-700 hover:bg-gray-50 flex items-center gap-2"
1199
- },
1200
- /* @__PURE__ */ React__default.default.createElement(lucideReact.Settings, { className: "w-4 h-4" }),
1201
- "\u81EA\u5B9A\u4E49\u914D\u7F6E"
1202
- ));
1203
- };
1204
- const buttonStyle = BUTTON_STYLES[variant][size];
1205
- const baseClasses = "inline-flex items-center gap-2 rounded-lg font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed " + buttonStyle;
1206
- return /* @__PURE__ */ React__default.default.createElement("div", { className: clsx.clsx("relative", className) }, /* @__PURE__ */ React__default.default.createElement(
1207
- "button",
1208
- {
1209
- onClick: () => setShowDropdown(!showDropdown),
1210
- disabled: disabled || isExporting,
1211
- className: clsx.clsx(baseClasses, isExporting ? "cursor-not-allowed" : "")
1212
- },
1213
- isExporting ? /* @__PURE__ */ React__default.default.createElement(lucideReact.Loader2, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ React__default.default.createElement(lucideReact.Download, { className: "w-4 h-4" }),
1214
- /* @__PURE__ */ React__default.default.createElement("span", null, isExporting ? "\u5BFC\u51FA\u4E2D..." : buttonText),
1215
- /* @__PURE__ */ React__default.default.createElement(lucideReact.ChevronDown, { className: "w-4 h-4" })
1216
- ), renderDropdown(), renderProgress(), /* @__PURE__ */ React__default.default.createElement(
1217
- ExportConfigEditor,
1218
- {
1219
- moduleId,
1220
- businessId,
1221
- availableFields,
1222
- onSave: handleConfigSave,
1223
- onCancel: () => setShowConfigEditor(false),
1224
- visible: showConfigEditor,
1225
- onConfigChange: loadSavedConfigs
1226
- }
1227
- ), showDropdown && /* @__PURE__ */ React__default.default.createElement(
1228
- "div",
1229
- {
1230
- className: "fixed inset-0 z-[0]",
1231
- onClick: () => setShowDropdown(false)
1232
- }
1233
- ));
1234
- };
1235
-
1236
- exports.API_BASE_PATH = API_BASE_PATH;
1237
- exports.API_ENDPOINTS = API_ENDPOINTS;
1238
- exports.DEFAULT_ADD_BOM = DEFAULT_ADD_BOM;
1239
- exports.DEFAULT_CONFIG_CACHE_TTL = DEFAULT_CONFIG_CACHE_TTL;
1240
- exports.DEFAULT_CSV_DELIMITER = DEFAULT_CSV_DELIMITER;
1241
- exports.DEFAULT_ENCODING = DEFAULT_ENCODING;
1242
- exports.DEFAULT_EXPORT_FORMAT = DEFAULT_EXPORT_FORMAT;
1243
- exports.DEFAULT_EXPORT_TIMEOUT = DEFAULT_EXPORT_TIMEOUT;
1244
- exports.DEFAULT_FORMATTERS = DEFAULT_FORMATTERS;
1245
- exports.DEFAULT_MAX_CONCURRENT_EXPORTS = DEFAULT_MAX_CONCURRENT_EXPORTS;
1246
- exports.DEFAULT_MAX_FILE_SIZE = DEFAULT_MAX_FILE_SIZE;
1247
- exports.DEFAULT_MAX_ROWS = DEFAULT_MAX_ROWS;
1248
- exports.DEFAULT_RESULT_CACHE_TTL = DEFAULT_RESULT_CACHE_TTL;
1249
- exports.ERROR_CODES = ERROR_CODES;
1250
- exports.EXPORT_FORMAT_EXTENSIONS = EXPORT_FORMAT_EXTENSIONS;
1251
- exports.EXPORT_FORMAT_MIME_TYPES = EXPORT_FORMAT_MIME_TYPES;
1252
- exports.ExportConfigEditor = ExportConfigEditor;
1253
- exports.UNIVERSAL_EXPORT_NAME = UNIVERSAL_EXPORT_NAME;
1254
- exports.UNIVERSAL_EXPORT_VERSION = UNIVERSAL_EXPORT_VERSION;
1255
- exports.UniversalExportButton = UniversalExportButton;
1256
- exports.UniversalExportClient = UniversalExportClient;
1257
- exports.applyFormatter = applyFormatter;
1258
- exports.createExportClient = createExportClient;
1259
- exports.createExportError = createExportError;
1260
- exports.escapeCSVField = escapeCSVField;
1261
- exports.estimateEndTime = estimateEndTime;
1262
- exports.formatDuration = formatDuration;
1263
- exports.formatErrorMessage = formatErrorMessage;
1264
- exports.formatFileSize = formatFileSize;
1265
- exports.generateExportFileName = generateExportFileName;
1266
- exports.getNestedValue = getNestedValue;
1267
- exports.parseCSVField = parseCSVField;
1268
- exports.sanitizeFileName = sanitizeFileName;
1269
- exports.setNestedValue = setNestedValue;
1270
- exports.universalExportClient = universalExportClient;
1271
- exports.validateExportConfig = validateExportConfig;
1272
- exports.validateExportRequest = validateExportRequest;
1273
- exports.validateFileName = validateFileName;
1274
- //# sourceMappingURL=chunk-VMTEDX5H.js.map
1275
- //# sourceMappingURL=chunk-VMTEDX5H.js.map