@qxs-bns/components 0.0.89 → 0.0.91

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 (799) hide show
  1. package/README.md +11 -15
  2. package/es/base/define.mjs +2 -0
  3. package/es/base/define.mjs.map +1 -0
  4. package/es/base/uid.mjs +2 -0
  5. package/es/base/uid.mjs.map +1 -0
  6. package/es/data-chart.mjs +142 -0
  7. package/es/data-chart.mjs.map +1 -0
  8. package/es/editor/blocksuite-editor.mjs +1115 -0
  9. package/es/editor/blocksuite-editor.mjs.map +1 -0
  10. package/es/editor/content-format.mjs +2 -0
  11. package/es/editor/content-format.mjs.map +1 -0
  12. package/es/editor/index.mjs +2 -0
  13. package/es/editor/index.mjs.map +1 -0
  14. package/es/editor/toolbar.mjs +2 -0
  15. package/es/editor/toolbar.mjs.map +1 -0
  16. package/es/entry-data-chart.mjs +2 -0
  17. package/es/entry-data-chart.mjs.map +1 -0
  18. package/es/entry-editor.mjs +2 -0
  19. package/es/entry-editor.mjs.map +1 -0
  20. package/es/entry-file-upload.mjs +2 -0
  21. package/es/entry-file-upload.mjs.map +1 -0
  22. package/es/entry-fixed-action-bar.mjs +2 -0
  23. package/es/entry-fixed-action-bar.mjs.map +1 -0
  24. package/es/entry-icon.mjs +2 -0
  25. package/es/entry-icon.mjs.map +1 -0
  26. package/es/entry-image-upload.mjs +2 -0
  27. package/es/entry-image-upload.mjs.map +1 -0
  28. package/es/entry-photo-crop-tool.mjs +2 -0
  29. package/es/entry-photo-crop-tool.mjs.map +1 -0
  30. package/es/entry-subject.mjs +2 -0
  31. package/es/entry-subject.mjs.map +1 -0
  32. package/es/file-upload.mjs +157 -0
  33. package/es/file-upload.mjs.map +1 -0
  34. package/es/fixed-action-bar.mjs +39 -0
  35. package/es/fixed-action-bar.mjs.map +1 -0
  36. package/es/icon.mjs +20 -0
  37. package/es/icon.mjs.map +1 -0
  38. package/es/image-upload.mjs +333 -0
  39. package/es/image-upload.mjs.map +1 -0
  40. package/es/index.mjs +1 -1
  41. package/es/index.mjs.map +1 -1
  42. package/es/node_modules/.pnpm/@iconify_vue@5.0.0_vue@3.5.18_typescript@5.9.2_/node_modules/@iconify/vue/dist/iconify.mjs +1 -1
  43. package/es/node_modules/.pnpm/@iconify_vue@5.0.0_vue@3.5.18_typescript@5.9.2_/node_modules/@iconify/vue/dist/iconify.mjs.map +1 -1
  44. package/es/node_modules/.pnpm/marked@17.0.6/node_modules/marked/lib/marked.esm.mjs +2 -0
  45. package/es/node_modules/.pnpm/marked@17.0.6/node_modules/marked/lib/marked.esm.mjs.map +1 -0
  46. package/es/node_modules/.pnpm/turndown-plugin-gfm@1.0.2/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.mjs +2 -0
  47. package/es/node_modules/.pnpm/turndown-plugin-gfm@1.0.2/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.mjs.map +1 -0
  48. package/es/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.es.mjs +2 -0
  49. package/es/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.es.mjs.map +1 -0
  50. package/es/package.json.mjs +1 -1
  51. package/es/photo-crop-tool.mjs +147 -0
  52. package/es/photo-crop-tool.mjs.map +1 -0
  53. package/es/src/alert/index.mjs +2 -0
  54. package/es/src/alert/index.mjs.map +1 -0
  55. package/es/src/alert/src/alert.mjs +2 -0
  56. package/es/src/alert/src/alert.mjs.map +1 -0
  57. package/es/src/components.mjs +1 -1
  58. package/es/src/data-chart/index.mjs +1 -1
  59. package/es/src/data-chart/index.mjs.map +1 -1
  60. package/es/src/dialog/src/dialog.mjs +2 -0
  61. package/es/src/dialog/src/dialog.mjs.map +1 -0
  62. package/es/src/feedback-plugin/index.mjs +2 -0
  63. package/es/src/feedback-plugin/index.mjs.map +1 -0
  64. package/es/src/file-upload/index.mjs +1 -1
  65. package/es/src/file-upload/index.mjs.map +1 -1
  66. package/es/src/image-upload/index.mjs +1 -1
  67. package/es/src/image-upload/index.mjs.map +1 -1
  68. package/es/src/make-installer.mjs +1 -1
  69. package/es/src/make-installer.mjs.map +1 -1
  70. package/es/src/message/src/message.mjs +2 -0
  71. package/es/src/message/src/message.mjs.map +1 -0
  72. package/es/src/photo-crop-tool/index.mjs +1 -1
  73. package/es/src/photo-crop-tool/index.mjs.map +1 -1
  74. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue.mjs +1 -1
  75. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue.mjs.map +1 -1
  76. package/es/src/ui/button/index.mjs +2 -0
  77. package/es/src/ui/button/index.mjs.map +1 -0
  78. package/es/src/ui/checkbox/index.mjs +2 -0
  79. package/es/src/ui/checkbox/index.mjs.map +1 -0
  80. package/es/src/ui/dialog/index.mjs +2 -0
  81. package/es/src/ui/dialog/index.mjs.map +1 -0
  82. package/es/src/ui/input/index.mjs +2 -0
  83. package/es/src/ui/input/index.mjs.map +1 -0
  84. package/es/src/ui/input-number/index.mjs +2 -0
  85. package/es/src/ui/input-number/index.mjs.map +1 -0
  86. package/es/src/ui/layout/index.mjs +2 -0
  87. package/es/src/ui/layout/index.mjs.map +1 -0
  88. package/es/src/ui/link/index.mjs +2 -0
  89. package/es/src/ui/link/index.mjs.map +1 -0
  90. package/es/src/ui/popover/index.mjs +2 -0
  91. package/es/src/ui/popover/index.mjs.map +1 -0
  92. package/es/src/ui/radio/index.mjs +2 -0
  93. package/es/src/ui/radio/index.mjs.map +1 -0
  94. package/es/src/ui/scrollbar/index.mjs +2 -0
  95. package/es/src/ui/scrollbar/index.mjs.map +1 -0
  96. package/es/src/ui/select/index.mjs +2 -0
  97. package/es/src/ui/select/index.mjs.map +1 -0
  98. package/es/src/ui/table/index.mjs +2 -0
  99. package/es/src/ui/table/index.mjs.map +1 -0
  100. package/es/src/ui/tag/index.mjs +2 -0
  101. package/es/src/ui/tag/index.mjs.map +1 -0
  102. package/es/src/wc-bridge.mjs +2 -0
  103. package/es/src/wc-bridge.mjs.map +1 -0
  104. package/es/subject/action.mjs +171 -0
  105. package/es/subject/action.mjs.map +1 -0
  106. package/es/subject/blank-fill.mjs +385 -0
  107. package/es/subject/blank-fill.mjs.map +1 -0
  108. package/es/subject/draft.mjs +2 -0
  109. package/es/subject/draft.mjs.map +1 -0
  110. package/es/subject/layout.mjs +21 -0
  111. package/es/subject/layout.mjs.map +1 -0
  112. package/es/subject/page-end.mjs +28 -0
  113. package/es/subject/page-end.mjs.map +1 -0
  114. package/es/subject/pagination.mjs +2 -0
  115. package/es/subject/pagination.mjs.map +1 -0
  116. package/es/subject/runtime.mjs +2 -0
  117. package/es/subject/runtime.mjs.map +1 -0
  118. package/es/subject/scale.mjs +267 -0
  119. package/es/subject/scale.mjs.map +1 -0
  120. package/es/subject/shared-methods.mjs +2 -0
  121. package/es/subject/shared-methods.mjs.map +1 -0
  122. package/es/subject/shared-styles.mjs +75 -0
  123. package/es/subject/shared-styles.mjs.map +1 -0
  124. package/es/subject/single.mjs +600 -0
  125. package/es/subject/single.mjs.map +1 -0
  126. package/es/subject/sort-controller.mjs +2 -0
  127. package/es/subject/sort-controller.mjs.map +1 -0
  128. package/es/subject/sortable.mjs +30 -0
  129. package/es/subject/sortable.mjs.map +1 -0
  130. package/es/subject/sorting-card.mjs +52 -0
  131. package/es/subject/sorting-card.mjs.map +1 -0
  132. package/es/subject/text-fill.mjs +395 -0
  133. package/es/subject/text-fill.mjs.map +1 -0
  134. package/es/subject/title-prefix.mjs +2 -0
  135. package/es/subject/title-prefix.mjs.map +1 -0
  136. package/es/subject/types.mjs +2 -0
  137. package/es/subject/types.mjs.map +1 -0
  138. package/lib/base/define.cjs +2 -0
  139. package/lib/base/define.cjs.map +1 -0
  140. package/lib/base/uid.cjs +2 -0
  141. package/lib/base/uid.cjs.map +1 -0
  142. package/lib/data-chart.cjs +142 -0
  143. package/lib/data-chart.cjs.map +1 -0
  144. package/lib/editor/blocksuite-editor.cjs +1115 -0
  145. package/lib/editor/blocksuite-editor.cjs.map +1 -0
  146. package/lib/editor/content-format.cjs +2 -0
  147. package/lib/editor/content-format.cjs.map +1 -0
  148. package/lib/editor/index.cjs +2 -0
  149. package/lib/editor/index.cjs.map +1 -0
  150. package/lib/editor/toolbar.cjs +2 -0
  151. package/lib/editor/toolbar.cjs.map +1 -0
  152. package/lib/entry-data-chart.cjs +2 -0
  153. package/lib/entry-data-chart.cjs.map +1 -0
  154. package/lib/entry-editor.cjs +2 -0
  155. package/lib/entry-editor.cjs.map +1 -0
  156. package/lib/entry-file-upload.cjs +2 -0
  157. package/lib/entry-file-upload.cjs.map +1 -0
  158. package/lib/entry-fixed-action-bar.cjs +2 -0
  159. package/lib/entry-fixed-action-bar.cjs.map +1 -0
  160. package/lib/entry-icon.cjs +2 -0
  161. package/lib/entry-icon.cjs.map +1 -0
  162. package/lib/entry-image-upload.cjs +2 -0
  163. package/lib/entry-image-upload.cjs.map +1 -0
  164. package/lib/entry-photo-crop-tool.cjs +2 -0
  165. package/lib/entry-photo-crop-tool.cjs.map +1 -0
  166. package/lib/entry-subject.cjs +2 -0
  167. package/lib/entry-subject.cjs.map +1 -0
  168. package/lib/file-upload.cjs +157 -0
  169. package/lib/file-upload.cjs.map +1 -0
  170. package/lib/fixed-action-bar.cjs +39 -0
  171. package/lib/fixed-action-bar.cjs.map +1 -0
  172. package/lib/icon.cjs +20 -0
  173. package/lib/icon.cjs.map +1 -0
  174. package/lib/image-upload.cjs +333 -0
  175. package/lib/image-upload.cjs.map +1 -0
  176. package/lib/index.cjs +1 -1
  177. package/lib/index.cjs.map +1 -1
  178. package/lib/node_modules/.pnpm/@iconify_vue@5.0.0_vue@3.5.18_typescript@5.9.2_/node_modules/@iconify/vue/dist/iconify.cjs +1 -1
  179. package/lib/node_modules/.pnpm/@iconify_vue@5.0.0_vue@3.5.18_typescript@5.9.2_/node_modules/@iconify/vue/dist/iconify.cjs.map +1 -1
  180. package/lib/node_modules/.pnpm/marked@17.0.6/node_modules/marked/lib/marked.esm.cjs +2 -0
  181. package/lib/node_modules/.pnpm/marked@17.0.6/node_modules/marked/lib/marked.esm.cjs.map +1 -0
  182. package/lib/node_modules/.pnpm/turndown-plugin-gfm@1.0.2/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.cjs +2 -0
  183. package/lib/node_modules/.pnpm/turndown-plugin-gfm@1.0.2/node_modules/turndown-plugin-gfm/lib/turndown-plugin-gfm.es.cjs.map +1 -0
  184. package/lib/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.es.cjs +2 -0
  185. package/lib/node_modules/.pnpm/turndown@7.2.4/node_modules/turndown/lib/turndown.es.cjs.map +1 -0
  186. package/lib/package.json.cjs +1 -1
  187. package/lib/photo-crop-tool.cjs +147 -0
  188. package/lib/photo-crop-tool.cjs.map +1 -0
  189. package/lib/src/alert/index.cjs +2 -0
  190. package/lib/src/alert/index.cjs.map +1 -0
  191. package/lib/src/alert/src/alert.cjs +2 -0
  192. package/lib/src/alert/src/alert.cjs.map +1 -0
  193. package/lib/src/components.cjs +1 -1
  194. package/lib/src/data-chart/index.cjs +1 -1
  195. package/lib/src/data-chart/index.cjs.map +1 -1
  196. package/lib/src/dialog/src/dialog.cjs +2 -0
  197. package/lib/src/dialog/src/dialog.cjs.map +1 -0
  198. package/lib/src/feedback-plugin/index.cjs +2 -0
  199. package/lib/src/feedback-plugin/index.cjs.map +1 -0
  200. package/lib/src/file-upload/index.cjs +1 -1
  201. package/lib/src/file-upload/index.cjs.map +1 -1
  202. package/lib/src/image-upload/index.cjs +1 -1
  203. package/lib/src/image-upload/index.cjs.map +1 -1
  204. package/lib/src/make-installer.cjs +1 -1
  205. package/lib/src/make-installer.cjs.map +1 -1
  206. package/lib/src/message/src/message.cjs +2 -0
  207. package/lib/src/message/src/message.cjs.map +1 -0
  208. package/lib/src/photo-crop-tool/index.cjs +1 -1
  209. package/lib/src/photo-crop-tool/index.cjs.map +1 -1
  210. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue.cjs +1 -1
  211. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue.cjs.map +1 -1
  212. package/lib/src/ui/button/index.cjs +2 -0
  213. package/lib/src/ui/button/index.cjs.map +1 -0
  214. package/lib/src/ui/checkbox/index.cjs +2 -0
  215. package/lib/src/ui/checkbox/index.cjs.map +1 -0
  216. package/lib/src/ui/dialog/index.cjs +2 -0
  217. package/lib/src/ui/dialog/index.cjs.map +1 -0
  218. package/lib/src/ui/input/index.cjs +2 -0
  219. package/lib/src/ui/input/index.cjs.map +1 -0
  220. package/lib/src/ui/input-number/index.cjs +2 -0
  221. package/lib/src/ui/input-number/index.cjs.map +1 -0
  222. package/lib/src/ui/layout/index.cjs +2 -0
  223. package/lib/src/ui/layout/index.cjs.map +1 -0
  224. package/lib/src/ui/link/index.cjs +2 -0
  225. package/lib/src/ui/link/index.cjs.map +1 -0
  226. package/lib/src/ui/popover/index.cjs +2 -0
  227. package/lib/src/ui/popover/index.cjs.map +1 -0
  228. package/lib/src/ui/radio/index.cjs +2 -0
  229. package/lib/src/ui/radio/index.cjs.map +1 -0
  230. package/lib/src/ui/scrollbar/index.cjs +2 -0
  231. package/lib/src/ui/scrollbar/index.cjs.map +1 -0
  232. package/lib/src/ui/select/index.cjs +2 -0
  233. package/lib/src/ui/select/index.cjs.map +1 -0
  234. package/lib/src/ui/table/index.cjs +2 -0
  235. package/lib/src/ui/table/index.cjs.map +1 -0
  236. package/lib/src/ui/tag/index.cjs +2 -0
  237. package/lib/src/ui/tag/index.cjs.map +1 -0
  238. package/lib/src/wc-bridge.cjs +2 -0
  239. package/lib/src/wc-bridge.cjs.map +1 -0
  240. package/lib/subject/action.cjs +171 -0
  241. package/lib/subject/action.cjs.map +1 -0
  242. package/lib/subject/blank-fill.cjs +385 -0
  243. package/lib/subject/blank-fill.cjs.map +1 -0
  244. package/lib/subject/draft.cjs +2 -0
  245. package/lib/subject/draft.cjs.map +1 -0
  246. package/lib/subject/layout.cjs +21 -0
  247. package/lib/subject/layout.cjs.map +1 -0
  248. package/lib/subject/page-end.cjs +28 -0
  249. package/lib/subject/page-end.cjs.map +1 -0
  250. package/lib/subject/pagination.cjs +2 -0
  251. package/lib/subject/pagination.cjs.map +1 -0
  252. package/lib/subject/runtime.cjs +2 -0
  253. package/lib/subject/runtime.cjs.map +1 -0
  254. package/lib/subject/scale.cjs +267 -0
  255. package/lib/subject/scale.cjs.map +1 -0
  256. package/lib/subject/shared-methods.cjs +2 -0
  257. package/lib/subject/shared-methods.cjs.map +1 -0
  258. package/lib/subject/shared-styles.cjs +75 -0
  259. package/lib/subject/shared-styles.cjs.map +1 -0
  260. package/lib/subject/single.cjs +600 -0
  261. package/lib/subject/single.cjs.map +1 -0
  262. package/lib/subject/sort-controller.cjs +2 -0
  263. package/lib/subject/sort-controller.cjs.map +1 -0
  264. package/lib/subject/sortable.cjs +30 -0
  265. package/lib/subject/sortable.cjs.map +1 -0
  266. package/lib/subject/sorting-card.cjs +52 -0
  267. package/lib/subject/sorting-card.cjs.map +1 -0
  268. package/lib/subject/text-fill.cjs +395 -0
  269. package/lib/subject/text-fill.cjs.map +1 -0
  270. package/lib/subject/title-prefix.cjs +2 -0
  271. package/lib/subject/title-prefix.cjs.map +1 -0
  272. package/lib/subject/types.cjs +2 -0
  273. package/lib/subject/types.cjs.map +1 -0
  274. package/package.json +94 -41
  275. package/types/base/define.d.ts +1 -0
  276. package/types/base/uid.d.ts +1 -0
  277. package/types/data-chart.d.ts +65 -0
  278. package/types/editor/blocksuite-editor.d.ts +191 -0
  279. package/types/editor/content-format.d.ts +4 -0
  280. package/types/editor/index.d.ts +4 -0
  281. package/types/editor/toolbar.d.ts +6 -0
  282. package/types/editor/types.d.ts +42 -0
  283. package/types/entry-data-chart.d.ts +1 -0
  284. package/types/entry-editor.d.ts +2 -0
  285. package/types/entry-file-upload.d.ts +1 -0
  286. package/types/entry-fixed-action-bar.d.ts +1 -0
  287. package/types/entry-icon.d.ts +2 -0
  288. package/types/entry-image-upload.d.ts +1 -0
  289. package/types/entry-photo-crop-tool.d.ts +1 -0
  290. package/types/entry-subject.d.ts +2 -0
  291. package/types/file-upload.d.ts +48 -0
  292. package/types/fixed-action-bar.d.ts +25 -0
  293. package/types/icon.d.ts +30 -0
  294. package/types/image-upload.d.ts +68 -0
  295. package/types/index.d.ts +21 -6
  296. package/types/photo-crop-tool.d.ts +43 -0
  297. package/types/src/alert/index.d.ts +66 -0
  298. package/types/src/alert/index.d.ts.map +1 -0
  299. package/types/src/alert/src/alert.d.ts +73 -0
  300. package/types/src/alert/src/alert.d.ts.map +1 -0
  301. package/types/src/components.d.ts +4 -6
  302. package/types/src/components.d.ts.map +1 -1
  303. package/types/src/data-chart/index.d.ts +11 -27
  304. package/types/src/data-chart/index.d.ts.map +1 -1
  305. package/types/src/dialog/index.d.ts +3 -0
  306. package/types/src/dialog/index.d.ts.map +1 -0
  307. package/types/src/dialog/src/dialog.d.ts +25 -0
  308. package/types/src/dialog/src/dialog.d.ts.map +1 -0
  309. package/types/src/feedback-plugin/index.d.ts +9 -0
  310. package/types/src/feedback-plugin/index.d.ts.map +1 -0
  311. package/types/src/file-upload/index.d.ts +10 -28
  312. package/types/src/file-upload/index.d.ts.map +1 -1
  313. package/types/src/icon/index.d.ts +3 -3
  314. package/types/src/icon/src/icon.d.ts +3 -3
  315. package/types/src/image-upload/index.d.ts +10 -46
  316. package/types/src/image-upload/index.d.ts.map +1 -1
  317. package/types/src/make-installer.d.ts +1 -4
  318. package/types/src/make-installer.d.ts.map +1 -1
  319. package/types/src/message/index.d.ts +3 -0
  320. package/types/src/message/index.d.ts.map +1 -0
  321. package/types/src/message/src/message.d.ts +21 -0
  322. package/types/src/message/src/message.d.ts.map +1 -0
  323. package/types/src/message/src/toaster.vue.d.ts +3 -0
  324. package/types/src/message/src/toaster.vue.d.ts.map +1 -0
  325. package/types/src/photo-crop-tool/index.d.ts +9 -52
  326. package/types/src/photo-crop-tool/index.d.ts.map +1 -1
  327. package/types/src/subject-action/src/subject-action.vue.d.ts.map +1 -1
  328. package/types/src/subject-layout/index.d.ts +2 -2
  329. package/types/src/subject-layout/src/subject-layout.vue.d.ts +2 -2
  330. package/types/src/subject-layout/src/subject-layout.vue.d.ts.map +1 -1
  331. package/types/src/subject-list/src/components/subject-blank-fill.vue.d.ts.map +1 -1
  332. package/types/src/subject-list/src/components/subject-scale.vue.d.ts.map +1 -1
  333. package/types/src/subject-list/src/components/subject-single.vue.d.ts.map +1 -1
  334. package/types/src/subject-list/src/components/subject-text-fill.vue.d.ts.map +1 -1
  335. package/types/src/subject-list/src/subject-list.vue.d.ts.map +1 -1
  336. package/types/src/subject-type/src/subject-type.vue.d.ts.map +1 -1
  337. package/types/src/ui/button/index.d.ts +96 -0
  338. package/types/src/ui/button/index.d.ts.map +1 -0
  339. package/types/src/ui/checkbox/index.d.ts +111 -0
  340. package/types/src/ui/checkbox/index.d.ts.map +1 -0
  341. package/types/src/ui/dialog/index.d.ts +134 -0
  342. package/types/src/ui/dialog/index.d.ts.map +1 -0
  343. package/types/src/ui/index.d.ts +16 -0
  344. package/types/src/ui/index.d.ts.map +1 -0
  345. package/types/src/ui/input/index.d.ts +132 -0
  346. package/types/src/ui/input/index.d.ts.map +1 -0
  347. package/types/src/ui/input-number/index.d.ts +106 -0
  348. package/types/src/ui/input-number/index.d.ts.map +1 -0
  349. package/types/src/ui/layout/index.d.ts +373 -0
  350. package/types/src/ui/layout/index.d.ts.map +1 -0
  351. package/types/src/ui/link/index.d.ts +57 -0
  352. package/types/src/ui/link/index.d.ts.map +1 -0
  353. package/types/src/ui/popover/index.d.ts +89 -0
  354. package/types/src/ui/popover/index.d.ts.map +1 -0
  355. package/types/src/ui/radio/index.d.ts +84 -0
  356. package/types/src/ui/radio/index.d.ts.map +1 -0
  357. package/types/src/ui/scrollbar/index.d.ts +35 -0
  358. package/types/src/ui/scrollbar/index.d.ts.map +1 -0
  359. package/types/src/ui/select/index.d.ts +113 -0
  360. package/types/src/ui/select/index.d.ts.map +1 -0
  361. package/types/src/ui/table/index.d.ts +152 -0
  362. package/types/src/ui/table/index.d.ts.map +1 -0
  363. package/types/src/ui/tag/index.d.ts +69 -0
  364. package/types/src/ui/tag/index.d.ts.map +1 -0
  365. package/types/src/wc-bridge.d.ts +23 -0
  366. package/types/src/wc-bridge.d.ts.map +1 -0
  367. package/types/subject/action.d.ts +37 -0
  368. package/types/subject/blank-fill.d.ts +79 -0
  369. package/types/subject/draft.d.ts +63 -0
  370. package/types/subject/index.d.ts +13 -0
  371. package/types/subject/layout.d.ts +7 -0
  372. package/types/subject/page-end.d.ts +16 -0
  373. package/types/subject/pagination.d.ts +23 -0
  374. package/types/subject/runtime.d.ts +12 -0
  375. package/types/subject/scale.d.ts +55 -0
  376. package/types/subject/shared-methods.d.ts +8 -0
  377. package/types/subject/shared-styles.d.ts +5 -0
  378. package/types/subject/single.d.ts +288 -0
  379. package/types/subject/sort-controller.d.ts +3 -0
  380. package/types/subject/sortable.d.ts +19 -0
  381. package/types/subject/sorting-card.d.ts +2 -0
  382. package/types/subject/text-fill.d.ts +88 -0
  383. package/types/subject/title-prefix.d.ts +2 -0
  384. package/types/subject/types.d.ts +12 -0
  385. package/types/tsconfig.tsbuildinfo +1 -1
  386. package/es/_virtual/_plugin-vue_export-helper.mjs +0 -2
  387. package/es/_virtual/_plugin-vue_export-helper.mjs.map +0 -1
  388. package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs +0 -2
  389. package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs.map +0 -1
  390. package/es/src/data-chart/src/analyze.mjs +0 -2
  391. package/es/src/data-chart/src/analyze.mjs.map +0 -1
  392. package/es/src/data-chart/src/components/area.vue.mjs +0 -2
  393. package/es/src/data-chart/src/components/area.vue.mjs.map +0 -1
  394. package/es/src/data-chart/src/components/area.vue2.mjs +0 -2
  395. package/es/src/data-chart/src/components/area.vue2.mjs.map +0 -1
  396. package/es/src/data-chart/src/components/area.vue3.mjs +0 -2
  397. package/es/src/data-chart/src/components/area.vue3.mjs.map +0 -1
  398. package/es/src/data-chart/src/components/bar.vue.mjs +0 -2
  399. package/es/src/data-chart/src/components/bar.vue.mjs.map +0 -1
  400. package/es/src/data-chart/src/components/bar.vue2.mjs +0 -2
  401. package/es/src/data-chart/src/components/bar.vue2.mjs.map +0 -1
  402. package/es/src/data-chart/src/components/bar.vue3.mjs +0 -2
  403. package/es/src/data-chart/src/components/bar.vue3.mjs.map +0 -1
  404. package/es/src/data-chart/src/components/card.vue.mjs +0 -2
  405. package/es/src/data-chart/src/components/card.vue.mjs.map +0 -1
  406. package/es/src/data-chart/src/components/card.vue2.mjs +0 -2
  407. package/es/src/data-chart/src/components/card.vue2.mjs.map +0 -1
  408. package/es/src/data-chart/src/components/card.vue3.mjs +0 -2
  409. package/es/src/data-chart/src/components/card.vue3.mjs.map +0 -1
  410. package/es/src/data-chart/src/components/data-chart-card-bg-left.svg.mjs +0 -2
  411. package/es/src/data-chart/src/components/data-chart-card-bg-left.svg.mjs.map +0 -1
  412. package/es/src/data-chart/src/components/data-chart-card-bg-right.svg.mjs +0 -2
  413. package/es/src/data-chart/src/components/data-chart-card-bg-right.svg.mjs.map +0 -1
  414. package/es/src/data-chart/src/components/empty.svg.mjs +0 -2
  415. package/es/src/data-chart/src/components/empty.svg.mjs.map +0 -1
  416. package/es/src/data-chart/src/components/empty.vue.mjs +0 -2
  417. package/es/src/data-chart/src/components/empty.vue.mjs.map +0 -1
  418. package/es/src/data-chart/src/components/empty.vue2.mjs +0 -2
  419. package/es/src/data-chart/src/components/empty.vue2.mjs.map +0 -1
  420. package/es/src/data-chart/src/components/funnel.vue.mjs +0 -2
  421. package/es/src/data-chart/src/components/funnel.vue.mjs.map +0 -1
  422. package/es/src/data-chart/src/components/funnel.vue2.mjs +0 -2
  423. package/es/src/data-chart/src/components/funnel.vue2.mjs.map +0 -1
  424. package/es/src/data-chart/src/components/funnel.vue3.mjs +0 -2
  425. package/es/src/data-chart/src/components/funnel.vue3.mjs.map +0 -1
  426. package/es/src/data-chart/src/components/line.vue.mjs +0 -2
  427. package/es/src/data-chart/src/components/line.vue.mjs.map +0 -1
  428. package/es/src/data-chart/src/components/line.vue2.mjs +0 -2
  429. package/es/src/data-chart/src/components/line.vue2.mjs.map +0 -1
  430. package/es/src/data-chart/src/components/line.vue3.mjs +0 -2
  431. package/es/src/data-chart/src/components/line.vue3.mjs.map +0 -1
  432. package/es/src/data-chart/src/components/pie.vue.mjs +0 -2
  433. package/es/src/data-chart/src/components/pie.vue.mjs.map +0 -1
  434. package/es/src/data-chart/src/components/pie.vue2.mjs +0 -2
  435. package/es/src/data-chart/src/components/pie.vue2.mjs.map +0 -1
  436. package/es/src/data-chart/src/components/pie.vue3.mjs +0 -2
  437. package/es/src/data-chart/src/components/pie.vue3.mjs.map +0 -1
  438. package/es/src/data-chart/src/components/radar.vue.mjs +0 -2
  439. package/es/src/data-chart/src/components/radar.vue.mjs.map +0 -1
  440. package/es/src/data-chart/src/components/radar.vue2.mjs +0 -2
  441. package/es/src/data-chart/src/components/radar.vue2.mjs.map +0 -1
  442. package/es/src/data-chart/src/components/radar.vue3.mjs +0 -2
  443. package/es/src/data-chart/src/components/radar.vue3.mjs.map +0 -1
  444. package/es/src/data-chart/src/components/scatter-simple.vue.mjs +0 -2
  445. package/es/src/data-chart/src/components/scatter-simple.vue.mjs.map +0 -1
  446. package/es/src/data-chart/src/components/scatter-simple.vue2.mjs +0 -2
  447. package/es/src/data-chart/src/components/scatter-simple.vue2.mjs.map +0 -1
  448. package/es/src/data-chart/src/components/scatter-simple.vue3.mjs +0 -2
  449. package/es/src/data-chart/src/components/scatter-simple.vue3.mjs.map +0 -1
  450. package/es/src/data-chart/src/components/scatter.vue.mjs +0 -2
  451. package/es/src/data-chart/src/components/scatter.vue.mjs.map +0 -1
  452. package/es/src/data-chart/src/components/scatter.vue2.mjs +0 -2
  453. package/es/src/data-chart/src/components/scatter.vue2.mjs.map +0 -1
  454. package/es/src/data-chart/src/components/scatter.vue3.mjs +0 -2
  455. package/es/src/data-chart/src/components/scatter.vue3.mjs.map +0 -1
  456. package/es/src/data-chart/src/components/table.vue.mjs +0 -2
  457. package/es/src/data-chart/src/components/table.vue.mjs.map +0 -1
  458. package/es/src/data-chart/src/components/table.vue2.mjs +0 -2
  459. package/es/src/data-chart/src/components/table.vue2.mjs.map +0 -1
  460. package/es/src/data-chart/src/data-chart.vue.mjs +0 -2
  461. package/es/src/data-chart/src/data-chart.vue.mjs.map +0 -1
  462. package/es/src/data-chart/src/data-chart.vue2.mjs +0 -2
  463. package/es/src/data-chart/src/data-chart.vue2.mjs.map +0 -1
  464. package/es/src/data-chart/src/utils/config.mjs +0 -2
  465. package/es/src/data-chart/src/utils/config.mjs.map +0 -1
  466. package/es/src/data-chart/src/utils/injectionKeys.mjs +0 -2
  467. package/es/src/data-chart/src/utils/injectionKeys.mjs.map +0 -1
  468. package/es/src/data-chart/src/utils/mapData.mjs +0 -2
  469. package/es/src/data-chart/src/utils/mapData.mjs.map +0 -1
  470. package/es/src/data-chart/src/utils/safe-eval.mjs +0 -2
  471. package/es/src/data-chart/src/utils/safe-eval.mjs.map +0 -1
  472. package/es/src/data-chart/src/utils/types.mjs +0 -2
  473. package/es/src/data-chart/src/utils/types.mjs.map +0 -1
  474. package/es/src/data-chart/src/utils/useCharts.mjs +0 -2
  475. package/es/src/data-chart/src/utils/useCharts.mjs.map +0 -1
  476. package/es/src/file-upload/src/file-upload.vue.mjs +0 -2
  477. package/es/src/file-upload/src/file-upload.vue.mjs.map +0 -1
  478. package/es/src/file-upload/src/file-upload.vue2.mjs +0 -2
  479. package/es/src/file-upload/src/file-upload.vue2.mjs.map +0 -1
  480. package/es/src/fixed-action-bar/index.mjs +0 -2
  481. package/es/src/fixed-action-bar/index.mjs.map +0 -1
  482. package/es/src/fixed-action-bar/src/fixed-action-bar.vue.mjs +0 -2
  483. package/es/src/fixed-action-bar/src/fixed-action-bar.vue.mjs.map +0 -1
  484. package/es/src/fixed-action-bar/src/fixed-action-bar.vue2.mjs +0 -2
  485. package/es/src/fixed-action-bar/src/fixed-action-bar.vue2.mjs.map +0 -1
  486. package/es/src/image-upload/src/image-upload.vue.mjs +0 -2
  487. package/es/src/image-upload/src/image-upload.vue.mjs.map +0 -1
  488. package/es/src/image-upload/src/image-upload.vue2.mjs +0 -2
  489. package/es/src/image-upload/src/image-upload.vue2.mjs.map +0 -1
  490. package/es/src/photo-crop-tool/src/composables.mjs +0 -2
  491. package/es/src/photo-crop-tool/src/composables.mjs.map +0 -1
  492. package/es/src/photo-crop-tool/src/photo-crop-tool.vue.mjs +0 -2
  493. package/es/src/photo-crop-tool/src/photo-crop-tool.vue.mjs.map +0 -1
  494. package/es/src/photo-crop-tool/src/photo-crop-tool.vue2.mjs +0 -2
  495. package/es/src/photo-crop-tool/src/photo-crop-tool.vue2.mjs.map +0 -1
  496. package/es/src/subject-action/index.mjs +0 -2
  497. package/es/src/subject-action/index.mjs.map +0 -1
  498. package/es/src/subject-action/src/subject-action.vue.mjs +0 -2
  499. package/es/src/subject-action/src/subject-action.vue.mjs.map +0 -1
  500. package/es/src/subject-action/src/subject-action.vue2.mjs +0 -2
  501. package/es/src/subject-action/src/subject-action.vue2.mjs.map +0 -1
  502. package/es/src/subject-layout/index.mjs +0 -2
  503. package/es/src/subject-layout/index.mjs.map +0 -1
  504. package/es/src/subject-layout/src/subject-layout.vue.mjs +0 -2
  505. package/es/src/subject-layout/src/subject-layout.vue.mjs.map +0 -1
  506. package/es/src/subject-layout/src/subject-layout.vue2.mjs +0 -2
  507. package/es/src/subject-layout/src/subject-layout.vue2.mjs.map +0 -1
  508. package/es/src/subject-list/index.mjs +0 -2
  509. package/es/src/subject-list/index.mjs.map +0 -1
  510. package/es/src/subject-list/src/components/SubjectPageEnd.vue.mjs +0 -2
  511. package/es/src/subject-list/src/components/SubjectPageEnd.vue.mjs.map +0 -1
  512. package/es/src/subject-list/src/components/SubjectPageEnd.vue2.mjs +0 -2
  513. package/es/src/subject-list/src/components/SubjectPageEnd.vue2.mjs.map +0 -1
  514. package/es/src/subject-list/src/components/SubjectRichText.vue.mjs +0 -2
  515. package/es/src/subject-list/src/components/SubjectRichText.vue.mjs.map +0 -1
  516. package/es/src/subject-list/src/components/SubjectRichText.vue2.mjs +0 -2
  517. package/es/src/subject-list/src/components/SubjectRichText.vue2.mjs.map +0 -1
  518. package/es/src/subject-list/src/components/subject-blank-fill.vue.mjs +0 -2
  519. package/es/src/subject-list/src/components/subject-blank-fill.vue.mjs.map +0 -1
  520. package/es/src/subject-list/src/components/subject-blank-fill.vue2.mjs +0 -2
  521. package/es/src/subject-list/src/components/subject-blank-fill.vue2.mjs.map +0 -1
  522. package/es/src/subject-list/src/components/subject-scale.vue.mjs +0 -2
  523. package/es/src/subject-list/src/components/subject-scale.vue.mjs.map +0 -1
  524. package/es/src/subject-list/src/components/subject-scale.vue2.mjs +0 -2
  525. package/es/src/subject-list/src/components/subject-scale.vue2.mjs.map +0 -1
  526. package/es/src/subject-list/src/components/subject-single.vue.mjs +0 -2
  527. package/es/src/subject-list/src/components/subject-single.vue.mjs.map +0 -1
  528. package/es/src/subject-list/src/components/subject-single.vue2.mjs +0 -2
  529. package/es/src/subject-list/src/components/subject-single.vue2.mjs.map +0 -1
  530. package/es/src/subject-list/src/components/subject-text-fill.vue.mjs +0 -2
  531. package/es/src/subject-list/src/components/subject-text-fill.vue.mjs.map +0 -1
  532. package/es/src/subject-list/src/components/subject-text-fill.vue2.mjs +0 -2
  533. package/es/src/subject-list/src/components/subject-text-fill.vue2.mjs.map +0 -1
  534. package/es/src/subject-list/src/subject-list.vue.mjs +0 -2
  535. package/es/src/subject-list/src/subject-list.vue.mjs.map +0 -1
  536. package/es/src/subject-list/src/subject-list.vue2.mjs +0 -2
  537. package/es/src/subject-list/src/subject-list.vue2.mjs.map +0 -1
  538. package/es/src/subject-type/index.mjs +0 -2
  539. package/es/src/subject-type/index.mjs.map +0 -1
  540. package/es/src/subject-type/src/subject-type.vue.mjs +0 -2
  541. package/es/src/subject-type/src/subject-type.vue.mjs.map +0 -1
  542. package/es/src/subject-type/src/subject-type.vue2.mjs +0 -2
  543. package/es/src/subject-type/src/subject-type.vue2.mjs.map +0 -1
  544. package/lib/_virtual/_plugin-vue_export-helper.cjs +0 -2
  545. package/lib/_virtual/_plugin-vue_export-helper.cjs.map +0 -1
  546. package/lib/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.cjs +0 -2
  547. package/lib/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.cjs.map +0 -1
  548. package/lib/src/data-chart/src/analyze.cjs +0 -2
  549. package/lib/src/data-chart/src/analyze.cjs.map +0 -1
  550. package/lib/src/data-chart/src/components/area.vue.cjs +0 -2
  551. package/lib/src/data-chart/src/components/area.vue.cjs.map +0 -1
  552. package/lib/src/data-chart/src/components/area.vue2.cjs +0 -2
  553. package/lib/src/data-chart/src/components/area.vue2.cjs.map +0 -1
  554. package/lib/src/data-chart/src/components/area.vue3.cjs +0 -2
  555. package/lib/src/data-chart/src/components/area.vue3.cjs.map +0 -1
  556. package/lib/src/data-chart/src/components/bar.vue.cjs +0 -2
  557. package/lib/src/data-chart/src/components/bar.vue.cjs.map +0 -1
  558. package/lib/src/data-chart/src/components/bar.vue2.cjs +0 -2
  559. package/lib/src/data-chart/src/components/bar.vue2.cjs.map +0 -1
  560. package/lib/src/data-chart/src/components/bar.vue3.cjs +0 -2
  561. package/lib/src/data-chart/src/components/bar.vue3.cjs.map +0 -1
  562. package/lib/src/data-chart/src/components/card.vue.cjs +0 -2
  563. package/lib/src/data-chart/src/components/card.vue.cjs.map +0 -1
  564. package/lib/src/data-chart/src/components/card.vue2.cjs +0 -2
  565. package/lib/src/data-chart/src/components/card.vue2.cjs.map +0 -1
  566. package/lib/src/data-chart/src/components/card.vue3.cjs +0 -2
  567. package/lib/src/data-chart/src/components/card.vue3.cjs.map +0 -1
  568. package/lib/src/data-chart/src/components/data-chart-card-bg-left.svg.cjs +0 -2
  569. package/lib/src/data-chart/src/components/data-chart-card-bg-left.svg.cjs.map +0 -1
  570. package/lib/src/data-chart/src/components/data-chart-card-bg-right.svg.cjs +0 -2
  571. package/lib/src/data-chart/src/components/data-chart-card-bg-right.svg.cjs.map +0 -1
  572. package/lib/src/data-chart/src/components/empty.svg.cjs +0 -2
  573. package/lib/src/data-chart/src/components/empty.svg.cjs.map +0 -1
  574. package/lib/src/data-chart/src/components/empty.vue.cjs +0 -2
  575. package/lib/src/data-chart/src/components/empty.vue.cjs.map +0 -1
  576. package/lib/src/data-chart/src/components/empty.vue2.cjs +0 -2
  577. package/lib/src/data-chart/src/components/empty.vue2.cjs.map +0 -1
  578. package/lib/src/data-chart/src/components/funnel.vue.cjs +0 -2
  579. package/lib/src/data-chart/src/components/funnel.vue.cjs.map +0 -1
  580. package/lib/src/data-chart/src/components/funnel.vue2.cjs +0 -2
  581. package/lib/src/data-chart/src/components/funnel.vue2.cjs.map +0 -1
  582. package/lib/src/data-chart/src/components/funnel.vue3.cjs +0 -2
  583. package/lib/src/data-chart/src/components/funnel.vue3.cjs.map +0 -1
  584. package/lib/src/data-chart/src/components/line.vue.cjs +0 -2
  585. package/lib/src/data-chart/src/components/line.vue.cjs.map +0 -1
  586. package/lib/src/data-chart/src/components/line.vue2.cjs +0 -2
  587. package/lib/src/data-chart/src/components/line.vue2.cjs.map +0 -1
  588. package/lib/src/data-chart/src/components/line.vue3.cjs +0 -2
  589. package/lib/src/data-chart/src/components/line.vue3.cjs.map +0 -1
  590. package/lib/src/data-chart/src/components/pie.vue.cjs +0 -2
  591. package/lib/src/data-chart/src/components/pie.vue.cjs.map +0 -1
  592. package/lib/src/data-chart/src/components/pie.vue2.cjs +0 -2
  593. package/lib/src/data-chart/src/components/pie.vue2.cjs.map +0 -1
  594. package/lib/src/data-chart/src/components/pie.vue3.cjs +0 -2
  595. package/lib/src/data-chart/src/components/pie.vue3.cjs.map +0 -1
  596. package/lib/src/data-chart/src/components/radar.vue.cjs +0 -2
  597. package/lib/src/data-chart/src/components/radar.vue.cjs.map +0 -1
  598. package/lib/src/data-chart/src/components/radar.vue2.cjs +0 -2
  599. package/lib/src/data-chart/src/components/radar.vue2.cjs.map +0 -1
  600. package/lib/src/data-chart/src/components/radar.vue3.cjs +0 -2
  601. package/lib/src/data-chart/src/components/radar.vue3.cjs.map +0 -1
  602. package/lib/src/data-chart/src/components/scatter-simple.vue.cjs +0 -2
  603. package/lib/src/data-chart/src/components/scatter-simple.vue.cjs.map +0 -1
  604. package/lib/src/data-chart/src/components/scatter-simple.vue2.cjs +0 -2
  605. package/lib/src/data-chart/src/components/scatter-simple.vue2.cjs.map +0 -1
  606. package/lib/src/data-chart/src/components/scatter-simple.vue3.cjs +0 -2
  607. package/lib/src/data-chart/src/components/scatter-simple.vue3.cjs.map +0 -1
  608. package/lib/src/data-chart/src/components/scatter.vue.cjs +0 -2
  609. package/lib/src/data-chart/src/components/scatter.vue.cjs.map +0 -1
  610. package/lib/src/data-chart/src/components/scatter.vue2.cjs +0 -2
  611. package/lib/src/data-chart/src/components/scatter.vue2.cjs.map +0 -1
  612. package/lib/src/data-chart/src/components/scatter.vue3.cjs +0 -2
  613. package/lib/src/data-chart/src/components/scatter.vue3.cjs.map +0 -1
  614. package/lib/src/data-chart/src/components/table.vue.cjs +0 -2
  615. package/lib/src/data-chart/src/components/table.vue.cjs.map +0 -1
  616. package/lib/src/data-chart/src/components/table.vue2.cjs +0 -2
  617. package/lib/src/data-chart/src/components/table.vue2.cjs.map +0 -1
  618. package/lib/src/data-chart/src/data-chart.vue.cjs +0 -2
  619. package/lib/src/data-chart/src/data-chart.vue.cjs.map +0 -1
  620. package/lib/src/data-chart/src/data-chart.vue2.cjs +0 -2
  621. package/lib/src/data-chart/src/data-chart.vue2.cjs.map +0 -1
  622. package/lib/src/data-chart/src/utils/config.cjs +0 -2
  623. package/lib/src/data-chart/src/utils/config.cjs.map +0 -1
  624. package/lib/src/data-chart/src/utils/injectionKeys.cjs +0 -2
  625. package/lib/src/data-chart/src/utils/injectionKeys.cjs.map +0 -1
  626. package/lib/src/data-chart/src/utils/mapData.cjs +0 -2
  627. package/lib/src/data-chart/src/utils/mapData.cjs.map +0 -1
  628. package/lib/src/data-chart/src/utils/safe-eval.cjs +0 -2
  629. package/lib/src/data-chart/src/utils/safe-eval.cjs.map +0 -1
  630. package/lib/src/data-chart/src/utils/types.cjs +0 -2
  631. package/lib/src/data-chart/src/utils/types.cjs.map +0 -1
  632. package/lib/src/data-chart/src/utils/useCharts.cjs +0 -2
  633. package/lib/src/data-chart/src/utils/useCharts.cjs.map +0 -1
  634. package/lib/src/file-upload/src/file-upload.vue.cjs +0 -2
  635. package/lib/src/file-upload/src/file-upload.vue.cjs.map +0 -1
  636. package/lib/src/file-upload/src/file-upload.vue2.cjs +0 -2
  637. package/lib/src/file-upload/src/file-upload.vue2.cjs.map +0 -1
  638. package/lib/src/fixed-action-bar/index.cjs +0 -2
  639. package/lib/src/fixed-action-bar/index.cjs.map +0 -1
  640. package/lib/src/fixed-action-bar/src/fixed-action-bar.vue.cjs +0 -2
  641. package/lib/src/fixed-action-bar/src/fixed-action-bar.vue.cjs.map +0 -1
  642. package/lib/src/fixed-action-bar/src/fixed-action-bar.vue2.cjs +0 -2
  643. package/lib/src/fixed-action-bar/src/fixed-action-bar.vue2.cjs.map +0 -1
  644. package/lib/src/image-upload/src/image-upload.vue.cjs +0 -2
  645. package/lib/src/image-upload/src/image-upload.vue.cjs.map +0 -1
  646. package/lib/src/image-upload/src/image-upload.vue2.cjs +0 -2
  647. package/lib/src/image-upload/src/image-upload.vue2.cjs.map +0 -1
  648. package/lib/src/photo-crop-tool/src/composables.cjs +0 -2
  649. package/lib/src/photo-crop-tool/src/composables.cjs.map +0 -1
  650. package/lib/src/photo-crop-tool/src/photo-crop-tool.vue.cjs +0 -2
  651. package/lib/src/photo-crop-tool/src/photo-crop-tool.vue.cjs.map +0 -1
  652. package/lib/src/photo-crop-tool/src/photo-crop-tool.vue2.cjs +0 -2
  653. package/lib/src/photo-crop-tool/src/photo-crop-tool.vue2.cjs.map +0 -1
  654. package/lib/src/subject-action/index.cjs +0 -2
  655. package/lib/src/subject-action/index.cjs.map +0 -1
  656. package/lib/src/subject-action/src/subject-action.vue.cjs +0 -2
  657. package/lib/src/subject-action/src/subject-action.vue.cjs.map +0 -1
  658. package/lib/src/subject-action/src/subject-action.vue2.cjs +0 -2
  659. package/lib/src/subject-action/src/subject-action.vue2.cjs.map +0 -1
  660. package/lib/src/subject-layout/index.cjs +0 -2
  661. package/lib/src/subject-layout/index.cjs.map +0 -1
  662. package/lib/src/subject-layout/src/subject-layout.vue.cjs +0 -2
  663. package/lib/src/subject-layout/src/subject-layout.vue.cjs.map +0 -1
  664. package/lib/src/subject-layout/src/subject-layout.vue2.cjs +0 -2
  665. package/lib/src/subject-layout/src/subject-layout.vue2.cjs.map +0 -1
  666. package/lib/src/subject-list/index.cjs +0 -2
  667. package/lib/src/subject-list/index.cjs.map +0 -1
  668. package/lib/src/subject-list/src/components/SubjectPageEnd.vue.cjs +0 -2
  669. package/lib/src/subject-list/src/components/SubjectPageEnd.vue.cjs.map +0 -1
  670. package/lib/src/subject-list/src/components/SubjectPageEnd.vue2.cjs +0 -2
  671. package/lib/src/subject-list/src/components/SubjectPageEnd.vue2.cjs.map +0 -1
  672. package/lib/src/subject-list/src/components/SubjectRichText.vue.cjs +0 -2
  673. package/lib/src/subject-list/src/components/SubjectRichText.vue.cjs.map +0 -1
  674. package/lib/src/subject-list/src/components/SubjectRichText.vue2.cjs +0 -2
  675. package/lib/src/subject-list/src/components/SubjectRichText.vue2.cjs.map +0 -1
  676. package/lib/src/subject-list/src/components/subject-blank-fill.vue.cjs +0 -2
  677. package/lib/src/subject-list/src/components/subject-blank-fill.vue.cjs.map +0 -1
  678. package/lib/src/subject-list/src/components/subject-blank-fill.vue2.cjs +0 -2
  679. package/lib/src/subject-list/src/components/subject-blank-fill.vue2.cjs.map +0 -1
  680. package/lib/src/subject-list/src/components/subject-scale.vue.cjs +0 -2
  681. package/lib/src/subject-list/src/components/subject-scale.vue.cjs.map +0 -1
  682. package/lib/src/subject-list/src/components/subject-scale.vue2.cjs +0 -2
  683. package/lib/src/subject-list/src/components/subject-scale.vue2.cjs.map +0 -1
  684. package/lib/src/subject-list/src/components/subject-single.vue.cjs +0 -2
  685. package/lib/src/subject-list/src/components/subject-single.vue.cjs.map +0 -1
  686. package/lib/src/subject-list/src/components/subject-single.vue2.cjs +0 -2
  687. package/lib/src/subject-list/src/components/subject-single.vue2.cjs.map +0 -1
  688. package/lib/src/subject-list/src/components/subject-text-fill.vue.cjs +0 -2
  689. package/lib/src/subject-list/src/components/subject-text-fill.vue.cjs.map +0 -1
  690. package/lib/src/subject-list/src/components/subject-text-fill.vue2.cjs +0 -2
  691. package/lib/src/subject-list/src/components/subject-text-fill.vue2.cjs.map +0 -1
  692. package/lib/src/subject-list/src/subject-list.vue.cjs +0 -2
  693. package/lib/src/subject-list/src/subject-list.vue.cjs.map +0 -1
  694. package/lib/src/subject-list/src/subject-list.vue2.cjs +0 -2
  695. package/lib/src/subject-list/src/subject-list.vue2.cjs.map +0 -1
  696. package/lib/src/subject-type/index.cjs +0 -2
  697. package/lib/src/subject-type/index.cjs.map +0 -1
  698. package/lib/src/subject-type/src/subject-type.vue.cjs +0 -2
  699. package/lib/src/subject-type/src/subject-type.vue.cjs.map +0 -1
  700. package/lib/src/subject-type/src/subject-type.vue2.cjs +0 -2
  701. package/lib/src/subject-type/src/subject-type.vue2.cjs.map +0 -1
  702. package/theme-chalk/index.css +0 -1
  703. package/theme-chalk/index.scss +0 -17
  704. package/theme-chalk/src/base.css +0 -1
  705. package/theme-chalk/src/base.scss +0 -16
  706. package/theme-chalk/src/common/element-plus-deps.css +0 -1
  707. package/theme-chalk/src/common/element-plus-deps.scss +0 -40
  708. package/theme-chalk/src/common/element-plus.css +0 -1
  709. package/theme-chalk/src/common/element-plus.scss +0 -606
  710. package/theme-chalk/src/data-chart/empty.css +0 -1
  711. package/theme-chalk/src/data-chart/empty.scss +0 -24
  712. package/theme-chalk/src/data-chart/index.css +0 -1
  713. package/theme-chalk/src/data-chart/index.scss +0 -11
  714. package/theme-chalk/src/data-chart/table.css +0 -1
  715. package/theme-chalk/src/data-chart/table.scss +0 -43
  716. package/theme-chalk/src/file-upload.css +0 -1
  717. package/theme-chalk/src/file-upload.scss +0 -34
  718. package/theme-chalk/src/fixed-action-bar.css +0 -1
  719. package/theme-chalk/src/fixed-action-bar.scss +0 -18
  720. package/theme-chalk/src/icon.css +0 -1
  721. package/theme-chalk/src/icon.scss +0 -35
  722. package/theme-chalk/src/image-upload.css +0 -1
  723. package/theme-chalk/src/image-upload.scss +0 -157
  724. package/theme-chalk/src/mixins/_var.css +0 -0
  725. package/theme-chalk/src/mixins/_var.scss +0 -24
  726. package/theme-chalk/src/mixins/config.css +0 -0
  727. package/theme-chalk/src/mixins/config.scss +0 -12
  728. package/theme-chalk/src/mixins/function.css +0 -0
  729. package/theme-chalk/src/mixins/function.scss +0 -95
  730. package/theme-chalk/src/mixins/mixins.css +0 -0
  731. package/theme-chalk/src/mixins/mixins.scss +0 -102
  732. package/theme-chalk/src/normalize.css +0 -1
  733. package/theme-chalk/src/normalize.scss +0 -11
  734. package/theme-chalk/src/photo-crop-tool.css +0 -1
  735. package/theme-chalk/src/photo-crop-tool.scss +0 -98
  736. package/theme-chalk/src/subject-action.css +0 -1
  737. package/theme-chalk/src/subject-action.scss +0 -37
  738. package/theme-chalk/src/subject-layout.css +0 -1
  739. package/theme-chalk/src/subject-layout.scss +0 -28
  740. package/theme-chalk/src/subject-list.css +0 -1
  741. package/theme-chalk/src/subject-list.scss +0 -290
  742. package/theme-chalk/src/subject-template.css +0 -1
  743. package/theme-chalk/src/subject-template.scss +0 -5
  744. package/theme-chalk/src/subject-type.css +0 -1
  745. package/theme-chalk/src/subject-type.scss +0 -32
  746. package/theme-chalk/src/tiny-mce-editor.css +0 -1
  747. package/theme-chalk/src/tiny-mce-editor.scss +0 -29
  748. package/types/src/data-chart/src/analyze.d.ts +0 -23
  749. package/types/src/data-chart/src/analyze.d.ts.map +0 -1
  750. package/types/src/data-chart/src/components/area.vue.d.ts +0 -12
  751. package/types/src/data-chart/src/components/area.vue.d.ts.map +0 -1
  752. package/types/src/data-chart/src/components/bar.vue.d.ts +0 -12
  753. package/types/src/data-chart/src/components/bar.vue.d.ts.map +0 -1
  754. package/types/src/data-chart/src/components/card.vue.d.ts +0 -27
  755. package/types/src/data-chart/src/components/card.vue.d.ts.map +0 -1
  756. package/types/src/data-chart/src/components/empty.vue.d.ts +0 -11
  757. package/types/src/data-chart/src/components/empty.vue.d.ts.map +0 -1
  758. package/types/src/data-chart/src/components/funnel.vue.d.ts +0 -11
  759. package/types/src/data-chart/src/components/funnel.vue.d.ts.map +0 -1
  760. package/types/src/data-chart/src/components/line.vue.d.ts +0 -12
  761. package/types/src/data-chart/src/components/line.vue.d.ts.map +0 -1
  762. package/types/src/data-chart/src/components/pie.vue.d.ts +0 -12
  763. package/types/src/data-chart/src/components/pie.vue.d.ts.map +0 -1
  764. package/types/src/data-chart/src/components/radar.vue.d.ts +0 -11
  765. package/types/src/data-chart/src/components/radar.vue.d.ts.map +0 -1
  766. package/types/src/data-chart/src/components/scatter-simple.vue.d.ts +0 -11
  767. package/types/src/data-chart/src/components/scatter-simple.vue.d.ts.map +0 -1
  768. package/types/src/data-chart/src/components/scatter.vue.d.ts +0 -11
  769. package/types/src/data-chart/src/components/scatter.vue.d.ts.map +0 -1
  770. package/types/src/data-chart/src/components/table.vue.d.ts +0 -27
  771. package/types/src/data-chart/src/components/table.vue.d.ts.map +0 -1
  772. package/types/src/data-chart/src/data-chart.vue.d.ts +0 -28
  773. package/types/src/data-chart/src/data-chart.vue.d.ts.map +0 -1
  774. package/types/src/data-chart/src/utils/config.d.ts +0 -41
  775. package/types/src/data-chart/src/utils/config.d.ts.map +0 -1
  776. package/types/src/data-chart/src/utils/injectionKeys.d.ts +0 -3
  777. package/types/src/data-chart/src/utils/injectionKeys.d.ts.map +0 -1
  778. package/types/src/data-chart/src/utils/mapData.d.ts +0 -64
  779. package/types/src/data-chart/src/utils/mapData.d.ts.map +0 -1
  780. package/types/src/data-chart/src/utils/safe-eval.d.ts +0 -9
  781. package/types/src/data-chart/src/utils/safe-eval.d.ts.map +0 -1
  782. package/types/src/data-chart/src/utils/types.d.ts +0 -72
  783. package/types/src/data-chart/src/utils/types.d.ts.map +0 -1
  784. package/types/src/data-chart/src/utils/useCharts.d.ts +0 -16
  785. package/types/src/data-chart/src/utils/useCharts.d.ts.map +0 -1
  786. package/types/src/file-upload/src/file-upload.vue.d.ts +0 -20
  787. package/types/src/file-upload/src/file-upload.vue.d.ts.map +0 -1
  788. package/types/src/fixed-action-bar/index.d.ts +0 -56
  789. package/types/src/fixed-action-bar/index.d.ts.map +0 -1
  790. package/types/src/fixed-action-bar/src/fixed-action-bar.vue.d.ts +0 -31
  791. package/types/src/fixed-action-bar/src/fixed-action-bar.vue.d.ts.map +0 -1
  792. package/types/src/image-upload/src/image-upload.vue.d.ts +0 -59
  793. package/types/src/image-upload/src/image-upload.vue.d.ts.map +0 -1
  794. package/types/src/photo-crop-tool/src/composables.d.ts +0 -7
  795. package/types/src/photo-crop-tool/src/composables.d.ts.map +0 -1
  796. package/types/src/photo-crop-tool/src/photo-crop-tool.vue.d.ts +0 -65
  797. package/types/src/photo-crop-tool/src/photo-crop-tool.vue.d.ts.map +0 -1
  798. package/types/src/subject-list/src/components/SubjectRichText.vue.d.ts +0 -25
  799. package/types/src/subject-list/src/components/SubjectRichText.vue.d.ts.map +0 -1
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./radar.vue2.cjs");require("./radar.vue3.cjs");var r=require("../../../../_virtual/_plugin-vue_export-helper.cjs").default(e.default,[["__scopeId","data-v-dcb2eae6"]]);exports.default=r;
2
- //# sourceMappingURL=radar.vue.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"radar.vue.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),a=require("lodash-es"),r=require("../utils/injectionKeys.cjs"),t=require("../utils/useCharts.cjs"),u=e.defineComponent({name:"DataChartRadar",__name:"radar",props:{chartData:{type:Object,required:!0},chartOptions:{type:null,required:!0},lazyLoad:{type:Boolean,required:!1,default:!0}},setup(u,{expose:o}){const s=e.ref(),c=e.inject(r.InjectionChartMerge,e=>e,!0),l=e.computed(()=>{const{colDesc:e,xGroupByDesc:r,modelName:t,data:o}=u.chartData;r?.groupByValues||(r.groupByValues=[]),r.groupByValues=a.uniq(o.map(e=>e[r.colDesc||""]).filter(e=>e));const s={title:{text:t},radar:{indicator:r?.groupByValues?.map(a=>({name:a,max:Math.max(...o.map(a=>Number(a[e[0]])))}))||[]},series:[{name:r?.colDesc,type:"radar",tooltip:{trigger:"item"},data:e.map(e=>({name:e,value:r?.groupByValues?.map(a=>o.map(t=>a===t[r.colDesc||""]?t[e]:null).filter(e=>e).reduce((e,a)=>Number(e||0)+Number(a||0),0))}))}]};return c(s,u.chartOptions)}),{myChart:p}=t.useCharts({chartDOM:s,chartOptions:l,chartData:e.computed(()=>u.chartData),lazyLoad:u.lazyLoad});return o({myChart:p}),(a,r)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"dataChartRadar",ref:s,class:"data-chart-radar"},null,512))}});exports.default=u;
2
- //# sourceMappingURL=radar.vue2.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"radar.vue2.cjs","sources":["../../../../../../../packages/components/src/data-chart/src/components/radar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { EChartsOption, IFormatPublicData } from '../utils/types'\nimport { uniq } from 'lodash-es'\nimport { computed, inject, ref } from 'vue'\nimport { InjectionChartMerge } from '../utils/injectionKeys'\nimport { useCharts } from '../utils/useCharts'\n\ndefineOptions({\n name: 'DataChartRadar',\n})\n\nconst {\n chartData,\n chartOptions,\n lazyLoad = true,\n} = defineProps<{\n chartData: IFormatPublicData\n chartOptions: EChartsOption\n lazyLoad?: boolean\n}>()\n\nconst dataChartRadar = ref()\nconst merge = inject(InjectionChartMerge, (v: any) => v, true)\nconst radarChartOptions = computed<EChartsOption>(() => {\n const { colDesc, xGroupByDesc, modelName, data } = chartData\n\n if (!xGroupByDesc?.groupByValues) {\n xGroupByDesc.groupByValues = []\n }\n xGroupByDesc.groupByValues = uniq(data.map((item) => {\n return item[xGroupByDesc.colDesc || ''] as string\n }).filter(v => v))\n\n const config = {\n title: {\n text: modelName,\n },\n radar: {\n indicator: xGroupByDesc?.groupByValues?.map((groupByValuesItem) => {\n return {\n name: groupByValuesItem,\n max: Math.max(...data.map(item => Number(item[colDesc[0]]))),\n }\n }) || [],\n },\n series: [{\n name: xGroupByDesc?.colDesc,\n type: 'radar',\n tooltip: {\n trigger: 'item',\n },\n data: colDesc.map(colDescItem => ({\n name: colDescItem,\n value: xGroupByDesc?.groupByValues?.map((groupByValuesItem) => {\n return (data.map((dataItem) => {\n if (groupByValuesItem === dataItem[xGroupByDesc.colDesc || '']) {\n return dataItem[colDescItem]\n }\n return null\n }).filter(v => v)).reduce((pre, cur) => Number(pre || 0) + Number(cur || 0), 0)\n }),\n })),\n }],\n }\n\n return merge(config, chartOptions)\n})\n\nconst { myChart } = useCharts({\n chartDOM: dataChartRadar,\n chartOptions: radarChartOptions,\n chartData: computed(() => chartData),\n lazyLoad,\n})\n\n// 暴露 myChart 方法供父组件访问\ndefineExpose({\n myChart,\n})\n</script>\n\n<template>\n <div\n ref=\"dataChartRadar\"\n class=\"data-chart-radar\"\n />\n</template>\n\n<style scoped lang=\"scss\">\n.data-chart-radar {\n width: 100%;\n height: 100%;\n}\n</style>\n"],"names":["dataChartRadar","ref","merge","inject","InjectionChartMerge","v","radarChartOptions","computed","colDesc","xGroupByDesc","modelName","data","__props","chartData","groupByValues","uniq","map","item","filter","config","title","text","radar","indicator","groupByValuesItem","name","max","Math","Number","series","type","tooltip","trigger","colDescItem","value","dataItem","reduce","pre","cur","chartOptions","myChart","useCharts","chartDOM","lazyLoad","__expose","_createElementBlock","class"],"mappings":"0YAqBA,MAAMA,EAAiBC,EAAAA,MACjBC,EAAQC,EAAAA,OAAOC,EAAAA,oBAAsBC,GAAWA,GAAG,GACnDC,EAAoBC,EAAAA,SAAwB,KAChD,MAAMC,QAAEA,EAAAC,aAASA,EAAAC,UAAcA,EAAAC,KAAWA,GAASC,EAAAC,UAE9CJ,GAAcK,gBACjBL,EAAaK,cAAgB,IAE/BL,EAAaK,cAAgBC,EAAAA,KAAKJ,EAAKK,IAAKC,GACnCA,EAAKR,EAAaD,SAAW,KACnCU,OAAOb,GAAKA,IAEf,MAAMc,EAAS,CACbC,MAAO,CACLC,KAAMX,GAERY,MAAO,CACLC,UAAWd,GAAcK,eAAeE,IAAKQ,IACpC,CACLC,KAAMD,EACNE,IAAKC,KAAKD,OAAOf,EAAKK,IAAIC,GAAQW,OAAOX,EAAKT,EAAQ,WAEpD,IAERqB,OAAQ,CAAC,CACPJ,KAAMhB,GAAcD,QACpBsB,KAAM,QACNC,QAAS,CACPC,QAAS,QAEXrB,KAAMH,EAAQQ,IAAIiB,IAAA,CAChBR,KAAMQ,EACNC,MAAOzB,GAAcK,eAAeE,IAAKQ,GAC/Bb,EAAKK,IAAKmB,GACZX,IAAsBW,EAAS1B,EAAaD,SAAW,IAClD2B,EAASF,GAEX,MACNf,UAAYb,GAAI+B,OAAO,CAACC,EAAKC,IAAQV,OAAOS,GAAO,GAAKT,OAAOU,GAAO,GAAI,UAMrF,OAAOpC,EAAMiB,EAAQP,EAAA2B,iBAGjBC,QAAEA,GAAYC,YAAU,CAC5BC,SAAU1C,EACVuC,aAAcjC,EACdO,UAAWN,EAAAA,SAAS,IAAMK,EAAAC,WAC1B8B,SAAO/B,EAAA+B,kBAITC,EAAa,CACXJ,kCAKAK,EAAAA,mBAGE,MAAA,SAFI,iBAAJ5C,IAAID,EACJ8C,MAAM"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=".data-chart-radar[data-v-dcb2eae6]{height:100%;width:100%}";require("../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.cjs").default(e),exports.default=e;
2
- //# sourceMappingURL=radar.vue3.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"radar.vue3.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./scatter-simple.vue2.cjs");require("./scatter-simple.vue3.cjs");var r=require("../../../../_virtual/_plugin-vue_export-helper.cjs").default(e.default,[["__scopeId","data-v-8129b8a5"]]);exports.default=r;
2
- //# sourceMappingURL=scatter-simple.vue.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scatter-simple.vue.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),t=require("../utils/injectionKeys.cjs"),a=require("../utils/useCharts.cjs"),r=e.defineComponent({name:"DataChartScatterSimple",__name:"scatter-simple",props:{chartData:{type:Object,required:!0},chartOptions:{type:null,required:!0},lazyLoad:{type:Boolean,required:!1,default:!0}},setup(r,{expose:s}){const c=e.ref(),l=e.inject(t.InjectionChartMerge,e=>e,!0),o=e.computed(()=>{const{colDesc:e,xGroupByDesc:t,modelName:a,data:s}=r.chartData,c={title:{text:a},tooltip:{formatter:e=>e.value.length>1?`${e.seriesName} :<br/>${e.value[0]} ${e.value[1]} `:`${e.seriesName} :<br/>${e.name} : ${e.value} `},series:e.map(e=>({symbolSize:20,name:e,data:s.map(a=>[a[e],a[t?.colDesc||""]]),type:"scatter"}))};return l(c,r.chartOptions)}),{myChart:i}=a.useCharts({chartDOM:c,chartOptions:o,chartData:e.computed(()=>r.chartData),lazyLoad:r.lazyLoad});return s({myChart:i}),(t,a)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"dataChartScatterSimple",ref:c,class:"data-chart-scatter-simple"},null,512))}});exports.default=r;
2
- //# sourceMappingURL=scatter-simple.vue2.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scatter-simple.vue2.cjs","sources":["../../../../../../../packages/components/src/data-chart/src/components/scatter-simple.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { EChartsOption, IFormatPublicData } from '../utils/types'\nimport { computed, inject, ref } from 'vue'\nimport { InjectionChartMerge } from '../utils/injectionKeys'\nimport { useCharts } from '../utils/useCharts'\n\ndefineOptions({\n name: 'DataChartScatterSimple',\n})\nconst {\n chartData,\n chartOptions,\n lazyLoad = true,\n} = defineProps<{\n chartData: IFormatPublicData\n chartOptions: EChartsOption\n lazyLoad?: boolean\n}>()\nconst dataChartScatterSimple = ref()\nconst merge = inject(InjectionChartMerge, (v: any) => v, true)\n\nconst scatterChartOptions = computed<EChartsOption>(() => {\n const { colDesc, xGroupByDesc, modelName, data } = chartData\n const config = {\n title: {\n text: modelName,\n },\n tooltip: {\n formatter(params: { value: string, seriesName: string, name: string }) {\n if (params.value.length > 1) {\n return (\n `${params.seriesName\n } :<br/>${params.value[0]\n } ${params.value[1]\n } `\n )\n }\n else {\n return (\n `${params.seriesName\n } :<br/>${params.name\n } : ${params.value\n } `\n )\n }\n },\n },\n series: colDesc.map((colDescItem) => {\n return {\n symbolSize: 20,\n name: colDescItem,\n data: data.map((dataItem) => {\n return [dataItem[colDescItem], dataItem[xGroupByDesc?.colDesc || '']]\n }),\n type: 'scatter',\n }\n }),\n }\n return merge(config, chartOptions)\n})\n\nconst { myChart } = useCharts({\n chartDOM: dataChartScatterSimple,\n chartOptions: scatterChartOptions,\n chartData: computed(() => chartData),\n lazyLoad,\n})\n\n// 暴露 myChart 方法供父组件访问\ndefineExpose({\n myChart,\n})\n</script>\n\n<template>\n <div\n ref=\"dataChartScatterSimple\"\n class=\"data-chart-scatter-simple\"\n />\n</template>\n\n<style scoped lang=\"scss\">\n.data-chart-scatter-simple {\n width: 100%;\n height: 100%;\n}\n</style>\n"],"names":["dataChartScatterSimple","ref","merge","inject","InjectionChartMerge","v","scatterChartOptions","computed","colDesc","xGroupByDesc","modelName","data","__props","chartData","config","title","text","tooltip","formatter","params","value","length","seriesName","name","series","map","colDescItem","symbolSize","dataItem","type","chartOptions","myChart","useCharts","chartDOM","lazyLoad","__expose","_createElementBlock","class"],"mappings":"oYAkBA,MAAMA,EAAyBC,EAAAA,MACzBC,EAAQC,EAAAA,OAAOC,EAAAA,oBAAsBC,GAAWA,GAAG,GAEnDC,EAAsBC,EAAAA,SAAwB,KAClD,MAAMC,QAAEA,EAAAC,aAASA,EAAAC,UAAcA,EAAAC,KAAWA,GAASC,EAAAC,UAC7CC,EAAS,CACbC,MAAO,CACLC,KAAMN,GAERO,QAAS,CACPC,UAAUC,GACJA,EAAOC,MAAMC,OAAS,EAEtB,GAAGF,EAAOG,oBACAH,EAAOC,MAAM,MACnBD,EAAOC,MAAM,MAMjB,GAAGD,EAAOG,oBACAH,EAAOI,UACXJ,EAAOC,UAMrBI,OAAQhB,EAAQiB,IAAKC,IACZ,CACLC,WAAY,GACZJ,KAAMG,EACNf,KAAMA,EAAKc,IAAKG,GACP,CAACA,EAASF,GAAcE,EAASnB,GAAcD,SAAW,MAEnEqB,KAAM,cAIZ,OAAO3B,EAAMY,EAAQF,EAAAkB,iBAGjBC,QAAEA,GAAYC,YAAU,CAC5BC,SAAUjC,EACV8B,aAAcxB,EACdO,UAAWN,EAAAA,SAAS,IAAMK,EAAAC,WAC1BqB,SAAOtB,EAAAsB,kBAITC,EAAa,CACXJ,kCAKAK,EAAAA,mBAGE,MAAA,SAFI,yBAAJnC,IAAID,EACJqC,MAAM"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=".data-chart-scatter-simple[data-v-8129b8a5]{height:100%;width:100%}";require("../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.cjs").default(e),exports.default=e;
2
- //# sourceMappingURL=scatter-simple.vue3.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scatter-simple.vue3.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./scatter.vue2.cjs");require("./scatter.vue3.cjs");var r=require("../../../../_virtual/_plugin-vue_export-helper.cjs").default(e.default,[["__scopeId","data-v-b52b34fd"]]);exports.default=r;
2
- //# sourceMappingURL=scatter.vue.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scatter.vue.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),t=require("../utils/injectionKeys.cjs"),a=require("../utils/useCharts.cjs"),r=e.defineComponent({name:"DataChartScatter",__name:"scatter",props:{chartData:{type:Object,required:!0},chartOptions:{type:null,required:!0},lazyLoad:{type:Boolean,required:!1,default:!0}},setup(r,{expose:s}){const c=e.ref(),o=e.inject(t.InjectionChartMerge,e=>e,!0),i=e.computed(()=>o({xAxis:{},yAxis:{},series:[{symbolSize:20,data:[[10,8.04],[8.07,6.95],[13,7.58],[9.05,8.81],[11,8.33],[14,7.66],[13.4,6.81],[10,6.33],[14,8.96],[12.5,6.82],[9.15,7.2],[11.5,7.2],[3.03,4.23],[12.2,7.83],[2.02,4.47],[1.05,3.33],[4.05,4.96],[6.03,7.24],[12,6.26],[12,8.84],[7.08,5.82],[5.02,5.68]],type:"scatter"}]},r.chartOptions)),{myChart:u}=a.useCharts({chartDOM:c,chartOptions:i,chartData:e.computed(()=>r.chartData),lazyLoad:r.lazyLoad});return s({myChart:u}),(t,a)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"dataChartScatter",ref:c,class:"data-chart-scatter"},null,512))}});exports.default=r;
2
- //# sourceMappingURL=scatter.vue2.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scatter.vue2.cjs","sources":["../../../../../../../packages/components/src/data-chart/src/components/scatter.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { EChartsOption, IFormatPublicData } from '../utils/types'\nimport { computed, inject, ref } from 'vue'\nimport { InjectionChartMerge } from '../utils/injectionKeys'\nimport { useCharts } from '../utils/useCharts'\n\ndefineOptions({\n name: 'DataChartScatter',\n})\n\nconst {\n chartData,\n chartOptions,\n lazyLoad = true,\n} = defineProps<{\n chartData: IFormatPublicData\n chartOptions: EChartsOption\n lazyLoad?: boolean\n}>()\n\nconst dataChartScatter = ref()\nconst merge = inject(InjectionChartMerge, (v: any) => v, true)\n\nconst scatterChartOptions = computed<EChartsOption>(() => {\n const config = {\n xAxis: {},\n yAxis: {},\n series: [\n {\n symbolSize: 20,\n data: [\n [10.0, 8.04],\n [8.07, 6.95],\n [13.0, 7.58],\n [9.05, 8.81],\n [11.0, 8.33],\n [14.0, 7.66],\n [13.4, 6.81],\n [10.0, 6.33],\n [14.0, 8.96],\n [12.5, 6.82],\n [9.15, 7.2],\n [11.5, 7.2],\n [3.03, 4.23],\n [12.2, 7.83],\n [2.02, 4.47],\n [1.05, 3.33],\n [4.05, 4.96],\n [6.03, 7.24],\n [12.0, 6.26],\n [12.0, 8.84],\n [7.08, 5.82],\n [5.02, 5.68],\n ],\n type: 'scatter',\n },\n ],\n }\n\n return merge(config, chartOptions)\n})\n\nconst { myChart } = useCharts({\n chartDOM: dataChartScatter,\n chartOptions: scatterChartOptions,\n chartData: computed(() => chartData),\n lazyLoad,\n})\n\n// 暴露 myChart 方法供父组件访问\ndefineExpose({\n myChart,\n})\n</script>\n\n<template>\n <div\n ref=\"dataChartScatter\"\n class=\"data-chart-scatter\"\n />\n</template>\n\n<style scoped lang=\"scss\">\n.data-chart-scatter {\n width: 100%;\n height: 100%;\n}\n</style>\n"],"names":["dataChartScatter","ref","merge","inject","InjectionChartMerge","v","scatterChartOptions","computed","xAxis","yAxis","series","symbolSize","data","type","__props","chartOptions","myChart","useCharts","chartDOM","chartData","lazyLoad","__expose","_createElementBlock","class"],"mappings":"uXAoBA,MAAMA,EAAmBC,EAAAA,MACnBC,EAAQC,EAAAA,OAAOC,EAAAA,oBAAsBC,GAAWA,GAAG,GAEnDC,EAAsBC,EAAAA,SAAwB,IAoC3CL,EAnCQ,CACbM,MAAO,CAAA,EACPC,MAAO,CAAA,EACPC,OAAQ,CACN,CACEC,WAAY,GACZC,KAAM,CACJ,CAAC,GAAM,MACP,CAAC,KAAM,MACP,CAAC,GAAM,MACP,CAAC,KAAM,MACP,CAAC,GAAM,MACP,CAAC,GAAM,MACP,CAAC,KAAM,MACP,CAAC,GAAM,MACP,CAAC,GAAM,MACP,CAAC,KAAM,MACP,CAAC,KAAM,KACP,CAAC,KAAM,KACP,CAAC,KAAM,MACP,CAAC,KAAM,MACP,CAAC,KAAM,MACP,CAAC,KAAM,MACP,CAAC,KAAM,MACP,CAAC,KAAM,MACP,CAAC,GAAM,MACP,CAAC,GAAM,MACP,CAAC,KAAM,MACP,CAAC,KAAM,OAETC,KAAM,aAKSC,EAAAC,gBAGjBC,QAAEA,GAAYC,YAAU,CAC5BC,SAAUlB,EACVe,aAAcT,EACda,UAAWZ,EAAAA,SAAS,IAAMO,EAAAK,WAC1BC,SAAON,EAAAM,kBAITC,EAAa,CACXL,kCAKAM,EAAAA,mBAGE,MAAA,SAFI,mBAAJrB,IAAID,EACJuB,MAAM"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=".data-chart-scatter[data-v-b52b34fd]{height:100%;width:100%}";require("../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.cjs").default(e),exports.default=e;
2
- //# sourceMappingURL=scatter.vue3.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scatter.vue3.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),t=require("@qxs-bns/hooks"),a=require("element-plus"),l=require("./empty.vue.cjs");const o={key:0,class:"title"};var r=e.defineComponent({name:"DataChartTable",__name:"table",props:{chartData:{type:Object,default:()=>({colDesc:[],xGroupByDesc:[],data:[],modelName:""})}},setup(r){const c=r,n=t.useNamespace("data-chart"),s=e.computed(()=>c.chartData.groupByDesc.find(e=>!e.xAxis));function i(e){if(!e)return 100;const t=14*e.length+20+30;return t<100?100:t}return(t,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(n).e("table")])},[r.chartData.modelName?(e.openBlock(),e.createElementBlock("p",o,[e.createElementVNode("span",null,e.toDisplayString(r.chartData.modelName),1)])):e.createCommentVNode("v-if",!0),e.createVNode(e.unref(a.ElTable),{class:"customize-table",data:r.chartData.data,stripe:"",resizable:"",border:"",height:"100%"},{empty:e.withCtx(()=>[e.createVNode(l.default)]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.chartData.groupByDesc,(t,l)=>(e.openBlock(),e.createBlock(e.unref(a.ElTableColumn),{key:`${t.colDesc}${t.groupByDesc}${l}`,align:"center","show-overflow-tooltip":"",sortable:"","min-width":`${i(t.colDesc)}px`,prop:t.colDesc||""},{header:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.colDesc),1)]),default:e.withCtx(a=>[e.createTextVNode(e.toDisplayString((s.value&&(s.value.colDesc,t.colDesc),a.row[t.colDesc||""]||"--")),1)]),_:2},1032,["min-width","prop"]))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.chartData.colDesc,(t,l)=>(e.openBlock(),e.createBlock(e.unref(a.ElTableColumn),{key:t+l,align:"center","min-width":`${i(t)}px`,label:t,"show-overflow-tooltip":"",sortable:"",prop:t},{header:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t),1)]),_:2},1032,["min-width","label","prop"]))),128))]),_:1},8,["data"])],2))}});exports.default=r;
2
- //# sourceMappingURL=table.vue.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"table.vue.cjs","sources":["../../../../../../../packages/components/src/data-chart/src/components/table.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { PropType } from 'vue'\nimport type { IFormatPublicData } from '../utils/types'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { ElTable, ElTableColumn } from 'element-plus'\nimport { computed } from 'vue'\nimport Empty from './empty.vue'\n\ndefineOptions({\n name: 'DataChartTable',\n})\n\nconst props = defineProps({\n chartData: {\n type: Object as PropType<IFormatPublicData>,\n default: () => ({\n colDesc: [],\n xGroupByDesc: [],\n data: [],\n modelName: '',\n }),\n },\n})\n\nconst ns = useNamespace('data-chart')\n\nconst yGroupByDesc = computed(() => {\n const row = props.chartData.groupByDesc.find(item => !item.xAxis)\n return row\n})\n\nfunction baseWidth(str: string | null) {\n if (!str) {\n return 100\n }\n const strWidth = str.length * 14 + 20 + 30\n return strWidth < 100 ? 100 : strWidth\n}\n</script>\n\n<template>\n <div :class=\"[ns.e('table')]\">\n <p\n v-if=\"chartData.modelName\"\n class=\"title\"\n >\n <span>{{ chartData.modelName }}</span>\n </p>\n <ElTable\n class=\"customize-table\"\n :data=\"chartData.data\"\n stripe\n resizable\n border\n height=\"100%\"\n >\n <ElTableColumn\n v-for=\"(item, index) in chartData.groupByDesc\"\n :key=\"`${item.colDesc}${item.groupByDesc}${index}`\"\n align=\"center\"\n show-overflow-tooltip\n sortable\n :min-width=\"`${baseWidth(item.colDesc)}px`\"\n :prop=\"item.colDesc || ''\"\n >\n <template #header>\n {{ item.colDesc }}\n </template>\n <template #default=\"scoped\">\n {{ (yGroupByDesc && yGroupByDesc.colDesc === item.colDesc ? scoped.row[item.colDesc || ''] : scoped.row[item.colDesc || '']) || '--' }}\n </template>\n </ElTableColumn>\n <ElTableColumn\n v-for=\"(item, index) in chartData.colDesc\"\n :key=\"item + index\"\n align=\"center\"\n :min-width=\"`${baseWidth(item)}px`\"\n :label=\"item\"\n show-overflow-tooltip\n sortable\n :prop=\"item\"\n >\n <template #header>\n {{ item }}\n </template>\n </ElTableColumn>\n <template #empty>\n <Empty />\n </template>\n </ElTable>\n </div>\n</template>\n"],"names":["props","__props","ns","useNamespace","yGroupByDesc","computed","chartData","groupByDesc","find","item","xAxis","baseWidth","str","strWidth","length","_createElementBlock","class","_normalizeClass","_unref","e","modelName","_openBlock","_hoisted_1","_createElementVNode","_toDisplayString","_createVNode","ElTable","data","stripe","resizable","border","height","empty","Empty","_Fragment","index","_createBlock","ElTableColumn","key","colDesc","align","sortable","prop","header","_createTextVNode","default","_withCtx","scoped","value","row","label"],"mappings":"iXAYA,MAAMA,EAAQC,EAYRC,EAAKC,EAAAA,aAAa,cAElBC,EAAeC,EAAAA,SAAS,IAChBL,EAAMM,UAAUC,YAAYC,KAAKC,IAASA,EAAKC,QAI7D,SAASC,EAAUC,GACjB,IAAKA,EACH,OAAO,IAET,MAAMC,EAAwB,GAAbD,EAAIE,OAAc,GAAK,GACxC,OAAOD,EAAW,IAAM,IAAMA,CAChC,6BAIEE,EAAAA,mBAiDM,MAAA,CAjDAC,MAAKC,EAAAA,eAAA,CAAGC,EAAAA,MAAAhB,GAAGiB,EAAC,aAERlB,EAAAK,UAAUc,WADlBC,EAAAA,YAAAN,EAAAA,mBAKI,IALJO,EAKI,CADFC,EAAAA,mBAAsC,OAAA,KAAAC,kBAA7BvB,EAAAK,UAAUc,WAAS,sCAE9BK,cAyCUP,EAAAA,MAAAQ,EAAAA,SAAA,CAxCRV,MAAM,kBACLW,KAAM1B,EAAAK,UAAUqB,KACjBC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,OAAO,SAgCIC,gBACT,IAAS,CAATP,EAAAA,YAASQ,EAAAA,6BA9BT,IAA8C,EADhDZ,EAAAA,WAAA,GAAAN,EAAAA,mBAegBmB,EAAAA,2BAdUjC,EAAAK,UAAUC,YAAW,CAArCE,EAAM0B,mBADhBC,EAAAA,YAegBlB,EAAAA,MAAAmB,EAAAA,eAAA,CAbbC,IAAG,GAAK7B,EAAK8B,UAAU9B,EAAKF,cAAc4B,IAC3CK,MAAM,SACN,wBAAA,GACAC,SAAA,GACC,YAAS,GAAK9B,EAAUF,EAAK8B,aAC7BG,KAAMjC,EAAK8B,SAAO,KAERI,iBACT,IAAkB,CAAfC,EAAAA,gBAAApB,EAAAA,gBAAAf,EAAK8B,SAAO,KAENM,QAAOC,EAAAA,QACuHC,GAD/G,sCACpB3C,EAAA4C,QAAgB5C,QAAamC,QAAY9B,EAAK8B,SAAUQ,EAAOE,IAAIxC,EAAK8B,SAAO,KAAiC,OAAA,8CAGxHlB,EAAAA,WAAA,GAAAN,EAAAA,mBAagBmB,EAAAA,2BAZUjC,EAAAK,UAAUiC,QAAO,CAAjC9B,EAAM0B,mBADhBC,EAAAA,YAagBlB,EAAAA,MAAAmB,EAAAA,eAAA,CAXbC,IAAK7B,EAAO0B,EACbK,MAAM,SACL,YAAS,GAAK7B,EAAUF,OACxByC,MAAOzC,EACR,wBAAA,GACAgC,SAAA,GACCC,KAAMjC,IAEIkC,iBACT,IAAU,qCAAPlC,GAAI"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./table.vue.cjs");exports.default=e.default;
2
- //# sourceMappingURL=table.vue2.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"table.vue2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),t=require("@qxs-bns/hooks"),r=require("@qxs-bns/utils"),a=require("lodash-es"),s=require("./analyze.cjs"),o=require("./components/area.vue.cjs"),u=require("./components/bar.vue.cjs"),n=require("./components/card.vue.cjs"),c=require("./components/funnel.vue.cjs"),l=require("./components/line.vue.cjs"),i=require("./components/pie.vue.cjs"),p=require("./components/radar.vue.cjs"),d=require("./components/scatter-simple.vue.cjs"),y=require("./components/scatter.vue.cjs"),f=require("./components/table.vue.cjs"),m=require("./utils/config.cjs"),h=require("./utils/injectionKeys.cjs"),q=require("./utils/safe-eval.cjs"),j=require("./utils/types.cjs"),v=require("./utils/useCharts.cjs"),C=e.defineComponent({name:"QxsDataChart",__name:"data-chart",props:{modelName:{type:String,required:!1,default:""},showTypeName:{type:String,required:!1,default:"table"},subShowType:{type:String,required:!1},data:{type:Object,required:!1,default:()=>({data:[],desc:{colDesc:[],showDesc:{showType:0,chartOptions:"{}",jsCodeSnippet:""},groupByDesc:[]}})},chartOptions:{type:null,required:!1,default:()=>({})},jsCodeSnippet:{type:String,required:!1,default:""},lazyLoad:{type:Boolean,required:!1,default:!0}},setup(C,{expose:g}){const D=t.useNamespace("data-chart"),b=e.ref(null),x={analyze:s,config:m,types:j},w={table:f.default,bar:u.default,line:l.default,pie:i.default,radar:p.default,scatter:y.default,funnel:c.default,area:o.default,card:n.default,"scatter-simple":d.default},S=e.computed(()=>a.cloneDeep(m.defaultChartOption[C.showTypeName])),T=e.computed(()=>{const{desc:{colDesc:e=[],groupByDesc:t=[]}={},data:r=[]}=C.data;let a=[],s=null;const o=t;a=o?.map(e=>(e.xAxis&&(s=e),e))||[];const u=s&&s.colDesc?r.filter(e=>{const t=s.colDesc;return e&&t&&void 0!==e[t]&&null!==e[t]}):r;return{colDesc:e||[],modelName:C.modelName,subShowType:C.subShowType,xGroupByDesc:s||{colDesc:"",groupByDesc:"",groupByValues:[],xAxis:!1},groupByDesc:a,data:u}});function N(){if("table"===C.showTypeName)return null;const e=b.value;return e&&"function"==typeof e.myChart?e.myChart():null}return g({exportExal:function(){if(0===C.data.data.length)return void console.log("暂无数据");const e=v.useDataToExcelJson(C.data);r.JsonToExcel(C.modelName,e)},QxsDataChartConfig:x,myChart:e.computed(()=>N()),getMyChart:N}),e.provide(h.InjectionChartMerge,function(e,t){let r=a.merge({},S.value,e,t)||{};if(C.jsCodeSnippet)try{r=q.safeEvalConfig(C.jsCodeSnippet,r)}catch(e){console.error("代码执行失败:",e)}return r}),(t,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(w[t.showTypeName]),{ref_key:"myChartRef",ref:b,key:t.showTypeName,class:e.normalizeClass([e.unref(D).e("wrapper")]),"sub-show-type":t.subShowType,"chart-data":T.value,"chart-options":t.chartOptions,"lazy-load":t.lazyLoad},null,8,["class","sub-show-type","chart-data","chart-options","lazy-load"]))}});exports.default=C;
2
- //# sourceMappingURL=data-chart.vue.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-chart.vue.cjs","sources":["../../../../../../packages/components/src/data-chart/src/data-chart.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ECharts } from 'echarts'\nimport type { EChartData, EChartsOption, IconRow, IFormatPublicData } from './utils/types'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { JsonToExcel } from '@qxs-bns/utils'\nimport { cloneDeep, merge as lodashMerge } from 'lodash-es'\nimport { computed, provide, ref } from 'vue'\nimport * as analyze from './analyze'\nimport Area from './components/area.vue'\nimport Bar from './components/bar.vue'\nimport Card from './components/card.vue'\nimport Funnel from './components/funnel.vue'\nimport Line from './components/line.vue'\nimport Pie from './components/pie.vue'\nimport Radar from './components/radar.vue'\nimport ScatterSimple from './components/scatter-simple.vue'\nimport Scatter from './components/scatter.vue'\nimport Table from './components/table.vue'\nimport * as config from './utils/config'\nimport { defaultChartOption } from './utils/config'\nimport { InjectionChartMerge } from './utils/injectionKeys'\nimport { safeEvalConfig } from './utils/safe-eval'\nimport * as types from './utils/types'\nimport { useDataToExcelJson } from './utils/useCharts'\n\ndefineOptions({\n name: 'QxsDataChart',\n})\nconst {\n showTypeName = 'table',\n subShowType,\n modelName = '',\n data: propData = {\n data: [],\n desc: {\n colDesc: [],\n showDesc: {\n showType: 0,\n chartOptions: '{}',\n jsCodeSnippet: '',\n },\n groupByDesc: [],\n },\n },\n chartOptions = {},\n jsCodeSnippet = '',\n lazyLoad = true,\n} = defineProps<{\n modelName?: string\n showTypeName?: IconRow['showTypeName']\n subShowType?: string\n data?: EChartData\n chartOptions?: EChartsOption\n jsCodeSnippet?: string\n lazyLoad?: boolean\n}>()\n\nconst ns = useNamespace('data-chart')\n\n// 子组件引用\nconst myChartRef = ref<any>(null)\n\nconst QxsDataChartConfig = {\n analyze,\n config,\n types,\n}\nconst coms: {\n [key: string]: any\n} = {\n 'table': Table,\n 'bar': Bar,\n 'line': Line,\n 'pie': Pie,\n 'radar': Radar,\n 'scatter': Scatter,\n 'funnel': Funnel,\n 'area': Area,\n 'card': Card,\n 'scatter-simple': ScatterSimple,\n}\n\nconst defaultChartOptionCopy = computed(() => {\n return cloneDeep(defaultChartOption[showTypeName])\n})\n\nconst formatPublicData = computed<IFormatPublicData>(() => {\n const { desc: { colDesc = [], groupByDesc = [] } = {}, data = [] } = propData\n\n // 处理 X 轴数据\n let xValue: EChartData['desc']['groupByDesc'] = []\n\n let xGroupByDesc: EChartData['desc']['groupByDesc'][0] | null = null\n const typedGroupByDesc = groupByDesc as EChartData['desc']['groupByDesc']\n xValue = typedGroupByDesc?.map((groupByDescItem) => {\n // if (groupByDescItem.colValues) {\n // groupByDescItem.colValuesDesc = {}\n // groupByDescItem.colValues.split(',')?.forEach((item) => {\n // const [key, value] = item.split(':')\n // groupByDescItem.colValuesDesc[key] = value\n // })\n // }\n if (groupByDescItem.xAxis) {\n xGroupByDesc = groupByDescItem\n }\n return groupByDescItem\n }) || []\n\n // 修复数据过滤逻辑,避免因为字段不存在导致数据被过滤掉\n const dataValue = xGroupByDesc && (xGroupByDesc as EChartData['desc']['groupByDesc'][0]).colDesc\n ? data.filter((item) => {\n const colDescKey = (xGroupByDesc as EChartData['desc']['groupByDesc'][0]).colDesc\n return item && colDescKey && (item[colDescKey] !== undefined && item[colDescKey] !== null)\n })\n : data\n\n // if (xGroupByDesc && xGroupByDesc.colValuesDesc && Object.keys(xGroupByDesc.colValuesDesc).length) {\n // const { colDesc: colDescItem, colValuesDesc } = xGroupByDesc\n // console.log('colDesc: colDescItem, colValuesDesc: ', colDescItem, colValuesDesc)\n // dataValue = dataValue.map((item) => {\n // if (typeof item[colDescItem] === 'number') {\n // item[colDescItem] = colValuesDesc[item[colDescItem]]\n // }\n // return item\n // })\n // }\n\n const mergeConfig = {\n colDesc: colDesc || [],\n modelName,\n subShowType,\n xGroupByDesc: xGroupByDesc || {\n colDesc: '',\n groupByDesc: '',\n groupByValues: [],\n xAxis: false,\n },\n groupByDesc: xValue,\n data: dataValue,\n }\n return mergeConfig\n})\n\n// 导出数据\nfunction exportExal() {\n if (propData.data.length === 0) {\n // useMessage.error('暂无数据')\n console.log('暂无数据')\n return\n }\n const arr = useDataToExcelJson(propData)\n JsonToExcel(modelName, arr)\n}\nfunction merge(config: EChartsOption, defaultConfig: EChartsOption) {\n const mergeOpt = lodashMerge({}, defaultChartOptionCopy.value, config, defaultConfig)\n let conf = mergeOpt || {}\n\n if (jsCodeSnippet) {\n try {\n // 使用安全的配置处理函数\n conf = safeEvalConfig(jsCodeSnippet, conf)\n }\n catch (error) {\n console.error('代码执行失败:', error)\n }\n }\n\n return conf\n}\n\n// 获取内部 myChart 实例的方法\nfunction getMyChart(): ECharts | null {\n // 对于 table 类型,没有 myChart 实例\n if (showTypeName === 'table') {\n return null\n }\n\n // 尝试从子组件获取 myChart 实例\n const childComponent = myChartRef.value\n if (!childComponent) {\n return null\n }\n\n // 检查子组件是否有 myChart 方法(来自 useCharts)\n if (typeof childComponent.myChart === 'function') {\n return childComponent.myChart()\n }\n\n return null\n}\n\n// 为了保持向后兼容,提供 myChart 计算属性\nconst myChart = computed(() => getMyChart())\n\ndefineExpose({\n exportExal,\n QxsDataChartConfig,\n myChart,\n getMyChart,\n})\nprovide(InjectionChartMerge, merge)\n</script>\n\n<template>\n <component\n :is=\"coms[showTypeName]\"\n ref=\"myChartRef\"\n :key=\"showTypeName\"\n :class=\"[ns.e('wrapper')]\"\n :sub-show-type=\"subShowType\"\n :chart-data=\"formatPublicData\"\n :chart-options=\"chartOptions\"\n :lazy-load=\"lazyLoad\"\n />\n</template>\n"],"names":["ns","useNamespace","myChartRef","ref","QxsDataChartConfig","analyze","config","types","coms","table","Table","bar","Bar","line","Line","pie","Pie","radar","Radar","scatter","Scatter","funnel","Funnel","area","Area","card","Card","ScatterSimple","defaultChartOptionCopy","computed","cloneDeep","defaultChartOption","__props","formatPublicData","desc","colDesc","groupByDesc","data","xValue","xGroupByDesc","typedGroupByDesc","map","groupByDescItem","xAxis","dataValue","filter","item","colDescKey","modelName","subShowType","groupByValues","getMyChart","showTypeName","childComponent","value","myChart","__expose","exportExal","length","console","log","arr","useDataToExcelJson","JsonToExcel","provide","InjectionChartMerge","defaultConfig","conf","lodashMerge","jsCodeSnippet","safeEvalConfig","error","_createBlock","_resolveDynamicComponent","key","class","_normalizeClass","_unref","e","chartOptions","lazyLoad"],"mappings":"kxCAyDA,MAAMA,EAAKC,EAAAA,aAAa,cAGlBC,EAAaC,EAAAA,IAAS,MAEtBC,EAAqB,CACzBC,UACAC,SACAC,SAEIC,EAEF,CACFC,MAASC,EAAAA,QACTC,IAAOC,EAAAA,QACPC,KAAQC,EAAAA,QACRC,IAAOC,EAAAA,QACPC,MAASC,EAAAA,QACTC,QAAWC,EAAAA,QACXC,OAAUC,EAAAA,QACVC,KAAQC,EAAAA,QACRC,KAAQC,EAAAA,QACR,iBAAkBC,EAAAA,SAGdC,EAAyBC,EAAAA,SAAS,IAC/BC,YAAUC,EAAAA,mBAAmBC,kBAGhCC,EAAmBJ,EAAAA,SAA4B,KACnD,MAAQK,MAAMC,QAAEA,EAAU,eAAIC,EAAc,IAAO,CAAA,EAACC,KAAGA,EAAO,IAAOL,EAAAK,KAGrE,IAAIC,EAA4C,GAE5CC,EAA4D,KAChE,MAAMC,EAAmBJ,EACzBE,EAASE,GAAkBC,IAAKC,IAQ1BA,EAAgBC,QAClBJ,EAAeG,GAEVA,KACH,GAGN,MAAME,EAAYL,GAAiBA,EAAsDJ,QACrFE,EAAKQ,OAAQC,IACX,MAAMC,EAAcR,EAAsDJ,QAC1E,OAAOW,GAAQC,QAAoC,IAArBD,EAAKC,IAAkD,OAArBD,EAAKC,KAEvEV,EA0BJ,MAboB,CAClBF,QAASA,GAAW,GACpBa,UAAQhB,EAAAgB,UACRC,YAAUjB,EAAAiB,YACVV,aAAcA,GAAgB,CAC5BJ,QAAS,GACTC,YAAa,GACbc,cAAe,GACfP,OAAO,GAETP,YAAaE,EACbD,KAAMO,KAiCV,SAASO,IAEP,GAAqB,UAAjBnB,EAAAoB,aACF,OAAO,KAIT,MAAMC,EAAiBnD,EAAWoD,MAClC,OAAKD,GAKiC,mBAA3BA,EAAeE,QACjBF,EAAeE,UALf,IASX,QAKAC,EAAa,CACXC,WAnDF,WACE,GAA6B,IAAzBzB,OAASK,KAAKqB,OAGhB,YADAC,QAAQC,IAAI,QAGd,MAAMC,EAAMC,EAAAA,mBAAmB9B,EAAAK,MAC/B0B,cAAY/B,EAAAgB,UAAWa,EACzB,EA4CEzD,qBACAmD,QALc1B,EAAAA,SAAS,IAAMsB,KAM7BA,eAEFa,EAAAA,QAAQC,EAAAA,oBA/CR,SAAe3D,EAAuB4D,GAEpC,IAAIC,EADaC,EAAAA,MAAY,CAAA,EAAIxC,EAAuB0B,MAAOhD,EAAQ4D,IAChD,CAAA,EAEvB,GAAIlC,EAAAqC,cACF,IAEEF,EAAOG,EAAAA,eAAetC,gBAAemC,EACvC,OACOI,GACLZ,QAAQY,MAAM,UAAWA,EAC3B,CAGF,OAAOJ,CACT,yBAoCEK,cASEC,EAAAA,wBARKjE,EAAK4C,EAAAA,eAAY,SAClB,aAAJjD,IAAID,EACHwE,IAAKtB,EAAAA,aACLuB,MAAKC,EAAAA,eAAA,CAAGC,EAAAA,MAAA7E,GAAG8E,EAAC,aACZ,gBAAe7B,EAAAA,YACf,aAAYhB,EAAAqB,MACZ,gBAAeyB,EAAAA,aACf,YAAWC,EAAAA"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./data-chart.vue.cjs");exports.default=e.default;
2
- //# sourceMappingURL=data-chart.vue2.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-chart.vue2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";var e=require("echarts"),t=require("lodash-es"),o=require("./mapData.cjs");function a(e){var t=Object.create(null);return e&&Object.keys(e).forEach(function(o){if("default"!==o){var a=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,a.get?a:{enumerable:!0,get:function(){return e[o]}})}}),t.default=e,Object.freeze(t)}var n=a(e);const s={get:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"showTypeName",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"table";return s.data.find(o=>o[e].toString()===t||o[e]===t)},data:[{showTypeName:"table",label:"表格",coverImg:"table.png",disabled:()=>!1,subTypeList:[],showType:0,baseConfig:{}},{showTypeName:"line",label:"折线图",coverImg:"line-stack.png",showType:1,subTypeList:[{value:"line-simple",icon:"line-smooth",tooltipContent:"折线图"},{value:"area-basic",icon:"chart-line-area",tooltipContent:"折线面积图"}],baseConfig:{tooltip:{confine:!1,trigger:"axis",axisPointer:{type:"line"}},toolbox:{show:!1,showTitle:!1,feature:{saveAsImage:{}}},legend:{type:"scroll",top:"25px"},grid:{left:"0",bottom:"10px",containLabel:!0},xAxis:{type:"category",boundaryGap:!1},yAxis:{type:"value"},dataZoom:[{type:"inside"}]},disabled:(e,t)=>{const o=t?.length;return!(o>=1&&o<2)}},{showTypeName:"bar",label:"柱状图",coverImg:"bar-tick-align.png",showType:2,baseConfig:{legend:{type:"scroll",top:"25px"},tooltip:{confine:!1,trigger:"axis",axisPointer:{type:"shadow"}},toolbox:{show:!1,showTitle:!1,feature:{saveAsImage:{}}},grid:{left:"0",bottom:"20px",containLabel:!0},xAxis:{axisLabel:{showMaxLabel:!0},axisTick:{alignWithLabel:!0}},yAxis:{},dataZoom:[{type:"inside"}]},subTypeList:[{value:"bar-simple",icon:"bar-simple",tooltipContent:"垂直条形图"},{value:"bar-y-category",icon:"bar-y-category",tooltipContent:"水平条形图"}],disabled:(e,t)=>{const o=t?.length;return!(o>=1)}},{showTypeName:"pie",label:"饼图",coverImg:"pie-simple.png",showType:4,subTypeList:[{value:"pie-simple",icon:"pie-simple",tooltipContent:"饼图"},{value:"pie-borderRadius",icon:"pie-borderRadius",tooltipContent:"环形图"}],baseConfig:{tooltip:{confine:!0,formatter:"{a}<br>{b}: {c}({d}%)",trigger:"item"},toolbox:{show:!1,showTitle:!1,feature:{saveAsImage:{}}},legend:{type:"scroll",top:"25px"}},disabled:(e,t)=>{const o=t?.length,a=e?.length;return!(a<=4&&o>0&&o<=1)}},{showTypeName:"area",label:"地图",coverImg:"area.png",showType:5,subTypeList:[],baseConfig:{tooltip:{confine:!0,trigger:"item"},toolbox:{show:!1,showTitle:!1,feature:{saveAsImage:{}}},visualMap:{text:["高","低"],realtime:!1,calculable:!0,inRange:{color:["#E8F4FD","#B8D4F7","#7BA4F0","#4A7BE8","#3562e1"]}}},disabled:(e,t)=>{const o=t?.length,a=t?.some(e=>{let{colDesc:t}=e;return t.includes("省")||t.includes("市")});return!(a&&o>0)}},{showTypeName:"funnel",label:"漏斗图",coverImg:"funnel.png",showType:6,subTypeList:[],baseConfig:{tooltip:{confine:!0,trigger:"item",formatter:"{a} <br/>{b} : {c}"},toolbox:{show:!1,showTitle:!1,feature:{saveAsImage:{}}},legend:{type:"scroll",top:20}},disabled:(e,t)=>{const o=t?.length,a=e?.length;return!(a<=5&&o>0&&o<=1)}},{showTypeName:"card",label:"卡片",coverImg:"card.png",showType:9,subTypeList:[],baseConfig:{},disabled:(e,t)=>{const o=t?.length,a=e?.length;return!(a>0&&o<=1)}},{showTypeName:"radar",label:"雷达图",coverImg:"radar.png",showType:10,subTypeList:[],baseConfig:{legend:{type:"scroll",orient:"vertical",left:"left",top:"25px"},tooltip:{confine:!0,trigger:"item"},toolbox:{show:!1,showTitle:!1,feature:{saveAsImage:{}}},radar:{center:["50%","55%"]}},disabled:(e,t)=>{const o=t?.length;return 1!==o||1!==e.length}},{showTypeName:"scatter-simple",label:"散点图",coverImg:"",showType:11,subTypeList:[],disabled:()=>!1,baseConfig:{grid:{left:"0",bottom:"10px",containLabel:!0},tooltip:{showDelay:0,axisPointer:{show:!0,type:"cross",lineStyle:{type:"dashed",width:1}}},toolbox:{show:!1,showTitle:!1,feature:{saveAsImage:{}}},legend:{type:"scroll",top:"25px"},xAxis:{splitLine:{lineStyle:{type:"dashed"}}},yAxis:{splitLine:{lineStyle:{type:"dashed"}}}}}]};function i(e,o){const a={};return e.forEach(e=>{a[e.showTypeName]=t.merge(e.baseConfig,o)}),a}const l=i(s.data,{backgroundColor:"transparent",title:{textStyle:{fontSize:14,lineHeight:16}}}),r=new Map;function c(){try{const e=n.getMap("china");if(e&&e.geoJson)return e.geoJson}catch(e){console.warn("Failed to get builtin China map:",e)}return{type:"FeatureCollection",features:[]}}exports.defaultChartOption=l,exports.getGeoJsonData=function(e){let{adcode:t}=e;const a="https://cdnfile.yaomaitong.cn/ksh/lib/geo-data";if("string"!=typeof t||t.match(/^\d{6}$/)||"中国"===t||"100000"===t||(t=o.getProvinceCode(t)),r.has(t)){const e=r.get(t);if(e)return Promise.resolve(e)}return(async()=>{try{if("中国"===t||"100000"===t)try{const e=await fetch(`${a}/china.json`);if(e.ok){const o=await e.json();return r.set(t,o),o}}catch(e){console.warn("Failed to load local China map data:",e)}if(o.isProvinceCode(t))try{const e=await fetch(`${a}/${t}.json`);if(e.ok){const o=await e.json();if(o&&o.features&&o.features.length>0)return r.set(t,o),o}}catch(e){console.warn("Failed to load local province map data:",e)}const e=c();return r.set(t,e),e}catch(e){console.error("All map data sources failed, using simple fallback:",e);const o=c();return r.set(t,o),o}})()},exports.iconList=s,exports.setDefaultChartOption=i,exports.showTypeText=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return s.get("showType",e)};
2
- //# sourceMappingURL=config.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.cjs","sources":["../../../../../../../packages/components/src/data-chart/src/utils/config.ts"],"sourcesContent":["import type { GeoJson, IconRow, IGroupByInfos, ISelectInfos } from './types'\nimport * as echarts from 'echarts'\nimport { merge } from 'lodash-es'\nimport { getProvinceCode, isProvinceCode } from './mapData'\n\n/**\n * 禁用功能函数\n * 判断当前图表类型是否被禁用\n * 调用时机:渲染页面\n * @param {object} selectInfos 选择信息\n * @param {object} groupByInfos 分组信息\n * @param {Message[]|Message} data 数据\n * @returns Boolean 布尔值\n */\nexport const iconList: {\n data: IconRow[]\n get: (type: keyof IconRow, value: any) => IconRow\n} = {\n get: (type: keyof IconRow = 'showTypeName', value: any = 'table') => {\n return iconList.data.find(item => item[type].toString() === value || item[type] === value)!\n },\n data: [\n {\n showTypeName: 'table',\n label: '表格',\n coverImg: 'table.png',\n disabled: () => false,\n subTypeList: [],\n showType: 0,\n baseConfig: {},\n },\n {\n showTypeName: 'line',\n label: '折线图',\n coverImg: 'line-stack.png',\n showType: 1,\n subTypeList: [\n {\n value: 'line-simple',\n icon: 'line-smooth',\n tooltipContent: '折线图',\n },\n {\n value: 'area-basic',\n icon: 'chart-line-area',\n tooltipContent: '折线面积图',\n },\n ],\n baseConfig: {\n tooltip: {\n confine: false,\n trigger: 'axis',\n axisPointer: {\n type: 'line',\n },\n },\n toolbox: {\n show: false,\n showTitle: false,\n feature: {\n // dataView: { readOnly: true },\n // restore: {},\n saveAsImage: {},\n },\n },\n legend: {\n type: 'scroll',\n top: '25px',\n },\n grid: {\n left: '0',\n bottom: '10px',\n containLabel: true,\n },\n xAxis: {\n type: 'category',\n boundaryGap: false,\n },\n yAxis: {\n type: 'value',\n },\n dataZoom: [\n {\n type: 'inside',\n },\n ],\n },\n disabled: (_: ISelectInfos[], groupByInfos: IGroupByInfos[]) => {\n const groupByInfosLenght = groupByInfos?.length\n if (groupByInfosLenght >= 1 && groupByInfosLenght < 2) {\n return false\n }\n return true\n },\n },\n {\n showTypeName: 'bar',\n label: '柱状图',\n coverImg: 'bar-tick-align.png',\n showType: 2,\n baseConfig: {\n legend: {\n type: 'scroll',\n top: '25px',\n },\n tooltip: {\n confine: false,\n trigger: 'axis',\n axisPointer: {\n type: 'shadow',\n },\n },\n toolbox: {\n show: false,\n showTitle: false,\n feature: {\n // dataView: { readOnly: true },\n // restore: {},\n saveAsImage: {},\n // myFull: { // 全屏\n // show: true,\n // title: '全屏',\n // icon: 'path://...',\n // }\n },\n },\n grid: {\n left: '0',\n bottom: '20px',\n containLabel: true,\n },\n xAxis: {\n axisLabel: {\n showMaxLabel: true,\n },\n axisTick: {\n alignWithLabel: true,\n },\n },\n yAxis: {},\n dataZoom: [\n {\n type: 'inside',\n },\n ],\n },\n subTypeList: [\n {\n value: 'bar-simple',\n icon: 'bar-simple',\n tooltipContent: '垂直条形图',\n },\n {\n value: 'bar-y-category',\n icon: 'bar-y-category',\n tooltipContent: '水平条形图',\n },\n ],\n disabled: (_: ISelectInfos[], groupByInfos: IGroupByInfos[]) => {\n const groupByInfosLenght = groupByInfos?.length\n if (groupByInfosLenght >= 1) {\n return false\n }\n return true\n },\n },\n {\n showTypeName: 'pie',\n label: '饼图',\n coverImg: 'pie-simple.png',\n showType: 4,\n subTypeList: [\n {\n value: 'pie-simple',\n icon: 'pie-simple',\n tooltipContent: '饼图',\n },\n {\n value: 'pie-borderRadius',\n icon: 'pie-borderRadius',\n tooltipContent: '环形图',\n },\n ],\n baseConfig: {\n tooltip: {\n confine: true,\n formatter: '{a}<br>{b}: {c}({d}%)',\n trigger: 'item',\n },\n toolbox: {\n show: false,\n showTitle: false,\n feature: {\n // dataView: { readOnly: true },\n // restore: {},\n saveAsImage: {},\n },\n },\n legend: {\n type: 'scroll',\n top: '25px',\n },\n },\n disabled: (selectInfos: ISelectInfos[], groupByInfos: IGroupByInfos[]) => {\n const groupByInfosLenght = groupByInfos?.length\n const selectInfosLength = selectInfos?.length\n if (selectInfosLength <= 4 && groupByInfosLenght > 0 && groupByInfosLenght <= 1) {\n return false\n }\n return true\n },\n },\n {\n showTypeName: 'area',\n label: '地图',\n coverImg: 'area.png',\n showType: 5,\n subTypeList: [],\n baseConfig: {\n tooltip: {\n confine: true,\n trigger: 'item',\n },\n toolbox: {\n show: false,\n showTitle: false,\n feature: {\n // dataView: { readOnly: true },\n // restore: {},\n saveAsImage: {},\n },\n },\n visualMap: {\n text: ['高', '低'],\n realtime: false,\n calculable: true,\n inRange: {\n color: ['#E8F4FD', '#B8D4F7', '#7BA4F0', '#4A7BE8', '#3562e1'],\n },\n },\n },\n disabled: (_: ISelectInfos[], groupByInfos: IGroupByInfos[]) => {\n const groupByInfosLenght = groupByInfos?.length\n const flag = groupByInfos?.some(({ colDesc }) => (colDesc.includes('省') || colDesc.includes('市')))\n if (flag && groupByInfosLenght > 0) {\n return false\n }\n return true\n },\n },\n {\n showTypeName: 'funnel',\n label: '漏斗图',\n coverImg: 'funnel.png',\n showType: 6,\n subTypeList: [],\n baseConfig: {\n tooltip: {\n confine: true,\n trigger: 'item',\n formatter: '{a} <br/>{b} : {c}',\n },\n toolbox: {\n show: false,\n showTitle: false,\n feature: {\n // dataView: { readOnly: true },\n // restore: {},\n saveAsImage: {},\n },\n },\n legend: {\n type: 'scroll',\n top: 20,\n },\n },\n disabled: (selectInfos: ISelectInfos[], groupByInfos: IGroupByInfos[]) => {\n const groupByInfosLenght = groupByInfos?.length\n const selectInfosLength = selectInfos?.length\n if (selectInfosLength <= 5 && groupByInfosLenght > 0 && groupByInfosLenght <= 1) {\n return false\n }\n return true\n },\n },\n\n // { label: 'scatter', value: 7 },\n {\n showTypeName: 'card',\n label: '卡片',\n coverImg: 'card.png',\n showType: 9,\n subTypeList: [],\n baseConfig: {},\n disabled: (selectInfos: ISelectInfos[], groupByInfos: IGroupByInfos[]) => {\n const groupByInfosLenght = groupByInfos?.length\n const selectInfosLength = selectInfos?.length\n if (selectInfosLength > 0 && groupByInfosLenght <= 1) {\n return false\n }\n return true\n },\n },\n {\n showTypeName: 'radar',\n label: '雷达图',\n coverImg: 'radar.png',\n showType: 10,\n subTypeList: [],\n baseConfig: {\n legend: {\n type: 'scroll',\n orient: 'vertical',\n left: 'left',\n top: '25px',\n },\n tooltip: {\n confine: true,\n trigger: 'item',\n },\n toolbox: {\n show: false,\n showTitle: false,\n feature: {\n // dataView: { readOnly: true },\n // restore: {},\n saveAsImage: {},\n },\n },\n radar: {\n // shape: 'circle',\n center: ['50%', '55%'],\n },\n },\n disabled: (selectInfos: ISelectInfos[], groupByInfos: IGroupByInfos[]) => {\n const groupByInfosLenght = groupByInfos?.length\n if (groupByInfosLenght === 1 && selectInfos.length === 1) {\n return false\n }\n return true\n },\n },\n {\n showTypeName: 'scatter-simple',\n label: '散点图',\n coverImg: '',\n showType: 11,\n subTypeList: [],\n disabled: () => false,\n baseConfig: {\n grid: {\n left: '0',\n bottom: '10px',\n containLabel: true,\n },\n tooltip: {\n showDelay: 0,\n axisPointer: {\n show: true,\n type: 'cross',\n lineStyle: {\n type: 'dashed',\n width: 1,\n },\n },\n },\n toolbox: {\n show: false,\n showTitle: false,\n feature: {\n // dataView: { readOnly: true },\n // restore: {},\n saveAsImage: {},\n },\n },\n legend: {\n type: 'scroll',\n top: '25px',\n },\n xAxis: {\n splitLine: {\n lineStyle: {\n type: 'dashed',\n },\n },\n },\n yAxis: {\n splitLine: {\n lineStyle: {\n type: 'dashed',\n },\n },\n },\n },\n },\n ],\n}\n\nexport function showTypeText(showType = 0): IconRow {\n const row = iconList.get('showType', showType)\n return row\n}\n\n// 修改默认配置\nexport function setDefaultChartOption(option: IconRow[], changeConfig: any) {\n const obj: {\n [key in IconRow['showTypeName']]: any\n } = {} as { [key in IconRow['showTypeName']]: any }\n option.forEach((item) => {\n obj[item.showTypeName] = merge(item.baseConfig, changeConfig)\n })\n return obj\n}\nexport const defaultChartOption = setDefaultChartOption(iconList.data, {\n backgroundColor: 'transparent',\n title: {\n textStyle: {\n fontSize: 14,\n lineHeight: 16,\n },\n },\n})\n// 获取地图数据(GeoJson)\n// 添加缓存对象\nconst geoJsonCache = new Map<string, GeoJson>()\n\n// 使用 ECharts 内置的中国地图数据\nfunction getBuiltinChinaMap(): GeoJson {\n try {\n // 尝试获取 ECharts 内置的中国地图数据\n const chinaMap = echarts.getMap('china')\n if (chinaMap && chinaMap.geoJson) {\n return chinaMap.geoJson as GeoJson\n }\n }\n catch (error) {\n console.warn('Failed to get builtin China map:', error)\n }\n\n // 如果获取失败,返回空的地图数据\n return {\n type: 'FeatureCollection',\n features: [],\n } as GeoJson\n}\nexport function getGeoJsonData(options: any): Promise<GeoJson> {\n let { adcode } = options\n const baseUrl = 'https://cdnfile.yaomaitong.cn/ksh/lib/geo-data'\n\n // 如果传入的是省份名称,转换为代码\n if (typeof adcode === 'string' && !adcode.match(/^\\d{6}$/) && adcode !== '中国' && adcode !== '100000') {\n adcode = getProvinceCode(adcode)\n }\n\n // 检查缓存中是否存在对应的 GeoJSON 数据\n if (geoJsonCache.has(adcode)) {\n const cachedGeoJson = geoJsonCache.get(adcode)\n if (cachedGeoJson) {\n return Promise.resolve(cachedGeoJson)\n }\n }\n\n // 构建基础 URL\n return (async () => {\n try {\n // 方案1: 使用本地地图数据\n if (adcode === '中国' || adcode === '100000') {\n try {\n // 优先尝试本地中国地图数据\n const response = await fetch(`${baseUrl}/china.json`)\n if (response.ok) {\n const chinaData = await response.json()\n geoJsonCache.set(adcode, chinaData)\n return chinaData\n }\n }\n catch (error) {\n console.warn('Failed to load local China map data:', error)\n }\n }\n\n // 方案2: 使用本地省级地图数据\n if (isProvinceCode(adcode)) {\n try {\n const response = await fetch(`${baseUrl}/${adcode}.json`)\n if (response.ok) {\n const geoJson = await response.json()\n if (geoJson && geoJson.features && geoJson.features.length > 0) {\n geoJsonCache.set(adcode, geoJson)\n return geoJson\n }\n }\n }\n catch (error) {\n console.warn('Failed to load local province map data:', error)\n }\n }\n\n // 方案3: 使用内置的中国地图数据作为备用\n const builtinMap = getBuiltinChinaMap()\n geoJsonCache.set(adcode, builtinMap)\n return builtinMap\n }\n catch (error) {\n console.error('All map data sources failed, using simple fallback:', error)\n const builtinMap = getBuiltinChinaMap()\n geoJsonCache.set(adcode, builtinMap)\n return builtinMap\n }\n })()\n}\n"],"names":["iconList","get","type","arguments","length","undefined","value","data","find","item","toString","showTypeName","label","coverImg","disabled","subTypeList","showType","baseConfig","icon","tooltipContent","tooltip","confine","trigger","axisPointer","toolbox","show","showTitle","feature","saveAsImage","legend","top","grid","left","bottom","containLabel","xAxis","boundaryGap","yAxis","dataZoom","_","groupByInfos","groupByInfosLenght","axisLabel","showMaxLabel","axisTick","alignWithLabel","formatter","selectInfos","selectInfosLength","visualMap","text","realtime","calculable","inRange","color","flag","some","_ref","colDesc","includes","orient","radar","center","showDelay","lineStyle","width","splitLine","setDefaultChartOption","option","changeConfig","obj","forEach","merge","defaultChartOption","backgroundColor","title","textStyle","fontSize","lineHeight","geoJsonCache","Map","getBuiltinChinaMap","chinaMap","echarts","getMap","geoJson","error","console","warn","features","options","adcode","baseUrl","match","getProvinceCode","has","cachedGeoJson","Promise","resolve","response","fetch","ok","chinaData","json","set","isProvinceCode","builtinMap"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";const e=Symbol("merge");exports.InjectionChartMerge=e;
2
- //# sourceMappingURL=injectionKeys.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"injectionKeys.cjs","sources":["../../../../../../../packages/components/src/data-chart/src/utils/injectionKeys.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\n\nexport const InjectionChartMerge: InjectionKey<(target: any, source: any) => any> = Symbol('merge')\n"],"names":["InjectionChartMerge","Symbol"],"mappings":"mBAEaA,EAAuEC,OAAO"}
@@ -1,2 +0,0 @@
1
- "use strict";const e={"北京市":"110000","天津市":"120000","河北省":"130000","山西省":"140000","内蒙古自治区":"150000","辽宁省":"210000","吉林省":"220000","黑龙江省":"230000","上海市":"310000","江苏省":"320000","浙江省":"330000","安徽省":"340000","福建省":"350000","江西省":"360000","山东省":"370000","河南省":"410000","湖北省":"420000","湖南省":"430000","广东省":"440000","广西壮族自治区":"450000","海南省":"460000","重庆市":"500000","四川省":"510000","贵州省":"520000","云南省":"530000","西藏自治区":"540000","陕西省":"610000","甘肃省":"620000","青海省":"630000","宁夏回族自治区":"640000","新疆维吾尔自治区":"650000","台湾省":"710000","香港特别行政区":"810000","澳门特别行政区":"820000"};Object.fromEntries(Object.entries(e).map(e=>{let[t,r]=e;return[r,t]})),exports.PROVINCE_CODES=e,exports.getProvinceCode=function(t){return e[t]||"100000"},exports.isProvinceCode=function(e){return/^\d{6}$/.test(e)&&"100000"!==e};
2
- //# sourceMappingURL=mapData.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mapData.cjs","sources":["../../../../../../../packages/components/src/data-chart/src/utils/mapData.ts"],"sourcesContent":["// 免费的地图数据源\nexport const FREE_MAP_SOURCES = {\n // 省级地图数据源\n PROVINCE: {\n // 使用天地图省级数据\n TIANDITU: () => `https://api.tianditu.gov.cn/vec_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=你的天地图token`,\n // 使用 DataV 的省级数据\n DATAV: (adcode: string) => `https://geo.datav.aliyun.com/areas_v3/bound/${adcode}_full.json`,\n },\n // 天地图行政区划数据\n TIANDITU_ADMIN: {\n // 获取行政区划边界数据\n BOUNDARY: (adcode: string) => `https://api.tianditu.gov.cn/administrative?postStr={\"searchWord\":\"${adcode}\",\"searchType\":\"11\",\"needSubInfo\":true,\"needAll\":true,\"needPolygon\":true,\"needPre\":true}&type=query&tk=你的天地图token`,\n },\n}\n\n// 中国地图数据 - 使用真实的省级边界数据\nexport const CHINA_MAP_DATA = {\n type: 'FeatureCollection',\n features: [\n // 这里应该包含所有省份的边界数据\n // 由于数据量很大,建议使用外部数据源\n ],\n}\n\n// 获取中国地图数据的函数\nexport async function getChinaMapData(): Promise<any> {\n try {\n // 优先使用 DataV 的中国地图数据\n const response = await fetch('https://geo.datav.aliyun.com/areas_v3/bound/100000_full.json')\n if (response.ok) {\n return await response.json()\n }\n }\n catch (error) {\n console.warn('Failed to fetch China map from DataV:', error)\n }\n\n // 备用方案:使用简化的地图数据\n return {\n type: 'FeatureCollection',\n features: [\n {\n type: 'Feature',\n properties: {\n name: '中国',\n adcode: '100000',\n },\n geometry: {\n type: 'Polygon',\n coordinates: [[\n [73.66, 35.42], [78.91, 35.42], [81.33, 36.08], [85.29, 36.08],\n [88.02, 35.42], [90.16, 35.42], [92.13, 34.76], [94.81, 34.76],\n [97.06, 33.44], [99.43, 32.78], [101.06, 31.46], [102.73, 30.14],\n [104.40, 28.82], [106.07, 27.50], [107.74, 26.18], [109.41, 24.86],\n [111.08, 23.54], [112.75, 22.22], [114.42, 20.90], [116.09, 19.58],\n [117.76, 18.26], [119.43, 16.94], [121.10, 15.62], [122.77, 14.30],\n [124.44, 12.98], [126.11, 11.66], [127.78, 10.34], [129.45, 9.02],\n [131.12, 7.70], [132.79, 6.38], [134.46, 5.06], [135.05, 4.40],\n [135.05, 5.06], [135.05, 6.38], [135.05, 7.70], [135.05, 9.02],\n [135.05, 10.34], [135.05, 11.66], [135.05, 12.98], [135.05, 14.30],\n [135.05, 15.62], [135.05, 16.94], [135.05, 18.26], [135.05, 19.58],\n [135.05, 20.90], [135.05, 22.22], [135.05, 23.54], [135.05, 24.86],\n [135.05, 26.18], [135.05, 27.50], [135.05, 28.82], [135.05, 30.14],\n [135.05, 31.46], [135.05, 32.78], [135.05, 34.10], [135.05, 35.42],\n [134.46, 36.08], [133.79, 36.74], [133.12, 37.40], [132.45, 38.06],\n [131.78, 38.72], [131.11, 39.38], [130.44, 40.04], [129.77, 40.70],\n [129.10, 41.36], [128.43, 42.02], [127.76, 42.68], [127.09, 43.34],\n [126.42, 44.00], [125.75, 44.66], [125.08, 45.32], [124.41, 45.98],\n [123.74, 46.64], [123.07, 47.30], [122.40, 47.96], [121.73, 48.62],\n [121.06, 49.28], [120.39, 49.94], [119.72, 50.60], [119.05, 51.26],\n [118.38, 51.92], [117.71, 52.58], [117.04, 53.24], [116.37, 53.90],\n [115.70, 54.56], [115.03, 55.22], [114.36, 55.88], [113.69, 56.54],\n [113.02, 57.20], [112.35, 57.86], [111.68, 58.52], [111.01, 59.18],\n [110.34, 59.84], [109.67, 60.50], [109.00, 61.16], [108.33, 61.82],\n [107.66, 62.48], [106.99, 63.14], [106.32, 63.80], [105.65, 64.46],\n [104.98, 65.12], [104.31, 65.78], [103.64, 66.44], [102.97, 67.10],\n [102.30, 67.76], [101.63, 68.42], [100.96, 69.08], [100.29, 69.74],\n [99.62, 70.40], [98.95, 71.06], [98.28, 71.72], [97.61, 72.38],\n [96.94, 73.04], [96.27, 73.70], [95.60, 74.36], [94.93, 75.02],\n [94.26, 75.68], [93.59, 76.34], [92.92, 77.00], [92.25, 77.66],\n [91.58, 78.32], [90.91, 78.98], [90.24, 79.64], [89.57, 80.30],\n [88.90, 80.96], [88.23, 81.62], [87.56, 82.28], [86.89, 82.94],\n [86.22, 83.60], [85.55, 84.26], [84.88, 84.92], [84.21, 85.58],\n [83.54, 86.24], [82.87, 86.90], [82.20, 87.56], [81.53, 88.22],\n [80.86, 88.88], [80.19, 89.54], [79.52, 90.20], [78.85, 90.86],\n [78.18, 91.52], [77.51, 92.18], [76.84, 92.84], [76.17, 93.50],\n [75.50, 94.16], [74.83, 94.82], [74.16, 95.48], [73.66, 96.14],\n [73.66, 95.48], [73.66, 94.82], [73.66, 94.16], [73.66, 93.50],\n [73.66, 92.84], [73.66, 92.18], [73.66, 91.52], [73.66, 90.86],\n [73.66, 90.20], [73.66, 89.54], [73.66, 88.88], [73.66, 88.22],\n [73.66, 87.56], [73.66, 86.90], [73.66, 86.24], [73.66, 85.58],\n [73.66, 84.92], [73.66, 84.26], [73.66, 83.60], [73.66, 82.94],\n [73.66, 82.28], [73.66, 81.62], [73.66, 80.96], [73.66, 80.30],\n [73.66, 79.64], [73.66, 78.98], [73.66, 78.32], [73.66, 77.66],\n [73.66, 77.00], [73.66, 76.34], [73.66, 75.68], [73.66, 75.02],\n [73.66, 74.36], [73.66, 73.70], [73.66, 73.04], [73.66, 72.38],\n [73.66, 71.72], [73.66, 71.06], [73.66, 70.40], [73.66, 69.74],\n [73.66, 69.08], [73.66, 68.42], [73.66, 67.76], [73.66, 67.10],\n [73.66, 66.44], [73.66, 65.78], [73.66, 65.12], [73.66, 64.46],\n [73.66, 63.80], [73.66, 63.14], [73.66, 62.48], [73.66, 61.82],\n [73.66, 61.16], [73.66, 60.50], [73.66, 59.84], [73.66, 59.18],\n [73.66, 58.52], [73.66, 57.86], [73.66, 57.20], [73.66, 56.54],\n [73.66, 55.88], [73.66, 55.22], [73.66, 54.56], [73.66, 53.90],\n [73.66, 53.24], [73.66, 52.58], [73.66, 51.92], [73.66, 51.26],\n [73.66, 50.60], [73.66, 49.94], [73.66, 49.28], [73.66, 48.62],\n [73.66, 47.96], [73.66, 47.30], [73.66, 46.64], [73.66, 45.98],\n [73.66, 45.32], [73.66, 44.66], [73.66, 44.00], [73.66, 43.34],\n [73.66, 42.68], [73.66, 42.02], [73.66, 41.36], [73.66, 40.70],\n [73.66, 40.04], [73.66, 39.38], [73.66, 38.72], [73.66, 38.06],\n [73.66, 37.40], [73.66, 36.74], [73.66, 36.08], [73.66, 35.42],\n ]],\n },\n },\n ],\n }\n}\n\n// 省级行政区代码映射\nexport const PROVINCE_CODES = {\n 北京市: '110000',\n 天津市: '120000',\n 河北省: '130000',\n 山西省: '140000',\n 内蒙古自治区: '150000',\n 辽宁省: '210000',\n 吉林省: '220000',\n 黑龙江省: '230000',\n 上海市: '310000',\n 江苏省: '320000',\n 浙江省: '330000',\n 安徽省: '340000',\n 福建省: '350000',\n 江西省: '360000',\n 山东省: '370000',\n 河南省: '410000',\n 湖北省: '420000',\n 湖南省: '430000',\n 广东省: '440000',\n 广西壮族自治区: '450000',\n 海南省: '460000',\n 重庆市: '500000',\n 四川省: '510000',\n 贵州省: '520000',\n 云南省: '530000',\n 西藏自治区: '540000',\n 陕西省: '610000',\n 甘肃省: '620000',\n 青海省: '630000',\n 宁夏回族自治区: '640000',\n 新疆维吾尔自治区: '650000',\n 台湾省: '710000',\n 香港特别行政区: '810000',\n 澳门特别行政区: '820000',\n}\n\n// 省级名称映射(反向查找)\nexport const PROVINCE_NAMES = Object.fromEntries(\n Object.entries(PROVINCE_CODES).map(([name, code]) => [code, name]),\n)\n\n// 获取省级代码\nexport function getProvinceCode(provinceName: string): string {\n return PROVINCE_CODES[provinceName as keyof typeof PROVINCE_CODES] || '100000'\n}\n\n// 获取省级名称\nexport function getProvinceName(provinceCode: string): string {\n return PROVINCE_NAMES[provinceCode] || '中国'\n}\n\n// 判断是否为省级代码\nexport function isProvinceCode(code: string): boolean {\n return /^\\d{6}$/.test(code) && code !== '100000'\n}\n\n// 获取省级地图数据\nexport async function getProvinceMapData(provinceName: string): Promise<any> {\n const provinceCode = getProvinceCode(provinceName)\n\n try {\n const url = `https://geo.datav.aliyun.com/areas_v3/bound/${provinceCode}_full.json`\n\n const response = await fetch(url)\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`)\n }\n\n const data = await response.json()\n return data\n }\n catch (error) {\n console.error('Failed to fetch province map data for:', provinceName, error)\n throw error\n }\n}\n\n// 天地图配置\nexport const TIANDITU_CONFIG = {\n // 天地图 token(需要申请)\n TOKEN: '你的天地图token', // 请替换为您的天地图 token\n // 天地图 API 基础 URL\n BASE_URL: 'https://api.tianditu.gov.cn',\n}\n\n// 获取天地图行政区划数据\nexport async function fetchTiandituBoundary(adcode: string): Promise<any> {\n try {\n const url = FREE_MAP_SOURCES.TIANDITU_ADMIN.BOUNDARY(adcode).replace('你的天地图token', TIANDITU_CONFIG.TOKEN)\n const response = await fetch(url)\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`)\n }\n\n const data = await response.json()\n return data\n }\n catch (error) {\n console.error('Failed to fetch Tianditu boundary data:', error)\n throw error\n }\n}\n\n// 获取地图数据的函数\nexport async function fetchMapData(adcode: string): Promise<any> {\n try {\n // 优先尝试从天地图获取数据\n if (TIANDITU_CONFIG.TOKEN !== '你的天地图token') {\n try {\n const tiandituData = await fetchTiandituBoundary(adcode)\n if (tiandituData && tiandituData.data && tiandituData.data.length > 0) {\n // 转换天地图数据为 GeoJSON 格式\n return convertTiandituToGeoJson(tiandituData)\n }\n }\n catch (error) {\n console.warn('Failed to fetch from Tianditu, trying DataV:', error)\n }\n }\n\n // 备用方案:从 DataV 获取数据\n const url = FREE_MAP_SOURCES.PROVINCE.DATAV(adcode)\n console.log('Fetching province map data from:', url)\n const response = await fetch(url)\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`)\n }\n\n const data = await response.json()\n console.log('Successfully fetched province map data for:', adcode, data)\n return data\n }\n catch (error) {\n console.error('Failed to fetch map data for adcode:', adcode, error)\n throw error\n }\n}\n\n// 转换天地图数据为 GeoJSON 格式\nfunction convertTiandituToGeoJson(tiandituData: any): any {\n const features = tiandituData.data.map((item: any) => ({\n type: 'Feature',\n properties: {\n name: item.name,\n adcode: item.adcode,\n level: item.level,\n },\n geometry: {\n type: 'Polygon',\n coordinates: item.polygon ? [item.polygon] : [],\n },\n }))\n\n return {\n type: 'FeatureCollection',\n features,\n }\n}\n"],"names":["PROVINCE_CODES","北京市","天津市","河北省","山西省","内蒙古自治区","辽宁省","吉林省","黑龙江省","上海市","江苏省","浙江省","安徽省","福建省","江西省","山东省","河南省","湖北省","湖南省","广东省","广西壮族自治区","海南省","重庆市","四川省","贵州省","云南省","西藏自治区","陕西省","甘肃省","青海省","宁夏回族自治区","新疆维吾尔自治区","台湾省","香港特别行政区","澳门特别行政区","Object","fromEntries","entries","map","_ref","name","code","provinceName","test"],"mappings":"aAuHO,MAAMA,EAAiB,CAC5BC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,SAAQ,SACRC,MAAK,SACLC,MAAK,SACLC,OAAM,SACNC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,UAAS,SACTC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,QAAO,SACPC,MAAK,SACLC,MAAK,SACLC,MAAK,SACLC,UAAS,SACTC,WAAU,SACVC,MAAK,SACLC,UAAS,SACTC,UAAS,UAImBC,OAAOC,YACnCD,OAAOE,QAAQrC,GAAgBsC,IAAIC,IAAA,IAAEC,EAAMC,GAAIF,EAAA,MAAM,CAACE,EAAMD,uDAIvD,SAAyBE,GAC9B,OAAO1C,EAAe0C,IAAgD,QACxE,yBAQO,SAAwBD,GAC7B,MAAO,UAAUE,KAAKF,IAAkB,WAATA,CACjC"}
@@ -1,2 +0,0 @@
1
- "use strict";exports.safeEvalConfig=function(e,t){const n={...{Math:Math,Date:Date,Array:Array,Object:Object,String:String,Number:Number,Boolean:Boolean,console:console,JSON:JSON},config:{...t}},o=new Proxy(n,{has:(e,t)=>!0,get:(e,t)=>{if("symbol"==typeof t){if(t===Symbol.unscopables)return;return Reflect.get(e,t)}return e[t]}});try{const t=`with (sandbox) { ${e} }`;return new Function("sandbox",t)(o),o.config}catch(e){return console.error("配置处理失败:",e),t}};
2
- //# sourceMappingURL=safe-eval.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"safe-eval.cjs","sources":["../../../../../../../packages/components/src/data-chart/src/utils/safe-eval.ts"],"sourcesContent":["import type { EChartsOption } from './types'\n\n/**\n * 安全的配置处理函数\n * @param jsCode - JavaScript 代码片段\n * @param config - ECharts 配置对象\n * @returns 处理后的配置对象\n */\nexport function safeEvalConfig(jsCode: string, config: EChartsOption): EChartsOption {\n // 预定义允许的操作和函数\n const allowedGlobals = {\n Math,\n Date,\n Array,\n Object,\n String,\n Number,\n Boolean,\n console,\n JSON,\n }\n\n // 创建安全的执行环境\n const sandbox = {\n ...allowedGlobals,\n config: { ...config },\n }\n\n // 使用 with 和 Proxy 创建安全的执行环境\n const handler: ProxyHandler<typeof sandbox> = {\n has: (_target, _key) => {\n return true // 使所有变量查找都在 sandbox 中\n },\n get: (target, key) => {\n // 处理 Symbol 类型的 key\n if (typeof key === 'symbol') {\n if (key === Symbol.unscopables) {\n return undefined\n }\n return Reflect.get(target, key)\n }\n return target[key as keyof typeof target]\n },\n }\n\n const proxiedSandbox = new Proxy(sandbox, handler)\n\n try {\n // 使用 with 语句创建局部作用域\n const code = `with (sandbox) { ${jsCode} }`\n // eslint-disable-next-line no-new-func\n const fn = new Function('sandbox', code)\n fn(proxiedSandbox)\n\n return proxiedSandbox.config as EChartsOption\n }\n catch (error) {\n console.error('配置处理失败:', error)\n return config\n }\n}\n"],"names":["jsCode","config","sandbox","Math","Date","Array","Object","String","Number","Boolean","console","JSON","proxiedSandbox","Proxy","has","_target","_key","get","target","key","Symbol","unscopables","Reflect","code","Function","fn","error"],"mappings":"oCAQO,SAAwBA,EAAgBC,GAE7C,MAaMC,EAAU,IAbO,CACrBC,UACAC,UACAC,YACAC,cACAC,cACAC,cACAC,gBACAC,gBACAC,WAMAV,OAAQ,IAAKA,IAoBTW,EAAiB,IAAIC,MAAMX,EAhBa,CAC5CY,IAAKA,CAACC,EAASC,KACN,EAETC,IAAKA,CAACC,EAAQC,KAEZ,GAAmB,iBAARA,EAAkB,CAC3B,GAAIA,IAAQC,OAAOC,YACjB,OAEF,OAAOC,QAAQL,IAAIC,EAAQC,EAC7B,CACA,OAAOD,EAAOC,MAMlB,IAEE,MAAMI,EAAO,oBAAoBvB,MAKjC,OAHW,IAAIwB,SAAS,UAAWD,EACnCE,CAAGb,GAEIA,EAAeX,MACxB,OACOyB,GAEL,OADAhB,QAAQgB,MAAM,UAAWA,GAClBzB,CACT,CACF"}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=types.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";var e=require("@vueuse/core"),t=require("echarts"),n=require("vue"),i=require("../components/empty.svg.cjs");function r(e){var t=Object.create(null);return e&&Object.keys(e).forEach(function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}}),t.default=e,Object.freeze(t)}var o=r(t),s=Object.defineProperty,a=(e,t,n)=>((e,t,n)=>t in e?s(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n)(e,"symbol"!=typeof t?t+"":t,n);const c=new class{constructor(){a(this,"observer",null),a(this,"callbacks",new Map)}createObserver(){return"undefined"==typeof IntersectionObserver?null:new IntersectionObserver(e=>{for(const t of e)if(t.isIntersecting){const e=this.callbacks.get(t.target);e&&(e(),this.unobserve(t.target))}},{threshold:0,rootMargin:"200px"})}observe(e,t){this.observer||(this.observer=this.createObserver()),this.observer&&(this.callbacks.set(e,t),this.observer.observe(e))}unobserve(e){this.observer&&(this.observer.unobserve(e),this.callbacks.delete(e))}disconnect(){this.observer&&(this.observer.disconnect(),this.callbacks.clear(),this.observer=null)}};function l(t,n){const{width:i,height:r}=e.useElementSize(n);e.watchDebounced([i,r],()=>{if(t&&!t.isDisposed())try{t.resize()}catch(e){console.warn("Error during chart resize:",e)}})}exports.useCharts=function(t){let{chartDOM:r,chartData:s,chartOptions:a,initBefore:u,initAfter:h,lazyLoad:d=!0}=t,f=null,v=!1,b=null,p=[];const g=window.devicePixelRatio||1;function w(){if(f){try{f.isDisposed()||f.dispose()}catch(e){console.warn("Error disposing chart:",e)}f=null}}function y(){if(!f||f.isDisposed()){if(!r.value)return console.warn("[ECharts] DOM element not found"),null;const{clientWidth:e,clientHeight:t}=r.value;if(0===e||0===t)return console.warn("[ECharts] Container has zero size. Width:",e,"Height:",t,". Skipping initialization."),null;f=o.init(r.value,null,{devicePixelRatio:g,renderer:"svg"})}return f}function m(){r.value&&c.unobserve(r.value)}function D(){if(p.length>0)return;const{isOutside:t}=e.useMouseInElement(r),n=e.watchDebounced(t,e=>{"boolean"==typeof e&&f&&!f.isDisposed()&&function(e){if(f&&!f.isDisposed())try{f.setOption({toolbox:{show:e}})}catch(e){console.warn("Error toggling toolbox:",e)}}(!e)},{debounce:200}),i=e.watchDebounced(()=>a.value,async()=>{await async function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];try{f&&!f.isDisposed()||await O(),f?.showLoading(),s.value?.data?.length?(!0===v&&(t[1]||(t[1]={}),t[1].notMerge=!0),v=!1):t=await k(),f?.setOption(...t)}catch(e){console.log("🚀 ~ renderChart ~ error:",e),f&&!f.isDisposed()&&w(),y(),t=await k("配置项错误"),f?.setOption(...t)}finally{f?.hideLoading()}}(a.value)},{debounce:500,deep:!0,immediate:!0});p.push(n,i)}async function x(){await n.nextTick();const{clientWidth:e,clientHeight:t}=r.value||{clientWidth:0,clientHeight:0};if(e>0&&t>0){y()&&(h&&h(f),f&&!f.isDisposed()&&l(f,r),D()),m()}else!function(){if(!r.value||"undefined"==typeof ResizeObserver)return;b=new ResizeObserver(e=>{for(const t of e){const{width:e,height:n}=t.contentRect;if(e>0&&n>0){y()&&(h&&h(f),f&&!f.isDisposed()&&l(f,r),D()),b?.disconnect(),b=null,m();break}}}),b.observe(r.value)}()}async function O(){return r.value?(await n.nextTick(),d?(r.value&&c.observe(r.value,()=>{x()}),f):(await x(),f)):f}function k(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"暂无数据";return new Promise(t=>{const n=new Image;n.src=i.default,n.onload=()=>{const r=n.width/n.height,o={title:[{text:s.value?.modelName,...a.value.title},{subtext:e,top:"center",left:"center",text:"{a|}",itemGap:-20,subtextStyle:{fontSize:14},textStyle:{align:"center",rich:{a:{height:100/r,width:100,backgroundColor:{image:i.default}}}}}]};v=!0,t([o,{notMerge:!0,replaceMerge:["xAxis","yAxis","series"],lazyUpdate:!1}])}})}return n.onMounted(async()=>{u&&await u(),await n.nextTick(),await O(),f&&!f.isDisposed()&&(h&&h(f),l(f,r),D())}),n.onUnmounted(()=>{if(p.forEach(e=>e()),p=[],b&&(b.disconnect(),b=null),m(),f&&!f.isDisposed())try{f.getZr()?.off("mousemove"),f.getZr()?.off("mouseout"),f.getZr()?.off("click"),f.off("click"),w()}catch(e){console.warn("Error during chart cleanup:",e)}}),{myChart:()=>f}},exports.useDataToExcelJson=function(e){const{desc:{colDesc:t=[],groupByDesc:n=[]}={},data:i=[]}=e,r=[...n.map(e=>e.colDesc),...t].filter(e=>e),o=i.map(e=>r.map(t=>e[t]||""));return[r,...o]},exports.useResize=l;
2
- //# sourceMappingURL=useCharts.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCharts.cjs","sources":["../../../../../../../packages/components/src/data-chart/src/utils/useCharts.ts"],"sourcesContent":["import type { ECharts, SetOptionOpts } from 'echarts'\nimport type { Ref } from 'vue'\nimport type { EChartData, EChartsOption, IFormatPublicData } from './types'\nimport { useElementSize, useMouseInElement, watchDebounced } from '@vueuse/core'\nimport * as echarts from 'echarts'\nimport { nextTick, onMounted, onUnmounted } from 'vue'\n\n// 使用别名路径导入 SVG\nimport emptyImg from '../components/empty.svg'\n\n// 全局 IntersectionObserver 管理器\nclass IntersectionObserverManager {\n private observer: IntersectionObserver | null = null\n private callbacks = new Map<Element, () => void>()\n\n private createObserver() {\n if (typeof IntersectionObserver === 'undefined') {\n return null\n }\n\n return new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n const callback = this.callbacks.get(entry.target)\n if (callback) {\n callback()\n // 执行回调后移除监听,避免重复初始化\n this.unobserve(entry.target)\n }\n }\n }\n },\n {\n threshold: 0,\n rootMargin: '200px',\n },\n )\n }\n\n observe(element: Element, callback: () => void) {\n if (!this.observer) {\n this.observer = this.createObserver()\n }\n\n if (this.observer) {\n this.callbacks.set(element, callback)\n this.observer.observe(element)\n }\n }\n\n unobserve(element: Element) {\n if (this.observer) {\n this.observer.unobserve(element)\n this.callbacks.delete(element)\n }\n }\n\n disconnect() {\n if (this.observer) {\n this.observer.disconnect()\n this.callbacks.clear()\n this.observer = null\n }\n }\n}\n\n// 全局单例实例\nconst globalIntersectionObserver = new IntersectionObserverManager()\n\nexport function useCharts({ chartDOM, chartData, chartOptions, initBefore, initAfter, lazyLoad = true }: {\n chartDOM: Ref<HTMLElement | null>\n chartData: Ref<IFormatPublicData>\n chartOptions: Ref<EChartsOption>\n initBefore?: () => Promise<void>\n initAfter?: (e: ECharts | null) => void\n lazyLoad?: boolean\n}) {\n // 每个组件实例的独立状态\n let myChart: ECharts | null = null\n let isEmpty = false\n let resizeObserver: ResizeObserver | null = null\n let watchStopHandles: Array<() => void> = [] // 存储 watch 停止函数\n\n // 获取设备像素比\n const dpr = window.devicePixelRatio || 1\n\n function disposeChart() {\n if (myChart) {\n try {\n if (!myChart.isDisposed()) {\n myChart.dispose()\n }\n }\n catch (error) {\n console.warn('Error disposing chart:', error)\n }\n myChart = null\n }\n }\n\n function initChart() {\n if (!(myChart && !myChart.isDisposed())) {\n // 检查 DOM 元素是否存在\n if (!chartDOM.value) {\n console.warn('[ECharts] DOM element not found')\n return null\n }\n\n // 检查容器尺寸\n const { clientWidth, clientHeight } = chartDOM.value\n if (clientWidth === 0 || clientHeight === 0) {\n // 如果容器没有尺寸,返回 null 而不是强制初始化\n console.warn('[ECharts] Container has zero size. Width:', clientWidth, 'Height:', clientHeight, '. Skipping initialization.')\n return null\n }\n\n // 创建 ECharts 实例\n myChart = echarts.init(chartDOM.value, null, {\n devicePixelRatio: dpr,\n renderer: 'svg',\n })\n }\n return myChart\n }\n\n // 清理所有观察器\n function cleanupObservers() {\n // 从全局观察器中移除当前元素\n if (chartDOM.value) {\n globalIntersectionObserver.unobserve(chartDOM.value)\n }\n }\n\n // 初始化 watchDebounced 监听器\n function setupWatchers() {\n if (watchStopHandles.length > 0) {\n return // 已经设置过了,避免重复设置\n }\n\n // 鼠标悬停监听\n const { isOutside: mouseInChart } = useMouseInElement(chartDOM)\n const stopMouseWatch = watchDebounced(mouseInChart, (newVal) => {\n if (typeof newVal !== 'boolean' || (!myChart || myChart.isDisposed())) {\n return\n }\n toggleToolbox(!newVal)\n }, { debounce: 200 })\n\n // 图表选项监听\n const stopOptionsWatch = watchDebounced(\n () => chartOptions.value,\n async () => {\n await renderChart(chartOptions.value)\n },\n { debounce: 500, deep: true, immediate: true },\n )\n\n watchStopHandles.push(stopMouseWatch, stopOptionsWatch)\n }\n\n // 开始初始化流程\n async function startInitialization() {\n // 等待 DOM 渲染完成\n await nextTick()\n\n // 检查容器是否已经有尺寸\n const { clientWidth, clientHeight } = chartDOM.value || { clientWidth: 0, clientHeight: 0 }\n if (clientWidth > 0 && clientHeight > 0) {\n // 直接初始化\n const chart = initChart()\n if (chart) {\n if (initAfter) {\n initAfter(myChart)\n }\n if (myChart && !myChart.isDisposed()) {\n useResize(myChart, chartDOM)\n }\n // 图表初始化成功后,设置监听器\n setupWatchers()\n }\n // 初始化成功后清理观察器\n cleanupObservers()\n }\n else {\n // 如果没有尺寸,使用 ResizeObserver 等待\n setupResizeObserver()\n }\n }\n\n // 使用全局 IntersectionObserver 监听元素是否进入可视区域\n function setupIntersectionObserver() {\n if (!chartDOM.value) {\n return\n }\n\n // 使用全局观察器,避免重复创建\n globalIntersectionObserver.observe(chartDOM.value, () => {\n startInitialization()\n })\n }\n\n // 使用 ResizeObserver 监听容器尺寸变化\n function setupResizeObserver() {\n if (!chartDOM.value || typeof ResizeObserver === 'undefined') {\n return\n }\n\n resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { width, height } = entry.contentRect\n if (width > 0 && height > 0) {\n // 容器有尺寸了,可以安全初始化\n const chart = initChart()\n if (chart) {\n if (initAfter) {\n initAfter(myChart)\n }\n // 设置 resize 监听\n if (myChart && !myChart.isDisposed()) {\n useResize(myChart, chartDOM)\n }\n // 图表初始化成功后,设置监听器\n setupWatchers()\n }\n // 初始化后停止观察并清理其他观察器\n resizeObserver?.disconnect()\n resizeObserver = null\n cleanupObservers()\n break\n }\n }\n })\n\n resizeObserver.observe(chartDOM.value)\n }\n\n // 安全的初始化函数\n async function safeInitChart() {\n if (!chartDOM.value) {\n return myChart\n }\n\n // 等待 DOM 渲染完成\n await nextTick()\n\n // 如果启用了懒加载\n if (lazyLoad) {\n // 直接设置 IntersectionObserver,让它检测元素是否进入可视区域\n setupIntersectionObserver()\n return myChart\n }\n\n // 非懒加载模式,直接开始初始化流程\n await startInitialization()\n\n return myChart\n }\n\n async function renderChart(...opt: [EChartsOption, SetOptionOpts?]) {\n try {\n // 确保图表已初始化\n if (!myChart || myChart.isDisposed()) {\n await safeInitChart()\n }\n\n myChart?.showLoading()\n if (chartData.value?.data?.length) {\n if (isEmpty === true) {\n if (!opt[1]) {\n opt[1] = {}\n }\n opt[1].notMerge = true\n }\n isEmpty = false\n }\n else {\n // 数据为空时保持原有配置\n opt = await setEmpty()\n }\n myChart?.setOption(...opt)\n }\n catch (error) {\n console.log(`🚀 ~ renderChart ~ error:`, error)\n if (myChart && !myChart.isDisposed()) {\n disposeChart()\n }\n // 如果实例已被销毁,重新创建\n initChart()\n opt = await setEmpty('配置项错误')\n myChart?.setOption(...opt)\n }\n finally {\n myChart?.hideLoading()\n }\n }\n\n function setEmpty(subtext = '暂无数据'): Promise<[EChartsOption, SetOptionOpts]> {\n return new Promise((resolve) => {\n const img = new Image()\n img.src = emptyImg\n\n img.onload = () => {\n const aspectRatio = img.width / img.height\n\n const obj: EChartsOption = {\n title: [{\n text: chartData.value?.modelName,\n ...chartOptions.value.title,\n }, {\n subtext,\n top: 'center',\n left: 'center',\n text: '{a|}',\n itemGap: -20,\n subtextStyle: {\n fontSize: 14,\n },\n textStyle: {\n align: 'center',\n rich: {\n a: {\n height: 100 / aspectRatio,\n width: 100,\n backgroundColor: {\n image: emptyImg,\n },\n },\n },\n },\n }],\n }\n isEmpty = true\n resolve([obj, {\n notMerge: true,\n replaceMerge: ['xAxis', 'yAxis', 'series'],\n lazyUpdate: false,\n }])\n }\n })\n }\n\n function toggleToolbox(show: boolean) {\n // 修改条件判断,移除 isDisposed 检查\n if (myChart && !myChart.isDisposed()) {\n try {\n myChart.setOption({\n toolbox: {\n show,\n },\n })\n }\n catch (error) {\n console.warn('Error toggling toolbox:', error)\n }\n }\n }\n\n // 移除这里的 watchDebounced 调用,改为在图表初始化后调用\n\n onMounted(async () => {\n if (initBefore) {\n await initBefore()\n }\n\n // 等待 DOM 渲染完成\n await nextTick()\n\n // 使用安全的初始化函数\n await safeInitChart()\n\n // 如果图表已经初始化(容器有尺寸),调用 initAfter 和设置 resize\n if (myChart && !myChart.isDisposed()) {\n if (initAfter) {\n initAfter(myChart)\n }\n useResize(myChart, chartDOM)\n // 图表初始化成功后,设置监听器\n setupWatchers()\n }\n })\n\n onUnmounted(() => {\n // 停止所有 watch 监听器\n watchStopHandles.forEach(stop => stop())\n watchStopHandles = []\n\n // 清理 ResizeObserver\n if (resizeObserver) {\n resizeObserver.disconnect()\n resizeObserver = null\n }\n\n // 清理全局 IntersectionObserver 中的当前元素\n cleanupObservers()\n\n if (myChart && !myChart.isDisposed()) {\n try {\n // 清理所有事件监听器\n myChart.getZr()?.off('mousemove')\n myChart.getZr()?.off('mouseout')\n myChart.getZr()?.off('click')\n myChart.off('click')\n disposeChart()\n }\n catch (error) {\n console.warn('Error during chart cleanup:', error)\n }\n }\n })\n\n return {\n myChart: () => myChart,\n }\n}\n\nexport function useResize(myChart: ECharts, chartDOM: Ref<HTMLElement | null>) {\n const { width, height } = useElementSize(chartDOM)\n watchDebounced([width, height], () => {\n if (myChart && !myChart.isDisposed()) {\n try {\n myChart.resize()\n }\n catch (error) {\n console.warn('Error during chart resize:', error)\n }\n }\n })\n}\n\nexport function useDataToExcelJson(dataSource: EChartData) {\n const { desc: { colDesc = [], groupByDesc = [] } = {}, data = [] } = dataSource\n const header = [...groupByDesc.map(item => item.colDesc), ...colDesc].filter(v => v) as string[]\n const json = data.map((item) => {\n return header.map((headerItem) => {\n return item[headerItem as keyof typeof item] || ''\n })\n })\n return [header, ...json]\n}\n"],"names":["globalIntersectionObserver","constructor","__publicField","this","Map","createObserver","IntersectionObserver","entries","entry","isIntersecting","callback","callbacks","get","target","unobserve","threshold","rootMargin","observe","element","observer","set","delete","disconnect","clear","useResize","myChart","chartDOM","width","height","useElementSize","watchDebounced","isDisposed","resize","error","console","warn","_ref","chartData","chartOptions","initBefore","initAfter","lazyLoad","isEmpty","resizeObserver","watchStopHandles","dpr","window","devicePixelRatio","disposeChart","dispose","initChart","value","clientWidth","clientHeight","echarts","init","renderer","cleanupObservers","setupWatchers","length","isOutside","mouseInChart","useMouseInElement","stopMouseWatch","newVal","show","setOption","toolbox","toggleToolbox","debounce","stopOptionsWatch","async","_len","arguments","opt","Array","_key","safeInitChart","showLoading","data","notMerge","setEmpty","log","hideLoading","renderChart","deep","immediate","push","startInitialization","nextTick","ResizeObserver","contentRect","setupResizeObserver","subtext","Promise","resolve","img","Image","src","emptyImg","onload","aspectRatio","obj","title","text","modelName","top","left","itemGap","subtextStyle","fontSize","textStyle","align","rich","a","backgroundColor","image","replaceMerge","lazyUpdate","onMounted","onUnmounted","forEach","stop","getZr","off","dataSource","desc","colDesc","groupByDesc","header","map","item","filter","v","json","headerItem"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),a=require("@element-plus/icons-vue"),l=require("@qxs-bns/hooks"),t=require("element-plus");const r={class:"slot"},s={style:{display:"inline-block"}};var i=e.defineComponent({name:"QxsFileUpload",__name:"file-upload",props:{action:{type:String,required:!0},headers:{type:null,required:!1},data:{type:null,required:!1},name:{type:String,required:!1,default:"file"},size:{type:Number,required:!1,default:20},max:{type:Number,required:!1,default:3},accept:{type:String,required:!1,default:"zip,rar"},files:{type:Array,required:!1,default:()=>[]},notip:{type:Boolean,required:!1,default:!1},ext:{type:Array,required:!1}},emits:["onSuccess"],setup(i,{emit:n}){const o=n,u=l.useNamespace("file-upload"),d=t.useNamespace("file-upload"),c=e.computed(()=>i.accept.split(",")),p=e=>{const a=e.name.split(".").at(-1)??"",l=c.value.includes(a),r=e.size/1024/1024<i.size;return l||t.ElMessage.error(`上传文件只支持 ${c.value.join(" / ")} 格式!`),r||t.ElMessage.error(`上传文件大小不能超过 ${i.size}MB!`),l&&r},m=()=>{t.ElMessage.warning("文件上传超过限制")},f=(e,a,l)=>{o("onSuccess",e,a,l)};return(l,i)=>(e.openBlock(),e.createBlock(e.unref(t.ElUpload),{headers:l.headers,action:l.action,data:l.data,name:l.name,"before-upload":p,"on-exceed":m,"on-success":f,"file-list":l.files,limit:l.max,drag:"",class:e.normalizeClass(e.unref(u).e("control"))},{tip:e.withCtx(()=>[l.notip?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(`${e.unref(d).namespace.value}-upload__tip`)},[e.createElementVNode("div",s,[e.createVNode(e.unref(t.ElAlert),{title:`上传文件支持 ${c.value.join(" / ")} 格式,单个文件大小不超过 ${l.size}MB,且文件数量不超过 ${l.max} 个`,type:"info","show-icon":"",closable:!1},null,8,["title"])])],2))]),default:e.withCtx(()=>[e.createElementVNode("div",r,[e.createVNode(e.unref(t.ElIcon),{class:e.normalizeClass(`${e.unref(d).namespace.value}-icon--upload`)},{default:e.withCtx(()=>[e.createVNode(e.unref(a.UploadFilled))]),_:1},8,["class"]),e.createElementVNode("div",{class:e.normalizeClass(`${e.unref(d).namespace.value}-upload__text`)},i[0]||(i[0]=[e.createTextVNode(" 将文件拖到此处,或",-1),e.createElementVNode("em",null,"点击上传",-1)]),2)])]),_:1},8,["headers","action","data","name","file-list","limit","class"]))}});exports.default=i;
2
- //# sourceMappingURL=file-upload.vue.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-upload.vue.cjs","sources":["../../../../../../packages/components/src/file-upload/src/file-upload.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { UploadProps, UploadUserFile } from 'element-plus'\nimport { UploadFilled } from '@element-plus/icons-vue'\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { ElAlert, ElIcon, ElMessage, ElUpload, useNamespace as useElNamespace } from 'element-plus'\nimport { computed } from 'vue'\n\ndefineOptions({\n name: 'QxsFileUpload',\n})\n\nconst {\n name = 'file',\n size = 20,\n max = 3,\n files = [],\n notip = false,\n accept = 'zip,rar',\n} = defineProps<{\n action: UploadProps['action']\n headers?: UploadProps['headers']\n data?: UploadProps['data']\n name?: UploadProps['name']\n size?: number\n max?: number\n accept?: string\n files?: UploadUserFile[]\n notip?: boolean\n ext?: string[]\n}>()\n\nconst emit = defineEmits(['onSuccess'])\n\nconst ns = useNamespace('file-upload')\nconst nsEl = useElNamespace('file-upload')\n\nconst exts = computed(() => {\n return accept.split(',')\n})\nconst beforeUpload: UploadProps['beforeUpload'] = (file) => {\n const fileName = file.name.split('.')\n const fileExt = fileName.at(-1) ?? ''\n const isTypeOk = exts.value.includes(fileExt)\n const isSizeOk = file.size / 1024 / 1024 < size\n if (!isTypeOk) {\n ElMessage.error(`上传文件只支持 ${exts.value.join(' / ')} 格式!`)\n }\n if (!isSizeOk) {\n ElMessage.error(`上传文件大小不能超过 ${size}MB!`)\n }\n return isTypeOk && isSizeOk\n}\n\nconst onExceed: UploadProps['onExceed'] = () => {\n ElMessage.warning('文件上传超过限制')\n}\n\nconst onSuccess: UploadProps['onSuccess'] = (res, file, fileList) => {\n emit('onSuccess', res, file, fileList)\n}\n</script>\n\n<template>\n <ElUpload\n :headers=\"headers\"\n :action=\"action\"\n :data=\"data\"\n :name=\"name\"\n :before-upload=\"beforeUpload\"\n :on-exceed=\"onExceed\"\n :on-success=\"onSuccess\"\n :file-list=\"files\"\n :limit=\"max\"\n drag\n :class=\"ns.e('control')\"\n >\n <div class=\"slot\">\n <ElIcon :class=\"`${nsEl.namespace.value}-icon--upload`\">\n <UploadFilled />\n </ElIcon>\n <div :class=\"`${nsEl.namespace.value}-upload__text`\">\n 将文件拖到此处,或<em>点击上传</em>\n </div>\n </div>\n <template #tip>\n <div\n v-if=\"!notip\"\n :class=\"`${nsEl.namespace.value}-upload__tip`\"\n >\n <div style=\"display: inline-block;\">\n <ElAlert\n :title=\"`上传文件支持 ${exts.join(\n ' / ',\n )} 格式,单个文件大小不超过 ${size}MB,且文件数量不超过 ${max} 个`\"\n type=\"info\"\n show-icon\n :closable=\"false\"\n />\n </div>\n </div>\n </template>\n </ElUpload>\n</template>\n"],"names":["emit","__emit","ns","useNamespace","nsEl","useElNamespace","exts","computed","__props","accept","split","beforeUpload","file","fileExt","name","at","isTypeOk","value","includes","isSizeOk","size","ElMessage","error","join","onExceed","warning","onSuccess","res","fileList","_createBlock","_unref","ElUpload","headers","action","data","files","limit","max","drag","class","_normalizeClass","e","tip","notip","_createElementBlock","namespace","_createElementVNode","_hoisted_2","_createVNode","ElAlert","title","type","closable","_hoisted_1","ElIcon","UploadFilled"],"mappings":"uuBA+BA,MAAMA,EAAOC,EAEPC,EAAKC,EAAAA,aAAa,eAClBC,EAAOC,EAAAA,aAAe,eAEtBC,EAAOC,EAAAA,SAAS,IACbC,EAAAC,OAAOC,MAAM,MAEhBC,EAA6CC,IACjD,MACMC,EADWD,EAAKE,KAAKJ,MAAM,KACRK,IAAG,IAAO,GAC7BC,EAAWV,EAAKW,MAAMC,SAASL,GAC/BM,EAAWP,EAAKQ,KAAO,KAAO,KAAOZ,EAAAY,KAO3C,OANKJ,GACHK,YAAUC,MAAM,WAAWhB,EAAKW,MAAMM,KAAK,cAExCJ,GACHE,EAAAA,UAAUC,MAAM,cAAcd,EAAAY,WAEzBJ,GAAYG,GAGfK,EAAoC,KACxCH,EAAAA,UAAUI,QAAQ,aAGdC,EAAsC,CAACC,EAAKf,EAAMgB,KACtD5B,EAAK,YAAa2B,EAAKf,EAAMgB,gCAK7BC,EAAAA,YAsCWC,EAAAA,MAAAC,EAAAA,UAAA,CArCRC,QAASA,EAAAA,QACTC,OAAQA,EAAAA,OACRC,KAAMA,EAAAA,KACNpB,KAAMA,EAAAA,KACN,gBAAeH,EACf,YAAWa,EACX,aAAYE,EACZ,YAAWS,EAAAA,MACXC,MAAOC,EAAAA,IACRC,KAAA,GACCC,MAAKC,EAAAA,eAAEV,EAAAA,MAAA5B,GAAGuC,EAAC,cAUDC,cACT,IAcM,CAbGC,EAAAA,qDADTC,EAAAA,mBAcM,MAAA,OAZHL,MAAKC,EAAAA,eAAA,GAAKV,EAAAA,MAAA1B,GAAKyC,UAAU5B,uBAE1B6B,EAAAA,mBASM,MATNC,EASM,CARJC,cAOElB,EAAAA,MAAAmB,EAAAA,SAAA,CANCC,MAAK,UAAY5C,EAAAW,MAAKM,4BAAyDH,EAAAA,mBAAmBiB,EAAAA,QAGnGc,KAAK,OACL,YAAA,GACCC,UAAU,gDApBnB,IAOM,CAPNN,EAAAA,mBAOM,MAPNO,EAOM,CANJL,cAESlB,EAAAA,MAAAwB,EAAAA,QAAA,CAFAf,MAAKC,EAAAA,eAAA,GAAKV,EAAAA,MAAA1B,GAAKyC,UAAU5B,0CAChC,IAAgB,CAAhB+B,EAAAA,YAAgBlB,EAAAA,MAAAyB,qCAElBT,EAAAA,mBAEM,MAAA,CAFAP,MAAKC,EAAAA,eAAA,GAAKV,EAAAA,MAAA1B,GAAKyC,UAAU5B,sDAAsB,cAC1C,GAAA6B,EAAAA,mBAAa,UAAT,QAAI"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./file-upload.vue.cjs");exports.default=e.default;
2
- //# sourceMappingURL=file-upload.vue2.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-upload.vue2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../withInstall.cjs"),t=require("./src/fixed-action-bar.vue.cjs");const r=e.withInstall(t.default);exports.QxsFixedActionBar=r,exports.default=r;
2
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../../packages/components/src/fixed-action-bar/index.ts"],"sourcesContent":["import { withInstall } from '../withInstall'\nimport component from './src/fixed-action-bar.vue'\n\nconst QxsFixedActionBar = withInstall(component)\n\nexport {\n QxsFixedActionBar,\n}\n\nexport default QxsFixedActionBar\n"],"names":["QxsFixedActionBar","withInstall","component"],"mappings":"oJAGA,MAAMA,EAAoBC,EAAAA,YAAYC,EAAAA"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),t=require("@qxs-bns/hooks"),n=require("@qxs-bns/utils"),a=require("lodash-es");var r=e.defineComponent({name:"QxsFixedActionBar",props:{padding:{type:Number,default:8},className:{type:String,default:""}},setup(r){const o=r,i=t.useNamespace("fixed-action-bar"),l=e.ref(!1),d=e.ref(null),s=e.ref(null),u=e.ref({width:0,height:0}),c=e.ref(0),p=e.ref(0),m={resize:null,parent:null};function f(e,t,n){const a=new ResizeObserver(e=>{e.forEach(e=>requestAnimationFrame(()=>t(e)))});return a.observe(e,n),a}function v(){if(!d.value||!s.value)return;m.resize=f(d.value,e=>{const t=function(e){const t=getComputedStyle(e);return{x:Number.parseFloat(t.paddingLeft)+Number.parseFloat(t.paddingRight),y:Number.parseFloat(t.paddingTop)+Number.parseFloat(t.paddingBottom)}}(e.target);u.value={width:e.contentRect.width+t.x,height:e.contentRect.height+t.y}},{box:"border-box"});const e=s.value.parentElement;e&&(m.parent=f(e,()=>{const t=e.getBoundingClientRect();c.value=t.width,p.value=t.left}))}const h=a.debounce(()=>{const{scrollY:e}=window,{clientHeight:t,scrollHeight:n}=document.documentElement;l.value=Math.ceil(e+t)>=n},100),g=e.computed(()=>l.value?"":i.is("shadow")),b=e.computed(()=>"Android"===n.getDeviceType()?Math.max(o.padding,20):o.padding),x=e.computed(()=>({width:`${c.value}px`,left:`${p.value}px`,...i.cssVarBlock({"actionbar-padding":`${o.padding}px`,"actionbar-padding-bottom":`${b.value}px`})}));return e.onMounted(()=>{v(),window.addEventListener("scroll",h,{passive:!0})}),e.onUnmounted(()=>{m.resize?.disconnect(),m.parent?.disconnect(),window.removeEventListener("scroll",h)}),(t,n)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"placeholderRef",ref:s,style:e.normalizeStyle({width:"100%",height:`${u.value.height}px`})},[e.createElementVNode("div",{ref_key:"actionbar",ref:d,style:e.normalizeStyle(x.value),class:e.normalizeClass([e.unref(i).e("actionbar"),g.value,r.className]),"data-fixed-calc-width":""},[e.renderSlot(t.$slots,"default")],6)],4))}});exports.default=r;
2
- //# sourceMappingURL=fixed-action-bar.vue.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fixed-action-bar.vue.cjs","sources":["../../../../../../packages/components/src/fixed-action-bar/src/fixed-action-bar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useNamespace } from '@qxs-bns/hooks'\nimport { getDeviceType } from '@qxs-bns/utils'\nimport { debounce } from 'lodash-es'\nimport { computed, onMounted, onUnmounted, ref } from 'vue'\n\nconst props = defineProps({\n padding: {\n type: Number,\n default: 8,\n },\n className: {\n type: String,\n default: '',\n },\n})\n\ninterface ElementSize { width: number, height: number }\n\nconst ns = useNamespace('fixed-action-bar')\nconst isBottom = ref(false)\nconst actionbar = ref<HTMLElement | null>(null)\nconst placeholderRef = ref<HTMLElement | null>(null)\n\nconst elementSize = ref<ElementSize>({ width: 0, height: 0 })\nconst parentWidth = ref(0)\nconst elementLeft = ref(0)\n\nconst observers = {\n resize: null as ResizeObserver | null,\n parent: null as ResizeObserver | null,\n}\n\nfunction getTotalPadding(el: HTMLElement) {\n const style = getComputedStyle(el)\n return {\n x: Number.parseFloat(style.paddingLeft) + Number.parseFloat(style.paddingRight),\n y: Number.parseFloat(style.paddingTop) + Number.parseFloat(style.paddingBottom),\n }\n}\n\nfunction createResizeObserver(el: HTMLElement,\n callback: (entry: ResizeObserverEntry) => void,\n options?: ResizeObserverOptions) {\n const observer = new ResizeObserver((entries) => {\n entries.forEach(entry => requestAnimationFrame(() => callback(entry)))\n })\n observer.observe(el, options)\n return observer\n}\n\nfunction initObservers() {\n if (!actionbar.value || !placeholderRef.value) {\n return\n }\n\n // 主元素尺寸观察\n observers.resize = createResizeObserver(\n actionbar.value,\n (entry) => {\n const padding = getTotalPadding(entry.target as HTMLElement)\n elementSize.value = {\n width: entry.contentRect.width + padding.x,\n height: entry.contentRect.height + padding.y,\n }\n },\n { box: 'border-box' },\n )\n\n // 父元素观察\n const parent = placeholderRef.value.parentElement\n if (parent) {\n observers.parent = createResizeObserver(parent, () => {\n const rect = parent.getBoundingClientRect()\n parentWidth.value = rect.width\n elementLeft.value = rect.left\n })\n }\n}\n\nconst calculateScrollDetails = debounce(() => {\n const { scrollY } = window\n const { clientHeight, scrollHeight } = document.documentElement\n isBottom.value = Math.ceil(scrollY + clientHeight) >= scrollHeight\n}, 100)\n\nconst shadowClass = computed(() => (!isBottom.value ? ns.is('shadow') : ''))\n\nconst paddingBottom = computed(() =>\n getDeviceType() === 'Android' ? Math.max(props.padding, 20) : props.padding,\n)\n\nconst actionbarStyle = computed(() => ({\n width: `${parentWidth.value}px`,\n left: `${elementLeft.value}px`,\n ...ns.cssVarBlock({\n 'actionbar-padding': `${props.padding}px`,\n 'actionbar-padding-bottom': `${paddingBottom.value}px`,\n }),\n}))\n\nonMounted(() => {\n initObservers()\n window.addEventListener('scroll', calculateScrollDetails, { passive: true })\n})\n\nonUnmounted(() => {\n observers.resize?.disconnect()\n observers.parent?.disconnect()\n window.removeEventListener('scroll', calculateScrollDetails)\n})\n</script>\n\n<script lang=\"ts\">\nexport default {\n name: 'QxsFixedActionBar',\n}\n</script>\n\n<template>\n <div\n ref=\"placeholderRef\"\n :style=\"{ width: '100%', height: `${elementSize.height}px` }\"\n >\n <div\n ref=\"actionbar\"\n :style=\"actionbarStyle\"\n :class=\"[ns.e('actionbar'), shadowClass, className]\"\n data-fixed-calc-width\n >\n <slot />\n </div>\n </div>\n</template>\n"],"names":["name","props","__props","ns","useNamespace","isBottom","ref","actionbar","placeholderRef","elementSize","width","height","parentWidth","elementLeft","observers","resize","parent","createResizeObserver","el","callback","options","observer","ResizeObserver","entries","forEach","entry","requestAnimationFrame","observe","initObservers","value","padding","style","getComputedStyle","x","Number","parseFloat","paddingLeft","paddingRight","y","paddingTop","paddingBottom","getTotalPadding","target","contentRect","box","parentElement","rect","getBoundingClientRect","left","calculateScrollDetails","debounce","scrollY","window","clientHeight","scrollHeight","document","documentElement","Math","ceil","shadowClass","computed","is","getDeviceType","max","actionbarStyle","cssVarBlock","onMounted","addEventListener","passive","onUnmounted","disconnect","removeEventListener","_createElementBlock","_normalizeStyle","_createElementVNode","class","_unref","e","className","_renderSlot","_ctx","$slots"],"mappings":"iMAmHEA,KAAM,wGA7GR,MAAMC,EAAQC,EAaRC,EAAKC,EAAAA,aAAa,oBAClBC,EAAWC,EAAAA,KAAI,GACfC,EAAYD,EAAAA,IAAwB,MACpCE,EAAiBF,EAAAA,IAAwB,MAEzCG,EAAcH,EAAAA,IAAiB,CAAEI,MAAO,EAAGC,OAAQ,IACnDC,EAAcN,EAAAA,IAAI,GAClBO,EAAcP,EAAAA,IAAI,GAElBQ,EAAY,CAChBC,OAAQ,KACRC,OAAQ,MAWV,SAASC,EAAqBC,EAC5BC,EACAC,GACA,MAAMC,EAAW,IAAIC,eAAgBC,IACnCA,EAAQC,QAAQC,GAASC,sBAAsB,IAAMP,EAASM,OAGhE,OADAJ,EAASM,QAAQT,EAAIE,GACdC,CACT,CAEA,SAASO,IACP,IAAKrB,EAAUsB,QAAUrB,EAAeqB,MACtC,OAIFf,EAAUC,OAASE,EACjBV,EAAUsB,MACTJ,IACC,MAAMK,EA3BZ,SAAyBZ,GACvB,MAAMa,EAAQC,iBAAiBd,GAC/B,MAAO,CACLe,EAAGC,OAAOC,WAAWJ,EAAMK,aAAeF,OAAOC,WAAWJ,EAAMM,cAClEC,EAAGJ,OAAOC,WAAWJ,EAAMQ,YAAcL,OAAOC,WAAWJ,EAAMS,eAErE,CAqBsBC,CAAgBhB,EAAMiB,QACtCjC,EAAYoB,MAAQ,CAClBnB,MAAOe,EAAMkB,YAAYjC,MAAQoB,EAAQG,EACzCtB,OAAQc,EAAMkB,YAAYhC,OAASmB,EAAQQ,IAG/C,CAAEM,IAAK,eAIT,MAAM5B,EAASR,EAAeqB,MAAMgB,cAChC7B,IACFF,EAAUE,OAASC,EAAqBD,EAAQ,KAC9C,MAAM8B,EAAO9B,EAAO+B,wBACpBnC,EAAYiB,MAAQiB,EAAKpC,MACzBG,EAAYgB,MAAQiB,EAAKE,OAG/B,CAEA,MAAMC,EAAyBC,EAAAA,SAAS,KACtC,MAAMC,QAAEA,GAAYC,QACdC,aAAEA,EAAAC,aAAcA,GAAiBC,SAASC,gBAChDnD,EAASwB,MAAQ4B,KAAKC,KAAKP,EAAUE,IAAiBC,GACrD,KAEGK,EAAcC,WAAS,IAAQvD,EAASwB,MAA0B,GAAlB1B,EAAG0D,GAAG,WAEtDrB,EAAgBoB,EAAAA,SAAS,IACT,YAApBE,EAAAA,gBAAgCL,KAAKM,IAAI9D,EAAM6B,QAAS,IAAM7B,EAAM6B,SAGhEkC,EAAiBJ,EAAAA,SAAS,KAAA,CAC9BlD,MAAO,GAAGE,EAAYiB,UACtBmB,KAAM,GAAGnC,EAAYgB,aAClB1B,EAAG8D,YAAY,CAChB,oBAAqB,GAAGhE,EAAM6B,YAC9B,2BAA4B,GAAGU,EAAcX,sBAIjDqC,EAAAA,UAAU,KACRtC,IACAwB,OAAOe,iBAAiB,SAAUlB,EAAwB,CAAEmB,SAAS,MAGvEC,EAAAA,YAAY,KACVvD,EAAUC,QAAQuD,aAClBxD,EAAUE,QAAQsD,aAClBlB,OAAOmB,oBAAoB,SAAUtB,2BAWrCuB,EAAAA,mBAYM,MAAA,SAXA,iBAAJlE,IAAIE,EACHuB,MAAK0C,EAAAA,eAAA,CAAA/D,MAAA,OAAAC,OAAA,GAA8BF,EAAAoB,MAAYlB,eAEhD+D,EAAAA,mBAOM,MAAA,SANA,YAAJpE,IAAIC,EACHwB,uBAAOiC,EAAAnC,OACP8C,wBAAQC,EAAAA,MAAAzE,GAAG0E,EAAC,aAAelB,EAAA9B,MAAa3B,EAAA4E,YACzC,wBAAA,KAEAC,aAAQC,EAAAC,OAAA"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./fixed-action-bar.vue.cjs");exports.default=e.default;
2
- //# sourceMappingURL=fixed-action-bar.vue2.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fixed-action-bar.vue2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),a=require("@qxs-bns/icons"),l=require("element-plus");const t={class:"image-slot"},r={style:{position:"relative",width:"100%",height:"100%"}},i=["src","alt"],o={key:2,class:"upload-progress"},n={key:3,class:"upload-debug"},s=["onClick"],u=["onClick"],c={class:"tip-content"};var d=e.defineComponent({name:"QxsImageUpload",__name:"image-upload",props:e.mergeModels({action:{type:String,required:!0},headers:{type:null,required:!1},data:{type:null,required:!1},name:{type:String,required:!1,default:"file"},size:{type:Number,required:!1,default:20},width:{type:Number,required:!1,default:160},height:{type:Number,required:!1,default:90},accept:{type:String,required:!1,default:"image/jpeg,image/jpg,image/png,image/gif"},placeholder:{type:String,required:!1,default:"上传图片"},notip:{type:Boolean,required:!1,default:!1},tipText:{type:String,required:!1,default:""},beforeUpload:{type:null,required:!1},disabled:{type:Boolean,required:!1,default:!1},limit:{type:Number,required:!1,default:1}},{fileList:{type:Array,default:()=>[]},fileListModifiers:{}}),emits:e.mergeModels(["success","remove"],["update:fileList"]),setup(d,{emit:p}){const m=p,v=e.useAttrs(),f=e.useModel(d,"fileList"),g=l.useNamespace("image-upload"),h=e.ref(!1),y=e.ref(0),k=e.ref(""),b=e.ref(0),C=e.ref(!1),_=e.computed(()=>g.cssVarBlock({ns:g.namespace.value,width:`${d.width}px`,height:`${d.height}px`})),x=e.computed(()=>d.accept.split(",").map(e=>e.split("/").pop())),B=e.computed(()=>{if(d.tipText)return d.tipText;return`支持 ${x.value.join(" / ")} 格式,大小不超过 ${d.size}MB`+(d.width&&d.height?`,建议尺寸 ${d.width}×${d.height}`:"")});function N(e){if(!e.url)return void console.warn("文件缺少 URL,无法预览:",e);let a=f.value.indexOf(e);-1===a&&(a=f.value.findIndex(a=>a.url===e.url)),y.value=Math.max(0,a),h.value=!0}function U(e){if(d.disabled)return;"uploading"===e.status&&C.value&&(C.value=!1,b.value=0,k.value&&(URL.revokeObjectURL(k.value),k.value="")),e.url?.startsWith("blob:")&&URL.revokeObjectURL(e.url);const a=f.value.indexOf(e);a>-1&&f.value.splice(a,1),m("remove",e)}function $(){h.value=!1}const z=e=>{if(!e?.name)return l.ElMessage.error("文件信息无效,请重新选择文件"),!1;const a=e.name.split(".").pop()?.toLowerCase()??"";if(!x.value.some(e=>e?.toLowerCase()===a))return l.ElMessage.error(`仅支持上传 ${x.value.join(" / ")} 格式的图片`),!1;if(e.size/1024/1024>d.size)return l.ElMessage.error(`图片大小不能超过 ${d.size}MB`),!1;try{k.value=URL.createObjectURL(e)}catch(e){console.warn("创建预览失败:",e)}return C.value=!0,b.value=0,!d.beforeUpload||d.beforeUpload(e)},E=e=>{b.value=Math.floor(e.percent)},L=(e,a,l)=>{const t=f.value.some(e=>e.uid===a.uid||e.name===a.name&&e.size===a.size);k.value&&(URL.revokeObjectURL(k.value),k.value=""),C.value=!1,b.value=0,t&&m("success",e,a,l)},V=(e,a,t)=>{const r=f.value.some(e=>e.uid===a.uid||e.name===a.name&&e.size===a.size);k.value&&(URL.revokeObjectURL(k.value),k.value=""),C.value=!1,b.value=0,r&&l.ElMessage.error(`图片上传失败:${e.message||"网络异常,请重试"}`)};return e.onUnmounted(()=>{k.value&&URL.revokeObjectURL(k.value),f.value.forEach(e=>{e.url?.startsWith("blob:")&&URL.revokeObjectURL(e.url)})}),(d,p)=>{const m=e.resolveComponent("QxsIcon");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(g).e("container")),style:e.normalizeStyle(_.value)},[e.createVNode(e.unref(l.ElUpload),e.mergeProps(e.unref(v),{"file-list":f.value,"onUpdate:fileList":p[0]||(p[0]=e=>f.value=e),drag:"",limit:d.limit,"list-type":"picture-card",headers:d.headers,action:d.action,data:d.data,name:d.name,accept:d.accept,"before-upload":z,"on-progress":E,"on-preview":N,"on-success":L,"on-error":V,class:[e.unref(g).e("control"),d.limit<=f.value.length?e.unref(g).e("more-than-limit"):""],"on-remove":U}),{file:e.withCtx(({file:l})=>{return[e.createElementVNode("div",r,[l.url?(e.openBlock(),e.createElementBlock("img",{key:0,class:e.normalizeClass(`${e.unref(g).namespace.value}-upload-list__item-thumbnail`),src:l.url,alt:l.name||"图片"},null,10,i)):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(`${e.unref(g).namespace.value}-upload-list__item-thumbnail`),style:{display:"flex","align-items":"center","justify-content":"center",color:"#909399",background:"#f5f7fa"}}," 无图片 ",2)),e.createCommentVNode(" 上传进度条 "),C.value?(e.openBlock(),e.createElementBlock("div",o,[e.createElementVNode("div",{class:"upload-progress-bar",style:e.normalizeStyle({width:`${b.value}%`})},null,4)])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" 调试信息 "),C.value?(e.openBlock(),e.createElementBlock("div",n,e.toDisplayString(b.value)+"% - "+e.toDisplayString((t=l.status,{ready:"准备中",uploading:"上传中",success:"上传成功",fail:"上传失败",error:"上传错误"}[t||""]||t||"未知状态")),1)):e.createCommentVNode("v-if",!0)]),e.createElementVNode("span",{class:e.normalizeClass(`${e.unref(g).namespace.value}-upload-list__item-actions`)},[l.url?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass([`${e.unref(g).namespace.value}-upload-list__item-preview`,`${e.unref(g).namespace.value}-image-upload__action-btn`,`${e.unref(g).namespace.value}-image-upload__action-btn--preview`]),onClick:e=>N(l)},[e.createVNode(e.unref(a.ZoomIn),{size:"14px"})],10,s)):e.createCommentVNode("v-if",!0),l.url?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(`${e.unref(g).namespace.value}-upload-list__item-divider`)},null,2)):e.createCommentVNode("v-if",!0),e.createElementVNode("span",{class:e.normalizeClass([`${e.unref(g).namespace.value}-upload-list__item-delete`,`${e.unref(g).namespace.value}-image-upload__action-btn`,`${e.unref(g).namespace.value}-image-upload__action-btn--delete`,d.disabled?"is-disabled":""]),onClick:e=>U(l)},[e.createVNode(e.unref(a.Delete),{size:"14px"})],10,u)],2)];var t}),tip:e.withCtx(()=>[e.renderSlot(d.$slots,"tip",{},()=>[d.notip?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(`${e.unref(g).namespace.value}-upload__tip-text`)},[e.createElementVNode("div",c,e.toDisplayString(B.value),1)],2))])]),default:e.withCtx(()=>[e.renderSlot(d.$slots,"default",{},()=>[e.createElementVNode("div",t,[e.createVNode(m,{size:"32px",icon:e.unref(a.UploadImage)},null,8,["icon"]),e.createElementVNode("p",null,e.toDisplayString(d.placeholder),1)])])]),_:3},16,["file-list","limit","headers","action","data","name","accept","class"]),h.value?(e.openBlock(),e.createBlock(e.unref(l.ElImageViewer),{key:0,"url-list":f.value.map(e=>e.url).filter(Boolean),"initial-index":y.value,"show-progress":f.value.length>1,teleported:"",onClose:$},null,8,["url-list","initial-index","show-progress"])):e.createCommentVNode("v-if",!0)],6)}}});exports.default=d;
2
- //# sourceMappingURL=image-upload.vue.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"image-upload.vue.cjs","sources":["../../../../../../packages/components/src/image-upload/src/image-upload.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { UploadFile, UploadFiles, UploadProps } from 'element-plus'\nimport { Delete, UploadImage, ZoomIn } from '@qxs-bns/icons'\nimport { ElImageViewer, ElMessage, ElUpload, useNamespace } from 'element-plus'\nimport { computed, onUnmounted, ref, useAttrs } from 'vue'\n\n// 类型定义\nexport interface ImageUploadProps {\n /** 上传地址(必需) */\n action: UploadProps['action']\n /** 请求头 */\n headers?: UploadProps['headers']\n /** 上传时附带的额外参数 */\n data?: UploadProps['data']\n /** 上传的文件字段名 */\n name?: UploadProps['name']\n /** 文件大小限制(MB) */\n size?: number\n /** 图片显示宽度(px) */\n width?: number\n /** 图片显示高度(px) */\n height?: number\n /** 接受的文件类型 */\n accept?: string\n /** 上传区域提示文字 */\n placeholder?: string\n /** 是否隐藏提示文字 */\n notip?: boolean\n /** 自定义提示文字 */\n tipText?: string\n /** 上传前的钩子函数 */\n beforeUpload?: UploadProps['beforeUpload']\n /** 是否禁用 */\n disabled?: boolean\n /** 最大上传数量 */\n limit?: number\n}\n\n// 组件名称\ndefineOptions({\n name: 'QxsImageUpload',\n})\n\n// Props 定义\nconst {\n action,\n headers,\n data,\n name = 'file',\n size = 20,\n width = 160,\n height = 90,\n limit = 1,\n placeholder = '上传图片',\n notip = false,\n accept = 'image/jpeg,image/jpg,image/png,image/gif',\n beforeUpload,\n tipText = '',\n disabled = false,\n} = defineProps<ImageUploadProps>()\n\n// Emits 定义\nconst emits = defineEmits<{\n success: [res: any, uploadFile: UploadFile, uploadFiles: UploadFiles]\n remove: [file: UploadFile]\n}>()\n\nconst attrs = useAttrs()\n\nconst fileList = defineModel('fileList', {\n type: Array as () => UploadFile[],\n default: () => [],\n})\n\n// 命名空间\nconst nsEl = useNamespace('image-upload')\n\n// 响应式数据\nconst imageViewerVisible = ref(false)\nconst initialIndex = ref(0)\nconst previewUrl = ref('')\nconst uploadProgress = ref(0)\nconst isUploading = ref(false)\n\nconst cssVar = computed(() => {\n return nsEl.cssVarBlock({\n ns: nsEl.namespace.value,\n width: `${width}px`,\n height: `${height}px`,\n })\n})\n\n// 计算属性\nconst exts = computed(() =>\n accept.split(',').map(ext => ext.split('/').pop()),\n)\n\nconst tipMessage = computed(() => {\n if (tipText) {\n return tipText\n }\n\n const formatText = `支持 ${exts.value.join(' / ')} 格式,大小不超过 ${size}MB`\n const sizeText = width && height ? `,建议尺寸 ${width}×${height}` : ''\n\n return formatText + sizeText\n})\n\n// 状态文本转换\nfunction getStatusText(status: string | undefined): string {\n const statusMap: Record<string, string> = {\n ready: '准备中',\n uploading: '上传中',\n success: '上传成功',\n fail: '上传失败',\n error: '上传错误',\n }\n return statusMap[status || ''] || status || '未知状态'\n}\n\n// 方法\nfunction onPreview(file: UploadFile) {\n if (!file.url) {\n console.warn('文件缺少 URL,无法预览:', file)\n return\n }\n\n // 简化索引查找:优先对象引用,备用 URL 匹配\n let index = fileList.value.indexOf(file)\n if (index === -1) {\n index = fileList.value.findIndex(item => item.url === file.url)\n }\n\n initialIndex.value = Math.max(0, index)\n imageViewerVisible.value = true\n}\n\nfunction onRemove(file: UploadFile) {\n if (disabled) {\n return\n }\n\n // 如果正在上传,重置上传状态\n if (file.status === 'uploading' && isUploading.value) {\n isUploading.value = false\n uploadProgress.value = 0\n\n // 清理预览 URL\n if (previewUrl.value) {\n URL.revokeObjectURL(previewUrl.value)\n previewUrl.value = ''\n }\n }\n\n // 清理可能的 Object URL\n if (file.url?.startsWith('blob:')) {\n URL.revokeObjectURL(file.url)\n }\n\n // 从数组中移除文件\n const index = fileList.value.indexOf(file)\n if (index > -1) {\n fileList.value.splice(index, 1)\n }\n\n emits('remove', file)\n}\n\nfunction previewClose() {\n imageViewerVisible.value = false\n}\n\nconst handleBeforeUpload: UploadProps['beforeUpload'] = (file) => {\n if (!file?.name) {\n ElMessage.error('文件信息无效,请重新选择文件')\n return false\n }\n\n // 文件类型校验\n const fileExt = file.name.split('.').pop()?.toLowerCase() ?? ''\n const isTypeOk = exts.value.some(ext => ext?.toLowerCase() === fileExt)\n if (!isTypeOk) {\n ElMessage.error(`仅支持上传 ${exts.value.join(' / ')} 格式的图片`)\n return false\n }\n\n // 文件大小校验\n const fileSizeMB = file.size / 1024 / 1024\n if (fileSizeMB > size) {\n ElMessage.error(`图片大小不能超过 ${size}MB`)\n return false\n }\n\n // 设置预览和上传状态\n try {\n previewUrl.value = URL.createObjectURL(file)\n }\n catch (error) {\n console.warn('创建预览失败:', error)\n }\n\n // 开始上传\n isUploading.value = true\n uploadProgress.value = 0\n\n return beforeUpload ? beforeUpload(file) : true\n}\n\nconst onProgress: UploadProps['onProgress'] = (evt) => {\n uploadProgress.value = Math.floor(evt.percent)\n}\n\nconst onSuccess: UploadProps['onSuccess'] = (response, uploadFile, uploadFiles) => {\n // 检查文件是否还在列表中(可能已被删除)\n const fileExists = fileList.value.some(file =>\n file.uid === uploadFile.uid\n || (file.name === uploadFile.name && file.size === uploadFile.size),\n )\n\n // 清理预览 URL 和重置状态\n if (previewUrl.value) {\n URL.revokeObjectURL(previewUrl.value)\n previewUrl.value = ''\n }\n isUploading.value = false\n uploadProgress.value = 0\n\n // 只有文件还存在时才触发成功回调\n if (fileExists) {\n emits('success', response, uploadFile, uploadFiles)\n }\n}\n\nconst onError: UploadProps['onError'] = (error, uploadFile, _uploadFiles) => {\n // 检查文件是否还在列表中(可能已被删除)\n const fileExists = fileList.value.some(file =>\n file.uid === uploadFile.uid\n || (file.name === uploadFile.name && file.size === uploadFile.size),\n )\n\n // 清理预览 URL 和重置状态\n if (previewUrl.value) {\n URL.revokeObjectURL(previewUrl.value)\n previewUrl.value = ''\n }\n isUploading.value = false\n uploadProgress.value = 0\n\n // 只有文件还存在时才显示错误信息\n if (fileExists) {\n ElMessage.error(`图片上传失败:${error.message || '网络异常,请重试'}`)\n }\n}\n\n// 组件卸载时清理资源\nonUnmounted(() => {\n if (previewUrl.value) {\n URL.revokeObjectURL(previewUrl.value)\n }\n // 清理文件列表中的 blob URL\n fileList.value.forEach((file) => {\n if (file.url?.startsWith('blob:')) {\n URL.revokeObjectURL(file.url)\n }\n })\n})\n</script>\n\n<template>\n <div\n :class=\"nsEl.e('container')\"\n :style=\"cssVar\"\n >\n <ElUpload\n v-bind=\"attrs\"\n v-model:file-list=\"fileList\"\n drag\n :limit=\"limit\"\n list-type=\"picture-card\"\n :headers=\"headers\"\n :action=\"action\"\n :data=\"data\"\n :name=\"name\"\n :accept=\"accept\"\n :before-upload=\"handleBeforeUpload\"\n :on-progress=\"onProgress\"\n :on-preview=\"onPreview\"\n :on-success=\"onSuccess\"\n :on-error=\"onError\"\n :class=\"[nsEl.e('control'), limit <= fileList.length ? nsEl.e('more-than-limit') : '']\"\n :on-remove=\"onRemove\"\n >\n <slot>\n <div class=\"image-slot\">\n <QxsIcon\n size=\"32px\"\n :icon=\"UploadImage\"\n />\n <p>{{ placeholder }}</p>\n </div>\n </slot>\n <template #file=\"{ file }\">\n <div style=\"position: relative; width: 100%; height: 100%;\">\n <img\n v-if=\"file.url\"\n :class=\"`${nsEl.namespace.value}-upload-list__item-thumbnail`\"\n :src=\"file.url\"\n :alt=\"file.name || '图片'\"\n >\n <div\n v-else\n :class=\"`${nsEl.namespace.value}-upload-list__item-thumbnail`\"\n style=\"display: flex; align-items: center; justify-content: center; color: #909399; background: #f5f7fa;\"\n >\n 无图片\n </div>\n\n <!-- 上传进度条 -->\n <div\n v-if=\"isUploading\"\n class=\"upload-progress\"\n >\n <div\n class=\"upload-progress-bar\"\n :style=\"{ width: `${uploadProgress}%` }\"\n />\n </div>\n\n <!-- 调试信息 -->\n <div\n v-if=\"isUploading\"\n class=\"upload-debug\"\n >\n {{ uploadProgress }}% - {{ getStatusText(file.status) }}\n </div>\n </div>\n\n <span :class=\"`${nsEl.namespace.value}-upload-list__item-actions`\">\n <span\n v-if=\"file.url\"\n :class=\"[\n `${nsEl.namespace.value}-upload-list__item-preview`,\n `${nsEl.namespace.value}-image-upload__action-btn`,\n `${nsEl.namespace.value}-image-upload__action-btn--preview`,\n ]\"\n @click=\"onPreview(file)\"\n >\n <ZoomIn size=\"14px\" />\n </span>\n <span\n v-if=\"file.url\"\n :class=\"`${nsEl.namespace.value}-upload-list__item-divider`\"\n />\n <span\n :class=\"[\n `${nsEl.namespace.value}-upload-list__item-delete`,\n `${nsEl.namespace.value}-image-upload__action-btn`,\n `${nsEl.namespace.value}-image-upload__action-btn--delete`,\n disabled ? 'is-disabled' : '',\n ]\"\n @click=\"onRemove(file)\"\n >\n <Delete size=\"14px\" />\n </span>\n </span>\n </template>\n <template #tip>\n <slot name=\"tip\">\n <div\n v-if=\"!notip\"\n :class=\"`${nsEl.namespace.value}-upload__tip-text`\"\n >\n <div class=\"tip-content\">\n {{ tipMessage }}\n </div>\n </div>\n </slot>\n </template>\n </ElUpload>\n\n <ElImageViewer\n v-if=\"imageViewerVisible\"\n :url-list=\"fileList.map((item: UploadFile) => item.url!).filter(Boolean)\"\n :initial-index=\"initialIndex\"\n :show-progress=\"fileList.length > 1\"\n teleported\n @close=\"previewClose\"\n />\n </div>\n</template>\n"],"names":["emits","__emit","attrs","useAttrs","fileList","_useModel","__props","nsEl","useNamespace","imageViewerVisible","ref","initialIndex","previewUrl","uploadProgress","isUploading","cssVar","computed","cssVarBlock","ns","namespace","value","width","height","exts","split","map","ext","pop","tipMessage","tipText","join","size","onPreview","file","url","console","warn","index","indexOf","findIndex","item","Math","max","onRemove","disabled","status","URL","revokeObjectURL","startsWith","splice","previewClose","handleBeforeUpload","name","ElMessage","error","fileExt","toLowerCase","some","createObjectURL","beforeUpload","onProgress","evt","floor","percent","onSuccess","response","uploadFile","uploadFiles","fileExists","uid","onError","_uploadFiles","message","onUnmounted","forEach","_createElementBlock","class","_normalizeClass","_unref","e","style","_createVNode","ElUpload","_mergeProps","$event","drag","limit","headers","action","data","accept","length","_withCtx","_createElementVNode","_hoisted_2","src","alt","display","color","background","_createCommentVNode","_openBlock","_hoisted_4","_hoisted_5","_toDisplayString","ready","uploading","success","fail","onClick","ZoomIn","Delete","tip","_renderSlot","_ctx","notip","_hoisted_8","_hoisted_1","_component_QxsIcon","icon","UploadImage","placeholder","_createBlock","ElImageViewer","filter","Boolean","teleported","onClose"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./image-upload.vue.cjs");exports.default=e.default;
2
- //# sourceMappingURL=image-upload.vue2.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"image-upload.vue2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";var e=require("vue");exports.useCanvas=function(a){const l=e.ref(null);return a&&(l.value=a.getContext("2d")),{clearCanvas:()=>{l.value&&l.value.clearRect(0,0,a.width,a.height)},drawColor:(e,a,t,n,r)=>{l.value&&(l.value.fillStyle=r,l.value.fillRect(e,a,t,n))},drawImage:(e,a,t,n,r)=>{l.value.drawImage(e,a,t,n,r)},cropCanvas:(e,t,n,r)=>new Promise(u=>{if(l.value){const l=document.createElement("canvas");l.width=n,l.height=r;const i=l.getContext("2d");i?(i.drawImage(a,e,t,n,r,0,0,n,r),l.toBlob(e=>{if(e){const a=new File([e],"cropped_image.png",{type:"image/png"});u(a)}else u(null)},"image/png")):u(null)}else u(null)})}};
2
- //# sourceMappingURL=composables.cjs.map