sa2kit 1.6.29 → 1.6.31

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 (237) hide show
  1. package/dist/AliyunOSSProvider-P6TOVKMM.mjs +6 -0
  2. package/dist/{AliyunOSSProvider-I7I5YGLB.mjs.map → AliyunOSSProvider-P6TOVKMM.mjs.map} +1 -1
  3. package/dist/AliyunOSSProvider-Z5BRBCG6.js +15 -0
  4. package/dist/{AliyunOSSProvider-L7JWMKS4.js.map → AliyunOSSProvider-Z5BRBCG6.js.map} +1 -1
  5. package/dist/ConfigService-3DIC6C3Q.js +21 -0
  6. package/dist/{ConfigService-7MEZXKJ5.js.map → ConfigService-3DIC6C3Q.js.map} +1 -1
  7. package/dist/ConfigService-V6ZK273Z.mjs +4 -0
  8. package/dist/{ConfigService-BV57YYFW.mjs.map → ConfigService-V6ZK273Z.mjs.map} +1 -1
  9. package/dist/LocalStorageProvider-3RVPCQB3.mjs +6 -0
  10. package/dist/{LocalStorageProvider-FVLLHBHO.mjs.map → LocalStorageProvider-3RVPCQB3.mjs.map} +1 -1
  11. package/dist/LocalStorageProvider-PP7MA5OT.js +15 -0
  12. package/dist/{LocalStorageProvider-NBNHHWLY.js.map → LocalStorageProvider-PP7MA5OT.js.map} +1 -1
  13. package/dist/PMXParser-2VTA737I.js +13 -0
  14. package/dist/{PMXParser-YBS3B6HM.js.map → PMXParser-2VTA737I.js.map} +1 -1
  15. package/dist/PMXParser-RNVQL76A.mjs +4 -0
  16. package/dist/{PMXParser-L6IWHL4I.mjs.map → PMXParser-RNVQL76A.mjs.map} +1 -1
  17. package/dist/analytics/index.js +46 -45
  18. package/dist/analytics/index.js.map +1 -1
  19. package/dist/analytics/index.mjs +45 -44
  20. package/dist/analytics/index.mjs.map +1 -1
  21. package/dist/analytics/server/index.js +4 -4
  22. package/dist/analytics/server/index.js.map +1 -1
  23. package/dist/analytics/server/index.mjs +4 -4
  24. package/dist/analytics/server/index.mjs.map +1 -1
  25. package/dist/api/index.js +5 -5
  26. package/dist/api/index.js.map +1 -1
  27. package/dist/api/index.mjs +5 -5
  28. package/dist/api/index.mjs.map +1 -1
  29. package/dist/audioDetection/index.js +17 -16
  30. package/dist/audioDetection/index.js.map +1 -1
  31. package/dist/audioDetection/index.mjs +17 -16
  32. package/dist/audioDetection/index.mjs.map +1 -1
  33. package/dist/auth/client/index.js +4 -4
  34. package/dist/auth/client/index.mjs +1 -1
  35. package/dist/auth/components/index.js +3 -3
  36. package/dist/auth/components/index.js.map +1 -1
  37. package/dist/auth/components/index.mjs +3 -3
  38. package/dist/auth/components/index.mjs.map +1 -1
  39. package/dist/auth/index.js +29 -29
  40. package/dist/auth/index.mjs +5 -5
  41. package/dist/auth/middleware/index.js +3 -3
  42. package/dist/auth/middleware/index.mjs +2 -2
  43. package/dist/auth/routes/index.js +14 -14
  44. package/dist/auth/routes/index.mjs +2 -2
  45. package/dist/auth/services/index.js +7 -7
  46. package/dist/auth/services/index.mjs +1 -1
  47. package/dist/calendar/index.js +146 -182
  48. package/dist/calendar/index.js.map +1 -1
  49. package/dist/calendar/index.mjs +139 -175
  50. package/dist/calendar/index.mjs.map +1 -1
  51. package/dist/calendar/routes/index.js +1 -1
  52. package/dist/calendar/routes/index.js.map +1 -1
  53. package/dist/calendar/routes/index.mjs +1 -1
  54. package/dist/calendar/routes/index.mjs.map +1 -1
  55. package/dist/{chunk-5YQ5B7IZ.js → chunk-24HGREE6.js} +5 -5
  56. package/dist/{chunk-5YQ5B7IZ.js.map → chunk-24HGREE6.js.map} +1 -1
  57. package/dist/{chunk-6PRFP5EG.js → chunk-25OFOKNF.js} +6 -6
  58. package/dist/chunk-25OFOKNF.js.map +1 -0
  59. package/dist/{chunk-KQGP6BTS.mjs → chunk-3DXPQ4YV.mjs} +6 -6
  60. package/dist/chunk-3DXPQ4YV.mjs.map +1 -0
  61. package/dist/{chunk-3BGPZN4X.mjs → chunk-3NHAT7D4.mjs} +12 -12
  62. package/dist/chunk-3NHAT7D4.mjs.map +1 -0
  63. package/dist/{chunk-MW4BCIZC.mjs → chunk-4HC6M7FK.mjs} +3 -3
  64. package/dist/chunk-4HC6M7FK.mjs.map +1 -0
  65. package/dist/{chunk-ESRCX5TQ.mjs → chunk-52TN2QSS.mjs} +3 -3
  66. package/dist/{chunk-ESRCX5TQ.mjs.map → chunk-52TN2QSS.mjs.map} +1 -1
  67. package/dist/{chunk-DW2ZTOCV.js → chunk-5A7ERLKK.js} +105 -106
  68. package/dist/chunk-5A7ERLKK.js.map +1 -0
  69. package/dist/{chunk-CNTILN5J.mjs → chunk-5YQ62BKX.mjs} +20 -19
  70. package/dist/chunk-5YQ62BKX.mjs.map +1 -0
  71. package/dist/{chunk-6W5BMXJG.js → chunk-6OWNMJKG.js} +4 -4
  72. package/dist/{chunk-6W5BMXJG.js.map → chunk-6OWNMJKG.js.map} +1 -1
  73. package/dist/{chunk-WSNM4EU5.mjs → chunk-77M5AQG3.mjs} +37 -41
  74. package/dist/chunk-77M5AQG3.mjs.map +1 -0
  75. package/dist/{chunk-DUHZ7VZP.js → chunk-7VRT55ZD.js} +3 -3
  76. package/dist/chunk-7VRT55ZD.js.map +1 -0
  77. package/dist/{chunk-LX4XX6W7.js → chunk-C54W2CMK.js} +16 -16
  78. package/dist/chunk-C54W2CMK.js.map +1 -0
  79. package/dist/{chunk-3WOAPLEG.mjs → chunk-EB4NR623.mjs} +27 -26
  80. package/dist/chunk-EB4NR623.mjs.map +1 -0
  81. package/dist/{chunk-CD77U7LZ.js → chunk-GBPLX42J.js} +9 -9
  82. package/dist/chunk-GBPLX42J.js.map +1 -0
  83. package/dist/{chunk-TFQF2HDO.mjs → chunk-HDEOCX2L.mjs} +12 -12
  84. package/dist/chunk-HDEOCX2L.mjs.map +1 -0
  85. package/dist/{chunk-LFG6FPM5.mjs → chunk-KIP2CERU.mjs} +37 -38
  86. package/dist/chunk-KIP2CERU.mjs.map +1 -0
  87. package/dist/{chunk-6YKMCPQI.mjs → chunk-KZKIH4AS.mjs} +4 -4
  88. package/dist/chunk-KZKIH4AS.mjs.map +1 -0
  89. package/dist/{chunk-6MQUBPKB.mjs → chunk-LJ4CCSSY.mjs} +3 -3
  90. package/dist/{chunk-6MQUBPKB.mjs.map → chunk-LJ4CCSSY.mjs.map} +1 -1
  91. package/dist/{chunk-TOC5FSHP.js → chunk-NJ2SNXBJ.js} +12 -12
  92. package/dist/chunk-NJ2SNXBJ.js.map +1 -0
  93. package/dist/{chunk-OCR5DS4C.mjs → chunk-PE5EAHZK.mjs} +3 -3
  94. package/dist/chunk-PE5EAHZK.mjs.map +1 -0
  95. package/dist/{chunk-TKCYPDWU.js → chunk-Q5EDCKQA.js} +27 -29
  96. package/dist/chunk-Q5EDCKQA.js.map +1 -0
  97. package/dist/{chunk-CLKKZSPZ.js → chunk-RBKGYWME.js} +20 -19
  98. package/dist/chunk-RBKGYWME.js.map +1 -0
  99. package/dist/{chunk-VRTRSEEH.mjs → chunk-RSJSZ7QH.mjs} +11 -11
  100. package/dist/chunk-RSJSZ7QH.mjs.map +1 -0
  101. package/dist/{chunk-E7RGBAYJ.js → chunk-TDCDEBGP.js} +30 -29
  102. package/dist/chunk-TDCDEBGP.js.map +1 -0
  103. package/dist/{chunk-T5OZHYVM.mjs → chunk-TVROG2Q4.mjs} +15 -15
  104. package/dist/chunk-TVROG2Q4.mjs.map +1 -0
  105. package/dist/{chunk-JZXJQMVE.js → chunk-UIFFDRTE.js} +11 -11
  106. package/dist/chunk-UIFFDRTE.js.map +1 -0
  107. package/dist/{chunk-UOFTHYIH.js → chunk-UL6XJGUZ.js} +4 -4
  108. package/dist/chunk-UL6XJGUZ.js.map +1 -0
  109. package/dist/{chunk-A3UP56MS.js → chunk-WA67GZSZ.js} +3 -3
  110. package/dist/chunk-WA67GZSZ.js.map +1 -0
  111. package/dist/{chunk-OLHGZXN3.mjs → chunk-WEEXCPSE.mjs} +5 -5
  112. package/dist/chunk-WEEXCPSE.mjs.map +1 -0
  113. package/dist/{chunk-5GCHAXY5.js → chunk-X3UU7JHT.js} +38 -42
  114. package/dist/chunk-X3UU7JHT.js.map +1 -0
  115. package/dist/{chunk-QU5OT4DF.js → chunk-XJ7ZAGC5.js} +5 -5
  116. package/dist/chunk-XJ7ZAGC5.js.map +1 -0
  117. package/dist/{chunk-GSTLV3MB.mjs → chunk-YOTQG4NP.mjs} +26 -28
  118. package/dist/chunk-YOTQG4NP.mjs.map +1 -0
  119. package/dist/{chunk-QAT2RWAO.mjs → chunk-Z36R3P62.mjs} +7 -7
  120. package/dist/chunk-Z36R3P62.mjs.map +1 -0
  121. package/dist/{chunk-7Z5LLJ3A.js → chunk-ZWQJSZEY.js} +13 -13
  122. package/dist/chunk-ZWQJSZEY.js.map +1 -0
  123. package/dist/config/index.js +6 -6
  124. package/dist/config/index.js.map +1 -1
  125. package/dist/config/index.mjs +6 -6
  126. package/dist/config/index.mjs.map +1 -1
  127. package/dist/config/server/index.js +37 -37
  128. package/dist/config/server/index.js.map +1 -1
  129. package/dist/config/server/index.mjs +37 -37
  130. package/dist/config/server/index.mjs.map +1 -1
  131. package/dist/i18n/index.d.mts +2 -2
  132. package/dist/i18n/index.d.ts +2 -2
  133. package/dist/i18n/index.js +16 -17
  134. package/dist/i18n/index.js.map +1 -1
  135. package/dist/i18n/index.mjs +16 -17
  136. package/dist/i18n/index.mjs.map +1 -1
  137. package/dist/imageCrop/index.js +11 -10
  138. package/dist/imageCrop/index.js.map +1 -1
  139. package/dist/imageCrop/index.mjs +11 -10
  140. package/dist/imageCrop/index.mjs.map +1 -1
  141. package/dist/index.js +221 -246
  142. package/dist/index.js.map +1 -1
  143. package/dist/index.mjs +79 -104
  144. package/dist/index.mjs.map +1 -1
  145. package/dist/logger/index.js +6 -6
  146. package/dist/logger/index.mjs +1 -1
  147. package/dist/mmd/admin/index.js +11 -10
  148. package/dist/mmd/admin/index.js.map +1 -1
  149. package/dist/mmd/admin/index.mjs +11 -10
  150. package/dist/mmd/admin/index.mjs.map +1 -1
  151. package/dist/mmd/index.js +223 -241
  152. package/dist/mmd/index.js.map +1 -1
  153. package/dist/mmd/index.mjs +220 -238
  154. package/dist/mmd/index.mjs.map +1 -1
  155. package/dist/mmd/server/index.js +6 -6
  156. package/dist/mmd/server/index.js.map +1 -1
  157. package/dist/mmd/server/index.mjs +6 -6
  158. package/dist/mmd/server/index.mjs.map +1 -1
  159. package/dist/music/index.js +16 -16
  160. package/dist/music/index.mjs +2 -2
  161. package/dist/music/server/index.js +8 -8
  162. package/dist/music/server/index.mjs +1 -1
  163. package/dist/request/index.js +2 -2
  164. package/dist/request/index.js.map +1 -1
  165. package/dist/request/index.mjs +2 -2
  166. package/dist/request/index.mjs.map +1 -1
  167. package/dist/storage/index.js +11 -11
  168. package/dist/storage/index.mjs +2 -2
  169. package/dist/testYourself/admin/index.js +3 -3
  170. package/dist/testYourself/admin/index.mjs +1 -1
  171. package/dist/testYourself/index.js +22 -22
  172. package/dist/testYourself/index.js.map +1 -1
  173. package/dist/testYourself/index.mjs +14 -14
  174. package/dist/testYourself/index.mjs.map +1 -1
  175. package/dist/testYourself/server/index.js +4 -4
  176. package/dist/testYourself/server/index.mjs +1 -1
  177. package/dist/universalExport/index.d.mts +3 -3
  178. package/dist/universalExport/index.d.ts +3 -3
  179. package/dist/universalExport/index.js +48 -47
  180. package/dist/universalExport/index.js.map +1 -1
  181. package/dist/universalExport/index.mjs +48 -47
  182. package/dist/universalExport/index.mjs.map +1 -1
  183. package/dist/universalExport/server/index.js +29 -29
  184. package/dist/universalExport/server/index.js.map +1 -1
  185. package/dist/universalExport/server/index.mjs +28 -28
  186. package/dist/universalExport/server/index.mjs.map +1 -1
  187. package/dist/universalFile/index.d.mts +3 -3
  188. package/dist/universalFile/index.d.ts +3 -3
  189. package/dist/universalFile/index.js +73 -72
  190. package/dist/universalFile/index.js.map +1 -1
  191. package/dist/universalFile/index.mjs +73 -72
  192. package/dist/universalFile/index.mjs.map +1 -1
  193. package/dist/universalFile/server/index.js +258 -260
  194. package/dist/universalFile/server/index.js.map +1 -1
  195. package/dist/universalFile/server/index.mjs +244 -246
  196. package/dist/universalFile/server/index.mjs.map +1 -1
  197. package/dist/utils/index.js +11 -11
  198. package/dist/utils/index.mjs +2 -2
  199. package/package.json +1 -1
  200. package/dist/AliyunOSSProvider-I7I5YGLB.mjs +0 -6
  201. package/dist/AliyunOSSProvider-L7JWMKS4.js +0 -15
  202. package/dist/ConfigService-7MEZXKJ5.js +0 -21
  203. package/dist/ConfigService-BV57YYFW.mjs +0 -4
  204. package/dist/LocalStorageProvider-FVLLHBHO.mjs +0 -6
  205. package/dist/LocalStorageProvider-NBNHHWLY.js +0 -15
  206. package/dist/PMXParser-L6IWHL4I.mjs +0 -4
  207. package/dist/PMXParser-YBS3B6HM.js +0 -13
  208. package/dist/chunk-3BGPZN4X.mjs.map +0 -1
  209. package/dist/chunk-3WOAPLEG.mjs.map +0 -1
  210. package/dist/chunk-5GCHAXY5.js.map +0 -1
  211. package/dist/chunk-6PRFP5EG.js.map +0 -1
  212. package/dist/chunk-6YKMCPQI.mjs.map +0 -1
  213. package/dist/chunk-7Z5LLJ3A.js.map +0 -1
  214. package/dist/chunk-A3UP56MS.js.map +0 -1
  215. package/dist/chunk-CD77U7LZ.js.map +0 -1
  216. package/dist/chunk-CLKKZSPZ.js.map +0 -1
  217. package/dist/chunk-CNTILN5J.mjs.map +0 -1
  218. package/dist/chunk-DUHZ7VZP.js.map +0 -1
  219. package/dist/chunk-DW2ZTOCV.js.map +0 -1
  220. package/dist/chunk-E7RGBAYJ.js.map +0 -1
  221. package/dist/chunk-GSTLV3MB.mjs.map +0 -1
  222. package/dist/chunk-JZXJQMVE.js.map +0 -1
  223. package/dist/chunk-KQGP6BTS.mjs.map +0 -1
  224. package/dist/chunk-LFG6FPM5.mjs.map +0 -1
  225. package/dist/chunk-LX4XX6W7.js.map +0 -1
  226. package/dist/chunk-MW4BCIZC.mjs.map +0 -1
  227. package/dist/chunk-OCR5DS4C.mjs.map +0 -1
  228. package/dist/chunk-OLHGZXN3.mjs.map +0 -1
  229. package/dist/chunk-QAT2RWAO.mjs.map +0 -1
  230. package/dist/chunk-QU5OT4DF.js.map +0 -1
  231. package/dist/chunk-T5OZHYVM.mjs.map +0 -1
  232. package/dist/chunk-TFQF2HDO.mjs.map +0 -1
  233. package/dist/chunk-TKCYPDWU.js.map +0 -1
  234. package/dist/chunk-TOC5FSHP.js.map +0 -1
  235. package/dist/chunk-UOFTHYIH.js.map +0 -1
  236. package/dist/chunk-VRTRSEEH.mjs.map +0 -1
  237. package/dist/chunk-WSNM4EU5.mjs.map +0 -1
@@ -3,6 +3,7 @@
3
3
  var chunkUIYKZ73N_js = require('../chunk-UIYKZ73N.js');
4
4
  require('../chunk-DGUM43GV.js');
5
5
  var React = require('react');
6
+ var clsx = require('clsx');
6
7
  var lucideReact = require('lucide-react');
7
8
 
8
9
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -35,19 +36,19 @@ var EXPORT_FORMAT_MIME_TYPES = {
35
36
  var API_BASE_PATH = "/api/universal-export";
36
37
  var API_ENDPOINTS = {
37
38
  /** 获取配置列表 */
38
- GET_CONFIGS: `${API_BASE_PATH}/configs`,
39
+ GET_CONFIGS: API_BASE_PATH + "/configs",
39
40
  /** 创建配置 */
40
- CREATE_CONFIG: `${API_BASE_PATH}/configs`,
41
+ CREATE_CONFIG: API_BASE_PATH + "/configs",
41
42
  /** 更新配置 */
42
- UPDATE_CONFIG: (configId) => `${API_BASE_PATH}/configs/${configId}`,
43
+ UPDATE_CONFIG: (configId) => API_BASE_PATH + "/configs/" + configId,
43
44
  /** 删除配置 */
44
- DELETE_CONFIG: (configId) => `${API_BASE_PATH}/configs/${configId}`,
45
+ DELETE_CONFIG: (configId) => API_BASE_PATH + "/configs/" + configId,
45
46
  /** 触发导出 */
46
- EXPORT_DATA: `${API_BASE_PATH}/export`,
47
+ EXPORT_DATA: API_BASE_PATH + "/export",
47
48
  /** 查询导出进度 */
48
- GET_PROGRESS: (exportId) => `${API_BASE_PATH}/export/${exportId}/progress`,
49
+ GET_PROGRESS: (exportId) => API_BASE_PATH + "/export/" + exportId + "/progress",
49
50
  /** 下载导出文件 */
50
- DOWNLOAD_FILE: (exportId) => `${API_BASE_PATH}/export/${exportId}/download`
51
+ DOWNLOAD_FILE: (exportId) => API_BASE_PATH + "/export/" + exportId + "/download"
51
52
  };
52
53
  var ERROR_CODES = {
53
54
  /** 导出配置错误 */
@@ -72,7 +73,7 @@ function generateExportFileName(template, format) {
72
73
  const dateStr = now.toISOString().split("T")[0] || "";
73
74
  const timeStr = (now.toTimeString().split(" ")[0] || "").replace(/:/g, "-");
74
75
  const extension = EXPORT_FORMAT_EXTENSIONS[format];
75
- return template.replace("{date}", dateStr).replace("{time}", timeStr).replace("{timestamp}", now.getTime().toString()) + `.${extension}`;
76
+ return template.replace("{date}", dateStr).replace("{time}", timeStr).replace("{timestamp}", now.getTime().toString()) + "." + extension;
76
77
  }
77
78
  function validateFileName(fileName) {
78
79
  const invalidChars = /[<>:"|?*\/\\]/;
@@ -90,7 +91,7 @@ function sanitizeFileName(fileName) {
90
91
  function escapeCSVField(value, delimiter = ",") {
91
92
  const valueStr = String(value || "");
92
93
  if (valueStr.includes(delimiter) || valueStr.includes('"') || valueStr.includes("\n")) {
93
- return `"${valueStr.replace(/"/g, '""')}"`;
94
+ return '"' + valueStr.replace(/"/g, '""') + '"';
94
95
  }
95
96
  return valueStr;
96
97
  }
@@ -123,12 +124,12 @@ var DEFAULT_FORMATTERS = {
123
124
  // 货币格式化
124
125
  currency: (value) => {
125
126
  if (value === null || value === void 0) return "";
126
- return `\xA5${Number(value).toFixed(2)}`;
127
+ return "\xA5" + Number(value).toFixed(2);
127
128
  },
128
129
  // 百分比格式化
129
130
  percentage: (value) => {
130
131
  if (value === null || value === void 0) return "";
131
- return `${(Number(value) * 100).toFixed(2)}%`;
132
+ return (Number(value) * 100).toFixed(2) + "%";
132
133
  },
133
134
  // 布尔值格式化
134
135
  boolean: (value) => {
@@ -197,24 +198,24 @@ function formatFileSize(bytes) {
197
198
  const units = ["B", "KB", "MB", "GB", "TB"];
198
199
  const k = 1024;
199
200
  const i = Math.floor(Math.log(bytes) / Math.log(k));
200
- return `${(bytes / Math.pow(k, i)).toFixed(2)} ${units[i]}`;
201
+ return (bytes / Math.pow(k, i)).toFixed(2) + " " + units[i];
201
202
  }
202
203
  function formatDuration(milliseconds) {
203
204
  if (milliseconds < 1e3) {
204
- return `${milliseconds}ms`;
205
+ return milliseconds + "ms";
205
206
  }
206
207
  const seconds = Math.floor(milliseconds / 1e3);
207
208
  if (seconds < 60) {
208
- return `${seconds}\u79D2`;
209
+ return seconds + "\u79D2";
209
210
  }
210
211
  const minutes = Math.floor(seconds / 60);
211
212
  const remainingSeconds = seconds % 60;
212
213
  if (minutes < 60) {
213
- return remainingSeconds > 0 ? `${minutes}\u5206${remainingSeconds}\u79D2` : `${minutes}\u5206\u949F`;
214
+ return remainingSeconds > 0 ? minutes + "\u5206" + remainingSeconds + "\u79D2" : minutes + "\u5206\u949F";
214
215
  }
215
216
  const hours = Math.floor(minutes / 60);
216
217
  const remainingMinutes = minutes % 60;
217
- return remainingMinutes > 0 ? `${hours}\u5C0F\u65F6${remainingMinutes}\u5206\u949F` : `${hours}\u5C0F\u65F6`;
218
+ return remainingMinutes > 0 ? hours + "\u5C0F\u65F6" + remainingMinutes + "\u5206\u949F" : hours + "\u5C0F\u65F6";
218
219
  }
219
220
  function estimateEndTime(startTime, processedRows, totalRows) {
220
221
  if (processedRows === 0 || totalRows === 0) {
@@ -279,21 +280,21 @@ var UniversalExportClient = class {
279
280
  if (businessId) {
280
281
  params.append("businessId", businessId);
281
282
  }
282
- const url = `${this.config.baseUrl}${API_ENDPOINTS.GET_CONFIGS}?${params}`;
283
+ const url = this.config.baseUrl + API_ENDPOINTS.GET_CONFIGS + "?" + params;
283
284
  try {
284
285
  const response = await this.fetchWithTimeout(url, {
285
286
  method: "GET",
286
287
  headers: this.getHeaders()
287
288
  });
288
289
  if (!response.ok) {
289
- throw new Error(`\u83B7\u53D6\u914D\u7F6E\u5931\u8D25: ${response.statusText}`);
290
+ throw new Error("\u83B7\u53D6\u914D\u7F6E\u5931\u8D25: " + response.statusText);
290
291
  }
291
292
  const data = await response.json();
292
293
  return this.transformConfigsFromAPI(data.configs || []);
293
294
  } catch (error) {
294
295
  throw createExportError(
295
296
  ERROR_CODES.NETWORK_ERROR,
296
- `\u83B7\u53D6\u5BFC\u51FA\u914D\u7F6E\u5931\u8D25: ${formatErrorMessage(error)}`,
297
+ "\u83B7\u53D6\u5BFC\u51FA\u914D\u7F6E\u5931\u8D25: " + formatErrorMessage(error),
297
298
  { moduleId, businessId, originalError: error }
298
299
  );
299
300
  }
@@ -302,7 +303,7 @@ var UniversalExportClient = class {
302
303
  * 创建导出配置
303
304
  */
304
305
  async createConfig(config) {
305
- const url = `${this.config.baseUrl}${API_ENDPOINTS.CREATE_CONFIG}`;
306
+ const url = this.config.baseUrl + API_ENDPOINTS.CREATE_CONFIG;
306
307
  try {
307
308
  const response = await this.fetchWithTimeout(url, {
308
309
  method: "POST",
@@ -313,14 +314,14 @@ var UniversalExportClient = class {
313
314
  body: JSON.stringify(config)
314
315
  });
315
316
  if (!response.ok) {
316
- throw new Error(`\u521B\u5EFA\u914D\u7F6E\u5931\u8D25: ${response.statusText}`);
317
+ throw new Error("\u521B\u5EFA\u914D\u7F6E\u5931\u8D25: " + response.statusText);
317
318
  }
318
319
  const data = await response.json();
319
320
  return this.transformConfigFromAPI(data.config);
320
321
  } catch (error) {
321
322
  throw createExportError(
322
323
  ERROR_CODES.NETWORK_ERROR,
323
- `\u521B\u5EFA\u5BFC\u51FA\u914D\u7F6E\u5931\u8D25: ${formatErrorMessage(error)}`,
324
+ "\u521B\u5EFA\u5BFC\u51FA\u914D\u7F6E\u5931\u8D25: " + formatErrorMessage(error),
324
325
  { config, originalError: error }
325
326
  );
326
327
  }
@@ -329,7 +330,7 @@ var UniversalExportClient = class {
329
330
  * 更新导出配置
330
331
  */
331
332
  async updateConfig(configId, updates) {
332
- const url = `${this.config.baseUrl}${API_ENDPOINTS.UPDATE_CONFIG(configId)}`;
333
+ const url = this.config.baseUrl + API_ENDPOINTS.UPDATE_CONFIG(configId);
333
334
  try {
334
335
  const response = await this.fetchWithTimeout(url, {
335
336
  method: "PUT",
@@ -340,14 +341,14 @@ var UniversalExportClient = class {
340
341
  body: JSON.stringify(updates)
341
342
  });
342
343
  if (!response.ok) {
343
- throw new Error(`\u66F4\u65B0\u914D\u7F6E\u5931\u8D25: ${response.statusText}`);
344
+ throw new Error("\u66F4\u65B0\u914D\u7F6E\u5931\u8D25: " + response.statusText);
344
345
  }
345
346
  const data = await response.json();
346
347
  return this.transformConfigFromAPI(data.config);
347
348
  } catch (error) {
348
349
  throw createExportError(
349
350
  ERROR_CODES.NETWORK_ERROR,
350
- `\u66F4\u65B0\u5BFC\u51FA\u914D\u7F6E\u5931\u8D25: ${formatErrorMessage(error)}`,
351
+ "\u66F4\u65B0\u5BFC\u51FA\u914D\u7F6E\u5931\u8D25: " + formatErrorMessage(error),
351
352
  { configId, updates, originalError: error }
352
353
  );
353
354
  }
@@ -356,19 +357,19 @@ var UniversalExportClient = class {
356
357
  * 删除导出配置
357
358
  */
358
359
  async deleteConfig(configId) {
359
- const url = `${this.config.baseUrl}${API_ENDPOINTS.DELETE_CONFIG(configId)}`;
360
+ const url = this.config.baseUrl + API_ENDPOINTS.DELETE_CONFIG(configId);
360
361
  try {
361
362
  const response = await this.fetchWithTimeout(url, {
362
363
  method: "DELETE",
363
364
  headers: this.getHeaders()
364
365
  });
365
366
  if (!response.ok) {
366
- throw new Error(`\u5220\u9664\u914D\u7F6E\u5931\u8D25: ${response.statusText}`);
367
+ throw new Error("\u5220\u9664\u914D\u7F6E\u5931\u8D25: " + response.statusText);
367
368
  }
368
369
  } catch (error) {
369
370
  throw createExportError(
370
371
  ERROR_CODES.NETWORK_ERROR,
371
- `\u5220\u9664\u5BFC\u51FA\u914D\u7F6E\u5931\u8D25: ${formatErrorMessage(error)}`,
372
+ "\u5220\u9664\u5BFC\u51FA\u914D\u7F6E\u5931\u8D25: " + formatErrorMessage(error),
372
373
  { configId, originalError: error }
373
374
  );
374
375
  }
@@ -378,7 +379,7 @@ var UniversalExportClient = class {
378
379
  * 触发数据导出
379
380
  */
380
381
  async exportData(request) {
381
- const url = `${this.config.baseUrl}${API_ENDPOINTS.EXPORT_DATA}`;
382
+ const url = this.config.baseUrl + API_ENDPOINTS.EXPORT_DATA;
382
383
  try {
383
384
  const isDataArray = Array.isArray(request.dataSource);
384
385
  const requestBody = {
@@ -411,14 +412,14 @@ var UniversalExportClient = class {
411
412
  } catch {
412
413
  errorData = { message: errorText };
413
414
  }
414
- throw new Error(errorData.message || `\u5BFC\u51FA\u5931\u8D25: ${response.statusText}`);
415
+ throw new Error(errorData.message || "\u5BFC\u51FA\u5931\u8D25: " + response.statusText);
415
416
  }
416
417
  const data = await response.json();
417
418
  return this.transformExportResultFromAPI(data.result);
418
419
  } catch (error) {
419
420
  throw createExportError(
420
421
  ERROR_CODES.EXPORT_DATA_ERROR,
421
- `\u6570\u636E\u5BFC\u51FA\u5931\u8D25: ${formatErrorMessage(error)}`,
422
+ "\u6570\u636E\u5BFC\u51FA\u5931\u8D25: " + formatErrorMessage(error),
422
423
  { request, originalError: error }
423
424
  );
424
425
  }
@@ -427,21 +428,21 @@ var UniversalExportClient = class {
427
428
  * 查询导出进度
428
429
  */
429
430
  async getExportProgress(exportId) {
430
- const url = `${this.config.baseUrl}${API_ENDPOINTS.GET_PROGRESS(exportId)}`;
431
+ const url = this.config.baseUrl + API_ENDPOINTS.GET_PROGRESS(exportId);
431
432
  try {
432
433
  const response = await this.fetchWithTimeout(url, {
433
434
  method: "GET",
434
435
  headers: this.getHeaders()
435
436
  });
436
437
  if (!response.ok) {
437
- throw new Error(`\u83B7\u53D6\u5BFC\u51FA\u8FDB\u5EA6\u5931\u8D25: ${response.statusText}`);
438
+ throw new Error("\u83B7\u53D6\u5BFC\u51FA\u8FDB\u5EA6\u5931\u8D25: " + response.statusText);
438
439
  }
439
440
  const data = await response.json();
440
441
  return this.transformProgressFromAPI(data.progress);
441
442
  } catch (error) {
442
443
  throw createExportError(
443
444
  ERROR_CODES.NETWORK_ERROR,
444
- `\u83B7\u53D6\u5BFC\u51FA\u8FDB\u5EA6\u5931\u8D25: ${formatErrorMessage(error)}`,
445
+ "\u83B7\u53D6\u5BFC\u51FA\u8FDB\u5EA6\u5931\u8D25: " + formatErrorMessage(error),
445
446
  { exportId, originalError: error }
446
447
  );
447
448
  }
@@ -450,20 +451,20 @@ var UniversalExportClient = class {
450
451
  * 下载导出文件
451
452
  */
452
453
  async downloadExportFile(exportId) {
453
- const url = `${this.config.baseUrl}${API_ENDPOINTS.DOWNLOAD_FILE(exportId)}`;
454
+ const url = this.config.baseUrl + API_ENDPOINTS.DOWNLOAD_FILE(exportId);
454
455
  try {
455
456
  const response = await this.fetchWithTimeout(url, {
456
457
  method: "GET",
457
458
  headers: this.getHeaders()
458
459
  });
459
460
  if (!response.ok) {
460
- throw new Error(`\u4E0B\u8F7D\u6587\u4EF6\u5931\u8D25: ${response.statusText}`);
461
+ throw new Error("\u4E0B\u8F7D\u6587\u4EF6\u5931\u8D25: " + response.statusText);
461
462
  }
462
463
  return await response.blob();
463
464
  } catch (error) {
464
465
  throw createExportError(
465
466
  ERROR_CODES.NETWORK_ERROR,
466
- `\u4E0B\u8F7D\u5BFC\u51FA\u6587\u4EF6\u5931\u8D25: ${formatErrorMessage(error)}`,
467
+ "\u4E0B\u8F7D\u5BFC\u51FA\u6587\u4EF6\u5931\u8D25: " + formatErrorMessage(error),
467
468
  { exportId, originalError: error }
468
469
  );
469
470
  }
@@ -634,7 +635,7 @@ var ExportConfigEditor = ({
634
635
  if (businessId) {
635
636
  params.set("businessId", businessId);
636
637
  }
637
- const response = await fetch(`/api/universal-export/configs?${params.toString()}`);
638
+ const response = await fetch("/api/universal-export/configs?" + params.toString());
638
639
  if (response.ok) {
639
640
  const data = await response.json();
640
641
  setSavedConfigs(data.configs || []);
@@ -648,7 +649,7 @@ var ExportConfigEditor = ({
648
649
  const deleteConfig = React.useCallback(async (configId) => {
649
650
  setDeletingConfigId(configId);
650
651
  try {
651
- const response = await fetch(`/api/universal-export/configs/${configId}`, {
652
+ const response = await fetch("/api/universal-export/configs/" + configId, {
652
653
  method: "DELETE"
653
654
  });
654
655
  if (response.ok) {
@@ -674,7 +675,7 @@ var ExportConfigEditor = ({
674
675
  if (!visible) return;
675
676
  const scrollY = window.scrollY;
676
677
  document.body.style.position = "fixed";
677
- document.body.style.top = `-${scrollY}px`;
678
+ document.body.style.top = "-" + scrollY + "px";
678
679
  document.body.style.left = "0";
679
680
  document.body.style.right = "0";
680
681
  document.body.style.overflow = "hidden";
@@ -843,7 +844,7 @@ var ExportConfigEditor = ({
843
844
  return /* @__PURE__ */ React__default.default.createElement(
844
845
  "div",
845
846
  {
846
- className: `fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-[50] p-4 ${className}`,
847
+ className: clsx.clsx("fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-[50] p-4", className),
847
848
  onClick: onCancel
848
849
  },
849
850
  /* @__PURE__ */ React__default.default.createElement(
@@ -858,7 +859,7 @@ var ExportConfigEditor = ({
858
859
  {
859
860
  key: tab.id,
860
861
  onClick: () => setActiveTab(tab.id),
861
- className: `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"}`
862
+ 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")
862
863
  },
863
864
  tab.icon,
864
865
  /* @__PURE__ */ React__default.default.createElement("span", null, tab.label)
@@ -1030,7 +1031,7 @@ var UniversalExportButton = ({
1030
1031
  if ("message" in error && typeof error.message === "string") {
1031
1032
  errorMessage = error.message;
1032
1033
  } else if ("code" in error && "message" in error) {
1033
- errorMessage = `${error.code}: ${error.message}`;
1034
+ errorMessage = error.code + ": " + error.message;
1034
1035
  }
1035
1036
  } else if (typeof error === "string") {
1036
1037
  errorMessage = error;
@@ -1084,7 +1085,7 @@ var UniversalExportButton = ({
1084
1085
  "div",
1085
1086
  {
1086
1087
  className: "bg-blue-600 h-2 rounded-full transition-all duration-300",
1087
- style: { width: `${progress}%` }
1088
+ style: { width: progress + "%" }
1088
1089
  }
1089
1090
  ))));
1090
1091
  };
@@ -1129,13 +1130,13 @@ var UniversalExportButton = ({
1129
1130
  ));
1130
1131
  };
1131
1132
  const buttonStyle = BUTTON_STYLES[variant][size];
1132
- 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}`;
1133
- return /* @__PURE__ */ React__default.default.createElement("div", { className: `relative ${className}` }, /* @__PURE__ */ React__default.default.createElement(
1133
+ 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;
1134
+ return /* @__PURE__ */ React__default.default.createElement("div", { className: clsx.clsx("relative", className) }, /* @__PURE__ */ React__default.default.createElement(
1134
1135
  "button",
1135
1136
  {
1136
1137
  onClick: () => setShowDropdown(!showDropdown),
1137
1138
  disabled: disabled || isExporting,
1138
- className: `${baseClasses} ${isExporting ? "cursor-not-allowed" : ""}`
1139
+ className: clsx.clsx(baseClasses, isExporting ? "cursor-not-allowed" : "")
1139
1140
  },
1140
1141
  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" }),
1141
1142
  /* @__PURE__ */ React__default.default.createElement("span", null, isExporting ? "\u5BFC\u51FA\u4E2D..." : buttonText),